《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > H.264視頻編碼器在DM6437上的優化實現
H.264視頻編碼器在DM6437上的優化實現
來源:《電子設計工程》
作者:何蘇勤 劉靜 邢藏菊
摘要: 摘要:為了實現基于DSP的H.264視頻編碼器的實時性能,提出了一系列優化實現方法。首先結合TMS320DM6437硬件特點,描述了X264代碼向TMS320DM6437平臺的移植過程和優化方法,重點介紹了整數DCT變換和量化的線性匯編編寫及匯編級優化。實驗結果表明,本編碼器實現了cif'格式視頻的實時編碼,Dl格式視頻的編碼速率也達到了18 fps,基本滿足視頻監控系統中編碼器的需求。
Abstract:
Key words :

摘要:為了實現基于DSPH.264視頻編碼器的實時性能,提出了一系列優化實現方法。首先結合TMS320DM6437硬件特點,描述了X264代碼向TMS320DM6437平臺的移植過程和優化方法,重點介紹了整數DCT變換和量化的線性匯編編寫及匯編級優化。實驗結果表明,本編碼器實現了cif'格式視頻的實時編碼,Dl格式視頻的編碼速率也達到了18 fps,基本滿足視頻監控系統中編碼器的需求。

H.264作為新一代多媒體視頻編碼標準,采用了許多先進的技術,在編碼效率和性能大幅度提高的同時,增加了抗誤碼及網絡白適應等功能,廣泛地應用于視頻電話、移動視頻流媒體等場合。傳統上進行音視頻開發一般使用視頻編解碼ASIC芯片的方法,但是這種方法開發周期長、適應性差,而近年出現的高性能DSP(數字信號處理器)就很好的解決了這些問題且產品性能更穩定,所以筆者采用TI公司專門推出的高性能DSP平臺TMS320DM6437(簡稱DM6437)數字媒體處理器來實現H.264視頻編碼器[21。X264是一款支持H.264標準的開源編碼器代碼,是南網上自由組織聯合開發,注重實用,與另外兩種開源代碼JM和T264相比,在不明顯降低圖像質量的基礎上,大大降低了計算復雜度,廣泛應用于視頻壓縮和格式轉換領域,兇此本文選擇開發源代碼X264(20081113版)進行研究。

基于DM6437平臺實現H.264編碼器,需要通過改進算法或者重新進行資源配置,以滿足應用環境的要求。筆者重點研究了H.264編碼器在以TMS320DM6437為日標的CCS平臺上的移植和優化工作,包括C語言級的優化、算法優化、整數DCT變換和量化的線性匯編編寫以及匯編級優化等。

1 H.264視頻編碼器的構建

1.1  X264編碼器到DM6437的移植

X264編碼器支持H.264的基本檔次以及主要檔次的某些功能選項和功能模塊,代碼尺寸非常龐大,視頻編碼速度相當慢。在對X264源碼研究過程中,發現在視頻編碼質量下降不是很明顯的情況下,可以將一些功能模塊刪除,以減小代碼尺寸,加快編碼速度。此項工作在文獻[3-4]中均有詳細講解,讀者可根據實際情況進行調整應用。筆者利用TI公司提供的CCS3.3  (Code Composer Studio)平臺,將裁剪后的X264模型移植到DM6437平臺上。

1.2 視頻采集

DM6437數字媒體處理器中的視頻處理前端(VPFE)具有視頻采集功能,可以將CCD攝像頭采集的RGB圖像轉換為符合BT.656規范的YUV4:2:2圖像。采集完的視頻數據在內存中的數據結構如圖l所示。

在進行H.264視頻編碼時,必須調整原始視頻的數據結構。如果對Dl格式的視頻進行編碼,Y分量數據不變,U分量和V分量數據做垂直方向的2:1亞采樣,轉換成360x288的分辨率;如果對cif'格式的視頻進行編碼,需要對Y分量進行水平和垂直方向的2:1亞采樣,轉換成352x288分辨率,同時對U分量和V分量進行水平方向的2:1亞采樣和垂直方向上的4:1亞采樣,轉換成176x144的分辨率。圖2為經過調整后的Y、U、V各分量的數據結構。

圖l DM6437的VPFE所采集視頻數據的數據結構

圖2調整后視頻數據的數據結構

(注:圖中MxN是Y分量的分辨率,U、V分量的分辨率為( M/2)×( N/2),若為Dl格式,M=720,N=576;若為cif格式,M=352,N=288)1.3 LCD回放DM6437視頻處理子系統中的視頻處理后端(VPBE)負責將符合BT.656規范的YUV4:2:2數據轉換成RGB數據,兇此可以與LCD顯示器進行無縫連接。在攝像頭采集和|L264編碼工作完成以后,本文提出LCD回放模塊,進行重建圖像回放,便于觀察效果?;贒M6437實時視頻采集的H264視頻編碼器系統框圖如圖3所示。

圖3系統框架示意圖

H.264編碼器在DM6437上的優化剛構建好的基于DM6437的H.264編碼器很慢,難以滿足視頻監控需求,必須對其進行優化,提高處理性能。對H264編碼程序主要從系統優化、算法優化和匯編優化3個方面進行。

2.1系統優化系統優化主要是對ccs提供的各種編譯參數進行選擇、搭配、調整。主要從以下幾個方面進行優化:l)編譯器的優化。首先設定合適的編譯選項,控制編譯器生成更高效、代碼尺寸更小的匯編代碼。文中設計的H.264編碼器所用到的編譯選項包括:-pm,-op2,-03,-mt,-mh,-k等。2)DSP/BIOS的配置.、在DM6437的開發中,CaChe和EDMA等功能的應用已不能單純通過在程序中調用相關API來實現,必須在有DSP/BIOS進行管理的條件下才能正常T作,此時就涉及到存儲空間的合理配置,為了最大化DM6437的存儲性能,本文通過進行多次配置后編碼器T作性能的比較,將LIP配置為32 kB的LIP-Cache.將LID配置為32 kB的LIDCaehe和48kB的LIDSRAM,將L2配置為64 kB的L2Cache和64 kB的L2SRAM。在DM6437中配置Cache過程包括:Ll和L2Cache大小的設置,模式的設置,以及外部存儲器DDR可被高速緩存的設置。3)任務調度。文中設計的H.264視頻編碼器中采集和回放過程的主要操作是數據搬移,可以用EDMA3來實現,進而解放CPU來專心進行編碼T作。兇此設置一個任務即可。

