TWI476757B - 音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式 - Google Patents

音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式 Download PDF

Info

Publication number
TWI476757B
TWI476757B TW100100948A TW100100948A TWI476757B TW I476757 B TWI476757 B TW I476757B TW 100100948 A TW100100948 A TW 100100948A TW 100100948 A TW100100948 A TW 100100948A TW I476757 B TWI476757 B TW I476757B
Authority
TW
Taiwan
Prior art keywords
value
values
spectral
audio
spectral values
Prior art date
Application number
TW100100948A
Other languages
English (en)
Other versions
TW201145260A (en
Inventor
Guillaume Fuchs
Markus Multrus
Nikolaus Rettelbach
Vignesh Subbaraman
Oliver Weiss
Marc Gayer
Patrick Warmbold
Christian Griebel
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of TW201145260A publication Critical patent/TW201145260A/zh
Application granted granted Critical
Publication of TWI476757B publication Critical patent/TWI476757B/zh

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • G10L19/0208Subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Description

音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式 發明領域
依據本發明之實施例係有關於一種用以基於編碼音訊資訊而提供解碼音訊資訊之音訊解碼器,一種用以基於輸入音訊資訊而提供編碼音訊資訊之音訊編碼器,一種用以基於編碼音訊資訊而提供解碼音訊資訊之方法,一種用以基於輸入音訊資訊而提供編碼音訊資訊之方法及一種電腦程式。
依據本發明之實施例係有關於一種經改良之頻譜無雜訊編碼,其可用於音訊編碼器或音訊解碼器例如所謂之統一語音及音訊編碼器(USAC)。
發明背景
後文中將簡單解釋本發明背景以求有助於瞭解本發明及其優點。過去十年間大量努力致力於以良好位元率效率來以數位方式儲存及分配音訊內容。就此方面而言之一項重要成就為國際標準ISO/IEC 14496-3的定義。此一標準之部分3係有關音訊內容之編碼及解碼,而部分3之子部分4係有關一般音訊編碼。ISO/IEC 14496部分3,子部分4定義用於一般音訊內容之編碼及解碼的構想。此外,曾經提示進一步改良來改善品質及/或減少所要求的位元率。
依據該項標準所述構想,時域音訊信號係轉換成時頻表示型態。從時域變換成時頻域典型地係使用變換區塊進行,也標示為時域樣本之「框」。業已發現較佳係使用重疊框,其例如移位半框,原因在於重疊允許有效地避免(或至少減少)假影(artifact)。此外,業已發現須進行開窗來避免源自於此種時間上有限框處理上的假影。
藉由將輸入音訊信號之開窗部分從時域變換成時頻域,於許多情況下獲得能量緊密,使得若干頻譜值包含比多個其它頻譜值顯著更大的幅度。據此,於許多情況下,有較少數頻譜值其具有幅度係顯著高於頻譜值之幅度。導致能量緊密的時域至時頻域變換之一個典型實例乃所謂的修正離散餘弦變換(MDCT)。
頻譜值常係依據心理聲學模型來定標及量化,使得量化誤差對心理聲學上較為重要的頻譜值為較小,而對心理聲學上較不重要的頻譜值為較大。已定標及已量化頻譜值係經編碼來提供其位元率有效表示型態。
舉例言之,使用量化頻譜係數之所謂霍夫曼編碼係描述於國際標準ISO/IEC 14496-3:2005(E)部分3子部分4。
但業已發現頻譜值的編碼品質對所要求的位元率具有顯著影響。又,業已發現經常在可攜式消費者裝置實施的而因此廉價及耗電量低的音訊解碼器之複雜度係取決於用以編碼頻譜值的編碼法。
綜上所述,需要有一種用以編碼及解碼音訊內容之構想其係提供位元率效率與資源效率間之改良折衷。
發明概要
依據本發明之一實施例形成一種用以基於一編碼音訊資訊來提供一解碼音訊資訊之音訊解碼器。該音訊解碼器包含用以基於頻譜值之算術編碼表示型態而提供多個解碼頻譜值之一算術解碼器。該音訊解碼器也包含用以使用該等解碼頻譜值而提供一時域音訊表示型態來獲得該解碼音訊資訊之一頻域至時域變換器。該算術解碼器係組配來依據由一數值目前脈絡值所描述之一脈絡狀態而選擇描述一碼值對映至一符元碼(該符元碼典型地係描述一頻譜值或多個頻譜值或一頻譜值或多個頻譜值之最高有效位元平面)之一對映規則。該算術解碼器係組配來依據多個先前已解碼頻譜值而測定該數值目前脈絡值。該算術解碼器也係組配來基於先前已解碼頻譜值而獲得多個脈絡子區值及儲存該等脈絡子區值該算術解碼器係組配來依據所儲存的脈絡子區值而導算出與一或多個欲解碼之頻譜值相關聯之一數值目前脈絡值(或更精確言之,界定用以解碼一或多個欲解碼頻譜值之一脈絡)。該算術解碼器係組配來運算由多個先前已解碼頻譜值所形成之一向量的範數,來獲得與該等多個先前已解碼頻譜值相關聯之一共用脈絡子區值。
本發明之此一實施例係基於發現藉由運算由多個先前已解碼頻譜值所形成之一向量的範數,可獲得記憶體有效之脈絡子區資訊,原因在於由多個先前已解碼頻譜值所形成之此一向量的範數包含最具相關性的脈絡資訊。藉由形成範數,頻譜值符號典型地被拋棄。但發現頻譜值符號只包含對脈絡狀態的從屬影響(若有絲毫影響),因此可被刪除而未顯著有損脈絡子區值的有效性。此外,業已發現由多個先前已解碼頻譜值所形成之一向量的範數的形成,其典型地帶來平均效應,允許資訊數量的減少,同時仍然導致一脈絡值,其係以足夠準確度而反映出目前脈絡情況。要言之,藉由儲存其係基於由多個先前已解碼頻譜值(而非頻譜值本身)所形成之一向量的範數的運算之脈絡子區值,可將儲存呈多個脈絡子區值形式的脈絡所要求的記憶體維持小量。
於一較佳實施例,該算術解碼器係組配來加總多個先前已解碼頻譜值之絕對值,該等頻譜值較佳但非必要係與該頻域至時域變換器之相鄰頻率倉(frequency bin)及該音訊資訊之一共用時間部分相關聯,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。業已發現與範數運算相對應,加總多個先前已解碼頻譜值之絕對值乃運算有意義的脈絡子區值之特別有效方式。此處須注意運算一向量絕對值之和值係等於運算所謂的該向量之L-1範數。換言之,運算一向量絕對值之和值乃運算範數之實例。
於一較佳實施例,該算術解碼器係組配來量化多個先前已解碼頻譜值之該範數,其係與該頻域至時域變換器之相鄰頻率倉及該音訊資訊之一共用時間部分相關聯,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。量化該範數例如可包含以離散尺規(discrete scale)(例如絕對整數值之和)運算該範數,及也限制其結果。
於一較佳實施例,該算術解碼器係組配來量化多個先前已解碼頻譜值之該範數,該等頻譜值較佳但非必要地係與該頻域至時域變換器之相鄰頻率倉及該音訊資訊之一共用時間部分相關聯,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。業已發現該範數的量化可協助保持資訊量合理地小。舉例言之,量化可協助減少該脈絡子區值之表示型態所要求的位元數目,因此可協助提供具有少數位元之數值目前脈絡值。
於一較佳實施例,該算術解碼器係組配來加總使用一共用碼值編碼之多個先前已解碼頻譜值之絕對值,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。業已發現若對使用一共用碼值編碼的此等頻譜值形成一共用脈絡子區值,則脈絡的準確度為特高。據此,各脈絡子區值可與一碼值相對應,而當儲存該脈絡子區值時,其又獲致良好記憶體效率。
於一較佳實施例,該算術解碼器係組配來提供有符號的已解碼頻譜值給該頻域至時域變換器,及加總與該有符號的已解碼頻譜值相對應之絕對值,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。業已發現具有有符號的值作為輸入頻域至時域變換器之輸入值,就音訊品質而言為有利,原因在於如此允許考慮音訊內容重建時的相位。但也發現於脈絡子區值刪除相位的形成(亦即有關頻譜值之符號資訊),不會嚴重降級使用脈絡子區值所導算出之脈絡狀態資訊的準確度,原因在於於泰半情況下,相位資訊在不同頻率倉間並無強力相關性。
於一較佳實施例,該算術解碼器係組配來從先前已解碼頻譜值之絕對值之一和值而導算出一有限和值(或從多個先前已解碼之離散頻譜值所形成之一向量之範數而導算出一有限範數值),使得由該有限和值之一可能數值範圍係小於一可能和值範圍(或使得由該有限範數值之一可能數值範圍係小於一可能範數值範圍)。業已發現限制脈絡子區值,允許減少用以儲存脈絡子區值要求的位元數目。又,業已發現合理的限制脈絡子區值不會導致資訊之顯著損耗,原因在於對大於某些臨界值的頻譜值,脈絡不再有顯著改變。
於一較佳實施例,該算術解碼器係組配來依據與先前已解碼頻譜值之不同集合相關聯之多個脈絡子區值而獲得一數值目前脈絡值。此種構想允許有效地考慮用以解碼不同頻譜值(或頻譜值之重元組)之不同脈絡。藉由維持脈絡子區值之充分精細粒度,使得多個脈絡子區值之脈絡係用來獲得單一數值目前脈絡值,可能一有意義的但尚未通用的脈絡子區資訊,而在欲解碼頻譜值(或頻譜值之重元組)的解碼前不久,可從該資訊而導算出實際數值脈絡值。
於一較佳實施例,該算術解碼器係組配來獲得數值目前脈絡值之一數字表示型態,使得該數值先前脈絡值之該數字表示型態之一第一部分係由多個先前已解碼頻譜值之絕對值之一第一和值或有限和值(或更一般言之,第一範數值或有限範數值)測定,及使得該數值先前脈絡值之該數字表示型態之一第二部分係由多個先前已解碼頻譜值之絕對值之一第二和值或有限和值(或更一般言之,第二範數值或有限範數值)測定。業已發現可有效應用脈絡子區值於數值目前脈絡值的導算。更明確言之,業已發現如前文討論而運算之脈絡子區值極其適合組成數值目前脈絡值。業已發現如前文討論而運算之脈絡子區值極其適合測定該數值目前脈絡值之一數字表示型態的不同部分。據此,可達成脈絡子區值之有效運算及數值目前脈絡值之有效導算或更新二者。
於一較佳實施例,該算術解碼器係組配來獲得該數值目前脈絡值,使得多個先前已解碼頻譜值之絕對值之一第一和值或有限和值(或第一範數值或有限範數值),及多個先前已解碼頻譜值之絕對值之一第二和值或有限和值(或第二範數值或有限範數值)於該數值目前脈絡值中包含不同的權值。據此,將脈絡子區值所植基的該等頻譜值距目前欲解碼的一或多個頻譜值之不同距離可被列入考量。另外,藉由施加不同數值權值於數值目前脈絡值,脈絡子區值所植基的該等頻譜值與目前欲解碼的一或多個頻譜值間之不同相對位置可被列入考量。又,可藉此種構想協助數值目前脈絡值之迭代重複更新,原因在於數字表示型態之各部分的數值權值可容易藉施加移位運算而改變。
於一較佳實施例,該算術解碼器係組配來依據多個先前已解碼頻譜值之絕對值之一和值或有限和值(或一範數值或有限範數值)而修改描述與一或多個先前已解碼頻譜值相關聯之一脈絡狀態之一數值先前脈絡值之數字表示型態,來獲得描述與一或多個欲解碼頻譜值相關聯之一脈絡狀態之一數值目前脈絡值之數字表示型態。藉此方式,可獲得數值目前脈絡值之特別有效地更新,其中可避免數值目前脈絡值之完整重新運算。
於一較佳實施例,該算術解碼器係組配來檢查多個脈絡子區值之一和值是否小於或等於一預定和值臨界值,及依據該檢查結果而選擇性地修改該數值目前脈絡值,其中該等脈絡子區值各自係為相關聯之多個先前已解碼頻譜值之絕對值之一和值或有限和值(或一範數值或有限範數值)。據此,可檢測較小頻譜值之一延伸區的存在,及檢測結果可應用於脈絡的調整適應。由此種較小頻譜值之一延伸區的存在,可歸結使用該數值目前脈絡值欲解碼的頻譜值也較小的機率相當高。如此,脈絡可以特別有效方式調整適應。
於一較佳實施例,該算術解碼器係組配來考慮由與該音訊內容之一先前時間部分相關聯之先前已解碼頻譜值所界定之多個脈絡子區值,及也考慮由與該音訊內容之一目前時間部分相關聯之先前已解碼頻譜值所界定之至少一個脈絡子區值,來獲得與一或多個欲解碼頻譜值相關聯之及與該音訊內容之目前時間部分相關聯之一數值目前脈絡值,使得該先前時間部分之時間上相鄰的先前已解碼頻譜值與目前時間部分之頻率相鄰的先前已解碼頻譜值二者之環境係經考量來獲得該數值目前脈絡值。又,須注意前述脈絡子區值之導算維持用以儲存先前時間部分之該等脈絡子區值之記憶體需求合理地小。
於一較佳實施例,該算術解碼器係組配來儲存一脈絡子區值集合,對該音訊資訊之一給定時間部分,該等脈絡子區值各自為多個先前已解碼頻譜值之絕對值之一和值或有限和值(或更一般言之,由多個先前已解碼頻譜值所形成之一向量之一範數值);及使用該等脈絡子區值用以導算出一數值目前脈絡值,用以解碼在該音訊資訊之該給定時間部分後方之該音訊資訊之一時間部分的一或多個頻譜值,同時當導算該數值目前脈絡值時,留下對該音訊資訊之該給定時間部分之個別先前已解碼頻譜值未加考慮。據此,可提高數值目前脈絡值之運算效率。又,不再需要長時間儲存該等個別先前已解碼頻譜值。
於一較佳實施例,該算術解碼器係組配來分開地解碼一頻譜值之幅度值及符號。此種情況下,該算術解碼器係組配來當測定用以解碼欲解碼之一頻譜值的該數值目前脈絡值時,留下先前已解碼頻譜值之符號未予考慮。業已發現此種分開處理一頻譜值之幅度值及符號,不會導致編碼效率的嚴重降級,反而顯著減低運算複雜度。此外,業已發現基於由多個先前已解碼頻譜值所形成之一向量的範數之運算係極為適合用來與此種構想組合
本發明之一實施例形成一種用以基於一輸入音訊資訊而提供一編碼音訊資訊之音訊編碼器。該音訊編碼器包含一能量緊密型(energy-compacting)時域至頻域變換器其係用以基於該輸入音訊資訊之時域表示型態而提供一頻域音訊表示型態,使得該頻域音訊表示型態包含一頻譜值集合。該音訊編碼器也包含一算術編碼器其係組配來使用一可變長度碼字組而編碼一頻譜值或其前處理版本,或相當地,多個頻譜值或其前處理版本。該算術編碼器係組配來將一頻譜值或一頻譜值之最高有效位元平面值或相當地,多個頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值。該算術編碼器係組配來依據由一數值目前脈絡值所描述之一脈絡狀態而選擇描述將一頻譜值或一頻譜值之最高有效位元平面值對映至一碼值之一對映規則。該算術編碼器係組配來依據多個先前已編碼頻譜值而測定該數值目前脈絡值。該算術編碼器係組配來基於先前已編碼頻譜值而獲得多個脈絡子區值,儲存該等脈絡子區值,及依據所儲存的脈絡子區值而導算出與一或多個欲編碼之頻譜值相關聯之一數值目前脈絡值(或更明確言之,界定用以編碼欲編碼頻譜值之一脈絡)。該算術編碼器係組配來運算由多個先前已編碼頻譜值所形成之一向量的該範數,來獲得與該等多個先前已編碼頻譜值相關聯之一共用脈絡子區值。
該音訊編碼器係基於與該音訊解碼器之相同時序。又,該音訊編碼器可補充以就該音訊解碼器所討論的任一項特徵及功能性。
依據本發明之另一實施例,形成一種用以基於編碼音訊資訊而提供解碼音訊資訊之方法。
依據本發明之另一實施例,形成一種用以基於輸入音訊資訊而提供編碼音訊資訊之方法。
依據本發明之另一實施例,形成一種用以實施該等方法中之一者之電腦程式。
圖式簡單說明
第1a及1b圖顯示依據本發明之實施例,一種音訊編碼器之方塊示意圖;第2a及2b圖顯示依據本發明之實施例,一種音訊解碼器之方塊示意圖;第3圖顯示用以解碼頻譜值之演繹法則「values_decode()」之虛擬程式碼表示型態;第4圖顯示用於狀態計算之脈絡之示意表示型態;第5a圖顯示用以對映脈絡之演繹法則「arith_map_context()」之虛擬程式碼表示型態;第5b圖顯示用以對映脈絡之另一演繹法則「arith_map_context()」之虛擬程式碼表示型態;第5c圖顯示用以獲得脈絡狀態值之演繹法則「arith_get_context()」之虛擬程式碼表示型態;第5d圖顯示用以獲得脈絡狀態值之另一演繹法則「arith_get_context()」之虛擬程式碼表示型態;第5e圖顯示用以從一狀態值(或狀態變數)導算出累積頻率表指數值「pki」之演繹法則「arith_get_pk()」之虛擬程式碼表示型態;第5f圖顯示用以從一狀態值(或狀態變數)導算出累積頻率表指數值「pki」之另一演繹法則「arith_get_pk()」之虛擬程式碼表示型態;第5g(1)及5g(2)圖顯示用以從一可變長度碼字組算術式解碼之演繹法則「arith_decode()」之虛擬程式碼表示型態;第5h圖顯示用以從一可變長度碼字組算術式解碼之另一演繹法則「arith_decode()」之虛擬程式碼表示型態之第一部分;第5i圖顯示用以從一可變長度碼字組算術式解碼之另一演繹法則「arith_decode()」之虛擬程式碼表示型態之第二部分;第5j圖顯示用以從共用值m導算出頻譜值的絕對值a,b之演繹法則之虛擬程式碼表示型態;第5k圖顯示用以將解碼值a,b載入解碼頻譜值之一陣列之演繹法則之虛擬程式碼表示型態;第5l圖顯示用以基於解碼頻譜值之絕對值a,b而獲得脈絡子區值之演繹法則「arith_update_context()」之虛擬程式碼表示型態;第5m圖顯示用以填補解碼頻譜值陣列及脈絡子區值陣列的分錄之演繹法則「arith_finish()」之虛擬程式碼表示型態;第5n圖顯示用以從共用值m導算出頻譜值的絕對值a,b之另一演繹法則之虛擬程式碼表示型態;第5o圖顯示用以更新解碼頻譜值陣列及脈絡子區值陣列的分錄之演繹法則「arith_update_context()」之虛擬程式碼表示型態;第5p圖顯示用以填補解碼頻譜值陣列的分錄及脈絡子區值陣列的分錄之演繹法則「arith_save_context()」之虛擬程式碼表示型態;第5q圖顯示定義之圖說;第5r圖顯示定義之另一圖說;第6a圖顯示統一語音及音訊編碼器(USAC)原始資料區塊之語法表示型態;第6b圖顯示單一通道元素之語法表示型態;第6c圖顯示成對通道元素之語法表示型態;第6d圖之「ICS」控制資訊之語法表示型態;第6e圖顯示頻域通道串流之語法表示型態;第6f圖顯示算術式編碼頻譜資料之語法表示型態;第6g圖顯示用以解碼一頻譜值集合之語法表示型態;第6h圖顯示用以解碼一頻譜值集合之另一語法表示型態;第6i圖顯示資料元素及變數之圖說;第6j圖顯示資料元素及變數之另一圖說;第7圖顯示依據本發明之第一構面,一種音訊編碼器之方塊示意圖;第8圖顯示依據本發明之第一構面,一種音訊解碼器之方塊示意圖;第9圖顯示依據本發明之第一構面,一種數值目前脈絡值對映至對映法則指數值之線圖表示型態;第10圖顯示依據本發明之第二構面,一種音訊編碼器之方塊示意圖;第11圖顯示依據本發明之第二構面,一種音訊解碼器之方塊示意圖;第12圖顯示依據本發明之第三構面,一種音訊編碼器之方塊示意圖;第13圖顯示依據本發明之第三構面,一種音訊解碼器之方塊示意圖;第14a圖顯示用於狀態計算之脈絡當其用於依據USAC草擬標準之工作草稿4之示意表示型態;第14b圖顯示依據USAC草擬標準之工作草稿4,用於算術編碼方案之表格綜覽;第15a圖顯示用於狀態計算之脈絡當其用於依據本發明之實施例之示意表示型態;第15b圖顯示用於依據本發明之實施例用於算術編碼方案之表格綜覽;第16a圖顯示依據本發明,及依據USAC草擬標準之工作草稿5,及依據AAC(先進音訊編碼)霍夫曼編碼,用於無雜訊編碼方案之唯讀記憶體需求之線圖表示型態;第16b圖顯示依據本發明,及依據USAC草擬標準之工作草稿5之構想,總USAC解碼器資料之唯讀記憶體需求之線圖表示型態;第17圖顯示使用依據本發明之編碼方案,依據USAC草擬標準之工作草稿3或工作草稿5,用於無雜訊編碼之比較配置之示意表示型態;第18圖顯示依據USAC草擬標準之工作草稿3及依據本發明之實施例,藉USAC算術編碼器所製造的位元率之表格表示型態;第19圖顯示用於依據USAC草擬標準之工作草稿3之算術解碼器及依據本發明之實施例之算術解碼器,最小值及最大值位元儲存位階之表格表示型態;第20圖顯示依據USAC草擬標準之工作草稿3用於算術編碼器之不同版本用以解碼32千位元位元串流之複雜度數目之表格表示型態;第21(1)及21(2)圖顯示表「ari_lookup_m[600]」之內容之表格表示型態;第22(1)至22(4)圖顯示表「ari_hash_m[600]」之內容之表格表示型態;第23(1)至23(8)圖顯示表「ari_cf_m[96][17]」之內容之表格表示型態;及第24圖顯示表「ari_cf_r[]」之內容之表格表示型態。
較佳實施例之詳細說明 1. 依據第7圖之音訊編碼器
第7圖顯示依據本發明之實施例,一種音訊編碼器之方塊示意圖。音訊編碼器700係組配來接收輸入音訊資訊710,及基於此而提供編碼音訊資訊712。音訊編碼器包含能量緊密型時域至頻域變換器720,其係組配來基於輸入音訊資訊710之時域表示型態而提供頻域音訊表示型態722,使得頻域音訊表示型態722包含一頻譜值集合。音訊編碼器700也包含算術編碼器730其係組配來使用可變長度碼字組來編碼(形成該頻域音訊表示型態722之該頻譜值集合中之)頻譜值或其前處理版本,來獲得編碼音訊資訊712(其例如可包含多個可變長度碼字組)。
算術編碼器730係組配來依據脈絡狀態,將頻譜值或頻譜值之最高有效位元平面值對映至一碼值(亦即對映至一可變長度碼字組)。該算術編碼器係組配來依據(目前)脈絡狀態,選擇描述頻譜值或頻譜值之最高有效位元平面值對映至一碼值的對映規則。算術編碼器係組配來依據多個先前已編碼的(較佳但非必要相鄰的)頻譜值而測定目前脈絡狀態,或描述該目前脈絡狀態之一數值目前脈絡值。為了達成此項目的,算術編碼器係組配來評估一散列表,其分錄定義該數值脈絡值中之有效狀態值及該數值脈絡值之區間邊界二者,其中對映規則指數值係與屬有效狀態值之數值(目前)脈絡值個別相關聯,及其中共用對映規則指數值係與位在由該等區間邊界(其中該等區間邊界較佳係由該散列表之分錄所定義)所界限的一區間內部之不同數值(目前)脈絡值相關聯。
如圖可知,(頻域音訊表示型態722之)一頻譜值或一頻譜值之最高有效位元平面對映至一(編碼音訊資訊712之)碼值可使用對映規則742藉頻譜值編碼740執行。狀態追蹤器750可經組配來追蹤脈絡狀態。狀態追蹤器750提供描述目前脈絡狀態之資訊754。描述目前脈絡狀態之資訊754較佳可呈數值目前脈絡值形式。對映規則選擇器760係組配來選擇描述一頻譜值或一頻譜值之最高有效位元平面對映至一碼值之對映規則,例如累積頻率表。據此,對映規則選擇器760提供對映規則資訊742給頻譜值編碼740。對映規則資訊742可呈對映規則指數值形式,或依據對映規則指數值而選定之累積頻率表形式。對映規則選擇器760包含(或至少評估)散列表752,其分錄定義該數值脈絡值中之有效狀態值及該數值脈絡值之區間邊界二者,其中對映規則指數值係與屬有效狀態值之數值脈絡值個別地相關聯,及其中共用對映規則指數值係與位在由該等區間邊界所界限的一區間內部之不同數值脈絡值相關聯。散列表762係經評估來選擇對映規則,亦即來提供對映規則資訊742。
綜上所述,音訊編碼器700執行由時域至頻域變換器所提供的頻域音訊表示型態之算術編碼。該算術編碼為脈絡相依性,使得對映規則(例如累積頻率表)係依據先前已編碼的頻譜值而選定。據此,時間上及/或頻率上(或至少在預定環境內部)彼此相鄰及/或相鄰於目前編碼頻譜值(亦即在該目前編碼頻譜值之預定環境內部的頻譜值)的頻譜值被考慮在算術編碼來調整由算術編碼器所評估之機率分布。當選擇適當對映規則時,評估由狀態追蹤器750所提供的數值目前脈絡值754。因典型地不同對映規則之數目係顯著地小於數值目前脈絡值754的可能值數目,故對映規則選擇器760分配相同對映規則(例如由對映規則指數值所述相同對映規則)給比較上較大數目之不同數值脈絡值。雖言如此,特殊映規則須相關聯典型地特定頻譜組態(以特定數值脈絡值表示)來獲得良好編碼效率。
業已發現若單一散列表定義有效狀態值及數值(目前)脈絡值之區間邊界二者,則對映規則依據數值目前脈絡值的選擇可以特高的運算效率進行。業已發現此項機轉係經良好調整適應對映規則選擇的要求,原因在於有許多情況單一有效狀態值(或有效數值脈絡值)係嵌置於(一共用對映規則相關聯之)多個非有效狀態值之左側區間與(一共用對映規則相關聯之)多個非有效狀態值之右側區間之間。又,使用單一散列表之機制,其分錄定義有效狀態值及數值(目前)脈絡值之區間邊界二者,可有效處理不同情況,其中例如有兩個相鄰的非有效狀態值區間(也標示為非有效數值脈絡值),其間不含有效狀態值。由於表存取數目維持少數,故可達成特高運算效率。舉例言之,單一迭代重複表搜尋在大部分實施例即足以找出該數值目前脈絡值是否等於任何有效狀態值,或該數值目前脈絡值所在的非有效狀態值區間。結果,既費時又耗能的表存取次數可維持少次。如此,使用散列表762之對映規則選擇器760就運算複雜度而言,可考慮為特別有效的對映規則選擇器,同時允許獲得良好編碼效率(就位元率而言)。
有關從數值目前脈絡值754導算出對映規則資訊742之進一步細節容後詳述。
2.依據第8圖之音訊解碼器
第8圖顯示一種音訊解碼器800之方塊示意圖。音訊解碼器800係組配來接收編碼音訊資訊810,及基於此而提供解碼音訊資訊812。音訊解碼器800包含算術解碼器820,其係組配來基於頻譜值之算術編碼表示型態821而提供多個頻譜值822。音訊解碼器800也包含頻域至時域變換器830,其係組配來接收解碼頻譜值822,及提供時域音訊表示型態812,其可使用解碼頻譜值822組成解碼音訊資訊來獲得一解碼音訊資訊812。
算術解碼器820包含頻譜值測定器824,其係組配來將頻譜值之算術編碼表示型態821之碼值對映至表示解碼頻譜值中之一者或多者的符元碼,或頻譜值中之一者或多者的至少一部分(例如最高有效位元平面)。頻譜值測定器824可經組配來依據對映規則執行對映,對映規則其係藉對映規則資訊828a描述。對映規則資訊828a例如可呈對映規則指數值形式,或選定之累積頻率表(例如依據對映規則指數值選擇)。
算術解碼器820係組配來選擇對映規則(例如累積頻率表),其係依據脈絡狀態(其可由脈絡狀態資訊826a所描述),描述碼值(由頻譜值之算術編碼表示型態821所描述)對映至符元碼(描述一或多個頻譜值或其最高有效位元平面)。算術解碼器820係組配來依據多個先前已解碼的頻譜值而測定目前脈絡狀態(由數值目前脈絡值所描述)。為了達成此項目的,可使用狀態追蹤器826,其接收先前已解碼的頻譜值,及基於此而提供描述目前脈絡狀態的數值目前脈絡值826a。
算術解碼器也係組配來評估散列表829,其分錄定義該數值脈絡值中之有效狀態值及該數值脈絡值之區間邊界二者來選定對映規則,其中對映規則指數值係與屬有效狀態值之數值脈絡值個別地相關聯,及其中共用對映規則指數值係與位在由該等區間邊界所界限的一區間內部之不同數值脈絡值相關聯。散列表829之評估例如可使用散列表評估器執行,其可為對映規則選擇器828之一部分。據此,對映規則資訊828a例如係呈對映規則指數值係基於描述目前脈絡狀態的數值目前脈絡值826a獲得。對映規則選擇器828例如可依據散列表829的評估結果而測定對映規則資訊828a。另外,散列表829的評估可直接提供對映規則指數值。
有關音訊信號解碼器800之功能,須注意算術解碼器820係組配來選擇對映規則(例如累積頻率表),其一般而言良好適應於欲解碼的頻譜值,原因在於對映規則係依據目前脈絡狀態(例如藉數值目前脈絡值所描述)而選定,而其又係依據多個先前已解碼的頻譜值而測定。據此,可探討欲解碼相鄰頻譜值間之相依性。此外,算術解碼器820可使用對映規則選擇器828有效地實施,在運算複雜度、表大小與編碼效率間有良好折衷。藉由評估(單一)散列表829,其分錄描述有效狀態值及非有效狀態值區間之區間邊界二者,單一迭代重複表搜尋可能足以從該數值目前脈絡值826a導算出對映規則資訊828a。據此,可能將較大數目之不同可能數值(目前)脈絡值對映至較小數目之不同對映規則指數值。如前文說明,藉由使用散列表829可探討下述發現:於許多情況下,單一經分離的有效狀態值(有效脈絡值)係嵌置在非有效狀態值(非有效脈絡值)之左側區間與非有效狀態值(非有效脈絡值)之右側區間之間,其中比較左側區間之狀態值(脈絡值)與右側區間之狀態值(脈絡值)時,不同的對映規則指數值係與不同的有效狀態值(有效脈絡值)相關聯。但散列表829的使用也良好適合用於其中數值狀態值之二區間緊鄰而無有效狀態值介於其間的情況。
總結而言,當依據目前脈絡狀態(或依據描述目前脈絡狀態之數值目前脈絡值)選擇對映規則(或當提供對映規則指數值)時,評估散列表829的對映規則選擇器828獲得特佳效率,原因在於散列機制良好調整適應於音訊解碼器的典型脈絡概要。
進一步細節容後詳述。
3. 依據第9圖之脈絡值散列機制
後文中,將揭示脈絡值散列機制,其可於對映規則選擇器760及/或對映規則選擇器828實施。散列表762及/或散列表829可用來實現該脈絡值散列機制。
現在參考第9圖,顯示數值目前脈絡值散列概要,進一步細節容後詳述。於第9圖之線圖表示型態中,橫座標910描述數值目前脈絡值(亦即數值脈絡值)之值。縱座標912描述對映規則指數值。記號914係指示非有效數值脈絡值(描述非有效狀態)之對映規則指數值。記號916係指示用於描述個別(實際)有效狀態的「個別」(實際)有效數值脈絡值之對映規則指數值。記號916係指示用於描述「不當」有效狀態的「不當」數值脈絡值之對映規則指數值,其中「不當」有效狀態乃其相關聯之對映規則指數值係與非有效數值脈絡值之相鄰區間中之一者的對映規則指數值相同之一有效狀態。
如圖可知,散列表分錄「ari_hash_m[il]」描述具有數值脈絡值c1之個別(實際)有效狀態。如圖可知,對映規則指數值mriv1係與具有數值脈絡值c1之個別(實際)有效狀態相對應。據此,數值脈絡值c1及對映規則指數值mriv1可由散列表分錄「ari_hash_m[il]」所描述。數值脈絡值之區間932係由數值脈絡值c1所界限,其中數值脈絡值c1並不屬於區間932,使得區間932之最大值係等於c1-1。對映規則指數值mriv4(其係與mriv1不同)係與區間932之數值脈絡值相關聯。對映規則指數值mriv4例如可由額外表「ari_lookup_m」之表分錄「ari_lookup_m[il-1]」描述。
此外,對映規則指數值mriv2可與位在區間934內部之數值脈絡值相關聯。區間934下邊界係由數值脈絡值c1決定,其為有效數值脈絡值,其中該數值脈絡值c1不屬於區間932。據此,區間934的最小值係等於c1+1(假設整數數值脈絡值)。區間934之另一邊界係由數值脈絡值c2決定,其中該數值脈絡值c2不屬於區間934,使得區間934的最大值係等於c2-1。數值脈絡值c2為所謂「不當」數值脈絡值,其係藉散列表分錄「ari_hash_m[i2]」描述。舉例言之,對映規則指數值mriv2可與數值脈絡值c2相關聯,使得與「不當」有效數值脈絡值c2相關聯之數值脈絡值係等於由該數值脈絡值c2所界限的區間934相關聯之對映規則指數值。此外,數值脈絡值之區間936也由數值脈絡值c2所界限,其中該數值脈絡值c2不屬於區間936,使得區間936的最小值係等於c2+1。典型地係與對映規則指數值mriv2不同的對映規則指數值mriv3係與區間936之數值脈絡值相關聯。
如圖可知,與數值脈絡值區間932相關聯之對映規則指數值mriv4可藉表「ari_lookup_m」之表分錄「ari_lookup_m[i1-1]」描述;與數值脈絡值區間934相關聯之對映規則指數值mriv2可藉表「ari_lookup_m」之表分錄「ari_lookup_m[i1]」描述;及對映規則指數值mriv3可藉表「ari_lookup_m」之表分錄「ari_lookup_m[i2]」描述。於此處列舉之實例中,散列表指數值i2可比散列表指數值i1大1。
如由第9圖可知,對映規則選擇器760或對映規則選擇器828可接收數值目前脈絡值764、826a,及經由評估表「ari_hash_m」之分錄而判定數值目前脈絡值是否為有效狀態值(而與其是否為「個別」有效狀態值或「不當」有效狀態值無關),或該數值目前脈絡值是否位在由(「個別」或「不當」)有效狀態c1、c2所界限的區間932、934、936中之一者內部之數值目前脈絡值。檢查該數值目前脈絡值是否等於數值脈絡值c1、c2,以及評估該數值目前脈絡值係位在區間932、934、936中之哪一者(於該數值目前脈絡值係不等於有效狀態值之情況下),皆可使用單一共用散列表搜尋執行。
此外,散列表「ari_hash_m」的評估可用來獲得散列表指數值(例如i-1、i1或i2)。如此,對映規則選擇器760、828可經組配來藉由評估單一散列表762、829(例如散列表「ari_hash_m」),即可獲得標示有效狀態值(例如c1或c2)及/或區間(932、934、936)及該數值目前脈絡值是否為有效脈絡值(也稱作有效狀態值)與否的資訊之散列表指數值(例如i-1、i1或i2)。
此外,若在散列表762、829,「ari_hash_m」的評估中發現數值目前脈絡值並非「有效」脈絡值(或「有效」狀態值),則得自散列表(「ari_hash_m」)評估之散列表指數值(例如i-1、i1或i2)可用來獲得與數值脈絡值之區間932、934、936相關聯之對映規則指數值。舉例言之,散列表指數值(例如i-1、i1或i2)可用來表示額外散列表(例如「ari_hash_m」)之一分錄,其係描述在該數值目前脈絡值所在的區間932、934、936內部與該區間相關聯之對映規則指數值。
有關進一步細節,可參考後文演繹法則「arith_get_pk」之細節討論(其中對此種演繹法則「arith_get_pk()」有不同選項,其實例係顯示於第5e圖及第5f圖)。
此外,須注意區間大小可依案例而異。於某些情況下,數值脈絡值之一區間包含單一數值脈絡值。但於許多情況下,一區間可包含多個數值脈絡值。
4.依據第10圖之音訊編碼器
第10圖顯示依據本發明之實施例,一種音訊編碼器1000之方塊示意圖。依據第10圖之音訊編碼器1000係類似依據第7圖之音訊編碼器700,因而第7圖及第10圖之相同信號及裝置係標示以相同的元件符號。
音訊編碼器1000係組配來接收一輸入音訊資訊710,及基於此而提供一編碼音訊資訊712。該音訊編碼器1000包含能量緊密型時域至頻域變換器720,其係組配來基於輸入音訊資訊710之時域表示型態而提供頻域表示型態722,使得該頻域表示型態722包含一頻譜值集合。該音訊編碼器1000也包含一算術編碼器1030,其係組配來使用可變長度碼字組來編碼(形成頻域表示型態722之頻譜值集合中之)一頻譜值或其前處理版本而獲得編碼音訊資訊712(其例如可包含多個可變長度碼字組)。
該算術編碼器1030係組配來依據脈絡值而將一頻譜值,或多個頻譜值,或一頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值(亦即對映至一可變長度碼字組)。該算術編碼器1030係組配來選擇一對映規則,其描述依據脈絡值而將一頻譜值,或多個頻譜值,或一頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值。該算術編碼器係組配來依據多個先前編碼(較佳但非必要相鄰)頻譜值而測定目前脈絡狀態。為了達成此項目的,算術編碼器係組配來依據脈絡子區值而修改描述與一或多個先前編碼頻譜值相關聯之脈絡狀態(例如選擇相對應對映規則)的數值先前脈絡值之數字表示型態,來獲得描述與一或多個欲編碼頻譜值相關聯之脈絡狀態(例如選擇相對應對映規則)的數值目前脈絡值之數字表示型態。
如圖可知,將一頻譜值,或多個頻譜值,或一頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值可使用由對映規則資訊742所描述之對映規則而藉頻譜值編碼740執行。狀態追蹤器750可經組配來追蹤脈絡狀態。狀態追蹤器750可經組配來依據脈絡子區值而修改描述與一或多個先前編碼頻譜值之編碼相關聯之脈絡狀態之數值先前脈絡值之一數字表示型態,來獲得描述與一或多個欲編碼頻譜值相關聯之脈絡狀態的數值目前脈絡值之數字表示型態。數值先前脈絡值之數字表示型態的修改例如可藉數字表示型態修改器1052進行,該數字表示型態修改器1052接收數值先前脈絡值及一或多個脈絡子區值,及提供數值目前脈絡值。據此,狀態追蹤器1050例如以數值目前脈絡值形式提供描述目前脈絡狀態之資訊754。對映規則選擇器1060可選擇對映規則,例如累積頻率表,其描述一頻譜值,或多個頻譜值,或一頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值的對映關係。據此,對映規則選擇器1060提供對映規則資訊742給頻譜值編碼740。
於某些情況下,須注意狀態追蹤器1050可與狀態追蹤器750或狀態追蹤器826相同。也須注意於某些情況下,對映規則選擇器1060可與對映規則選擇器760或對映規則選擇器828相同。
綜上所述,音訊編碼器1000執行由時域至頻域變換器所提供的頻域音訊表示型態之算術編碼。算術編碼為脈絡相依性,因而對映規則(例如累積頻率表)係依據先前已編碼的頻譜值選擇。據此,時間上及/或頻率上(或至少在預定環境內部)彼此相鄰及/或相鄰於目前編碼頻譜值(亦即在該目前編碼頻譜值之預定環境內部的頻譜值)的頻譜值被考慮在算術編碼來調整由算術編碼所評估之機率分布。
當測定數值目前脈絡值時,描述與一或多個先前已編碼的頻譜值相關聯之脈絡狀態的數值先前脈絡值之數字表示型態係依據脈絡子區值係經修改,來獲得描述與一或多個欲編碼頻譜值相關聯之脈絡狀態的數值目前脈絡值之數字表示型態。此一辦法避免完全重新運算數值目前脈絡值,習知辦法中完全重新運算耗用大量資源。有大量多種可能存在用以修改數值先前脈絡值之數字表示型態,包括數值先前脈絡值之數字表示型態之重新定標的組合;脈絡子區值或由其導算值之加至數值先前脈絡值之數字表示型態或加至已處理的數值先前脈絡值之數字表示型態;依據脈絡子區值而置換部分數值先前脈絡值之數字表示型態(而非全部數字表示型態)等。如此,數值目前脈絡值之數字表示型態係基於數值先前脈絡值之數字表示型態獲得,也係基於至少一個脈絡子區值獲得,其中典型地執行運算組合來組合數值先前脈絡值與脈絡子區值,諸如加法運算、減法運算、乘法運算、除法運算、布林(Boolean)及閘(AND)運算、布林或閘(OR)運算、布林反及閘(NAND)運算、布林反或閘(NOR)運算、布林否定運算、補數運算或移位運算中之二或多種運算。據此,當從數值先前脈絡值導算數時,典型地至少部分數值先前脈絡值之數字表示型態係維持不變(除了選擇性地移位至不同位置外)。相反地,數值先前脈絡值之數字表示型態之其它部分係依一或多個脈絡子區值而改變。如此,可以較少運算努力而獲得數值目前脈絡值,同時避免完全重新運算數值目前脈絡值。
如此,可獲得有意義的數值目前脈絡值,其係極其適合由對映規則選擇器1060使用。
結果,藉由維持脈絡計算的夠簡單,可達成有效編碼。
5. 依據第11圖之音訊解碼器
第11圖顯示音訊解碼器1100之方塊示意圖。音訊解碼器1100係類似依據第8圖之音訊解碼器800,因而相同信號、裝置及功能係標示以相同元件符號。
音訊解碼器1100係組配來接收音訊資訊810,及基於此而提供已解碼之音訊資訊812。音訊解碼器1100包含算術解碼器1120,其係組配來基於頻譜值之算術編碼表示型態821而提供多個已解碼的頻譜值822。音訊解碼器1100也包含頻域至時域變換器830,其係組配來接收解碼頻譜值822,及提供時域音訊表示型態812,其可使用解碼頻譜值822組成解碼音訊資訊而獲得解碼音訊資訊812。
算術解碼器1120包含頻譜值測定器824,其係組配來將頻譜值之算術編碼表示型態821之碼值對映至表示解碼頻譜值中之一者或多者的符元碼,或解碼頻譜值中之一者或多者的至少一部分(例如最高有效位元平面)。頻譜值測定器824可經組配來依據對映規則執行對映,對映規則其係藉對映規則資訊828a描述。對映規則資訊828a例如可包含對映規則指數值形式,或可包含累積頻率表分錄之一選定集合。
算術解碼器1120係組配來選擇對映規則(例如累積頻率表),其係依據脈絡狀態(其可由脈絡狀態資訊1126a所描述),描述碼值(由頻譜值之算術編碼表示型態821所描述)對映至符元碼(描述一或多個頻譜值)。脈絡狀態資訊1126a可呈數值目前脈絡值形式。算術解碼器1120係組配來依據多個先前已解碼的頻譜值822而測定目前脈絡狀態。為了達成此項目的,可使用狀態追蹤器1126,其接收描述先前已解碼的頻譜值之資訊。算術解碼器係組配來依據脈絡子區值,修改描述與一或多個先前已解碼的頻譜值相關聯之一脈絡狀態的數值先前脈絡值之數字表示型態,來獲得描述與欲解碼頻譜值相關聯之脈絡狀態的數值目前脈絡值之數字表示型態。數值先前脈絡值之數字表示型態之修改例如可藉數字表示型態修改器1127執行,該修改器為狀態追蹤器1126之一部分。據此,獲得目前脈絡狀態資訊1126a例如係呈數值目前脈絡值形式。對映規則的選擇可藉對映規則選擇器1128執行,該選擇器係從目前脈絡狀態資訊1126a導算出對映規則資訊828a,及其提供對映規則資訊828a給頻譜值測定器824。
有關音訊信號解碼器1100之功能,須注意算術解碼器1120係組配來選定一對映規則(例如累積頻率表),其一般而言良好適應於欲解碼的頻譜值,原因在於對映規則係依據目前脈絡狀態而選定,而其又係依據多個先前已解碼的頻譜值而測定。據此,可探討欲解碼的相鄰頻譜值間之統計相依性。
此外,藉由依據一脈絡子區值,修改描述與一或多個先前已解碼的頻譜值相關聯之一脈絡狀態的數值先前脈絡值之數字表示型態,來獲得描述與欲解碼頻譜值相關聯之脈絡狀態的數值目前脈絡值之數字表示型態,以較少的運算努力可能獲得有關目前脈絡狀態之有意義資訊,其極為適合用以對映至對映規則指數值。藉由維持至少部分數值先前脈絡值之數字表示型態(可能係呈位元移位版本或定標版本),同時依據脈絡子區值,更新數值先前脈絡值之數字表示型態之另一部分,該等脈絡子區值尚未被考慮在數值先前脈絡值但應該被考慮在數值目前脈絡值,可維持導算出數值目前脈絡值的運算次數合理地少數。又,可能探討下述事實:用以解碼相鄰頻譜值的脈絡典型地為相似或相關。舉例言之,用以解碼第一頻譜值(或第一多個頻譜值)之脈絡係取決於先前已解碼的頻譜值之第一集合。用以解碼其係相鄰於第一頻譜值(或第一多個頻譜值)的第二頻譜值(或第二多個頻譜值)之脈絡係取決於先前已解碼的頻譜值之第二集合。因第一頻譜值與第二頻譜值係假設為相鄰(例如就相關聯之頻率而言),決定第一頻譜值編碼之脈絡的第一頻譜值集合可與其決定第二頻譜值解碼之脈絡的第二頻譜值集合包含若干重疊。據此,容易瞭解用於第二頻譜值解碼之脈絡狀態包括與用於第一頻譜值解碼之脈絡狀態之若干相關性。脈絡導算亦即數值目前脈絡值導算之運算效率可藉由探討此等相關性而達成。業已發現用於相鄰頻譜值解碼之脈絡狀態資訊間(亦即由數值先前脈絡值所描述之脈絡狀態與由數值目前脈絡值所描述之脈絡狀態間)的相關性,可藉由只修改與脈絡子區值具相依性但未考慮用於數值先前脈絡值之導算的數值先前脈絡值之該等部分,及藉由從該數值先前脈絡值而導算數值目前脈絡值而有效探討。
總結而言,此處所述構想允許導算數值目前脈絡值時特佳的運算效率。
進一步細節容後詳述。
6. 依據第12圖之音訊編碼器
第12圖顯示依據本發明之實施例,一種音訊編碼器之方塊示意圖。依據第12圖之音訊編碼器1200係類似依據第7圖之音訊編碼器700,故相同裝置、信號及功能係標示以相同元件符號。
音訊編碼器1200係組配來接收輸入音訊資訊710,及基於此而提供編碼音訊資訊712。音訊編碼器1200包含能量緊密型時域至頻域變換器720,其係組配來基於輸入音訊資訊710之時域表示型態而提供頻域音訊表示型態722,使得頻域音訊表示型態722包含一頻譜值集合。音訊編碼器1200也包含算術編碼器1230其係組配來使用可變長度碼字組來編碼(形成該頻域音訊表示型態722之該頻譜值集合中之)頻譜值或多個頻譜值或其前處理版本,來獲得編碼音訊資訊712(其例如可包含多個可變長度碼字組)。
算術編碼器1230係組配來依據脈絡狀態,將頻譜值或多個頻譜值、或頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值(亦即對映至一可變長度碼字組)。該算術編碼器1230係組配來依據脈絡狀態,選擇描述頻譜值或多個頻譜值、或頻譜值或多個頻譜值之最高有效位元平面值對映至一碼值的對映規則。算術編碼器係組配來依據多個先前已編碼的(較佳但非必要相鄰的)頻譜值而測定目前脈絡狀態。為了達成此項目的,算術編碼器係組配來基於先前已編碼的頻譜值而獲得多個脈絡子區值,儲存該等脈絡子區值,及依據所儲存的脈絡子區值而導算出與一或多個欲編碼頻譜值相關聯之一數值目前脈絡值。此外,該算術編碼器係組配來運算由多個先前已編碼的頻譜值所形成之一向量的範數,來獲得與多個先前已編碼的頻譜值相關聯之一共用脈絡子區值。
如圖可知,頻譜值或多個頻譜值、或頻譜值或多個頻譜值之最高有效位元平面值對映至碼值可藉頻譜值編碼740,使用由對映規則資訊742所描述之對映規則執行。狀態追蹤器1250可經組配來追蹤脈絡狀態,及可包含脈絡子區值運算器1252來運算由多個先前已編碼的頻譜值所形成之向量的範數,而來獲得與多個先前已編碼的頻譜值相關聯之一共用脈絡子區值。狀態追蹤器1250也較佳係組配來依據由脈絡子區值運算器1252所執行的脈絡子區值運算結果而測定目前脈絡狀態。據此,狀態追蹤器1250提供描述目前脈絡狀態之資訊1254。對映規則選擇器1260可選擇描述頻譜值或多個頻譜值、或頻譜值或多個頻譜值之最高有效位元平面值對映至碼值之對映規則,例如累積頻率表。據此,對映規則選擇器1260提供對映規則資訊742給頻譜編碼740。
綜上所述,音訊編碼器1200執行由時域至頻域變換器720所提供的頻域音訊表示型態之算術編碼。該算術編碼為脈絡相依性,使得對映規則(例如累積頻率表)係依據先前已編碼的頻譜值而選定。據此,時間上及/或頻率上(或至少在預定環境內部)彼此相鄰及/或相鄰於目前編碼頻譜值(亦即在該目前編碼頻譜值之預定環境內部的頻譜值)的頻譜值被考慮在算術編碼來調整由算術編碼器所評估之機率分布。
為了提供數值目前脈絡值,與多個先前已編碼的頻譜值相關聯之脈絡子區值係基於由多個先前已編碼的頻譜值所形成之向量的範數之運算而獲得。數值目前脈絡值之測定結果係應用於目前脈絡狀態的選擇,亦即應用於對映規則的選擇。
藉由運算由多個先前已編碼的頻譜值所形成之一向量的範數,可獲得描述一或多個欲編碼頻譜值之脈絡之一部分的有意義資訊,其中先前已編碼的頻譜值之一向量之範數典型地係以較少數位元表示。如此,需要儲存供後來用於數值目前脈絡值的導算之脈絡資訊量可藉由應用前文討論之脈絡子區值運算辦法而維持夠少。業已發現先前已編碼的頻譜值之一向量之範數典型地包含有關脈絡狀態之最有效資訊。相反地,業已發現先前已編碼的頻譜值符號典型地包含對脈絡狀態之附屬影響,因而合理地忽略先前已編碼的頻譜值符號來減少儲存供後來使用的資訊量。又,業已發現先前已編碼的頻譜值之一向量之範數運算乃用以導算出一脈絡子區值的合理辦法,原因在於藉範數運算典型獲得平均效果,留下有關脈絡狀態之最重要資訊不受影響。摘要言之,藉脈絡子區值運算器1252執行的脈絡子區值運算允許提供緊密型脈絡子區值資訊供儲存及後來再度使用,其中儘管資訊量減少,仍然保有有關脈絡狀態之最相關資訊。
據此,可達成輸入音訊資訊710的有效編碼,同時維持藉算術編碼器1230的運算努力及儲存的資料量夠小。
7.依據第13圖之音訊解碼器
第13圖顯示音訊解碼器1300之方塊示意圖。音訊解碼器1300係類似依據第8圖之音訊解碼器800及依據第11圖之音訊解碼器1100,因而相同裝置、信號及功能係標示以相同元件符號。
音訊解碼器1300係組配來接收音訊資訊810,及基於此而提供已解碼之音訊資訊812。音訊解碼器1300包含算術解碼器1320,其係組配來基於頻譜值之算術編碼表示型態821而提供多個已解碼的頻譜值822。音訊解碼器1300也包含頻域至時域變換器830,其係組配來接收解碼頻譜值822,及提供時域音訊表示型態812,其可使用解碼頻譜值822組成解碼音訊資訊而獲得解碼音訊資訊812。
算術解碼器1320包含頻譜值測定器824,其係組配來將頻譜值之算術編碼表示型態821之碼值對映至表示解碼頻譜值中之一者或多者的符元碼,或解碼頻譜值中之一者或多者的至少一部分(例如最高有效位元平面)。頻譜值測定器824可經組配來依據對映規則執行對映,對映規則其係藉對映規則資訊828a描述。對映規則資訊828a例如可包含對映規則指數值形式,或可包含累積頻率表分錄之一選定集合。
算術解碼器1320係組配來選擇對映規則(例如累積頻率表),其係依據脈絡狀態(其可由脈絡狀態資訊1326a所描述),描述碼值(由頻譜值之算術編碼表示型態821所描述)對映至符元碼(描述一或多個頻譜值)。算術解碼器1320係組配來依據多個先前已解碼的頻譜值822而測定目前脈絡狀態。為了達成此項目的,可使用狀態追蹤器1326,其接收描述先前已解碼的頻譜值之資訊。算術解碼器也係組配來基於先前已編碼的頻譜值而獲得多個脈絡子區值,及儲存該等脈絡子區值。該算術解碼器係組配來依據所儲存之脈絡子區值,而導算出與一或多個欲編碼頻譜值相數值目前脈絡值。算術解碼器1320係組配來運算先前已編碼的頻譜值之一向量之範數,而來獲得與多個先前已編碼的頻譜值相關聯之一共用脈絡子區值。
運算先前已編碼的頻譜值之一向量之範數而獲得與多個先前已編碼的頻譜值相關聯之一共用脈絡子區值,例如可藉脈絡子區值運算器1327執行,該運算器為狀態追蹤器1326之一部分。據此,目前脈絡狀態資訊1326a係基於脈絡子區值獲得,其中該狀態追蹤器1326較佳係依據所儲存之脈絡子區值而提供與一或多個欲編碼頻譜值相關聯之數值目前脈絡值。對映規則的選擇可藉對映規則選擇器1128執行,該選擇器係從目前脈絡狀態資訊1126a導算出對映規則資訊828a,及其提供對映規則資訊828a給頻譜值測定器824。
有關音訊信號解碼器1300之功能,須注意算術解碼器1320係組配來選定一對映規則(例如累積頻率表),其一般而言良好適應於欲解碼的頻譜值,原因在於對映規則係依據目前脈絡狀態而選定,而其又係依據多個先前已解碼的頻譜值而測定。據此,可探討欲解碼的相鄰頻譜值間之統計相依性。
但業已發現就記憶體的使用而言,有效儲存脈絡子區值,其係基於多個先前已解碼的頻譜值之一向量之範數,供後來用於數值脈絡值的測定。業已發現此等脈絡子區值仍然包含有最相關的脈絡資訊。據此,狀態追蹤器1326使用的構想構成編碼效率、運算效率與儲存效率間之良好折衷。
進一步細節容後詳述。
8. 依據第1圖之音訊編碼器
後文中將敘述依據本發明之實施例之音訊編碼器。第1圖顯示此種音訊編碼器100之方塊示意圖。
音訊編碼器100係組配來接收輸入音訊資訊110,及基於此而提供位元串流112,其組成編碼音訊資訊。音訊編碼器100選擇性地包含前處理器120,其係組配來接收輸入音訊資訊110,及基於此而提供經前處理的輸入音訊資訊110a。該音訊編碼器100也包含能量緊密型時域至頻域信號變換器130,其也標示為信號變換器。信號變換器130係組配來接收輸入音訊資訊110、110a及基於此而提供頻域音訊資訊132,其較佳係呈一頻譜值集合形式。舉例言之,信號變換器130可經組配來接收一訊框輸入音訊資訊110、110a(例如一區塊時域樣本),及提供表示個別音訊框之音訊內容之一頻譜值集合。此外,信號變換器130可經組配來接收多個接續重疊的或非重疊的輸入音訊資訊110、110a之音訊框,及基於此而提供一時頻域音訊表示型態,其包含一序接續的頻譜值集合,每個頻譜值集合係與各個訊框相關聯。
能量緊密型時域至頻域信號變換器130可包含一能量緊密型濾波器排組,其提供與不同的重疊的或非重疊的頻率範圍相關聯之頻譜值。舉例言之,信號變換器130可包含開窗修正離散餘弦變換(MDCT)變換器130a,其係組配來使用變換窗而開窗該輸入音訊資訊110、110a(或其一訊框),及執行該已開窗輸入音訊資訊110、110a(或其一開窗訊框)之修正離散餘弦變換(MDCT)。據此,頻域音訊表示型態132可包含一集合例如1024頻譜值,呈與輸入音訊資訊之一框相關聯之MDCT係數形式。
音訊編碼器100可進一步選擇性地包含頻譜後處理器140,其係組配來接收頻域音訊表示型態132,及基於此而提供經後處理之頻域音訊表示型態142。頻譜後處理器140例如可經組配來執行時間雜訊成形及/或長期預測及/或技藝界已知之任何其它頻譜後處理。音訊編碼器選擇性地進一步包含定標器/量化器150,其係組配來接收頻域音訊表示型態132或其後處理版本142,及提供已定標且已量化的頻域音訊表示型態152。
音訊編碼器100選擇性地進一步包含心理聲學模型處理器160,其係組配來接收輸入音訊資訊110(或其後處理版本110a),及基於此而提供選擇性的控制資訊,其可用於能量緊密型時域至頻域信號變換器130之控制,用於選擇性的頻譜後處理器140之控制,及/或用於選擇性的定標器/量化器150之控制。舉例言之,心理聲學模型處理器160可經組配來分析輸入音訊資訊,判定輸入音訊資訊110、110a的哪些組分對音訊內容之人類知覺特別重要,及輸入音訊資訊110、110a的哪些組分對音訊內容知覺較不重要。據此心理聲學模型處理器160可提供控制資訊,其係由音訊編碼器100用來調整藉定標器/量化器150對頻域音訊表示型態132、142的定標,及/或藉定標器/量化器150施加的量化解。結果,知覺上重要的定標因數頻帶(亦即對音訊內容之人類知覺特別重要的相鄰頻譜值組群)係以大型定標因數定標且以較高解量化,而知覺上較不重要的定標因數頻帶(亦即相鄰頻譜值組群)係以小型定標因數定標且以較低解量化。據此,知覺上較為重要的頻率之定標頻譜值典型地係顯著大於知覺上較不重要的頻率之頻譜值。
音訊編碼器也包含算術編碼器170,其係組配來接收頻域音訊表示型態132之已定標且已量化版本152(或另外,頻域音訊表示型態132之後處理版本142,或甚至頻域音訊表示型態132本身),及基於此而提供算術碼字組資訊172a,使得算術碼字組資訊表示頻域音訊表示型態152。
音訊編碼器100也包含位元串流有效負載格式化器190,其係組配來接收算術碼字組資訊172a。位元串流有效負載格式化器190也典型地係組配來接收額外資訊,例如描述哪些定標因數已經藉定標器/量化器150施加之定標因數資訊。此外,位元串流有效負載格式化器190可經組配來接收其它控制資訊。位元串流有效負載格式化器190係組配來依據期望的位元串流語法,容後詳述,組裝位元串流,基於所接收的資訊而提供位元串流112。
後文中,將描述有關算術編碼器170細節。算術編碼器170係組配來接收多個頻域音訊表示型態132之已經後處理且經定標與量化之頻譜值。算術編碼器包含一最高有效位元平面抽取器174,或甚至來自二頻譜值,其係組配來從一頻譜值抽取最高有效位元平面m。此處須注意最高有效位元平面可包含一個或甚至多個位元(例如2或3位元)其為該頻譜值之最高有效位元。如此,最高有效位元平面抽取器174提供一頻譜值之最高有效位元平面值176。
但另外,最高有效位元平面抽取器174可提供最高有效位元平面值m組合多個頻譜值(例如頻譜值a及b)之最高有效位元平面之組合。頻譜值a之最高有效位元平面標示以m。另外,多個頻譜值a、b之最高有效位元平面值之組合標示以m。
算術編碼器170也包含第一碼字組測定器180,其係組配來測定表示最高有效位元平面值m之算術碼字組acod_m[pki][m]。選擇性地,第一碼字組測定器180也提供一或多個脫序碼字組(此處也標示以「ARITH_ESCAPE」),其指示例如有多少較不重要的位元平面可資利用(及結果指示最高有效位元平面之數值權值)。第一碼字組測定器180可經組配來使用具有(或以下述指稱的)累積頻率表指數pki之一經擇定的累積頻率表,而來提供與最高有效位元平面值m相關聯之碼字組。
為了判定須選用哪一個累積頻率表,算術編碼器較佳包含一狀態追蹤器182,其係組配來例如藉由觀察哪些頻譜值先前已經編碼而追蹤算術編碼器之狀態。結果狀態追蹤器182提供狀態資訊184,例如標示以「s」或「t」或「c」之狀態值。算術編碼器170也包含一累積頻率表選擇器186,其係組配來接收狀態資訊184,及提供描述所選累積頻率表之資訊188給碼字組測定器180。舉例言之,累積頻率表選擇器186可提供累積頻率表指數「pki」,其描述96累積頻率表之一集合中哪個累積頻率表係選定來由碼字組測定器所使用。另外,累積頻率表選擇器186可提供整個所選的累積頻率表或次表給碼字組測定器。如此,碼字組測定器180可使用所選的累積頻率表或次表,用以提供最高有效位元平面值m之碼字組acod_m[pki][m],使得編碼該最高有效位元平面值m之實際碼字組acod_m[pki][m]係與m值及累積頻率表指數pki具有相依性,及結果與目前狀態資訊184具有相依性。有關編碼處理程序及所得碼字組格式之進一步細節容後詳述。
但須注意於有些實施例,狀態追蹤器182可與狀態追蹤器750、狀態追蹤器1050或狀態追蹤器1250相同或具有相同功能。也須注意於若干實施例,累積頻率表選擇器186可與對映規則選擇器760、對映規則選擇器1060或對映規則選擇器1260相同或具有相同功能。此外,第一碼字組測定器180可與頻譜值編碼740相同或具有相同功能。
算術編碼器170進一步包含一最低有效位元平面抽取器189a,其係組配來若欲編碼頻譜值中之一者或多者超過只使用最高有效位元平面所可編碼值範圍,則從已定標且已量化頻域音訊表示型態152中,抽取一或多個最低有效位元平面。如所期望,最低有效位元平面可包含一或多個位元。據此,最低有效位元平面抽取器189a提供最低有效位元平面資訊189b。算術編碼器170也包含最低有效位元平面測定器189c,其係組配來接收最低有效位元平面資訊189d,及基於此而提供表示0、1或多個最低有效位元平面內容之0、1或多個碼字組「acod_r」。最低有效位元平面測定器189c可施加算術編碼演繹法則或任何其它編碼演繹法則,來從最低有效位元平面資訊189b導算出最低有效位元平面碼字組「acod_r」。
此處須注意最低有效位元平面數目依據已定標且已量化頻譜值152之值可各異,使得若欲編碼之已定標且已量化頻譜值較小,則絲毫也無最低有效位元平面;使得若目前欲編碼之已定標且已量化頻譜值屬於中等範圍,則可有一個最低有效位元平面;以及使得若欲編碼之已定標且已量化頻譜值具有較大值,則可有多於一個最低有效位元平面。
綜上所述,算術編碼器170係組配來使用階層式編碼處理程序,來編碼已定標且已量化頻譜值,其係藉資訊152描述。一或多個頻譜值之最高有效位元平面(例如包含每一頻譜值1、2或3位元)係經編碼來獲得該最高有效位元平面值m之算術碼字組「acod_m[pki][m]」。一或多個頻譜值之最低有效位元平面(各個最低有效位元平面例如包含1、2或3位元)係經編碼來獲得一或多個碼字組「acod_r」。當編碼最高有效位元平面時,最高有效位元平面值m係對映至碼字組acod_m[pki][m]。為了達成此項目的,96個不同累積頻率表可資利用以依據算術編碼器170狀態,亦即依據先前已編碼的頻譜值而編碼值m。如此,獲得碼字組「acod_m[pki][m]」。此外,若存在有一或多個最低有效位元平面,則提供一或多個碼字組「acod_r」且包括於位元串流。
復置描述
音訊編碼器100可選擇性地經組配來判定藉由復置脈絡,例如藉由將狀態指數設定為內設值,是否可獲得位元率的改良。據此,音訊編碼器100可經組配來提供一復置資訊(例如定名「arith_reset_flag」),其指示用於算術編碼的脈絡是否復置,及亦指示於對應解碼器用於算術解碼的脈絡是否應復置。
有關位元串流格式及應用的累積頻率表之細節容後詳述。
9.依據第2圖之音訊解碼器
後文中,將敘述依據本發明之實施例之音訊解碼器200。第2圖顯示此種音訊解碼器200之方塊示意圖。
音訊解碼器200係組配來接收一位元串流210,其表示已編碼音訊資訊,及其可與由音訊編碼器100所提供之位元串流112相同。音訊解碼器200基於位元串流210而提供已解碼之音訊資訊212。
音訊解碼器200包含一選擇性位元串流有效負載解格式化器220,其係組配來接收位元串流210,及從該位元串流210抽取已編碼頻域音訊表示型態222。舉例言之,位元串流有效負載解格式化器220可經組配來從位元串流210,抽取算術編碼頻譜資料,例如表示頻域音訊表示型態之一頻譜值a或多個頻譜值a、b之最高有效位元平面值m的算術碼字組「acod_m[pki][m]」,及表示頻域音訊表示型態之一頻譜值a或多個頻譜值a、b之最低有效位元平面內容之碼字組「acod_r」。如此,已編碼頻域音訊表示型態222組成(或包含)頻譜值之算術編碼表示型態。位元串流有效負載解格式化器220進一步係組配來從未顯示於第2圖之位元串流,抽取額外控制資訊。此外,位元串流有效負載解格式化器選擇性地係組配來從位元串流210,抽取狀態復置資訊224,其也標示為算術復置旗標或「arith_reset_flag」。
音訊解碼器200包含算術解碼器230,其也標示為「頻譜無雜訊解碼器」。算術解碼器230係組配來接收已編碼頻域音訊表示型態220及,選擇性地狀態復置資訊224。算術解碼器230也係組配來提供已解碼頻域音訊表示型態232,其可包含頻譜值之已解碼表示型態。舉例言之,已解碼頻域音訊表示型態232可包含頻譜值之已解碼表示型態,其係由已編碼頻域音訊表示型態220描述。
音訊解碼器200也包含一選擇性反量化器/重定標器240,其係組配來接收已解碼頻域音訊表示型態232,及基於此而提供已反量化且已重定標的頻域音訊表示型態242。
音訊解碼器200進一步包含一選擇性頻譜前處理器250,其係組配來接收已反量化且已重定標的頻域音訊表示型態242,及基於此而提供該已反量化且已重定標的頻域音訊表示型態242之前處理版本252。音訊解碼器200也包含一頻域至時域信號變換器260,其也標示為「信號變換器」。信號變換器260係組配來接收該已反量化且已重定標的頻域音訊表示型態242(或另外該已反量化且已重定標的頻域音訊表示型態242或已解碼頻域音訊表示型態232)之前處理版本252,及基於此而提供該音訊資訊之時域表示型態262。頻域至時域信號變換器260例如可包含用以執行修正離散餘弦反變換(IMDCT)及適當開窗(以及其它附屬功能例如重疊與相加)之變換器。
音訊解碼器200可進一步包含一選擇性的時域後處理器270,其係組配來接收該音訊資訊之時域表示型態262,及使用時域後處理來獲得已解碼音訊資訊212。但若刪除後處理,則時域表示型態262可與解碼音訊資訊212完全相同。
此處須注意反量化器/重定標器240、頻譜前處理器250、頻域至時域信號變換器260及時域後處理器270可依據控制資訊而控制,該控制資訊係藉位元串流有效負載解格式化器220而從位元串流210抽取得者。
總結音訊解碼器200之整體功能,已解碼頻域音訊表示型態232例如與已編碼音訊資訊之一音訊框相關聯之一頻譜值集合,可使用算術解碼器230而基於已編碼頻域音訊表示型態222獲得。隨後,例如1024個頻譜值,其可為MDCT係數之集合係經反量化、重定標及前處理。據此,獲得經反量化、重定標及經頻譜前處理的頻譜值(例如1024個MDCT係數)之集合。隨後,一音訊框之時域表示型態係從經反量化、重定標及經頻譜前處理的頻譜值(例如MDCT係數)之集合而導算出。據此,獲得一音訊框之時域表示型態。一給定音訊框之時域表示型態可組合先前音訊框及/或後續音訊框之時域表示型態。舉例言之,後續音訊框之時域表示型態間的重疊與相加可執行來平滑化相鄰音訊框之時域表示型態間的變遷,以及因而獲得混疊抵消。有關基於已解碼頻域音訊表示型態232而重新組成已解碼音訊資訊212之細節,例如可參考國際標準ISO/IEC 14496-3部分3子部分4,於該處列舉細節討論。但可使用其它更具闡釋性的重疊及混疊抵消方案。
後文中,將描述有關算術解碼器230之若干細節。算術解碼器230包含最高有效位元平面測定器284,其係組配來接收描述最高有效位元平面值m之算術碼字組acod_m[pki][m]。最高有效位元平面測定器284可經組配來使用包含多數96個累積頻率表之一集合中之一累積頻率表,用以從算術碼字組「acod_m[pki][m]」導算出最高有效位元平面值m。
最高有效位元平面測定器284係組配來基於碼字組acod_m而導算出多個頻譜值中之一者之最高有效位元平面值286。算術解碼器230進一步包含一最低有效位元平面測定器288,其係組配來接收表示一頻譜值之一或多個最低有效位元平面的一或多個碼字組「acod_r」。據此,最低有效位元平面測定器288係組配來提供一或多個最低有效位元平面的解碼值290。音訊解碼器200也包含一位元平面組合器292,其係組配來接收一或多個頻譜值之最高有效位元平面之已解碼值286,及若對目前頻譜值可得最低有效位元平面,則也可接收該等頻譜值之最低有效位元平面之已解碼值290。據此,位元平面組合器292提供已解碼頻譜值,其屬於已解碼頻域音訊表示型態232之一部分。當然,算術解碼器230典型地係組配來提供多個頻譜值,而來獲得與該音訊內容之一目前訊框相關聯之已解碼頻譜值之一完整集合。
算術解碼器230進一步包含一累積頻率表選擇器296,其係組配來依據描述算術解碼器狀態之一狀態指數298,而選擇96個累積頻率表中之一者。算術解碼器230進一步包含一狀態追蹤器299,其係組配來依據先前已解碼的頻譜值追從算術解碼器之狀態。該狀態資訊可選擇性地回應於狀態復置資訊224而復置成內設狀態資訊。據此,累積頻率表選擇器296係組配來提供所選定之累積頻率表之指數(例如pki)、或一選定之累積頻率表或其子表本身,用以應用於依據碼字組「acid_m」,解碼最高有效位元平面值m。
綜合音訊解碼器200之功能,音訊解碼器200係組配來接收經位元率有效編碼之頻域音訊表示型態222,及基於此而提供已解碼頻域音訊表示型態。用來基於已編碼頻域音訊表示型態222而獲得已解碼頻域音訊表示型態232的音訊解碼器200中,藉由使用算術解碼器280其係組配來獲得一累積頻率表,而探討相鄰頻譜值之最高有效位元平面值的不同組合機率。換言之,藉由依據狀態指數298其係經由觀察先前運算已解碼的頻譜值獲得,而從包含96個不同累積頻率表之一集合中選出不同累積頻率表,而探討頻譜值間之統計相依性。
須注意狀態追蹤器299可與狀態追蹤器826、狀態追蹤器1126或狀態追蹤器1326相同或具有相同功能。累積頻率表選擇器296可與對映規則選擇器828、對映規則選擇器1128或對映規則選擇器1328相同或具有相同功能。最高有效位元平面測定器284可與頻譜值測定器824相同或具有相同功能。
10. 頻譜無雜訊編碼之工具綜論
後文中,將解說有關例如藉算術編碼器170及算術解碼器230執行之編碼及解碼演繹法則之細節。
注意力聚焦在解碼演繹法則之描述。但須注意可依據解碼演繹法則之教示而執行相對應之編碼演繹法則,其中顛倒編碼頻譜值與解碼頻譜值間之對映關係,及其中對映規則指數值之運算乃實質上相同。於編碼器,編碼頻譜值替代解碼頻譜值。又,欲編碼頻譜值替代欲解碼頻譜值。
須注意解碼(容後詳述)係用來允許典型地已經後處理、經定標且經量化之頻譜值的所謂「頻譜無雜訊編碼」。頻譜無雜訊編碼係用於音訊編碼/解碼構想(或任何其它編碼/解碼構想)來進一步減少藉能量緊密型時域至頻域信號變換器所得之量化頻譜的冗餘。用於依據本發明之實施例的頻譜無雜訊編碼方案係結合動態調適脈絡而用於算術編碼。
於依據本發明之若干實施例,頻譜無雜訊編碼方案係基於2-重元組(tuple),換言之,組合兩相鄰頻譜係數。各個2-重元組係***成符號、最高有效逐2-位元平面、及其餘最低有效位元平面。最高有效逐2-位元平面m之無雜訊編碼係使用導算自四個先前已解碼2-重元組的脈絡相依性累積頻率表。無雜訊編碼係由量化頻譜值饋入,且係使用導算自四個先前已解碼2-重元組的脈絡相依性累積頻率表。此處,時間及頻譜的鄰近係列入考慮,如第4圖所示。累積頻率表(容後詳述)然後藉算術編碼器用來產生可變長度二進制碼(及藉算術解碼器來從可變長度二進制碼導算出解碼值)。
舉例言之,算術編碼器170對一給定符元集合產生二進制碼及其個別機率(亦即取決於其個別機率)。二進制碼係經由將該符元集合所位在的一機率區間對映至一碼字組而產生。
其餘最低有效位元平面r之無雜訊編碼使用單一累積頻率表。累積頻率例如係與發生在最低有效位元平面之符元的一致分布相對應,亦即預期在最低有效位元平面出現0或1的機率相等。
後文中,將給定頻譜無雜訊編碼工具之另一項短綜論。頻譜無雜訊編碼係用來進一步減少量化頻譜的冗餘。頻譜無雜訊編碼方案係基於算術編碼組合動態調適性脈絡。無雜訊編碼係由量化頻譜值饋入,且係使用導算自例如四個先前已解碼的鄰近頻譜值之2-重元組的脈絡相依性累積頻率表。此處,時間及頻譜的鄰近係列入考慮,如第4圖所示。累積頻率表然後藉算術編碼器用來產生可變長度二進制碼。
算術編碼器對一給定符元集合產生二進制碼及其個別機率。二進制碼係經由將該符元集合所位在的一機率區間對映至一碼字組而產生。
11.解碼處理程序 11.1解碼處理程序綜論
後文中,將參考第3圖給定一頻譜值編碼處理程序之綜論,該圖顯示解碼多個頻譜值之處理程序之虛擬程式碼表示型態。
多個頻譜值之解碼處理程序包含脈絡之初始化(initialization)310。脈絡之初始化310包含使用函數「arith_map_context(N,arith_reset_flag)」從一先前脈絡而導算出目前脈絡。從先前脈絡而導算出目前脈絡可選擇性地包含脈絡的復置。脈絡的復置及從先前脈絡而導算出目前脈絡容後詳述。
多個頻譜值之解碼也包含頻譜值解碼312及脈絡更新313之迭代重複,該脈絡更新313係藉函數「arith_update_context(i,a,b)」執行,容後詳述。頻譜值解碼312及脈絡更新312係重複lg/2次,此處lg/2指示欲解碼頻譜值的2_重元組數目(例如對一音訊框而言),除非檢測得所謂之「ARITH_STOP」符元。此外,一個lg頻譜值集合之解碼也包含一符號解碼314及一結束步驟315。
頻譜值之一重元組的解碼312包含脈絡值計算312a、最高有效位元平面解碼312b、算術終止符元檢測312c、最低有效位元平面加法312d,及陣列更新312e。
狀態值運算312a包含呼叫函數「arith_get_context(c,i,N)」,例如如第5c或5d圖所示。據此,數值目前脈絡(狀態)值c係提供作為函數「arith_get_context(c,i,N)」之函數呼叫的回送值。如圖可知,數值先前脈絡值(也標示以「c」)其係作為函數「arith_get_context(c,i,N)」的輸入變數,係經更新來獲得數值目前脈絡值c作為回送值。
最高有效位元平面解碼312b包含解碼演繹法則312ba及從演繹法則312ba之結果值m所得值a,b之導算312bb的迭代重複執行。於演繹法則312ba的準備中,變數lev係經初始化為零。演繹法則312ba係重複直至達到「中斷」指令(或狀況)。演繹法則312ba包含使用函數「arith_get_pk()」,依據數值目前脈絡值c,及亦依據位階值「esc_nb」,狀態指數「pki」(其也係用作為累積頻率表指數)的運算,容後詳述(及其實施例例如係顯示於第5e及5f圖)。演繹法則312ba也包含依據由呼叫函數「arith_get_pk」所回送的狀態指數「pki」選擇一累積頻率表,其中變數「cum_freq」可依據狀態指數「pki」,設定為96個累積頻率表(或子表)中之一者的起始位址。變數「clf」也可經初始化至該選定累積頻率表(或子表)之長度,該長度例如係等於字母表中的符元數目,亦即可解碼不同值的數目。可利用來解碼最高有效位元平面值m的從「ari_cf_m[pki=0][17]」至「ari_cf_m[pki=95][17]」之全部累積頻率表(或子表)長度為17,原因在於可解碼16不同最高有效位元平面值及一個脫序符元(「ARITH_ESCAPE」)。
隨後,考慮所選累積頻率表(藉變數「cum_freq」及變數「cfl」描述),經由執行函數「arith_decode()」可獲得最高有效位元平面值m。當導算最高有效位元平面值m時,可評估位元串流210之定名「acod_m」之位元(例如參考第6g圖或第6h圖)。
演繹法則312ba也包含檢查最高有效位元平面值m是否等於脫序符元「ARITH_ESCAPE」。若最高有效位元平面值m係不等於算術脫序符元,則捨棄演繹法則312ba(「中斷」狀況)及然後跳過演繹法則312ba之其餘指令。據此,於步驟312bb,以值b及值a的設定繼續處理程序的執行。相反地,若最高有效位元平面值m係與該算術脫序符元或「ARITH_ESCAPE」相同,則位階值「lev」遞增1。位階值「esc_nb」係設定為等於位階值「lev」,除非位階值「lev」係大於7;該種情況下,位階值「esc_nb」係設定為等於7。如文所述,演繹法則312ba然後重複直至已解碼最高有效位元平面值m係與算術脫序符元相異為止,其中使用經修改之脈絡(原因在於函數「arith_get_pk()」之輸入參數係依據變數「esc_nb」值而調整適應)。
一旦最高有效位元平面係使用演繹法則312ba的一次執行或迭代重複執行而解碼時,亦即與算術脫序符元相異的最高有效位元平面值m已經解碼時,頻譜值變數「b」係設定為等於最高有效位元平面值m之多個(例如2)最高有效位元;及頻譜值變數「a」係設定為等於最高有效位元平面值m之該(例如2)最低位元。有關此函數細節例如參考元件符號312bb。
接著於步驟312c檢查是否存在有算術終止符元。此乃最高有效位元平面值m係等於零而變數「lev」係大於零的情況。據此,算術終止狀況係藉「不尋常」狀況發信號,其中最高有效位元平面值m係等於零,而變數「lev」指示數值權值增加係與最高有效位元平面值m相關聯。換言之,若位元串流指示數值權值增加而高於最小數值權值資給予等於零的最高有效位元平面值,此種情況乃正常編碼情況不會發生者時,則檢測得算術終止狀況。換言之,若編碼算術脫序符元隨後接著等於零的最高有效位元平面值,則發信號算術終止狀況。
於步驟212c進行評估是否有算術終止狀況後,獲得最低有效位元平面,例如如第3圖元件符號212d所示。對各個最低有效位元平面,解碼兩個二進制值。二進制值中之一者係與變數a(或一頻譜值重元組之該第一頻譜值)相關聯,而二進制值中之一者係與變數b(或一頻譜值重元組之該第二頻譜值)相關聯。最低有效位元平面之數目係標示以變數lev。
於一或多個最低有效位元平面(若有)之解碼中,迭代重複地執行演繹法則212da,其中演繹法則212da之執行次數係由變數「lev」決定。此處須注意演繹法則212da之第一次迭代重複係基於如步驟212bb設定的變數a、b之值進行。演繹法則212da之進一步迭代重複係基於變數a、b之已更新變數值進行。
在迭代重複之始,選定一累積頻率表。隨後,執行算術解碼來獲得變數r值,其中變數r值描述多個最低有效位元,例如一個與變數a相關聯之最低有效位元,及一個與變數b相關聯之最低有效位元。函數「ARITH_DECODE」係用來獲得值r,其中該累積頻率表「arith_cf_r」係用於算術解碼。
隨後變數a及b之值經更新。為了達成此項目的,變數a向左移位1位元,而已移位之變數a的最低有效位元係設定由值r之最低有效位元所定義之值。變數b向左移位1位元,而已移位之變數b的最低有效位元係設定由變數r之位元1所定義之值,其中於變數r之二進制表示型態,變數r之位元1具有2之數值權值。然後演繹法則412ba重複直至全部最低有效位元皆解碼為止。
於最低有效位元平面解碼後,陣列「x_ac_dec」經更新,在於變數a、b之值係儲存在具有陣列指數2*i及2*i+1之該陣列分錄。
隨後,脈絡狀態係藉呼叫函數「arith_update_context(i,a,b)」更新,其細節參考第5g圖容後詳述。
步驟313執行的脈絡狀態更新後,重複演繹法則312及313直至工作變數i達lg/2之值或直至檢測得算術終止狀況為止。
隨後,執行結束演繹法則「arith_finish()」,如於元件符號315可知。結束演繹法則「arith_finish()」之細節將參考第5m圖描述如下。
於結束演繹法則315之後,頻譜值符號係使用演繹法則314解碼。如圖可知,與零相異的頻譜值符號係個別地解碼。於演繹法則314,對具有指數i介於i=0至i=lg-1(其為非零)間的全部頻譜值讀取。對具有指數i介於i=0至i=lg-1間的各個非零頻譜值,值(典型地為單一位元)s係讀取自位元串流。若讀取自位元串流之s值係等於1,則該頻譜值符號反相。為了達成此項目的,對陣列「x_ac_dec」作存取,來判定該具有指數i之頻譜值是否等於零,及用以更新已解碼頻譜值符號二者。但須注意變數a、b符號於符號解碼314保持不變。
藉由在符號解碼314之前執行結束演繹法則315,可能復置在ARITH_STOP符號之後的全部所需倉(bin)。
此處須注意於若干依據本發明之實施例,獲得最低有效位元平面值之構想並非特別有關。於若干實施例,任何最低有效位元平面之解碼甚至刪除。另外,不同解碼演繹法則可用於此項目的。
11.2 依據第4圖之解碼順序
後文中,將敘述頻譜值之解碼順序。
量化頻譜係數「x_ac_dec[]」係經無雜訊地編碼,且始於最低頻率係數,朝向最高頻率係數前進傳輸(例如於位元串流)。
結果,量化頻譜係數「x_ac_dec[]」係始於最低頻率係數,朝向最高頻率係數前進而無雜訊地解碼。量化頻譜係數係藉兩群接續(例如頻率相鄰)係數a及b集合成所謂的2_重元組(a,b)(也標示以{a,b})解碼。此處須注意量化頻譜係數偶爾也標示以「qdec」。
用於頻域模式之已解碼係數「x_ac_dec[]」(例如使用修正離散餘弦變換(MDCT)獲得之用於進階音訊編碼的已解碼係數,例如討論於國際標準ISO/IEC 14496部分3子部分4)然後係儲存於陣列「x_ac_quant[g][win][sfb][bin]」。無雜訊解碼碼字組的傳輸順序使得當其係以所接收順序而儲存於陣列時,「bin」為最快速遞增指數,而「g」為最慢遞增指數。於碼字組內部,解碼順序為a,b。
用於變換編碼激勵(TCX)之已解碼係數「x_ac_dec[]」例如係直接儲存在陣列「x_tcx_invquant[win][bin]」,而無雜訊編碼碼字組之傳輸順序使得當其以所接收的順序解碼且儲存於陣列時,「bin」為最快速遞增指數,而「win」為最慢遞增指數。於碼字組內部,解碼順序為a,b。換言之,若頻譜值描述語音編碼器之線性預測濾波器之變換編碼激勵,則頻譜值a、b係與變換編碼激勵之相鄰且遞增頻率相關聯。與較低頻相關聯之頻譜係數典型地係在與較高頻相關聯之頻譜係數之前編碼與解碼。
注意音訊解碼器200可經組配來施加由算術解碼器230所提供的已解碼頻域表示型態232用於使用頻域至時域信號變換「直接」產生時域音訊信號表示型態;及用於使用頻域至時域解碼器及藉頻域至時域信號變換器之輸出信號所激勵的線性預測濾波器二者而「間接」提供時域音訊信號表示型態二者。
換言之,此處詳細討論其功能之算術解碼器極為適合用以解碼於頻域編碼之音訊內容之時頻域表示型態之頻譜值,以及用以提供用於線性預測濾波器之一激勵信號之時頻域表示型態,該濾波器係適用於解碼(或合成)於線性預測域編碼之語音信號。如此,算術解碼器係極為適合用於音訊解碼器,其可處理頻域編碼音訊內容及線性預測頻域編碼音訊內容(變換編碼激勵-線性預測域模式)二者。
11.3 依據第5a及5b圖之脈絡初始化
後文中,將敘述於步驟310執行的脈絡初始化(也標示為「脈絡對映」)。
脈絡初始化包含依據演繹法則「arith_map_context()」,過去脈絡與目前脈絡間之對映,其第一實例係顯示於第5a圖,而其第二實例係顯示於第5b圖。
如圖可知,目前脈絡係儲存在通用變數「q[2][n_context]」,其係呈具有第一維為2而第二維為「n_context」之矩陣形式。過去脈絡可選擇性地(但非必要)儲存在變數「qs[n_context]」,其係呈具有一維「n_context」(若使用)之表。
參考第5a圖之實例演繹法則「arith_map_context」,輸入變數N描述一目前窗長度,及輸入變數「arith_reset_flag」指示脈絡是否應復置。此外,通用變數「previous_N」描述前一窗長度。此處須注意典型地,就時域樣本而言,與一窗相關聯之頻譜值數目至少約等於該窗長度之半。此外,須注意就時域樣本而言,頻譜值之2-重元組數目結果至少約等於該窗長度的四分之一。
參考第5a圖實例,脈絡之對映可依據演繹法則「arith_map_context()」執行。此處須注意若旗標「arith_reset_flag」為作動及結果指示脈絡須被復置,則對j=0至j=N/4-1,函數「arith_map_context()」設定目前脈絡陣列q之分錄「q[0][j]」為零。否則,換言之,若旗標「arith_reset_flag」為不作動,則目前脈絡陣列q之分錄「q[0][j]」係從目前脈絡陣列q之分錄「q[1][j]」導算出。須注意若對j=k=0至j=k=N/4-1,與目前(例如頻域編碼)音訊框相關聯之頻譜值數目係等同於與前一音訊框相關聯之頻譜值數目,則依據第5a圖之函數「arith_map_context()」設置目前脈絡陣列q之分錄「q[0][j]」為目前脈絡陣列q之值「q[1][j]」。
當與目前音訊框相關聯之頻譜值數目係與先前音訊框相關聯之頻譜值數目不同時執行更複雜的對映。但此種情況下有關對映之細節與本發明之關鍵構想並無特殊關聯,因此可參考第5a圖之虛擬程式碼的相關細節。
此外,數值目前脈絡值c之初始化值係由函數「arith_map_context()」回送。此一初始化值例如係等於分錄「q[0][0]」值向左移位12位元。據此,數值(目前)脈絡值c係妥當初始化用於迭代重複更新。
此外,第5b圖顯示另可使用的演繹法則「arith_map_context()」之另一實例。有關其細節可參考第5a圖之虛擬程式碼。
綜上所述,旗標「arith_reset_flag」判定脈絡是否須復置。若旗標為真,則呼叫演繹法則「arith_map_context()」之一復置子演繹法則500a。但另外,若旗標「arith_reset_flag」為非作動(其指出無需執行脈絡之復置),則解碼處理程序始於初始化相,此處脈絡元素向量(或陣列)q係藉由拷貝及將儲存在q[1][]的前一框之脈絡元素對映至q[O][]而更新。q內部的脈絡元素係以每2-重元組4-位元儲存。脈絡元素之拷貝及/或對映係於子演繹法則500b執行。
於第5b圖之實例,解碼處理程序始於初始化相,此處對映係在儲存於qs的所儲存的過去脈絡與目前框q脈絡間進行。過去脈絡qs係以每一頻率行2-位元儲存。
11.4 依據第5c及5d圖之狀態值運算
後文中,將敘述狀態值運算312a之進一步細節。
第一實例演繹法則將參考第5c圖說明,而第二實例演繹法則將參考第5d圖說明。
須注意數值目前脈絡值c(如第3圖所示)可獲得為函數「arith_get_context(c,i,N)」之回送值,其虛擬程式碼表示型態係顯示於第5c圖。但另外,數值目前脈絡值c可獲得為函數「arith_get_context(c,i)」之回送值,其虛擬程式碼表示型態係顯示於第5d圖。
有關狀態值之運算,也參考第4圖,該圖顯示用於狀態評估之脈絡,亦即用於數值目前脈絡值c之運算。第4圖顯示頻譜值於時間及頻率二者之二維表示型態。橫座標410描述時間,及縱座標412描述頻率。如第4圖可知,欲解碼(較佳使用數值目前脈絡值)之頻譜值之重元組420係與時間指數t0及頻率指數i相關聯。如圖可知,對時間指數t0,具有頻率指數i-1、i-2及i-3之重元組在具有頻率指數i之重元組120頻譜值欲解碼時已經解碼。如第4圖可知,具有時間指數t0及頻率指數i-1之頻譜值430在頻譜值之重元組420解碼之前已經解碼,及頻譜值之重元組430係考慮在用於頻譜值之重元組420解碼的脈絡。同理,具有時間指數t0-1及頻率指數i-1之頻譜值440、具有時間指數t0-1及頻率指數i之頻譜值450、及具有時間指數t0-1及頻率指數i+1之頻譜值460在頻譜值之重元組420解碼之前已經解碼,而被考慮在用於頻譜值之重元組420解碼的脈絡之測定上。當頻譜值之重元組420解碼時已經解碼且考慮用於脈絡的頻譜值(係數)係以影線方塊顯示。相反地,已經解碼(當頻譜值之重元組420解碼時)但未考慮用於脈絡(用於頻譜值之重元組420解碼)的若干其它頻譜值係以具有虛線之方塊顯示,而其它頻譜值(當頻譜值之重元組420解碼時尚未被解碼)係以具有虛線之圓顯示。藉具有虛線之方塊表示的重元組及藉具有虛線之圓表示的重元組並未用於測定供頻譜值之重元組420解碼用之脈絡。
但須注意雖言如此,未用於頻譜值之重元組420解碼用之脈絡的「常規」或「正常」運算之若干此等頻譜值可經評估用來檢測多個先前已解碼之相鄰頻譜值,該等頻譜值個別地或一起地滿足有關其幅度之預定條件。有關此一議題之細節容後詳述。
現在參考第5c圖說明演繹法則「arith_get_context(c,i,N)」之細節。第5c圖以虛擬程式碼形式顯示函數「arith_get_context(c,i,N)」之功能,其使用眾所周知之C語言及/或C++語言協定。如此,將敘述有關藉函數「arith_get_context(c,i,N)」所執行之數值目前脈絡值「c」計算上的若干額外細節。
須注意函數「arith_get_context(c,i,N)」接收可由數值目前脈絡值c所描述的「舊狀態脈絡」作為輸入變數。函數「arith_get_context(c,i,N)」也接收欲解碼頻譜值之2-重元組的指數i作為輸入變數。指數i典型地為頻率指數。輸入變數N描述欲解碼頻譜值之一窗的窗長度。
函數「arith_get_context(c,i,N)」提供輸入變數c之更新版本作為輸出值,該輸入變數c描述更新狀態脈絡,及其可視為數值目前脈絡值。摘要言之,函數「arith_get_context(c,i,N)」接收數值目前脈絡值c作為輸入變數,及提供更新版本,其可被視為數值目前脈絡值。此外,函數「arith_get_context」考慮變i、N及也評估「通用」陣列q[][]。
有關函數「arith_get_context(c,i,N)」之細節,須注意最初以二進制形式表示數值先前脈絡值的變數c係在步驟504a向右移位4-位元。據此,捨棄數值先前脈絡值(以輸入變數c表示)的四個最低有效位元。又,數值先前脈絡值之其它位元的數值權值例如減少因數16。
此外,若2-重元組之指數i係小於N/4-1,亦即不具最大值,則數值目前脈絡值係經修改,分錄q[0][i+1]之值加至步驟504a所得經移位脈絡值的位元12至15(亦即加至具有212 、213 、214 及215 數值權值的位元)。為了達成此項目的,陣列q[][]之分錄q[0][i+1](或更精確言之,該分錄所表示之值之二進制表示型態)朝左移位12-位元。然後分錄q[0][i+1]所表示之值的移位版本加至步驟504a導算的脈絡值c,亦即加至數值先前脈絡值之經位元移位的(朝右移位4-位元)數字表示型態。此處須注意陣列q[][]之分錄q[0][i+1]表示與音訊內容之一先前部分(例如參考第4圖定義,具有時間指數t0-1之音訊內容部分)相關聯之一子區值,及具有比目前欲解碼頻譜值之重元組(使用由函數「arith_get_context(c,i,N)」所輸出之數值目前脈絡值c)更高的頻率(如參考第4圖定義,具有頻率指數i+1之頻率)。換言之,當頻譜值之重元組420欲使用數值目前脈絡值解碼時,分錄q[0][i+1]可基於先前已解碼的頻譜值之重元組460。
陣列q[][]之分錄q[0][i+1]之選擇性加法(朝左移位12-位元)係以元件符號504b顯示。如圖可知,分錄q[0][i+1]表示數值之加法當然唯有在頻率指數i不標示具有最高頻率指數i=N/4-1的頻譜值之重元組時執行。
隨後,於步驟504c,執行布林及閘運算,其中變數c之值係與0xFFF0之十六進制值藉及閘(AND)組合來獲得變數c之更新值。藉由執行此種及閘運算,變數c之四個最低有效位元係有效地設定為零。
於步驟504d,分錄q[1][i-1]之值加至步驟504c所得之變數c之值,藉此更新變數c之值。但於步驟504d之變數c的更新唯有在欲解碼之2-重元組的頻率指數i係大於零時才執行。須注意對頻率係小於使用數值目前脈絡值欲解碼頻譜值之頻率,分錄q[1][i-1]為基於音訊內容之目前部分的先前已解碼的頻譜值之重元組的一脈絡子區值。舉例言之,當假設頻譜值之重元組420係欲使用由目前執行函數「arith_get_context(c,i,N)」而回送的數值目前脈絡值解碼時,陣列q[][]之分錄q[1][i-1]可能與具有時間指數t0及頻率指數i-1之重元組430相關聯。
綜上所述,數值先前脈絡值之位元0、1、2及3(亦即四個最低有效位元部分)係在步驟504a藉由將其移位出數值先前脈絡值之二進制數字表示型態而捨棄。此外,移位變數c(亦即移位數值先前脈絡值)之位元12、13、14及15係設定為具有步驟504b由脈絡子區值q[0][i+1]所定義之值。移位數值先前脈絡值之位元0、1、2及3(亦即原先移位數值先前脈絡值之位元4、5、6及7)係在步驟504c及504d由脈絡子區值q[1][i-1]所覆寫。
結果可謂數值先前脈絡值之位元0至3表示與頻譜值之重元組432相關聯之脈絡子區值,數值先前脈絡值之位元4至7表示與先前已解碼頻譜值之重元組434相關聯之脈絡子區值,數值先前脈絡值之位元8至11表示與先前已解碼頻譜值之重元組440相關聯之脈絡子區值,及數值先前脈絡值之位元12至15表示與先前已解碼頻譜值之重元組450相關聯之脈絡子區值。輸入函數「arith_get_context(c,i,N)」的數值先前脈絡值係與頻譜值之重元組430之解碼相關聯。
作為函數「arith_get_context(c,i,N)」之輸出變數獲得之數值目前脈絡值係與頻譜值之重元組420之解碼相關聯。據此,數值目前脈絡值之位元0至3描述與頻譜值之重元組430相關聯之脈絡子區值,數值目前脈絡值之位元4至7描述與頻譜值之重元組440相關聯之脈絡子區值,數值目前脈絡值之位元8至11描述與頻譜值之重元組450相關聯之脈絡子區值,及數值目前脈絡值之位元12至15描述與頻譜值之重元組460相關聯之脈絡子區值。如此,可知數值先前脈絡值部分亦即數值先前脈絡值之位元8至15也係含括於數值目前脈絡值之位元4至11。相反地,當從數值先前脈絡值之數字表示型態導算數值目前脈絡值之數字表示型態時,數值目前脈絡值之位元0至7被捨棄。
於步驟504e,當欲解碼2-重元組之頻率指數i係大於例如3之預定數字時,表示數值目前脈絡值之變數c係被選擇性地更新。此種情況下,亦即若i係大於3,則判定脈絡子區值q[1][i-3]、q[1][i-2]與q[1][i-1]之和值是否小於(或等於)例如5之預定數字。若發現該脈絡子區值之和係小於該預定值,則例如0x10000之十六進制值加至變數c。據此,變數c係設定使得變數c指出是否有一種狀況,其中脈絡子區值q[1][i-3]、q[1][i-2]與q[1][i-1]組成一特小和值。舉例言之,數值目前脈絡值之位元16可用作旗標來指出此種狀況。
總結而言,函數「arith_get_context(c,i,N)」之回送值係由步驟504a、504b、504c、504d及504e測定,此處數值目前脈絡值係在步驟504a、504b、504c及504d從數值先前脈絡值導算,及其中指出先前已解碼的頻譜值平均具有特小絕對值的環境之一旗標係在步驟504e導算且加至變數c。如此,若步驟504e評估的條件未滿足,則步驟504a、504b、504c、504d所得變數c值係在步驟504f回送作為函數「arith_get_context(c,i,N)」之回送值。相反地,若步驟504e評估的條件滿足,則在步驟504e,在步驟504a、504b、504c及504d所導算的變數c值係藉0x10000之十六進制值遞增且回送此一遞增運算結果。
綜上所述,須注意無雜訊解碼器輸出未加符號的量化頻譜係數之2-重元組(容後詳述)。首先,脈絡狀態c係基於「環繞」欲解碼2-重元組的先前已解碼的頻譜係數計算。於較佳實施例,狀態(例如數值脈絡值表示之狀態)係使用最末解碼的2-重元組(標示為數值先前脈絡值)之脈絡狀態遞增更新,只考慮兩個新2-重元組(例如2-重元組430及460)。狀態係在17-位元編碼(例如使用數值目前脈絡值之數字表示型態)且係藉函數「arith_get_context()」回送。有關其細節請參考第5c圖的程式碼表示型態。
此外,須注意函數「arith_get_context()」之另一實施例的虛擬程式碼表示型態係顯示於第5d圖。依據第5d圖之函數「arith_get_context(c,i)」係類似依據第5c圖之函數「arith_get_context(c,i,N)」。但依據第5d圖之函數「arith_get_context(c,i)」並未包括包含最小頻率指數i=0或最大頻率指數i=N/4-1的頻譜值之重元組的特別處理或解碼。
11.5 對映規則選擇
後文中,將描述對映規則例如描述碼字組值對映至符元碼之累積頻率表的選擇。對映規則之選擇係依據由數值目前脈絡值c所描述之脈絡狀態進行。
11.5.1 使用依據第5e圖之對映規則選擇
後文中,將描述使用函數「arith_get_pk(c)」之對映規則的選擇。須注意函數「arith_get_pk()」係在子演繹法則312ba起始時解碼碼值「acod_m」用以提供頻譜值之重元組時呼叫。須注意函數「arith_get_pk(c)」係在演繹法則312b的不同迭代重複時以不同爭議呼叫。舉例言之,在演繹法則312b的第一次迭代重複,函數「arith_get_pk(c)」之呼叫有爭議,其等於先前於步驟312a執行函數「arith_get_pk(c,i,N)」時所提供的數值目前脈絡值c。相反地,於子演繹法則312b的其它迭代重複,函數「arith_get_pk(c)」之呼叫有爭議,其乃於步驟312a由函數「arith_get_pk(c,i,N)」提供數值目前脈絡值c,及變數「esc_nb」之值的位元移位版本之和,其中該變數「esc_nb」之值係向左移位17-位元。如此,在演繹法則的第一次重複時,亦即較小頻譜值解碼時,由函數「arith_get_pk(c,i,N)」所提供的數值目前脈絡值c係用作為函數「arith_get_pk()」的輸入值。相反地,當解碼較大頻譜值時,函數「arith_get_pk()」之輸入變數係經修改,在於將變數「esc_nb」之值列入考慮,如第3圖所示。
現在參考第5e圖,顯示函數「arith_get_pk(c)」之第一實施例之虛擬程式碼表示型態,須注意函數「arith_get_pk()」接收變數c作為輸入值,其中變數c描述脈絡狀態,及其中至少於某些情況下,函數「arith_get_pk()」之輸入變數c係等於由函數「arith_get_pk()」提供作為回送變數的數值目前脈絡值。此外,須注意函數「arith_get_pk()」提供變數「pki」作為輸出變數,其描述機率模型之指數及其可被考慮為對映規則指數值。
參考第5e圖,可知函數「arith_get_pk()」包含變數初始化506a,其中變數「i_min」被初始化為值-1。同理,變數i係設定為等於變數「i_min」,使得變數i也被初始化為值-1。變數「i_max」係經初始化而具有比表「ari_lookup_m[]」之分錄數目小1之值(其細節將參考第21(1)及21(2)圖作說明)。據此,變數「i_min」與「i_max」界定一區間。
隨後,執行搜尋506b來識別標示表「ari_hash_m」之一分錄之指示值,使得函數「arith_get_pk()」之輸入變數c之值係位在由該分錄與一相鄰分錄所界定之一區間。
於搜尋506b,重複子演繹法則506ba,而變數「i_min」與「i_max」間之差係大於1。於子演繹法則506ba,變數i係設定為等於變數「i_min」與「i_max」之值之算術平均。結果,變數i標示由變數「i_min」與「i_max」之值所界定之一表區間中間之表「ari_hash_m[]」之一分錄。隨後,變數j係設定為等於表「ari_hash_m[]」之一分錄「ari_hash_m[i]」之值。如此,變數j具有表「ari_hash_m[]」之一分錄之值,該分錄係位在由變數「i_min」與「i_max」之值所界定之一表區間中間。隨後,若函數「arith_get_pk()」之輸入變數c之值係與由表「ari_hash_m[]」之該表分錄「j=ari_hash_m[i]」的最高位元所定義之狀態值相異,則更新由變數「i_min」與「i_max」之值所界定之該區間。舉例言之,表「ari_hash_m[]」之分錄之「較高位元」(位元8及以上)描述有效狀態值。據此,值「j>>8」描述由散列表指數值i標示之表「ari_hash_m[]」之該分錄「j=ari_hash_m[i]」所表示之一有效狀態值。如此,若變數c值係小於值「j>>8」,則如此表示由變數c所描述之狀態值係小於由表「ari_hash_m[]」之該分錄「j=ari_hash_m[i]」所描述之一有效狀態值。此種情況下,變數「i_max」之值係設定為等於變數i值,而其又具有由「i_min」與「i_max」所界定之該區間大小縮小的效果,其中該新區間係約略等於前一區間的下半。若發現函數「arith_get_pk()」之輸入變數c係大於值「j>>8」,則表示變數c所描述之脈絡值係大於由陣列「ari_hash_m[]」之該分錄「j=ari_hash_m[i]」所描述之一有效狀態值,變數「i_min」之值係設定為等於變數i值。如此,由「i_min」與「i_max」所界定之該區間大小縮小至由變數「i_min」與「i_max」之先前值所界定之先前區間大小之半。更精確言之,由變數「i_min」之更新值與由變數「i_max」之先前值所界定之區間約等於變數c之值係大於由分錄「ari_hash_m[i]」所定義之有效狀態值的該種情況下之先前區間的上半。
但若發現由演繹法則「arith_get_pk()」之輸入變數c所描述的脈絡值係等於由分錄「ari_hash_m[i]」所定義之有效狀態值(亦即c==(j>>8))時,係回送由分錄「ari_hash_m[i]」之最低8-位元所定義之對映規則指數值作為函數「arith_get_pk()」之回送值(指令「回送(j&0xFF)」)。
綜上所述,分錄「ari_hash_m[i]」其最高位元(位元8及以上)描述有效狀態值係在各次迭代重複506ba評估,及由函數「arith_get_pk()」之輸入變數c所描述的脈絡值(或數值目前脈絡值)係與由該表分錄「ari_hash_m[i]」所描述之有效狀態值作比較。若由輸入變數c所表示之脈絡值係小於由該表分錄「ari_hash_m[i]」所表示之有效狀態值,則該表分錄之上邊界(由值「i_max」所描述)縮小;而若由輸入變數c所描述之脈絡值係大於由該表分錄「ari_hash_m[i]」所描述之有效狀態值,則該表分錄之下邊界(由值「i_min」所描述)增加。該等兩種情況下,除非區間(由「i_min」與「i_max」間之差所界定)大小係小於或等於1,否則重複子演繹法則506ba。相反地,若由輸入變數c所描述之脈絡值係等於由該表分錄「ari_hash_m[i]」所描述之有效狀態值,則函數「arith_get_pk()」被捨棄,其中該回送值係由表分錄「ari_hash_m[i]」的最低8-位元所界定。
但若因區間大小達其最小值(「i_max」-「i_min」係小於或等於1)而結束搜尋506b,則函數「arith_get_pk()」之回送值係藉表「ari_lookup_m[]」之一分錄「ari_lookup_m[i_max]」測定,於元件符號506c可知。據此,表「ari_hash_m[]」之分錄定義有效狀態值及區間邊界二者。於子演繹法則506ba,搜尋區間邊界「i_min」與「i_max」係迭代重複地調整,使得散列表指數i所在的該表「ari_hash_m[]」之分錄「ari_hash_m[i]」至少約略係在由區間邊界值「i_min」與「i_max」所界定的搜尋區間中心,至少近似由輸入變數c所描述之脈絡值。除非由輸入變數c所描述之脈絡值係等於由表「ari_hash_m[]」之一分錄所描述之有效狀態值,否則如此達成於子演繹法則506ba之迭代重複完成後,由輸入變數c所描述之脈絡值係位在由「ari_hash_m[i_min]」與「ari_hash_m[i_max]」所界定的區間內部。
但因區間大小(由「i_max-i_min」定義)到達或超過其最小值而子演繹法則506ba之迭代重複結束時,假設由輸入變數c所描述之脈絡值並非有效狀態值。此種情況下,雖言如此使用標示區間上邊界的指數「i_max」。子演繹法則506ba之末次迭代重複所達到的區間上限值「i_max」係再度用作為用以存取表「ari_lookup_m」的表指數值。表「ari_lookup_m[]」描述與多個相鄰數值脈絡值之區間相關聯之對映規則指數。由表「ari_lookup_m[]」之分錄所描述之對映規則指數相關聯之區間係藉由表「ari_hash_m[]」之分錄所描述之有效狀態值定義。表「ari_hash_m[]」之分錄定義相鄰數值脈絡值之有效狀態值及區間之區間邊界。於演繹法則506b之執行,判定由輸入變數c所描述之數值脈絡值是否等於有效狀態值;若非屬此種情況,則判定其係位在由輸入變數c所描述之脈絡值的數值脈絡值的哪一個區間(多個區間中,其邊界係由有效狀態值決定)。如此,演繹法則506b滿足雙重功能:判定輸入變數c是否描述有效狀態值;若否,則識別由輸入變數c所表示之脈絡值所在的且由有效狀態值所界限的一區間。如此,演繹法則506e特別有效且只要求較少次的表存取。
綜上所述,脈絡狀態c測定用來解碼最高有效逐2-位元平面m之累積頻率表。如同函數「arith_get_pk()」執行的從c對映至相對應的累積頻率表指數「pki」。該函數「arith_get_pk()」之虛擬程式碼表示型態已經參考第5e圖解說。
進一步綜上所述,值m係使用以累積頻率表「arith_cf_m[pki][]」呼叫的函數「arith_decode()」解碼,此處「pki」係對應參考第5e圖說明之由函數「arith_get_pk()」所回送之指數(也標示為對映規則指數值)。
11.5.2 使用依據第5f圖之演繹法則進行對映規則選擇
後文中,將參考第5f圖敘述對映規則選擇演繹法則「arith_get_pk()」之另一實施例,該圖顯示此種演繹法則之虛擬程式碼表示型態,其可用於頻譜值之重元組的解碼。依據第5f圖之演繹法則可視為演繹法則「get_pk()」或演繹法則「arith_get_pk()」之最佳化版本(例如速度最佳化版本)。
依據第5f圖之演繹法則「arith_get_pk()」接收描述脈絡狀態之變數c作為輸入變數。輸入變數c例如可表示數值目前脈絡值。
演繹法則「arith_get_pk()」提供變數「pki」作為輸出變數,該變數描述與由輸入變數c所描述的脈絡狀態相關聯之機率分布(或機率模型)指數。變數「pki」可為例如對映規則指數值。
依據第5f圖之演繹法則包含陣列「i_diff[]」內容之定義。如圖可知,陣列「i_diff[]」之第一分錄(具有陣列指數0)係等於299,而其它陣列分錄(具有陣列指數1至8)具有數值149、74、37、18、9、4、2及1。據此,散列表指數值「i_min」之選擇階級大小隨著各次迭代重複而縮小,原因在於陣列「i_diff[]」之分錄定義該等階級大小。有關其細節容後詳述。
但實際上可選擇不同階級大小,例如陣列「i_diff[]」之不同內容,其中陣列「i_diff[]」內容當然可經調整而適應散列表「ari_hash_m[i]」之大小。
須注意恰在演繹法則「arith_get_pk()」的起始,變數「i_min」經初始化而具有0值。
於初始化步驟508a,變數s係與輸入變數c獨立無關地經初始化,其中變數c之數字表示型態係朝左移位8位元來獲得變數s之數字表示型態。
隨後,執行表搜尋508b,來識別散列表「ari_hash_m[]」之一分錄的散列表指數值「i_min」,使得由脈絡值c所描述脈絡值位在由散列表分錄「ari_hash_m[i_min]」所描述之脈絡值與另一散列表分錄「ari_hash_m」所描述之脈絡值所界限的一區間,該另一散列表分錄「ari_hash_m」係相鄰於(就其散列表指數值而言)散列表分錄「ari_hash_m[i_min]」。如此,演繹法則508b允許測定標示散列表「ari_hash_m[]」之一分錄「j=ari_hash_m[i_min]」的散列表指數值「i_min」,使得散列表分錄「ari_hash_m[i_min]」至少近似由輸入變數c所描述之脈絡值。
表搜尋508b包含子演繹法則508ba之迭代重複執行,其中該子演繹法則508ba係執行預定次數,例如9次迭代重複。於子演繹法則508ba之第一步驟,變數i係設定為等於變數「i_min」之值與表分錄「i_diff[k]」之值之和。此處須注意k為運行變數,其係以子演繹法則508ba的各次迭代重複,始於k=0之初值遞增。陣列「i_diff[]」定義預定遞增值,其中遞增值係隨表指數k的增加亦即隨迭代重複次數的增加而減低。
於子演繹法則508ba之第二步驟,表分錄「ari_hash_m[]」之值拷貝入變數j。較佳,表「ari_hash_m[]」之表分錄的最高位元描述數值脈絡值之有效狀態值,表「ari_hash_m[]」之表分錄的最低位元(位元0至7)描述與個別有效狀態值相關聯之對映規則指數值。
於子演繹法則508ba之第三步驟,變數S之值係與變數j之值作比較,當變數s之值係大於變數j之值時,變數「i_min」選擇性地設定為值「i+1」。隨後,子演繹法則508ba之第一步驟、第二步驟、及第三步驟重複預定次數,例如九次。如此,於子演繹法則508ba各次執行時,變數「i_min」之值遞增i_diff[]+1,若且唯若由目前有效散列表指數i_min+i_diff[]所描述的脈絡值係小於由輸入變數c所描述的脈絡值。據此,於子演繹法則508ba各次執行時,散列表指數值「i_min」係(迭代重複地)增加,若(且唯若)由輸入變數c及結果由變數s所描述的脈絡值係大於由分錄「ari_hash_m[i=i_min+diff[k]]」所描述的脈絡值。
此外,須注意在子演繹法則508ba各次執行時,只執行單次比較,亦即比較變數s值是否大於變數j值。據此,演繹法則508ba特別地運算有效。此外,須注意就變數「i_min」之終值有不同的可能結果。舉例言之,末次執行子演繹法則512ba後,可能變數「i_min」值使得由表分錄「ari_hash_m[i_min]」所描述的脈絡值係小於由輸入變數c所描述之脈絡值,而由表分錄「ari_hash_m[i_min+1]」所描述的脈絡值係大於由輸入變數c所描述之脈絡值。另外,可能末次執行子演繹法則508ba後,由散列表分錄「ari_hash_m[i_min-1]」所描述的脈絡值係小於由輸入變數c所描述之脈絡值,而由表分錄「ari_hash_m[i_min]」所描述的脈絡值係大於由輸入變數c所描述之脈絡值。但另外,可能由散列表分錄「ari_hash_m[i_min]」所描述的脈絡值係等於由輸入變數c所描述之脈絡值。
因此理由故,執行基於決策的回送值提供508c。變數j係設定為具有散列表分錄「ari_hash_m[i_min]」之值。隨後,判定由輸入變數c(及也由變數s)所描述之脈絡值是否大於由分錄「ari_hash_m[i_min]」所描述的脈絡值(藉條件「s>j」定義之第一種情況);或由輸入變數c所描述之脈絡值是否小於由分錄「ari_hash_m[i_min]」所描述的脈絡值(藉條件「c<j>>8」定義之第二種情況);或由輸入變數c所描述之脈絡值是否等於由分錄「ari_hash_m[i_min]」所描述的脈絡值(第三種情況)。
於第一情況(s>j),由表指數值「i_min+1」標示的表「ari_lookup_m[]」之分錄「ari_lookup_m[i_min+1]」係回送作為函數「arith_get_pk()」之輸出值。於第二情況(c<(j>>8)),由表指數值「i_min」標示的表「ari_lookup_m[]」之分錄「ari_lookup_m[i_min]」係回送作為函數「arith_get_pk()」之輸出值。於第三情況(亦即當由輸入變數c所描述之脈絡值等於由表分錄「ari_hash_m[i_min]」所描述的有效狀態值時),由散列表分錄「ari_hash_m[i_min]」之最低8-位元所描述的對映規則指數值係回送作為函數「arith_get_pk()」之輸出值。
綜上所述,於步驟508b執行特別簡單的表搜尋,其中該表搜尋提供變數「i_min」的變數值,而未區別由輸入變數c所描述之脈絡值是否等於由分錄「ari_hash_m[]」所描述的有效狀態值。接續於表搜尋508b執行的步驟508c中,評估由輸入變數c所描述之脈絡值與由散列表分錄「ari_hash_m[i_min]」所描述的有效狀態值間之幅度關係,依據該評估結果而選擇函數「arith_get_pk()」之回送值,其中於表評估508b所測定之該變數「i_min」的變數值係經考慮來選擇對映規則指數值,即便由輸入變數c所描述之脈絡值係與由散列表分錄「ari_hash_m[i_min]」所描述的有效狀態值相異亦如此。
進一步須注意較佳(或另外)係在脈絡指數(數值脈絡值)c與j=ari_hash_m[i]>>8間進行演繹法則之比較。確實,表「ari_hash_m[]」之各個分錄表示一個脈絡指數,編碼超過第八位元,及其編碼在首八個位元(最低有效位元)之相對應機率模型。於目前實施例,發明人主要關注在知曉目前脈絡c是否大於ari_hash_m[i]>>8,其係相當於檢測s=c<<8是否也係大於ari_hash_m[i]。
綜上所述,一旦脈絡狀態資訊經計算得(例如可使用依據第5c圖之演繹法則「arith_get_context(c,i,N)」或依據第5c圖之演繹法則「arith_get_context(c,i)」達成),最高有效逐2-位元平面係使用與脈絡狀態對應的機率模型相對應的適當累積頻率表呼叫的演繹法則「arith_decode」(容後詳述)解碼。對應關係係藉函數「arith_get_pk()」完成,例如已經參考第5f圖討論之函數「arith_get_pk()」。
11.6 算術解碼 11.6.1 使用依據第5g圖之演繹法則的算術解碼
後文中,將參考第5g圖討論函數「arith_decode()」之功能。
須注意函數「arith_decode()」使用輔助(helper)函數「arith_first_symbol(void)」,若其為該序列之第一符元則回送真(TRUE),否則即回送偽(FALSE)。函數「arith_decode()」也使用輔助函數「arith_get_next_bit(void)」,其獲得且提供該位元串流之下一位元。
此外,函數「arith_decode()」使用通用變數「低」、「高」及「值」。又,函數「arith_decode()」接收變數「cum_freq[]」作為輸入變數,其指向所選累積頻率表或累積頻率子表的第一分錄或元素(具有元素指數或分錄指數0)。又,函數「arith_decode()」使用輸入變數「cfl」,其指示標示以變數「cum_freq[]」之所選累積頻率表或累積頻率子表的長度。
函數「arith_decode()」包含變數初始化570a作為第一步驟,若輔助函數「arith_first_symbol()」指示正在解碼一序列符元的第一符元,則執行此一步驟。值初始化550a依據使用輔助函數「arith_get_next_bit」而得自位元串流的多個例如16位元而初始化變數「值」,使得變數「值」具有由該等位元所表示之值。又,變數「低」係初始化具0值,而變數「高」係初始化具65535值。
於第二步驟570b,變數「範圍」係設定為比變數「高」與「低」值間之差值大1之值。變數「cum」係設定為表示變數「高」值與變數「低」值間之變數「值」之值的相對位置之一值。據此,依據變數「值」之值,變數「cum」係具有例如0至216 間之值。
指標器p係經初始化為比所選累積頻率表之起始位址小1之值。
演繹法則「arith_decode()」也包含重複累積頻率表搜尋570c。重複累積頻率表搜尋係重複直至變數cfl係小於或等於1為止。於重複累積頻率表搜尋570c,指標器變數q係設定為一值,其係等於指標器變數p與變數「cfl」之值之半的和。若所選累積頻率表之分錄*q(該分錄係藉指標器變數q定址)之值係大於變數「cum」之值,則指標器變數p係設定為指標器變數q之值,及遞增變數「cfl」。最後,變數「cfl」向右移位一個位元,藉此有效地將變數「cfl」之值除以2及忽略模(modulo)部分。
據此,重複累積頻率表搜尋570c有效地比較變數「cum」之值與多選累積頻率表之多個分錄來識別該所選累積頻率表內部之一區間,該區間係由該累積頻率表之分錄所界限,使得值cum係位在所識別的區間內部。如此,所選累積頻率表之分錄界定區間,其中個別符元值係與所選累積頻率表之區間各自相關聯。又,兩相鄰累積頻率表之值間的區間寬度定義與該等區間相關聯之之符元機率,如此所選累積頻率表整體界定不同符元(或符元值)的機率分布。有關可用累積頻率表之細節將參考第23圖討論如下。
再度參考第5g圖,符元值係從指標器變數p值導算,其中該符元值係如元件符號570d所示而導算。如此,指標器變數p值與起始位址「cum_freq」之值間之差係經評估來獲得符元值,其係以變數「符元」表示。
演繹法則「arith_decode」也包含變數「高」及「低」的適應性570e。若以變數「符元」表示之符元值為非零,則更新變數「高」,如元件符號570e所示。又,更新變數「低」,如元件符號570e所示。變數「高」係設定為由變數「低」、變數「範圍」及所選累積頻率表之具有指數「符元-1」之分錄所測定之值。變數「低」增加,其中增加幅度係由變數「範圍」及所選累積頻率表之具有指數「符元」的分錄所測定。如此,變數「低」與「高」之值間之差係依據兩相鄰所選累積頻率表之分錄間之數值差調整。
擬此,若檢測得具有低機率之符元值,則變數「低」與「高」之值間之區間縮小成狹窄寬度。相反地,若檢測得之符元值包含相當高機率,則變數「低」與「高」之值間之區間設定為較大值。再度,變數「低」與「高」之值間之區間寬度係取決於所檢測之符元及對應的累積頻率表分錄。
演繹法則「arith_decode()」也包含區間重整化570f,其中於步驟570e測定的區間重複地移位與定標直至達到「中斷」狀況。於區間重整化570f,執行選擇性向下移位操作570fa。若變數「高」係小於32768,則不做任何動作,區間重整化繼續區間大小增加操作570fb。但若變數「高」係不小於32768,而若變數「低」係大於或等於32768,則變數「值」、「低」及「高」全部減少32768,使得由變數「低」及「高」所界定的區間向下移位,以及使得變數「值」之值也向下移位。但若發現變數「高」係不小於32768,而若變數「低」係不大於或等於32768,以及變數「低」係大於或等於16384,而若變數「高」係小於49152,則變數「值」、「低」及「高」全部減少16384,藉此變數「高」與「低」間之值及亦變數「值」之值也向下移位。但若未滿足前述任一條件,則捨棄區間重整。
但若滿足步驟570fa所評估的前述任一條件,則執行區間增加操作570fb。於區間增加操作570fb,變數「低」之值加倍。又,變數「高」之值加倍,加倍結果再加1。又,變數「值」之值加倍(向左移位一個位元),及藉輔助函數「arith_get_next_bit」所得位元串流之一位元用作為最低有效位元。據此,變數「低」與「高」之值間之區間大小約略加倍,及變數「值」之精度藉由使用位元串流之一新位元而增加。如前文說明,重複步驟570fa及570fb直至達「中斷」條件,亦即直至變數「低」與「高」之值間之區間夠大為止。
有關演繹法則「arith_decode()」之功能,須注意變數「低」與「高」之值間之區間於步驟570e縮小,取決於標示以變數「cum_freq」之該累積頻率表之兩相鄰分錄。若所選累積頻率表之兩相鄰值間之區間小,亦即若相鄰值較為接近,則步驟570e所得的變數「低」與「高」之值間之區間將較小。相反地,若所選累積頻率表之兩相鄰分錄間隔遠離,亦即若相鄰值較為接近,則步驟570e所得的變數「低」與「高」之值間之區間將較大。
結果,若步驟570e所得的變數「低」與「高」之值間之區間為較小,則將執行大量區間重整步驟來重定標區間至「足夠」大小(使得條件評估570fa的條件皆未滿足)。據此,將使用得自位元串流之較大量位元來增高變數「值」之精度。相反地,若步驟570e所得區間大小為較大,將要求較少數的區間重整步驟570fa及570fb之重複來將變數「低」與「高」之值間之區間重整為「足夠」大小。據此,將只使用較少數得自位元串流之位元來增加變數「值」之精度,及準備下一符元的解碼。
綜上所述,若解碼一符元,其包含較高機率,及所選累積頻率表分錄相關聯之一大區間,則從該位元串流只讀取較少數位元來允許接續其後之符元的解碼。相反地,若解碼一符元,其包含較低機率,及所選累積頻率表分錄相關聯之一小區間,則從該位元串流只讀取較大量位元來準備下一符元的解碼。
據此,累積頻率表之分錄反映不同符元之機率,及也反映解碼一序列符元所需位元數目。藉由依據脈絡,亦即依據對先前解碼符元(或頻譜值)之相依性,例如藉由依據脈絡選擇不同累積頻率表而變更累積頻率表,可探討不同符元間之隨機相依性,其允許特別位元率有效的隨後(或相鄰)符元的編碼。
綜上所述,已經參考第5g圖描述之函數「arith_decode()」係與對應於由函數「arith_get_pk()」回送的指數「pki」之累積頻率表「arith_cf_m[pki][]」呼叫,檢測定最高有效位元平面值m(其可設定為由回送變數「符元」所表示之符元值)。
綜上所述,算術解碼器為使用以定標而產生標籤之方法的整數實施例。有關其細節請參考書籍「資料壓縮介紹」作者K. Sayood,第三版2006年,Elsevier Inc.。
依據第5g圖之電腦程式碼描述依據本發明之實施例所使用的演繹法則。
11.6.2 依據第5h及5i圖使用演繹法則之算術解碼
第5h及5i圖顯示演繹法則「arith_decode()」之另一實施例的虛擬程式碼表示型態,其可用作為參考第5g圖所述演繹法則「arith_decode」之替代之道。
須注意依據第5g圖及第5h及5i圖之演繹法則二者可用於依據第3圖之演繹法則「arith_decode()」。
要言之,值m係使用與累積頻率表「arith_cf_m[pki][]」呼叫的函數「arith_decode()」解碼,其中「pki」係對應於由函數「arith_get_pk()」所回送的指數。算術編碼器(或解碼器)為使用以定標而產生標籤之方法的整數實施例。有關其細節請參考書籍「資料壓縮介紹」作者K. Sayood,第三版2006年,Elsevier Inc.。依據第5h及5i圖之電腦程式碼描述所使用的演繹法則。
11.7 脫序機制
後文中將簡短討論用於依據第3圖之解碼演繹法則「values_decode()」之脫序機制。
當解碼值m(作為函數「arith_decode()」之回送值提供)為脫序符元「ARITH_ESCAPE」時,變數「lev」及「esc_nb」遞增1,而另一值m經解碼。此種情況下,函數「arith_get_pk()」再度以值「c+esc_nb<<17」呼叫,此處變數「esc_nb」描述先前對相同2-重元組解碼且囿限於7之脫序符元數目。
要言之,當識別脫序符元時,假設最高有效位元平面值m包含增加的數值權值。此外,重複目前數值解碼,其中修正的數值目前脈絡值「c+esc_nb<<17」係用作為函數「arith_get_pk()」之輸入變數。據此,於子演繹法則312ba之不同迭代重複,典型地獲得不同對映規則指數值「pki」。
11.8 算術終止機制
後文將描述算術終止機制。算術終止機制允許於音訊編碼中較高頻率部分完全量化為0之情況下減少所需位元數目。
於一實施例,算術終止機制可實施如下:一旦值m非為脫序符元「ARITH_ESCAPE」,解碼器檢查連續m是否形成「ARITH_ESCAPE」符元。若條件「esc_nb>0&&m==0」為真,則檢測得「ARITH_ESCAPE」符元且結束解碼處理程序。此種情況下,解碼器直接跳至「arith_finish()」函數,容後詳述。該條件表示該框其餘部分係由0值組成。
11.9 最低有效位元平面解碼
後文中,將描述一或多個最低有效位元平面之解碼。最低有效位元平面之解碼例如係於第3圖所示步驟312d進行。但另外,也可使用第5j及5n圖所示演繹法則。
11.9.1 依據第5j圖之最低有效位元平面解碼
現在參考第5j圖,可知變數a及b值係從值m導算出。值m之數字表示型態向右移位2-位元來獲得變數b之數字表示型態。此外,變數a之值係經由從變數m值減變數b值之向左移位2-位元的位元移位版本獲得。
隨後,重複最低有效位元平面值r之算術解碼,其中重複次數係由變數「lev」值測定。最低有效位元平面值r係使用函數「arith_decode」獲得,其中使用適應於最低有效位元平面之解碼的累積頻率表(累積頻率表「arith_cf_r」)變數r之最低有效位元(具有數值權值1)描述由變數a所表示之頻譜值的最低有效位元平面,及變數r之具有數值權值2之一位元描述變數b所表示之頻譜值的最低有效位元。據此,經由將變數a向左移位1位元及加變數r之具有數值權值1之一位元作為最低有效位元,變數a經更新。同理,經由將變數b向左移位1位元及加變數r之具有數值權值2之一位元作為最低有效位元,變數b經更新。
據此,變數a、b位元之兩個載有最高有效資訊之位元係藉最高有效位元平面值m測定,及值a及b之一或多個最低有效位元(若有)係由一或多個最低有效位元平面值r測定。
綜上所述,當不符合「ARITH_STOP」符元時,然後對目前2-重元組解碼其餘位元平面(若存在)。其餘位元平面係藉由使用累積頻率表「arith_cf_r[]」呼叫函數「arith_decode()」「lev」次數而從最高有效位階至最低有效位階解碼。已解碼位元平面r允許依據其虛擬程式碼表示型態係顯示於第5j圖之該演繹法則,而精製先前已解碼的值m。
11.9.2依據第5n圖之最低有效位元頻帶解碼
但另外,其虛擬程式碼表示型態係顯示於第5n圖之該演繹法則也可用於最低有效位元平面解碼。此種情況下,若未滿足「ARITH_STOP」符元,則對目前2-重元組解碼其餘位元平面(若存在)。其餘位元平面係藉由使用累積頻率表「arith_cf_r()」呼叫函數「arith_decode()」「lev」次數而從最高有效位階至最低有效位階解碼。已解碼位元平面r允許依據其虛擬程式碼表示型態係顯示於第5n圖之該演繹法則,而精製先前已解碼的值m。
11.10 脈絡更新 11.10.1 依據第5k、5l及5m圖之脈絡更新
後文中,將參考第5k及5l圖,描述使用以完成頻譜值之重元組解碼之操作。此外,將描述用來完成與音訊內容之目前部分(例如目前訊框)相關聯之一頻譜值之重元組集合解碼之操作。
現在參考第5k圖,可知在最低有效位元解碼312d之後,陣列「x_ac_dec[]」之具有分錄指數2*i之分錄係設定為等於a,而陣列「x_ac_dec[]」之具有分錄指數「2*i+1」之分錄係設定為等於b。換言之,在最低有效位元解碼312d之後該點,2-重元組(a,b)之無符號值完全經解碼。依據第5k圖所示演繹法則,儲存在保有頻譜係數的元素(例如陣列「x_ac_dec[]」)。
隨後,也對下一個2-重元組更新脈絡「q」。須注意此一脈絡更新也須對最末2-重元組施行。此脈絡更新係藉其虛擬程式碼表示型態係顯示於第5l圖之該函數「arith_update_context()」執行。
現在參考第5l圖,可知函數「arith_update_context(i,a,b)」接收2-重元組之已解碼無符號之已量化頻譜係數(或頻譜值)作為輸入變數。此外,函數「arith_update_context()」也接收欲解碼之已量化頻譜值之指數i(例如頻率指數)作為輸入變數。換言之,輸入變數i例如可為其絕對值係由輸入變數a、b所定義之頻譜值之重元組指數。如圖可知,陣列「q[][]」之分錄「q[1][i]」可設定為等於a+b+1之值。此外,陣列「q[][]」之分錄「q[1][i]」之值可限於「0xF」之十六進制值。如此,陣列「q[][]」之分錄「q[1][i]」係經由運算具有頻率指數i之頻譜值的目前已解碼重元組{a,b}之絕對值之和及將和值結果加1獲得。
此處須注意陣列「q[][]」之分錄「q[1][i]」可視為脈絡子區值,原因在於其描述用於額外頻譜值(或頻譜值之重元組)隨後解碼的該脈絡之一子區。
此處須注意兩個目前已解碼頻譜值之絕對值a及b(其有符號版本係儲存在陣列「x_ac_dec[]」之分錄「x_ac_dec[2*i]」及「x_ac_dec[2*i+1]」)的加總可視為已解碼頻譜值之範數(例如L1範數)之運算。
業已發現其描述由多個先前已解碼的頻譜值形成的向量之範數之該脈絡子區值(亦即陣列「q[][]」之分錄)特別有意義及記憶體有效。業已發現其係基於多個先前已解碼的頻譜值之此種範數包含精簡形式的有意義脈絡資訊。業已發現頻譜值符號對脈絡的選擇並非特別相關。業已發現橫過多個先前已解碼的頻譜值之範數的形成,典型地維持最重要資訊,即便捨棄若干細節亦如此。此外,業已發現數值目前脈絡值限於最大值典型地不會導致資訊的嚴重遺漏。反而,業已發現對大於預定臨界值的有效頻譜值使用相同脈絡狀態更加有效。如此,脈絡子區值之限制獲致記憶體效率的進一步改良。又復,脈絡子區值限在某個最大值允許特別簡單且運算有效的數值目前脈絡值之更新,其例如已經參考第5c及5d圖說明。藉由將脈絡子區值限於較小值(例如限於值15),基於多個脈絡子區值之脈絡狀態可以有效形式表示,已經參考第5c及5d圖討論。
此外,業已發現脈絡子區值限於值1至15,獲致準確度與記憶體效率間的特佳折衷,原因在於4位元即足以儲存此種脈絡子區值。
但須注意於若干其它實施例,脈絡子區值可只基於單一解碼頻譜值。此種情況下,範數的形成可選擇性地被刪除。
該訊框之次一2-重元組係在函數「arith_update_context」完成後解碼,解碼方式係藉由i遞增1,及始於函數「arith_update_context()」重做前述相同處理程序。
當1g/2 2-重元組在訊框內部解碼或出現依據「ARITH_ESCAPE」的終止符元時,頻譜幅度之解碼處理程序結束而符號的解碼開始。
有關符號的解碼細節已經參考第3圖討論,其中符號的解碼係顯示於元件符號314。
一旦全部無符號而已量化的頻譜係數皆已解碼,加上根據符號。對各個非空(non-null)量化值「x_ac_dec」,讀取一位元。若所讀取的位元值係等於0,則該量化值為正,未做任何動作,及符號值係等於先前已解碼的無符號值。否則(亦即若所讀取的位元值係等於1)即為負,2之補數係取自無符號值。符號位元係從低頻自高頻讀取。有關細節已經參考第3圖討論及參考符號的解碼說明。
藉由呼叫函數「arith_finish()」完成解碼。其餘頻譜係數係設定為0。個別脈絡狀態係據此而更新。
有關其細節請參考第5m圖,其顯示函數「arith_finish()」之虛擬程式碼表示型態。如圖可知,函數「arith_finish()」接收輸入變數lg,其描述已解碼之已量化頻譜係數。較佳函數「arith_finish」之輸入變數lg描述實際上解碼之頻譜係數數目,未考慮頻譜係數,回應於「ARITH_STOP」的檢測已分派0值。函數「arith_finish」之輸入變數N描述目前窗(亦即與音訊內容之目前部分相關聯之窗)之窗長度。典型地,與長度N之窗相關聯之頻譜值數目係等於N/2,而與長度N之窗相關聯之頻譜值之2-重元組數目係等於N/4。
函數「arith_finish」也接收已解碼的頻譜值之向量「x_ac_dec」作為輸入值,或至少參考此種已解碼的頻譜值之向量。
函數「arith_finish」係組配來設定陣列(或向量)「x_ac_dec」分錄為0,並無頻譜值因算術終止條件的存在而已經解碼。此外,函數「arith_finish」設定脈絡子區值「q[1][i]」為預定值1,該脈絡子區值係與並無任何值因算術終止條件的存在而已經解碼的頻譜值相關聯。預定值1係與頻譜值之重元組相對應,其中二頻譜值係等於0。
據此,函數「arith_finish()」允許更新頻譜值之整個陣列(或向量)「x_ac_dec[]」及亦脈絡子區值之整個陣列「q[1][i]」,即便於算術終止條件存在下亦如此。
11.10.2 依據第5o及5p圖之脈絡更新
後文將參考第5o及5p圖描述脈絡更新之另一實施例。2-重元組(a,b)之無符號值完全解碼該點,然後對下一2-重元組更新脈絡q。目前2-重元組為最末2-重元組時也進行更新。兩項更新係藉函數「arith_update_context()」執行,其虛擬程式碼表示型態係顯示於第5o圖。
然後該訊框之下一個2-重元組係藉將i遞增1及呼叫函數「arith_decode()」而解碼。若lg/2 2-重元組已經以該訊框解碼或若出現終止符元「ARITH_STOP」,則呼叫函數「arith_finish()」。儲存脈絡,及儲存於下一訊框之陣列(或向量)「qs」。函數「arith_save_context()」之虛擬程式碼表示型態係顯示於第5p圖。
一旦全部無符號已量化頻譜係數已經解碼,則加符號。對各個未經量化值「qdec」,讀取一位元。若讀取位元值係等於0,則量化值為正,未做任何動作,及有符號值係等於先前已解碼的無符號值。否則,已解碼係數為負,及從無符號值讀2之補數。有符號位元係自低頻至高頻讀取。
11.11 解碼處理程序之概要
後文中,將簡短摘述解碼處理程序。有關其細節請參考前文討論及亦第3、4、5a、5c、5e、5g、5j、5k、5l及5m圖。量化頻譜係數「x_ac_dec[]」係始於最低頻係數及前進至最高頻係數而無雜訊地解碼。其係由集合在所謂2-重元組(a,b)的成組兩個連續係數a,b解碼。
然後,頻域(亦即頻域模式)之已解碼係數「x_ac_dec[]」係儲存在陣列「x_ac_quant[g][win][sfb][bin]」。無雜訊編碼碼字組之傳輸順序使得當其以所接收的順序解碼及儲存於陣列時,「倉(bin)」為最快遞增的指數,及「g」為最慢遞增的指數。在碼字組內部,解碼順序為a,然後為b。「TCX」之已解碼係數「x_ac_dec[]」(亦即使用變換編碼激勵之音訊解碼)係儲存(例如直接儲存)在陣列「x_tex_invquant[win][bin]」,及無雜訊編碼碼字組之傳輸順序使得當其以所接收的順序解碼及儲存於陣列時,「倉」為最快遞增的指數,及「win」為最慢遞增的指數。在碼字組內部,解碼順序為a,然後為b。
首先,旗標「arith_reset_flag」判定脈絡是否須復置。若旗標為真,則在函數「arith_map_context」考慮此點。
解碼處理程序始於初始化期,此處藉由拷貝及對映儲存在「q[1][]」的前一框的脈絡元素至「q[0][]」,更新脈絡元素向量「q」。「q內部的脈絡元素係以每2-重元組4-位元儲存。有關其細節請參考第5a圖之虛擬程式碼。
無雜訊解碼器輸出無符號已量化之頻譜係數之2-重元組。首先,脈絡狀態c係基於環繞欲解碼2-重元組之先前已解碼頻譜係數。因此,只考慮兩個新的2-重元組,使用最末解碼2-重元組之脈絡狀態,遞增更新狀態。狀態係在17-位元解碼,及由函數「arith_get_context」回送。設定函數「arith_get_context」之虛擬程式碼表示型態係顯示於第5c圖。
脈絡狀態c測定用以解碼最高有效逐2-位元平面m之累積頻率表。從c對映至相對應的累積頻率表「pki」係藉函數「arith_get_pk()」執行。函數「arith_get_pk()」之虛擬程式碼表示型態係顯示於第5e圖。
使用累積頻率表「arith_cf_m[pki][]」呼叫的函數「arith_get_pk()」,解碼值m,此處「pki」係對應由「arith_get_pk()」回送的指數。算術編碼器(及解碼器)為使用定標標籤產生方法之整數實施例。依據第5g圖之虛擬程式碼描述所使用的演繹法則。
當解碼值m為脫序符元「ARITH_ESCAPE」時,變數「lev」及「esc_nb」遞增1,而另一值m經解碼。此種情況下,函數「get_pk()」再度以值「c+esc_nb<<17」作為輸入爭議呼叫,此處變數「esc_nb」描述先前對相同2-重元組解碼且囿限於7之脫序符元數目。
一旦值m非為脫序符元「ARITH_ESCAPE」,解碼器檢查連續m是否形成「ARITH_STOP」符元。若條件「esc_nb>0&&m==0」為真,則檢測得「ARITH_STOP」符元且結束解碼過程。解碼器直接跳至符號解碼,容後詳述。該條件表示該框其餘部分係由0值組成。
若不符合「ARITH_STOP」符元,則對目前2-重元組解碼其餘位元平面(若存在)。其餘位元平面係藉由使用累積頻率表「arith_cf_r[]」呼叫函數「arith_decode()」「lev」次數而從最高有效位階至最低有效位階解碼。已解碼位元平面r允許依據其虛擬程式碼表示型態係顯示於第5j圖之該演繹法則,而精製先前已解碼的值m。此時,2-重元組(a,b)之無符號值完全經解碼。其係依據虛擬程式碼表示型態係顯示於第5k圖之該演繹法則儲存入保有頻譜係數之元素。
脈絡「q」也對下一個2-重元組更新。須注意此種脈絡更新也係對最末2-重元組執行。此種脈絡更新係藉其虛擬程式碼表示型態顯示於第51圖之函數「arith_update_context()」執行。
該訊框之次一2-重元組然後係藉由i遞增1,及始於函數「arith_update_context()」重做如前文說明之相同處理程序。當1g/22-重元組在訊框內部解碼或出現「ARITH_STOP」的終止符元時,頻譜幅度之解碼處理程序結束而符號的解碼開始。
解碼係藉呼叫函數「arith_finish()」完成。其餘頻譜係數係設定為0。個別脈絡狀態係對應地更新。函數「arith_finish()」之虛擬程式碼表示型態係顯示於第5m圖。
一旦全部無符號而已量化的頻譜係數皆已解碼,加上根據符號。對各個非空量化值「x_ac_dec」,讀取一位元。若所讀取的位元值係等於0,則該量化值為正,未做任何動作,及符號值係等於先前已解碼的無符號值。否則已解碼係數為負,2之補數係取自無符號值。符號位元係從低頻自高頻讀取。
11.12 圖說
第5q圖顯示與依據第5a、5c、5e、5f、5j、5k、5l及5m圖之演繹法則相關的定義圖說。
第5r圖顯示與依據第5b、5d、5f、5h、5i、5n、5o及5p圖之演繹法則相關的定義圖說。
12. 對映表
於依據本發明之實施例,特佳表「ari_1ookup_m」、「ari_hash_m」及「ari_cf_m」係用於依據第5e圖或第5f圖之函數「arith_get_pk()」之執行,以及用於參考第5g、5h及5i圖討論之函數「arith_decode()」之執行。但須注意不同表可用於依據本發明之若干實施例。
12.1 依據第22圖之表「ari_hash_m[600]」
函數「arith_get_pk」(其第一實施例係參考第5e圖描述及其第二實施例係參考第5f圖描述)所使用的表「ari_hash_m」之特佳實施例之內容係顯示於第22圖之表。須注意第22圖之表係列舉表(或陣列)「ari_hash_m[600]」之600個分錄。也須注意第22圖之表表示型態係以元素指數之順序顯示元素,使得第一值「0x000000100UL」係對應具元素指數(或表指數)0之表分錄「ari_hash_m[0]」,及使得最末值「0x7ffffffff4fUL」係對應具元素指數或表指數599之表分錄「ari_hash_m[599]」。此處須注意「0x」指出表「ari_hash_m[]」之表分錄係以十六進制格式表示。此外,此處須注意字尾「UL」指出表「ari_hash_m[]」之表分錄係以無符號的「長」整數值(具有32-位元精度)表示。
此外,須注意依據第22圖之表「ari_hash_m[]」之表分錄係以數值順序排列,來允許表搜尋506b、508b、510b函數「arith_get_pk()」的執行。
進一步須注意表「ari_hash_m」之表分錄之最高有效24-位元表示有效狀態值,而最低有效8-位元表示對映規則指數值「pki」。如此,表「ari_hash_m[]」之表分錄描述脈絡值「直接命中」對映對映規則指數值「pki」。
但表「ari_hash_m[]」之表分錄之最高有效24-位元同時表示相同對映規則指數值相關聯的數值脈絡值之區間的區間邊界。有關此一構想細節已經討論如前。
12.2 依據第21圖之表「ari_lookup_m」
表「ari_lookup_m」之特佳實施例內容係顯示於第21圖之表。此處須注意第21圖之表列舉表「ari_lookup_m」之分錄。分錄係以一維整數型分錄指數(也標示為「元素指數」或「陣列指數」或「表指數」)參照,其例如標示以「i_max」或「i_min」。須注意表「ari_lookup_m」共包含600分錄,極為適合由依據第5e圖或第5f圖之函數「arith_get_pk」使用。也須注意依據第21圖之表「ari_lookup_m」適用於與依據第22圖之表「ari_hash_m」協力合作。
須注意表「ari_lookup_m」之分錄係以0至599的表指數「i」(例如「i_min」或「i_max」)之上升順序列舉。項「0x」指示以十六進制格式描述之表分錄。據此,第一表分錄「0x02」係對應具有表指數0之表分錄「ari_lookup_m[0]」,及最末表分錄「0x5E」係對應具有表指數599之表分錄「ari_lookup_m[599]」。
也須注意表「ari_lookup_m[]」之分錄係與由表「ari_hash_m[]」之相鄰分錄界定的區間相關聯。如此,表「ari_lookup_m」之分錄描述與數值脈絡值之區間相關聯之對映規則指數值,其中該等區間係由表「ari_hash_m」之分錄界定。
12.3 依據第23圖之表「ari_cf_m[96][17]」
第23圖顯示一個96累積頻率表(或子表)「ari_cf_m[96][17]」集合,其中之一者係由音訊編碼器100、700或音訊解碼器200、800(舉例)選擇用以執行函數「arith_decode()」,亦即用於最高有效位元平面值之解碼。第23圖所示96累積頻率表(或子表)中之一個選定者於函數「arith_decode()」之執行中發揮表「cum_freq[]」之功能。
如由第23圖可知,各個子區塊表示具17分錄的一個累積頻率表。舉例言之,第一子區塊2310表示「pki=0」之一累積頻率表的17分錄。第二子區塊2312表示「pki=1」之一累積頻率表的17分錄。最後,第96子區塊2396表示「pki=95」之一累積頻率表的17分錄。如此,第23圖有效表示「pki=0」至「pki=95」的96不同累積頻率表(或子表),其中96累積頻率表各自係以一個子區塊(以大括號括出)表示,及其中該等累積頻率表各自包含17分錄。
於一個子區塊(例如子區塊2310或2312,或子區塊2396)內部,第一值係描述累積頻率表之第一分錄(具有陣列指數或表指數0),及最末值係描述累積頻率表之最末分錄(具有陣列指數或表指數16)。
據此,第23圖之表格表示型態之各個子區塊2310、2312、2396表示依據第5g圖或依據第5h及5i圖由函數「arith_decode」所使用的累積頻率表之分錄。函數「arith_decode」之輸入變數「cum_freq[]」描述96個累積頻率表(以表「arith_cf_m」之17個分錄之個別子區塊表示)中的哪一個須用於目前頻譜係數的解碼。
12.4 依據第24圖之表「ari_cf_r[]」
第24圖顯示表「ari_cf_r[]」之內容。
表「ari_cf_r[]」之四個分錄顯示於第24圖。但須注意於其它實施例,表「ari_cf_r[]」最終可能不同。
13. 效能評估及優點
依據本發明之實施例使用如前文討論之已更新之函數(或演繹法則)及已更新之表集合來獲得運算複雜度、記憶體需求與編碼效率間的折衷改良。
概略言之,依據本發明之實施例形成改良型頻譜無雜訊編碼。依據本發明之實施例描述以USAC(統一語音及音訊編碼器)加強頻譜無雜訊編碼。
依據本發明之實施例基於如於MPEG輸入報告m16912及m17002,對頻譜係數之改良型頻譜無雜訊編碼的CE形成已更新的提案。二提案係經評估、消除潛在缺點,及強度經組合。
於m16912及m17002,所得提案係基於基於原先脈絡的算術編碼方案作為工作草稿5 USAC(統一語音及音訊編碼之草擬標準),但可顯著地減少記憶體需求(隨機存取記憶體(RAM)及唯讀記憶體(ROM)),而未增加運算複雜度,同時維持編碼效率。此外,業已證實依據USAC草擬標準之工作草稿5及依據USAC草擬標準之工作草稿3,位元串流之無損耗轉碼為可能。依據本發明之實施例針對置換如用於USAC草擬標準之工作草稿5的頻譜無雜訊編碼方案。
此處描述之算術編碼方案係基於USAC草擬標準之工作草稿5(WD)之參考模型0(RM0)之方案。頻率或時間上的頻譜係數模型化脈絡。此一脈絡係用於算術編碼器的累積頻率表之選擇。比較工作草稿5(WD),脈絡模型化進一步改良,保有符元機率之表接受重新訓練。不同機率模型數目從32增至96。
依據本發明之實施例縮小表的大小(資料ROM需求)至1518個長度32-位元的字組或6072-位元組(WD 5:16,894.5字組或67,578-位元組)。靜態RAM需求從每個核心編碼器通道666字組(2,664位元組)減至72字組(288位元組)。同時,完全保有編碼效能,且比較全部9個運算點的總資料率,甚至可達約1.29%至1.95%增益。全部工作草稿3及工作草稿5位元串流可以無損耗式轉碼而未影響位元貯器限制。
後文中,將提供依據USAC草擬標準之工作草稿5的編碼構想之簡短討論來協助瞭解此處所述構想之優點。隨後,將描述依據本發明之若干較佳實施例。
於USAC工作草稿5,基於脈絡之算術編碼方案係用於量化頻譜係數的無雜訊編碼。使用頻率上及時間上在先的已解碼頻譜係數作為脈絡。於工作草稿5,使用最多16頻譜係數作為脈絡,其中12者的時間在先。又,用於脈絡且欲解碼的頻譜係數係群集成4-重元組(亦即頻率上鄰近的4個頻譜係數,參考第14a圖)。脈絡縮減及對映至一累積頻率表,其然後用來解碼下一個頻譜係數之4-重元組。
對完整工作草稿5無雜訊編碼方案,要求16894.5字組(67578位元組)之記憶體需求(唯讀記憶體(ROM))。此外,要求每個核心編碼器通道之666個靜態RAM字組(2664位元組)來儲存下一框的狀態。第14b圖描述用於USAC WD4算術編碼方案之表的表格表示型態。
此處須注意有關無雜訊編碼,USAC草擬標準之工作草稿4及5為相同。二者皆使用相同無雜訊編碼器。
完整USAC WD5解碼器的總記憶體需求估算為對資料ROM而無程式碼為37000字組(148000位元組),而對靜態RAM為10000至17000字組。明白可知無雜訊編碼器表耗用總資料ROM需求的約45%。最大的個別表已經耗用4096字組(16384位元組)。
業已發現全部表的組合及大型個別表之大小二者係超過如由用於消費者可攜式裝置所使用的固定點處理器所提供的典型快取記憶體大小,該大小典型係在8至32千位元組範圍(例如ARM9e、TI C64XX等)。如此表示表集合可能不儲存在快速資料RAM,其允許資料的快速隨機存取。如此造成整個解碼處理程序的減慢。
此外,業已發現目前成功的音訊編碼技術諸如HE-AAC已經證實可在大大半行動裝置上實施。HE-AAC使用具有995字組表大小的霍夫曼熵編碼方案。有關其細節,請參考ISO/IEC JTC1/SC29/WG11 N2005,MPEG98,1998年2月聖荷西市,「MPEG-2 AAC2複雜度修訂報告」。
第90屆MPEG會議,在MPEG輸入報告m16912及m17002,提出兩份提案其係針對減少記憶體需求及改良無雜訊編碼方案之編碼效率。藉由分析二提案,獲得下列結論。
● 藉由縮小碼字組的維度,記憶體需求的減少變成可能。如MPEG輸入文件m17002所示,藉由將維度從4-重元組減成1-重元組,記憶體需求可從16984.5減至900字組而未有損編碼效率;及
● 藉由應用非一致機率分布之碼簿於LSB編碼,替代使用一致機率分布,可去除額外冗餘。
評估過程中,識別從4-重元組移動至1-重元組編碼方案對運算複雜度造成顯著衝擊:編碼維度的縮小係以欲編碼符元數目的相同因數而增加。如此表示從4-重元組減至1-重元組,測定脈絡、存取散列表,及解碼符元所需從事的運算係比先前多四倍。連同脈絡測定之更複雜演繹法則,如此導致運算複雜度遞增2.5或x.xxPCU因數。
後文中將簡單敘述依據本發明之實施例所提示之新方案。
為了克服記憶體足跡(footprint)及運算複雜度議題,提議改良式無雜訊編碼方案來置換工作草稿5(WD5)中的方案。發展中的主要焦點係放在減少記憶體需求,同時維持壓縮效率而不增加運算複雜度。更明確言之,目標係為了達成壓縮效率、複雜度及記憶體需求之多維複雜度空間的良好(或甚至最佳)折衷。
新穎編碼方案提案借用WD5無雜訊編碼器的主要特徵,亦即脈絡適應性。脈絡係使用先前已解碼的頻譜係數導算,如同於WD5,該頻譜係數係來自於過去框及目前框二者(其中一框可視為音訊內容之一部分)。但現在頻譜係數係藉將二係數一起組成形成2-重元組而編碼。另一項差異在於實際上,頻譜係數現在***成三部分:符號、較高有效位元或最高有效位元(MSB)、及較低有效位元或最低有效位元(LSB)。符號係從幅度而獨立編碼,其又再劃分成二部分:最高有效位元(或較最有效位元)及位元其餘部分(或較低有效位元)(若存在)。二元素之幅度係小於或等於3之2-重元組係藉MSB編碼而直接編碼。否則,首先傳輸脫序碼字組用以傳訊任何額外位元平面。於基礎版本中,遺漏的資訊亦即LSB及符號二者皆係使用一致機率分布編碼。另外,可使用不同機率分布。
表大小的縮小仍屬可能,原因在於:
● 只需儲存17符元機率:{[0;+3],[0;+3]}+ESC符元;
● 無需儲存群組表(egroups、dgroups、dgvectors);
● 散列表的大小可以適當訓練加以縮小。
後文中,將敘述有關MSB(最高有效位元)之若干細節。如前文已述,USAC草擬標準之WD5、第90屆MPEG會議遞交的提案與本提案間之表要差異中之一者為符元的維度。於USAC草擬標準之WD5,4-重元組被考慮用在無雜訊編碼之脈絡的產生。於第90屆MPEG會議遞交的提案,使用1-重元組取而代之用來減少ROM需求。發展過程中,發現2-重元組為減少ROM需求的最佳折衷,而未增加運算複雜度。替代考慮四個4-重元組用於脈絡創新,現在考慮四個2-重元組。如第15a圖所示,三個2-重元組係來自過去框(也標示為音訊內容之先前部分),而一個2-重元組係來自現在框(也標示為音訊內容之目前部分)。
表的大小縮小係由於三項主要因素。首先,只需儲存17符元機率(亦即{[0;+3],[0;+3]}+ESC符元)。無需儲存群組表(亦即egroups、dgroups、dgvectors)。最後,散列表的大小可藉實施適當訓練加以縮小。
雖然維度從4減至2,但複雜度仍維持如同USAC草擬標準之WD5之範圍。此項目的係藉由簡化脈絡產生及散列表存取二者而達成。
不同的簡化及最佳化係以編碼效率不受影響,甚至略為改良之方式進行。主要係藉由將機率模型數目從32增至96而達成。
後文中,將敘述有關LSB(最低有效位元)編碼之若干細節。於若干實施例,LSB係以一致機率分布編碼。比較USAC草擬標準之WD5,LSB現在被考慮進2-重元組而非4-重元組。
後文中,將敘述有關符號編碼之若干細節。為了減少複雜度,符號並未使用算術核心編碼器編碼。唯有當相對應幅度為非空(non-null)時符號才以1-位元傳輸。0表示正值而1表示負值。
後文中,將解說有關記憶體需求之若干細節。提出的新穎方案具有至多1522.5新字組(6090位元組)的組ROM需求。有關其細節請參考第15b圖,其描述用於所提示之編碼方案之表。比較於USAC草擬標準之WD5之無雜訊編碼方案的ROM需求,ROM需求減少至少15462字組(61848位元組)。現在最終獲得AAC霍夫曼解碼器於HE-AAC(995字組或3980位元組)所需記憶體需求的相同次冪幅度。有關其細節請參考ISO/IEC JTC1/SC29/WG11 N2005,MPEG98,1998年2月聖荷西市,「MPEG-2 AAC2複雜度修訂報告」,及也參考第16a圖。如此減少無雜訊編碼的總ROM需求達超過92%,及減少USAC解碼器從約37000字組減至約21500字組或減少超過41%。有關其細節再度請參考第16a及16b圖,其中第16a圖顯示如所提示的無雜訊編碼方案之ROM需求及依據USAC草擬標準之WD4之無雜訊編碼方案之ROM需求;及其中第16a圖顯示依據所提示的方案及依據USAC草擬標準之WD4之總USAC解碼器資料ROM需求。
更進一步,也減少於下一框(靜態ROM)中脈絡導算所需資訊量。於USAC草擬標準之WD5,除了所需每4-重元組解析度10-位元的群組指數外,欲儲存額外典型具16位元解析度的完整係數集合(至大1152係數),加總成每個核心編碼器通道(完整USAC WD4解碼器:約10000至17000字組)666字組(2664位元組)。新穎方案將持久資訊(persistent information)減至只有每頻譜係數2-位元,加總成每個核心編碼器通道總計72字組(2376位元組)。
後文中將敘述有關可能提高編碼效率之若干細節。依據新穎提案之實施例的解碼效率係對依據USAC草擬標準之工作草稿3(WD3)及WD5之參考品質位元串流作比較。該比較係利用轉碼器基於參考軟體解碼器執行。有關依據USAC草擬標準之工作草稿3(WD3)及WD5與所提議之編碼方案的比較細節,請參考第17圖,其顯示用於WD3/5無雜訊編碼方案與所提議之編碼方案之比較的測試配置之示意表示型態。
又,依據本發明之實施例之記憶體需求係與依據USAC草擬標準之WD3(或WD5)之實施例作比較。
編碼效率不僅維持同時略增。有關其細節請參考第18圖之表,其顯示由WD3算術編碼器(或使用WD3算術編碼器之USAC音訊編碼器)及由依據本發明之實施例之音訊編碼器(例如USAC音訊編碼器)所產生的平均位元率之表格表示型態。
有關每個運算模的平均位元率之細節請參考第18圖之表。
此外,第19圖顯示WD3算術編碼器(或使用WD3算術編碼器之USAC音訊編碼器)及依據本發明之實施例之音訊編碼器之最小值及最大值位元貯器位階之表格表示型態。
後文中,將描述有關運算複雜度之若干細節。算術編碼維度的縮小通道導致運算複雜度的增高。確實,縮小維度達因數2將使得算術編碼器常式呼叫變兩倍。
但業已發現此種複雜度的增高受限於導入依據本發明之實施例之所提示之新穎編碼方案之若干最佳化。於依據本發明之若干實施例脈絡產生大為簡化。對各個2-重元組,脈絡可從最後產生的脈絡而遞增地更新。機率現在係儲存在14位元而非16位元,避免解碼處理程序期間的64-位元運算。但於依據本發明之若干實施例機率模型對映大為最佳化。最惡劣情況大減且限於10迭代重複而非95迭代重複。
結果,所提示之無雜訊編碼方案之運算複雜度維持於WD5的相同範圍。「紙筆」估算係藉無雜訊編碼的不同版本執行且係記錄在第20圖之表。其顯示新穎編碼方案只比WD5算術編碼器的複雜度少約13%。
綜上所述,可知依據本發明之實施例提供運算複雜度、記憶體需求與編碼效率間的特佳折衷。
14. 位元串流語法 14.1 頻譜無雜訊編碼器之有效負載
後文中,將描述有關頻譜無雜訊編碼器之有效負載之若干細節。於若干實施例,有多種不同編碼模,諸如所謂「線性預測域」編碼模及「頻域」編碼模。於線性預測域編碼模中,雜訊成形係基於音訊信號的線性預測分析執行,及於頻域編碼模中,雜訊成形係基於心理聲學分析執行,及音訊內容之雜訊成形版本係於頻域編碼。
來自「線性預測域」編碼信號及「頻域」編碼信號二者的頻譜係數係經定標量化(scalar quantized),及然後藉適應性脈絡相依性算術編碼而無雜訊地編碼。量化係數係在從最低頻傳輸至最高頻之前一起收集成2-重元組。各個2-重元組***成符號s、最高有效逐2-位元平面m,及其餘一或多個最低有效位元平面r(若有)。值m係依據由鄰近頻譜係數所定義的脈絡編碼。換言之,m係依據係數鄰近關係而編碼。其餘最低有效位元平面r係經熵編碼而未考慮脈絡。利用m及r,此等頻譜係數之幅度係在解碼器端重構。對全部非空符元而言,符號s係使用1-位元而在算術編碼器外部編碼。換言之,值m及r形成算術編碼之符元。最後,對每個非空量化係數而言,符號s係使用1-位元而在算術編碼器外部編碼。
算術編碼程序細節敘述於此處。
14.2 語法元素
後文中,將參考第6a至6j圖描述攜帶已算術編碼頻譜資訊之一位元串流的位元串流語法。
第6a圖顯示所謂USAC原始資料區塊(「usac_raw_data_block()」)之語法表示型態;USAC原始資料區塊包含一或多個單一通道元素(「single_channel_element()」)及/或一或多個成對通道元素(「channel_pair_element()」)。
現在參考第6b圖,描述單一通道元素之語法。取決於核心模,單一通道元素包含線性預測域通道串流(「lpd_channel_stream()」)或頻域通道串流(「fd_channel_stream()」)。
第6c圖顯示一成對通道元素之語法表示型態。成對通道元素包含核心模資訊(「core_mode0」、「core_mode1」)。此外,依據核心模式資訊,成對通道元素包含與通道中之第一者相關聯的線性預測域通道串流或頻域通道串流,及成對通道元素也包含與通道中之第二者相關聯的線性預測域通道串流或頻域通道串流。
其語法表示型態顯示於第6d圖之組態資訊「ics_info()」包含多個不同組態資訊項,其對本發明並無特殊限制。
其語法表示型態顯示於第6e圖之頻域通道串流(「fd_channel_stream()」)包含增益資訊(「global_gain」)及組態資訊「ics_info()」。此外,頻域通道串流包含定標因數資料(「scale_factor_data()」),其描述用於不同定標因數頻帶之頻譜值的定標之定標因數,及其例如係藉定標器150及重定標器240施加。頻域通道串流也包含表示算術編碼頻譜值之算術編碼頻譜資料(「ac_spectral_data()」)。
其語法表示型態顯示於第6f圖之算術編碼頻譜資料(「ac_spectral_data()」)包含用於選擇性地復置脈絡(說明如前)之一選擇性算術復置旗標(「arith_reset_flag」)。此外,算術編碼頻譜資料包含攜帶該等算術編碼頻譜值之多個算術資料區塊(「arith_data」)。算術編碼資料區塊係取決於頻帶數目(以變數「num_bands」表示),及亦取決於算術復置旗標狀態,容後詳述。
後文將參考第6g圖描述算術編碼資料區塊之結構,其顯示該等算術編碼資料區塊之語法表示型態。在算術編碼資料區塊內部之資料表示型態係取決於欲編碼頻譜值數目1g、算術復置旗標狀態、及取決於脈絡,亦即先前已編碼的頻譜值。
頻譜值之目前集合(例如2-重元組)之編碼用脈絡係依據元件符號660所示脈絡測定演繹法則。有關脈絡測定演繹法則之細節已經參考第5a及5b圖說明如前。算術編碼資料區塊包含lg/2碼字組集合,各個碼字組集合表示多個(例如一個2-重元組)頻譜值集合。一碼字組集合包含使用1至20位元表示頻譜值之重元組的最高有效位元平面值m之算術碼字組「acod_m[pki][m]」。此外,當頻譜值之重元組要求比正確表示型態的最高有效位元平面更多個位元平面時,碼字組集合包含一或多個碼字組「acod_r[r]」。碼字組「acod_r[r]」使用1至14位元來表示最低有效位元平面。
但當為了頻譜值的適當表示型態要求一或多個最低有效位元平面(除了最高有效位元平面之外)時,此係使用一或多個算術脫序碼字組「ARITH_ESCAPE」傳訊。如此,通常可謂為一頻譜值,測定需要多少個位元平面(最高有效位元平面及可能,一或多個額外最低有效位元平面)。若要求一或多個最低有效位元平面,則係藉一或多個算術脫序碼字組「acod_m[pki][ARITH_ESCAPE]」傳訊,該算術脫序碼字組係依據目前選定的累積頻率表、由變數「pki」所給定之累積頻率表指數而編碼。此外,如由元件符號664、662可知,若一或多個算術脫序碼字組係含括於位元串流,則脈絡為適應性。在算術脫序碼字組之後,算術碼字組「acod_m[pki][m]」含括於位元串流,如元件符號663所示,其中「pki」標示目前有效機率模型指數(將藉由含括算術脫序碼字組所造成的脈絡適應性列入考慮),及其中m標示欲編碼或欲解碼頻譜值之最高有效位元平面值(其中m係與「ARITH_ESCAPE」碼字組相異)。
如前文討論,任何最低有效位元平面的存在結果導致一或多個碼字組「acod_r[r]」的存在,其各自表示第一頻譜值之最低有效位元平面之一位元,及其各自也表示第二頻譜值之最低有效位元平面之一位元。一或多個碼字組「acod_r[r]」係依據對應累積頻率表編碼,該表例如可為常數及脈絡非相依性。但也可能使用不同選擇機制選擇用於一或多個碼字組「acod_r[r]」解碼之累積頻率表。
此外,須注意在各個頻譜值之重元組編碼後,脈絡經更新,如元件符號668顯示,使得脈絡典型地用於兩個隨後接續頻譜值之重元組之編碼及解碼為相異。
第6i圖顯示定義算數編碼資料區塊之語法的定義及輔助元素之圖說。
此外,算術資料「arith_data()」之其它語法係顯示於第6h圖,而相對應定義及輔助元素之圖說係顯示於第6j圖。
摘要言之,已經描述可由音訊編碼器100提供及可由音訊解碼器200評估之位元串流格式。算術編碼頻譜值之位元串流係經編碼使得其適合前文討論之解碼演繹法則。
此外,一般發現編碼為解碼的反向運算,因而通常可假設編碼器係使用前文討論之表執行表查詢,約略為藉解碼器執行的表查詢之顛倒。一般而言,可謂熟諳技藝人士知曉解碼演繹法則及/或期望的位元串流語法將容易設計算術編碼器,其提供位元串流語法定義的及算術解碼器要求的資料。
此外,須注意用以測定數值目前脈絡值及用以導算對映規則指數值之機制於音訊編碼器及音訊解碼器可相同,原因在於其典型地期望音訊解碼器使用與音訊編碼器相同的脈絡,使得解碼係適應於編碼。
15. 實施替代之道
雖然於裝置脈絡已經描述若干構面,但顯然此等構面也表示對應方法之描述,此處一區塊或一裝置係對應一方法步驟或一方法步驟之特徵結構。類似地,於一方法步驟之脈絡所描述的構面也表示對應裝置之一對應區塊或項目或特徵結構之描述。部分或全部方法步驟可藉(或使用)硬體裝置,例如微處理器、可程式電腦或電子電路執行。於若干實施例,最重要的方法步驟中之某一者或多者可藉此種裝置執行。
本發明編碼的音訊信號可儲存在數位儲存媒體或可在傳輸媒體諸如無線傳輸媒體或有線傳輸媒體諸如網際網路上傳輸。
依據某些實作要求,本發明之實施例可於硬體或軟體實作。實作可使用數位傳輸媒體實施,例如軟碟、DVD、藍光碟、CD、ROM、PROM、EPROM、EEPROM、或快閃記憶體,其上儲存有電子可讀取控制信號,其與可程式電腦系統協力合作(或可協力合作),因而可執行該方法。因此,數位儲存媒體可為電腦可讀取式。
依據本發明之若干實施例包含具有電子讀取式控制信號之一資料載體,其可與可程式電腦系統協力合作,因而執行此處所述方法中之一者。
一般而言,本發明之實施例可以帶有程式碼之電腦程式產品實施,當該電腦程式碼產品在一電腦上跑時,該程式碼可操作來執行該等方法中之一者。程式碼例如可儲存在機器可讀取載體上。
其它實施例包含儲存在機器可讀取載體上用以執行此處所述方法中之一者之電腦程式。
因此,換言之,本發明方法之實施例為一種當該電腦程式碼在一電腦上跑時,用以執行此處所述該等方法中之一者之帶有程式碼之電腦程式。
因此,本發明之又一實施例為一種資料載體(或數位儲存媒體或電腦可讀取媒體)包含記錄於其上之用以執行此處所述方法中之一者之電腦程式。該資料載體、數位儲存媒體或記錄媒體典型地為具體有形及/或非暫態。
因此,本發明之又一實施例為表示用以執行此處所述方法中之一者之一種資料串流或一序列信號。該資料串流或一序列信號例如可經組配來透過資料通訊連結,例如透過網際網路傳輸。
又一實施例包含一種處理裝置,例如電腦或可程式規劃邏輯裝置,其係組配或適用於執行此處所述方法中之一者。
又一實施例包含一種電腦其上安裝有用以執行此處所述方法中之一者之電腦程式。
依據本發明之又一實施例,包含一種組配用來傳輸(例如電子式或光學式)用以執行此處所述方法中之一者之電腦程式予接收器之裝置或系統。該接收器例如可為電腦、行動裝置、記憶體裝置等。該裝置或系統例如可包含一種用來傳輸電腦程式給接收器之檔案伺服器。
於若干實施例,一種可程式規劃邏輯裝置(例如場可規劃閘極陣列)可用來執行此處所述方法之功能中之部分或全部。於若干實施例,場可規劃閘極陣列可與微處理器協力合作來執行此處所述方法中之一者。一般而言,該等方法較佳係藉任一種硬體裝置執行。
前述實施例僅供舉例說明本發明之原理。須瞭解此處所述配置及細節的修正及變化為熟諳技藝人士所顯然易知。因此意圖只受隨附之申請專利範圍之範圍所限而非受舉例說明與解釋此處實施例所呈現的特定細節所限。
16. 結論
總結言之,依據本發明之實施例包含下列構面中之一者或多者,其中該等構面可個別使用或組合使用。
a) 脈絡狀態散列機制
依據本發明之一構面,散列表之狀態被視為有效狀態及群組邊界。如此允許顯著縮小所要求之表格大小。
b) 增值脈絡更新
依據一構面,依據本發明之若干實施例包含用以更新脈絡之運算有效方式。若干實施例係使用增值脈絡更新,其中數值目前脈絡值係從數值先前脈絡值所導算出。
c) 脈絡導算
依據本發明之一構面,使用二頻譜絕對值之和係與截頭相關聯。屬於一種頻譜係數之增益向量量化(而與習知形狀增益向量量化相反)。其係針對限制脈絡順序,同時從鄰近傳輸最有意義資訊。
應用於依據本發明之實施例之若干其它技術係描述於先前未曾公開的專利申請案PCT EP2101/065725、PCT EP2010/065726、及PCT EP2010/065727。此外於依據本發明之若干實施例,使用終止符元。此外於若干實施例,只有未加符號值被考慮用於脈絡。
但前述先前未曾公開的國際專利申請案揭示依據本發明之若干實施例仍在使用的構面。
舉例言之,零區的識別係用在本發明之若干實施例。據此,設定所謂「小值旗標」(例如數值目前脈絡值c之位元16)。
於若干實施例,可使用區相依性脈絡運算。但於其它實施例,可刪除區相依性脈絡運算來保持複雜度及表格大小合理地小。
此外,使用散列函數之脈絡散列乃本發明之一重要構面。脈絡散列可基於前述先前未曾公開的國際專利申請案所述的二表構想。但脈絡散列之特定適應性可用於若干實施例來提高運算效率。雖言如此,於依據本發明之若干其它實施例,可使用述於先前未曾公開的國際專利申請案之脈絡散列。
此外,須注意增值脈絡散列相當簡單且運算有效。又,用於本發明之若干實施例,脈絡與數值符號之非相依性協助簡化脈絡,藉此維持記憶體需求合理地低。
於本發明之若干實施例,使用利用二頻譜值之和與脈絡限制的脈絡導算。此二構面可組合。二者皆係針對藉由從鄰近傳輸最有意義資訊而限制脈絡順序。
於若干實施例,使用小值旗標,其可能類似一組多個零值的識別。
於依據本發明之若干實施例,使用算術終止機制。該構想係類似JPEG中符元「區塊結束」的使用,具有可相比擬的功能。但於本發明之若干實施例,符元(「ARITH_STOP」)並未外顯地含括於熵編碼器。取而代之,使用先前可能未出現的已存在的符元組合,亦即「ESC+0」。換言之,音訊解碼器係組配來檢測既存符元的組合,其通常並未用來表示數值,且將此等既存符元的組合的出現解譯為算術終止條件。
依據本發明之實施例使用一種二表脈絡散列機制。
進一步綜上所述,依據本發明之若干實施例可包含下列四個主要構面中之一者或多者。
● 用以檢測零區或鄰近的小幅度區之延伸脈絡;
● 脈絡散列;
● 脈絡狀態產生:脈絡狀態之增值更新;及
● 脈絡導算:包括幅度加法及限制之脈絡的特定量化。
進一步獲得結論,依據本發明之實施例之一個構面係在增值脈絡更新。依據本發明之實施例包含一種用於脈絡更新之有效構想,其避免工作草稿(例如工作草稿5)的全面計算。反而於若干實施例,使用簡單移位運算及邏輯運算。簡單脈絡更新顯著地協助脈絡的運算。
於若干實施例,脈絡係與數值(例如解碼頻譜值)符號獨立無關。此種脈絡與數值符號獨立無關獲得脈絡變數運算複雜度的減低。此一構想係基於發現忽略脈絡符號不會造成編碼效率的顯著降級。
依據本發明之一構面,脈絡係使用二頻譜值之和導算。據此,用於脈絡儲存之記憶體需求顯著減低。如此,於某些情況下,表示二頻譜值之和的脈絡值之使用可視為優異。
又,於某些情況下,脈絡限制帶來顯著改良。於若干實施例,除了使用二頻譜值之和導算脈絡之外,脈絡陣列「q」之分錄係限於「0xF」之最大值,而其又導致記憶體需求之限制。此種脈絡陣列「q」之值的限制帶來若干優點。
於若干實施例,使用所謂「小值旗標」。為了獲得脈絡變數c(也標示為數值目前脈絡值),當若干分錄目前脈絡陣列「q[1][i-3]」至「q[1][i-1]」為極小時設定旗標。據此,可以高效率執行脈絡之運算。可獲得特別有意義之脈絡值(例如數值目前脈絡值)。
於若干實施例,使用算術終止機制。當只餘零值時,「ARITH_STOP」機制允許算術編碼或解碼的有效停止。據此,就複雜度而言可以中等成本改良編碼效率。
依據本發明之一構面,使用二表脈絡散列機制。脈絡之對映之執行係使用評估表「ari_hash_m」之區間劃分演繹法則組合表「ari_lookup_m」之隨後查詢表評估。此一演繹法則係比WD3演繹法則更有效。
後文將討論若干額外細節。
此處須注意表「ari_hash_m[600]」及表「ari_lookup_m[600]」為二分開表。第一表係用來將單一脈絡指數(例如數值脈絡值)對映至機率模型指數(例如對映規則指數值),而第二表係用來將由「arith_hash_m[]」中的脈絡指數所界限的一組連續脈絡對映至單一機率模型。
進一步須注意表「arith_cf_msb[96][16]」可用作為表「ari_cf_m[96][17]」的替代之道,即使維度略為不同亦如此。「ari_cf_m[][]」與「ari_cf_msb[][]」可指稱同一表,原因在於機率模型的第17係數經常性地為零。當計數用以儲存表所要求的空間時偶爾並未列入考慮。
綜上所述,依據本發明之若干實施例提供一種所提示的新穎無雜訊編解碼(編碼或解碼),其產生MPEG USAC草擬標準(例如MPEG USAC草擬標準之WD5)的修正。該修正可見於所揭示附圖及亦相關描述。
作為備註結語,須注意變數、陣列、函數等名稱的前綴詞「ari」及前綴詞「arith」係可互換使用。
100...音訊編碼器
110、110a...輸入音訊資訊
112...位元串流
120...前處理器
130...頻域信號變換器
130a...開窗MDCT變換器
132...頻域音訊資訊
140...頻譜後處理器
142...經後處理器頻域音訊表示型態
150...定標器/量化器
152...已定標且已量化之頻域音訊表示型態
160...心理聲學模型處理器
170...算術編碼器
172a...算術碼字組資訊
174...最高有效位元平面抽取器
176...最高有效位元平面值
180...碼字組測定器
182...狀態追蹤器
184...狀態資訊
186...累積頻率表選擇器
188...資訊
189a...最低有效位元平面抽取器
189b、189d...最低有效位元平面資訊
189c...第二碼字組測定器
190...位元串流有效負載格式化器
200...音訊解碼器
210...位元串流
212...已解碼之音訊資訊
220...位元串流有效負載解格式化器
222...已編碼頻域音訊表示型態
224...狀態復置資訊
230、280...算術解碼器
232...已解碼頻域音訊表示型態
240...反量化器/重定標器
242...反量化及重定標頻域資反量化及重定標頻域音訊表示型態
250...頻譜前處理器
252...前處理版本
260...頻域至時域信號變換器
262...時域表示型態
270...時域後處理器
284...最高有效位元平面測定器
286...最高有效位元平面值
288...最低有效位元平面測定器
290...最低有效位元平面解碼值
292...位元平面組合器
296...累積頻率表選擇器
298...狀態指數
299...狀態追蹤器
310...初始化
312...頻譜值解碼
312a...脈絡值計算
312b...最高有效位元平面解碼
312ba、312da...演繹法則
312bb...步驟
312c...算術終止符號檢測
312d...最低有效位元平面加法
312e...陣列更新
313...脈絡更新
314...符號解碼
315...結束步驟
410...橫座標
412...縱座標
420、430、432、434、440、450、460...重元組
500a~b、508ba...子演繹法則
504a~f...步驟
506b...搜尋
506a~c、508a~c...演繹法則
506ba...子演繹法則
570a~f、570fa、570fb...步驟
660...脈絡測定演繹法則
662、664...脈絡適應性
663...算術碼字組含括於位元串流
668...脈絡更新
700、1000、1200...音訊編碼器
710...輸入音訊資訊
712、812...編碼音訊資訊
720...能量緊密型時域至頻域變換器、時域至頻域變換器
722...頻域音訊表示型態
730、1030、1230...算術編碼器
740...頻譜值編碼
742、828a...對映規則資訊
750、826、1050、1126、1250、1326...狀態追蹤器
754、1254...資訊
760、828、1060、1128、1260、1328...對映規則選擇器
762、829...散列表
800、1100、1300...音訊解碼器
812...解碼音訊資訊
820、1120、1320...算術解碼器
821...算術編碼表示型態
822...解碼頻譜值
824...頻譜值測定器
826a、1126a、1326a...脈絡狀態資訊、數值目前脈絡值
830...頻域至時域變換器
910...橫軸
912...縱軸
914、916...記號
932、934、936...區間
1052...數字表示型態修改器
1127...數字表示型態修改器
1128、1328...對映規則選擇器
1252、1327...脈絡子區值運算器
2310、2312、2396...子區塊
第1a及1b圖顯示依據本發明之實施例,一種音訊編碼器之方塊示意圖;
第2a及2b圖顯示依據本發明之實施例,一種音訊解碼器之方塊示意圖;
第3圖顯示用以解碼頻譜值之演繹法則「values_decode()」之虛擬程式碼表示型態;
第4圖顯示用於狀態計算之脈絡之示意表示型態;
第5a圖顯示用以對映脈絡之演繹法則「arith_map_context()」之虛擬程式碼表示型態;
第5b圖顯示用以對映脈絡之另一演繹法則「arith_map_context()」之虛擬程式碼表示型態;
第5c圖顯示用以獲得脈絡狀態值之演繹法則「arith_get_context()」之虛擬程式碼表示型態;
第5d圖顯示用以獲得脈絡狀態值之另一演繹法則「arith_get_context()」之虛擬程式碼表示型態;
第5e圖顯示用以從一狀態值(或狀態變數)導算出累積頻率表指數值「pki」之演繹法則「arith_get_pk()」之虛擬程式碼表示型態;
第5f圖顯示用以從一狀態值(或狀態變數)導算出累積頻率表指數值「pki」之另一演繹法則「arith_get_pk()」之虛擬程式碼表示型態;
第5g(1)及5g(2)圖顯示用以從一可變長度碼字組算術式解碼之演繹法則「arith_decode()」之虛擬程式碼表示型態;
第5h圖顯示用以從一可變長度碼字組算術式解碼之另一演繹法則「arith_decode()」之虛擬程式碼表示型態之第一部分;
第5i圖顯示用以從一可變長度碼字組算術式解碼之另一演繹法則「arith_decode()」之虛擬程式碼表示型態之第二部分;
第5j圖顯示用以從共用值m導算出頻譜值的絕對值a,b之演繹法則之虛擬程式碼表示型態;
第5k圖顯示用以將解碼值a,b載入解碼頻譜值之一陣列之演繹法則之虛擬程式碼表示型態;
第51圖顯示用以基於解碼頻譜值之絕對值a,b而獲得脈絡子區值之演繹法則「arith_update_context()」之虛擬程式碼表示型態;
第5m圖顯示用以填補解碼頻譜值陣列及脈絡子區值陣列的分錄之演繹法則「arith_finish()」之虛擬程式碼表示型態;
第5n圖顯示用以從共用值m導算出頻譜值的絕對值a,b之另一演繹法則之虛擬程式碼表示型態;
第5o圖顯示用以更新解碼頻譜值陣列及脈絡子區值陣列的分錄之演繹法則「arith_update_context()」之虛擬程式碼表示型態;
第5p圖顯示用以填補解碼頻譜值陣列的分錄及脈絡子區值陣列的分錄之演繹法則「arith_save_context()」之虛擬程式碼表示型態;
第5q圖顯示定義之圖說;
第5r圖顯示定義之另一圖說;
第6a圖顯示統一語音及音訊編碼器(USAC)原始資料區塊之語法表示型態;
第6b圖顯示單一通道元素之語法表示型態;
第6c圖顯示成對通道元素之語法表示型態;
第6d圖之「ICS」控制資訊之語法表示型態;
第6e圖顯示頻域通道串流之語法表示型態;
第6f圖顯示算術式編碼頻譜資料之語法表示型態;
第6g圖顯示用以解碼一頻譜值集合之語法表示型態;
第6h圖顯示用以解碼一頻譜值集合之另一語法表示型態;
第6i圖顯示資料元素及變數之圖說;
第6j圖顯示資料元素及變數之另一圖說;
第7圖顯示依據本發明之第一構面,一種音訊編碼器之方塊示意圖;
第8圖顯示依據本發明之第一構面,一種音訊解碼器之方塊示意圖;
第9圖顯示依據本發明之第一構面,一種數值目前脈絡值對映至對映法則指數值之線圖表示型態;
第10圖顯示依據本發明之第二構面,一種音訊編碼器之方塊示意圖;
第11圖顯示依據本發明之第二構面,一種音訊解碼器之方塊示意圖;
第12圖顯示依據本發明之第三構面,一種音訊編碼器之方塊示意圖;
第13圖顯示依據本發明之第三構面,一種音訊解碼器之方塊示意圖;
第14a圖顯示用於狀態計算之脈絡當其用於依據USAC草擬標準之工作草稿4之示意表示型態;
第14b圖顯示依據USAC草擬標準之工作草稿4,用於算術編碼方案之表格綜覽;
第15a圖顯示用於狀態計算之脈絡當其用於依據本發明之實施例之示意表示型態;
第15b圖顯示用於依據本發明之實施例用於算術編碼方案之表格綜覽;
第16a圖顯示依據本發明,及依據USAC草擬標準之工作草稿5,及依據AAC(先進音訊編碼)霍夫曼編碼,用於無雜訊編碼方案之唯讀記憶體需求之線圖表示型態;
第16b圖顯示依據本發明,及依據USAC草擬標準之工作草稿5之構想,總USAC解碼器資料之唯讀記憶體需求之線圖表示型態;
第17圖顯示使用依據本發明之編碼方案,依據USAC草擬標準之工作草稿3或工作草稿5,用於無雜訊編碼之比較配置之示意表示型態;
第18圖顯示依據USAC草擬標準之工作草稿3及依據本發明之實施例,藉USAC算術編碼器所製造的位元率之表格表示型態;
第19圖顯示用於依據USAC草擬標準之工作草稿3之算術解碼器及依據本發明之實施例之算術解碼器,最小值及最大值位元儲存位階之表格表示型態;
第20圖顯示依據USAC草擬標準之工作草稿3用於算術編碼器之不同版本用以解碼32千位元位元串流之複雜度數目之表格表示型態;
第21(1)及21(2)圖顯示表「ari_lookup_m[600]」之內容之表格表示型態;
第22(1)至22(4)圖顯示表「ari_hash_m[600]」之內容之表格表示型態;
第23(1)至23(8)圖顯示表「ari_cf_m[96][17]」之內容之表格表示型態;及
第24圖顯示表「ari_cf_r[]」之內容之表格表示型態。
710...輸入音訊資訊
712...編碼音訊資訊
720...能量緊密型時域至頻域變換器
722...頻域音訊表示型態
740...頻譜值編碼
742...對映規則資訊
1200...音訊編碼器
1230...算術編碼器
1250...狀態追蹤器
1252...脈絡子區值電腦
1254...資訊
1260...對映規則選擇器

