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

基于Cortex-M4的MJPEG視頻解碼算法優化

2015-08-10 12:47:12方兆龍劉凌云楊東平
湖北工業大學學報 2015年4期
關鍵詞:指令優化

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

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

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

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

1 MJPEG視頻解碼的硬件結構

硬件系統采用ARM Cortex-M4處理器內核的STM32F407ZGT6芯片為實驗平臺,利用SDIO端口讀取SD卡里的AVI視頻文件到芯片內存中,然后利用芯片的DSP指令和FPU浮點運算以及ART自適應實時加速器功能對視頻壓縮數據流進行連續解碼,解碼后的圖像幀通過FSMC接口在LCD屏上實現播放清晰的視頻。硬件平臺的結構如圖1所示。

圖1 硬件系統圖

2 MJPEG視頻解碼流程

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

圖2 JPEG解碼流程圖

3 Cortex-M4硬件平臺優勢

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

圖3 浮點指令性能對比

4 MJPEG視頻解碼算法的優化實現

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

4.1 Huffman解碼和反量化的優化實現

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

4.2 IDCT的優化實現

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

本文離散余弦反變換部分采用Arai算法,因為相比其它算法,它只需要13次乘法和29次加減法,而其中8次乘法可以合并在前面的反量化部分,所以Arai算法實際上只需要5次乘法和29次加法。它采用二維變一維以及奇偶分開處理方式,一維IDCT流程圖見圖2。

圖4 1維IDCT變換

上述代碼是一列中偶數點的IDCT運算程序,它們只是簡單的加減法和與常數的乘法運算,理論上IDCT運算的復雜度已經降低很多。但是Cortex-M4內核含有DSP指令和單精度浮點運算功能,可以有效提高代碼執行效率,減少了定點算法的縮放比和飽和負荷。Cortex-M4是32位處理器,乘法累加MAC能夠在單周期內完成一個32×32+64→64或2個16×16的運算,為其它任務釋放了處理器的寬度。在解碼過程中IDCT系數占用連續的16位寬數據,可以利用SIMD指令將2個16位打包進行并行的讀寫運算,實現一次讀取2個系數即32位寬,提高代碼執行效率。而DSP指令庫函數含有數學函數,利用這些函數改寫上述程序將提高速度。因為一般的硬件平臺沒有浮點運算單元,通常將浮點轉成定點進行處理。原程序中對變換系數采取了定標處理,將它們左移12位變成定點處理。因此可以利用Cortex-M4平臺的DSP指令和浮點功能對上述程序進行優化,變換代碼如

4.3 顏色空間變換的優化實現

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

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

圖5 LCD屏播放的視頻

5 結束語

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

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

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

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

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

[5] 王 海,劉彥隆.基于JPEG圖像壓縮算法的研究[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.

猜你喜歡
指令優化
聽我指令:大催眠術
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
基于低碳物流的公路運輸優化
現代企業(2015年2期)2015-02-28 18:45:09
主站蜘蛛池模板: 日韩小视频网站hq| 九九九精品视频| 青青草91视频| 91成人在线免费视频| 中文字幕无码中文字幕有码在线| 天堂在线视频精品| 国产网站一区二区三区| 久久这里只有精品国产99| 亚洲啪啪网| 亚洲欧美在线综合一区二区三区 | 国产菊爆视频在线观看| 国产精品久久久久久久久| 韩日午夜在线资源一区二区| 亚洲第一成网站| 女人一级毛片| 久久久久亚洲精品成人网 | 日韩乱码免费一区二区三区| 国模私拍一区二区| 欧美日韩中文国产va另类| 国产极品美女在线| 国内精品久久久久久久久久影视 | 国产福利影院在线观看| aⅴ免费在线观看| 欧美精品1区| 国产免费a级片| 在线观看国产黄色| 丁香综合在线| 欧美日韩一区二区三| 国产九九精品视频| 国内精自线i品一区202| 国产办公室秘书无码精品| 天堂网亚洲系列亚洲系列| 51国产偷自视频区视频手机观看| 国产成人精品一区二区不卡| 最新日韩AV网址在线观看| 国产自在线播放| 亚洲精品中文字幕无乱码| 色综合手机在线| 亚洲首页国产精品丝袜| 青青热久免费精品视频6| 无码内射中文字幕岛国片| 91伊人国产| 亚洲天堂精品在线| 一级毛片免费播放视频| 国产精品自拍合集| 国产亚洲视频在线观看| 2021天堂在线亚洲精品专区 | 亚洲视频欧美不卡| 国产福利不卡视频| 成人国产免费| 国产不卡一级毛片视频| 欧美国产视频| 久久semm亚洲国产| 国产一区在线视频观看| 亚洲精品成人片在线观看| 中文无码精品A∨在线观看不卡| 欧美一道本| 成人日韩欧美| 99精品一区二区免费视频| 欧美中出一区二区| 国产福利影院在线观看| 自拍亚洲欧美精品| 极品私人尤物在线精品首页| 久久国产av麻豆| 国产毛片基地| 国产九九精品视频| 亚洲无码A视频在线| 麻豆AV网站免费进入| 全部免费毛片免费播放| 亚洲人成网址| 麻豆精品在线视频| 欧美成人怡春院在线激情| 日韩精品一区二区三区免费| 制服丝袜亚洲| Aⅴ无码专区在线观看| 久久大香香蕉国产免费网站| 国产福利小视频高清在线观看| 欧美区一区| 无码国产伊人| 国产美女免费| 久草视频精品| 日韩A∨精品日韩精品无码|