2.2算法優化H.264數字視頻編碼標準,具有很高的壓縮性能,但其運算復雜度是H.263標準的3倍以上,所以需要采用算法來降低運算復雜度。其中比較常用的方法是在幀內/幀間預測過程中采用快速算法,降低模式選擇的次數:或者是對H.264中采用的Lagrangian率失真優化模型進行化簡,提高運算的速度。除上述方法之外,全零塊預判算法也是有效手段之一。

在低碼率視頻應用中,常見的是運動緩慢的具有靜止背景的圖像,靜止背景經過DCT和量化后往往所有系數都為零。被判斷為全零塊的圖像塊可以省去DCT和量化兩個環節而降低運算量、節約運算時間。因此基于H.264編碼器的預判零方案如圖4所示。

圖4  H.264編碼器預判零方案

由于H.264中的幀間模式有16x16、16x8、8x16、8x8、8x4、4x8、4x4 7種模式,所以在運動搜索過程中,零塊的判決閥值也要隨幀間模式的變化而發生變化,不同塊模式(MxN塊)的零塊判決閥值可以定義為:

(1)

其中,M、N=4、8或16,是MxN塊中4x4塊的個數,即為MxN/16。

根據以上的分析,基于最佳零塊判決的運動搜索算法,在進行運動搜索時,加入停止搜索條件,對根據運動矢量計算出來的每個子塊的SAD值進行全零塊判決,這個判決門限由(1)決定,若當前MxN塊的SAD小于門限值,則提前結束對該子塊的運動搜索,并跳過其后的變換和量化操作:否則與常規的運動搜索過程相同。

新的AZBs檢測方法可歸納如下:

