999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Cortex-M4的MJPEG視頻解碼算法優(yōu)化

2015-08-10 12:47:12方兆龍劉凌云楊東平
關(guān)鍵詞:指令優(yōu)化

方兆龍,劉凌云,江 波,楊東平

(1湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北武漢430068;2湖北工業(yè)大學(xué)太陽能高效利用湖北省協(xié)同創(chuàng)新中心,湖北武漢430068)

MJPEG(Motion-Join Photographic Experts Group)即運(yùn)動(dòng)靜止圖像(或逐幀)壓縮技術(shù),它是在靜態(tài)圖像壓縮技術(shù)JPEG的基礎(chǔ)上發(fā)展起來的動(dòng)態(tài)圖像壓縮技術(shù)[1]。MJPEG把運(yùn)動(dòng)的視頻序列作為連續(xù)的靜止圖像來處理,只考慮幀內(nèi)壓縮而不考慮幀間壓縮,壓縮倍數(shù)為1/80~1/20倍[2]。這種壓縮方式能夠單獨(dú)對某一幀進(jìn)行壓縮處理,在編輯過程中可隨機(jī)存儲(chǔ)每一幀。MJPEG采用漸層式技術(shù),先發(fā)送低解析的圖檔,再補(bǔ)送細(xì)部資料,可以獲取清晰度很高的視頻圖像,而且可以靈活設(shè)置每路的視頻清晰度和壓縮幀數(shù)[3]。它的壓縮和解碼是對稱的,可以用相同的硬件和軟件實(shí)現(xiàn)。由于不對視頻流的幀間進(jìn)行時(shí)間冗余壓縮處理,所以壓縮效率不是很高,存儲(chǔ)占用空間達(dá)到每幀8~15 K字節(jié),最好能做到每幀3 K字節(jié),如果采用高壓縮比會(huì)嚴(yán)重降級視頻質(zhì)量。然而在對幀數(shù)要求不高的情況下,MJPEG的這個(gè)弱點(diǎn)卻使它擁有很好的性價(jià)比[4-6]。如網(wǎng)絡(luò)攝像機(jī)等只要求持續(xù)監(jiān)控,對圖像清晰度和刷新率要求不高,它能夠在有限網(wǎng)絡(luò)資源支持下將清晰的畫面迅速傳送到監(jiān)控端,因此MJPEG適用于公共場合、公司等場合的視頻監(jiān)控。

視頻解碼系統(tǒng)根據(jù)應(yīng)用場合不同有多種硬件實(shí)現(xiàn)方案,實(shí)現(xiàn)高清編解碼硬件一般采用專用芯片或者DSP芯片。但是這些芯片有的不支持解壓縮,有的僅在功能上支持而沒有成熟的核函數(shù),而且價(jià)格昂貴。本文采用的Cortex-m4內(nèi)核的STM32F4系列微處理器,具有微控制器和數(shù)字信號處理器的功能,最高主頻達(dá)168 MHz,支持多種低功耗模式,DSP指令和FPU使它在視頻圖像處理方面具有很大的優(yōu)勢。綜合Cortex-M4硬件的低成本高特性和MJPEG視頻解碼算法的實(shí)時(shí)清晰性,在視頻監(jiān)控工程中采用這種方案擁有很好的性價(jià)比。

1 MJPEG視頻解碼的硬件結(jié)構(gòu)

硬件系統(tǒng)采用ARM Cortex-M4處理器內(nèi)核的STM32F407ZGT6芯片為實(shí)驗(yàn)平臺(tái),利用SDIO端口讀取SD卡里的AVI視頻文件到芯片內(nèi)存中,然后利用芯片的DSP指令和FPU浮點(diǎn)運(yùn)算以及ART自適應(yīng)實(shí)時(shí)加速器功能對視頻壓縮數(shù)據(jù)流進(jìn)行連續(xù)解碼,解碼后的圖像幀通過FSMC接口在LCD屏上實(shí)現(xiàn)播放清晰的視頻。硬件平臺(tái)的結(jié)構(gòu)如圖1所示。

圖1 硬件系統(tǒng)圖

2 MJPEG視頻解碼流程

