專利名稱:用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖像/視頻編解碼技術(shù),特別是指一種用于在圖像/視頻壓縮、數(shù)字音視頻編碼技術(shù)中,進(jìn)一步提高編碼效率,同時(shí)保持較低的軟硬件計(jì)算實(shí)現(xiàn)復(fù)雜度的熵編碼方法,屬于數(shù)字媒體處理技術(shù)領(lǐng)域。
背景技術(shù):
視頻編碼技術(shù)是數(shù)字媒體存儲(chǔ)與傳輸?shù)葢?yīng)用的關(guān)鍵技術(shù)之一。視頻編碼系統(tǒng)中的核心技術(shù)包括預(yù)測編碼、變換編碼、熵編碼。其中,熵編碼是指對(duì)編碼過程中產(chǎn)生的語法元素(例如運(yùn)動(dòng)矢量mv、塊標(biāo)識(shí)cbp、塊預(yù)測殘差系數(shù)等)進(jìn)行信息熵編碼,其作用是去除數(shù)據(jù)的統(tǒng)計(jì)冗余。
以往視頻編碼標(biāo)準(zhǔn)對(duì)塊預(yù)測殘差系數(shù)的編碼方法有H.261、MPEG(運(yùn)動(dòng)圖象專家組,Motion Picture Experts Group簡稱MPEG)-2標(biāo)準(zhǔn)的2D-VLC(Variable Length Coding)熵編碼器,H.263、MPEG-4標(biāo)準(zhǔn)的3D-VLC熵編碼器及H.264/AVC(國際電信協(xié)會(huì)ITU-T的H.264視頻編碼建議或ISO/IEC的國際標(biāo)準(zhǔn)14496-10,即MPEG-4標(biāo)準(zhǔn)的第10部分)視頻編碼標(biāo)準(zhǔn)的CAVLC(Context-based Adaptive Variable Length Coding)熵編碼器和CABAC(Context-based Adaptive Binary Arithmetic Coding)熵編碼器。
2D-VLC熵編碼器對(duì)殘差系數(shù)的編碼采用(level,run)+EOB的編碼方式,level表示經(jīng)過DCT變換和量化后的殘差圖像塊的非零系數(shù),而run表示該系數(shù)到其前第一個(gè)非零系數(shù)間的值為0的系數(shù)個(gè)數(shù),EOB(End of Block)為塊結(jié)束標(biāo)志,EOB在碼表中獨(dú)占一個(gè)位置,即EOB單獨(dú)分配一個(gè)碼字。3D-VLC熵編碼器將EOB結(jié)合在(level,run)數(shù)對(duì)中,形成三維量(level,run,last),last表示當(dāng)前系數(shù)是否為塊內(nèi)做后一個(gè)系數(shù),這樣騰出了碼表中EOB占據(jù)的較短碼字,并且利用了level、run及EOB的聯(lián)合概率,因此編碼效率有提高。H.264/AVC視頻編碼標(biāo)準(zhǔn)的CAVLC熵編碼器由于其充分的利用了上、下文信息,并針對(duì)4×4塊大小進(jìn)行了很好的優(yōu)化,因此雖然將level、run分開編碼,但依然取得了很好的編碼結(jié)果。以上的各種熵編碼器屬于變長編碼器,其編碼基本原理是Huffman編碼,即將大概率的符號(hào)用短碼字編碼,而出現(xiàn)概率小的符號(hào)用長碼字編碼,從而最終達(dá)到平均碼長最短的目的。H.264/AVC視頻編碼標(biāo)準(zhǔn)的CABAC熵編碼器屬于算術(shù)編碼器,算術(shù)編碼器的性能高于變長編碼器,而且由于CABAC能夠很好地對(duì)上下文進(jìn)行建模,對(duì)信源符號(hào)的出現(xiàn)概率有更準(zhǔn)確的估計(jì),因此編碼效率很高。但相比于變長編碼器,算術(shù)編碼器的計(jì)算復(fù)雜度高,同時(shí)硬件實(shí)現(xiàn)復(fù)雜,相當(dāng)于以軟、硬件的高復(fù)雜度換取編碼效率的提高。
因此,從編碼效率及算法的軟硬件實(shí)現(xiàn)復(fù)雜度兩方面來考慮,變長編碼是一種性價(jià)比更高的熵編碼方案。在變長編碼器中,2D-VLC熵編碼器利用了level及run的聯(lián)合概率,理論上效率高于CAVLC熵編碼器將level及run分開編碼的方式,而且相對(duì)于3D-VLC編碼器,2D-VLC碼表的體積更小,所以2D-VLC熵編碼器兼顧了性能和硬件的實(shí)現(xiàn)復(fù)雜度。但是傳統(tǒng)的2D-VLC熵編碼器采用通過全局統(tǒng)計(jì)而得到的單一碼表進(jìn)行編碼,其缺點(diǎn)是,單一碼表不能很好的適應(yīng)局部概率分布的變化,因此編碼效率不高。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種用于視頻預(yù)測殘差系數(shù)編碼的新型高效熵編碼方法,進(jìn)一步提高編碼效率,同時(shí)保持較低的計(jì)算實(shí)現(xiàn)復(fù)雜度。
本發(fā)明的目的是這樣實(shí)現(xiàn)的
一種用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,包括如下步驟
步驟1對(duì)圖像塊的被編碼塊系數(shù)進(jìn)行zig-zag掃描,形成(level,run)數(shù)對(duì)序列;
步驟2根據(jù)圖像塊所在宏塊類型選擇用于編碼當(dāng)前被編碼圖像塊的碼表類型;
步驟3對(duì)步驟1得到的數(shù)對(duì)序列中每一(level,run)數(shù)對(duì)進(jìn)行編碼;
步驟4編碼塊結(jié)束標(biāo)志EOB。
本發(fā)明用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,在2D-VLC編碼器中引入了自適應(yīng)機(jī)制,為不同類型宏塊和不同level值區(qū)域設(shè)定了不同的局部統(tǒng)計(jì)分布最優(yōu)的碼表,編碼時(shí)通過碼表切換,找到最匹配當(dāng)前局部概率特性的碼表進(jìn)行編碼,充分考慮到了視頻塊殘差系數(shù)的上下文環(huán)境和統(tǒng)計(jì)規(guī)律,同時(shí)對(duì)計(jì)算實(shí)現(xiàn)復(fù)雜度沒有影響,進(jìn)一步提高了編碼效率。
圖1是本發(fā)明實(shí)施例的流程圖2是本發(fā)明一實(shí)施例對(duì)4x4塊圖像塊進(jìn)行zig-zag掃描形成(level,run)數(shù)對(duì)的示意圖3是本發(fā)明對(duì)4×4塊圖像塊的編碼方案的示意圖。
具體實(shí)施例方式
以下結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明
本實(shí)施例所述的熵編碼方法,如圖1,圖3所示,包括如下步驟
步驟1對(duì)圖像塊的被編碼塊系數(shù)進(jìn)行zig-zag掃描,形成(level,run)數(shù)對(duì)序列;
步驟2根據(jù)圖像塊所在宏塊類型選擇用于編碼當(dāng)前被編碼圖像塊的碼表類型;
步驟3對(duì)步驟1得到的數(shù)對(duì)序列中每一(level,run)數(shù)對(duì)進(jìn)行編碼;
步驟4編碼塊結(jié)束標(biāo)志EOB。
在視頻圖像編碼中,宏塊是編碼的基本單位,每一個(gè)宏塊包括4個(gè)8×8的亮度塊和2個(gè)8×8的色度塊,共6個(gè)圖像塊。對(duì)預(yù)測殘差系數(shù)的熵編碼中,圖像塊每一點(diǎn)為一個(gè)系數(shù),這個(gè)系數(shù)表示經(jīng)過熵編碼之前的編碼步驟得到的視頻預(yù)測殘差。
宏塊類型可分為兩種,一種是intra(內(nèi)部)型,采用幀內(nèi)相鄰的圖像塊對(duì)待編碼圖像塊進(jìn)行幀內(nèi)預(yù)測的方法進(jìn)行編碼;另一種是inter(外部)型,采用相鄰幀的圖像塊對(duì)待編碼圖像塊進(jìn)行幀間預(yù)測的方法進(jìn)行編碼。這兩種不同的預(yù)測編碼方法使得所得到的塊殘差系數(shù)的特性不同,在掃描后形成的相同(level,run)數(shù)對(duì)出現(xiàn)的概率不同。比如某一(level,run)數(shù)對(duì)(3,0),可能在所有intra型圖像塊中出現(xiàn)的概率為10%,而在所有inter型圖像塊中出現(xiàn)的概率只有7%。
為了提高編碼效率,本發(fā)明針對(duì)不同的類型建立不同的類型的碼表,使得每種類型下,被編碼符號(hào)的碼字長度和被編碼符號(hào)的出現(xiàn)概率能夠更好的匹配,從而取得更好的編碼效果。
步驟1所述的zig-zag掃描,即“之”字掃描,如圖2,圖3所示,從左上到右下,依次得到(level,run)數(shù)對(duì)。
步驟2所述的根據(jù)圖像塊類型選擇用于編碼當(dāng)前被編碼塊系數(shù)的碼表,具體為如果當(dāng)前宏塊類型為intra型,則選擇intra型碼表編碼當(dāng)前宏塊內(nèi)亮度塊的系數(shù);如果宏塊類型為inter型,則選擇inter型碼表編碼當(dāng)前宏塊內(nèi)亮度塊的系數(shù);如果對(duì)宏塊內(nèi)色度塊的編碼采用inter型碼表或采用自己單獨(dú)的碼表。
用inter型碼表編碼色度塊的效果基本可以滿足編碼的需求,當(dāng)然也可以在基于統(tǒng)計(jì)分析的基礎(chǔ)上,為色度塊建立自己的碼表,但一般可以不這樣做。
本實(shí)施例所述的步驟3,進(jìn)一步具體包括
步驟31采用固定碼表編碼最后一個(gè)(level,run);
步驟32以當(dāng)前已編碼的(level,run)數(shù)對(duì)的level值選擇編碼前一數(shù)對(duì)的碼表;
步驟33以步驟32所選擇的碼表編碼前一(level,run)數(shù)對(duì)編碼;
步驟34如果沒有對(duì)所有的(level,run)數(shù)對(duì)編碼完畢,則執(zhí)行步驟32;否則結(jié)束步驟3。
對(duì)于視頻熵編碼而言,編碼的結(jié)果越小,計(jì)算復(fù)雜度越小,編碼效率越高,而本發(fā)明不涉及計(jì)算復(fù)雜度,因此,對(duì)出現(xiàn)幾率高的(level,run)數(shù)對(duì)分配數(shù)字比較小的碼字,對(duì)碼字編碼后的結(jié)果也小,相應(yīng)的最后的編碼結(jié)果也就最小,效率最高。
本發(fā)明對(duì)于確定的intra/inter圖像塊類型,采用了多個(gè)不同的碼表來分配碼字,每一個(gè)碼表都是根據(jù)碼表本身的level值對(duì)下一個(gè)將要編碼的(level,run)數(shù)對(duì)的出現(xiàn)概率進(jìn)行統(tǒng)計(jì)后制成的,按下一個(gè)將要編碼的(level,run)數(shù)對(duì)的出現(xiàn)概率由高到低分配由小到大的碼字,充分的利用了上下文環(huán)境和統(tǒng)計(jì)規(guī)律,比只有一個(gè)統(tǒng)一的碼表,不考慮上下文環(huán)境,只考慮總的統(tǒng)計(jì)規(guī)律效率提高了很多。這也是本發(fā)明方法步驟32切換碼表的原因。
由于相近的level值的預(yù)測結(jié)果可能會(huì)比較接近,為了提高編碼的速度并降低碼表的存儲(chǔ)需求,本發(fā)明采用了分區(qū)的方法來設(shè)計(jì)多個(gè)碼表,即將整個(gè)分成若干個(gè)區(qū)域,每個(gè)區(qū)域采用相同的碼表。一般level值越大預(yù)測結(jié)果越接近,所以大多數(shù)碼表都集中在level值小的地方。
下面給出一個(gè)具體的、用C語言表達(dá)的多個(gè)碼表切換實(shí)例
int incVlc[]={1,2,3,5,8,3000};TableNum=0;//采用VLC0_Intra或VLC0_Inter編碼第一個(gè)(level,run)for(icoeff=TotalCoeff;icoeff>0;icoeff--)//編碼塊內(nèi)所有非零系數(shù){encode_levelrun(TableNum);//采用當(dāng)前碼表,編碼當(dāng)前(level,run)if(abs(level)>incVlc[TableNum])//以已編碼的level值切換碼表<!-- SIPO <DP n="5"> --><dp n="d5"/>{if(abs(level)<=3)TableNum=(abs(level)-1);else if(abs(level)<=5)TableNum=3;else if(abs(level)<=8)TableNum=4;elseTaleNum=5;}}
在以上碼表選擇方法中,用于Inter型系數(shù)塊的編碼共有6個(gè)碼表,將整個(gè)level的可能取值分成了6個(gè)區(qū)域,1,2,3,4-5,5-8和8以上,分別對(duì)應(yīng)不同碼表。
所述的碼表為2D-VLC結(jié)構(gòu),包括(level,run)數(shù)對(duì)及EOB與碼字的映射關(guān)系。表1給出了編碼Inter型圖像塊所用的碼字分配碼表VLC0_Inter及VLC1_Inter示例。VLC0_Inter表示Inter型圖像塊level為1的碼表,用來對(duì)level為1的(level,run)數(shù)對(duì)后的(level,run)數(shù)對(duì)編碼,或作為固定碼表編碼第一個(gè)(level,run)數(shù)對(duì)。VLC1_Inter表示Inter型圖像塊level為2的碼表,用來對(duì)level為2的(level,run)數(shù)對(duì)后的(level,run)數(shù)對(duì)編碼。
其他的碼表結(jié)構(gòu)與這兩個(gè)碼表類似。
表1
在所述的步驟31中,所述的固定碼表為VLC0_inter或VLC0_intra。這是因?yàn)樵诖蠖鄶?shù)情況下,最后一個(gè)(level,run)的level為1,即最后一個(gè)(level,run)的level為1的幾率非常高。這樣可以在沒有任何上下文的情況下,可以獲得最好的編碼結(jié)果。步驟3中采用逆序的方式從后向前對(duì)(level,run)進(jìn)行編碼也是這個(gè)原因。
本發(fā)明對(duì)(level,run)數(shù)對(duì)編碼,具體包括如下步驟
步驟331如果(level,run)包含在碼表當(dāng)中,則直接從碼表中查表得到碼字,再將碼字轉(zhuǎn)換成Exp-Golomb碼;
步驟332如果(level,run)超出碼表范圍,先編碼escape_code,之后將level和run分別轉(zhuǎn)換成Exp-Golomb碼。
由于統(tǒng)計(jì)預(yù)測的結(jié)果一般集中在一個(gè)區(qū)域,這是圖像的漸進(jìn)變化所決定的,所以設(shè)計(jì)碼表時(shí),碼表中不包括那些出現(xiàn)幾率非常小的,超出設(shè)定的區(qū)域的(level,run)數(shù)對(duì)。從碼表VLC0_Inter及VLC1_Inter就可以看到,碼表中對(duì)下一個(gè)level值的預(yù)測區(qū)域非常集中,因此需要對(duì)超出碼表范圍的(level,run)數(shù)對(duì),進(jìn)行例外的處理。
所述的例外處理的方法是先根據(jù)當(dāng)前碼表,即超出范圍的碼表,確定此碼表所采用的Exp-Golomb碼的階數(shù),然后,編碼一個(gè)escape_code,再將超出碼表的level和run分別轉(zhuǎn)換成Exp-Golomb碼。
所謂的escape_code就是一個(gè)Exp-Golomb碼,該Exp-Golomb碼對(duì)應(yīng)的碼字大于對(duì)應(yīng)碼表中所有碼字。
所謂的Exp-Golomb碼,即Exponential(指數(shù)型)-Golomb碼。Exp-Golomb碼具有不同的階數(shù),每個(gè)碼表中的碼字要轉(zhuǎn)換成Exp-Golomb碼要選擇合適階數(shù);對(duì)超出碼表范圍的(level,run)數(shù)對(duì)的level和run轉(zhuǎn)換成Exp-Golomb碼也要選擇合適階數(shù)。
所有轉(zhuǎn)換成Exp-Golomb碼的數(shù)據(jù)選擇階數(shù)的方法如下所述
步驟100判斷需要進(jìn)行轉(zhuǎn)換的類型,如果是從碼表中查出的(level,run)對(duì)應(yīng)的碼字或EOB對(duì)應(yīng)的碼字,執(zhí)行步驟101;如果是超出碼表的level值或run值執(zhí)行步驟102;
步驟101根據(jù)碼表的不同來確定Exp-Golomb的階數(shù);
步驟102根據(jù)圖象塊所在宏塊為intra型和inter型來確定Exp-Golomb的階數(shù)。
下面給出一個(gè)碼表與Exp-Golomb碼階數(shù)對(duì)應(yīng)關(guān)系和圖象塊所在宏塊類型與Exp-Golomb碼階數(shù)對(duì)應(yīng)關(guān)系的實(shí)例
碼表VLC0_Inter及VLC1_Inter選擇2階Exp-Golomb碼,其他碼表選擇3階Exp-Golomb碼。
intra型圖象塊level值對(duì)應(yīng)3階Exp-Golomb碼;run值也對(duì)應(yīng)3階Exp-Golomb碼;inter型型圖象塊level值對(duì)應(yīng)2階Exp-Golomb碼;run值對(duì)應(yīng)3階Exp-Golomb碼。
階數(shù)的選擇根據(jù)出現(xiàn)具體概率分布而定,這樣做的目的也是盡量減小編碼后的數(shù)據(jù)長度。
本發(fā)明中所述的將碼字或數(shù)值轉(zhuǎn)化成Exp-Golomb碼具體包括如下過程
首先根據(jù)碼表確定所采用的Exp-Golomb碼的階數(shù),然后根據(jù)階數(shù)和碼字從Exp-Golomb碼表中查出對(duì)應(yīng)的Exp-Golomb碼,完成轉(zhuǎn)換。
表2給出了本發(fā)明的熵編碼方法所采用的各階Exp-Golomb碼,Golomb碼由前綴和后綴組成,前綴碼為若干個(gè)0及末尾一個(gè)1的比特串,后綴碼為信息比特。所述的INFO,是一個(gè)信息量,用如下公式計(jì)算
表2是Exp-Golomb碼表的一種簡寫形式,表中的Xi為0或1。把每一個(gè)Exp-Golomb碼利用碼字公式計(jì)算就可以知道Exp-Golomb碼對(duì)應(yīng)的碼字。比如,Exp-Golomb碼00111的依據(jù)上面公式計(jì)算INFO=4,而L=5,則L/2=2(這里只取整數(shù)部分)依據(jù)碼字公式,得出碼字為7。
表2
所述的步驟4,編碼塊結(jié)束標(biāo)志EOB,具體過程為利用步驟3結(jié)束時(shí)的(level,run)數(shù)對(duì),即步驟3中編碼的最后一個(gè)(level,run)數(shù)對(duì)的level值選擇編碼EOB采用的碼表;從碼表中查出對(duì)應(yīng)的EOB碼字,采用步驟331所述的方法,將EOB碼字轉(zhuǎn)換成Exp-Golomb碼。
通過以上的描述可以看出,本發(fā)明方法是一種對(duì)2D-VLC變長熵編碼器的改進(jìn),計(jì)算復(fù)雜度并不高,但編碼效率有了極大的提高。
最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明而并非限制本發(fā)明所描述的技術(shù)方案;因此,盡管本說明書參照上述的各個(gè)實(shí)施例對(duì)本發(fā)明已進(jìn)行了詳細(xì)的說明,但是,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換;而一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1、一種用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,包括如下步驟
步驟1對(duì)圖像塊的被編碼塊系數(shù)進(jìn)行zig-zag掃描,形成(level,run)數(shù)對(duì)序列;
步驟2根據(jù)圖像塊所在宏塊類型選擇用于編碼當(dāng)前被編碼圖像塊的碼表類型;
步驟3對(duì)步驟1得到的數(shù)對(duì)序列中每一(level,run)數(shù)對(duì)進(jìn)行編碼;
步驟4編碼塊結(jié)束標(biāo)志EOB。
2、根據(jù)權(quán)利要求1所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于所述的zig-zag掃描,具體過程為從圖像塊最左上開始,先橫向移動(dòng)一個(gè)單元,然后向左下方順次移動(dòng),每次到達(dá)圖像塊左或下邊緣,就向下或向移右動(dòng)一個(gè)單元,然后向右上方順次移動(dòng),每次到達(dá)圖像塊上或右邊緣,再向右或向下移動(dòng)一個(gè)單元,然后向左下方順次移動(dòng),如此循環(huán),到達(dá)最右下;就得到整個(gè)圖像塊的(level,run)數(shù)對(duì)序列。
3、根據(jù)權(quán)利要求1所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于所述的根據(jù)宏塊類型選擇用于編碼當(dāng)前被編碼圖像塊系數(shù)的碼表,具體為如下過程如果當(dāng)前宏塊類型為intra型,則選擇intra型碼表編碼當(dāng)前宏塊內(nèi)亮度塊的系數(shù);如果宏塊類型為inter型,則選擇inter型碼表編碼當(dāng)前宏塊內(nèi)亮度塊的系數(shù);如果對(duì)宏塊內(nèi)色度塊的編碼,采用inter型碼表或采用色度塊自身的碼表。
4、根據(jù)權(quán)利要求1所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于所述的步驟3,進(jìn)一步具體包括
步驟31采用固定碼表編碼最后一個(gè)(level,run)數(shù)對(duì);
步驟32以當(dāng)前已編碼的(level,run)數(shù)對(duì)的level值選擇編碼前一數(shù)對(duì)的碼表;
步驟33以步驟32所選擇的碼表編碼前一(level,run)數(shù)對(duì)編碼;
步驟34如果沒有對(duì)所有的(level,run)數(shù)對(duì)編碼完畢,則執(zhí)行步驟32;否則結(jié)束步驟三。
5、根據(jù)權(quán)利要求4所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于所述的碼表為2D-VLC結(jié)構(gòu),包括(level,run)數(shù)對(duì)及EOB與碼字的映射關(guān)系。
6、根據(jù)權(quán)利要求4所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于步驟31中所述的固定碼表,當(dāng)編碼inter型圖像塊時(shí)為VLCO_inter碼表;當(dāng)編碼intra型圖像塊時(shí)為VLCO_intra碼表。
7、根據(jù)權(quán)利要求4所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于所述步驟3中,編碼具體包括如下步驟
步驟331如果(level,run)包含在碼表當(dāng)中,則直接從碼表中查表得到碼字,再將碼字轉(zhuǎn)換成Exp-Golomb碼;
步驟332如果(level,run)超出碼表范圍,先編碼escape_code,之后將level和run分別轉(zhuǎn)換成Exp-Golomb碼。
8、根據(jù)權(quán)利要求7所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于轉(zhuǎn)化成Exp-Golomb碼具體包括如下過程首先根據(jù)碼表確定進(jìn)行轉(zhuǎn)換需要的Exp-Golomb的階數(shù),然后根據(jù)階數(shù)和碼字從Exp-Golomb碼表中查出對(duì)應(yīng)的Exp-Golomb碼,完成轉(zhuǎn)換。
9、根據(jù)權(quán)利要求8所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于確定進(jìn)行轉(zhuǎn)換需要的Exp-Golomb的階數(shù),具體包括如下過程
步驟100判斷需要進(jìn)行轉(zhuǎn)換的類型,如果是從碼表中查出的(level,run)對(duì)應(yīng)的碼字或EOB對(duì)應(yīng)的碼字,執(zhí)行步驟101;如果是超出碼表的level值或run值執(zhí)行步驟102;
步驟101根據(jù)碼表的不同來確定Exp-Golomb的階數(shù);
步驟102根據(jù)圖象塊所在宏塊為intra型和inter型來確定Exp-Golomb的階數(shù)。
10、根據(jù)權(quán)利要求1所述的用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,其特征在于所述的步驟4,編碼塊結(jié)束標(biāo)志EOB,具體過程為根據(jù)步驟3最后一個(gè)(level,run)數(shù)對(duì)的level值選擇編碼EOB的碼表,從碼表中查出對(duì)應(yīng)的EOB碼字,并轉(zhuǎn)換成Exp-Golomb碼。
全文摘要
本發(fā)明公開了一種用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法,包括如下步驟首先,對(duì)被編碼塊系數(shù)進(jìn)行zig-zag掃描,形成(level,run)數(shù)對(duì)序列;然后,根據(jù)圖像塊類型選擇用于編碼當(dāng)前被編碼塊的碼表類型;接下來對(duì)得到的數(shù)對(duì)序列中每一(level,run)數(shù)對(duì)進(jìn)行多碼表切換編碼,數(shù)對(duì)的編碼順序?yàn)閦ig-zag掃描的逆向順序;最后,以當(dāng)前碼表,編碼塊結(jié)束標(biāo)志EOB;本發(fā)明用于視頻預(yù)測殘差系數(shù)編碼的熵編碼方法通過為不同類型,不同level值區(qū)域設(shè)定不同的碼表進(jìn)行編碼,充分考慮到了上下文環(huán)境和被編碼元素的條件概率分布規(guī)律,同時(shí)對(duì)算法實(shí)現(xiàn)復(fù)雜度沒有影響,并且提高了編碼效率。
文檔編號(hào)H04N7/24GK1527610SQ03157189
公開日2004年9月8日 申請(qǐng)日期2003年9月18日 優(yōu)先權(quán)日2003年9月18日
發(fā)明者文 高, 高文, 趙德斌, 王強(qiáng), 馬思偉, 呂巖 申請(qǐng)人:中國科學(xué)院計(jì)算技術(shù)研究所