1)檢查當前M×N塊的SAD值是否小·THl的值。

如果是真的,判定該M×N塊不是全零塊,否則轉到步驟2);

2)檢查當前M×N塊的SAD值是否小于·THO的值。

如果是真的,判定該M×N塊是全零塊,否則轉到步驟3):

3)執行DCT/Q模塊。

2.3匯編優化文中在CCS3.3中用profile T具對H.264程序進行剖析,結果如表1所示,可發現H.264標準中運動估計、DCT變換、量化等是最耗時的部分。

對這些耗時部分主要采用以下2種方式進行優化:

1)內聯函數(intrinsics)優化  內聯函數是C6000編譯器提供的可以直接映射成為內聯(inline)匯編指令的特殊函數,這樣就可以提高應用程序的性能。由于上述函數都很適合運用數據打包和SIMD(單指令多數據)操作,而6000編譯器提供的內聯函數中有很多相關的函數接口,因此將這些費時函數全部用內聯函數進行改寫,例如要進行4x4塊的量化操作,需要16次循環,要進行16次取數據,16次乘法,16次加法,16次移位操作。dct數組元素寬度為16位,可以利用_memd8()函數一次讀取4個數組元素,這樣可將讀取數據次數減為4次,并在外層循環體內使用其他intrinsics函數一次對兩個DCT數組元素進行處理,從而拆解了內層循環。

2)線性匯編優化  整數DCT變換及量化過程在H.264編碼器代碼中占用了大概20%~25%的時間,對該部分進行匯編級優化,可提高編碼器的性能。整數DCT變換的關鍵函數sub4x4_dct用于計算殘差塊并對殘差塊進行整數DCT變換;add4x4_idct函數是其逆過程,作用是對反量化后的系數進行反DCT變換,并將反變換后的系數矩陣與預測塊矩陣疊加。以sub4x4_dct函數為例,對整數變換的線性匯編級優化過程進行說明。整數變換的公式見(2)式。

為4x4殘差矩陣,即待編碼塊src與pred預測塊的差值,見(3)式。

首先使用兩次LDNW指令從指定存儲器中讀出src和pred中的第一行數據,使src00和src01,src02和src03,pred00和pred01,pred02和pred03分別存放在同一個寄存器中。然后使用兩條SUB2指令進行對應像素的減運算,得到X矩陣的第1行元素。重復以上操作3次就得到整個殘差矩陣。接著使用6次ADD2指令計算,可得,依次類推,可以計算出剩余的3行。最后在這個運算中,使用PACK2和PACKH2指令來對數據進行重新打包,完成數據的交換。

整數DCT4x4蝶形變換過程中,將二維整數變換轉換為兩次一維的變換,先進行水平變換,水平變換后的系數按列存放,垂直變換就轉換成系數矩陣的水平變換。兇此,水平變換和垂直變換可以調用相同的程序來完成。

對量化函數采取匯編優化后,把和MF值用表的形式存儲,要使用這兩個參數時,從表中讀取i_qscale的對應值。整數DCT變換及量化過程優化前后的效率如表2所示。

3  實驗結果文中對經過移植和優化后的H.264編碼器進行實驗驗證,選取具有代表性的視頻序列akiyo(背景簡單,景物運動緩慢)進行編碼,視頻為YUV 4:2:0格式,采用IPPP ……編碼模式,DM6437的時鐘頻率為600 MHz,對于cif'和Dl視頻格式的圖像在不同QP值下測試的結果如表3所示。

(注:平均PSNR的單位為dB.碼率單位為kbit/s,編碼速度單位為fps)對表3進行分析可以看出,在PSNR和碼率沒有引起明顯變化的情況下,H.264編碼器的編碼速度獲得了極大的提高,其中cif格式視頻編碼已經滿足實時性要求,同時Dl格式在QP=36時編碼速度達到了18 fps,這樣的編碼性能基本可以滿足視頻監控系統中的應用。

編碼結束后生成的.264文件存到PC機,可以用VLCplayer進行解碼播放。解碼播放出來的圖像如網5所示。