Claims (18)

  1. 一種用以基於編碼音訊資訊來提供解碼音訊資訊之音訊解碼器,該音訊解碼器包含:用以基於頻譜值之一算術編碼表示型態而提供多個解碼頻譜值之一算術解碼器;及用以使用該等解碼頻譜值而提供一時域音訊表示型態之一頻域至時域變換器,來獲得該解碼音訊資訊;其中該算術解碼器係組配來依據由一數值目前脈絡值所描述之一脈絡狀態而選擇描述一碼值對映至一符元碼之一對映規則;及其中該算術解碼器係組配來依據多個先前已解碼頻譜值而決定該數值目前脈絡值;其中該算術解碼器係組配來基於先前已解碼之頻譜值而獲得多個脈絡子區值,及儲存該等脈絡子區值;其中該算術解碼器係組配來依據所儲存的脈絡子區值而導算出與一或多個欲解碼之頻譜值相關聯之一數值目前脈絡值,其中該算術解碼器係組配來運算由多個先前已解碼頻譜值所形成之一向量的範數,來獲得與該等多個先前已解碼頻譜值相關聯之一共用脈絡子區值。
  2. 如請求項1之音訊解碼器,其中該算術解碼器係組配來加總多個先前已解碼頻譜值之絕對值,其係與該頻域至時域變換器之相鄰頻率倉(frequency bin)及該音訊資訊之一共用時間部分相關聯,來獲得與該等多個先前已解 碼頻譜值相關聯之該共用脈絡子區值。
  3. 如請求項1之音訊解碼器,其中該算術解碼器係組配來量化多個先前已解碼頻譜值之該範數,其係與該頻域至時域變換器之相鄰頻率倉及該音訊資訊之一共用時間部分相關聯,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。
  4. 如請求項1至3中任一項之音訊解碼器,其中該算術解碼器係組配來加總使用一共用碼值編碼之多個先前已解碼頻譜值之絕對值,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。
  5. 如請求項1之音訊解碼器,其中該算術解碼器係組配來提供有正負號的已解碼頻譜值給該頻域至時域變換器,及加總與該等有正負號的已解碼頻譜值相對應之絕對值,來獲得與該等多個先前已解碼頻譜值相關聯之該共用脈絡子區值。
  6. 如請求項1之音訊解碼器,其中該算術解碼器係組配來從先前已解碼頻譜值之絕對值之一和值而導算出一有限和值,使得由該有限和值所表示之一可能數值範圍係小於一可能和值範圍。
  7. 如請求項1之音訊解碼器,其中該算術解碼器係組配來依據與先前已解碼頻譜值之不同集合相關聯之多個脈絡子區值而獲得一數值目前脈絡值。
  8. 如請求項7之音訊解碼器,其中該算術解碼器係組配來獲得一數值目前脈絡值之一數字表示型態,使得該數值 目前脈絡值之該數字表示型態之一第一部分係由多個先前已解碼頻譜值之絕對值之一第一和值或有限和值所決定,及使得該數值目前脈絡值之該數字表示型態之一第二部分係由多個先前已解碼頻譜值之絕對值之一第二和值或有限和值所決定。
  9. 如請求項7之音訊解碼器,其中該算術解碼器係組配來獲得該數值目前脈絡值,使得多個先前已解碼頻譜值之絕對值之一第一和值或有限和值,及多個先前已解碼頻譜值之絕對值之一第二和值或有限和值於該數值目前脈絡值中包含不同的權值。
  10. 如請求項7之音訊解碼器,其中該算術解碼器係組配來依據多個先前已解碼頻譜值之絕對值之一和值或有限和值而修改描述與一或多個先前已解碼頻譜值相關聯之一脈絡狀態之一數值先前脈絡值之數字表示型態,來獲得描述與一或多個欲解碼頻譜值相關聯之一脈絡狀態之一數值目前脈絡值之數字表示型態。
  11. 如請求項1之音訊解碼器,其中該算術解碼器係組配來檢查多個脈絡子區值之一和值是否小於或等於一預定和值臨界值,及依據該檢查之結果而選擇性地修改該數值目前脈絡值,其中該等脈絡子區值各自係為相關聯之多個先前已解碼頻譜值之絕對值之一和值或有限和值。
  12. 如請求項1之音訊解碼器,其中該算術解碼器係組配來考慮由與該音訊內容之一先前時間部分相關聯之先前 已解碼頻譜值所界定之多個脈絡子區值,及也考慮由與該音訊內容之一目前時間部分相關聯之先前已解碼頻譜值所界定之至少一個脈絡子區值,來獲得與一或多個欲解碼頻譜值相關聯之及與該音訊內容之目前時間部分相關聯之一數值目前脈絡值,使得該先前時間部分之時間上相鄰的先前已解碼頻譜值與目前時間部分之頻率相鄰的先前已解碼頻譜值二者之環境係經考量來獲得該數值目前脈絡值。
  13. 如請求項1之音訊解碼器,其中該算術解碼器係組配來儲存一脈絡子區值集合,對該音訊資訊之一給定時間部分,該等脈絡子區值各自為多個先前已解碼頻譜值之絕對值之一和值或有限和值;及使用該等脈絡子區值用以導算出一數值目前脈絡值,用以解碼在該音訊資訊之該給定時間部分後方之該音訊資訊之一時間部分的一或多個頻譜值,同時當導算該數值目前脈絡值時,留下對該音訊資訊之該給定時間部分之個別先前已解碼頻譜值未加考慮。
  14. 如請求項1之音訊解碼器,其中該算術解碼器係組配來分開地解碼一頻譜值之幅度值及正負號,及其中該算術解碼器係組配來當決定用以解碼欲解碼之一頻譜值的該數值目前脈絡值時,留下先前已解碼頻譜值之正負號未予考慮。
  15. 一種用以基於輸入音訊資訊而提供編碼音訊資訊之音訊編碼器,該音訊編碼器包含: 一能量緊密型(energy-compacting)時域至頻域變換器,其係用以基於該輸入音訊資訊之時域表示型態而提供一頻域音訊表示型態,使得該頻域音訊表示型態包含一頻譜值集合;及一算術編碼器,其係組配來使用一可變長度碼字組而編碼一頻譜值或其前置處理版本,其中該算術編碼器係組配來將一頻譜值或一頻譜值之最高有效位元平面值對映至一碼值,其中該算術編碼器係組配來依據由一數值目前脈絡值所描述之一脈絡狀態而選擇描述將一頻譜值或一頻譜值之最高有效位元平面對映至一碼值之一對映規則;及其中該算術編碼器係組配來依據多個先前已編碼頻譜值而決定該數值目前脈絡值,其中該算術編碼器係組配來基於先前已編碼頻譜值而獲得多個脈絡子區值,儲存該等脈絡子區值,及依據所儲存的脈絡子區值而導算出與一或多個欲編碼之頻譜值相關聯之一數值目前脈絡值,其中該算術編碼器係組配來運算由多個先前已編碼頻譜值所形成之一向量的範數,來獲得與該等多個先前已編碼頻譜值相關聯之一共用脈絡子區值。
  16. 一種用以基於編碼音訊資訊來提供解碼音訊資訊之方法,該方法包含:基於多個解碼頻譜值之一算術式已編碼表示型態 而提供該等多個解碼頻譜值;及使用該等解碼頻譜值提供一時域音訊表示型態來獲得該解碼音訊資訊;其中提供該等多個解碼頻譜值包含依據由一數值目前脈絡值所描述之一脈絡狀態而選擇一對映規則,該規則描述將以一編碼形式表示一頻譜值或一頻譜值之最高有效位元平面之一碼值,對映至以一解碼形式表示一頻譜值或一頻譜值之最高有效位元平面之一符元碼的對映動作;及其中該數值目前脈絡值係依據多個先前已解碼頻譜值而決定;其中多個脈絡子區值係基於先前已解碼頻譜值而獲得及儲存;其中與一或多個欲解碼之頻譜值相關聯之一數值目前脈絡值係依據所儲存的脈絡子區值而導算出;及其中由多個先前已解碼頻譜值所形成之一向量之範數係經運算,來獲得與該等多個先前已解碼頻譜值相關聯之一共用脈絡子區值。
  17. 一種用以基於輸入音訊資訊而提供編碼音訊資訊之方法,該方法包含:使用能量緊密型時域至頻域變換來基於該輸入音訊資訊之一時域表示型態而提供一頻域音訊表示型態,使得該頻域音訊表示型態包含一頻譜值集合;及使用一可變長度碼字組來算術式地編碼一頻譜值 或其前置處理版本,其中一頻譜值或一頻譜值之最高有效位元平面值係對映至一碼值;其中描述將一頻譜值或一頻譜值之最高有效位元平面對映至一碼值之一對映規則係依據一數值目前脈絡值所描述之一脈絡狀態而選定;其中數值目前脈絡值係依據多個先前已編碼相鄰頻譜值而決定;其中多個脈絡子區值係基於先前已編碼頻譜值獲得,其中與一或多個欲編碼之頻譜值相關聯之一數值目前脈絡值係依據所儲存的脈絡子區值而導算出;及其中由多個先前已編碼頻譜值所形成之一向量之範數係經運算,來獲得與該等多個先前已編碼頻譜值相關聯之一共用脈絡子區值。
  18. 一種電腦程式,該電腦程式於一電腦上執行時其係用以執行如請求項16或17之方法。
