欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

CABAC編碼方法和系統(tǒng)與流程

文檔序號(hào):12908496閱讀:533來源:國(guó)知局
CABAC編碼方法和系統(tǒng)與流程

本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,特別是涉及一種cabac編碼方法和系統(tǒng)。



背景技術(shù):

h.264是由iso(internationalorganizationforstandardization,國(guó)際標(biāo)準(zhǔn)化組織)/iec(internationalelectrotechnicalcommission,國(guó)際電工委員會(huì))和itu-t(itutelecommunicationstandardizationsector,國(guó)際電信聯(lián)盟電信標(biāo)準(zhǔn)分局)兩大國(guó)際標(biāo)準(zhǔn)組織聯(lián)合制定的視頻編碼標(biāo)準(zhǔn)。與以往的視頻標(biāo)準(zhǔn)相比,它具有更高的壓縮比,更好的網(wǎng)絡(luò)親和性和信道適應(yīng)性,同時(shí)具有較強(qiáng)的抗誤碼能力,能夠滿足非常廣泛的業(yè)務(wù)需求。因此,h.264標(biāo)準(zhǔn)在視頻芯片的開發(fā)中,得到了廣泛應(yīng)用。

h.264/avc(advancedvideocoding,高級(jí)視頻編碼)提出了兩種熵編碼方式—cavlc(contextadaptivevariablelengthcoding,基于上下文的可變長(zhǎng)編碼)和cabac(contextadaptivebinaryarithmaticcoding,基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼)。其中,cabac能夠充分考慮和利用視頻流的上下文信息,并且能夠自適應(yīng)視頻流的統(tǒng)計(jì)特性。

cabac的整個(gè)編碼流程如下:首先,對(duì)非二值特性的語(yǔ)法元素進(jìn)行二值化處理,對(duì)具有二值特性的語(yǔ)法元素則直接輸出到編碼處理單元;然后,根據(jù)各個(gè)語(yǔ)法元素二值化比特流中每一比特的概率分配特點(diǎn),進(jìn)行自適應(yīng)二進(jìn)制算術(shù)編碼。

目前,cabac的編碼是在一個(gè)周期中對(duì)二進(jìn)制比特流的一個(gè)比特進(jìn)行編碼,在一個(gè)比特編碼結(jié)束以后,再對(duì)下一比特進(jìn)行編碼,因?yàn)楹罄m(xù)比特的編碼要依賴當(dāng)前比特編碼更新后的信息,導(dǎo)致cabac編碼效率較低。



技術(shù)實(shí)現(xiàn)要素:

基于此,有必要針對(duì)傳統(tǒng)的cabac編碼方式容易造成cabac編碼效率較低的問題,提供一種cabac編碼方法和系統(tǒng)。

一種cabac編碼方法,包括以下步驟:

同步讀取待編碼的第一比特和第二比特;

獲取第一比特的歸一化前編碼區(qū)間跨度值,對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第一比特的歸一化后編碼區(qū)間跨度值;

獲取第二比特的歸一化前編碼區(qū)間跨度值,對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第二比特的歸一化后編碼區(qū)間跨度值;

獲取第一比特的編碼前編碼區(qū)間下限值,根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化后編碼區(qū)間下限值;

根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化后編碼區(qū)間下限值;

利用第一比特的歸一化后編碼區(qū)間下限值和第一比特的歸一化后編碼區(qū)間跨度值對(duì)第一比特進(jìn)行歸一化操作,利用第二比特的歸一化后編碼區(qū)間下限值和第二比特的歸一化后編碼區(qū)間跨度值對(duì)第二比特進(jìn)行歸一化操作,獲得第一比特和第二比特的編碼碼流。

一種cabac編碼系統(tǒng),包括:

同步讀取單元,用于同步讀取待編碼的第一比特和第二比特;

跨度值獲取單元,用于獲取第一比特的歸一化前編碼區(qū)間跨度值,對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第一比特的歸一化后編碼區(qū)間跨度值;獲取第二比特的歸一化前編碼區(qū)間跨度值,對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第二比特的歸一化后編碼區(qū)間跨度值;

下限值獲取單元,用于獲取第一比特的編碼前編碼區(qū)間下限值,根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化后編碼區(qū)間下限值;根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化后編碼區(qū)間下限值;

歸一化編碼單元,用于利用第一比特的歸一化后編碼區(qū)間下限值和第一比特的歸一化后編碼區(qū)間跨度值對(duì)第一比特進(jìn)行歸一化操作,利用第二比特的歸一化后編碼區(qū)間下限值和第二比特的歸一化后編碼區(qū)間跨度值對(duì)第二比特進(jìn)行歸一化操作,獲得第一比特和第二比特的編碼碼流。

一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述cabac編碼方法的步驟。

一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,處理器執(zhí)行程序時(shí)實(shí)現(xiàn)上述cabac編碼方法的步驟。

根據(jù)上述本發(fā)明的cabac編碼方法和系統(tǒng),其是同步讀取待編碼的第一比特和第二比特,在對(duì)第一比特的編碼處理過程中,將第一比特的歸一化后編碼區(qū)間下限值及時(shí)應(yīng)用到第二比特的編碼處理過程中,對(duì)編碼區(qū)間跨度值和編碼區(qū)間下限值進(jìn)行快速更新,因此,在編碼流程的一個(gè)周期內(nèi)可以完成對(duì)兩個(gè)比特的編碼。同時(shí),在對(duì)第二比特的編碼處理過程中,第二比特的歸一化后編碼區(qū)間下限值也可以快速應(yīng)用至后續(xù)比特的編碼,利用此種方式進(jìn)行編碼,可以避免傳統(tǒng)技術(shù)中因比特間編碼的依賴性而導(dǎo)致的流水線停滯問題。在編碼過程中,編碼區(qū)間下限值的快速更新可以使得歸一化過程中每一次迭代的信息快速得出,可以在一個(gè)周期內(nèi)整合每一次迭代產(chǎn)生的比特得到輸出位流,避免了傳統(tǒng)歸一化方案中多周期迭代帶來的流水線停滯問題,從而提高cabac編碼效率。

附圖說明

圖1是其中一個(gè)實(shí)施例中cabac編碼方法的流程示意圖;

圖2是其中一個(gè)實(shí)施例中cabac編碼系統(tǒng)的結(jié)構(gòu)示意圖;

圖3是其中一個(gè)具體實(shí)施例中cabac的整個(gè)編碼流程示意圖;

圖4是其中一個(gè)具體實(shí)施例中cabac的常規(guī)編碼流程示意圖;

