基于DSP平臺(tái)的快速H.264編碼算法的設(shè)計(jì)方法
出處:現(xiàn)代電子技術(shù) 發(fā)布于:2011-06-11 19:38:52
H.264協(xié)議是的視頻編碼標(biāo)準(zhǔn),但其算法復(fù)雜度也是超常的。為了解決這個(gè)問(wèn)題,本文提出一種采用TI公司的多媒體處理器Davinci DM6446為的硬件平臺(tái),而在算法上提出了新的基于拉各朗日(Lagrange)的快速算法,充分利用中間結(jié)果,預(yù)先排除一些可能性小的預(yù)測(cè)模式,然后快速完成對(duì)運(yùn)動(dòng)估計(jì)的判決和模式選擇的優(yōu)化處理。實(shí)驗(yàn)結(jié)果表明:該方法可以有效地解決實(shí)時(shí)性差的問(wèn)題,實(shí)現(xiàn)具有參考價(jià)值的H.264編碼器。
1 硬件平臺(tái)
1.1 Davinci DM6446芯片介紹
DM6446采用DSP+ARM的雙內(nèi)核結(jié)構(gòu)(內(nèi)核圖見(jiàn)圖1),其中的DSP芯片的CPU時(shí)鐘頻率可達(dá)594 MHz,ARM的引入可以釋放DSP在控制方面的部分功能,使DSP專門進(jìn)行數(shù)據(jù)處理的工作。芯片采用增強(qiáng)型的哈佛結(jié)構(gòu)總線,其CPU內(nèi)部有2個(gè)數(shù)據(jù)通道,8個(gè)32 b的功能單元,2個(gè)通用寄存器組(A和B),可同時(shí)執(zhí)行8條32 b長(zhǎng)指令。處理器具有雙16 b擴(kuò)充功能,芯片能在一個(gè)周期內(nèi)完成雙16 b的乘法、加減法、比較、移位等操作。該芯片內(nèi)部支持兩級(jí)Cache,其中級(jí)32 kB的程序緩存器L1P,80 kB的數(shù)據(jù)緩存器L1D,而第二級(jí)的Cache大小是可配置的64 kB,芯片自動(dòng)完成這兩級(jí)Cache之間數(shù)據(jù)一致性的維護(hù)。有了這兩級(jí)Cache的支持將使CPU的執(zhí)行速度大大加快。

Davinci DM6446具有專用的視頻圖像處理子系統(tǒng)。視頻處理子系統(tǒng)包括1個(gè)視頻前端和1個(gè)視頻末端,視頻前端的輸入接口用于接受外部傳感器或視頻譯碼器輸出的BT.656等圖像輸入信息;視頻末端輸出接口輸出圖像,實(shí)現(xiàn)圖像本地重現(xiàn)。
視頻前端輸入(VPFE)接口由1個(gè)CCD控制器(CCDC),1個(gè)預(yù)處理器,柱狀模塊,自動(dòng)曝光/白平衡/聚焦模塊(H3A)和寄存器組成。CCD控制器可以與視頻解碼器CMOS傳感器或電荷耦合裝置連接。預(yù)處理器是一個(gè)實(shí)時(shí)的圖形處理器。
1.2 H.264編碼器硬件平臺(tái)
本系統(tǒng)的平臺(tái)處理芯片為Davinci DM6446,如圖2所示,片外RAM選取兩片DDR并聯(lián)成32位的數(shù)據(jù)寬度,空間為256 MB。模擬視頻信號(hào)在“VIDEO IN”引入后經(jīng)過(guò)解碼芯片TVP5146變換為數(shù)字信號(hào)后輸入TMS320DM6446芯片中進(jìn)行處理,H.264編碼處理后的碼流可以通過(guò)視頻末端輸出保存在本地硬盤上,以方便調(diào)試檢查。或者可以通過(guò)10/100 M以太網(wǎng)物理層接口輸出,進(jìn)行網(wǎng)絡(luò)傳輸。同時(shí),本地的重構(gòu)圖像可以通過(guò)TMS320DM6446芯片內(nèi)部OSD模塊和編碼模塊D/A變換后直接顯示輸出。