TW100100948A 2010-01-12 2011-01-11 音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式 TWI476757B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US29435710P 2010-01-12 2010-01-12

Publications (2)

Publication Number Publication Date
TW201145260A TW201145260A (en) 2011-12-16
TWI476757B true TWI476757B (zh) 2015-03-11

Family

ID=43617872

Family Applications (3)

Application Number Title Priority Date Filing Date
TW100100949A TWI466103B (zh) 2010-01-12 2011-01-11 音訊編碼器、音訊解碼器、用以將音訊資訊編碼的方法、用以將音訊資訊解碼的方法、及使用描述有效狀態值及區間邊界二者之散列表的電腦程式
TW100100950A TWI466104B (zh) 2010-01-12 2011-01-11 音訊編碼器、音訊解碼器、用以將音訊資訊編碼的方法、用以將音訊資訊解碼的方法、以及使用數值先前脈絡值之數字表示型態的修改型態之電腦程式
TW100100948A TWI476757B (zh) 2010-01-12 2011-01-11 音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW100100949A TWI466103B (zh) 2010-01-12 2011-01-11 音訊編碼器、音訊解碼器、用以將音訊資訊編碼的方法、用以將音訊資訊解碼的方法、及使用描述有效狀態值及區間邊界二者之散列表的電腦程式
TW100100950A TWI466104B (zh) 2010-01-12 2011-01-11 音訊編碼器、音訊解碼器、用以將音訊資訊編碼的方法、用以將音訊資訊解碼的方法、以及使用數值先前脈絡值之數字表示型態的修改型態之電腦程式