圖5是其中一個(gè)具體實(shí)施例中cabac編碼歸一化流程示意圖;

圖6是其中一個(gè)具體實(shí)施例中輸出位流過程putbit()的流程示意圖;

圖7是其中一個(gè)具體實(shí)施例中cabac多bin編碼的加速裝置的結(jié)構(gòu)示意圖;

圖8是其中一個(gè)具體實(shí)施例中位移判斷電路的結(jié)構(gòu)示意圖;

圖9是其中一個(gè)具體實(shí)施例中編碼區(qū)間下限值更新電路的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方式僅僅用以解釋本發(fā)明,并不限定本發(fā)明的保護(hù)范圍。

參見圖1所示,為本發(fā)明一個(gè)實(shí)施例的cabac編碼方法的流程示意圖。該實(shí)施例中的cabac編碼方法包括以下步驟:

步驟s101:同步讀取待編碼的第一比特和第二比特;

步驟s102:獲取第一比特的歸一化前編碼區(qū)間跨度值,對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第一比特的歸一化后編碼區(qū)間跨度值;

步驟s103:獲取第二比特的歸一化前編碼區(qū)間跨度值,對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第二比特的歸一化后編碼區(qū)間跨度值;

步驟s104:獲取第一比特的編碼前編碼區(qū)間下限值,根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化后編碼區(qū)間下限值;

在本步驟中,根據(jù)第一比特本身的特征可以獲取第一比特的編碼前編碼區(qū)間下限值,編碼過程中需要使用第一比特的歸一化后編碼區(qū)間下限值,第一比特的歸一化后編碼區(qū)間下限值與第一比特的編碼前編碼區(qū)間下限值不同,還與第一比特的歸一化前編碼區(qū)間跨度值、符號(hào)概率特性有關(guān);

步驟s105:根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化后編碼區(qū)間下限值;

在本步驟中,第二比特的歸一化后編碼區(qū)間下限值依賴于第一比特的歸一化后編碼區(qū)間下限值,還與第二比特的歸一化前編碼區(qū)間跨度值、符號(hào)概率特性有關(guān);

步驟s106:利用第一比特的歸一化后編碼區(qū)間下限值和第一比特的歸一化后編碼區(qū)間跨度值對(duì)第一比特進(jìn)行歸一化操作,利用第二比特的歸一化后編碼區(qū)間下限值和第二比特的歸一化后編碼區(qū)間跨度值對(duì)第二比特進(jìn)行歸一化操作,獲得第一比特和第二比特的編碼碼流。

在本步驟中,第一比特和第二比特的編碼碼流可以同步獲取。

在本實(shí)施例中,同步讀取待編碼的第一比特和第二比特,在對(duì)第一比特的編碼處理過程中,將第一比特的歸一化后編碼區(qū)間下限值及時(shí)應(yīng)用到第二比特的編碼處理過程中,對(duì)編碼區(qū)間跨度值和編碼區(qū)間下限值進(jìn)行快速更新,因此,在編碼流程的一個(gè)周期內(nèi)可以完成對(duì)兩個(gè)比特的編碼。同時(shí),在對(duì)第二比特的編碼處理過程中,第二比特的歸一化后編碼區(qū)間下限值也可以快速應(yīng)用至后續(xù)比特的編碼,利用此種方式進(jìn)行編碼,可以避免傳統(tǒng)技術(shù)中因比特間編碼的依賴性而導(dǎo)致的流水線停滯問題。在編碼過程中,編碼區(qū)間下限值的快速更新可以使得歸一化過程中每一次迭代的信息快速得出,可以在一個(gè)周期內(nèi)整合每一次迭代產(chǎn)生的比特得到輸出位流,避免了傳統(tǒng)歸一化方案中多周期迭代帶來的流水線停滯問題,從而提高cabac編碼效率。

在其中一個(gè)實(shí)施例中,獲取第一比特的歸一化前編碼區(qū)間跨度值的步驟包括以下步驟:

獲取第一比特的編碼前編碼區(qū)間跨度值和第一比特的概率狀態(tài)值,根據(jù)第一比特的編碼前編碼區(qū)間跨度值和第一比特的概率狀態(tài)值生成第一比特的歸一化前編碼區(qū)間跨度值。

在本實(shí)施例中,第一比特的編碼前編碼區(qū)間跨度值是在編碼之前的第一比特本身所在的區(qū)間的跨度值,是區(qū)間中最大值與最小值的差值,第一比特的概率狀態(tài)值表示的是第一比特自身的概率,將第一比特的編碼前編碼區(qū)間跨度值與第一比特的概率狀態(tài)值相結(jié)合,可以獲得更準(zhǔn)確的歸一化前編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,獲取第二比特的歸一化前編碼區(qū)間跨度值的步驟包括以下步驟:

獲取第二比特的概率狀態(tài)值,根據(jù)第二比特的概率狀態(tài)值和第一比特的歸一化后編碼區(qū)間跨度值生成第二比特的歸一化前編碼區(qū)間跨度值。

在本實(shí)施例中,第二比特的歸一化前編碼區(qū)間跨度值是在第一比特的歸一化后編碼區(qū)間跨度值的基礎(chǔ)上獲取的,第一比特的編碼處理過程中產(chǎn)生的第一比特的歸一化后編碼區(qū)間跨度值可以及時(shí)應(yīng)用到第二比特的編碼處理過程中,使第一比特的編碼處理過程與第二比特的編碼處理過程能更好地同步,以便在同一周期內(nèi)完成對(duì)兩個(gè)比特的編碼。

可選的,對(duì)編碼區(qū)間跨度值的處理可以通過編碼區(qū)間更新引擎執(zhí)行,編碼區(qū)間更新引擎可以對(duì)第一比特的編碼前編碼區(qū)間跨度值進(jìn)行處理,得到第一比特的歸一化后編碼區(qū)間跨度值,對(duì)第一比特的歸一化后編碼區(qū)間跨度值進(jìn)行處理,得到第二比特的歸一化前編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,獲取第一比特的概率狀態(tài)值和第二比特的概率狀態(tài)值的步驟包括以下步驟:

獲取第一比特的上下文索引值和第二比特的上下文索引值,分別根據(jù)第一比特的上下文索引值和第二比特的上下文索引值在預(yù)設(shè)概率狀態(tài)表中查詢對(duì)應(yīng)的概率狀態(tài)值,獲得第一比特的概率狀態(tài)值和第二比特的概率狀態(tài)值;

每獲得一個(gè)概率狀態(tài)值,根據(jù)該概率狀態(tài)值和對(duì)應(yīng)的上下文索引值對(duì)預(yù)設(shè)概率狀態(tài)表進(jìn)行更新。

