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

基于IMX53的視頻編碼的研究與應用

2014-01-01 03:10:12丁建橋張正華
無線電通信技術 2014年2期

丁建橋,周 磊,張正華

(揚州大學信息工程學院,江蘇揚州225000)

0 引言

多媒體信息技術和計算機網絡得到飛速發展,視頻作為信息的核心載體之一,能夠給人最大直觀的視覺感受,所以已成為電子信息技術領域研究的熱點,得到了最廣泛的應用[1]。但是視頻信號數字化后的數據量非常龐大,這無疑給存儲器的存儲容量、通信線路的信道傳輸率以及計算機的處理速度都帶來了極大的壓力。解決這一問題,單純通過擴大存儲器容量和增加通信線路的傳輸率是不現實的,因此需要對視頻數據進行壓縮編碼。現如今,對視頻的壓縮編碼從實現方式來分可分為軟件編碼和硬件編碼[2]。由于在相同硬件平臺上,硬件編碼速率要比軟件編碼快的多,并且在運行過程中占用平臺的資源也很少,因此采用Frescale公司的IMX53對多種分辨率的原始視頻序列進行編解碼。

1 VPU的工作流程

IMX53中的VPU是一個高性能和多標準的視頻編解碼引擎,支持對高達1 280×720像素的視頻序列進行編碼。VPU的內部工作流程如圖1所示。主處理器通過IP總線對BIT處理器進行控制。在視頻編解碼器編碼或解碼一個宏塊之前,BIT處理器配置各子塊,使能它們,并且配置如何創建該編解碼器管道。然后,宏塊處理器根據BIT處理器的配置來對視頻編碼模塊的運行進行控制。視頻編碼模塊通過AXI總線在外部存儲器中讀取YUV格式的原始視頻序列,并對其進行H.264格式的編碼,然后再把編碼后的視頻通過AXI總線存儲到外部存儲器。如果對一個宏塊的處理全部完成,宏塊處理器就會通知BIT處理器對宏塊的編解碼已經完成,然后BIT處理器把整個操作的結果和狀態信息通過IP總線返回給主處理器。

圖1 VPU內部工作流程

2 VPU控制接口

VPU的 API提供了一個簡單的方法來控制VPU。API控制VPU的大體框圖如圖2所示。主處理器向VPU發送命令和相應的參數來預定義API,然后主機應用程序通過調用一系列的API函數來控制VPU,接著從API函數中給出的命令被寫入到一個特定的I/O寄存器上,而輸入輸出的數據結構通過一系列的命令I/O寄存器傳輸,這些寄存器包含輸入的參數和輸出的結果。VPU系統管理器按照接收到的命令和參數執行相應的操作,然后編解碼模塊根據相應編解碼庫對原始視頻進行處理。最后ARM主機從VPU接收到一個操作完成的中斷請求后,主機應用程序接收到對應的處理結果,并且調用API函數結束本次幀的處理或繼續處理下一個幀。

圖2 主機接口和VPU的軟件控制

3 應用程序設計

編碼的原始數據流來自外部存儲器。具體的視頻編碼操作流程如圖3所示。

圖3 編碼操作流程

要對這些數據流進行編碼操作,應用程序要完成以下操作:

首先,調用vpu_Init()函數完成對VPU的初始化,接著調用vpu_Encopen()函數啟動一個新的編碼操作,創建一個編碼器實例。在創建該實例之前,調用IOGetPhyMem()來分配連續的物理比特流緩沖區,其中入口參數為encop.bitstreamBuffer。調用IOGetVirMem()得到比特流緩沖區的相對應的虛擬地址,然后在用戶空間把比特流寫入到該地址。

使用命令EBC_SET_SEARCHRAM_PARAM和IOGetIramBase()來查詢系統中內部RAM對于VPU的使用情況,然后使用vpu_EncGetInitialInfo()獲得對于編碼器操作來說至關重要的參數,例如所需的幀緩沖區大小等等,再按照從vpu_EncGetInitialInfo()返回的所需的幀緩沖區大小,分配一個合適大小的幀緩沖區,調用vpu_EncRegisterFrameBuffer()來通知VPU。接著調用vpu_EncGiveCommand()通過特定的命令和參數來為編碼后的數據創建高等級的報頭語法(創建了一個編碼器實例后,必須從新配置編碼器操作)。