Country Status (20)

Country Link
US (4) US8898068B2 (zh)
EP (3) EP2524372B1 (zh)
JP (3) JP5622865B2 (zh)
KR (3) KR101336051B1 (zh)
CN (3) CN102792370B (zh)
AR (3) AR079886A1 (zh)
AU (3) AU2011206676B2 (zh)
BR (6) BR122021008576B1 (zh)
CA (3) CA2786944C (zh)
ES (3) ES2615891T3 (zh)
HK (2) HK1178306A1 (zh)
MX (3) MX2012008075A (zh)
MY (3) MY160067A (zh)
PL (3) PL2524372T3 (zh)
PT (1) PT2524371T (zh)
RU (2) RU2628162C2 (zh)
SG (3) SG182464A1 (zh)
TW (3) TWI466103B (zh)
WO (3) WO2011086066A1 (zh)
ZA (3) ZA201205936B (zh)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010003479A1 (en) 2008-07-11 2010-01-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
CA2871498C (en) * 2008-07-11 2017-10-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder and decoder for encoding and decoding audio samples
EP2315358A1 (en) 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
CN102667923B (zh) * 2009-10-20 2014-11-05 弗兰霍菲尔运输应用研究公司 音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法
CA2786944C (en) * 2010-01-12 2016-03-15 Fraunhofer Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
KR20120084639A (ko) * 2011-01-20 2012-07-30 한국전자통신연구원 엔트로피 부호화를 위한 적응적 정렬 테이블
KR101362696B1 (ko) * 2011-10-19 2014-02-17 전북대학교산학협력단 하이브리드 아키텍쳐가 적용된 신호 변환 장치, 신호 변환 방법 및 기록매체
US8880412B2 (en) * 2011-12-13 2014-11-04 Futurewei Technologies, Inc. Method to select active channels in audio mixing for multi-party teleconferencing
CN110706715B (zh) * 2012-03-29 2022-05-24 华为技术有限公司 信号编码和解码的方法和设备
TWI508569B (zh) * 2012-09-14 2015-11-11 Realtek Semiconductor Corp 行動高畫質連結資料轉換器以及行動高畫質連結資料轉換方法
US9818412B2 (en) 2013-05-24 2017-11-14 Dolby International Ab Methods for audio encoding and decoding, corresponding computer-readable media and corresponding audio encoder and decoder
MY171256A (en) 2013-06-21 2019-10-07 Fraunhofer Ges Forschung Time scaler, audio decoder, method and a computer program using a quality control
RU2663361C2 (ru) 2013-06-21 2018-08-03 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Блок управления джиттер-буфером, аудиодекодер, способ и компьютерная программа
US20150113027A1 (en) * 2013-10-22 2015-04-23 National Tsing Hua University Method for determining a logarithmic functional unit
JP2015206874A (ja) * 2014-04-18 2015-11-19 富士通株式会社 信号処理装置、信号処理方法、及び、プログラム
US9640376B1 (en) 2014-06-16 2017-05-02 Protein Metrics Inc. Interactive analysis of mass spectrometry data
KR101910376B1 (ko) * 2014-06-29 2019-01-04 엘지전자 주식회사 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치
EP2996269A1 (en) * 2014-09-09 2016-03-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio splicing concept
US9385751B2 (en) 2014-10-07 2016-07-05 Protein Metrics Inc. Enhanced data compression for sparse multidimensional ordered series data
US10062762B2 (en) * 2014-12-23 2018-08-28 Stmicroelectronics, Inc. Semiconductor devices having low contact resistance and low current leakage
US10354421B2 (en) 2015-03-10 2019-07-16 Protein Metrics Inc. Apparatuses and methods for annotated peptide mapping
CN104872268B (zh) * 2015-06-02 2018-06-12 应关雄 一种低温除氧剂
MY188894A (en) 2015-10-08 2022-01-12 Dolby Int Ab Layered coding and data structure for compressed higher-order ambisonics sound or sound field representations
CA3199796A1 (en) 2015-10-08 2017-04-13 Dolby International Ab Layered coding for compressed sound or sound field representations
US20170231320A1 (en) * 2016-02-16 2017-08-17 Djo Consumer, Llc Fitting system and method for customizable footwear
CN109328382B (zh) * 2016-06-22 2023-06-16 杜比国际公司 用于将数字音频信号从第一频域变换到第二频域的音频解码器及方法
US20180089309A1 (en) * 2016-09-28 2018-03-29 Linkedln Corporation Term set expansion using textual segments
US10319573B2 (en) 2017-01-26 2019-06-11 Protein Metrics Inc. Methods and apparatuses for determining the intact mass of large molecules from mass spectrographic data
US10797723B2 (en) 2017-03-14 2020-10-06 International Business Machines Corporation Building a context model ensemble in a context mixing compressor
US10361712B2 (en) * 2017-03-14 2019-07-23 International Business Machines Corporation Non-binary context mixing compressor/decompressor
US11626274B2 (en) 2017-08-01 2023-04-11 Protein Metrics, Llc Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US10546736B2 (en) 2017-08-01 2020-01-28 Protein Metrics Inc. Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US10510521B2 (en) 2017-09-29 2019-12-17 Protein Metrics Inc. Interactive analysis of mass spectrometry data
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
WO2019113911A1 (zh) * 2017-12-15 2019-06-20 海尔优家智能科技(北京)有限公司 设备控制方法、云端设备、智能设备、计算机介质及设备
US11044495B1 (en) 2018-02-13 2021-06-22 Cyborg Inc. Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
US10929607B2 (en) 2018-02-22 2021-02-23 Salesforce.Com, Inc. Dialogue state tracking using a global-local encoder
US10915341B2 (en) * 2018-03-28 2021-02-09 Bank Of America Corporation Computer architecture for processing correlithm objects using a selective context input
KR20200000649A (ko) * 2018-06-25 2020-01-03 네이버 주식회사 오디오 병렬 트랜스코딩을 위한 방법 및 시스템
KR20210032413A (ko) * 2018-07-06 2021-03-24 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 산술 인코더, 산술 디코더, 비디오 인코더, 비디오 디코더, 인코딩 방법, 디코딩 방법 및 컴퓨터 프로그램
CN110535497B (zh) * 2018-08-10 2022-07-19 中兴通讯股份有限公司 Csi发送、接收方法及其装置、通信节点及存储介质
US11640901B2 (en) 2018-09-05 2023-05-02 Protein Metrics, Llc Methods and apparatuses for deconvolution of mass spectrometry data
US11275568B2 (en) 2019-01-14 2022-03-15 Microsoft Technology Licensing, Llc Generating a synchronous digital circuit from a source code construct defining a function call
US11144286B2 (en) 2019-01-14 2021-10-12 Microsoft Technology Licensing, Llc Generating synchronous digital circuits from source code constructs that map to circuit implementations
US11106437B2 (en) * 2019-01-14 2021-08-31 Microsoft Technology Licensing, Llc Lookup table optimization for programming languages that target synchronous digital circuits
US11113176B2 (en) 2019-01-14 2021-09-07 Microsoft Technology Licensing, Llc Generating a debugging network for a synchronous digital circuit during compilation of program source code
US11093682B2 (en) 2019-01-14 2021-08-17 Microsoft Technology Licensing, Llc Language and compiler that generate synchronous digital circuits that maintain thread execution order
US10491240B1 (en) 2019-01-17 2019-11-26 Cyborg Inc. Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation
US11346844B2 (en) 2019-04-26 2022-05-31 Protein Metrics Inc. Intact mass reconstruction from peptide level data and facilitated comparison with experimental intact observation
CN111862953B (zh) * 2019-12-05 2023-08-22 北京嘀嘀无限科技发展有限公司 语音识别模型的训练方法、语音识别方法及装置
EP4204948A1 (en) 2020-08-31 2023-07-05 Protein Metrics, LLC Data compression for multidimensional time series data
WO2022079049A2 (en) * 2020-10-13 2022-04-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding a plurality of audio objects or apparatus and method for decoding using two or more relevant audio objects

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050192799A1 (en) * 2004-02-27 2005-09-01 Samsung Electronics Co., Ltd. Lossless audio decoding/encoding method, medium, and apparatus
TW200727729A (en) * 2006-01-09 2007-07-16 Nokia Corp Decoding of binaural audio signals
TW200818123A (en) * 2006-08-15 2008-04-16 Dolby Lab Licensing Corp A technique for providing arbitrary shaping of the temporal envelope of noise in spectral domain coding systems without the need of side-information
US20080133223A1 (en) * 2006-12-04 2008-06-05 Samsung Electronics Co., Ltd. Method and apparatus to extract important frequency component of audio signal and method and apparatus to encode and/or decode audio signal using the same
US20080243518A1 (en) * 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
TWI302664B (en) * 2005-08-12 2008-11-01 Via Tech Inc Method and apparatus for audio encoding and decoding
US20090192791A1 (en) * 2008-01-28 2009-07-30 Qualcomm Incorporated Systems, methods and apparatus for context descriptor transmission
US20090299756A1 (en) * 2004-03-01 2009-12-03 Dolby Laboratories Licensing Corporation Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners

Family Cites Families (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222189A (en) 1989-01-27 1993-06-22 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
US5659659A (en) 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
ZA947317B (en) * 1993-09-24 1995-05-10 Qualcomm Inc Multirate serial viterbi decoder for code division multiple access system applications
US5798719A (en) 1994-07-29 1998-08-25 Discovision Associates Parallel Huffman decoder
EP0880235A1 (en) 1996-02-08 1998-11-25 Matsushita Electric Industrial Co., Ltd. Wide band audio signal encoder, wide band audio signal decoder, wide band audio signal encoder/decoder and wide band audio signal recording medium
JP3305190B2 (ja) 1996-03-11 2002-07-22 富士通株式会社 データ圧縮装置及びデータ復元装置
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
US6269338B1 (en) 1996-10-10 2001-07-31 U.S. Philips Corporation Data compression and expansion of an audio signal
JP3367370B2 (ja) 1997-03-14 2003-01-14 三菱電機株式会社 適応符号化方法
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
KR100335609B1 (ko) 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
KR100335611B1 (ko) 1997-11-20 2002-10-09 삼성전자 주식회사 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6704705B1 (en) 1998-09-04 2004-03-09 Nortel Networks Limited Perceptual audio coding
DE19840835C2 (de) * 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
AU1984100A (en) 1999-01-13 2000-08-01 Koninklijke Philips Electronics N.V. Embedding supplemental data in an encoded signal
US6978236B1 (en) * 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
US7260523B2 (en) * 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
US20020016161A1 (en) 2000-02-10 2002-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for compression of speech encoded parameters
JP2001318698A (ja) * 2000-05-10 2001-11-16 Nec Corp 音声符号化装置及び音声復号化装置
US6677869B2 (en) * 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
US6538583B1 (en) 2001-03-16 2003-03-25 Analog Devices, Inc. Method and apparatus for context modeling
CN1235192C (zh) * 2001-06-28 2006-01-04 皇家菲利浦电子有限公司 传输***以及用于接收窄带音频信号的接收机和方法
US20030093451A1 (en) * 2001-09-21 2003-05-15 International Business Machines Corporation Reversible arithmetic coding for quantum data compression
JP2003255999A (ja) * 2002-03-06 2003-09-10 Toshiba Corp 符号化デジタルオーディオ信号の変速再生装置
JP4090862B2 (ja) 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
PT1467491E (pt) 2002-05-02 2007-03-30 Fraunhofer Ges Forschung Codificação aritmética de coeficientes de transformação
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7447631B2 (en) 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
CN1328707C (zh) 2002-07-19 2007-07-25 日本电气株式会社 音频解码设备以及解码方法
DE10236694A1 (de) * 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
US7299190B2 (en) 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7328150B2 (en) 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
DK1400954T3 (da) 2002-09-04 2008-03-31 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser
CA2499212C (en) * 2002-09-17 2013-11-19 Vladimir Ceperkovic Fast codec with high compression ratio and minimum required resources
FR2846179B1 (fr) * 2002-10-21 2005-02-04 Medialive Embrouillage adaptatif et progressif de flux audio
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7876966B2 (en) 2003-03-11 2011-01-25 Spyder Navigations L.L.C. Switching between coding schemes
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7562145B2 (en) 2003-08-28 2009-07-14 International Business Machines Corporation Application instance level workload distribution affinities
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2005184232A (ja) 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
DE102004007200B3 (de) * 2004-02-13 2005-08-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
CA2457988A1 (en) 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US7516064B2 (en) 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
EP1914722B1 (en) * 2004-03-01 2009-04-29 Dolby Laboratories Licensing Corporation Multichannel audio decoding
KR100561869B1 (ko) 2004-03-10 2006-03-17 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
US7577844B2 (en) 2004-03-17 2009-08-18 Microsoft Corporation Systems and methods for encoding randomly distributed features in an object
KR101050261B1 (ko) 2004-07-14 2011-07-19 에이전시 포 사이언스, 테크놀로지 앤드 리서치 콘텍스트 기반의 신호 엔코딩 및 디코딩
KR100624432B1 (ko) * 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
EP1810182A4 (en) 2004-08-31 2010-07-07 Kumar Gopalakrishnan METHOD AND SYSTEM FOR PROVIDING INFORMATION SERVICES RELEVANT TO VISUAL IMAGE
EP1798724B1 (en) 2004-11-05 2014-06-18 Panasonic Corporation Encoder, decoder, encoding method, and decoding method
US7903824B2 (en) 2005-01-10 2011-03-08 Agere Systems Inc. Compact side information for parametric coding of spatial audio
KR100829558B1 (ko) 2005-01-12 2008-05-14 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
WO2006075901A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
EP1864281A1 (en) * 2005-04-01 2007-12-12 QUALCOMM Incorporated Systems, methods, and apparatus for highband burst suppression
KR100694098B1 (ko) 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
KR100703773B1 (ko) * 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
US7991610B2 (en) * 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US7196641B2 (en) * 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
US7546240B2 (en) * 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US7539612B2 (en) * 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
KR20080067637A (ko) 2005-10-03 2008-07-21 노키아 코포레이션 독립 변수들에 대한 적응적 가변 길이 코드들
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
KR100803206B1 (ko) 2005-11-11 2008-02-14 삼성전자주식회사 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법
EP1995974B1 (en) * 2005-12-05 2015-05-20 Huawei Technologies Co., Ltd. Method for realizing arithmetic coding
CN101133649B (zh) 2005-12-07 2010-08-25 索尼株式会社 编码装置、编码方法以及解码装置、解码方法
KR101237413B1 (ko) 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치
US7283073B2 (en) 2005-12-19 2007-10-16 Primax Electronics Ltd. System for speeding up the arithmetic coding processing and method thereof
WO2007080225A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
KR100774585B1 (ko) 2006-02-10 2007-11-09 삼성전자주식회사 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치
US8027479B2 (en) * 2006-06-02 2011-09-27 Coding Technologies Ab Binaural multi-channel decoder in the context of non-energy conserving upmix rules
US7948409B2 (en) * 2006-06-05 2011-05-24 Mediatek Inc. Automatic power control system for optical disc drive and method thereof
EP1883067A1 (en) 2006-07-24 2008-01-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream
US7554468B2 (en) 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
JP4785706B2 (ja) 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法
DE102007017254B4 (de) * 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
US7365659B1 (en) 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
CN101231850B (zh) 2007-01-23 2012-02-29 华为技术有限公司 编解码方法及装置
KR101365989B1 (ko) * 2007-03-08 2014-02-25 삼성전자주식회사 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법
JP2008289125A (ja) * 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
ES2452348T3 (es) * 2007-04-26 2014-04-01 Dolby International Ab Aparato y procedimiento para sintetizar una señal de salida
US7813567B2 (en) 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
JP4748113B2 (ja) 2007-06-04 2011-08-17 ソニー株式会社 学習装置および学習方法、並びにプログラムおよび記録媒体
EP2158587A4 (en) 2007-06-08 2010-06-02 Lg Electronics Inc METHOD AND DEVICE FOR PROCESSING AUDIO SIGNAL
CA2691993C (en) 2007-06-11 2015-01-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder for encoding an audio signal having an impulse-like portion and stationary portion, encoding methods, decoder, decoding method, and encoded audio signal
US8521540B2 (en) * 2007-08-17 2013-08-27 Qualcomm Incorporated Encoding and/or decoding digital signals using a permutation value
WO2009027606A1 (fr) * 2007-08-24 2009-03-05 France Telecom Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
US7839311B2 (en) * 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US7777654B2 (en) * 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US8527265B2 (en) * 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8515767B2 (en) * 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
US7714753B2 (en) 2007-12-11 2010-05-11 Intel Corporation Scalable context adaptive binary arithmetic coding
US8631060B2 (en) * 2007-12-13 2014-01-14 Qualcomm Incorporated Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
EP2077551B1 (en) 2008-01-04 2011-03-02 Dolby Sweden AB Audio encoder and decoder
JP4893657B2 (ja) * 2008-02-29 2012-03-07 ソニー株式会社 算術復号装置
WO2009110738A2 (ko) 2008-03-03 2009-09-11 엘지전자(주) 오디오 신호 처리 방법 및 장치
MX2010009932A (es) 2008-03-10 2010-11-30 Fraunhofer Ges Forschung Metodo y dispositivo para manipular una señal de audio que tiene un evento transitorio.
EP2284796A4 (en) 2008-04-28 2012-10-31 Univ Osaka Prefect Public Corp METHOD FOR CREATING AN IMAGE DATABASE FOR OBJECT RECOGNITION, PROCESSING DEVICE AND PROCESSING PROGRAM
US7864083B2 (en) 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
WO2010003479A1 (en) * 2008-07-11 2010-01-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
PL2346030T3 (pl) 2008-07-11 2015-03-31 Fraunhofer Ges Forschung Koder audio, sposób kodowania sygnału audio oraz program komputerowy
EP2144230A1 (en) * 2008-07-11 2010-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Low bitrate audio encoding/decoding scheme having cascaded switches
US7714754B2 (en) 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
PT2146344T (pt) 2008-07-17 2016-10-13 Fraunhofer Ges Forschung Esquema de codificação/descodificação de áudio com uma derivação comutável
US20110137661A1 (en) 2008-08-08 2011-06-09 Panasonic Corporation Quantizing device, encoding device, quantizing method, and encoding method
US20100088090A1 (en) 2008-10-08 2010-04-08 Motorola, Inc. Arithmetic encoding for celp speech encoders
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) * 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
GB2466666B (en) 2009-01-06 2013-01-23 Skype Speech coding
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
US8457975B2 (en) * 2009-01-28 2013-06-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio decoder, audio encoder, methods for decoding and encoding an audio signal and computer program
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
EP3352168B1 (en) 2009-06-23 2020-09-16 VoiceAge Corporation Forward time-domain aliasing cancellation with application in weighted or original signal domain
CA2777073C (en) 2009-10-08 2015-11-24 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Multi-mode audio signal decoder, multi-mode audio signal encoder, methods and computer program using a linear-prediction-coding based noise shaping
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
CN102667923B (zh) 2009-10-20 2014-11-05 弗兰霍菲尔运输应用研究公司 音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法
US8149144B2 (en) 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
CA2786944C (en) 2010-01-12 2016-03-15 Fraunhofer Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
CN102131081A (zh) 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
WO2012048472A1 (en) * 2010-10-15 2012-04-19 Huawei Technologies Co., Ltd. Signal analyzer, signal analyzing method, signal synthesizer, signal synthesizing method, windower, transformer and inverse transformer
US20120207400A1 (en) 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
US8170333B2 (en) 2011-10-13 2012-05-01 University Of Dayton Image processing systems employing image compression

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050192799A1 (en) * 2004-02-27 2005-09-01 Samsung Electronics Co., Ltd. Lossless audio decoding/encoding method, medium, and apparatus
US20090299756A1 (en) * 2004-03-01 2009-12-03 Dolby Laboratories Licensing Corporation Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners
TWI302664B (en) * 2005-08-12 2008-11-01 Via Tech Inc Method and apparatus for audio encoding and decoding
TW200727729A (en) * 2006-01-09 2007-07-16 Nokia Corp Decoding of binaural audio signals
TW200746871A (en) * 2006-01-09 2007-12-16 Nokia Corp Decoding of binaural audio signals
TW200818123A (en) * 2006-08-15 2008-04-16 Dolby Lab Licensing Corp A technique for providing arbitrary shaping of the temporal envelope of noise in spectral domain coding systems without the need of side-information
US20080243518A1 (en) * 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
US20080133223A1 (en) * 2006-12-04 2008-06-05 Samsung Electronics Co., Ltd. Method and apparatus to extract important frequency component of audio signal and method and apparatus to encode and/or decode audio signal using the same
US20090192791A1 (en) * 2008-01-28 2009-07-30 Qualcomm Incorporated Systems, methods and apparatus for context descriptor transmission