由于MJPEG是在JPEG基礎(chǔ)上發(fā)展起來的,而且MJPEG只考慮幀內(nèi)的空間冗余,而不考慮幀間的時(shí)間冗余,它把連續(xù)的視頻圖像當(dāng)作一個(gè)個(gè)靜止圖像處理,因此它的解碼算法核心還是JPEG算法。在滿足視頻監(jiān)控實(shí)時(shí)性要求的情況下,本文對一幀圖像的JPEG解碼算法進(jìn)行優(yōu)化處理。如圖1所示,JPEG圖像解碼主要包括Huffman解碼、反量化、IDCT這三個(gè)部分,開始還要經(jīng)過預(yù)處理獲取視頻解碼所需的各種信息和壓縮數(shù)據(jù),最后還要經(jīng)過顏色空間轉(zhuǎn)換才能實(shí)現(xiàn)圖像的顯示。

圖2 JPEG解碼流程圖

3 Cortex-M4硬件平臺(tái)優(yōu)勢

由于嵌入式程序受硬件資源的限制,因此實(shí)現(xiàn)視頻解碼需要充分利用Cortex-M4硬件平臺(tái)資源。Cortex-M4內(nèi)核采用32位、多重AHB總線矩陣和多通道DMA控制器,能夠?qū)崿F(xiàn)程序執(zhí)行和數(shù)據(jù)傳輸?shù)牟⑿刑幚恚瑪?shù)據(jù)傳輸速率得到很大提升。它還擁有192KB的SRAM和自適應(yīng)實(shí)時(shí)加速器ART,SRAM是CPU和外部主存的高速緩沖器。如果CPU訪問的數(shù)據(jù)已經(jīng)預(yù)存到SRAM中,就不用等待去外存中完成數(shù)據(jù)的搬移,SRAM連接到I-Bus可以加快程序執(zhí)行速度,SRAM連接到D-Bus可以加快獲取數(shù)據(jù),因此可以將經(jīng)常使用的數(shù)據(jù)指令成組讀到SRAM中,提高運(yùn)算效率。Cortex-M4具有浮點(diǎn)運(yùn)算單元(FPU),支持所有的ARM單精度數(shù)據(jù)處理指令和數(shù)據(jù)類型,通過內(nèi)置單精度FPU提升算法的執(zhí)行速度,利用Cortex-M4自帶的DSP指令和浮點(diǎn)運(yùn)算功能提高視頻圖像處理質(zhì)量。采用浮點(diǎn)功能的指令對比見圖3。

圖3 浮點(diǎn)指令性能對比

4 MJPEG視頻解碼算法的優(yōu)化實(shí)現(xiàn)

目前主要的優(yōu)化處理方式:離散余弦變換采用并處方式;以增加儲(chǔ)存容量的代價(jià)來換取速度的提高;根據(jù)輸入圖像的頻率特點(diǎn),采用自適應(yīng)改變量化等級數(shù),即對圖像變換后的低頻分量和高頻分量進(jìn)行不同步長的自適應(yīng)量化。綜合考慮以上方法和對比其他軟硬件平臺(tái),本文的重點(diǎn)是利用硬件平臺(tái)Cortex-M4的優(yōu)勢實(shí)現(xiàn)MJPEG視頻解碼,在降低硬件成本的情況下,極大提高圖像的質(zhì)量,更注重方案的工程實(shí)際應(yīng)用價(jià)值。

4.1 Huffman解碼和反量化的優(yōu)化實(shí)現(xiàn)

Huffman解碼一個(gè)MCU得到亮度和色度的一維64位元素的數(shù)組,數(shù)組中第一個(gè)元素解碼稱為直流解碼,剩余的63個(gè)元素解碼稱為交流解碼。直流系數(shù)DC由于前后塊間存在相關(guān)性,一般采用DPCM編碼,而交流系數(shù)AC采用RLE編碼,因它們的編碼特點(diǎn)不同,所以解碼時(shí)要采用不同的Huffman表。人眼對亮度比色度敏感,編碼過程中對色度的壓縮比亮度大,因此兩者的解碼表也不同。一個(gè)MCU解碼單元需要4個(gè)huffman表。反量化是將霍夫曼解碼得到的數(shù)組中的元素與量化表中對應(yīng)位置的元素相乘的過程,也需要2個(gè)量化表,分別對應(yīng)亮度和色度。這兩個(gè)過程實(shí)際上是一個(gè)查表的過程,如果將壓縮數(shù)據(jù)流逐個(gè)輸入,查找huffman表和量化表直到找到正確的碼表,將耗費(fèi)大量的存取操作,降低了整個(gè)系統(tǒng)的速度。Cortex-M4內(nèi)核含有192KB的SRAM和自適應(yīng)實(shí)時(shí)加速器ART,而查表是不斷重復(fù)的操作,因此可以將huffman表和量化表存取到片內(nèi)數(shù)據(jù)存儲(chǔ)器中。當(dāng)從輸入碼流中讀取一個(gè)MCU時(shí),可以實(shí)現(xiàn)快速查表解碼,而不用到外存中去查表,節(jié)省了大量的查表解碼時(shí)間。

