專利名稱:一種數(shù)字信號的二值算術(shù)編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像/視頻信號等數(shù)字信號編碼中的二值算術(shù)編碼,并涉及相關(guān)的計算機實現(xiàn)方法,本發(fā)明屬于信號處理中編解碼領(lǐng)域。
背景技術(shù):
信息論之父C.E.Shannon第一次用數(shù)學語言闡明了概率與信息冗余度的關(guān)系。在1948年發(fā)表的論文“A Mathematical Theory of Communication”中,Shannon指出,任何信息都存在冗余,冗余大小與信息中每個符號(數(shù)字、字母或單詞)的出現(xiàn)概率或者說不確定性有關(guān)。Shannon借鑒了熱力學的概念,把信息中排除了冗余后的平均信息量稱為“信息熵”,并給出了計算信息熵的數(shù)學表達式。從本質(zhì)上講,數(shù)據(jù)壓縮的目的就是要消除信息中的冗余,而信息熵及相關(guān)的定理恰恰用數(shù)學手段精確地描述了信息冗余的程度。Shannon指出理想情況下(考慮最小平均碼長),概率為p的符號編碼輸出為-lg p bits。如果我們能夠?qū)π旁淳幋a過程中出現(xiàn)的每個符號建立準確的概率模型,用算術(shù)編碼就可以實現(xiàn)對概率為p的符號編碼輸出非常接近理論最優(yōu)值-lg p bits。
算術(shù)編碼的基本思想是用
。當前子區(qū)間下界為Lowi,子區(qū)間長度為Rangei,則循環(huán)計算過程為
算術(shù)編碼最重要的優(yōu)點在于它的靈活性。實際信源(如運動圖像序列)在不同時間,不同位置,不同條件(如RDO on/off,QP)下所表現(xiàn)出來的的數(shù)據(jù)統(tǒng)計特點差別很大。而算術(shù)編碼的機制很容易做到自適應(yīng)統(tǒng)計特性的變化。而且算術(shù)編碼中編碼過程和概率建模過程是分開的。一個算術(shù)編碼器(Arithmetic Coding Engine)可以和任何概率估計模型(contextmodel)結(jié)合使用。為了得到好的壓縮效果,很多情況下需要建立復雜的概率模型,這些模型在編碼過程中可能是自適應(yīng)模型,而且壓縮一個文件時可能會用到很多獨立的模型(multi-context models),這時算術(shù)編碼器有其他變長碼所無法企及的優(yōu)勢。雖然算術(shù)編碼具有很好的靈活性,但是建模過程在處理時間和存儲量上消耗巨大,尤其是針對多符號(multi-symbol)的信源。算術(shù)編碼另一個優(yōu)點在于它的壓縮效率接近最優(yōu)理論值,即信源的熵。Huffman碼在大多數(shù)情況下也非常接近理論最優(yōu)。而當某個符號的概率之非常接近1時(heavily skewed),算術(shù)編碼比Huffman碼在壓縮效率上有明顯優(yōu)勢,因為Huffman碼給每個字符只能分配整數(shù)個比特。而這種分布極不平衡的概率在二值圖像中是很常見的現(xiàn)象,在多符號(multi-symbol)二值化(用二值算術(shù)編碼)時也會出現(xiàn)。
但是算術(shù)編碼最大的缺陷在于它實現(xiàn)的速度很慢?,F(xiàn)有的算術(shù)編碼方案過程中,都需要計算RLPS的值。沒有作近似處理的算術(shù)編碼器處理一個符號至少需要1次乘法,有時甚至需要2次乘法2次除法。而且,概率模型的讀取和更新操作都在處理時間和存儲量上消耗巨大。而Huffman和Ziv-Lempel碼的處理速度都要快得多。
理論上RLPS=Range×PLPS,計算的精度直接影響編碼的效率,但是保留高的精度會導致復雜度的增加和實現(xiàn)的困難,目前已實用的算術(shù)編碼方案都用某種近似計算方法代替復雜度高的乘法計算。目前很多關(guān)于算術(shù)編碼的研究都力求找到一種近似方法,可以提高速度但不會過多影響編碼效率。比較常見的方法是用量化近似值代替精確值,用簡單操作(如加減,移位)取代乘法運算,以及用查表的方法替代復雜運算。
在國際視頻編碼標準H.264中采納的CABAC編碼方法是將Range均勻量化成4層,將
中的RLPS由疏至密取64個固定的量化點,預(yù)計算好Range×PLPS存入一張256bytes的表里,這樣rLPS的計算完全由查表代替。
在國際視頻編碼標準JPEG/JBIG中的Q-coder系列編碼方法是將Range直接量化為1層,RLPS≈PLPS,將
中的PLPS由疏至密取30個固定的量化點。雖然計算復雜度上來看Q-coder小于CABAC,但是其代價是精度的損失。
由于概率估計過程是一個隨機過程,PLPS本身估計得到的精度是有限的。所以在計算RLPS時保留PLPS估計值過高的精度并沒有意義。我們提出一種新的小概率設(shè)定方案和新的二值算術(shù)編碼的乘法運算方法,在復雜度和精度之間尋找一個好的平衡點,實現(xiàn)低復雜度高效的AC編碼器。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種二值算術(shù)編碼方法其程序框圖參見
圖1。
本發(fā)明的特征在于所述方法是指包括圖像信號,聲音信號,雷達信號,微波信號在內(nèi)的各種數(shù)字信號的二值算術(shù)編碼方法,該方法是在計算機上實現(xiàn)的,它的步驟依次為步驟一設(shè)定小概率符號LPS各個狀態(tài)的概率即PLPS,它的取值在
之間,把區(qū)間
由疏至密劃分成K個子區(qū)間,K取值正整數(shù),依次是[2-2,2-1],[2-3,2-2],…[2-k-1,2-k],[2-K,2-K+1],
,k∈{1,2,...K},每個子區(qū)間里面均勻置N個量化點,N=2n,n取值{0,1,...,L-1},L為正整數(shù),這樣
之間取值的pLPS共有K×N個量化值,也就是K×N個狀態(tài)值即state;步驟二計算小概率符號LPS和大概率符號MPS對應(yīng)的編碼區(qū)間RLPS和RMPSRLPS=Rangei×PLPSRMPS=Rangei-RLPS其中,Rangei為編第i個符號時的編碼區(qū)間大小。當i=0時的Range是M個比特大小精度的設(shè)定值;步驟三計算新的編碼區(qū)間Rangei+1如果當前輸入符號是小概率符號LPS,則Rangei+1←RLPSLowi+1←Lowi+RLPS如果當前輸入符號是大概率符號MPSRangei+1←RMPS其中Lowi是當前編碼區(qū)間的下界,Lowi+1是新的區(qū)間的下界;步驟四根據(jù)步驟三的結(jié)果更新小概率符號的概率狀態(tài)值state,使得state代表的小概率值PLPS能夠跟蹤于實際的小概率符號的概率值;步驟五重正化編碼區(qū)間Range,即在Range的值隨編碼的進行變得小于設(shè)定的下限閾值的時候使Range的值擴大一倍以防止產(chǎn)生計算誤差。
本發(fā)明的特征又在于所述方法是指包括圖像信號,聲音信號,雷達信號,微波信號在內(nèi)的各種數(shù)字信號的二值算術(shù)編碼方法,該方法是在計算機上實現(xiàn)的,它的步驟依次為步驟一事先設(shè)定小概率符號LPS的各個狀態(tài)的概率值。
步驟二計算概率符號LPS和大概率符號MPS對應(yīng)的編碼區(qū)間RLPS和RMPS
方法是將編碼區(qū)間即Range的值進行量化以用于小概率符號對應(yīng)的編碼區(qū)間即RLPS的計算,即計算RLPS時保留編碼區(qū)間M減去B比特的精度即range_lRLPS=range_li×PLPSRMPS=range_li-RLPS其中,當i=0時的Range是M個比特大小精度的設(shè)定值,range_li為編第i個符號時的編碼區(qū)間Range右移B比特即量化后的大小,B為設(shè)定的比特數(shù)減少值。
步驟三計算新的編碼區(qū)間Rangei+1如果當前輸入符號是小概率符號LPS,則Rangei+1←RLPSLowi+1←Lowi+RLPS如果當前輸入符號是大概率符號MPSRangei+1←RMPS其中Lowi是當前編碼區(qū)間的下界,Lowi+1是新的區(qū)間的下界;步驟四根據(jù)步驟三的結(jié)果更新小概率符號的概率狀態(tài)值state,使得state代表的小概率值PLPS能夠跟蹤于實際的小概率符號的概率值;步驟五重正化編碼區(qū)間Range,即在Range的值隨編碼的進行變得小于設(shè)定的下限閾值的時候使Range的值擴大一倍以防止產(chǎn)生計算誤差。
本發(fā)明的特征還在于,所述方法是指包括圖像信號,聲音信號,雷達信號,微波信號在內(nèi)的各種數(shù)字信號的二值算術(shù)編碼方法,該方法是在計算機上實現(xiàn)的,它的步驟依次為步驟一設(shè)定小概率符號LPS的概率即PLPS,它的取值在
之間,把
由疏至密劃分成K個子區(qū)間,K取值正整數(shù),依次是[2-2,2-1],[2-3,2-2],…[2-k-1,2-k],[2-K,2-K+1],
,k∈{1,2,...K},每個子區(qū)間里面均勻置N個量化點,N=2n,n取值{0,1,...,L-1},L為正整數(shù),這樣
之間取值的pLPS共有K×N個量化值,也就是K×N個狀態(tài)值即state;步驟二計算概率符號LPS和大概率符號MPS對應(yīng)的編碼區(qū)間RLPS和RMPS方法是用移位和相加運算,即使用下面兩次左移的運算得到RLPS≈range_l<<(B-k)+[range_li<<(B-k-L)]·i..........(1)=range_l<<(B-k)+(range_l·i)<<(B-k-L)..........(2)RMPS=range_li-RLPS其中,將編碼區(qū)間即Range的值進行量化以用于小概率符號對應(yīng)的編碼區(qū)間即RLPS的計算,即計算RLPS時保留編碼區(qū)間M減去B比特的精度即range_l,當i=0時的Range是M個比特大小精度的設(shè)定值,range_li為編第i個符號時的編碼區(qū)間Range右移B比特即量化后的大小,B為設(shè)定的比特數(shù)減少值,“<<”為左移運算;步驟三計算新的編碼區(qū)間Rangei+1如果當前輸入符號是小概率符號LPS,則Rangei+1←RLPS
Lowi+1←Lowi+RLPS如果當前輸入符號是大概率符號MPSRangei+1←RMPS其中Lowi是當前編碼區(qū)間的下界,Lowi+1是新的區(qū)間的下界;步驟四根據(jù)步驟三的結(jié)果更新小概率符號的概率狀態(tài)值state,使得state代表的小概率值PLPS能夠跟蹤于實際的小概率符號的概率值;步驟五重正化編碼區(qū)間Range,即在Range的值隨編碼的進行變得小于設(shè)定的域值的時候使Range的值擴大一倍以防止產(chǎn)生計算誤差。
所述的range_l的取值有2M-B種情況,其中M為所述的設(shè)定Range的初試值的比特數(shù),B為所述的設(shè)定的Range減少比特數(shù),所述的range_l·i乘法計算結(jié)果用預(yù)先存儲的對應(yīng)于的2M-B·N種情況的結(jié)果的表得到,即RLPS=range_1<<(B-k)+(Table[index_range][index_i])<<(B-k-L),其中的index_range∈
區(qū)間內(nèi),按照2-k-1取點劃分為K個子區(qū)間,k,K為正整數(shù),k=1,2,3,……K;ii.在這k個子區(qū)間中,各平均選取N=2L個點。即在第k個區(qū)間中的第i個點對應(yīng)的小概率符號的概率值為P(ki)=2-k-1+2-k-1×2-L×ib)Range的量化按照下式的方法,Range在初試計算時采用M比特的精度表示,但在計算RLPS時,保留M-B比特的精度。
range_l=Range>>Bc)RLPS的計算由于所有的概率點的選取是以2的負整數(shù)倍為單位劃分的,所以乘法運算RLPS=Range×PLPS就可以由移位來完成,于是按照下式的方法,我們根據(jù)當前的小概率符號的概率點得到當前的RLPSRLPS=[range_l<<(B-k-2)]+[range_l<<(B-k-2-L)]×i其中b編碼區(qū)間Range的省略精度比特數(shù);k根據(jù)當前的state得到的小概率點所在區(qū)間段的指示值;k=2+state/Ki根據(jù)當前的state得到的小概率點在所在區(qū)間中的位置的指示值i=state%Lstate當前小概率符號所在的自適應(yīng)概率狀態(tài)值,state∈
+[(range_l×i)<<(B-k-L)]其中b編碼區(qū)間Range的省略精度比特數(shù);k根據(jù)當前的state得到的小概率點所在區(qū)間段的指示值;i=3-state&0x07i根據(jù)當前的state得到的小概率點在所在區(qū)間中的位置的指示值i=L-state&Lstate當前小概率符號所在的自適應(yīng)概率狀態(tài)值,state∈
區(qū)間內(nèi),按照2-k-1取點劃分為K=8個子區(qū)間,在這8個子區(qū)間中,每個各平均選取N=24=8個點。
即這N×K=64個點的概率值分布為
b)Range的量化按照下式的方法,Range在初試計算時采用9比特的精度表示,但在計算RLPS時,保留3比特的精度range_l=Range>>6c)RLPS的計算由于所有的概率點的選取是以2的整數(shù)倍為單位劃分的,所以乘法運算RLPS=Range×PLPS就可以由移位來完成,于是按照下式的方法,我們根據(jù)當前的小概率符號的概率點狀態(tài)值即state得到當前的RLPS由上述計算知B=6;L=3;則RLPS=[range_l<<(6-k-2)]+[range_l<<(6-k-2-3)]×i即RLPS=[range_l<<(4-k)]+[range_l<<(1-k)]×i。
其中k=state>>3;i=3-state&0x07由于Range為3bite精度,且在算術(shù)編碼中重正化編碼區(qū)間Range時我們保證其值不小于28,則Range的最高比特位始終為1,所以range_l實際上只有100,101,110,111四種情況,我們將這四種情況下的range_l和一共K×N=8×8=64個區(qū)間概率點位置指示值i的乘積寫入一張4×64的表中,就能夠使用快速查表的方法解決[range_l<<(1-k)]×i的乘法問題。
權(quán)利要求
1.一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于,所述方法是指包括圖像信號,聲音信號,雷達信號,微波信號在內(nèi)的各種數(shù)字信號的二值算術(shù)編碼方法,該方法是在計算機上實現(xiàn)的,它的步驟依次為步驟一設(shè)定小概率符號LPS各個狀態(tài)的概率即PLPS,它的取值在
之間,把區(qū)間
由疏至密劃分成K個子區(qū)間,K取值正整數(shù),依次是[2-2,2-1],[2-3,2-2],...[2-k-1,2-k],[2-K,2-K+1],
,k∈{1,2,...K},每個子區(qū)間里面均勻置N個量化點,N=2n,n取值{0,1,...,L-1},L為正整數(shù),這樣
之間取值的pLPS共有K×N個量化值,也就是K×N個狀態(tài)值即state;步驟二計算小概率符號LPS和大概率符號MPS對應(yīng)的編碼區(qū)間RLPS和RMPSRLPS=Rangei×PLPSRMPS=Rangei-RLPS其中,Rangei為編第i個符號時的編碼區(qū)間大小。當i=0時的Range是M個比特大小精度的設(shè)定值;步驟三計算新的編碼區(qū)間Rangei+1如果當前輸入符號是小概率符號LPS,則Rangei+1←RLPSLowi+1←Lowi+RLPS如果當前輸入符號是大概率符號MPSRangei+1←RMPS其中Lowi是當前編碼區(qū)間的下界,Lowi+1是新的區(qū)間的下界;步驟四根據(jù)步驟三的結(jié)果更新小概率符號的概率狀態(tài)值state,使得state代表的小概率值PLPS能夠跟蹤于實際的小概率符號的概率值;步驟五重正化編碼區(qū)間Range,即在Range的值隨編碼的進行變得小于設(shè)定的下限閾值的時候使Range的值擴大一倍以防止產(chǎn)生計算誤差。
2.一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于,所述方法是指包括圖像信號,聲音信號,雷達信號,微波信號在內(nèi)的各種數(shù)字信號的二值算術(shù)編碼方法,該方法是在計算機上實現(xiàn)的,它的步驟依次為步驟一事先設(shè)定小概率符號LPS的各個狀態(tài)的概率值;步驟二計算概率符號LPS和大概率符號MPS對應(yīng)的編碼區(qū)間RLPS和RMPS方法是將編碼區(qū)間即Range的值進行量化以用于小概率符號對應(yīng)的編碼區(qū)間即RLPS的計算,即計算RLPS時保留編碼區(qū)間M減去B比特的精度即range_lRLPS=range_li×PLPSRMPS=range_li-RLPS其中,當i=0時的Range是M個比特大小精度的設(shè)定值,range_li為編第i個符號時的編碼區(qū)間Range右移B比特即量化后的大小,B為設(shè)定的比特數(shù)減少值;步驟三計算新的編碼區(qū)間Rangei+1如果當前輸入符號是小概率符號LPS,則Rangei+1←RLPSLowi+1←Lowi+RLPS如果當前輸入符號是大概率符號MPSRangei+1←RMPS其中Lowi是當前編碼區(qū)間的下界,Lowi+1是新的區(qū)間的下界;步驟四根據(jù)步驟三的結(jié)果更新小概率符號的概率狀態(tài)值state,使得state代表的小概率值PLPS能夠跟蹤于實際的小概率符號的概率值;步驟五重正化編碼區(qū)間Range,即在Range的值隨編碼的進行變得小于設(shè)定的下限閾值的時候使Range的值擴大一倍以防止產(chǎn)生計算誤差。
3.一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于,所述方法是指包括圖像信號,聲音信號,雷達信號,微波信號在內(nèi)的各種數(shù)字信號的二值算術(shù)編碼方法,該方法是在計算機上實現(xiàn)的,它的步驟依次為步驟一設(shè)定小概率符號LPS的概率即PLPS,它的取值在
之間,把
由疏至密劃分成K個子區(qū)間,K取值正整數(shù),依次是[2-2,2-1],[2-3,2-2],...[2-k-1,2-k],[2-K,2-K+1],
,k∈{1,2,...K},每個子區(qū)間里面均勻置N個量化點,N=2n,n取值{0,1,...,L-1},L為正整數(shù),這樣
之間取值的pLPS共有K×N個量化值,也就是K×N個狀態(tài)值即state;步驟二計算概率符號LPS和大概率符號MPS對應(yīng)的編碼區(qū)間RLPS和RMPS方法是用移位和相加運算,即使用下面兩次左移的運算得到RLPS≈range_l<<(B-k)+[range_li<<(B-k-L)]·i..........(1)=range_l<<(B-k)+(range_l·i)<<(B-k-L)..........(2)RMPS=range_li-RLPS其中,將編碼區(qū)間即Range的值進行量化以用于小概率符號對應(yīng)的編碼區(qū)間即RLPS的計算,即計算RLPS時保留編碼區(qū)間M減去B比特的精度即range_l,當i=0時的Range是M個比特大小精度的設(shè)定值,range_li為編第i個符號時的編碼區(qū)間Range右移B比特即量化后的大小,B為設(shè)定的比特數(shù)減少值,“<<”為左移運算;步驟三計算新的編碼區(qū)間Rangei+1如果當前輸入符號是小概率符號LPS,則Rangei+1←RLPSLowi+1←Lowi+RLPS如果當前輸入符號是大概率符號MPSRangei+1←RMPS其中Lowi是當前編碼區(qū)間的下界,Lowi+1是新的區(qū)間的下界;步驟四根據(jù)步驟三的結(jié)果更新小概率符號的概率狀態(tài)值state,使得state代表的小概率值PLPS能夠跟蹤于實際的小概率符號的概率值;步驟五重正化編碼區(qū)間Range,即在Range的值隨編碼的進行變得小于設(shè)定的域值的時候使Range的值擴大一倍以防止產(chǎn)生計算誤差。
4.根據(jù)權(quán)利要求3所述的一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于所述的range_l的取值有2M-B種情況,其中M為所述的設(shè)定Range的初試值的比特數(shù),B為所述的設(shè)定的Range減少比特數(shù),所述的range_l·i乘法計算結(jié)果用預(yù)先存儲的對應(yīng)于的2M-B·N種情況所得到的結(jié)果的表得到,即RLPS=range_1<<(B-k)+(Table[index_range][index_i])<<(B-k-L),其中的index_range∈[0,2M-B),nddex_i∈[0,N)。
5.根據(jù)權(quán)利要求3所述的一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于,所述的k的值由下式計算k=state/K,用以表示的指示區(qū)間號。
6.根據(jù)權(quán)利要求3所述的一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于所述的i由下式計算i=L-state mod L,用于表示區(qū)間中狀態(tài)點的位置。
7.根據(jù)權(quán)利要求5所述的一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于,所述的計算區(qū)間指示值k的實現(xiàn)方式,其中所述的k可以由state右移 位得到,即
8.根據(jù)權(quán)利要求6所述的一種數(shù)字信號的二值算術(shù)編碼方法,其特征在于,所述的計算區(qū)間狀態(tài)點i由下式得到i=L-state&(L-1),其中&表示“與”運算。
全文摘要
本發(fā)明屬于信號處理中的算術(shù)編碼領(lǐng)域,涉及圖像/視頻編碼中算術(shù)編碼方法。本發(fā)明提出的數(shù)字信號的二值算術(shù)編碼方法,其特征在于設(shè)計了新的小概率符號的概率值的量化方案,同時量化編碼區(qū)間,利用移位和相加技術(shù)在不損失編碼效率的條件下使乘法的近似計算的復雜度盡可能小。本發(fā)明同時適于直接計算和查表兩種方法。能夠取得和現(xiàn)有編碼器基本相當?shù)木幋a效率,同時在實現(xiàn)上更為靈活,可以實現(xiàn)復雜度較低的編碼器。
文檔編號H04N7/26GK1703089SQ20051001190
公開日2005年11月30日 申請日期2005年6月9日 優(yōu)先權(quán)日2005年6月9日
發(fā)明者何蕓, 余薇, 吳捷 申請人:清華大學