新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于H.264的Exp-Golomb解碼器ASIC設(shè)計(jì)

基于H.264的Exp-Golomb解碼器ASIC設(shè)計(jì)

作者: 時(shí)間:2011-09-21 來(lái)源:網(wǎng)絡(luò) 收藏

本文的研究目標(biāo)是H.264標(biāo)準(zhǔn)中的,在對(duì)其算法進(jìn)行深入探討的基礎(chǔ)上,提出了一種高效且低成本的實(shí)現(xiàn)方案。

編碼原理及解碼算法分析

在H.264基本規(guī)范中,除了殘差變換系數(shù)采用CAVLC編碼方式外,其它句法元素均使用編碼。Exp-Golomb編碼是一種有規(guī)則的變長(zhǎng)編碼方式,在各類視頻編碼標(biāo)準(zhǔn)中被廣泛應(yīng)用。Exp-Golomb編碼符號(hào)的概率統(tǒng)計(jì)進(jìn)行編碼,用短碼字來(lái)表示出現(xiàn)概率高的信息,用長(zhǎng)碼字來(lái)表示出現(xiàn)概率低的信息,碼長(zhǎng)與被編碼數(shù)成指數(shù)對(duì)應(yīng)關(guān)系,從而使總體平均碼字最短。與定長(zhǎng)編碼方式相比,節(jié)省了大量存儲(chǔ)空間。

在H.264中采用的是0階Exp-Golomb編碼,編碼規(guī)則如圖1所示。

本文引用地址:http://2s4d.com/article/155711.htm

Exp-Golomb碼字的邏輯結(jié)構(gòu)為:[M zeros][1][INFO]。其中M個(gè)0和中間的1稱為前綴,INFO是M位的信息值,因此,每個(gè)Exp-Golomb碼字的長(zhǎng)度都為2M+ 1。每個(gè)索引字codenum經(jīng)過(guò)編碼都可以對(duì)應(yīng)一個(gè)如上結(jié)構(gòu)的碼字,它們之間的關(guān)系是:

codenum=2M+INFO-1 (1)

由式1可知,進(jìn)行Exp-Golomb解碼可先探測(cè)出碼字前連續(xù)O的個(gè)數(shù),再取出后綴,經(jīng)該公式計(jì)算即可得到codenum值。在H.264中存在四種Exp-Golomb碼:無(wú)符號(hào)型ue(v)、有符號(hào)型se(v)、映射型me(v)和截?cái)嘈蛅e(v)。因此,對(duì)于解出的codenum值,根據(jù)句法元素類型的不同有四種映射方式,如表2所示。根據(jù)相應(yīng)描述完成映射后,輸出syntax即為解碼值。

Exp-Golomb硬件結(jié)構(gòu)

以上解碼算法的Exp-Golomb硬件結(jié)構(gòu)如圖1所示。整個(gè)系統(tǒng)主要由以下模塊組成:輸入碼流緩沖移位模塊、碼長(zhǎng)檢測(cè)模塊、 codenum生成模塊以及句法元素映射模塊。系統(tǒng)上電復(fù)位后,首先由碼流緩沖移位模塊提供待解碼字,然后由碼長(zhǎng)檢測(cè)模塊中的首一檢測(cè)器探測(cè)出連續(xù)0 的個(gè)數(shù),即時(shí)計(jì)算得出當(dāng)前碼長(zhǎng)送至累加器。同時(shí),首一檢測(cè)的結(jié)果和待解碼字一起送至codenum計(jì)算模塊,經(jīng)移位、相減得到codenum值。最后將 codenum送至四個(gè)映射單元處理,最終解碼句法元素由選擇器輸出至寄存器。整個(gè)解碼流程用一個(gè)時(shí)鐘周期完成。下文將詳細(xì)敘述各功能子模塊的硬件結(jié)構(gòu)。

輸入碼流緩沖移位模塊

輸入碼流緩沖移位模塊是實(shí)現(xiàn)H.264實(shí)時(shí)解碼的關(guān)鍵模塊。由于在每個(gè)變長(zhǎng)解碼流程中,碼長(zhǎng)不可能事先確定,所以在解出碼值的同時(shí)必須定位下一個(gè)碼字。這就要求該模塊具有快速響應(yīng)和并行輸出的特點(diǎn)。由于H.264中定義Exp-Golomb碼最大碼長(zhǎng)不超過(guò)32,設(shè)計(jì)中采用兩個(gè)32位寄存器,一個(gè)32位桶形移位器及一個(gè)累加器的組合來(lái)實(shí)現(xiàn)該功能,如圖1左端所示。其中,寄存器Rn負(fù)責(zé)從外部模塊讀取數(shù)據(jù),并和寄存器R1一起作為桶形移位器的輸入; 在每個(gè)解碼周期,桶形移位器移出已解碼流的同時(shí)還要裝載新的待解碼流;而累加器則計(jì)數(shù)已處理碼長(zhǎng),傳送桶形移位器移位長(zhǎng)度,判斷并控制R0的讀取和R1的更新。這樣就為后續(xù)處理單元提供了連續(xù)不間斷的碼流。


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

評(píng)論


相關(guān)推薦

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

關(guān)閉