專利名稱:混合Golomb-Elias Gamma編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行編碼的方法以及相應(yīng)的解碼方法。此 外,本發(fā)明涉及對音頻和/或視頻數(shù)據(jù)的編碼、解碼、傳輸和/或存儲,其中,對數(shù)據(jù)段的比 特?cái)?shù)量進(jìn)行編碼的方法和/或相應(yīng)的解碼方法用在音頻和/或視頻數(shù)據(jù)的處理中。
背景技術(shù):
已提出了用于對整數(shù)進(jìn)行有損編碼的不同可變長度編碼方案。例如,Elias,P., 在〃 Universal Codeword Sets and Representations of the Integers “ ;IEEE Trans, on Inf. Theo.,IT-21 :2,Mar. 1975 ;ppl94_203中描述了針對大于1的整數(shù)的所謂的伽瑪碼 (Gamma code) 0伽馬碼由以下構(gòu)成編碼整數(shù)的從最高有效位(MSB)到最低有效位(LSB) 的可變長度二進(jìn)制碼,以及在前的比該二進(jìn)制碼長度小1的一元碼。Golomb, S. W.在〃 Run-length Coding",IEEE Trans, on Inf. Theo.,IT-12 :4, July 1966 ;pp 399—401 中以及 Rice, R. F.在"Same Practical Universal Noiseless Coding Techniques“ ;Jet Propulsion Laboratory ;JPL Publication 79-22 ;Pasadena Cal. ;Mar. 1979中描述了其他可變長度編碼方案,這些可變長度編碼方案非常適合出現(xiàn)概 率符合類幾何/拉普拉斯分布函數(shù)的要編碼的值。Golomb編碼由Golomb因子來參數(shù)化。這允許使Golomb編碼適于要編碼的數(shù)據(jù)的 具體分布函數(shù)。Golomb碼由一元碼的前綴、固定長度二進(jìn)制碼的后綴以及將所述前綴與后綴分開 的分隔符比特構(gòu)成,其中,前綴是相應(yīng)數(shù)目的等值比特,表示商;分隔符比特是與等值比特 的值不同的比特;固定長度二進(jìn)制碼的后綴表示余數(shù)。所述固定長度與對Golomb因子進(jìn)行 二進(jìn)制編碼所需的比特?cái)?shù)量相對應(yīng)。即,該固定數(shù)目等于Golomb因子的以2為底的對數(shù)的 整數(shù)部分加1。通過對等值比特進(jìn)行讀取和計(jì)數(shù)直到讀取到分隔符比特,然后根據(jù)后面固定 個(gè)數(shù)的比特對余數(shù)進(jìn)行讀取和解碼,來獲取商,從而可以獲取所編碼的整數(shù)。然后,將商與 Golomb因子相乘,再加上余數(shù)。對于編碼,將商確定為要編碼的值除以Golomb因子而得到的整數(shù)部分,將余數(shù)確 定為要編碼的值與所確定的商乘以Golomb因子之間的差值。Rice編碼是Golomb編碼的特殊情況,其中,Golomb因子等于2的所謂Rice系數(shù) 次冪,承載二進(jìn)制碼的部分的大小等于所述Rice系數(shù)。在結(jié)構(gòu)上,最短Golomb碼包括至少所述固定數(shù)目個(gè)比特以及分隔符比特。因此,Golomb因子越大,固定數(shù)目就越大,并且針對小整數(shù)的碼越長。然而,針對 大整數(shù)的碼越短。不利地,盡管音頻數(shù)據(jù)和/或視頻數(shù)據(jù)中大部分要編碼的值都符合類幾何/拉普 拉斯分布函數(shù),然而也有一些要編碼的大值很少見,但是比適用于頻繁出現(xiàn)的較小值的分 布函數(shù)所預(yù)測的更有可能出現(xiàn)。因此,當(dāng)僅將Golomb因子調(diào)整為適合針對頻繁出現(xiàn)的較小值的分布函數(shù)時(shí),將Golomb因子選擇得較小,這樣較大值需要很大的一元部分,從而導(dǎo)致數(shù)據(jù)速率爆炸。當(dāng)將Golomb因子調(diào)整為適合針對所有值的分布函數(shù)時(shí),將Golomb因子選擇得較 大,這樣以比所需更多的比特來編碼頻繁出現(xiàn)的較小值,這也會導(dǎo)致數(shù)據(jù)速率爆炸。需要對遵循這種混合分布的值進(jìn)行高效編碼。
發(fā)明內(nèi)容
本發(fā)明針對這種需要,提出了一種對指示數(shù)據(jù)段比特?cái)?shù)量的整數(shù)進(jìn)行編碼的方 法,所述方法包括根據(jù)權(quán)利要求1所述的特征。所述方法包括以下步驟將指示比特?cái)?shù)量的整數(shù)編碼為第一數(shù)目個(gè)等值比特,后 面跟著不同值的停止比特,其中第一數(shù)目等于所述比特?cái)?shù)量加上閾值。借助于該方法,可以采用承載一元碼和二進(jìn)制碼的混合碼,對比閾值與Golomb因 子的乘積大的少見大值的商進(jìn)行編碼,其中Golomb因子可以僅適合頻繁出現(xiàn)的小值。仍然 以一元碼對比閾值與Golomb因子的乘積小的值的商進(jìn)行編碼。為了對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行解碼,提出了根據(jù)權(quán)利要求4的解碼方法,其中,所 述解碼方法包括以下步驟對第一數(shù)目個(gè)等值比特進(jìn)行讀取和計(jì)數(shù),直到讀取到不同值的 分隔符比特,以及通過將所述第一數(shù)目減去閾值來確定比特?cái)?shù)量。在所述解碼方法的實(shí)施例中,確定第二數(shù)目包括確定第二數(shù)目等于輔助整數(shù)加 1減去閾值再減去2的第一數(shù)目次冪。本發(fā)明還提出了另一種編碼方法,其中,以主整數(shù)的可變長度碼的前綴來編碼輔 助整數(shù),所述方法包括權(quán)利要求2的特征。S卩,該另一方法包括以下步驟將所述輔助整數(shù)與閾值相比較;如果所述輔助整 數(shù)小于所述閾值,則將所述輔助整數(shù)編碼為相應(yīng)數(shù)目個(gè)等值比特,后面跟著不同值的分隔 符比特;以及如果所述輔助整數(shù)大于所述閾值,則使用第一數(shù)目、所述輔助整數(shù)和所述閾值 來確定第二數(shù)目,以二進(jìn)制來編碼支持整數(shù),確定第二數(shù)目的二進(jìn)制碼的大小,并在所述二 進(jìn)制碼前附加所述大小的碼,所述大小的碼是根據(jù)權(quán)利要求1來確定的。為了根據(jù)可變長度編碼的主整數(shù)的前綴對輔助整數(shù)進(jìn)行解碼,提出了根據(jù)權(quán)利要 求5所述的另一種解碼方法。所述另一種解碼方法包括以下步驟根據(jù)權(quán)利要求4確定數(shù) 據(jù)段的比特?cái)?shù)量;將所述第一數(shù)目與閾值相比較;如果所述第一數(shù)目小于所述閾值,則確 定輔助整數(shù)等于所述第一數(shù)目;如果所述第一數(shù)目大于所述閾值,則讀取后續(xù)比特的比特 數(shù)量,根據(jù)所讀取的比特?cái)?shù)量對二進(jìn)制編碼的第二數(shù)目進(jìn)行解碼,并且還使用閾值、第一數(shù) 目和第二數(shù)目來確定輔助整數(shù)。在所述解碼方法的實(shí)施例中,如果所述比特?cái)?shù)量大于零,則輔助整數(shù)等于閾值減1 加上第二數(shù)目再加上2的第一數(shù)目次冪。所述方法、所述解碼方法、所述另一方法或所述另一解碼方法的其他實(shí)施例還包 括余數(shù)的二進(jìn)制碼包含在預(yù)定義數(shù)目個(gè)比特的后綴中,并且主整數(shù)可被確定為所述輔助 整數(shù)乘以所述預(yù)定義數(shù)目再加上所述余數(shù)。所述方法、所述解碼方法、所述另一方法或所述另一解碼方法的其他實(shí)施例還包 括主整數(shù)包含在整數(shù)集合中,所述方法包括對集合中的整數(shù)進(jìn)行編碼或解碼;并且閾值 取決于所述預(yù)定義數(shù)目和最大值。
所述方法、所述解碼方法、所述另一方法或所述另一解碼方法的其他實(shí)施例還包 括所述最大值是借助于測試數(shù)據(jù)集合來確定的。所述方法、所述解碼方法、所述另一方法或所述另一解碼方法的其他實(shí)施例還包 括所述最大值是借助于所述預(yù)定義數(shù)目和出現(xiàn)概率來確定的。所述方法、所述解碼方法、所述另一方法或所述另一解碼方法的其他實(shí)施例還包 括集合中整數(shù)的至少一些被順序編碼或順序解碼;并且朝著多個(gè)最后編碼或解碼的整數(shù) 當(dāng)中的最大數(shù),來適配用于對后續(xù)整數(shù)進(jìn)行編碼或解碼的所述最大值。此外,提出了一種對音頻和/或視頻數(shù)據(jù)進(jìn)行編碼或解碼的方法,所述方法包括 權(quán)利要求12的特征。所述方法包括確定對音頻信號和/或視頻數(shù)據(jù)的瞬時(shí)數(shù)據(jù)或音譜數(shù) 據(jù)的一個(gè)或多個(gè)殘差加以表示的數(shù)據(jù);以及分別根據(jù)所提出的另一編碼方法或解碼方法的 所提出的其他實(shí)施例之一,來對用于表示的數(shù)據(jù)中包含的整數(shù)進(jìn)行編碼或解碼。提出了一種傳輸音頻和/或視頻數(shù)據(jù)的方法,所述方法包括根據(jù)所提出的對音 頻和/或視頻數(shù)據(jù)進(jìn)行編碼或解碼的方法,來對音頻和/或視頻數(shù)據(jù)進(jìn)行編碼,其中,包含 在用于表示的數(shù)據(jù)中的整數(shù)是根據(jù)所提出的另一編碼方法的所提出的另一實(shí)施例來編碼 的;傳輸編碼后的數(shù)據(jù),根據(jù)根據(jù)所提出的對音頻和/或視頻數(shù)據(jù)進(jìn)行編碼或解碼的方法 來編碼的數(shù)據(jù),解碼音頻和/或視頻數(shù)據(jù),其中包含在用于表示的數(shù)據(jù)中的整數(shù)是根據(jù)所 提出的另一解碼方法的所提出的另一實(shí)施例來解碼的。此外,提出了一種存儲介質(zhì),包括根據(jù)所提出的對音頻和/或視頻數(shù)據(jù)進(jìn)行編碼 或解碼的方法來編碼的音頻和/或視頻數(shù)據(jù)。
附圖中示出了本發(fā)明的示例實(shí)施例,在以下描述中更詳細(xì)地說明了本發(fā)明的示例 實(shí)施例。附圖中圖1示出了根據(jù)Golomb因子為2且閾值為3的混合Golomb編碼方案的示例實(shí)施 例的整數(shù)值范圍和相應(yīng)前綴的圖表,圖2示出了根據(jù)Golomb因子為2且閾值為3的混合Golomb編碼方案的示例實(shí)施 例的整數(shù)值范圍和相應(yīng)前綴的圖表,圖3示出了在Golomb因子為4且閾值為6的混合Golomb編碼方案的示例實(shí)施例 中的前綴和后綴的圖表,圖4示出了借助于不同出現(xiàn)概率和不同Golomb因子而確定的示例性閾值的圖表。
具體實(shí)施例方式本發(fā)明提出通過用修正Elias-Gamma碼對大于閾值m的值的前綴進(jìn)行編碼,來使 這些值的比特長度增加放緩。對于小于閾值m的值的編碼,僅用一元碼來編碼前綴。對于 所有值,對Golomb/Rice碼的固定碼部分(即,后綴)中的余數(shù)的編碼保持不變。用于前綴編碼的修正Elias-Gamma碼具有一元部分,該一元部分比后面的二進(jìn)制 部分大閾值m。這使得可以區(qū)分修正Elias-Gamma碼的一元部分與編碼的小于閾值m的值 的前綴,小于閾值m的值的前綴僅由一元碼構(gòu)成。如果假定要編碼的值χ的出現(xiàn)概率遵循類幾何/指數(shù)分布,則Colomb/Rice編碼
那么,閾值m可以被確定為
rr 1 In(I-P)VIIg+I^-J
方案是合適的。那么值X的Colomb/Rice碼的長度與值X的出現(xiàn)概率成比例。類幾何/指
數(shù)分布可以寫成如下形式
f( 3、對于x》0rn
/(x;A)=|o其他⑴圖1示出了對于不同λ值的類幾何/指數(shù)概率分布示例的χ值/概率分布曲線。如果假設(shè)要編碼的數(shù)據(jù)塊的值的指數(shù)概率密度分布函數(shù),則選擇Golomb編碼作 為編碼方案。通過計(jì)算數(shù)據(jù)塊的均值Μ,使用分布的中值(Median)估計(jì)來確定Golomb因子 G(l/M是速率參數(shù)λ的最大似然估計(jì))G = ^^ = ln(2)*M
λ (2)中值將要編碼的(有序的)數(shù)據(jù)塊分成兩半??梢杂米钚∩?(編碼為1比特)和 針對余數(shù)r的Nr = int (Iog2 (G)) +1或Nr-I個(gè)比特來編碼中值以下的所有值(一半的值)。然而,當(dāng)編碼瞬時(shí)數(shù)據(jù)或音譜數(shù)據(jù)(具有大的稀疏的峰的數(shù)據(jù))的殘差時(shí),采用典 型的指數(shù)分布概率密度分布函數(shù)僅給出對值出現(xiàn)概率的非常粗略的近似。尤其是比閾值m 大的值比指數(shù)分布概率密度分布函數(shù)所預(yù)測的出現(xiàn)得更頻繁??梢酝ㄟ^使用用于對商q進(jìn)行編碼的混合編碼方法來解決該問題。所提出的碼具 有調(diào)諧參數(shù)m,調(diào)諧參數(shù)m確定是否根據(jù)現(xiàn)有技術(shù)Golomb/Rice編碼來對商q進(jìn)行編碼,或 是否利用修正Elias Gamma碼來對商q進(jìn)行編碼。閾值m可以對于編解碼系統(tǒng)是固定的。那么確定閾值m,使得將合適示例數(shù)據(jù)的總 體碼長度最小化,這是十分有用的?;蛘唛撝祄具有缺省起始值,其響應(yīng)于已經(jīng)編碼的一些或所有數(shù)據(jù)而被更新。例 如,最后η個(gè)編碼的值保存在先入/先出存儲器中并用于更新。必須將更新后的閾值發(fā)送 至解碼器作為輔助信息?;蛘?,在編碼器側(cè)和在解碼器側(cè)執(zhí)行相同的閾值更新過程。例如,使用先入/先出存儲器中保存的最后η個(gè)編碼值中的最大值Vmax,借助于 Golomb因子G,以如下方式來確定閾值m
Y(^max+I)Yfn =---
L、G Jj(1)其中[.]返回其自變量的整數(shù)部分。在等式(1)中可以使用估計(jì)的最大值^ ax,而不使用先入/先出存儲器中保存的最 后η個(gè)編碼值中的最大值Vmax。最大值的估計(jì)Pmax取決于出現(xiàn)概率閾值p,并且可以被確定 為
⑵
(3)
圖2中示出了根據(jù)等式(3)確定的閾值m的示例值的圖表。從該圖表中可以看出, 對于固定的概率閾值P和變化的大于1的Golomb因子G來說,閾值m變化不大。只有兩種 例外情況下,針對固定概率閾值P的閾值對于G= 1來說比對于其他G值來說更大。因此, 閾值m也可以被確定為
權(quán)利要求
1.一種對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行編碼的方法,所述方法包括以下步驟-將所述比特?cái)?shù)量編碼為后面跟隨有不同值的停止比特的第一數(shù)目個(gè)等值比特,其中 -等值比特的第一數(shù)目等于所述比特?cái)?shù)量加上閾值。
2.一種對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行解碼的方法,所述方法包括以下步驟-對第一數(shù)目個(gè)等值比特進(jìn)行讀取和計(jì)數(shù),直到讀取到不同值的分隔符比特, -通過將所述第一數(shù)目減去閾值來確定比特?cái)?shù)量。
3.—種以主整數(shù)的可變長度碼的前綴來編碼輔助整數(shù)的方法,所述方法包括以下步驟-將所述輔助整數(shù)與閾值相比較,-如果所述輔助整數(shù)小于所述閾值,則將所述輔助整數(shù)編碼為后面跟隨有不同值的分 隔符比特的相應(yīng)數(shù)目個(gè)等值比特,以及-如果所述輔助整數(shù)大于所述閾值,則使用第一數(shù)目、所述輔助整數(shù)和所述閾值來確定 第二數(shù)目,以二進(jìn)制來編碼支持整數(shù),確定第二數(shù)目的二進(jìn)制碼的大小,并在所述二進(jìn)制碼 前附加所述大小的碼,所述大小的碼是根據(jù)權(quán)利要求1來確定的。
4.根據(jù)權(quán)利要求3所述的方法,其中,確定第二數(shù)目包括-確定第二數(shù)目等于輔助整數(shù)加1減去閾值再減去2的第一數(shù)目次冪。
5.一種根據(jù)可變長度編碼的主整數(shù)的前綴對輔助整數(shù)進(jìn)行解碼的方法,所述方法包括 以下步驟-根據(jù)權(quán)利要求2確定數(shù)據(jù)段的比特?cái)?shù)量, -將所述第一數(shù)目與閾值相比較,-如果所述第一數(shù)目小于所述閾值,則確定輔助整數(shù)等于所述第一數(shù)目, -如果所述第一數(shù)目大于所述閾值,則讀取所述比特?cái)?shù)量的后續(xù)比特,根據(jù)所讀取的比 特?cái)?shù)量對二進(jìn)制編碼的第二數(shù)目進(jìn)行解碼,并且還使用閾值、第一數(shù)目和第二數(shù)目來確定 輔助整數(shù)。
6.根據(jù)權(quán)利要求5所述的方法,其中,-如果所述比特?cái)?shù)量大于零,則輔助整數(shù)等于閾值減1加上第二數(shù)目再加上2的第一數(shù) 目次冪。
7.根據(jù)權(quán)利要求3至6中任一項(xiàng)權(quán)利要求所述的方法,其中, -余數(shù)的二進(jìn)制碼包含在預(yù)定義數(shù)目個(gè)比特的后綴中,以及-主整數(shù)可被確定為所述輔助整數(shù)乘以所述預(yù)定義數(shù)目再加上所述余數(shù)。
8.根據(jù)權(quán)利要求7所述的方法,其中, -主整數(shù)包含在整數(shù)集合中,-所述方法包括對集合中的整數(shù)進(jìn)行編碼或解碼,以及 -閾值取決于所述預(yù)定義數(shù)目和最大值。
9.根據(jù)權(quán)利要求8所述的方法,其中,-所述最大值是借助于測試數(shù)據(jù)集合來確定的。
10.根據(jù)權(quán)利要求8所述的方法,其中,-所述最大值是借助于所述預(yù)定義數(shù)目和出現(xiàn)概率來確定的。
11.根據(jù)權(quán)利要求8至10中任一項(xiàng)權(quán)利要求所述的方法,其中,-集合中至少一些整數(shù)被順序編碼或順序解碼,以及-將用于對后續(xù)整數(shù)進(jìn)行編碼或解碼的所述最大值適配為朝著多個(gè)最后編碼或解碼的 整數(shù)當(dāng)中的最大數(shù)。
12.—種對音頻和/或視頻數(shù)據(jù)進(jìn)行編碼或解碼的方法,所述方法包括-確定對音頻信號和/或視頻數(shù)據(jù)的瞬時(shí)數(shù)據(jù)或音譜數(shù)據(jù)的一個(gè)或多個(gè)殘差加以表示 的數(shù)據(jù),以及-利用根據(jù)權(quán)利要求8至11中任一項(xiàng)權(quán)利要求所述的方法,來對用于表示的數(shù)據(jù)中包 含的整數(shù)進(jìn)行編碼或解碼。
13.一種傳輸音頻和/或視頻數(shù)據(jù)的方法,所述方法包括-根據(jù)權(quán)利要求12來對音頻和/或視頻數(shù)據(jù)進(jìn)行編碼,其中,包含在用于表示的數(shù)據(jù)中 的整數(shù)是根據(jù)權(quán)利要求11來編碼的, -傳輸編碼的數(shù)據(jù),-從根據(jù)權(quán)利要求12編碼的數(shù)據(jù)中解碼音頻和/或視頻數(shù)據(jù),其中包含在用于表示的 數(shù)據(jù)中的整數(shù)是根據(jù)權(quán)利要求11來解碼的。
14.一種存儲介質(zhì),包括根據(jù)權(quán)利要求12來編碼的音頻和/或視頻數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行編碼的方法以及相應(yīng)的解碼方法。此外,本發(fā)明還涉及對音頻和/或視頻數(shù)據(jù)的編碼、解碼、傳輸和/或存儲,其中,對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行編碼的方法和或相應(yīng)的解碼方法用在音頻和/或視頻數(shù)據(jù)的處理中。對數(shù)據(jù)段的比特?cái)?shù)量進(jìn)行編碼的所述方法包括以下步驟將指示比特?cái)?shù)量的整數(shù)編碼為第一數(shù)目個(gè)等值比特后面跟著不同值的停止比特,其中第一數(shù)目等于所述比特?cái)?shù)量加上閾值。使用所述方法,可以使用一元碼和二進(jìn)制碼來編碼大于閾值的值的商,其中可以以一元碼來編碼小于閾值的值的商。
文檔編號H03M7/40GK102077468SQ200980125496
公開日2011年5月25日 申請日期2009年6月25日 優(yōu)先權(quán)日2008年7月1日
發(fā)明者約翰內(nèi)斯·伯姆 申請人:湯姆森許可貿(mào)易公司