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

音頻編碼器、音頻解碼器、編碼音頻信息的方法、解碼音頻信息的方法及使用優(yōu)化散列表...的制作方法

文檔序號:2832851閱讀:819來源:國知局
專利名稱:音頻編碼器、音頻解碼器、編碼音頻信息的方法、解碼音頻信息的方法及使用優(yōu)化散列表 ...的制作方法
技術(shù)領(lǐng)域
根據(jù)本發(fā)明的實施例涉及一種用于基于編碼音頻信息提供解碼音頻信息的音頻解碼器,用于基于輸入音頻信息提供編碼音頻信息的音頻編碼器,用于基于編碼音頻信息提供解碼音頻信息的方法,用于基于輸入音頻信息提供編碼音頻信息的方法及計算機程序。根據(jù)本發(fā)明的實施例涉及一種經(jīng)改良的頻譜無噪聲編碼,其可用于音頻編碼器或音頻解碼器,例如所謂的統(tǒng)一語音及音頻編碼器(USAC)。根據(jù)本發(fā)明的實施例涉及用于當(dāng)前USAC規(guī)范的頻譜編碼表的更新。
背景技術(shù)
下文中,將簡單闡述本發(fā)明的背景以有助于了解本發(fā)明及其優(yōu)點。過去十年間大量努力致力于良好位率效率以數(shù)字方式存儲并分配音頻內(nèi)容。就此方面而言的一項重要成就為國際標(biāo)準(zhǔn)IS0/IEC14496-3的定義。此標(biāo)準(zhǔn)的第3部分涉及音頻內(nèi)容的編碼及解碼,而第3部分的第4子部分涉及一般音頻編碼。IS0/IEC14496第3部分,第4子部分定義用于一般音頻內(nèi)容的編碼及解碼的構(gòu)想。另外,提出了進(jìn)一步改良以改善質(zhì)量和/或減少所要求的位率。根據(jù)該項標(biāo)準(zhǔn)描述的構(gòu)想,時域音頻信號被轉(zhuǎn)換成時頻表示。從時域變換成時頻域通常使用時域樣本的變換塊執(zhí)行,這些變換塊也稱為“幀”。已發(fā)現(xiàn)較佳是使用重疊幀,其移位例如半個幀,原因在于重疊允許有效地避免(或至少減少)假影。另外,已發(fā)現(xiàn)須進(jìn)行開窗來避免源自于此種時間上有限的幀處理的假影。通過將輸入音頻信號的開窗部分從時域變換到時頻域,在許多情況下,獲得能量壓縮,使得部分頻譜值包括比多個其他頻譜值顯著大的幅度。據(jù)此,在許多情況下,幅度顯著高于頻譜值平均幅度的頻譜值的數(shù)量相對較少。結(jié)果導(dǎo)致能量壓縮的時域至?xí)r頻域變換的典型實例是所謂的修正離散余弦變換(MDCT)。頻譜值經(jīng)常依據(jù)心理聲學(xué)模型來定標(biāo)及量化,使得針對心理聲學(xué)上較高有效的頻譜值的量化誤差較小,而針對心理聲學(xué)上較低有效的頻譜值的量化誤差較大。已定標(biāo)及已量化的頻譜值經(jīng)編碼來提供其位率有效的表示。例如,量化頻譜系數(shù)的所謂霍夫曼編碼的使用在國際標(biāo)準(zhǔn)IS0/IEC14496-3:2005(E),第3部分,第4子部分中進(jìn)行了描述。然而,已發(fā)現(xiàn)頻譜值的編碼質(zhì)量對所要求的位率具有顯著影響。同樣,已發(fā)現(xiàn)音頻解碼器的復(fù)雜度取決于用于編碼頻譜值的編碼處理,其中,音頻解碼器經(jīng)常實施為便攜式消費者裝置,因此須價廉且耗電量低。鑒于這種情況,需要有一種用于編碼并解碼音頻內(nèi)容的構(gòu)想,其提供位率效率與資源效率間的改進(jìn)折衷。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的實施例,形成一種用于基于頻譜值的算術(shù)解碼表示提供多個解碼頻譜值的音頻解碼器。所述音頻解碼器還包括頻域至?xí)r域變換器,用于使用所述解碼頻譜值提供時域音頻表示,以獲得所述解碼音頻信息。所述算術(shù)解碼器被配置為依據(jù)由數(shù)值當(dāng)前上下文值所描述的上下文狀態(tài)來選擇映射規(guī)則,所述映射規(guī)則描述表示頻譜值,或頻譜值的最高有效位平面的編碼形式的碼值,到表示頻譜值,或頻譜值的最高有效位平面的解碼形式的符號碼的映射。所述算術(shù)解碼器被配置為依據(jù)多個事先解碼的頻譜值來確定所述數(shù)值當(dāng)前上下文值。所述算術(shù)解碼器被配置為評估散列表以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界。所述算術(shù)解碼器被配置成評估散列表,以得出 ari_hash_m[i] >> 8等于或大于c的散列表索引值i,同時,如果得出的散列表索引值i大于O,那么值ari_hash_m[1-l] >> 8小于C。此外,所述算術(shù)解碼器被配置為成選擇由概率模型索引(Pki)確定的映射規(guī)則,當(dāng)ari_hash_m[1-l] >
>8等于c時,所述概率模型索引等于ari_hash_m[i]&&OxFF,否則等于ari_lookup_m[i]。在本實施例中,所述散列表ari_hash_m的定義如圖22 (I)、圖22 (2)、圖22 (3)及圖22(4)中給出。此外,所述映射表ari_lookup_m的定義如圖21中給出。已發(fā)現(xiàn)上述算法與圖22(1)至圖22(4)的散列表的組合允許特別有效地選擇映射規(guī)則,因為根據(jù)圖22(1)至圖22(4)的散列表以特別適合的方式限定所述數(shù)值上下文值中的有效值及狀態(tài)區(qū)間。此外,所述算法與根據(jù)圖22(1)至圖22(4)的散列表之間的交互顯示獲得特別好的結(jié)果,同時保持計算復(fù)雜度合理的小。此外,圖21中定義的映射表結(jié)合上述散列表使用時還特別適用于所述算法??傊?,如圖22(1)至圖22(4)中給出的散列表以及如圖22中定義的映射表結(jié)合如上所述算法使用獲得良好的編碼/解碼效率及較低的計算復(fù)雜度。在優(yōu)選實施例中,算術(shù)解碼器被配置為使用如圖5e中定義的算法評估所述散列表,其中c為指明數(shù)值當(dāng)前上下文值或其定標(biāo)版本的變量,其中i為描述當(dāng)前散列表索引值的變量,其中i_min為被初始化來指明所述散列表的第一表項的散列表索引值并依據(jù)c和(j >> 8)之間的比較而選擇性地更新的變量。在上述算法中,條件“c << (j >> 8) ”定義由變量c所描述的狀態(tài)值小于由表項ari_hash_m[i]所描述的狀態(tài)值。同樣,在上述算法中,“j&OxFF”描述由表項ari_hash_m[i]所描述的映射規(guī)則索引值。進(jìn)一步地,i_max為被初始化來指明所述散列表的最后一個表項的散列表索引值并依據(jù)c和(j >>8)之間的比較而選擇性地更新的變量。條件“c > (j > 8 > ) ”定義由變量c所描述的狀態(tài)值大于由表項ari_hash_m[i]所描述的狀態(tài)值。所述算法的返回值指明概率模型的索引pki,且為映射規(guī)則索引值?!癮ri_hash_m”指明所述散列表,“ah_hash_m[i] ”指明所述散列表ari_hash_m具有散列表索引值i的表項?!?!':!_10010^1_111”指明映射表,“31';!_10010^1_111[;!_1]^1]”指明所述映射表ari_lookup_m具有映射表索引值i_max的表項。已發(fā)現(xiàn)上述算法(如圖5e所示)與圖22⑴至圖22(4)的散列表的組合允許特別有效地選擇映射規(guī)則,因為根據(jù)圖22(1)至圖22(4)的散列表以特別適合的方式界定所述數(shù)值上下文值中的有效值及狀態(tài)區(qū)間。此外,根據(jù)圖5e的所述算法與根據(jù)圖22(1)至圖22(4)的散列表之間的交互結(jié)合表搜索的快速算法顯示獲得特別好的結(jié)果。此外,圖21中定義的映射表結(jié)合上述散列表使用時還特別適用于所述算法??傊?,如圖22 (I)至圖22 (4)中給出的散列表以及如圖22中定義的映射表結(jié)合如圖5e中所定義的算法使用獲得良好的編碼/解碼效率及較低的計算復(fù)雜度。換句話說,已發(fā)現(xiàn)圖5e的二分法非常適合利用表ari_hash_m及ari_lookup_m進(jìn)行操作,如上所述。然而,應(yīng)注意的是,在不改變本發(fā)明的構(gòu)想的情況下可以對搜索算法進(jìn)行微小變化(其簡單易行)或甚至更顯著的變化。換句話說,搜索方法不局限于所提及的方法。即使二分法(例如,根據(jù)圖5e)的使用進(jìn)一步改善了性能,但也可以執(zhí)行簡單的窮舉搜索,從而使復(fù)雜一定程度地增加。在優(yōu)選實施例中,所述算法解碼器被配置為基于映射規(guī)則索引值pki選擇映射規(guī)貝U,所述映射規(guī)則描述碼值到符號碼的映射,所述映射規(guī)則索引值Pki例如作為圖5e中所示的算法的返回值提供。所述映射規(guī)則索引值Pki的使用非常有效,因為上述表及上述算法的交互被優(yōu)化以提供有意義的映射規(guī)則索引值。在優(yōu)選實施例中,所述算法解碼器被配置為使用映射規(guī)則索引值作為表索引值來選擇映射規(guī)則,所述映射規(guī)則描述碼值到符號碼的映射。映射規(guī)則索引值作為表索引值的使用允許映射規(guī)則進(jìn)行計算有效的存儲高效選擇。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為選擇如圖23 (I)、圖23 (2)、圖23 (3)中定義的表ari_cf_m[64] [17]的子表中的一個作為選擇映射規(guī)則。該構(gòu)想基于由如圖23 (I)、圖23 (2)、圖23 (3)中定義的表ari_cf_m[64] [17]的子表所定義的映射規(guī)則適于可以通過結(jié)合根據(jù)圖21及圖22 (I)至圖22 (4)的表執(zhí)行根據(jù)圖5e的上述算法來實現(xiàn)的結(jié)果。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為基于數(shù)值先前上下文值使用根據(jù)圖5c的算法來獲得所述數(shù)值上下文值,其中所述算法接收作為輸入值的表示數(shù)值先前上下文值的值或變量C,以及表示要在頻譜值向量中要解碼的頻譜值的2元組的索引的值或變量i。值或變量N表示頻域至?xí)r域變換器的重建相位窗口的窗口長度。所述算法提供作為輸出值的表示數(shù)值當(dāng)前上下文值的更新值或變量C。在該算法中,運算“c>> 4”描述向值或變量c右邊移4位。此外,q
[i+l]指明與先前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的較大的頻率索引i+1 (比當(dāng)前要解碼的頻譜值的2元組的當(dāng)前頻率索引大一)的上下文子區(qū)域值。同樣,q[l] [1-]指明與當(dāng)前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的較小的頻率索引i_l (比當(dāng)前要解碼的頻譜值的2元組的當(dāng)前頻率索引小一)的上下文子區(qū)域值。q[l][i_2]表示與當(dāng)前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的較小的頻率索引i_2(比當(dāng)前要解碼的頻譜值的2元組的當(dāng)前頻率索引小二)的上下文子區(qū)域值。q[l][i_3]表示與當(dāng)前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的較小的頻率索引i_3(比當(dāng)前要解碼的頻譜值的2元組的當(dāng)前頻率索引小三)的上下文子區(qū)域值。已發(fā)現(xiàn)結(jié)合圖21及圖22⑴至圖22⑷的表使用的根據(jù)圖5e的算法適于基于使用圖5c的算法獲得的數(shù)值當(dāng)前上下文值c提供映射規(guī)則索引值,其中使用圖5c的算法獲得數(shù)值當(dāng)前上下文值的計算效率特別高,原因是根據(jù)圖5c的算法只需要非常簡單的計算。在優(yōu)選實施例中,所述算法解碼器被配置為使用根據(jù)圖51的算法來更新與當(dāng)前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的當(dāng)前解碼的頻譜值的2元組的當(dāng)前頻率索引的上下文子區(qū)域值q[l] [i],其中a指明當(dāng)前解碼的頻譜值的2元組的第一頻譜值的絕對值,并且其中b指明當(dāng)前解碼的頻譜值的2元組的第二頻譜值??梢钥闯?,優(yōu)選實施例非常適用于對上下文子區(qū)域值進(jìn)行簡單更新。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為使用根據(jù)圖5g的算術(shù)解碼算法提供表示解碼頻譜值的2元組的解碼值m。已發(fā)現(xiàn)所述算術(shù)解碼算法非常適用于與上述算法協(xié)作。根據(jù)本發(fā)明的另一個實施例,形成一種用于基于編碼音頻信息提供解碼音頻信息的音頻解碼器。所述音頻解碼器包括算術(shù)解碼器,用于基于頻譜值的算術(shù)編碼表示提供多個解碼頻譜值。所述音頻解碼器還包括頻域至?xí)r域變換器,用于使用所述解碼頻譜值提供時域音頻表示,以獲得所述解碼音頻信息。所述算術(shù)解碼器被配置為依據(jù)由數(shù)值當(dāng)前上下文值所描述的上下文狀態(tài)來選擇映射規(guī)則,所述映射規(guī)則描述表示頻譜值,或頻譜值的最高有效位平面的編碼形式的碼值,到表示頻譜值,或頻譜值的最高有效位平面的解碼形式的符號碼的映射。所述算術(shù)解碼器被配置為依據(jù)多個事先解碼的頻譜值來確定所述數(shù)值當(dāng)前上下文值。所述算術(shù)解碼器被配置為評估散列表以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界。所述散列表ari_hash_m的定義如圖22⑴、圖22 (2)、圖22 (3)及圖22 (4)中給出。所述算術(shù)解碼器被配置為評估散列表,以確定數(shù)值當(dāng)前上下文值是否與由散列表的表項所描述的表上下文值相同或確定由散列表的表項所描述的數(shù)值當(dāng)前上下文值所在的區(qū)間,并依據(jù)評估結(jié)果導(dǎo)出描述所選映射規(guī)則的映射規(guī)則索引值。已發(fā)現(xiàn)如圖22 (I)至圖22(4)中給出的散列表ari_hash_m非常適用于針對由散列表的表項所描述的表上下文值及由散列表的表項所描述的區(qū)間進(jìn)行解析,從而得出映射索引值。已發(fā)現(xiàn)表上下文值及根據(jù)圖22(1)至圖22(4)的散列表的區(qū)間的定義在結(jié)合評估散列表的簡單構(gòu)想使用時為映射規(guī)則的選擇提供有效機制,使用所述散列表的表項來檢查表上下文值并確定非表上下文值位于由散列表的表項所定義的哪個區(qū)間內(nèi)。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為將所述數(shù)值當(dāng)前上下文值或所述數(shù)值當(dāng)前上下文值的定標(biāo)版本與所述散列表的一系列數(shù)值排序的表項或子表項做比較,以便以迭代方式獲得散列表表項的散列表索引值,使得所述數(shù)值當(dāng)前上下文值位于由所獲得的散列表索引值標(biāo)示的所獲得的散列表表項與相鄰散列表表項所限定的區(qū)間內(nèi)部。在這種情況下,所述算術(shù)解碼器被配置為依據(jù)數(shù)值當(dāng)前上下文值,或數(shù)值當(dāng)前上下文值的定標(biāo)版本,與當(dāng)前表項或子表項之間的比較結(jié)果確定散列表的一系列表項的下一個表項。人們認(rèn)識到該機制允許對根據(jù)圖22(1)至圖22(4)的散列表進(jìn)行特別有效的評估。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為,如果發(fā)現(xiàn)數(shù)值當(dāng)前上下文值或其定標(biāo)版本等于由當(dāng)前散列表索引值指明的散列表的第一子表項則選擇由當(dāng)前散列表索引值標(biāo)示的散列表的第二子表項所限定的映射規(guī)則。因此,如根據(jù)圖22(1)至圖22(4)所定義的散列表的表項具有雙重功能。散列表的第一子表項(即,表項的第一部分)用于識別數(shù)值(當(dāng)前)上下文值的特別有效的狀態(tài),而散列表的第二子表項(即,此表項的第二部分)通過定義映射規(guī)則索引值來定義映射規(guī)則。因此,以非常有效地方式使用散列表的表項。同樣,該機制在提供用于數(shù)值當(dāng)前上下文值的特別有效狀態(tài)的映射規(guī)則索引值方面尤其有效,其通過散列表的表項,或更精確地通過散列表的子表項進(jìn)行描述。因此,如圖22(1)至圖22(4)所定義的散列表的完整表項限定數(shù)值(當(dāng)前)上下文值的特別有效狀態(tài)的映射至數(shù)值當(dāng)前上下文值的較低有效狀態(tài)的映射規(guī)則及區(qū)域(或區(qū)間)的區(qū)間邊界。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為,如果未發(fā)現(xiàn)數(shù)值當(dāng)前上下文值等于散列表的子表項,則選擇由映射表ari_lookup_m的表項或子表項所限定的映射規(guī)則。在這種情況下,所述算術(shù)解碼器被配置為依據(jù)以迭代方式獲得的散列表索引值選擇映射表的表項或子表項。因此,形成特別有效的二表機制,其允許有效為數(shù)值當(dāng)前上下文值的特別有效狀態(tài)及數(shù)值當(dāng)前上下文值的較低有效狀態(tài)提供映射規(guī)則索引值(其中,通過散列表的表項或子表項無法明確,即單獨描述數(shù)值當(dāng)前上下文值的較低有效狀態(tài))。在優(yōu)選實施例中,所述算術(shù)解碼器被配置為,如果發(fā)現(xiàn)數(shù)值當(dāng)前上下文值等于由當(dāng)前散列表索引值標(biāo)示的散列表的表項所限定的值,則選擇性地提供由獲得的散列表索引值指明的散列表的表項所限定的映射規(guī)則索引值。因此,存在一種使得散列表的表項得到兩用的有效機制。進(jìn)一步地,本發(fā)明的實施例形成用于基于編碼音頻信息提供解碼音頻信息的方法。所述方法實現(xiàn)前面討論的音頻解碼器的功能。因此,所述方法基于與音頻解碼器相同的理念和發(fā)現(xiàn),以便為了簡短起見省略討論。應(yīng)注意的是,可以利用音頻解碼器的任意特征和功能對所述方法進(jìn)行補充。根據(jù)本發(fā)明的另一個實施例,形成一種用于基于輸入音頻信息提供編碼音頻信息的音頻編碼器,所述音頻編碼器包括能量壓縮時域至頻域變換器,用于基于所述輸入音頻信息的時域表示提供頻域音頻表示,使得所述頻域音頻表示包括一組頻譜值。所述音頻編碼器還包括算術(shù)編碼器,被配置成使用可變長度碼字來編碼頻譜值或其預(yù)處理版本。所述算術(shù)編碼器被配置為將頻譜值或者頻譜值的最高有效位平面的值映射到碼值。所述算術(shù)編碼器還被配置為依據(jù)由數(shù)值當(dāng)前上下文值所描述的上下文狀態(tài)選擇映射規(guī)則,所述映射規(guī)則描述頻譜值或頻譜值的最高有效位平面到碼值的映射。所述算術(shù)編碼器還被配置為依據(jù)多個事先編碼的頻譜值確定所述數(shù)值當(dāng)前上下文值。所述算術(shù)編碼器還被配置為評估散列表以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界。所述散列表ari_hash_m的定義如圖22(1)至圖22(4)中給出。所述算術(shù)編碼器被配置為評估散列表,以確定數(shù)值當(dāng)前上下文值是否與由散列表的表項所描述的表上下文值相同,或確定由散列表的表項所描述的數(shù)值當(dāng)前上下文值所在的區(qū)間,并依據(jù)評估結(jié)果導(dǎo)出描述所選映射規(guī)則的映射規(guī)則索引值。應(yīng)注意的是,音頻編碼器的功能與上文討論的音頻解碼器的功能并行發(fā)生。因此,為了簡潔起見參照音頻解碼器的關(guān)鍵理念的上述討論。此外,應(yīng)注意的是,可以利用音頻解碼器的任意特征和功能對所述音頻編碼器進(jìn)行補充。特別是,也可以在音頻編碼器中實現(xiàn)有關(guān)映射規(guī)則的選擇的任意特征,其中編碼的頻譜值代替解碼的頻譜值,等等。根據(jù)本發(fā)明的另一個實施例形成一種用于基于輸入音頻信息提供編碼音頻信息的方法。所述方法基于相同理念執(zhí)行前面描述的音頻編碼器的功能。根據(jù)本發(fā)明的另一個實施例形成一種用于執(zhí)行前面描述的方法中的至少一種的計算機程序。


