當(dāng)前位置:首頁 > 模擬 > 模擬
[導(dǎo)讀]1 引言H.264是ITU-T的視頻編碼專家組(VCEG)和ISO/IEC的活動圖像專家組(MPEG)聯(lián)合制定的視頻壓縮標(biāo)準(zhǔn)。它在H.263/H.263++的基礎(chǔ)上發(fā)展,在繼承所有編碼壓縮技術(shù)優(yōu)點(diǎn)的同時(shí)引入許多全新的編碼技術(shù)和網(wǎng)絡(luò)適配層NAL的概

1 引言

H.264是ITU-T的視頻編碼專家組(VCEG)和ISO/IEC的活動圖像專家組(MPEG)聯(lián)合制定的視頻壓縮標(biāo)準(zhǔn)。它在H.263/H.263++的基礎(chǔ)上發(fā)展,在繼承所有編碼壓縮技術(shù)優(yōu)點(diǎn)的同時(shí)引入許多全新的編碼技術(shù)和網(wǎng)絡(luò)適配層NAL的概念,從而擁有更高的編碼效率和更好的網(wǎng)絡(luò)適配性。為從低碼率的實(shí)時(shí)通信系統(tǒng)或無線環(huán)境到高碼率的HDTV和數(shù)字存儲系統(tǒng)提供一個(gè)優(yōu)良的視頻壓縮編碼通用工具。但H.264標(biāo)準(zhǔn)優(yōu)異的性能表現(xiàn)是以編碼運(yùn)算復(fù)雜度和運(yùn)算量大為代價(jià),在通用的PC機(jī)平臺實(shí)現(xiàn)會占用較大的CPU和內(nèi)存資源。隨著數(shù)字信號處理器(DSP)技術(shù)的高速發(fā)展,DSP的處理速度和能力飛速提高。DSP已滿足H.264標(biāo)準(zhǔn)的編解碼運(yùn)算速度要求。因此,在穩(wěn)定的媒體處理器平臺上實(shí)現(xiàn)H.264標(biāo)準(zhǔn)有著較好的工程意義和應(yīng)用前景。

詳細(xì)介紹了以TMS320DM6446DSP為核心的視頻編碼系統(tǒng)的硬件設(shè)計(jì),并重點(diǎn)研究了H.264編碼器在以TMS320DM 6446為目標(biāo)的CCS平臺上的移植和優(yōu)化工作。

2 視頻編碼系統(tǒng)硬件設(shè)計(jì)

2.1 DSP的選型

DSP選用TI公司的Davinci媒體處理專用器件TMS320DM6446(簡稱DM6446)。它采用ARM+DSP雙核架構(gòu),包含一個(gè)TMS320C64x+核心和一個(gè)ARM926EJ-S核心。C64x+核心采用改進(jìn)的超長指令字VLIW體系結(jié)構(gòu),內(nèi)部擁有8個(gè)并行的運(yùn)算單元,時(shí)鐘頻率600 MHz,峰值處理能力高達(dá)4 752 MI/s。DM6446片內(nèi)為兩級高速緩存(Cache)結(jié)構(gòu),設(shè)計(jì)有獨(dú)立的32位DDR2 SDRAM接口和16位異步EMIF接口。此外,DM6446還集成有多種適用于視音頻多媒體處理的片內(nèi)資源和接口,如用于和外部解碼器連接的視頻處理前端模塊VPFE、和視頻顯示設(shè)備連接的視頻處理后端模塊VPBE、多通道音頻串口等。

DM6446不僅在處理性能上完全滿足H.264標(biāo)準(zhǔn)要求。而且在內(nèi)部結(jié)構(gòu)、片內(nèi)資源和外部接口上對視頻處理應(yīng)用專門優(yōu)化,大大降低視頻應(yīng)用的開發(fā)難度和成本。

2.2 系統(tǒng)結(jié)構(gòu)框圖

視頻編碼系統(tǒng)硬件結(jié)構(gòu)原理框圖如圖1所示。主機(jī)通過PCIE總線對DSP進(jìn)行初始化加載程序。攝像頭輸出的模擬視頻信號經(jīng)視頻解碼模塊轉(zhuǎn)換為數(shù)字信號,經(jīng)FPGA轉(zhuǎn)換電平。通過DM6446的VPFE模塊接口送人DSP,進(jìn)行壓縮編碼處理。編碼后的視頻數(shù)據(jù)從DM6446的EMIF接口輸出通過PCIE總線送回主機(jī)進(jìn)行下一步處理。DM6446的VPBE模塊可將采集的數(shù)字視頻信號再轉(zhuǎn)換為模擬信號輸出至電視進(jìn)行監(jiān)控。DDR2 SDRAM存儲編碼過程中的原始圖像、參考幀、編碼參數(shù)等數(shù)據(jù)。DM6446通過I2C總線配置A/D轉(zhuǎn)換器。FPGA與PCIE橋PEX8311之間加入雙端口RAM,以提高數(shù)據(jù)的傳輸效率。

