• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2014-01-01 03:10:12丁建橋張正華
      無線電通信技術 2014年2期
      關鍵詞:人民郵電出版社緩沖區(qū)調用

      丁建橋,周 磊,張正華

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

      0 引言

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

      1 VPU的工作流程

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

      圖1 VPU內部工作流程

      2 VPU控制接口

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

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

      3 應用程序設計

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

      圖3 編碼操作流程

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

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

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

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

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

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

      4 實驗結果及分析

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

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

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

      表5 CIF格式視頻實驗結果

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

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

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

      5 結束語

      以IMX53開發(fā)板為平臺,通過調用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] 李?。曨l質量的主觀評估方法研究[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 環(huán)境高級編程(第2版)[M].尤晉元,張亞英,戚正偉,譯.北京:人民郵電出版社,2006.

      猜你喜歡
      人民郵電出版社緩沖區(qū)調用
      小日子,大自在
      讀者(2024年5期)2024-03-04 03:13:25
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
      對某人而言,是為全部
      核電項目物項調用管理的應用研究
      LabWindows/CVI下基于ActiveX技術的Excel調用
      測控技術(2018年5期)2018-12-09 09:04:46
      基于系統(tǒng)調用的惡意軟件檢測技術研究
      趙厚麟 :贊《通信世界》,常盛不衰;賀《通信世界》,惠及全球!
      通信世界(2016年25期)2016-04-11 01:30:52
      關鍵鏈技術緩沖區(qū)的確定方法研究
      利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
      Neighbor self-optim izing process design based on X2 in TD-LTE system
      汉寿县| 吴堡县| 麻栗坡县| 抚宁县| 肃宁县| 宜州市| 长宁县| 浦江县| 沙洋县| 土默特右旗| 安吉县| 新巴尔虎右旗| 海阳市| 嘉善县| 临高县| 赣州市| 简阳市| 辉县市| 兴安盟| 稻城县| 视频| 农安县| 邓州市| 卢氏县| 张北县| 泰宁县| 溧水县| 浦东新区| 大田县| 阜康市| 安平县| 日喀则市| 田阳县| 新和县| 屏山县| 邛崃市| 疏勒县| 小金县| 酉阳| 武功县| 惠水县|