新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 一種基于DSP平臺(tái)的快速H.264編碼算法的設(shè)計(jì)

一種基于DSP平臺(tái)的快速H.264編碼算法的設(shè)計(jì)

作者:周冬躍,肖萬(wàn)能,蘇成悅,梁 力 時(shí)間:2008-06-12 來(lái)源:現(xiàn)代電子技術(shù) 收藏

  2.2 編碼流程

本文引用地址:http://butianyuan.cn/article/84083.htm

  如圖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è)誤差選擇是絕對(duì)誤差時(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):

  (1)以基于預(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ù)如下:

  J=[SAD(si,m)+λ?R(si,m)]

  先對(duì)上述各種模式分別計(jì)算代價(jià)函數(shù)J,然后選擇代價(jià)最小的3種模式構(gòu)成候選模式集。

  (2)對(duì)步驟(1)所得到的候選模式集中每個(gè)模式,按照式(1),通過(guò)計(jì)算基于率失真的代價(jià)來(lái)實(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)出較好的壓縮性能。當(dāng)然該編碼器只實(shí)現(xiàn)了H.264協(xié)議的基本檔次的部分,而且尚未進(jìn)行更專門的優(yōu)化過(guò)程,而協(xié)議的其他部分,由于其復(fù)雜性,則需要進(jìn)行進(jìn)一步研究,沿著這個(gè)方向,視頻還可以進(jìn)一步壓縮。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