在本實(shí)施例中,根據(jù)比特本身可以獲取其上下文索引值,利用上下文索引值在預(yù)設(shè)概率狀態(tài)表中進(jìn)行查詢,得到相應(yīng)的概率狀態(tài)值,并將概率狀態(tài)值用于編碼區(qū)間跨度值的計(jì)算,通過查表的方式可以快速地獲取概率狀態(tài)值,簡(jiǎn)化編碼區(qū)間跨度值的計(jì)算過程。在查表過程中,由于每一個(gè)比特與其上一個(gè)比特密切相關(guān),上下文索引值的改變會(huì)使對(duì)應(yīng)的概率狀態(tài)值發(fā)生變化,因此在每獲得一個(gè)概率狀態(tài)值后,需要根據(jù)該概率狀態(tài)值和對(duì)應(yīng)的上下文索引值對(duì)預(yù)設(shè)概率狀態(tài)表進(jìn)行更新,以便獲得準(zhǔn)確的下一比特的概率狀態(tài)值。

可選的,當(dāng)?shù)诙忍氐纳舷挛乃饕蹬c第一比特的上下文索引值相同時(shí),第二比特的概率狀態(tài)值與第一比特的概率狀態(tài)值相同,由于前后兩個(gè)比特的上下文索引值相同,因此概率狀態(tài)表不會(huì)發(fā)生變化,此時(shí)無需進(jìn)行查表,第二比特的概率狀態(tài)值與第一比特的概率狀態(tài)值相同。

可選的,對(duì)上下文索引值的處理可以通過上下文更新引擎執(zhí)行,上下文更新引擎可以對(duì)第一比特和第二比特的上下文索引值進(jìn)行查表檢索,得到第一比特和第二比特的概率狀態(tài)值。

在其中一個(gè)實(shí)施例中,根據(jù)第一比特的編碼前編碼區(qū)間跨度值和第一比特的概率狀態(tài)值生成第一比特的歸一化前編碼區(qū)間跨度值的步驟包括以下步驟:

根據(jù)所述第一比特的編碼前編碼區(qū)間跨度值、所述第一比特的概率狀態(tài)值以及所述第一比特的符號(hào)特性,獲取所述第一比特的歸一化前編碼區(qū)間跨度值;

根據(jù)第二比特的概率狀態(tài)值和第一比特的歸一化后編碼區(qū)間跨度值生成第二比特的歸一化前編碼區(qū)間跨度值的步驟包括以下步驟:

根據(jù)第一比特的歸一化后編碼區(qū)間跨度值、第二比特的概率狀態(tài)值以及第二比特的符號(hào)特性獲取所述第二比特的歸一化前編碼區(qū)間跨度值。

在本實(shí)施例中,比特的歸一化前編碼區(qū)間跨度值還與比特的符號(hào)特性有關(guān),利用比特的符號(hào)特征可以使編碼區(qū)間跨度值更好地與比特相適應(yīng),利于后續(xù)的編碼處理。

可選的,根據(jù)第一比特的編碼前編碼區(qū)間跨度值和第一比特的概率狀態(tài)值獲取第一比特的第一概率編碼區(qū)間跨度值和第二概率編碼區(qū)間跨度值,根據(jù)第一比特的符號(hào)概率特性選擇第一概率編碼區(qū)間跨度值或第二概率編碼區(qū)間跨度值為第一比特的歸一化前編碼區(qū)間跨度值;其中,第一概率編碼區(qū)間跨度值與第二概率編碼區(qū)間跨度值的和值為第一比特的編碼前編碼區(qū)間跨度值;

根據(jù)第一比特的歸一化后編碼區(qū)間跨度值和第二比特的概率狀態(tài)值獲取第二比特的第三概率編碼區(qū)間跨度值和第四概率編碼區(qū)間跨度值,根據(jù)第二比特的符號(hào)概率特性選擇第三概率編碼區(qū)間跨度值或第四概率編碼區(qū)間跨度值為第二比特的歸一化前編碼區(qū)間跨度值;其中,第三概率編碼區(qū)間跨度值與第四概率編碼區(qū)間跨度值的和值為第一比特的歸一化后編碼區(qū)間跨度值;

概率狀態(tài)值表示比特本身的概率狀態(tài),根據(jù)概率狀態(tài)值和編碼區(qū)間跨度值可以得到兩個(gè)概率區(qū)間跨度值,兩個(gè)概率區(qū)間跨度值之和等于編碼區(qū)間跨度值,根據(jù)比特本身的符號(hào)概率特性可以從兩個(gè)概率區(qū)間跨度值中確定比特編碼所需的編碼區(qū)間跨度值,從而使編碼區(qū)間跨度值與比特相適應(yīng)。

可選的,可以將概率狀態(tài)值和編碼區(qū)間跨度值做乘積運(yùn)算處理,得到一個(gè)小概率編碼區(qū)間跨度值,編碼區(qū)間跨度值減去小概率編碼區(qū)間跨度值,得到一個(gè)大概率編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第一比特的歸一化后編碼區(qū)間跨度值的步驟包括以下步驟:

利用位移判斷電路確定第一比特的歸一化前編碼區(qū)間跨度值歸一化所需的第一移位位數(shù),根據(jù)第一移位位數(shù)對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行左移,獲得第一比特的歸一化后編碼區(qū)間跨度值;

對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第二比特的歸一化后編碼區(qū)間跨度值的步驟包括以下步驟:

利用位移判斷電路確定第二比特的歸一化前編碼區(qū)間跨度值歸一化所需的第二移位位數(shù),根據(jù)第二移位位數(shù)對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行左移,獲得第二比特的歸一化后編碼區(qū)間跨度值。

在本實(shí)施例中,為了統(tǒng)一編碼過程,需要對(duì)歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,其中的基本操作是對(duì)歸一化前編碼區(qū)間跨度值進(jìn)行移位處理,通過位移判斷電路可以方便快捷地確定每一個(gè)歸一化前編碼區(qū)間跨度值歸一化所需的移位位數(shù),進(jìn)而快速得到歸一化后的編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,位移判斷電路包括八條支路,每條支路接收目標(biāo)編碼區(qū)間跨度值;

第1條支路將目標(biāo)編碼區(qū)間跨度值與28進(jìn)行二進(jìn)制按位與操作,將按位與操作的結(jié)果按8位進(jìn)行右移,將該右移結(jié)果經(jīng)過對(duì)應(yīng)的選擇器輸出相應(yīng)的數(shù)據(jù),在該右移結(jié)果為非0時(shí),對(duì)應(yīng)的選擇器輸出0;在該右移結(jié)果為0時(shí),對(duì)應(yīng)的選擇器輸出0;

