專利名稱:一種實(shí)現(xiàn)算術(shù)編解碼的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像編碼技術(shù)領(lǐng)域,尤其涉及一種在算術(shù)編碼器進(jìn)行圖像編碼過程中的算術(shù)編解碼技術(shù)。
背景技術(shù):
在圖像編碼過程中涉及的算術(shù)編碼處理過程。所述算術(shù)編碼是通過將編碼符號(hào)序列映射到
]>當(dāng)編碼MPS符號(hào)時(shí),可以認(rèn)為PLPS=1516PLPS,]]>根據(jù)上面的公式,即LG_PMPS=1516,]]>由此可以計(jì)算得到LG_PMPS=LG_PMPS-LG_PMPS>>4,即更新后的對(duì)數(shù)域的MPS概率值LG_PMPS為更新前的對(duì)數(shù)域的MPS的概率值LG_PMPS減去更新前的對(duì)數(shù)域的MPS的概率值LG_PMPS右移4位后的數(shù)值LG_PMPS>>4。
所述的更新后的對(duì)數(shù)域的MPS概率值還可以為采用更新前的對(duì)數(shù)域的MPS的概率值LG_PMPS除于2的整數(shù)次冪的數(shù)值獲得,仍以上例,具體為L(zhǎng)G_PMPS=LG_PMPS-LG_PMPS/16。
(三)當(dāng)編碼LPS的時(shí)候,仍如
圖1所示首先,假設(shè)在原數(shù)域上當(dāng)前編碼區(qū)間為R1,MPS對(duì)應(yīng)的區(qū)間R2,在原數(shù)域上,range=range×PLPS=range-range_MPS,low值需要上調(diào)range_new=R1-R2;(2)low_new=low+R2;(3)
將該算法實(shí)現(xiàn)時(shí),R1,R2在對(duì)數(shù)域上對(duì)應(yīng)的值分別為L(zhǎng)G_R1,LG_R2,首先對(duì)LG_R1,LG_R2進(jìn)行分解LG_R1=-s1+t1(4)LG_R2=-s2+t2(5)其中s1,s2分別是一個(gè)整數(shù),t1,t2分別是一個(gè)
]>R2=2LG_R2=2-s2+t2≈2-s2×(1+t2-Δ2)---(7)]]>此處Δi為近似計(jì)算的修正值,可以通過查表獲得,在上兩式中也可以忽略此修正值Δi。
例如對(duì)于LG_R1=-256lg(R1)=-506,則R1=2-1.9765625≈2-2×(1+0.0234375)=2-(2+8)×(1.0234375)×256=2-10×262;因此,s1=2,t1=0.0234375在實(shí)際算法實(shí)現(xiàn)中,采用8bit的精度,前8bit表示整數(shù)部分,后8比特表示小數(shù)部分,則相應(yīng)的處理過程為L(zhǎng)G_R1=-506=-0×01.fa=-0x0200+0x0006R1=2-0x0200×(0x0106),對(duì)于8bit精度寄存器,1≤t<2,用8bit保存t的小數(shù)部分,比如上面例子中的0x06,對(duì)于s僅需要保存整數(shù)部分(小數(shù)部分為0)0x02。
將(6)、(7)代入(2),(3)計(jì)算,并且注意到由于R1>R2≥R1/2,因此s1=s2或者s1=s2-1可以得到range_new=R1-R2=2-s2×t3---(8)]]>
low_new=low+R2(9)其中,t3={t1-t2if(s1=s2)2t1-t2if(s1≠s2)]]>,R2通過(7)計(jì)算得到。
根據(jù)式(8)、(9)可以實(shí)現(xiàn)range和low的更新。
對(duì)LPS符號(hào)編碼后,相應(yīng)的符號(hào)概率LG_PMPS也需要進(jìn)行更新,下面將描述該更新過程。
在概率更新過程中,由于小概率符號(hào)的概率增加,對(duì)應(yīng)大概率符號(hào)的概率減小,LG_PMPS增大,在此處可以用加減法實(shí)現(xiàn),實(shí)現(xiàn)方法為在原數(shù)域上,當(dāng)增加一個(gè)小概率符號(hào)時(shí),可以認(rèn)為大概率符號(hào)的概率降低為原來的 因此PMPS=PMPS×1516,]]>對(duì)應(yīng)到對(duì)數(shù)域上實(shí)現(xiàn)時(shí),由于LG_PMPS=-256×log(PMPS)=-256×(log(PMPS)+log(15)-log(16))≈LG_PMPS+23因此,在概率預(yù)測(cè)時(shí),可以采用下面的公式LG_PMPS=LG_PMPS+23(10)。
在編碼小概率符號(hào)后,還需要對(duì)計(jì)算獲得的新的區(qū)間值進(jìn)行重正化處理過程。
具體為根據(jù)計(jì)算得到的range_new判斷,如果range_new<QUARTER,則對(duì)range_new左移位直到range_new≥QUARTER,同時(shí)對(duì)low_new左移位相同的比特位,輸出比特到碼流中。
例如,計(jì)算得到range_new=R1-R2=2-s2×t3]]>,s2=0x02,t3=0x001e,low_new=100100001由于QUARTER=0x0100,所以t3需要左移4位,加上s2的影響,一共左移4+2=6位,此時(shí)對(duì)low需要相應(yīng)的左移6位,移出比特輸出到比特流中。但在此處需要分三類情況,假設(shè)bit9表示low_new的第9位,它是將要移出的bit,bit8表示low_new的第8位,根據(jù)分類
(1)如果bit9為1,將bit9輸出,進(jìn)行下一次輸出,上面例子第一個(gè)中輸出比特“1”,low_new=001000010;(2)如果bit9為0并且bit8為0,將bit9輸出,進(jìn)行下一次輸出,上面例子中第二個(gè)比特輸出“0”,low_new=010000100;(3)如果bit9為0并且bit8為1,采用比特跟隨的方法記錄下該位bit9,并且翻轉(zhuǎn)bit8為“0”,進(jìn)行下一次判斷。用bits_to_follow記錄比特跟隨的位數(shù),每記錄一位bits_to_follow增加1,當(dāng)記錄結(jié)果可以輸出的時(shí)候,如果bits_to_follow不為零,則連同比特跟隨位一起輸出,例如bits_to_follow=2,當(dāng)前位輸出比特“0”,則輸出“011”,當(dāng)前位輸出“1”則輸出“100”。上例中輸出首先用比特跟隨記錄bits_to_follow=1,接下來bit9=0,bit8=0,則當(dāng)前位輸出“0”,最終連同比特跟隨位一起輸出為“01”,low左移兩位后為low_new=000010000。
最后兩個(gè)比特輸出是第二種情況,均輸出“0”,low_new=000100000;一共輸出的5位bit為“10010”,low_new=000100000。
最后,完成上述計(jì)算處理后則接著需要進(jìn)行參數(shù)更新處理,包括將新的區(qū)間值作為當(dāng)前區(qū)間值range=range_new;將新的區(qū)間的下界值作為當(dāng)前區(qū)間的下界值low=low_new;更新后的區(qū)間值的對(duì)應(yīng)的對(duì)數(shù)域中的值LG_range為L(zhǎng)G_range=log(range)≈range-1+Δ=range[7:0],即LG_range值為更新前的原數(shù)域的區(qū)間值range減去1獲得。具體還可以采用一個(gè)修正參數(shù)Δ進(jìn)行修正處理。Δ為近似計(jì)算修正值,通過查表得到,查找該Δ值可以和前面描述的修正表相同;或者,也可以忽略該修正參數(shù)Δ值,直接采用range減去1作為更新后的對(duì)數(shù)域的區(qū)間值LG_range。
(四)編碼循環(huán)處理根據(jù)前面(二)、(三)描述的編碼方法,所述的編碼循環(huán)是指連續(xù)編碼零個(gè)或者多個(gè)大概率符號(hào)之后,再編碼一個(gè)小概率符號(hào),整個(gè)編碼過程為由多個(gè)編碼循環(huán)組成。而且,在每一個(gè)編碼循環(huán)中,編碼大概率符號(hào)時(shí),區(qū)間更新在對(duì)數(shù)域上完成;編碼小概率符號(hào)時(shí),首先將數(shù)據(jù)從對(duì)數(shù)域轉(zhuǎn)換到原數(shù)域,然后用減法在原數(shù)域上實(shí)現(xiàn)區(qū)間的更新。
本發(fā)明還提供了一種算術(shù)編碼器,其具體實(shí)施結(jié)構(gòu)如圖2所示,主要包括初始化處理單元、符號(hào)編碼區(qū)間更新單元及編碼操作單元,其中符號(hào)編碼區(qū)間更新單元進(jìn)一步包括MPS編碼區(qū)間更新單元和LSP編碼區(qū)間更新單元;編碼操作單元?jiǎng)t用于利用符號(hào)編碼區(qū)間更新單元計(jì)算確定的區(qū)間更新后的結(jié)果。下面將分別對(duì)該裝置包含的各單元進(jìn)行說明(1)初始化處理單元該單元用于初始化算術(shù)編碼器編碼過程中所用到的各個(gè)變量的處置。具體包括實(shí)數(shù)域上區(qū)間Range初值,賦值為HALF-1;對(duì)數(shù)域上的區(qū)間LG_Range初值,賦值為QUARTER-1;區(qū)間下界Low,賦值為0;此處HALF為整個(gè)編碼區(qū)間范圍的一半,QUARTER為整個(gè)編碼區(qū)間范圍的1/4。
(2)MPS編碼區(qū)間更新單元該單元用于編碼MPS符號(hào),包括區(qū)間更新和概率更新兩個(gè)部分;假設(shè)輸入MPS符號(hào)的對(duì)數(shù)域概率為L(zhǎng)G_PMPS,當(dāng)前區(qū)間對(duì)數(shù)域值為L(zhǎng)G_Range,區(qū)間更新為一次減法新LG_Range=原LG_Range-LG_PMPS;概率更新為一個(gè)減法器加上一個(gè)移位或者除法操作LG_PMPS=LG_PMPS-LG_PMPS>>4。
(3)LPS編碼區(qū)間更新單元該單元用于LPS符號(hào)編碼,將對(duì)數(shù)域上的數(shù)據(jù)轉(zhuǎn)換到原數(shù)域,在原數(shù)域用減法實(shí)現(xiàn)區(qū)間的更新。該單元包括數(shù)域轉(zhuǎn)換單元,區(qū)間更新單元,概率更新單元和編碼后的重正化處理單元;其中,數(shù)域轉(zhuǎn)換單元為實(shí)現(xiàn)從對(duì)數(shù)域到實(shí)數(shù)域上數(shù)據(jù)的轉(zhuǎn)換,具體區(qū)間和MPS對(duì)應(yīng)的范圍值為R1,R2,其轉(zhuǎn)換通過公式(6),(7)實(shí)現(xiàn);區(qū)間更新單元分別計(jì)算Range和Low的數(shù)值,區(qū)間更新為一個(gè)移位,通過(8)實(shí)現(xiàn);區(qū)間的下界Low更新為一次加法,通過(9)實(shí)現(xiàn);概率更新單元為一步加法通過(10)式實(shí)現(xiàn);重正化處理單元為移位處理單元,具體操作為根據(jù)計(jì)算得到的range_new判斷,如果range_new<QUARTER,則對(duì)range_new左移位直到range_new≥QUARTER,同時(shí)對(duì)low_new左移位相同的比特位,輸出比特到碼流中。
本發(fā)明還提供了一種實(shí)現(xiàn)算術(shù)解碼的方法,在解碼過程中,當(dāng)前區(qū)間大小更新、概率更新和編碼過程完全一樣,但解碼過程維護(hù)的不是當(dāng)前區(qū)間底端點(diǎn)Low,而是碼流指針相對(duì)于當(dāng)前區(qū)間底端點(diǎn)的偏移量offset。
假設(shè)LG_R1(range在對(duì)數(shù)域上的相應(yīng)值)和LG_offset(offset在對(duì)數(shù)域上的相應(yīng)值)可以分解為如下整數(shù)、小數(shù)部分的差,s1、value_s分別是不小于LG_R1和LG_offset的最小整數(shù),以方便后面的計(jì)算。
{LG_R1=s1-t1(0≤t1<1)LG_offset=offset_s-offset_t(0≤offset_t<1)---(11)]]>解碼過程維護(hù)的變量包括range、offset、LG_R1(小數(shù)部分t1)和LG_offset(小數(shù)部分offset_t)。
基于上述假設(shè),相應(yīng)的解碼過程的實(shí)施例具體可以包括(1)初始化range、LG_R和LG_offset的小數(shù)部分和整數(shù)部分。range初始化為HALF-1;offset的初始化過程則是不斷讀入碼流直至讀到第一個(gè)為’1’的bit,offset初始化為從這個(gè)bit起的連續(xù)9個(gè)btis。偽代碼描述如下,readbits(n)表示從碼流中連續(xù)讀入n個(gè)bits
range=HALF-1.
s1=0t1=0xFFoffset_s=0while(!readbits(1))offset_s++;offset_t=readbits(8);(2)根據(jù)當(dāng)前解碼符號(hào)的概率模型計(jì)算MPS對(duì)應(yīng)的子區(qū)間;LG_R1是解碼此符號(hào)前的子區(qū)間,則MPS對(duì)應(yīng)的子區(qū)間在對(duì)數(shù)域上值LG_R2滿足LG_R2=LG_R1-LG_MPS(12)(3)判定當(dāng)前解碼的結(jié)果,如果MPS對(duì)應(yīng)的子區(qū)間小于或等于碼流指針的偏移值offset,即LG_R2≥LG_offset(13)則此符號(hào)解碼為L(zhǎng)PS;否則解碼為MPS。
(4)如果解碼為MPS,區(qū)間更新過程很簡(jiǎn)單,直接把解碼過程當(dāng)前區(qū)間LG_R1更新為L(zhǎng)G_R2,然后跳至第(6)步進(jìn)行概率模型的更新處理;否則繼續(xù)至第(5)步。
(5)如果解碼得binVal是LPS,則需要將LG_R1、LG_offset切換回原數(shù)域,將解碼過程當(dāng)前區(qū)間range更新為L(zhǎng)PS對(duì)應(yīng)的子區(qū)間,把offset更新為相對(duì)對(duì)新子區(qū)間的偏移量;并且左移range、offset使得它們的最高比特位是’1’,并且在移位過程中讀入部分碼流比特為后續(xù)解碼過程做準(zhǔn)備。
LPS對(duì)應(yīng)的子區(qū)間rLPS大小為R1-R2,在編碼過程中推導(dǎo)過 由于s2=s1時(shí),t1-t2=LG_PMPS,s2=s1+1時(shí),1+t1-t2=LG_PMPS.
因此,rLPS的更新可以改寫為rLPS≈2-s2{LG_PMPS,if(s1=s2)t1+LG_PMPS,if(s1+1=s2)]]>offset的更新過程為 rLPS和offset同時(shí)左移,相同的因子2-s2可不計(jì)。
首先左移使得range的最高比特位是’1’,偽代碼描述如下while(rLPS<0x100){rLPS=rLPS<<1;offset=(offset<<1)|read_bits(1);}完成后更新LG_R1的整數(shù)和小數(shù)部分s1=0;t1=rLPS[7:0];然后左移offset使其最高比特位是’1’offset_s=0;while(offset<0x100){offset_s++;offset=(offset<<1)|read_bits(1);}完成后更新LG_offset的小數(shù)部分offset_t=offset[7:0];(6)概率估計(jì)更新,此過程和編碼端完全相同。即{LG_pMPS←LG_pMPS+C(if LPS occurs)LG_pMPS=LG_pMPS-(LG_pMPS>>cw)(if MPS occurs)---(14)]]>此處C和CW都是預(yù)先設(shè)置的固定數(shù)值。
本發(fā)明還提供了一種在算術(shù)解碼器,相應(yīng)的算術(shù)解碼器的實(shí)施例結(jié)構(gòu)如圖3所示,具體包括初始化處理單元、符號(hào)解碼區(qū)間更新單元及解碼操作單元,其中,符號(hào)解碼區(qū)間更新單元用于在算術(shù)解碼器進(jìn)行算術(shù)解碼過程中,將需要在原數(shù)域上進(jìn)行的算術(shù)解碼的區(qū)間更新計(jì)算映射到對(duì)數(shù)域上直接通過加減法計(jì)算實(shí)現(xiàn),并采用近似計(jì)算的方法實(shí)現(xiàn)原數(shù)域和對(duì)數(shù)域的數(shù)據(jù)轉(zhuǎn)換,以實(shí)現(xiàn)算術(shù)解碼處理;而且,該符號(hào)解碼區(qū)間更新單元具體可以包括符號(hào)判定單元、區(qū)間更新單元及概率更新單元;解碼操作單元,用于利用符號(hào)解碼區(qū)間更新單元計(jì)算確定的區(qū)間更新后的結(jié)果。
下面將對(duì)該裝置包含的各單元分別進(jìn)行說明(1)初始化處理單元該單元完成解碼過程的初始化操作,為解碼過程使用的變量賦值。具體的是初始化range、LG_R和LG_offset的小數(shù)部分和整數(shù)部分。range初始化為HALF-1;offset的初始化過程則是不斷讀入碼流直至讀到第一個(gè)為’1’的bit,offset初始化為從這個(gè)bit起的連續(xù)9個(gè)btis(2)符號(hào)判定單元該單元包括一次減法計(jì)算和一次比較。首先計(jì)算MPS的區(qū)間范圍,公式為(12),然后根據(jù)公式(13)的結(jié)果判定當(dāng)前解碼輸出符號(hào)為MPS或者LPS。
(3)區(qū)間更新單元如果符號(hào)判定單元的結(jié)果為MPS,偏移值不必更新,區(qū)間值更新為MPS對(duì)應(yīng)的區(qū)間,LG_R1=LG_R2;如果符號(hào)判定為L(zhǎng)PS,則需要進(jìn)行區(qū)間更新和偏移值更新。該單元執(zhí)行的均為移位操作,其具體的移位方法見上述解碼過程(5)中所述。
(4)概率更新單元根據(jù)當(dāng)前解碼的符號(hào)重新估計(jì)MPS的概率,對(duì)應(yīng)的操作如解碼過程(6)中所述。
綜上所述,本發(fā)明提供的算術(shù)編碼過程,是根據(jù)MPS和LPS選擇不同的計(jì)算方法。在該過程中,將算術(shù)編碼中的乘法通過對(duì)數(shù)域上的加減法和原數(shù)域上的移位實(shí)現(xiàn)。在每編碼一個(gè)符號(hào)后,對(duì)MPS概率值進(jìn)行更新,該更新過程通過對(duì)數(shù)域上的加減法實(shí)現(xiàn)。因此,本發(fā)明不僅保持了算法的精度,同時(shí),還大大簡(jiǎn)化了算術(shù)編碼器的運(yùn)算的復(fù)雜度和概率估計(jì)的復(fù)雜度,從而提供了一種簡(jiǎn)捷、高效而合理的算術(shù)編碼方法。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種實(shí)現(xiàn)算術(shù)編碼的方法,其特征在于,包括對(duì)接收數(shù)據(jù)進(jìn)行算術(shù)編碼;當(dāng)需要在原數(shù)域進(jìn)行算術(shù)編碼過程的區(qū)間更新計(jì)算時(shí),將所述區(qū)間更新計(jì)算映射到對(duì)數(shù)域上并通過加減法計(jì)算實(shí)現(xiàn);在原數(shù)域和對(duì)數(shù)域進(jìn)行數(shù)據(jù)轉(zhuǎn)換過程中,采用近似計(jì)算法實(shí)現(xiàn);根據(jù)區(qū)間更新后的結(jié)果進(jìn)行算術(shù)編碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的方法具體包括在一個(gè)編碼循環(huán)內(nèi),編碼大概率符號(hào)時(shí)在對(duì)數(shù)域?qū)崿F(xiàn)區(qū)間的更新,在編碼小概率符號(hào)時(shí),將對(duì)數(shù)域上的數(shù)據(jù)轉(zhuǎn)換到原數(shù)域,在原數(shù)域用減法實(shí)現(xiàn)區(qū)間的更新。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述的在原數(shù)域和對(duì)數(shù)域的數(shù)據(jù)轉(zhuǎn)換過程中,對(duì)于從對(duì)數(shù)域向原數(shù)域的數(shù)據(jù)轉(zhuǎn)換計(jì)算,相應(yīng)的原數(shù)域的值X是通過參數(shù)B向左或者向右移位A位得到或者通過將參數(shù)B除于2的A次冪得到,其中,所述的參數(shù)A,B的計(jì)算方法為將對(duì)數(shù)域上的值Log_X分解為L(zhǎng)og_X=-A+B-1,以計(jì)算確定參數(shù)A和B,其中,參數(shù)A為一個(gè)整數(shù),參數(shù)B減去1后的絕對(duì)值小于1。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,對(duì)于所述的參數(shù)B值的獲得方式還包括利用一個(gè)近似計(jì)算的第一修正參數(shù)Δ1對(duì)所述參數(shù)B進(jìn)行修正,所述的第一修正參數(shù)Δ1數(shù)值通過查找預(yù)先保存的表得到。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述的在原數(shù)域和對(duì)數(shù)域的數(shù)據(jù)轉(zhuǎn)換過程中,對(duì)于從原數(shù)域向?qū)?shù)域的數(shù)據(jù)轉(zhuǎn)換,原數(shù)域值X在對(duì)數(shù)域上的值Log_X等于原數(shù)域值X減去1,而且,在計(jì)算所述的Log_X時(shí),利用一個(gè)第二參數(shù)修正值Δ2對(duì)其進(jìn)行修正,Δ2采用查找預(yù)先保存的表得到。
6.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在進(jìn)行區(qū)間的更新計(jì)算過程中,所述的方法還包括對(duì)待編碼符號(hào)的概率值進(jìn)行自適應(yīng)的更新處理,且所述的更新處理在對(duì)數(shù)域上實(shí)現(xiàn)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在計(jì)算更新后的概率值所對(duì)應(yīng)的對(duì)數(shù)域的概率值時(shí),包括通過將更新前的對(duì)數(shù)域上的概率值加上或者減去一個(gè)預(yù)定的數(shù)值得到新的概率值;或者,通過將更新前的對(duì)數(shù)域上的概率值加上或者減去該數(shù)值移位或者除于二的整數(shù)次冪得到。
8.一種實(shí)現(xiàn)算術(shù)編碼的裝置,其特征在于,包括符號(hào)編碼區(qū)間更新單元,用于將需要在原數(shù)域上進(jìn)行的算術(shù)編碼的區(qū)間更新計(jì)算映射到對(duì)數(shù)域上通過加減法計(jì)算實(shí)現(xiàn),并采用近似計(jì)算的方法實(shí)現(xiàn)原數(shù)域和對(duì)數(shù)域的數(shù)據(jù)轉(zhuǎn)換;編碼操作單元,用于利用符號(hào)編碼區(qū)間更新單元計(jì)算確定的區(qū)間更新后的結(jié)果實(shí)現(xiàn)算術(shù)編碼處理。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述的符號(hào)編碼區(qū)間更新單元具體包括大概率符號(hào)編碼區(qū)間更新單元,用于在對(duì)編碼大概率符號(hào)時(shí)選擇在對(duì)數(shù)域?qū)崿F(xiàn)區(qū)間的更新;小概率符號(hào)編碼區(qū)間更新單元,用于在編碼小概率符號(hào)時(shí),將對(duì)數(shù)域上的數(shù)據(jù)轉(zhuǎn)換到原數(shù)域,在原數(shù)域用減法實(shí)現(xiàn)區(qū)間的更新。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述的小概率符號(hào)編碼區(qū)間更新單元具體包括數(shù)域轉(zhuǎn)換單元,用于實(shí)現(xiàn)針對(duì)小概率符號(hào)從對(duì)數(shù)域到原數(shù)域的轉(zhuǎn)換處理,相應(yīng)的原數(shù)域的值X是通過對(duì)數(shù)域的參數(shù)B向左或者向右移位A位得到或者通過將參數(shù)B除于2的A次冪得到,所述的參數(shù)A,B的計(jì)算方法為將對(duì)數(shù)域上的值Log_X分解為L(zhǎng)og_X=-A+B-1,以計(jì)算確定參數(shù)A和B,其中,參數(shù)A為一個(gè)整數(shù),參數(shù)B減去1后的絕對(duì)值小于1;區(qū)間更新單元,用于對(duì)實(shí)現(xiàn)區(qū)間的更新處理;概率更新單元,用于對(duì)符號(hào)概率進(jìn)行更新處理;重正化處理單元,用于對(duì)區(qū)間更新單元獲得的更新后的區(qū)間參數(shù)進(jìn)行重正化處理。
11.根據(jù)權(quán)利要求8、9或10所述的裝置,其特征在于,所述的裝置還包括初始化處理單元,用于初始化編碼器在編碼過程中需要應(yīng)用的各變量,以提供給符號(hào)編碼區(qū)間更新單元使用。
12.一種實(shí)現(xiàn)算術(shù)解碼的方法,其特征在于,包括對(duì)接收數(shù)據(jù)進(jìn)行算術(shù)解碼;當(dāng)需要在原數(shù)域進(jìn)行算術(shù)解碼過程的區(qū)間更新計(jì)算時(shí),將所述區(qū)間更新計(jì)算映射到對(duì)數(shù)域上并通過加減法計(jì)算實(shí)現(xiàn);在原數(shù)域和對(duì)數(shù)域進(jìn)行數(shù)據(jù)轉(zhuǎn)換過程中,采用近似計(jì)算法實(shí)現(xiàn);根據(jù)區(qū)間更新后的結(jié)果進(jìn)行算術(shù)解碼。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述的方法還包括根據(jù)當(dāng)前解碼符號(hào)的概率模型計(jì)算大概率符號(hào)對(duì)應(yīng)的子區(qū)間,判斷該子區(qū)間是否小于或等于碼流指針的偏移值,如果是,則該解碼符號(hào)為小概率符號(hào),并進(jìn)行區(qū)間及偏移值的更新,否則,該解碼符號(hào)為大概率符號(hào),且僅進(jìn)行區(qū)間值的更新處理。
14.根據(jù)權(quán)利要求12或13所述的方法,其特征在于,在進(jìn)行區(qū)間的更新計(jì)算過程中,所述的方法還包括對(duì)待解碼符號(hào)的概率值進(jìn)行自適應(yīng)的更新處理,且所述的更新處理在對(duì)數(shù)域上實(shí)現(xiàn)。
15.一種實(shí)現(xiàn)算術(shù)解碼的裝置,其特征在于,包括符號(hào)解碼區(qū)間更新單元,用于將需要在原數(shù)域上進(jìn)行的算術(shù)解碼的區(qū)間更新計(jì)算映射到對(duì)數(shù)域上直接通過加減法計(jì)算實(shí)現(xiàn),并采用近似計(jì)算的方法實(shí)現(xiàn)原數(shù)域和對(duì)數(shù)域的數(shù)據(jù)轉(zhuǎn)換;解碼操作單元,用于利用符號(hào)解碼區(qū)間更新單元計(jì)算確定的區(qū)間更新后的結(jié)果實(shí)現(xiàn)算術(shù)解碼處理。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述的符號(hào)解碼區(qū)間更新單元具體包括符號(hào)判定單元,用于根據(jù)當(dāng)前解碼符號(hào)的概率模型計(jì)算大概率符號(hào)對(duì)應(yīng)的子區(qū)間,判斷該子區(qū)間是否小于或等于碼流指針的偏移值,并將判斷結(jié)果通知區(qū)間更新單元;區(qū)間更新單元,根據(jù)所述判斷結(jié)果,如果所述子區(qū)間小于或等于碼流指針的偏移值,則進(jìn)行區(qū)間及偏移值的更新,否則,僅進(jìn)行區(qū)間值的更新處理。
17.根據(jù)權(quán)利要求15或16所述的裝置,其特征在于,所述的裝置還包括概率更新單元,用于對(duì)待解碼符號(hào)的概率值進(jìn)行自適應(yīng)的更新處理,且所述的更新處理在對(duì)數(shù)域上實(shí)現(xiàn)。
18.根據(jù)權(quán)利要求15或16所述的裝置,其特征在于,所述的裝置還包括初始化處理單元,用于初始化解碼器在解碼過程中需要應(yīng)用的各變量,以提供給符號(hào)解碼區(qū)間更新單元使用。
全文摘要
一種在算術(shù)編碼器中實(shí)現(xiàn)算術(shù)編解碼的方法及裝置。主要包括首先,在算術(shù)編解碼器進(jìn)行二元算術(shù)編解碼過程中,將原數(shù)域上進(jìn)行的算術(shù)編解碼的區(qū)間更新處理映射到對(duì)數(shù)域上直接通過加減法計(jì)算實(shí)現(xiàn);在對(duì)數(shù)域算術(shù)編解碼的計(jì)算過程中,涉及到原數(shù)域和對(duì)數(shù)域之間的數(shù)據(jù)轉(zhuǎn)換通過近似計(jì)算的方式實(shí)現(xiàn);在編解碼一個(gè)符號(hào)后根據(jù)需要對(duì)概率值進(jìn)行更新,該更新過程在對(duì)數(shù)域通過加減法實(shí)現(xiàn)??梢钥闯?,本發(fā)明提供的算術(shù)編解碼方案是將算術(shù)編解碼過程以及其中涉及的概率估計(jì)過程的操作均映射到對(duì)數(shù)域?qū)崿F(xiàn),并通過近似計(jì)算公式實(shí)現(xiàn)原數(shù)域和對(duì)數(shù)域之間的數(shù)據(jù)轉(zhuǎn)換,從而有效避免了復(fù)雜的計(jì)算和查表。因而,本發(fā)明提供了一種簡(jiǎn)捷、高效而合理的算術(shù)編解碼方案。
文檔編號(hào)G06T9/00GK1983334SQ20061016216
公開日2007年6月20日 申請(qǐng)日期2006年12月5日 優(yōu)先權(quán)日2005年12月5日
發(fā)明者何蕓, 余微, 楊平, 孟新建 申請(qǐng)人:華為技術(shù)有限公司, 清華大學(xué)