隨后將參照附圖對根據(jù)本發(fā)明的實施例進(jìn)行描述,其中:圖1示出了根據(jù)本發(fā)明的實施例的音頻編碼器的方框示意圖;圖2示出了根據(jù)本發(fā)明的實施例的音頻解碼器的方框示意圖3示出了用于解碼頻譜值的算法“valuetdecodeO ”的偽程序碼表示;圖4示出了用于狀態(tài)計算的上下文的示意圖;圖5a示出了用于映射上下文的一種算法“arith_map_context O ”的偽程序碼表示;圖5b示出了用于映射上下文的另一算法“arith_map_context O ”的偽程序碼表示;圖5c示出了用于獲得上下文狀態(tài)值的一種算法“arith_get_context O ”的偽程序碼表示;圖5d示出了用于獲得上下文狀態(tài)值的另一算法“arith_get_context O ”的偽程序碼表示;圖5e示出了用于從狀態(tài)值(或狀態(tài)變量)導(dǎo)出累積頻率表索引值“pki”的一種算法“arith_get_pk() ”的偽程序碼表示;圖5f示出了用于從狀態(tài)值(或狀態(tài)變量)導(dǎo)出累積頻率表索引值“pki”的另一算法“arith_get_pk() ”的偽程序碼表示;圖5g示出了用于從可變長度碼字算術(shù)地解碼符號的一種算法“arith_deCOde O ”的偽程序碼表示;圖5h示出了用于從可變長度碼字算術(shù)地解碼符號的另一算法“arith_deCOde() ”的偽程序碼表示的第一部分;圖5i示出了用于從可變長度碼字算術(shù)地解碼符號的另一算法“arith_deCOde() ”的偽程序碼表示的第二部分;圖5j示出了用于從共用值m導(dǎo)出頻譜值的絕對值a,b的算法的偽程序碼表示;圖5k示出了用于將解碼值a,b輸入解碼頻譜值數(shù)組的算法的偽程序碼表示;圖51示出了用于基于解碼頻譜值的絕對值a,b獲得上下文子區(qū)域值的算法“arith_update_context () ” 的偽程序碼表示;圖5m示出了用于填充解碼頻譜值數(shù)組及上下文子區(qū)域值數(shù)組的表項的算法“arith_finish() ”的偽程序碼表示;圖5n示出了用于從共用值m導(dǎo)出解碼頻譜值的絕對值a,b的另一算法的偽程序碼表示;圖5ο示出了用于更新解碼頻譜值數(shù)組及上下文子區(qū)域值數(shù)組的算法“arith_update_context O ”的偽程序碼表示;圖5p示出了用于填充解碼頻譜值數(shù)組的表項及上下文子區(qū)域值數(shù)組的表項的算法“arith_save_context O ”的偽程序碼表示;圖5q示出了定義的一個圖例;圖5r示出了定義的另一圖例;圖6a示出了統(tǒng)一語音及音頻編碼(USAC)原始數(shù)據(jù)塊的語法表示;圖6b示出了單信道元素的語法表示;圖6c示出了成對信道元素的語法表示;圖6d示出了“ ICS”控制信息的語法表示;圖6e示出了頻域信道流的語法表示;圖6f示出了算術(shù)編碼頻譜數(shù)據(jù)的語法表示;
圖6g示出了用于解碼一組頻譜值的一種語法表示;圖6h示出了用于解碼一組頻譜值的另一語法表示;圖6i示出了數(shù)據(jù)元素及變量的一個圖例;圖6j示出了數(shù)據(jù)元素及變量的另一圖例;圖6k 不出了 USAC 單信道兀素 “UsacSingleChannelElement () ” 的語法表不;圖61不出了 USAC成對信道兀素“UsacChannelPairElement () ”的語法表不;圖6m示出了“ ICS”控制信息的語法表示;圖6n示出了 USAC核心編碼器數(shù)據(jù)“UsacCoreCoderData”的語法表示;圖6o示出了頻域信道流“fd_channel_stream() ”的語法表示;圖6p示出了算術(shù)編碼頻譜數(shù)據(jù)“ac_spectral_data () ”的語法表示;圖7示出了根據(jù)本發(fā)明的第一方面的音頻編碼器的方框示意圖;圖8示出了根據(jù)本發(fā)明的第一方面的音頻解碼器的方框示意圖;圖9示出了根據(jù)本發(fā)明的第一方面的數(shù)值當(dāng)前上下文值到映射規(guī)則索引值的映射的圖示;圖10示出了根據(jù)本發(fā)明的第二方面的音頻編碼器的方框示意圖;圖11示出了根據(jù)本發(fā)明的第二方面的音頻解碼器的方框示意圖;圖12示出了根據(jù)本發(fā)明的第三方面的音頻編碼器的方框示意圖;圖13示出了根據(jù)本發(fā)明的第三方面的音頻解碼器的方框示意圖;圖14a示出了用于根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案4的狀態(tài)計算的上下文的示意圖;圖14b示出了用于根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案4的算術(shù)編碼方案的表格的概述;圖15a示出了用于根據(jù)本發(fā)明的實施例的狀態(tài)計算的上下文的示意圖;圖15b示出了用于根據(jù)比較實例的算術(shù)編碼方案的表格的概述;圖16a示出了根據(jù)比較實例,根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案5,及根據(jù)AAC(先進(jìn)音頻編碼)霍夫曼編碼的用于無噪聲編碼方案的只讀存儲器需求的圖示;圖16b示出了根據(jù)比較實例,及根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案5的構(gòu)想的總USAC解碼器數(shù)據(jù)只讀存儲器需求的圖示;圖17示出了對根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案3或工作草案5的無噪聲編碼與根據(jù)比較實例的編碼方案做比較的布置的示意圖;圖18示出了根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案3及根據(jù)比較實例的USAC算術(shù)編碼器產(chǎn)生的平均位率的表格表不;圖19示出了用于根據(jù)USAC草擬標(biāo)準(zhǔn)的工作草案3的算術(shù)解碼器及根據(jù)比較實例的算術(shù)解碼器的最小及最大位存儲位階(level)的表格表示;圖20示出了用于根據(jù)算術(shù)編碼器的不同版本的USAC草擬標(biāo)準(zhǔn)的工作草案3解碼32Kb位流的平均復(fù)雜度數(shù)量的表格表示;圖21示出了根據(jù)本發(fā)明的實施例的表“ari_lookup_m[742] ”的內(nèi)容的表格表示;圖22(1)至圖22⑷示出了根據(jù)本發(fā)明的實施例的表“ari_hash_m[742] ”的內(nèi)容的表格表不;
圖23(1)至圖23(3)示出了根據(jù)本發(fā)明的實施例的表“ari_cf_m[64] [17]”的內(nèi)容的表格表不;圖24示出了表“ari_cf_r□”的內(nèi)容的表格表示;圖25示出了用于狀態(tài)計算的上下文的示意圖;圖26示出了用于比較實例(“M17558”)及用于根據(jù)本發(fā)明的實施例(“新提案”)的WD6參考質(zhì)量位流的轉(zhuǎn)碼的平均編碼效率的表格表示;圖27示出了用于比較實例(“M17558”)及用于根據(jù)本發(fā)明的實施例(“再訓(xùn)練表格”)的每個操作點的WD6參考質(zhì)量位流的轉(zhuǎn)碼的編碼效率的表格表示;圖28示出了用于比較實例(“M17558”)及用于根據(jù)本發(fā)明的實施例(“新提案”)的WD6的無噪聲編碼器存儲需求的比較的表格表示;圖29示出了用于根據(jù)本發(fā)明的實施例(“再訓(xùn)練編碼方案”)的表格的特征的表格表不;圖30示出了用于解碼用于不同算術(shù)編碼器版本的32Kb/s WD6參考質(zhì)量位流的平均復(fù)雜度數(shù)量的表格表不;圖31示出了用于解碼用于不同算術(shù)編碼器版本的12Kb/s WD6參考質(zhì)量位流的平均復(fù)雜度數(shù)量的表格表不;圖32示出了由根據(jù)本發(fā)明的實施例中以及在WD6中的算術(shù)編碼器產(chǎn)生的平均位率的表格表不;圖33不出了基于巾貞的使用提議方案的最小、最大及平均位率的表格表不;圖34示出了使用WD6算術(shù)編碼器及根據(jù)本發(fā)明的實施例(“新提案”)的編碼器由USAC編碼器產(chǎn)生的平均位率的表格表示;圖35示出了根據(jù)本發(fā)明的實施例的最佳情況及最差情況的表格表示;圖36示出了根據(jù)本發(fā)明的實施例的位存儲極限的表格表示;圖37示出了根據(jù)本發(fā)明的實施例的算術(shù)編碼數(shù)據(jù)“arith_data”的語法表示;圖38示出了幫助元素的定義的圖例;圖39示出了定義的另一個圖例;圖40a示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_map_context”的偽編程碼表示;圖40b示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_get_context”的偽編程碼表示;圖40c示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_map_pk”的偽編程碼表示;圖40d示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_deCOde”的第一部分的偽編程碼表不;圖40e示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_deCOde”的第二部分的偽編程碼表不;圖40f示出了根據(jù)本發(fā)明的實施例的用于解碼一個或多個最低有效位的函數(shù)或算法的偽編程碼表不;圖40g示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_update_context”的偽編程碼表不;圖40h示出了根據(jù)本發(fā)明的實施例的函數(shù)或算法“arith_save_context”的偽編程碼表不;圖41(1)及圖41⑵示出了根據(jù)本發(fā)明的實施例的表“ari_lookup_m[742]”的內(nèi)容的表格表不;圖42(1)、42(2)、42(3)、42(4)示出了根據(jù)本發(fā)明的實施例的表“ari_hash_m[742] ”的內(nèi)容的表格表不;圖43(1)、43(2)、43(3)、43(4)、43(5)、43(6)示出了根據(jù)本發(fā)明的實施例的表“ari_cf_m[96] [17] ”的內(nèi)容的表格表示;圖44示出了根據(jù)本發(fā)明的實施例的表“ari_Cf_r[4] ”的表格表示。
具體實施例方式1.根據(jù)圖7的音頻編碼器圖7示出了根據(jù)本發(fā)明的實施例的音頻編碼器的方框示意圖。音頻編碼器700被配置成接收輸入音頻信息710,及基于此來提供編碼音頻信息712。音頻編碼器包括能量壓縮時域至頻域變換器720,其被配置成基于輸入音頻信息710的時域表示提供頻域音頻表示722,使得頻域音頻表示722包括一組頻譜值。音頻編碼器700還包括算術(shù)編碼器730,其被配置成使用可變長度碼字來編碼(形成該頻域音頻表示722的這組頻譜值中的)頻譜值或其預(yù)處理版本,以獲得編碼音頻信息712 (其例如可包括多個可變長度碼字)。算術(shù)編碼器730被配置成依據(jù)上下文狀態(tài)將頻譜值或頻譜值的最高有效位平面值映射到碼值(即,映射到可變長度碼字)。該算術(shù)編碼器被配置成依據(jù)(當(dāng)前)上下文狀態(tài)選擇描述頻譜值或頻譜值的最高有效位平面值到碼值的映射的映射規(guī)則。算術(shù)編碼器被配置成依據(jù)多個事先編碼的(優(yōu)選但不一定相鄰的)頻譜值來確定當(dāng)前上下文狀態(tài),或描述該當(dāng)前上下文狀態(tài)的數(shù)值當(dāng)前上下文值。為了該目的,算術(shù)編碼器被配置為評估散列表,其表項定義該數(shù)值上下文值中的有效狀態(tài)值及該數(shù)值上下文值的區(qū)間邊界。散列表(在下文中也稱為“ari_hash_m”)的定義優(yōu)選在圖22 (I)、圖22 (2)、圖22(3)及圖22⑷的表格表示中給出。此外,算術(shù)編碼器優(yōu)選地被配置為評估散列表(ari_hash_m),以確定數(shù)值當(dāng)前上下文值是否與由散列表(ari_hash_m)的表項所描述的表上下文值相同和/或確定由散列表(ari_hash_m)的表項所描述的數(shù)值當(dāng)前上下文值所在的區(qū)間,并依據(jù)評估結(jié)果得到描述所選映射規(guī)則的映射規(guī)則索引值(例如,本文用“pki”標(biāo)示)。在某些情況下,映射規(guī)則索引值可以與為有效狀態(tài)值的數(shù)值(當(dāng)前)上下文值個別地相關(guān)聯(lián)。同樣,共用映射規(guī)則索引值可以與位于由區(qū)間邊界(其中該等區(qū)間邊界優(yōu)選由該散列表的表項所定義)所界定的區(qū)間內(nèi)部的不同數(shù)值(當(dāng)前)上下文值相關(guān)聯(lián)。如圖可知,(頻域音頻表示722的)頻譜值或頻譜值的最高有效位平面到(編碼音頻信息712的)碼值的映射可以使用映射規(guī)則742通過頻譜值編碼740執(zhí)行。狀態(tài)追蹤器750可以被配置為追蹤上下文狀態(tài)。狀態(tài)追蹤器750提供描述當(dāng)前上下文狀態(tài)的信息754。描述當(dāng)前上下文狀態(tài)的信息754優(yōu)選可以呈數(shù)值當(dāng)前上下文值的形式。映射規(guī)則選擇器760被配置為選擇描述頻譜值或頻譜值的最高有效位平面到碼值的映射的映射規(guī)則,例如累積頻率表。據(jù)此,映射規(guī)則選擇器760提供映射規(guī)則信息742給頻譜值編碼740。映射規(guī)則信息742可以采用映射規(guī)則索引值形式,或依據(jù)映射規(guī)則索引值而選擇的累積頻率表形式。映射規(guī)則選擇器760包括(或至少評估)散列表752,其表項定義該數(shù)值上下文值中的有效狀態(tài)值及該數(shù)值上下文值的區(qū)間邊界。優(yōu)選地,散列表762(ari_hash_m[742])的表項的定義如圖22(1)至圖22(4)的表格表示中給出。散列表762經(jīng)評估來選擇映射規(guī)貝U,即來提供映射規(guī)則信息742。優(yōu)選地,但不一定地,映射規(guī)則索引值可以與為有效狀態(tài)值的數(shù)值上下文值個別相關(guān)聯(lián),共用映射規(guī)則索引值可以與位于由區(qū)間邊界所界定的區(qū)間內(nèi)部的不同數(shù)值上下文值相關(guān)聯(lián)。綜上所述,音頻編碼器700執(zhí)行由時域至頻域變換器所提供的頻域音頻表示的算術(shù)編碼。該算術(shù)編碼為上下文相關(guān),使得映射規(guī)則(例如,累積頻率表)依據(jù)事先編碼的頻譜值來選擇。據(jù)此,時間上和/或頻率上(或至少在預(yù)定環(huán)境內(nèi)部)彼此相鄰和/或相鄰于當(dāng)前編碼頻譜值(即在當(dāng)前編碼頻譜值的預(yù)定環(huán)境內(nèi)部的頻譜值)的頻譜值在算術(shù)編碼中進(jìn)行考慮以調(diào)整由算術(shù)編碼所評估的概率分布。當(dāng)選擇適當(dāng)映射規(guī)則時,評估由狀態(tài)追蹤器750所提供的數(shù)值當(dāng)前上下文值754。因不同映射規(guī)則的數(shù)目通常顯著小于數(shù)值當(dāng)前上下文值754的可能值數(shù)目,故映射規(guī)則選擇器760分配相同映射規(guī)則(例如,由映射規(guī)則索引值描述的相同映射規(guī)則)給相對較大數(shù)目的不同數(shù)值上下文值。雖言如此,特殊映規(guī)則須相關(guān)聯(lián)通常特定頻譜配置(以特定數(shù)值上下文值表示)來獲得良好編碼效率。已發(fā)現(xiàn)如果單一散列表定義有效狀態(tài)值及數(shù)值(當(dāng)前)上下文值的區(qū)間邊界,則映射規(guī)則依據(jù)數(shù)值當(dāng)前上下文值的選擇可以以特高的計算效率進(jìn)行。此外,已發(fā)現(xiàn)如圖22 (I)、圖22 (2)、圖22 (3)及圖22 (4)中所定義的散列表的使用獲得特高的編碼效率。已發(fā)現(xiàn)此機制結(jié)合所述散列表適應(yīng)映射規(guī)則選擇的要求,原因在于存在單一有效狀態(tài)值(或有效數(shù)值上下文值)嵌于(共用映射規(guī)則相關(guān)聯(lián)的)多個非有效狀態(tài)值的左側(cè)區(qū)間與(共用映射規(guī)則相關(guān)聯(lián)的)多個非有效狀態(tài)值的右側(cè)區(qū)間之間的多種情況。同樣,使用單一散列表的機制,其表項如圖22 (I)、圖22 (2)、圖22 (3)及圖22(4)中所定義并定義有效狀態(tài)值及數(shù)值(當(dāng)前)上下文值的區(qū)間邊界,可有效處理不同情況,其中例如有兩個相鄰的非有效狀態(tài)值區(qū)間(也稱為非有效數(shù)值上下文值),其間不含有效狀態(tài)值。由于表存取數(shù)目維持少數(shù),故可達(dá)成特高計算效率。例如,單一迭代表搜索在大部分實施例中足以找出該數(shù)值當(dāng)前上下文值是否等于任何由所述散列表的表項定義的有效狀態(tài)值,或該數(shù)值當(dāng)前上下文值所在的非有效狀態(tài)值區(qū)間。結(jié)果,既費時又耗能的表存取次數(shù)可維持少次。如此,使用散列表762的映射規(guī)則選擇器760就計算復(fù)雜度而言,可考慮為特別有效的映射規(guī)則選擇器,同時仍允許獲得良好編碼效率(就位率而目)。下面將對有關(guān)從數(shù)值當(dāng)前上下文值754導(dǎo)出映射規(guī)則信息742的進(jìn)一步細(xì)節(jié)進(jìn)行描述。2.根據(jù)圖8的音頻解碼器圖8示出了音頻解碼器800的方框示意圖。音頻解碼器800被配置為接收編碼音頻信息810,并基于此而提供解碼音頻信息812。音頻解碼器800包括算術(shù)解碼器820,其被配置為基于頻譜值的算術(shù)編碼表示821提供多個頻譜值822。音頻解碼器800還包括頻域至?xí)r域變換器830,其被配置為接收解碼頻譜值822并提供時域音頻表示812,其可使用解碼頻譜值822組成解碼音頻信息以獲得解碼音頻信息812。算術(shù)解碼器820包括頻譜值確定器824,其被配置為將頻譜值的算術(shù)編碼表示821的碼值映射到表示解碼頻譜值中的一個或多個或解碼頻譜值中的一個或多個的至少一部分(例如,最高有效位平面)的符號碼。頻譜值確定器824可以被配置為依據(jù)映射規(guī)則執(zhí)行映射,映射規(guī)則通過映射規(guī)則信息828a進(jìn)行描述。映射規(guī)則信息828a例如可以采用映射規(guī)則索引值的形式,或選擇的累積頻率表(例如,依據(jù)映射規(guī)則索引值選擇)的形式。算術(shù)解碼器820被配置為選擇映射規(guī)則(例如,累積頻率表),其依據(jù)上下文狀態(tài)(其可由上下文狀態(tài)信息826a所描述),描述碼值(由頻譜值的算術(shù)編碼表示821所描述)到符號碼(描述一個或多個頻譜值或其最高有效位平面)的映射。算術(shù)解碼器820被配置為依據(jù)多個事先解碼的頻譜值確定當(dāng)前上下文狀態(tài)(由數(shù)值當(dāng)前上下文值所描述)。為了達(dá)成此目的,可使用狀態(tài)追蹤器826,其接收描述事先解碼的頻譜值的信息,并基于此而提供描述當(dāng)前上下文狀態(tài)的數(shù)值當(dāng)前上下文值826a。算術(shù)解碼器也被配置為評估散列表829,其表項定義該數(shù)值上下文值中的有效狀態(tài)值及該數(shù)值上下文值的區(qū)間邊界以選擇映射規(guī)則。優(yōu)選地,散列表829(ari_hash_m[742])的表項的定義如圖22(1)至圖22(4)的表格表示給出。散列表829經(jīng)評估來選擇映射規(guī)則,即來提供映射規(guī)則信息829。優(yōu)選地,映射規(guī)則索引值與為有效狀態(tài)值的數(shù)值上下文值個別地相關(guān)聯(lián),且共用映射規(guī)則索引值與位于由區(qū)間邊界所界限的區(qū)間內(nèi)部的不同數(shù)值上下文值相關(guān)聯(lián)。散列表829的評估例如可使用散列表評估器執(zhí)行,其可為映射規(guī)則選擇器828的一部分。據(jù)此,例如映射規(guī)則索引值的形式的映射規(guī)則索引信息828a,基于描述當(dāng)前上下文狀態(tài)的數(shù)值當(dāng)前上下文值826a而獲得。映射規(guī)則選擇器828例如可依據(jù)散列表829的評估結(jié)果確定映射規(guī)則索引信息828a??晒┻x擇地,散列表829的評估可直接提供映射規(guī)則索引值。有關(guān)音頻信號解碼器800的功能,應(yīng)注意的是,算術(shù)解碼器820被配置成選擇映射規(guī)則(例如,累積頻率表),其一般而言適于欲解碼的頻譜值,原因在于映射規(guī)則依據(jù)當(dāng)前上下文狀態(tài)(例如,通過數(shù)值當(dāng)前上下文值所描述)來選擇,而其又依據(jù)多個事先解碼的頻譜值來確定。據(jù)此,可探討欲解碼相鄰頻譜值間的統(tǒng)計相依性。此外,算術(shù)解碼器820可使用映射規(guī)則選擇器828有效地實施,在計算復(fù)雜度、表大小與編碼效率間有良好折衷。通過評估表項描述有效狀態(tài)值及非有效狀態(tài)值區(qū)間的區(qū)間邊界的(單一)散列表829,單一迭代表搜索可以足以從該數(shù)值當(dāng)前上下文值826a導(dǎo)出映射規(guī)則信息828a。此外,已發(fā)現(xiàn)如圖22 (I)、圖22 (2)、圖22 (3)、圖22 (4)中所定義的散列表的使用獲得特高的編碼效率。據(jù)此,可能將相對較大數(shù)目的不同可能數(shù)值(當(dāng)前)上下文值映射到相對較小數(shù)目的不同映射規(guī)則索引值。如前文說明,且如圖22(1)至圖22(4)的表格表示中所定義,通過使用散列表829可探討下述發(fā)現(xiàn):在許多情況下,單一經(jīng)分離的有效狀態(tài)值(有效上下文值)嵌在非有效狀態(tài)值(非有效上下文值)的左側(cè)區(qū)間與非有效狀態(tài)值(非有效上下文值)的右側(cè)區(qū)間之間,其中,比較左側(cè)區(qū)間的狀態(tài)值(上下文值)與右側(cè)區(qū)間的狀態(tài)值(上下文值)時,不同的映射規(guī)則索引值與不同的有效狀態(tài)值(有效上下文值)相關(guān)聯(lián)。然而,散列表829的使用也良好適合用于其中數(shù)值狀態(tài)值的兩個區(qū)間緊鄰而無有效狀態(tài)值介于其間的情況??偨Y(jié)而言,當(dāng)依據(jù)當(dāng)前上下文狀態(tài)(或依據(jù)描述當(dāng)前上下文狀態(tài)的數(shù)值當(dāng)前上下文值)選擇映射規(guī)則(或當(dāng)提供映射規(guī)則索引值)時,評估散列表829“ari_hash_m[742]”的映射規(guī)則選擇器828獲得特佳效率,原因在于散列機制良好調(diào)整適應(yīng)于音頻解碼器的典型上下文場景。下文將對進(jìn)一步細(xì)節(jié)進(jìn)行描述。3.根據(jù)圖9的上下文值散列機制在下文中,將公開上下文值散列機制,其可在映射規(guī)則選擇器760和/或映射規(guī)則選擇器828中實現(xiàn)。散列表762和/或散列表829,如圖22 (I)至圖22(4)的表格表示中所定義,可用來實現(xiàn)該上下文值散列機制。現(xiàn)在參照圖9,其示出了數(shù)值當(dāng)前上下文值散列場景,將對進(jìn)一步細(xì)節(jié)進(jìn)行描述。在圖9的圖示中,橫坐標(biāo)910描述數(shù)值當(dāng)前上下文值(即數(shù)值上下文值)的值??v坐標(biāo)912描述映射規(guī)則索引值。記號914描述非有效數(shù)值上下文值(描述非有效狀態(tài))的映射規(guī)則索引值。記號916描述用于描述個別(實際)有效狀態(tài)的“個別”(實際)有效數(shù)值上下文值的映射規(guī)則索引值。記號916描述用于描述“不當(dāng)”有效狀態(tài)的“不當(dāng)”數(shù)值上下文值的映射規(guī)則索引值,其中“不當(dāng)”有效狀態(tài)是其相關(guān)聯(lián)的映射規(guī)則索引值系與非有效數(shù)值上下文值的相鄰區(qū)間中的一者的映射規(guī)則索弓I值相同的有效狀態(tài)。如圖可知,散列表表項“ari_hash_m[il]”描述具有數(shù)值上下文值Cl的個別(實際)有效狀態(tài)。如圖可知,映射規(guī)則索引值mrivl與具有數(shù)值上下文值Cl的個別(實際)有效狀態(tài)相對應(yīng)。據(jù)此,數(shù)值上下文值Cl及映射規(guī)則索引值mrivl可由散列表表項“ari_hash_m[il]”所描述。數(shù)值上下文值的區(qū)間932由數(shù)值上下文值cl所界限,其中數(shù)值上下文值Cl并不屬于區(qū)間932,使得區(qū)間932的最大數(shù)值上下文值等于cl-1。映射規(guī)則索引值mriv4(與mrivl不同)與區(qū)間932的數(shù)值上下文值相關(guān)聯(lián)。映射規(guī)則索引值mriv4例如可由額外表“ari_lookup_m” 的表項 “ari_lookup_m[il_ll” 描述。此外,映射規(guī)則索引值mriv2可與位于區(qū)間934內(nèi)的數(shù)值上下文值相關(guān)聯(lián)。區(qū)間934的下邊界由數(shù)值上下文值Cl確定,數(shù)值上下文值Cl是有效數(shù)值上下文值,其中該數(shù)值上下文值Cl不屬于區(qū)間932。據(jù)此,區(qū)間934的最小值等于cl+1 (假設(shè)整數(shù)數(shù)值上下文值)。區(qū)間934的另一邊界由數(shù)值上下文值c2確定,其中該數(shù)值上下文值c2不屬于區(qū)間934,使得區(qū)間934的最大值等于c2-l。數(shù)值上下文值c2為所謂的“不當(dāng)”數(shù)值上下文值,其通過散列表表項“ari_hash_m[i2] ”描述。例如,映射規(guī)則索引值mriv2可與數(shù)值上下文值c2相關(guān)聯(lián),使得與“不當(dāng)”有效數(shù)值上下文值c2相關(guān)聯(lián)的數(shù)值上下文值等于由該數(shù)值上下文值c2所界限的區(qū)間934相關(guān)聯(lián)的映射規(guī)則索引值。此外,數(shù)值上下文值的區(qū)間936也由數(shù)值上下文值c2所界限,其中該數(shù)值上下文值c2不屬于區(qū)間936,使得區(qū)間936的最小值等于c2+l。通常與映射規(guī)則索引值mriv2不同的映射規(guī)則索引值mriv3與區(qū)間936的數(shù)值上下文值相關(guān)聯(lián)。如圖可知,與數(shù)值上下文值區(qū)間932相關(guān)聯(lián)的映射規(guī)則索引值mriv4可通過表“ari_lookup_m”的表項“ari_lookup_m[il_l] ”描述;與數(shù)值上下文值區(qū)間934相關(guān)聯(lián)的映射規(guī)則索引值mriv2可通過表“ari_lookup_m”的表項“ari_lookup_m[il] ”描述;且映射規(guī)則索引值mriv3可通過表“ari_lookup_m”的表項“ari_lookup_m[i2] ”描述。于此處列舉的實例中,散列表索引值i2可比散列表索引值il大I。如圖9可知,映射規(guī)則選擇器760或映射規(guī)則選擇器828可接收數(shù)值當(dāng)前上下文值764、826a,及經(jīng)由評估表“ari_hash_m”的表項而判定數(shù)值當(dāng)前上下文值是否為有效狀態(tài)值(與其是否為“個別”有效狀態(tài)值或“不當(dāng)”有效狀態(tài)值無關(guān)),或該數(shù)值當(dāng)前上下文值是否位于由(“個別”或“不當(dāng)”)有效狀態(tài)cl、c2所界限的區(qū)間932、934、936中的一者內(nèi)部。檢查該數(shù)值當(dāng)前上下文值是否等于數(shù)值上下文值Cl、c2,以及評估該數(shù)值當(dāng)前上下文值系位于區(qū)間932、934、936中的哪一個區(qū)間(在該數(shù)值當(dāng)前上下文值不等于有效狀態(tài)值的情況下),皆可使用單一共用散列表搜索執(zhí)行。此外,散列表“ari_hash_m”的評估可用來獲得散列表索引值(例如i_l、il或 2)。如此,映射規(guī)則選擇器 760、828可以被配置為通過評估單一散列表762、829 (例如,散列表“ari_hash_m”),即可獲得標(biāo)示有效狀態(tài)值(例如,cl或c2)和/或區(qū)間(例如,932、934,936)及該數(shù)值當(dāng)前上下文值是否為有效上下文值(也稱作有效狀態(tài)值)的信息的散列表索引值(例如,il-Uil或i2)。此外,若在散列表762、829(“ari_hash_m”)的評估中發(fā)現(xiàn)數(shù)值當(dāng)前上下文值并非“有效”上下文值(或“有效”狀態(tài)值),則得自散列表(“ari_hash_m”)評估的散列表索引值(例如,il-1、il或i2)可用來獲得與數(shù)值上下文值的區(qū)間932、934、936相關(guān)聯(lián)的映射規(guī)則索引值。例如,散列表索引值(例如,il-1、il或i2)可用來指示額外散列表(例如,“ari_hash_m”)的表項,其描述在該數(shù)值當(dāng)前上下文值所在的區(qū)間932、934、936內(nèi)部與該區(qū)間相關(guān)聯(lián)的映射規(guī)則索引值。有關(guān)進(jìn)一步細(xì)節(jié),可參考后文對算法“arith_get_pk”的詳細(xì)討論(其中對此種算法“arith_get_pk()”有不同選項,其實例示于圖5e及圖5f中)。此外,應(yīng)注意的是,區(qū)間大小可依情況而異。在某些情況下,數(shù)值上下文值的區(qū)間包括單一數(shù)值上下文值。但在許多情況下,一個區(qū)間可包括多個數(shù)值上下文值。4.根據(jù)圖10的音頻編碼器圖10示出了根據(jù)本發(fā)明的實施例的音頻編碼器1000的方框示意圖。根據(jù)圖10的音頻編碼器1000類似于根據(jù)圖7的音頻編碼器700,因而相同信號及裝置在圖7及圖10中用相同的參考標(biāo)號表不。音頻編碼器1000被配置成接收輸入音頻信息710,并基于此來提供編碼音頻信息712。該音頻編碼器1000包括能量壓縮時域至頻域變換器720,其被配置為基于輸入音頻信息710的時域表示提供頻域表示722,使得該頻域音頻表示722包括一組頻譜值。該音頻編碼器1000還包括算術(shù)編碼器1030,其被配置為使用可變長度碼字來編碼(形成頻域表示722的這組頻譜值中的)頻譜值或其預(yù)處理版本,以獲得編碼音頻信息712 (其例如,可包括多個可變長度碼字)。該算術(shù)編碼器1030被配置為依據(jù)上下文狀態(tài)將一個頻譜值,或多個頻譜值,或一個頻譜值或多個頻譜值的最高有效位平面值映射到碼值(即,映射到可變長度碼字)。該算術(shù)編碼器1030被配置為依據(jù)上下文狀態(tài)選擇描述一個頻譜值,或多個頻譜值,或一個頻譜值或多個頻譜值的最高有效位平面值到碼值的映射的映射規(guī)則。該算術(shù)編碼器被配置為依據(jù)多個先前編碼(優(yōu)選但不一定相鄰)頻譜值來確定當(dāng)前上下文狀態(tài)。為了此目的,算術(shù)編碼器被配置為依據(jù)上下文子區(qū)域值來修改描述與一個或多個先前編碼頻譜值相關(guān)聯(lián)的上下文狀態(tài)(例如,選擇相對應(yīng)映射規(guī)則)的數(shù)值先前上下文值的數(shù)字表示,以獲得描述與一或多個欲編碼頻譜值相關(guān)聯(lián)的上下文狀態(tài)(例如,選擇相對應(yīng)映射規(guī)則)的數(shù)值當(dāng)前上下文值的數(shù)字表示。如圖可知,將一個頻譜值,或多個頻譜值,或一個頻譜值或多個頻譜值的最高有效位平面值映射到碼值可使用由映射規(guī)則信息742所描述的映射規(guī)則而通過頻譜值編碼740執(zhí)行。狀態(tài)追蹤器750可以被配置為追蹤上下文狀態(tài)。狀態(tài)追蹤器750可以被配置為依據(jù)上下文子區(qū)域值來修改描述與一個或多個先前編碼頻譜值的編碼相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值先前上下文值的數(shù)字表示,以獲得描述與一個或多個欲編碼頻譜值相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值當(dāng)前上下文值的數(shù)字表示。數(shù)值先前上下文值的數(shù)字表示的修改例如可以通過數(shù)字表示修改器1052進(jìn)行,數(shù)字表示修改器1052接收數(shù)值先前上下文值及一個或多個上下文子區(qū)域值,并提供數(shù)值當(dāng)前上下文值。據(jù)此,狀態(tài)追蹤器1050例如以數(shù)值當(dāng)前上下文值形式提供描述當(dāng)前上下文狀態(tài)的信息754。映射規(guī)則選擇器1060可選擇映射規(guī)則,例如累積頻率表,其描述一個頻譜值,或多個頻譜值,或一個頻譜值或多個頻譜值的最高有效位平面值映射到碼值的映射關(guān)系。據(jù)此,映射規(guī)則選擇器1060提供映射規(guī)則信息742給頻譜值編碼740。在某些實施例中,應(yīng)注意的是,狀態(tài)追蹤器1050可與狀態(tài)追蹤器750或狀態(tài)追蹤器826相同。還應(yīng)注意的是,在某些實施例中,映射規(guī)則選擇器1060可與映射規(guī)則選擇器760或映射規(guī)則選擇器828相同。優(yōu)選地,映射規(guī)則選擇器828可以被配置成使用如圖22(1)至圖22(4)的表格表示中所定義的散列表“ari_hash_m[742]”來選擇映射規(guī)則。例如,映射規(guī)則選擇器可以執(zhí)行上文參照圖7及圖8描述的功能。綜上所述,音頻編碼器1000執(zhí)行由時域至頻域變換器所提供的頻域音頻表示的算術(shù)編碼。算術(shù)編碼為上下文相關(guān),因而映射規(guī)則(例如累積頻率表)依據(jù)事先編碼的頻譜值選擇。據(jù)此,時間上和/或頻率上(或至少在預(yù)定環(huán)境內(nèi)部)彼此相鄰和/或相鄰于當(dāng)前編碼頻譜值(即,在當(dāng)前編碼頻譜值的預(yù)定環(huán)境內(nèi)部的頻譜值)的頻譜值在算術(shù)編碼中進(jìn)行考慮以調(diào)整由算術(shù)編碼所評估的概率分布。當(dāng)確定數(shù)值當(dāng)前上下文值時,描述與一個或多個事先編碼的頻譜值相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值先前上下文值的數(shù)字表示依據(jù)上下文子區(qū)域值來修改,以獲得描述與一個或多個欲編碼頻譜值相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值當(dāng)前上下文值的數(shù)字表示。此辦法使得避免完全重新計算數(shù)值當(dāng)前上下文值,常規(guī)辦法中完全重新計算耗用大量資源。有多種用于修改數(shù)值先前上下文值的數(shù)字表示的可能性存在,包括數(shù)值先前上下文值的數(shù)字表示的重新定標(biāo)的組合,上下文子區(qū)域值或由其導(dǎo)出值加至數(shù)值先前上下文值的數(shù)字表示或加至已處理的數(shù)值先前上下文值的數(shù)字表示,依據(jù)上下文子區(qū)域值而置換部分?jǐn)?shù)值先前上下文值的數(shù)字表示(而非全部數(shù)字表示)等。如此,數(shù)值當(dāng)前上下文值的數(shù)字表示基于數(shù)值先前上下文值的數(shù)字表示,也基于至少一個上下文子區(qū)域值獲得,其中通常執(zhí)行計算組合來組合數(shù)值先前上下文值與上下文子區(qū)域值,例如,加法運算、減法運算、乘法運算、除法運算、布爾(Boolean)與門(AND)運算、布爾或門(OR)運算、布爾與非門(NAND)運算、布爾或非門(NOR)運算、布爾否定運算、補碼計算或移位運算中的兩種或多種運算。據(jù)此,當(dāng)由數(shù)值先前上下文值導(dǎo)出數(shù)值當(dāng)前上下文值時,通常至少部分?jǐn)?shù)值先前上下文值的數(shù)字表示維持不變(除了選擇性地移位至不同位置外)。相反地,數(shù)值先前上下文值的數(shù)字表示的其他部分依一個或多個上下文子區(qū)域值而改變。如此,可以以相對較少的計算量獲得數(shù)值當(dāng)前上下文值,同時避免完全重新計算數(shù)值當(dāng)前上下文值。如此,可獲得有意義的數(shù)值當(dāng)前上下文值,其極其適合映射規(guī)則選擇器1060使用,且其特別適用于結(jié)合如圖22⑴、圖22 (2)、圖22 (3)、圖22 (4)的表格表示中所定義的散列表ari_hash_m使用。結(jié)果,通過維持上下文計算足夠簡單,可獲得有效編碼。5.根據(jù)圖11的音頻解碼器圖11示出了音頻解碼器1100的方框示意圖。音頻解碼器1100類似于根據(jù)圖8的音頻解碼器800,因而相同信號、裝置及功能用相同參考標(biāo)號表示。音頻解碼器1100被配置為接收音頻信息810,并基于此而提供解碼音頻信息812。音頻解碼器1100包括算術(shù)解碼器1120,其被配置為基于頻譜值的算術(shù)編碼表示821提供多個解碼頻譜值822。音頻解碼器1100還包括頻域至?xí)r域變換器830,其被配置為接收解碼頻譜值822并提供時域音頻表示812,其可使用解碼頻譜值822組成解碼音頻信息以獲得解碼音頻信息812。算術(shù)解碼器1120包括頻譜值確定器824,其被配置為將頻譜值的算術(shù)編碼表示821的碼值映射到表示解碼頻譜值中的一個或多個或解碼頻譜值中的一個或多個的至少一部分(例如,最高有效位平面)的符號碼。頻譜值確定器824可以被配置為依據(jù)映射規(guī)則執(zhí)行映射,映射規(guī)則通過映射規(guī)則信息828a描述。映射規(guī)則信息828a例如可包括映射規(guī)則索引值,或可包括所選的一組累積頻率表表項。算術(shù)解碼器1120被配置為依據(jù)上下文狀態(tài)選擇映射規(guī)則(例如,累積頻率表),該映射規(guī)則描述碼值(由頻譜值的算術(shù)編碼表示821所描述)到符號碼(描述一個或多個頻譜值)的映射,該上下文狀態(tài)可由上下文狀態(tài)信息1126a描述。上下文狀態(tài)信息1126a可采用數(shù)值當(dāng)前上下文值形式。算術(shù)解碼器1120被配置為依據(jù)多個事先解碼的頻譜值822來確定當(dāng)前上下文狀態(tài)。為了此目的,可使用狀態(tài)追蹤器1126,其接收描述事先解碼的頻譜值的信息。算術(shù)解碼器被配置為依據(jù)上下文子區(qū)域值修改描述與一個或多個事先解碼的頻譜值相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值先前上下文值的數(shù)字表示,以獲得描述與一個或多個欲解碼頻譜值相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值當(dāng)前上下文值的數(shù)字表示。數(shù)值先前上下文值的數(shù)字表示的修改如可通過數(shù)字表示修改器1127執(zhí)行,該修改器為狀態(tài)追蹤器1126的一部分。據(jù)此,獲得當(dāng)前上下文狀態(tài)信息1126a例如呈數(shù)值當(dāng)前上下文值形式。映射規(guī)則的選擇可通過映射規(guī)則選擇器1128執(zhí)行,該選擇器由當(dāng)前上下文狀態(tài)信息1126a導(dǎo)出映射規(guī)則信息828a,并提供映射規(guī)則信息828a給頻譜值確定器824。優(yōu)選地,映射規(guī)則選擇器1128可以被配置為使用如圖22(1)至圖22(4)的表格表示中所定義的散列表“ari_hash_m[742]”來選擇映射規(guī)則。例如,映射規(guī)則選擇器可以執(zhí)行上文參照圖7及圖8描述的功能。有關(guān)音頻信號解碼器1100的功能,應(yīng)注意的是,算術(shù)解碼器1120被配置為選擇映射規(guī)則(例如,累積頻率表),其一般而言良好適應(yīng)于欲解碼的頻譜值,原因在于映射規(guī)則依據(jù)當(dāng)前上下文狀態(tài)而選擇,而當(dāng)前上下文狀態(tài)依據(jù)多個事先解碼的頻譜值確定。據(jù)此,可探討待解碼的相鄰頻譜值間的統(tǒng)計相依性。
此外,通過依據(jù)上下文子區(qū)域值,修改描述與一個或多個事先解碼的頻譜值相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值先前上下文值的數(shù)字表示,以獲得描述與待解碼的一個或多個頻譜值的解碼相關(guān)聯(lián)的上下文狀態(tài)的數(shù)值當(dāng)前上下文值的數(shù)字表示,可以以相對較少的計算量獲得有關(guān)當(dāng)前上下文狀態(tài)的有意義信息,其極為適合用于映射到映射規(guī)則索引值,并尤其適用于與圖22 (I)、圖22 (2)、圖22 (3)、圖22(4)的表格表示中所定義的散列表ari_hash_m聯(lián)合使用。通過維持至少部分?jǐn)?shù)值先前上下文值的數(shù)字表示(可能呈位移位版本或定標(biāo)(scaled,縮放)版本),同時依據(jù)上下文子區(qū)域值更新數(shù)值先前上下文值的數(shù)字表示的另一部分,上下文子區(qū)域值尚未在數(shù)值先前上下文值中進(jìn)行考慮但應(yīng)當(dāng)在數(shù)值當(dāng)前上下文值中進(jìn)行考慮,因此,可維持導(dǎo)出數(shù)值當(dāng)前上下文值的計算次數(shù)相當(dāng)少。同樣,可能探討下述事實:用于解碼相鄰頻譜值的上下文通常是相似或相關(guān)的。例如,用于解碼第一頻譜值(或第一多個頻譜值)的上下文系取決于第一組事先解碼的頻譜值。用于解碼其系相鄰于第一頻譜值(或第一組頻譜值)的第二頻譜值(或第二多個頻譜值)的上下文取決于第二組事先解碼的頻譜值。因假設(shè)第一頻譜值與第二頻譜值相鄰(例如,就相關(guān)聯(lián)的頻率而言),確定用于第一頻譜值編碼的上下文的第一組頻譜值可與用于確定第二頻譜值解碼的上下文的第二組頻譜值包括若干重疊。據(jù)此,容易理解用于第二頻譜值解碼的上下文狀態(tài)包括與用于第一頻譜值解碼的上下文狀態(tài)的若干相關(guān)性。上下文導(dǎo)出的,即數(shù)值當(dāng)前上下文值的導(dǎo)出的計算效率可通過探討此等相關(guān)性而達(dá)成。已發(fā)現(xiàn),通過只修改取決于在導(dǎo)算數(shù)值先前上下文值時未被考慮的上下文子區(qū)域值的數(shù)值先前上下文值的部分,并通過從數(shù)值先前上下文值來導(dǎo)算數(shù)值當(dāng)前上下文值,可有效利用用于相鄰頻譜值解碼的上下文狀態(tài)間(例如,由數(shù)值先前上下文值所描述的上下文狀態(tài)與由數(shù)值當(dāng)前上下文值所描述的上下文狀態(tài)間)的相關(guān)性。總結(jié)而言,本文所述構(gòu)想允許導(dǎo)出數(shù)值當(dāng)前上下文值時特佳的計算效率。下文將對進(jìn)一步細(xì)節(jié)進(jìn)行描述。6.根據(jù)圖12的音頻編碼器圖12示出了根據(jù)本發(fā)明的實施例的音頻編碼器的方框示意圖。根據(jù)圖12的音頻編碼器1200類似與根據(jù)圖7的音頻編碼器700,因而相同裝置、信號及功能用相同參考標(biāo)號表不。音頻編碼器1200被配置為接收輸入音頻信息710,并基于此而提供編碼音頻信息712。音頻編碼器1200包括能量壓縮時域至頻域變換器720,其被配置為基于輸入音頻信息710的時域表示而提供頻域音頻表示722,使得頻域音頻表示722包括一組頻譜值。音頻編碼器1200還包括算術(shù)編碼器1230,其被配置為使用可變長度碼字來編碼一個頻譜值(構(gòu)成該頻域音頻表示722的這組頻譜值以外的頻譜值)或多個頻譜值或其預(yù)處理版本,以獲得編碼音頻信息712 (其例如可包括多個可變長度碼字)。算術(shù)編碼器1230被配置為依據(jù)上下文狀態(tài),將一個頻譜值或多個頻譜值、或一個頻譜值或多個頻譜值的最高有效位平面值映射到碼值(即,映射到可變長度碼字)。該算術(shù)編碼器1230被配置為依據(jù)上下文狀態(tài),選擇描述一個頻譜值或多個頻譜值、或一個頻譜值或多個頻譜值的最高有效位平面值映射到碼值的映射規(guī)則。算術(shù)編碼器被配置為依據(jù)多個事先編碼的(優(yōu)選但不一定相鄰的)頻譜值來確定當(dāng)前上下文狀態(tài)。為了此目的,算術(shù)編碼器被配置為基于事先編碼的頻譜值來獲得多個上下文子區(qū)域值,存儲所述上下文子區(qū)域值,并依據(jù)所存儲的上下文子區(qū)域值來導(dǎo)出與一個或多個待編碼的頻譜值相關(guān)聯(lián)的數(shù)值當(dāng)前上下文值。此外,該算術(shù)編碼器被配置為計算由多個事先編碼的頻譜值所形成的向量的范數(shù),以獲得與多個事先編碼的頻譜值相關(guān)聯(lián)的共用上下文子區(qū)域值。如圖可知,一個頻譜值或多個頻譜值、或一個頻譜值或多個頻譜值的最高有效位平面值到碼值的映射可通過頻譜值編碼740使用由映射規(guī)則信息742所描述的映射規(guī)則執(zhí)行。狀態(tài)追蹤器1250可以被配置為追蹤上下文狀態(tài),且可包括上下文子區(qū)域值計算器1252來計算由多個事先編碼的頻譜值所形成的向量的范數(shù),以獲得與多個事先編碼的頻譜值相關(guān)聯(lián)的共用上下文子區(qū)域值。優(yōu)選地,狀態(tài)追蹤器1250還被配置為依據(jù)由上下文子區(qū)域值計算器1252所執(zhí)行的上下文子區(qū)域值計算結(jié)果來確定當(dāng)前上下文狀態(tài)。據(jù)此,狀態(tài)追蹤器1250提供描述當(dāng)前上下文狀態(tài)的信息1254。映射規(guī)則選擇器1260可選擇描述一個頻譜值或多個頻譜值、或一個頻譜值或多個頻譜值的最高有效位平面值映射到碼值的映射規(guī)則,例如,累積頻率表。據(jù)此,映射規(guī)則選擇器1260提供映射規(guī)則信息742給頻譜編碼740。優(yōu)選地,映射規(guī)則選擇器1260可以被配置為使用如圖22 (I)至圖22(4)的表格表示中所定義的散列表“ari_hash_m[742] ”來選擇映射規(guī)則。例如,映射規(guī)則選擇器可以執(zhí)行上文參照圖7及圖8描述的功能。綜上所述,音頻編碼器1200執(zhí)行由時域至頻域變換器720所提供的頻域音頻表示的算術(shù)編碼。該算術(shù)編碼為上下文相關(guān),使得映射規(guī)則(例如,累積頻率表)依據(jù)事先編碼的頻譜值而選擇。據(jù)此,時間上和/或頻率上(或至少在預(yù)定環(huán)境內(nèi)部)彼此相鄰和/或相鄰于當(dāng)前編碼頻譜值(即,在當(dāng)前編碼頻譜值的預(yù)定環(huán)境內(nèi)部的頻譜值)的頻譜值在算術(shù)編碼中進(jìn)行考慮以調(diào)整由算術(shù)編碼器所評估的概率分布。為了提供數(shù)值當(dāng)前上下文值,基于由多個事先編碼的頻譜值所形成的向量的范數(shù)的計算獲得與多個事先編碼的頻譜值相關(guān)聯(lián)的上下文子區(qū)域值。數(shù)值當(dāng)前上下文值的確定結(jié)果應(yīng)用于當(dāng)前上下文狀態(tài)的選擇,即應(yīng)用于映射規(guī)則的選擇。通過計算由多個事先編碼的頻譜值所形成的向量的范數(shù),可獲得描述一個或多個待編碼頻譜值的上下文的一部分的有意義信息,其中事先編碼的頻譜值的向量的范數(shù)通??捎孟鄬ι贁?shù)的位表示。如此,需要存儲供后來用于數(shù)值當(dāng)前上下文值的導(dǎo)出的上下文信息量可通過應(yīng)用前文討論的上下文子區(qū)域值計算辦法而維持足夠少。已發(fā)現(xiàn)事先編碼的頻譜值的向量的范數(shù)通常包括有關(guān)上下文狀態(tài)的最有效信息。相反地,已發(fā)現(xiàn)事先編碼的頻譜值符號通常包括對上下文狀態(tài)的次要影響,因而合理地忽略事先編碼的頻譜值符號來減少存儲供后來使用的信息量。同樣,已發(fā)現(xiàn)事先編碼的頻譜值的向量的范數(shù)計算是用于導(dǎo)出上下文子區(qū)域值的合理辦法,原因在于通常借范數(shù)計算所獲得的平均效果對有關(guān)上下文狀態(tài)的最重要信息實質(zhì)上沒有影響。概括而言,通過上下文子區(qū)域值計算器1252執(zhí)行的上下文子區(qū)域值計算允許提供壓縮上下文子區(qū)域值信息供存儲以備以后再度使用,其中盡管信息量減少,仍然保有有關(guān)上下文狀態(tài)的最相關(guān)信息。此外,已發(fā)現(xiàn)如上文討論的數(shù)值當(dāng)前上下文值極其適用于使用如圖22(1)至圖22(4)的表格表示中所定義的散列表“ari_hash m[742] ”來選擇映射規(guī)則。例如,映射規(guī)則選擇器可以執(zhí)行上文參照圖7及圖8描述的功能。據(jù)此,可實現(xiàn)輸入音頻信息710的有效編碼,同時保持通過算術(shù)編碼器1230存儲的數(shù)據(jù)量及計算量足夠小。
7.根據(jù)圖13的音頻解碼器圖13示出音頻解碼器1300的方框示意圖。音頻解碼器1300類似于根據(jù)圖8的音頻解碼器800及根據(jù)圖11的音頻解碼器1100,因而相同裝置、信號及功能用相同參考標(biāo)號表不。音頻解碼器1300被配置為接收音頻信息810,并基于此而提供解碼音頻信息812。音頻解碼器1300包括算術(shù)解碼器1320,其被配置為基于頻譜值的算術(shù)編碼表示821提供多個解碼頻譜值822。音頻解碼器1300還包括頻域至?xí)r域變換器830,其被配置為接收解碼頻譜值822,并提供時域音頻表示812,其可使用解碼頻譜值822構(gòu)成解碼音頻信息,以獲得解碼音頻信息812。算術(shù)解碼器1320包括頻譜值確定器824,其被配置為將頻譜值的算術(shù)編碼表示821的碼值映射到表示解碼頻譜值中的一個或多個或解碼頻譜值中的一個或多個的至少一部分(例如,最高有效位平面)的符號碼。頻譜值確定器824可以被配置為依據(jù)映射規(guī)則執(zhí)行映射,映射規(guī)則通過映射規(guī)則信息828a描述。映射規(guī)則信息828a例如可包括映射規(guī)則索引值,或可包括所選的一組累積頻率表表項。算術(shù)解碼器1320被配置為依據(jù)上下文狀態(tài)(其可由上下文狀態(tài)信息1326a描述)選擇描述碼值(由頻譜值的算術(shù)編碼表示821所描述)到符號碼(描述一個或多個頻譜值)的映射的映射規(guī)則(例如,累積頻率表)。優(yōu)選地,算術(shù)解碼器1320可以被配置為使用如圖22⑴至圖22(4)的表格表示中所定義的散列表“ari_hash_m[742]”來選擇映射規(guī)則。例如,算術(shù)解碼器1320可以執(zhí)行上文參照圖7及圖8描述的功能。算術(shù)解碼器1320被配置為依據(jù)多個事先解碼的頻譜值822來確定當(dāng)前上下文狀態(tài)。為了此目的,可使用狀態(tài)追蹤器1326,其接收描述事先解碼的頻譜值的信息。算術(shù)解碼器也被配置為基于事先解碼的頻譜值而獲得多個上下文子區(qū)域值,并存儲所述上下文子區(qū)域值。該算術(shù)解碼器被配置為依據(jù)所存儲的上下文子區(qū)域值,而導(dǎo)出與一或多個待編碼頻譜值相關(guān)聯(lián)的數(shù)值當(dāng)前上下文值。算術(shù)解碼器1320被配置為計算多個事先解碼的頻譜值形成的向量的范數(shù),以獲得與多個事先編碼的頻譜值相關(guān)聯(lián)的共用上下文子區(qū)域值。例如,可通過作為狀態(tài)追蹤器1326的一部分的上下文子區(qū)域值計算器1327來執(zhí)行由多個事先編碼的頻譜值形成的向量的范數(shù)的計算,以獲得與多個事先解碼的頻譜值相關(guān)聯(lián)的共用上下文子區(qū)域值。據(jù)此,當(dāng)前上下文狀態(tài)信息1326a基于上下文子區(qū)域值獲得,其中,優(yōu)選地,該狀態(tài)追蹤器1326依據(jù)所存儲的上下文子區(qū)域值來提供與一個或多個待編碼頻譜值相關(guān)聯(lián)的數(shù)值當(dāng)前上下文值。映射規(guī)則的選擇可通過映射規(guī)則選擇器1128執(zhí)行,該選擇器由當(dāng)前上下文狀態(tài)信息1126a導(dǎo)出映射規(guī)則信息828a,并提供映射規(guī)則信息828a給頻譜值確定器824。有關(guān)音頻信號解碼器1300的功能,應(yīng)注意的是,算術(shù)解碼器1320被配置為選擇映射規(guī)則(例如,累積頻率表),其一般而言良好適應(yīng)于待解碼的頻譜值,原因在于映射規(guī)則依據(jù)當(dāng)前上下文狀態(tài)而選擇,而當(dāng)前上下文狀態(tài)又依據(jù)多個事先解碼的頻譜值確定。據(jù)此,可探討待解碼的相鄰頻譜值間的統(tǒng)計相依性。然而,已發(fā)現(xiàn)就內(nèi)存的使用而言,存儲基于由多個事先解碼的頻譜值所形成的向量的范數(shù)的計算的上下文子區(qū)域值,供以后確定數(shù)值上下文值時使用是有效的。已發(fā)現(xiàn)這種上下文子區(qū)域值仍然包括最相關(guān)的上下文信息。據(jù)此,狀態(tài)追蹤器1326使用的構(gòu)想構(gòu)成編碼效率、計算效率與存儲效率間的良好折衷。 下文將對進(jìn)一步細(xì)節(jié)進(jìn)行描述。
_5] 8.根據(jù)圖1的音頻編碼器在下文中,將對根據(jù)本發(fā)明的實施例的音頻編碼器進(jìn)行描述。圖1示出了此音頻編碼器100的方框示意圖。音頻編碼器100被配置為接收輸入音頻信息110,并基于此而提供位流112,其組成編碼音頻信息。音頻編碼器100選擇性地包括預(yù)處理器120,其被配置成接收輸入音頻信息110,并基于此而提供經(jīng)預(yù)處理的輸入音頻信息110a。該音頻編碼器100還包括能量壓縮時域至頻域信號變換器130,其也被稱為信號變換器。信號變換器130被配置為接收輸入音頻信息IlOUlOa并基于此而提供頻域音頻信息132,其優(yōu)選地采用一組頻譜值的形式。例如,信號變換器130可以被配置為接收輸入音頻信息IlOUlOa的一幀(例如,時域樣本的塊),并提供表示各頻幀的音頻內(nèi)容的一組頻譜值。此外,信號變換器130可以被配置為接收多個接續(xù)重疊的或非重疊的輸入音頻信息IlOUlOa的音頻幀,并基于此而提供時頻域音頻表示,其包括一系列接續(xù)組的頻譜值,每組頻譜值與各個幀相關(guān)聯(lián)。能量壓縮時域至頻域信號變換器130可包括能量壓縮濾波器組,其提供與不同的重疊的或非重疊的頻率范圍相關(guān)聯(lián)的頻譜值。例如,信號變換器130可包括開窗MDCT (修正離散余弦變換)變換器130a,其被配置為使用變換窗口來開窗該輸入音頻信息110、I IOa (或其幀),及對該已開窗輸入音頻信息110、I IOa (或其開窗幀)執(zhí)行修正離散余弦變換(MDCT)。據(jù)此,頻域音頻表示132可包括一組例如與輸入音頻信息的幀相關(guān)聯(lián)的MDCT系數(shù)的形式的1024頻譜值??蛇x地,音頻編碼器100可進(jìn)一步包括頻譜后處理器140,其被配置為接收頻域音頻表示132,并基于此而提供經(jīng)后處理的頻域音頻表示142。頻譜后處理器140例如可以被配置為執(zhí)行時間噪聲整形和/或長期預(yù)測和/或業(yè)界已知的任何其他頻譜后處理。音頻編碼器進(jìn)一步選擇性地包括定標(biāo)器/量化器150,其被配置為接收頻域音頻表示132或其后處理版本142,并提供已定標(biāo)且已量化的頻域音頻表示152??蛇x地,音頻編碼器100進(jìn)一步包括心理聲學(xué)模型處理器160,其被配置為接收輸入音頻信息110 (或其后處理版本110a),并基于此而提供可選擇的控制信息,其可用于能量壓縮時域至頻域信號變換器130的控制,用于可選擇的頻譜后處理器140的控制,和/或用于可選擇的定標(biāo)器/量化器150的控制。例如,心理聲學(xué)模型處理器160可以被配置為分析輸入音頻信息,判定輸入音頻信息IlOUlOa的哪些組分對音頻內(nèi)容的人類感知特別重要,及輸入音頻信息IlOUlOa的哪些組分對音頻內(nèi)容感知不太重要。據(jù)此,心理聲學(xué)模型處理器160可提供控制信息,其由音頻編碼器100用來調(diào)整定標(biāo)器/量化器150對頻域音頻表示132、142的定標(biāo),和/或通過定標(biāo)器/量化器150施加的量化分辨率。結(jié)果,感知上重要的定標(biāo)因子頻帶(即對音頻內(nèi)容的人類感知特別重要的相鄰頻譜值組群)以大型定標(biāo)因子定標(biāo)且以較高分辨率量化,而感知上不太重要的定標(biāo)因子頻帶(即,相鄰頻譜值組群)以小型定標(biāo)因子定標(biāo)且以較低的量化分辨率量化。據(jù)此,感知上較重要的頻率的定標(biāo)頻譜值通常明顯大于感知上不太重要的頻率的頻譜值。音頻編碼器還包括算術(shù)編碼器170,其被配置為接收頻域音頻表示132的已定標(biāo)且已量化版本152 (或者頻域音頻表示132的后處理版本142,或甚至頻域音頻表示132本身),并基于此而提供算術(shù)碼字信息172a,使得算術(shù)碼字信息表示頻域音頻表示152。音頻編碼器100還包括位流有效載荷格式化器190,其被配置為接收算術(shù)碼字信息172a。位流有效載荷格式化器190也通常被配置為接收額外信息,例如描述哪些定標(biāo)因子已經(jīng)由定標(biāo)器/量化器150應(yīng)用的定標(biāo)因子信息。另外,位流有效載荷格式化器190可以被配置為接收其他控制信息。位流有效載荷格式化器190被配置為依據(jù)期望的位流語法來組裝位流,而基于所接收的信息來提供位流112,下文將對這種情況進(jìn)行描述。在下文中將描述有關(guān)算術(shù)編碼器170的細(xì)節(jié)。算術(shù)編碼器170被配置為接收多個頻域音頻表示132的已經(jīng)后處理且經(jīng)定標(biāo)與量化的頻譜值。算術(shù)編碼器包括最高有效位平面抽取器174,其被配置為從一個頻譜值,或甚至從兩個頻譜值中抽取最高有效位平面m。此處應(yīng)注意的是,最高有效位平面可包括一個或甚至多個位(例如,2或3位),其為該頻譜值的最高有效位。如此,最高有效位平面抽取器174提供頻譜值的最高有效位平面值176。然而,可供選擇地,最高有效位平面抽取器174可提供組合多個頻譜值(例如,頻譜值a及b)的最高有效位平面的組合最高有效位平面值m。頻譜值a的最高有效位平面用m表示。另外,多個頻譜值a、b的組合最高有效位平面值用m表示。算術(shù)編碼器170還包括第一碼字確定器180,其被配置為確定表示最高有效位平面值m的算術(shù)碼字acod_m[pki] [m]??蛇x擇地,碼字確定器180也可提供一個或多個脫序碼字(此處也用“ARITH_ESCAPE”表示),其指示例如有多少較低有效位平面可資利用(且,因此,指示最高有效位平面的數(shù)值權(quán)值)。第一碼字確定器180可以被配置為使用具有(或以下述指稱的)累積頻率表索引Pki的經(jīng)擇定的累積頻率表來提供與最高有效位平面值m相關(guān)聯(lián)的碼字。為了判定須選用哪一個累積頻率表,算術(shù)編碼器優(yōu)選包括狀態(tài)追蹤器182,其被配置為例如通過觀察哪些頻譜值先前已經(jīng)編碼來追蹤算術(shù)編碼器的狀態(tài)。結(jié)果狀態(tài)追蹤器182提供狀態(tài)信息184,例如用“s”或“t”或“c”表示的狀態(tài)值。算術(shù)編碼器170還包括累積頻率表選擇器186,其被配置為接收狀態(tài)信息184,并提供描述所選累積頻率表的信息188給碼字確定器180。例如,累積頻率表選擇器186可提供累積頻率表索引“pki ”,其描述選擇一組64個累積頻率表中哪個累積頻率表來供碼字確定器所使用。另外,累積頻率表選擇器186可提供整個所選的累積頻率表或子表給碼字確定器。如此,碼字確定器180可使用所選的累積頻率表或子表來提供最高有效位平面值m的碼字acod_m[pki] [m],使得編碼該最高有效位平面值m的實際碼字acod_m[pki] [m]與m值及累積頻率表索引pki具有相依性,并從而與當(dāng)前狀態(tài)信息184具有相依性。下文將對有關(guān)編碼程序及所得碼字格式的進(jìn)一步細(xì)節(jié)進(jìn)行描述。然而,應(yīng)注意的是,在某些實施例中,狀態(tài)追蹤器182可與狀態(tài)追蹤器750、狀態(tài)追蹤器1050或狀態(tài)追蹤器1250相同或具有相同功能。還應(yīng)注意的是,在某些實施例中,累積頻率表選擇器186可與映射規(guī)則選擇器760、映射規(guī)則選擇器1060或映射規(guī)則選擇器1260相同或具有相同功能。此外,在某些實施例中,第一碼字確定器180可與頻譜值編碼740相同或具有相同功能。算術(shù)編碼器170進(jìn)一步包括較低有效位平面抽取器189a,其被配置w為若待編碼頻譜值中的一個或多個超過只使用最高有效位平面的可編碼值范圍,則從已定標(biāo)且已量化頻域音頻表示152中,抽取一個或多個較低有效位平面。根據(jù)需要,較低有效位平面可包括一個或多個位。據(jù)此,較低有效位平面抽取器189a提供較低有效位平面信息18%。算術(shù)編碼器170還包括第二碼字確定器189c,其被配置為接收較低有效位平面信息189d,并基于此而提供表示O、I或多個較低有效位平面內(nèi)容的O、I或多個碼字“acod_r”。第二碼字確定器189c可被配置為應(yīng)用算術(shù)編碼算法或任何其他編碼算法,以從較低有效位平面信息189b導(dǎo)出較低有效位平面碼字“acod_r”。此處應(yīng)注意的是,較低有效位平面的數(shù)目依據(jù)已定標(biāo)且已量化頻譜值152的值而變化,使得若待編碼的已定標(biāo)且已量化頻譜值相對較小,則完全沒有較低有效位平面;使得若當(dāng)前待編碼的已定標(biāo)且已量化頻譜值屬于中等范圍,則可有一個較低有效位平面;以及使得若待編碼的已定標(biāo)且已量化頻譜值具有相對較大值,則可有多于一個的較低有效位平面。綜上所述,算術(shù)編碼器170被配置為使用階層式編碼程序來編碼通過信息152描述的已定標(biāo)且已量化頻譜值。一個或多個頻譜值的最高有效位平面(例如,包括每一頻譜值1、2或3位)經(jīng)編碼來獲得該最高有效位平面值m的算術(shù)碼字“aCod_m[pki][m]”。一個或多個頻譜值的較低有效位平面(各個較低有效位平面例如包括1、2或3位)經(jīng)編碼來獲得一個或多個碼字“acod_r”。當(dāng)編碼最高有效位平面時,最高有效位平面值m被映射到碼字aCod_m[pki] [m]。為了此目的,64個不同累積頻率表可用于依據(jù)算術(shù)編碼器170的狀態(tài),即依據(jù)事先編碼的頻譜值來編碼值m。如此,獲得碼字“aCod_m[pki][m]”。另外,若存在有一個或多個較低有效位平面,則提供一個或多個碼字“acod_r”且包括在位流中。重置描述音頻編碼器100可選擇性地被配置為判定通過重置上下文(例如通過將狀態(tài)索引設(shè)定為默認(rèn)值)是否可獲得位率的改良。據(jù)此,音頻編碼器100可以被配置為提供重置信息(例如,命名為“arith_reset_flag”),其指示用于算術(shù)編碼的上下文是否重置,且還指示在對應(yīng)解碼器中用于算術(shù)解碼的上下文是否應(yīng)重置。下文將對有關(guān)位流格式及應(yīng)用的累積頻率表的細(xì)節(jié)進(jìn)行討論。9.根據(jù)圖2的音頻解碼器在下文中將對根據(jù)本發(fā)明的實施例的音頻解碼器進(jìn)行描述。圖2示出了此音頻解碼器200的方框示意圖。音頻解碼器200被配置為接收位流210,位流210表示編碼音頻信息,且其可與由音頻編碼器100所提供的位流112相同。音頻解碼器200基于位流210提供解碼音頻信息212。音頻解碼器200包括可選位流有效載荷解格式化器220,其被配置成接收位流210,并從該位流210抽取編碼頻域音頻表示222。例如,位流有效載荷解格式化器220可以被配置為從位流210抽取算術(shù)編碼頻譜數(shù)據(jù),例如表示頻域音頻表示的一個頻譜值a或多個頻譜值a、b的最高有效位平面值m的算術(shù)碼字“acod_m[pki] [m] ”,及表示頻域音頻表示的一個頻譜值a或多個頻譜值a、b的較低有效位平面內(nèi)容的碼字“acod_r”。如此,編碼頻域音頻表示222組成(或包括)頻譜值的算術(shù)編碼表示。位流有效載荷解格式化器220進(jìn)一步被配置為從圖2中未顯示的位流抽取額外控制信息。此外,位流有效載荷解格式化器選擇性地被配置成從位流210抽取狀態(tài)重置信息224,其也標(biāo)示為算術(shù)重置標(biāo)記或“arith_reset_flag,,。
音頻解碼器200包括算術(shù)解碼器230,其也標(biāo)示為“頻譜無噪聲解碼器”。算術(shù)解碼器230被配置為接收編碼頻域音頻表示220及可選地狀態(tài)重置信息224。算術(shù)解碼器230也被配置為提供解碼頻域音頻表示232,其可包括頻譜值的解碼表示。例如,解碼頻域音頻表示232可包括頻譜值的解碼表示,其由編碼頻域音頻表示220描述。音頻解碼器200還包括可選反量化器/重定標(biāo)器240,其被配置為接收解碼頻域音頻表示232,并基于此而提供已反量化且已重定標(biāo)的頻域音頻表示242。音頻解碼器200進(jìn)一步包括可選頻譜預(yù)處理器250,其被配置為接收已反量化且已重定標(biāo)的頻域音頻表示242,并基于此而提供該已反量化且已重定標(biāo)的頻域音頻表示242的預(yù)處理版本252。音頻解碼器200還包括頻域至?xí)r域信號變換器260,其也標(biāo)示為“信號變換器”。信號變換器260被配置為接收該已反量化且已重定標(biāo)的頻域音頻表示242 (或另外該已反量化且已重定標(biāo)的頻域音頻表示242或解碼頻域音頻表示232)的預(yù)處理版本252,并基于此而提供該音頻信息的時域表示262。頻域至?xí)r域信號變換器260例如包括用于執(zhí)行修正逆離散余弦反變換(MDCT)及適當(dāng)開窗(以及其他附屬功能例如重疊與相加)的變換器。音頻解碼器200可進(jìn)一步包可選時域后處理器270,其被配置為接收該音頻信息的時域表示262,并使用時域后處理來獲得解碼音頻信息2 12。然而,若省略后處理,則時域表示262可與解碼音頻信息212完全相同。此處應(yīng)注意的是,反量化器/重定標(biāo)器240、頻譜預(yù)處理器250、頻域至?xí)r域信號變換器260及時域后處理器270可依據(jù)控制信息而控制,通過位流有效載荷解格式化器220從位流210中抽取該控制信息??偨Y(jié)音頻解碼器200的整體功能,解碼頻域音頻表示232例如與編碼音頻信息的音頻幀相關(guān)聯(lián)的一組頻譜值,可使用算術(shù)解碼器230而基于編碼頻域音頻表示222獲得。隨后,例如這組1024個頻譜值被反量化、重定標(biāo)并預(yù)處理,這些頻譜值可以是MDCT系數(shù)。據(jù)此,獲得經(jīng)反量化、重定標(biāo)及經(jīng)頻譜預(yù)處理的這組頻譜值(例如,1024個MDCT系數(shù))。隨后,音頻巾貞的時域表示由經(jīng)反量化、重定標(biāo)及經(jīng)頻譜預(yù)處理的這組頻譜值(例如,MDCT系數(shù))中導(dǎo)出。據(jù)此,獲得音頻幀的時域表示。給定音頻幀的時域表示可與先前音頻幀和/或后續(xù)音頻幀的時域表示組合。例如,可執(zhí)行后續(xù)音頻幀的時域表示間的重疊與相加,以使相鄰音頻幀的時域表示間的變遷平滑化,并因而獲得混迭消除。有關(guān)基于解碼頻域音頻表示232而重新組成解碼音頻信息212的細(xì)節(jié),例如可參考國際標(biāo)準(zhǔn)IS0/IEC 14496-3第3部分,第4子部分,其中給出了詳細(xì)討論。但也可使用其他更詳盡的重疊及混迭消除方案。在下文中將對有關(guān)算術(shù)解碼器230的若干細(xì)節(jié)進(jìn)行描述。算術(shù)解碼器230包括最高有效位平面確定器284,其被配置為接收描述最高有效位平面值m的算術(shù)碼字acod_m[pki] [m]。最高有效位平面確定器284可以被配置為使用包括64個累積頻率表的一組中的累積頻率表從算術(shù)碼字“aCod_m[pki] [m] ”導(dǎo)出最高有效位平面值m。最高有效位平面確定器284被配置為基于碼字acod_m導(dǎo)出多個頻譜值中的一個的最高有效位平面值286。算術(shù)解碼器230進(jìn)一步包括較低有效位平面確定器288,其被配置為接收表示頻譜值的一個或多個較低有效位平面的一個或多個碼字“acod_r”。據(jù)此,較低有效位平面確定器288被配置為提供一個或多個較低有效位平面的解碼值290。音頻解碼器200還包括位平面組合器292,其被配置為接收一個或多個頻譜值的最高有效位平面的解碼值286,及若對當(dāng)前頻譜值可得較低有效位平面,則也可接收頻譜值的一個或多個較低有效位平面的解碼值290。據(jù)此,位平面組合器292提供解碼頻譜值,其為解碼頻域音頻表示232的一部分。當(dāng)然,算術(shù)解碼器230通常被配置為提供多個頻譜值,以獲得與該音頻內(nèi)容的當(dāng)前幀相關(guān)聯(lián)的一整組解碼頻譜值。算術(shù)解碼器230進(jìn)一步包括累積頻率表選擇器296,其被配置為依據(jù)描述算術(shù)解碼器狀態(tài)的狀態(tài)索引298選擇64個累積頻率表ari_cf_m[64] [17](每個表ari_cf_m[pki]具有17個表項,其中0 < pki < 63)中的一者。為了選擇累積頻率表中的一個,累積頻率表選擇器優(yōu)選評估由圖22 (I)、圖22 (2)、圖22 (3)、圖22 (4)的表格表示所定義的散列表ari_hash_m[742]。下文將對有關(guān)該散列表ari_hash_m[742]的評估的細(xì)節(jié)進(jìn)行描述。算術(shù)解碼器230進(jìn)一步包括狀態(tài)追蹤器299,其被配置為依據(jù)事先解碼的頻譜值追蹤算術(shù)解碼器的狀態(tài)。該狀態(tài)信息可選地響應(yīng)于狀態(tài)重置信息224而重置成默認(rèn)狀態(tài)信息。據(jù)此,累積頻率表選擇器296被配置為提供所選擇的累積頻率表的索引(例如pki)、或選擇的累積頻率表或其子表本身,用于應(yīng)用于依據(jù)碼字“acid_m”解碼最高有效位平面值m??偨Y(jié)音頻解碼器200的功能,音頻解碼器200被配置為接收經(jīng)位率有效編碼的頻域音頻表示222,并基于此而提供解碼頻域音頻表示。在用于基于編碼頻域音頻表示222獲得解碼頻域音頻表示232的算術(shù)解碼器230中,通過使用被配置成應(yīng)用累積頻率表的算術(shù)解碼器280來利用相鄰頻譜值的最高有效位平面值的不同組合概率。換言之,通過依據(jù)狀態(tài)索引298而從包括64個不同累積頻率表的一組中選出不同累積頻率表來探討頻譜值間的統(tǒng)計相依性,通過觀察事先算出的解碼頻譜值獲得狀態(tài)索引298。應(yīng)注意的是,狀態(tài)追蹤器299可與狀態(tài)追蹤器826、狀態(tài)追蹤器1126或狀態(tài)追蹤器1326相同或具有相同功能。累積頻率表選擇器296可與映射規(guī)則選擇器828、映射規(guī)則選擇器1128或映射規(guī)則選擇器1328相同或具有相同功能。最高有效位平面確定器284可與頻譜值確定器824相同或具有相同功能。10.頻譜無噪聲編碼工具的概述在下文中將對有關(guān)例如借算術(shù)編碼器170及算術(shù)解碼器230執(zhí)行的編碼及解碼算法的細(xì)節(jié)進(jìn)行描述。重點在于解碼算法的描述。然而,應(yīng)注意的是,可根據(jù)解碼算法的教示執(zhí)行相對應(yīng)的編碼算法,其中顛倒編碼頻譜值與解碼頻譜值間的映射關(guān)系,并且其中映射規(guī)則索引值的計算實質(zhì)上是相同的。在編碼器中,編碼頻譜值替代解碼頻譜值。同樣,待編碼頻譜值替代待解碼頻譜值。應(yīng)注意的是,解碼(容后詳述)允許對通常已經(jīng)后處理、經(jīng)定標(biāo)且經(jīng)量化的頻譜值進(jìn)行所謂的“頻譜無噪聲編碼”。頻譜無噪聲編碼用于音頻編碼/解碼構(gòu)想(或任何其他編碼/解碼構(gòu)想)以進(jìn)一步減少借能量壓縮時域至頻域信號變換器所得的量化頻譜的冗余。本發(fā)明的實施例中所使用的頻譜無噪聲編碼方案以算術(shù)編碼為基礎(chǔ),并結(jié)合動態(tài)調(diào)適上下文。在根據(jù)本發(fā)明的某些實施例中,頻譜無噪聲編碼方案以2元組為基礎(chǔ),換言之,兩相鄰頻譜系數(shù)組合在一起。各個2元組系分裂成符號、最高有效逐2-位平面、及剩余的較低有效位平面。使用由四個事先解碼的2元組導(dǎo)出的上下文相關(guān)累積頻率表對最高有效逐2-位平面m進(jìn)行無噪聲編碼。無噪聲編碼由量化頻譜值饋入,且使用由四個事先解碼的鄰近的2元組導(dǎo)出的上下文相關(guān)累積頻率表。此處,在時間及頻譜上鄰近的2元組被列入考慮,如圖4所示。然后累積頻率表(容后詳述)由算術(shù)編碼器用來產(chǎn)生可變長度二進(jìn)制碼(及通過算術(shù)解碼器來從可變長度二進(jìn)制碼導(dǎo)出解碼值)。例如,算術(shù)編碼器170對給定的一組符號及其個別概率(即,取決于其個別概率)產(chǎn)生二進(jìn)制碼。二進(jìn)制碼是通過將這組符號所在的概率區(qū)間映射到碼字而產(chǎn)生的。使用單一累積頻率表對剩余的較低有效位平面r進(jìn)行無噪聲編碼。累積頻率例如與發(fā)生在較低有效位平面的符號的均勻分布相對應(yīng),即預(yù)期在較低有效位平面出現(xiàn)O或I的概率相等。然而,可以使用其他解決方案對剩余的較低有效位平面或多個較低有效位平面進(jìn)行編碼。在下文中將給定頻譜無噪聲編碼工具的另一項簡短概述。頻譜無噪聲編碼用來進(jìn)一步減少量化頻譜的冗余。頻譜無噪聲編碼方案基于算術(shù)編碼,結(jié)合動態(tài)調(diào)適性上下文。無噪聲編碼由量化頻譜值饋入,且使用由頻譜值的四個事先解碼的鄰近的2元組導(dǎo)出的上下文相關(guān)累積頻率表。此處,在時間及頻譜上鄰近的2元組被列入考慮,如圖4所示。然后累積頻率表由算術(shù)編碼器用來產(chǎn)生可變長度二進(jìn)制碼。算術(shù)編碼器對給定的一組符號及其個別概率產(chǎn)生二進(jìn)制碼。二進(jìn)制碼是通過將這組符號所在的概率區(qū)間映射到碼字而產(chǎn)生的。11.解碼討稈11.1.解碼討稈概沭在下文中將參照圖3給定頻譜值編碼過程的概述,該圖示出了解碼多個頻譜值的過程的偽程序碼表示。多個頻譜值的解碼程序包括上下文的初始化310。上下文的初始化310包括使用函數(shù)“arith_map_context (N, arith_reset_flag) ”從先前上下文導(dǎo)出當(dāng)前上下文。從先前上下文導(dǎo)出當(dāng)前上下文可選擇性地包括上下文的重置。上下文的重置及從先前上下文導(dǎo)出當(dāng)前上下文容后詳述。優(yōu)選地,可以使用根據(jù)圖5a的函數(shù)“arith_map_context (N, arith_reset_flag) ”,但可選地可以使用根據(jù)圖5b的函數(shù)。多個頻譜值的解碼還包括頻譜值解碼312及上下文更新313的迭代,該上下文更新313通過函數(shù)“arith_update_context (i, a, b)”執(zhí)行,容后詳述。除非檢測到所謂的“ARITH_ST0P”符號,否則頻譜值解碼312及上下文更新312重復(fù)lg/2次,此處lg/2指示待解碼頻譜值的2元組數(shù)目(例如,對音頻幀而言)。此外,一組Ig頻譜值的解碼還包括符號解碼314及結(jié)束步驟315。頻譜值元組的解碼312包括上下文值計算312a、最高有效位平面解碼312b、算術(shù)終止符號檢測312c、較低有效位平面加法312d,及數(shù)組更新312e。狀態(tài)值計算312a包括調(diào)用函數(shù)“arith_get_context (c, i,N) ”,例如如圖5c或5d所示。優(yōu)選地,使用根據(jù)圖5c的函數(shù)“arith_get_context (c, i, N) ”。據(jù)此,數(shù)值當(dāng)前上下文(狀態(tài))值(3提供作為函數(shù)“31';11:11_861:_001^611:(0,;[,1'0”的函數(shù)調(diào)用的返回值。如圖可知,數(shù)值先前上下文值(也用“c”表示)作為函數(shù)“arith_get_COntext(C,i,N)”的輸入變量,以返回值形式更新以獲得數(shù)值當(dāng)前上下文值C。

最高有效位平面解碼312b包括解碼算法312ba的迭代執(zhí)行,及從算法312ba的結(jié)果值m導(dǎo)算312bb得到值a,b。在算法312ba的準(zhǔn)備中,變量lev被初始化為零。算法312ba被重復(fù)直至達(dá)到“中斷”指令(或條件)為止。算法312ba包括使用函數(shù)“arith_get_Pk () ”,依據(jù)數(shù)值當(dāng)前上下文值c,且還依據(jù)位階值“esc_nb”來計算狀態(tài)索引“pki ”(其也用作累積頻率表索引),容后詳述(且例如,圖5e及5f顯示實施例)。優(yōu)選地,使用根據(jù)圖5e的函數(shù)“arith_getjpk(c) ”。算法312ba還包括依據(jù)通過調(diào)用函數(shù)“arith_get_pk”所返回的狀態(tài)索引“pki ”選擇累積頻率表,其中變量“cum_freq”可依據(jù)狀態(tài)索引“pki ”設(shè)定為64個累積頻率表(或子表)中的一個的起始地址。變量“elf”也可被初始化為該選擇累積頻率表(或子表)的長度,該長度例如等于符號集中的符號數(shù)目,即可解碼的不同值的數(shù)目??衫脕斫獯a最高有效位平面值m的從“ari_cf_m[pki = 0] [17] ”至“ari_cf_m[pki= 63] [17]”的全部累積頻率表(或子表)的長度為17,原因在于可解碼16個不同最高有效位平面值及一個脫序符號(“ARITH_ESCAPE”)。優(yōu)選地,對如根據(jù)圖23 (I)、圖23 (2)、圖23(3)的表格表示中所定義的累積頻率表ari_cf_m[64][17]進(jìn)行評估,以獲得所選累積頻率表(或子表),該累積頻率表ari_cf_m[64] [17]將累積頻率表(或子表)“ari_cf_m[pki=0] [17] ” 限定為 “ari_cf_m[pki = 63] [17] ”。隨后,考慮所選累積頻率表(通過變量“cum_freq”及變量“cfl”描述),通過執(zhí)行函數(shù)“arith_deCOde () ”可獲得最高有效位平面值m。當(dāng)導(dǎo)出最高有效位平面值m時,可評估位流210中被命名為“acod_m”的位(例如,參照圖6g或圖6h)。優(yōu)選地,使用根據(jù)圖5g的函數(shù)“arith_decode (cum_freq, cfl) ”,但可選地可以使用根據(jù)圖5h及5i的函數(shù)“arith_decode(cum_freq, cfl)”。算法312ba還包括檢查最高有效位平面值m是否等于脫序符號“ARITH_ESCAPE”。若最高有效位平面值m不等于算術(shù)脫序(escape)符號,則舍棄算法312ba ( “中斷”條件),然后跳過算法312ba的其余指令。據(jù)此,通過在步驟312bb中設(shè)定值b及值a來繼續(xù)執(zhí)行程序。相反地,若最高有效位平面值m與該算術(shù)脫序符號或“ARITH_ESCAPE”相同,則位階(level)值“l(fā)ev”遞增I。除非在位階值“l(fā)ev”大于7的情況下,位階值“esc_nb”設(shè)定為等于7,否則位階值“esc_nb”設(shè)定為等于位階值“l(fā)ev”。如上文所述,然后重復(fù)算法312ba直至解碼最高有效位平面值m與算術(shù)脫序符號相異為止,其中使用的是經(jīng)修改的上下文(原因在于函數(shù)“arith_get_pk() ”的輸入?yún)?shù)是依據(jù)變量“esc_nb”值而調(diào)整適應(yīng)的)。一旦最高有效位平面使用算法312ba的一次執(zhí)行或迭代執(zhí)行而解碼時,即與算術(shù)脫序符號相異的最高有效位平面值m已經(jīng)解碼時,頻譜值變量“b”被設(shè)定為等于最高有效位平面值m的多個(例如,2個)較高有效位;且頻譜值變量“a”被設(shè)定為等于最高有效位平面值m的(例如,2個)最低位。有關(guān)此函數(shù)的細(xì)節(jié)例如參見參考標(biāo)號312bb。接著在步驟312c中檢查是否存在算術(shù)終止符號。如果最高有效位平面值m等于零而變量“l(fā)ev”大于零,則存在算術(shù)終止符號。據(jù)此,算術(shù)終止條件通過“不尋?!睏l件標(biāo)示,其中最高有效位平面值m等于零,而變量“ lev”指示增加的數(shù)值權(quán)值與最高有效位平面值m相關(guān)聯(lián)。換言之,若位流指示高于最小數(shù)值權(quán)值的增加的數(shù)值權(quán)值給予等于零的最高有效位平面值(這種情況在正常編碼情況下不會發(fā)生),則檢測到算術(shù)終止條件。換言之,若編碼算術(shù)脫序符號隨后接著等于零的編碼最高有效位平面值,則標(biāo)示算術(shù)終止條件。在步驟212c中執(zhí)行是否存在算術(shù)終止條件后,獲得較低有效位平面,例如如圖3中的參考標(biāo)號212d所示。對各個較低有效位平面,解碼兩個二進(jìn)制值。二進(jìn)制值中的一個與變量a (或頻譜值元組的第一頻譜值)相關(guān)聯(lián),而二進(jìn)制值中的一個與變量b (或頻譜值元組的第二頻譜值)相關(guān)聯(lián)。較低有效位平面的數(shù)目用變量lev表示。在一個或多個最低有效位平面(若有)的解碼中,迭代地執(zhí)行算法212da,其中算法212da的執(zhí)行次數(shù)由變量“l(fā)ev”決定。此處應(yīng)注意的是,算法212da的第一次迭代基于如步驟212bb中設(shè)定的變量a、b的值進(jìn)行。算法212da的進(jìn)一步迭代基于變量a、b的更新變量值進(jìn)行。在迭代開始時,選擇累積頻率表。隨后,執(zhí)行算術(shù)解碼來獲得變量r值,其中變量r值描述多個較低有效位,例如,一個與變量a相關(guān)聯(lián)的較低有效位,及一個與變量b相關(guān)聯(lián)的較低有效位。函數(shù)“ARITH_DEC0DE”(例如,如圖5g所定義)用來獲得值r,其中累積頻率表“arith_cf_r”用于算術(shù)解碼。隨后,更新變量a及b的值。為了此目的,變量a向左移位I位,而已移位的變量a的最低有效位設(shè)定成由值r的最低有效位所定義的值。變量b向左移位I位,而已移位的變量b的最低有效位設(shè)定成由變量r的位I所定義的值,其中在變量!■的二進(jìn)制表示中,變量r的位I具有等于2的數(shù)值權(quán)值。然后重復(fù)算法412ba直至全部最低有效位都被解碼為止。在較低有效位平面解碼后,更新數(shù)組“x_ac_dec”,其中變量a、b的值存儲在具有數(shù)組索引2*i及2*i+l的數(shù)組表項中。隨后,上下文狀態(tài)通過調(diào)用函數(shù)“arith_update_context(i,a,b) ”來更新,其細(xì)節(jié)參照圖5g容后詳述。優(yōu)選地,可使用如圖51所定義的函數(shù)“arith_update_context (i, a,b)”。在步驟313中所執(zhí)行的上下文狀態(tài)更新后,重復(fù)算法312及313直至運行變量i達(dá)到lg/2的值或直至檢測到算術(shù)終止條件`為止。隨后,執(zhí)行結(jié)束算法“arith_finish()”,如從參考標(biāo)號315可知。結(jié)束算法“arith_finish() ”的細(xì)節(jié)將參照圖5m描述如下。在結(jié)束算法315之后,使用算法314解碼頻譜值的符號。如圖可知,不等于零的頻譜值的符號被單獨解碼。在算法314中,對具有索引i介于i = O至i = Ig-1 (其為非零)間的全部頻譜值讀取符號。對具有索引i介于i = O至i = Ig-1間的各個非零頻譜值,值(通常為單個位)s讀取自位流。若讀取自位流的s的值等于1,則該頻譜值的符號反相。為了此目的,對數(shù)組“x_aC_deC”作存取,以判定具有索引i的頻譜值是否等于零,同時更新解碼頻譜值的符號。然而,應(yīng)注意的是,變量a、b的符號在符號解碼314中保持不變。通過在符號解碼314之前執(zhí)行結(jié)束算法315,可以在ARITH_ST0P符號之后,重置全部所需二進(jìn)制文件(bins)。此處應(yīng)注意的是,在根據(jù)本發(fā)明的某些實施例中,獲得較低有效位平面值的構(gòu)想并非特別有關(guān)。在某些實施例中,甚至忽略任何較低有效位平面的解碼。另外,可使用不同解碼算法來實現(xiàn)此目的。11.2.根據(jù)圖4的解碼順序在下文中將對頻譜值的解碼順序進(jìn)行描述。量化頻譜系數(shù)“x_aC_deC [] ”被無噪聲編碼,且從最低頻率系數(shù)開始,朝向最高頻率系數(shù)地傳輸(例如,在位流中)。結(jié)果,量化頻譜系數(shù)“x_ac_dec[] ”從最低頻率系數(shù)開始,朝向最高頻率系數(shù)而被無噪聲地解碼。量化頻譜系數(shù)通過集合成所謂的2元組(a,b)(也用{a,b}表示)的兩個接續(xù)(例如,頻率相鄰的)系數(shù)a及b組解碼。此處應(yīng)注意的是,量化頻譜系數(shù)有時也用“qdec” 表示。用于頻域模式的解碼系數(shù)“x_ac_dec [] ”(例如,使用修正離散余弦變換(MDCT)獲得的用于進(jìn)階音頻編碼的解碼系數(shù),例如在國際標(biāo)準(zhǔn)IS0/IEC 14496第3部分,第4子部分中所討論的)被存儲在數(shù)組“x_ac_quant[g] [win] [sfb] [bin] ”中。無噪聲編碼碼字的傳輸順序使得當(dāng)其以所接收順序解碼并存儲在數(shù)組中時,“bin”為最快速遞增索引,而“g”為最慢遞增索引。在碼字內(nèi)部,解碼順序為a,b ( S卩,先a后b)。用于變換編碼激勵(TCX)的解碼系數(shù)“X_ac_dec □”例如直接存儲在數(shù)組“x_tcx_invquant[win] [bin] ”中,且無噪聲編碼碼字的傳輸順序使得當(dāng)其以所接收的順序解碼且存儲于數(shù)組時,“bin”為最快速遞增索引,而“win”為最慢遞增索引。在碼字內(nèi)部,解碼順序為a,b (即,先a后b)。換言之,若頻譜值描述語音編碼器的線性預(yù)測濾波器的變換編碼激勵,則頻譜值a、b與變換編碼激勵的相鄰且遞增頻率相關(guān)聯(lián)。與較低頻率相關(guān)聯(lián)的頻譜系數(shù)通常在與較高頻率相關(guān)聯(lián)的頻譜系數(shù)之前編碼與解碼。注意,音頻解碼器200可以被配置為應(yīng)用由算術(shù)解碼器230所提供的已解碼頻域表示232,用于使用頻域至?xí)r域信號變換“直接”產(chǎn)生時域音頻信號表示,及用于使用頻域至?xí)r域解碼器及通過頻域至?xí)r域信號變換器的輸出所激勵的線性預(yù)測濾波器來“間接”提供時域音頻信號表示。換言之,此處詳細(xì)討論其功能的算術(shù)解碼器極為適合用于解碼在頻域中編碼的音頻內(nèi)容的時頻域表示的頻譜值,以及用于提供用于線性預(yù)測濾波器的激勵信號的時頻域表示,該濾波器適用于解碼(或合成)于線性預(yù)測域編碼的語音信號。如此,算術(shù)解碼器極為適合用于音頻解碼器,其能夠處理頻域編碼音頻內(nèi)容及線性預(yù)測頻域編碼音頻內(nèi)容(變換編碼激勵-線性預(yù)測域模式)。`11.3.根據(jù)圖5a和圖5b的h下f初始化在下文中將描述在步驟310中執(zhí)行的上下文初始化(也稱為“上下文映射”)。上下文初始化包括依據(jù)算法“arith_map_context () ”在過去上下文與當(dāng)前上下文間的映射,圖5a示出了算法的第一實施例,圖5b示出了算法的第二實施例。如圖可知,當(dāng)前上下文被存儲在全局變量“q[2] [n_context] ”中,其采用具有第一維為2而第二維為“n_context”的矩陣形式。過去上下文可可選地(但不一定)存儲在變量“qs[n_context] ”中,其采用具有一維“n_context” (若使用)的表的形式。參照圖5a的實例算法“arith_map_context”,輸入變量N描述當(dāng)前窗口長度,輸入變量“arith_reset_flag”指示上下文是否應(yīng)重置。此外,全局變量“previous_N”描述前一窗口的長度。此處應(yīng)注意的是,通常,就時域樣本而言,與窗口相關(guān)聯(lián)的頻譜值數(shù)目至少約等于該窗口長度的一半。此外,應(yīng)注意的是,就時域樣本而言,頻譜值的2元組數(shù)目至少約等于該窗口長度的四分之一。首先,應(yīng)注意的是,標(biāo)記“arith_reset_f lag”確定是否必須重置上下文。參照圖5a的實例,上下文的映射可依據(jù)算法“arith_map_context () ”執(zhí)行。此處應(yīng)注意的是,若標(biāo)記“arith_reset_flag”為活動(active)并因此指示上下文須被重置,貝!J對j = 0至j = N/4-1,函數(shù)“arith_map_context () ”設(shè)定當(dāng)前上下文數(shù)組q的表項“q
[j] ”為零。否則,換言之,若標(biāo)記“arith_reset_flag”為不活動(inactive),則當(dāng)前上下文數(shù)組q的表項“q
[j] ”從當(dāng)前上下文數(shù)組q的表項“q[l] [j] ”導(dǎo)出。應(yīng)注意的是,若對j = k = O至j = k = N/4-1,與當(dāng)前(例如,頻域編碼)音頻巾貞相關(guān)聯(lián)的頻譜值數(shù)目等同于與前一音頻巾貞相關(guān)聯(lián)的頻譜值數(shù)目,則依據(jù)圖5a的函數(shù)“arith_map_context O ”設(shè)置當(dāng)前上下文數(shù)組q的表項“q
[j] ”為當(dāng)前上下文數(shù)組q的值“q[l] [k] ”。如果與當(dāng)前音頻幀相關(guān)聯(lián)的頻譜值數(shù)目與先前音頻幀相關(guān)聯(lián)的頻譜值數(shù)目不同,執(zhí)行更復(fù)雜的映射。但在此種情況下有關(guān)映射的細(xì)節(jié)與本發(fā)明的關(guān)鍵構(gòu)想并無特殊關(guān)聯(lián),因此相關(guān)細(xì)節(jié)可參照圖5a的偽程序碼。此夕卜,數(shù)值當(dāng)前上下文值c的初始化值由函數(shù)“arith_map_context O ”返回。此初始化值例如等于表項“q
[O] ”的值向左移位12位。據(jù)此,數(shù)值(當(dāng)前)上下文值c被正確初始化用于迭代更新。此外,圖5b示出了可做為選擇使用的算法“arith_map_context() ”的另一實例。有關(guān)其細(xì)節(jié)可參照圖5a的偽程序碼。綜上所述,標(biāo)記“arith_reset_f lag”判定上下文是否須重置。若標(biāo)記為真,則調(diào)用算法“arith_map_context O ”的重置子算法500a。但另外,若標(biāo)記“arith_reset_f lag”為非活動(其指出無需執(zhí)行上下文的重置),則解碼程序從初始化階段開始,此處上下文元素向量(或數(shù)組)q通過拷貝并存儲在q[l][]中的前一幀的上下文元素映射到q
[]而更新。q內(nèi)部的上下文元素以每2元組4-位存儲。上下文元素的拷貝和/或映射在子算法500b中執(zhí)行。此外,應(yīng)注意的是,如果無法可靠地確定上下文,例如,如果先前幀的數(shù)據(jù)不可用,且如果沒有設(shè)置“arith_reset_flag”,則無法繼續(xù)解碼頻譜數(shù)據(jù)且應(yīng)跳過對當(dāng)前“arith_data O”元素進(jìn)行讀取。在圖5b的實例中,解碼程序從初始化階段開始,此處映射在存儲在qs中的所保存的過去上下文與當(dāng)前幀q的上下文間進(jìn)行。過去上下文qs以每頻率線2-位存儲。11.4.根據(jù)圖5c及圖5d的狀態(tài)值計算在下文中將對狀態(tài)值計算312a進(jìn)行更詳細(xì)描述。第一優(yōu)選算法將參照圖5c進(jìn)行描述,而第二可選實例算法將參照圖5d進(jìn)行描述。應(yīng)注意的是,數(shù)值當(dāng)前上下文值c(如圖3所示)可作為函數(shù)“arith_get_context (c,i,N) ”的返回值而獲得,其偽程序碼表示在圖5c中示出。但另外,數(shù)值當(dāng)前上下文值c可作為函數(shù)“arith_get_context (c, i) ”的返回值而獲得,其偽程序碼表示在圖5d中示出。有關(guān)狀態(tài)值的計算,也參照圖4,該圖示出了用于狀態(tài)評估的上下文,即用于數(shù)值當(dāng)前上下文值c的計算。圖4示出了頻譜值在時間及頻率兩方面的二維表示。橫坐標(biāo)410描述時間,縱坐標(biāo)412描述頻率。如圖4可知,待解碼的頻譜值(優(yōu)選地,使用數(shù)值當(dāng)前上下文值)的元組420與時間索引t0及頻率索引i相關(guān)聯(lián)。如圖可知,對于時間索引t0,具有頻率索引1-l、i_2及1-3的元組在具有頻率索引i的元組120的頻譜值待解碼時已經(jīng)解碼。如圖4可知,具有時間索引t0及頻率索引1-Ι的頻譜值430在頻譜值的元組420解碼之前已經(jīng)解碼,且考慮將頻譜值的元組430用于解碼頻譜值的元組420的上下文。同理,具有時間索引tO-Ι及頻率索引1-Ι的頻譜值440、具有時間索引tO-Ι及頻率索引i的頻譜值450、及具有時間索引tO-1及頻率索引i+1的頻譜值460在頻譜值的元組420解碼之前已經(jīng)解碼,且考慮將其用于確定用以解碼頻譜值的元組420的上下文。當(dāng)頻譜值的元組420解碼時已經(jīng)解碼且考慮用于上下文的頻譜值(系數(shù))以影線方塊顯示。相反地,已經(jīng)解碼(當(dāng)元組420的頻譜值被解碼時)但未考慮用于上下文(用于解碼元組420的頻譜值)的若干其他頻譜值以具有虛線的方塊顯示,而其他頻譜值(當(dāng)元組420的頻譜值解碼時尚未被解碼)以具有虛線的圓顯示。通過具有虛線的方塊表示的元組及通過具有虛線的圓表示的元組并未用于確定用于解碼元組420的頻譜值的上下文。然而,應(yīng)注意的是,仍可評估未用于用以解碼元組420的頻譜值的上下文的“常規(guī)”或“正?!庇嬎愕哪切╊l譜值中的某些頻譜值,以檢測多個事先解碼的相鄰頻譜值,頻譜值單獨或一起滿足有關(guān)其幅度的預(yù)定條件。有關(guān)此問題的細(xì)節(jié)容后詳述?,F(xiàn)在參照圖5c,將描述算法“arith_get_context(c, i, N) ”的細(xì)節(jié)。圖5c以偽程序碼形式示出函數(shù)“31';11:11_861:_(301^611:((3,;[,沁”的功能,其使用眾所周知的C語言和/或C++語言協(xié)定。如此,將描述有關(guān)計算由函數(shù)“arith_get_context(c, i,N) ”所執(zhí)行的數(shù)值當(dāng)前上下文值“c”的更多細(xì)節(jié)。應(yīng)注意的是,函數(shù)“arith_get_context (c, i,N) ”接收可由數(shù)值當(dāng)前上下文值c所描述的“舊狀態(tài)上下文”作為輸入變量。函數(shù)“arith_get_COntext(C,i,N) ”也接收待解碼頻譜值的2元組的索引i作為輸入變量。索引i通常為頻率索引。輸入變量N描述待解碼頻譜值的窗口的窗口長度。函數(shù)“31';11:11_861:_(301^611:((3,;[,沁”提供輸入變量c的更新版本作為輸出值,該輸出值描述更新的狀態(tài)上下文,且其可視 為數(shù)值當(dāng)前上下文值。概括而言,函數(shù)“arith_get_context (c,i,N) ”接收數(shù)值當(dāng)前上下文值c作為輸入變量,并提供其更新版本,其可被視為數(shù)值當(dāng)前上下文值。此外,函數(shù)“arith_get_context”考慮變量1、N,也評估“全局”數(shù)組q[][]。有關(guān)函數(shù)“arith_get_context (c, i, N) ”的細(xì)節(jié),應(yīng)注意的是,最初以二進(jìn)制形式表示數(shù)值先前上下文值的變量c在步驟504a中向右移位4位。據(jù)此,舍棄數(shù)值先前上下文值(以輸入變量c表示)的四個最低有效位。同樣,數(shù)值先前上下文值的其他位的數(shù)值權(quán)值例如降低16的因數(shù)。此外,若2元組的索引i小于N/4-1,即不取最大值,則數(shù)值當(dāng)前上下文值經(jīng)修改,表項q
[i+1]的值加至步驟504a中所得的移位上下文值的位12至15 ( S卩,加至具有212、213、214及215數(shù)值權(quán)值的位)。為了此目的,數(shù)組q□口的表項q
[i+1](或更精確地說,該表項所表示的值的二進(jìn)制表示)朝左移位12位。然后表項q
[i+1]所表示的值的移位版本加至步驟504a導(dǎo)出的上下文值C,即加至數(shù)值先前上下文值的經(jīng)位移位的(朝右移位4位)數(shù)字表示。此處應(yīng)注意的是,數(shù)組q[][]的表項q
[i+l]表示與音頻內(nèi)容的先前部分(例如,參考圖4定義,具有時間索引tO-1的音頻內(nèi)容部分)相關(guān)聯(lián)的子區(qū)域值,及具有比目前待解碼頻譜值的元組(使用由函數(shù)“arith_get_context (c, i, N) ”所輸出的數(shù)值當(dāng)前上下文值c)更高的頻率(如參考圖4定義,具有頻率索引i+1的頻率)。換言之,如果頻譜值的元組420要使用數(shù)值當(dāng)前上下文值解碼,那么表項q
[i+1]可以基于事先解碼的頻譜值的元組460。數(shù)組q[][]的表項q
[i+1]的選擇性加法(朝左移位12位)以參考標(biāo)號504b示出。如圖可知,表項q
[i+1]表示的值的加法當(dāng)然唯有在頻率索引i并未標(biāo)示具有最高頻率索引i = N/4-1的頻譜值的元組時執(zhí)行。隨后,在步驟504c中,執(zhí)行布爾與門運算,其中變量c的值與十六進(jìn)制值OxFFFO通過與門組合來獲得變量c的更新值。通過執(zhí)行此種與門運算,變量c的四個最低有效位被有效地設(shè)定為零。在步驟504d中,表項q[l] [i_l]的值被加至在步驟504c中所得的變量c的值,借此更新變量c的值。但步驟504d中的變量c的更新僅在待解碼的2元組的頻率索引i大于零時才執(zhí)行。應(yīng)注意的是,對頻率小于使用數(shù)值當(dāng)前上下文值待解碼頻譜值的頻率,表項q[l][1-l]為基于音頻內(nèi)容的當(dāng)前部分的事先解碼的頻譜值的元組的上下文子區(qū)域值。例如,當(dāng)假設(shè)頻譜值的元組420要使用由當(dāng)前執(zhí)行函數(shù)“arith_get_context (c, i,N) ”返回的數(shù)值當(dāng)前上下文值解碼時,數(shù)組q[][]的表項q[l] [1-Ι]可與具有時間索引t0及頻率索引1-Ι的元組430相關(guān)聯(lián)。總括起來,數(shù)值先前上下文值的位0、1、2及3( S卩,四個最低有效位部分)在步驟504a中通過將其移位出數(shù)值先前上下文值的二進(jìn)制數(shù)字表示而舍棄。此外,移位變量c (即,移位數(shù)值先前上下文值)的位12、13、14及15在步驟504b中被設(shè)定為取由上下文子區(qū)域值q
[i+1]所定義的值。移位數(shù)值先前上下文值的位0、1、2及3(即,原先移位數(shù)值先前上下文值的位4、5、6及7)在步驟504c及504d中由上下文子區(qū)域值q[l] [i_l]所覆與。因此,可以講,數(shù)值先前上下文值的位O至3表示與頻譜值的元組432相關(guān)聯(lián)的上下文子區(qū)域值,數(shù)值先前上下文值的位4至7表示與事先解碼頻譜值的元組434相關(guān)聯(lián)的上下文子區(qū)域值,數(shù)值先前上下文值的位8至11表示與事先解碼頻譜值的元組440相關(guān)聯(lián)的上下文子區(qū)域值,且數(shù)值先前上下文值的位12至15表示與事先解碼頻譜值的元組450相關(guān)聯(lián)的上下文子區(qū)域值。被輸入函數(shù)“arith_get_context(c, i, N) ”的數(shù)值先前上下文值與頻譜值的元組430的解碼相關(guān)聯(lián)。作為函數(shù)“arith_get_context (c, i, N) ”的輸出變量獲得的數(shù)值當(dāng)前上下文值與頻譜值的元組420的解碼相關(guān)聯(lián)。據(jù)此,數(shù)值當(dāng)前上下文值的位O至3描述與頻譜值的元組430相關(guān)聯(lián)的上下文子區(qū)域值,數(shù)值當(dāng)前上下文值的位4至7描述與頻譜值的元組440相關(guān)聯(lián)的上下文子區(qū)域值,數(shù)值當(dāng)前上下文值的位8至11描述與頻譜值的元組450相關(guān)聯(lián)的上下文子區(qū)域值,且數(shù)值當(dāng)前上下文值的位12至15描述與頻譜值的元組460相關(guān)聯(lián)的上下文子區(qū)域值。如此,可知數(shù)值先前上下文值部分,即數(shù)值先前上下文值的位8至15也包括在數(shù)值當(dāng)前上下文值中,作為數(shù)值當(dāng)前上下文值的位4至11。相反地,當(dāng)由數(shù)值先前上下文值的數(shù)字表示導(dǎo)出數(shù)值當(dāng)前上下文值的數(shù)字表示時,當(dāng)前的數(shù)值先前上下文值的位O至7被舍棄。在步驟504e中,當(dāng)待解碼2元組的頻率索引i大于例如3的預(yù)定數(shù)字時,表示數(shù)值當(dāng)前上下文值的變量c被選擇性地更新。在這種情況下,即若i大于3,則判定上下文子區(qū)域值q[l] [1-3]、q[l] [i_2]與q[l] [i_l]的和是否小于(或等于)例如5的預(yù)定值。若發(fā)現(xiàn)該上下文子區(qū)域值的和小于該預(yù)定值,則例如0x10000的十六進(jìn)制值被加至變量C。據(jù)此,變量c被設(shè)定為使得變量c指出是否有一種情況,其中上下文子區(qū)域值q[l] [1-3]、q[l][1-2]與q[l] [1-1]組成特別小的總和值。例如,數(shù)值當(dāng)前上下文值的位16可用作標(biāo)記以指出這種情況。總結(jié)而言,函數(shù)“arith_get_context(c, i, N) ” 的返回值由步驟 504a、504b、504c、504d及504e確定,其中數(shù)值當(dāng)前上下文值在步驟504a、504b、504c及504d中由數(shù)值先前上下文值導(dǎo)出,且其中指出事先解碼的頻譜值通常具有特別小的絕對值的環(huán)境的標(biāo)記在步驟504e中導(dǎo)出并加至變量C。如此,若在步驟504e中評估的條件未滿足,則步驟504a、504b、504c、504d所得變量c的值在步驟504f中返回作為函數(shù)“arith_get_context (c, i, N) ”的返回值。相反地,若在步驟504e中評估的條件滿足,則在步驟504e,在步驟504a、504b、504c及504d中所導(dǎo)出的變量c的值借0x10000的十六進(jìn)制值遞增且返回此遞增計算結(jié)果。綜上所述,應(yīng)注意的是,無噪聲解碼器輸出無符號量化頻譜系數(shù)的2元組(容后詳述)。首先,上下文狀態(tài)c基于“環(huán)繞”欲解碼2元組的事先解碼的頻譜系數(shù)計算。在優(yōu)選實施例中,狀態(tài)(例如,數(shù)值上下文值c表示的狀態(tài))使用最后一個解碼的2元組(被稱為數(shù)值先前上下文值)的上下文狀態(tài)遞增更新,只考慮兩個新的2元組(例如,2元組430及460)。狀態(tài)以17位編碼(例如,使用數(shù)值當(dāng)前上下文值的數(shù)字表示)且由函數(shù)“arith_get_context () ”返回。有關(guān)其細(xì)節(jié)請參照圖5c的程序碼表示。此外,應(yīng)注意的是,函數(shù)“arith_get_context () ”的另一實施例的偽程序碼表在圖5d中示出。根據(jù)圖5d的函數(shù)“arith_get_context (c, i) ”類似于根據(jù)圖5c的函數(shù)“arith_get_context (c, i, N)”。然而,根據(jù)圖 5d 的函數(shù) “arith_get_context (c, i) ” 并不包括對包括最小頻率索引i = 0或最大頻率索引i = N/4-1的頻譜值的元組的特別處理或解碼。11.5.映射規(guī)則詵擇在下文中將描述映射規(guī)則,例如描述碼字值映射到符號碼的累積頻率表的選擇。映射規(guī)則的選擇依據(jù)由數(shù)值當(dāng)前上下文值c所描述的上下文狀態(tài)進(jìn)行。11.5.1.使用根據(jù)圖5e的算法的映射規(guī)則選擇在下文中將描述使用函數(shù)“arith_get_pk(c) ”的映射規(guī)則的選擇。應(yīng)注意的是,在子算法312ba開始,當(dāng)解碼碼值“acod_m”用于提供頻譜值的元組時,調(diào)用函數(shù)“arith_get_pk()”。應(yīng)注意的是,函數(shù)“arith_get_pk(C)”在算法3 12b的不同迭代時用不同參數(shù)(argument)調(diào)用。例如,在算法312b的第一次迭代中,函數(shù)“arith_get_pk(c) ”用等于先前在步驟312a中執(zhí)行函數(shù)“arith_get_pk(c, i, N) ”時所提供的數(shù)值當(dāng)前上下文值c的參數(shù)調(diào)用。相反地,在子算法312b的其他迭代中,函數(shù)“arith_get_pk(C) ”用由函數(shù)“arith_get_pk(c, i, N) ”在步驟312a中所提供的數(shù)值當(dāng)前上下文值c,及變量“esc_nb”的值的經(jīng)位移位版本的和作為參數(shù)調(diào)用,其中該變量“esc_nb”的值向左移位17位。如此,在算法的第一次迭代時,即在解碼相對較小頻譜值時,由函數(shù)“arith_get_pk(C,i,N) ”所提供的數(shù)值當(dāng)前上下文值c用作為函數(shù)“arith_get_pk() ”的輸入值。相反地,在解碼相對較大頻譜值時,函數(shù)“arith_get_pk() ”的輸入變量經(jīng)修改,將變量“esc_nb”的值列入考慮,如圖3所
/Jn o現(xiàn)在參照圖5e,其示出了函數(shù)“arith_get_pk(C) ”的第一優(yōu)選實施例的偽程序碼表示,應(yīng)注意的是,函數(shù)“arith_get_pk() ”接收變量c作為輸入值,其中變量c描述上下文狀態(tài),且其中至少在某些情況下,函數(shù)“arith_get_pk() ”的輸入變量c等于由函數(shù)“arith_get_pk()”提供作為返回變量的數(shù)值當(dāng)前上下文值。此外,應(yīng)注意的是,函數(shù)“arith_get_PkO ”提供變量“pki”作為輸出變量,其描述概率模型的索引且可被認(rèn)為映射規(guī)則索引值。
參照圖5e,可知函數(shù)“arith_get_pk() ”包括變量初始化506a,其中變量“i_min”被初始化為取-1的值。類似地,變量i被設(shè)定為等于變量使得變量i也被初始化為值-1。變量“i_max”被初始化為具有比表“ari_lookup_m□”的表項數(shù)目小I的值(其細(xì)節(jié)將參照圖21進(jìn)行說明)。據(jù)此,變量與“i_max”界定一個區(qū)間。例如,i_max可以被初始化為值741。隨后,執(zhí)行搜索506b來識別指明表“ari_hash_m”的表項的索引值,使得函數(shù)“arith_get_pk() ”的輸入變量c的值位于由該表項與一相鄰表項所界定的區(qū)間內(nèi),該表的選擇如圖22 (I)、圖22 (2)、圖22 (3)、圖22(4)所定義。在搜索506b中,重復(fù)子算法506ba,同時變量“與“ i_max”間的差大于I。在子算法506ba中,變量i被設(shè)定為等于變量與“i_max”的值的算術(shù)平均。結(jié)果,變量i標(biāo)示在由變量“i_min”與“i_max”的值所界定的表區(qū)間中間的表“ari_hash_m[] ”的表項。隨后,變量j被設(shè) 定為等于表“ari_hash_m[] ”的表項“ari_hash_m[i] ”的值。因此,變量j具有由表“ari_hash_m[] ”的表項所定義的值,該表項位于由變量與“i_max”的值所界定的表區(qū)間的中間。隨后,若函數(shù)“arith_get_pk() ”的輸入變量c的值與由表“ari_hash_m[] 口”的表項“j = ari hash m[i] ”的最高位所定義的狀態(tài)值不同,貝U更新由變量與“i_max”的值所界定的區(qū)間。例如,表“ari_hash_m[] ”的表項的“較高位”(位8及以上)描述有效狀態(tài)值。據(jù)此,值“j>> 8”描述由散列表索引值i標(biāo)示的表“ari_hash_m[] ”的表項“ j = ari_hash_m[i] ”所表示的有效狀態(tài)值。如此,若變量c值小于值“ j >> 8”,則這意味著由變量c所描述的狀態(tài)值小于由表“ari_hash_m[] ”的表項“ j=ari_hash_m[i] ”所描述的有效狀態(tài)值。在這種情況下,變量“ i_max”的值被設(shè)定為等于變量i的值,而這又具有使得由與“i_max”所界定的區(qū)間大小縮小的效果,其中新區(qū)間約等于前一區(qū)間的下半部。若發(fā)現(xiàn)函數(shù)“arith_get_pk() ”的輸入變量c大于值“ j >
>8”,這意味著變量c所描述的上下文值大_于由數(shù)組“ari_hash_m[] ”的表項“ j = ari_hash_m[i] ”所描述的有效狀態(tài)值,變量的值被設(shè)定為等于變量i的值。如此,由變量與“i_max”所界定的區(qū)間大小縮小至由變量與“i_max”的先前值所界定的先前區(qū)間大小的一半。更精確地說,在變量c的值大于由表項“ari_hash_m[i] ”所定義的有效狀態(tài)值的情況下,由更新的變量的值與由變量“i_max”的先前(未改變的)值所界定的區(qū)間約等于先前區(qū)間的上半部。然而,如果發(fā)現(xiàn)由算法“arith_get_pk()”的輸入變量c所描述的上下文值等于由表項“ari_hash_m[i] ”所定義的有效狀態(tài)值(即c== (j > > 8))時,貝U返回由表項“ari_hash_m[i] ”的最低8位所定義的映射規(guī)則索引值作為函數(shù)“arith_get_pk() ”的返回值(指令 “return (j&OxFF) ” )。綜上所述,表項“ari_hash_m[i]”,其最高位(位8及以上)描述有效狀態(tài)值,在各次迭代506ba中評估,且由函數(shù)“arith_get_pk() ”的輸入變量c所描述的上下文值(或數(shù)值當(dāng)前上下文值)與由該表項“ari_hash_m[i]”所描述的有效狀態(tài)值作比較。若由輸入變量c所表不的上下文值小于由表項“ari_hash_m[i] ”所表不的有效狀態(tài)值,則該表項的上邊界(由值“i_max”所描述)縮小,且若由輸入變量c所描述的上下文值大于由該表表項“ari_hash_m[i]”所描述的有效狀態(tài)值,則該表表項的下邊界(由值“所描述)增加。在這兩種情況下,除非區(qū)間(由與“i_max”間的差所限定)大小小于或等于I,否則重復(fù)子算法506ba。相反地,若由輸入變量c所描述的上下文值等于由該表表項“ari_hash_m[i] ”所描述的有效狀態(tài)值,則函數(shù)“arith_get_pk () ”被舍棄,其中返回值由表表項“ari_hash_m[i] ”的最低8位所界定。然而,如果因區(qū)間大小達(dá)到其最小值(“i_max”-小于或等于I)而結(jié)束搜索506b,則函數(shù)“arith_get_pk() ”的返回值通過表“ari_lookup_m[] ”的表項“ari_lookup_m[i_max] ”確定,這從參考標(biāo)號506c可知。表ari_lookup_m[]的選擇優(yōu)選如表21的表格表示中所定義,并因此可以等于表ari_lookup_m[742]。據(jù)此,表“ari_hash_m[] ”的表項定義有效狀態(tài)值及區(qū)間邊界。在子算法506ba中,搜索區(qū)間邊界與“i_max”迭代地調(diào)整,使得散列表索引i所在的表“ari_hash_m[] ”的表項“ari_hash_m[i] ”至少約位于由區(qū)間邊界值與“i_max”所界定的搜索區(qū)間的中心,至少近似由輸入變量c所描述的上下文值。因此,除非由輸入變量c所描述的上下文值等于由表“ari_hash_m[] ”的表項所描述的有效狀態(tài)值,否則在子算法506ba的迭代完成后,由輸入變量c所描述的上下文值位于由“ari_hash_m[i_min] ”和“ari_hash_m[i_max] ”所限定的區(qū)間內(nèi)部。然而,如果因區(qū)間大小(由定義)達(dá)到或超過其最小值而結(jié)束子算法506ba的迭代時,則假設(shè)由輸入變量c所描述的上下文值并非有效狀態(tài)值。在這種情況下,仍然使用標(biāo)示區(qū)間上邊界的索引“i_max”。子算法506ba的最后一次迭代所達(dá)到的區(qū)間上限值“i_max”重新用作存取表“ari_lookup_m”(其可以等于圖21的表ari_lookup_m[742])的表索引值。表“ari_l00kUp_m□”描述與多個相鄰數(shù)值上下文值的區(qū)間相關(guān)聯(lián)的映射規(guī)則索引。與由表“ari_l00kup_m[] ”的表項所描述的映射規(guī)則索引相關(guān)聯(lián)的區(qū)間通過表“ari_hash_m[] ”的表項所描述的有效狀態(tài)值定義。表“ari_hash_m[] ”的表項定義相鄰數(shù)值上下文值的有效狀態(tài)值及區(qū)間的區(qū)間邊界。在執(zhí)行算法506b時,判定由輸入變量c所描述的數(shù)值上下文值是否等于有效狀態(tài)值;且若并非此種情況,則判定由輸入變量c所描述的上下文值位于數(shù)值上下文值的哪一個區(qū)間(從多個區(qū)間中選出,所述區(qū)間的邊界由有效狀態(tài)值定義)。因此,算法506b滿足雙重功能:判定輸入變量c是否描述有效狀態(tài)值;若否,則識別由輸入變量c所表示的上下文值所在的且由有效狀態(tài)值所界限的區(qū)間。因此,算法506e特別有效率且只需要相對較少次的表存取。綜上所述,上下文狀態(tài)c確定用來解碼最聞有效逐2_位平面m的累積頻率表。如同函數(shù)“arith_get_pk() ”執(zhí)行的從c到相對應(yīng)的累積頻率表索引“pki”的映射。已參照圖5e對該函數(shù)“arith_get_pk() ”的偽程序碼表示進(jìn)行闡述。進(jìn)一步綜上所述,使用用累積頻率表“arith_cf_m[pki][] ”調(diào)用的函數(shù)“arith_decodeO”(在下文中更詳細(xì)地加以描述)解碼值m,其中“pki”對應(yīng)于參照圖5e描述的由呈偽C碼形式的函數(shù)“arith_get_pk() ”所返回的索引(也稱為映射規(guī)則索引值)。11.5.2.使用根據(jù)圖5f的算法的映射規(guī)則選擇在下文中,將參照圖5f描述映射規(guī)則選擇算法“arith_get_pk() ”的另一實施例,該圖示出了此種算法的偽程序碼表示,其可用于頻譜值的元組的解碼。根據(jù)圖5f的算法可視為算法“get_pk() ”或算法“arith_get_pk() ”的優(yōu)化版本(例如,速度優(yōu)化版本)。根據(jù)圖5f的算法“arith_get_pk()”接收描述上下文狀態(tài)的變量c作為輸入變量。輸入變量c例如可表示數(shù)值當(dāng)前上下文值。

算法“arith_get_pk()”提供變量“pki”作為輸出變量,該變量描述與由輸入變量C所描述的上下文狀態(tài)相關(guān)聯(lián)的概率分布(或概率模型)索引。變量“pki”例如可以是映射規(guī)則索引值。根據(jù)圖5f的算法包括數(shù)組“i_diff □”內(nèi)容的定義。如圖可知,數(shù)組“i_diff □”的第一表項(具有數(shù)組索引O)等于299,而其他數(shù)組表項(具有數(shù)組索引I至8)具有值149、74、37、18、9、4、2及I。據(jù)此,用于選擇散列表索引值的步長大小隨著各次迭代而縮小,原因在于數(shù)組”的表項定義該等步長大小。詳情請參照下文的討論。然而,實際上可選擇不同步長大小,例如數(shù)組□”的不同內(nèi)容,其中數(shù)組 [] ”的內(nèi)容自然可經(jīng)調(diào)整而適應(yīng)散列表“ari_hash_m[i] ”的大小。應(yīng)注意的是,恰在算法“arith_get_pk() ”開始時,變量“ i_min”被初始化為取O值。在初始化步驟508a中,變量s依據(jù)輸入變量c而初始化,其中變量c的數(shù)字表示向左移位8位以獲得變量s的數(shù)字表示。隨后,執(zhí)行表搜索508b,以識別散列表“ari_hash_m[] ”的表項的散列表索引值 使得由上下文值c所描述的上下文值位于由散列表表項“ari_hash_m[i_min] ”所
描述的上下文值與另一散列表表項“ari_haSh_m”所描述的上下文值所界限的區(qū)間,該另一散列表表項“ari_hash_m”相鄰于(就其散列表索引值而言)散列表表項“ari_hash_m[i_min] ”。因此,算法508b允許確定標(biāo)示散列表“ari_hash_m[] ”的表項“ j = ari_hash_m[i_min] ”的散列表索引值使得散列表表項“ari_hash_m[i_min] ”至少近似于由輸入變量c所描述的上下文值。表搜索508b包括子算法508ba的迭代執(zhí)行,其中子算法508ba被執(zhí)行預(yù)定次數(shù),例如,9次迭代。在子算法 508ba的第一步驟中,變量i被設(shè)定為等于變量的值與表表項“i_diff[k] ”的值之和。此處應(yīng)注意的是,k為運行變量,其針對子算法508ba的各次迭代,從k = O的初值開始遞增。數(shù)組“i_diff □”定義預(yù)定遞增值,其中遞增值隨表索引k的增加,即隨迭代次數(shù)的增加而減小。在子算法508ba的第二步驟中,表項“ari_hash_m[] ”的值被拷貝到變量j中。優(yōu)選地,表“ari_hash_m[] ”的表項的最高位描述數(shù)值上下文值的有效狀態(tài)值,表“ari_hash_m[] ”的表項的最低位(位O至7)描述與個別有效狀態(tài)值相關(guān)聯(lián)的映射規(guī)則索引值。在子算法508ba的第三步驟中,將變量S的值與變量j的值作比較,如果變量s的值大于變量j的值,變量“ 選擇性地設(shè)定為值“ i+1 ”。隨后,子算法508ba的第一步驟、第二步驟、及第三步驟重復(fù)預(yù)定次數(shù),例如九次。因此,在每次執(zhí)行子算法508ba時,當(dāng)且僅當(dāng)由當(dāng)且有效散列表索引i_min+i_diff[]所描述的上下文值小于由輸入變量c所描述的上下文值時,變量的值遞增i_diff[]+l。據(jù)此,在每次執(zhí)行子算法508ba時,當(dāng)(且僅當(dāng))由輸入變量c且因此由變量s所描述的上下文值大于由表項“ari_haSh_m[i=i_min+diff [k]] ”所描述的上下文值時,散列表索引值(迭代地)增加。此外,應(yīng)注意的是,在每次執(zhí)行子算法508ba時,只執(zhí)行單次比較,即比較變量s值是否大于變量j的值。據(jù)此,算法508ba的計算特別有效率。此外,應(yīng)注意的是,就變量“i_min”的終值而言,有不同的可能結(jié)果。例如,在最后一次執(zhí)行子算法512ba后,變量的值可能使得由表項“ari_hash_m[i_min] ”所描述的上下文值小于由輸入變量c所描述的上下文值,且由表項“ari_hash_m[i_min+l] ”所描述的上下文值大于由輸入變量c所描述的上下文值。另外,可能在最后一次執(zhí)行子算法508ba后,由散列表表項“ari_hash_m[i_min-1] ”所描述的上下文值小于由輸入變量c所描述的上下文值,且由表項“ari_hash_m[i_min] ”所描述的上下文值大于由輸入變量c所描述的上下文值。但另外,由散列表表項“ari_hash_m[i_min] ”所描述的上下文值等于由輸入變量c所描述的上下文值。出于這個原因,執(zhí)行基于決策的返回值提供508c。變量j被設(shè)定為取散列表表項“ari_hash_m[i_min]”的值。隨后,判定由輸入變量c (及也由變量s)所描述的上下文值是否大于由表項“ari_hash_m[i_min] ”所描述的上下文值(由條件“s > j”定義的第一種情況),或由輸入變量c所描述的上下文值是否小于由表項“ari_hash_m[i_min] ”所描述的上下文值(由條件“c < j >> 8”定義的第二種情況),或由輸入變量c所描述的上下文值是否等于由表項“ari_hash_m[i_min] ”所描述的上下文值(第三種情況)。在第一種情況(s > j)下,由表索引值標(biāo)示的表“ari_lookup_m□”的表項“ari_lookup_m[i_min+l] ”返回作為函數(shù)“arith_get_pk() ”的輸出值。在第二種情況(c < (j >> 8))下,由表索引值“i_min”標(biāo)示的表“ari_lookup_m□”的表項“ari_lookup_m[i_min] ”返回作為函數(shù)“arith_get_pk() ”的輸出值。在第三種情況(即,當(dāng)由輸入變量c所描述的上下文值等于由表表項“ari_hash_m[i_min] ”所描述的有效狀態(tài)值時)下,由散列表表項“ari_hash_m[i_min] ”的最低8位所描述的映射規(guī)則索引值返回作為函數(shù)“arith_get_pk() ” 的輸出值。綜上所述,在步驟508b中執(zhí)行特別簡單的表搜索,其中該表搜索提供變量“ i_min”的變量值,而未區(qū)別由輸入變量c所描述的上下文值是否等于由表項“ari_hash_m口 ”所描述的有效狀態(tài)值。在繼表搜索508b之后執(zhí)行的步驟508c中,評估由輸入變量c所描述的上下文值與由散列表表項“ari_hash_m[i_min] ”所描述的有效狀態(tài)值間的幅度關(guān)系,依據(jù)該評估結(jié)果而選擇函數(shù)“arith_get_pk() ”的返回值,其中考慮在表評估508b中所確定的變量“的值來選擇映射規(guī)則索引值,即便由輸入變量c所描述的上下文值系與由散列表表項“ari_hash_m[i_min] ”所描述的有效狀態(tài)值不同。進(jìn)ー步應(yīng)注意的是,算法中的比較優(yōu)選地(或另外地)在上下文索引(數(shù)值上下文值)c與j = ari_hash_m[i] >>8間進(jìn)行。實際上,表“ari_hash_mロ ”的各個表項表示ー個上下文索引,編碼超過第八位,且其相對應(yīng)的概率模型用最先的八個位(最低有效位)來編碼。在當(dāng)前實現(xiàn)中,發(fā)明人主要感興趣的是當(dāng)前上下文c是否大于ari_hash_m[i] >> 8,其相當(dāng)于檢測s = c << 8是否也大于ari_hash_m[i]。綜上所述,一旦上下文狀態(tài)信息被算出(例如,可使用根據(jù)圖5c的算法“arith_get_context (c, i, N) ” 或根據(jù)圖 5d 的算法“ arith_get_context (c, i)”達(dá)成),最高有效逐2-位平面使用用與上下文狀態(tài)對應(yīng)的概率模型相對應(yīng)的適當(dāng)累積頻率表調(diào)用的算法“arith_decode” (容后詳述)來解碼。對應(yīng)關(guān)系系通過函數(shù)“arith_get_pk() ”來完成,例如已經(jīng)參照圖5f討論的函數(shù)“arith_get_pk() ”。11.6.算術(shù)解碼11.6.1.使用根據(jù)圖的算法的算術(shù)解碼在下文中將參照圖5g討論函數(shù)“arith_deCOde() ”的功能。圖5g示出了描述所使用的算法的偽C碼。應(yīng)注意的是,函數(shù)“ arith_decode () ”使用輔助函數(shù)“ arith_f irst_symbol (void) ”,若其是序列的第一符號,貝U返回TRUE,否則返回FALSE。函數(shù)“arith_decode () ”還使用輔助函數(shù)“arith_get_next_bit (void) ”,其獲得且提供該位流的下一位。另夕卜,函數(shù)“arith_deCOde() ”使用全局變量“低”、“高”及“值”。而且,函數(shù)“arith_decode 0 ”接收變量“cum_freq□”作為輸入變量,其指向所選累積頻率表或累積頻率子表(優(yōu)選地,表 ari_cf_m[64] [17]的子表 ari_cf_m[pki = 0] [17]至 ari_cf_m[pki = 63][17]中的ー個,如圖23(1)、23(2)、23(3)的表格表示所定義)的第一表項或元素(具有元素索引或表項索引O)。并且,函數(shù)“arith_deC0de()”使用輸入變量“cfl”,其指示用變量“CUm_freq□”表示的所選累積頻率表或累積頻率子表的長度。函數(shù)“arith_decode () ”包括變量初始化570a作為第一步驟,若輔助函數(shù)“arith_first_symbol () ”指示正在解碼一系列符號的第一符號,則執(zhí)行此ー步驟。值初始化550a依據(jù)使用輔助函數(shù)“arith_get_next_bit”而得自位流的多個,例如16個位而將變量“值”初始化,使得變量“值”具有由這些位所表示的值。同樣,變量“低”被初始化成取0值,而變量“高”被初始化為取65535的值。在第二步驟570b中,變量“范圍”被設(shè)定為比變量“高”與“低”值間的差值大I的值。變量“cum”被設(shè)定為表示變量“值”的值在變量“高”值與變量“低”值間的相對位置的值。據(jù)此,依據(jù)變量“值”的值,變量“cum”取例如0至216間的值。指針p被初始化為比所選累積頻率表或子表的起始地址小I的值。算法“arith_deCOde()”還包括迭代的累積頻率表搜索570c。迭代的累積頻率表搜索重復(fù)執(zhí)行直至變量cfl小于或等于I為止。在迭代的累積頻率表搜索570c中,指針變量q被設(shè)定為ー值,其等于指針變量P與變量“Cf!”的值的一半的和。若所選累積頻率表的表項*q(該表項借指針變 量q來尋址)的值大于變量“cum”的值,則指針變量P被設(shè)定為指針變量q的值,且變量“ cfl”増加。最后,變量“ cfl”向右移位一位,借此有效地將變量“cfl”的值除以2并忽略模部分。據(jù)此,迭代的累積頻率表搜索570c有效地比較變量“cum”的值與所選累積頻率表的多個表項來識別所選累積頻率表內(nèi)部的區(qū)間,該區(qū)間由該累積頻率表的表項所界限,使得值cum位于所識別的區(qū)間內(nèi)部。如此,所選累積頻率表的表項界定區(qū)間,其中個別符號值與所選累積頻率表的區(qū)間各自相關(guān)聯(lián)。而且,累積頻率表的兩個相鄰值之間的區(qū)間寬度定義與該等區(qū)間相關(guān)聯(lián)的符號的概率,使得所選累積頻率表整體界定不同符號(或符號值)的概率分布。有關(guān)可用累積頻率表或累積頻率子表的細(xì)節(jié)將參照圖23討論如下。再次參照圖5g,符號值從指針變量p的值導(dǎo)出,其中該符號值如參考標(biāo)號570d所示而導(dǎo)出。如此,指針變量P的值與起始地址“cum_freq”的值之間的差被評估來獲得符號值,其用變量“符號”表示。算法“arith_deCOde”還包括變量“高”及“低”的適應(yīng)性570e。若以變量“符號”表示的符號值不等于零,則更新變量“高”,如參考標(biāo)號570e所示。同樣,更新變量“低”的值,如參考標(biāo)號570e所示。變量“高”被設(shè)定為由變量“低”、變量“范圍”及所選累積頻率表或累積頻率子表中具有索引“符號-1”的表項所測定的值。變量“低”増加,其中増加幅度由變量“范圍”及所選累積頻率表中具有索引“符號”的表項所確定。如此,變量“低”與“高”的值間的差依據(jù)所選累積頻率表的兩相鄰表項間的數(shù)值差來調(diào)整。因此,若檢測到具有低概率的符號值,則變量“低”與“高”的值間的區(qū)間縮小成狹窄寬度。相反地,若檢測到的符號值包括相當(dāng)高的概率,則變量“低”與“高”的值間的區(qū)間設(shè)定為較大值。再者,變量“低”與“高”的值間的區(qū)間寬度取決于所檢測的符號及對應(yīng)的累積頻率表表項。算法“arith_decode() ”還包括區(qū)間重整化570f,其中在步驟570e中確定的區(qū)間迭代地移位與定標(biāo)直至達(dá)到“中斷”條件。在區(qū)間重整化570f中,執(zhí)行選擇性的向下移位操作570fa。若變量“高”小于32768,則不做任何動作,且區(qū)間重整化繼續(xù)執(zhí)行區(qū)間大小増加操作570fb。但若變量“高”不小于32768,且若變量“低”大于或等于32768,則變量“值”、“低”及“高”全部減少32768,使得由變量“低”及“高”所限定的區(qū)間向下移位,且使得變量“值”的值也向下移位。但若發(fā)現(xiàn)變量“高”的值不小于32768,且若變量“低”不大于或等于32768,且變量“低”大于或等于16384,且若變量“高”小于49152,則變量“值”、“低”及“高”全部減少16384,借此變量“高”與“低”的值間的區(qū)間,及變量“值”的值也向下移位。但若未滿足前述任一條件,則舍棄區(qū)間重整化。然而,若滿足步驟570fa中所評估的前述任一條件,則執(zhí)行區(qū)間增加操作570fb。在區(qū)間增加操作570fb中,變量“低”的值加倍。同樣,變量“高”的值也加倍,加倍結(jié)果再加
I。同樣,變量“值”的值加倍(向左移位ー個位),且通過輔助函數(shù)“arith_get_next_bit”所得位流的位用作最低有效位。據(jù)此,變量“低”與“高”的值間的區(qū)間大小約略加倍,且變量“值”的精度通過使用位流的新位而增加。如前文提到的,重復(fù)步驟570fa及570fb直至達(dá)到“中斷”條件,即直至變量“低”與“高”的值間的區(qū)間足夠大為止。有關(guān)算法“ aritldecodeO”的功能,應(yīng)注意的是,變量“低”與“高”的值間的區(qū)間在步驟570e中縮小,這取決于由變量“cum_freq”引用的累積頻率表的兩相鄰表項。若所選累積頻率表的兩相鄰值間的區(qū)間很小,即若相鄰值相對較為接近,則步驟570e中所得的變量“低”與“高”的值間的區(qū)間將較小。相反地,若累積頻率表的兩相鄰表項間隔較遠(yuǎn),則步驟570e中所得的變量“低”與“高”的值間的區(qū)間將相對較大。結(jié)果,若步驟570e中所得的變量“低”與“高”的值間的區(qū)間相對較小,則將執(zhí)行大量區(qū)間重整步驟將區(qū)間重定標(biāo)至“足夠”大小(使得條件評估570fa的條件皆未滿足)。據(jù)此,將使用來自位流的較大數(shù)目的位來增高變量“值”的精度。相反地,若步驟570e所得區(qū)間大小相對較大,要求較少數(shù)的區(qū)間重整步驟570fa及570fb的重復(fù)來將變量“低”與“高”的值間的區(qū)間重整為“足夠”大小。據(jù)此,將只使用相對較少數(shù)的來自位流的位來增加變量“值”的精度,并準(zhǔn)備下一符號的解碼。綜上所述,若解碼符號,其包括相對較高概率,及所選累積頻率表表項相關(guān)聯(lián)的大區(qū)間,則將從該位流只讀取較少數(shù)的位以允許解碼接續(xù)其后的符號。相反地,若解碼符號,其包括相對較低概率,及所選累積頻率表表項相關(guān)聯(lián)的小區(qū)間,則將從該位流只讀取較大數(shù)的位來準(zhǔn)備解碼下一符號。據(jù)此,累積頻率表的表項反映不同符號的概率,同時也反映解碼一系列符號所需的位數(shù)目。通過依據(jù)上下文,即依據(jù)先前解碼符號(或頻譜值),例如,通過依據(jù)上下文選擇不同的累積頻率表而變更累積頻率表,可探討不同符號間的隨機相依性,其允許特別比位率有效的隨后(或相鄰)符號的編碼。綜上所述,已參照圖5g描述的函數(shù)“arith_deCOde() ”用與對應(yīng)于由函數(shù)“arith_get_pk() ”返回的索弓丨“pki”的累積頻率表“arith_cf_m[pki][] ”調(diào)用,以確定最高有效位平面值m(其可設(shè)定為由返回變量“符號”所表示的符號值)。綜上所述,算木解碼器是使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實現(xiàn)。有關(guān)其細(xì)節(jié)請參考書籍“Introduction to Data Compression”,作者 K.Sayood,2006 年,第三版,乜lsevier Inc.。根據(jù)圖5g的計算機程序碼描述根據(jù)本發(fā)明的實施例所使用的算法。11.6.2.使用根據(jù)圖5h及圖5i的算法的算術(shù)解碼圖5h及圖5i示出了算法“arith_decode () ”的另ー實施例的偽程序碼表示,其可用作參照圖5g所述算法“arith_decode”的替代物。應(yīng)注意的是,根據(jù)圖5g及根據(jù)圖5h及5i的算法均可用于根據(jù)圖3的算法“arith_decode () ”。簡言之,值m使用用累積頻率表“ arith_cf_m[pki] []”(優(yōu)選地,其是圖23 (I)、圖23 (2)、圖23 (3)的表格表示中所定義的表ari_cf_m[67] [17]的子表)調(diào)用的函數(shù)“ arith_decodeO”來解碼,其中“ pki”對應(yīng)于由函數(shù)“ arith_get_pk()”所返回的索引。算術(shù)編碼器(或解碼器)是使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實現(xiàn)。有關(guān)其細(xì)節(jié)請參考書籍“Introduction to Data Compression”,作者 K.Sayood, 2006 年,第三版,Elsevier Inc.。根據(jù)圖5h及5i的計算機程序碼描述所使用的算法。11.7.脫序機制在下文中將簡短討論用于根據(jù)圖3的解碼算法“ValUeS_deCOde() ”的脫序機制。當(dāng)解碼值m (作為函數(shù)“ arith_decode 0 ”的返回值而被提供)為脫序符號“ARITH_ESCAPE”時,變量“ lev”及“esc_nb”遞增1,而另ー個值m被解碼。在這種情況下,函數(shù)“arith_get_pk()”(或“get_pk()”)以值“C+esC_nb くく 17”作為輸入?yún)?shù)而被再次調(diào)用,其中變量“ esc_nb”描述先前對相同的2元組解碼且限于7的脫序符號的數(shù)目。簡言之,當(dāng)識別出脫序符號吋,假設(shè)最高有效位平面值m包括増加的數(shù)值權(quán)值。此外,重復(fù)當(dāng)前數(shù)值解碼,其中修改的數(shù)值當(dāng)前上下文值“c+esc_nb くく 17”用作函數(shù)“arith_get_pk() ”的輸入變量。據(jù)此,在子算法312ba的不同迭代中,通常獲得不同映射規(guī)則索引值“pki”。11.8.算術(shù)終I卜機制在下文中將描述算術(shù)終止機制。在音頻編碼器中較高頻率部分被完全量化為0的情況下,算術(shù)終止機制允許減少所需的位數(shù)目。在一個實施例中,算術(shù)終止機制可實施如下:一旦值m不是脫序符號“ ARITH_ESCAPE”,解碼器就檢查連續(xù)的m是否形成“ARITH_ESCAPE”符號。若條件“ (esc_nb > 0&&m==0) ”為真,則檢測到“ARITH_ESCAPE”符號并結(jié)束解碼程序。在這種情況下,解碼器直接跳至下文描述的符號解碼,或下文描述的“arith_finish() ”函數(shù)。該條件意味著該巾貞其余部分由0值組成。11.9.較低有效位平面解碼在下文中將描述ー個或多個較低有效位平面的解碼。較低有效位平面的解碼例如在圖3中所示步驟312d中進(jìn)行。然而,可供選擇地,也可使用圖5j及圖5n中所示的算法,其中圖5j的算法是優(yōu)選算法。11.9.1.根據(jù)圖5.1的較低有效位平面解碼
現(xiàn)在參照圖5j,可知變量a及b的值從值m導(dǎo)出。值m的數(shù)字表示向右移位2位來獲得變量b的數(shù)字表示。此外,變量a的值通過從變量m的值減去變量b的值的向左移位2位的位移位版本而獲得。隨后,重復(fù)最低有效位平面值r的算術(shù)解碼,其中重復(fù)次數(shù)由變量“l(fā)ev”的值確定。最低有效位平面值r使用函數(shù)“arith_deCOde”獲得,其中使用適應(yīng)于最低有效位平面的解碼的累積頻率表(累積頻率表“arith_cf_r”)變量r的最低有效位(具有數(shù)值權(quán)值I)描述由變量a所表示的頻譜值的較低有效位平面,且變量r的具有數(shù)值權(quán)值2的位描述變量b所表示的頻譜值的較低有效位。據(jù)此,變量a通過將變量a向左移位I位并加上變量r的具有數(shù)值權(quán)值I的位作為最低有效位而更新。類似地,變量b通過將變量b向左移位I位并加上變量r的具有數(shù)值權(quán)值2的位而更新。據(jù)此,變量a、b的兩個載有最高有效信息的位通過最高有效位平面值m確定,且值a及b的一個或多個最低有效位(若有)由一個或多個最低有效位平面值r確定。綜上所述,當(dāng)不滿足“ARITH_ST0P”符號時,對當(dāng)前2元組解碼其余位平面(若存在)。其余位平面通過調(diào)用使用累積頻率表“arith_cf_r□”的函數(shù)“arith_decode O ” “ lev”次數(shù)而從最高有效位階至最低有效位階解碼。已解碼位平面r允許依據(jù)算法來改進(jìn)事先解碼的值m,圖5j中示出了其偽程序碼。11.9.2.根據(jù)圖5n的較低有效位頻帶解碼然而,可供選擇地,其偽程序碼表示示于圖5n的算法也可用于較低有效位平面解碼。在這種情況下,若不滿足“ARITH_ST0P”符號,則對當(dāng)前2元組其余位平面(若存在)解碼。其余位平面通過調(diào)用使用累積頻率表“arith_Cf_r() ”的“arith_deCOde O ” “l(fā)ev”次數(shù)而從最高有效位階至最低有效位階解碼。已解碼位平面r允許根據(jù)圖5n中所示的算法來改進(jìn)事先解碼的值m。11.10.h 下f 審新11.10.1.根據(jù)圖5k、圖51及圖5m的h.下f審新在下文中將參照圖5k及圖51,描述用于完成頻譜值的元組解碼的操作。此外,將描述用來完成與音頻內(nèi)容的當(dāng)前部分(例如,當(dāng)前幀)相關(guān)聯(lián)的頻譜值的一組元組解碼的操作。應(yīng)注意的是,即便可以使用可選算法,但優(yōu)選根據(jù)5k、圖51及圖5m的算法?,F(xiàn)在參照圖5k,可知在最低有效位解碼312d之后,數(shù)組“X_ac_dec[] ”的具有表項索引2*i的表項被設(shè)定為等于a,且數(shù)組“x_ac_dec[] ”的具有表項索引“2*i+l”的表項被設(shè)定為等于b。換言之,在較低有效位解碼312d之后,2元組{a,b}的無符號值被完全解碼。根據(jù)圖5k中所示的算法,存儲在保有頻譜系數(shù)的數(shù)組(例如,數(shù)組“x_aC_deC[]”)中。隨后,也對下一個2元組更新上下文“q”。應(yīng)注意的是,此上下文更新也須對最后一個2元組執(zhí)行。此上下文更新通過其偽程序碼表示示于圖51的函數(shù)“arith_update_context O ” 來執(zhí)行?,F(xiàn)在參照圖51,可知函數(shù)“arith_update_context(i, a, b)”接收2元組的已解碼無符號的已量化頻譜系數(shù)(或頻譜值)a,b作為輸入變量。此外,函數(shù)“arith_Update_context O”也接收欲解碼的已量化頻譜值的索引i (例如頻率索引)作為輸入變量。換言之,輸入變量i例如可以是其絕對值由輸入變量a、b所定義的頻譜值的元組索引。如圖可知,數(shù)組“q口 [] ”的表項“q[l] [i] ”可設(shè)定為等于a+b+1的值。此外,數(shù)組“qロ [] ”的表項‘乂[1][1]”的值可限于“0が”的十六進(jìn)制值。如此,數(shù)組“q□□”的表項“q[l][i]”通過計算具有頻率索引i的頻譜值的當(dāng)前解碼元組{a,b}的絕對值之和并將和值結(jié)果加I而獲得。此處應(yīng)注意的是,數(shù)組“q[] □”的表項“q[l] [i] ”可被視為上下文子區(qū)域值,原因在于其描述用于額外頻譜值(或頻譜值的元組)隨后解碼的上下文的子區(qū)域。此處應(yīng)注意的是,兩個當(dāng)前解碼頻譜值的絕對值a及b (其有符號版本存儲在數(shù)組“x_ac_dec [] ”的表項“x_ac_dec [2*i] ”及“x_ac_dec [2*i+l] ”中)的加總可被視為解碼頻譜值的范數(shù)(例如,LI范數(shù))的計算。已發(fā)現(xiàn)描述由多個事先解碼的頻譜值形成的向量的范數(shù)的上下文子區(qū)域值(即,數(shù)組“q □□”的表項)特別有意義且內(nèi)存有效。已發(fā)現(xiàn)基于多個事先解碼的頻譜值算出的此種范數(shù)包括精簡形式的有意義的上下文信息。已發(fā)現(xiàn)頻譜值符號通常與上下文的選擇并非特別相關(guān)。還發(fā)現(xiàn)經(jīng)過多個事先解碼的頻譜值的范數(shù)的形成,即便舍棄若干細(xì)節(jié),通常也仍保有最重要的信息。此外,已發(fā)現(xiàn)數(shù)值當(dāng)前上下文值限制在最大值內(nèi)通常不會導(dǎo)致信息的嚴(yán)重遺漏。反而,已發(fā)現(xiàn)對大于預(yù)定臨界值的有效頻譜值使用相同上下文狀態(tài)更加有效。如此,對上下文子區(qū)域值加以限制使內(nèi)存效率進(jìn)ー步改良。此外,已發(fā)現(xiàn)將上下文子區(qū)域值限制在某個最大值內(nèi)允許特別簡單且計算有效的數(shù)值當(dāng)前上下文值的更新,這例如已參照圖5c及圖5d描述。通過將上下文子區(qū)域值限制在相對較小的值(例如,限制于值15),基于多個上下文子區(qū)域值的上下文狀態(tài)可以有效形式表示,已參照圖5c及圖5d討論。此外,已發(fā)現(xiàn)將上下文子區(qū)域值限制在I至15之間的值,獲得準(zhǔn)確度與內(nèi)存效率間的特佳折衷,原因在于4個位即足以存儲此種上下文子區(qū)域值。然而,應(yīng)注意的是 ,在若干其他實施例中,上下文子區(qū)域值可只以單ー解碼頻譜值為基礎(chǔ)。在這種情況下,范數(shù)的形成可以可選地被刪除。該巾貞的下ー個2元組在函數(shù)“arith_update_context”完成后被解碼,解碼方式是通過i遞增I,且從函數(shù)“arith_update_context() ”開始重做前述相同程序。當(dāng)在幀內(nèi)部解碼lg/2個2元組或依據(jù)“ARITH_ST0P”的終止符號出現(xiàn)時,頻譜幅度的解碼程序結(jié)束而符號的解碼開始。有關(guān)符號解碼的細(xì)節(jié)已經(jīng)參照圖3討論,其中參考標(biāo)號314中示出了符號的解碼。一旦全部無符號且已量化的頻譜系數(shù)都已解碼,就加上對應(yīng)符號。對“x_aC_deC”的各個非空(non-null)量化值,讀取一位。若所讀取的位值等于1,則該量化值為正,不做任何動作,且符號值等于事先解碼的無符號值。否則(即,若所讀取的位值等于0)即為負(fù),且2的補碼取自無符號值。符號位從低頻自高頻讀取。有關(guān)細(xì)節(jié)參照圖3討論及參照符號的解碼314的說明。通過調(diào)用函數(shù)“arith_finish()”完成解碼。其余頻譜系數(shù)被設(shè)定為O。個別上下文狀態(tài)據(jù)此而更新。詳情請參考圖5!11,其示出了函數(shù)“&1^訪_れ1^也()”的偽程序碼表示。如圖可知,函數(shù)“arith_finish() ”接收輸入變量lg,其描述已解碼的已量化頻譜系數(shù)。優(yōu)選地,函數(shù)“arith_finish”的輸入變量Ig描述實際上解碼的頻譜系數(shù)數(shù)目,未考慮響應(yīng)于“ARITH_STOP”符號的檢測被分配0值的頻譜系數(shù)。函數(shù)“arith_finish”的輸入變量N描述當(dāng)前窗口(即與音頻內(nèi)容的當(dāng)前部分相關(guān)聯(lián)的窗口)的窗口長度。通常,與長度N的窗口相關(guān)聯(lián)的頻譜值數(shù)目等于N/2,而與窗口長度N的窗口相關(guān)聯(lián)的頻譜值的2元組數(shù)目等于N/4。函數(shù)“arith_f inish”也接收解碼頻譜值的向量“x_ac_dec”,或至少接收此解碼頻譜系數(shù)的向量的指標(biāo)作為輸入值。函數(shù)“arith_f inish”被配置為將因算術(shù)終止條件的存在而無頻譜值被解碼的數(shù)組(或向量)“x_ac_dec”的表項設(shè)定為O。此外,函數(shù)“arith_finish”設(shè)定上下文子區(qū)域值“q[l] [i]”為預(yù)定值1,上下文子區(qū)域值與因算術(shù)終止條件的存在而無任何值被解碼的頻譜值相關(guān)聯(lián)。預(yù)定值I與頻譜值的元組(其中兩個頻譜值均等于O)相對應(yīng)。據(jù)此,函數(shù)“arith_finish() ”允許更新頻譜值的整個數(shù)組(或向量)“x_ac_dec[] ”以及整個上下文子區(qū)域值數(shù)組“q[l] [i] ”,即便在算術(shù)終止條件存在下亦如此。11.10.2.根據(jù)圖5ο及圖5ρ的上下文更新在下文中將參照圖5ο及圖5ρ描述上下文更新的另一實施例。2元組(a,b)的無符號值被完全解碼時點,對下一個2元組更新上下文q。若當(dāng)前2元組為最后一個2元組,也進(jìn)行更新。兩項更新都通過函數(shù)“arith_update_context O ”執(zhí)行,圖5o中示出了其偽程序碼表示。然后,該幀的下一個2元組通過將i遞增I及調(diào)用函數(shù)“arith_deCOde() ”而被解碼。若lg/2個2元組已經(jīng)利用幀進(jìn)行解碼,或若出現(xiàn)終止符號“ARITH_ST0P”,則調(diào)用函數(shù)“arith_finish() ”。保持上下文,并存儲在下一巾貞的數(shù)組(或向量)“qs”中。圖5p中示出了函數(shù)“arith_save_context O ”的偽程序碼。一旦全部無符號且已量化的頻譜系數(shù)已經(jīng)解碼,則補上符號。對各個未經(jīng)量化值“qdec”,讀取位。若讀取位值等于0,則量化值為正,不做任何動作,且有符號值等于事先解碼的無符號值。否則,解碼系數(shù)為負(fù),并從無符號值讀2的補碼。有符號位從低頻至高頻讀取。11.11.解碼稈序的概要在下文中,將簡短概述解碼程序。有關(guān)其細(xì)節(jié)請參考前文討論及圖3、4、5a、5c、5e、5g、5j、5k、51及5m。量化頻譜系數(shù)“x_ac_dec[] ”從最低頻系數(shù)開始并前進(jìn)至最高頻系數(shù)而無噪聲地解碼。它們由集合在所謂的2元組(a,b)(同樣用{a,b}表示)中的成組的兩個連續(xù)系數(shù)a,b解碼。然后,頻域(即,頻域模式)的解碼系數(shù)“X_ac_dec□”存儲在數(shù)組“x_ac_quant [g] [win] [sfb] [bin] ”中。無噪聲編碼碼字的傳輸順序使得當(dāng)其以所接收的順序解碼并存儲在數(shù)組中時,“bin”為最快遞增的索引,“g”為最慢遞增的索引。在碼字內(nèi)部,解碼順序為a,然后為b?!癟CX”的解碼系數(shù)“X_ac_dec[] ” (即,使用變換編碼激勵的音頻解碼)存儲(例如,直接存儲)在數(shù)組“x_tcx_invquant[win] [bin] ”中,且無噪聲編碼碼字的傳輸順序使得當(dāng)其以所接收的順序解碼并存儲在數(shù)組中時,“bin”為最快遞增的索引,“win”為最慢遞增的索引。在碼字內(nèi)部,解碼順序為a,然后為b。首先,標(biāo)記“arith_reSet_flag”判定上下文是否必須重置。若標(biāo)記為真,則在函數(shù) “arith_map_context” 中考慮此點。解碼過程從初始化階段開始,其中通過拷貝并映射存儲在“q[l][] ”中的前一幀的上下文元素至“q
[] ”,更新上下文元素向量“q”?!皅”內(nèi)部的上下文元素以每2元組4位存儲。有關(guān)其細(xì)節(jié)請參考圖5a的偽程序碼。
無噪聲解碼器輸出無符號且已量化的頻譜系數(shù)的2元組。首先,上下文狀態(tài)c基于環(huán)繞待解碼2元組的事先解碼頻譜系數(shù)來計算。因此,只考慮兩個新的2元組,使用最后一個解碼2元組的上下文狀態(tài),遞增地更新狀態(tài)。狀態(tài)以17位解碼,及由函數(shù)“arith_get_context”返回。圖5c中示出了設(shè)定函數(shù)“arith_get_context”的偽程序碼表示。上下文狀態(tài)c確定用于解碼最高有效逐2位平面m的累積頻率表。從c映射到相對應(yīng)的累積頻率表“ pki”通過函數(shù)“ arith_get_pk() ”執(zhí)行。圖5e中示出了函數(shù)“ arith_get_pk()”的偽程序碼表示。使用用累積頻率表“arith_cf_m[pki][] ”調(diào)用的函數(shù)“arith_decode () ”來解碼值m,此處“pki”對應(yīng)于由“ arith_get_pk()”返回的索引。算木編碼器(及解碼器)為使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實現(xiàn)。根據(jù)圖5g的偽程序碼描述所使用的算法。當(dāng)解碼值m為脫序符號“ARITH_ESCAPE”時,變量“l(fā)ev”及“esc_nb”遞增1,而另ー值m被解碼。在這種情況下,函數(shù)“get_pk()”再次以值“c+esc_nb<< 17”作為輸入?yún)?shù)而被調(diào)用,此處“esc_nb”是先前對相同2元組解碼且限于7的脫序符號的數(shù)目。一旦值m不是脫序符號“ARITH_ESCAPE”,解碼器就檢查連續(xù)的m是否形成“ARITH_ST0P” 符號。若條件 “ (esc_nb > 0&&m = = 0) ” 為真,則檢測到 “ARITH_ST0P” 符號且結(jié)束解碼過程。解碼器直接跳至后述的符號解碼。該條件表示該幀其余部分由0值組成。若不滿足“ ARITH_ST0P”符號,則對當(dāng)前2元組解碼其余位平面(若存在)。其余位平面通過使用調(diào)用累積頻率表“ arith_cf_r[] ”的“ arith_deCOde () ” “l(fā)ev”次而從最高有效位階至最低有效位階解碼。已解碼位平面r允許根據(jù)圖5j中所示的偽程序碼表示的算法來改進(jìn)事先解碼的值m。此時,2元組(a,b)的無符號值被完全經(jīng)解碼。其根據(jù)圖5k中所示的偽程序碼表示的算法被存儲到保有頻譜系數(shù)的元素中。上下文“q”也對下ー個2元組更新。應(yīng)注意的是,此上下文更新也對最后ー個2元組執(zhí)行。此上下文更新通過圖51中所示的偽程序碼表示顯示的函數(shù)“arith_update_context 0 ” 執(zhí)行。該巾貞的下ー個2元組然后通過i遞增I,且通過從函數(shù)“arith_get_context () ”開始重做如前文所述的相同程序而被解碼。當(dāng)lg/2個2元組在幀內(nèi)部解碼或出現(xiàn)終止符號“ARITH_ST0P”吋,頻譜幅度的解碼程序結(jié)束而符號的解碼開始。解碼通過調(diào)用函數(shù)“arith_finish()”完成。其余頻譜系數(shù)被設(shè)定為O。個別上下文狀態(tài)被對應(yīng)地更新。圖5m中示出了函數(shù)“arith_finish() ”的偽程序碼表示。一旦全部無符號且已量化的頻譜系數(shù)都已解碼,就補上對應(yīng)符號。對“x_aC_deC”的各個非空量化值,讀取位。若所讀取的位值等于0,則該量化值為正,不做任何動作,且符號值等于事先解碼的無符號值。否則,解碼系數(shù)為負(fù),2的補碼取自無符號值。符號位從低頻至高頻讀取。11.12.圖例圖5q示出了與根據(jù)圖5a、5c、5e、5f、5g、5j、5k、51及5m的算法相關(guān)的定義的圖例。圖5r示出了與根據(jù)圖5b、5d、5f、5h、51、5n、5o及5p的算法相關(guān)的定義的圖例。12.映射表在根據(jù)本發(fā)明的實施例中,特別有用的表“ari_lookup_m”、“ari_hash_m”及“ari_cf_m”用于根據(jù)5e圖或圖5f的函數(shù)“arith_get_pk() ”的實現(xiàn),以及用于參照圖5g、5h及5i討論的函數(shù)“arith_deCOde() ”的執(zhí)行。但應(yīng)注意的是,不同的表可用于某些可選實施例。12.1.根據(jù)圖 22(1)、22(2)、22(3)及 22 (4)的表“ari hash m「742l”圖22⑴至圖22 (4)的表中示出了函數(shù)“arith_get_pk”(其第一優(yōu)選實施例參照圖5e描述且其第二實施例參照圖5f描述)所使用的表“ari_hash_m”的特別有用的實施例的內(nèi)容。應(yīng)注意的是,圖22(1)至圖22(4)的表列舉表(或數(shù)組)“ari_hash_m[742]”的742個表項。還應(yīng)注意的是,圖22 (I)至圖22(4)的表表示以元素索引的順序顯示元素,使得第一個值“"0x00000104UL”對應(yīng)于具元素索引(或表索引)O的表表項“ari_hash_m
”,且使得最后一個值“OxFFFFFFOOUL”對應(yīng)于具元素索引或表索引741的表表項“ari_hash_m[741] ”。此處應(yīng)注意的是,“Ox”指出表“ari_hash_m[] ”的表項以十六進(jìn)制格式表示。此外,此處應(yīng)注意的是,字尾“UL”指出表“ari_hash_m□”的表項以無符號的“長”整數(shù)值(具有32位的精度)表示。此外,應(yīng)注意的是,根據(jù)圖22(1)至圖22⑷的表“ari_hash_m □”的表項以數(shù)值順序排列,以允許函數(shù)“arith_get_pk() ”的表搜索506b、508b、510b的執(zhí)行。進(jìn)一步應(yīng)注意的是,表“ari_hash_m”的表項的最高有效24位表示某些有效狀態(tài)值(且可以被視為第一子表項),而最低有效8位表示映射規(guī)則索引值“pki” (且可以被視為第二子表項)。如此,表“ari_hash_m[] ”的表項描述上下文值到映射規(guī)則索引值“pki”的“直接命中”映射。然而,表“ari_hash_m[] ”的表項的最高有效24位同時表不與相同映射規(guī)則索引值相關(guān)聯(lián)的數(shù)值上下文值的區(qū)間的區(qū)間邊界。有關(guān)此構(gòu)想的細(xì)節(jié)已經(jīng)在前面討論過。12.2.根據(jù)圖 21 的表“ari lookup m”圖21的表中示出了表“ari_lookup_m”的特別有利的實施例的內(nèi)容。此處應(yīng)注意的是,圖21的表列舉表“ari_l00kup_m”的表項。表項以一維整數(shù)型表項索引(也稱為“元素索弓I”或“數(shù)組索弓I”或“表索引”)引用,其例如用“i_max”、“i_min”或“i”表示。應(yīng)注意的是,表“ari_lookup_m”共包括742個表項,極為適合根據(jù)圖5e圖或圖5f的函數(shù)“arith_get_pk”使用。還應(yīng)注意的是,根據(jù)圖21的表“ari_lookup_m”適用于與根據(jù)圖22的表“ ari_hash_m”共同作用。應(yīng)注意的是,表“ari_lookup_m[742] ”的表項以O(shè)至741間的表索引“i” (例如
或“i”)的上升順序列舉。項“Ox”指示以十六進(jìn)制格式描述該表的表項。據(jù)此,第一個表項“0x01”對應(yīng)于具有表索引O的表項“ari_lookup_m
”,且最后一個表項“0x27”對應(yīng)于具有表索引741的表項“ari_lookup_m[741]”。還應(yīng)注意的是,表“ari_lookup_m[] ”的表項與由表“ari_hash_m[] ”的相鄰表項限定的區(qū)間相關(guān)聯(lián)。如此,表“ari_l00kup_m”的表項描述與數(shù)值上下文值的區(qū)間相關(guān)聯(lián)的映射規(guī)則索引值,其中區(qū)間由表“ ari_hash_m”的表項限定。12.3.根據(jù)圖 23(1)、23(2)及 23 ⑶的表“ari cf m「64l「17l”圖23示出了一組64個累積頻率表(或子表)“ari_cf_m[pki] [17] ”,其中的一個由音頻編碼器100、700或音頻解碼器 200、800選擇,用于執(zhí)行函數(shù)“arith_deC0de()”,即用于最高有效位平面值的解碼。圖23 (I)至圖23(3)中所示的64個累積頻率表(或子表)中的一個選擇累積頻率表(或子表)在執(zhí)行函數(shù)“arith_decode O ”中發(fā)揮表“cum_freq[] ”的功能。如圖23(1)至圖23(3)可知,各個子塊或線表示具17個表項的ー個累積頻率表。例如,第一子塊或線2310表示“pki = 0”的累積頻率表的17個表項。第二子塊或線2312表示“pki = I”的累積頻率表的17個表項。最后,第64個子塊或線2364表示“pki = 63”的累積頻率表的17個表項。如此,圖23(1)至圖23(3)有效表示對應(yīng)于“pki = 0”至“pki=95”的64個不同累積頻率表(或子表),其中64個累積頻率表各自以ー個子塊(以大括號括出)或線表示,且其中每個所述累積頻率表均包括17個表項。在ー個子塊或線(例如,子塊或線2310或2312,或子塊或線2396)內(nèi)部,第一個值(例如,第一子塊2310的第一個值708)描述由子塊或線表不的累積頻率表的第一個表項(具有數(shù)組索引或表索引0),且最后ー個值(例如,第一子塊或線2310的最后ー個值0)描述由子塊或線表示的累積頻率表的最后ー個表項(具有數(shù)組索引或表索引16)。據(jù)此,圖23的表格表示的各個子塊或線2310、2312、2364表示由根據(jù)圖5g或根據(jù)圖5h及5i的函數(shù)“arith_decode”所使用的累積頻率表的表項。函數(shù)“arith_decode”的輸入變量“cum_freq[] ”描述64個累積頻率表(以表“arith_cf_m”的17個表項的個別子塊表示)中的哪ー個須用于當(dāng)前頻譜系數(shù)的解碼。12.4.根據(jù)圖 24 的表“ari cf r「1”圖24示出了表“ari_cf_r □”的內(nèi)容。圖24中示出了所述表的四個表項。然而,應(yīng)注意的是,在其他實施例中,表“ari_cf_r”最終可能不同。13.概述、效能評估及優(yōu)點根據(jù)本發(fā)明的實施例使用如前文討論的更新的函數(shù)(或算法)及更新的ー組表,以獲得計算復(fù)雜度、內(nèi)存需求與編碼效率間的改良折衷??偟貋碚f,根據(jù)本發(fā)明的實施例創(chuàng)建改良型頻譜無噪聲編碼。根據(jù)本發(fā)明的實施例描述以USAC(統(tǒng)ー語音及音頻編碼)的頻譜無噪聲編碼的加強。根據(jù)本發(fā)明的實施例,對基于MPEG輸入報告ml6912及ml7002中所提出的方案的改良型頻譜噪聲編碼的CE,形成更新的提案。這兩個提案經(jīng)評估,消除了潛在缺點,并結(jié)合了優(yōu)勢。另外,本發(fā)明的實施例包括更新無噪聲頻譜編碼表以便用于當(dāng)前USAC規(guī)范。13.1.概沭在下文中,將給出簡短概述。在正在標(biāo)準(zhǔn)化USAC(統(tǒng)ー語音及音頻編碼)的過程中,提出了 USAC中的增強頻譜無噪聲編碼方案(也稱為熵編碼方案)。該增強頻譜無噪聲編碼方案有助于更有效地?zé)o損地編碼量化頻譜系數(shù)。因此,將頻譜系數(shù)映射到可變長度的對應(yīng)碼字。熵編碼方案以基于上下文的算木編碼方案為基礎(chǔ):頻譜系數(shù)的上下文(即,相鄰頻譜系數(shù))確定用于頻譜系數(shù)算術(shù)編碼的概率分布(累積頻率表)。根據(jù)本發(fā)明的實施例使用更新的一組表用于頻譜編碼方案,如先前在USAC的上下文中提出。給了給出背景,應(yīng)注意的是,傳統(tǒng)的頻譜無噪聲編碼技術(shù)首先由算法組成,其次由一組訓(xùn)練表組成(或至少包括算法及一組訓(xùn)練表)。這種傳統(tǒng)的訓(xùn)練表基于USAC WD4位流。由于USAC現(xiàn)在已發(fā)展成WD7,且顯著變化同時適用于USAC規(guī)范,因此在根據(jù)本發(fā)明的實施例中使用一組新的再訓(xùn)練表,以最近的USAC版WD7為基礎(chǔ)。該算法本身保持不變。由此,再訓(xùn)練表具有比任何事先提出的方案好的壓縮效率。
根據(jù)本發(fā)明,提出用這里提出的再訓(xùn)練表替代傳統(tǒng)的訓(xùn)練表,從而使得編碼效率增加。13.2.概論在下文中,將提出概論。對于USAC工作項目,在最后會議中以協(xié)作方式提出了更新無噪聲編碼方案的幾項提案。然而,基本上在第89屆會議上啟動該工作。從那時起,對有關(guān)頻譜系數(shù)編碼的所有提案來說普遍的做法是基于USAC WD4參考質(zhì)量位流示出性能結(jié)果以及基于WD4訓(xùn)練數(shù)據(jù)庫的訓(xùn)練。同時,USAC的其他領(lǐng)域的很大改進(jìn),尤其是立體處理及開窗的很大改進(jìn)至今已并入USAC規(guī)范。人們發(fā)現(xiàn),這些改進(jìn)對頻譜無噪聲編碼的統(tǒng)計也略有影響。因此,針對無噪聲編碼CE示出的結(jié)果可以被視為是并不理想的,原因是不對應(yīng)于最近的WD修訂。據(jù)此,提出了頻譜無噪聲編碼表,其更加適于更新的算法及待編碼解碼的頻譜值的統(tǒng)計。13.3.算法簡沭在下文中,將對算法進(jìn)行簡述。為了克服內(nèi)存占用(footprint)及計算復(fù)雜度的問題,提出改良型無噪聲編碼方案來取代工作草案6/7 (WD6/7)中的方案。開發(fā)的主要焦點放在減少內(nèi)存需求,同時維持壓縮效率且不增加計算復(fù)雜度。更明確地說,目的是為了實現(xiàn)壓縮效率、復(fù)雜度及內(nèi)存需求的多維復(fù)雜度空間的最佳折衷。新穎編碼方案提案借用WD6/7無`噪聲編碼器的主要特征,即上下文適應(yīng)性。上下文使用事先解碼的頻譜系數(shù)導(dǎo)出,如同在WD6/7中,該頻譜系數(shù)來自于過去幀及當(dāng)前幀。然而,頻譜系數(shù)現(xiàn)在通過將兩個系數(shù)組合在一起以形成2元組而被編碼。另一個差異在于頻譜系數(shù)現(xiàn)在被分裂成三部分:符號、MSB及LSB。符號與幅度獨立地編碼,其又再劃分成兩部分:兩個最高有效位及其余的位(若存在)。兩個元素的幅度小于或等于3的2元組通過MSB編碼而直接編碼。否則,首先傳輸脫序碼字來標(biāo)示任何額外位平面。在基礎(chǔ)版本中,遺漏的信息,即LSB及符號,皆使用均勻概率分布編碼。表大小的縮小仍屬可能,原因在于: 只需存儲17個符號的概率:{
,[O ;+3]}+ESC符號; 無需存儲群組表(egroups、dgroups、dgvectors);以及 散列表的大小可以通過適當(dāng)訓(xùn)練加以縮小。13.3.1.MSB 編碼在下文中將對MSB編碼進(jìn)行描述。如前文已述,WD6/7,先前提案與本提案間的主要差異為符號的維度。WD6/7中,4元組被考慮用于上下文的產(chǎn)生及無噪聲編碼。在先前提案中,使用I元組取而代之用來減少ROM需求。在開發(fā)過程中,發(fā)現(xiàn)2元組為減少ROM需求,而不增加計算復(fù)雜度的最佳折衷。對于上下文更新,現(xiàn)在考慮四個2元組,而不考慮四個4元組。如第25圖所示,三個2元組來自過去幀,且一個2元組來自當(dāng)前幀。表的大小縮小是由于三個主要因素。首先,只需存儲17個符號的概率(即,{[O ;+3], [O ;+3]}+ESC 符號)。不再需要群組表(即,egroups、dgroups、dgvectors)。而且,散列表的大小可通過實施適當(dāng)訓(xùn)練加以縮小。 雖然維度從4減至2,但復(fù)雜度仍維持與WD6/7相同的范圍。這是通過簡化上下文產(chǎn)生及散列表存取而實現(xiàn)的。不同的簡化及優(yōu)化以編碼效率不受影響,甚至略有改良的方式進(jìn)行。13.3.2.LSB 編碼LSB以均勻概率分布編碼。與WD6/7比較,LSB現(xiàn)在被考慮進(jìn)2元組而非4_元組。然而,最低有效位的不同編碼是可能的。13.3.3.符號編碼為了減少復(fù)雜度,符號并未使用算木核心編碼器編碼。唯有當(dāng)相對應(yīng)幅度為非空時符號才以1-位傳輸。0表不正值而I表不負(fù)值。13.4.提議的表格更新該貢獻(xiàn)為USAC頻譜無噪聲編碼方案提供ー組更新的表。該表基于當(dāng)前USACWD6/7位流被再訓(xùn)練。除了由訓(xùn)練過程產(chǎn)生的實際表之外,該算法保持不變。為了調(diào)查再訓(xùn)練的效果,將新表的編碼效率及內(nèi)存需求與先前提案(M17558)及WD6進(jìn)行比較。WD6被選擇作用參考點,因為a)相對于該參考而給出第92屆會議的結(jié)果,b)WD6與WD7之間的差異只有極小(僅錯誤更正,對熵編碼或頻譜系數(shù)的分布沒有影響)。13.4.1.編碼效率首先,將提議的一組新表的編碼效率與在M17558中提議的USACWD6及CE進(jìn)行比較。如從圖26的表格表示可知,通過單純的再訓(xùn)練,編碼效率平均増加(與WD6相比)可以從1.74% (1117558)增加至2.45% (新提案,根據(jù)本發(fā)明的實施例)。與M17558相比,在根據(jù)本發(fā)明的實施例中壓縮增益由此可以増加大約0.7%。圖27可視化地示出了用于所有操作點的壓縮增益。如圖可知,與WD6相比,可以使用根據(jù)本發(fā)明的實施例達(dá)到至少2%的最小壓縮增益。對于低位率,比如12kbit/s及16kbit/s,壓縮增益輕微增加。還以諸如64kbit/s的更高位率保持良好的性能,其中可以觀察到大于3%的編碼效率顯著增加。應(yīng)注意的是,在不違背位存儲約束的情況下證明可以對所有WD6參考質(zhì)量位流進(jìn)行無損轉(zhuǎn)碼。13.6章節(jié)中將給出更詳細(xì)的結(jié)果。13.4.2.內(nèi)存需求及復(fù)雜度其次,將內(nèi)存需求及復(fù)雜度與在M17558中提議的USAC WD6及CE進(jìn)行比較。圖28的表將在M17558及根據(jù)本發(fā)明的實施例的新提案中提議的WD6的無噪聲編碼器的內(nèi)側(cè)需求進(jìn)行比較。可以清楚地看到,采用新算法明顯降低內(nèi)存需求,如M17558中所提議。更進(jìn)一歩地,可以看出對于新提案來說,表的總大小甚至可以稍微減小差不多80個字(32位),從而產(chǎn)生1441字的總ROM需求及每音頻信道64字(32位)的總RAM需求。ROM需求的少量保存是通過自動訓(xùn)練算法基于ー組新的WD6訓(xùn)練位流得出的概率模型數(shù)目與散列表大小之間的良好折衷的結(jié)果。有關(guān)更多細(xì)節(jié)請參考圖29的表。就復(fù)雜度而言,將新提議的方案的計算復(fù)雜度與USAC中的當(dāng)前無噪聲的優(yōu)化版本進(jìn)行比較。通過“筆紙法”并通過指示代碼發(fā)現(xiàn),新的編碼方案與當(dāng)前方案具有相同的復(fù)雜度。據(jù)針對32kbps立體聲的圖30的表及針對12kbps單聲道操作點的圖31的表報道,所估計的復(fù)雜度分別示出了 WD6無噪聲解碼器的優(yōu)化實現(xiàn)內(nèi)的0.006加權(quán)MOPS及0.024加權(quán)MOPS的增加。與大約11.7 P⑶[2]的整體復(fù)雜度相比,這些差異被認(rèn)為是無足輕重的。13.5.結(jié)論在下文中,將提供一些結(jié)論。提出了 USAC頻譜無噪聲編碼方案的一組新表。與由基于更舊位流的培訓(xùn)結(jié)果的先前提案相比,現(xiàn)在在當(dāng)前USAC WD位流上對提議的新表進(jìn)行訓(xùn)練,其中使用了先進(jìn)的訓(xùn)練概念。通過該再訓(xùn)練,在不犧牲較低內(nèi)存需求或增加復(fù)雜度的情況下,可以提高當(dāng)前USAC位流的編碼效率。與USAC WD6相比,可以顯著降低內(nèi)存需求。13.6.關(guān)于WD6位流轉(zhuǎn)碼的詳細(xì)信息關(guān)于工作草案6(WD6)位流轉(zhuǎn)碼的詳細(xì)信息由圖32、33、34、35及36的表格表示可知。圖32示出了由根據(jù)本發(fā)明的實施例中以及在WD6中的算術(shù)編碼器產(chǎn)生的平均位率的表格表不。圖33不出了基于巾貞的使用提議方案的最小、最大及平均位率的表格表不。圖34示出了使用WD6算術(shù)編碼器及根據(jù)本發(fā)明的實施例(“新提案”)的編碼器由USAC編碼器產(chǎn)生的平均位率的表格表示。圖35示出了根據(jù)本發(fā)明的實施例的最佳情況及最差情況的表格表示。圖36示出了根據(jù)本發(fā)明的實施例的位存儲極限的表格表示。14.與工作草案6或工作草案7相比時的變化在下文中,將描述與傳統(tǒng)無噪聲編碼相比時的無噪聲編碼的變化。據(jù)此,當(dāng)與USAC草案標(biāo)準(zhǔn)的工作草案6或工作草案7相比時,針對修改定義實施例。特別地,將描述WD文本的變化。換言之,該章節(jié)列舉了 USAC規(guī)范WD7的一整組變化。14.1.摶術(shù)說明的奪化提議的新的無噪聲編碼對下文將描述的MPEG USAC WD造成修改。標(biāo)出主要差別。14.1.1.語法及有效載荷的變化圖7示出了算術(shù)編碼數(shù)據(jù)“arith_data() ”的語法的表示。標(biāo)出主要差別。在下文中,將描述相對于頻譜無噪聲編碼器的有效載荷的變化。來自“線性預(yù)測域”編碼信號及“頻域”編碼信號的頻譜系數(shù)經(jīng)定標(biāo)量化,然后通過適應(yīng)性上下文相關(guān)算術(shù)編碼而無噪聲地編碼。量化系數(shù)在從最低頻傳輸至最高頻之前收集成2元組。應(yīng)注意的是,當(dāng)與頻譜無噪聲編碼的先前版本相比時,使用2元組構(gòu)成變化。然而,另一個變化是各個2元組分裂成符號S、最高有效逐2位平面m,及其余的較低有效位平面r。同樣,變化在于值m根據(jù)系數(shù)鄰近關(guān)系而被編碼,且其余的較低有效位平面r經(jīng)熵編碼而未考慮上下文。同樣,針對一部分先前版本的變化在于值m及r形成算術(shù)編碼器的符號。最后,針對一部分先前版本的變化在于對每個非空量化系數(shù)而言,符號s使用I位而在算術(shù)編碼器外部編碼。下面在章節(jié)14.2.3中對詳細(xì)的算術(shù)解碼程序進(jìn)行描述。14.1.2.定義及輔助元素的變化在圖38中的定義及輔助元素的表示中示出定義及輔助元素的變化。14.2.頻譜無噪聲編碼
在下文中,將概述根據(jù)實施例的頻譜無噪聲編碼。14.2.1.工具描沭頻譜無噪聲編碼用于進(jìn)ー步減少量化頻譜的冗余。頻譜無噪聲編碼方案基于算術(shù)編碼,并結(jié)合動態(tài)調(diào)適上下文。無噪聲編碼通過量化頻譜值饋送并使用源自四個事先解碼的相鄰關(guān)系的上下文相關(guān)累積頻譜表。這里,要考慮時間和頻率的相鄰關(guān)系,如圖25所示。累積頻率表然后由算木編碼器用來生成可變長度ニ進(jìn)制碼。算術(shù)編碼器產(chǎn)生用于ー組給定的符號及各自的概率的ニ進(jìn)制碼。通過映射概率區(qū)間而生成ニ進(jìn)制碼,其中對碼字來說存在ー組符號。14.2.2.Ct SI圖39中描述了定 義及輔助元素。標(biāo)記與算木編碼的先前版本相比時的變化。14.2.3.解碼討稈量化頻譜系數(shù)qdec從最低頻率系數(shù)開始無噪聲地解碼并發(fā)展成最高頻率系數(shù)。通過集成所謂的2元組{a,b}的成組的兩個連續(xù)系數(shù)a及b進(jìn)行解碼。然后將用于AAC的解碼系數(shù)存儲在數(shù)組x_ac_quant[g] [win] [sfb] [bin]中。無噪聲編碼碼字的傳輸順序使得當(dāng)按照數(shù)組中接收并存儲的順序進(jìn)行解碼時,bin是最快遞增索引,g是最慢遞增索引。在碼字內(nèi),解碼順序為a,然后為b。將用于TCX的解碼系數(shù)存儲在數(shù)組x_ac_quant [g] [win] [sfb] [bin]中,且無噪聲編碼碼字的傳輸順序使得當(dāng)按照數(shù)組中接收并存儲的順序進(jìn)行解碼時,bin是最快遞增索弓I,win是最慢遞增索引。在碼字內(nèi),解碼順序為a,然后為b。解碼程序從初始化階段開始,其中在存儲在qs中的保存過去上下文及當(dāng)前幀q的上下文之間進(jìn)行映射。過去上下文qs以每頻率線2位存儲。有關(guān)更多細(xì)節(jié)請參考圖40a中的算法“arith_map_context”的偽編程碼表示。無噪聲解碼器輸出無符號且已量化的頻譜系數(shù)的2元組。首先,上下文狀態(tài)c基于環(huán)繞欲解碼2元組的事先解碼頻譜系數(shù)來計算。因此,只考慮兩個新的2元組,使用最后一個解碼2元組的上下文狀態(tài),遞增地更新狀態(tài)。狀態(tài)以17位解碼,及由函數(shù)“arith_get_context (),,返回。圖40b中示出了函數(shù)“arith_get_context () ”的偽程序碼表示。一旦計算出上下文狀態(tài)C,就使用具有對應(yīng)于概率模型的合適累積頻率表的arith_decode ()來解碼最有效逐2位平面m,該概率模型對應(yīng)于上下文狀態(tài)。通過函數(shù)arxth_get_k ()進(jìn)行對應(yīng)。圖40c中示出了函數(shù)“arith_get_pk() ”的偽程序碼表示。使用用累積頻率表“arith_cf_m[pki] □”調(diào)用的函數(shù)“arith decode () ”來解碼值m,此處“pki”對應(yīng)于由“ arith_get_pk()”返回的索引。算術(shù)編碼器為使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實現(xiàn)。圖40d及圖40e中所示的偽C碼描述所使用的算法。當(dāng)解碼值m為脫序符號“ARITH_ESCAPE”時,變量“l(fā)ev”及“esc_nb”遞增I,而另ー值m被解碼。在這種情況下,函數(shù)“get_pk()”再次以值“c&esc_nb<< 17”作為輸入?yún)?shù)而被調(diào)用,此處“esc_nb”是先前對相同2元組解碼且限于7的脫序符號的數(shù)目。一旦值m不是脫序符號“ARITH_ESCAPE”,解碼器就檢查連續(xù)的m是否形成“ARITH_STOP”符號。若條件“ (esc_nb > 0&&m = = O) ”為真,則檢測到“ARITH_STOP”符號且結(jié)束解碼過程。解碼器直接跳至arith_SaVe_COnteXt()函數(shù)。該條件表示該幀其余部分由零值組成。若不滿足“ARITH_ST0P”符號,則對當(dāng)前2元組解碼其余位平面(若存在)解碼。其余位平面通過使用用累積頻率表“arith_cf_r[] ”調(diào)用的“arith_deCOde O ” “l(fā)ev”次而從最高有效位階至最低有效位階解碼。已解碼位平面r允許根據(jù)圖40f中所示的偽程序碼表示的函數(shù)或算法來改進(jìn)事先解碼的值m。此時,2元組{a,b}的無符號值被完全經(jīng)解碼。上下文“q”也針對下一個2元組更新。此上下文更新也對最后一個2元組執(zhí)行。更新通過函數(shù)“arith_update_context O ”,圖40g中所示的偽程序碼表示執(zhí)行。該幀的下一個2元組然后通過i遞增1,且通過調(diào)用函數(shù)進(jìn)行解碼。當(dāng)lg/2個2元組利用巾貞解碼或出現(xiàn)終止符號“ARITH_ST0P”時,調(diào)用函數(shù)“arith_save_context O ”。針對下一幀將上下文保存并存儲在“qs”中。圖40h中示出了函數(shù)或算法“arith_save_context O ”的偽程序碼表示。一旦全部無符號且已量化的頻譜系數(shù)都已解碼,就補上符號。對“qdec”的各個非空量化值,讀取位。若所讀取的位值等于0,則該量化值為正,不做任何動作,且符號值等于事先解碼的無符號值。否則,解碼系數(shù)為負(fù),2的補碼取自無符號值。符號位從低頻至高頻讀取。14.2.4.審新的表圖 41 (I)、41 (2)、42 (I)、42 (2)、42 (3)、42 (4)、43 (I)、43 (2)、43 (3)、43 (4)、43 (5)、43(6)及44中示出了與上述算法一起使用的一組再訓(xùn)練表。圖41(1)和圖41⑵示出了根據(jù)本發(fā)明的實施例的表“ari_lookup_m[742] ”的內(nèi)容的表格表不;圖42 (I)、42 (2)、42 (3) ,42(4)示出了根據(jù)本發(fā)明的實施例的表“ari_hash_m[742] ”的內(nèi)容的表格表不;圖43(1)、43(2)、43(3)、43(4)、43(5)、43(6)示出了根據(jù)本發(fā)明的實施例的表“ari_cf_m[96] [17] ”的內(nèi)容的表格表示;圖44示出了根據(jù)本發(fā)明的實施例的表“ari_Cf_r[4] ”的表格表示。綜上所述,可知根據(jù)本發(fā)明的實施例提供計算復(fù)雜度、內(nèi)存需求與編碼效率間的特佳折衷。15.位流語法15.1.頻譜無噪聲編碼器的有效載荷在下文中將描述有關(guān)頻譜無噪聲編碼器的有效載荷的若干細(xì)節(jié)。在某些實施例中,有多種不同編碼模式,諸如所謂的“線性預(yù)測域”編碼模式及“頻域”編碼模式。在線性預(yù)測域編碼模式中,噪聲整形基于音頻信號的線性預(yù)測分析來執(zhí)行,且在頻域編碼模式中,噪聲整形(shaping)基于心理聲學(xué)分析來執(zhí)行,且音頻內(nèi)容的噪聲整形版本在頻域中編碼。來自“線性預(yù)測域”編碼信號及“頻域”編碼信號的頻譜系數(shù)經(jīng)定標(biāo)量化,然后通過適應(yīng)性上下文相關(guān)算術(shù)編碼而無噪聲地編碼。量化系數(shù)在從最低頻傳輸至最高頻之前收集成2元組。各個2元組分裂成符號S、最高有效逐2-位平面m,及其余的一個或多個較低有效位平面r(若有)。值m根據(jù)由鄰近的頻譜系數(shù)所定義的上下文編碼。換言之,m根據(jù)系數(shù)鄰近關(guān)系而被編碼。其余的較低有效位平面r經(jīng)熵編碼而未考慮上下文。利用m及r,這些頻譜系數(shù)的幅度在解碼器側(cè)重構(gòu)。對于全部非空符號而言,符號s使用I位而在算術(shù)編碼器外部編碼。換言之,值m及r形成算術(shù)編碼的符號。最后,對每個非空量化系數(shù)而言,符號s使用I位而在算術(shù)編碼器外部編碼。本文對詳細(xì)的算木編碼程序進(jìn)行了描述。15.2.根據(jù)圖6a至圖6i的語法元素在下文中將參照圖6a至6j描述攜帶算術(shù)編碼頻譜信息的位流的位流語法。圖6a示出了所謂的USAC原始數(shù)據(jù)塊(“usac_raw_data_block (),,)的語法表示。USAC原始數(shù)據(jù)塊包括ー個或多個單一信道元素(“single_channel_element () ”)和/或一個或多個成對信道元素(“channel_pair_element () ”)。現(xiàn)在參照圖6b,描述單一信道元素的語法。視核心模式而定,單一信道元素包括線性預(yù)測域信道流(“l(fā)pd_channel_stream() ”)或頻域信道流(“fd_channel_stream() ”)。圖6c示出了成對信道元素的語法表示。成對信道元素包括核心模式信息(“Core_mOde0”、“COre_mOdel”)。另外,成對信道元素可以包括配置信息“ics_info () ”。此外,依據(jù)核心模式信息,成對信道元素包括與信道中的第一個相關(guān)聯(lián)的線性預(yù)測域信道流或頻域信道流,且成對信道元素還包括與信道中的第二個相關(guān)聯(lián)的線性預(yù)測域信道流或頻域信道流。其語法表示顯示在圖6d中的配置信息“icS_info() ”包括多個不同配置信息項,其對本發(fā)明并無特別的關(guān)聯(lián)。其語法表示示出在圖6e中的頻域信道流(“fd_channel_stream() ”)包括增益信息(“global_gain”)及配置信息“ icsjnfo () ”。此外,頻域信道流包括定標(biāo)因子數(shù)據(jù)("scale_factor_data() ”),其描述用于不同定標(biāo)因子頻帶的頻譜值的定標(biāo)的定標(biāo)因子,且例如通過定標(biāo)器150及重定標(biāo)器240應(yīng)用。頻域信道流還包括表示算木編碼頻譜值的算木編碼頻譜數(shù)據(jù)(“ac_spectral_data() ”)。其語法表示示出在圖6f中的算術(shù)編碼頻譜數(shù)據(jù)(“ac_spectral_data() ”)包括用于選擇性地重置上下文(如前所述)的選擇性算木重置標(biāo)記(“arith_reset_flag”)。此夕卜,算木編碼頻譜數(shù)據(jù)包括攜帶該等算木編碼頻譜值的多個算術(shù)數(shù)據(jù)塊(“arith_data”)。算術(shù)編碼數(shù)據(jù)塊的結(jié)構(gòu)取決于頻帶數(shù)目(通過變量“num_bands”表示),且還取決于算木重置標(biāo)記的狀態(tài),容后詳述。在下文中將參照圖6g描述算術(shù)編碼數(shù)據(jù)塊的結(jié)構(gòu),其示出了所述算術(shù)編碼數(shù)據(jù)塊的語法表示。在算木編碼數(shù)據(jù)塊內(nèi)部的數(shù)據(jù)表示取決于待編碼頻譜值的數(shù)目lg、算木重置標(biāo)記的狀態(tài),也取決于上下文,即事先編碼的頻譜值。頻譜值的當(dāng)前集合(例如,2元組)的編碼用上下文依據(jù)參考標(biāo)號660所示上下文確定算法來確定。有關(guān)上下文測定算法的細(xì)節(jié)已經(jīng)參照圖5a及圖5b在上文中描述過。算木編碼數(shù)據(jù)塊包括lg/2各碼字集合,各個碼字集合表示多個(例如,ー個2元組)頻譜值。碼字集合包括使用I至20個位表示頻譜值的元組的最高有效位平面值m的算術(shù)碼字“acod_m[pki] [m] ”。此外,為了正確表示,如果頻譜值的元組要求比正確表示的最高有效位平面更多的位平面,碼字集合包括ー個或多個碼字“ acod_r[r]”。碼字“ acod_r[r]”使用I至14個位來表示較低有效位平面。然而,若為了頻譜值的適當(dāng)表示要求一個或多個較低有效位平面(除了最高有效位平面之外)時,使用一個或多個算術(shù)脫序碼字(“ARITH_ESCAPE”)來表示。如此,通常,對頻譜值,確定需要多少個位平面(最高有效位平面,及可能,一個或多個額外較低有效位平面)。若要求一個或多個較低有效位平面,則通過一個或多個算術(shù)脫序碼字“acod_m[pki][ARITH_ESCAPE] ”來表示,這些算術(shù)脫序碼字依據(jù)當(dāng)前選擇的累積頻率表而編碼,當(dāng)前選擇的累積頻率表的累積頻率索引由變量“pki”給定。此外,如由參考標(biāo)號664、662可知,若一個或多個算術(shù)脫序碼字包括在位流中,則上下文被修改。如參考標(biāo)號663所示,在算術(shù)脫序碼字之后,算術(shù)碼字“aCod_m[pki] [m] ”包括在位流中,其中“pki ”標(biāo)示當(dāng)前有效概率模型索引(將通過包括算術(shù)脫序碼字所造成的上下文適應(yīng)性列入考慮),且其中m標(biāo)示待編碼或待解碼頻譜值的最高有效位平面值(其中,m不同于“ARITH_ESCAPE”碼字)。如前文討論,任何較低有效位平面的存在會導(dǎo)致一個或多個碼字“acod_r[r] ”的存在,其各自表示第一個頻譜值的最低有效位平面的位,且其各自也表示第二個頻譜值的最低有效位平面的位。一個或多個碼字“acod_r[r]”依據(jù)對應(yīng)的累積頻率表來編碼,該表例如可為常數(shù)及上下文非相依性。但也可能使用不同選擇機制來選擇用于一個或多個碼字"acod_r[r] ”解碼的累積頻率表。此外,應(yīng)注意的是,在各個頻譜值元組編碼后,上下文被更新,如參考標(biāo)號668所示,使得上下文通常變得不同,以用于隨后接續(xù)的兩個頻譜值元組的編碼及解碼。圖6i示出了定義算數(shù)編碼數(shù)據(jù)塊的語法的定義及輔助元素的圖例。此外,圖6h中示出了算術(shù)數(shù)據(jù)“arith_data() ”的其他語法,而圖6j中示出了相對應(yīng)的定義及輔助元素的圖例。綜上所述,已經(jīng)描述可由音頻編碼器100提供且可由音頻解碼器200評估的位流格式。算術(shù)編碼頻譜值的位流經(jīng)編碼使得其適合前文討論的解碼算法。另外,一般情況下應(yīng)注意的是,編碼為解碼的逆向運算,因而通??杉僭O(shè)編碼器使用前文討論的表執(zhí)行表查找,近似為通過解碼器執(zhí)行的表查找的反向。一般而言,可以說知曉解碼算法和/或期望的位流語法的本領(lǐng)域的技術(shù)人員將容易設(shè)計出一種提供位流語法中定義的及算術(shù)解碼器所需的數(shù)據(jù)的算術(shù)編碼器。此外,應(yīng)注意的是,用于確定數(shù)值當(dāng)前上下文值及用于導(dǎo)出映射規(guī)則索引值的機制在音頻編碼器及音頻解碼器中可能是相同的,原因在于通常期望音頻解碼器使用與音頻編碼器相同的上下文,使得解碼與編碼相適應(yīng)。15.3.根據(jù)圖6k、圖61、圖6m、圖6n、圖6o及圖6d的語法元素在下文中,將參照圖6k、l61、l6m、l6n、l6o及l(fā)6p對來自替代位流語法的
摘錄進(jìn)行描述。圖6k 不出了位流兀素“UsacSingleChannelElement (indepFlag) ”的語法表不。所述語法元素“UsacSingleChannelEIement (indepFlag) ”包括描述一個核心編碼器信道的語法兀素 “UsacCoreCoderData”。圖61 不出了位流兀素 “UsacChannelPairElement (indepFlag) ” 的語法表不。所述語法元素“UsacChannelPairElement (indepFlag) ”包括描述一個或兩個核心編碼器信道的語法元素“UsacCoreCoderData”,這取決于立體構(gòu)型。
圖6m示出了位流元素“ ics_info() ”的語法表示,其包括若干參數(shù)的定義,如圖6m可知。 圖6n示出了位流元素“UsacCoreCoderData () ”的語法表示。該位流元素“UsacCoreCoderData () ”包括一個或多個線性預(yù)測域信道流“ lpd_channel_srream() ”和/或一個或多個頻域信道流“fd_channel_stream() ”。其他控制信息可以任選包括在位流元素 “UsacCoreCoderData0 ” 中,如圖 6n 可知。圖6o示出了位流元素“fd_Channel_Stream() ”的語法表示。該位流元素“fd_channel_stream () ”包括其他可選位流元素中的位流元素“ scale_factor_data () ”及位流兀素 “ac_spectral_data () ”。圖6p示出了位流元素“ac_spectral data()”的語法表示。該位流元素“ac_spectral data() ”可選包括位流元素“arith_reSet_flag”。此外,位流元素還包括若干算術(shù)編碼數(shù)據(jù)“arith_data() ”。算術(shù)編碼數(shù)據(jù)例如可以遵循參照圖6g描述的位流語法。16.實現(xiàn)的替代方案雖然已就裝置上下文描述了若干方面,但顯然這些方面也表示對應(yīng)方法的描述,其中塊或裝置對應(yīng)于方法步驟或方法步驟的特征。類似地,就方法步驟的上下文所描述的方面也表示對應(yīng)裝置的對應(yīng)塊或項目或特征的描述。部分或全部方法步驟可通過(或使用)硬件裝置,例如微處理器、可編程計算機或電子電路來執(zhí)行。在某些實施例中,最重要的方法步驟中的某一個或多個可通過這種裝置來執(zhí)行。本發(fā)明的編碼音頻信號可存儲在數(shù)字存儲介質(zhì)或可在諸如無線傳輸介質(zhì)或諸如因特網(wǎng)的有線傳輸介質(zhì)的傳輸介質(zhì)上傳輸。依據(jù)某些實現(xiàn)要求,本發(fā)明的實施例可以以硬件或軟件形式來實現(xiàn)。實現(xiàn)可使用數(shù)字傳輸介質(zhì)執(zhí)行,例如軟盤、DVD、藍(lán)光盤、CD、R0M、PR0M、EPR0M、EEPR0M、或閃存,其上存儲有電子可讀取控制信號,所述電子可讀取控制信號與可編程計算機系統(tǒng)協(xié)作(或可協(xié)作),因而可執(zhí)行該方法。因此,數(shù)字存儲介質(zhì)可能是計算機可讀取的。根據(jù)本發(fā)明的某些實施例包括具有電子可讀取控制信號的數(shù)據(jù)載體,該電子可讀取控制信號能夠與可編程計算機系統(tǒng)協(xié)作,因而執(zhí)行本文所述方法中的ー種。一般而言,本發(fā)明的實施例能實施為帶有程序碼的計算機程序產(chǎn)品,當(dāng)該計算機程序碼產(chǎn)品在計算機上運行時,該程序碼可操作來執(zhí)行這些方法中的ー種。程序碼,例如可存儲在機器可讀取載體上。其他實施例包括存儲在機器可讀取載體上用于執(zhí)行本文所述方法中的一種的計算機程序。因此,換言之,本發(fā)明方法的實施例是ー種計算機程序,該計算機程序具有,當(dāng)該計算機程序在計算機上運行時,用于執(zhí)行本文所述方法中的一種的程序碼。因此,本發(fā)明方法的又一實施例是ー種數(shù)據(jù)載體(或數(shù)字存儲介質(zhì)或計算機可讀取介質(zhì)),它包括記錄于其上的用于執(zhí)行本文所述方法中的一種的計算機程序。該數(shù)據(jù)載體、數(shù)字存儲介質(zhì)或記錄介質(zhì)通常是具體有形的和/或非暫態(tài)的。因此,本發(fā)明方法的又ー實施例是表示用于執(zhí)行本文所述方法中的ー種的數(shù)據(jù)流或一系列信號。該數(shù)據(jù)流或一系列信號例如可以被配置成通過數(shù)據(jù)通訊連接,例如通過因特網(wǎng)傳輸。
又一實施例包括一種處理裝置,例如計算機或可編程邏輯設(shè)備,其被配置為或適用于執(zhí)行本文所述方法中的一種。又一實施例包括一種計算機,其上安裝有用于執(zhí)行本文所述方法中的一種的計算機程序。根據(jù)本發(fā)明的又一實施例,包括一種被配置為傳輸(例如,以電子方式或光學(xué)方式)用于執(zhí)行本文所述方法中的一種的計算機程序給接收器的裝置或系統(tǒng)。該接收器例如可以是計算機、移動裝置、存儲裝置等。該裝置或系統(tǒng)例如可包括一種用來傳輸計算機程序給接收器的文件服務(wù)器。在某些實施例中,一種可編程邏輯設(shè)備(例如,現(xiàn)場可編程門陣列)可用來執(zhí)行本文所述方法的功能中的部分或全部。在某些實施例中,現(xiàn)場可編程門陣列可與微處理器協(xié)作以執(zhí)行本文所述方法中的一種。一般而言,該方法優(yōu)選地通過任一種硬件裝置來執(zhí)行。上述實施例僅供舉例說明本發(fā)明的原理。須理解,本文所述的配置及細(xì)節(jié)的修改及變化對本領(lǐng)域的技術(shù)人員來說是顯而易見的。因此,意圖只受隨附的專利權(quán)利要求的范圍的限制而不受舉例說明與解釋本文實施例所呈現(xiàn)的特定細(xì)節(jié)的限制。17.結(jié)論總結(jié)言之,根據(jù)本發(fā)明的實施例包括下列方面中的一個或多個,其中這些方面可單獨使用或組合使用。a)上下文狀態(tài)散列機制根據(jù)本發(fā)明的一方面,散列表的狀態(tài)被視為有效狀態(tài)及群組邊界。這允許顯著縮小所需表的大小。b)增暈上下文更新根據(jù)一方面,根據(jù)本發(fā)明的某些實施例包括用于更新上下文的計算有效的方式。某些實施例使用增量上下文更新,其中數(shù)值當(dāng)前上下文值從數(shù)值先前上下文值導(dǎo)出。c)卜.下f 導(dǎo) Hi根據(jù)本發(fā)明的一方面,使用兩個頻譜絕對值的和與截取運算相結(jié)合。屬于一種頻譜系數(shù)的增益向量量化(而與傳統(tǒng)的形狀增益向量量化相反)。其目的在于限制上下文順序,同時從鄰近傳輸最有意義的信息。d)審新的表根據(jù)本發(fā)明的一方面,在編碼效率與計算復(fù)雜度之間具有特別好的折衷的優(yōu)化表ari_hash_rn [742]、ari lookup_m[742]及 ari_cf_m[64] [17]適用。應(yīng)用于根據(jù)本發(fā)明的實施例的其他技術(shù)記載在專利申請案PCTEP2101/065725、PCT EP2010/065726、及PCT EP2010/065727中。此外,在根據(jù)本發(fā)明的某些實施例中,使用終止符號。此外,在某些實施例中,只有無符號值被考慮用于上下文。但上文提到的國際專利申請公開了根據(jù)本發(fā)明的某些實施例仍在使用的方面。例如,零區(qū)的識別用在本發(fā)明的某些實施例中。據(jù)此,設(shè)定所謂的“小值標(biāo)記”(例如,數(shù)值當(dāng)前上下文值c的位16)。在某些實施例中,可使用區(qū)域相依性上下文計算。但在其他實施例中,可省略區(qū)域相依性上下文計算以保持復(fù)雜度及表大小相當(dāng)小。此外,使用散列函數(shù)的上下文散列是本發(fā)明的一個重要方面。上下文散列可基于前述未曾公開國際專利申請所述的二表構(gòu)想。但上下文散列的特定適應(yīng)性可用在某些實施例中來提高計算效率。雖說如此,在根據(jù)本發(fā)明的其他實施例中,可使用在上述國際專利申請案中所述的上下文散列。此外,應(yīng)注意的是,増量上下文散列相當(dāng)簡單且計算效率高。同樣,上下文與在本發(fā)明的某些實施例中使用的數(shù)值符號的非相依性協(xié)助簡化上下文,從而保持內(nèi)存需求相當(dāng)?shù)?。在本發(fā)明的某些實施例中,使用利用兩個頻譜值的和與上下文限制的上下文導(dǎo)出。這兩方面可組合。二者的目的都在于通過從鄰近傳輸最有意義的信息而限制上下文順序。在某些實施例中,使用小值標(biāo)記,其可能類似于一組多個零值的識別。在根據(jù)本發(fā)明的某些實施例中,使用算術(shù)終止機制。該構(gòu)想類似于JPEG中具有類似功能的符號“塊結(jié)束”的使用。但在本發(fā)明的某些實施例中,符號(“ARITH_ST0P”)并未明確地包括在熵編碼器中。取而代之,使用先前可能未出現(xiàn)的已存在的符號組合,即“ESC+0”。換言之,音頻解碼器被配置為檢測現(xiàn)存符號的組合,其通常并未用來表示數(shù)值,且將已存符號的組合的出現(xiàn)解譯為算術(shù)終止條件。根據(jù)本發(fā)明的實施例使用一種ニ表上下文散列機制。進(jìn)ー步綜上所述,根據(jù)本發(fā)明的某些實施例可包括下列五個主要方面中的ー個或多個。 改進(jìn)的表; 用于檢測零區(qū)或鄰近的小幅度區(qū)域的擴展上下文; 上下文散列; 上下文狀態(tài)產(chǎn)生:上下文狀態(tài)的增量更新;以及籲下文導(dǎo)出:包括幅度加法及限制的上下文值的特定量化。進(jìn)ー步得出結(jié)論,根據(jù)本發(fā)明的實施例的ー個方面在于增量上下文更新。根據(jù)本發(fā)明的實施例包括一種用于上下文更新的有效構(gòu)想,其避免工作草案(例如,工作草案5)的大規(guī)模計算。更確切地說,在某些實施例中,使用簡單的移位計算及邏輯計算。簡單的上下文更新顯著地協(xié)助上下文的計算。在某些實施例中,上下文與數(shù)值(例如,解碼頻譜值)的符號獨立無關(guān)。上下文與數(shù)值的符號的這組非相依性使上下文變量的計算復(fù)雜度減低。此構(gòu)想以忽略上下文的符號不會造成編碼效率的顯著降級的發(fā)現(xiàn)為基礎(chǔ)出。根據(jù)本發(fā)明的一方面,上下文使用兩個頻譜值的和導(dǎo)出。據(jù)此,用于上下文存儲的內(nèi)存需求顯著減低。如此,在某些情況下,表示兩個頻譜值的和的上下文值的使用可視為是有利的。同樣,在某些情況下,上下文限制帶來顯著改良。在某些實施例中,除了使用兩個頻譜值之和導(dǎo)出上下文之外,上下文數(shù)組“q”的表項被限于“OxF”的最大值,而這又導(dǎo)致內(nèi)存需求的限制。對上下文數(shù)組“q”的值加以限制帶來若干優(yōu)點。在某些實施例中 ,使用所謂的“小值標(biāo)記”。在獲得上下文變量c (也稱為數(shù)值當(dāng)前上下文值)吋,如果某些表項當(dāng)前上下文數(shù)組“q[l] [1-3] ”至“q[l] [1-1] ”的值很小,則設(shè)定標(biāo)記。據(jù)此,可以高效率執(zhí)行上下文的計算??色@得特別有意義的上下文值(例如,數(shù)值當(dāng)前上下文值)。
在某些實施例中,使用算術(shù)終止機制。當(dāng)只余零值時,“ARITH_ST0P”機制允許算術(shù)編碼或解碼的有效停止。據(jù)此,就復(fù)雜度而言,可以中等成本改良編碼效率。根據(jù)本發(fā)明的一方面,使用二表上下文散列機制。上下文的映射使用區(qū)間劃分算法評估表“ari_hash_m”并結(jié)合隨后的對表“ari_lookup_m”的查找表評估來執(zhí)行。此算法比WD3算法更有效。后文將討論若干額外細(xì)節(jié)。此處應(yīng)注意的是,表“ari_hash_m[742] ”及表“ari_lookup_m[742] ”是兩個不同的表。第一個表用來將單一上下文索引(例如,數(shù)值上下文值)映射到概率模型索引(例如,映射規(guī)則索引值),而第二個表用來將由“arith_haSh_m□”中的上下文索引所界限的一組連續(xù)上下文映射到單一概率模型。進(jìn)一步應(yīng)注意的是,表“arith_cf_msb [64] [16] ” 可用作表“ari_cf_m[64] [17]”的替代物,即使維度略為不同亦如此。“ari_cf_m[] □”與“ari_cf_msb [] □”可指同一表,原因在于概率模型的第17個系數(shù)經(jīng)常地為零。當(dāng)計算用于存儲表所需的空間時,偶爾并未將其列入考慮。綜上所述,根據(jù)本發(fā)明的某些實施例提供一種所提出的新穎無噪聲編解碼(編碼或解碼),其產(chǎn)生MPEG USAC工作草案(例如,MPEG USAC工作草案的WD5)的修正。所述修正可見于附圖及相關(guān)描述。作為結(jié)束語,應(yīng)注意的是,變量、數(shù)組、函數(shù)等名稱的前綴詞“ari”及前綴詞“arith”可互換使用。
權(quán)利要求
1.一種音頻解碼器(200; 800),用于基于編碼音頻信息(210;810)提供解碼音頻信息(212; 812),所述音頻解碼器包括: 算術(shù)解碼器(230;820),用于基于頻譜值的算術(shù)編碼表示(222;821)提供多個解碼頻譜值(232; 822);以及 頻域至?xí)r域變換器(260;830),用于使用所述解碼頻譜值(232;822)提供時域音頻表示(262; 812),以獲得所述解碼音頻信息(212; 812); 其中,所述算術(shù)解碼器(232;820)被配置為依據(jù)由數(shù)值當(dāng)前上下文值(c)所描述的上下文狀態(tài)(S)來選擇映射規(guī)則(297;cum_freq[]),所述映射規(guī)則描述表示頻譜值、或頻譜值的最高有效位平面的編碼形式的碼值(value),到表示頻譜值、或頻譜值的最高有效位平面的解碼形式的符號碼(symbol)的映射; 其中,所述算術(shù)解碼器(23 0;820)被配置為依據(jù)多個事先解碼的頻譜值來確定所述數(shù)值當(dāng)前上下文值(c); 其中,所述算術(shù)解碼器被配置為評估散列表(ari_hash_m[])以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界, 其中,所述算術(shù)解碼器被配置為評估散列表,以得出ari_hash_m[i] >> 8等于或大于c的散列表索引值i,同時,如果得出的散列表索引值i大于O,那么所述值ari_hash_m[1-l] >> 8 小于 c; 其中,所述算術(shù)解碼器被配置為選擇由概率模型索引(Pki)確定的映射規(guī)則,當(dāng)ari_hash_m[1-l] > > 8等于c時,所述概率模型索引等于ari_hash_m[i]&&OxFF,否則等于ari_lookup_m[i]; 其中,所述散列表&1^_1^也_111的定義如圖22(1)、圖22(2)、圖22(3)及圖22(4)中給出;以及 其中,所述映射表ari_lookup_m的定義如圖21中給出。
2.根據(jù)權(quán)利要求1所述的音頻解碼器,其中,所述算術(shù)解碼器被配置為使用以下算法來評估所述散列表:
3.根據(jù)權(quán)利要求1或2所述的音頻解碼器(200;800), 其中,所述算術(shù)解碼器被配置為依據(jù)所述映射規(guī)則索引值Pki來選擇描述碼值(value)到符號碼(symbol)的映射的所述映射規(guī)則(297 ;cum_freq[])。
4.根據(jù)權(quán)利要求3所述的音頻解碼器(200;800), 其中,所述算術(shù)解碼器被配置為使用映射規(guī)則索引值作為表索引值來選擇描述碼值(value)到符號碼(symbol)的映射的所述映射規(guī)則(297 ;cum_freq[])。
5.根據(jù)權(quán)利要求1至4中任一項所述的音頻解碼器(200;800),其中所述算術(shù)解碼器被配置為選擇圖23 (I)、圖23 (2)、圖23 (3)中給出的表ari_cf_m[64] [17]的子表(ari_cf_m[pki] [17])中的一個作為所選擇的所述映射規(guī)則。
6.根據(jù)權(quán)利要求1至5中任一項所述的音頻解碼器, 其中,所述算術(shù)解碼器被配置為基于數(shù)值先前上下文值使用以下算法來獲得所述數(shù)值當(dāng)前下下文值:
7.根據(jù)權(quán)利要求6所述的音頻解碼器, 其中,所述算術(shù)解碼器被配置為使用當(dāng)前解碼的多個頻譜值的組合來更新與當(dāng)前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的當(dāng)前解碼的頻譜值的2元組的當(dāng)前頻率索引的上下文子區(qū)域值q[l][i]。
8.根據(jù)權(quán)利要求6或7中任一項所述的音頻解碼器, 其中,所述算術(shù)解碼器被配置為使用以下算法來更新與當(dāng)前音頻幀相關(guān)聯(lián)且具有相關(guān)聯(lián)的當(dāng)前解碼的頻譜值的2元組的頻率索引的上下文子區(qū)域值q[l] [i]:
9.根據(jù)權(quán)利要求1至8中任一項所述的音頻解碼器, 其中,所述算術(shù)解碼器被配置為使用以下算術(shù)解碼算法來提供表示解碼頻譜值的2元組的解碼值m:
10.一種用于音頻解碼器(200; 800),用于基于編碼音頻信息(210; 810)提供解碼音頻信息(212; 812),所述音頻解碼器包括: 算術(shù)解碼器(230;820),用于基于所述頻譜值的算術(shù)編碼表示(222;821)提供多個解碼頻譜值(232; 822);以及 頻域至?xí)r域變換器(260;830),用于使用所述解碼頻譜值(232;822)提供時域音頻表示(262; 812),以獲得所述解碼音頻信息(212; 812); 其中,所述算術(shù)解碼器(232;820)被配置為依據(jù)由數(shù)值當(dāng)前上下文值(c)所描述的上下文狀態(tài)(S)來選擇映射規(guī)則(297;cum_freq[]),所述映射規(guī)則描述表示頻譜值、或頻譜值的最高有效位平面的編碼形式的碼值(value),到表示頻譜值、或頻譜值的最高有效位平面的解碼形式的符號碼(symbol)的映射; 其中,所述算術(shù)解碼器(230;820)被配置為依據(jù)多個事先解碼的頻譜值來確定所述數(shù)值當(dāng)前上下文值(c);其中,所述算術(shù)解碼器被配置為評估散列表(ari_hash_m[])以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界, 其中,所述散列表&1^_1^也_111定正義如圖22(1)、圖22(2)、圖22(3)及圖22⑷中給出; 其中,所述算術(shù)解碼器被配置為評估所述散列表(ari_hash_m),以確定所述數(shù)值當(dāng)前上下文值是否與由散列表(ari_hash_m)的表項所描述的表上下文值相同或確定由散列表(ari_hash_m)的表項所描述的數(shù)值當(dāng)前上下文值所在的區(qū)間,并依據(jù)評估結(jié)果導(dǎo)出描述所、選映射規(guī)則的映射規(guī)則索引值(Pki)。
11.根據(jù)權(quán)利要求10所述的音頻解碼器, 其中,所述算術(shù)解碼器被配置為將所述數(shù)值當(dāng)前上下文值(c)或所述數(shù)值當(dāng)前上下文值的定標(biāo)版本(S)與所述散列表(ari_hash_m[])的一系列數(shù)值排序的表項(j = ari_hash_m[i])或子表項做比較,以便以迭代方式獲得散列表表項(ari_lookup_m[i_max])的散列表索引值(i_max),使得所述數(shù)值當(dāng)前上下文值(C)位于由所獲得的散列表索引值(i_max)指明的所獲得的散列表表項(ari_hash_m[i_max])與相鄰散列表表項(ari_hash_m[i_max-l])所限定的區(qū)間內(nèi)部,以及 其中,所述算術(shù)解碼器被配置為依據(jù)數(shù)值當(dāng)前上下文值(c),或數(shù)值當(dāng)前上下文值的定標(biāo)版本(5),與散列表的當(dāng)前表項或子表項(ari_hash_m[i])之間的比較結(jié)果確定散列表(ari_hash_m[])的一系列表項的下一個表項。
12.根據(jù)權(quán)利要求11所述的音頻解碼器,` 其中,所述算術(shù)解碼器被配置為,如果發(fā)現(xiàn)數(shù)值當(dāng)前上下文值(C)或其定標(biāo)版本(S)等于由當(dāng)前散列表索引值⑴指明的散列表(j = ari_hash_m[i])的第一子表項(j >> ),則選擇由當(dāng)前散列表索引值⑴指明的散列表(ari_hash_m)的第二子表項(j&OxFF)所限定的映射規(guī)則。
13.根據(jù)權(quán)利要求11或12所述的音頻解碼器, 其中,所述算術(shù)解碼器被配置為,如果未發(fā)現(xiàn)所述數(shù)值當(dāng)前上下文值等于所述散列表(ari_hash_m)的子表項,則選擇由映射表ari_lookup_m的表項或子表項(ari_lookup_m[i_max])所限定的映射規(guī)則,其中所述算術(shù)解碼器被配置為依據(jù)以迭代方式獲得的散列表索引值(i_max)選擇映射表的表項或子表項。
14.根據(jù)權(quán)利要求10至13所述的音頻解碼器,其中,所述算術(shù)解碼器被配置為,如果發(fā)現(xiàn)所述數(shù)值當(dāng)前上下文值(c)等于由當(dāng)前散列表索引值(i)指明的散列表的表項(ari_hash_m[i])所限定的值((j >>8),則選擇性地提供由所述當(dāng)前散列表索引值指明的散列表的表項所限定的映射規(guī)則索弓I值。
15.一種用于基于編碼音頻信息(210; 810)提供解碼音頻信息(212; 812)的方法,所述方法包括以下步驟: 基于頻譜值的算術(shù)編碼表示(222;821)提供多個解碼頻譜值(232;822);以及 使用所述解碼頻譜值(232;822)提供時域音頻表示(262;812),以獲得所述解碼音頻信息(212; 812); 其中,提供多個解碼頻譜值包括依據(jù)由數(shù)值當(dāng)前上下文值(c)所描述的上下文狀態(tài)(S)來選擇映射規(guī)則(297; cum_freq[]),所述映射規(guī)則描述表示頻譜值、或頻譜值的最高有效位平面的編碼形式的碼值(value),到表示頻譜值、或頻譜值的最高有效位平面的解碼形式的符號碼(symbol)的映射; 其中,依據(jù)多個事先解碼的頻譜值來確定所述數(shù)值當(dāng)前上下文值(C); 其中,評估散列表(ari_hash_m[])以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界, 其中,使用以下算法評估所述散列表:
16.一種用 于基于編碼音頻信息(210; 810)提供解碼音頻信息(212; 812)的方法,所述方法包括以下步驟: 基于頻譜值的算術(shù)編碼表示(222;821)提供多個解碼頻譜值(232;822);以及使用所述解碼頻譜值(232;822)提供時域音頻表示(262;812),以獲得所述解碼音頻信息(212; 812); 其中,提供多個解碼頻譜值包括依據(jù)由數(shù)值當(dāng)前上下文值(c)所描述的上下文狀態(tài)(S)來選擇映射規(guī)則(297; cum_freq[]),所述映射規(guī)則描述表示頻譜值、或頻譜值的最高有效位平面的編碼形式的碼值(value),到表示頻譜值、或頻譜值的最高有效位平面的解碼形式的符號碼(symbol)的映射; 其中,依據(jù)多個事先解碼的頻譜值來確定所述數(shù)值當(dāng)前上下文值(C); 其中評估散列表(ari_hash_m[])以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界; 其中所述散列表ari_hash_m的定義如圖22 (I)、圖22 (2)、圖22 (3)及圖22⑷中給出; 其中評估散列表(ari_hash_m),以確定所述數(shù)值當(dāng)前上下文值是否與由散列表(ari_hash_m)的表項所描述的表上下文值相同或確定由散列表(ari_hash_m)的表項所描述的所述數(shù)值當(dāng)前上下文值所在的區(qū)間,、以及 其中依據(jù)所述評估的結(jié)果得到描述所選映射規(guī)則的映射規(guī)則索引值(Pki)。
17.一種用于基于輸入音頻信息(110; 710)提供編碼音頻信息(112; 712)的音頻編碼器(100; 700),所述音頻編碼器包括: 能量壓縮時域至頻域變換 器(130;720),用于基于所述輸入音頻信息的時域表示(110; 710)提供頻域音頻表示(132; 722),使得所述頻域音頻表示(132; 722)包括一組頻譜值;以及 算術(shù)編碼器(170; 730),被配置為使用可變長度碼字(acod_m,acod_r)來編碼頻譜值(a)或其預(yù)處理版本,其中所述算術(shù)編碼器(170)被配置為將頻譜值(a)或者頻譜值(a)的最高有效位平面的值(m)映射到碼值(acod_m), 其中所述算術(shù)編碼器被配置為依據(jù)由數(shù)值當(dāng)前上下文值(C)所描述的上下文狀態(tài)(S)選擇映射規(guī)則,所述映射規(guī)則描述頻譜值或頻譜值的最高有效位平面到碼值的映射;以及其中所述算術(shù)編碼器被配置為依據(jù)多個事先編碼的頻譜值確定所述數(shù)值當(dāng)前上下文值(C);以及 其中所述算術(shù)編碼器被配置為評估散列表以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界; 其中所述散列表ari_hash_m的定義如圖22 (I)、圖22 (2)、圖22(3)及圖22⑷中給出; 其中所述算術(shù)編碼器被配置為評估散列表(ari_hash_m),以確定所述數(shù)值當(dāng)前上下文值是否與由散列表(ari_hash_m)的表項所描述的表上下文值相同或確定由散列表(ari_hash_m)的表項所描述的數(shù)值當(dāng)前上下文值所在的區(qū)間,并依據(jù)所述’評估的結(jié)果導(dǎo)出描述所選擇的映射規(guī)則的映射規(guī)則索引值(Pki)。
18.一種用于基于 輸入音頻信息(110;710)提供編碼音頻信息(112;712)的方法,所述方法包括以下步驟: 基于所述輸入音頻信息的時域表示(110;710)提供頻域音頻表示(132;722),使得所述頻域音頻表示(132; 722)包括一組頻譜值;以及 使用可變長度碼字(acod_m, acod_r)來編碼頻譜值(a)或其預(yù)處理版本,其中將頻譜值(a)或者頻譜值(a)的最高有效位平面的值(m)映射到碼值(acod_m), 其中依據(jù)由數(shù)值當(dāng)前上下文值(C)所描述的上下文狀態(tài)(S)選擇描述頻譜值或頻譜值的最高有效位平面到碼值的映射的映射規(guī)則;以及 其中依據(jù)多個事先編碼的頻譜值確定所述數(shù)值當(dāng)前上下文值(C);以及其中評估散列表以選擇所述映射規(guī)則,所述散列表的表項限定所述數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界; 其中所述散列表ari_hash_m的定義如圖22 (I)、圖22 (2)、圖22 (3)及圖22(4)中給出;以及 其中評估所述散列表(ari_hash_m),以確定數(shù)值當(dāng)前上下文值是否與由散列表(ari_hash_m)的表項所描述的表上下文值相同,或確定由散列表(ari_hasn_m)的表項所描述的所述數(shù)值當(dāng)前上下文值所在的區(qū)間,并且其中依據(jù)所述評估的結(jié)果導(dǎo)出描述所選擇的映射規(guī)則的映射規(guī)則索引值(pki)。
19.一種計算機程序,當(dāng)所述計算機程序在計算機上運行時用于執(zhí)行根據(jù)權(quán)利要求16或權(quán)利要求18所述的方法。
全文摘要
一種用于基于編碼音頻信息提供解碼音頻信息的音頻解碼器,包括用于基于頻譜值的算術(shù)編碼表示提供多個解碼頻譜值的算術(shù)解碼器,以及使用所述解碼頻譜值提供時域音頻表示以獲得解碼音頻信息的頻域至?xí)r域變換器。所述算術(shù)解碼器被配置為依據(jù)由數(shù)值當(dāng)前上下文值所描述的上下文狀態(tài)來選擇映射規(guī)則,所述映射規(guī)則描述表示頻譜值,或頻譜值的最高有效位平面的編碼形式的碼值,到表示頻譜值,或頻譜值的最高有效位平面的解碼形式的符號碼的映射。所述算術(shù)解碼器被配置為依據(jù)多個事先解碼的頻譜值來確定數(shù)值當(dāng)前上下文值。所述算術(shù)解碼器被配置為評估散列表以選擇映射規(guī)則,散列表的表項限定數(shù)值上下文值中的有效狀態(tài)值及數(shù)值上下文值的區(qū)間邊界,其中散列表ari_hash_m的定義如圖22(1)、圖22(2)、圖22(3)及圖22(4)中給出。所述算術(shù)解碼器被配置為評估散列表,以確定數(shù)值當(dāng)前上下文值是否與由散列表的表項所描述的表上下文值相同,或確定由散列表的表項所描述的數(shù)值當(dāng)前上下文值所在的區(qū)間,并依據(jù)評估結(jié)果導(dǎo)出描述所選映射規(guī)則的映射規(guī)則索引值。
文檔編號G10L19/02GK103119646SQ201180045309
公開日2013年5月22日 申請日期2011年7月20日 優(yōu)先權(quán)日2010年7月20日
發(fā)明者紀(jì)堯姆·福奇斯, 維內(nèi)什·蘇布巴拉曼, 馬庫斯·穆賴特魯斯, 尼古勞斯·雷特爾巴赫, 馬蒂亞斯·伊爾登布朗, 奧利弗·魏斯, 阿瑟·特里特哈特, 帕特里克·瓦姆博爾德 申請人:弗蘭霍菲爾運輸應(yīng)用研究公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
筠连县| 志丹县| 肥城市| 仪征市| 清水河县| 白沙| 南华县| 晋中市| 竹溪县| 城口县| 高陵县| 泉州市| 郧西县| 德令哈市| 永登县| 威海市| 读书| 惠来县| 乐清市| 弥渡县| 葵青区| 哈巴河县| 澜沧| 得荣县| 大关县| 花莲县| 喀什市| 海晏县| 体育| 宾阳县| 昌图县| 嘉善县| 满洲里市| 吴江市| 宜兴市| 梧州市| 岑巩县| 柞水县| 丘北县| 阳西县| 翁源县|