2.3 視頻解碼模塊設(shè)計(jì)

模擬視頻信號的傳輸格式種類很多,而且國際上對數(shù)字視頻信號的傳輸格式有明確的標(biāo)準(zhǔn)規(guī)定,因此一般通用的A/D轉(zhuǎn)換器并不適合視頻領(lǐng)域應(yīng)用。這里選用專用的視頻解碼器ADV7189B,它支持12路模擬視頻通道,包含3個(gè)具有防噪性能的12位54 MHz的A/D轉(zhuǎn)換器。支持CVBS、S-端子、YprPb 3種格式的模擬視頻信號輸入,能夠自動偵測NTSL/PAL/SECAM制式,輸出ITU-R BT.656標(biāo)準(zhǔn)的數(shù)字視頻信號。選用12路模擬通道中的3路,復(fù)用的支持3種模擬視頻格式。ADV7189B輸出10位數(shù)字視頻信號、獨(dú)立的垂直同步信號VD、水平同步信號HD和像素同步時(shí)鐘LLC1,電壓均為3.3 V電平,經(jīng)過FPGA轉(zhuǎn)換為DM6446要求的1.8 V,然后從DM6446的VPFE模塊專用數(shù)字視頻信號接口送入DSP。壓縮編碼前,VPFE模塊將ITU-R BT.656標(biāo)準(zhǔn)的視頻數(shù)據(jù)轉(zhuǎn)換為H.264兼容的YUV4:2:O格式,存入DDR2 SDRAM中。VPFE模塊還支持對視頻數(shù)據(jù)進(jìn)行白平衡、縮放等預(yù)處理操作。ADG3301實(shí)現(xiàn)I2C總線的電平轉(zhuǎn)換。

2.4 視頻編碼模塊設(shè)計(jì)

DM6446片內(nèi)的VPBE模塊包含4個(gè)54 MHz的D/A轉(zhuǎn)換器,可在DM6446內(nèi)部將數(shù)字視頻信號直接轉(zhuǎn)化為模擬視頻信號,4路輸出,并且支持CVBS、S-端子、YprPb 3種模擬視頻格式。因此,視頻編碼模塊設(shè)計(jì)較為簡單,只需對4路模擬輸出信號放大,就可直接與監(jiān)視設(shè)備連接。選用TI公司的電壓反饋CMOS運(yùn)算放大器OPA357進(jìn)行運(yùn)算放大。

2.5 控制電路設(shè)計(jì)

DM6446的視頻信號接口、EMIF接口為1.8 V電平,ADV7189B接口、PCIE橋接口為3.3 V電平。系統(tǒng)需要大量的電平轉(zhuǎn)換工作,同時(shí)還需要實(shí)現(xiàn)大量的邏輯控制、PCIE橋與DM6446的通信協(xié)議。FPGA器件是最適合的選擇。選用Altera公司的邏輯器件EP2C35,它可在片內(nèi)實(shí)現(xiàn)1.8 V、2.5 V、3.3 V電平的轉(zhuǎn)換,并且能夠滿足系統(tǒng)對邏輯控制功能的要求。EP2C35內(nèi)部集成有片內(nèi)存儲器,可在ADV7189B與DM6446之間建立一個(gè)緩存區(qū),提高數(shù)據(jù)傳輸效率。FPGA與DM6446、ADV7189B和PCIE橋接口電路如圖2所示。

3 H.264編碼器的DSP移植與優(yōu)化

目前,H.264編碼器的實(shí)現(xiàn)版本主要有:JM、T264、X264。其中JM是H.264官方源碼,實(shí)現(xiàn)H.264所有特征,但其程序結(jié)構(gòu)冗長,只考慮引入各種新特性以提高編碼性能,忽略編碼復(fù)雜度,其復(fù)雜度極高,不宜實(shí)用;T264編碼器編碼輸出標(biāo)準(zhǔn)的264碼流,解碼器只能解T264編碼器生成的碼流;X264是編碼器注重實(shí)用,在不明顯降低編碼性能的前提下,努力降低編碼的計(jì)算復(fù)雜度。這里,用X264編碼器對DSP平臺移植、優(yōu)化。X264程序在DSP平臺上實(shí)現(xiàn)及優(yōu)化主要有:程序簡化、代碼移植、代碼優(yōu)化。

