專利名稱::利用對數(shù)值先前脈絡(luò)值的數(shù)字表示之修改的音頻編碼器、音頻解碼器、編碼音頻信息的方...的制作方法
技術(shù)領(lǐng)域:
:依據(jù)本發(fā)明的實(shí)施例有關(guān)于一種用以基于編碼音頻信息來提供解碼音頻信息的音頻解碼器,一種用以基于輸入音頻信息來提供編碼音頻信息的音頻編碼器,一種用以基于編碼音頻信息來提供解碼音頻信息的方法,一種用以基于輸入音頻信息來提供編碼音頻信息的方法及一種計(jì)算機(jī)程序。依據(jù)本發(fā)明的實(shí)施例有關(guān)于一種改良型頻譜無噪聲編碼,其可用于音頻編碼器或音頻解碼器,例如,所謂的統(tǒng)一語音及音頻編碼裝置(USAC)。
背景技術(shù):
:后文中將簡單解釋本發(fā)明背景以便于了解本發(fā)明及其優(yōu)點(diǎn)。過去十年間努力致力于使以良好比特率效率來以數(shù)字方式儲存及分配音頻內(nèi)容成為可能。就這個方面而言的一項(xiàng)重要成就是國際標(biāo)準(zhǔn)IS0/IEC14496-3的確定。此標(biāo)準(zhǔn)的部分3有關(guān)于音頻內(nèi)容的編碼及解碼,而部分3的子部分4有關(guān)于一般音頻編碼。IS0/IEC14496部分3,子部分4定義用于一般音頻內(nèi)容的編碼及解碼的構(gòu)想。此外,已提出要進(jìn)一步改良以改善品質(zhì)及/或減少所需的比特率。依據(jù)該項(xiàng)標(biāo)準(zhǔn)所述構(gòu)想,時域音頻信號被轉(zhuǎn)換成時頻表示。從時域變換成時頻域通常是使用變換區(qū)塊來進(jìn)行,變換區(qū)塊也被稱為時域樣本的「幀」。業(yè)已發(fā)現(xiàn)較佳地是使用移位,例如,移位半幀的重疊幀,原因在于重疊允許有效地避免(或至少減少)假影(artifact)。此外,業(yè)已發(fā)現(xiàn)須進(jìn)行加窗(windowing)來避免源自于此種時間上有限巾貞處理上的假影。借由將輸入音頻信號的一加窗部分從時域變換成時頻域,在許多情況下獲得能量壓縮(energycompaction),使得若干頻譜值包含比多個其它頻譜值明顯變大的幅度。據(jù)此,在許多情況下,有相對較少數(shù)頻譜值具有的幅度明顯高于頻譜值的平均幅度。導(dǎo)致能量壓縮的時域至?xí)r頻域變換的一個典型實(shí)例為所謂的修正離散余弦變換(MDCT)。頻譜值常依據(jù)心理聲學(xué)模型來定標(biāo)及量化,使得對心理聲學(xué)上較為重要的頻譜值的量化誤差相對較小,而對心理聲學(xué)上較不重要的頻譜值的量化誤差相對較大。將已定標(biāo)且已量化頻譜值編碼來提供它們的一比特率有效率的表示。例如,使用量化頻譜系數(shù)的所謂霍夫曼編碼,記載在國際標(biāo)準(zhǔn)IS0/IEC14496-3:2005(E)部分3子部分4中。但業(yè)已發(fā)現(xiàn)頻譜值的編碼品質(zhì)對所需的比特率具有顯著影響。并且還發(fā)現(xiàn)經(jīng)常應(yīng)用在可攜式消費(fèi)裝置并因此應(yīng)當(dāng)是廉價且耗電量低的音頻解碼器的復(fù)雜度取決于用以編碼頻譜值的編碼方法。綜上所述,需要有一種用以編碼及解碼音頻內(nèi)容的構(gòu)想,其提供比特率效率與資源效率間的改良折衷。
發(fā)明內(nèi)容依據(jù)本發(fā)明的一實(shí)施例形成一種用以基于一編碼音頻信息來提供一解碼音頻信息的音頻解碼器。該音頻解碼器包含用以基于頻譜值的算術(shù)編碼表示來提供多個解碼頻譜值的一算術(shù)解碼器。該音頻解碼器還包含用以使用所述解碼頻譜值來提供一時域音頻表示以獲得解碼音頻信息的一頻域至?xí)r域變換器。該算術(shù)解碼器被配置成依據(jù)由一數(shù)值當(dāng)前脈絡(luò)值所描述的一脈絡(luò)狀態(tài)來選擇一映射規(guī)則,所述映射規(guī)則描述一碼值到一符元碼(所述符元碼典型地描述一或多個頻譜值或者一或多個頻譜值的最高有效比特平面)的映射。該算術(shù)解碼器被配置成依據(jù)多個先前已解碼頻譜值來確定數(shù)值當(dāng)前脈絡(luò)值。該算術(shù)解碼器被配置成依據(jù)一脈絡(luò)子區(qū)值,修改描述與一或多個先前已解碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)(或更精確地說,描述用于所述一或多個先前已解碼頻譜值的解碼的脈絡(luò)狀態(tài))的一數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲解碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)(或更精確地說,描述用于所述一或多個欲解碼頻譜值的解碼的脈絡(luò)狀態(tài))的一數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。依據(jù)本發(fā)明的這一實(shí)施例是基于以下發(fā)現(xiàn)依據(jù)脈絡(luò)子區(qū)值,修改一數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲取一數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示的運(yùn)算效率很高,原因在于這可避免數(shù)值當(dāng)前脈絡(luò)值的完全重新運(yùn)算。相反,可利用數(shù)值先前脈絡(luò)值與數(shù)值當(dāng)前脈絡(luò)值之間的相關(guān)性以維持相對較小的運(yùn)算量。已發(fā)現(xiàn)的是,數(shù)值先前脈絡(luò)值的數(shù)字表示的修改存在多種不同的可能性,包括結(jié)合數(shù)值先前脈絡(luò)值的數(shù)字表示的重定標(biāo)、將脈絡(luò)子區(qū)值或自其導(dǎo)算出的值(例如,脈絡(luò)子區(qū)值的經(jīng)比特移位版本)加至數(shù)值先前脈絡(luò)值的數(shù)字表示或加至數(shù)值先前脈絡(luò)值的經(jīng)處理過的數(shù)字表示、依據(jù)脈絡(luò)子區(qū)值來置換數(shù)值先前脈絡(luò)值的部分?jǐn)?shù)字表示(而非整個數(shù)字表示)等。如此,維持?jǐn)?shù)值先前脈絡(luò)值(可能地,以一經(jīng)移位版本)的數(shù)字表示的至少一部分允許顯著減少用于更新數(shù)值脈絡(luò)值的運(yùn)算量。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成提供該數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示,使得具有不同數(shù)值權(quán)值的數(shù)字表示部分由不同的脈絡(luò)子區(qū)值確定。據(jù)此,可以很少運(yùn)算量來實(shí)現(xiàn)數(shù)值脈絡(luò)值的迭代重復(fù)更新,以從數(shù)值先前脈絡(luò)值導(dǎo)算出數(shù)值當(dāng)前脈絡(luò)值,同時免除信息損耗。在一較佳實(shí)施例中,數(shù)字表示為單一數(shù)值當(dāng)前脈絡(luò)值的二進(jìn)制數(shù)字表示。較佳地,二進(jìn)制數(shù)字表示的第一比特子集由與一或多個先前已解碼頻譜值相關(guān)聯(lián)的第一脈絡(luò)子區(qū)值確定,且二進(jìn)制數(shù)字表示的第二比特子集由與一或多個先前已解碼頻譜值相關(guān)聯(lián)的第二脈絡(luò)子區(qū)值確定,其中第一比特子集的比特的數(shù)值權(quán)值與第二比特子集的比特的數(shù)值權(quán)值不同。已發(fā)現(xiàn)的是,這種表示極其適用于從數(shù)值先前脈絡(luò)值迭代重復(fù)地導(dǎo)算出數(shù)值當(dāng)前脈絡(luò)值。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成依據(jù)尚未被考慮用于導(dǎo)算出數(shù)值先前脈絡(luò)值的一脈絡(luò)子區(qū)值,修改數(shù)值先前脈絡(luò)值的數(shù)字表示的一逐比特經(jīng)遮罩的信息比特子集或修改數(shù)值先前脈絡(luò)值的數(shù)字表示的一經(jīng)比特移位版本,以獲得數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。通過對數(shù)值先前脈絡(luò)值的數(shù)字表示執(zhí)行逐比特遮罩,或通過比特移位數(shù)值先前脈絡(luò)值的數(shù)字表示,可以實(shí)現(xiàn)將脈絡(luò)中不再像之前那樣相關(guān)的部分從數(shù)值脈絡(luò)值中移除,且較佳地,由脈絡(luò)中與當(dāng)前脈絡(luò)更為相關(guān)的其它部分置換。數(shù)值先前脈絡(luò)值的數(shù)字表示的一信息比特子集的逐比特遮罩,允許依據(jù)脈絡(luò)子區(qū)值,置換部分?jǐn)?shù)值先前脈絡(luò)值,而這又允許考慮先前未曾被考慮的脈絡(luò)部分。此外,移位運(yùn)算反映出下述事實(shí)用來確定先前脈絡(luò)(亦即用來解碼頻譜值的先前元組(tuple)的脈絡(luò))的先前已解碼頻譜值與用來確定當(dāng)前脈絡(luò)(亦即用來解碼當(dāng)前欲解碼的頻譜值的脈絡(luò))的先前已解碼頻譜值之間有若干重疊。此外,移位運(yùn)算還反映出下述事實(shí),先前已解碼頻譜值相對于使用數(shù)值先前脈絡(luò)值解碼的頻譜值的頻率關(guān)系(例如,頻率相等、頻率大于一個頻率倉(frequencybin)等)與先前已解碼頻譜值相對于欲使用數(shù)值當(dāng)前脈絡(luò)值來解碼的頻譜值的頻率關(guān)系不同。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成比特移位數(shù)值先前脈絡(luò)值的數(shù)字表示,使得與不同脈絡(luò)子區(qū)值相關(guān)聯(lián)的比特子集的數(shù)值權(quán)值被修改,以獲得數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。據(jù)此,使用數(shù)值先前脈絡(luò)值已解碼的一或多個頻譜值與欲使用數(shù)值當(dāng)前脈絡(luò)值來解碼的一或多個頻譜值之間的頻率位置的移位,可以以有效方式反映于數(shù)值脈絡(luò)值中。此外,移位運(yùn)算典型地可使用標(biāo)準(zhǔn)微處理器以低運(yùn)算量執(zhí)行。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成比特移位所述數(shù)值先前脈絡(luò)值的數(shù)字表示,使得與一脈絡(luò)子區(qū)值相關(guān)聯(lián)的一比特子集被從數(shù)字表示中刪除,以獲得數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。據(jù)此,借單一移位運(yùn)算可提供雙重功能,換句話說,既考慮了頻率位置的改變,又考慮了下述事實(shí)不再需要曾經(jīng)被用來獲取數(shù)值先前脈絡(luò)值的若干頻譜值(以脈絡(luò)子區(qū)值表示)來獲取數(shù)值當(dāng)前脈絡(luò)值。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成依據(jù)一脈絡(luò)子區(qū)值,修改一數(shù)值先前脈絡(luò)值的二進(jìn)制數(shù)字表示或一數(shù)值先前脈絡(luò)值的二進(jìn)制數(shù)字表示的一經(jīng)比特移位版本的第一比特子集,而不改變數(shù)值先前脈絡(luò)值的二進(jìn)制數(shù)字表示的或數(shù)值先前脈絡(luò)值的二進(jìn)制數(shù)字表示的經(jīng)比特移位版本的第二比特子集,借由選擇性地修改與于(使用數(shù)值先前脈絡(luò)值解碼的)先前已解碼頻譜值的解碼中被考慮而于欲使用數(shù)值當(dāng)前脈絡(luò)值解碼的頻譜值的解碼中不被考慮的脈絡(luò)子區(qū)相關(guān)聯(lián)的一或多個比特子集,從數(shù)值先前脈絡(luò)值的二進(jìn)制數(shù)字表示導(dǎo)算出數(shù)值當(dāng)前脈絡(luò)值的二進(jìn)制數(shù)字表示。這一構(gòu)想已被證實(shí)特別有效。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成提供數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示,使得數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示的最低有效比特的一子集描述一脈絡(luò)子區(qū)值,該脈絡(luò)子區(qū)值用于脈絡(luò)狀態(tài)由所述數(shù)值當(dāng)前脈絡(luò)值所界定的頻譜值的解碼,但該脈絡(luò)子區(qū)值不用于脈絡(luò)狀態(tài)由一數(shù)值隨后脈絡(luò)值(例如,從數(shù)值當(dāng)前脈絡(luò)值所導(dǎo)算出的一數(shù)值脈絡(luò)值)所界定的頻譜值的解碼。這種方式允許使用移位運(yùn)算從數(shù)值先前脈絡(luò)值導(dǎo)算出數(shù)值當(dāng)前脈絡(luò)值(及從數(shù)值當(dāng)前脈絡(luò)值導(dǎo)算出數(shù)值隨后脈絡(luò)值),原因在于所述數(shù)字表示的最低有效比特可容易地被移位出。此外,還已發(fā)現(xiàn)適合分配小數(shù)值權(quán)值給對數(shù)值先前脈絡(luò)值為相關(guān)聯(lián),但對數(shù)值當(dāng)前脈絡(luò)值不再是相關(guān)聯(lián)(或相當(dāng)?shù)兀瑢?shù)值當(dāng)前脈絡(luò)值為相關(guān)聯(lián),但對數(shù)值隨后脈絡(luò)值不再是相關(guān)聯(lián))的這些脈絡(luò)子區(qū)值,原因在于這允許數(shù)值(當(dāng)前)脈絡(luò)值到一映射規(guī)則索引值的有效映射。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成評估至少一表來判定數(shù)值當(dāng)前脈絡(luò)值是與由該表的一表項(xiàng)所描述的一表脈絡(luò)值(例如,有效狀態(tài)值)相同還是位于由該表的表項(xiàng)所描述的一區(qū)間內(nèi)部,及依據(jù)所述至少一表的評估結(jié)果來導(dǎo)算出一映射規(guī)則索引值,該映射規(guī)則索引值描述一選定的映射規(guī)則。已發(fā)現(xiàn)的是,如上文所述而建構(gòu)與更新的一數(shù)值(當(dāng)前)脈絡(luò)值極為適用于此種到一映射規(guī)則索引值的映射。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成檢查多個脈絡(luò)子區(qū)值的一總和是否小于或等于一預(yù)定總和臨界值,及依據(jù)檢查結(jié)果來選擇性地修改數(shù)值當(dāng)前脈絡(luò)值。已發(fā)現(xiàn)的是,數(shù)值當(dāng)前脈絡(luò)值的這種額外的選擇性修改極為適合于將有意義的脈絡(luò)信息有效地導(dǎo)入數(shù)值當(dāng)前脈絡(luò)值,而就數(shù)值脈絡(luò)值的更新構(gòu)想而言不會造成任何沖突。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成檢查多個脈絡(luò)子區(qū)值的一總和是否小于或等于一預(yù)定總和臨界值,所述脈絡(luò)子區(qū)值與和欲使用由該數(shù)值當(dāng)前脈絡(luò)值所界定的一脈絡(luò)狀態(tài)來解碼的一或多個頻譜值相同的音頻內(nèi)容時間部分相關(guān)聯(lián),且所述脈絡(luò)子區(qū)值與和欲使用由該數(shù)值當(dāng)前脈絡(luò)值所界定的脈絡(luò)狀態(tài)來解碼的一或多個頻譜值相比而言較低的頻率相關(guān)聯(lián),且依據(jù)檢查結(jié)果來選擇性地修改數(shù)值當(dāng)前脈絡(luò)值。已發(fā)現(xiàn)的是,對于識別出相對較小頻譜值區(qū)的存在,這種檢查提供有價值的額外信息。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成加總第一多個先前已解碼頻譜值的絕對值以獲得與所述第一多個先前已解碼頻譜值相關(guān)聯(lián)的第一脈絡(luò)子區(qū)值,及加總第二多個先前已解碼頻譜值的絕對值以獲得與所述第二多個先前已解碼頻譜值相關(guān)聯(lián)的第二脈絡(luò)子區(qū)值。據(jù)此,可獲得不同脈絡(luò)子區(qū)值。在一較佳實(shí)施例中,該算術(shù)解碼器被配置成限制所述脈絡(luò)子區(qū)值,使得所述脈絡(luò)子區(qū)值能夠使用數(shù)值先前脈絡(luò)值的數(shù)字表示的信息比特的一真值子集來表示。已發(fā)現(xiàn)的是,限制脈絡(luò)子區(qū)值不會對脈絡(luò)子區(qū)值的信息內(nèi)容造成顯著不利影響。但這種限制可獲得下述優(yōu)點(diǎn)表示脈絡(luò)子區(qū)值所需的比特?cái)?shù)目可維持相當(dāng)小,其對內(nèi)存需求有正面影響。而且,對脈絡(luò)子區(qū)值加以限制可有助于數(shù)值脈絡(luò)值的迭代重復(fù)更新。依據(jù)本發(fā)明的另一實(shí)施例,形成一種用以基于輸入音頻信息來提供一編碼音頻信息的音頻編碼器。該音頻編碼器包含一能量壓縮(energy-compacting)時域至頻域變換器,其用以基于輸入音頻信息的時域表示來提供一頻域音頻表示,使得頻域音頻表示包含一頻譜值集合。該音頻編碼器還包含一算術(shù)編碼器,其被配置成使用一可變長度碼字來編碼一頻譜值或其預(yù)處理版本,或相當(dāng)?shù)兀鄠€頻譜值或其預(yù)處理版本。該算術(shù)編碼器被配置成將一頻譜值或一頻譜值的最高有效比特平面的值映射至一碼值。該算術(shù)編碼器被配置成依據(jù)由一數(shù)值當(dāng)前脈絡(luò)值所描述的一脈絡(luò)狀態(tài)來選擇一映射規(guī)則,所述映射規(guī)則描述將一頻譜值或一頻譜值的最高有效比特平面值映射至一碼值。該算術(shù)編碼器被配置成依據(jù)多個先前已編碼頻譜值來確定數(shù)值當(dāng)前脈絡(luò)值。該算術(shù)編碼器被配置成依據(jù)一脈絡(luò)子區(qū)值,修改描述與一或多個先前已編碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)(或更精確地說,描述用于所述一或多個先前已編碼頻譜值的編碼的脈絡(luò)狀態(tài))的一數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲編碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)(或更精確地說,描述用于所述一或多個欲編碼頻譜值的編碼的脈絡(luò)狀態(tài))的一數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。該音頻編碼器基于與音頻解碼器相同的發(fā)現(xiàn)。而且,該音頻編碼器可用就音頻解碼器所討論的功能予以補(bǔ)充。依據(jù)本發(fā)明的另一實(shí)施例,形成一種用以基于編碼音頻信息來提供解碼音頻信息的方法。依據(jù)本發(fā)明的另一實(shí)施例,形成一種用以基于輸入音頻信息來提供編碼音頻信息的方法。依據(jù)本發(fā)明的另一實(shí)施例,形成一種用以實(shí)施所述方法的一的計(jì)算機(jī)程序。隨后將參考所公開的圖式來描述依據(jù)本發(fā)明的實(shí)施例,附圖中圖Ia及Ib顯示依據(jù)本發(fā)明的實(shí)施例,一種音頻編碼器的方塊示意圖;圖2a及2b顯示依據(jù)本發(fā)明的實(shí)施例,一種音頻解碼器的方塊示意圖;圖3顯示用以解碼頻譜值的算法「values_decodeO」的偽程序碼表示;圖4顯示用于狀態(tài)計(jì)算的脈絡(luò)的示意表示;圖5a顯示用以映射脈絡(luò)的算法「arith_map_contextO」的偽程序碼表示;圖5b顯示用以映射脈絡(luò)的另一種算法「arith_map_contextO」的偽程序碼表示;圖5c顯示用以獲得脈絡(luò)狀態(tài)值的算法「arith_get_contextO」的偽程序碼表示;圖5d顯示用以獲得脈絡(luò)狀態(tài)值的另一種算法「arith_get_contextO」的偽程序碼表示;圖5e顯示用以從一狀態(tài)值(或狀態(tài)變量)導(dǎo)算出累積頻率表索引值「pki」的算法「arith_get_pk()」的偽程序碼表示;圖5f顯示用以從一狀態(tài)值(或狀態(tài)變量)導(dǎo)算出累積頻率表索引值「pki」的另一種算法「arith_get_pk()」的偽程序碼表示;圖5g(l)及5g(2)顯示用以從一可變長度碼字算術(shù)式解碼一符元的算法「arith_decodeO」的偽程序碼表示;圖5h顯示用以從一可變長度碼字算術(shù)式解碼一符元的另一種算法「arith_decodeO」的偽程序碼表示的第一部分;圖5i顯示用以從一可變長度碼字算術(shù)式解碼一符元的另一種算法「arith_decodeO」的偽程序碼表示的第二部分;圖5j顯示用以從共用值m導(dǎo)算出頻譜值的絕對值a,b的算法的偽程序碼表示;圖5k顯示用以將解碼值a,b載入解碼頻譜值的一陣列的算法的偽程序碼表示;圖51顯示用以基于解碼頻譜值的絕對值a,b而獲得脈絡(luò)子區(qū)值的算法「arith_update_contextO」的偽程序碼表示;圖5m顯示用以填補(bǔ)解碼頻譜值陣列及脈絡(luò)子區(qū)值陣列的表項(xiàng)的算法「arith_finishO」的偽程序碼表示;圖5n顯示用以從共用值m導(dǎo)算出頻譜值的絕對值a,b的另一種算法的偽程序碼表不;圖5o顯示用以更新解碼頻譜值陣列及脈絡(luò)子區(qū)值陣列的算法「arith_update_contextO」的偽程序碼表示;圖5p顯示用以填補(bǔ)解碼頻譜值陣列的表項(xiàng)及脈絡(luò)子區(qū)值陣列的表項(xiàng)的算法「arith_save_contextO」的偽程序碼表示;圖5q顯示定義的說明;圖5r顯示定義的另一說明;圖6a顯示統(tǒng)一語音及音頻編碼器(USAC)原始數(shù)據(jù)區(qū)塊的語法表示;圖6b顯示單一通道元素的語法表示;圖6c顯示成對通道元素的語法表示;圖6d顯示「ICS」控制信息的語法表示;圖6e顯示頻域通道串流的語法表示;圖6f顯示算術(shù)式編碼頻譜數(shù)據(jù)的語法表示;圖6g顯示用以解碼一頻譜值集合的語法表示;圖6h顯示用以解碼一頻譜值集合的另一語法表示;圖6i顯示數(shù)據(jù)元素及變量的說明;圖6j顯示數(shù)據(jù)元素及變量的另一說明;圖7顯示依據(jù)本發(fā)明的第一方面,一種音頻編碼器的方塊示意圖;圖8顯示依據(jù)本發(fā)明的第一方面,一種音頻解碼器的方塊示意圖;圖9顯示依據(jù)本發(fā)明的第一方面,一種數(shù)值當(dāng)前脈絡(luò)值映射至映射規(guī)則索引值的線圖表示;圖10顯示依據(jù)本發(fā)明的第二方面,一種音頻編碼器的方塊示意圖;圖11顯示依據(jù)本發(fā)明的第二方面,一種音頻解碼器的方塊示意圖;圖12顯示依據(jù)本發(fā)明的第三方面,一種音頻編碼器的方塊示意圖;圖13顯示依據(jù)本發(fā)明的第三方面,一種音頻解碼器的方塊示意圖;圖14a顯示依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿4使用的用于狀態(tài)計(jì)算的脈絡(luò)的示意表不;圖14b顯示依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿4,用于算術(shù)編碼方案的表格綜覽;圖15a顯示用在依據(jù)本發(fā)明的實(shí)施例中的用于狀態(tài)計(jì)算的脈絡(luò)的示意表示;圖15b顯示依據(jù)本發(fā)明的實(shí)施例用于算術(shù)編碼方案的表格綜覽;圖16a顯示依據(jù)本發(fā)明,及依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿5,及依據(jù)AAC(高級音頻編碼)霍夫曼編碼,用于無噪聲編碼方案的只讀存儲器需求的線圖表示;圖16b顯示依據(jù)本發(fā)明,及依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿5的構(gòu)想,總USAC解碼器數(shù)據(jù)只讀存儲器需求的線圖表示;圖17顯示使用依據(jù)本發(fā)明的編碼方案,依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿3或工作草稿5,用于無噪聲編碼的比較配置的示意表示;圖18顯示依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿3及依據(jù)本發(fā)明的實(shí)施例,由USAC算術(shù)編碼器所產(chǎn)生的平均比特率的表格表示;圖19顯示用于依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿3的算術(shù)解碼器及依據(jù)本發(fā)明的實(shí)施例的算術(shù)解碼器,最小及最大比特儲存器位階的表格表示;圖20顯示依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿3,用于不同版本的算術(shù)編碼器,用以解碼32k比特串流的平均復(fù)雜度數(shù)目的表格表示;圖21(1)和21⑵顯示表「ari_lookup_m[600]」的內(nèi)容的表格表示;圖22(1)至22⑷顯示表「ari_hash_m[600]」的內(nèi)容的表格表示;圖23(1)至23(8)顯示表「ari_cf_m[96][17]」的內(nèi)容的表格表示;以及圖24顯示表「ari_cf_r[]」的內(nèi)容的表格表示。具體實(shí)施例方式I.依據(jù)圖7的音頻編碼器圖7顯示依據(jù)本發(fā)明的實(shí)施例,一種音頻編碼器的方塊示意圖。音頻編碼器700被配置成接收輸入音頻信息710,及基于此來提供編碼音頻信息712。音頻編碼器包含能量壓縮時域至頻域變換器720,其被配置成基于輸入音頻信息710的時域表示來提供頻域音頻表示722,使得頻域音頻表示722包含一頻譜值集合。音頻編碼器700還包含算術(shù)編碼器730,其被配置成使用可變長度碼字來編碼(形成頻域音頻表示722的該頻譜值集合中的)頻譜值或其預(yù)處理版本,以獲得編碼音頻信息712(其例如可包含多個可變長度碼字)。算術(shù)編碼器730被配置成依據(jù)一脈絡(luò)狀態(tài),將頻譜值或頻譜值的最高有效比特平面值映射至一碼值(亦即映射至一可變長度碼字)。該算術(shù)編碼器被配置成依據(jù)(當(dāng)前)脈絡(luò)狀態(tài),選擇描述頻譜值或頻譜值的最高有效比特平面值至一碼值的映射的映射規(guī)則。該算術(shù)編碼器被配置成依據(jù)多個先前已編碼的(較佳但不一定相鄰的)頻譜值來確定當(dāng)前脈絡(luò)狀態(tài),或描述該當(dāng)前脈絡(luò)狀態(tài)的一數(shù)值當(dāng)前脈絡(luò)值。為了達(dá)成此項(xiàng)目的,該算術(shù)編碼器被配置成評估一散列表,其表項(xiàng)定義數(shù)值脈絡(luò)值中的有效狀態(tài)值及數(shù)值脈絡(luò)值的區(qū)間邊界,其中一映射規(guī)則索引值與是有效狀態(tài)值的一數(shù)值(當(dāng)前)脈絡(luò)值單獨(dú)相關(guān)聯(lián),且其中一共用映射規(guī)則索引值與位于由所述區(qū)間邊界(其中所述區(qū)間邊界較佳地由該散列表的表項(xiàng)來定義)確定界限的一區(qū)間內(nèi)部的不同數(shù)值(當(dāng)前)脈絡(luò)值相關(guān)聯(lián)。如圖可知,(頻域音頻表示722的)一頻譜值或一頻譜值的最高有效比特平面映射至一(編碼音頻信息712的)碼值可使用映射規(guī)則742借頻譜值編碼740執(zhí)行。狀態(tài)追蹤器750可被配置成追蹤脈絡(luò)狀態(tài)。狀態(tài)追蹤器750提供描述當(dāng)前脈絡(luò)狀態(tài)的信息754。描述當(dāng)前脈絡(luò)狀態(tài)的信息754較佳地可呈數(shù)值當(dāng)前脈絡(luò)值形式。映射規(guī)則選擇器760被配置成選擇描述一頻譜值或一頻譜值的最高有效比特平面至一碼值的映射的映射規(guī)則,例如累積頻率表。據(jù)此,映射規(guī)則選擇器760提供映射規(guī)則信息742給頻譜值編碼740。映射規(guī)則信息742可呈映射規(guī)則索引值形式,或呈依據(jù)映射規(guī)則索引值而選定的累積頻率表形式。映射規(guī)則選擇器760包含(或至少評估)散列表752,其表項(xiàng)定義數(shù)值脈絡(luò)值中的有效狀態(tài)值及數(shù)值脈絡(luò)值的區(qū)間邊界,其中一映射規(guī)則索引值與是有效狀態(tài)值的一數(shù)值脈絡(luò)值單獨(dú)相關(guān)聯(lián),且其中一共用映射規(guī)則索引值與位于由所述區(qū)間邊界確定界限的一區(qū)間內(nèi)部的不同數(shù)值脈絡(luò)值相關(guān)聯(lián)。散列表762經(jīng)評估來選擇映射規(guī)則,亦即來提供映射規(guī)則信息742。綜上所述,音頻編碼器700執(zhí)行由時域至頻域變換器所提供的頻域音頻表示的算術(shù)編碼。該算術(shù)編碼為脈絡(luò)相依性,使得映射規(guī)則(例如累積頻率表)依據(jù)先前已編碼的頻譜值來選定。據(jù)此,在算術(shù)編碼中考慮時間上及/或頻率上(或至少在預(yù)定環(huán)境內(nèi)部)彼此相鄰及/或相鄰于當(dāng)前編碼頻譜值(亦即在該當(dāng)前編碼頻譜值的預(yù)定環(huán)境內(nèi)部的頻譜值)的頻譜值來調(diào)整由算術(shù)編碼所評估的概率分布。當(dāng)選擇適當(dāng)映射規(guī)則時,評估由狀態(tài)追蹤器750所提供的數(shù)值脈絡(luò)當(dāng)前值754。因通常不同映射規(guī)則的數(shù)目明顯小于數(shù)值當(dāng)前脈絡(luò)值754的可能值數(shù)目,故映射規(guī)則選擇器760分配相同映射規(guī)則(例如由映射規(guī)則索引值來描述)給相對較大數(shù)目的不同數(shù)值脈絡(luò)值。雖說如此,通常存在有特定的頻譜組態(tài)(以特定數(shù)值脈絡(luò)值表示),特殊映射規(guī)則須與特定頻譜組態(tài)相關(guān)聯(lián),以獲得良好編碼效率。業(yè)已發(fā)現(xiàn)若單一散列表的表項(xiàng)定義有效狀態(tài)值及數(shù)值(當(dāng)前)脈絡(luò)值的區(qū)間邊界,則依據(jù)數(shù)值當(dāng)前脈絡(luò)值來選擇映射規(guī)則可以特別高的運(yùn)算效率進(jìn)行。業(yè)已發(fā)現(xiàn)此項(xiàng)機(jī)制良好地適應(yīng)映射規(guī)則選擇的要求,原因在于有許多情況單一有效狀態(tài)值(或有效數(shù)值脈絡(luò)值)嵌置于具有(與一共用映射規(guī)則相關(guān)聯(lián)的)多個非有效狀態(tài)值的左側(cè)區(qū)間與具有(與一共用映射規(guī)則相關(guān)聯(lián)的)多個非有效狀態(tài)值的右側(cè)區(qū)間之間。而且,這一機(jī)制使用單一散列表,其表項(xiàng)定義有效狀態(tài)值及數(shù)值(當(dāng)前)脈絡(luò)值的區(qū)間邊界,可有效處理不同情況,其中例如有兩個相鄰的非有效狀態(tài)值區(qū)間(也被稱為非有效數(shù)值脈絡(luò)值),其間不含有效狀態(tài)值。由于表存取次數(shù)維持少數(shù),故可實(shí)現(xiàn)特別高的運(yùn)算效率。例如,單一迭代重復(fù)表搜尋在大部分實(shí)施例中即足以找出該數(shù)值當(dāng)前脈絡(luò)值是否等于任何有效狀態(tài)值,或該數(shù)值當(dāng)前脈絡(luò)值所在的非有效狀態(tài)值區(qū)間。因此,既費(fèi)時又耗能的表存取次數(shù)可維持少次。如此,就運(yùn)算復(fù)雜度而言,使用散列表762的映射規(guī)則選擇器760可被認(rèn)為是特別有效的映射規(guī)則選擇器,同時仍允許獲得良好編碼效率(就比特率而言)。有關(guān)從數(shù)值當(dāng)前脈絡(luò)值754導(dǎo)算出映射規(guī)則信息742的進(jìn)一步細(xì)節(jié)容后詳述。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描述。映射規(guī)則信息828a例如可呈映射規(guī)則索引值形式,或選定的累積頻率表(例如,依據(jù)映射規(guī)則索引值選擇)的形式。算術(shù)解碼器820被配置成依據(jù)脈絡(luò)狀態(tài)(其可由脈絡(luò)狀態(tài)信息826a來描述)來選擇描述碼值(由頻譜值的算術(shù)編碼表示821來描述)至符元碼(描述一或多個頻譜值或其最高有效比特平面)的映射的映射規(guī)則(例如累積頻率表)。算術(shù)解碼器820被配置成依據(jù)多個先前已解碼的頻譜值來確定當(dāng)前脈絡(luò)狀態(tài)(由數(shù)值當(dāng)前脈絡(luò)值來描述)。為了達(dá)成此項(xiàng)目的,可使用狀態(tài)追蹤器826,其接收先前已解碼的頻譜值,及基于此來提供描述當(dāng)前脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值826a。算術(shù)解碼器還被配置成評估散列表829,其表項(xiàng)定義數(shù)值脈絡(luò)值中的有效狀態(tài)值及數(shù)值脈絡(luò)值的區(qū)間邊界,來選定映射規(guī)則,其中一映射規(guī)則索弓I值與是有效狀態(tài)值的一數(shù)值脈絡(luò)值單獨(dú)相關(guān)聯(lián),且其中一共用映射規(guī)則索引值與位于由區(qū)間邊界確定界限的一區(qū)間內(nèi)部的不同數(shù)值脈絡(luò)值相關(guān)聯(lián)。散列表829的評估例如可使用散列表評估器來執(zhí)行,散列表評估器可以是映射規(guī)則選擇器828的一部分。據(jù)此,映射規(guī)則信息828a,例如呈映射規(guī)則索引值形式,基于描述當(dāng)前脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值826a而獲得。映射規(guī)則選擇器828例如可依據(jù)散列表829的評估結(jié)果來確定映射規(guī)則信息828a。另外,評估散列表829可直接提供映射規(guī)則索引值。有關(guān)音頻信號解碼器800的功能,須注意算術(shù)解碼器820被配置成選擇映射規(guī)則(例如,累積頻率表),其一般而言良好適應(yīng)于欲解碼的頻譜值,原因在于映射規(guī)則是依據(jù)當(dāng)前脈絡(luò)狀態(tài)(例如,借數(shù)值當(dāng)前脈絡(luò)值來描述)而選定的,而當(dāng)前脈絡(luò)狀態(tài)又是依據(jù)多個先前已解碼的頻譜值而確定的。據(jù)此,可利用欲解碼的相鄰頻譜值之間的統(tǒng)計(jì)相依性。此夕卜,算術(shù)解碼器820可使用映射規(guī)則選擇器828有效地實(shí)施,在運(yùn)算復(fù)雜度、表大小與編碼效率間有良好折衷。借由評估(單一)散列表829,其表項(xiàng)描述有效狀態(tài)值及非有效狀態(tài)值區(qū)間的區(qū)間邊界,單一迭代重復(fù)表搜尋可能就足以從數(shù)值當(dāng)前脈絡(luò)值826a導(dǎo)算出映射規(guī)則信息828a。據(jù)此,可能將相對較大數(shù)目的不同可能數(shù)值(當(dāng)前)脈絡(luò)值映射至相對較小數(shù)目的不同映射規(guī)則索引值。如前文說明,借由使用散列表829可利用下述發(fā)現(xiàn)在許多情況下,單獨(dú)的有效狀態(tài)值(有效脈絡(luò)值)嵌置在具有非有效狀態(tài)值(非有效脈絡(luò)值)的左側(cè)區(qū)間與具有非有效狀態(tài)值(非有效脈絡(luò)值)的右側(cè)區(qū)間之間,與左側(cè)區(qū)間的狀態(tài)值(脈絡(luò)值)和右側(cè)區(qū)間的狀態(tài)值(脈絡(luò)值)相比較,不同的映射規(guī)則索引值與該有效狀態(tài)值(有效脈絡(luò)值)相關(guān)聯(lián)。但散列表829的使用也很適用于數(shù)值狀態(tài)值的兩個區(qū)間緊鄰,中間沒有有效狀態(tài)值的情況??偨Y(jié)而言,當(dāng)依據(jù)當(dāng)前脈絡(luò)狀態(tài)(或依據(jù)描述當(dāng)前脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值)來選擇映射規(guī)則時(或當(dāng)提供映射規(guī)則索引值時),評估散列表829的映射規(guī)則選擇器828獲得特別好的效率,原因在于散列機(jī)制良好適用于音頻解碼器的典型脈絡(luò)概要。進(jìn)一步細(xì)節(jié)容后詳述。3.依據(jù)圖9的脈絡(luò)值散列機(jī)制后文中,將揭示脈絡(luò)值散列機(jī)制,其可在映射規(guī)則選擇器760及/或映射規(guī)則選擇器828中實(shí)施。散列表762及/或散列表829可用來實(shí)現(xiàn)所述脈絡(luò)值散列機(jī)制?,F(xiàn)在參考圖9,顯示數(shù)值當(dāng)前脈絡(luò)值散列概要,進(jìn)一步細(xì)節(jié)容后詳述。在圖9的線圖表示中,橫座標(biāo)910描述數(shù)值當(dāng)前脈絡(luò)值(即數(shù)值脈絡(luò)值)的值??v座標(biāo)912描述映射規(guī)則索引值。記號914指示非有效數(shù)值脈絡(luò)值(描述非有效狀態(tài))的映射規(guī)則索引值。記號916指示用于描述單獨(dú)(實(shí)際)有效狀態(tài)的「單獨(dú)」(實(shí)際)有效數(shù)值脈絡(luò)值的映射規(guī)則索引值。記號916指示用于描述「不當(dāng)(impiOper)」有效狀態(tài)的「不當(dāng)」數(shù)值脈絡(luò)值的映射規(guī)則索引值,其中「不當(dāng)」有效狀態(tài)是與其相關(guān)聯(lián)的映射規(guī)則索引值與相鄰的非有效數(shù)值脈絡(luò)值區(qū)間中的一者的映射規(guī)則索引值相同的一種有效狀態(tài)。如圖可知,散列表表項(xiàng)「ari_hash_m[il]」描述具有數(shù)值脈絡(luò)值cl的單獨(dú)(實(shí)際)有效狀態(tài)。如圖可知,映射規(guī)則索引值mrivl與具有數(shù)值脈絡(luò)值Cl的單獨(dú)(實(shí)際)有效狀態(tài)相對應(yīng)。據(jù)此,數(shù)值脈絡(luò)值cl及映射規(guī)則索引值mrivl可由散列表表項(xiàng)「ari_hash_m[il]」來描述。數(shù)值脈絡(luò)值的區(qū)間932由數(shù)值脈絡(luò)值Cl確定界限,其中數(shù)值脈絡(luò)值cl并不屬于區(qū)間932,使得區(qū)間932的最大數(shù)值脈絡(luò)值等于cl-Ι。映射規(guī)則索引值mriv4(與mrivl不同)與區(qū)間932的數(shù)值脈絡(luò)值相關(guān)聯(lián)。映射規(guī)則索引值mriv4例如可由額外表「ari_lookup_m」的表項(xiàng)「ari_lookup_m[il_l]」來描述。此外,映射規(guī)則索引值mriv2可與位于區(qū)間934內(nèi)部的數(shù)值脈絡(luò)值相關(guān)聯(lián)。區(qū)間934的下邊界由數(shù)值脈絡(luò)值Cl確定,數(shù)值脈絡(luò)值Cl是有效數(shù)值脈絡(luò)值,其中數(shù)值脈絡(luò)值Cl不屬于區(qū)間932。據(jù)此,區(qū)間934的最小值等于cl+l(假設(shè)整數(shù)數(shù)值脈絡(luò)值)。區(qū)間934的另一邊界由數(shù)值脈絡(luò)值c2確定,其中數(shù)值脈絡(luò)值c2不屬于區(qū)間934,使得區(qū)間934的最大值等于c2_l。數(shù)值脈絡(luò)值c2為所謂的「不當(dāng)」數(shù)值脈絡(luò)值,其借散列表表項(xiàng)「ari_hash_m[i2]」來描述。例如,映射規(guī)則索引值mriv2可與數(shù)值脈絡(luò)值c2相關(guān)聯(lián),使得與「不當(dāng)」有效數(shù)值脈絡(luò)值c2相關(guān)聯(lián)的數(shù)值脈絡(luò)值等于與由數(shù)值脈絡(luò)值c2確定界限的區(qū)間934相關(guān)聯(lián)的映射規(guī)則索引值。此外,數(shù)值脈絡(luò)值的區(qū)間936也由數(shù)值脈絡(luò)值c2確定界限,其中數(shù)值脈絡(luò)值c2不屬于區(qū)間936,使得區(qū)間936的最小值等于c2+l。通常與映射規(guī)則索引值mriv2不同的映射規(guī)則索引值mriv3與區(qū)間936的數(shù)值脈絡(luò)值相關(guān)聯(lián)。如圖可知,與數(shù)值脈絡(luò)值區(qū)間932相關(guān)聯(lián)的映射規(guī)則索引值mriv4可借表「ari_lookup_mJ的表項(xiàng)「ari_lookup_m[il-l]」來描述;與數(shù)值脈絡(luò)值區(qū)間934相關(guān)聯(lián)的映射規(guī)則索引值mriv2可借表「ari_lookup_m」的表項(xiàng)「ari_lookup_m[il]」來描述;且映射規(guī)則索引值mriv3可借表「ari_lookup_m」的表項(xiàng)「ari_lookup_m[i2]」來描述。在此處列舉的實(shí)例中,散列表索引值i2可能比散列表索引值il大I。由圖9可知,映射規(guī)則選擇器760或映射規(guī)則選擇器828可接收數(shù)值當(dāng)前脈絡(luò)值764、826a,及經(jīng)由評估表「ari_hash_m」的表項(xiàng)來判定數(shù)值當(dāng)前脈絡(luò)值是否為有效狀態(tài)值(與其是「単獨(dú)」有效狀態(tài)值還是「不當(dāng)」有效狀態(tài)值無關(guān)),或判定該數(shù)值當(dāng)前脈絡(luò)值是否位于由(「單獨(dú)」或「不當(dāng)」)有效狀態(tài)值cl、c2確定界限的區(qū)間932、934、936中的一者內(nèi)部。檢查該數(shù)值當(dāng)前脈絡(luò)值是否等于有效狀態(tài)值Cl、c2,以及評估該數(shù)值當(dāng)前脈絡(luò)值位于區(qū)間932、934、936中的哪ー個區(qū)間(在數(shù)值當(dāng)前脈絡(luò)值不等于有效狀態(tài)值的情況下),皆可使用単一共用散列表搜尋執(zhí)行。此外,評估散列表「ari_hash_m」可用來獲得散列表索引值(例如,il_l、il或i2)。如此,映射規(guī)則選擇器760、828可被配置成借由評估單一散列表762、829(例如散列表「ari_hash_m」),即可獲得標(biāo)示有效狀態(tài)值(例如,cl或c2)及/或區(qū)間(例如,932、934、936)及該數(shù)值當(dāng)前脈絡(luò)值是否為有效脈絡(luò)值(也稱作有效狀態(tài)值)的信息的散列表索引值(例如,il-Uil或i2)。此外,若在散列表762、829,「ari_hash_m」的評估中發(fā)現(xiàn)數(shù)值當(dāng)前脈絡(luò)值并非「有效」脈絡(luò)值(或「有效」?fàn)顟B(tài)值),則得自散列表(「ari_hash_m」)評估的散列表索引值(例如,il-1、il或i2)可用來獲得與數(shù)值脈絡(luò)值的區(qū)間932、934、936相關(guān)聯(lián)的映射規(guī)則索引值。例如,散列表索引值(例如,il_l、il或i2)可用來表示額外映射表(例如,「ari_lookup_mJ)的ー表項(xiàng),其描述與該數(shù)值當(dāng)前脈絡(luò)值所在的區(qū)間932、934、936相關(guān)聯(lián)的映射規(guī)則索引值。欲知進(jìn)ー步細(xì)節(jié),可參考后文對算法「arith_get_pk」的詳細(xì)討論(其中對此種算法「arith_get_pk()J有不同選項(xiàng),圖5e及圖5f顯示其實(shí)例)。此外,須注意區(qū)間大小可依案例而異。在某些情況下,ー數(shù)值脈絡(luò)值的區(qū)間包含單一數(shù)值脈絡(luò)值。但在許多情況下,一區(qū)間可包含多個數(shù)值脈絡(luò)值。4.依據(jù)圖10的音頻編碼器圖10顯示依據(jù)本發(fā)明的實(shí)施例,一種音頻編碼器1000的方塊示意圖。依據(jù)圖10的音頻編碼器1000類似于依據(jù)圖7的音頻編碼器700,因而圖7及圖10的相同信號及裝置標(biāo)示以相同的參考數(shù)字。音頻編碼器1000被配置成接收ー輸入音頻信息710,及基于此來提供ー編碼音頻信息712。音頻編碼器1000包含能量壓縮時域至頻域變換器720,其被配置成基于輸入音頻信息710的時域表示來提供頻域表示722,使得頻域表示722包含一頻譜值集合。音頻編碼器1000還包含一算木編碼器1030,其被配置成使用可變長度碼字來編碼(形成頻域表示722的頻譜值集合中的)一頻譜值或其預(yù)處理版本,以獲得編碼音頻信息712(其例如可包含多個可變長度碼字)。算術(shù)編碼器1030被配置成依據(jù)脈絡(luò)值而將一頻譜值或多個頻譜值,或者一頻譜值或多個頻譜值的最高有效比特平面值映射至一碼值(亦即映射至一可變長度碼字)。算術(shù)編碼器1030被配置成依據(jù)脈絡(luò)狀態(tài)來選擇描述一頻譜值或多個頻譜值,或者一頻譜值或多個頻譜值的最高有效比特平面的值至一碼值的映射的一映射規(guī)則。該算術(shù)編碼器被配置成依據(jù)多個先前編碼(較佳但不一定相鄰)頻譜值來確定當(dāng)前脈絡(luò)狀態(tài)。為了達(dá)成此項(xiàng)目的,算術(shù)編碼器被配置成依據(jù)脈絡(luò)子區(qū)值來修改描述與一或多個先前編碼頻譜值相關(guān)聯(lián)的脈絡(luò)狀態(tài)(例如,選擇相對應(yīng)的映射規(guī)則)的數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲編碼頻譜值相關(guān)聯(lián)的脈絡(luò)狀態(tài)(例如,選擇相對應(yīng)的映射規(guī)則)的數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。如圖可知,將一頻譜值或多個頻譜值,或者一頻譜值或多個頻譜值的最高有效比特平面映射至一碼值可使用由映射規(guī)則信息742所描述的映射規(guī)則而借頻譜值編碼740執(zhí)行。狀態(tài)追蹤器750可被配置成追蹤脈絡(luò)狀態(tài)。狀態(tài)追蹤器750可被配置成依據(jù)脈絡(luò)子區(qū)值來修改描述與一或多個先前編碼頻譜值的編碼相關(guān)聯(lián)的脈絡(luò)狀態(tài)的數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲編碼頻譜值的編碼相關(guān)聯(lián)的脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。數(shù)值先前脈絡(luò)值的數(shù)字表示的修改例如可借數(shù)字表示修改器1052進(jìn)行,數(shù)字表示修改器1052接收數(shù)值先前脈絡(luò)值及一或多個脈絡(luò)子區(qū)值,并提供數(shù)值當(dāng)前脈絡(luò)值。據(jù)此,狀態(tài)追蹤器1050提供描述當(dāng)前脈絡(luò)狀態(tài)的信息754,例如以數(shù)值當(dāng)前脈絡(luò)值的形式。映射規(guī)則選擇器1060可選擇映射規(guī)則,例如累積頻率表,其描述一頻譜值或多個頻譜值,或者一頻譜值或多個頻譜值的最高有效比特平面至一碼值的映射。據(jù)此,映射規(guī)則選擇器1060提供映射規(guī)則信息742給頻譜編碼740。在某些情況下,須注意狀態(tài)追蹤器1050可與狀態(tài)追蹤器750或狀態(tài)追蹤器826相同。也須注意在某些情況下,映射規(guī)則選擇器1060可與映射規(guī)則選擇器760或映射規(guī)則選擇器828相同。綜上所述,音頻編碼器1000對由時域至頻域變換器所提供的頻域音頻表示執(zhí)行算術(shù)編碼。算術(shù)編碼為脈絡(luò)相依性,因而映射規(guī)則(例如,累積頻率表)依據(jù)先前已編碼的頻譜值而選定。據(jù)此,在算術(shù)編碼中考慮時間上及/或頻率上(或至少在預(yù)定環(huán)境內(nèi)部)彼此相鄰及/或相鄰于當(dāng)前編碼頻譜值(亦即在該當(dāng)前編碼頻譜值的預(yù)定環(huán)境內(nèi)部的頻譜值)的頻譜值來調(diào)整由算術(shù)編碼所評估的概率分布。當(dāng)確定數(shù)值當(dāng)前脈絡(luò)值時,描述與一或多個先前已編碼的頻譜值相關(guān)聯(lián)的脈絡(luò)狀態(tài)的數(shù)值先前脈絡(luò)值的數(shù)字表示依據(jù)脈絡(luò)子區(qū)值來修改,以獲得描述與一或多個欲編碼頻譜值相關(guān)聯(lián)的脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。此辦法避免完全重新計(jì)算數(shù)值當(dāng)前脈絡(luò)值,常規(guī)方法中完全重新計(jì)算耗用大量資源。有多種用以修改數(shù)值先前脈絡(luò)值的數(shù)字表示的可能性存在,包括數(shù)值先前脈絡(luò)值的數(shù)字表示的重新定標(biāo)的組合;脈絡(luò)子區(qū)值或其導(dǎo)算值加至數(shù)值先前脈絡(luò)值的數(shù)字表示或加至已處理的數(shù)值先前脈絡(luò)值的數(shù)字表示;依據(jù)脈絡(luò)子區(qū)值來置換部分?jǐn)?shù)值先前脈絡(luò)值的數(shù)字表示(而非全部數(shù)字表示)等。如此,通常,數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示是基于數(shù)值先前脈絡(luò)值的數(shù)字表示而獲得的,也是基于至少一個脈絡(luò)子區(qū)值而獲得的,其中通常執(zhí)行運(yùn)算組合,諸如,舉例而言,加法運(yùn)算、減法運(yùn)算、乘法運(yùn)算、除法運(yùn)算、布爾(Boolean)與(AND)運(yùn)算、布爾或(OR)運(yùn)算、布爾與非(NAND)運(yùn)算、布爾或非(NOR)運(yùn)算、布爾邏輯非運(yùn)算、補(bǔ)數(shù)運(yùn)算或移位運(yùn)算中的兩種或多種運(yùn)算,來組合數(shù)值先前脈絡(luò)值與脈絡(luò)子區(qū)值。據(jù)此,當(dāng)從數(shù)值先前脈絡(luò)值導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值時,通常至少部分?jǐn)?shù)值先前脈絡(luò)值的數(shù)字表示維持不變(除了選擇性地移位至不同位置外)。相反地,數(shù)值先前脈絡(luò)值的數(shù)字表示的其它部分依一或多個脈絡(luò)子區(qū)值而改變。如此,可以較少運(yùn)算量而獲得數(shù)值當(dāng)前脈絡(luò)值,同時避免完全重新計(jì)算數(shù)值當(dāng)前脈絡(luò)值。如此,可獲得有意義的數(shù)值當(dāng)前脈絡(luò)值,其極其適合映射規(guī)則選擇器1060使用。所以,借由維持脈絡(luò)計(jì)算的足夠簡單,可獲得有效編碼。5.依據(jù)圖11的音頻解碼器圖11顯示音頻解碼器1100的方塊示意圖。音頻解碼器1100類似于依據(jù)圖8的音頻解碼器800,因而相同信號、裝置及功能標(biāo)示以相同參考數(shù)字。音頻解碼器1100被配置成接收音頻信息810,及基于此來提供已解碼的音頻信息812。音頻解碼器1100包含算術(shù)解碼器1120,其被配置成基于頻譜值的算術(shù)編碼表示821來提供多個已解碼的頻譜值822。音頻解碼器1100還包含頻域至?xí)r域變換器830,其被配置成接收解碼頻譜值822,及使用解碼頻譜值822提供能組成解碼音頻信息的時域音頻表/Jn812,以獲得解碼首頻彳目息812。算術(shù)解碼器1120包含頻譜值確定器824,其被配置成將頻譜值的算術(shù)編碼表示821的一碼值映射至表示解碼頻譜值中的一或多者,或者解碼頻譜值中的一或多者的至少一部分(例如,最高有效比特平面)的一符元碼。頻譜值確定器824可被配置成依據(jù)映射規(guī)則執(zhí)行映射,映射規(guī)則借映射規(guī)則信息828a來描述。映射規(guī)則信息828a例如可包含映射規(guī)則索引值,或可包含累積頻率表表項(xiàng)的一選定集合。算術(shù)解碼器1120被配置成依據(jù)可由脈絡(luò)狀態(tài)信息1126a來描述的脈絡(luò)狀態(tài)來選擇描述碼值(由頻譜值的算術(shù)編碼表示821來描述)至符元碼(描述一或多個頻譜值)的映射的映射規(guī)則(例如,累積頻率表)。脈絡(luò)狀態(tài)信息1126a可呈數(shù)值當(dāng)前脈絡(luò)值形式。算術(shù)解碼器1120被配置成依據(jù)多個先前已解碼的頻譜值822來確定當(dāng)前脈絡(luò)狀態(tài)。為了達(dá)成此項(xiàng)目的,可使用狀態(tài)追蹤器1126,其接收描述先前已解碼的頻譜值的信息。算術(shù)解碼器被配置成依據(jù)脈絡(luò)子區(qū)值,修改描述與一或多個先前已解碼的頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲解碼頻譜值相關(guān)聯(lián)的脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。數(shù)值先前脈絡(luò)值的數(shù)字表示的修改例如可借數(shù)字表示修改器1127執(zhí)行,該修改器是狀態(tài)追蹤器1126的一部分。據(jù)此,獲得當(dāng)前脈絡(luò)狀態(tài)信息1126a,例如呈數(shù)值當(dāng)前脈絡(luò)值形式。映射規(guī)則的選擇可借映射規(guī)則選擇器1128執(zhí)行,該選擇器從當(dāng)前脈絡(luò)狀態(tài)信息1126a導(dǎo)算出映射規(guī)則信息828a,并提供映射規(guī)則信息828a給頻譜值確定器824。有關(guān)音頻信號解碼器1100的功能,須注意算術(shù)解碼器1120被配置成選定一映射規(guī)則(例如,累積頻率表),其一般而言良好適應(yīng)于欲解碼的頻譜值,原因在于映射規(guī)則依據(jù)當(dāng)前脈絡(luò)狀態(tài)而選定,而當(dāng)前脈絡(luò)狀態(tài)又是依據(jù)多個先前已解碼的頻譜值而確定的。據(jù)此,可利用欲解碼的相鄰頻譜值間的統(tǒng)計(jì)相依性。此外,借由依據(jù)一脈絡(luò)子區(qū)值,修改描述與一或多個先前已解碼的頻譜值的解碼相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲解碼頻譜值的解碼相關(guān)聯(lián)的脈絡(luò)狀態(tài)的數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示,可以較少的運(yùn)算量獲得有關(guān)當(dāng)前脈絡(luò)狀態(tài)的有意義信息,其極為適合用以映射至映射規(guī)則索引值。借由維持?jǐn)?shù)值先前脈絡(luò)值的數(shù)字表示的至少一部分(可能呈比特移位版本或定標(biāo)版本),同時依據(jù)脈絡(luò)子區(qū)值來更新數(shù)值先前脈絡(luò)值的數(shù)字表示的另一部分,在導(dǎo)算數(shù)值先前脈絡(luò)值時沒有考慮所述脈絡(luò)子區(qū)值,但在導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值時應(yīng)該要考慮所述脈絡(luò)子區(qū)值,因此,可維持導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值的運(yùn)算次數(shù)相當(dāng)少。而且,可能利用下述事實(shí)用以解碼相鄰頻譜值的脈絡(luò)通常是相似或相關(guān)的。例如,用以解碼第一頻譜值(或第一多個頻譜值)的脈絡(luò)取決于先前已解碼的頻譜值的第一集合。用以解碼相鄰于第一頻譜值(或頻譜值的第一集合)的第二頻譜值(或頻譜值的第二集合)的脈絡(luò)可包含先前已解碼的頻譜值的第二集合。因假設(shè)第一頻譜值與第二頻譜值是相鄰的(例如,就相關(guān)聯(lián)的頻率而言),確定用于第一頻譜值編碼的脈絡(luò)的第一頻譜值集合可與確定用于第二頻譜值解碼的脈絡(luò)的第二頻譜值集合包含若干重疊。據(jù)此,容易了解用于第二頻譜值解碼的脈絡(luò)狀態(tài)與用于第一頻譜值解碼的脈絡(luò)狀態(tài)有一定的相關(guān)性。脈絡(luò)導(dǎo)算,亦即數(shù)值當(dāng)前脈絡(luò)值導(dǎo)算的運(yùn)算效率可借由利用這樣的相關(guān)性而達(dá)成。業(yè)已發(fā)現(xiàn),借由只修改取決于在導(dǎo)算數(shù)值先前脈絡(luò)值時未被考慮的脈絡(luò)子區(qū)值的數(shù)值先前脈絡(luò)值的那些部分,并且借由從該數(shù)值先前脈絡(luò)值來導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值,可有效利用用于相鄰頻譜值解碼的脈絡(luò)狀態(tài)信息間(亦即由數(shù)值先前脈絡(luò)值所描述的脈絡(luò)狀態(tài)與由數(shù)值當(dāng)前脈絡(luò)值所描述的脈絡(luò)狀態(tài)間)的相關(guān)性。總結(jié)而言,此處所述構(gòu)想允許導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值時有特別好的運(yùn)算效率。進(jìn)ー步細(xì)節(jié)容后詳述。6.依據(jù)圖12的音頻編碼器圖12顯示依據(jù)本發(fā)明的實(shí)施例,一種音頻編碼器的方塊示意圖。依據(jù)圖12的音頻編碼器1200類似于依據(jù)圖7的音頻編碼器700,故相同裝置、信號及功能標(biāo)示以相同參考數(shù)字。音頻編碼器1200被配置成接收輸入音頻信息710,及基于此來提供編碼音頻信息712。音頻編碼器1200包含能量壓縮時域至頻域變換器720,其被配置成基于輸入音頻信息710的時域表示來提供頻域音頻表示722,使得頻域音頻表示722包含一頻譜值集合。音頻編碼器1200還包含算木編碼器1230,其被配置成使用可變長度碼字來編碼(形成頻域音頻表示722的該頻譜值集合中的)一個頻譜值或多個頻譜值或其預(yù)處理版本,以獲得編碼音頻信息712(其例如可包含多個可變長度碼字)。算木編碼器1230被配置成依據(jù)脈絡(luò)狀態(tài),將ー個頻譜值或多個頻譜值,或者ー個頻譜值或多個頻譜值的最高有效比特平面映射至ー碼值(亦即映射至一可變長度碼字)。算木編碼器1230被配置成依據(jù)脈絡(luò)狀態(tài),選擇描述ー個頻譜值或多個頻譜值,或者ー個頻譜值或多個頻譜值的最高有效比特平面至一碼值的映射的映射規(guī)則。該算術(shù)編碼器被配置成依據(jù)多個先前已編碼的(較佳但不一定相鄰的)頻譜值來確定當(dāng)前脈絡(luò)狀態(tài)。為了達(dá)成此項(xiàng)目的,該算術(shù)編碼器被配置成基于先前已編碼的頻譜值來獲得多個脈絡(luò)子區(qū)值,儲存所述脈絡(luò)子區(qū)值,及依據(jù)所儲存的脈絡(luò)子區(qū)值來導(dǎo)算出與一或多個欲編碼頻譜值相關(guān)聯(lián)的ー數(shù)值當(dāng)前脈絡(luò)值。此外,該算術(shù)編碼器被配置成計(jì)算由多個先前已編碼的頻譜值所形成的一向量的范數(shù)(norm),以獲得與多個先前已編碼的頻譜值相關(guān)聯(lián)的一共用脈絡(luò)子區(qū)值。如圖可知,ー個頻譜值或多個頻譜值,或者ー個頻譜值或多個頻譜值的最高有效比特平面映射至碼值可借頻譜值編碼740,使用由映射規(guī)則信息742所描述的映射規(guī)則執(zhí)行。狀態(tài)追蹤器1250可被配置成追蹤脈絡(luò)狀態(tài),且可包含脈絡(luò)子區(qū)值運(yùn)算器1252,用以計(jì)算由多個先前已編碼的頻譜值所形成的向量的范數(shù),以獲得與多個先前已編碼的頻譜值相關(guān)聯(lián)的一共用脈絡(luò)子區(qū)值。狀態(tài)追蹤器1250也較佳地被配置成依據(jù)由脈絡(luò)子區(qū)值運(yùn)算器1252所執(zhí)行的脈絡(luò)子區(qū)值運(yùn)算的結(jié)果來確定當(dāng)前脈絡(luò)狀態(tài)。據(jù)此,狀態(tài)追蹤器1250提供描述當(dāng)前脈絡(luò)狀態(tài)的信息1254。映射規(guī)則選擇器1260可選擇描述一個頻譜值或多個頻譜值,或者一個頻譜值或多個頻譜值的最高有效比特平面至碼值的映射的映射規(guī)則,例如,累積頻率表。據(jù)此,映射規(guī)則選擇器1260提供映射規(guī)則信息742給頻譜編碼740。綜上所述,音頻編碼器1200執(zhí)行由時域至頻域變換器720所提供的頻域音頻表示的算術(shù)編碼。該算術(shù)編碼為脈絡(luò)相依性,使得映射規(guī)則(例如,累積頻率表)依據(jù)先前已編碼的頻譜值而選定。據(jù)此,在算術(shù)編碼中考慮時間上及/或頻率上(或至少在預(yù)定環(huán)境內(nèi)部)彼此相鄰及/或相鄰于當(dāng)前編碼頻譜值(亦即在該當(dāng)前編碼頻譜值的預(yù)定環(huán)境內(nèi)部的頻譜值)的頻譜值來調(diào)整由算術(shù)編碼器所評估的概率分布。為了提供數(shù)值當(dāng)前脈絡(luò)值,基于由多個先前已編碼的頻譜值所形成的向量的范數(shù)的運(yùn)算而獲得與多個先前已編碼的頻譜值相關(guān)聯(lián)的脈絡(luò)子區(qū)值。數(shù)值當(dāng)前脈絡(luò)值的確定結(jié)果應(yīng)用于當(dāng)前脈絡(luò)狀態(tài)的選擇,亦即應(yīng)用于映射規(guī)則的選擇。借由計(jì)算由多個先前已編碼的頻譜值所形成的一向量的范數(shù),可獲得描述一或多個欲編碼頻譜值的脈絡(luò)的一部分的有意義信息,其中先前已編碼的頻譜值的一向量的范數(shù)通??捎孟鄬^少數(shù)比特表示。如此,需要儲存以備以后導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值要用的脈絡(luò)信息量可借由應(yīng)用前文討論的脈絡(luò)子區(qū)值運(yùn)算辦法而維持足夠少。業(yè)已發(fā)現(xiàn)先前已編碼的頻譜值的一向量的范數(shù)通常包含有關(guān)脈絡(luò)狀態(tài)的最有效信息。相反地,業(yè)已發(fā)現(xiàn)先前已編碼的頻譜值符號(sign)通常包含對脈絡(luò)狀態(tài)的附屬影響,因而忽略先前已編碼的頻譜值符號來減少需儲存以備后用的信息量是合理的。而且,業(yè)已發(fā)現(xiàn)先前已編碼的頻譜值的一向量的范數(shù)運(yùn)算是用以導(dǎo)算一脈絡(luò)子區(qū)值的合理辦法,原因在于通常借范數(shù)運(yùn)算所獲得的平均效果對有關(guān)脈絡(luò)狀態(tài)的最重要信息實(shí)質(zhì)上沒有影響。概括而言,借脈絡(luò)子區(qū)值運(yùn)算器1252執(zhí)行的脈絡(luò)子區(qū)值運(yùn)算允許提供壓縮脈絡(luò)子區(qū)值信息供儲存以備再度使用,其中盡管信息量減少,但有關(guān)脈絡(luò)狀態(tài)的最相關(guān)信息仍然保留了下來。據(jù)此,可獲得輸入音頻信息710的有效編碼,同時維持算術(shù)編碼器1230的運(yùn)算量及儲存的數(shù)據(jù)量夠小。7.依據(jù)圖13的音頻解碼器圖13顯示音頻解碼器1300的方塊示意圖。由于音頻解碼器1300類似于依據(jù)圖8的音頻解碼器800和依據(jù)圖11的音頻解碼器1100,相同裝置、信號及功能標(biāo)示以相同的參考數(shù)字。音頻解碼器1300被配置成接收音頻信息810,及基于此來提供已解碼的音頻信息812。音頻解碼器1300包含算術(shù)解碼器1320,其被配置成基于頻譜值的算術(shù)編碼表示821來提供多個已解碼的頻譜值822。音頻解碼器1300還包含頻域至?xí)r域變換器830,其被配置成接收解碼頻譜值822,及使用解碼頻譜值822提供可組成解碼音頻信息的時域音頻表/Jn812,以獲得解碼首頻彳目息812。算術(shù)解碼器1320包含頻譜值確定器824,其被配置成將頻譜值的算術(shù)編碼表示821的碼值映射至表示解碼頻譜值中的一或多者,或者解碼頻譜值中的一或多者的至少一部分(例如,最高有效比特平面)的符元碼。頻譜值確定器824可被配置成依據(jù)映射規(guī)則執(zhí)行映射,映射規(guī)則借映射規(guī)則信息828a來描述。映射規(guī)則信息828a例如可包含映射規(guī)則索引值,或可包含累積頻率表表項(xiàng)的一選定集合。算術(shù)解碼器1320被配置成依據(jù)脈絡(luò)狀態(tài)(其可由脈絡(luò)狀態(tài)信息1326a來描述)來選擇描述碼值(由頻譜值的算術(shù)編碼表示821來描述)至符元碼(描述一或多個頻譜值)的映射的映射規(guī)則(例如,累積頻率表)。算術(shù)解碼器1320被配置成依據(jù)多個先前已解碼的頻譜值822來確定當(dāng)前脈絡(luò)狀態(tài)。為了達(dá)成此項(xiàng)目的,可使用狀態(tài)追蹤器1326,其接收描述先前已解碼的頻譜值的信息。算術(shù)解碼器還被配置成基于先前已解碼的頻譜值而獲得多個脈絡(luò)子區(qū)值,并且儲存所述脈絡(luò)子區(qū)值。該算術(shù)解碼器被配置成依據(jù)所儲存的脈絡(luò)子區(qū)值而導(dǎo)算出與一或多個欲解碼頻譜值相關(guān)聯(lián)的數(shù)值當(dāng)前脈絡(luò)值。算術(shù)解碼器1320被配置成計(jì)算由多個先前已解碼的頻譜值所形成的一向量的范數(shù),以獲得與多個先前已解碼的頻譜值相關(guān)聯(lián)的一共用脈絡(luò)子區(qū)值。計(jì)算先前已編碼的頻譜值的一向量的范數(shù)以獲得與多個先前已解碼的頻譜值相關(guān)聯(lián)的一共用脈絡(luò)子區(qū)值,例如可借脈絡(luò)子區(qū)值運(yùn)算器1327來執(zhí)行,該運(yùn)算器是狀態(tài)追蹤器1326的一部分。據(jù)此,當(dāng)前脈絡(luò)狀態(tài)信息1326a基于脈絡(luò)子區(qū)值而獲得,其中狀態(tài)追蹤器1326較佳地依據(jù)所儲存的脈絡(luò)子區(qū)值來提供與一或多個欲解碼頻譜值相關(guān)聯(lián)的數(shù)值當(dāng)前脈絡(luò)值。映射規(guī)則的選擇可借映射規(guī)則選擇器1328執(zhí)行,該選擇器從當(dāng)前脈絡(luò)狀態(tài)信息1326a導(dǎo)算出映射規(guī)則信息828a,并提供映射規(guī)則信息828a給頻譜值確定器824。有關(guān)音頻信號解碼器1300的功能,須注意算術(shù)解碼器1320被配置成選定一映射規(guī)則(例如,累積頻率表),其一般而言良好適應(yīng)于欲解碼的頻譜值,原因在于映射規(guī)則是依據(jù)當(dāng)前脈絡(luò)狀態(tài)而選定的,而當(dāng)前脈絡(luò)狀態(tài)又是依據(jù)多個先前已解碼的頻譜值而確定的。據(jù)此,可利用欲解碼的相鄰頻譜值間的統(tǒng)計(jì)相依性。但業(yè)已發(fā)現(xiàn)就內(nèi)存的使用而言,儲存基于由多個先前已解碼的頻譜值所形成的一向量的范數(shù)的運(yùn)算的脈絡(luò)子區(qū)值,供以后確定數(shù)值脈絡(luò)值時使用是有效的。業(yè)已發(fā)現(xiàn)此類脈絡(luò)子區(qū)值仍然包含最相關(guān)的脈絡(luò)信息。據(jù)此,狀態(tài)追蹤器1326使用的構(gòu)想構(gòu)成編碼效率、運(yùn)算效率與儲存效率間的良好折衷。進(jìn)一步細(xì)節(jié)容后詳述。8.依據(jù)圖I的音頻編碼器后文中將敘述依據(jù)本發(fā)明的實(shí)施例的音頻編碼器。圖I顯示這種音頻編碼器100的方塊示意圖。音頻編碼器100被配置成接收輸入音頻信息110,及基于此來提供比特串流112,比特串流112組成編碼音頻信息。音頻編碼器100選擇性地包含預(yù)處理器120,其被配置成接收輸入音頻信息110,及基于此來提供經(jīng)預(yù)處理的輸入音頻信息110a。音頻編碼器100還包含能量壓縮時域至頻域信號變換器(transformer)130,其也被稱為信號變換器(converter)。信號變換器130被配置成接收輸入音頻信息110、110a,及基于此來提供頻域音頻信息132,其較佳地呈一頻譜值集合形式。例如,信號變換器130可被配置成接收輸入音頻信息IlOUlOa的一幀(例如時域樣本的一區(qū)塊),及提供表示個別音頻幀之音頻內(nèi)容的一頻譜值集合。此外,信號變換器130可被配置成接收輸入音頻信息IlOUlOa的多個接續(xù)重疊的或非重疊的音頻幀,并基于此來提供一時頻域音頻表示,其包含一序列接續(xù)的頻譜值集合,每個頻譜值集合與每一幀相關(guān)聯(lián)。能量壓縮時域至頻域信號變換器130可包含一能量壓縮濾波器組,其提供與不同的重疊的或非重疊的頻率范圍相關(guān)聯(lián)的頻譜值。例如,信號變換器130可包含加窗修正離散余弦變換(MDCT)變換器130a,其被配置成使用變換窗來對輸入音頻信息IlOUlOa(或其ー幀)加窗,及對已加窗輸入音頻信息IlOUlOa(或其加窗幀)執(zhí)行修正離散余弦變換(MDCT)。據(jù)此,頻域音頻表示132可包含例如1024個頻譜值的ー集合,呈與輸入音頻信息的ー幀相關(guān)聯(lián)的MDCT系數(shù)形式。音頻編碼器100可進(jìn)ー步選擇性地包含頻譜后處理器140,其被配置成接收頻域音頻表示132,及基于此來提供經(jīng)后處理的頻域音頻表示142。頻譜后處理器140例如可被配置成執(zhí)行時間噪聲整形(noiseshaping)及/或長期預(yù)測及/或業(yè)界已知的任何其它頻譜后處理。該音頻編碼器進(jìn)ー步選擇性地包含定標(biāo)器/量化器150,其被配置成接收頻域音頻表示132或其后處理版本142,及提供已定標(biāo)且已量化的頻域音頻表示152。音頻編碼器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應(yīng)用的量化分辨率。結(jié)果,感知上重要的尺度因子帶(scalefactorband)(亦即對音頻內(nèi)容的人類感知特別重要的相鄰頻譜值群組)以大尺度因子定標(biāo)且以相對較高的分辨率量化,而感知上較不重要的尺度因子帶(亦即相鄰頻譜值群組)以相對較小的尺度因子定標(biāo)且以相對較低的量化分辨率量化。據(jù)此,感知上較為重要的頻率的定標(biāo)頻譜值通常明顯大于感知上較不重要的頻率的定標(biāo)頻譜值。音頻編碼器還包含算木編碼器170,其被配置成接收頻域音頻表示132的已定標(biāo)且已量化版本152(或者是頻域音頻表示132的后處理版本142,或甚至是頻域音頻表示132本身),及基于此來提供算術(shù)碼字信息172a,使得算術(shù)碼字信息表示頻域音頻表示152。音頻編碼器100還包含比特串流有效載荷(playload)格式化器190,其被配置成接收算術(shù)碼字信息172a。比特串流有效載荷格式化器190還通常被配置成接收額外信息,例如描述哪些尺度因子已經(jīng)由定標(biāo)器/量化器150應(yīng)用的尺度因子信息。此外,比特串流有效載荷格式化器190可被配置成接收其它控制信息。比特串流有效載荷格式化器190被配置成通過依據(jù)期望的比特串流語法來組裝比特串流,而基于所接收的信息來提供比特串流112,比特串流語法容后詳述。后文中,將描述有關(guān)算術(shù)編碼器170的細(xì)節(jié)。算木編碼器170被配置成接收多個頻域音頻表示132的已經(jīng)后處理且經(jīng)定標(biāo)與量化的頻譜值。該算術(shù)編碼器包含一最高有效比特平面抽取器174,其被配置成從ー個頻譜值,或甚至從兩個頻譜值中抽取最高有效比特平面m。此處須注意最高有效比特平面可包含一個或甚至多個比特(例如,2或3比持),它們是該頻譜值的最高有效比持。如此,最高有效比特平面抽取器174提供一頻譜值的最高有效比特平面值176。但另外,最高有效比特平面抽取器174可組合多個頻譜值(例如,頻譜值a和b)的最高有效比特平面,提供組合的最高有效比特平面值m。頻譜值a的最高有效比特平面標(biāo)示以m。另外,多個頻譜值a、b的組合的最高有效比特平面值標(biāo)示以m。算術(shù)編碼器170還包含第一碼字確定器180,其被配置成確定表示最高有效比特平面值m的算術(shù)碼字acod_m[pki][m]。第一碼字確定器180還可選擇性地提供一或多個脫序(escape)碼字(此處也標(biāo)示以「ARITH_ESCAPE」),其指示例如有多少較低有效的比特平面可資利用(且,因此,指示最高有效比特平面的數(shù)值權(quán)值)。第一碼字確定器180可被配置成使用具有累積頻率表索引Pki(或被其指稱)的一選定的累積頻率表來提供與最高有效比特平面值m相關(guān)聯(lián)的碼字。為了判定須選用哪一個累積頻率表,該算術(shù)編碼器較佳地包含一狀態(tài)追蹤器182,其被配置成例如借由觀察哪些頻譜值先前已經(jīng)編碼來追蹤算術(shù)編碼器的狀態(tài)。因此,狀態(tài)追蹤器182提供狀態(tài)信息184,例如標(biāo)示以「S」或「t」或「C」的狀態(tài)值。算術(shù)編碼器170還包含一累積頻率表選擇器186,其被配置成接收狀態(tài)信息184,及提供描述所選累積頻率表的信息188給碼字確定器180。例如,累積頻率表選擇器186可提供累積頻率表索引「pki」,其描述96個累積頻率表的一集合中哪個累積頻率表被選定供碼字確定器使用。另外,累積頻率表選擇器186可提供整個所選的累積頻率表或子表給碼字確定器。如此,碼字確定器180可使用所選的累積頻率表或子表來提供最高有效比特平面值m的碼字aCod_m[pki][m],使得編碼最高有效比特平面值m的實(shí)際碼字aCod_m[pki][m]與m值及累積頻率表索引Pki具有相依性,并從而與當(dāng)前狀態(tài)信息184具有相依性。有關(guān)編碼程序及所得碼字格式的進(jìn)一步細(xì)節(jié)容后詳述。但須注意在有些實(shí)施例中,狀態(tài)追蹤器182可與狀態(tài)追蹤器750、狀態(tài)追蹤器1050或狀態(tài)追蹤器1250相同或具有相同功能。還須注意在若干實(shí)施例中,累積頻率表選擇器186可與映射規(guī)則選擇器760、映射規(guī)則選擇器1060或映射規(guī)則選擇器1260相同或具有相同功能。此外,在若干實(shí)施例中,第一碼字確定器180可與頻譜值編碼740相同或具有相同功能。算術(shù)編碼器170進(jìn)一步包含一較低有效比特平面抽取器189a,其被配置成若欲編碼頻譜值中的一或多者超過只使用最高有效比特平面即可編碼的值的范圍,則從已定標(biāo)且已量化頻域音頻表示152中抽取一或多個較低有效比特平面。根據(jù)需要,較低有效比特平面可包含一或多個比特。據(jù)此,較低有效比特平面抽取器189a提供較低有效比特平面信息18%。算術(shù)編碼器170還包含第二碼字確定器189c,其被配置成接收較低有效比特平面信息189d,及基于此來提供表示O、I或多個較低有效比特平面內(nèi)容的O、I或多個碼字「acod_r」。第二碼字確定器189c可被配置成應(yīng)用算術(shù)編碼算法或任何其它編碼算法,以從較低有效比特平面信息18%導(dǎo)算出較低有效比特平面碼字「acod_r」。此處須注意較低有效比特平面的數(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]。為了達(dá)成此項(xiàng)目的,依據(jù)算術(shù)編碼器170的狀態(tài),亦即依據(jù)先前已編碼的頻譜值來編碼值m,96個不同的累積頻率表可資利用。如此,獲得碼字「acodjn[pki][m]」。此外,若存在一或多個較低有效比特平面,則提供一或多個碼字Γacod_rJ并將其納入比特串流。重置描述音頻編碼器100可選擇性地被配置成判定借由重置脈絡(luò),例如借由將狀態(tài)索引設(shè)定為默認(rèn)值,是否可獲得比特率的改良。據(jù)此,音頻編碼器100可被配置成提供一重置信息(例如,命名為「arith_reset_flag」),其指示用于算術(shù)編碼的脈絡(luò)是否重置,且還指示在對應(yīng)解碼器中用于算術(shù)解碼的脈絡(luò)是否應(yīng)重置。有關(guān)比特串流格式及所應(yīng)用的累積頻率表的細(xì)節(jié)容后詳述。9.依據(jù)圖2的音頻解碼器后文中,將敘述依據(jù)本發(fā)明的實(shí)施例的音頻解碼器。圖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,其也被稱為算術(shù)重置旗標(biāo)或「arith_reset_flag」。音頻解碼器200包含算術(shù)解碼器230,其也被稱為「頻譜無噪聲解碼器」。算術(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,其也被稱為「信號變換器」。信號變換器260被配置成接收已反量化且已重定標(biāo)的頻域音頻表示242的預(yù)處理版本252(或者是已反量化且已重定標(biāo)的頻域音頻表示242或已解碼頻域音頻表示232),及基于此來提供音頻信息的時域表示262。頻域至?xí)r域信號變換器260例如可包含用以執(zhí)行修正離散余弦反變換(MDCT)及適當(dāng)加窗(以及其它附屬功能,例如,重疊與相加)的變換器。音頻解碼器200可進(jìn)ー步包含ー選擇性的時域后處理器270,其被配置成接收音頻信息的時域表示262,及使用時域后處理來獲得已解碼音頻信息212。但若刪除后處理,則時域表示262可與解碼音頻信息212相同。此處須注意反量化器/重定標(biāo)器240、頻譜預(yù)處理器250、頻域至?xí)r域信號變換器260及時域后處理器270可依據(jù)控制信息而被控制,該控制信息是借比特串流有效載荷解格式化器220而從比特串流210中抽取得到的??偨Y(jié)音頻解碼器200的整體功能,已解碼頻域音頻表示232,例如與已編碼音頻信息的一音頻幀相關(guān)聯(lián)的一頻譜值集合,可使用算木解碼器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ù)音頻幀的時域表示間的重疊與相加來使相鄰音頻幀的時域表示間的切換平滑化,并因而獲得混疊消除(aliasingcancellation)。有關(guān)基于已解碼時頻域音頻表示232來重組已解碼音頻信息212的細(xì)節(jié),例如可參考國際標(biāo)準(zhǔn)IS0/IEC14496-3部分3子部分4,其中給出了詳細(xì)討論。但也可使用其它更詳盡的重疊及混疊消除方案。后文中,將描述有關(guān)算術(shù)解碼器230的若干細(xì)節(jié)。算木解碼器230包含最高有效比特平面確定器284,其被配置成接收描述最高有效比特平面值m的算術(shù)碼字aCod_m[pki][m]。最高有效比特平面確定器284可被配置成使用包含96個累積頻率表的一集合中的一個累積頻率表,從算術(shù)碼字「aCod_m[pki][m]」導(dǎo)算出最高有效比特平面值m。最高有效比特平面確定器284被配置成基于碼字aCOd_m來導(dǎo)算出多個頻譜值中的一者的最高有效比特平面值286。算術(shù)解碼器230進(jìn)ー步包含一較低有效比特平面確定器288,其被配置成接收表示一頻譜值的一或多個較低有效比特平面的一或多個碼字racod_rj0據(jù)此,較低有效比特平面確定器288被配置成提供一或多個較低有效比特平面的解碼值290。音頻解碼器200還包含ー比特平面組合器292,其被配置成接收ー或多個頻譜值的最高有效比特平面的已解碼值286,及若較低有效比特平面可供當(dāng)前頻譜值使用,則也可接收所述頻譜值的較低有效比特平面的已解碼值290。據(jù)此,比特平面組合器292提供已解碼頻譜值,它們是已解碼頻域音頻表示232的一部分。當(dāng)然,算木解碼器230通常被配置成提供多個頻譜值,以獲得與音頻內(nèi)容的一當(dāng)前幀相關(guān)聯(lián)的已解碼頻譜值的ー完整集ムロo算木解碼器230進(jìn)ー步包含一累積頻率表選擇器296,其被配置成依據(jù)描述算木解碼器狀態(tài)的ー狀態(tài)索引298來選擇96個累積頻率表中的一者。算木解碼器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ù)碼字「acod_m」來解碼最高有效比特平面值m??偨Y(jié)音頻解碼器200的功能,音頻解碼器200被配置成接收經(jīng)比特率有效編碼的頻域音頻表示222,及基于此來提供已解碼頻域音頻表示。在用來基于已編碼頻域音頻表示222來獲得已解碼頻域音頻表示232的算術(shù)解碼器230中,通過使用被配置成應(yīng)用一累積頻率表的算術(shù)解碼器280來利用相鄰頻譜值的最高有效比特平面值的不同組合的概率。換言之,通過依據(jù)狀態(tài)索引298而從包含96個不同累積頻率表的一集合中選出不同累積頻率表來利用頻譜值間的統(tǒng)計(jì)相依性,狀態(tài)索引298是由觀察先前算出的已解碼頻譜值獲得的。須注意狀態(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ù)解碼算法的教示來執(zhí)行相對應(yīng)的編碼算法,其中編碼頻譜值與解碼頻譜值間的映射關(guān)系是顛倒的,且其中映射規(guī)則索引值的運(yùn)算實(shí)質(zhì)上是相同的。在編碼器中,編碼頻譜值替代解碼頻譜值。而且,欲編碼頻譜值替代欲解碼頻譜值。須注意使用解碼(容后詳述)是為了允許對通常已經(jīng)后處理、經(jīng)定標(biāo)且經(jīng)量化的頻譜值進(jìn)行所謂的「頻譜無噪聲編碼」。頻譜無噪聲編碼用于音頻編碼/解碼構(gòu)想(或任何其它編碼/解碼構(gòu)想)以進(jìn)一步減少借能量壓縮時域至頻域信號變換器所得的量化頻譜的冗余。本發(fā)明的實(shí)施例中所使用的頻譜無噪聲編碼方案以算術(shù)編碼為基礎(chǔ),并結(jié)合動態(tài)調(diào)適脈絡(luò)。在依據(jù)本發(fā)明的若干實(shí)施例中,頻譜無噪聲編碼方案以2元組(2-tuple)為基礎(chǔ),換言之,兩個相鄰頻譜系數(shù)組合在一起。每一個2元組被分裂成符號、最高有效逐2-比特平面,及剩余的較低有效比特平面。使用由四個先前已解碼的2元組導(dǎo)算出的脈絡(luò)相依性累積頻率表對最高有效逐2-比特平面m進(jìn)行無噪聲編碼。無噪聲編碼饋入量化頻譜值,且使用由四個先前已解碼的2元組導(dǎo)算出的脈絡(luò)相依性累積頻率表。此處,在時間及頻譜上鄰近的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)行無噪聲編碼。累積頻率例如與出現(xiàn)在較低有效比特平面的符元的均勻分布相對應(yīng),亦即預(yù)期在較低有效比特平面出現(xiàn)O或I的概率相等。后文中,將給出頻譜無噪聲編碼工具的另一段簡短綜論。使用頻譜無噪聲編碼來進(jìn)一步減少量化頻譜的冗余。頻譜無噪聲編碼方案以算術(shù)編碼以基礎(chǔ),結(jié)合動態(tài)調(diào)適性脈絡(luò)。無噪聲編碼饋入量化頻譜值,且使用例如由四個先前已解碼的鄰近頻譜值導(dǎo)算出的2元組的脈絡(luò)相依性累積頻率表。此處,在時間及頻譜上鄰近的2元組被列入考慮,如圖4所示。然后累積頻率表由算術(shù)編碼器使用來產(chǎn)生可變長度二進(jìn)制碼。算術(shù)編碼器對一給定符元集合及它們各自的概率產(chǎn)生二進(jìn)制碼。二進(jìn)制碼是通過將該符元集合所在的一概率區(qū)間映射至一碼字而產(chǎn)生的。11.解碼程序11.I解碼程序綜論后文中,將參考圖3給出一頻譜值編碼程序的綜論,該圖顯示解碼多個頻譜值的程序的偽程序碼表示。多個頻譜值的解碼程序包含脈絡(luò)的初始化(initialization)310。脈絡(luò)的初始化310包含使用函數(shù)「arith_map_context(N,arith_reset_flag)」由一先前脈絡(luò)導(dǎo)算出當(dāng)前脈絡(luò)。由先前脈絡(luò)導(dǎo)算出當(dāng)前脈絡(luò)可選擇性地包含脈絡(luò)的重置。脈絡(luò)的重置以及由先前脈絡(luò)導(dǎo)算出當(dāng)前脈絡(luò)容后詳述。多個頻譜值的解碼還包含頻譜值解碼312及脈絡(luò)更新313的迭代重復(fù)(iteration),脈絡(luò)更新313借函數(shù)「arith_update_context(i,a,b)」執(zhí)行,容后詳述。除非檢測到所謂的「ARITH_ST0P」符元,否則頻譜值解碼312及脈絡(luò)更新312重復(fù)lg/2次,此處lg/2指示欲解碼頻譜值的2元組數(shù)目(例如,對一音頻幀而言)。此外,將一個由Ig個頻譜值組成的集合解碼還包含一符號解碼314及一結(jié)束步驟315。一頻譜值元組的解碼312包含脈絡(luò)值計(jì)算312a、最高有效比特平面解碼312b、算術(shù)終止符元檢測312c、較低有效比特平面加法312d,及陣列更新312e。狀態(tài)值運(yùn)算312a包含調(diào)用例如如圖5c或5d所示的函數(shù)「arith_get_context(c,i,N)J0據(jù)此,提供數(shù)值當(dāng)前脈絡(luò)(狀態(tài))值c作為函數(shù)「arith_get_context(c,i,N)J的函數(shù)調(diào)用的回送值(returnvalue)。如圖可知,數(shù)值先前脈絡(luò)值(也標(biāo)示以「C」)作為函數(shù)「arith_get_context(c,i,N)」的輸入變量,由回送值來更新以獲得數(shù)值當(dāng)前脈絡(luò)值C。最高有效比特平面解碼312b包含解碼算法312ba的迭代重復(fù)執(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)前脈絡(luò)值c,且還依據(jù)位階值「esc_nb」來計(jì)算狀態(tài)索引「pki」(其也用作累積頻率表索引),關(guān)于函數(shù)「arith_get_pk()」容后詳述(且例如,圖5e及5f顯示其實(shí)施例)。算法312ba還包含依據(jù)通過調(diào)用函數(shù)「arith_get_pk」所回送的狀態(tài)索引「pki」來選擇一累積頻率表,其中變量「cum_freq」可依據(jù)狀態(tài)索引「pki」被設(shè)定為96個累積頻率表(或子表)中的一者的起始地址。變量「Cf!」也可被初始化成該選定累積頻率表(或子表)的長度,此長度例如等于碼表(alphabet)中的符元數(shù)目,亦即可解碼的不同值的數(shù)目??衫脕斫獯a最高有效比特平面值m的從「ari_cf_m[pki=0][17]J到「ari_cf_m[pki=95][17]」的全部累積頻率表(或子表)的長度為17,故可解碼16個不同的最高有效比特平面值及一個脫序符元(「ARITH_ESCAPE」)。隨后,考慮所選累積頻率表(借變量「CUm_freq」及變量「CfI」描述),通過執(zhí)行函數(shù)「arith_decode()」可獲得最高有效比特平面值m。當(dāng)導(dǎo)算最高有效比特平面值m時,可評估比特串流210中被命名為「acod_m」的比特(例如,參見圖6g或圖6h)。算法312ba還包含檢查最高有效比特平面值m是否等于脫序符元「ARITH_ESCAPE」。若最高有效比特平面值m不等于算術(shù)脫序符元,則中斷算法312ba(「中斷」條件),然后跳過算法312ba的其余指令。據(jù)此,通過在步驟312bb中設(shè)定值b和值a來繼續(xù)執(zhí)行程序。相反地,若已解碼的最高有效比特平面值m與該算術(shù)脫序符元或「ARITH_ESCAPE」相同,則位階值「lev」遞增I。除非在位階值「lev」大于7的情況下,位階值「esc_nb」被設(shè)定為等于7,否則位階值「esc_nb」被設(shè)定為等于位階值「lev」。如上文所提到的,接著重復(fù)算法312ba直到已解碼最高有效比特平面值m與算木脫序符元相異為止,其中使用的是經(jīng)修改的脈絡(luò)(原因在于函數(shù)「arith_get_pk()」的輸入?yún)?shù)是依據(jù)變量「esc_nb」的值而調(diào)整適應(yīng)的)。一旦最高有效比特平面使用算法312ba的一次執(zhí)行或迭代重復(fù)執(zhí)行而解碼時,亦即與算木脫序符元相異的最高有效比特平面值m已經(jīng)解碼時,頻譜值變量「b」就被設(shè)定為等于最高有效比特平面值m的多個(例如,2個)較高有效比持;且頻譜值變量「a」被設(shè)定為等于最高有效比特平面值m的(例如,2個)最低比特。有關(guān)此功能的細(xì)節(jié)例如參見參考數(shù)字312bb。接著在步驟312c中檢查是否存在算木終止符元。如果最高有效比特平面值m等于零且變量「lev」大于零,則存在算木終止符元。據(jù)此,算木終止條件是借「不尋?!箺l件標(biāo)示的,其中最高有效比特平面值m等于零,而變量「lev」指示與最高有效比特平面值m相關(guān)聯(lián)的増加的數(shù)值權(quán)值。換言之,若比特串流指示需給予等于零的最高有效比特平面值的數(shù)值權(quán)值増加而高于最小數(shù)值權(quán)值,這種情況在正常編碼情況下不會發(fā)生,則檢測到算木終止條件。換言之,若編碼算木脫序符元后接有等于零的編碼最高有效比特平面值,則標(biāo)示算術(shù)終止條件。在步驟212c中執(zhí)行是否有算術(shù)終止條件的評估后,獲得較低有效比特平面,例如,如圖3中的參考數(shù)字212d所示。對每ー個較低有效比特平面,解碼兩個ニ進(jìn)制值。ニ進(jìn)制值中的一者與變量a(或一頻譜值元組的第一個頻譜值)相關(guān)聯(lián),而ニ進(jìn)制值中的一者與變量b(或一頻譜值元組的第二個頻譜值)相關(guān)聯(lián)。較低有效比特平面的數(shù)目標(biāo)示以變量lev。在一或多個最低有效比特平面(若有的話)的解碼中,迭代重復(fù)地執(zhí)行算法212da,其中算法212da的執(zhí)行次數(shù)由變量「lev」確定。此處須注意算法212da的第一次迭代重復(fù)基于如步驟212bb中設(shè)定的變量a、b的值進(jìn)行。算法212da的更多的迭代重復(fù)基于變量a、b的已更新變量值進(jìn)行。在迭代重復(fù)開始時,選定一累積頻率表。隨后,執(zhí)行算術(shù)解碼來獲得變量!■的值,其中變量r的值描述多個較低有效比特,例如,一個與變量a相關(guān)聯(lián)的較低有效比特,及一個與變量b相關(guān)聯(lián)的較低有效比特。使用函數(shù)「ARITH_DEC0DE」來獲得值r,其中累積頻率表「arith_cf_r」用于算術(shù)解碼。隨后更新變量a及b的值。為了達(dá)成此項(xiàng)目的,變量a向左移位I比特,且已移位的變量a的最低有效比特被設(shè)定成由值r的最低有效比特所定義的值。變量b向左移位I比特,且已移位的變量b的最低有效比特被設(shè)定成由變量r的比特I所定義的值,其中在變量r的ニ進(jìn)制表示中,變量r的比特I具有等于2的數(shù)值權(quán)值。然后重復(fù)算法412ba直至全部最低有效比特皆被解碼為止。在較低有效比特平面解碼后,更新陣列「x_ac_dec」,其中變量a、b的值被儲存在具有陣列索引2*i及2*i+l的陣列的表項(xiàng)(entry)中。隨后,脈絡(luò)狀態(tài)通過調(diào)用函數(shù)「arith_update_context(i,a,b)」來更新,其細(xì)節(jié)參考圖5g容后詳述。在步驟313中所執(zhí)行的脈絡(luò)狀態(tài)更新后,重復(fù)算法312及313直到運(yùn)行變量(runningvariable)i達(dá)到lg/2的值或直到檢測到算術(shù)終止條件為止。隨后,執(zhí)行結(jié)束算法「arith_finish()」,這從參考數(shù)字315可知。結(jié)束算法「arith_finish()」的細(xì)節(jié)將參考圖5m描述如下。在結(jié)束算法315之后,使用算法314來解碼頻譜值的符號。如圖可知,不等于零的頻譜值的符號被單獨(dú)編碼。在算法314中,對具有索引i介于i=0與i=lg-l之間的全部非零的頻譜值讀取符號。對具有索引i介于i=0與i=lg_l之間的每一個非零頻譜值,自比特串流讀取一個值(通常為單一比特)S。若讀取自比特串流的s的值等于1,則該頻譜值的符號反相(inverted)。為了達(dá)成此項(xiàng)目的,對陣列「x_ac_dec」作存取,這么做是為了判定具有索引i的頻譜值是否等于零,同時也是為了更新已解碼頻譜值的符號。但須注意變量a、b的符號在符號解碼314中保持不變。借由在符號解碼314之前執(zhí)行結(jié)束算法315,可以在ARITH_ST0P符元之后,重置全部需重置的頻率倉(frequencybin)。此處須注意在若干依據(jù)本發(fā)明的實(shí)施例中,獲得較低有效比特平面值的構(gòu)想并非特別有關(guān)。在若干實(shí)施例中,甚至可刪除任何較低有效比特平面的解碼。另外,可使用不同的解碼算法來實(shí)現(xiàn)此項(xiàng)目的。11.2依據(jù)圖4的解碼順序后文中,將敘述頻譜值的解碼順序。量化頻譜系數(shù)「X_ac_dec[]」經(jīng)無噪聲編碼,且從最低頻率系數(shù)開始,朝向最高頻率系數(shù)地傳輸(例如,在比特串流中)。結(jié)果,量化頻譜系數(shù)「x_aC_deC[]」從最低頻率系數(shù)開始,朝向最高頻率系數(shù)而被無噪聲解碼。量化頻譜系數(shù)借兩個接續(xù)(例如,頻率相鄰的)系數(shù)a及b集合成所謂的2元組(a,b)(也標(biāo)示以{a,b})的群組而解碼。此處須注意量化頻譜系數(shù)有時也標(biāo)示以「qdec」。接著,用于頻域模式的已解碼系數(shù)「x_aC_deC口」(例如使用修正離散余弦變換獲得的用于高級音頻編碼的已解碼系數(shù),例如IS0/IEC14496部分3子部分4中所討論的)被儲存在陣列「x_ac_quant[g][win][sfb][bin]」中。無噪聲編碼碼字的傳輸順序使得當(dāng)它們以被接收順序解碼并儲存在陣列中時,「bin」為最快速遞增索引,而「g」為最慢遞增索引。在碼字內(nèi)部,解碼順序?yàn)閍,b。用于變換編碼激勵(TCX)的已解碼系數(shù)「X_ac_dec[]」例如被直接儲存在陣列「x_tcx_invquant[win][bin]」中,且無噪聲編碼碼字的傳輸順序使得當(dāng)它們以所接收的順序解碼并儲存在陣列中時,「bin」為最快速遞增索引,而「win」為最慢遞增索引。在碼字內(nèi)部,解碼順序?yàn)閍,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的脈絡(luò)初始化后文中,將敘述在步驟310中所執(zhí)行的脈絡(luò)初始化(也稱為「脈絡(luò)映射」)。脈絡(luò)初始化包含依據(jù)算法「arith_map_contextOJ在過去脈絡(luò)與當(dāng)前脈絡(luò)間的映射,圖5a顯示算法的第一實(shí)例,且圖5b顯示算法的第二實(shí)例。如圖可知,當(dāng)前脈絡(luò)被儲存在全局變量(globalvariable)「q[2][n_context]」中,其呈具有第一維為2而第二維為「n_context」的陣列形式。過去脈絡(luò)可選擇性地(但不一定)儲存在變量「qs[n_context]」中,其呈具有一維「n_context」(若使用的話)的表的形式。參考圖5a中的實(shí)例算法「arith_map_context」,輸入變量N描述一當(dāng)前窗的長度,且輸入變量「arith_reset_flag」指示脈絡(luò)是否應(yīng)重置。此外,全局變量「previous_N」描述前一窗的長度。此處須注意通常,就時域樣本而言,與一窗相關(guān)聯(lián)的頻譜值數(shù)目至少約等于該窗長度的一半。此外,須注意就時域樣本而言,頻譜值的2元組數(shù)目至少約等于該窗長度的四分之一。參考圖5a的實(shí)例,脈絡(luò)的映射可依據(jù)算法「arith_map_contextO」執(zhí)行。此處須注意若旗標(biāo)「arith_reset_flag」為作動的(active)并因此指示脈絡(luò)須被重置,則對j=O至j=N/4-1,函數(shù)「arith_map_contextO」設(shè)定當(dāng)前脈絡(luò)陣列q的表項(xiàng)「q[j]」為零。否貝1J,換言之,若旗標(biāo)「arith_reset_flag」為非作動的(inactive),則當(dāng)前脈絡(luò)陣列q的表項(xiàng)「q[j]」從當(dāng)前脈絡(luò)陣列q的表項(xiàng)「q[l][k]」導(dǎo)算出。須注意若與當(dāng)前(例如,頻域編碼的)音頻幀相關(guān)聯(lián)的頻譜值數(shù)目等同于與前一音頻幀相關(guān)聯(lián)的頻譜值數(shù)目,則對j=k=0至j=k=N/4_l,依據(jù)圖5a的函數(shù)「arith_map_contextO」設(shè)置當(dāng)前脈絡(luò)陣列q的表項(xiàng)「q[j]J為當(dāng)前脈絡(luò)陣列q的值「q[l][k]」。當(dāng)與當(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)前脈絡(luò)值c的初始化值由函數(shù)「arith_map_context()」回送。此初始化值例如等于表項(xiàng)k[O]」的值向左移位12比特。據(jù)此,數(shù)值(當(dāng)前)脈絡(luò)值c被正確初始化用于迭代重復(fù)更新。此夕卜,圖5b顯示可做為選擇使用的算法「arith_map_contextO」的另一實(shí)例。詳情請參考圖5b的偽程序碼。綜上所述,旗標(biāo)「arith_reset_flag」判定脈絡(luò)是否須重置。若旗標(biāo)為真,則調(diào)用算法「arith_map_contextO」的一重置子算法500a。但另外,若旗標(biāo)「arith_reset_flag」為非作動的(其指出無需執(zhí)行脈絡(luò)的重置),則解碼程序從初始化階段開始,此處脈絡(luò)元素向量(或陣列)q借由將儲存在q[l][]中的前一幀的脈絡(luò)元素拷貝并映射至q[]而更新。q內(nèi)部的脈絡(luò)元素以每2元組4-比特儲存。脈絡(luò)元素的拷貝及/或映射在子算法500b中執(zhí)行。在圖5b的實(shí)例中,解碼程序從初始化階段開始,此處映射在儲存在qs中的已保存的過去脈絡(luò)與當(dāng)前巾貞脈絡(luò)q之間進(jìn)行。過去脈絡(luò)qs以每一頻率線(frequencyline)2_比特儲存。11.4依據(jù)圖5c及5d的狀態(tài)值運(yùn)算后文中,將更詳細(xì)地?cái)⑹鰻顟B(tài)值運(yùn)算312a。第一種實(shí)例算法將參考圖5c說明,而第二種實(shí)例算法將參考圖5d說明。須注意數(shù)值當(dāng)前脈絡(luò)值c(如圖3所示)可作為函數(shù)「arith_get_context(c,i,N)」的回送值而獲得,圖5c顯示函數(shù)的偽程序碼表示。但另外,數(shù)值當(dāng)前脈絡(luò)值c可作為函數(shù)「arith_get_context(c,i)」的回送值而獲得,圖5d顯示函數(shù)的偽程序碼表不。有關(guān)狀態(tài)值的運(yùn)算,也參考圖4,該圖顯示用于狀態(tài)評估的脈絡(luò),亦即用于數(shù)值當(dāng)前脈絡(luò)值c的運(yùn)算。圖4顯示頻譜值在時間及頻率二方面的二維表示。橫座標(biāo)410描述時間,且縱座標(biāo)412描述頻率。如圖4可知,欲解碼的頻譜值元組420(較佳地使用數(shù)值當(dāng)前脈絡(luò)值)與時間索引t0及頻率索引i相關(guān)聯(lián)。如圖可知,對時間索引t0,具有頻率索引i-1、i-2及i-3的元組在具有頻率索引i的元組120的頻譜值欲解碼時已經(jīng)解碼。如圖4可知,具有時間索引t0及頻率索引i-Ι的頻譜值430在頻譜值元組420解碼之前已經(jīng)解碼,且考慮將頻譜值元組430用于用以解碼頻譜值元組420的脈絡(luò)。同理,具有時間索引tO-Ι及頻率索引i-Ι的頻譜值440、具有時間索引tO-Ι及頻率索引i的頻譜值450,及具有時間索引tO-Ι及頻率索引i+Ι的頻譜值460在頻譜值元組420解碼之前已經(jīng)解碼,且考慮將其用于確定用以解碼頻譜值元組420的脈絡(luò)。在頻譜值元組420解碼時已經(jīng)解碼且考慮用于脈絡(luò)的頻譜值(系數(shù))以影線方塊顯示。相反地,已經(jīng)解碼(在元組420的頻譜值被解碼時)但未考慮用于脈絡(luò)(用于解碼元組420的頻譜值)的若干其它頻譜值以虛線的方塊顯示,而其它頻譜值(當(dāng)元組420的頻譜值解碼時尚未被解碼)以虛線的圓顯示。借虛線的方塊表示的元組及借虛線的圓表示的元組并未用于確定用以解碼元組420的頻譜值的脈絡(luò)。然而須注意,仍可評估未用于用以解碼元組420的頻譜值的脈絡(luò)的「常規(guī)」或「正常」運(yùn)算的那些頻譜值中的某些頻譜值,以檢測多個先前已解碼的相鄰頻譜值,所述頻譜值單獨(dú)或一起滿足有關(guān)它們的幅度的預(yù)定條件。有關(guān)此議題的細(xì)節(jié)容后詳述?,F(xiàn)在參考圖5c,將描述算法「arith_get_context(c,i,N)」的細(xì)節(jié)。圖5c以偽程序碼形式顯示該函數(shù)「arith_get_context(c,i,N)」的功能,其使用眾所周知的C語言及/或C++語言協(xié)定。如此,將敘述有關(guān)計(jì)算由函數(shù)「arith_get_context(c,i,N)」所執(zhí)行的數(shù)值當(dāng)前脈絡(luò)值「C」的更多細(xì)節(jié)。須注意函數(shù)「arith_get_context(c,i,N)」接收可由數(shù)值先前脈絡(luò)值c所描述的「舊狀態(tài)脈絡(luò)」作為輸入變量。函數(shù)「arith_get_context(c,i,N)」也接收欲解碼頻譜值2元組的索引i作為輸入變量。索引i通常為頻率索引。輸入變量N描述欲解碼頻譜值的一窗的窗長度。函數(shù)「arith_get_context(c,i,N)」提供輸入變量c的更新版本作為輸出值,該輸出值描述更新的狀態(tài)脈絡(luò),且可被視為數(shù)值當(dāng)前脈絡(luò)值。概括而言,函數(shù)「arith_get_context(c,i,N)」接收數(shù)值先前脈絡(luò)值c作為輸入變量,及提供其更新版本,其被視為數(shù)值當(dāng)前脈絡(luò)值。此外,函數(shù)「arith_get_context」考慮變量i、N,也存取「全局」陣列q[][]。有關(guān)函數(shù)「arith_get_context(c,i,N)」的細(xì)節(jié),須注意最初以ニ進(jìn)制形式表示數(shù)值先前脈絡(luò)值的變量c在步驟504a中向右移位4-比特。據(jù)此,舍棄數(shù)值先前脈絡(luò)值(以輸入變量c表示)的四個最低有效比持。而且,數(shù)值先前脈絡(luò)值的其它比特的數(shù)值權(quán)值降低了,例如16倍。此外,若2元組的索引i小于N/4-1,亦即不取最大值,則數(shù)值當(dāng)前脈絡(luò)值經(jīng)修改,表項(xiàng)q[i+1]的值加至步驟504a中所得的已移位脈絡(luò)值的比特12至15(亦即加至具有212、213、214及215數(shù)值權(quán)值的比持)。為了達(dá)成此項(xiàng)目的,陣列q□ロ的表項(xiàng)q[i+l](或更精確地說,該表項(xiàng)所表示的值的ニ進(jìn)制表示)向左移位12-比持。然后,表項(xiàng)q[i+l]所表示的值的移位版本加至在步驟504a中導(dǎo)算出的脈絡(luò)值C,亦即加至數(shù)值先前脈絡(luò)值的經(jīng)比特移位的(向右移位4-比特)數(shù)字表示。此處須注意陣列q[][]的表項(xiàng)q[i+1]表示與音頻內(nèi)容的一先前部分(例如,參考圖4定義的具有時間索引tO-1的音頻內(nèi)容的一部分)相關(guān)聯(lián)的一子區(qū)值,及具有比當(dāng)前欲解碼頻譜值元組(使用由函數(shù)「arith_get_context(c,i,N)」所輸出的數(shù)值當(dāng)前脈絡(luò)值c)更高的頻率(例如,如參考圖4定義的具有頻率索引i+1的頻率)。換言之,如果頻譜值元組420欲使用數(shù)值當(dāng)前脈絡(luò)值來解碼,那么表項(xiàng)q[i+1]可以以先前已解碼的頻譜值元組460為基礎(chǔ)。陣列q[][]的表項(xiàng)q[i+1](向左移位12-比特)的選擇性加法以參考符數(shù)字504b顯示。如圖可知,表項(xiàng)q[i+1]所表示的值的加法當(dāng)然唯有在頻率索引i并未標(biāo)示具有最高頻率索引i=N/4_l的頻譜值元組時執(zhí)行。隨后,在步驟504c中,執(zhí)行布爾與運(yùn)算,其中變量c的值與十六進(jìn)制值OxFFFO借與(AND)組合來獲得變量c的更新值。借由執(zhí)行這種與運(yùn)算,變量c的四個最低有效比特被有效地設(shè)定為零。在步驟504d中,表項(xiàng)q[l][i_l]的值加至在步驟504c中所得的變量c的值,借此更新變量c的值。但步驟504d中的變量c的更新唯有在欲解碼的2元組的頻率索引i大于零時才執(zhí)行。須注意對小于欲使用數(shù)值當(dāng)前脈絡(luò)值來解碼的頻譜值的頻率的頻率,表項(xiàng)q[l][i-1]為基于音頻內(nèi)容的當(dāng)前部分的先前已解碼頻譜值的元組的ー脈絡(luò)子區(qū)值。例如,當(dāng)假設(shè)頻譜值元組420欲使用由當(dāng)前執(zhí)行函數(shù)「arith_get_context(c,i,N)」而回送的數(shù)值當(dāng)前脈絡(luò)值來解碼時,陣列q[][]的表項(xiàng)q[l][i-1]可能與具有時間索引t0及頻率索引i-1的元組430相關(guān)聯(lián)。綜上所述,數(shù)值先前脈絡(luò)值的比特0、1、2及3(亦即四個最低有效比特的一部分)在步驟504a中借由將它們移位出數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示而被舍棄。此外,移位的變量c(亦即移位的數(shù)值先前脈絡(luò)值)的比特12、13、14及15在步驟504b中被設(shè)定為取由脈絡(luò)子區(qū)值q[i+1]所定義的值。移位的數(shù)值先前脈絡(luò)值的比特0、1、2及3(亦即原始數(shù)值先前脈絡(luò)值的比特4、5、6及7)在步驟504c及504d中由脈絡(luò)子區(qū)值q[l][i-1]所復(fù)與(overwrite)。因此,可以講,數(shù)值先前脈絡(luò)值的比特O至3表示與頻譜值元組432相關(guān)聯(lián)的脈絡(luò)子區(qū)值,數(shù)值先前脈絡(luò)值的比特4至7表示與先前已解碼頻譜值元組434相關(guān)聯(lián)的脈絡(luò)子區(qū)值,數(shù)值先前脈絡(luò)值的比特8至11表示與先前已解碼頻譜值元組440相關(guān)聯(lián)的脈絡(luò)子區(qū)值,且數(shù)值先前脈絡(luò)值的比特12至15表示與先前已解碼頻譜值元組450相關(guān)聯(lián)的脈絡(luò)子區(qū)值。輸入到函數(shù)「arith_get_context(c,i,N)」中的數(shù)值先前脈絡(luò)值與頻譜值元組430的解碼相關(guān)聯(lián)。作為函數(shù)「arith_get_context(c,i,N)」的輸出變量而獲得的數(shù)值當(dāng)前脈絡(luò)值與頻譜值元組420的解碼相關(guān)聯(lián)。據(jù)此,數(shù)值當(dāng)前脈絡(luò)值的比特O至3描述與頻譜值元組430相關(guān)聯(lián)的脈絡(luò)子區(qū)值,數(shù)值當(dāng)前脈絡(luò)值的比特4至7描述與頻譜值元組440相關(guān)聯(lián)的脈絡(luò)子區(qū)值,數(shù)值當(dāng)前脈絡(luò)值的比特8至11描述與頻譜值元組450相關(guān)聯(lián)的脈絡(luò)子區(qū)值,且數(shù)值當(dāng)前脈絡(luò)值的比特12至15描述與頻譜值元組460相關(guān)聯(lián)的脈絡(luò)子區(qū)值。如此,可知數(shù)值先前脈絡(luò)值的一部分,亦即數(shù)值先前脈絡(luò)值的比特8至15也含括在數(shù)值當(dāng)前脈絡(luò)值中作為數(shù)值當(dāng)前脈絡(luò)值的比特4至11。相反地,當(dāng)從數(shù)值先前脈絡(luò)值的數(shù)字表示導(dǎo)算數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示時,當(dāng)前的數(shù)值先前脈絡(luò)值的比特O至7被舍棄。在步驟504e中,當(dāng)欲解碼2元組的頻率索引i大于一預(yù)定數(shù)字,例如大于3時,表示數(shù)值當(dāng)前脈絡(luò)值的變量c被選擇性地更新。在這種情況下,亦即若i大于3,則判定脈絡(luò)子區(qū)值q[l][i-3]、q[l][i_2]與q[l][i_l]的和是否小于(或等于)一個預(yù)定值,例如5。若發(fā)現(xiàn)所述脈絡(luò)子區(qū)值的和小于該預(yù)定值,則一個十六進(jìn)制值,例如,0x10000,加至變量C。據(jù)此,變量c被設(shè)定,使得變量c指出是否有脈絡(luò)子區(qū)值q[l][i-3]、q[l][i_2]與q[l][i-1]組成一特別小的總和值的情況。例如,數(shù)值當(dāng)前脈絡(luò)值的比特16可用作指出這種情況的旗標(biāo)??偨Y(jié)而言,函數(shù)「arith_get_context(c,i,N)」的回送值由步驟504a、504b、504c、504d及504e確定,此處數(shù)值當(dāng)前脈絡(luò)值在步驟504a、504b、504c及504d中從數(shù)值先前脈絡(luò)值導(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中評估的條件得到滿足,貝U在步驟504e中,在步驟504a、504b、504c及504d中所導(dǎo)算出的變量c的值增加0x10000的十六進(jìn)制值且回送此增量運(yùn)算的結(jié)果。綜上所述,須注意無噪聲解碼器輸出無符號的量化頻譜系數(shù)的2元組(容后詳述)。首先,脈絡(luò)狀態(tài)c基于「環(huán)繞」欲解碼2元組的先前已解碼的頻譜系數(shù)而被算出。在一較佳實(shí)施例中,狀態(tài)(例如,由數(shù)值脈絡(luò)值表示)使用最后一個解碼的2元組(被稱為數(shù)值先前脈絡(luò)值)的脈絡(luò)狀態(tài)遞增地更新,只考慮兩個新的2元組(例如,2元組430及460)。狀態(tài)以17-比特編碼(例如,使用數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示)且由函數(shù)「arith_get_contextO」回送。詳情請參考圖5c的程序碼表示。此外,須注意圖5d顯示函數(shù)「arith_get_contextO」的一替代實(shí)施例的偽程序碼。依據(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)J并不包括對包含最小頻率索引i=0或最大頻率索引i=N/4-l的頻譜值元組的特殊處理或解碼。11.5映射規(guī)則選擇后文中,將描述映射規(guī)則,例如描述碼字值至符元碼的映射的累積頻率表的選擇。映射規(guī)則的選擇依據(jù)由數(shù)值當(dāng)前脈絡(luò)值c所描述的脈絡(luò)狀態(tài)而進(jìn)行。11.5.I使用依據(jù)圖5e的算法的映射規(guī)則選擇后文中,將描述使用函數(shù)「arith_get_pk(c)」的映射規(guī)則的選擇。須注意函數(shù)「arith_get_pk()」在子算法312ba開始時解碼碼值「acod_m」用以提供一頻譜值元組時被調(diào)用。須注意函數(shù)「arith_get_pk(C)」在算法312b的不同迭代重復(fù)時以不同參數(shù)(argument)調(diào)用。例如,在算法312b的第一次迭代重復(fù)中,函數(shù)「arith_get_pk(c)」以等于先前在步驟312a中執(zhí)行函數(shù)「arith_get_context(c,i,N)」時所提供的數(shù)值當(dāng)前脈絡(luò)值c的參數(shù)被調(diào)用。相反地,在子算法312ba的更多的迭代重復(fù)中,函數(shù)「arith_get_pk(c)」的調(diào)用參數(shù)為由函數(shù)「arith_get_context(c,i,N)」在步驟312a中所提供的數(shù)值當(dāng)前脈絡(luò)值c,及變量「esc_nb」的值的經(jīng)比特移位版本的和,其中變量「esc_nb」的值向左移位17-比特。因此,在算法312ba的第一次迭代重復(fù)時,亦即在解碼相對較小頻譜值時,由函數(shù)「arith_get_context(c,i,N)」所提供的數(shù)值當(dāng)前脈絡(luò)值c用作函數(shù)「arith_get_pkO」的輸入值。相反地,在解碼相對較大頻譜值時,函數(shù)「arith_get_pk()」的輸入變量經(jīng)修改,將變量「esc_nb」的值列入考慮,如圖3中所示?,F(xiàn)在參考圖5e,此圖顯示函數(shù)「arith_get_pk(C)」的第一個實(shí)施例的偽程序碼表示,須注意函數(shù)「arith_get_pk()」接收變量c作為輸入值,其中變量c描述脈絡(luò)狀態(tài),且其中至少在某些情況下,函數(shù)「arith_get_pk()」的輸入變量c等于由函數(shù)「arith_get_contextO」作為回送變量所提供的數(shù)值當(dāng)前脈絡(luò)值。此外,須注意函數(shù)「arith_get_pk()」以輸出變量形式提供變量「pki」,其描述概率模型的索引且可被認(rèn)為是映射規(guī)則索引值。參考圖5e,可知函數(shù)「arith_get_pkO」包含變量初始化506a,其中變量「i_min」被初始化為取-I的值。類似地,變量i被設(shè)定為等于變量「i_min」,使得變量i也被初始化為值-I。變量「i_maxj被初始化為具有比表「ari_lookup_m[]」的表項(xiàng)數(shù)目小I的值(其細(xì)節(jié)將參考圖21(I)及21⑵作說明)。據(jù)此,變量「i_min」與「i_max」界定出一個區(qū)間。隨后,執(zhí)行搜尋506b來識別標(biāo)示表「ari_hash_m」的一表項(xiàng)的索引值,使得函數(shù)「arith_get_pk()」的輸入變量c的值位于由所述表項(xiàng)與一相鄰表項(xiàng)所界定的一區(qū)間內(nèi)。在搜尋506b中,當(dāng)變量「i_max」與「i_min」之間的差大于I時重復(fù)子算法506ba。在子算法506ba中,變量i被設(shè)定為等于變量「i_min」與「i_max」的值的算術(shù)平均。結(jié)果,變量i標(biāo)示在由變量「i_minj與「i_max」的值所界定的一表區(qū)間中間的表「ari_hash_m[]」的一表項(xiàng)。隨后,變量j被設(shè)定為等于表「ari_hash_m[]」的表項(xiàng)「ari_hash_m[i]」的值。因此,變量j具有由表「ari_hash_m[]」的一表項(xiàng)所定義的值,該表項(xiàng)位于由變量「i_min」與「i_max」的值所界定的一表區(qū)間的中間。隨后,若函數(shù)「arith_get_pk()」的輸入變量c的值與由表「ari_hash_m[]」的表項(xiàng)「j=ari_hash_m[i]」的最高比特所定義的狀態(tài)值相異,則更新由變量「i_min」與「i_max」所界定的區(qū)間。例如,表「ari_hash_m[]」的表項(xiàng)的「較高比特」(比特8及以上)描述有效狀態(tài)值。據(jù)此,值「j>>8」描述由散列表索引值i標(biāo)示的表「ari_hash_m[]」的表項(xiàng)「j=ari_hash_m[i]」所表示的一有效狀態(tài)值。如此,若變量c的值小于值「j>>8」,則這意味著由變量c所描述的狀態(tài)值小于由表「ari_hash_m[]」的表項(xiàng)「ari_hash_m[i]」所描述的一有效狀態(tài)值。在這種情況下,變量「i_max」的值被設(shè)定為等于變量i的值,而這又具有使得由「i_min」與「i_max」所界定的區(qū)間的大小縮小的效果,其中新區(qū)間大約等于前ー個區(qū)間的下半部(lowerhalf)。若發(fā)現(xiàn)函數(shù)「arith_get_pk()」的輸入變量c大于值「j>>8」,這意味著變量c所描述的脈絡(luò)值大于由陣列「ari_hash_m[]」的表項(xiàng)「ari_hash_m[i]」所描述的一有效狀態(tài)值,則變量「i_min」的值被設(shè)定為等于變量i的值。如此,由變量「i_min」與「i_max」的值所界定的區(qū)間的大小縮小至約為由變量「i_min」與「i_max」的先前值所界定的前一個區(qū)間的大小的一半。更精確地說,在變量c的值大于由表項(xiàng)「ari_hash_m[i]」所定義的有效狀態(tài)值的情況下,由更新的變量「i_min」的值與由變量「i_max」的先前(未改變的)值所界定的區(qū)間約等于前ー個區(qū)間的上半部(upperhalf)。但若發(fā)現(xiàn)由算法「arith_get_pk()」的輸入變量c所描述的脈絡(luò)值等于由表項(xiàng)「ari_hash_m[i]」所定義的有效狀態(tài)值(亦即c==(j>>8)),則回送由表項(xiàng)「ari_hash_m[i]」的最低8-比特所定義的映射規(guī)則索引值作為函數(shù)「arith_get_pk()」的回送值(指令「return(回送)(j&OxFF)J)。綜上所述,表項(xiàng)「ari_hash_m[i]」,其最高比特(比特8及以上)描述有效狀態(tài)值,在每一次迭代重復(fù)506ba中評估,且由函數(shù)「arith_get_pk()」的輸入變量c所描述的脈絡(luò)值(或數(shù)值當(dāng)前脈絡(luò)值)與由該表項(xiàng)「ari_hash_m[i]」所描述的有效狀態(tài)值作比較。若由輸入變量c所表不的脈絡(luò)值小于由表項(xiàng)「ari_hash_m[i]」所表不的有效狀態(tài)值,貝Ij表區(qū)間的上邊界(由值「i_max」所描述)縮小,且若由輸入變量c所描述的脈絡(luò)值大于由表項(xiàng)「ari_hash_m[i]」所描述的有效狀態(tài)值,則表區(qū)間的下邊界(由變量「i_min」的值所描述)増加。在所述這兩種情況下,除非區(qū)間(由「i_max」與「i_min」間的差所界定)大小小于或等于1,否則重復(fù)子算法506ba。相反地,若由輸入變量c所描述的脈絡(luò)值等于由表項(xiàng)「ari_hash_m[i]」所描述的有效狀態(tài)值,貝U函數(shù)「arith_get_pk()」被舍棄,其中回送值由表項(xiàng)「ari_hash_m[i]」的最低8_比特所界定。但若因區(qū)間大小達(dá)到其最小值(「i_max」-「i_min」小于或等于I)而結(jié)束搜寺506b,則函數(shù)「arith_get_pk()」的回送值借表「ari_lookup_m口」的一表項(xiàng)「ari_lookup_m[i_max]」確定,這從參考數(shù)字506c可知。據(jù)此,表「ari_hash_m[]」的表項(xiàng)定義有效狀態(tài)值及區(qū)間邊界。在子算法506ba中,搜尋區(qū)間邊界「i_min」與「i_max」迭代重復(fù)地調(diào)整,使得表「ari_hash_m[]」的表項(xiàng)「ari_hash_m[i]」至少近似由輸入變量c所描述的脈絡(luò)值,其中「ari_hash_m[i]」的散列表索引i至少約略位于由區(qū)間邊界值「i_min」與「i_max」所界定的搜尋區(qū)間的中心。因此,除非由輸入變量c所描述的脈絡(luò)值等于由表「ari_hash_m口」的ー表項(xiàng)所描述的有效狀態(tài)值,否則如此達(dá)成,在子算法506ba的迭代重復(fù)完成后,由輸入變量c所描述的脈絡(luò)值位于由「ari_hash_m[i_min]」與「ari_hash_m[i_max]」所界定的區(qū)間內(nèi)部。但若因區(qū)間大小(由「i_max_i_min」定義)達(dá)到或超過其最小值而結(jié)束子算法506ba的迭代重復(fù),則假設(shè)由輸入變量c所描述的脈絡(luò)值并非一有效狀態(tài)值。在這種情況下,仍然使用標(biāo)示區(qū)間上邊界的索引「i_max」。子算法506ba的最后一次迭代重復(fù)所達(dá)到的區(qū)間上限值「i_max」再度用作存取表「ari_lookup_m」的表索引值。表「ari_lookup_m[]」描述與多個相鄰數(shù)值脈絡(luò)值所形成的區(qū)間相關(guān)聯(lián)的映射規(guī)則索引值。與由表「ari_lookup_m[]」的表項(xiàng)所描述的映射規(guī)則索引值相關(guān)聯(lián)的區(qū)間借由表「ari_hash_m[]」的表項(xiàng)所描述的有效狀態(tài)值來定義。表「ari_hash_m[]」的表項(xiàng)定義有效狀態(tài)值及相鄰數(shù)值脈絡(luò)值的區(qū)間的區(qū)間邊界。在執(zhí)行算法506b時,判定由輸入變量c所描述的數(shù)值脈絡(luò)值是否等于有效狀態(tài)值,且若并非此種情況,則判定由輸入變量c所描述的脈絡(luò)值位于數(shù)值脈絡(luò)值的哪一個區(qū)間(從多個區(qū)間中選出,所述區(qū)間的邊界由有效狀態(tài)值定義)。因此,算法506b滿足雙重功能判定輸入變量c是否描述有效狀態(tài)值,且若不是這樣,則識別由輸入變量c所表示的脈絡(luò)值所在的且由有效狀態(tài)值確定界限的一區(qū)間。因此,算法506e特別有效率且只需要相對較少次的表存取。綜上所述,脈絡(luò)狀態(tài)c確定用來解碼最聞有效逐2_比特平面m的累積頻率表。如同函數(shù)「arith_get_pk()」執(zhí)行的從c至相對應(yīng)的累積頻率表索引「pki」的映射。該函數(shù)「arith_get_pk()」的偽程序碼表示已經(jīng)參考圖5e說明過。進(jìn)一步概括上述,值m使用調(diào)用累積頻率表「arith_cf_m[pki][]」的函數(shù)「arith_decodeO」(在下文中更加詳細(xì)地加以描述)而被解碼,此處「pki」對應(yīng)于函數(shù)「arith_get_PkO」所回送的索引(也稱為映射規(guī)則索引值),函數(shù)「arith_get_pk()」參考圖5e做了描述。11.5.2使用依據(jù)圖5f的算法的映射規(guī)則選擇后文中,將參考圖5f敘述映射規(guī)則選擇算法「arith_get_pk()」的另一實(shí)施例,該圖顯示這種算法的偽程序碼表示,其可用于解碼一頻譜值元組。依據(jù)圖5f的算法可被視為算法「get_pkO」或算法「arith_get_pkO」的優(yōu)化版本(例如,速度優(yōu)化版本)。依據(jù)圖5f的算法「arith_get_pk()」接收描述脈絡(luò)狀態(tài)的變量c作為輸入變量。輸入變量c例如可表示數(shù)值當(dāng)前脈絡(luò)值。算法「arith_get_pk()」提供變量「pki」作為輸出變量,該變量描述與由輸入變量c所描述的脈絡(luò)狀態(tài)相關(guān)聯(lián)的概率分布(或概率模型)索引。變量「pki」可以是,例如,映射規(guī)則索引值。依據(jù)圖5f的算法包含陣列「i_diff[]」內(nèi)容的定義。如圖可知,陣列「i_diff[]」的第一個表項(xiàng)(具有陣列索引O)等于299,而其它陣列表項(xiàng)(具有陣列索引I至8)取149、74、37、18、9、4、2及I的值。據(jù)此,用于選擇散列表索引值「i_min」的步進(jìn)大小(stepsize)隨著每一次迭代重復(fù)而縮小,原因在于陣列「i_diff[]」的表項(xiàng)定義所述步進(jìn)大小。詳情請參照下文的討論。但實(shí)際上可選擇不同步進(jìn)大小,例如陣列「i_diff[]」的不同內(nèi)容,其中陣列「i_diff[]J的內(nèi)容自然可經(jīng)調(diào)整而適應(yīng)散列表「ari_hash_m[i]」的大小。須注意恰在算法「arith_get_pk()」開始時,變量「i_min」被初始化為取O值。在初始化步驟508a中,變量s依據(jù)輸入變量c而初始化,其中變量c的數(shù)字表示向左移位8比特以獲得變量s的數(shù)字表示。隨后,執(zhí)行表搜尋508b,以識別散列表「ari_hash_m[]」的一表項(xiàng)的散列表索引值「i_min」,使得由脈絡(luò)值c所描述的脈絡(luò)值位于由散列表表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值與另一散列表表項(xiàng)「ari_hash_m」所描述的脈絡(luò)值確定界限的一區(qū)間內(nèi),該另一表項(xiàng)「ari_hash_m」相鄰于(就其散列表索引值而言)散列表表項(xiàng)「ari_hash_m[i_min]」。因此,算法508b允許確定標(biāo)示散列表「ari_hash_m[]」的一表項(xiàng)「j=ari_hash_m[i_min]」的散列表索引值「i_min」,使得散列表表項(xiàng)「ari_hash_m[i_min]」至少近似于由輸入變量c所描述的脈絡(luò)值。表搜尋508b包含子算法508ba的迭代重復(fù)執(zhí)行,其中子算法508ba被執(zhí)行預(yù)定次數(shù),例如9次迭代重復(fù)。在子算法508ba的第一步驟中,變量i被設(shè)定為等于變量「i_min」的值與表項(xiàng)「i_diff[k]」的值的和。此處須注意k為運(yùn)行變量(runningvariable),其針對子算法508ba的每一次迭代重復(fù),從k=0的初值開始遞增。陣列「i_diff[]」定義預(yù)定增加值,其中增加值隨表索引k的增加,亦即隨迭代重復(fù)次數(shù)的增加而減小。在子算法508ba的第二步驟中,表項(xiàng)「ari_hash_m[]」的值被拷貝到變量j中。較佳地,表「ari_hash_m[]」的表項(xiàng)的最高比特描述數(shù)值脈絡(luò)值的有效狀態(tài)值,且表「ari_hash_m[]」的表項(xiàng)的最低比特(比特O至7)描述與各自的有效狀態(tài)值相關(guān)聯(lián)的映射規(guī)則索引值。在子算法508ba的第三步驟中,變量S的值與變量j的值作比較,且當(dāng)變量s的值大于變量j的值時,變量「i_min」被選擇性地設(shè)定為值「i+Ι」。隨后,子算法508ba的第一步驟、第二步驟,及第三步驟重復(fù)預(yù)定次數(shù),例如九次。因此,在每次執(zhí)行子算法508ba時,當(dāng)且僅當(dāng)由當(dāng)前有效散列表索引i_min+i_diff[]所描述的脈絡(luò)值小于由輸入變量c所描述的脈絡(luò)值時,變量「i_min」的值增加i_diff[]+1。據(jù)此,在每次執(zhí)行子算法508ba時,當(dāng)(且僅當(dāng))由輸入變量c且因此由變量s所描述的脈絡(luò)值大于由表項(xiàng)「ari_hash_m[i=i_min+diff[k]]」所描述的脈絡(luò)值時,散列表索引值「i_min」(迭代重復(fù)地)增加。此外,須注意在每次執(zhí)行子算法508ba時,只執(zhí)行單次比較,亦即關(guān)于變量s的值是否大于變量j的值的比較。據(jù)此,算法508ba的運(yùn)算特別地有效率。此外,須注意就變量「i_min」的終值而言,有不同的可能結(jié)果。例如,在最后一次執(zhí)行子算法512ba后,變量「i_min」的值可能使得由表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值小于由輸入變量c所描述的脈絡(luò)值,且由表項(xiàng)「ari_hash_m[i_min+l]」所描述的脈絡(luò)值大于由輸入變量c所描述的脈絡(luò)值。另外,可能在最后一次執(zhí)行子算法508ba后,由散列表表項(xiàng)「ari_hash_m[i_min-1]J所描述的脈絡(luò)值小于由輸入變量c所描述的脈絡(luò)值,且由表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值大于由輸入變量c所描述的脈絡(luò)值。但另外,由散列表表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值可能等于由輸入變量c所描述的脈絡(luò)值。因此,執(zhí)行基于決策的回送值提供508c。變量j被設(shè)定為具有散列表表項(xiàng)「ari_hash_m[i_min]」的值。隨后,判定由輸入變量c(及也由變量s)所描述的脈絡(luò)值是否大于由表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值(借條件「s>jj定義的第一種情況),或由輸入變量c所描述的脈絡(luò)值是否小于由散列表表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值(借條件「c〈j>>8」定義的第二種情況),或由輸入變量c所描述的脈絡(luò)值是否等于由表項(xiàng)「ari_hash_m[i_min]」所描述的脈絡(luò)值(第三種情況)。在第一種情況(s>j)下,由表索引值「i_min+lJ標(biāo)示的表「ari_lookup_m[]」的表項(xiàng)「ari_lookup_m[i_min+l]」回送作為函數(shù)「arith_get_pkO」的輸出值。在第二種情況(c〈(j8))下,由表索引值「i_min」標(biāo)示的表「ari_lookup_m[]J的表項(xiàng)「ari_lookup_m[i_min]」回送作為函數(shù)「arith_get_pk()」的回送值。在第三種情況(亦即當(dāng)由輸入變量c所描述的脈絡(luò)值等于由表項(xiàng)「ari_hash_m[i_min]」所描述的有效狀態(tài)值時)下,由散列表表項(xiàng)「ari_hash_m[i_min]」的最低8-比特所描述的映射規(guī)則索引值被回送作為函數(shù)「arith_get_pkO」的回送值。綜上所述,在步驟508b中執(zhí)行特別簡單的表搜尋,其中該表搜尋提供變量「i_min」的變量值,而未區(qū)別由輸入變量c所描述的脈絡(luò)值是否等于由表「ari_hash_m[]J的狀態(tài)表項(xiàng)之一所定義的有效狀態(tài)值。在繼表搜尋508b之后執(zhí)行的步驟508c中,評估由輸入變量c所描述的脈絡(luò)值與由散列表表項(xiàng)「ari_hash_m[i_min]」所描述的有效狀態(tài)值間的幅度關(guān)系,且依據(jù)該評估的結(jié)果來選擇函數(shù)「arith_get_pk()」的回送值,其中考慮用在表評估508b中所確定的變量「i_min」的值來選擇映射規(guī)則索引值,即便由輸入變量c所描述的脈絡(luò)值與由散列表表項(xiàng)「ari_hash_m[i_min]」所描述的有效狀態(tài)值不同。須進(jìn)一歩注意算法中的比較應(yīng)較佳地(或另外)在脈絡(luò)索引(數(shù)值脈絡(luò)值)c與j=ari_hash_m[i]8間進(jìn)行。實(shí)際上,表「ari_hash_m[]」的姆ー個表項(xiàng)表示一個脈絡(luò)索引,脈絡(luò)索引以高于第八比特的比特來編碼,且其相對應(yīng)的概率模型用最先的八個比特(最低有效比特)來編碼。在當(dāng)前實(shí)施例中,發(fā)明人主要關(guān)注在知曉當(dāng)前脈絡(luò)c是否大于ari_hash_m[i]>>8,其相當(dāng)于檢測s=c〈〈8是否也大于ari_hash_m[i]。綜上所述,一旦脈絡(luò)狀態(tài)被算出(例如可使用依據(jù)圖5c的算法「arith_get_context(c,i,N)」或依據(jù)圖5d的算法「arith_get_context(c,i)」達(dá)成),最高有效逐2_比特平面使用調(diào)用了和與脈絡(luò)狀態(tài)對應(yīng)的概率模型相對應(yīng)的適當(dāng)累積頻率表的算法「arith_decode」(容后詳述)來解碼。對應(yīng)關(guān)系借,例如,函數(shù)「arith_get_pk()」來完成,函數(shù)「arith_get_pk()」已經(jīng)參考圖5f討論過。11.6算術(shù)解碼11.6.I使用依據(jù)圖5g的算法的算術(shù)解碼后文中,將參考圖5g詳細(xì)討論函數(shù)「arith_decode()」的功能。須注意函數(shù)「arith_decode()」使用輔助(helper)函數(shù)「arith_first_symbol(void)」,若它是序列的第一個符元,貝U回送真(TRUE),否則即回送偽(FALSE)。函數(shù)「arith_decode()J還使用輔助函數(shù)「arith_get_next_bit(void)」,其獲得且提供比特串流的下一比特。此外,函數(shù)「arith_decode()」還使用全局變量「低(low)」、「高(high)」及「值(value)J0而且,函數(shù)「arith_decode()」接收變量「cum_freq[]」作為輸入變量,其指向所選累積頻率表或累積頻率子表的第一個表項(xiàng)或元素(具有元素索引或表項(xiàng)索引O)。并且,函數(shù)「arith_decode()」使用輸入變量「cfI」,其指示標(biāo)示以變量「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()」還包含迭代重復(fù)的累積頻率表搜尋570c。迭代重復(fù)的累積頻率表搜尋重復(fù)執(zhí)行直到變量Cf!小于或等于I為止。在迭代重復(fù)的累積頻率表搜尋570c中,指針變量q被設(shè)定為一個等于指針變量p的當(dāng)前值與變量「Cf!」的值的一半的和的值。若所選累積頻率表的表項(xiàng)*q(該表項(xiàng)借指針變量q來定址)的值大于變量「cum」的值,則指針變量P被設(shè)定為指針變量q的值,且變量「Cf!」增加。最后,變量「Cf!」向右移位一個比特,借此有效地將變量「Cf!」的值除以2并忽略模(modulo)部分。據(jù)此,迭代重復(fù)的累積頻率表搜尋570c有效地比較變量「cum」的值與所選累積頻率表的多個表項(xiàng)來識別該所選累積頻率表內(nèi)部的一區(qū)間,該區(qū)間由該累積頻率表的表項(xiàng)確定界限,使得值cum位于所識別區(qū)間的內(nèi)部。如此,所選累積頻率表的表項(xiàng)界定區(qū)間,其中個別符元值與所選累積頻率表的各區(qū)間相關(guān)聯(lián)。而且,累積頻率表的兩個相鄰值之間的區(qū)間寬度定義與所述區(qū)間相關(guān)聯(lián)的符元的概率,使得所選累積頻率表整體界定不同符元(或符元值)的概率分布。有關(guān)可用累積頻率表的細(xì)節(jié)將參考圖23討論如下。再度參考圖5g,符元值從指針變量P的值導(dǎo)算,其中該符元值如參考數(shù)字570d所示而導(dǎo)算。如此,指針變量P的值與起始地址「cum_freq」的值之間的差被評估出來以獲得符元值,其以變量「符元」表示。算法「arith_decode」還包含變量「高」及「低」的調(diào)整(adaptation)570e。若以變量「符元」表示的符元值不等于零,則更新變量「高」,如參考數(shù)字570e所示。并且,更新變量「低」的值,如參考數(shù)字570e所示。變量「高」被設(shè)定為由變量「低」、變量「范圍」及所選累積頻率表中具有索引「符元-I」的表項(xiàng)所確定的值。變量「低」增加,其中增加幅度由變量「范圍」及所選累積頻率表中具有索引「符元」的表項(xiàng)所確定。如此,變量「低」與「高」的值間的差依據(jù)所選累積頻率表的兩相鄰表項(xiàng)間的數(shù)值差來調(diào)整。因此,若檢測到具有低概率的符元值,則變量「低」與「高」的值間的區(qū)間縮小成狹窄寬度。相反地,若檢測到的符元值包含相對較高的概率,則變量「低」與「高」的值間的區(qū)間的寬度被設(shè)定為相對較大的值。再者,變量「低」與「高」的值間的區(qū)間寬度取決于所檢測的符元及對應(yīng)的累積頻率表表項(xiàng)。算法「arith_decodeO」還包含區(qū)間重整化570f,其中在步驟570e中確定的區(qū)間迭代重復(fù)地移位與定標(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)算法「arith_decode()」的功能,須注意變量「低」與「高」的值間的區(qū)間在步驟570e中縮小,這取決于由變量「cum_freq」引用的累積頻率表的兩個相鄰表項(xiàng)。若所選累積頻率表的兩個相鄰值間的區(qū)間很小,亦即若相鄰值相對較接近,則步驟570e中所得的變量「低」與「高」的值間的區(qū)間將相對較小。相反地,若累積頻率表的兩個相鄰表項(xiàng)間隔較遠(yuǎn),則步驟570e中所得的變量「低」與「高」的值間的區(qū)間將相對較大。結(jié)果,若步驟570e中所得的變量「低」與「高」的值間的區(qū)間相對較小,則將執(zhí)行很多次區(qū)間重整化步驟來將區(qū)間重定標(biāo)至「足夠」大小(使得條件評估570fa的條件皆未滿足)。據(jù)此,將使用得自比特串流的相對較大數(shù)目的比特來增加變量「值」的精度。相反地,若步驟570e中所得區(qū)間大小為相對較大,將僅需要重復(fù)較少次數(shù)的區(qū)間正規(guī)化步驟570fa及570fb來將變量「低」與「高」的值間的區(qū)間重整為「足夠」大小。據(jù)此,將只使用相對較少數(shù)目得自比特串流的比特來增加變量「值」的精度,及準(zhǔn)備下一符元的解碼。綜上所述,若一包含相對較高概率的符元已被解碼,及與其相關(guān)聯(lián)的所選累積頻率表表項(xiàng)的區(qū)間很大,則將從該比特串流只讀取相對較少數(shù)目的比特以允許解碼接續(xù)其后的符元。相反地,若一包含相對較低概率的符元已被解碼,及與其相關(guān)聯(lián)的所選累積頻率表表項(xiàng)的區(qū)間很小,則將從該比特串流讀取相對較大數(shù)目的比特來準(zhǔn)備解碼下一符元。據(jù)此,累積頻率表的表項(xiàng)反映不同符元的概率,同時也反映用以解碼一序列符元所需的比特?cái)?shù)目。借由依據(jù)脈絡(luò),亦即依據(jù)先前解碼符元(或頻譜值),例如,借由依據(jù)脈絡(luò)來選擇不同的累積頻率表而變更累積頻率表,可利用不同符元間的隨機(jī)相依性,其允許特別比特率有效率的隨后(或相鄰)符元的編碼。綜上所述,已經(jīng)參考圖5g描述的函數(shù)「arith_decodeO」調(diào)用對應(yīng)于由函數(shù)「arith_get_pk()」回送的索引「pki」的累積頻率表「arith_cf_m[pki][]」,以確定最高有效比特平面值m(其可被設(shè)定為由回送變量「符元」所表示的符元值)。綜上所述,算術(shù)解碼器是使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實(shí)施例(integerimplementation)。詳情請參考書籍「IntroductiontoDataCompression」,作者K.Sayood,2006年,第三版,ElsevierInc.。依據(jù)圖5g的計(jì)算機(jī)程序碼描述依據(jù)本發(fā)明的一實(shí)施例所使用的算法。11.6.2使用依據(jù)圖5h及5i的算法的算術(shù)解碼圖5h及5i顯示算法「arith_decodeO」的另一實(shí)施例的偽程序碼表示,其可用作參考圖5g所述算法「arith_decode」的替代物。須注意依據(jù)圖5g以及依據(jù)圖5h和5i的算法均可用于依據(jù)圖3的算法「values_decodeO」。概括而言,值m使用調(diào)用累積頻率表「arith_cf_m[pki][]」的函數(shù)「arith_decodeOJ而被解碼,其中「pki」對應(yīng)于由函數(shù)Γarith_get_pkOJ所回送的索引。算術(shù)編碼器(或解碼器)是使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實(shí)施例。詳情請參考書籍「IntroductiontoDataCompression」,作者K.Sayood,2006年,第三版,ElsevierInc.。依據(jù)圖5h及5i的計(jì)算機(jī)程序碼描述所使用的算法。11.7脫序機(jī)制后文中將簡短討論用于依據(jù)圖3的解碼算法「ValUeS_deCOde()」的脫序機(jī)制。當(dāng)解碼值m(作為函數(shù)「arith_deCOde()」的回送值而被提供)為脫序符元「ARITH_ESCAPE」時,變量「lev」及「esc_nb」增加1,且另一個值m被解碼。在這種情況下,函數(shù)「arith_get_pk()」以值「c+esc_nb〈〈17」作為輸入?yún)?shù)而被再度調(diào)用,此處變量「esc_nbj描述先前對相同的2元組解碼且囿限于7的脫序符元的數(shù)目。概括而言,當(dāng)識別出脫序符元時,假設(shè)最高有效比特平面值m包含一増加的數(shù)值權(quán)值。此外,重復(fù)當(dāng)前數(shù)值解碼,其中修正的數(shù)值當(dāng)前脈絡(luò)值「c+esc_nb〈〈17」用作函數(shù)「arith_get_pk()」的輸入變量。據(jù)此,在子算法312ba的不同迭代重復(fù)中,通常獲得不同映射規(guī)則索引值「pki」。11.8算術(shù)終止機(jī)制后文將描述算術(shù)終止機(jī)制。當(dāng)音頻編碼器中較高頻率部分被完全量化為0的情況下,算術(shù)終止機(jī)制允許減少所需比特?cái)?shù)目。在一實(shí)施例中,算術(shù)終止機(jī)制可實(shí)施如下一旦值m不是脫序符元「ARITH_ESCAPE」,解碼器就檢查接續(xù)的m是否形成「ARITH_ESCAPE」符元。若條件「esc_nb>0&&m==0」為真,則檢測到「ARITH_ST0P」符元且解碼程序結(jié)束。在這種情況下,解碼器直接跳至「arith_finish()」函數(shù),「arith_finish()」函數(shù)容后詳述。該條件意味著該巾貞其余部分由0值組成。11.9較低有效比特平面解碼后文中,將描述一或多個較低有效比特平面的解碼。較低有效比特平面的解碼,例如,在圖3中所示步驟312d中進(jìn)行。但另外,也可使用圖5j及5n中所示算法。11.9.I依據(jù)圖5j的較低有效比特平面解碼現(xiàn)在參考圖5j,可知變量a及b的值從值m導(dǎo)算出。例如,值m的數(shù)字表示向右移位2-比特來獲得變量b的數(shù)字表示。此外,變量a的值借由從變量m的值減變量b的值的向左移位2-比特的經(jīng)比特移位版本而獲得。隨后,重復(fù)最低有效比特平面值!■的算木解碼,其中重復(fù)次數(shù)由變量「lev」的值確定。最低有效比特平面值r使用函數(shù)「arith_deCOde」而獲得,其中使用適應(yīng)于最低有效比特平面的解碼的累積頻率表(累積頻率表「arith_cf_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_decodeO」「lev」次,而從最高有效位階至最低有效位階解碼。已解碼比特平面!■允許依據(jù)算法來改進(jìn)(refining)先前已解碼的值m,圖5j顯示算法的偽程序碼。11.9.2依據(jù)圖5n的較低有效比特帶解碼但另外,其偽程序碼表示顯示于圖5n的該算法也可用于較低有效比特平面的解碼。在這種情況下,若不滿足「ARITH_ST0P」符元,則對當(dāng)前2元組其余比特平面(若存在的話)解碼。其余比特平面借由調(diào)用使用累積頻率表「arith_cf_r()」的「arith_decode()」「lev」次,而從最高有效位階至最低有效位階解碼。已解碼比特平面r允許依據(jù)圖5n中所示算法來改進(jìn)先前已解碼的值m。11.10脈絡(luò)更新11.10.I依據(jù)圖5k、51及5m的脈絡(luò)更新后文中,將參考圖5k及51,描述用以完成頻譜值元組解碼的操作。此外,將描述用來完成與音頻內(nèi)容的當(dāng)前部分(例如,當(dāng)前幀)相關(guān)聯(lián)的一頻譜值元組集合之解碼的操作。現(xiàn)在參考圖5k,可知在較低有效比特解碼312d之后,陣列「x_ac_dec口」的具有表項(xiàng)索引2*i的表項(xiàng)被設(shè)定為等于a,且陣列「x_ac_dec口」的具有表項(xiàng)索引「2*i+l」的表項(xiàng)被設(shè)定為等于b。換言之,在較低有效比特解碼312d之后,2元組(a,b)的無符號值被完全解碼。依據(jù)圖5k中所示算法,儲存在保有頻譜系數(shù)的元素(例如,陣列「X_ac_dec[]」)中。隨后,也對下一個2元組更新脈絡(luò)U」。須注意此脈絡(luò)更新也須對最后一個2元組執(zhí)行。此脈絡(luò)更新借其偽程序碼表示顯示于圖51的函數(shù)「arith_update_contextO」來執(zhí)行?,F(xiàn)在參考圖51,可知函數(shù)「arith_update_context(i,a,b)」接收2元組的已解碼無符號的已量化頻譜系數(shù)(或頻譜值)a,b作為輸入變量。此外,函數(shù)「arith_Update_context」也接收欲解碼的已量化頻譜系數(shù)的索引i(例如,頻率索引)作為輸入變量。換言之,輸入變量i,例如,可以是其絕對值由輸入變量a、b來定義的頻譜值元組的索引。如圖可知,陣列k□口」的表項(xiàng)「q[l][i]」可被設(shè)定為等于a+b+Ι的值。此外,陣列「q□口」的表項(xiàng)「q[l][i]」的值可被限于「OxF」的十六進(jìn)制值。如此,陣列「q□口」的表項(xiàng)「q[l][i]」借由計(jì)算具有頻率索引i的頻譜值的當(dāng)前解碼元組{a,b}的絕對值的和并將和值結(jié)果加I而獲得。此處須注意陣列「q[][]」的表項(xiàng)「q[l][i]」可被視為脈絡(luò)子區(qū)值,原因在于其描述用于額外頻譜值(或頻譜值元組)后續(xù)解碼的脈絡(luò)的一子區(qū)。此處須注意兩個當(dāng)前解碼頻譜值的絕對值a及b(其有符號版本儲存在陣列「x_ac_dec[]J的表項(xiàng)「x_ac_dec[2*i]」及「x_ac_dec[2*i+l]」中)的加總可被視為已解碼頻譜值的范數(shù)(例如,LI范數(shù))的運(yùn)算。業(yè)已發(fā)現(xiàn)描述由多個先前已解碼的頻譜值形成的向量的范數(shù)的脈絡(luò)子區(qū)值(亦即陣列k[][]」的表項(xiàng))特別有意義且存儲高效。業(yè)已發(fā)現(xiàn)基于多個先前已解碼的頻譜值算出的此種范數(shù)包含精簡形式的有意義的脈絡(luò)信息。業(yè)已發(fā)現(xiàn)頻譜值符號通常與脈絡(luò)的選擇并不是特別相關(guān)。還發(fā)現(xiàn)經(jīng)過(across)多個先前已解碼的頻譜值的范數(shù)的形成(formation),即便舍棄若干細(xì)節(jié),通常也仍保有最重要的信息。此外,還發(fā)現(xiàn)將數(shù)值當(dāng)前脈絡(luò)值限制在最大值內(nèi)通常不會導(dǎo)致信息的嚴(yán)重?fù)p失。反而,業(yè)已發(fā)現(xiàn)對大于預(yù)定臨界值的有效頻譜值使用相同的脈絡(luò)狀態(tài)更加有效率。如此,對脈絡(luò)子區(qū)值加以限制使內(nèi)存效率進(jìn)一步改良。此外,還發(fā)現(xiàn)將脈絡(luò)子區(qū)值限制在某個最大值內(nèi)允許特別簡單且運(yùn)算有效的數(shù)值當(dāng)前脈絡(luò)值的更新,這已經(jīng)參考,例如,圖5c及5d描述過。借由將脈絡(luò)子區(qū)值限制于相對較小的值(例如,限制于值15),基于多個脈絡(luò)子區(qū)值的脈絡(luò)狀態(tài)可以有效率的形式來表示,這已經(jīng)參考圖5c及5d討論過。此外,業(yè)已發(fā)現(xiàn)將脈絡(luò)子區(qū)值限制于I至15之間的值,獲得準(zhǔn)確度與內(nèi)存效率間的特佳折衷,原因在于4比特即足以儲存此脈絡(luò)子區(qū)值。但須注意在若干其它實(shí)施例中,脈絡(luò)子區(qū)值可只以單一解碼頻譜值為基礎(chǔ)。在這種情況下,范數(shù)的形成可選擇性地被省略。該巾貞的下一個2元組在函數(shù)「arith_update_context」完成后解碼,解碼方式是借由使i遞增I,且從函數(shù)「arith_get_contextO」開始重做前述相同程序。當(dāng)在幀內(nèi)部的lg/2個2元組被解碼或依據(jù)「ARITH_ESCAPE」的終止符元出現(xiàn)時,頻譜幅度的解碼程序結(jié)束而符號的解碼開始。有關(guān)符號解碼的細(xì)節(jié)已經(jīng)參考圖3討論過,其中參考數(shù)字314中顯示符號的解碼。一旦全部無符號且已量化的頻譜系數(shù)都已解碼,就加上對應(yīng)符號。對「x_ac_dec」的每一個非空(non-null)量化值,讀取一比特。若所讀取的比特值等于0,則該量化值為正,不做任何動作,且有符號值等于先前已解碼的無符號值。否則(亦即若所讀取的比特值等于1),已解碼系數(shù)(或頻譜值)即為負(fù),且2的補(bǔ)數(shù)取自無符號值。符號比特從低頻至較高頻讀取。詳情請參考圖3及關(guān)于符號解碼314的說明。借由調(diào)用函數(shù)「arith_finish()」完成解碼。其余頻譜系數(shù)被設(shè)定為O。個別脈絡(luò)狀態(tài)對應(yīng)地更新。詳情請參考圖5m,其顯示函數(shù)「arith_finish()」的偽程序碼表示。如圖可知,函數(shù)「arith_finish()」接收輸入變量lg,其描述已解碼的已量化頻譜系數(shù)。較佳地,函數(shù)「arith_finish」的輸入變量Ig描述實(shí)際上已解碼的頻譜系數(shù)的數(shù)目,未考慮響應(yīng)于「ARITH_ST0P」符元的檢測被分派O值的頻譜系數(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_finish」也接收已解碼的頻譜值的向量「x_ac_dec」,或至少接收此已解碼的頻譜系數(shù)的向量的指標(biāo)(reference)作為輸入值。函數(shù)「arith_finish」被配置成將因算術(shù)終止條件的存在而無頻譜值被解碼的陣列(或向量)「x_ac_dec」的表項(xiàng)設(shè)定為O。此外,函數(shù)「arith_finish」設(shè)定脈絡(luò)子區(qū)值「q[l][i]」為預(yù)定值1,上述脈絡(luò)子區(qū)值與因算術(shù)終止條件的存在而無任何值被解碼的頻譜值相關(guān)聯(lián)。預(yù)定值I與一頻譜值元組相對應(yīng),其中兩個頻譜值均等于O。據(jù)此,函數(shù)「arith_finishO」允許更新整個頻譜值陣列(或向量)「x_ac_dec[]」以及整個脈絡(luò)子區(qū)值陣列k[l][i]」,即便在算術(shù)終止條件存在情況下亦如此。11.10.2依據(jù)圖5o及5p的脈絡(luò)更新后文將參考圖5ο及5ρ描述脈絡(luò)更新的另一實(shí)施例。2元組(a,b)的無符號值被完全解碼時,對下一個2元組更新脈絡(luò)q。若當(dāng)前2元組為最后一個2元組,也進(jìn)行更新。兩項(xiàng)更新都借函數(shù)「arith_update_contextO」執(zhí)行,圖5o顯示其偽程序碼表示。然后,該幀的下一個2元組借使i遞增I及調(diào)用函數(shù)「arith_decodeO」而被解碼。若該幀的lg/2個2元組已經(jīng)解碼,或若出現(xiàn)終止符元「ARITH_ST0P」,則調(diào)用函數(shù)「arith_finishOJ0脈絡(luò)被保存,并儲存在陣列(或向量)「qs」中以用于下一幀。圖5p顯示函數(shù)「arith_save_contextO」的偽程序碼。一旦全部無符號且已量化的頻譜系數(shù)都已經(jīng)解碼,則補(bǔ)上符號。對每一個未經(jīng)量化值「qdec」,讀取一比特。若讀取比特值等于0,則量化值為正,不做任何動作,且有符號值等于先前已解碼的無符號值。否則,已解碼系數(shù)為負(fù),且從無符號值取2的補(bǔ)數(shù)。有符號比特自低頻至高頻讀取。11.11解碼程序的概要后文中,將簡短概述解碼程序。詳情請參考前文討論以及圖3、4、5a、5c、5e、5g、5j、5k、51及5m。量化頻譜系數(shù)「X_ac_dec[]」從最低頻率系數(shù)開始并前進(jìn)至最高頻率系數(shù)而無噪聲地解碼。它們由集合在所謂的2元組(a,b)中的成組的兩個連續(xù)系數(shù)a,b來解碼。然后,頻域(亦即頻域模式)的已解碼系數(shù)「x_ac_dec[]」被儲存在陣列「x_ac_quant[g][win][sfb][bin]」中。無噪聲編碼碼字的傳輸順序使得當(dāng)它們以所接收的順序解碼并儲存在陣列中吋,「bin」為最快速遞增索引,且「g」為最慢遞增索引。在碼字內(nèi)部,解碼順序?yàn)閍,然后為b。「TCX」的解碼系數(shù)「X_ac_dec口」(亦即使用變換編碼激勵的音頻解碼)被儲存(例如,直接儲存)在陣列「x_tcx_invquant[win][bin]J中,且無噪聲編碼碼字的傳輸順序使得當(dāng)它們以所接收的順序解碼并儲存在陣列中吋,「Mn」為最快速遞增索弓丨,且「win」為最慢遞增索引。在碼字內(nèi)部,解碼順序?yàn)閍,然后為b。首先,旗標(biāo)「arith_reset_flag」判定脈絡(luò)是否須被重置。若旗標(biāo)為真,則在函數(shù)「arith_map_context」中考慮此點(diǎn)。解碼程序從初始化階段開始,此處脈絡(luò)元素向量「q」借由將儲存在「q[l][]」中的前ー幀的脈絡(luò)元素拷貝并映射至「qロ」而更新?!竡」內(nèi)部的脈絡(luò)元素以每2元組4-比特儲存。詳情請參考圖5a的偽程序碼。無噪聲解碼器輸出無符號且已量化的頻譜系數(shù)的2元組。首先,脈絡(luò)狀態(tài)c基于環(huán)繞欲解碼2元組的先前已解碼頻譜系數(shù)來計(jì)算。因此,只考慮兩個新的2元組,使用最后一個解碼的2元組的脈絡(luò)狀態(tài),遞增地更新狀態(tài)。狀態(tài)以17-比特解碼,且由函數(shù)「arith_get_context」回送。圖5c顯不設(shè)定函數(shù)(setfunction)「arith_get_context」的偽程序碼表示。脈絡(luò)狀態(tài)c確定用以解碼最聞有效逐2_比特平面m的累積頻率表。從c至相對應(yīng)的累積頻率表索引「pki」的映射借函數(shù)「arith_get_pk()」執(zhí)行。圖5e顯示函數(shù)「arith_get_pk()」的偽程序碼表示。使用調(diào)用累積頻率表「arith_cf_m[pki][]」的函數(shù)「arith_decode()」來解碼值m,此處「pki」對應(yīng)于由「arith_get_pk()」回送的索引。算木編碼器(及解碼器)為使用以定標(biāo)而產(chǎn)生標(biāo)簽的方法的整數(shù)實(shí)施例。依據(jù)圖5g的偽程序碼描述所使用的算法。當(dāng)解碼值m為脫序符元「ARITH_ESCAPE」時,變量「lev」及「esc_nb」增加1,且另ー值m被解碼。在這種情況下,函數(shù)「get_pk()」再度以值「c+esc_nb17j作為輸入?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()」「lev」次而從最高有效位階至最低有效位階解碼。已解碼比特平面r允許依據(jù)其偽程序碼顯示于圖5j的該算法來改進(jìn)先前已解碼的值m。此時,2元組(a,b)的無符號值被完全解碼。其依據(jù)偽程序碼表示顯示于圖5k的該算法被儲存到保有頻譜系數(shù)的元素中。脈絡(luò)「q」也對下一個2元組而更新。須注意此脈絡(luò)更新也須對最后一個2元組執(zhí)行。此脈絡(luò)更新借其偽程序碼表示顯示于圖51的函數(shù)「arith_update_contextO」執(zhí)行。然后,該幀的下一個2元組借由使i增加1,且藉由從函數(shù)「arith_get_contextO」開始重做如前文所述的相同程序而被解碼。當(dāng)在幀內(nèi)部的lg/2個2元組被解碼或當(dāng)出現(xiàn)終止符元「ARITH_ST0P」時,頻譜幅度的解碼程序結(jié)束而符號的解碼開始。解碼借由調(diào)用函數(shù)「arith_finish()」結(jié)束。其余頻譜系數(shù)被設(shè)定為O。個別脈絡(luò)狀態(tài)對應(yīng)地更新。圖5m顯示函數(shù)「arith_finish」的偽程序碼表示。一旦全部無符號且已量化的頻譜系數(shù)都已解碼,就補(bǔ)上對應(yīng)符號。對「x_aC_deC」的每一個非空量化值,讀取一比特。若所讀取的比特值等于0,則該量化值為正,不做任何動作,且有符號值等于先前已解碼的無符號值。否則,已解碼系數(shù)為負(fù),且2的補(bǔ)數(shù)取自無符號值。有符號比特從低頻至高頻讀取。11.12說明圖5q顯示與依據(jù)圖5a、5c、5e、5f、5g、5j、5k、51及5m的算法相關(guān)的定義的說明。圖5r顯示與依據(jù)圖5b、5d、5f、5h、5i、5n、5o及5p的算法相關(guān)的定義的說明。12.映射表在依據(jù)本發(fā)明的一實(shí)施例中,特別有用的表「ari_lookup_m」、Γari_hash_mj及「ari_cf_m」用于依據(jù)圖5e或圖5f的函數(shù)「arith_get_pkO」的執(zhí)行,以及用于參考圖5g、5h及5i討論的函數(shù)「arith_decodeO」的執(zhí)行。但須注意不同的表可用于依據(jù)本發(fā)明的若干實(shí)施例。12.I依據(jù)圖22的表「ari_hash_m[600]」圖22的表顯示函數(shù)「arith_get_pk」(其第一實(shí)施例參考圖5e來描述且其第二實(shí)施例參考圖5f來描述)所使用的表「ari_hash_m」的特別有用的實(shí)施方式的內(nèi)容。須注意圖22的表列舉表(或陣列)「ari_hash_m[600]」的600個表項(xiàng)。還須注意圖22的表格表示以元素索引的順序顯示元素,使得第一個值「OxOOOOOOlOOUL」對應(yīng)于具元素索引(或表索引)0的表項(xiàng)「ari_hash_m」,且使得最后一個值「0x7ffffffff4fUL」對應(yīng)于具元素索引或表索引599的表項(xiàng)「ari_hash_m[599]」。此處須進(jìn)一步注意「Ox」指出表「ari_hash_m[]」的表項(xiàng)以十六進(jìn)制格式表示。此外,此處須注意字尾「UL」指出表「ari_hash_m[]」的表項(xiàng)以無符號的「長」(unsignedlong)整數(shù)值(具有32-比特的精度)表示。此外,須注意依據(jù)圖22的表「ari_hash_m[]」的表項(xiàng)以數(shù)值順序排列,以允許函數(shù)「arith_get_pkO」的表搜尋506b、508b、510b的執(zhí)行。須進(jìn)一步注意表「ari_hash_m」的表項(xiàng)的最高有效24-比特表示某些有效狀態(tài)值,而最低有效8-比特表示映射規(guī)則索引值「pki」。如此,表「ari_hash_m[]」的表項(xiàng)描述脈絡(luò)值到映射規(guī)則索引值「pki」的「直接命中(directhit)J映射。但表「ari_hash_m[]」的表項(xiàng)的最高24-比特同時表示,與相同映射規(guī)則索引值相關(guān)聯(lián)的數(shù)值脈絡(luò)值的區(qū)間的區(qū)間邊界。有關(guān)此構(gòu)想的細(xì)節(jié)已經(jīng)在前面討論過。12.2依據(jù)圖21的表「ari_lookup_m」圖21的表顯示表「ari_lookup_m」的特別有用的實(shí)施例的內(nèi)容。此處須注意圖21的表列舉表「ari_lookup_m」的表項(xiàng)。所述表項(xiàng)以一維整數(shù)型表項(xiàng)索引(也稱為「兀素索引」或「陣列索引」或「表索引」)引用,其,例如,標(biāo)示以ri.maxj或「i_min」。須注意表「ari_lookup_m」共包含600個表項(xiàng),極為適合依據(jù)圖5e或圖5f的函數(shù)「arith_get_pk」使用。還須注意依據(jù)圖21的表「ari_lookup_m」適用于與依據(jù)圖22的表「ari_hash_m」共同作用。須注意表「ari_lookup_m[600]」的表項(xiàng)以在O至599之間的表索引ΓiJ(例如,「i_min」或「i_max」)的上升順序列舉。項(xiàng)「Ox」指示所述表項(xiàng)以十六進(jìn)制格式描述。據(jù)此,第一個表項(xiàng)「0x02」對應(yīng)于具有表索引O的表項(xiàng)「ari_lookup_m」,且最后一個表項(xiàng)Γ0χ5Ε]對應(yīng)于具有表索引599的表項(xiàng)「ari_lookup_m[599]」。還須注意表「ari_lookup_m[]」的表項(xiàng)與由表「ari_hash_m[]」的相鄰表項(xiàng)所界定的區(qū)間相關(guān)聯(lián)。如此,表「ari_lookup_m」的表項(xiàng)描述與數(shù)值脈絡(luò)值的區(qū)間相關(guān)聯(lián)的映射規(guī)則索引值,其中所述區(qū)間由表「ari_hash_m」的表項(xiàng)界定。12.3依據(jù)圖23的表「ari_cf_m[96][17]J圖23顯示一個由96個累積頻率表(或子表)「ari_cf_m[pki][17]」組成的集合,其中的一個累積頻率表(或子表)由音頻編碼器100、700或音頻解碼器200、800選擇,例如,用于函數(shù)「arith_deCOde()」的執(zhí)行,亦即用于最高有效比特平面值的解碼。圖23中所示的96個累積頻率表(或子表)中被選中的一個累積頻率表(或子表)在函數(shù)「arith_decodeO」的執(zhí)行中發(fā)揮表「cum_freq[]」的功能。由圖23可知,每一個子區(qū)塊表示具有17個表項(xiàng)的一個累積頻率表。例如,第一個子區(qū)塊2310表示「pki=0」的一累積頻率表的17個表項(xiàng)。第二個子區(qū)塊2312表示「pki=l」的一累積頻率表的17個表項(xiàng)。最后,第96個子區(qū)塊2396表示「pki=95」的一累積頻率表的17個表項(xiàng)。如此,圖23有效表示對應(yīng)于「pki=0」至「pki=95」的96個不同累積頻率表(或子表),其中96個累積頻率表中的每一個累積頻率表以一個子區(qū)塊(以大括號括出)表示,且其中所述累積頻率表中的每一個累積頻率表包含17個表項(xiàng)。在一個子區(qū)塊(例如,子區(qū)塊2310或2312,或子區(qū)塊2396)內(nèi)部,第一個值描述累積頻率表的第一個表項(xiàng)(具有陣列索引或表索引O),且最后一個值描述累積頻率表的最后一個表項(xiàng)(具有陣列索引或表索引16)。據(jù)此,圖23的表格表示的每一個子區(qū)塊2310、2312、2396表示由依據(jù)圖5g或依據(jù)圖5h及5i的函數(shù)「arith_decode」使用的累積頻率表的表項(xiàng)。函數(shù)「arith_decode」的輸入變量「cum_freq[]」描述96個累積頻率表(以表「arith_cf_m」的17個表項(xiàng)的單獨(dú)子區(qū)塊表示)中的哪一個累積頻率表須用于當(dāng)前頻譜系數(shù)的解碼。12.4依據(jù)圖24的表「ari_cf_r[]」圖24顯示表「ari_cf_r[]」的內(nèi)容。圖24顯示該表的四個表項(xiàng)。但須注意在其它實(shí)施例中,表「ari_cf_r」最終可能是不同的。13.效能評估及優(yōu)點(diǎn)依據(jù)本發(fā)明的實(shí)施例使用如前文討論的更新的函數(shù)(或算法)及更新的表集合來獲得運(yùn)算復(fù)雜度、內(nèi)存需求與編碼效率間的改良折衷。概略言之,依據(jù)本發(fā)明的實(shí)施例形成改良型頻譜無噪聲編碼。依據(jù)本發(fā)明的實(shí)施例描述USAC(統(tǒng)一語音及音頻編碼)的頻譜無噪聲編碼的加強(qiáng)。依據(jù)本發(fā)明的實(shí)施例,對基于MPEG輸入報告ml6912及ml7002中所提出的方案的頻譜系數(shù)的改良型頻譜無噪聲編碼的CE,形成已更新的提案。這兩個提案經(jīng)評估,消除了潛在缺點(diǎn),并結(jié)合了優(yōu)勢。在ml6912及ml7002中,所得提案以如USAC(統(tǒng)ー語音及音頻編碼的草擬標(biāo)準(zhǔn))工作草稿5的基于原始脈絡(luò)的算木編碼方案為基礎(chǔ),但可顯著減少內(nèi)存需求(隨機(jī)存取存儲器(RAM)及只讀存儲器(R0M)),而未增加運(yùn)算復(fù)雜度,同時維持編碼效率。此外,業(yè)已證實(shí)依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿3及依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿5,比特串流的無損耗轉(zhuǎn)碼是可能的。依據(jù)本發(fā)明的實(shí)施例針對取代用于USAC草擬標(biāo)準(zhǔn)的工作草稿5的頻譜無噪聲編碼方案。此處描述的算術(shù)編碼方案以參考模型0(RMO)或USAC草擬標(biāo)準(zhǔn)的工作草稿5(WD)中的方案為基礎(chǔ)。頻率或時間上的頻譜系數(shù)使脈絡(luò)模型化。此脈絡(luò)用于算術(shù)編碼器的累積頻率表的選擇。與工作草稿5(WD)相比,脈絡(luò)模型化進(jìn)ー步得到改良,且保有符元概率的表接受重新訓(xùn)練(retrain)。不同概率模型的數(shù)目從32個增至96個。依據(jù)本發(fā)明的實(shí)施例將表的大小(數(shù)據(jù)ROM需求)縮小至1518個長度為32-比特的字或6072-字節(jié)(WD516,894.5字或67,578-字節(jié))。靜態(tài)RAM需求從每個核心編碼器通道666個字(2,664個字節(jié))減至72個字(288個字節(jié))。同時,完全保留了編碼效能,且與全部9個作業(yè)點(diǎn)(operatingpoint)的總數(shù)據(jù)率相比,甚至可達(dá)到約I.29%至I.95%的増益。全部工作草稿3及工作草稿5比特串流可以無損耗方式轉(zhuǎn)碼而不影響比特池(bitreservoir)限制。后文中,將提供依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿5的編碼構(gòu)想的簡短討論以便于了解此處所述構(gòu)想的優(yōu)點(diǎn)。隨后,將描述依據(jù)本發(fā)明的若干較佳實(shí)施例。在USAC工作草稿5中,基于脈絡(luò)的算木編碼方案用于量化頻譜系數(shù)的無噪聲編碼。使用頻率上及時間上在先的已解碼頻譜系數(shù)作為脈絡(luò)。在工作草稿5中,使用最多16個頻譜系數(shù)作為脈絡(luò),其中12個頻譜系數(shù)的時間在先。而且,用于脈絡(luò)且欲解碼的頻譜系數(shù)被分組成4元組(亦即頻率鄰近的4個頻譜系數(shù),參見圖14a)。脈絡(luò)縮減并被映射至一累積頻率表,然后用于解碼頻譜系數(shù)的下ー個4元組。對于完整的工作草稿5無噪聲編碼方案,需要16894.5個字(67578字節(jié))的內(nèi)存需求(只讀存儲器(ROM))。此外,需要每個核心編碼器通道的666個靜態(tài)RAM字(2664字節(jié))來儲存下ー幀的狀態(tài)。圖14b的表格表示描述用于USACWD4的算術(shù)編碼方案的表格。此處須注意關(guān)于無噪聲編碼,USAC草擬標(biāo)準(zhǔn)的工作草稿4及5是相同的。此二者皆使用相同的無噪聲編碼器。估算完整USACWD5解碼器的總內(nèi)存需求,對無程序碼的數(shù)據(jù)ROM為37000個字(148000字節(jié)),而對靜態(tài)RAM為10000至17000個字。明白可知無噪聲編碼器表耗用約45%的總數(shù)據(jù)ROM需求。最大的單個表已經(jīng)耗用4096個字(16384字節(jié))。業(yè)已發(fā)現(xiàn)全部表及大型單個表的組合的大小超過由消費(fèi)者可攜式裝置所使用的固定點(diǎn)處理器所提供的典型的高速緩沖存儲器的大小,它在8至32千字節(jié)的典型范圍內(nèi)(例如,ARM9e、TIC64XX等)。這意味著表集合可能并未被儲存在快速數(shù)據(jù)RAM中,而儲存在快速數(shù)據(jù)RAM中允許數(shù)據(jù)的快速隨機(jī)存取。這造成整個解碼程序減慢。此外,業(yè)已發(fā)現(xiàn)當(dāng)前成功的音頻編碼技術(shù),諸如HE-AAC已經(jīng)證實(shí)可在大多數(shù)移動裝置上實(shí)施。HE-AAC使用具有995個字的表大小的霍夫曼熵編碼方案。詳情請參考ISO/IECJTC1/SC29/WG11N2005,MPEG98,1998年2月,圣荷西市,「RevisedReportonComplexityofMPEG-2AAC2」。在第90屆MPEG會議上,在MPEG輸入報告ml6912及ml7002中,提出兩份針對無噪聲編碼方案減少內(nèi)存需求并改良編碼效率的提案。通過分析這兩個提案,可獲得下列結(jié)論。·通過縮小碼字的維度,內(nèi)存需求可能顯著減少。如MPEG輸入文件ml7002中所示,借由將維度從4元組減至I元組,內(nèi)存需求可從16984.5個字減至900個字而不損害編碼效率;及借由對LSB編碼應(yīng)用非均勻概率分布的碼簿,而非使用均勻概率分布的碼簿,可去除額外冗余。在評估過程中,可認(rèn)識到編碼方案從4元組移動至I元組對運(yùn)算復(fù)雜度造成顯著影響編碼維度的縮小以相同因數(shù)而增加欲編碼符元的數(shù)目。對于從4元組減至I元組,這意味著確定脈絡(luò)、存取散列表,及解碼符元所需執(zhí)行的運(yùn)算比先前多四倍。結(jié)合用于脈絡(luò)確定的更復(fù)雜算法,這導(dǎo)致運(yùn)算復(fù)雜度增至2.5倍或者是X.xxP⑶。后文中將簡單敘述依據(jù)本發(fā)明的實(shí)施例所提出的新方案。為了克服內(nèi)存量(footprint)及運(yùn)算復(fù)雜度的問題,提出改良型無噪聲編碼方案來取代工作草稿5(WD5)中的方案。開發(fā)的主要焦點(diǎn)放在減少內(nèi)存需求,同時維持壓縮效率并且不增加運(yùn)算復(fù)雜度。更明確地說,目的是為了實(shí)現(xiàn)壓縮性能、復(fù)雜度及內(nèi)存需求的多維復(fù)雜度空間的良好的(或甚至是最佳的)折衷。新的編碼方案提案借用WD5無噪聲編碼器的主要特征,亦即脈絡(luò)適應(yīng)。脈絡(luò)使用先前已解碼的頻譜系數(shù)導(dǎo)算出,如同在WD5中,頻譜系數(shù)來自于過去幀及當(dāng)前幀(其中一幀可被視為音頻內(nèi)容的一部分)。但頻譜系數(shù)現(xiàn)在通過將兩個系數(shù)組合在一起以形成一個2元組而被編碼。另一個差異在于頻譜系數(shù)現(xiàn)在分裂成三部分符號(sign)、較高有效比特或最高有效比特(MSB),及較低有效比特或最低有效比特(LSB)。符號與幅度獨(dú)立地編碼,幅度又再劃分成兩部分最高有效比特(或較高有效比特)及其余的比特(或較低有效比特)(若存在的話)。兩個元素的幅度小于或等于3的2元組通過MSB編碼而直接編碼。否貝U,首先傳輸一個脫序碼字來標(biāo)示任何額外的比特平面。在基礎(chǔ)版本中,遺漏的信息,亦即LSB及符號,皆使用均勻概率分布來編碼。另外,可使用不同概率分布。表大小的縮小仍屬可能,原因在于·只需儲存17個符元的概率{,}+ESC符元;無需儲存群組表(egroups、dgroups、dgvectors);·散列表的大小可以通過適當(dāng)訓(xùn)練加以縮小。后文中,將敘述有關(guān)MSB編碼的若干細(xì)節(jié)。如前文已經(jīng)提到的,USAC草擬標(biāo)準(zhǔn)的WD5、第90屆MPEG會議上遞交的提案與本提案間的主要差異之一為符元的維度。在USAC草擬標(biāo)準(zhǔn)的WD5中,4元組被考慮用于脈絡(luò)的產(chǎn)生及無噪聲編碼。在第90屆MPEG會議上遞交的提案中,使用I元組取而代之用來減少ROM需求。在開發(fā)過程中,發(fā)現(xiàn)2元組為減少ROM需求,而不增加運(yùn)算復(fù)雜度的最佳折衷。對于脈絡(luò)更新,現(xiàn)在考慮四個2元組,而不考慮四個4元組。如圖15a中所示,三個2元組來自過去巾貞(也稱為音頻內(nèi)容的先前部分),且一個2元組來自當(dāng)前幀(也稱為音頻內(nèi)容的當(dāng)前部分)。表大小的縮小是由于三個主要因素。首先,只需儲存17個符元的概率(亦即{,}+ESC符元)。不再需要群組表(亦即egroups、dgroups及dgvectors)。最后,散列表的大小通過實(shí)施適當(dāng)訓(xùn)練加以縮小。雖然維度從4維減至2維,但復(fù)雜度仍維持與USAC草擬標(biāo)準(zhǔn)的WD5相同的范圍。這是借由簡化脈絡(luò)產(chǎn)生及散列表存取而實(shí)現(xiàn)的。不同的簡化及優(yōu)化以編碼性能不受影響,甚至略有改良的方式進(jìn)行。這主要是借由將概率模型數(shù)目從32個增至96個來實(shí)現(xiàn)。后文中,將敘述有關(guān)LSB編碼的若干細(xì)節(jié)。在若干實(shí)施例中,LSB以均等概率分布來編碼。與USAC草擬標(biāo)準(zhǔn)的WD5相比,LSB現(xiàn)在被考慮進(jìn)2元組而非4元組。后文中,將解釋有關(guān)符號編碼的若干細(xì)節(jié)。為了減少復(fù)雜度,符號并不使用算木核心編碼器來編碼。唯有當(dāng)相對應(yīng)的幅度為非空(non-null)時,符號才以1_比特來傳輸。0表示正值,而I表示負(fù)值。后文中,將解釋有關(guān)內(nèi)存需求的若干細(xì)節(jié)。提出的新方案具有最多1522.5個新字(6090個字節(jié))的整體ROM需求。詳情請參考圖15b的表,此圖描述在所提出的編碼方案中使用的表。與USAC草擬標(biāo)準(zhǔn)的WD5中的無噪聲編碼方案的ROM需求相比,ROM需求減少至少15462個字(61848個字節(jié))?,F(xiàn)在最終獲得與HE-AAC的AAC霍夫曼解碼器所需內(nèi)存需求(995個字或3980個字節(jié))相同數(shù)量級的內(nèi)存需求。詳情請參考IS0/IECJTCl/SC29/WG11N2005,MPEG98,1998年2月,圣荷西市,「RevisedReportonComplexityofMPEG-2AAC2」,同時參考圖16a。這減少無噪聲編碼器的總ROM需求超過92%,及對完整的USAC解碼器而言從約37000個字減至約21500個字,或減少超過41%。詳情請?jiān)俣葏⒖紙D16a及16b,其中圖16a顯示所提出的無噪聲編碼方案的ROM需求,及依據(jù)USAC草擬標(biāo)準(zhǔn)的WD4的無噪聲編碼方案的ROM需求,且其中圖16b顯示依據(jù)所提出的方案及依據(jù)USAC草擬標(biāo)準(zhǔn)的WD4的總USAC解碼器數(shù)據(jù)ROM需求。更進(jìn)一歩,也減少了在下一幀中脈絡(luò)導(dǎo)算所需的信息(靜態(tài)ROM)量。在USAC草擬標(biāo)準(zhǔn)的WD5中,除了每個分辨率為10比特的4元組的一群組索引需要儲存以外,分辨率通常為16比特的完整系數(shù)集合(最大為1152個系數(shù))也需要儲存,總計(jì)每個核心編碼器通道666個字(2664字節(jié))(對完整的USACWD4解碼器約10000至17000個字)。新的方案將持久信息(persistentinformation)減至只有姆頻譜系數(shù)2-比特,加總成姆個核心編碼器通道總計(jì)72個字(288字節(jié))。靜態(tài)存儲器需求可減少594個字(2376字節(jié))。后文中將敘述有關(guān)可能的編碼效率提聞的若干細(xì)節(jié)。依據(jù)新提案的實(shí)施例的解碼效率與依據(jù)USAC草擬標(biāo)準(zhǔn)的工作草稿3(WD3)及WD5的參考品質(zhì)比特串流作比較。比較利用轉(zhuǎn)碼器基于參考軟件解碼器來執(zhí)行。有關(guān)依據(jù)USAC草擬標(biāo)準(zhǔn)的WD3或WD5的無噪聲編碼與所提議的編碼方案的所述比較的細(xì)節(jié),請參考圖17,其顯示用于WD3/5無噪聲編碼方案與所提出的編碼方案的比較的測試配置的示意表示。而且,依據(jù)本發(fā)明的實(shí)施例的內(nèi)存需求與依據(jù)USAC草擬標(biāo)準(zhǔn)的WD3(或WD5)的實(shí)施例作比較。編碼效率不僅維持同時略増。詳情請參考圖18的表,其顯示由WD3算木編碼器(或使用WD3算木編碼器的USAC音頻編碼器)及由依據(jù)本發(fā)明的一實(shí)施例的音頻編碼器(例如,USAC音頻編碼器)所產(chǎn)生的平均比特率的表格表示。有關(guān)每種操作模式的平均比特率的細(xì)節(jié)可見圖18的表。此外,圖19顯示W(wǎng)D3算木編碼器(或使用WD3算木編碼器的音頻編碼器)及依據(jù)本發(fā)明的一實(shí)施例的音頻編碼器的最小及最大比特池位階(bitreserviorlevel)的表格表不。后文中,將描述有關(guān)運(yùn)算復(fù)雜度的若干細(xì)節(jié)。算木編碼維度的縮小通常導(dǎo)致運(yùn)算復(fù)雜度増大。實(shí)際上,使維度縮小至2維將使得算木編碼器程序的調(diào)用變?yōu)閮杀?。但業(yè)已發(fā)現(xiàn)此種復(fù)雜度増大能通過依據(jù)本發(fā)明的實(shí)施例所提出的新的編碼方案中引入的若干優(yōu)化而被限制。在依據(jù)本發(fā)明的某些實(shí)施例中,脈絡(luò)產(chǎn)生大為簡化。對于每ー個2元組,脈絡(luò)可從最后一個產(chǎn)生的脈絡(luò)而遞增地更新。概率現(xiàn)在以14比特而非16比特儲存,避免解碼程序過程中的64-比特運(yùn)算。此外,在依據(jù)本發(fā)明的若干實(shí)施例中,概率模型的映射大為優(yōu)化。最壞情況大減且限縮至10次迭代重復(fù)而非95次迭代重復(fù)。結(jié)果,所提出的無噪聲編碼方案的運(yùn)算復(fù)雜度維持在與WD5之中的運(yùn)算復(fù)雜度相同的范圍?!讣埞P(penandpaper)」估算借不同版本的無噪聲編碼來執(zhí)行且被記錄在圖20的表中。其顯示新的編碼方案的復(fù)雜度只比WD5算木編碼器少約13%。綜上所述,可知依據(jù)本發(fā)明的實(shí)施例提供運(yùn)算復(fù)雜度、內(nèi)存需求與編碼效率間的特佳折衷。14.比特串流語法14.I頻譜無噪聲編碼器的有效載荷(payload)后文中,將描述有關(guān)頻譜無噪聲編碼器的有效載荷的若干細(xì)節(jié)。在若干實(shí)施例中,有多種不同編碼模式,諸如,舉例而言,所謂的「線性預(yù)測域」編碼模式及「頻域」編碼模式。在線性預(yù)測域編碼模式中,噪聲整形基于音頻信號的線性預(yù)測分析來執(zhí)行,且噪聲整形信號在頻域中編碼。在頻域編碼模式中,噪聲整形基于心理聲學(xué)分析來執(zhí)行,且音頻內(nèi)容的噪聲整形版本在頻域中編碼。來自「線性預(yù)測域」編碼信號及「頻域」編碼信號的頻譜系數(shù)經(jīng)定標(biāo)量化(scalarquantized),且接著借脈絡(luò)相依的適應(yīng)性算術(shù)編碼(adaptivelycontextdependentarithmeticcoding)而無噪聲地編碼。量化系數(shù)在從最低頻率至最高頻率傳輸之前收集合成2元組。每ー個2元組分裂成符號S、最高有效逐2-比特平面m,及其余的一或多個較低有效比特平面r(若有的話)。值m依據(jù)由鄰近的頻譜系數(shù)所定義的脈絡(luò)來編碼。換言之,m依據(jù)系數(shù)鄰近關(guān)系而被編碼。其余的較低有效比特平面!■被熵編碼而不考慮脈絡(luò)。利用m及r,這些頻譜系數(shù)的幅度可在解碼器端重構(gòu)。對全部非空符元而言,符號s使用I-比特而在算術(shù)編碼器外部編碼。換言之,值m及r形成算術(shù)編碼器的符元。最后,對每個非空量化系數(shù)而言,符號s使用I-比特而在算木編碼器外部編碼。本文已敘述詳細(xì)的算木編碼程序。14.2語法元素后文中,將參考圖6a至6j來描述攜帶算術(shù)編碼頻譜信息的一比特串流的比特串流語法。圖6a顯示所謂的USAC原始數(shù)據(jù)區(qū)塊(「usac_raw_data_block()J)的語法表示。USAC原始數(shù)據(jù)區(qū)塊包含一或多個單一通道元素(「single_channe_element()」)及/或一或多個成對通道元素(「channel_pair_element()」)。現(xiàn)在參考圖6b,描述單一通道元素的語法。視核心模式而定,單一通道元素包含線性預(yù)測域通道串流(「lpd_channel_stream()」)或者是頻域通道串流(「fd_channel_stream()」)。圖6c顯示一成對通道元素的語法表示。成對通道元素包含核心模式信息(「core_modeOJ>Tcore_modeIJ)。除此之外,成對通道元素可包含組態(tài)信息「ics_info()」。此外,依據(jù)核心模式信息,成對通道元素包含與通道中的第一者相關(guān)聯(lián)的線性預(yù)測域通道串流或頻域通道串流,且成對通道元素還包含與通道中的第二者相關(guān)聯(lián)的線性預(yù)測域通道串流或頻域通道串流。其語法表示顯示于圖6d的組態(tài)信息「ics_info()」包含多個不同的組態(tài)信息項(xiàng),它們與本發(fā)明并無特別的關(guān)聯(lián)。其語法表示顯示于圖6e的頻域通道串流(「fd_channel_stream()J)包含增益信息(「global_gain」)及組態(tài)信息「ics_info()」。此外,頻域通道串流包含尺度因子數(shù)據(jù)(「SCale_faCt0r_data()」),其描述用于不同尺度因子頻帶的頻譜值的定標(biāo)的尺度因子,且例如借定標(biāo)器150及重定標(biāo)器240應(yīng)用。頻域通道串流還包含表示算木編碼頻譜值的算木編碼頻譜數(shù)據(jù)(「ac_spectral_data()」)。其語法表示顯示于圖6f的算術(shù)編碼頻譜數(shù)據(jù)(「ac_spectral_data()」)包含用于選擇性地重置脈絡(luò)(如前所述)的ー選擇性的算木重置旗標(biāo)(「arith_reSet_flag」)。此外,算木編碼頻譜數(shù)據(jù)包含攜帯所述算術(shù)編碼頻譜值的多個算術(shù)數(shù)據(jù)區(qū)塊(「arith_data」)。算術(shù)編碼數(shù)據(jù)區(qū)塊的結(jié)構(gòu)取決于頻帶數(shù)目(以變量「num_bands」來表示),且還取決于算木重置旗標(biāo)的狀態(tài),容后詳述。后文將參考圖6g來描述算術(shù)編碼數(shù)據(jù)區(qū)塊的結(jié)構(gòu),其顯示所述算術(shù)編碼數(shù)據(jù)區(qū)塊的語法表示。在算木編碼數(shù)據(jù)區(qū)塊內(nèi)部的數(shù)據(jù)表示取決于欲編碼頻譜值的數(shù)目lg、算木重置旗標(biāo)的狀態(tài),也取決于脈絡(luò),亦即先前已編碼的頻譜值。頻譜值的當(dāng)前集合(例如,2元組)的編碼用脈絡(luò)依據(jù)參考數(shù)字660所示脈絡(luò)確定算法來確定。有關(guān)脈絡(luò)確定算法的細(xì)節(jié)已經(jīng)參考圖5a及5b在上文說明過。算術(shù)編碼數(shù)據(jù)區(qū)塊包含lg/2個碼字集合,每ー個碼字的集合表示多個(例如,ー個2元組)頻譜值。一碼字集合包含使用I至20個比特來表示頻譜值元組的最高有效比特平面值m的算術(shù)碼字「acod_m[pki][m]」。此外,為了正確表示,如果頻譜值元組需要比最高有效比特平面更多的比特平面,碼字集合包含一或多個碼字「acod_r[r]」。碼字「acod_r[r]」使用I至14個比特來表示較低有效比特平面。然而,當(dāng)為了頻譜值的適當(dāng)表示需要一或多個較低有效比特平面(除了最高有效比特平面之外)時,這使用一或多個算術(shù)脫序碼字(「ARITH_ESCAPE」)來標(biāo)示。如此,概括而言,對ー頻譜值,確定需要多少個比特平面(最高有效比特平面,及可能,一或多個額外的較低有效比特平面)。若需要一或多個較低有效比特平面,則借ー或多個算術(shù)脫序碼字「aCod_m[pki][ARITH_ESCAPE]」來標(biāo)示,這些算術(shù)脫序碼字依據(jù)當(dāng)前選定的累積頻率表而編碼,當(dāng)前選定的累積頻率表的累積頻率表索引由變量「pki」給定。此外,如由參考數(shù)字664、662可知,若一或多個算術(shù)脫序碼字含括在比特串流中,則脈絡(luò)被修改。如參考數(shù)字663所示,在一或多個算術(shù)脫序碼字之后,算術(shù)碼字「aCod_m[pki][m]」含括在比特串流中,其中「pki」標(biāo)示當(dāng)前有效概率模型索引(將借由含括算木脫序碼字所造成的脈絡(luò)修改列入考慮),且其中m標(biāo)示欲編碼或欲解碼頻譜值的最高有效比特平面值(其中m與「ARITH_ESCAPE」碼字相異)。如前文討論,任何較低有效比特平面的存在會導(dǎo)致ー或多個碼字「acod_r[r]」的存在,其各自表示第一個頻譜值的最低有效比特平面的ー比特,且其各自也表示第二個頻譜值的最低有效比特平面的一比持。一或多個碼字「acod_r[r]」依據(jù)對應(yīng)的累積頻率表來編碼,該表,例如,可以是固定量并且是脈絡(luò)非相依性的。但也可能使用不同選擇機(jī)制來選擇用于一或多個碼字「acod_r[r]」解碼的累積頻率表。此外,須注意在每ー個頻譜值元組編碼后,脈絡(luò)被更新,如參考數(shù)字668所示,使得脈絡(luò)通常變得不同,以用于隨后接續(xù)的兩個頻譜值元組的編碼及解碼。圖6i顯示定義算述編碼數(shù)據(jù)區(qū)塊的語法的定義及輔助元素的說明?!ご送?,圖6h顯示算術(shù)數(shù)據(jù)「arith_data()」的替代語法,而圖6j顯示相對應(yīng)的定義及輔助元素的說明。概括而言,已經(jīng)描述可由音頻編碼器100提供且可由音頻解碼器200評估的比特串流格式。算木編碼頻譜值的比特串流經(jīng)編碼,使得其適合前文討論的解碼算法。此外,一般說來編碼為解碼的反向運(yùn)算,因而通??杉僭O(shè)編碼器使用前文討論的表來執(zhí)行表查找,約略為借解碼器執(zhí)行的表查找的反向。一般而言,可以說知曉解碼算法及/或期望的比特串流語法的本領(lǐng)域技術(shù)人員將容易設(shè)計(jì)出ー種提供比特串流語法中定義的及算木解碼器所需的數(shù)據(jù)的算木編碼器。此外,須注意用以確定數(shù)值當(dāng)前脈絡(luò)值及用以導(dǎo)算映射規(guī)則索引值的機(jī)制在音頻編碼器及音頻解碼器中可能是相同的,原因在于通常期望音頻解碼器使用與音頻編碼器相同的脈絡(luò),使得解碼適應(yīng)于編碼。15.實(shí)施的替代方案雖然已就裝置脈絡(luò)描述若干方面,但顯然這些方面也表示對應(yīng)方法的描述,其中一方塊或裝置對應(yīng)于一方法步驟或一方法步驟的特征。類似地,就一方法步驟的脈絡(luò)所描述的方面也表示對應(yīng)裝置的一對應(yīng)區(qū)塊或項(xiàng)目或特征的描述。部分或全部方法步驟可借(或使用)硬件裝置,例如,微處理器、可編程計(jì)算機(jī)或電子電路來執(zhí)行。在若干實(shí)施例中,最重要的方法步驟中的某一或多者可借此種裝置來執(zhí)行。本發(fā)明的編碼音頻信號可儲存在數(shù)字儲存媒體上或可在傳輸媒體,諸如,無線傳輸媒體或有線傳輸媒體,諸如Internet上傳輸。依據(jù)某些實(shí)施要求,本發(fā)明的實(shí)施例可使用硬件或使用軟件形式來實(shí)施。實(shí)施可使用其上儲存有電子可讀取控制信號的數(shù)字存儲媒體,例如,軟盤、DVD、藍(lán)光碟、CD、ROM、PROM、EPROM、EEPR0M,或閃存來執(zhí)行,所述電子可讀取控制信號與可編程計(jì)算機(jī)系統(tǒng)合作(或能夠與之合作),因而可執(zhí)行各自的方法。因此,數(shù)字儲存媒體可能是計(jì)算機(jī)可讀取的。依據(jù)本發(fā)明的若干實(shí)施例包含具有電子可讀取式控制信號的一數(shù)據(jù)載體,所述電子可讀取式控制信號能夠與可編程計(jì)算機(jī)系統(tǒng)合作,而執(zhí)行本文所述方法之一。一般而言,本發(fā)明的實(shí)施例能以帶有程序碼的計(jì)算機(jī)程序產(chǎn)品來實(shí)施,當(dāng)該計(jì)算機(jī)程序產(chǎn)品在ー計(jì)算機(jī)上運(yùn)行時,該程序碼可操作來執(zhí)行所述方法之一。該程序碼,例如,可儲存在機(jī)器可讀取載體上。其它實(shí)施例包含儲存在機(jī)器可讀取載體上用以執(zhí)行本文所述方法之一的計(jì)算機(jī)程序。因此,換言之,本發(fā)明方法的一實(shí)施例是ー種計(jì)算機(jī)程序,該計(jì)算機(jī)程序具有,當(dāng)該計(jì)算機(jī)程序在ー計(jì)算機(jī)上運(yùn)行時,用以執(zhí)行本文所述方法之一的程序碼。因此,本發(fā)明方法的又一實(shí)施例是ー種數(shù)據(jù)載體(或數(shù)字儲存媒體或計(jì)算機(jī)可讀取媒體),它包含記錄于其上的用以執(zhí)行本文所述方法之一的計(jì)算機(jī)程序。該數(shù)據(jù)載體、數(shù)字儲存媒體或記錄媒體通常是具體有形的(tangible)及/或非暫態(tài)的(non-transItionary)。因此,本發(fā)明方法的又ー實(shí)施例是表示用以執(zhí)行本文所述方法之一的計(jì)算機(jī)程序的一數(shù)據(jù)串流或一信號序列。該數(shù)據(jù)串流或信號序列,例如,可被配置成通過數(shù)據(jù)通訊連接,例如,通過Internet來傳輸。又一實(shí)施例包含一種處理裝置,例如,計(jì)算機(jī)或可編程邏輯裝置,其被配置成或適用于執(zhí)行本文所述方法之一。又一實(shí)施例包含一種計(jì)算機(jī),其上安裝有用以執(zhí)行本文所述方法之一的計(jì)算機(jī)程序。依據(jù)本發(fā)明的又一實(shí)施例包含ー種被配置成傳輸(例如以電子方式或光學(xué)方式)用以執(zhí)行本文所述方法之一的計(jì)算機(jī)程序給接收器的裝置或系統(tǒng)。該接收器,例如,可以是計(jì)算機(jī)、移動裝置、存儲裝置等。該裝置或系統(tǒng),例如,可包含一種用來傳輸計(jì)算機(jī)程序給接收器的文件服務(wù)器。在若干實(shí)施例中,一種可編程邏輯裝置(例如,現(xiàn)場可編程門陣列)可用來執(zhí)行本文所述方法的部分或全部功能。在若干實(shí)施例中,現(xiàn)場可編程門陣列可與微處理器合作以執(zhí)行本文所述方法之一。一般而言,所述方法較佳地借任一種硬件裝置來執(zhí)行。上述實(shí)施例僅供舉例說明本發(fā)明的原理。應(yīng)知本文所述配置及細(xì)節(jié)的修正及變化為本領(lǐng)域技術(shù)人員所顯然易知。因此,意圖只受隨附的專利權(quán)利要求的范圍的限制而非受通過說明與解釋本文實(shí)施例所呈現(xiàn)的特定細(xì)節(jié)的限制。16.結(jié)論總而言之,依據(jù)本發(fā)明的實(shí)施例包含下列方面中的一或多者,其中所述方面可單獨(dú)使用或組合使用。a)脈絡(luò)狀態(tài)散列機(jī)制依據(jù)本發(fā)明的一方面,散列表中的狀態(tài)被認(rèn)為是有效狀態(tài)及群組邊界。這允許顯著縮小所需表的大小。b)增值脈絡(luò)更新依據(jù)一方面,依據(jù)本發(fā)明的若干實(shí)施例包含用以更新脈絡(luò)的運(yùn)算有效率的方式。若干實(shí)施例使用增值脈絡(luò)更新,其中數(shù)值當(dāng)前脈絡(luò)值從數(shù)值先前脈絡(luò)值導(dǎo)算出。c)脈絡(luò)導(dǎo)算依據(jù)本發(fā)明的一方面,使用兩個頻譜絕對值的和與截取(truncation)運(yùn)算相結(jié)合。它屬于一種頻譜系數(shù)的増益向量量化(而與習(xí)知的形狀-増益向量量化相反)。其目的在于限制脈絡(luò)數(shù)量級,同時從鄰近獲取最有意義的信息。應(yīng)用于依據(jù)本發(fā)明的實(shí)施例的若干其它技術(shù)記載在先前未曾公開的專利申請案PCTEP2101/065725、PCTEP2010/065726,及PCTEP2010/065727中。此外,在依據(jù)本發(fā)明的若干實(shí)施例中,使用終止符元。此外,在若干實(shí)施例中,對于脈絡(luò)只考慮無符號值。但上文提到的先前未曾公開的國際專利申請案掲示依據(jù)本發(fā)明的若干實(shí)施例仍在使用的方面。例如,零區(qū)的識別用在本發(fā)明的若干實(shí)施例中。據(jù)此,設(shè)定所謂的「小值旗標(biāo)」(例如,數(shù)值當(dāng)前脈絡(luò)值c的比特16)。在若干實(shí)施例中,可使用區(qū)域相依性脈絡(luò)運(yùn)算。但在其它實(shí)施例中,可省略區(qū)域相依性脈絡(luò)運(yùn)算以保持復(fù)雜度及表大小相當(dāng)小。此外,使用散列函數(shù)的脈絡(luò)散列是本發(fā)明的ー個重要方面。脈絡(luò)散列可基于上述先前未曾公開的國際專利申請案中所述的ニ表(two-table)構(gòu)想。但脈絡(luò)散列的特定調(diào)整可用于若干實(shí)施例來提高運(yùn)算效率。雖說如此,在依據(jù)本發(fā)明的若干其它實(shí)施例中,可使用上述先前未曾公開的國際專利申請案中所述的脈絡(luò)散列。此外,須注意增值脈絡(luò)散列相當(dāng)簡單且運(yùn)算效率高。并且,脈絡(luò)與用于本發(fā)明的若干實(shí)施例的值的符號的非相依性協(xié)助簡化脈絡(luò),借此使內(nèi)存需求相當(dāng)?shù)?。在本發(fā)明的若干實(shí)施例中,使用利用兩個頻譜值的和與脈絡(luò)限制的脈絡(luò)導(dǎo)算。這兩個方面可組合。二者的目的都在于借由從鄰近獲取最有意義的信息來限制脈絡(luò)數(shù)量級。在若干實(shí)施例中,使用小值旗標(biāo),其可能類似于對ー組多個零值的識別。在依據(jù)本發(fā)明的若干實(shí)施例中,使用算術(shù)終止機(jī)制。該構(gòu)想類似于JPEG中具有類似功能的符元「區(qū)塊結(jié)束(end-of-block)」的使用。但在本發(fā)明的若干實(shí)施例中,符元(「ARITH_ST0P」)并未明確地含括在熵編碼器中。而是使用先前不出現(xiàn)的,已存在的符元的ー組合,亦即「ESC+0」。換言之,音頻解碼器被配置成檢測通常并不用來表示數(shù)值的既存符元的組合,且將此既存符元的組合的出現(xiàn)解譯為算術(shù)終止條件。依據(jù)本發(fā)明的一實(shí)施例使用一種ニ表脈絡(luò)散列機(jī)制。進(jìn)ー步綜上所述,依據(jù)本發(fā)明的若干實(shí)施例可包含下列四個主要方面中的一或多者。用以檢測鄰近的零區(qū)或小幅度區(qū)域的延伸脈絡(luò);脈絡(luò)散列;脈絡(luò)狀態(tài)產(chǎn)生脈絡(luò)狀態(tài)的增值更新'及脈絡(luò)導(dǎo)算包括幅度加法及限制的脈絡(luò)值的特定量化。進(jìn)ー步得出結(jié)論,依據(jù)本發(fā)明的實(shí)施例的ー個方面在于增值脈絡(luò)更新。依據(jù)本發(fā)明的實(shí)施例包含ー種用于脈絡(luò)更新的高效構(gòu)想,這避免工作草稿(例如,工作草稿5)的大規(guī)模的計(jì)算。更確切地說,在若干實(shí)施例中,使用簡單的移位運(yùn)算及邏輯運(yùn)算。簡單的脈絡(luò)更新顯著地便利了脈絡(luò)的運(yùn)算。在若干實(shí)施例中,脈絡(luò)與值(例如,已解碼頻譜值)的符號具非相依性。脈絡(luò)與值的符號的這種非相依性使脈絡(luò)變量的運(yùn)算復(fù)雜度降低。此構(gòu)想以忽略脈絡(luò)中的符號不會造成編碼效率顯著降級的發(fā)現(xiàn)為基礎(chǔ)。依據(jù)本發(fā)明的一方面,脈絡(luò)使用兩個頻譜值的和來導(dǎo)算。據(jù)此,用于脈絡(luò)儲存的內(nèi)存需求顯著降低。如此,在某些情況下,使用表示兩個頻譜值的和的一脈絡(luò)值可被視為是有利的。并且,在某些情況下,脈絡(luò)限制帶來顯著改良。在若干實(shí)施例中,除了使用兩個頻譜值的和來導(dǎo)算脈絡(luò)之外,脈絡(luò)陣列「q」的表項(xiàng)被限制于最大值「OxF」,而這又導(dǎo)致內(nèi)存需求受限。對脈絡(luò)陣列「q」的值加以限制帶來若干優(yōu)點(diǎn)。在若干實(shí)施例中,使用所謂的「小值旗標(biāo)」。在獲得脈絡(luò)變量c(也稱為數(shù)值當(dāng)前脈絡(luò)值)時,如果若干表項(xiàng)「q[l][i_3]」至「q[l][i_l]」的值很小,則設(shè)定一旗標(biāo)。據(jù)此,可以高效率執(zhí)行脈絡(luò)的運(yùn)算??色@得特別有意義的脈絡(luò)值(例如,數(shù)值當(dāng)前脈絡(luò)值)。在若干實(shí)施例中,使用算術(shù)終止機(jī)制。當(dāng)只余零值時,「ARITH_ST0P」機(jī)制允許算術(shù)編碼或解碼有效停止。據(jù)此,就復(fù)雜度而言,可以中等成本改良編碼效率。依據(jù)本發(fā)明的一方面,使用ニ表脈絡(luò)散列機(jī)制。脈絡(luò)的映射使用區(qū)間劃分算法評估表「ari_hash_m」并結(jié)合接續(xù)的對表「ari_lookup_m」的查找表評估來執(zhí)行。此算法比WD3算法更有效。后文將討論若干額外的細(xì)節(jié)。此處須注意表「ari_hash_m[600]」與「ari_lookup_m[600]」是兩個不同的表。第一個表用來將單ー脈絡(luò)索引(例如,數(shù)值脈絡(luò)值)映射至概率模型索引(例如,映射規(guī)則索引值),且第二個表用來將由「arith_hash_m口」中的脈絡(luò)索引確定界限的一組連續(xù)脈絡(luò)映射至單ー概率模型。須進(jìn)ー步注意,即使維度略為不同,表「arith_cf_msb[96][16]」也可用作表rari_cf_m[96][17]J的替代物。「ari_cf_m口口」與「ari_cf_msb口口」可指相同的表,原因在于概率模型的第17個系數(shù)總是零。當(dāng)計(jì)算用以儲存所述表所需的空間時,有時并不將其列入考慮。綜上所述,依據(jù)本發(fā)明的若干實(shí)施例提供ー種所提出的新的無噪聲編碼(編碼或解碼),其產(chǎn)生MPEGUSAC工作草稿(例如,MPEGUSAC工作草稿5)的修正。所述修正可見所附圖式及相關(guān)描述。作為結(jié)束語,須注意變量、陣列、函數(shù)等名稱的前綴詞「ari」及前綴詞「arith」可互換使用。權(quán)利要求1.一種用以基于ー編碼音頻信息(210;810)來提供一解碼音頻信息(212;812)的音頻解碼器(200;800),所述音頻解碼器包含一算木解碼器(230;820),用以基于多個頻譜值的算術(shù)編碼表示(222;821)而提供解碼頻譜值(232;822);及ー頻域至?xí)r域變換器(260;830),用以使用所述解碼頻譜值(232;822)來提供ー時域音頻表示(262;812),以獲得所述解碼音頻信息(212;812);其中所述算術(shù)解碼器(230;820)被配置成依據(jù)由ー數(shù)值當(dāng)前脈絡(luò)值(c)所描述的ー脈絡(luò)狀態(tài)來選擇一映射規(guī)則(297;cum_freq[]),所述映射規(guī)則描述ー碼值(value)到ー符元碼(symbol)的映射'及其中所述算術(shù)解碼器(230;820)被配置成依據(jù)多個先前已解碼頻譜值來確定所述數(shù)值當(dāng)前脈絡(luò)值(c),其中所述算術(shù)解碼器被配置成依據(jù)ー脈絡(luò)子區(qū)值(q[]□)來修改描述與ー或多個先前已解碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的ー數(shù)值先前脈絡(luò)值的數(shù)字表示(C),以獲得描述與一或多個欲解碼頻譜值相關(guān)聯(lián)的ー脈絡(luò)狀態(tài)的ー數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。2.如權(quán)利要求I所述的音頻解碼器,其中所述算術(shù)解碼器被配置成提供所述數(shù)值當(dāng)前脈絡(luò)值的所述數(shù)字表示,使得所述數(shù)字表示中具有不同數(shù)值權(quán)值的部分由不同的脈絡(luò)子區(qū)值(q口□)確定。3.如權(quán)利要求I或2所述的音頻解碼器,其中所述數(shù)字表示是ー單一數(shù)值當(dāng)前脈絡(luò)值的ニ進(jìn)制數(shù)字表示(C);及其中所述ニ進(jìn)制數(shù)字表示的第一比特子集由與一或多個先前已解碼頻譜值相關(guān)聯(lián)的第一脈絡(luò)子區(qū)值確定;及其中所述ニ進(jìn)制數(shù)字表示的第二比特子集由與一或多個先前已解碼頻譜值相關(guān)聯(lián)的第二脈絡(luò)子區(qū)值確定,其中所述第一比特子集的所述比特的數(shù)值權(quán)值與所述第二比特子集的所述比特的數(shù)值權(quán)值不同。4.如權(quán)利要求I至3中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成依據(jù)尚未被考慮用于導(dǎo)算出數(shù)值先前脈絡(luò)值的ー脈絡(luò)子區(qū)值,來修改所述數(shù)值先前脈絡(luò)值的數(shù)字表示或所述數(shù)值先前脈絡(luò)值的數(shù)字表示的一經(jīng)比特移位版本的信息比特的ー逐比特經(jīng)遮罩子集,以獲得所述數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。5.如權(quán)利要求I至4中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成比特移位所述數(shù)值先前脈絡(luò)值的數(shù)字表示,使得與不同脈絡(luò)子區(qū)值相關(guān)聯(lián)的比特子集的數(shù)值權(quán)值被修改,以獲得所述數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。6.如權(quán)利要求5所述的音頻解碼器,其中所述算術(shù)解碼器被配置成比特移位所述數(shù)值先前脈絡(luò)值的數(shù)字表示,使得與一脈絡(luò)子區(qū)值相關(guān)聯(lián)的ー比特子集被從所述數(shù)字表示中刪除,以獲得所述數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。7.如權(quán)利要求I至6中任ー權(quán)利要求所述的算術(shù)解碼器,其中所述算術(shù)解碼器被配置成依據(jù)ー脈絡(luò)子區(qū)值,修改一數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示或一數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示的一經(jīng)比特移位版本的第一比特子集,而不改變所述數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示或所述數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示的所述經(jīng)比特移位版本的第二比特子集,借由選擇性地修改與于所述先前已解碼頻譜值的解碼中被考慮而于欲使用所述數(shù)值當(dāng)前脈絡(luò)值來解碼的頻譜值的解碼中不被考慮的脈絡(luò)子區(qū)相關(guān)聯(lián)的一或多個比特子集,來從所述數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示導(dǎo)算出所述數(shù)值當(dāng)前脈絡(luò)值的ニ進(jìn)制數(shù)字表示。8.如權(quán)利要求I至7中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成提供所述數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示,使得所述數(shù)值當(dāng)前脈絡(luò)值的所述數(shù)字表示的最低有效比特的一子集描述ー脈絡(luò)子區(qū)值,所述脈絡(luò)子區(qū)值用于脈絡(luò)狀態(tài)由所述數(shù)值當(dāng)前脈絡(luò)值所界定的頻譜值的解碼,但所述脈絡(luò)子區(qū)值不用于脈絡(luò)狀態(tài)由ー數(shù)值隨后脈絡(luò)值所界定的頻譜值的解碼。9.如權(quán)利要求I至8中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成評估至少ー表,判定所述數(shù)值當(dāng)前脈絡(luò)值是與由所述表的一表項(xiàng)所描述的ー表脈絡(luò)值相同還是位于由所述表的表項(xiàng)所描述的一區(qū)間內(nèi)部,且依據(jù)所述至少一表的評估結(jié)果,而導(dǎo)算出一映射規(guī)則索引值,所述映射規(guī)則索引值描述一選定的映射規(guī)則。10.如權(quán)利要求I至9中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成檢查多個脈絡(luò)子區(qū)值的ー總和是否小于或等于ー預(yù)定總和臨界值,且依據(jù)所述檢查的結(jié)果而選擇性地修改所述數(shù)值當(dāng)前脈絡(luò)值。11.如權(quán)利要求10所述的音頻解碼器,其中所述算術(shù)解碼器被配置成檢查多個脈絡(luò)子區(qū)值的ー總和是否小于或等于ー預(yù)定總和臨界值,所述脈絡(luò)子區(qū)值與和欲使用由所述數(shù)值當(dāng)前脈絡(luò)值所界定的一脈絡(luò)狀態(tài)來解碼的ー或多個頻譜值相同的音頻內(nèi)容時間部分相關(guān)聯(lián),且所述脈絡(luò)子區(qū)值與和欲使用由所述數(shù)值當(dāng)前脈絡(luò)值所界定的一脈絡(luò)狀態(tài)來解碼的ー或多個頻譜值相比而言較低的頻率相關(guān)聯(lián),且依據(jù)所述檢查的結(jié)果而選擇性地修改所述數(shù)值當(dāng)前脈絡(luò)值。12.如權(quán)利要求I至11中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成加總第一復(fù)數(shù)個先前已解碼頻譜值的絕對值而獲得與所述第一復(fù)數(shù)個先前已解碼頻譜值相關(guān)聯(lián)的第一脈絡(luò)子區(qū)值,并加總第二復(fù)數(shù)個先前已解碼頻譜值的絕對值而獲得與所述第二復(fù)數(shù)個先前已解碼頻譜值相關(guān)聯(lián)的第二脈絡(luò)子區(qū)值。13.如權(quán)利要求I至12中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成限制所述脈絡(luò)子區(qū)值,使得所述脈絡(luò)子區(qū)值能夠使用所述數(shù)值先前脈絡(luò)值的數(shù)字表示的信息比特的一真子集來表示。14.如權(quán)利要求I至13中任ー權(quán)利要求所述的音頻解碼器,其中所述算術(shù)解碼器被配置成使用下列算法來更新所述數(shù)值先前脈絡(luò)值的ニ進(jìn)制數(shù)字表示c,而從所述數(shù)值先前脈絡(luò)值導(dǎo)算出所述數(shù)值當(dāng)前脈絡(luò)值cc=c4;if(i<i_max_l)c=c+(q[i+1]12);c=(c&OxFFFO);if(i>0)c=c+(q[l][i-1]);其中c為ー變數(shù),其在所述算法執(zhí)行前以ニ進(jìn)制表示表示所述數(shù)值先前脈絡(luò)值,而在所述算法執(zhí)行后以ニ進(jìn)制表示表示所述數(shù)值當(dāng)前脈絡(luò)值;其中「>>4」標(biāo)示「向右移位4比持」運(yùn)算;其中i為要使用所述數(shù)值當(dāng)前脈絡(luò)值解碼的ー或多個頻譜值的頻率索引;其中i_max標(biāo)示頻率索引總數(shù);其中q[i+1]標(biāo)示與一或多個先前已解碼頻譜值相關(guān)聯(lián)的ー脈絡(luò)子區(qū)值,上述先前已解碼頻譜值的頻率高于使用所述數(shù)值當(dāng)前脈絡(luò)值解碼的ー或多個頻譜值的頻率,且對應(yīng)所述音頻內(nèi)容的一先前時間部分;其中「〈〈12」標(biāo)示「向左移位12比持」運(yùn)算;其中「&OxFFFO」標(biāo)示與十六進(jìn)制值「OxFFFO」的布爾與運(yùn)算;及其中q[l][i-1]標(biāo)示與一或多個先前已解碼頻譜值相關(guān)聯(lián)的ー脈絡(luò)子區(qū)值,上述先前已解碼頻譜值的頻率低于使用所述數(shù)值當(dāng)前脈絡(luò)值解碼的ー或多個頻譜值的頻率,且對應(yīng)所述音頻內(nèi)容的一當(dāng)前時間部分。15.如權(quán)利要求14所述的音頻解碼器,其中所述算術(shù)解碼器被配置成如果(q[l][i-3]+q[l][i_2]+q[l][i_l])〈5;則通過以十六進(jìn)制值Ox10000來遞增C,而選擇性地修改所述數(shù)值當(dāng)前脈絡(luò)值的ニ進(jìn)制數(shù)字表示C,其中q[l][i-3]、q[l][i_2]、及q[l][i-1]為脈絡(luò)子區(qū)值,其各自與一或多個先前已解碼頻譜值相關(guān)聯(lián),上述先前已解碼頻譜值的頻率低于使用所述數(shù)值當(dāng)前脈絡(luò)值解碼的ー或多個頻譜值的頻率,且對應(yīng)所述音頻內(nèi)容的所述當(dāng)前時間部分。16.一種用以基于ー輸入音頻信息(110;710)而提供一編碼音頻信息的音頻編碼器(100;700),所述音頻編碼器包含一能量壓縮(energy-compacting)時域至頻域變換器(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)前脈絡(luò)值(C)所描述的ー脈絡(luò)狀態(tài)(S)來選擇描述將ー頻譜值或一頻譜值的最高有效比特平面的ー值映射至一碼值的一映射規(guī)則;及其中所述算術(shù)編碼器被配置成依據(jù)多個先前已編碼頻譜值來確定所述數(shù)值當(dāng)前脈絡(luò)值(C),其中所述算術(shù)編碼器被配置成依據(jù)ー脈絡(luò)子區(qū)值,修改描述與ー或多個先前已編碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的ー數(shù)值先前脈絡(luò)值的數(shù)字表示(C),來獲得描述與ー或多個欲編碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的ー數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。17.一種用以基于ー編碼音頻信息來提供一解碼音頻信息的方法,所述方法包含基于多個頻譜值的一算木式已編碼表示來提供解碼頻譜值;及使用所述解碼頻譜值提供ー時域音頻表示來獲得所述解碼音頻信息;其中提供所述多個解碼頻譜值包含依據(jù)由ー數(shù)值當(dāng)前脈絡(luò)值(C)所描述的ー脈絡(luò)狀態(tài)來選擇一映射規(guī)則,所述映射規(guī)則描述ー碼值(acod_m;value)到一符元碼(symbol)的映射,所述碼值表示呈ー編碼形式的一頻譜值或一頻譜值的一最高有效比特平面,所述符元碼表示呈ー解碼形式的一頻譜值或一頻譜值的一最高有效比特平面;及其中所述數(shù)值當(dāng)前脈絡(luò)值(C)依據(jù)多個先前已解碼頻譜值來確定;其中依據(jù)ー脈絡(luò)子區(qū)值來修改描述與ー或多個先前已解碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的ー數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與ー或多個欲解碼頻譜值相關(guān)聯(lián)的ー脈絡(luò)狀態(tài)的ー數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。18.—種用以基于ー輸入音頻信息而提供一編碼音頻信息的方法,所述方法包含使用能量壓縮時域至頻域變換來基于所述輸入音頻信息的ー時域表示而提供一頻域音頻表示,使得所述頻域音頻表示包含一頻譜值集合'及使用一可變長度碼字來算木式地編碼ー頻譜值或其預(yù)處理版本,其中一頻譜值或ー頻譜值的最高有效比特平面值被映射至ー碼值;其中描述將ー頻譜值或一頻譜值的最高有效比特平面值映射至一碼值的一映射規(guī)則依據(jù)由ー數(shù)值當(dāng)前脈絡(luò)值(C)所描述的ー脈絡(luò)狀態(tài)而選定'及其中所述數(shù)值當(dāng)前脈絡(luò)值(C)依據(jù)多個先前已編碼相鄰頻譜值而確定;其中依據(jù)ー脈絡(luò)子區(qū)值來修改描述與ー或多個先前已編碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的ー數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與ー或多個欲編碼頻譜值相關(guān)聯(lián)的ー脈絡(luò)狀態(tài)的ー數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。19.一種計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序于ー計(jì)算機(jī)上運(yùn)行時用以執(zhí)行如權(quán)利要求17或18所述的方法。全文摘要一種用以基于編碼音頻信息來提供解碼音頻信息的音頻解碼器包含用以基于多個頻譜值的算術(shù)編碼表示來提供多個解碼頻譜值的算術(shù)解碼器,及使用所述解碼頻譜值來提供時域音頻表示以獲得解碼音頻信息的頻域至?xí)r域變換器。算術(shù)解碼器被配置成依據(jù)由一數(shù)值當(dāng)前脈絡(luò)值所描述的一脈絡(luò)狀態(tài)來選擇描述將一碼值映射到一符元碼的映射規(guī)則。算術(shù)解碼器被配置成依據(jù)多個先前已解碼頻譜值來確定數(shù)值當(dāng)前脈絡(luò)值。算術(shù)解碼器還被配置成依據(jù)一脈絡(luò)子區(qū)值來修改描述與一或多個先前已解碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的一數(shù)值先前脈絡(luò)值的數(shù)字表示,以獲得描述與一或多個欲解碼頻譜值相關(guān)聯(lián)的一脈絡(luò)狀態(tài)的一數(shù)值當(dāng)前脈絡(luò)值的數(shù)字表示。一種音頻編碼器使用類似的構(gòu)想。文檔編號G10L19/02GK102859583SQ201180013281公開日2013年1月2日申請日期2011年1月11日優(yōu)先權(quán)日2010年1月12日發(fā)明者古拉米·??怂?馬庫斯·穆爾特斯,尼可拉斯·瑞特貝哈,維格納許·蘇巴拉曼,奧利佛·威斯,馬克·蓋耶爾,帕特里克·沃姆博得,克里斯汀·格里貝爾申請人:弗勞恩霍弗實(shí)用研究促進(jìn)協(xié)會