第i條支路將目標(biāo)編碼區(qū)間跨度值與2(9-i)進(jìn)行二進(jìn)制按位與操作,按位與操作的結(jié)果右移(9-i)位,將該右移結(jié)果與前(i-1)條支路的右移結(jié)果的取反值進(jìn)行二次二進(jìn)制按位與操作,二次二進(jìn)制按位與操作結(jié)果經(jīng)過對(duì)應(yīng)的選擇器輸出相應(yīng)的數(shù)據(jù),在二次二進(jìn)制按位與操作結(jié)果為非0時(shí),對(duì)應(yīng)的選擇器輸出i-1,在二次二進(jìn)制按位與操作結(jié)果為0時(shí),對(duì)應(yīng)的選擇器輸出0;其中,2≤i≤8且i為整數(shù);

將所有支路的選擇器的輸出結(jié)果進(jìn)行按位或操作,得到移位位數(shù);其中,在目標(biāo)編碼區(qū)間跨度值為第一比特的歸一化前編碼區(qū)間跨度值時(shí),得到第一移位位數(shù);在目標(biāo)編碼區(qū)間跨度值為第二比特的歸一化前編碼區(qū)間跨度值時(shí),得到第二移位位數(shù)。

在本實(shí)施例中,歸一化前編碼區(qū)間跨度值的位數(shù)不超過8位,位移判斷電路通過八條支路足以判斷編碼區(qū)間跨度值的移位位數(shù),每條支路分別處理對(duì)應(yīng)位的數(shù)據(jù),通過與操作電路、移位操作電路、選擇器、或操作電路進(jìn)行綜合處理,最終得到輸入至位移判斷電路的歸一化前編碼區(qū)間跨度值歸一化所需的移位位數(shù),位移判斷電路的硬件結(jié)構(gòu)簡(jiǎn)單,可以快速獲得移位位數(shù),無需進(jìn)行復(fù)雜的移位計(jì)算,減少編碼處理的負(fù)荷。

位移判斷電路可以分別對(duì)第一比特的歸一化前編碼區(qū)間跨度值和第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行移位位數(shù)計(jì)算。

在其中一個(gè)實(shí)施例中,根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化后編碼區(qū)間下限值的步驟包括以下步驟:

根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化前編碼區(qū)間下限值;

根據(jù)第一移位位數(shù)對(duì)第一比特的歸一化前編碼區(qū)間下限值進(jìn)行更新,獲得第一比特的歸一化后編碼區(qū)間下限值;

根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化后編碼區(qū)間下限值的步驟包括以下步驟:

根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化前編碼區(qū)間下限值;

根據(jù)第二移位位數(shù)對(duì)第二比特的歸一化前編碼區(qū)間下限值進(jìn)行更新,獲得第二比特的歸一化后編碼區(qū)間下限值。在本實(shí)施例中,先根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化前編碼區(qū)間下限值,利用第一移位位數(shù)對(duì)第一比特的歸一化前編碼區(qū)間下限值進(jìn)行移位更新,得到的第一比特的歸一化后編碼區(qū)間下限值可以直接用于對(duì)第一比特的歸一化操作;同理,利用第二移位位數(shù)對(duì)第二比特的歸一化前編碼區(qū)間下限值進(jìn)行移位更新,得到的第二比特的歸一化后編碼區(qū)間下限值可以直接用于對(duì)第二比特的歸一化操作,利用移位位數(shù)對(duì)歸一化前編碼區(qū)間下限值進(jìn)行更新使編碼區(qū)間下限值的變化與編碼區(qū)間跨度值的變化關(guān)聯(lián)統(tǒng)一,提高歸一化的準(zhǔn)確性。

可選的,對(duì)編碼區(qū)間下限值的處理可以通過區(qū)間下限更新引擎執(zhí)行,區(qū)間下限更新引擎可以對(duì)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼區(qū)間下限值和第一比特的符號(hào)概率特性進(jìn)行計(jì)算處理,得到第一比特的歸一化后編碼區(qū)間下限值,再對(duì)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性進(jìn)行計(jì)算處理,得到第二比特的歸一化后編碼區(qū)間下限值。

在其中一個(gè)實(shí)施例中,利用編碼區(qū)間下限值更新電路執(zhí)行更新過程;

編碼區(qū)間下限值更新電路接收目標(biāo)編碼區(qū)間下限值,將目標(biāo)編碼區(qū)間下限值與29進(jìn)行二進(jìn)制按位與操作,將按位與操作的結(jié)果按9位進(jìn)行右移;

在右移結(jié)果為0時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x1ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;

在右移結(jié)果為非0時(shí),將目標(biāo)編碼區(qū)間下限值右移目標(biāo)位數(shù),在目標(biāo)編碼區(qū)間下限值右移結(jié)果等于目標(biāo)值時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x3ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;在目標(biāo)編碼區(qū)間下限值右移結(jié)果不等于目標(biāo)值時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x1ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;其中,目標(biāo)位數(shù)是10與移位位數(shù)之差,目標(biāo)值為1左移移位位數(shù)后與1的差值;

在目標(biāo)編碼區(qū)間下限值為第一比特的歸一化前編碼區(qū)間下限值時(shí),移位位數(shù)為第一移位位數(shù),在目標(biāo)編碼區(qū)間下限值為第二比特的歸一化前編碼區(qū)間下限值時(shí),移位位數(shù)為第二移位位數(shù)。

在本實(shí)施例中,編碼區(qū)間下限值更新電路首先對(duì)目標(biāo)編碼區(qū)間下限值的位數(shù)進(jìn)行判斷選擇,在目標(biāo)編碼區(qū)間下限值的位數(shù)未超過8位時(shí),根據(jù)移位位數(shù)對(duì)目標(biāo)編碼區(qū)間下限值進(jìn)行左移,再與十六進(jìn)制數(shù)0x1ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;在目標(biāo)編碼區(qū)間下限值的位數(shù)超過8位時(shí),根據(jù)目標(biāo)位數(shù)對(duì)目標(biāo)編碼區(qū)間下限值進(jìn)行右移,并在目標(biāo)編碼區(qū)間下限值右移結(jié)果等于目標(biāo)值時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x3ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;在目標(biāo)編碼區(qū)間下限值右移結(jié)果不等于目標(biāo)值時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x1ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;此編碼區(qū)間下限值更新電路可以通過結(jié)構(gòu)簡(jiǎn)單的與操作電路、移位電路、選擇器,針對(duì)不同的目標(biāo)編碼區(qū)間下限值進(jìn)行更新,快速得到更新后的編碼區(qū)間下限值,減少編碼處理的負(fù)荷。