Also Published As

Publication number Publication date
WO2011086067A1 (en) 2011-07-21
CA2786945A1 (en) 2011-07-21
MX2012008077A (es) 2012-12-05
MX2012008075A (es) 2013-12-16
EP2524371B1 (en) 2016-12-07
CA2786944A1 (en) 2011-07-21
MX2012008076A (es) 2013-01-29
KR20120128127A (ko) 2012-11-26
AR079888A1 (es) 2012-02-29
BR122021008576B1 (pt) 2022-04-12
JP2013517519A (ja) 2013-05-16
HK1177649A1 (zh) 2013-08-23
CN102792370B (zh) 2014-08-06
EP2524372B1 (en) 2015-01-14
CN102792370A (zh) 2012-11-21
AU2011206677B9 (en) 2014-12-11
MY160067A (en) 2017-02-15
MY153845A (en) 2015-03-31
SG182467A1 (en) 2012-08-30
PL2524372T3 (pl) 2015-08-31
SG182464A1 (en) 2012-08-30
KR20120109616A (ko) 2012-10-08
RU2012141242A (ru) 2014-05-27
WO2011086065A1 (en) 2011-07-21
AR079886A1 (es) 2012-02-29
RU2012141243A (ru) 2015-08-10
EP2524371A1 (en) 2012-11-21
CN102859583A (zh) 2013-01-02
EP2524372A1 (en) 2012-11-21
KR101339058B1 (ko) 2013-12-10
PL2517200T3 (pl) 2015-10-30
JP5624159B2 (ja) 2014-11-12
AU2011206676B2 (en) 2014-07-17
CN102859583B (zh) 2014-09-10
EP2517200A1 (en) 2012-10-31
ES2536957T3 (es) 2015-06-01
US20130013323A1 (en) 2013-01-10
BR112012017258A2 (pt) 2017-10-03
US8645145B2 (en) 2014-02-04
AU2011206675A1 (en) 2012-08-09
CA2786945C (en) 2016-03-29
ES2532203T3 (es) 2015-03-25
PT2524371T (pt) 2017-03-15
TW201145260A (en) 2011-12-16
BR122021008583B1 (pt) 2022-03-22
RU2012141241A (ru) 2015-03-27
BR122021008581B1 (pt) 2022-08-16
KR101336051B1 (ko) 2013-12-04
TW201145262A (en) 2011-12-16
US8682681B2 (en) 2014-03-25
BR112012017256B1 (pt) 2021-08-31
SG182466A1 (en) 2012-08-30
AR079887A1 (es) 2012-02-29
BR112012017256A2 (pt) 2020-08-25
ZA201205936B (en) 2013-05-29
ZA201205938B (en) 2013-05-29
JP2013517521A (ja) 2013-05-16
CN102844809B (zh) 2015-02-18
JP2013517520A (ja) 2013-05-16
CA2786946A1 (en) 2011-07-21
AU2011206676A1 (en) 2012-08-09
HK1178306A1 (zh) 2013-09-06
AU2011206675B2 (en) 2014-07-10
BR112012017258B1 (pt) 2020-12-29
JP5622865B2 (ja) 2014-11-12
CA2786946C (en) 2016-03-22
KR20120109621A (ko) 2012-10-08
MY159982A (en) 2017-02-15
AU2011206677B2 (en) 2014-07-10
JP5773502B2 (ja) 2015-09-02
AU2011206677B8 (en) 2014-12-11
CA2786944C (en) 2016-03-15
WO2011086066A1 (en) 2011-07-21
TWI466104B (zh) 2014-12-21
ZA201205939B (en) 2013-05-29
CN102844809A (zh) 2012-12-26
BR112012017257A2 (pt) 2017-10-03
KR101339057B1 (ko) 2013-12-10
RU2644141C2 (ru) 2018-02-07
US9633664B2 (en) 2017-04-25
US20130013322A1 (en) 2013-01-10
PL2524371T3 (pl) 2017-06-30
US8898068B2 (en) 2014-11-25
RU2628162C2 (ru) 2017-08-15
US20130013301A1 (en) 2013-01-10
TWI466103B (zh) 2014-12-21
EP2517200B1 (en) 2015-04-15
AU2011206675C1 (en) 2016-04-28
ES2615891T3 (es) 2017-06-08
US20150081312A1 (en) 2015-03-19
AU2011206677A1 (en) 2012-08-09
TW201145261A (en) 2011-12-16

Similar Documents

Publication Publication Date Title
TWI476757B (zh) 音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式
TWI430262B (zh) 音訊編碼器、音訊解碼器、用以將音訊資訊編碼之方法、用以將音訊資訊解碼之方法及利用重複區間大小縮減的電腦程式
KR101573829B1 (ko) 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 최적화된 해시 테이블을 사용하는 컴퓨터 프로그램