4.2 IDCT的優(yōu)化實(shí)現(xiàn)

把圖像數(shù)據(jù)從頻率域變換到空間域,離散余弦反變換(IDCT)變換公式如上式。考慮這個(gè)公式的運(yùn)算量,可以采用行列分離算法完成IDCT的硬件實(shí)現(xiàn),而行列分離算法就是把二維IDCT變成2個(gè)一維IDCT,即先對數(shù)組的行進(jìn)行8次一維IDCT,再對列進(jìn)行8次一維IDCT,使得計(jì)算復(fù)雜度降低。轉(zhuǎn)換公式如下

本文離散余弦反變換部分采用Arai算法,因?yàn)橄啾绕渌惴ǎ恍枰?3次乘法和29次加減法,而其中8次乘法可以合并在前面的反量化部分,所以Arai算法實(shí)際上只需要5次乘法和29次加法。它采用二維變一維以及奇偶分開處理方式,一維IDCT流程圖見圖2。

圖4 1維IDCT變換

上述代碼是一列中偶數(shù)點(diǎn)的IDCT運(yùn)算程序,它們只是簡單的加減法和與常數(shù)的乘法運(yùn)算,理論上IDCT運(yùn)算的復(fù)雜度已經(jīng)降低很多。但是Cortex-M4內(nèi)核含有DSP指令和單精度浮點(diǎn)運(yùn)算功能,可以有效提高代碼執(zhí)行效率,減少了定點(diǎn)算法的縮放比和飽和負(fù)荷。Cortex-M4是32位處理器,乘法累加MAC能夠在單周期內(nèi)完成一個(gè)32×32+64→64或2個(gè)16×16的運(yùn)算,為其它任務(wù)釋放了處理器的寬度。在解碼過程中IDCT系數(shù)占用連續(xù)的16位寬數(shù)據(jù),可以利用SIMD指令將2個(gè)16位打包進(jìn)行并行的讀寫運(yùn)算,實(shí)現(xiàn)一次讀取2個(gè)系數(shù)即32位寬,提高代碼執(zhí)行效率。而DSP指令庫函數(shù)含有數(shù)學(xué)函數(shù),利用這些函數(shù)改寫上述程序?qū)⑻岣咚俣取R驗(yàn)橐话愕挠布脚_(tái)沒有浮點(diǎn)運(yùn)算單元,通常將浮點(diǎn)轉(zhuǎn)成定點(diǎn)進(jìn)行處理。原程序中對變換系數(shù)采取了定標(biāo)處理,將它們左移12位變成定點(diǎn)處理。因此可以利用Cortex-M4平臺(tái)的DSP指令和浮點(diǎn)功能對上述程序進(jìn)行優(yōu)化,變換代碼如

4.3 顏色空間變換的優(yōu)化實(shí)現(xiàn)

經(jīng)過上述步驟解碼出來的信號是YCbCr格式,由于人眼的視覺特性,這種格式有利于壓縮處理,但是它需要轉(zhuǎn)換成RGB信號才能在屏幕上顯示。其轉(zhuǎn)換公式為

這個(gè)變換公式中存在浮點(diǎn)運(yùn)算,因此也可以運(yùn)用Cortex-M4內(nèi)核的DSP指令和浮點(diǎn)運(yùn)算庫函數(shù)對它們進(jìn)行改寫替換。完成上述所有操作后,就可以在LCD屏上顯示動(dòng)態(tài)連續(xù)播放的視頻(圖5)。

圖5 LCD屏播放的視頻

5 結(jié)束語

本文以JPEG算法為基礎(chǔ)對MJPEG的視頻解碼算法進(jìn)行分析和優(yōu)化處理,結(jié)合硬件平臺(tái)Cortex-M4的資源優(yōu)勢,利用它的DSP指令和浮點(diǎn)運(yùn)算功能對離散余弦反變換和顏色變換部分進(jìn)行重點(diǎn)優(yōu)化,而對比較耗時(shí)的依據(jù)Huffman表和量化表進(jìn)行查表解碼的過程,利用自適應(yīng)實(shí)時(shí)加速器功能將他們預(yù)存取到內(nèi)存緩沖區(qū),提高了代碼運(yùn)算精度和運(yùn)算效率。雖然MJPEG壓縮比不是很高,但在視頻清晰度要求不高的情況下,它的性價(jià)格比卻很高。如小區(qū)、企業(yè)視頻監(jiān)控等地方,利用Cortex-M4硬件平臺(tái)研發(fā)相關(guān)產(chǎn)品,既能降低硬件成本又能保證實(shí)時(shí)性清晰監(jiān)控圖像要求。