編碼區(qū)間下限值更新電路可以分別對(duì)第一比特的歸一化前編碼區(qū)間下限值和第二比特的歸一化前編碼區(qū)間下限值進(jìn)行更新。

根據(jù)上述cabac編碼方法,本發(fā)明實(shí)施例還提供一種cabac編碼系統(tǒng),以下就本發(fā)明的cabac編碼系統(tǒng)的實(shí)施例進(jìn)行詳細(xì)說明。

參見圖2所示,為本發(fā)明一個(gè)實(shí)施例的cabac編碼系統(tǒng)的結(jié)構(gòu)示意圖。該實(shí)施例中的cabac編碼系統(tǒng)包括:

同步讀取單元210,用于同步讀取待編碼的第一比特和第二比特;

跨度值獲取單元220,用于獲取第一比特的歸一化前編碼區(qū)間跨度值,對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第一比特的歸一化后編碼區(qū)間跨度值;獲取第二比特的歸一化前編碼區(qū)間跨度值,對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行歸一化處理,獲得第二比特的歸一化后編碼區(qū)間跨度值;

下限值獲取單元230,用于獲取第一比特的編碼前編碼區(qū)間下限值,根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化后編碼區(qū)間下限值;根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化后編碼區(qū)間下限值;

歸一化編碼單元240,用于利用第一比特的歸一化后編碼區(qū)間下限值和第一比特的歸一化后編碼區(qū)間跨度值對(duì)第一比特進(jìn)行歸一化操作,利用第二比特的歸一化后編碼區(qū)間下限值和第二比特的歸一化后編碼區(qū)間跨度值對(duì)第二比特進(jìn)行歸一化操作,獲得第一比特和第二比特的編碼碼流。

在其中一個(gè)實(shí)施例中,跨度值獲取單元220獲取第一比特的編碼前編碼區(qū)間跨度值和第一比特的第一比特的概率狀態(tài)值,根據(jù)第一比特的編碼前編碼區(qū)間跨度值和第一比特的概率狀態(tài)值生成第一比特的歸一化前編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,跨度值獲取單元220獲取第二比特的概率狀態(tài)值,根據(jù)第二比特的概率狀態(tài)值和第一比特的歸一化后編碼區(qū)間跨度值生成第二比特的歸一化前編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,跨度值獲取單元220獲取第一比特的上下文索引值和第二比特的上下文索引值,分別根據(jù)第一比特的上下文索引值和第二比特的上下文索引值在預(yù)設(shè)概率狀態(tài)表中查詢對(duì)應(yīng)的概率狀態(tài)值,獲得第一比特的概率狀態(tài)值和第二比特的概率狀態(tài)值;每獲得一個(gè)概率狀態(tài)值,根據(jù)該概率狀態(tài)值和對(duì)應(yīng)的上下文索引值對(duì)預(yù)設(shè)概率狀態(tài)表進(jìn)行更新。

在其中一個(gè)實(shí)施例中,跨度值獲取單元220根據(jù)第一比特的編碼前編碼區(qū)間跨度值、所述第一比特的概率狀態(tài)值以及所述第一比特的符號(hào)特性,獲取所述第一比特的歸一化前編碼區(qū)間跨度值;

跨度值獲取單元220根據(jù)所述第一比特的歸一化后編碼區(qū)間跨度值、所述第二比特的概率狀態(tài)值以及所述第二比特的符號(hào)特性,獲取所述第二比特的歸一化前編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,跨度值獲取單元220利用位移判斷電路確定第一比特的歸一化前編碼區(qū)間跨度值歸一化所需的第一移位位數(shù),根據(jù)第一移位位數(shù)對(duì)第一比特的歸一化前編碼區(qū)間跨度值進(jìn)行左移,獲得第一比特的歸一化后編碼區(qū)間跨度值;

跨度值獲取單元220利用位移判斷電路確定第二比特的歸一化前編碼區(qū)間跨度值歸一化所需的第二移位位數(shù),根據(jù)第二移位位數(shù)對(duì)第二比特的歸一化前編碼區(qū)間跨度值進(jìn)行左移,獲得第二比特的歸一化后編碼區(qū)間跨度值。

在其中一個(gè)實(shí)施例中,位移判斷電路包括八條支路,每條支路接收目標(biāo)編碼區(qū)間跨度值;

第1條支路將目標(biāo)編碼區(qū)間跨度值與28進(jìn)行二進(jìn)制按位與操作,將按位與操作的結(jié)果按8位進(jìn)行右移,將該右移結(jié)果經(jīng)過對(duì)應(yīng)的選擇器輸出相應(yīng)的數(shù)據(jù),在該右移結(jié)果為非0時(shí),對(duì)應(yīng)的選擇器輸出0;在該右移結(jié)果為0時(shí),對(duì)應(yīng)的選擇器輸出0;

第i條支路將目標(biāo)編碼區(qū)間跨度值與2(9-i)進(jìn)行二進(jìn)制按位與操作,按位與操作的結(jié)果右移(9-i)位,將該右移結(jié)果與前(i-1)條支路的右移結(jié)果的取反值進(jìn)行二次二進(jìn)制按位與操作,二次二進(jìn)制按位與操作結(jié)果經(jīng)過對(duì)應(yīng)的選擇器輸出相應(yīng)的數(shù)據(jù),在二次二進(jìn)制按位與操作結(jié)果為非0時(shí),對(duì)應(yīng)的選擇器輸出i-1,在二次二進(jìn)制按位與操作結(jié)果為0時(shí),對(duì)應(yīng)的選擇器輸出0;其中,2≤i≤8且i為整數(shù);所有支路的選擇器的輸出結(jié)果進(jìn)行按位或操作,得到移位位數(shù);其中,在目標(biāo)編碼區(qū)間跨度值為第一比特的歸一化前編碼區(qū)間跨度值時(shí),得到第一移位位數(shù);在目標(biāo)編碼區(qū)間跨度值為第二比特的歸一化前編碼區(qū)間跨度值時(shí),得到第二移位位數(shù)。

在其中一個(gè)實(shí)施例中,下限值獲取單元230根據(jù)第一比特的歸一化前編碼區(qū)間跨度值、第一比特的編碼前編碼區(qū)間下限值和第一比特的符號(hào)概率特性獲取第一比特的歸一化前編碼區(qū)間下限值;根據(jù)第一移位位數(shù)對(duì)第一比特的歸一化前編碼區(qū)間下限值進(jìn)行更新,獲得第一比特的歸一化后編碼區(qū)間下限值;