圖5為用VLC播放cif格式的akiyo視頻文件的截圖,圖(a)表示akiyo視頻原文件截圖,圖(b)表示經過H.264編碼器編碼的akiyo視頻文件截圖,由截圖的畫面質量可以看出,圖像質量沒有明顯下降,整個畫面有不明顯的噪點(臉部).顏色偏暗,證明此H.264編碼器對于cif格式的視頻文件編碼效果較好。

4 結 論

文中首先在DM6437上構建了H.264視頻編碼器,編碼器主要分為攝像頭實時采集、H.264編碼、LCD回放3個部分,組成一個完整的可觀看編碼效率和效果的系統。將X264編碼器移植到DM6437平臺之后,對DM6437硬件資源及性能進行深入研究,分別從C語言級、系統級、算法級、整數DCT變換和量化的線性匯編編寫以及匯編級等方面進行優化,最終實現了cif'格式視頻的實時編碼,基本滿足視頻監控系統中編碼器的需求。本文介紹的針對DM6437平臺的H264編碼器移植、優化的思路和方法,對構建高效的視頻應用平臺具有一定的參考價值。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品激情电影| 国产精品毛片a∨一区二区三区|国| 欧美在线999| 亚洲精品国产精品久久清纯直播| 黄色一区二区在线观看| 国产自产精品| 久久免费午夜影院| 久久久999精品视频| 久久久国产一区二区| 欧美在线一区二区三区| 亚洲精品乱码久久久久久蜜桃91| 国产精品一区2区| 亚洲美女少妇无套啪啪呻吟| 中文精品在线| 国产精品一区二区三区四区五区| 午夜欧美不卡精品aaaaa| 麻豆九一精品爱看视频在线观看免费| 欧美激情第一页xxx| 99精品免费视频| 欧美体内she精视频| 亚洲精品国产精品乱码不99| 欧美日韩一区二区三区高清| 99精品视频免费观看视频| 午夜精品久久久99热福利| 免费日韩av| 欧美日一区二区三区在线观看国产免| 亚洲视频大全| 最新日韩在线| 免费国产自线拍一欧美视频| 国产精品尤物福利片在线观看| 9色porny自拍视频一区二区| 国产精品日韩精品欧美精品| 亚洲黄色av一区| 国产欧美日韩| 免费一级欧美片在线播放| 欧美视频第二页| 亚洲黄色免费| 亚洲激情欧美激情| 久久久精品一区二区三区| 欧美日韩综合久久| 亚洲日本一区二区| 久久午夜电影| 欧美日韩在线观看一区二区三区| 亚洲美女色禁图| 一区二区三区在线免费视频| 国产欧美激情| 欧美日韩黄视频| 亚洲国产91| 国产农村妇女毛片精品久久莱园子| 欧美一区二区精美| 欧美激情一区二区三区在线视频观看| 久久亚洲精品中文字幕冲田杏梨| 一区二区三区无毛| 亚洲欧洲av一区二区| 亚洲激情网站| 欧美午夜免费电影| 欧美一区激情视频在线观看| 亚洲春色另类小说| 欧美绝品在线观看成人午夜影视| 亚洲乱码国产乱码精品精98午夜| 国产精品五月天| 亚洲国产高清aⅴ视频| 国产视频在线一区二区| 久久精品国产免费看久久精品| 欧美激情一区二区三区在线视频| 久久av在线看| 亚洲国产一区视频| 国产精品扒开腿爽爽爽视频| 原创国产精品91| 99热这里只有成人精品国产| 激情一区二区三区| 亚洲国产三级在线| 国产日韩视频一区二区三区| 91久久精品国产91性色| 一区二区三区在线观看国产| 国产精品毛片在线| 欧美一区二区三区免费观看| 国产精品国产三级国产普通话三级| 午夜精品影院| 美国三级日本三级久久99| 国产午夜精品福利| 亚洲高清在线观看| 亚洲高清视频一区| 国产精品一区二区欧美| 久久激情五月丁香伊人| 久久精品国产免费观看| 亚洲一区二区高清视频| 99精品热6080yy久久| 午夜久久美女| 亚洲欧美日韩在线观看a三区| 欧美亚日韩国产aⅴ精品中极品| 国产精品免费久久久久久| 国产女主播一区| 亚洲视频在线看| 亚洲国产另类久久精品| 欧美日韩免费一区二区三区| 亚洲肉体裸体xxxx137| 国产综合欧美在线看| 欧美国产极速在线| 亚洲第一搞黄网站| 欧美第一黄网免费网站| 亚洲一区二区网站| 久久久国产精彩视频美女艺术照福利| 久久av一区二区三区亚洲| 亚洲午夜精品网| 亚洲第一免费播放区| 亚洲欧美久久久久一区二区三区| 欧美一区二区高清| 亚洲一区二区在线观看视频| 欧美黑人在线观看| 久久久久久久久岛国免费| 亚洲欧美视频在线观看| 欧美日韩一区二区国产| 亚洲私人黄色宅男| 欧美午夜影院| 久久国产精品一区二区三区四区| 欧美一区二区三区视频免费播放| 亚洲天堂网在线观看| 久久大香伊蕉在人线观看热2| 亚洲在线中文字幕| 欧美亚洲视频在线看网址| 午夜性色一区二区三区免费视频| 欧美美女喷水视频| 国模私拍一区二区三区| 在线视频国产日韩| 欧美日韩精品免费观看| 欧美一区二区网站| 国产精品国码视频| 亚洲一区二区三区在线视频| 亚洲精品中文字幕在线观看| 欧美成人亚洲成人| 久久琪琪电影院| 欧美一区二区三区在线观看视频| 国产综合久久久久影院| 久久国产一区二区| 国产一区再线| 国产一区二区成人| 久久精品噜噜噜成人av农村| 蜜乳av另类精品一区二区| 欧美高清日韩| 亚洲婷婷国产精品电影人久久| 久久精品亚洲乱码伦伦中文| 国产精品扒开腿做爽爽爽软件| 久久综合给合| 国产精品xxx在线观看www| 久久综合九色综合欧美就去吻| 亚洲精品日日夜夜| 国产欧美一区二区在线观看| 亚洲福利一区| 亚洲免费中文字幕| 午夜伦欧美伦电影理论片| 国产美女精品免费电影| 国产精品亚洲人在线观看| 国产美女在线精品免费观看| 亚洲精品在线三区| 欧美区一区二区三区| 亚洲一级黄色片| 国产农村妇女精品| 99国产精品久久久久久久久久| 午夜精品久久久久久久久久久| 亚洲欧美国产不卡| 亚洲娇小video精品| 欧美激情自拍| 国产精品swag| 国产伦精品一区二区三区高清版| 一本色道综合亚洲| 久久国产欧美| 国产曰批免费观看久久久| 国产精品久久久一区二区三区| 在线观看亚洲视频啊啊啊啊| 国产日韩欧美| 亚洲欧美激情四射在线日| 免费观看日韩av| 国内外成人在线| 亚洲裸体俱乐部裸体舞表演av| 国产精品美女一区二区| 欧美久久久久久| 激情视频亚洲| 久久国产福利| 欧美日韩成人一区| 久久久精品一区二区三区| 午夜精品美女久久久久av福利| 欧美日韩日日骚| 国产精品美女视频网站| 一本色道久久综合亚洲精品按摩| 久久免费偷拍视频| 欧美三级视频在线| 亚洲韩国青草视频| 欧美激情网站在线观看| 美女999久久久精品视频| 欧美亚洲成人网| 麻豆精品91| 欧美电影在线免费观看网站| 黄色在线成人| 国产精品久久久久久户外露出| 欧美人与性动交cc0o| 一区二区三区黄色| 亚洲福利国产精品| 国产精品午夜久久| 国产精品日韩精品欧美精品| 国产综合久久久久影院| 久久精品最新地址| 欧美日韩视频在线一区二区| 久久综合99re88久久爱| 欧美激情一区二区三级高清视频| 欧美一区二区三区四区视频| 国产综合香蕉五月婷在线| 99国产精品视频免费观看一公开| 久久激情久久| 亚洲精品中文字幕在线观看| 欧美夜福利tv在线| 欧美日韩在线观看一区二区三区| 欧美人成免费网站| 欧美国产日本在线| 亚洲三级性片| 亚洲综合三区| 久久久久久午夜| 欧美精品日韩一本| 欧美一区二粉嫩精品国产一线天| 欧美日韩一区综合| 亚洲一级黄色片| 国产亚洲人成a一在线v站| 欧美一区二区三区视频免费| 国产专区精品视频| 欧美精品一区二区三区一线天视频| 亚洲午夜久久久久久久久电影院| 亚洲国产片色| 欧美一区二区精品| 国产精品成人aaaaa网站| 亚洲精选视频在线| 国产亚洲欧美中文| 欧美在线亚洲| 亚洲欧洲美洲综合色网| 一区二区三区国产精华| 国产欧美午夜| 欧美精品久久一区二区| 亚洲欧美日韩国产一区二区| 亚洲国产欧美一区二区三区久久| 欧美另类极品videosbest最新版本| 亚洲激情在线观看视频免费| 一区二区三区偷拍| 欧美视频在线免费看| 久久久久久高潮国产精品视| 国产日韩欧美夫妻视频在线观看| 奶水喷射视频一区| 欧美日韩亚洲视频一区| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲男同1069视频| 欧美特黄一区| 国产精品国产三级国产普通话蜜臀| 久久久精品一品道一区| 久久美女艺术照精彩视频福利播放| 国产亚洲欧美日韩日本| 国产亚洲欧美日韩美女| 亚洲精品乱码久久久久久黑人| 国产日韩专区| 欧美日韩成人一区二区| 欧美电影在线观看完整版| 一级成人国产| 亚洲视频欧洲视频| 欧美成人综合网站| 久久亚洲国产精品日日av夜夜| 老司机亚洲精品| 玖玖精品视频| 国产欧美午夜| 欧美伦理91i| 99视频日韩| 欧美日韩黄色一区二区| 影音先锋国产精品| 国内精品免费午夜毛片| 国产欧美大片| 国产精品视频在线观看| 亚洲国产乱码最新视频| 久久天天躁狠狠躁夜夜爽蜜月| 在线欧美三区| 欧美精品乱码久久久久久按摩| 久久riav二区三区| 欧美日韩视频一区二区| 欧美一级久久| 国产在线高清精品| 久久精视频免费在线久久完整在线看| 亚洲第一在线视频| 亚洲女性裸体视频| 亚洲国产日韩欧美在线99| 欧美成人一区二免费视频软件| 亚洲一区三区电影在线观看| 娇妻被交换粗又大又硬视频欧美| 欧美亚洲综合另类| 欧美另类视频| 国产精品草草| 欧美在线日韩在线| 国产伦精品一区二区三区免费| 国产精品一卡二| 一区二区三区精品久久久| 免费国产一区二区| 亚洲国产精品精华液网站| 久久中文在线| 欧美伦理a级免费电影| 国产日韩亚洲| 国产欧美激情| 狠狠狠色丁香婷婷综合久久五月| 亚洲免费在线视频| 亚洲欧美成aⅴ人在线观看| 国产精品天天摸av网| 亚洲欧美区自拍先锋| 欧美区一区二区三区| 欧美黑人在线观看| 国内自拍一区| 欧美精品久久天天躁| 亚洲一区欧美二区| 亚洲欧美国产精品桃花| 欧美日韩在线大尺度| 欧美国产综合视频| 香蕉成人伊视频在线观看| 黄色成人免费观看| 欧美日本在线看| 9久草视频在线视频精品| 韩国福利一区| 亚洲国产精品成人综合色在线婷婷| 精品69视频一区二区三区| 国产亚洲免费的视频看| 亚洲精品视频在线观看网站| 欧美一二三视频| 欧美精品福利| 亚洲日本成人女熟在线观看| 国产精品一区二区三区四区五区| 欧美va亚洲va日韩∨a综合色| 亚洲四色影视在线观看|