[1]魏忠義,朱 磊.基于DSP的JPEG圖像解碼算法的實(shí)現(xiàn)[J].多媒體技術(shù),2004,193(02):66-70.

[2] 楊貴臣,王 雙,全子一.高清MJPEG2000編解碼系統(tǒng)的設(shè)計(jì)[J].視頻技術(shù)應(yīng)用與工程,2005,281(11):85-87.

[3] 王麗霞,李巴津.JPEG算法的改進(jìn)[J].電腦開發(fā)與應(yīng)用,2004,30(11):48-48.

[4] 薛永林,劉 珂,李鳳亭.并行處理JPEG算法的優(yōu)化[J].電子學(xué)報(bào),2002.30(02):160-162.

[5] 王 海,劉彥隆.基于JPEG圖像壓縮算法的研究[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2010,20(10):108-200.

[6] Miodrag Potkonjak,Anantha Chandrakasan.Synthesis and selection of dct algorithms using behavioral synthesisbased algorithm space exploration[J].IEEE,1995,121(02):65-68.

猜你喜歡
指令優(yōu)化
聽我指令:大催眠術(shù)
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機(jī)的脆弱性分析
基于低碳物流的公路運(yùn)輸優(yōu)化
主站蜘蛛池模板: 国产91九色在线播放| 无码专区在线观看| 国产高清国内精品福利| 欧美亚洲欧美| 天天躁日日躁狠狠躁中文字幕| 麻豆精品在线视频| 亚洲国语自产一区第二页| 91日本在线观看亚洲精品| 五月丁香伊人啪啪手机免费观看| 成年人免费国产视频| 白丝美女办公室高潮喷水视频| 国产精品妖精视频| 亚洲精品色AV无码看| 黄色网址手机国内免费在线观看| 91精品久久久久久无码人妻| 欧美曰批视频免费播放免费| 日本高清成本人视频一区| 欧美日本视频在线观看| 亚洲va在线∨a天堂va欧美va| 97亚洲色综久久精品| 浮力影院国产第一页| 欧美日本在线一区二区三区| 日韩二区三区| 性视频久久| 国产成人精品无码一区二| 国产剧情国内精品原创| 老色鬼久久亚洲AV综合| 亚洲乱强伦| 国产精品无码作爱| 在线另类稀缺国产呦| 麻豆精品在线视频| 日韩精品免费在线视频| 免费欧美一级| 亚洲aaa视频| 精品视频第一页| 天天爽免费视频| 精品国产自在现线看久久| 亚洲婷婷在线视频| 园内精品自拍视频在线播放| 又黄又爽视频好爽视频| 操国产美女| 久久综合伊人 六十路| 久久无码高潮喷水| 国产亚洲精品yxsp| 午夜免费视频网站| 国产污视频在线观看| 国产玖玖视频| 精品無碼一區在線觀看 | 色悠久久久久久久综合网伊人| 欧美性久久久久| 国产超碰一区二区三区| 尤物特级无码毛片免费| 国产精品吹潮在线观看中文| 亚洲国产日韩在线成人蜜芽| 亚洲国产清纯| 91免费国产高清观看| 99精品福利视频| 欧美一级高清片欧美国产欧美| 国产丝袜丝视频在线观看| 久久综合伊人77777| 亚洲人网站| www.亚洲一区| 婷婷午夜影院| 国产一区二区免费播放| 久久精品国产精品一区二区| 欧美成人精品一区二区| 国产偷国产偷在线高清| 操操操综合网| 欧美日韩成人在线观看| 国产毛片片精品天天看视频| 亚洲欧美精品一中文字幕| 国产色婷婷视频在线观看| 91麻豆国产在线| 波多野结衣久久高清免费| 97国内精品久久久久不卡| 中文字幕久久精品波多野结| 九九九精品成人免费视频7| 91精品国产无线乱码在线| 日韩人妻无码制服丝袜视频| 国产精品白浆无码流出在线看| 亚洲人成网线在线播放va| 无码精品福利一区二区三区|