下限值獲取單元230根據(jù)第二比特的歸一化前編碼區(qū)間跨度值、第一比特的歸一化后編碼區(qū)間下限值和第二比特的符號(hào)概率特性獲取第二比特的歸一化前編碼區(qū)間下限值;根據(jù)第二移位位數(shù)對(duì)第二比特的歸一化前編碼區(qū)間下限值進(jìn)行更新,獲得第二比特的歸一化后編碼區(qū)間下限值。

在其中一個(gè)實(shí)施例中,下限值獲取單元230利用編碼區(qū)間下限值更新電路執(zhí)行更新過程;

編碼區(qū)間下限值更新電路接收目標(biāo)編碼區(qū)間下限值,將目標(biāo)編碼區(qū)間下限值與29進(jìn)行二進(jìn)制按位與操作,將按位與操作的結(jié)果按9位進(jìn)行右移;在右移結(jié)果為0時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x1ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;在右移結(jié)果為非0時(shí),將目標(biāo)編碼區(qū)間下限值右移目標(biāo)位數(shù),在目標(biāo)編碼區(qū)間下限值右移結(jié)果等于目標(biāo)值時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x3ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;在目標(biāo)編碼區(qū)間下限值右移結(jié)果不等于目標(biāo)值時(shí),將目標(biāo)編碼區(qū)間下限值左移移位位數(shù),再與十六進(jìn)制數(shù)0x1ff進(jìn)行二進(jìn)制按位與操作,得到更新后的編碼區(qū)間下限值;其中,目標(biāo)位數(shù)是10與移位位數(shù)之差,目標(biāo)值為1左移移位位數(shù)后與1的差值;

在目標(biāo)編碼區(qū)間下限值為第一比特的歸一化前編碼區(qū)間下限值時(shí),移位位數(shù)為第一移位位數(shù),在目標(biāo)編碼區(qū)間下限值為第二比特的歸一化前編碼區(qū)間下限值時(shí),移位位數(shù)為第二移位位數(shù)。

本發(fā)明的cabac編碼系統(tǒng)與本發(fā)明的cabac編碼方法一一對(duì)應(yīng),在上述cabac編碼方法的實(shí)施例中闡述的技術(shù)特征及其有益效果均適用于cabac編碼系統(tǒng)的實(shí)施例中。

根據(jù)上述cabac編碼方法,本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和一種計(jì)算機(jī)設(shè)備。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述cabac編碼方法的步驟;計(jì)算機(jī)設(shè)備包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,處理器執(zhí)行程序時(shí)實(shí)現(xiàn)上述cabac編碼方法的步驟。

在一個(gè)具體的實(shí)施例中,傳統(tǒng)的cabac的整個(gè)編碼流程如圖3所示,首先,對(duì)非二值特性的語(yǔ)法元素進(jìn)行二值化處理,對(duì)具有二值特性的語(yǔ)法元素則直接輸出到編碼處理單元;然后,根據(jù)各個(gè)語(yǔ)法元素二值化比特流中每一比特的概率分配特點(diǎn),進(jìn)行自適應(yīng)二進(jìn)制算術(shù)編碼。算術(shù)編碼模塊分為兩個(gè)并行分支,進(jìn)入常規(guī)編碼分支的二進(jìn)制符號(hào),首先確定其所屬的上下文模型,完成編碼區(qū)間的劃分,并確定新的編碼區(qū)間r和編碼區(qū)間下限l,然后根據(jù)當(dāng)前編碼的比特進(jìn)行上下文模型的更新;進(jìn)入旁路編碼的分支,主要是二值化比特串中“0”和“1”概率相當(dāng)?shù)谋忍匚恢?,編碼過程中“0”和“1”的概率固定為1/2,以此固定概率分配進(jìn)行算術(shù)編碼,這樣簡(jiǎn)單高效。

cabac常規(guī)編碼流程如圖4所示,首先根據(jù)當(dāng)前編碼符號(hào)binval的上下文變量ctx_idx確定概率狀態(tài)索引值i_state,然后通過i_state和編碼前的區(qū)間i_range確定小概率符號(hào)的編碼區(qū)間i_range_lps。

根據(jù)當(dāng)前編碼符號(hào)的概率屬性,確定歸一化renorme前的編碼區(qū)間i_range和區(qū)間下限i_low。然后,通過renorme過程,產(chǎn)生輸出位流。最后,更新當(dāng)前編碼符號(hào)的上下文模型,后續(xù)比特編碼會(huì)利用當(dāng)前比特編碼更新后的信息。

cabac編碼要求編碼區(qū)間在[28,29)的范圍內(nèi),而在編碼過程中經(jīng)過多次的區(qū)間劃分,所得的新的編碼區(qū)間長(zhǎng)度可能會(huì)小于28,因此要經(jīng)過“歸一化”的過程將編碼區(qū)間的范圍恢復(fù)到[28,29),而歸一化的過程可能有一個(gè)或多個(gè)“0”、“1”比特作為算術(shù)編碼的輸出。整個(gè)歸一化renorme的流程如圖5所示,編碼區(qū)間i_range、區(qū)間下限i_low的歸一化操作和輸出比特嵌在一個(gè)循環(huán)體內(nèi),putbit()的流程如圖6所示。假設(shè)歸一化前i_range值占n個(gè)比特(n<9),那么i_range需要移位(9-n)次,才能回歸[28,29)的范圍內(nèi)。這個(gè)過程所依據(jù)的原理是隨著區(qū)間劃分的遞歸進(jìn)行,編碼區(qū)間逐漸減小,當(dāng)編碼區(qū)間逐漸減小到一定程度時(shí),區(qū)間下限i_low值二進(jìn)制形式的高位不再發(fā)生變化。因此,這些不再發(fā)生變化的高位可以輸出作為算術(shù)編碼結(jié)果的組成部分。

本發(fā)明的cabac編碼方法可以應(yīng)用在上述cabac常規(guī)編碼流程中,用以避免cabac編碼時(shí),由于比特間編碼的依賴性以及多周期歸一化所引發(fā)的流水線停滯問題。

本發(fā)明的cabac編碼方法可以通過一種cabac多bin編碼的加速裝置來實(shí)現(xiàn),如圖7所示,該加速裝置包括上下文模型更新引擎,用以完成當(dāng)前輸入比特上下文的讀取、概率狀態(tài)值的獲取及概率狀態(tài)表的更新;常規(guī)編碼模式下編碼區(qū)間r的更新引擎,根據(jù)當(dāng)前編碼比特的概率特性,獲取當(dāng)前比特歸一化前的編碼區(qū)間跨度值;編碼區(qū)間下限l的更新引擎,用以獲取當(dāng)前編碼比特歸一化前的區(qū)間下限值;歸一化引擎,用以執(zhí)行歸一化操作并輸出編碼位流。