3.1 程序簡化

X264編碼器除支持H.264的基本檔次外,還包含主要檔次的某些功能選項(xiàng)以及其他功能模塊,代碼尺寸較大,因此需要將不必要的功能模塊刪除,以減小代碼尺寸。主要做以下刪減:刪除X264程序中的解碼部分,以及基本檔次功能之外的CABAC、B slice部分;X264程序是基于X86的PC平臺,包含了SSE、MMX等。PC平臺使用的優(yōu)化技術(shù),在DSP平臺下無效:針對DSP平臺特點(diǎn),調(diào)整刪減后的代碼文件結(jié)構(gòu)。

3.2 代碼移植

TI公司的DSP開發(fā)工具CCS具有自己的ANSI C編譯器和優(yōu)化器,并有自己的語法規(guī)則和定義,經(jīng)過上一步簡化后得到純C版本的X264編碼器需要經(jīng)過修改才能夠在CCS下應(yīng)用于具體的DSP。主要包括:①Visual c++、CCS對于變量和結(jié)構(gòu)體的“重復(fù)定義”問題的不同處理,需更改頭文件中變量和結(jié)構(gòu)體定義的位置;②用功能相同的庫函數(shù)代替CCS中沒有的庫函數(shù),如strncasecmp();③數(shù)據(jù)格式的不同,用long代替CCS中沒有的_int64格式;④按照CCS下C語言的規(guī)則定義數(shù)組;⑤修改系統(tǒng)配置參數(shù)的讀取方式;⑥編寫針對TMS320DM6446存儲結(jié)構(gòu)的CMD文件。如此,X264便可以在CCS下編譯通過并運(yùn)行。

3.3 代碼優(yōu)化

純C版本的X264程序并沒有利用DM6446的資源和并行機(jī)制,代碼運(yùn)行速度極低。因此必須對代碼進(jìn)行優(yōu)化,提高處理性能。X264代碼優(yōu)化有以下3個(gè)層次:項(xiàng)目級優(yōu)化、算法級優(yōu)化和指令級優(yōu)化:

(1)項(xiàng)目級優(yōu)化項(xiàng)目級優(yōu)化主要是對CCS提供的各種編譯參數(shù)進(jìn)行選擇、搭配、調(diào)整,如本文使用的選項(xiàng)-o3、-pm等;利用CCS編譯器提供的優(yōu)化功能,改善循環(huán)及多重循環(huán)體性能,進(jìn)行軟件流水,提高軟件的并行性;改寫不適合編譯器優(yōu)化的語句,使CCS能夠?qū)Τ绦蜻M(jìn)行更好的優(yōu)化。

(2)算法級優(yōu)化進(jìn)行算法級優(yōu)化時(shí)。應(yīng)使VC環(huán)境下的純C版本與CCS下的版本同步更新,VC版本運(yùn)行正確,既可以保證算法理論上的正確,又可以加快工作速度并減少問題的產(chǎn)生。該算法優(yōu)化工作主要有以下幾點(diǎn):①運(yùn)動估算法的選擇:X264編碼器提供3種可選的整像素運(yùn)動估算法:X264_ME_ESA(全搜索法)、X264_ME_HEX(六邊形搜索法)、X264_ME_DIA(小菱形搜索法)。在VC環(huán)境下使用純C版本代碼對同一視頻序列使用3種不同的搜索方法進(jìn)行編碼。對比3種搜索方法在編碼速度、峰值信噪比(PSNR)、碼率方面的性能。對比之下X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX次之,X264_ME_DIA最低,但相互之間的質(zhì)量差別并不大,碼率差別也很小,但編碼速度卻有明顯差距,X264_ME_DIA較前兩者在編碼速度上有明顯的優(yōu)勢。經(jīng)比較,選擇使用X264_ME_DIA運(yùn)動估計(jì)算法。②幀內(nèi)預(yù)測模式的改進(jìn):在X264的幀內(nèi)預(yù)測流程中加入提前終止模式選擇的條件,改進(jìn)算法的流程。進(jìn)行16×16宏塊幀內(nèi)模式搜索時(shí),在當(dāng)前模式的開銷小于已搜索過的模式的最小開銷的一半時(shí),終止16×16幀內(nèi)預(yù)測模式選擇,以當(dāng)前模式為最佳16×16幀內(nèi)預(yù)測模式。對4×4塊也加入相同的條件,并且若當(dāng)前4×4塊幀內(nèi)預(yù)測模式的預(yù)測開銷比相應(yīng)的最佳16×16塊幀內(nèi)預(yù)測模式的開銷的1/16還要小,則終止4×4塊的幀內(nèi)預(yù)測模式選擇,以當(dāng)前預(yù)測模式作為最佳4×4塊的幀內(nèi)預(yù)測模式。改進(jìn)后的幀內(nèi)預(yù)測主體流程如圖3所示,灰色部分為加入的判定條件。

 幀間預(yù)測模式的改進(jìn):將當(dāng)前的16×16宏塊劃分為4個(gè)8×8宏塊,分別預(yù)測其運(yùn)動矢量,然后以左右相鄰、上下相鄰的2個(gè)8×8塊的運(yùn)動矢量的差值和閾值相比較為依據(jù),判定是否進(jìn)行16×8、8×16等分塊模式的預(yù)測,最后選擇開銷最小的劃分模式為最佳幀間劃分模式。

