3、cabac熵編碼

接著上面說(shuō),此時(shí)我們要用的是cabac熵編碼,那么這種熵編碼,我們之前就已經(jīng)說(shuō)了,會(huì)分成三步:
1、二值化;也就是把1,2,3,4,5,6這些轉(zhuǎn)成0101的樣子;
2、上下文建模:建立概率模型;上一篇文章說(shuō)了,要做算數(shù)編碼,就要有概率模型;
3、算數(shù)編碼;
自然,我們需要一個(gè)一個(gè)的看;首先要看二值化的方式;二值化的方式有三種,一個(gè)是我們上面說(shuō)的哥倫布指數(shù)編碼,就一個(gè)地方用,然后還是1階的;其實(shí)還有兩種,一個(gè)是定長(zhǎng)編碼,在表示里面的話,就是用FL代替,如下圖:



其中,方框的是代表的是使用的定長(zhǎng)編碼的方式完成的二值化,圓圈部分代表的是使用的截?cái)鄏ice碼來(lái)進(jìn)行二值化的:
1、先看定長(zhǎng)編碼:


image.png

很簡(jiǎn)單;定長(zhǎng)編碼就是將數(shù)值直接轉(zhuǎn)化成為二進(jìn)制;這就是定長(zhǎng)編碼;如果計(jì)算長(zhǎng)度的話,那么長(zhǎng)度就是以2為底的log;
不過(guò)這里面有個(gè)地方需要注意;如果cmax是31,長(zhǎng)度是5,但是我的值是3,編碼后是11怎么辦?那么需要在前面補(bǔ)0補(bǔ)齊;為00011;
2、截?cái)鄏ice編碼:


image.png

image.png

還是老辦法,解釋一下這個(gè)截?cái)鄏ice編碼:
這種編碼方式其實(shí)也不難,標(biāo)準(zhǔn)給出cMax以及cRiceParam的值,通過(guò)這兩個(gè)值然后計(jì)算前綴prefix和后綴suffixval;一切按照標(biāo)準(zhǔn)即可;


現(xiàn)在來(lái)看已經(jīng)有了二進(jìn)制的碼流了,我們是不是可以直接輸出了,此時(shí)輸出,肯定輸出不知道多少位了,因?yàn)槲粩?shù)是在是太多了;所以我們要想辦法進(jìn)行熵編碼;熵編碼這塊內(nèi)容較多,理解起來(lái)也比較難,所以在下一章節(jié)對(duì)照代碼來(lái)進(jìn)行梳理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容