2 H.264編碼器結(jié)構(gòu)與編碼流程
2.1 H.264編碼器結(jié)構(gòu)
如圖3所示輸入的圖像以宏塊為單位進(jìn)入編碼器中,根據(jù)圖像變化的快慢選擇幀內(nèi)或幀間預(yù)測(cè)編碼。如果選擇幀間預(yù)測(cè)編碼,當(dāng)前輸入幀F(xiàn)n和前一幀(參考幀)Fn-1被送到運(yùn)動(dòng)估計(jì)器(ME),通過(guò)塊搜索,匹配可以得到當(dāng)前幀中的各宏塊相對(duì)于參考幀中對(duì)應(yīng)宏塊的偏移量,也就是常說(shuō)的運(yùn)動(dòng)矢量。接著,參考幀F(xiàn)n-1和剛得到的運(yùn)動(dòng)矢量MV被送到運(yùn)動(dòng)補(bǔ)償器(MC),通過(guò)計(jì)算得到幀間預(yù)測(cè)值P;當(dāng)前幀F(xiàn)n和幀預(yù)測(cè)值P相減,得到殘差Dn,經(jīng)過(guò)變換,量化后產(chǎn)生一組量化后的變換系數(shù)X,再經(jīng)過(guò)熵編碼,與解碼所需的一些邊信息(如預(yù)測(cè)模式量化參數(shù),運(yùn)動(dòng)矢量等)一起組成一個(gè)壓縮后的碼流,經(jīng)NAL(網(wǎng)絡(luò)自適應(yīng)層)供傳輸和存儲(chǔ)。

2.2 編碼器編碼流程
如圖4所示為H.264編碼器主流程。對(duì)輸入的一幀圖像首先進(jìn)行單元?jiǎng)澐郑阂院陦K為基本單元進(jìn)行劃分,再由若干宏塊在組合成Slice,由Slice再組合成Slice Group,這樣每個(gè)宏塊所屬的Slice和Slice Group也就確定了。再判斷輸入的一幀圖像是I-Frame還是P-Frame。在以上工作完成后,也就可以對(duì)每個(gè)宏塊進(jìn)行編碼了。在對(duì)每個(gè)宏塊都編碼完成后,還需要對(duì)重構(gòu)圖像進(jìn)行1/4象素插值處理、參考幀緩沖區(qū)插入處理等工作。至此,編碼一幀的工作才算完成。

3 運(yùn)動(dòng)估計(jì)模式快速率失真決策
為了減少圖像序列的時(shí)間冗余,達(dá)到更好壓縮效果的目的,H.264/AVC編碼方案采用運(yùn)動(dòng)補(bǔ)償技術(shù)和預(yù)測(cè)。即由先前已編碼的一個(gè)或多個(gè)幀產(chǎn)生當(dāng)前編碼幀的一種預(yù)測(cè)模式,然后再進(jìn)行預(yù)測(cè)編碼。且采用了一種可變塊尺寸的運(yùn)動(dòng)預(yù)測(cè)模式,亮度塊尺寸的范圍從16×16變化到4×4,其中包含很多可選模式,形成了一種樹(shù)形結(jié)構(gòu)的運(yùn)動(dòng)預(yù)測(cè)。對(duì)于I幀(包含幀內(nèi)4×4、幀內(nèi)16×16),對(duì)P幀(包含幀內(nèi)4×4、幀內(nèi)16×16、SKIP模式、幀間16×16、幀間16×8、幀間8×16、幀間8×8、幀間8×4、幀間4×8)同時(shí)還為P幀和B幀提供了特殊的SKIP模式,總共11種模式。這些可選模式的存在使得編碼方式更加靈活,編碼相對(duì)于固定尺寸塊預(yù)測(cè)要高很多。然而,可選的幀問(wèn)預(yù)測(cè)模式增加了,必然會(huì)使得運(yùn)算復(fù)雜度增加,因此有必要采用一種高效的決策方法來(lái)選取塊尺寸組合方式,使得編碼效率和編碼質(zhì)量均佳。
3.1 拉各朗日代價(jià)函數(shù)
引入拉各朗日代價(jià)函數(shù)如下:

其中D表示重構(gòu)恢復(fù)圖像相對(duì)于原始圖像間的失真;R(si,m)表示對(duì)宏塊編碼后數(shù)據(jù)及相關(guān)參數(shù)在碼流中所占用的比特?cái)?shù),一般由編碼統(tǒng)計(jì)得到,但對(duì)于SKIP模式,比特?cái)?shù)默認(rèn)為1比特;λ表示模式選擇時(shí)所使用的拉各朗日乘積因子。
對(duì)于運(yùn)動(dòng)估計(jì),可使用拉各朗日代價(jià)函數(shù)作為選擇運(yùn)動(dòng)矢量的判決標(biāo)準(zhǔn)。根據(jù)式(1)得到對(duì)一個(gè)采樣塊si進(jìn)行ME判決的代價(jià)函數(shù)為下:

該式返回產(chǎn)生代價(jià)值的匹配運(yùn)動(dòng)矢量mi,其中M指各種可能編碼模式的集合,m為當(dāng)前選定模式,式(2)中R(si,m)是運(yùn)動(dòng)矢量(mx,my)所要傳輸(按熵編碼)的比特?cái)?shù)。D(si,m)表示對(duì)圖像宏塊的預(yù)測(cè)誤差,對(duì)于該預(yù)測(cè)誤差的計(jì)算有兩種方案:當(dāng)預(yù)測(cè)誤差選擇是誤差時(shí)用(SAD)表示,如式(3);當(dāng)預(yù)測(cè)誤差選擇是平方差時(shí),則用SSD表示,如式(4)中:

其中A為當(dāng)前編碼宏塊。在使用多參考幀進(jìn)行運(yùn)動(dòng)估計(jì)時(shí),mi表示所選用的參考幀。在進(jìn)行運(yùn)動(dòng)搜索時(shí),對(duì)塊si先是進(jìn)行整象素的運(yùn)動(dòng)搜索,以取式(1)值為匹配標(biāo)準(zhǔn),得到整象素匹配點(diǎn)后,以同樣的方法進(jìn)行1/2,1/4象素的匹配搜索。同時(shí)在多個(gè)參考幀內(nèi)作同樣的操作,將所得的函數(shù)代價(jià)進(jìn)行比較得到值,也就找到了s,塊的匹配的運(yùn)動(dòng)矢量mi。
3.2 快速預(yù)測(cè)模式判斷算法
快速算法相對(duì)于拉各朗日代價(jià)函數(shù)算法,可分以下兩步實(shí)現(xiàn):
?。?)以基于預(yù)測(cè)模式的方式計(jì)算代價(jià)函數(shù)J,但是這里采用簡(jiǎn)化的計(jì)算方法,對(duì)每一種采樣模式進(jìn)行分行交錯(cuò)隔點(diǎn)采樣,如對(duì)8×8塊內(nèi)象素進(jìn)行下采樣,采樣如圖5所示。

然后對(duì)采樣點(diǎn)計(jì)算SAD,記做SADi。僅對(duì)采樣點(diǎn)計(jì)算的拉各朗日代價(jià)函數(shù)如下:
![]()
先對(duì)上述各種模式分別計(jì)算代價(jià)函數(shù)J,然后選擇代價(jià)的3種模式構(gòu)成候選模式集。
?。?)對(duì)步驟(1)所得到的候選模式集中每個(gè)模式,按照式(1),通過(guò)計(jì)算基于率失真的代價(jià)實(shí)現(xiàn)基于RDO的模式選擇,也即C值的模式作為終預(yù)測(cè)模式。
4 測(cè)試結(jié)果與結(jié)論
目前,基于DM6446平臺(tái)上設(shè)計(jì)的以上H.264編碼器系統(tǒng)己基本完成,我們選擇了幾個(gè)常見(jiàn)的視頻對(duì)該編碼器進(jìn)行了性能測(cè)試,測(cè)試數(shù)據(jù)如表1所示。數(shù)據(jù)表明本H.264編碼器完夠正常工作,而且表現(xiàn)出較好的壓縮性能。不過(guò)該編碼器只實(shí)現(xiàn)了H.264協(xié)議的基本檔次的部分,且尚未進(jìn)行更專門的優(yōu)化過(guò)程,協(xié)議的其他部分由于復(fù)雜性,需要進(jìn)行進(jìn)一步研究,沿著這個(gè)方向,視頻還可以進(jìn)一步壓縮。

參考文獻(xiàn)
[1] TMS320DM6446 Digital Media System on Chip Data Manu——alrM].Texas Instruments,2006.
[2] JVT 一100,Study of Final Committee Draft of Joint Video Specification ITU Rec.H.264/ISO/IEC 14496—10 AVC)。
[3] Yao Wang,Jorn Dstermann,Ya Qin Zhang.Video Processing and Communications[M].Beijing:Tsinghua University Press,2003.
[4] JM9.3—2005.JVT Reference Software Version.http://bs.hhi.de/~suehring/tml/download
[5] TVP5146 datasheet http://m.58mhw.cn/datasheet/TVP5146_665573.html.
[6] TMS320DM6446 datasheet http://m.58mhw.cn/datasheet/TMS320DM6446_14470.html.
[7] AVC datasheet http://m.58mhw.cn/datasheet/AVC_1518400.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實(shí)踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實(shí)時(shí)執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號(hào)完整性2022/9/26 16:45:38









