基于Hi3510的H.264編解碼器的設(shè)計(jì)與實(shí)現(xiàn)
1 H.264簡介
H.264是ITU-T和ISO/IEC聯(lián)合制定的最新編碼標(biāo)準(zhǔn),它最先由ITU-T于1997年提出,目標(biāo)是提出一種更高性能(相對(duì)于當(dāng)時(shí)的H.263)的視頻編碼標(biāo)準(zhǔn)。相對(duì)于其它標(biāo)準(zhǔn),H.264具有以下特點(diǎn):
(1) 碼率低。和MPEG-2等壓縮技術(shù)相比,在同等圖像質(zhì)量下,采用H.264技術(shù)壓縮后的數(shù)據(jù)量只有MPEG-2的1/2~1/3。顯然,H.264壓縮技術(shù)的采用將大大節(jié)省存儲(chǔ)容量、信道帶寬及用戶的下載時(shí)間和數(shù)據(jù)流量收費(fèi)。
(2) 圖像質(zhì)量高。H.264能提供連續(xù)、流暢的高質(zhì)量圖像。
(3) 應(yīng)用范圍廣。H.264的不同Profile既可以應(yīng)用于有嚴(yán)格時(shí)延限制的實(shí)時(shí)通信中,也可以應(yīng)用于對(duì)時(shí)延要求不高的其他應(yīng)用中(如視頻存儲(chǔ)、流媒體等等)。
(4) 魯棒性。H.264在設(shè)計(jì)時(shí),針對(duì)分組交換網(wǎng)如Internet中的分組丟失和無線網(wǎng)絡(luò)中比特誤碼都提出了相應(yīng)的工具,使得H.264在這些網(wǎng)絡(luò)中傳播時(shí)具有更強(qiáng)的抗誤碼性能。
(5) 對(duì)各種網(wǎng)絡(luò)的友好性。H.264中增加了NAL層,負(fù)責(zé)將編碼器的輸出碼流適配到各種類型的網(wǎng)絡(luò)中,從而提供了友好的網(wǎng)絡(luò)接口。
H.264之所以能夠達(dá)到以上性能,是因?yàn)椴捎昧艘韵乱恍┫冗M(jìn)的技術(shù):
首先是幀內(nèi)預(yù)測(cè)編碼,充分利用圖像空域相關(guān)性,來降低碼率。根據(jù)像條編碼類型,每個(gè)宏塊可以選擇幾種編碼類型之一。共有13種預(yù)測(cè)模式(4×4塊大小9種預(yù)測(cè)模式,16×16塊大小4種預(yù)測(cè)模式),這在以往標(biāo)準(zhǔn)中是沒有的。
其次是采用新的快速運(yùn)動(dòng)估值算法UMHexagonS(中國專利),它是一種運(yùn)算量相對(duì)于H.264中原有的快速全搜索算法可節(jié)約90%以上的新算法,全名叫“非對(duì)稱十字型多層次六邊形格點(diǎn)搜索算法”(unsymmetrical-cross muti-hexagon search),這是一種整像素運(yùn)動(dòng)估值算法。由于它在高碼率大運(yùn)動(dòng)圖像序列編碼時(shí),在保持較好失真率性能的條件下,運(yùn)算量十分低,已被H.264標(biāo)準(zhǔn)正式采納。H.264有7種塊匹配模式,編碼時(shí)對(duì)其逐一計(jì)算,選擇最優(yōu)。例如較為精細(xì)的部分采用4×4塊大小,不運(yùn)動(dòng)的背景可以采用16×16塊大小等等。以往標(biāo)準(zhǔn)只有固定的一種或者兩種塊大小模式。H.264采用多幀參考,最大限度地利用實(shí)域相關(guān)性。參考幀可以從1幀到15幀,以往標(biāo)準(zhǔn)都是單幀參考。還有采用1/4或1/8精度的亞象素運(yùn)動(dòng)估計(jì),以往標(biāo)準(zhǔn)至多采用1/2精度亞象素搜索,而且不是必選選項(xiàng)。為了消除視頻編碼中常出現(xiàn)的塊效應(yīng),H.264使用了去塊效應(yīng)濾波器。
H.264還采用了整數(shù)DCT變換,以提高變換速度,采用CAVLC,CABAC等新的熵編碼方法以提高編碼效果。
H264標(biāo)準(zhǔn)使運(yùn)動(dòng)圖像壓縮技術(shù)上升到了一個(gè)更高的階段,在較低帶寬上提供高質(zhì)量的圖像傳輸是H.264的應(yīng)用亮點(diǎn)。H.264因具有較低的傳輸比特率且對(duì)存儲(chǔ)的要求較低,基本系統(tǒng)無需使用版權(quán),具有開放的性質(zhì),目前有望取代MPEG-2。
2 Hi3510工作原理
Hi3510是海思公司推出的一款基于H.264 BP算法的視頻壓縮芯片,該芯片采用 ARM+DSP+硬件加速引擎的多核高集成度的SoC構(gòu)架,具備強(qiáng)大的視頻處理功能??蓪?shí)現(xiàn)DVD畫質(zhì)的實(shí)時(shí)編碼,能白適應(yīng)各種網(wǎng)絡(luò)環(huán)境,確保畫面的清晰度和實(shí)時(shí)性,低碼率的H.264編碼技術(shù)極大減少了網(wǎng)絡(luò)存儲(chǔ)空間,并通過集成DES/3DES加解密硬件引擎確保網(wǎng)絡(luò)安全。
Hi3510采用0.13μm工藝、LFBGA400封裝,大小為19×19mm,引腳間距為0.8mm,片內(nèi)集成了包括數(shù)字視頻接口、USB、ETH、I2S、I2C、GPIO、SPI、UART、SDRAM、DDR等接口,滿足各種應(yīng)用場景設(shè)備開發(fā)的同時(shí)能大大降低設(shè)備的BOM成本。
Hi3510的工作原理:視頻輸入單元通過ITU-RBT.601/656接口接收由VADC輸出的數(shù)字視頻信息,并通過AHB總線把接收到的原始圖像寫入到外存(SDR SDRAM或DDR SDRAM)中;視頻編解碼器器從外存中讀取圖像,進(jìn)行運(yùn)動(dòng)估計(jì)(幀間預(yù)測(cè))、幀內(nèi)預(yù)測(cè)、DCT變換、 量化、熵編碼(CAVLC+Exp-Golomb)、IDCT變換、反量化、運(yùn)動(dòng)補(bǔ)償?shù)炔僮?,最后將符合H.264協(xié)議的裸碼流和編碼重構(gòu)幀(作為下一幀的參考幀)寫入到外存中;視頻輸出單元從外存中讀取圖像數(shù)據(jù)并通過ITU-R BT.601/656接口送給VDAC進(jìn)行顯示,應(yīng)用的需求不同,視頻輸出單元從外存中讀取的圖像內(nèi)容也不同,當(dāng)需要對(duì)輸入圖像進(jìn)行預(yù)覽時(shí),視頻輸出單元從外存中讀取原始圖像,當(dāng)需要觀察視頻編碼器的編碼效果時(shí),視頻輸出單元從外存中讀取編碼重構(gòu)幀;ARM對(duì)視頻編碼器輸出的碼流進(jìn)行協(xié)議棧的封裝,然后送給網(wǎng)口發(fā)送,以實(shí)現(xiàn)視頻點(diǎn)播業(yè)務(wù)。
Hi3510的H.264音視頻編解碼SoC邏輯框圖如圖1所示,該芯片由ARM+DSP+視頻編解碼加速器+圖形引擎縮放器的核心構(gòu)成,集成了豐富的外圍接口,并內(nèi)部集成包括如數(shù)字水印、DES/3DES算法,使得單芯片能適應(yīng)幾乎所有的工作,降低與其它芯片配合的開發(fā)難度,也免除廠商對(duì)算法等標(biāo)準(zhǔn)部分的內(nèi)容進(jìn)行重復(fù)開發(fā),大大降低了設(shè)備廠商的投入門檻。配合海思不同應(yīng)用形態(tài)的開發(fā)包,可以開發(fā)出PMP、可視電話、網(wǎng)絡(luò)監(jiān)控、PVR、可視對(duì)講等各種產(chǎn)品。
3 Hi3510的編解碼設(shè)計(jì)方案
作為SoC架構(gòu)的編解碼芯片,Hi3510在設(shè)計(jì)時(shí)充分考慮到兼容性和使用的方便性。支持幾乎所有公司生產(chǎn)的系列AD/DA芯片。Hi3510既可以作為獨(dú)立的編碼器工作,也可以作為獨(dú)立的解碼器工作,也可以同時(shí)進(jìn)行編解碼工作,充分考慮到了編解碼市場的各種應(yīng)用場合。Hi3510是一個(gè)典型的多應(yīng)用的單芯片解決方案,大大降低了設(shè)備的BOM組成和成本。
Hi3510的同時(shí)編解碼設(shè)計(jì)方案如圖2所示。
4 Hi3510編解碼應(yīng)用
Hi3510自帶的Linux操作系統(tǒng)(同時(shí)支持Vxworks、WinCE等開放式操作系統(tǒng))和ARM處理器,使得芯片除了編解碼功能外,還可以實(shí)現(xiàn)許多豐富的應(yīng)用功能開發(fā)。在圖2中,只要附加一片普通AD就可實(shí)現(xiàn)復(fù)合視頻信號(hào)的數(shù)字化壓縮、存儲(chǔ)和傳輸?shù)墓δ?。Hi3510開發(fā)包提供上層API接口,就可以調(diào)用實(shí)現(xiàn)所有的芯片功能,并能開發(fā)自己的個(gè)性化功能。
Hi3510芯片的編碼應(yīng)用設(shè)計(jì)如圖3所示。
而解碼器應(yīng)用在架構(gòu)設(shè)計(jì)上與編碼器相同(方便方案可以保持一致性,可以實(shí)現(xiàn)一套硬件滿足不同需求,只需要軟件升級(jí))。解碼器只需要配搭DA芯片(如果是LCD數(shù)字屏幕可以節(jié)省該芯片),就可以實(shí)現(xiàn)把數(shù)據(jù)碼流解碼的作用,并且通過GUI或者OSD實(shí)現(xiàn)用戶人機(jī)互動(dòng)的菜單操作,實(shí)現(xiàn)PMP等類似功能的產(chǎn)品應(yīng)用。
Hi3510芯片的解碼應(yīng)用設(shè)計(jì)如圖4所示。
H.264標(biāo)準(zhǔn)的應(yīng)用,為視頻的網(wǎng)絡(luò)傳輸,尤其是低帶寬下(如無線傳輸方式)的傳輸提供了技術(shù)支持。在信息爆炸的今天,市場要求設(shè)計(jì)人員推出產(chǎn)品的速度越來越快,而且為了保持產(chǎn)品的競爭力,在產(chǎn)品價(jià)格、產(chǎn)品應(yīng)用功能特點(diǎn)上要保持足夠優(yōu)勢(shì),尤其是在多煤體市場領(lǐng)域。海思的SoC芯片在提供了標(biāo)準(zhǔn)算法的基礎(chǔ)上,給予設(shè)計(jì)人員最大的靈活度以設(shè)計(jì)合適的產(chǎn)品,大大降低了廠商的投放成本,縮短了廠商的推出新產(chǎn)品的時(shí)間,為贏得市場做準(zhǔn)備。近年來,每一個(gè)便攜式個(gè)人電子設(shè)備似乎都配備了音視頻功能,包括移動(dòng)電話、便攜式媒體播放器和PDA。這種基于Hi3510設(shè)計(jì)的高性價(jià)比H.264編解碼器一定會(huì)有廣闊的市場前景。