其中,上下文模型更新引擎同時(shí)讀入兩比特。根據(jù)輸入兩比特的上下文變量索引值,分別獲取當(dāng)前編碼兩比特的概率狀態(tài)值,并對(duì)概率狀態(tài)表進(jìn)行更新。特別地,當(dāng)輸入兩比特的上下文索引值相等時(shí),第二比特的概率狀態(tài)值為第一比特的概率狀態(tài)更新值。

其中,編碼區(qū)間r的更新引擎,采用硬件專有的位移判斷電路,可以快速獲取輸入兩比特歸一化前的編碼區(qū)間跨度值。編碼區(qū)間r的位移判斷電路如圖8所示,其中“>>”代表右移的操作,高位補(bǔ)零。位移判斷電路采用八條并行支路,輸入的編碼區(qū)間跨度值r分別與0x100,0x80,0x40,0x20,0x10,0x8,0x4,0x2等十六進(jìn)制數(shù)(相當(dāng)于二進(jìn)制數(shù)28,27,26,25,24,23,22,2)進(jìn)行第一階段的二進(jìn)制按位“與”操作。每條支路“與”操作的結(jié)果分別右移一定的位寬(八條支路右移的位寬分別為8位、7位、6位、5位、4位、3位、2位和1位),將移位后的值按位“取反”輸出至當(dāng)前支路后面的幾路。其中,第一支路右移后的結(jié)果直接輸出至選擇器,其余各支路右移得到的結(jié)果與前面幾路移位后按位“取反”的結(jié)果進(jìn)行第二階段的按位“與”操作,得到的結(jié)果輸出至每條支路的選擇器,將各支路選擇器輸出的結(jié)果進(jìn)行按位“或”操作,得到編碼區(qū)間跨度值r歸一化前的迭代次數(shù)shift。通過對(duì)編碼區(qū)間跨度值r左移shift位,得到r歸一化后的編碼區(qū)間跨度值。由于第一比特歸一化后的編碼區(qū)間跨度值可以快速得到,第二比特可以利用第一比特歸一化后的編碼區(qū)間跨度值和自身的概率狀態(tài)值得到歸一化前的編碼區(qū)間跨度值。將shift傳遞給區(qū)間下限l的更新引擎,供后續(xù)信息更新使用。

其中,區(qū)間下限l的更新引擎,采用硬件專有的區(qū)間下限更新電路,可以快速獲取輸入兩比特歸一化前的區(qū)間下限值。區(qū)間下限l的更新電路如圖9所示,其中“<<”代表左移操作,低位補(bǔ)0。將區(qū)間下限值與0x200作按位“與”的操作,將結(jié)果右移9位后輸出至選擇器。如果位移后的輸出結(jié)果為0,則將區(qū)間下限值左移shift位后,與掩碼“0x1ff”進(jìn)行按位“與”操作,得到歸一化后的區(qū)間下限值;如果位移后的結(jié)果非0,則將區(qū)間下限值右移(10-shift)位后的結(jié)果輸出至選擇器,如果右移后的結(jié)果等于((1<<shift)-1)的值,則將區(qū)間下限值左移shift位后,與掩碼“0x3ff”作按位與的操作,否則將區(qū)間下限值左移shift位后,與掩碼“0x1ff”作按位“與”操作,得到歸一化后的區(qū)間下限值。由于第一比特歸一化后的區(qū)間下限值可以快速得到,第二比特可以利用第一比特歸一化后的區(qū)間下限值和自身歸一化前的編碼區(qū)間跨度值,得到歸一化前的區(qū)間下限值。

其中,歸一化引擎,完成兩比特的歸一化操作,并在一個(gè)硬件周期內(nèi)以并行方式輸出兩比特歸一化后的碼流。由于硬件采用專有的位移判斷電路和和區(qū)間下限更新電路,輸入兩比特歸一化前的編碼區(qū)間跨度值和區(qū)間下限值可以快速得到,因此,兩比特可以并行歸一化。由于歸一化流程中每一次迭代后的輸出信息,如編碼區(qū)間跨度值、區(qū)間下限值、i_bits_outstanding值及輸出比特值可以也可以快速得到,因此在一個(gè)硬件周期內(nèi),整合每一次迭代過程的輸出比特,就得到編碼后的輸出位流。

本發(fā)明采用硬件專有的電路對(duì)編碼區(qū)間和區(qū)間下限值進(jìn)行快速更新,使得當(dāng)前比特更新后的信息可以快速應(yīng)用至下一比特編碼信息的更新。因此,在一個(gè)硬件周期內(nèi)可以完成對(duì)兩比特的編碼。同時(shí),兩比特編碼更新后的信息可以快速應(yīng)用至后續(xù)比特的編碼。避免了傳統(tǒng)方案中因?yàn)楸忍亻g編碼的依賴而帶來的流水線停滯問題。另外,編碼區(qū)間和區(qū)間下限值的快速更新,使得歸一化流程中每一次迭代后的輸出信息可以快速得出,硬件可以在一個(gè)周期內(nèi)整合每一次迭代產(chǎn)生的比特得到輸出位流。避免了原始?xì)w一化方案中多周期迭代帶來的流水線停滯問題。