調用vpu_EncStartOneFrame()開始對視頻序列進行逐幀的編碼操作。調用vpu_WaitforInt()來等待幀編碼操作完成的中斷信號,并且使用vpu_Is-Busy()檢查VPU是否處于空閑狀態,如果VPU空閑,繼續下一步;否則,繼續等待。當對一個幀編碼完成后,使用vpu_EncGetOutputInfo()得到編碼器的輸出信息以及檢查編碼器操作結果,例如圖像類型、地址以及產生的比特流的大小等。如果還有其他的幀需要編碼,則再次調用vpu_EncStartOneFrame()繼續對視頻進行編碼操作;否則通過關閉實例來終止對該序列的編碼處理,該操作通過調用vpu_Enc-Close()來完成。使用IOFreePhyMem()和IOFree-VirtMem()釋放所有的分配的存儲空間。最后調用vpu_UnInit()釋放系統的資源。

為原始視頻的圖像幀分配幀緩沖區的應用程序操作步驟如下:

首先,根據幀緩沖區的個數和大小為其分配內存空間。然后,再分配用于存儲幀緩沖區指針地址的內存空間。接著,根據所需的個數分配幀緩沖區,并分別把每一個幀緩沖區中圖像幀亮度地址和色度地址等信息存儲到之前分配的內存空間中。根據通過vpu_EncGetInitialInfo()函數得到的信息參數,調用vpu_EncRegisterFrameBuffer()函數為VPU內部圖像幀分配寄存器幀緩沖區,其中包括參考幀、重建幀等等。最后,如果原始視頻來自視頻傳感器則要對視頻傳感器進行相應的配置,否則為原始視頻的圖像幀分配一個單獨的幀緩沖區,并且把原始視頻的圖像幀的地址信息存儲到之前分配的內存空間中。

4 實驗結果及分析

本文的實驗測試平臺為Freescale公司的IMX53 Quick Start Board。VPU的固件版本是13.4.41,VPU代碼庫版本是5.3.2。使用的操作系統為由LTIB內核配置系統構建的Linux操作系統。開發板和PC主機通過串口和網口進行通信,串口用于控制終端Minicom對開發板的控制通信,網口用于NFS服務通信。通過編譯VPU測試程序,然后在IMX53上運行,來測試VPU的H.264標準的編碼性能。

由于1 280×720像素的視頻是現在主流的高清視頻格式,而CIF格式視頻在監控領域得到廣泛應用。因此,測試對象是從測試視頻網站 http://media.xiph.org/video/derf/下載的 8段 YUV 格式的原始視頻序列,規格分別為1 280×720像素的高清視頻(如表4所示)與352×288像素CIF格式的視頻(如表5所示)。

表4 1 280×720像素高清視頻實驗結果

表5 CIF格式視頻實驗結果

視頻壓縮的目標是在保證視頻的主觀質量的前提下盡可能地提高壓縮率[3],因此對編碼器性能的評價分為客觀評價和主觀評價。主觀評價就是通過人在給定的觀察條件下觀察視頻圖像,對視頻圖像的優劣做主觀評定,然后對評分進行統計平均來得到評價結果[3,4]。客觀評價通常采用壓縮比Cr和編碼率來衡量。設圖像的尺寸為M×N個像素,每個像素為BpBit,壓縮后的總比特數為Bc。

壓縮比定義為:

由文獻[5]了解,對視頻進行H.264標準的編碼在保證較高壓縮比的情況下有很好的視頻圖像質量,并且本文是測試視頻編碼器VPU對視頻編碼標準H.264的編碼性能。因此在實驗中主要對編碼器VPU的性能進行客觀評價。

4.1 VPU性能的主觀評價

通過調用VPU對表4和表5中的8段YUV格式的原始視頻進行H.264格式的視頻編碼。完成編碼后使用支持H.264標準的播放器對編碼后的8段視頻分別進行播放。這8段視頻均能夠流暢播放,視頻圖像畫面清晰,無失真和塊效應。在編碼后的視頻Shields和Paris中截取的圖像如圖4和圖5所示。

圖4 Shields的視頻截圖

圖5 Paris視頻截圖

4.2 VPU性能的客觀評價

測試后得到的數據分別記入表4和表5中。由于VPU對視頻的處理是基于幀的,因此在本實驗中使用編碼率的單位為fps(Frame Per Second)。

由表4和表5中的實驗結果看出,在IMX53上對YUV格式的原始視頻序列進行H.264標準的壓縮編碼,能夠在保證視頻的主觀視覺質量的前提下得到很高的壓縮比,尤其是對于像CIF格式的低分辨率視頻壓縮效果更為顯著,但是對于像parkrun圖像背景和對象運動劇烈的視頻壓縮比較低。VPU對視頻進行編碼的速率也很高,最高可對幀頻為30 fps的1 280×720像素高清視頻進行實時的壓縮編碼。

5 結束語