(3)指令級優(yōu)化 DM6446一個(gè)時(shí)鐘周期內(nèi)可并行運(yùn)行8條指令,一次可存取64位數(shù)據(jù),內(nèi)部擁有64個(gè)32位通用寄存器,并且支持對寄存器中的4個(gè)8位字節(jié)或2個(gè)16位字節(jié)分別進(jìn)行運(yùn)算處理,這些使得DM6446具有很強(qiáng)的并行運(yùn)算能力。視頻圖像的像素尺寸一般是4的倍數(shù),X264中像素的值是用8位或16位數(shù)據(jù)按矩陣形式有規(guī)律的存儲,這種數(shù)據(jù)存儲結(jié)構(gòu)與DM6446的并行處理方式很契合。因此對X264程序進(jìn)行指令優(yōu)化充分發(fā)揮DM6446的并行運(yùn)算能力,是提高編碼器速度的關(guān)鍵。主要分為以下兩部分:①使用內(nèi)聯(lián)函數(shù)優(yōu)化;C6000編譯器提供了許多內(nèi)聯(lián)函數(shù)intrinsics,它們是匯編指令映射的在線函數(shù),不宜用C語言實(shí)現(xiàn)其功能的匯編指令都有對應(yīng)的intrinsics函數(shù)。這樣就可在C語言結(jié)構(gòu)中直接使用內(nèi)聯(lián)函數(shù)實(shí)現(xiàn)對多個(gè)數(shù)據(jù)的并行運(yùn)算操作。如:未使用內(nèi)聯(lián)函數(shù)優(yōu)化前X264程序調(diào)用一次雙線性內(nèi)插函數(shù)只能計(jì)算一個(gè)亞像素點(diǎn)的值,而使用內(nèi)聯(lián)函數(shù)_mem4()、_avgu4()等進(jìn)行優(yōu)化后,一次可以計(jì)算4個(gè)亞像素點(diǎn)的值,大大提高了運(yùn)算速度。②使用線性匯編語言優(yōu)化:由于線性匯編不需要考慮寄存器分配、指令延遲、并行指令安排等因素。因此可以利用CCS提供的profile分析工具將使用頻率高、耗時(shí)多的函數(shù)抽取出來,根據(jù)事先已知的數(shù)據(jù)間的相關(guān)性等信息,在程序中直接改寫函數(shù)匯編,人工優(yōu)化。涉及的算法有:SAD、SSD的計(jì)算;DCT變換;反DCT變換、亞像素搜索等。

4 實(shí)驗(yàn)結(jié)果

選取具有代表性的視頻序列carphone(人物運(yùn)動幅度較大)、news(背景變化,人物運(yùn)動幅度不大)、container(背景簡單,景物運(yùn)動緩慢)進(jìn)行編碼。視頻為YUV 4:2:0格式.QCIF,量化步長定為26,共50幀,采用IPPP…編碼模式。DM6446的時(shí)鐘頻率為600 MHz。表1為優(yōu)化后峰值信噪比、消耗時(shí)鐘周期、碼率等實(shí)驗(yàn)結(jié)果。表2為優(yōu)化前后編碼時(shí)鐘周期對比,I幀編碼速度平均提高了9倍,P幀編碼速度平均提高了11倍。

 

以視頻Miss-America為例,研究、對比移植優(yōu)化后的編碼器在不同的量化步長值(QP)下,圖像的壓縮質(zhì)量,如圖4所示。

 

5 結(jié)論

移植優(yōu)化后的X264編碼器在CCS環(huán)境下可正確編碼,在量化步長值26下編碼圖像質(zhì)量較高,優(yōu)化后編碼速度較優(yōu)化前有明顯提升。介紹的H.264視頻編碼系統(tǒng)的硬件設(shè)計(jì),和X264編碼器針對DM6446平臺移植、優(yōu)化的思路和方法,對構(gòu)建高效的視頻應(yīng)用平臺具有一定的參考價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