本發(fā)明實(shí)施例的電路整體架構(gòu)框圖如圖7所示。包括上下文更新引擎、編碼區(qū)間r的更新引擎、區(qū)間下限l的更新引擎以及歸一化引擎。在此說明一下后面闡述過程中使用到的各個(gè)變量的含義,binval0:當(dāng)前被編碼的第一比特;binval1:當(dāng)前被編碼的第二比特;ctx0:當(dāng)前被編碼第一比特的上下文索引;ctx1:當(dāng)前被編碼第二比特的上下文索引;state0:當(dāng)前被編碼的第一比特的概率狀態(tài)值;state1:當(dāng)前被編碼的第二比特的概率狀態(tài)值;cb_range0:第一比特編碼前的編碼區(qū)間跨度值;cb_range1:第二比特編碼前的編碼區(qū)間跨度值;cb_low0:第一比特編碼前的區(qū)間下限值;cb_low1:第二比特編碼前的區(qū)間下限值;r0:第一比特歸一化操作前的編碼區(qū)間跨度值;r1:第二比特歸一化操作前的編碼區(qū)間跨度值;l0:第一比特歸一化操作前的區(qū)間下限值;l1:第二比特歸一化操作前的區(qū)間下限值;range0:第一比特歸一化后的編碼區(qū)間跨度值;range1:第二比特歸一化后的編碼區(qū)間跨度值;low0:第一比特歸一化后的區(qū)間下限值;low1:第二比特歸一化后的區(qū)間下限值。上述編碼區(qū)間跨度值和編碼區(qū)間下限值都有編碼前、歸一化前、歸一化后三種不同的狀態(tài),這三種狀態(tài)是編碼時(shí)常用的,而且前一比特的歸一化后的編碼區(qū)間跨度值可以是后一比特的編碼前的編碼區(qū)間跨度值,前一比特的歸一化后的編碼區(qū)間下限值可以是后一比特的編碼前的編碼區(qū)間下限值,本領(lǐng)域技術(shù)人員可以采用多種不同的方法獲取編碼前、歸一化前、歸一化后的編碼區(qū)間跨度值和編碼區(qū)間下限值,以下以一種具體的方式進(jìn)行舉例說明:

如圖7所示,上下文更新引擎同時(shí)讀入兩比特binval0和binval1。根據(jù)兩比特的上下文索引ctx0和ctx1,分別查詢概率狀態(tài)表cb_state[]獲取當(dāng)前編碼兩比特的概率狀態(tài)值state0和state1,并對(duì)概率狀態(tài)表cb_state[]進(jìn)行更新。特別地,當(dāng)ctx0等于ctx1時(shí),第二比特binval1的概率狀態(tài)state1為第一比特binval0的概率更新值。

如圖7所示,編碼區(qū)間r的更新引擎根據(jù)第一比特binval0的概率狀態(tài)值state0和編碼前的區(qū)間cb_range0,得到第一比特的小概率編碼區(qū)間rlps0。根據(jù)第一比特binval0的符號(hào)概率特性,確定第一比特歸一化前的編碼區(qū)間r0。然后通過硬件的位移判斷電路確定r0歸一化所需的移位次數(shù)shift0。將r0左移shift0位后得到第一比特歸一化后的編碼區(qū)間跨度值range0,根據(jù)range0和第二比特的概率狀態(tài)值state1,得到第二比特的小概率編碼區(qū)間rlps1。根據(jù)第二比特binval1的符號(hào)概率特性,確定第二比特歸一化前的編碼區(qū)間r1,利用硬件的位移判斷電路確定r1歸一化所需的移位次數(shù)shift1,將r1左移shift1位后得到第二比特歸一化后的編碼區(qū)間跨度值range1。將相關(guān)的信息輸出至區(qū)間下限l的更新引擎,供后續(xù)更新區(qū)間下限值使用。

如圖8為編碼區(qū)間r的位移判斷電路,用以快速確定歸一化的迭代次數(shù)。輸入的編碼區(qū)間r同時(shí)與八條支路的相關(guān)變量進(jìn)行按位“與”操作。最后,將各個(gè)支路選擇器的輸出進(jìn)行按位“或”的操作,得到歸一化的位移次數(shù)。其中,“>>”代表右移的操作,高位補(bǔ)零。當(dāng)被編碼第一比特歸一化前的編碼區(qū)間r0確定后,r0通過位移判斷電路,快速得到r0歸一化所需的位移次數(shù)shift0。將r0左移shift0后得到第一比特歸一化后的編碼區(qū)間range0。此時(shí),range0可以應(yīng)用至第二比特r1的確定。

如圖7所示,區(qū)間下限l的更新引擎,用以獲取輸入兩比特歸一化前的編碼區(qū)間l0和l1。根據(jù)第一比特binval0的符號(hào)概率特性、歸一化前的編碼區(qū)間r0及編碼前的區(qū)間下限值cb_low0確定第一比特歸一化前的區(qū)間下限值l0;根據(jù)第一比特binval0的移位次數(shù)shift0和歸一化前的區(qū)間下限值l0,利用硬件的區(qū)間下限更新電路得到第一比特歸一化后的區(qū)間下限值low0;根據(jù)第二比特binval1的符號(hào)概率特性、第二比特歸一化前的編碼區(qū)間r1及第一比特的low0,得到第二比特歸一化前的區(qū)間下限值l1,利用硬件的區(qū)間下限更新電路得到第二比特歸一化后的區(qū)間下限值low1。將相關(guān)的信息輸出至歸一化更新引擎,供后續(xù)歸一化操作使用。

如圖9為區(qū)間下限l的更新電路圖,用以快速得到歸一化后的區(qū)間下限值。其中,“>>”代表右移的操作,高位補(bǔ)零?!?lt;<”代表左移操作,低位補(bǔ)零。第一比特的歸一化前的區(qū)間下限值l0通過區(qū)間下限更新電路,快速得到歸一化后的區(qū)間下限low0。此時(shí),low0可以應(yīng)用至第二比特l1的確定。

如圖7示,歸一化引擎用以完成歸一化操作并輸出相應(yīng)的位流。由于輸入兩比特歸一化前的編碼區(qū)間r0、r1和區(qū)間下限值l0、l1可以快速得到,因此一個(gè)硬件周期可以同時(shí)對(duì)輸入的兩比特進(jìn)行編碼。特別地,硬件專有的編碼區(qū)間位移判斷電路和區(qū)間下限更新電路可以快速得到歸一化過程中每一次迭代的輸出信息,如編碼區(qū)間跨度值、區(qū)間下限值、i_bits_outstanding值(用以累計(jì)歸一化過程中暫未輸出的比特個(gè)數(shù))及輸出位流值。因此,在一個(gè)硬件周期內(nèi),整合每一次迭代過程產(chǎn)生的輸出比特,得到編碼后的輸出位流。

以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。

本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成。所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),包括上述方法所述的步驟。所述的存儲(chǔ)介質(zhì),包括:rom/ram、磁碟、光盤等。

以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乌鲁木齐县| 军事| 兴文县| 小金县| 阿合奇县| 禹州市| 辛集市| 祁东县| 博湖县| 申扎县| 怀安县| 闽清县| 隆化县| 徐州市| 张家口市| 瑞安市| 怀宁县| 宝兴县| 晋中市| 湘潭县| 平昌县| 利辛县| 吉木乃县| 彭阳县| 新源县| 怀来县| 莱西市| 乐陵市| 新巴尔虎右旗| 得荣县| 克什克腾旗| 沁源县| 德阳市| 珲春市| 阿拉尔市| 庆安县| 梅州市| 连平县| 武隆县| 田林县| 萍乡市|