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

H.264視頻編碼器在DM6437上的優化實現

2012-09-26 02:27:16何蘇勤邢藏菊
電子設計工程 2012年8期
關鍵詞:優化

何蘇勤,劉 靜,邢藏菊

(北京化工大學 DSP與嵌入式系統研究室,北京 100029)

H.264作為新一代多媒體視頻編碼標準,采用了許多先進的技術,在編碼效率和性能大幅度提高的同時,增加了抗誤碼及網絡自適應等功能,廣泛地應用于視頻電話、移動視頻和流媒體等場合[1]。傳統上進行音視頻開發一般使用視頻編解碼ASIC芯片的方法,但是這種方法開發周期長、適應性差,而近年出現的高性能DSP(數字信號處理器)就很好的解決了這些問題且產品性能更穩定,所以筆者采用TI公司專門推出的高性能DSP平臺TMS320DM6437(簡稱DM6437)數字媒體處理器來實現H.264視頻編碼器[2]。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圖像[5]。采集完的視頻數據在內存中的數據結構如圖1所示。

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

圖1 DM6437的VPFE所采集視頻數據的數據結構Fig.1 Data structure of captured video data in DM6437

圖2 調整后視頻數據的數據結構Fig.2 Data structure after adjustment

1.3 LCD回放

DM6437視頻處理子系統中的視頻處理后端 (VPBE)[6]負責將符合BT.656規范的YUV4:2:2數據轉換成RGB數據,因此可以與LCD顯示器進行無縫連接。在攝像頭采集和H.264編碼工作完成以后,本文提出LCD回放模塊,進行重建圖像回放,便于觀察效果。基于DM6437實時視頻采集的H.264視頻編碼器系統框圖如圖3所示。

圖3 系統框架示意圖Fig.3 System framework schemes

2 H.264編碼器在DM6437上的優化

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

2.1 系統優化

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

2.2 算法優化

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

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

圖4 H.264編碼器預判零方案Fig.4 H.264 encoder anticipation zero solutions

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

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

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

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

1)檢查當前M×N塊的SAD值是否小于BKMxN·TH1的值。如果是真的,判定該M×N塊不是全零塊,否則轉到步驟2);

2)檢查當前M×N塊的SAD值是否小于BKMxN·TH0的值。如果是真的,判定該M×N塊是全零塊,否則轉到步驟3);

3)執行DCT/Q模塊。

2.3 匯編優化

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

表1 X264主要函數耗時剖析結果Tab.1 Profiling results of H.264

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

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

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

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

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

表2 整數DCT變換及量化過程優化前后效率對比Tab.2 Comparison between before and after Integer DCT transform and quantization process optimization

3 實驗結果

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

(注:平均PSNR的單位為dB,碼率單位為kbit/s,編碼速度單位為fps)

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

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

表3 基于DM6437硬件環境優化前后編碼器性能比較Tab.3 Comparison between before and after optimization based on DM6437

圖5 對H.264編碼生成的cif格式.264文件用VLC解碼截圖Fig.5 Pictures from cif format.264 files coded by H.264 and decoded by VLC

圖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平臺的H.264編碼器移植、優化的思路和方法,對構建高效的視頻應用平臺具有一定的參考價值。

[1]Richardson IEG.H.264and MPEG-4 Video Compression[M].England:John Wiley&Sons Ltd.,2003.

[2]TI Company.TMS320C6000 Programmer’s Guide[EB/OL].[2009-03-10].http://focus.ti.com/lit/ug/spru198i/spru198i.pdf.

[3]李博丞,嚴勝剛,曲鵬.基于TMS320DM6446的H.264編碼器實現與優化[J].電子設計工程,2009,17(5):120-123.

LI Bo-cheng,YAN Sheng-gang,QU Peng.Implementation and optimization of H.264 encoder on TMS320DM6446 platform[J].Electronic Design Engineering,2009,17(5):120-123.

[4]賈浩,崔慧娟,唐昆.基于TMS320DM6437平臺的視頻系統設計與實現[J].電視技術,2010,34(11):159-161.

JIA Hao,CUI Hui-juan,TANG Kun.Design and implementation of video system based on TMS320DM6437 platform[J].TV Technology,2010,34(11):159-161.