以IMX53開發板為平臺,通過調用VPU模塊對YUV格式的原始視頻進行H.264標準的壓縮編碼。該方案支持通過不同方式獲得的不同分辨率的原始視頻的壓縮編碼。IMX53實驗結果證明該方案對原始視頻的壓縮效率非常高,從而更加有利于視頻的存儲和傳輸。

[1] 畢厚杰.新一代視頻壓縮編碼標準—H264/AVC[M].北京:人民郵電出版社,2005:11 -12.

[2] 劉恩虹,周兵,葛寶珊,等.基于H.264的嵌入式視頻編碼器[J].計算機工程,2009,35(9):227 -230.

[3] 劉峰.視頻圖像編碼技術及國際標準[M].北京:北京郵電大學出版社,2005.

[4] 李健.視頻質量的主觀評估方法研究[D].西安:西安電子科技大學,2009:23 -27.

[5] 鄧中亮,段大高,崔巖松,等.基于H.264的視頻編/解碼與控制技術[M].北京:北京郵電大學出版社,2010.

[6] LUTHRA A,SULLIVAN G J,WIEGAND T.Introduction to the Special Issue on the H.264/AVC Video Coding Standard [J].IEEE Journals and Magazines,2003:557 -559.

[7] HALLINAN Christopher.Embedded Linux Primer(Second Edition)[M].北京:人民郵電出版社,2012.

[8] 鳥哥.鳥哥的Linux私房菜[M].北京:人民郵電出版社,2010.

[9] MTTHEW N,STONES R.Linux程序設計(第 4版)[M].陳建,宋健健,譯.北京:人民郵電出版社,2010.

[10]莫爾勒.深入 Linux內核架構[M].郭旭,譯.北京:人民郵電出版社,2010.

[11]STEVENS W R,RAGO S A.UNIX 環境高級編程(第2版)[M].尤晉元,張亞英,戚正偉,譯.北京:人民郵電出版社,2006.

主站蜘蛛池模板: 伊人大杳蕉中文无码| 亚洲永久免费网站| 国产成人久视频免费| 国模视频一区二区| 欧美国产日韩在线播放| 一本大道香蕉中文日本不卡高清二区| 黄色网在线免费观看| 亚洲精品成人7777在线观看| 青青青视频免费一区二区| 色综合天天综合| 成人无码一区二区三区视频在线观看 | 国产丝袜第一页| 三级国产在线观看| 99久久精品国产精品亚洲| 欧美激情视频在线观看一区| 蝴蝶伊人久久中文娱乐网| 人人爽人人爽人人片| 亚洲人在线| 91免费观看视频| 国产精品久久久久久影院| 91精品福利自产拍在线观看| 久久99久久无码毛片一区二区 | 欧美成人a∨视频免费观看| 亚洲国产无码有码| 亚洲Aⅴ无码专区在线观看q| 日本少妇又色又爽又高潮| 国产一区二区网站| 久久精品嫩草研究院| 国产亚洲高清在线精品99| 国产精品免费电影| 亚洲精品国产自在现线最新| 亚洲综合中文字幕国产精品欧美| 欧美a√在线| 日韩欧美国产中文| 激情国产精品一区| 91美女视频在线观看| 91亚洲精品国产自在现线| 精品国产中文一级毛片在线看| 国产99视频在线| 亚洲精品桃花岛av在线| 久久久久88色偷偷| 91精品国产自产91精品资源| 国产99精品久久| 国产精品综合久久久 | 精品久久久久久久久久久| 欧美国产日韩另类| 伊人色在线视频| 国产精品自在线天天看片| 九九视频在线免费观看| 91探花在线观看国产最新| 亚洲精品中文字幕无乱码| 久久大香香蕉国产免费网站| 亚洲综合在线最大成人| 国产欧美精品午夜在线播放| 中文字幕人妻av一区二区| 欧美精品啪啪一区二区三区| 亚洲一区二区视频在线观看| 亚洲性影院| 国产在线一区二区视频| 国产成人亚洲综合A∨在线播放| 五月天天天色| 精品一区二区三区四区五区| 精品午夜国产福利观看| 91无码视频在线观看| 欧美国产日韩在线观看| 色综合中文| 再看日本中文字幕在线观看| 国产成人精品视频一区二区电影 | 成人一区专区在线观看| 毛片一区二区在线看| 毛片基地视频| 91亚洲精选| 无码精品国产VA在线观看DVD| 欧美一级视频免费| 亚洲大学生视频在线播放| 成年人国产网站| 91蜜芽尤物福利在线观看| 亚洲成在人线av品善网好看| 亚洲第一色网站| 亚洲一级毛片在线观播放| 蜜臀AV在线播放| 青青操国产|