新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > H.264解碼器中CAVLC碼表查找算法的分析與優(yōu)化

H.264解碼器中CAVLC碼表查找算法的分析與優(yōu)化

作者: 時(shí)間:2009-09-22 來源:網(wǎng)絡(luò) 收藏
2.2 二叉樹一子表混合法
拆分成子表后建立的數(shù)組中存在冗余現(xiàn)象。如當(dāng)0≤N2且Pre-Zeros6時(shí),一共有13個(gè)碼字。為了保留原先的查表方式以TC和Tls為矩陣下標(biāo)的特點(diǎn),必須要用4×7矩陣,多余位置零。由于實(shí)際搜索的對(duì)象是矩陣,怎么確定Pre-Zeros值,以保證在分塊數(shù)一定的情況下,使用的矩陣較小,成為提高搜索效率的關(guān)鍵。從表中可以看到,對(duì)不同的N值對(duì)應(yīng)的列,子表之間的Pre-zeros的分界點(diǎn)選取了不同的閾值。按照表2中的分塊方法,矩陣的平均大小為4×6.5。相比JM中使用一個(gè)4×17矩陣,搜索效率理論上可以提高(17-6.5)/6.5=1.615倍(假設(shè)每張子表的使用概率相同)。以0≤N2的一張VLC表為例,共分成4張子表。從查找一個(gè)碼字的比較次數(shù)來看。

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


可知,子表法查找比較次數(shù)的理論最小值為此時(shí)要求n=s2。如果在第一個(gè)步驟(確定子表)中改為采用二分法,則這種情況下就可以對(duì)以上碼表中前綴連零再細(xì)化,將相同連零個(gè)數(shù)的碼字放在一起,增加子表數(shù)而減少子表中的碼字結(jié)點(diǎn)數(shù),可以進(jìn)一步提高查找效率。
從以上分析可見,二叉樹的查找效率是最高的。因此可以將二叉樹應(yīng)用到子表法中,對(duì)每一張子表分別建樹。對(duì)于二叉樹來說,查找時(shí)間與樹的深度有關(guān)。觀察子表中的碼字,發(fā)現(xiàn)它們都有不同長(zhǎng)度的連零作為前綴,如果直接建樹將導(dǎo)致樹的不平衡并增加了樹的深度。為了解決這個(gè)問題,可以考慮在同一張子表中為每個(gè)碼字去除相同個(gè)數(shù)的連零前綴,然后建立二叉樹。在解碼時(shí),先忽略這些連零個(gè)數(shù),再進(jìn)行樹的查找。在最理想情況下,這種查找方法的一次查找的平均比較次數(shù)為:


對(duì)第一張VLC表采用二叉樹一子表法的最大比較次數(shù):


幾種算法的對(duì)比與復(fù)雜度分析如表4所示。

空間復(fù)雜度也是需要考慮的問題。JM參考實(shí)現(xiàn)中為Tls和TC的聯(lián)合碼表建立了2個(gè)3×4×17的三維數(shù)組共需要408 B的存儲(chǔ)空間。二叉樹法經(jīng)過統(tǒng)計(jì),一棵樹共有124個(gè)結(jié)點(diǎn),其中葉結(jié)點(diǎn)62個(gè),其余62個(gè)結(jié)點(diǎn)為根結(jié)點(diǎn)或枝結(jié)點(diǎn)。建3棵二叉樹所需要的空間為(62×4+62×2)×3=1 116 B。子表法將碼表分成12張子表,每張子表用2個(gè)二維數(shù)組表示,而數(shù)組的平均大小為4×6.5,則共要4×6.5×12×2=624 B。

3 結(jié) 語
H.是現(xiàn)在視頻編解碼領(lǐng)域研究的熱點(diǎn)也是未來發(fā)展的方向,它將代替MPEG2成為主流的信源壓縮標(biāo)準(zhǔn)。H.應(yīng)用領(lǐng)域非常廣泛。將H.的編解碼速度盡可能的提高,可以使其在更多的領(lǐng)域中應(yīng)用,如數(shù)字電視,消費(fèi)電子類產(chǎn)品,網(wǎng)絡(luò)通信,可視電話等現(xiàn)在熱門領(lǐng)域。在此專門對(duì)于碼表查找給出了改進(jìn)方案,通過這三種改進(jìn)方案,避免了對(duì)整個(gè)碼表的查找,對(duì)碼表的查找在效率上有了很大提高。具有明顯的實(shí)用意義。


上一頁 1 2 下一頁

關(guān)鍵詞: CAVLC 264 解碼器 查找算法

評(píng)論


相關(guān)推薦

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

關(guān)閉