[5]Texas Instruments Incorporated.TMS320DM643x DMP Video Proeessing Front End(VPEE)User’s Guide[M].Texas Instruments Incorporated,2008.

[6]Texas Instruments Incorporated.TMS320DM643x DMP Video Proeessing Back End (VPBE)User`s Guide [M].Texas Instruments Incorporated,2007.

[7]Texas Instruments Incorporated.TMS320C6000 Optimizing Compiler Users’Guide[M].Texas Instruments Incorporated,2008.

[8]何蘇勤,延瑾瑜.基于TMS320DM642的H.264六抽頭濾波插值的優化[J].電視技術,2009,33(10):18-20.

HE Su-qin,YAN Jin-yu.Optimization of6-tap filter interpolation in H.264 based on TMS320DM642 [J].TV Technology,2009,33(10):18-20.

[9]侯艷艷.基于TMS320DM642平臺的H.264編碼器優化[J].微計算機信息, 2009,25(2):159-161.

HOU Yan-yan.H.264 encoder optimization based on TMS320-DM642[J].Microcomputer Information,2009,25(2):159-161.

[10]謝丁峰,夏新軍.基于H.264的視頻監控系統關鍵代碼實現與優化[J].計算機技術與發展,2010,20(12):57-60.

XIE Ding-feng,XIA Xin-jun.Implementation and optimization on critical code of H.264 based video surveillance system[J].Computer Technology and Development,2010,20(12):57-60.

猜你喜歡
優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
圍繞“地、業、人”優化產業扶貧
今日農業(2020年16期)2020-12-14 15:04:59
事業單位中固定資產會計處理的優化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 中文字幕66页| 日韩欧美亚洲国产成人综合| 国产精品视频第一专区| 在线一级毛片| 欧美性猛交xxxx乱大交极品| 天天综合亚洲| 免费亚洲成人| 无码AV日韩一二三区| 成年人国产视频| 成人无码一区二区三区视频在线观看| 欧美丝袜高跟鞋一区二区| 日韩中文字幕亚洲无线码| 成人国产精品2021| 久久久亚洲国产美女国产盗摄| 欧美精品伊人久久| 午夜三级在线| 国产视频欧美| 无码国产偷倩在线播放老年人| 国产一级视频久久| 亚洲久悠悠色悠在线播放| 久久99精品久久久大学生| 国产综合色在线视频播放线视| 在线观看91香蕉国产免费| 精品国产三级在线观看| 日韩无码一二三区| 亚洲一欧洲中文字幕在线| 久久中文电影| 女人一级毛片| 97青草最新免费精品视频| 久久精品嫩草研究院| 国产成人h在线观看网站站| 高清视频一区| 在线观看免费黄色网址| 欧美国产视频| 免费啪啪网址| 在线国产毛片手机小视频| 这里只有精品国产| 香蕉久久国产精品免| 国产在线一区视频| 免费观看男人免费桶女人视频| 国产色伊人| 一级毛片视频免费| 伊人久久大香线蕉aⅴ色| 好吊色妇女免费视频免费| 日韩a级片视频| 国产精品.com| 欧美精品亚洲二区| 免费国产一级 片内射老| 欧美精品啪啪一区二区三区| 国产亚洲美日韩AV中文字幕无码成人| 久久精品国产电影| 国产人在线成免费视频| 成人伊人色一区二区三区| 色综合五月婷婷| 成人伊人色一区二区三区| 欧美日韩国产综合视频在线观看| 国产流白浆视频| 国产福利小视频在线播放观看| 国产人成乱码视频免费观看| 青青草原国产一区二区| 真实国产精品vr专区| 9啪在线视频| 亚洲九九视频| 国产自在自线午夜精品视频| 欧美黄色网站在线看| 成人在线综合| 国产精品久久久久久久久久98| 青青草原国产av福利网站| 先锋资源久久| 亚洲一区二区无码视频| 青青久在线视频免费观看| 国产成人凹凸视频在线| 亚洲aaa视频| 日韩在线成年视频人网站观看| 国产欧美在线观看视频| 萌白酱国产一区二区| 国产精品冒白浆免费视频| 国产高清在线精品一区二区三区| 国产亚洲精品97在线观看| 国产精品自在在线午夜| 日韩少妇激情一区二区| 国精品91人妻无码一区二区三区|