JP5773502B2 - オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム - Google Patents

オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム Download PDF

Info

Publication number
JP5773502B2
JP5773502B2 JP2012548401A JP2012548401A JP5773502B2 JP 5773502 B2 JP5773502 B2 JP 5773502B2 JP 2012548401 A JP2012548401 A JP 2012548401A JP 2012548401 A JP2012548401 A JP 2012548401A JP 5773502 B2 JP5773502 B2 JP 5773502B2
Authority
JP
Japan
Prior art keywords
value
context
hash table
values
hash
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2012548401A
Other languages
English (en)
Other versions
JP2013517519A (ja
Inventor
ギヨーム フュックス
ギヨーム フュックス
マルクス ムルトルス
マルクス ムルトルス
ニコラウス レッテルバッハ
ニコラウス レッテルバッハ
ヴィグネシュ スバラマン
ヴィグネシュ スバラマン
オーリヴァー ヴァイス
オーリヴァー ヴァイス
マルク ガイヤー
マルク ガイヤー
パトリック ヴァルムボルト
パトリック ヴァルムボルト
クリスティアン グリーベル
クリスティアン グリーベル
Original Assignee
フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー.
フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー.
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 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー., フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. filed Critical フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー.
Publication of JP2013517519A publication Critical patent/JP2013517519A/ja
Application granted granted Critical
Publication of JP5773502B2 publication Critical patent/JP5773502B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/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)等のオーディオ符号化器またはオーディオ復号器において使用可能な改良されたスペクトルノイズレスコーディングに関する。
以下に、本発明およびその利点の理解を容易にするため、本発明の背景について簡単に説明する。ここ10年、オーディオコンテンツを良好なビットレート効率でデジタル的に格納および配信する可能性を生み出すために多大な努力が払われてきた。これまでの重要な成果の一つは、国際規格ISO/IEC14496−3の定義に関する。同規格のパート3は、オーディオコンテンツの符号化および復号に関し、パート3のサブパート4は、一般的なオーディオコーディングに関する。ISO/IEC14496,パート3,サブパート4は、一般的なオーディオコンテンツの符号化および復号のための概念を定義している。また、品質の改善および/または所要ビットレートの低減のためにさらなる改良が提案されている。
上記規格に記載される概念によると、時間領域オーディオ信号が時間周波数表現に変換される。時間領域から時間周波数領域への変換は、典型的には、時間領域サンプルの変換ブロック(「フレーム」としても示される)を用いて行われる。例えば、フレームが半分だけずれた重複フレームを使用することが有利であることが分かっているが、この理由は、重複により、効率的にアーチファクトを回避する(または、少なくとも低減する)ことができるからである。また、時間的に限られたフレームのこの処理に起因するアーチファクトを回避するために、ウィンドウ処理を実行する必要があることが分かっている。
入力オーディオ信号のウィンドウ処理された部分を時間領域から時間周波数領域へと変換することにより、エネルギー圧縮が多くの場合において達成されるので、スペクトル値のいくつかは複数の他のスペクトル値よりも著しく大きい。したがって、多くの場合において、スペクトル値の平均的な大きさを著しく上回る大きさを有するスペクトル値の数は比較的少ない。エネルギー圧縮をもたらす時間領域から時間周波数領域への変換の典型例は、いわゆる修正離散コサイン変換(MDCT)である。
スペクトル値は、しばしば心理音響モデルに従ってスケーリングおよび量子化されるので、量子化誤差は、心理音響学的に重要性の高いスペクトル値については比較的小さく、心理音響学的に重要性の低いスペクトル値については比較的大きい。スケーリングおよび量子化されたスペクトル値は、当該スペクトル値のビットレート効率のよい表現を得るべく符号化される。
例えば、量子化されたスペクトル係数のいわゆるハフマンコーディングの使用が国際規格ISO/IEC14496−3:2005(E)、パート3、サブパート4に記載されている。
しかし、スペクトル値のコーディング品質は、所要ビットレートに大きな影響を及ぼすことが分かっている。また、家庭用携帯機器においてしばしば実装され、したがって安価かつ低消費電力であるべきオーディオ復号器の複雑性は、スペクトル値を符号化するために用いられるコーディングに依存することが分かっている。
このような状況に鑑み、ビットレート効率とリソース効率とのトレードオフの改善をもたらす、オーディオコンテンツの符号化および復号のための概念が必要とされる。
本発明による一実施の形態は、復号されたオーディオ情報を符号化されたオーディオ情報に基づいて提供するためのオーディオ復号器を実現する。オーディオ復号器は、複数の復号されたスペクトル値を、当該スペクトル値の算術符号化された表現に基づいて提供するための算術復号部を備える。オーディオ復号器はまた、復号されたオーディオ情報を取得するために、復号されたスペクトル値を用いて時間領域オーディオ表現を提供するための周波数領域−時間領域変換部も備える。算術復号部は、コード値の記号コード(記号コードは、典型的には、スペクトル値もしくは複数のスペクトル値またはスペクトル値もしくは複数のスペクトル値の最上位ビットプレーンを示す)へのマッピングを示すマッピング規則を現在の数値コンテキスト値によって示されるコンテキスト状態に応じて選択するように構成されている。算術復号部は、複数の以前に復号されたスペクトル値に応じて現在の数値コンテキスト値を決定するように構成されている。算術復号部は、マッピング規則を選択するために、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルを評価するようにさらに構成されている。マッピング規則インデックス値が、上位状態値である数値コンテキスト値に対して個別に対応付けられている。共通のマッピング規則インデックス値が、間隔境界(間隔境界は、ハッシュテーブルのエントリによって記述される)によって境界付けられた間隔内に位置する異なる数値コンテキスト値に対応付けられている。
本発明によるこの実施の形態は、現在の数値コンテキスト値をマッピング規則インデックス値にマッピングする際の計算効率は、エントリが当該数値コンテキスト値のうちの上位状態値と当該数値コンテキスト値の間隔の境界との両方を定義する単一のハッシュテーブルを使用することにより従来の解決法と比較して改良することができるという知見に基づくものである。したがって、現在の数値コンテキスト値の比較的多数の考えられる値を比較的少数の異なるマッピング規則インデックス値にマッピングするには、単一のテーブルによるテーブル検索で十分である。ハッシュテーブルの各エントリ、好ましくは、ハッシュテーブルの単一のエントリに二重の意味を対応付けることにより、テーブルアクセス数を低く抑えることが可能となり、これにより、マッピング規則の選択に必要とされる計算資源が低減する。さらに、数値コンテキスト値のうちの上位状態と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルエントリの使用は、典型的には、効率的なコンテキストマッピングによく適していることが分かっている。その理由は、典型的には、共通のマッピング規則インデックス値を使用する必要のある数値コンテキスト値の比較的大きい間隔が存在しているからであり、このような数値コンテキスト値の間隔は、典型的には、数値コンテキスト値の上位状態値によって隔てられている。しかし、ハッシュテーブルのエントリが上位状態値と数値コンテキスト値の間隔の境界との両方を定義するという本発明の概念は、異なるマッピング規則インデックス値が対応付けられた数値コンテキスト値の2つの間隔が、上位状態値を介さずに直接隣接している場合にさらにより適していることが分かっている。
要約すると、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルを使用することにより、コーディング効率、計算の複雑性、およびメモリ需要の間の良好なトレードオフが得られる。
好ましい実施の形態において、算術復号部は、現在の数値コンテキスト値または現在の数値コンテキスト値のスケーリングされたバージョンを、ハッシュテーブルの番号順に並んだ複数のエントリと比較して、ハッシュテーブルエントリのハッシュテーブルインデックス値を取得し、その結果、現在の数値コンテキスト値が、取得されたハッシュテーブルインデックス値と隣接するハッシュテーブルエントリとによって指定されるハッシュテーブルエントリによって定義される間隔内に位置するように構成されている。算術復号部は、好ましくは、現在の数値コンテキスト値が、取得されたハッシュテーブルインデックス値によって指定されるハッシュテーブルのエントリによって定義される値を含むか否かを判定し、取得されたハッシュテーブルインデックス値によって指定されるハッシュテーブルのエントリによって定義される(現在の)数値コンテキスト値に個別に対応付けられたマッピング規則インデックス値、または取得されたハッシュテーブルインデックス値によって指定され、かつ取得されたハッシュテーブルインデックス値によって指定されるハッシュテーブルのエントリによって定義される状態値(コンテキスト値としても示される)によって一方の側において境界付けられた間隔内の異なる(現在の)数値コンテキスト値に対応付けられたマッピング規則インデックス値を、判定結果に応じて選択的に提供するように構成されている。したがって、ハッシュテーブルのエントリは、上位状態値(上位コンテキスト値としても示される)と(現在の)数値コンテキスト値の間隔との両方を定義することができる。現在の数値コンテキスト値が上位状態値であるか、あるいは共通のマッピング規則インデックス値が対応付けられた状態値の間隔内に位置するかについての最終的な決定は、現在の数値コンテキスト値を最終的に取得されたハッシュテーブルのエントリによって表される状態値と比較することによって行われる。したがって、ハッシュテーブルのエントリの二重の意味を利用して効果的な機構が実現される。
好ましい実施の形態において、算術復号部は、現在の数値コンテキスト値が、ハッシュテーブルの1つのエントリによって定義される間隔境界状態値(典型的には上位状態値であるが、必ずしもそうである必要はない)に等しいか、あるいはハッシュテーブルの2つの(好ましくは隣接する)エントリによって定義される間隔内に位置するかを、ハッシュテーブルを用いて判定するように構成されている。したがって、算術復号部は、好ましくは、現在の数値コンテキスト値が間隔境界状態値に等しいと分かった場合、ハッシュテーブルのエントリに対応付けられたマッピング規則インデックス値を提供し、現在の数値コンテキスト値がハッシュテーブルの2つの隣接するエントリによって定義される境界状態値間の間隔内に位置することが分かった場合、ハッシュテーブルの2つの隣接するエントリによって定義される状態値間の間隔に対応付けられたマッピング規則インデックス値を提供するように構成されている。算術復号部は、マッピング規則インデックス値に応じて、算術復号部のための累積度数テーブルを選択するようにさらに構成されている。したがって、算術復号部は、間隔境界状態値に等しい現在の数値コンテキスト値のための「専用の」マッピング規則インデックス値を提供するとともに、それ以外の場合には、「間隔に関連した」マッピング規則インデックス値を提供するように構成されている。したがって、共通の計算効率の高い機構を用いて、上位状態と2つの間隔間の移行との両方を扱うことができる。
好ましい実施の形態において、ハッシュテーブルの第1の所与のエントリに対応付けられたマッピング規則インデックス値が、上方境界がハッシュテーブルの第1の所与のエントリによって定義される数値コンテキスト値の第1の間隔に対応付けられたマッピング規則インデックス値と異なり、下方境界がハッシュテーブルの第1の所与のエントリによって定義される数値コンテキスト値の第2の間隔に対応付けられたマッピング規則インデックス値とも異なり、その結果、ハッシュテーブルの第1の所与のエントリが、(現在の)数値コンテキスト値の2つの間隔の境界と(現在の)数値コンテキスト値の上位状態値とを単一の値によって定義するようにされている。この場合、第1の間隔は、ハッシュテーブルの第1の所与のエントリによって定義される状態値によって境界付けられ、ハッシュテーブルの第1の所与のエントリによって定義される状態値は、第1の間隔に属さない。同様に、第2の間隔は、ハッシュテーブルの第1の所与のエントリによって定義される状態値によって境界付けられ、ハッシュテーブルの第1の所与のエントリによって定義される状態値は、第2の間隔に属さない。さらに、この機構を用いて、「専用の」マッピング規則インデックス値を、数値的に第1の間隔の最大状態値(コンテキスト値としても示される)と第2の間隔の最小状態値(コンテキスト値としても示される)との間にある単一の現在の数値コンテキスト状態値に「個別に」対応付けることができる(典型的には、第1の間隔の最大数値と第2の間隔の最小数値との間には1つの整数、すなわち、ハッシュテーブルの第1の所与のエントリによって定義される数が存在する)。したがって、とりわけ特徴性の高い現在の数値コンテキスト値を、個別に対応付けられたマッピング規則インデックス値にマッピングするとともに、他の特徴性の低い現在の数値コンテキスト値を、間隔毎に対応付けられたマッピング規則インデックス値にマッピングすることができる。
好ましい実施の形態において、コンテキスト値の第1の間隔に対応付けられたマッピング規則インデックス値は、コンテキスト値の第2の間隔に対応付けられたマッピング規則インデックス値に等しく、その結果、ハッシュテーブルの第1の所与のエントリが、上位でない状態値の両側環境内の孤立した上位状態値を定義するようにされている。換言すれば、とりわけ特徴性が高い現在の数値コンテキスト値を対応付けられたマッピング規則インデックス値にマッピングすることができるとともに、当該とりわけ特徴性が高い現在の数値コンテキスト値の両側にある隣接する現在の数値コンテキスト値は、とりわけ特徴性が高い現在の数値コンテキスト値に対応付けられたマッピング規則インデックス値とは異なる共通のマッピング規則インデックス値にマッピングされる。
好ましい実施の形態において、ハッシュテーブルの第2の所与のエントリに対応付けられたマッピング規則インデックス値が、境界がハッシュテーブルの第2の所与のエントリによって定義されるコンテキスト値の第3の間隔に対応付けられたマッピング規則インデックス値と同一であるとともに、境界がハッシュテーブルの第2の所与のエントリによって定義されるコンテキスト値の第4の間隔に対応付けられたマッピング規則インデックス値と異なり、その結果、ハッシュテーブルの第2の所与のエントリは、現在の数値コンテキスト値の上位状態を定義することなく、現在の数値コンテキスト値の2つの間隔の境界を定義するようにされている。したがって、本発明による概念により、異なるマッピング規則インデックス値が対応付けられた(現在の)数値コンテキスト値の隣接する間隔を、上位状態の存在を介することなく定義することも可能となる。これは、比較的単純で計算効率の高い機構を用いて達成することができる。
好ましい実施の形態において、算術復号部は、番号順に並んだエントリが数値コンテキスト値の上位状態値と数値コンテキスト値の間隔の境界との両方を定義する単一のハッシュテーブルを評価して、現在の数値コンテキスト値が位置するハッシュテーブルのエントリによって定義される間隔から1つの間隔を指定するハッシュテーブルインデックス値を取得し、続いて、現在の数値コンテキスト値が上位状態値をとるかあるいは上位でない状態値をとるかを、取得されたハッシュテーブルインデックス値によって指定されるテーブルエントリを用いて判定するように構成されている。このような概念を用いることにより、繰返し実行される計算の複雑性を比較的低く抑えることができ、その結果、ハッシュテーブルの番号順に並んだ複数のエントリを少ない計算労力で評価することができる。現在の数値コンテキスト値毎に1回だけ実行される最終ステップにおいてのみ、現在の数値コンテキスト値が上位状態値をとるか、あるいは上位でない状態値をとるかについての決定を行うことができる。
好ましい実施の形態において、算術復号部は、現在の数値コンテキスト値が上位状態値をとらないことが分かった場合、間隔インデックス値をマッピング規則インデックス値にマッピングするマッピングテーブルを選択的に評価して、現在の数値コンテキスト値が位置する上位でない状態値(上位でないコンテキスト値としても示される)の間隔に対応付けられたマッピング規則インデックス値を取得するように構成されている。したがって、ハッシュテーブルのエントリによって定義される現在の数値コンテキスト値の間隔のマッピング規則インデックス値を取得するために計算効率の高い機構が実現される。
好ましい実施の形態において、ハッシュテーブルのエントリは番号順に並べられ、算術復号部は、ハッシュテーブルのエントリのシーケンスを評価して、ハッシュテーブルエントリのハッシュテーブルインデックス結果値を取得し、その結果、現在の数値コンテキスト値が、取得されたハッシュテーブルインデックス結果値と隣接するハッシュテーブルエントリとによって指定されるハッシュテーブルエントリによって定義される間隔内に位置するようにするように構成されている。この場合、算術復号部は、ハッシュテーブルインデックス結果値を繰返し決定するために、所定回数の繰返しを実行するように構成されている。各繰返しは、ハッシュテーブルの現在のエントリによって表される状態値と現在の数値コンテキスト値によって表される状態値との1回のみの比較と、1回の比較の結果に応じた現在のハッシュテーブルインデックス値の選択的な更新とを含む。したがって、ハッシュテーブルの評価およびマッピング規則インデックス値の特定のための計算の複雑性を低減することができる。
好ましい実施の形態において、記算術復号部は、上位状態値を含む現在の数値コンテキスト値と、上位でない状態値を含む現在の数値コンテキスト値とを、所定回数の繰返しを実行した後でのみ区別するように構成されている。このようにすることで、各繰返しにおいて行われる評価を単純にしておくことができるため、計算の複雑性が低減される。
本発明による別の実施の形態は、符号化されたオーディオ情報を入力オーディオ情報に基づいて提供するためのオーディオ符号化器に関する。オーディオ符号化器は、周波数領域オーディオ表現を、当該周波数領域オーディオ表現がスペクトル値の集合を含むように、入力オーディオ情報の時間領域表現に基づいて提供するためのエネルギー圧縮型の時間領域−周波数領域変換部を備える。オーディオ符号化器は、スペクトル値またはその前処理されたバージョン、あるいは同等に、複数のスペクトル値またはその前処理済バージョンを可変長コードワードを用いて符号化するように構成された算術符号化部も備える。算術符号化部は、スペクトル値またはスペクトル値の最上位ビットプレーンの値(あるいは同等に、複数のスペクトル値または複数のスペクトル値の最上位ビットプレーンの値)をコード値にマッピングするように構成されている。算術符号化部は、スペクトル値またはスペクトル値の最上位ビットプレーンのコード値へのマッピングを示すマッピング規則を、現在の数値コンテキスト値によって示されるコンテキスト状態に応じて選択するように構成されている。算術符号化部は、複数の以前に符号化されたスペクトル値に応じて現在の数値コンテキスト値を決定するように構成されている。算術符号化部は、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルを評価するように構成され、マッピング規則インデックス値が、上位状態値である(現在の)数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、間隔境界(間隔境界は、ハッシュテーブルのエントリによって記述される)によって境界付けられた間隔内に位置する異なる(現在の)数値コンテキスト値に対応付けられている。
このオーディオ符号化器は、上述のオーディオ復号器と同じ知見に基づくものであり、符号化されたスペクトル値が復号されたスペクトル値に置き換わった、上述のオーディオ復号器と同じ特徴および機能で補足することができる。特に、マッピング規則インデックス値の計算は、オーディオ符号化器においてと同様に行うことができる。
本発明による一実施の形態は、復号されたオーディオ情報を符号化されたオーディオ情報に基づいて提供するための方法を実現する。この方法は、複数の復号されたスペクトル値を当該スペクトル値の算術符号化された表現に基づいて提供するステップと、復号されたオーディオ情報を取得するために、復号されたスペクトル値を用いて時間領域オーディオ表現を提供するステップとを含む。複数の復号されたスペクトル値を提供するステップは、スペクトル値またはスペクトル値の最上位ビットプレーン(あるいは、同等に、複数のスペクトル値または複数のスペクトル値の最上位ビットプレーン)を符号化された形式で表すコード値の、スペクトル値またはスペクトル値の最上位ビットプレーン(あるいは、同等に、複数のスペクトル値または複数のスペクトル値の最上位ビットプレーン)を復号された形式で表す記号コードへのマッピングを示すマッピング規則を、現在の数値コンテキスト値によって示されるコンテキスト状態に応じて選択するステップを含む。現在の数値コンテキスト値は、複数の以前に復号されたスペクトル値に応じて決定される。エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルが評価される。マッピング規則インデックス値が、上位状態値である現在の数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、間隔境界(間隔境界は、ハッシュテーブルのエントリによって記述される)によって境界付けられた間隔内に位置する現在の数値コンテキスト値に対応付けられている。
本発明による一実施の形態は、符号化されたオーディオ情報を入力オーディオ情報に基づいて提供するための方法を実現する。この方法は、エネルギー圧縮型の時間領域−周波数領域変換を用いて、周波数領域オーディオ表現がスペクトル値の集合を有するように当該周波数領域オーディオ表現を入力オーディオ情報の時間領域表現に基づいて提供するステップを含む。上記方法はスペクトル値またはその前処理されたバージョンを可変長コードワードを用いて算術符号化するステップであって、スペクトル値またはスペクトル値の最上位ビットプレーンの値(あるいは、同等に、複数のスペクトル値または複数のスペクトル値の最上位ビットプレーン)がコード値にマッピングされるステップも含む。スペクトル値またはスペクトル値の最上位ビットプレーン(あるいは、同等に、複数のスペクトル値または複数のスペクトル値の最上位ビットプレーン)のコード値へのマッピングを示すマッピング規則が、現在の数値コンテキスト値によって示されるコンテキスト状態に応じて選択される。現在の数値コンテキスト値は、複数の以前に符号化された隣接するスペクトル値に応じて決定される。エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルが評価される。マッピング規則インデックス値が、上位状態値である(現在の)数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、間隔境界によって境界付けられた間隔内に位置する異なる(現在の)数値コンテキスト値に対応付けられている。
本発明による別の実施の形態は、上記方法のうちの1つを実行するためのコンピュータプログラムに関する。
次に、本発明による実施の形態を添付の図面を参照しながら説明する。
図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)は、可変長コードワードから記号を算術復号するためのアルゴリズム「arith_decode()」の疑似プログラムコード表現を示す。 図5g(2)は、可変長コードワードから記号を算術復号するためのアルゴリズム「arith_decode()」の疑似プログラムコード表現を示す。 図5hは、可変長コードワードから記号を算術復号するための別のアルゴリズム「arith_decode()」の疑似プログラムコード表現の第1の部分を示す。 図5iは、可変長コードワードから記号を算術復号するための上記別のアルゴリズム「arith_decode()」の疑似プログラムコード表現の第2の部分を示す。 図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は、本発明の第1の態様によるオーディオ符号化器のブロック模式図を示す。 図8は、本発明の第1の態様によるオーディオ復号器のブロック模式図を示す。 図9は、本発明の第1の態様による、マッピング規則インデックス値への現在の数値コンテキスト値のマッピングのグラフ図を示す。 図10は、本発明の第2の態様によるオーディオ符号化器のブロック模式図を示す。 図11は、本発明の第2の態様によるオーディオ復号器のブロック模式図を示す。 図12は、本発明の第3の態様によるオーディオ符号化器のブロック模式図を示す。 図13は、本発明の第3の態様によるオーディオ復号器のブロック模式図を示す。 図14aは、USAC規格案のワーキングドラフト(working draft)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による32kbitビットストリームの復号の平均複雑度のテーブル表現を示す。 図21(1)は、テーブル「ari_lookup_m[600]」の内容のテーブル表現を示す。 図21(2)は、テーブル「ari_lookup_m[600]」の内容のテーブル表現を示す。 図22(1)は、テーブル「ari_hash_m[600]」の内容のテーブル表現を示す。 図22(2)は、テーブル「ari_hash_m[600]」の内容のテーブル表現を示す。 図22(3)は、テーブル「ari_hash_m[600]」の内容のテーブル表現を示す。 図22(4)は、テーブル「ari_hash_m[600]」の内容のテーブル表現を示す。 図23(1)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図23(2)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図23(3)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図23(4)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図23(5)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図23(6)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図23(7)は、テーブル「ari_cf_m[96][17]」の内容のテーブル表現を示す。 図24は、テーブル「ari_cf_r[]」の内容のテーブル表現を示す。
実施の形態の詳細な説明
1.図7によるオーディオ符号化器
図7は、本発明の実施の形態によるオーディオ符号化器のブロック模式図を示す。オーディオ符号化器700は、入力オーディオ情報710を受信し、これに基づいて、符号化されたオーディオ情報712を提供するように構成されている。オーディオ符号化器は、エネルギー圧縮型の時間領域−周波数領域変換部720を備え、時間領域−周波数領域変換部720は、周波数領域オーディオ表現722を、当該周波数領域オーディオ表現722がスペクトル値の集合を含むように、入力オーディオ情報710の時間領域表現に基づいて提供するように構成されている。オーディオ符号化器700はまた、算術符号化部730も備え、算術符号化部730は、符号化されたオーディオ情報712(例えば、複数の可変長コードワードを含み得る)を取得するために、スペクトル値(周波数領域オーディオ表現722を形成するスペクトル値の集合のうちの)またはその前処理されたバージョンを可変長コードワードを用いて符号化するように構成されている。
算術符号化部730は、コンテキスト状態に応じて、スペクトル値またはスペクトル値の最上位ビットプレーンの値をコード値に(すなわち、可変長コードワードに)マッピングするように構成されている。算術符号化部は、(現在の)コンテキスト状態に応じて、スペクトル値またはスペクトル値の最上位ビットプレーンのコード値へのマッピングを示すマッピング規則を選択するように構成されている。算術符号化部は、複数の以前に符号化された(好ましくは隣接しているが、必ずしもそうでなくてもよい)スペクトル値に応じて、現在のコンテキスト状態または現在のコンテキスト状態を示す現在の数値コンテキスト値を決定するように構成されている。この目的で、算術符号化部は、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブルを評価するように構成され、マッピング規則インデックス値が、上位状態値である(現在の)数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、間隔境界(間隔境界は、好ましくは、ハッシュテーブルのエントリによって定義される)によって境界付けられた間隔内に位置する異なる(現在の)数値コンテキスト値に対応付けられている。
(符号化されたオーディオ情報712の)コード値への(周波数領域オーディオ表現722の)スペクトル値またはスペクトル値の最上位ビットプレーンのマッピングは、マッピング規則742を用いたスペクトル値符号化740によって行われ得ることが分かる。状態追跡部750が、コンテキスト状態を追跡するように構成され得る。状態追跡部750は、現在のコンテキスト状態を示す情報754を提供する。現在のコンテキスト状態を示す情報754は、好ましくは、現在の数値コンテキスト値の形式を有する。マッピング規則選択部760が、コード値へのスペクトル値またはスペクトル値の最上位ビットプレーンのマッピングを示す、例えば、累積度数テーブルといったマッピング規則を選択するように構成されている。したがって、マッピング規則選択部760は、マッピング規則情報742をスペクトル値符号化740に提供する。マッピング規則情報742は、マッピング規則インデックス値またはマッピング規則インデックス値に応じて選択される累積度数テーブルの形式を有してもよい。マッピング規則選択部760は、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の境界および間隔との両方を定義するハッシュテーブル752を含み(またはこれを少なくとも評価し)、マッピング規則インデックス値が、上位状態値である数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、間隔境界によって境界付けられた間隔内に位置する異なる数値コンテキスト値に対応付けられている。ハッシュテーブル762は、マッピング規則を選択するために、すなわち、マッピング規則情報742を提供するために評価される。
上記を要約すると、オーディオ符号化器700は、時間領域−周波数領域変換部によって提供された周波数領域オーディオ表現の算術符号化を行う。この算術符号化はコンテキスト依存型であり、したがって、マッピング規則(例えば、累積度数テーブル)が、以前に符号化されたスペクトル値に応じて選択される。したがって、互いにおよび/または現在符号化されているスペクトル値(すなわち、現在符号化されているスペクトル値の所定の環境内のスペクトル値)と時間および/または周波数において(あるいは、少なくとも所定の環境内において)隣接するスペクトル値が、算術符号化によって評価される確率分布を調整するために算術符号化において考慮される。適切なマッピング規則を選択する際、状態追跡部750によって提供された現在の数値コンテキスト値754が評価される。典型的には、異なるマッピング規則の数は、現在の数値コンテキスト値754の考えられる値の数よりも著しく小さいので、マッピング規則選択部760は、比較的多数の異なる数値コンテキスト値に対して同じマッピング規則(例えばマッピング規則インデックス値によって示される)を割り当てる。しかし、典型的には、良好なコーディング効率を得るために、あるマッピング規則を対応付けるべき特定のスペクトル構成(特定の数値コンテキスト値によって表される)がある。
現在の数値コンテキスト値に応じたマッピング規則の選択は、単一のハッシュテーブルの各エントリが上位状態値と(現在の)数値コンテキスト値の間隔の境界との両方を定義する場合、特に高い計算効率で行うことができるということが分かっている。単一の上位状態値(または上位数値コンテキスト値)が複数の上位でない状態値(共通のマッピング規則が対応付けられた)の左側の間隔と複数の上位でない状態値(共通のマッピング規則が対応付けられた)の右側の間隔との間に埋め込まれている場合が多いため、この機構はマッピング規則の選択の要件によく適合していることが分かっている。また、エントリが上位状態値と(現在の)数値コンテキスト値の間隔の境界との両方を定義する単一のハッシュテーブルを用いる機構は、例えば、上位状態値を介さずに隣接した上位でない状態値(上位でない数値コンテキスト値としても示される)の2つの間隔が存在する場合といったその他のケースを効率的に扱うことができる。テーブルアクセスの回数が少なく保たれるため、特に高い計算効率が達成される。例えば、ほとんどの実施の形態において、現在の数値コンテキスト値が上位状態値のいずれかに等しいか否か、あるいは現在の数値コンテキスト値が上位でない状態値の間隔のうちどの間隔内に位置するのかを調べるには、1回の繰返しテーブル検索を行うだけで十分である。これにより、多大な時間と労力を要するテーブルアクセスの回数を低く保つことができる。したがって、ハッシュテーブル762を用いるマッピング規則選択部760は、計算の複雑性の点で特に効率的なマッピング規則選択部でありながら、同時に、良好な符号化効率(ビットレートの面で)を得ることを可能にするものであると考えられる。
現在の数値コンテキスト値754からのマッピング規則情報742の導出に関する詳細については後述する。
2.図8によるオーディオ復号器
図8は、オーディオ復号器800のブロック模式図を示す。オーディオ復号器800は、符号化されたオーディオ情報810を受信し、これに基づいて、復号されたオーディオ情報812を提供するように構成されている。オーディオ復号器800は、複数のスペクトル値822を当該スペクトル値の算術符号化された表現821に基づいて提供するように構成された算術復号部820を備える。オーディオ復号器800はまた、周波数領域−時間領域変換部830も備え、周波数領域−時間領域変換部830は、復号されたオーディオ情報812を取得するために、復号されたスペクトル値822を受信し、復号されたオーディオ情報を構成し得る時間領域オーディオ表現812を復号されたスペクトル値822を用いて提供するように構成されている。
算術復号部820は、スペクトル値の算術符号化された表現821のコード値を、復号されたスペクトル値のうち1つ以上のスペクトル値または復号されたスペクトル値のうちの1つ以上のスペクトル値の少なくとも一部(例えば、最上位ビットプレーン)を表す記号コードにマッピングするように構成されたスペクトル値決定部824を備える。スペクトル値決定部824は、マッピング規則情報828aによって示され得るマッピング規則に応じてマッピングを行うように構成され得る。マッピング規則情報828aは、例えば、マッピング規則インデックス値または選択された累積度数テーブル(例えば、マッピング規則インデックス値に応じて選択された)の形式を有し得る。
算術復号部820は、(スペクトル値の算術符号化された表現821によって示される)コード値の(1つ以上のスペクトル値またはその最上位ビットプレーンを示す)記号コードへのマッピングを示すマッピング規則(例えば、累積度数テーブル)を、コンテキスト状態(コンテキスト状態情報826aによって示され得る)に応じて選択するように構成されている。算術復号部820は、複数の以前に復号されたスペクトル値に応じて、現在のコンテキスト状態(現在の数値コンテキスト値によって示される)を決定するように構成されている。この目的で、状態追跡部826を用いてもよく、状態追跡部826は、以前に復号されたスペクトル値を示す情報を受信し、これに基づいて、現在のコンテキスト状態を示す現在の数値コンテキスト値826aを提供する。
算術復号部は、マッピング規則を選択するために、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値の間隔の境界との両方を定義するハッシュテーブル829を評価するようにも構成され、マッピング規則インデックス値が、上位状態値である数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、間隔境界によって境界付けられた間隔内に位置する異なる数値コンテキスト値に対応付けられている。ハッシュテーブル829の評価は、例えば、マッピング規則選択部828の一部であってもよいハッシュテーブル評価部を用いて行われてもよい。したがって、マッピング規則情報828aが、例えば、マッピング規則インデックス値の形式において、現在のコンテキスト状態を示す現在の数値コンテキスト値826aに基づいて取得される。マッピング規則選択部828は、例えば、ハッシュテーブル829の評価結果に応じてマッピング規則インデックス値828aを決定してもよい。代替的に、ハッシュテーブル829の評価によって、直接マッピング規則インデックス値を提供してもよい。
オーディオ信号復号器800の機能に関し、マッピング規則が現在のコンテキスト状態(例えば、現在の数値コンテキスト値によって示される)に応じて選択され、当該コンテキスト状態が複数の以前に復号されたスペクトル値に応じて決定されるので、算術復号部820は、復号対象のスペクトル値に概してよく適合したマッピング規則(例えば、累積度数テーブル)を選択するように構成されている点に留意されたい。これにより、隣接する復号対象のスペクトル値間の統計的依存性を利用することができる。さらに、算術復号部820は、マッピング規則選択部828を用いて効率的に実現することができ、計算の複雑性と、テーブルサイズと、コーディング効率とのトレードオフが良好となる。エントリが上位状態値と上位でない状態値の間隔の間隔境界との両方を示す(単一の)ハッシュテーブル829を評価することにより、1回の反復テーブル検索で現在の数値コンテキスト値826aからマッピング規則情報828aを十分に導出し得る。したがって、比較的多数の考えられる異なる(現在の)数値コンテキスト値を比較的少数の異なるマッピング規則インデックス値にマッピングすることができる。ハッシュテーブル829を用いることにより、上述のように、1つの孤立した上位状態値(上位コンテキスト値)が上位でない状態値(上位でないコンテキスト値)の左側の間隔と上位でない状態値(上位でないコンテキスト値)の右側の間隔との間に埋め込まれており、左側の間隔の状態値(コンテキスト値)および右側の間隔の状態値(コンテキスト値)を比較して、異なるマッピング規則インデックス値が上位状態値(上位コンテキスト値)に対応付けられているという知見を多くの場合において利用することができる。しかし、ハッシュテーブル829の使用はまた、数値状態の値の2つの間隔が上位状態値を介さずに直接隣接している状況にもよく適している。
結論すると、ハッシュテーブル829を評価するマッピング規則選択部828により、現在のコンテキスト状態に基づいて(または現在のコンテキスト状態を示す現在の数値コンテキスト値に基づいて)マッピング規則を選択する際(またはマッピング規則インデックス値を提供する際)に特に良好な効率が達成される。なぜなら、上記ハッシュ機構は、オーディオ復号器における典型的なコンテキストのシナリオによく適合しているからである。
さらなる詳細については後述する。
3. 図9によるコンテキスト値ハッシュ機構
以下に、マッピング規則選択部760および/またはマッピング規則選択部828において実施され得るコンテキストハッシュ機構について開示する。このコンテキスト値ハッシュ機構を実施するために、ハッシュテーブル762および/またはハッシュテーブル829を用いてもよい。
次に、現在の数値コンテキスト値ハッシュのシナリオを示す図9を参照し、さらなる詳細について説明する。図9のグラフ図において、横軸910は、現在の数値コンテキスト値(すなわち、数値コンテキスト値)の値を示している。縦軸912は、マッピング規則インデックス値を示している。表示914は、(上位でない状態を示す)上位でない数値コンテキスト値のためのマッピング規則インデックス値を示している。表示916は、個別の(真の)上位状態を示す「個別の」(真の)上位数値コンテキスト値のためのマッピング規則インデックス値を示している。表示916は、「不適切な」上位状態を示す「不適切な」数値コンテキスト値のためのマッピング規則インデックス値を示しており、ここで、「不適切な」上位状態とは、上位でない数値コンテキスト値の隣接する間隔のうちの1つと同じマッピング規則インデックス値が対応付けられた上位状態である。
ハッシュテーブルエントリ「ari_hash_m[i1]」が、数値コンテキスト値c1を有する個別の(真の)上位状態を示していることが分かる。マッピング規則インデックス値mriv1が、数値コンテキスト値c1を有する個別の(真の)上位状態に対応付けられていることが分かる。したがって、数値コンテキスト値c1とマッピング規則インデックス値mriv1との両方がハッシュテーブルエントリ「ari_hash_m[i1]」によって示され得る。数値コンテキスト値の間隔932が数値コンテキスト値c1によって境界付けられており、数値コンテキスト値c1は間隔932に属さず、したがって、間隔932の最大数値コンテキスト値はc1−1に等しい。マッピング規則インデックス値mriv4(mriv1とは異なる)が間隔932の数値コンテキスト値に対応付けられている。マッピング規則インデックス値mriv4は、例えば、追加のテーブル「ari_lookup_m」のテーブルエントリ「ari_lookup_m[i1−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のうちいずれに位置するか否かの評価(現在の数値コンテキスト値が上位状態値に等しくない場合)は、いずれも1回の共通のハッシュテーブル検索を用いて行うことができる。
さらに、ハッシュテーブル「ari_hash_m」の評価を用いてハッシュテーブルインデックス値(例えば、i1−1,i1,またはi2)を取得することができる。したがって、マッピング規則選択部760,828は、単一のハッシュテーブル762,829(例えば、ハッシュテーブル「ari_hash_m」)を評価することによって、上位状態値(例えば、c1もしくはc2)および/または間隔(例えば、932,934,936)を指定するハッシュテーブルインデックス値(例えば、i1−1,i1もしくはi2)と、現在の数値コンテキスト値が上位コンテキスト値(上位状態値としても示される)であるか否かについての情報とを取得するように構成され得る。
さらに、ハッシュテーブル762,829,「ari_hash_m」の評価において現在の数値コンテキスト値が「上位」コンテキスト値(または「上位」状態値)でないことが分かった場合、ハッシュテーブル(「ari_hash_m」)の評価から取得されたハッシュテーブルインデックス値(例えば、i1−1,i1またはi2)を用いて、数値コンテキスト値の間隔932,934,936に対応付けられたマッピング規則インデックス値を取得し得る。例えば、ハッシュテーブルインデックス値(例えば、i1−1,i1またはi2)を用いて、現在の数値コンテキスト値が位置する間隔932,934,936に対応付けられたマッピング規則インデックス値を示す追加のマッピングテーブル(例えば、「ari_lookup_m」)のエントリを指定し得る。
さらなる詳細については、アルゴリズム「arith_get_pk」に関する以下の詳細な説明を参照されたい(当該アルゴリズム「arith_get_pk()」の異なるオプションが存在し、図5eおよび図5fにその例が示されている)。
さらに、間隔のサイズは、場合ごとに異なり得る点に留意されたい。ある場合においては、数値コンテキスト値の間隔は、1つの数値コンテキスト値を含む。しかし、多くの場合、間隔は、複数の数値コンテキスト値を含み得る。
4.図10によるオーディオ符号化器
図10は、本発明の実施の形態によるオーディオ符号化器1000のブロック模式図を示す。図10によるオーディオ符号化器1000は、図7によるオーディオ符号化器700と同様であるため、同一の信号および手段は、図7および図10において同一の参照符号で示す。
オーディオ符号化器1000は、入力オーディオ情報710を受信し、これに基づいて、符号化されたオーディオ情報712を提供するように構成されている。オーディオ符号化器1000は、エネルギー圧縮型の時間領域−周波数領域変換部720を備え、時間領域−周波数領域変換部720は、周波数領域表現722を、当該周波数領域オーディオ表現722がスペクトル値の集合を含むように、入力オーディオ情報710の時間領域表現に基づいて提供するように構成されている。オーディオ符号化器1000はまた、算術符号化部1030も備え、算術符号化部1030は、符号化されたオーディオ情報712(例えば、複数の可変長コードワードを含み得る)を取得するために、スペクトル値(周波数領域オーディオ表現722を形成するスペクトル値の集合のうちの)またはその前処理されたバージョンを可変長コードワードを用いて符号化するように構成されている。
算術符号化部1030は、コンテキスト状態に応じて、スペクトル値、または複数のスペクトル値、またはスペクトル値または複数のスペクトル値の最上位ビットプレーンの値をコード値に(すなわち、可変長コードワードに)マッピングするように構成されている。算術符号化部1030は、コンテキスト状態に応じて、スペクトル値、または複数のスペクトル値、またはスペクトル値または複数のスペクトル値の最上位ビットプレーンのコード値へのマッピングを示すマッピング規則を選択するように構成されている。算術符号化部は、複数の以前に符号化された(好ましくは隣接しているが、必ずしもそうでなくてもよい)スペクトル値に応じて、現在のコンテキスト状態を決定するように構成されている。この目的で、算術符号化部は、1つ以上の以前に符号化されたスペクトル値に対応付けられたコンテキスト状態を示す(例えば、対応するマッピング規則を選択するために)、以前の数値コンテキスト値の数値表現をコンテキストサブ領域値に応じて修正し、1つ以上の符号化対象のスペクトル値に対応付けられたコンテキスト状態を示す現在の数値コンテキスト値の数値表現を取得する(例えば、対応するマッピング規則を選択するために)ように構成されている。
スペクトル値、または複数のスペクトル値、またはスペクトル値もしくは複数のスペクトル値の最上位ビットプレーンのコード値へのマッピングは、マッピング規則情報742によって示されるマッピング規則を用いたスペクトル値符号化740によって行われ得ることが分かる。状態追跡部750は、コンテキスト状態を追跡するように構成され得る。状態追跡部750は、コンテキストサブ領域値に応じて、1つ以上の以前に符号化されたスペクトル値の符号化に対応付けられたコンテキスト状態を示す、以前の数値コンテキスト値の数値表現を修正し、1つ以上の符号化対象のスペクトル値の符号化に対応付けられたコンテキスト状態を示す現在の数値コンテキスト値の数値表現を取得するように構成され得る。以前の数値コンテキスト値の数値表現の修正は、例えば、以前の数値コンテキスト値および1つ以上のコンテキストサブ領域値を受信し、現在の数値コンテキスト値を提供する数値表現修正部1052によって行われ得る。したがって、状態追跡部1050は、現在のコンテキスト状態を示す情報754を、例えば現在の数値コンテキスト値の形式で提供する。マッピング規則選択部1060は、スペクトル値、または複数のスペクトル値、またはスペクトル値もしくは複数のスペクトル値の最上位ビットプレーンのコード値へのマッピングを示す、例えば累積度数テーブルといったマッピング規則を選択し得る。したがって、マッピング規則選択部1060は、マッピング規則情報742をスペクトル符号化740に提供する。
いくつかの実施の形態では、状態追跡部1050は、状態追跡部750または状態追跡部826と同一であってもよい点に留意されたい。また、いくつかの実施の形態では、マッピング規則選択部1060は、マッピング規則選択部760またはマッピング規則選択部828と同一であってもよい点にも注意されたい。
上記を要約すると、オーディオ符号化器1000は、時間領域−周波数領域変換部によって提供された周波数領域オーディオ表現の算術符号化を行う。この算術符号化は、コンテキスト依存型であり、したがって、マッピング規則(例えば、累積度数テーブル)が、以前に符号化されたスペクトル値に応じて選択される。したがって、互いにおよび/または現在符号化されているスペクトル値(すなわち、現在符号化されているスペクトル値の所定の環境内のスペクトル値)と時間および/または周波数において(あるいは、少なくとも所定の環境内において)隣接するスペクトル値が、算術符号化によって評価される確率分布を調整するために算術符号化において考慮される。
現在の数値コンテキスト値を決定する際、1つ以上の以前に符号化されたスペクトル値に対応付けられたコンテキスト状態を示す、以前の数値コンテキスト値の数値表現が、コンテキストサブ領域値に応じて修正され、1つ以上の符号化対象のスペクトル値に対応付けられたコンテキスト状態を示す現在の数値コンテキスト値の数値表現が取得される。この手法により、現在の数値コンテキスト値の完全な再計算を回避することが可能となる。この完全な再計算は、従来の手法において多量のリソースを使用する。以前の数値コンテキスト値の数値表現の修正には様々な可能性が存在し、これには、以前の数値コンテキスト値の数値表現の再スケーリング、コンテキストサブ領域値またはそれから得られる値の、以前の数値コンテキスト値の数値表現または以前の数値コンテキスト値の処理された数値表現への加算、以前の数値コンテキスト値の数値表現の一部(数値表現全体ではなく)のコンテキストサブ領域値に応じた置換等の組み合わせが含まれる。したがって、典型的には、現在の数値コンテキスト値の数値表現は、以前の数値コンテキスト値の数値表現と、少なくとも1つのコンテキストサブ領域値とに基づいて取得され、ここで、典型的には、以前の数値コンテキスト値をコンテキストサブ領域値と組み合わせるために、例えば、加法演算、減法演算、乗法演算、除法演算、ブールAND演算、ブールOR演算、ブールNAND演算、ブールNOR演算、ブール否定演算、補数演算、またはシフト演算から2つ以上の演算の組み合わせが実行される。したがって、以前の数値コンテキスト値から現在の数値コンテキスト値を導出する際、典型的には、以前の数値コンテキスト値の数値表現の少なくとも一部は変更されない(異なる位置への任意のシフトを除く)。これに対し、以前の数値コンテキスト値の数値表現の他の部分は、1つ以上のコンテキストサブ領域値に応じて変更される。したがって、現在の数値コンテキスト値の完全な再計算を回避しつつ、現在の数値コンテキスト値を比較的少ない計算労力で得ることができる。
したがって、マッピング規則選択部1060による使用によく適した有意な現在の数値コンテキスト値を得ることができる。
これにより、コンテキスト計算を十分に簡単にしておくことによって、効率的な符号化を実現することができる。
5.図11によるオーディオ復号器
図11は、オーディオ復号器1100のブロック模式図を示す。オーディオ復号器1100は、図8によるオーディオ復号器800と同様であるため、同一の信号、手段、および機能は、同一の参照符号で示す。
オーディオ復号器1100は、符号化されたオーディオ情報810を受信し、これに基づいて、復号されたオーディオ情報812を提供するように構成されている。オーディオ復号器1100は、複数の復号されたスペクトル値822を当該スペクトル値の算術符号化された表現821に基づいて提供するように構成された算術復号部1120を備える。オーディオ復号器1100はまた、周波数領域−時間領域変換部830も備え、周波数領域−時間領域変換部830は、復号されたオーディオ情報812を取得するために、復号されたスペクトル値822を受信し、復号されたオーディオ情報を構成し得る時間領域オーディオ表現812を復号されたスペクトル値822を用いて提供するように構成されている。
算術復号部1120は、スペクトル値の算術符号化された表現821のコード値を1つ以上の復号されたスペクトル値または1つ以上の復号されたスペクトル値の少なくとも一部(例えば、最上位ビットプレーン)を示す記号コードにマッピングするように構成されたスペクトル値決定部824を備える。スペクトル値決定部824は、マッピング規則情報828aによって示され得るマッピング規則に応じてマッピングを行うように構成され得る。マッピング規則情報828aは、例えば、マッピング規則インデックス値を含んでもよく、あるいは累積度数テーブルのエントリの選択された集合を含んでもよい。
算術復号部1120は、(スペクトル値の算術符号化された表現821によって示される)コード値の(1つ以上のスペクトル値を示す)記号コードへのマッピングを示すマッピング規則(例えば、累積度数テーブル)を、コンテキスト状態情報1126aによって示され得るコンテキスト状態に応じて選択するように構成されている。コンテキスト状態情報1126aは、現在の数値コンテキスト値の形式を有し得る。算術復号部1120は、複数の以前に復号されたスペクトル値822に応じて、現在のコンテキスト状態を決定するように構成されている。この目的で、以前に復号されたスペクトル値を示す情報を受信する状態追跡部1126が用いられ得る。算術復号部は、1つ以上の以前に復号されたスペクトル値に対応付けられたコンテキスト状態を示す、以前の数値コンテキスト値の数値表現をコンテキストサブ領域値に応じて修正し、1つ以上の復号対象のスペクトル値に対応付けられたコンテキスト状態を示す現在の数値コンテキスト値の数値表現を取得するように構成されている。以前の数値コンテキスト値の数値表現の修正は、例えば、状態追跡部1126の一部である数値表現修正部1127によって行われ得る。したがって、現在のコンテキスト状態情報1126aは、例えば現在の数値コンテキスト値の形式で得られる。マッピング規則の選択は、現在のコンテキスト状態情報1126aからマッピング規則情報828aを導出し、スペクトル値決定部824にマッピング規則情報828aを提供するマッピング規則選択部1128によって行われ得る。
オーディオ信号復号器1100の機能に関し、マッピング規則が現在のコンテキスト状態に応じて選択され、当該コンテキスト状態が複数の以前に復号されたスペクトル値に応じて決定されるので、算術復号部1120は、復号対象のスペクトル値に概してよく適合したマッピング規則(例えば、累積度数テーブル)を選択するように構成されている点に留意されたい。これにより、復号対象の隣接するスペクトル値間の統計的依存性を利用することができる。
さらに、1つ以上の以前に復号されたスペクトル値の復号に対応付けられたコンテキスト状態を示す、以前の数値コンテキスト値の数値表現をコンテキストサブ領域値に応じて修正し、1つ以上の復号対象のスペクトル値の復号に対応付けられたコンテキスト状態を示す現在の数値コンテキスト値の数値表現を取得することにより、マッピング規則インデックス値のマッピングによく適した、現在のコンテキスト状態の有意な情報を比較的少ない計算労力で取得することができる。以前の数値コンテキスト値(場合によっては、ビットシフトまたはスケーリングされたバージョン)の数値表現の少なくとも一部を維持しつつ、以前の数値コンテキスト値の数値表現の別の部分を、以前の数値コンテキスト値においては考慮されなかったが現在の数値コンテキスト値において考慮されるべきコンテキストサブ領域値に応じて更新することにより、現在の数値コンテキスト値を導出するための演算数を比較的小さくしておくことができる。また、隣接するスペクトル値を復号するために使用されるコンテキストは、典型的には、類似しているかあるいは相関している点を利用することができる。例えば、第1のスペクトル値(または第1の複数のスペクトル値)の復号のためのコンテキストは、以前に復号されたスペクトル値の第1の集合に依存する。第1のスペクトル値(またはスペクトル値の第1の集合)に隣接する第2のスペクトル値(またはスペクトル値の第2の集合)の復号のためのコンテキストは、以前に復号されたスペクトル値の第2の集合を含み得る。第1のスペクトル値および第2のスペクトル値は、隣接する(例えば、対応付けられた周波数に関して)と仮定されるため、第1のスペクトル値のコーディングのためのコンテキストを決定するスペクトル値の第1の集合は、第2のスペクトル値の復号のためのコンテキストを決定するスペクトル値の第2の集合と部分的に重なり得る。したがって、第2のスペクトル値の復号のためのコンテキスト状態が第1のスペクトル値の復号のためのコンテキスト状態と何らかの相関を含むことは容易に理解される。コンテキストの導出、すなわち、現在の数値コンテキスト値の導出の計算効率化は、このような相関を利用して実現することができる。隣接するスペクトル値の復号のためのコンテキスト状態間(例えば、以前の数値コンテキスト値によって示されるコンテキスト状態と現在の数値コンテキスト値によって示されるコンテキスト状態間)の相関は、以前の数値コンテキスト値の、以前の数値コンテキスト状態の導出には考慮されなかったコンテキストサブ領域値に依存する部分のみを修正することおよび以前の数値コンテキスト値から現在の数値コンテキスト値を導出することによって効率的に利用することができることが分かっている。
結論すると、本明細書に記載される概念により、現在の数値コンテキスト値を導出する際に特に良好な計算効率を実現することが可能となる。
さらなる詳細については後述する。
6.図12によるオーディオ符号化器
図12は、本発明の実施の形態によるオーディオ符号化器のブロック模式図を示す。図12によるオーディオ符号化器1200は、図7によるオーディオ符号化器700と同様であるため、同一の手段、信号、および機能は、同一の参照符号で示す。
オーディオ符号化器1200は、入力オーディオ情報710を受信し、これに基づいて、符号化されたオーディオ情報712を提供するように構成されている。オーディオ符号化器1200は、周波数領域オーディオ表現722を、当該周波数領域オーディオ表現722がスペクトル値の集合を含むように、入力オーディオ情報710の時間領域オーディオ表現に基づいて提供するように構成されたエネルギー圧縮型の時間領域−周波数領域変換部720を備えている。オーディオ符号化器1200はまた、符号化されたオーディオ情報712(例えば、複数の可変長コードワードを含み得る)を取得するための可変長コードワードを用いて、周波数領域オーディオ表現722を形成するスペクトル値の集合のうちの)スペクトル値、または複数のスペクトル値またはその前処理されたバージョンを符号化するように構成された算術符号化部1230も備る。
算術符号化部1230は、コンテキスト状態に応じて、スペクトル値、または複数のスペクトル値、またはスペクトル値もしくは複数のスペクトル値の最上位ビットプレーンの値をコード値に(すなわち、可変長コードワードに)マッピングするように構成されている。算術符号化部1230は、コンテキスト状態に応じて、スペクトル値、または複数のスペクトル値、またはスペクトル値もしくは複数のスペクトル値の最上位ビットプレーンのコード値へのマッピングを示すマッピング規則を選択するように構成されている。算術符号化部は、複数の以前に符号化された(好ましくは隣接しているが、必ずしもそうでなくてもよい)スペクトル値に応じて、現在のコンテキスト状態を決定するように構成されている。この目的で、算術符号化部は、以前に符号化されたスペクトル値に基づいて複数のコンテキストサブ領域値を取得し、当該コンテキストサブ領域値を格納し、格納されたコンテキストサブ領域値に応じて、符号化対象の1つ以上のスペクトル値に対応付けられた現在の数値コンテキスト値を導出するように構成されている。さらに、算術符号化部は、複数の以前に符号化されたスペクトル値に対応付けられた共通のコンテキストサブ領域値を取得するために、当該複数の以前に符号化されたスペクトル値によって形成されたベクトルのノルムを計算するように構成されている。
スペクトル値、または複数のスペクトル値、またはスペクトル値もしくは複数のスペクトル値の最上位ビットプレーンのコード値へのマッピングは、マッピング規則情報742によって示されるマッピング規則を用いたスペクトル値符号化740によって行われ得ることが分かる。状態追跡部1250は、コンテキスト状態を追跡するように構成することができ、また、複数の以前に符号化されたスペクトル値に対応付けられた共通のコンテキストサブ領域値を取得するために、当該複数の以前に符号化されたスペクトル値によって形成されたベクトルのノルムを計算するためのコンテキストサブ領域値計算部1252を含み得る。状態追跡部1250はまた、好ましくは、コンテキストサブ領域値計算部1252によって実行されるコンテキストサブ領域値の上記計算結果に応じて現在のコンテキスト状態を決定するように構成される。したがって、状態追跡部1250は、現在のコンテキスト状態を示す情報1254を提供する。マッピング規則選択部1260が、スペクトル値またはスペクトル値の最上位ビットプレーンのコード値へのマッピングを示す、例えば累積度数テーブルといったマッピング規則を選択し得る。したがって、マッピング規則選択部1260は、マッピング規則情報742をスペクトル符号化740に提供する。
上記を要約すると、オーディオ符号化器1200は、時間領域−周波数領域変換部720によって提供された周波数領域オーディオ表現の算術符号化を行う。この算術符号化は、コンテキスト依存型であり、したがって、マッピング規則(例えば、累積度数テーブル)は、以前に符号化されたスペクトル値に応じて選択される。したがって、互いにおよび/または現在符号化されているスペクトル値(すなわち、現在符号化されているスペクトル値の所定の環境内のスペクトル値)と時間および/または周波数において(あるいは、少なくとも所定の環境内において)隣接するスペクトル値が、算術符号化によって評価される確率分布を調整するために算術符号化において考慮される。
現在の数値コンテキスト値を提供するために、複数の以前に符号化されたスペクトル値によって形成されたベクトルのノルムの計算に基づいて、複数の以前に符号化されたスペクトル値に対応付けられたコンテキストサブ領域値が取得される。現在の数値コンテキスト値の決定結果は、現在のコンテキスト状態の選択、すなわち、マッピング規則の選択に適用される。
複数の以前に符号化されたスペクトル値によって形成されたベクトルのノルムを計算することにより、符号化対象の1つ以上のスペクトル値のコンテキストの一部を示す有意な情報を取得することができ、以前に符号化されたスペクトル値のベクトルのノルムは、典型的には、比較的少数のビットで表すことができる。したがって、コンテキストサブ領域値の計算のための上述の手法を適用することにより、現在の数値コンテキスト値の導出における後の使用のために格納される必要があるコンテキスト情報の量を十分に小さくしておくことができる。以前に符号化されたスペクトル値のベクトルのノルムは、典型的には、コンテキストの状態に関する最も重要な情報を含むことが分かっている。これに対し、以前に符号化されたスペクトル値の符号がコンテキストの状態に及ぼす影響は、典型的には、副次的なものであり、したがって、後の使用のために格納される情報量を低減するために以前に復号されたスペクトル値の符号を無視することは理にかなっていることが分かっている。また、典型的には、ノルムの計算によって得られる平均化作用により、コンテキスト状態の最も重要な情報は実質的に影響を受けないままとなるため、以前に符号化されたスペクトル値のベクトルのノルムの計算は、コンテキストサブ領域値の導出のための合理的アプローチであることも分かっている。要約すると、コンテキストサブ領域値計算部1252によって行われるコンテキストサブ領域値の計算により、格納および後の再利用のためのコンパクトなコンテキストサブ領域情報を提供することが可能となり、コンテキスト状態の最も重要な情報は、情報量の減少にもかかわらず保存される。
したがって、計算労力および算術符号化部1230によって格納されるデータ量を十分に小さくしながら、入力オーディオ情報710の効率的な符号化を実現することができる。
7.図13によるオーディオ復号器
図13は、オーディオ復号器1300のブロック模式図を示す。オーディオ復号器1300は、図8によるオーディオ復号器800および図11によるオーディオ復号器1100と同様であるため、同一の手段、信号、および機能は、同一の参照符号で示す。
オーディオ復号器1300は、符号化されたオーディオ情報810を受信し、これに基づいて、復号されたオーディオ情報812を提供するように構成されている。オーディオ復号器1300は、複数の復号されたスペクトル値822を当該スペクトル値の算術符号化された表現821に基づいて提供するように構成された算術復号部1320を備える。オーディオ復号器1300はまた、周波数領域−時間領域変換部830も備え、周波数領域−時間領域変換部830は、復号されたオーディオ情報812を取得するために、復号されたスペクトル値822を受信し、復号されたオーディオ情報を構成し得る時間領域オーディオ表現812を復号されたスペクトル値822を用いて提供するように構成されている。
算術復号部1320は、スペクトル値の算術符号化された表現821のコード値を1つ以上の復号されたスペクトル値または1つ以上の復号されたスペクトル値の少なくとも一部(例えば、最上位ビットプレーン)を示す記号コードにマッピングするように構成されたスペクトル値決定部824を備える。スペクトル値決定部824は、マッピング規則情報828aによって示されるマッピング規則に応じてマッピングを行うように構成され得る。マッピング規則情報828aは、例えば、マッピング規則インデックス値または累積度数テーブルのエントリの選択された集合を含み得る。
算術復号部1320は、(スペクトル値の算術符号化された表現821によって示される)コード値の(1つ以上のスペクトル値を示す)記号コードへのマッピングを示すマッピング規則(例えば、累積度数テーブル)を、(コンテキスト状態情報1326aによって示され得る)コンテキスト状態に応じて選択するように構成されている。算術復号部1320は、複数の以前に復号されたスペクトル値822に応じて、現在のコンテキスト状態を決定するように構成されている。この目的で、以前に復号されたスペクトル値を示す情報を受信する状態追跡部1326が用いられ得る。算術復号部はまた、以前に復号されたスペクトル値に基づいて複数のコンテキストサブ領域値を取得し、当該コンテキストサブ領域値を格納するようにも構成されている。算術復号部は、格納されたコンテキストサブ領域値に応じて、復号対象の1つ以上のスペクトル値に対応付けられた現在の数値コンテキスト値を導出するように構成されている。算術復号部1320は、複数の以前に復号されたスペクトル値に対応付けられた共通のコンテキストサブ領域値を取得するために、複数の以前に復号されたスペクトル値によって形成されたベクトルのノルムを計算するように構成されている。
複数の以前に復号されたスペクトル値に対応付けられた共通のコンテキストサブ領域値を取得するために、複数の以前に符号化されたスペクトル値によって形成されたベクトルのノルムの計算は、例えば、状態追跡部1326の一部であるコンテキストサブ領域値計算部1327によって行われ得る。したがって、現在のコンテキスト状態情報1326aは、コンテキストサブ領域値に基づいて取得され、状態追跡部1326が、好ましくは、格納されたコンテキストサブ領域値に応じて、復号対象の1つ以上のスペクトル値に対応付けられた現在の数値コンテキスト値を提供する。マッピング規則の選択は、現在のコンテキスト状態情報1326aからマッピング規則情報828aを導出し、スペクトル値決定部824にマッピング規則情報828aを提供するマッピング規則選択部1328によって行われ得る。
オーディオ信号復号器1300の機能に関し、マッピング規則が現在のコンテキスト状態に応じて選択され、当該コンテキスト状態が複数の以前に復号されたスペクトル値に応じて決定されるので、算術復号部1320は、復号対象のスペクトル値に概してよく適合したマッピング規則(例えば、累積度数テーブル)を選択するように構成されている点に留意されたい。これにより、復号対象の隣接するスペクトル値間の統計的依存性を利用することができる。
しかし、メモリ使用量の点の観点から、数値コンテキスト値の決定における後の使用のために、複数の以前に復号されたスペクトル値で形成されたベクトルのノルムの計算に基づくコンテキストサブ領域値を格納することが効率的であることが分かっている。このようなコンテキストサブ領域値もまた、最も重要なコンテキスト情報を含むことも分かっている。したがって、状態追跡部1326によって使用される概念は、コーディング効率、計算効率、および格納効率の良好な妥協案となるものである。
さらなる詳細については後述する。
8.図1によるオーディオ符号化器
以下に、本発明の実施の形態によるオーディオ符号化器について説明する。
図1は、このようなオーディオ符号化器100のブロック模式図を示す。
オーディオ符号化器100は、入力オーディオ情報110を受信し、これに基づいて、符号化されたオーディオ情報を構成するビットストリーム112を提供するように構成されている。オーディオ符号化器100は、前処理部120を任意に含み、前処理部120は、入力オーディオ情報110を受信し、これに基づいて、前処理された入力オーディオ情報110aを提供するように構成されている。オーディオ符号化器100はまた、エネルギー圧縮型の時間領域−周波数領域信号変換部130(信号変換部としても示される)も備える。信号変換部130は、入力オーディオ情報110,110aを受信し、これに基づいて、好ましくはスペクトル値の集合の形式を有する周波数領域オーディオ情報132を提供するように構成されている。例えば、信号変換部130は、入力オーディオ情報110,110aのフレーム(例えば、時間領域サンプルのブロック)を受信し、それぞれのオーディオフレームのオーディオコンテンツを表すスペクトル値の集合を提供するように構成され得る。さらに、信号変換部130は、入力オーディオ情報110,110aの複数の後の重複または非重複オーディオフレームを受信し、これに基づいて、スペクトル値の後の集合のシーケンス(スペクトル値の1つの集合が各フレームに対応付けられている)を含む時間周波数領域オーディオ表現を提供するように構成され得る。
エネルギー圧縮型の時間領域−周波数領域信号変換部130は、重なり合うかあるいは重なり合わない異なる周波数範囲に対応付けられたスペクトル値を提供するエネルギー圧縮型のフィルタバンクを含み得る。例えば、信号変換部130は、変換ウィンドウを用いて入力オーディオ情報110,110a(またはそのフレーム)をウィンドウ処理し、ウィンドウ処理された入力オーディオ情報110,110a(または、そのウィンドウ処理されたフレーム)の修正離散コサイン変換を行うように構成されたウィンドウ処理MDCT変換部130aを含み得る。したがって、周波数領域オーディオ表現132は、例えば、1024個のスペクトル値の集合を入力オーディオ情報のフレームに対応付けられたMDCT係数の形式で含み得る。
オーディオ符号化器100は、周波数領域オーディオ表現132を受信し、これに基づいて、後処理された周波数領域オーディオ表現142を提供するように構成されたスペクトル後処理部140をさらに任意に含み得る。スペクトル後処理部140は、例えば、時間領域雑音整形および/または長期予測および/または当該技術分野において公知である他の後処理技術を行うように構成され得る。オーディオ符号化器は、周波数領域オーディオ表現132またはその後処理されたバージョン142を受信し、スケーリングおよび量子化された周波数領域オーディオ表現152を提供するように構成されたスケーリング/量子化部150をさらに任意に含み得る。
オーディオ符号化器100は、心理音響モデル処理部160をさらに任意に含み、心理音響モデル処理部160は、入力オーディオ情報110(またはその後処理されたバージョン110a)を受信し、これに基づいて、エネルギー圧縮型の時間領域−周波数領域信号変換部130の制御、任意のスペクトル後処理部140の制御および/または任意のスケーリング/量子化部150の制御のために用いられ得る任意の制御情報を提供するように構成されている。例えば、心理音響モデル処理部160は、入力オーディオ情報を分析して、入力オーディオ情報110,110aのどの成分がオーディオコンテンツの人間による知覚にとって特に重要であるかと、入力オーディオ情報110,110aのどの成分がオーディオコンテンツの当該知覚にとって重要性が低いのかを判定するように構成され得る。したがって、心理音響モデル処理部160は、スケーリング/量子化部150による周波数領域オーディオ表現132,142のスケーリングおよび/またはスケーリング/量子化部150によって適用される量子化分解能の調整を行うために、オーディオ符号化器100によって用いられる制御情報を提供し得る。これにより、知覚的に重要なスケーリング因子バンド(すなわち、オーディオコンテンツの人間による知覚にとって特に重要な隣接するスペクトル値のグループ)は、大きいスケーリング因子を用いてスケーリングされ、比較的高い分解能を用いて量子化される一方で、知覚的に重要度の低いスケーリング因子バンド(すなわち、隣接するスペクトル値のグループ)は、比較的小さいスケーリング因子を用いてスケーリングされ、比較的低い量子化分解能を用いて量子化される。したがって、知覚的に重要度の高い周波数のスケーリングされたスペクトル値は、典型的には、知覚的に重要度の低い周波数のスペクトル値よりも著しく大きい。
オーディオ符号化器はまた、周波数領域オーディオ表現132のスケーリングおよび量子化されたバージョン152(あるいは、代替的に、周波数領域オーディオ表現132の後処理されたバージョン142、またはさらには周波数領域オーディオ表現132それ自体)を受信し、これに基づいて、算術コードワード情報172aを提供するように構成された算術符号化部170も含み、したがって、算術コードワード情報は、周波数領域オーディオ表現152を表す。
オーディオ符号化器100はまた、算術コードワード情報172aを受信するように構成されたビットストリームペイロードフォーマット部190も含む。ビットストリームペイロードフォーマット部190もまた、典型的には、例えば、どのスケーリング因子がスケーリング/量子化部150によって適用されたかを示すスケーリング因子情報といった追加の情報を受信するように構成されている。さらに、ビットストリームペイロードフォーマット部190は、他の制御情報を受信するように構成され得る。ビットストリームペイロードフォーマット部190は、後述の所望のビットストリーム構文に従ってビットストリームを組み立てることにより、受信した情報に基づいてビットストリーム112を提供するように構成されている。
以下に、算術符号化部170の詳細について説明する。算術符号化部170は、周波数領域オーディオ表現132の複数の後処理、スケーリング、および量子化されたスペクトル値を受信するように構成されている。算術符号化部は、1つのスペクトル値、あるいはさらには2つのスペクトル値から最上位ビットプレーンmを抽出するように構成された最上位ビットプレーン抽出部174を含む。ここで、最上位ビットプレーンは、スペクトル値の最上位ビットである1つまたはさらにはそれ以上のビット(例えば、2つまたは3つのビット)を含み得る点に留意されたい。したがって、最上位ビットプレーン抽出部174は、スペクトル値の最上位ビットプレーン値176を提供する。
しかし、代替的に、最上位ビットプレーン抽出部174は、複数のスペクトル値の(例えば、スペクトル値aおよびbの)最上位ビットプレーンを組み合わせた組み合わせ最上位ビットプレーン値mを提供してもよい。スペクトル値aの最上位ビットプレーンは、mで指定される。代替的に、複数のスペクトル値a,bの組み合わせ最上位ビットプレーン値がmで指定される。
算術符号化部170はまた、最上位ビットプレーン値mを表す算術コードワードacod_m[pki][m]を決定するように構成された第1のコードワード決定部180も含む。任意には、コードワード決定部180はまた、例えば、利用可能な下位ビットプレーンの数を示す(ひいては最上位ビットプレーンの数値的重みを示す)1つ以上のエスケープコードワード(本明細書において「ARITH_ESCAPE」によっても示される)も提供し得る。第1のコードワード決定部180は、累積度数テーブルインデックスpkiを有する(あるいは、これによって参照される)選択された累積度数テーブルを用いて、最上位ビットプレーン値mに対応付けられたコードワードを提供するように構成され得る。
どの累積度数テーブルが選択されるべきであるかを決定するために、算術符号化部は、例えば、どのスペクトル値が以前に符号されたかを観察することによって、算術符号化部の状態を追跡するように構成された状態追跡部182を好ましくは含む。状態追跡部182は、これにより、例えば、「s」または「t」または「c」で指定される状態値といった状態情報184を提供する。算術符号化部170はまた、状態情報184を受信し、選択された累積度数テーブルを示す情報188をコードワード決定部180に提供するように構成された累積度数テーブル選択部186も含む。例えば、累積度数テーブル選択部186は、96個の累積度数テーブルからなる組のうちどの累積度数テーブルがコードワード決定部による使用のために選択されるかを示す累積度数テーブルインデックス「pki」を提供し得る。代替的に、累積度数テーブル選択部186は、選択された累積度数テーブル全体またはサブテーブルをコードワード決定部に提供することができる。よって、コードワード決定部180は、選択された累積度数テーブルまたはサブテーブルを最上位ビットプレーン値mのコードワードacod_m[pki][m]を提供するために用いることができ、したがって、最上位ビットプレーン値mを符号化する実際のコードワードacod_m[pki][m]は、mの値および累積度数テーブルインデックスpki、ひいては現在の状態情報184に依存する。コーディング処理および取得されるコードワードのフォーマットのさらなる詳細については後述する。
ただし、いくつかの実施の形態では、状態追跡部182は、状態追跡部750、状態追跡部1050、または状態追跡部1250と同一であり得るか、あるいはその機能を有し得る点に留意されたい。また、いくつかの実施の形態では、累積度数テーブル選択部186は、マッピング規則選択部760、マッピング規則選択部1060、またはマッピング規則選択部1260と同一であるか、あるいはその機能を有してもよい点にも注意されたい。さらに、いくつかの実施の形態では、第1のコードワード決定部180は、スペクトル値符号化740と同一であるか、あるいはその機能を有してもよい。
算術符号化部170は、下位ビットプレーン抽出部189aをさらに含み、下位ビットプレーン抽出部189aは、符号化対象の1つ以上のスペクトル値が、最上位ビットプレーンのみを用いて符号化可能な値の範囲を上回る場合、スケーリングおよび量子化された周波数領域オーディオ表現152から1つ以上の下位ビットプレーンを抽出するように構成されている。下位ビットプレーンは、必要に応じて1つ以上のビットを含み得る。したがって、下位ビットプレーン抽出部189aは、下位ビットプレーン情報189bを提供する。算術符号化部170はまた、第2のコードワード決定部189cも含み、第2のコードワード決定部189cは、下位ビットプレーン情報189dを受信し、これに基づいて、0個、1個またはそれ以上の下位ビットプレーンの内容を表す0個、1個またはそれ以上のコードワード「acod_r」を提供するように構成されている。第2のコードワード決定部189cは、下位ビットプレーン情報189bから下位ビットプレーンのコードワード「acod_r」を導出するために、算術符号化アルゴリズムまたは他の符号化アルゴリズムを適用するように構成され得る。
ここで、下位ビットプレーンの数は、スケーリングおよび量子化されたスペクトル値152の値に応じて異なり得るため、符号化対象のスケーリングおよび量子化されたスペクトル値が比較的少数であれば下位ビットプレーンが全く存在しない場合があり、符号化対象である現在のスケーリングおよび量子化されたスペクトル値が中間の範囲のものであれば1つの下位ビットプレーンが存在する場合があり、符号化対象のスケーリングおよび量子化されたスペクトル値が比較的大きい値を有していれば2つ以上の下位ビットプレーンが存在する場合がある点に留意されたい。
上記を要約すると、算術符号化部170は、階層型符号化処理を用いて、情報152によって示されるスケーリングおよび量子化されたスペクトル値を符号化するように構成されている。1つ以上のスペクトル値の最上位ビットプレーン(例えば、1つのスペクトル値につき1つ、2つまたは3つのビットを含む)が符号化され、最上位ビットプレーン値mの算術コードワード「acod_m[pki][m]」が取得される。1つ以上のスペクトル値の1つ以上の下位ビットプレーン(下位ビットプレーンのそれぞれが、例えば、1つ、2つまたは3つのビットを含む)が符号化され、1つ以上のコードワード「acod_r」が取得される。最上位ビットプレーンを符号化する際、最上位ビットプレーンの値mは、コードワードacod_m[pki][m]にマッピングされる。この目的で、算術符号化部170の状態に応じて、すなわち、以前に符号化されたスペクトル値に応じて、値mの符号化のために96個の異なる累積度数テーブルが利用可能である。したがって、コードワード「acod_m[pki][m]」が取得される。さらに、1つ以上の下位ビットプレーンが存在する場合、1つ以上のコードワード「acod_r」が提供され、ビットストリームに含められる。
リセットの説明
オーディオ符号化器100は、任意には、例えば、状態インデックスをデフォルト値に設定することによってコンテキストをリセットすることによりビットレートを改善することが可能であるか否かを判断するように構成され得る。したがって、オーディオ符号化器100は、算術符号化のためのコンテキストがリセットされるか否かと、対応する復号器における算術復号のためのコンテキストがリセットされるべきか否かとを示すリセット情報(例えば、「arith_reset_flag」と称される)を提供するように構成され得る。
ビットストリームのフォーマットおよび適用される累積度数テーブルに関する詳細については後述する。
9.図2によるオーディオ復号器
以下に、本発明の実施の形態によるオーディオ復号器について説明する。図2は、このようなオーディオ復号器200のブロック模式図を示す。
オーディオ復号器200は、符号化されたオーディオ情報を表しかつオーディオ符号化器100によって提供されるビットストリーム112と同一であり得るビットストリーム210を受信するように構成されている。オーディオ復号器200は、ビットストリーム210に基づいて、復号されたオーディオ情報212を提供する。
オーディオ復号器200は、ビットストリーム210を受信し、符号化された周波数領域オーディオ表現222をビットストリーム210から抽出するように構成された任意のビットストリームペイロードデフォーマット部220を含む。例えば、ビットストリームペイロードデフォーマット部220は、周波数領域オーディオ表現のスペクトル値aまたは複数のスペクトル値a,bの最上位ビットプレーン値mを表す算術コードワード「acod_m[pki][m]」および周波数領域オーディオ表現のスペクトル値aまたは複数のスペクトル値a,bの下位ビットプレーンの内容を表すコードワード「acod_r」等の算術コーディングされたスペクトルデータをビットストリーム210から抽出するように構成され得る。したがって、符号化された周波数領域オーディオ表現222は、スペクトル値の算術符号化された表現を構成する(あるいは含む)。ビットストリームペイロードデフォーマット部220は、ビットストリームから追加の制御情報(図2では不図示)を抽出するように構成されている。また、ビットストリームペイロードデフォーマット部は、任意には、ビットストリーム210から状態リセット情報224(算術リセットフラグまたは「arith_reset_flag」としても示される)を抽出するように構成されている。
オーディオ復号器200は、算術復号部230(「スペクトルノイズレス復号部」としても示される)を含む。算術復号部230は、符号化された周波数領域オーディオ表現220および任意で状態リセット情報224を受信するように構成されている。算術復号部230はまた、スペクトル値の復号された表現を含み得る復号された周波数領域オーディオ表現232を提供するようにも構成されている。例えば、復号された周波数領域オーディオ表現232は、符号化された周波数領域オーディオ表現220によって示されるスペクトル値の復号された表現を含み得る。
オーディオ復号器200はまた、任意の逆量子化/再スケーリング部240も含み、逆量子化/再スケーリング部240は、復号された周波数領域オーディオ表現232を受信し、これに基づいて、逆量子化および再スケーリングされた周波数領域オーディオ表現242を提供するように構成されている。
オーディオ復号器200は、任意のスペクトル前処理部250をさらに含み、スペクトル前処理部250は、逆量子化および再スケーリングされた周波数領域オーディオ表現242を受信し、これに基づいて、逆量子化および再スケーリングされた周波数領域オーディオ表現242の前処理されたバージョン252を提供するように構成されている。オーディオ復号器200はまた、周波数領域−時間領域信号変換部260(「信号変換部」としても示される)も含む。信号変換部260は、逆量子化および再スケーリングされた周波数領域オーディオ表現242(あるいは、代替的に、逆量子化および再スケーリングされた周波数領域オーディオ表現242または復号された周波数領域オーディオ表現232)の前処理されたバージョン252を受信し、これに基づいて、オーディオ情報の時間領域表現262を提供するように構成されている。周波数領域−時間領域信号変換部260は、例えば、逆修正離散コサイン変換(IMDCT)および適切なウィンドウ処理(ならびに重複−加算等の他の補助機能)を実行するための変換部を含み得る。
オーディオ復号器200は、オーディオ情報の時間領域表現262を受信し、時間領域後処理を用いて復号されたオーディオ情報212を取得するように構成された任意の時間領域後処理部270をさらに含み得る。ただし、後処理が省略される場合、時間領域表現262は、復号されたオーディオ情報212と同一であり得る。
ここで、逆量子化/再スケーリング部240、スペクトル前処理部250、周波数領域−時間領域信号変換部260、および時間領域後処理部270は、ビットストリームペイロードデフォーマット部220によってビットストリーム210から抽出された制御情報に応じて制御され得る点に留意されたい。
オーディオ復号器200の機能全体を要約すると、復号された周波数領域オーディオ表現232、例えば、符号化されたオーディオ情報のオーディオフレームに対応付けられたスペクトル値の集合は、算術復号部230を用いて、符号化された周波数領域表現222に基づいて取得され得る。続いて、MDCT係数であり得る、例えば1024個のスペクトル値の集合が逆量子化され、再スケーリングされ、前処理される。これにより、逆量子化、再スケーリング、およびスペクトル前処理されたスペクトル値の集合(例えば、1024個のMDCT係数)が取得される。その後、逆量子化、再スケーリング、およびスペクトル前処理された周波数領域値の集合(例えば、MDCT係数)からオーディオフレームの時間領域表現が導出される。したがって、オーディオフレームの時間領域表現が取得される。所与のオーディオフレームの時間領域表現を、以前および/後のオーディオフレームの時間領域表現と組み合わせることができる。隣接するオーディオフレームの時間領域表現間の移行を平滑化するとともに、エイリアシングキャンセルを実現するために、例えば、後のオーディオフレームの時間領域表現間の重複−加算を行うことができる。復号された時間周波数領域オーディオ表現232に基づく復号されたオーディオ情報212の復元に関する詳細については、例えば、詳細な記載がある国際規格ISO/IEC14496−3,パート3,サブパート4を参照されたい。ただし、他のより精巧な重複方式およびエイリアシングキャンセル方式を用いてもよい。
以下に、算術復号部230の詳細の一部について説明する。算術復号部230は、最上位ビットプレーン値mを示す算術コードワードacod_m[pki][m]を受信するように構成された最上位ビットプレーン決定部284を含む。最上位ビットプレーン決定部284は、算術コードワード「acod_m[pki][m]」から最上位ビットプレーン値mを導出するための複数の96個の累積度数テーブルからなる集合から1つの累積度数テーブルを使用するように構成され得る。
最上位ビットプレーン決定部284は、コードワードacod_mに基づいて1つ以上のスペクトル値の最上位ビットプレーンの値286を導出するように構成されている。算術復号部230は、スペクトル値の1つ以上の下位ビットプレーンを表す1つ以上のコードワード「acod_r」を受信するように構成された下位ビットプレーン決定部288をさらに含む。したがって、下位ビットプレーン決定部288は、1つ以上の下位ビットプレーンの復号された値290を提供するように構成されている。オーディオ復号器200はまた、1つ以上のスペクトル値の最上位ビットプレーンの復号された値286および当該スペクトル値の1つ以上の下位ビットプレーンの復号された値290(現在のスペクトル値に対してこのような下位ビットプレーンが利用可能である場合)を受信するように構成されたビットプレーン結合部292も含む。したがって、ビットプレーン結合部292は、復号された周波数領域オーディオ表現232の一部である復号されたスペクトル値を提供する。当然、算術復号部230は、典型的には、オーディオコンテンツの現在のフレームに対応付けられた復号されたスペクトル値の完全な集合を取得するために複数のスペクトル値を提供するように構成されている。
算術復号部230は、算術復号部の状態を示す状態インデックス298に応じて96個の累積度数テーブルのうちの1つを選択するように構成された累積度数テーブル選択部296をさらに含む。算術復号部230は、以前に復号されたスペクトル値に応じて算術復号部の状態を追跡するように構成された状態追跡部299をさらに含む。状態情報は、任意には、状態リセット情報224に応じてデフォルトの状態情報にリセットされ得る。したがって、累積度数テーブル選択部296は、コードワード「acod_m」に応じて、最上位ビットプレーン値mの復号における適用のために、選択された累積度数テーブルのインデックス(例えば、pki)、または選択された累積度数テーブル、または選択された累積度数テーブルもしくはそのサブテーブル自体を提供するように構成されている。
オーディオ復号器200の機能を要約すると、オーディオ復号器200は、ビットレート効率よく符号化された周波数領域オーディオ表現222を受信し、これに基づいて、復号された周波数領域オーディオ表現を取得するように構成されている。符号化された周波数領域オーディオ表現222に基づいて復号された周波数領域オーディオ表現232を取得するために用いられる算術復号部230では、累積度数テーブルを適用するように構成された算術復号部280を用いることにより、隣接するスペクトル値の最上位ビットプレーンの値の異なる組み合わせの確率が利用される。換言すれば、以前に計算された復号されたスペクトル値を観察することによって取得される状態インデックス298に応じて、96個の異なる累積度数テーブルを含む集合から異なる累積度数テーブルを選択することにより、スペクトル値間の統計的依存性が利用される。
状態追跡部299は、状態追跡部826、状態追跡部1126、または状態追跡部1326と同一であり得るか、あるいはその機能を有し得る点に留意されたい。累積度数テーブル選択部296は、マッピング規則選択部828、マッピング規則選択部1128、またはマッピング規則選択部1328と同一であるか、あるいはその機能を有してもよい。最上位ビットプレーン決定部284は、スペクトル値決定部824と同一であるか、あるいはその機能を有していてもよい。
10.スペクトルノイズレスコーディングのツールの概要
以下に、例えば算術符号化部170および算術復号部230によって実行される符号化および復号アルゴリズムに関する詳細について説明する。
復号アルゴリズムの説明に重点が置かれている。ただし、対応する符号化アルゴリズムは、符号化されたスペクトル値および復号されたスペクトル値間のマッピングが逆となり、マッピング規則インデックス値の計算が実質的に同一である復号アルゴリズムについての教示に従って実行することが可能である点に留意されたい。符号化器では、符号化されたスペクトル値が復号されたスペクトル値に置き換わる。また、符号化対象のスペクトル値が復号化対象のスペクトル値に置き換わる。
以下に述べる復号は、典型的には、後処理、スケーリング、および量子化されたスペクトル値のいわゆる「スペクトルノイズレスコーディング」を可能にするために用いられる点に留意されたい。スペクトルノイズレスコーディングは、例えばエネルギー圧縮型の時間領域−周波数領域変換部によって取得される量子化されたスペクトルの冗長性をさらに低減するために、オーディオ符号化/復号概念(または他のあらゆる符号化/復号概念)において用いられる。本発明の実施の形態で用いられるスペクトルノイズレスコーディング方式は、動的に適合されたコンテキストと併用した算術コーディングに基づいている。
本発明によるいくつかの実施の形態において、スペクトルノイズレスコーディング方式は、2−タプルに基づいている。すなわち、2つの隣接スペクトル係数が組み合わされる。各2−タプルは、それぞれ、符号、最上位2ビット単位プレーン、および残りの下位ビットプレーンに分割される。最上位2ビット単位プレーンmのためのノイズレスコーディングは、4つの以前に復号された2−タプルから導出されるコンテキスト依存の累積度数テーブルを用いる。ノイズレスコーディングは、量子化されたスペクトル値によって供給され、また、4つの以前に復号された隣接2−タプルから導出されるコンテキスト依存の累積度数テーブルを用いる。ここでは、図4に示すように、時間および周波数の両方における隣接が考慮される。次いで、累積度数テーブル(下記で説明する)が、可変長2進コードを生成するために算術コーダによって(そして、可変長2進コードから復号された値を導出するために算術復号部によって)用いられる。
例えば、算術コーダ170は、記号の所与の集合およびそのそれぞれの確率について(すなわち、それぞれの確率に応じた)、2進コードを生成する。2進コードは、当該記号の集合が位置する確率間隔をコードワードにマッピングすることによって生成される。
残りの下位ビットプレーンrのノイズレスコーディングは、単一の累積度数テーブルを用いる。累積度数は、例えば、下位ビットプレーンに出現する記号の一様分布に相当する。すなわち、0または1が下位ビットプレーンに出現する確率は同じであると予測される。
以下に、スペクトルノイズレスコーディングのツールの別の簡潔な概要について説明する。スペクトルノイズレスコーディングは、量子化されたスペクトルの冗長性をさらに低減するために用いられる。スペクトルノイズレスコーディング方式は、動的に適合されたコンテキストと併用した算術コーディングに基づいている。ノイズレスコーディングは、量子化されたスペクトル値によって供給され、また、例えば、4つの以前に復号されたスペクトル値の隣接2−タプルから導出されるコンテキスト依存の累積度数テーブルを用いる。ここでは、図4に示すように時間および周波数の両方における隣接が考慮される。次いで、累積度数テーブルは、可変長2進コードを生成するために算術コーダによって用いられる。
算術コーダは、記号の所与の集合およびそのそれぞれの確率について2進コードを生成する。2進コードは、記号の集合が位置する確率間隔をコードワードにマッピングすることによって生成される。
11. 復号処理
11.1 復号処理の概要
以下に、スペクトル値のコーディング処理の概要について、複数のスペクトル値を復号する処理の疑似プログラムコード表現を示す図3を参照しながら説明する。
複数のスペクトル値の復号処理は、コンテキストの初期化310を含む。コンテキストの初期化310は、関数「arith_map_context(N,arith_reset_flag)」を用いた、以前のコンテキストからの現在のコンテキストの導出を含む。以前のコンテキストからの現在のコンテキストの導出は、コンテキストのリセットを選択的に含み得る。コンテキストのリセットおよび以前のコンテキストからの現在のコンテキストの導出についてはいずれも後述する。
複数のスペクトル値の復号はまた、スペクトル値の復号312の繰返しおよびコンテキストの更新313も含み、コンテキストの更新313は、後述する関数「arith_update_context(i,a,b)」によって行われる。スペクトル値の復号312およびコンテキストの更新312は、lg/2回繰り返され、ここで、lg/2は、いわゆる「ARITH_STOP」記号が削除されている場合を除き、復号対象のスペクトル値の2−タプルの数を示す(例えば、オーディオフレームの)。さらに、lg個のスペクトル値の集合の復号はまた、符号の復号314および終了ステップ315も含む。
スペクトル値のタプルの復号312は、コンテキスト値の計算312a、最上位ビットプレーンの復号312b、演算ストップ記号の検出312c、下位ビットプレーンの付加312d、および配列の更新312eを含む。
状態値の計算312aは、例えば、図5cまたは図5dに示すような関数「arith_get_context(c,i,N)」の呼び出しを含む。したがって、現在の数値コンテキスト(状態)値cが、関数「arith_get_context(c,i,N)」の関数呼び出しの戻り値として提供される。関数「arith_get_context(c,i,N)」への入力変数である以前の数値コンテキスト値(「c」によっても示される)が更新され、戻り値として現在の数値コンテキスト値cが取得されることが分かる。
最上位ビットプレーンの復号312bは、復号アルゴリズム312baの繰返し実行およびアルゴリズム312baの結果値mからの値a,bの導出312bbを含む。アルゴリズム312baの準備において、変数levがゼロに初期化される。アルゴリズム312baは、「中断」命令(または条件)に達するまで繰り返される。アルゴリズム312baは、後述する関数「arith_get_pk()」(その実施の形態を例えば図5eおよび図5fに示す)を用いた、現在の数値コンテキスト値cおよびレベル値「esc_nb」に応じた状態インデックス「pki」(累積度数テーブルインデックスでもある)の計算を含む。アルゴリズム312baはまた、関数「arith_get_pk」の呼び出しによって戻される状態インデックス「pki」に応じた累積度数テーブルの選択も含み、ここで、変数「cum_freq」が、状態インデックス「pki」に応じて96個の累積度数テーブル(またはサブテーブル)のうちの1つの累積度数テーブルの開始アドレスに設定され得る。変数「cfl」もまた、選択された累積度数テーブル(またはサブテーブル)の長さに初期化されてもよく、この長さは、例えば、アルファベットのいくつかの記号数、すなわち、復号可能な異なる値の数に等しい。16個の異なる最上位ビットプレーン値および1つのエスケープ記号(「ARITH_ESCAPE」)が復号可能であるため、最上位ビットプレーン値mの復号に利用可能な「ari_cf_m[pki=0][17]」から「ari_cf_m[pki=95][17]」までのすべての累積度数テーブル(またはサブテーブル)の長さは17である。
続いて、選択された累積度数テーブル(変数「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」が7を超えない限り、レベル値「lev」に等しくなるように設定され、その場合、変数「esc_nb」は7に等しくなるように設定される。上述の通り、次いで、アルゴリズム312baは、復号された最上位ビットプレーン値mが算術エスケープ記号と異なるまで繰り返され、ここで、修正されたコンテキストが用いられる(なぜなら、関数「arith_get_pk()」の入力パラメータは、変数「esc_nb」の値に応じて適合されるからである)。
アルゴリズム312baの1回の実行または繰返し実行を用いて最上位ビットプレーンが復号されると、すなわち、算術エスケープ記号とは異なる最上位ビットプレーン値mが復号されるとすぐに、スペクトル値の変数「b」は、最上位ビットプレーン値mの複数の(例えば、2個)の上位ビットに等しくなるように設定され、スペクトル値の変数「a」は、最上位ビットプレーン値mの(例えば、2個の)の最下位ビットに設定される。この機能に関する詳細については、例えば、参照符号312bbにおいて理解することができる。
続いて、ステップ312cにおいて、演算ストップ記号が存在するか否かがチェックされる。これは、最上位ビットプレーン値mがゼロに等しく、かつ変数「lev」がゼロを超える場合である。したがって、最上位ビットプレーン値mがゼロに等しく、変数「lev」が最上位ビットプレーン値mに増加した数値的重みが対応付けられていることを示している、「異常」条件によって、演算ストップ条件が通知される。換言すれば、ビットストリームが、ゼロに等しい最上位ビットプレーン値に対して最小の数値的重みよりも高い増加した数値的重みを与える必要があることを示す場合(これは正常な符号化状態においては生じない条件である)に、演算ストップ条件が検出される。すなわち、符号化された算術エスケープ記号の後に符号化された最上位ビットプレーン値0が続く場合に演算ストップ条件が通知される。
ステップ212cにおいて行われる、演算ストップ条件が存在するか否かの評価の後、例えば、図3の参照符号212dで示すように、下位ビットプレーンが取得される。下位ビットプレーンのそれぞれについて、2つの2進値が復号される。2進値のうちの1つは、変数a(またはスペクトル値のタプルの第1のスペクトル値)に対応付けられ、2進値のうちの1つは、変数b(またはスペクトル値のタプルの第2のスペクトル値)に対応付けられている。変数levによって下位ビットプレーンの数が示される。
1つ以上の最下位ビットプレーン(存在する場合)の復号では、アルゴリズム212daが繰返し実行され、アルゴリズム212daの実行回数は、変数「lev」によって決まる。ここで、アルゴリズム212daの最初の繰返しは、ステップ212bbで設定された変数a,bの値に基づいて実行される点に留意されたい。アルゴリズム212daのさらなる繰返しは、変数a,bの更新された変数値に基づいて実行される。
繰返しの開始時に、累積度数テーブルが選択される。続いて、算術復号が行われて、変数rの値が取得され、ここで、変数rの値は、複数の下位ビット、例えば、変数aに対応付けられた1つの下位ビットおよび変数bに対応付けられた1つの下位ビットを示す。関数「ARITH_DECODE」を用いて値rが取得され、ここで、算術復号には累積度数テーブル「arith_cf_r」が用いられる。
続いて、変数aおよびbの値が更新される。この目的で、変数aは、1ビット左にシフトされ、シフトされた変数aの最下位ビットは、値rの最下位ビットによって定義される値に設定される。変数bは、1ビット左にシフトされ、シフトされた変数bの最下位ビットは、変数rのビット1によって定義される値に設定され、ここで、変数rのビット1は、変数rの2進表現における2の数値的重みを有する。次いで、すべての最下位ビットが復号されるまでアルゴリズム412baが繰り返される。
下位ビットプレーンの復号の後、配列「x_ac_dec」が、変数a,bの値が当該配列の配列インデックス2iおよび2i+1を有するエントリに格納されるように更新される。
続いて、図5gを参照して詳細が後述される関数「arith_update_context(i,a,b)」を呼び出すことにより、コンテキスト状態が更新される。
ステップ313において行われるコンテキスト状態の更新に続き、実行中の変数iがlg/2の値に達するか、あるいは演算ストップ条件が検出されるまで、アルゴリズム312および313が繰り返される。
続いて、参照符号315において理解されるように、終了アルゴリズム「arith_finish()」が実行される。終了アルゴリズム「arith_finish()」の詳細については、図5mを参照して後述する。
終了アルゴリズム315に続き、アルゴリズム314を用いてスペクトル値の符号が復号される。ゼロとは異なるスペクトル値の符号が個別にコーディングされることが理解される。アルゴリズム314において、i=0〜i=lg−1のインデックスiを有するゼロでないスペクトル値のすべてについて符号が読み出される。i=0〜i=lg−1のスペクトル値インデックスiを有するゼロでないスペクトル値のそれぞれについて、ビットストリームから値(典型的には、単一のビット)sが読み出される。ビットストリームから読み出されたsの値が1に等しい場合、当該スペクトル値の符号は反転される。この目的で、インデックスiを有するスペクトル値がゼロに等しいか否かの判定および復号されたスペクトル値の符号の更新との両方を行うために、配列「x_ac_dec」へのアクセスが行われる。ただし、符号の復号314において、変数a,bの符号は、変更されない点に留意されたい。
符号の復号314の前に終了アルゴリズム315を実行することにより、ARITH_STOP記号の後のすべての必要なビンをリセットすることができる。
ここで、下位ビットプレーンの値を取得するための概念は、本発明によるいくつかの実施の形態において特に重要ではない点に留意されたい。いくつかの実施の形態において、あらゆる下位ビットプレーンの復号を省略してもよい。あるいは、この目的のために異なる復号アルゴリズムを用いてもよい。
11.2 図4による復号順序
以下に、スペクトル値の復号順序について説明する。
量子化されたスペクトル係数「x_ac_dec[]」は、最も低い周波数係数から開始して、最も高い周波数係数へとノイズレス符号化され、送信される(例えば、ビットストリームにおいて)。
したがって、量子化されたスペクトル係数「x_ac_dec[]」は、最も低い周波数係数から開始して、最も高い周波数係数へとノイズレス復号される。量子化されたスペクトル係数は、いわゆる2−タプル(a,b)({a,b}によっても示す)において集合する2つの連続する(例えば、周波数において隣接する)係数aおよびbのグループによって復号される。ここで、量子化されたスペクトル係数は、「qdec」によって示される場合がある点に留意されたい。
次いで、周波数領域モード(例えば、ISO/IEC14496,パート3,サブパート4に記載される修正離散コサイン変換を用いて取得される、アドバンスドオーディオコーディングのための復号された係数)のための復号された係数「x_ac_dec[]」が、配列「x_ac_quant[g][win][sfb][bin]」に格納される。ノイズレスコーディングコードワードの送信の順序は、これらが受信され、配列に格納された順に復号される場合、「bin」が増加の最も早いインデックスであり、「g」が増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa,bである。
変換符号化励起(transform coded-excitation)(TCX)のための復号された係数「x_ac_dec[]」は、例えば、配列「x_tcx_invquant[win][bin]」に直接格納され、ノイズレスコーディングコードワードの送信の順序は、これらが受信され、配列に格納された順に復号される場合、「bin」が増加の最も早いインデックスであり、「win」が増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa,bである。換言すれば、スペクトル値が音声コーダの線形予測フィルタの変換符号化励起を示す場合、スペクトル値a,bは、変換符号化励起の隣接しかつ増加する周波数に対応付けられる。より低い周波数に対応付けられたスペクトル係数は、典型的には、より高い周波数に対応付けられたスペクトル係数よりも先に符号化および復号される。
特に、オーディオ復号器200は、算術復号部230によって提供される復号された周波数領域表現232を、周波数領域−時間領域信号変換を用いた時間領域オーディオ信号表現の「直接的な」生成、および周波数領域−時間領域復号部と周波数領域−時間領域信号変換部の出力によって励起される線形予測フィルタとの両方を用いた時間領域オーディオ信号表現の「間接的な」提供のいずれにも適用するように構成され得る。
換言すれば、本明細書においてその機能が詳述される算術復号部は、周波数領域において符号化されるオーディオコンテンツの時間周波数領域表現のスペクトル値の復号、および線形予測領域において符号化される音声信号を復号する(または合成する)ように適合された線形予測フィルタ用の励振信号の時間周波数領域表現の提供によく適している。したがって、算術復号部は、周波数領域符号化されたオーディオコンテンツおよび線形予測周波数領域符号化されたオーディオコンテンツ(変換符号化励起−線形予測領域モード)の両方を扱うことが可能なオーディオ復号器における使用によく適している。
11.3 図5aおよび図5bによるコンテキストの初期化
以下に、ステップ310において行われるコンテキストの初期化(「コンテキストマッピング」としても示される)について説明する。
コンテキストの初期化は、アルゴリズム「arith_map_context()」に従った過去のコンテキストと現在のコンテキストとの間のマッピングを含み、その第1の例を図5aに示し、第2の例を図5bに示す。
現在のコンテキストは、第1の次元が2であり、第2の次元が「n_context」である配列の形式を有する大域変数「q[2][n_context]」に格納されていることが理解される。過去のコンテキストを、次元が「n_context」である(使用される場合)表の形式を有する変数「qs[n_context]」に任意に格納することができる(ただし、必ずしもそうする必要はない)。
図5aにおけるアルゴリズム例「arith_map_context」を参照すると、入力変数Nは、現在のウィンドウの長さを示し、入力変数「arith_reset_flag」は、コンテキストがリセットされるべきか否かを示す。さらに、大域変数「previous_N」は、以前のウィンドウの長さを示す。ここで、典型的には、1つのウィンドウに対応付けられたスペクトル値の数は、時間領域サンプルを単位として当該ウィンドウの長さの2分の1に少なくともほぼ等しい点に留意されたい。さらに、スペクトル値の2−タプルの数は、したがって、時間領域サンプルを単位として当該ウィンドウの長さの4分の1に少なくともほぼ等しい点に留意されたい。
図5aの例を参照すると、コンテキストのマッピングは、アルゴリズム「arith_map_context()」に従って行われ得る。ここで、フラグ「arith_reset_flag」がアクティブであり、したがって、コンテキストがリセットされるべきであることを示す場合、関数「arith_map_context()」は、j=0~j=N/4−1について、現在のコンテキスト配列qのエントリ「q[0][j]」をゼロに設定する点に留意されたい。そうでない場合、すなわち、フラグ「arith_reset_flag」が非アクティブである場合、現在のコンテキスト配列qのエントリ「q[1][k]」から現在のコンテキスト配列qのエントリ「q[0][j]」が導出される。図5aによる関数「arith_map_context()」は、現在の(例えば、周波数領域符号化された)オーディオフレームに対応付けられたスペクトル値の数が、j=k=0~j=k=N/4−1について以前のオーディオフレームに対応付けられたスペクトル値の数と同一である場合、現在のコンテキスト配列qのエントリ「q[0][j]」を現在のコンテキスト配列qの値「q[1][k]」に設定する点に留意されたい。
現在のオーディオフレームに対応付けられたスペクトル値の数が、以前のオーディオフレームに対応付けられたスペクトル値の数と異なる場合、より複雑なマッピングが行われる。しかし、この場合におけるマッピングについての詳細は、本発明の主要概念に特に重要ではないため、詳細については図5aの疑似プログラムコードを参照されたい。
さらに、現在の数値コンテキスト値cの初期化値が、関数「arith_map_context()」によって戻される。この初期化値は、例えば、12ビット左にシフトさせたエントリ「q[0][0]」の値に等しい。したがって、(現在の)数値コンテキスト値cは、繰返し更新のために適切に初期化される。
さらに、図5bは、代わりに使用され得るアルゴリズム「arith_map_context()」の別の例を示す。詳細については、図5bの疑似プログラムコードを参照されたい。
上記を要約すると、フラグ「arith_reset_flag」は、コンテキストをリセットしなければならないか否かを判定する。フラグが真である場合、アルゴリズム「arith_map_context()」のリセットサブアルゴリズム500aが呼び出される。しかし、代替的に、フラグ「arith_reset_flag」が非アクティブである(コンテキストのリセットを行うべきでないことを示す)場合、復号処理は、初期化段階から開始され、初期化段階では、q[1][]に格納された以前のフレームのコンテキスト要素をq[0][]にコピーおよびマッピングすることによりコンテキスト要素ベクトル(または配列)qが更新される。q内のコンテキスト要素は、1つの2−タプルにつき4ビット格納される。コンテキスト要素のコピーおよび/またはマッピングは、サブアルゴリズム500bにおいて行われる。
図5bの例では、復号処理は、qsに格納された保存された過去のコンテキストと現在のフレームqのコンテキストとの間でマッピングが行われる初期化段階から開始される。過去のコンテキストqsは、1つの周波数ラインにつき2ビット格納される。
11.4 図5cおよび図5dによる状態値の計算
以下に、状態値の計算312aについてより詳細に説明する。
図5cを参照して、第1のアルゴリズム例を説明し、図5dを参照して、第2のアルゴリズム例を説明する。
現在の数値コンテキスト値c(図3に示すような)は、図5cに疑似プログラムコード表現を示す関数「arith_get_context(c,i,N)」の戻り値として取得することができる点に留意されたい。しかし、代わりに、現在の数値コンテキスト値cは、図5dに疑似プログラムコード表現を示す関数「arith_get_context(c,i)」の戻り値として取得することができる。
状態値の計算に関し、状態評価、すなわち、現在の数値コンテキスト値cの計算に使用されるコンテキストを示す図4を参照する。図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によって示され得る「old state context」を入力変数として受け取る点に留意されたい。関数「arith_get_context(c,i,N)」はまた、復号すべきスペクトル値の2−タプルのインデックスiも入力変数として受け取る。インデックスiは、典型的には、周波数インデックスである。入力変数Nは、スペクトル値が復号されるウィンドウのウィンドウ長さを示す。
関数「arith_get_context(c,i,N)」は、更新された状態コンテキストを示し現在の数値コンテキスト値であると考えられ得る、入力変数cの更新されたバージョンを出力値として提供する。要約すると、関数「arith_get_context(c,i,N)」は、以前の数値コンテキスト値cを入力変数として受け取り、現在の数値コンテキスト値として考慮されるその更新されたバージョンを提供する。また、関数「arith_get_context」は、変数i,Nを考慮するとともに「大域」配列q[][]にアクセスする。
関数「arith_get_context(c,i,N)」の詳細に関し、以前の数値コンテキスト値を最初は2進形式で表す変数cは、ステップ504aにおいて4ビット右にシフトされる点に留意されたい。したがって、以前の数値コンテキスト値(入力変数cによって表される)の4つの最下位ビットが破棄される。また、以前の数値コンテキスト値のその他のビットの数値的重みが、例えば、16分の1に低減される。
さらに、2−タプルのインデックスiがN/4−1より小さい、すなわち、最大値をとらない場合、現在の数値コンテキスト値は、ステップ504aで取得されるシフトされたコンテキスト値の12ビット〜15ビット(すなわち、数値的重みが212,213,214,および215であるビット)にエントリq[0][i+1]の値が加算されるように修正される。この目的で、配列q[][]のエントリq[0][i+1](または、より厳密には、当該エントリによって表される値の2進表現)は、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に基づくものであり得る。
参照符号504bにおいて、配列q[][](12ビット左にシフトされた)のエントリq[0][i+1]の選択的加算が示されている。エントリq[0][i+1]によって表される値の加算は、当然に、周波数インデックスiが最も高い周波数インデックスi=N/4−1を有するスペクトル値のタプルを指定しない場合にのみ行われることが分かる。
続いて、ステップ504cにおいて、変数cの値と16進値0xFFF0とのAND組み合わせを行って変数cの更新された値を得るブールAND演算が実行される。このようなAND演算を実行することにより、変数cの4つの最下位ビットが実質上ゼロに設定される。
ステップ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に対応付けられてもよい。
要約すると、ステップ504aにおいて、以前の数値コンテキスト値のビット0,1,2,3(すなわち、4つの最下位ビットの部分)が、以前の数値コンテキスト値の2進数値表現からこれらをシフトアウトすることによって破棄される。さらに、ステップ504bにおいて、シフトされた変数cの(すなわち、シフトされた以前の数値コンテキスト値の)ビット12,13,14,15が、コンテキストサブ領域値q[0][i+1]によって定義される値をとるように設定される。ステップ504cおよび504dにおいて、シフトされた以前の数値コンテキスト値(すなわち、元の以前の数値コンテキスト値のビット4,5,6,7)のビット0,1,2,3が、コンテキストサブ領域値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より小さい(あるいは、これに等しい)か否かが判定される。当該コンテキストサブ領域値の和が上記所定の値よりも小さいことが分かった場合、16進値、例えば、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に付加される。したがって、ステップ504a,504b,504c,504dにおいて取得された変数cの値は、ステップ504eにおいて評価された条件が満たされない場合、関数「arith_get_context(c,i,N)」の戻り値としてステップ504fにおいて戻される。これに対し、ステップ504a,504b,504c,および504dにおいて導出される変数cの値は、ステップ540eにおいて評価された条件が満たされる場合、ステップ504eにおいて、16進値0x10000だけ増やされ、この増加演算の結果が戻される。
上記を要約すると、ノイズレス復号器は、符号無しの量子化されたスペクトル係数(より詳しくは後述するような)の2−タプルを出力する点に留意されたい。最初に、復号すべき2−タプルの「周囲にある」以前に復号されたスペクトル係数に基づいてコンテキストの状態cが計算される。好ましい実施の形態において、状態(例えば、数値コンテキスト値によって表される)は、2つの新しい2−タプル(例えば、2−タプル430および460)のみを考慮して、最後に復号された2−タプルのコンテキスト状態(以前の数値コンテキスト値として指定される)を用いて増加的に更新される。状態は、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()」は、スペクトル値のタプルを提供するためのコード値「acod_m」復号する際に、サブアルゴリズム312baの開始時に呼び出される点に留意されたい。関数「arith_get_pk(c)」は、アルゴリズム312bの異なる繰返しにおいて異なる引数によって呼び出される点に留意されたい。例えば、アルゴリズム312bの第1回目の繰返しにおいて、関数「arith_get_pk(c)」は、ステップ312aにおける関数「arith_get_context(c,i,N)」の以前の実行によって提供された現在の数値コンテキスト値cに等しい引数によって呼び出される。これに対し、サブアルゴリズム312baのさらなる繰返しにおいて、関数「arith_get_pk(c)」は、ステップ312aにおいて関数「arith_get_context(c,i,N)」によって提供された現在の数値コンテキスト値cと、変数「esc_nb」の値が17ビット左にシフトされた、変数「esc_nb」の値のビットシフトされたバージョンとの和である引数によって呼び出される。したがって、関数「arith_get_context(c,i,N)」によって提供された現在の数値コンテキスト値cは、アルゴリズム312baの第1回目の繰返しにおいて、すなわち、比較的小さいスペクトル値の復号において、関数「arith_get_pk()」の入力値として用いられる。これに対し、比較的大きいスペクトル値を復号する際、関数「arith_get_pk()」の入力変数は、図3に示すように、変数「esc_nb」の値が考慮されるように修正される。
ここで、関数「arith_get_pk(c)」の第1の実施の形態の疑似プログラムコード表現を示す図5eを参照すると、関数「arith_get_pk()」は、変数cを入力値として受け取り、変数cは、コンテキストの状態を示し、関数「arith_get_pk()」の入力変数cは、少なくともいくつかの状況において関数「arith_get_context()」によって戻り変数として提供される現在の数値コンテキスト値に等しい点に留意されたい。さらに、関数「arith_get_pk()」は、確率モデルのインデックスを示し、マッピング規則インデックス値であると考えられ得る変数「pki」を出力変数として提供する点に留意されたい。
図5eを参照すると、関数「arith_get_pk()」は、変数「i_min」が−1の値をとるように初期化される変数の初期化506aを含むことが分かる。同様に、変数iは、変数「i_min」に等しくなるように設定されるので、変数iもまた−1の値に初期化される。変数「i_max」は、テーブル「ari_lookup_m[]」(詳細については図21(1)および図21(2)を参照して後述する)のエントリ数よりも1だけ小さい値をとるように初期化される。したがって、変数「i_min」および「i_max」は、間隔を定義する。
続いて、検索506bを実行して、関数「arith_get_pk()」の入力変数cの値が当該エントリおよび隣接するエントリによって定義される間隔内に位置するようなテーブル「ari_hash_m」のエントリを指定するインデックス値を特定する。
検索506bにおいて、変数「i_max」と「i_min」との差が1よりも大きい間、サブアルゴリズム506baが繰り返される。サブアルゴリズム506baにおいて、変数iは、変数「i_min」および「i_max」の値の算術平均に等しくなるように設定される。したがって、変数iは、変数「i_min」および「i_max」の値によって定義されるテーブル間隔の中間にテーブル「ari_hash_m[]」のエントリを指定する。続いて、変数jが、テーブル「ari_hash_m[]」のエントリ「ari_hash_m[i]」の値に等しくなるように設定される。したがって、変数jは、エントリが変数「i_min」および「i_max」によって定義されるテーブル間隔の中間に位置するテーブル「ari_hash_m[]」のエントリによって定義される値をとる。続いて、関数「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[]」のエントリ「ari_hash_m[i]」によって示される上位状態値よりも小さいことを意味する。この場合、変数「i_max」の値は、変数iの値に等しくなるように設定され、このことは、「i_min」および「i_max」によって定義される間隔のサイズを小さくするという効果をもたらし、新たな間隔は、以前の間隔の下半分にほぼ等しくなる。関数「arith_get_pk()」の入力変数cが値「j>>8」よりも大きいこと、すなわち、変数cによって示されるコンテキスト値が配列「ari_hash_m[]」のエントリ「ari_hash_m[i]」によって示される上位状態値よりも大きいことが分かった場合、変数「i_min」の値は、変数iの値に等しくなるように設定される。したがって、変数「i_min」および「i_max」の値によって定義される間隔のサイズは、変数「i_min」および「i_max」の以前の値によって定義される以前の間隔のサイズの約2分の1に縮小する。より厳密には、変数「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()」(命令「return(j&0xFF)」)の戻り値として戻される。
上記を要約すると、最上位ビット(ビット8以上のビット)が上位状態値を示すエントリ「ari_hash_m[i]」が各繰返し506baにおいて評価され、関数「arith_get_pk()」の入力変数cによって示されるコンテキスト値(または現在の数値コンテキスト値)が、当該テーブルエントリ「ari_hash_m[i]」によって示される上位状態値と比較される。入力変数cによって表されるコンテキスト値がテーブルエントリ「ari_hash_m[i]」によって表される上位状態値よりも小さい場合、テーブル間隔の上方境界(値「i_max」によって示される)は減らされ、入力変数cによって示されるコンテキスト値が、テーブルエントリ「ari_hash_m[i]」によって示される上位状態値よりも大きい場合、テーブル間隔の下方境界(変数「i_min」の値によって示される)は増やされる。これら両方の場合において、サブアルゴリズム506baは、間隔(「i_max」と「i_min」)との差によって定義される)のサイズが1より小さいかあるいは等しい場合を除き、繰り返される。これに対し、変数cによって示されるコンテキスト値がテーブルエントリ「ari_hash_m[i]」によって示される上位状態値に等しい場合、関数「arith_get_pk()」は中止され、戻り値は、テーブルエントリ「ari_hash_m[i]」の最下位8ビットによって定義される。
しかし、間隔のサイズがその最小値(「i_max−「i_min」が1より小さいかあるいは1に等しい)に達したために検索506bが終了した場合、関数「arith_get_pk()」の戻り値は、参照符号506cにおいて示される、テーブル「ari_lookup_m[]」のエントリ「ari_lookup_m[i_max]」によって決定される。したがって、テーブル「ari_hash_m[]」のエントリは、上位状態値と間隔の境界との両方を定義する。サブアルゴリズム506baにおいて、検索の間隔境界「i_min」および「i_max」は、ハッシュテーブルインデックスiが間隔境界値「i_min」および「i_max」によって示される検索間隔の中央に少なくともほぼ位置する、テーブル「ari_hash_m[]」のエントリ「ari_hash_m[i]」が入力変数cよって示されるコンテキスト値に少なくとも近似するように繰返し適合される。これにより、入力変数cによって示されるコンテキスト値がテーブル「ari_hash_m[]」のエントリによって示される上位状態値に等しい場合を除き、入力変数cによって示されるコンテキスト値は、サブアルゴリズム506baの繰返しの完了後、「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を復号するために用いられる累積度数テーブルが決定される。cから対応する累積度数テーブルインデックス「pki」へのマッピングは、関数「arith_get_pk()」によって行われる。当該関数「arith_get_pk()」の疑似プログラムコード表現については、図5eを参照して既に説明した。
上記をさらに要約すると、値mは、累積度数テーブル「arith_cf_m[pki][]」によって呼び出される関数「arith_decode()」(さらなる詳細については後述する)を用いて復号され、ここで、「pki」は、図5eを参照して説明される関数「arith_get_pk()」によって戻されるインデックス(マッピング規則インデックス値としても示される)に相当する。
11.5.2 図5fによるアルゴリズムを用いたマッピング規則の選択
以下に、マッピング規則選択アルゴリズム「arith_get_pk()」の別の実施の形態について、スペクトル値のタプルの復号において使用され得るこのようなアルゴリズムの疑似プログラムコード表現を示す図5fを参照して説明する。図5fによるアルゴリズムは、アルゴリズム「get_pk()」またはアルゴリズム「arith_get_pk()」の最適化バージョン(例えば、速度最適化バージョン)であると考えられ得る。
図5fによるアルゴリズム「arith_get_pk()」は、コンテキストの状態を示す変数cを入力変数として受け取る。入力変数cは、例えば、現在の数値コンテキスト値を表し得る。
アルゴリズム「arith_get_pk()」は、入力変数cによって示されるコンテキストの状態に対応付けられた確率分布(または確率モデル)のインデックスを示す変数「pki」を出力変数として提供する。変数「pki」は、例えば、マッピング規則インデックス値であり得る。
図5fによるアルゴリズムは、配列「i_diff[]」の内容の定義を含む。配列「i_diff[]」(配列インデックス0を有する)の第1のエントリは、299に等しく、さらなる配列エントリ(配列インデックス1〜8を有する)は、149,74,37,18,9,4,2,および1の値をとることが理解される。したがって、ハッシュテーブルインデックス値「i_min」の選択のためのステップサイズは、配列「i_diff[]」のエントリが当該ステップサイズを定義しているため、繰返しの度に減らされる。詳細については下記の記述を参照されたい。
しかし、異なるステップサイズ、例えば、配列「i_diff[]」の異なる内容を実際に選択することができ、配列「i_diff[]」の内容は、当然、ハッシュテーブル「ari_hash_m[i]」のサイズに適合させることができる。
変数「i_min」は、アルゴリズム「arith_get_pk()」の開始時点で0の値をとるように初期化される点に留意されたい。
初期化ステップ508aにおいて、変数sが入力変数cに応じて初期化され、変数cの数値表現は、変数sの数値表現を取得するために8ビット左にシフトされている。
続いて、コンテキスト値cによって示されるコンテキスト値が、ハッシュテーブルエントリ「ari_hash_m[i_min]」によって示されるコンテキスト値と、ハッシュテーブルエントリ「ari_hash_m[i_min]」に隣接する(ハッシュテーブルインデックス値に関して)別のハッシュテーブルエントリ「ari_hash_m」によって示されるコンテキスト値とによって境界付けられた間隔内に位置するような、ハッシュテーブル「ari_hash_m[]」のエントリのハッシュテーブルインデックス値「i_min」を特定するために、テーブル検索508bが行われる。したがって、アルゴリズム508bにより、ハッシュテーブルエントリ「ari_hash_m[i_min]」が入力変数cによって示されるコンテキスト値に少なくともほぼ近似するように、ハッシュテーブル「ari_hash_m[]」のエントリ「j=ari_hash_m[i_min]」を指定するハッシュテーブルインデックス値「i_min」を決定することが可能となる。
テーブル検索508bは、サブアルゴリズム508baの繰返し実行を含み、サブアルゴリズム508baは、所定の繰返し回数、例えば、9回の繰返し回数実行される。サブアルゴリズム508baの第1のステップにおいて、変数iは、変数「i_min」の値とテーブルエントリ「i_diff[k]」の値との和に等しい値に設定される。ここで、kは、初期値k=0から、サブアルゴリズム508baの繰返しの度に増やされる実行中の変数である点に留意されたい。配列「i_diff[]」は、所定の増分値を定義しており、増分値は、テーブルインデックスkの増加、すなわち、繰返し回数の増加とともに減少する。
サブアルゴリズム508baの第2のステップにおいて、テーブルエントリ「ari_hash_m[]」の値が変数jにコピーされる。好ましくは、テーブル「ari_hash_m[]」のテーブルエントリの最上位ビットは、数値コンテキスト値の上位状態値を示し、テーブル「ari_hash_m[]」のエントリの最下位ビット(ビット0〜7)は、それぞれの上位状態値に対応付けられたマッピング規則インデックス値を示す。
サブアルゴリズム508baの第3ステップにおいて、変数Sの値が変数jの値と比較され、変数sの値が変数jの値よりも大きい場合、変数「i_min」は、値「i+1」に選択的に設定される。続いて、サブアルゴリズム508baの第1のステップ、第2のステップおよび第3ステップが、所定回数、例えば、9回繰り返される。したがって、サブアルゴリズム508baの各実行において、変数「i_min」の値は、現在有効であるハッシュテーブルインデックスi_min+i_diff[]によって示されるコンテキスト値が、入力変数cによって示されるコンテキスト値よりも小さい場合かつその場合に限り、i_diff[]+1だけ増やされる。したがって、ハッシュテーブルインデックス値「i_min」は、入力変数cひいては変数sによって示されるコンテキスト値が、エントリ「ari_hash_m[i=i_min+diff[k]]」によって示されるコンテキスト値よりも大きい場合(かつその場合に限り)、サブアルゴリズム508baの各実行において(繰り返し)増やされる。
さらに、サブアルゴリズム508baの各実行において、比較、すなわち、変数sの値が変数jの値よりも大きいか否かについての比較が1回だけ行われる点に留意されたい。したがって、アルゴリズム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」によって定義される第1の場合)、あるいは、入力変数cによって示されるコンテキスト値がハッシュテーブルエントリ「ari_hash_m[i_min]」によって示されるコンテキスト値よりも小さいか否か(条件「c<j>>8」によって定義される第2の場合)、あるいは入力変数cによって示されるコンテキスト値がエントリ「ari_hash_m[i_min]」によって示されるコンテキスト値に等しいか否か(第3の場合)が判定される。
第1の場合、(s>j)、テーブルインデックス値「i_min+1」によって指定されるテーブル「ari_lookup_m[]」のエントリ「ari_lookup_m[i_min+1]」が、関数「arith_get_pk()」の出力値として戻される。第2の場合、(c<(j>>8))、テーブルインデックス値「i_min」によって指定されるテーブル「ari_lookup_m[]」のエントリ「ari_lookup_m[i_min]」が、関数「arith_get_pk()」の戻り値として戻される。第3の場合(すなわち、入力変数cによって示されるコンテキスト値がテーブルエントリ「ari_hash_m[i_min]」によって示される上位状態値に等しい場合)、ハッシュテーブルエントリ「ari_hash_m[i_min]」の最下位8ビットによって示されるマッピング規則インデックス値が関数「arith_get_pk()」の戻り値として戻される。
上記を要約すると、ステップ508bにおいて特に簡単なテーブル検索が行われ、このテーブル検索は、入力変数cによって示されるコンテキスト値がテーブル「ari_hash_m[]」の状態エントリのうちの1つによって定義される上位状態値に等しいか否かを区別することなく変数「i_min」の変数値を提供する。テーブル検索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[]」の各エントリは、8番目のビットより後のビットでコーディングされたコンテキストインデックスおよび最初の8つのビット(最下位ビット)でコーディングされたその対応する確率モデルを表している。本実施において、我々の主な関心は、現在のコンテキストcがari_hash_m[i]>>8よりも大きいか否かの把握(s=c<<8もまたari_hash_m[i]よりも大きいか否かの検出に相当する)にある。
上記を要約すると、一旦コンテキスト状態が計算される(これは、例えば、図5cによるアルゴリズム「arith_get_context(c,i,N)」または図5dによるアルゴリズム「arith_get_context(c,i)」によって達成され得る)と、コンテキスト状態に応じた確率モデルに対応する適切な累積度数テーブルによって呼び出されたアルゴリズム「arith_decode」(後述する)を用いて、最上位2ビット単位プレーンが復号される。この対応は、関数「arith_get_pk()」、例えば、図5fを参照して述べた関数「arith_get_pk()」によって行われる。
11.6 算術復号
11.6.1 図5gによるアルゴリズムを用いた算術復号
以下に、関数「arith_decode()」の機能について図5gを参照しながら詳述する。
関数「arith_decode()」は、それがシーケンスの第1の記号である場合はTRUE、そうでない場合はFALSEを戻すヘルパー関数「arith_first_symbol(void)」を使用する点に留意されたい。関数「arith_decode()」はまた、ビットストリームの次のビットを取得および提供するヘルパー関数「arith_get_next_bit(void)」も使用する。
加えて、関数「arith_decode()」は、大域変数「low」、「high」および「value」を使用する。さらに、関数「arith_decode()」は、選択された累積度数テーブルまたは累積度数サブテーブルの第1のエントリまたは要素(要素インデックスまたはエントリインデックスが0である)を指す変数「cum_freq[]」を入力変数として受け取る。また、関数「arith_decode()」は、変数「cum_freq[]」によって指定される選択された累積度数テーブルまたは累積度数サブテーブルの長さを示す入力変数「cfl」を使用する。
関数「arith_decode()」は、変数の初期化570aを第1のステップとして含み、変数の初期化570aは、ヘルパー関数「arith_first_symbol()」が記号のシーケンスの第1の記号が復号中であることを示す場合に行われる。値の初期化550aは、ヘルパー関数「arith_get_next_bit」を用いてビットストリームから取得される複数の、例えば、16個のビットに基づいて、変数「value」が当該ビットによって表される値をとるように変数「value」を初期化する。また、変数「low」は、0の値をとるように初期化され、変数「high」は、65535の値をとるように初期化される。
第2のステップ570bにおいて、変数「range」は、変数「high」の値と変数「low」の値との差よりも1だけ大きい値に設定される。変数「cum」は、変数「low」の値と変数「high」の値との間における変数「value」の値の相対位置を表す値に設定される。したがって、変数「cum」は、変数「value」の値に応じて、例えば、0〜216の値をとる。
ポインタpは、選択された累積度数テーブルの開始アドレスよりも1だけ小さい値に初期化される。
アルゴリズム「arith_decode()」はまた、累積度数テーブル繰返し検索570cも含む。累積度数テーブル繰返し検索は、変数cflが1以下になるまで繰り返される。累積度数テーブル繰返し検索570cにおいて、ポインタ変数qは、ポインタ変数pの現在の値と変数「cfl」の2分の1の値との和に等しい値に設定される。エントリがポインタ変数qによってアドレス指定される、選択された累積度数テーブルのエントリqの値が変数「cum」の値よりも大きい場合、ポインタ変数pは、ポインタ変数qの値に設定され、変数「cfl」は増やされる。最後に、変数「cfl」が1ビット右にシフトされ、これにより、効果的に、変数「cfl」の値を2で除算し、モジュロ部分を無視する。
したがって、累積度数テーブル繰返し検索570cは、変数「cum」の値を選択された累積度数テーブルの複数のエントリと効果的に比較して、累積度数テーブルのエントリによって境界付けられた選択された累積度数テーブル内の間隔を特定し、特定される間隔内に値cumが位置するようにする。したがって、選択された累積度数テーブルのエントリは、間隔を定義し、それぞれの記号値は、選択された累積度数テーブルの間隔のそれぞれに対応付けられている。また、累積度数テーブルの2つの隣接する値の間隔の幅は、選択された累積度数テーブルが全体として異なる記号(または記号値)の確率分布を定義するように、当該間隔に対応付けられた記号の確率を定義する。利用可能な累積度数テーブルに関する詳細については、図23を参照して後述する。
図5gを再び参照すると、記号値は、ポインタ変数pの値から導出され、ここで、記号値は、参照符号570dに示すように導出される。したがって、変数「symbol」によって表される記号値を取得するために、ポインタ変数pの値と開始アドレス「cum_freq」との差が評価される。
アルゴリズム「arith_decode」はまた、変数「high」および「low」の適合570eも含む。変数「symbol」によって表される記号値が0と異なる場合、参照符号570eに示すように、変数「high」が更新される。また、参照符号570eに示すように、変数「low」の値が更新される。変数「high」は、変数「low」の値と、変数「range」と、選択された累積度数テーブルのインデックス「symbol−1」を有するエントリとによって決定される値に設定される。変数「low」は増やされ、増加の大きさは、変数「range」とインデックス「symbol」を有する選択された累積度数テーブルのエントリとによって決定される。したがって、変数「low」の値と変数「high」の値との差は、選択された累積度数テーブルの2つの隣接するエントリ間の数値差に応じて調整される。
したがって、低い確率を有する記号値が検出された場合、変数「low」の値と変数「high」の値との間隔は、狭い幅に減らされる。これに対し、検出された記号値が比較的大きい確率を含む場合、変数「low」の値と変数「high」の値との間隔の幅は、比較的大きい値に設定される。ここでもまた、変数「low」の値と変数「high」の値との間隔の幅は、検出された記号と累積度数テーブルの対応するエントリとに依存する。
アルゴリズム「arith_decode()」はまた、間隔の繰込み570fも含み、間隔の繰込み570fでは、「中断」条件に達するまで、ステップ570eにおいて決定された間隔が繰り返しシフトおよびスケーリングされる。間隔の繰込み570fにおいては、選択的な下方シフト演算570faが実行される。変数「high」が32768未満である場合は何も行われず、間隔の繰込みは、間隔−サイズ−増加演算570fbから継続する。しかし、変数「high」が32768未満ではなく、変数「low」が32768以上である場合、変数「values」、「low」および「high」は、すべて32768だけ減らされ、その結果、変数「low」および「high」によって定義される間隔が下方へシフトされ、変数「value」の値もまた下方へシフトされる。しかし、変数「high」の値が32768未満ではなく、変数「low」が32768以上でないこと、および変数「low」が16384以上であり、変数「high」が49152未満であることが分かった場合、変数「value」、「low」、および「high」は、すべて16384だけ減らされ、これにより、変数「high」の値と変数「low」の値との間隔および変数「value」の値も下方へシフトされる。しかし、上記条件がいずれも満たされない場合、間隔の繰込みは中止される。
しかし、ステップ570faにおいて評価される上記条件のいずれかが満たされた場合、間隔増加演算570fbが実行される。間隔増加演算570fbにおいては、変数「low」の値が倍増される。また、変数「high」の値が倍増され、倍増の結果が1だけ増やされる。また、変数「value」の値が倍増され(1ビット左にシフトされ)、ヘルパー関数「arith_get_next_bit」によって取得されるビットストリームのビットが最下位ビットとして用いられる。したがって、変数「low」の値と変数「high」の値との間隔のサイズは、ほぼ倍増され、変数「value」の精度は、ビットストリームの新たなビットを使用することによって高められる。上述の通り、ステップ570faおよび570fbは、「中断」条件に達するまで、すなわち、変数「low」の値と変数「high」の値との間隔が十分に大きくなるまで繰り返される。
アルゴリズム「arith_decode()」の機能に関し、変数「low」の値と変数「high」の値との間隔は、ステップ570eにおいて、変数「cum_freq」によって参照される累積度数テーブルの2つの隣接するエントリに応じて縮小される点に留意されたい。選択された累積度数テーブルの2つの隣接する値の間隔が小さい場合、すなわち、隣接する値が互いに比較的近接している場合、ステップ570eにおいて取得される変数「low」の値と変数「high」の値との間隔は、比較的小さいものとなる。これに対し、累積度数テーブルの2つの隣接するエントリが遠く離れている場合、ステップ570eにおいて取得される変数「low」の値と変数「high」の値との間隔は、比較的大きいものとなる。
その結果、ステップ570eにおいて取得される変数「low」の値と変数「high」の値との間隔が比較的小さい場合、間隔を「十分な」サイズ(条件評価570faにおける条件がいずれも満たされることがないような)に再スケーリングするために、間隔繰込みステップは、より多くの回数実行されることになる。したがって、変数「value」の精度を高めるために、ビットストリームから比較的多くの数のビットが使用されることになる。これに対し、ステップ570eにおいて取得された間隔のサイズが比較的大きい場合、変数「low」の値と変数「high」の値との間隔の「十分な」サイズへの繰込みを行うために必要とされる間隔正規化ステップ570faおよび570fbの反復回数はごくわずかとなる。したがって、変数「value」の精度を高め、次の記号の復号の準備を行うために、ビットストリームから比較的少数のビットのみが用いられることになる。
上記を要約すると、比較的高い確率を含み、選択された累積度数テーブルのエントリによって大きい間隔が対応付けられた記号が復号される場合、後の記号の復号を可能にするために、比較的少数のビットのみがビットストリームから読み出されることになる。これに対し、比較的小さい確率を含み、選択された累積度数テーブルのエントリによって小さい間隔が対応付けられた記号が復号される場合、次の記号の復号の準備を行うために、比較的多数のビットがビットストリームから取られる。
したがって、累積度数テーブルのエントリは、異なる記号の確率を反映するとともに、記号のシーケンスを復号するために必要とされるビット数を反映するものである。例えば、コンテキストに応じて異なる累積度数テーブルを選択することにより、累積度数テーブルをコンテキストに応じて、すなわち、以前に復号された記号(またはスペクトル値)に応じて変化させることにより、異なる記号間の確率的依存性を利用することができ、これにより、後の(または隣の)記号の特にビットレート効率のよい符号化が可能となる。
上記を要約すると、図5gを参照して説明した関数「arith_decode()」は、最上位ビットプレーン値m(戻り変数「symbol」によって表される記号値に設定され得る)を決定するために、関数「arith_get_pk()」によって戻されたインデックス「pki」に対応する累積度数テーブル「arith_cf_m[pki][]」によって呼び出される。
上記を要約すると、算術復号部は、スケーリングによるタグ生成の方法を用いた整数実装(integer implementation)である。詳細については、K.Sayood,Third Edition,2006,Elsevier Inc.の書籍“Introduction to Data Compression”を参照されたい。
図5gによるコンピュータプログラムコードは、本発明の実施の形態による使用アルゴリズムを示す。
11.6.2 図5hおよび図5iによるアルゴリズムを用いた算術復号
図5hおよび図5iは、図5gを参照して説明したアルゴリズム「arith_decode」の代わりに使用可能なアルゴリズム「arith_decode()」の別の実施の形態の疑似プログラムコード表現を示す。
図5gによるアルゴリズムならびに図5hおよび図5iによるアルゴリズムは、いずれも図3によるアルゴリズム「values_decode()」において使用され得る点に留意されたい。
要約すると、値mは、累積度数テーブル「arith_cf_m[pki][]」によって呼び出された関数「arith_decode()」を用いて復号され、ここで、「pki」は、関数「arith_get_pk()」によって戻されるインデックスに相当する。算術コーダ(または復号部)は、スケーリングによるタグ生成の方法を用いた整数実装である。詳細については、K.Sayood,Third Edition,2006,Elsevier Inc.の書籍“Introduction to Data Compression”を参照されたい。図5hおよび図5iによるコンピュータプログラムコードは、使用アルゴリズムを示す。
11.7 エスケープ機構
以下に、図3による復号アルゴリズム「values_decode()」において使用されるエスケープ機構について簡単に説明する。
復号された値m(関数「arith_decode()」の戻り値として提供される)がエスケープ記号「ARITH_ESCAPE」である場合、変数「lev」および「esc_nb」は1だけ増やされ、別の値mが復号される。この場合、関数「arith_get_pk()」が値「c+esc_nb<<17」によって入力引数として再び1回呼び出され、ここで、変数「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_STOP」記号が検出され、復号処理は終了する。この場合、復号器は、後述する「arith_finish()」関数に直接ジャンプする。この条件は、フレームの残りが0値で構成されていることを意味する。
11.9 下位ビットプレーンの復号
以下に、1つ以上の下位ビットプレーンの復号について説明する。下位ビットプレーンの復号は、例えば、図3に示すステップ312dにおいて行われる。しかし、代わりに、図5jおよび図5nに示すアルゴリズムが使用され得る。
11.9.1 図5jによる下位ビットプレーンの復号
次に図5jを参照すると、変数aおよびbの値が値mから導出されることが理解される。例えば、値mの数値表現が2ビット右にシフトされ、変数bの数値表現が取得される。さらに、変数bの値のビットシフトされたバージョン、即ち、2ビット左にビットシフトしたものを変数mの値から減算することにより、変数aの値が取得される。
続いて、最下位ビットプレーン値rの算術復号が繰り返され、ここで、繰返し回数は、変数「lev」の値によって決定される。最下位ビットプレーン値rは、関数「arith_decode」を用いて取得され、最下位ビットプレーンの復号に適合された累積度数テーブルが使用される(累積度数テーブル「arith_cf_r」)。変数rの最下位ビット(数値的重みが1である)は、変数aによって表されるスペクトル値の下位ビットプレーンを示し、変数rの数値的重みが2であるビットは、変数bによって表されるスペクトル値の下位ビットを示す。したがって、変数aは、変数aを1ビット左にシフトし、変数rの数値的重みが1であるビットを最下位ビットとして加算することによって更新される。同様に、変数bは、変数bを1ビット左にシフトし、変数rの数値的重みが2であるビットを加算することによって更新される。
したがって、変数a,bのビットを運ぶ2つの最上位情報は、最上位ビットプレーン値mによって決定され、値aおよびbの1つ以上の最下位ビット(存在する場合)は、1つ以上の下位ビットプレーン値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[]」のエントリインデックスが2iであるエントリは、aに等しくなるように設定され、配列「x_ac_dec[]」のエントリインデックスが「2i+1」であるエントリはbに等しくなるように設定されることが理解される。換言すれば、下位ビットの復号312dの後の時点において、2−タプル(a,b)の符号無しの値が完全に復号される。当該値は、図5kに示すアルゴリズムに従ってスペクトル係数を保持する要素(例えば、配列「x_ac_dec[]」)に保存される。
続いて、コンテキスト「q」もまた、次の2−タプルについて更新される。このコンテキスト更新はまた、最後の2−タプルについても行われる必要がある点に留意されたい。このコンテキスト更新は、図5lに疑似プログラムコード表現を示す関数「arith_update_context()」によって行われる。
次に図5lを参照すると、関数「arith_update_context(i,a,b)」は、2−タプルの符号無しの復号および量子化されたスペクトル係数(またはスペクトル値)a,bを入力変数としてを受け取ることが理解される。加えて、関数「arith_update_context」はまた、復号すべき量子化されたスペクトル係数のインデックスi(例えば、周波数インデックス)も入力変数として受け取る。換言すれば、入力変数iは、例えば、絶対値が入力変数a,bによって定義されるスペクトル値のタプルのインデックスであり得る。配列「q[][]」のエントリ「q[1][i]」は、a+b+1に等しい値に設定され得ることが理解される。加えて、配列「q[][]」のエントリ「q[1][i]」の値は、16進値「0xF」に限定され得る。したがって、配列「q[][]」のエントリ「q[1][i]」は、周波数インデックスiを有するスペクトル値の現在復号中のタプル{a,b}の絶対値の和を計算し、当該の結果に1を加算することによって、取得される。
ここで、配列「q[][]」のエントリ「q[1][i]」は、追加のスペクトル値(またはスペクトル値のタプル)の次の復号に用いられるコンテキストのサブ領域を示すため、コンテキストサブ領域値であると考えられ得る点に留意されたい。
ここで、2つの現在復号中のスペクトル値(その符号付きバージョンは、配列「x_ac_dec[]」のエントリ「x_ac_dec[2i]」および「x_ac_dec[2i+1]」に格納されている)の絶対値aおよびbの加算は、当該復号中のスペクトル値のノルム(例えば、L1ノルム)の計算であると考えられ得る点に留意されたい。
複数の以前に復号されたスペクトル値によって形成されるベクトルのノルムを示すコンテキストサブ領域値(すなわち、配列「q[][]」のエントリ)は、特に有意であり、メモリ効率が高いということが分かっている。複数の以前に復号されたスペクトル値に基づいて計算されるこのようなノルムは、有意なコンテキスト情報をコンパクトな形式で含んでいるということが分かっている。スペクトル値の符号は、典型的には、コンテキストの選択に特に重要ではないということが分かっている。複数の以前に復号されたスペクトル値全体にわたってノルムを形成することにより、一部の詳細が破棄されるものの、典型的には、最も重要な情報が維持されるということも分かっている。さらに、現在の数値コンテキスト値を最大値に限定することは、典型的には、情報の深刻な損失をもたらさないということが分かっている。むしろ、所定の閾値の値よりも大きい上位スペクトル値に対して同じコンテキスト状態を使用することがより効率的であることが分かっている。したがって、コンテキストサブ領域値を限定することによって、メモリ効率がさらに向上する。さらに、コンテキストサブ領域値をある一定の最大値に限定することにより、例えば、図5cおよび図5dを参照して説明した、現在の数値コンテキスト値の特に簡単で計算効率の高い更新が可能となることが分かっている。コンテキストサブ領域値を比較的小さい値(例えば、15の値に)限定することにより、複数のコンテキストサブ領域値に基づくコンテキスト状態を、図5cおよび図5dを参照して示した効率的な形式で表すことができる。
さらに、コンテキストサブ領域値を1〜15の値に限定することにより、正確性とメモリ効率との特に良好な妥協が図られるということが分かっている。その理由は、このようなコンテキストサブ領域値の格納には4ビットで十分であるからである。
しかし、いくつかの他の実施の形態では、コンテキストサブ領域値は、単一の復号されたスペクトル値のみに基づく場合がある点に留意されたい。この場合、ノルムの形成は省略され得る。
関数「arith_update_context」の完了後、フレームの次の2−タプルは、iを1だけ増やし、上記に説明したのと同じ処理を関数「arith_get_context()」から再実行することによって復号される。
lg/2個の2−タプルが、フレームにおいて復号される場合、あるいは「ARITH_ESCAPE」によるストップ記号が出現すると、スペクトルの振幅の復号処理は終了され、符号の復号が開始される。
符号の復号に関する詳細については、符号の復号を参照符号314で示す図3を参照して既に述べた。
一旦、すべての符号無しの量子化されたスペクトル係数が復号されると、それに応じた符号が付加される。「x_ac_dec」のヌルでない量子化された値のそれぞれについて、1つのビットが読み出される。読み出されたビット値が0に等しい場合、量子化された値は正であり、何も行われず、符号付き値は、以前に復号された符号無し値に等しい。そうでない場合(すなわち、読み出された値が1に等しい場合)、復号された係数(またはスペクトル値)は負であり、符号無し値から2の補数が取られる。符号ビットは、低い周波数からより高い周波数へと読み出される。詳細については、図3および符号復号314に関する説明を参照されたい。
復号は、関数「arith_finish()」を呼び出すことによって終了する。残りのスペクトル係数は、0に設定される。それに応じて、各コンテキスト状態が更新される。
詳細については、関数「arith_finish()」の疑似プログラムコード表現を示す図5mを参照されたい。関数「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)の符号無しの値が完全に復号される時点において、次いで、コンテキストqが、次の2−タプルについて更新される。この更新はまた、現在の2−タプルが最後の2−タプルである場合にも行われる。いずれの更新も、図5oに疑似プログラムコード表現を示す関数「arith_update_context()」によって行われる。
次いで、iを1だけ増やし、関数arith_decode()を呼び出すことによって、フレームの次の2−タプルが復号される。フレームにおいてlg/2個の2−タプルが既に復号されている場合、あるいは、ストップ記号「ARITH_STOP」が出現した場合、関数「arith_finish()」が呼び出される。コンテキストは、次のフレームの配列(またはベクトル)「qs」に保存および格納される。関数「arith_save_context()」の疑似プログラムコードを図5pに示す。
一旦、すべての符号無しの量子化されたスペクトル係数が復号されると、次いで、符号が付加される。「qdec」の量子化されていない値のそれぞれについて、1つのビットが読み出される。読み出されたビット値が0に等しい場合、量子化された値は正であり、何も行われず、符号付き値は、以前に復号された符号無しの値に等しい。そうでない場合、復号された係数は負であり、符号無しの値から2の補数が取られる。符号付きビットは、低い周波数からより高い周波数へと読み出される。
11.11 復号処理についてのまとめ
以下に、復号処理について簡単にまとめる。詳細については、上記の記載ならびに図3,図4,図5a,図5c,図5e,図5g,図5j,図5k,図5lおよび図5mを参照されたい。量子化されたスペクトル係数「x_ac_dec[]」は、最も低い周波数係数から開始して、最も高い周波数係数へとノイズレス復号される。これらは、いわゆる2−タプル(a,b)において集合する2つの連続する係数a,bのグループによって復号される。
次いで、周波数領域の(すなわち、周波数領域モードの)復号された係数「x_ac_dec[]」は、配列「x_ac_quant[g][win][sfb][bin]」に格納される。ノイズレスコーディングコードワードの送信の順序は、これらが受信され、配列に格納された順に復号される場合、「bin」が増加の最も早いインデックスであり、「g」が増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa、そしてbの順である。「TCX」の(すなわち、変換符号化励起を用いたオーディオ復号の)復号された係数「x_ac_dec[]」は、配列「x_tcx_invquant[win][bin]」に格納され(例えば、直接)、ノイズレスコーディングコードワードの送信の順序は、これらが受信され、配列に格納された順に復号される場合、「bin」が増加の最も早いインデックスであり、「win」が増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa、そしてbの順である。
まず、フラグ「arith_reset_flag」は、コンテキストをリセットしなければならないか否かを判定する。フラグが真である場合、これは、関数「arith_map_context」において考慮される。
復号処理は、初期化段階から開始され、初期化段階では、q[1][]に格納された以前のフレームのコンテキスト要素を「q[0][]」にコピーおよびマッピングすることによりコンテキスト要素ベクトル「q」が更新される。「q」内のコンテキスト要素は、1つの2−タプルにつき4ビット格納される。詳細については、図5aの疑似プログラムコードを参照されたい。
ノイズレス復号部は、符号無しの量子化されたスペクトル係数の2−タプルを出力する。最初に、復号すべき2−タプルの周囲にある以前に復号されたスペクトル係数に基づいてコンテキスト状態cが計算される。したがって、状態は、2つの新しい2−タプルのみを考慮して、最後に復号された2−タプルのコンテキスト状態を用いて増加的に更新される。状態は、17ビットで復号され、関数「arith_get_context」によって戻される。セット関数「arith_get_context」の疑似プログラムコード表現を図5cに示す。
コンテキスト状態cは、最上位2ビット単位プレーンmの復号に使用される累積度数テーブルを決定する。対応する累積度数テーブルインデックス「pki」へのcからのマッピングは、関数「arith_get_pk()」によって行われる。関数「arith_get_pk()」の疑似プログラムコード表現を図5eに示す。
値mは、累積度数テーブル「arith_cf_m[pki][]」によって呼び出される関数「arith_decode()」を用いて復号され、ここで、「pki」は、「arith_get_pk()」によって戻されるインデックスに対応する。算術符号化部(および復号部)は、スケーリングによるタグ生成の方法を用いた整数実装である。図5gによる疑似プログラムコードは、使用アルゴリズムを示している。
復号された値mがエスケープ記号「ARITH_ESCAPE」である場合、変数「lev」および「esc_nb」は、1だけ増やされ、別の値mが復号される。この場合、「esc_nb」が同じ2−タプルによって以前に復号されかつ7までに限定されているエスケープ記号の数である値「c+esc_nb<<17」を用いて、関数「get_pk()」が再び入力引数として呼び出される。
一旦、値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−タプルについても行われる必要がある点に留意されたい。このコンテキスト更新は、図5lに疑似プログラムコード表現を示す関数「arith_update_context()」によって行われる。
次いで、フレームの次の2−タプルは、iを1だけ増やし、上記に説明したのと同じ処理を関数「arith_get_context()」から再実行することによって復号される。lg/2個の2−タプルがフレームにおいて復号される場合、あるいは、ストップ記号「ARITH_STOP」が出現した場合、スペクトルの振幅の復号処理は終了され、符号の復号が開始される。
復号は、関数「arith_finish()」を呼び出すことによって終了する。残りのスペクトル係数は、0に設定される。それに応じて、各コンテキスト状態が更新される。関数「arith_finish」の疑似プログラムコード表現を図5mに示す。
一旦、すべての符号無しの量子化されたスペクトル係数が復号されると、それに応じた符号が付加される。「x_ac_dec」のヌルでない量子化された値のそれぞれについて、1つのビットが読み出される。読み出されたビット値が0に等しい場合、量子化された値は正であり、何も行われず、符号付き値は、以前に復号された符号無しの値に等しい。そうでない場合、復号された係数は負であり、符号無しの値から2の補数が取られる。符号付きビットは、低い周波数からより高い周波数へと読み出される。
11.12 凡例
図5qは、図5a,図5c,図5e,図5f,図5g,図5j,図5k,図5lおよび図5mによるアルゴリズムに関する定義の凡例を示す。
図5rは、図5b,図5d,図5f,図5h,図5i,図5n,図5oおよび図5pによるアルゴリズムに関する定義の凡例を示す。
12. マッピングテーブル
本発明による実施の形態において、図5eまたは図5fによる関数「arith_get_pk()」ならびに図5g、図5hおよび図5iを参照して述べた関数「arith_decode()」の実行のために、特に有利なテーブル「ari_lookup_m」,「ari_hash_m」および「ari_cf_m」が使用される。しかし、本発明によるいくつかの実施の形態においては異なるテーブルが使用され得る点に留意されたい。
12.1 図22によるテーブル「ari_hash_m[600]」
図5eを参照して第1の実施の形態が説明され、図5fを参照して第2の実施の形態が説明された関数「arith_get_pk」によって用いられるテーブル「ari_hash_m」の特に有利な実施の内容を図22のテーブルに示す。図22のテーブルには、テーブル(または配列)「ari_hash_m[600]」の600個のエントリが列挙されている点に留意されたい。図22のテーブル表現は、要素を要素インデックス順に示し、したがって、第1の値「0x000000100UL」は、要素インデックス(テーブルインデックス)が0であるテーブルエントリ「ari_hash_m[0]」に対応し、最後の値「0x7ffffffff4fUL」は、要素インデックスまたはテーブルインデックスが599であるテーブルエントリ「ari_hash_m[599]」に対応する点にも留意されたい。ここで、「0x」は、テーブル「ari_hash_m[]」のテーブルエントリが16進法形式で表されることを示している点にもさらに留意されたい。さらに、ここで、接尾部「UL」は、テーブル「ari_hash_m[]」のテーブルエントリが符号無しの「長い」整数値(32ビットの精度を有する)で表される点に留意されたい。
さらに、図22によるテーブル「ari_hash_m[]」のテーブルエントリは、関数「arith_get_pk()」のテーブル検索506b,508b,510bを可能にするために、数値順に配置されている点に留意されたい。
テーブル「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」で示される一次元整数型のエントリインデックス(「要素インデックス」または「配列インデックス」または「テーブルインデックス」としても示される)によって参照される。合計600個のエントリを含むテーブル「ari_lookup_m」は、図5eまたは図5fによる関数「arith_get_pk」による使用によく適している点に留意されたい。図21によるテーブル「ari_lookup_m」は、図22によるテーブル「ari_hash_m」と協働するように適合されている点にも留意されたい。
テーブル「ari_lookup_m[600]」のエントリは、0〜599のテーブルインデックス「i」(例えば、「i_min」または「i_max」)の昇順で列挙されている点に留意されたい。用語「0x」は、テーブルエントリが16進法形式で記述されていることを示す。したがって、第1のテーブルエントリ「0x02」は、テーブルインデックスが0であるテーブルエントリ「ari_lookup_m[0]」に対応し、最後のテーブルエントリ「0x5E」は、テーブルインデックスが599であるテーブルエントリ「ari_lookup_m[599]」に対応する。
テーブル「ari_lookup_m[]」のエントリは、テーブル「arith_hash_m[]」の隣接するエントリによって定義される間隔に対応付けられている点にも留意されたい。したがって、テーブル「ari_lookup_m」のエントリは、数値コンテキスト値の間隔に対応付けられたマッピング規則インデックス値を示し、当該間隔は、テーブル「arith_hash_m」のエントリによって定義される。
12.3. 図23によるテーブル「ari_cf_m[96][17]」
図23は、96個の累積度数テーブル(またはサブテーブル)「ari_cf_m[pki][17]」の集合を示し、これらのうち1つが、例えば、関数「arith_decode()」の実行、すなわち、最上位ビットプレーン値の復号のために、オーディオ符号化器100,700またはオーディオ復号器200,800によって選択される。図23に示す、96個の累積度数テーブル(またはサブテーブル)のうちの選択された1つは、関数「arith_decode()」の実行においてテーブル「cum_freq[]」の関数を取る。
図23から理解されるように、各サブブロックは、17個のエントリを有する累積度数テーブルを示す。例えば、第1のサブブロック2310は、「pki=0」についての累積度数テーブルの17個のエントリを表す。第2のサブブロック2312は、「pki=1」の場合の累積度数テーブルの17個のエントリを表す。最後に、96番目のサブブロック2396は、「pki=95」の場合の累積度数テーブルの17個のエントリを表す。したがって、図23は、「pki=0」〜「pki=95」である場合の96個の異なる累積度数テーブル(またはサブテーブル)を実質上表し、96個の累積度数テーブルはそれぞれ、サブブロック(中括弧で囲まれた)によって表され、当該累積度数テーブルのそれぞれが17個のエントリを含む。
1つのサブブロック(例えば、サブブロック2310,2312,またはサブブロック2396)内において、最初の値は、累積度数テーブルの第1のエントリ(配列インデックスまたはテーブルインデックスが0である)を示し、最後の値は、累積度数テーブルの最後のエントリ(配列インデックスまたはテーブルインデックスが16である)を示す。
したがって、図23のテーブル表現の各サブブロック2310,2312,2396は、図5gによる関数「arith_decode」または図5hおよび5iによる関数「arith_decode」によって使用される累積度数テーブルのエントリを表す。関数「arith_decode」の入力変数「cum_freq[]」は、96個の累積度数テーブル(テーブル「arith_cf_m」の17個のエントリの個々のサブブロックによって表される)のうちどのテーブルが現在のスペクトル係数の復号に使用されるべきかを示す。
12.4 図24によるテーブル「ari_cf_r[]」
図24は、テーブル「ari_cf_r[]」の内容を示す。
当該テーブルの4つのエントリは図24に示されている。ただし、他の実施の形態において、テーブル「ari_cf_r」は最終的に異なり得る点に留意されたい。
13. 性能評価および利点
上述の通り、本発明による実施の形態は、計算の複雑性と、メモリ要件と、コーディング効率との改良されたトレードオフを実現するために、上述したように、更新された関数(またはアルゴリズム)およびテーブルの更新された集合を使用する。
概して、本発明による実施の形態は、改良されたスペクトルノイズレスコーディングを実現する。本発明による実施の形態では、USAC(音声オーディオ統合符号化)におけるスペクトルノイズレスコーディングの向上について記載される。
本発明による実施の形態は、MPEGのインプットペーパーm16912およびm17002において提案された方式に基づいた、スペクトル係数の改良されたスペクトルノイズレスコーディングのコーディング効率のための最新の提案を実現する。両方の提案が評価され、潜在的な欠陥は解消され、長所が組み合わされた。
m16912およびm17002においてと同様、最終的に得られた提案は、USACワーキングドラフト5(統合音声オーディオコーディングの規格案)と同じく、算術コーディング方式に基づいた元来のコンテキストに基づくものであるが、コーディング効率を維持しながら計算の複雑性を高めることなくメモリ要件(ランダムアクセスメモリ(RAM)および読取り専用メモリ(ROM))を大きく低減する。加えて、USAC規格案のワーキングドラフト3、およびUSAC規格案のワーキングドラフト5によるビットストリームの無損失型トランスコーディングが可能であることが証明された。本発明による実施の形態は、USAC規格案のワーキングドラフト5において使用されるスペクトルノイズレスコーディング方式の代わりをなすことを目的とする。
本明細書に記載される算術コーディング方式は、参照モデル0(RM0)またはUSAC規格案のワーキングドラフト5(WD)におけるものと同様の方式に基づいている。周波数または時間におけるスペクトル係数により、コンテキストがモデル化される。このコンテキストは、算術符号化部のための累積度数テーブルの選択に使用される。ワーキングドラフト5(WD)と比較して、コンテキストのモデル化はさらに改良され、記号確率を保持するテーブルは再調整された。異なる確率モデルの数は、32個から96個へと増やした。
本発明による実施の形態は、テーブルサイズ(データROM需要)が長さ32ビットまたは6072バイトの1518ワード(WD5:16,894.5ワードまたは67,578バイト)に縮小される。静的RAM需要は、1つのコアコーダチャネルにつき、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))が必要とされる。加えて、次のフレームの状態を格納するために、1つのコアコーダチャネルにつき666ワード(2664バイト)の静的RAMが必要とされる。図14bのテーブル表現は、USAC WD4の算術コーディング方式において使用されるテーブルを示す。
ここで、ノイズレスコーディングに関し、USAC規格案のワーキングドラフト4および5は同様である点に留意されたい。両者は同じノイズレスコーダを使用する。
USACのWD5の完全な復号器の合計メモリ需要は、プログラムコードを含まないデータROMの場合で37000ワード(148000バイト)、静的RAMの場合で10000〜17000ワードであると推測される。ノイズレスコーダのテーブルは、合計データROM需要の約45%を消費することは明らかに理解される。最も大きい単独のテーブルは、既に4096ワード(16384バイト)を消費している。
テーブルのすべての組み合わせおよび単独の大規模テーブルのサイズは、いずれも、民生用携帯機器において使用される固定点プロセッサによって提供される、8〜32Kbyteの典型的な範囲にある典型的なキャッシュサイズを上回っていることが分かっている(例えば、ARM9e,TIC64XX等)。これはつまり、テーブルの集合は、データへの高速ランダムアクセスを可能にする高速データRAMにおそらく格納することができないということを意味する。これにより、復号処理全体が低速化する。
さらに、HE−AACといった現在奏功しているオーディオコーディング技術は、ほとんどの携帯機器で実現可能であると証明されていることが分かっている。HE−AACは、テーブルサイズが995ワードのハフマンエントロピーコーディング方式を使用する。詳細については、ISO/IECJTC1/SC29/WG11 N2005、MPEG98、February 1998,San Jose、“Revised Report on Complexity of MPEG−2 AAC2”を参照されたい。
第90回MPEG会議において、メモリ要件の低減およびノイズレスコーディング方式の符号化効率の向上を目的とする2つの提案がMPEGインプットペーパーm16912およびm17002においてなされた。両提案を分析することにより、以下の結論を導き出すことができた。
・コードワード次元を減少させることにより、メモリ需要の大幅な低減が可能である。MPEGのインプットドキュメントm17002において示されるように、4−タプルから1−タプルへと次元を減少させることにより、コーディング効率を損なうことなく、メモリ需要を16984.5から900ワードへと低減することができた;
・LSBコーディングに均一な確率分布を用いる代わりに非均一な確率分布のコードブックを用いることにより、さらなる冗長性を解消することができた。
評価の過程において、4−タプル方式から1−タプルコーディング方式への移行は、計算の複雑性に大きな影響を及ぼすことが分かった。つまり、コーディング次元の減少により、コーディングすべき記号の数が同じ倍率だけ増加する。これは、つまり、4−タプルから1−タプルへの減少のために、コンテキストの決定、ハッシュテーブルへのアクセスおよび記号の復号に必要な演算を以前に比べて4倍実行しなければならないことを意味する。このことは、コンテキスト決定のためのより複雑なアルゴリズムとともに、計算の複雑性を2.5倍またはx.xxPCU倍増加させることにつながる。
以下に、本発明の実施の形態による、提案される新たな方式について簡単に説明する。
メモリのフットプリントおよび計算の複雑性の問題を克服するため、ワーキングドラフト5(WD5)にあるような方式に取って替わる改良されたノイズレスコーディング方式が提案される。開発における主な重点は、圧縮効率を維持し、計算の複雑性を向上させながら、メモリ需要を低減することに置かれた。より詳細には、圧縮性能の多次元複雑性空間と、複雑性と、メモリ要件との良好な(またはさらには最も優れた)トレードオフを達成することを目的とした。
この新規なコーディング方式の提案では、WD5ノイズレス符号化器の主要な特徴、すなわち、コンテキスト適合を流用する。コンテキストは、WD5においてと同様、過去および現在のフレーム(フレームは、オーディオコンテンツの部分として考えら得る)の両方から得られる、以前に復号されたスペクトル係数を用いて導出される。しかし、スペクトル係数は、2つの係数を互いに組み合わせて2−タプルを形成することによりコーディングされることになる。別の違いは、スペクトル係数は、符号、より上位または最上位のビット(MSB)および下位または最下位のビット(LSB)という3つの部分に分割されるようになる点にある。符号は、最上位ビット(またはより上位のビット)および、存在する場合は、ビットの残り(または下位のビット)という2つの部分にさらに分割される大きさから個別にコーディングされる。2つの要素の大きさが3より低いか3に等しい2−タプルは、MSBコーディングによって直接コーディングされる。そうでない場合、追加のビットプレーンを通知するために、エスケープコードワードが最初に送信される。ベースバージョンにおいて、欠落している情報(LSBおよび符号)は、いずれも、均一な確率分布を用いてコーディングされる。代替的に、異なる確率分布が使用され得る。
テーブルサイズの縮小は、以下の理由により依然として可能である:
・17個の記号の確率のみを格納するだけでよい:{[0;+3],[0;+3]}+ESC記号;
・グループ化テーブル(egroups,dgroups,dgvectors)を格納する必要がない;
・ハッシュテーブルのサイズは、適切な訓練によって縮小することができる。
以下に、MSBコーディングに関するいくつかの詳細について説明する。すでに述べたように、USAC規格案のWD5と、第90回MPEG会議において提出された現在の提案との主な違いの1つは、記号の次元であると考えられる。USAC規格案のWD5においては、4−タプルが、コンテキスト生成およびノイズレスコーディングのために考慮される。第90回MPEG会議において提出された提案においては、ROM要件を低減するために1−タプルが使用された。開発の過程で、計算の複雑性を高めることなくROM要件を低減させるには、2−タプルが最良の妥協策であることが分かった。コンテキストのイノベーションのために4つの4−タプルを考慮する代わりに、4つの2−タプルが考慮されるようになる。図15aに示すように、3つの2−タプルは過去のフレーム(オーディオコンテンツの以前の部分としても示される)に由来し、1つは現在のフレーム(オーディオコンテンツの現在の部分としても示される)に由来する。
テーブルサイズの縮小は、3つの主要な要因によるものである。第1には、17個の記号の確率のみを格納するだけでよい(すなわち、{[0;+3],[0;+3]}+ESC記号)。グループ化テーブル(すなわち、egroups,dgroupsおよびdgvectors)は必要とされなくなった。最後に、ハッシュテーブルのサイズは、適切な訓練を行うことにって縮小された。
次元は4から2に低減されたが、複雑性は、USAC規格案のWD5における範囲に維持された。これは、コンテキスト生成およびハッシュテーブルアクセスの両方を簡素化することによって行われた。
コーディング性能が影響を受けず、さらには若干改良されるように異なる簡素化および最適化が行われた。これは、確率モデルの数を32から96に増やすことによって主に行われた。
以下に、LSBコーディングに関するいくつかの詳細について説明する。いくつかの実施の形態において、LSBは、均一な確率分布を用いてコーディングされる。USAC規格案のWD5と比較して、LSBは、4−タプルではなく2−タプル内で考慮されるようになる。
以下に、符号コーディングに関するいくつかの詳細について説明する。符号は、複雑性の低減の目的で算術コアコーダを用いることなく、コーディングされる。符号は、対応する大きさがヌルでない場合、1ビットのみで送信される。0は正の値を意味し、1は負の値を意味する。
以下に、メモリ需要に関するいくつかの詳細について説明する。提案される新規な方式の合計ROM需要は、最大で新規1522.5ワード(6090バイト)である。詳細については、提案されるコーディング方式において使用されるテーブルを示す図15bのテーブルを参照されたい。USAC規格案のWD5におけるノイズレスコーディング方式のROM需要と比較して、ROM需要は、少なくとも15462ワード(61848バイト)低減される。HE−AACにおけるAACハフマン復号器に必要なメモリ要件(995ワードまたは3980バイト)の大きさと同程度となる。詳細については、ISO/IECJTC1/SC29/WG11 N2005,MPEG98,February 1998,San Jose,“Revised Report on Complexity of MPEG−2 AAC2”、および図16aを参照されたい。これにより、ノイズレスコーダの総ROM需要は92%低減され、完全なUSAC復号器のそれは、約37000ワードから約21500ワードに、すなわち、41%以上低減される。詳細については、図16aおよび図16bを再度参照されたい。図16aは、提案されるノイズレスコーディング方式のROM需要およびUSAC規格案のWD4によるノイズレスコーディング方式のROM需要を示し、図16bは、提案される方式およびUSAC規格案のWD4によるUSAC復号器の合計データROM需要を示す。
さらに、次のフレーム(静的ROM)におけるコンテキスト導出に必要とされる情報も低減される。USAC規格案のWD5において、分解能が1つの4−タプルにつき10ビットであるグループインデックスに加えて、典型的には分解能が16ビットである係数の完全な集合(最大1152個の係数)を格納する必要があった。これは、1つのコアコーダチャネルにつき666ワード(2664バイト)(完全なUSACのWD4復号器:約10000〜17000ワード)となる。新規な方式により、永続的な情報は、1つのスペクトル係数につきわずか2ビットに低減され、1つのコアコーダチャネルにつき合計で72ワード(288バイト)となる。静的メモリの需要を594ワード(2376バイト)低減することができる。
以下に、コーディング効率の考えられる増加に関する詳細のいくつかについて説明する。新規な提案による実施の形態の復号効率をUSAC規格案のワーキングドラフト3(WD3)およびWD5による参照品質ビットストリームと比較した。比較は、参照ソフトウェア復号器に基づくトランスコーダによって行った。USAC規格案のWD3またはWD5によるノイズレスコーディングと提案されるコーディング方式とのこの比較の詳細については、WD3/5のノイズレスコーディングと提案されるコーディング方式との比較に関するテスト構成の模式図を示す図17を参照されたい。
また、本発明による実施の形態におけるメモリ需要をUSAC規格案のWD3(またはWD5)による実施の形態と比較した。
コーディング効率は、維持されただけでなく若干向上した。詳細については、WD3算術コーダ(またはWD3算術コーダを用いたUSACオーディオコーダ)および本発明の実施の形態によるオーディオコーダ(例えば、USACオーディオコーダ)によって生成される平均ビットレートのテーブル表現を示す図18を参照されたい。
動作モードごとの平均ビットレートの詳細は、図18のテーブルにおいてみられる。
さらに、図19は、WD3算術コーダ(またはWD3算術コーダを用いたオーディオコーダ)および本発明の実施の形態によるオーディオコーダの最小ビットリザーバレベルおよび最大ビットリザーバレベルのテーブル表現を示す。
以下に、計算の複雑性に関するいくつかの詳細について説明する。算術コーディングの次元数の低減は、通常、計算の複雑性の増加につながる。実際、次元を2分の1に低減すると、算術コーダのルーチンの呼び出しは2倍になる。
しかし、複雑性のこのような増加は、本発明の実施の形態による、提案される新規なコーディング方式において導入されるいくつかの最適化によって制限することができることが分かっている。本発明によるいくつかの実施の形態において、コンテキスト生成は大幅に簡素化された。それぞれの2−タプルについて、コンテキストは、最後に生成されたコンテキストから増加的に更新することができる。確率は、16ビットではなく14ビットで格納されるようになり、これによって、復号処理時の64ビット演算を回避することができる。さらに、本発明によるいくつかの実施の形態において、確率モデルマッピングは著しく最適化された。最悪のケースは大幅に低減され、95回ではなく10回の繰返しに制限される。
その結果、提案されるノイズレスコーディング方式の計算の複雑性は、WD5におけるものと同じ範囲に抑えられた。ノイズレスコーディングの異なるバージョンによって「ペンと紙」推定を行い、これは図20のテーブルに記録されている。同テーブルは、新規なコーディング方式がWD5算術コーダよりもわずか13%だけ複雑性が低いことを示している。
上記を要約すると、本発明による実施の形態は、計算の複雑性と、メモリ要件と、コーディング効率との特に良好なトレードオフを提供することが理解される。
14.ビットストリーム構文
14.1 スペクトルノイズレスコーダのペイロード
以下に、スペクトルノイズレスコーダのペイロードに関するいくつかの詳細について説明する。いくつかの実施の形態において、例えば、いわゆる「線形予測領域」コーディングモードおよび「周波数領域」コーディングモードといった複数の異なるコーディングモードが存在する。線形予測領域コーディングモードにおいては、オーディオ信号の線形予測分析に基づいてノイズ整形が行われ、ノイズ整形された信号が周波数領域において符号化される。周波数領域コーディングモードにおいては、心理音響分析に基づいてノイズ整形が行われ、オーディオコンテンツのノイズ整形されたバージョンが周波数領域において符号化される。
「線形予測領域」コーディングされた信号および「周波数領域」コーディングされた信号の両方からのスペクトル係数は、スカラー量子化され、次いで、適合的コンテキスト依存型算術コーディングによってノイズレスコーディングされる。量子化された係数は、最も低い周波数から最も高い周波数へ送信される前に、2−タプルに集められる。それぞれの2−タプルは、符号s、最上位2ビット単位プレーンmおよび残りの1つ以上の下位ビットプレーンr(存在する場合)に分割される。値mは、近接スペクトル係数によって定義されるコンテキストに応じてコーディングされる。換言すれば、mは、係数近傍に応じてコーディングされる。残りの下位ビットプレーンrは、コンテキストを考慮せず、エントロピーコーディングされる。mおよびrを用いることにより、これらのスペクトル係数の振幅を復号器側で復元することができる。すべてのヌルでない記号について、符号sは、算術コーダの外部において、1ビットでコーディングされる。換言すれば、値mおよびrは、算術コーダの記号を形成する。最後に、符号sは、算術コーダの外部において、1つのヌルでない量子化された係数につき1ビットでコーディングされる。
算術コーディングの詳細な手順が本明細書において示される。
14.2 構文要素
以下に、算術符号化されたスペクトル情報を運ぶビットストリームのビットストリーム構文について図6a〜図6jを参照して説明する。
図6aは、いわゆるUSAC生データブロック(「usac_raw_data_block()」)の構文表現を示す。
USAC生データブロックは、1つ以上の単一チャネル要素(「single_channel_element()」)および/または1つ以上のチャネル対要素(「channel_pair_element()」)を含む。
ここで図6bを参照すると、単一チャネル要素の構文が示されている。単一チャネル要素は、コアモードに応じて、線形予測領域チャネルストリーム(「lpd_channel_stream()」)または周波数領域チャネルストリーム(「fd_channel_stream()」)を含む。
図6cは、チャネル対要素の構文表現を示す。1つのチャネル対要素は、コアモード情報(「core_mode0」,「core_mode1」)を含む。加えて、チャネル対要素は、構成情報「ics_info()」を含み得る。さらに、コアモード情報によっては、チャネル対要素は、第1のチャネルに対応付けられた線形予測領域チャネルストリームまたは周波数領域チャネルストリームを含み、チャネル対要素は、第2のチャネルに対応付けられた線形予測領域チャネルストリームまたは周波数領域チャネルストリームも含む。
図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を参照して説明する。算術コーディングされたデータブロック内のデータ表現は、符号化対象のスペクトル値の数lgと、算術リセットフラグの状態と、コンテキスト、すなわち、以前に符号化されたスペクトル値とに依存する。
スペクトル値の現在の集合(例えば、2−タプル)の符号化のためのコンテキストは、参照符号660にて示されるコンテキスト決定アルゴリズムに従って決定される。コンテキスト決定アルゴリズムに関する詳細については、図5aおよび図5bを参照して上記で説明した。算術符号化されたデータブロックは、コードワードのlg/2個の集合を含み、コードワードの集合のそれぞれは、複数(例えば、2−タプル)のスペクトル値を表す。コードワードの1つの集合は、スペクトル値のタプルの最上位ビットプレーン値mを1〜20ビットで表す算術コードワード「acod_m[pki][m]」を含む。加えて、コードワードの集合は、スペクトル値のタプルが、正確な表現のために最上位ビットプレーンよりも多くのビットプレーンを必要とする場合、1つ以上のコードワード「acod_r[r]」を含む。コードワード「acod_r[r]」は、下位ビットプレーンを1〜14ビットで表す。
しかし、スペクトル値の適切な表現のために1つ以上の下位ビットプレーンが必要とされる場合(最上位ビットプレーンに加えて)、1つ以上の算術エスケープコードワード(「ARITH_ESCAPE」)を使用することによってその旨が通知される。したがって、1つのスペクトル値について、いくつのビットプレーン(最上位ビットプレーンおよび、場合によっては、1つ以上の追加の下位ビットプレーン)が必要であるかが判定されると概して言うことができる。1つ以上の下位ビットプレーンが必要である場合、累積度数テーブルインデックスが変数「pki」によって得られる現在選択されている累積度数テーブルに従って符号化された、1つ以上の算術エスケープコードワード「acod_m[pki][ARITH_ESCAPE]」によってその旨が通知される。加えて、参照符号664,662においてみられるように、1つ以上の算術エスケープコードワードがビットストリームに含まれる場合、コンテキストは適合される。1つ以上の算術エスケープコードワードに続いて、参照符号663において示されるように算術コードワード「acod_m[pki][m]」がビットストリームに含められ、ここで、「pki」は、現在有効な確率モデルインデックス(算術エスケープコードワードを含めることによって生じたコンテキスト適合を考慮して)を指定し、mは、符号化または復号対象のスペクトル値の最上位ビットプレーン値(mは、「ARITH_ESCAPE」コードワードとは異なる)を指定する。
上述の通り、下位ビットプレーンが存在すると、それぞれが第1のスペクトル値の最下位ビットプレーンの1ビットを表しかつ第2のスペクトル値の最下位ビットプレーンの1ビットも表す、1つ以上のコードワード「acod_r[r]」が存在することになる。当該1つ以上のコードワード「acod_r[r]」は、例えば、一定でありかつコンテキスト独立型であり得る対応する累積度数テーブルに従って符号化される。しかし、1つ以上のコードワード「acod_r[r]」の復号のための累積度数テーブルを選択するための異なる機構が考えられる。
加えて、コンテキストは、参照符号668において示されるように、スペクトル値のタプルのそれぞれを符号化した後に更新され、したがって、スペクトル値の2つの後のタプルを符号化および復号するためのコンテキストは、典型的には異なる点に留意されたい。
図6iは、定義および算術符号化されたデータブロックの構文を定義するヘルプ要素の凡例を示す。
さらに、算術データ「arith_data()」の別の構文が図6hに示され、定義およびヘルプ要素の対応する凡例が図6jに示される。
上記を要約すると、オーディオ符号化器100によって提供され、オーディオ復号器200によって評価され得るビットストリームのフォーマットが説明された。算術符号化されたスペクトル値のビットストリームは、上述の復号アルゴリズムに適合するように符号化される。
加えて、符号化は復号の逆演算であるため、符号化器は、上述のテーブルを用いたテーブル索引(復号器によって行われるテーブル索引とほぼ逆である)を行うと概して仮定することができる点に概して留意されたい。一般に、復号アルゴリズムおよび/または所望のビットストリーム構文を理解する当業者であれば、ビットストリーム構文において定義されかつ算術復号部によって要求されるデータを提供する算術符号化部を容易に設計することができるであろうと言うことができる。
さらに、オーディオ復号器は、復号が符号化に適合されるようにオーディオ符号化器と同じコンテキストを使用することが典型的には望ましいため、現在の数値コンテキスト値を決定し、マッピング規則インデックス値を導出するための機構は、オーディオ符号化器とオーディオ復号器とにおいて同一であり得る点に留意されたい。
15. 実施変形例
いくつかの態様を装置との関連で説明したが、これらの態様は対応する方法も示していることは明らかであり、方法においては、ブロックまたはデバイスは、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップとの関連で説明した態様もまた、対応するブロックもしくは項目または対応する装置の特徴を示すものである。例えば、マイクロプロセッサ、プログラム可能なコンピュータ、または電子回路といったハードウェア装置によって(またはこれを用いて)、方法ステップの一部またはすべてを実行してもよい。いくつかの実施の形態では、最も重要な方法ステップのうち任意の1つ以上をこのような装置によって実行してもよい。
本発明の符合化されたオーディオ信号は、デジタル記憶媒体に格納することができ、または、例えば、無線伝送媒体またはインターネットのような有線伝送媒体などの伝送媒体上に送信することができる。
特定の実施要件によっては、本発明の実施の形態は、ハードウェアにおいて、またはソフトウェアにおいて実施されることができる。実施は、電子的に読取可能な制御信号を格納したデジタル記憶媒体、例えば、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリを用いて実行することができ、これらは、各方法が実行されるようにプログラム可能なコンピュータシステムと協働する(または協働することができる)。したがって、デジタル記憶媒体は、コンピュータ可読であってもよい。
本発明によるいくつかの実施の形態は、本明細書に記載される方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読取り可能な制御信号を有するデータキャリアを含む。
通常、本発明の実施の形態は、プログラムコードを有するコンピュータプログラム製品として実現することができ、コンピュータプログラム製品がコンピュータで実行されたときに、プログラムコードが方法のうちの1つを実行するために動作する。プログラムコードは、例えば、機械可読キャリアに格納され得る。
他の実施の形態は、本明細書に記載される、機械可読キャリアに格納された方法のうちの1つを実行するためのコンピュータプログラムを含む。
したがって、換言すれば、本発明の方法の実施の形態は、コンピュータプログラムがコンピュータ上で実行されたときに、本明細書に記載される方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
したがって、本発明の方法のさらなる実施の形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムが記録されたデータキャリア(すなわちデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、または記録された媒体は、典型的には、有形および/または非過渡的である。
したがって、本発明の方法のさらなる実施の形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、例えばインターネットなどのデータ通信接続を介して転送されるように構成することができる。
さらなる実施の形態は、本明細書で説明された方法の1つを実行するように構成されるかあるいは適合された、例えばコンピュータまたはプログラム可能論理デバイスといった処理手段を含む。
さらなる実施の形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムを搭載したコンピュータを含む。
本発明によるさらなる実施の形態は、本明細書で説明された方法のうちの1つを実行するためのコンピュータプログラムを受信機に転送する(例えば、電子的または光学的に)ように構成された装置またはシステムを含む。受信機は、例えば、コンピュータ、携帯機器、メモリデバイス等であってもよい。この装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを備えていてもよい。
いくつかの実施の形態において、プログラム可能論理デバイス(例えばフィールドプログラマブルゲートアレイ)を用いて、本明細書に記載される方法の機能のいくつかまたはすべてを実行してもよい。いくつかの実施の形態では、フィールドプログラマブルゲートアレイは、本明細書に記載される方法のうちの1つを実行するために、マイクロプロセッサと協働してもよい。通常、上記方法は、好ましくは、いかなるハードウェア装置によっても実行される。
上述の実施の形態は、本発明の原理を説明するためものにすぎず、本明細書に記載される構成および詳細事項の修正および変更は、他の当業者にとって明らかであるものと理解される。したがって、本発明は、添付の特許クレームの範囲のみによって限定されるものであって、本明細書に記載の実施の形態の記載および説明によって示される具体的な詳細事項によって限定されるものではない。
16. 結論
結論として、本発明による実施の形態は、以下に示す態様のうちの1つ以上を含み、当該態様は個別に使用されても、組み合わせて使用されてもよい。
a)コンテキスト状態ハッシュ機構
本発明の一態様によると、ハッシュテーブルにおける状態は、上位状態およびグループ境界として考慮される。これにより、必要とされるテーブルのサイズが大幅に縮小される。
b).増加的なコンテキスト更新
一態様によると、本発明によるいくつかの実施の形態は、コンテキストを更新するための計算効率の高い方法を含む。いくつかの実施の形態では、現在の数値コンテキスト値が以前の数値コンテキスト値から導出される、増加的なコンテキスト更新が用いられる。
c).コンテキスト導出
本発明の一態様によると、2つのスペクトル絶対値の和の使用は、切り捨ての結合である。これは、スペクトル係数の利得ベクトル量子化の一種である(従来の形状−利得ベクトル量子化ではなく)。最も有意な情報を近傍から運びながら、コンテキスト順序を限定することを目的とするものである。
本発明による実施の形態において適用されるいくつかの他の技術が、未公開特許出願PCT EP2101/065725、PCT EP2010/065726およびPCT EP 2010/065727に記載されている。さらに、本発明によるいくつかの実施の形態において、ストップ記号が使用される。さらに、いくつかの実施の形態において、符号無しの値のみがコンテキストのために考慮される。
ただし、上記未公開国際特許出願は、本発明によるいくつかの実施の形態においてもなお使用されている態様を開示している。
例えば、ゼロ領域の特定が本発明のいくつかの実施の形態で使用されている。したがって、いわゆる「小さい値のフラグ」が設定される(例えば、現在の数値コンテキスト値cのビット16)。
いくつかの実施の形態において、領域依存型コンテキスト計算が使用され得る。しかし、他の実施の形態において、複雑性およびテーブルのサイズを適度に小さくしておくために、領域依存型コンテキスト計算は省略され得る。
さらに、ハッシュ関数を用いたコンテキストハッシングは、本発明の1つの重要な態様である。コンテキストハッシングは、上記の未公開国際特許出願に記載される2テーブル概念に基づくものであり得る。ただし、いくつかの実施の形態においては、計算効率を高めるために、コンテキストハッシングの特定の適合が使用され得る。しかしながら、本発明によるいくつかの他の実施の形態において、上記の未公開国際特許出願に記載されるコンテキストハッシングが使用され得る。
さらに、増加的コンテキストハッシングは、むしろ、簡素かつ計算効率が高い点に留意されたい。また、本発明のいくつかの実施の形態において使用される値の符号からのコンテキストの独立性は、コンテキストの簡素化を助け、これにより、メモリ要件が適度に低く抑えられる。
本発明のいくつかの実施の形態において、2つのスペクトル値の和を用いたコンテキスト導出とコンテキスト限定とが用いられる。これら2つの態様は組み合わせることができる。いずれも、最も有意な情報を近傍から運ぶことによってコンテキスト順序を限定することを目的としている。
いくつかの実施の形態において、複数のゼロ値のグループの特定と同様であり得る小さい値のフラグが使用される。
本発明によるいくつかの実施の形態において、演算ストップ機構が使用される。この概念は、同等の機能を有するJPEGにおける記号「end−of−block」の使用に類似している。しかし、本発明のいくつかの実施の形態において、記号(「ARITH_STOP」)は、エントロピーコーダに明示的には含まれていない。代わりに、以前に出現し得なかった既存の記号の組み合わせ、すなわち、「ESC+0」が使用される。換言すれば、オーディオ復号器は、数値を表現するために通常は使用されない既存の記号の組み合わせを検出し、既存の記号のそのような組み合わせの出現を演算ストップ記号条件として解釈するように構成されている。
本発明による実施の形態は、2テーブルコンテキストハッシング機構を用いる。
さらに要約すると、本発明によるいくつかの実施の形態は、以下の4つの主要な態様のうちの1つ以上を含み得る。
・ゼロ領域または小振幅領域のいずれかを近傍において検出するための拡張されたコンテキスト;
・コンテキストハッシング;
・コンテキスト状態の生成:コンテキスト状態の増加的な更新;および
・コンテキストの導出:振幅の合計および限定を含むコンテキスト値の特定の量子化。
さらに結論すると、本発明による実施の形態の一態様は、増加的なコンテキスト更新にある。本発明による実施の形態は、コンテキストの更新のための効率的な概念を含み、これにより、ワーキングドラフトの(例えば、ワーキングドラフト5の)大量の計算が回避される。むしろ、いくつかの実施の形態においては、簡素なシフト演算および論理演算が使用される。簡素なコンテキスト更新により、コンテキストの計算が大幅に促進される。
いくつかの実施の形態において、コンテキストは、値(例えば、復号されたスペクトル値)の符号から独立している。値の符号からのコンテキストのこの独立性により、コンテキスト変数の複雑性が低減される。この概念は、コンテキストにおける符号の無視は、コーディング効率の重大な劣化をもたらさないという知見に基づいている。
本発明の一態様によると、コンテキストは、2つのスペクトル値の和を用いて導出される。したがって、コンテキストの格納のためのメモリ要件が大幅に低減される。したがって、2つのスペクトル値の和を表すコンテキスト値を使用することは、場合によっては利点であると考えられ得る。
また、コンテキストの限定は、場合によっては著しい改良をもたらす。2つのスペクトル値の和を用いたコンテキストの導出に加えて、いくつかの実施の形態において、コンテキスト配列「q」のエントリが最大値「0xF」に限定され、これによって、メモリ要件が限定される。コンテキスト配列「q」の値のこのような限定により、いくつかの利点がもたらされる。
いくつかの実施の形態において、いわゆる「小さい値のフラグ」が使用される。コンテキスト変数c(現在の数値コンテキスト値としても示される)を取得するために、いくつかのエントリ「q[1][i−3]」〜「q[1][i−1]」の値が非常に小さい場合、フラグが設定される。したがって、コンテキストの計算を高い効率で行うことができる。特に有意なコンテキスト値(例えば、現在の数値コンテキスト値)を取得することができる。
いくつかの実施の形態において、演算ストップ機構が使用される。「ARITH_STOP」機構により、ゼロ値だけが残されている場合に、算術符号化または復号を効率的に停止することができる。したがって、複雑性に関する犠牲を適度なものとしながらコーディング効率を改良することができる。
本発明の一態様によると、2テーブルコンテキストハッシング機構が使用される。コンテキストのマッピングは、テーブル「ari_hash_m」を評価する間隔−分割アルゴリズムをそれに続くテーブル「ari_lookup_m」のルックアップテーブルの評価と組み合わせて用いて行われる。このアルゴリズムは、WD3のアルゴリズムよりも効率的である。
以下に、いくつかのさらなる詳細について述べる。
ここで、テーブル「arith_hash_m[600]」および「arith_lookup_m[600]」は2つの別個のテーブルである点に留意されたい。第1のテーブルは、単一のコンテキストインデックス(例えば、数値コンテキスト値)を確率モデルインデックス(例えば、マッピング規則インデックス値)にマッピングするために用いられ、第2のテーブルは、「arith_hash_m[]」においてコンテキストインデックスによって区切られた連続するコンテキストのグループを単一の確率モデルにマッピングするために用いられる。
テーブル「arith_cf_msb[96][16]」は、次元は若干異なるものの、テーブル「ari_cf_m[96][17]」の代わりに使用され得る点にさらに留意されたい。確率モデルの17番目のは常にゼロであるため、「ari_cf_m[][]」および「ari_cf_msb[][]」は、同じテーブルを参照し得る。これは、テーブルを格納するために必要とされるスペースを計算する際に考慮されない場合がある。
上記を要約すると、本発明によるいくつかの実施の形態は、MPEGのUSACワーキングドラフトにおいて(例えば、MPEGのUSACワーキングドラフト5において)修正をもたらす、提案された新規なノイズレスコーディング(符号化または復号)を提供する。当該修正は、添付の図面およびさらに関連する説明において見られる。
終わりに、変数、配列、関数などの名称における接頭語「ari」および接頭語「arith」は、同義で用いられている点に留意されたい。

Claims (18)

  1. 復号されたオーディオ情報(212;812)を符号化されたオーディオ情報(210;810)に基づいて提供するためのオーディオ復号器(200;800)であって、
    複数の復号されたスペクトル値(232;822)を、前記符号化されたオーディオ情報(210;810)に含まれる前記スペクトル値の算術符号化された表現(222;821)に基づいて提供するための算術復号部(230;820)と、
    前記復号されたオーディオ情報(212;812)を取得するために、前記復号されたスペクトル値(232;822)を用いて時間領域オーディオ表現(262;812)を提供するための周波数領域−時間領域変換部(260;830)とを備え、
    前記算術復号部(230;820)は、スペクトル値の算術符号化された表現(821)のコード値(value)の、1つ以上の復号されたスペクトル値または1つ以上の復号されたスペクトル値の少なくとも一部を示す記号コード(symbol)へのマッピングを示すマッピング規則(297;cum_freq[])を現在の数値コンテキスト値(c)によって示されるコンテキスト状態(s)に応じて選択するように構成され、
    前記算術復号部(230;820)は、複数の以前に復号されたスペクトル値に応じて前記現在の数値コンテキスト値(c)を決定するように構成され、
    前記算術復号部は、前記マッピング規則を選択するために、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値のうちの上位でない状態値の間隔の境界との両方を定義するハッシュテーブル(ari_hash_m[])を評価するように構成され、
    マッピング規則インデックス値が、上位状態値である数値コンテキスト値に対して個別に対応付けられ、
    共通のマッピング規則インデックス値が、前記間隔境界によって境界付けられた前記間隔のうちの1つの間隔内に位置する異なる数値コンテキスト値に対応付けられている、オーディオ復号器(200;800)。
  2. 前記算術復号部は、前記現在の数値コンテキスト値(c)または前記現在の数値コンテキスト値のサイズが変更されたバージョン(s)を、前記ハッシュテーブル(ari_hash_m[])の番号順に並んだ複数のエントリ(j)と比較して、ハッシュテーブルエントリ(ari_hash_m[i_min])のハッシュテーブルインデックス値(i_min)を取得し、その結果、前記現在の数値コンテキスト値が、前記取得されたハッシュテーブルインデックス値(i_min)と隣接するハッシュテーブルエントリ(ari_hash_m[i_min−1]、ari_hash_m[i_min+1])とによって指定される前記ハッシュテーブルエントリ(ari_hash_m[i_min])によって定義される間隔内に位置するように構成され、
    前記算術復号部は、前記現在の数値コンテキスト値が、前記取得されたハッシュテーブルインデックス値(i_min)によって指定される前記ハッシュテーブルのエントリによって定義される値に等しいか否かを判定し、前記取得されたハッシュテーブルインデックス値によって指定される前記ハッシュテーブルのエントリによって定義される現在の数値コンテキスト値に個別に対応付けられたマッピング規則インデックス値、または前記取得されたハッシュテーブルインデックス値によって指定され、かつ前記取得されたハッシュテーブルインデックス値によって指定される前記ハッシュテーブルのエントリによって定義される状態値によって一方の側において境界付けられた間隔内の異なる現在の数値コンテキスト値に対応付けられたマッピング規則インデックス値を、前記判定結果に応じて選択的に提供するように構成されている、請求項1に記載のオーディオ信号復号器。
  3. 前記算術復号部は、前記現在の数値コンテキスト値が、前記ハッシュテーブルの1つのエントリによって定義される間隔境界状態値に等しいか、あるいは前記ハッシュテーブルの2つのエントリによって定義される間隔内に位置するかを、前記ハッシュテーブルを用いて判定するように構成され、
    前記算術復号部は、前記現在の数値コンテキスト値が間隔境界状態値に等しいと分かった場合、前記ハッシュテーブルのエントリに対応付けられたマッピング規則インデックス値を提供し、前記現在の数値コンテキスト値が前記ハッシュテーブルの2つの隣接するエントリによって定義される状態値の間隔内に位置することが分かった場合、前記ハッシュテーブルの2つの隣接するエントリによって定義される状態値の間隔に対応付けられたマッピング規則インデックス値を提供するように構成され、
    前記算術復号部は、前記マッピング規則インデックス値に応じて、前記算術復号部のための累積度数テーブルを選択するように構成されている、請求項1または2に記載のオーディオ復号器。
  4. 前記ハッシュテーブルの第1の所与のエントリに対応付けられたマッピング規則インデックス値が、上方境界が前記ハッシュテーブルの前記第1の所与のエントリによって定義される数値コンテキスト値の第1の間隔に対応付けられたマッピング規則インデックス値と異なり、下方境界が前記ハッシュテーブルの前記第1の所与のエントリによって定義される数値コンテキスト値の第2の間隔に対応付けられたマッピング規則インデックス値とも異なり、その結果、前記ハッシュテーブルの前記第1の所与のエントリが、前記現在の数値コンテキスト値の2つの間隔の境界と前記現在の数値コンテキスト値の上位状態値とを単一の値によって定義するようにされている、請求項1から3のいずれか1項に記載のオーディオ復号器。
  5. 数値コンテキスト値の前記第1の間隔に対応付けられた前記マッピング規則インデックス値は、数値コンテキスト値の前記第2の間隔に対応付けられた前記マッピング規則インデックス値に等しく、その結果、前記ハッシュテーブルの前記第1の所与のエントリが、上位でない状態値の両側環境内の前記上位状態値を有する孤立した上位状態を定義するようにされている、請求項4に記載のオーディオ復号器。
  6. 前記ハッシュテーブルの第2の所与のエントリに対応付けられたマッピング規則インデックス値が、境界が前記ハッシュテーブルの前記第2の所与のエントリによって定義される数値コンテキスト値の第3の間隔に対応付けられたマッピング規則インデックス値と同一であるとともに、境界が前記ハッシュテーブルの前記第2の所与のエントリによって定義される数値コンテキスト値の第4の間隔に対応付けられたマッピング規則インデックス値と異なり、その結果、前記ハッシュテーブルの前記第2の所与のエントリは、前記現在の数値コンテキスト値の上位状態値を定義することなく、前記現在の数値コンテキスト値の2つの間隔の境界を定義するようにされている、請求項4または5に記載のオーディオ復号器。
  7. 前記算術復号部は、番号順に並んだエントリが前記現在の数値コンテキスト値の上位状態値と前記現在の数値コンテキスト値の間隔の境界との両方を定義する単一のハッシュテーブルを評価して、前記現在の数値コンテキスト値が位置する前記ハッシュテーブルの前記エントリによって定義される間隔から1つの間隔を指定するハッシュテーブルインデックス値(i_min)を取得し、続いて、前記現在の数値コンテキスト値が上位状態値をとるかあるいは上位でない状態値をとるかを、前記取得されたハッシュテーブルインデックス値によって指定されるテーブルエントリを用いて判定するように構成されている、請求項1から6のいずれか1項に記載のオーディオ復号器。
  8. 前記算術復号部は、前記現在の数値コンテキスト値が上位状態値をとらないことが、前記ハッシュテーブル(ari_hash_m[])の評価において、分かった場合、間隔インデックス値(i_min)をマッピング規則インデックス値(pki)にマッピングするマッピングテーブル(ari_lookup_m)を選択的に評価して、前記現在の数値コンテキスト値が位置する上位でない状態値の間隔に対応付けられたマッピング規則インデックス値(pki)を取得するように構成されている、請求項1から7のいずれか1項に記載のオーディオ復号器。
  9. 前記ハッシュテーブルの前記エントリは番号順に並べられ、
    前記算術復号部は、前記ハッシュテーブルのエントリのシーケンスを評価して、ハッシュテーブルエントリのハッシュテーブルインデックス結果値(i_min)を取得し、その結果、前記現在の数値コンテキスト値(c)が、前記取得されたハッシュテーブルインデックス結果値と隣接するハッシュテーブルエントリとによって指定される前記ハッシュテーブルエントリによって定義される間隔内に位置するように構成され、
    前記算術復号部は、前記ハッシュテーブルインデックス結果値(i_min)を繰返し決定するために、所定回数の繰返しを実行するように構成され、
    各繰返しは、前記ハッシュテーブルの現在のエントリ(ari_hash_m[i])によって表される状態値と前記現在の数値コンテキスト値によって表される状態値との1回のみの比較と、前記1回の比較の結果に応じた現在のハッシュテーブルインデックス値(i)の選択的な更新とを含む、請求項1から8のいずれか1項に記載のオーディオ復号器。
  10. 前記算術復号部は、上位状態値を含む現在の数値コンテキスト値と、上位でない状態値を含む現在の数値コンテキスト値とを、前記所定回数の繰返しを実行した後でのみ区別するように構成されている、請求項9に記載のオーディオ復号器。
  11. 前記算術復号部は、前記ハッシュテーブルを以下のアルゴリズムを用いて評価するように構成され、
    for(k=0;k<kmax;k++),

    i=i_min+i_diff[k];
    j=ari_hash_m[i];
    if(s>j)

    i_min=i+1;


    kは、実行中の変数であり、
    kmaxは、所定回数の繰返しを指定し、
    iは、現在のハッシュテーブルインデックス値を示す変数であり、
    i_minは、前記ハッシュテーブルの第1のエントリのハッシュテーブルインデックス値を指定するよう初期化され、sとjとの比較に応じて選択的に更新される変数であり、
    ari_hash_mは、前記ハッシュテーブルを指定し、
    ari_hash_m[i]は、ハッシュテーブルインデックス値iを有する前記ハッシュテーブルのエントリを指定し、
    sは、前記現在の数値コンテキスト値またはそのサイズが変更されたバージョンを表す変数を指定し、
    i_diff[k]は、k回目の繰返しにおける前記現在のハッシュテーブルインデックス値の変更のためのステップサイズを指定する、請求項1から10のいずれか1項に記載のオーディオ復号器。
  12. 前記算術復号部は、前記マッピング規則インデックス値を以下に従って戻り値として取得するようにさらに構成され、
    j=ari_hash_m[i_min];
    if(s>j)
    return(ari_lookup_m[i_min+1];
    else if(c<(j>>8))
    return(ari_lookup_m[i_min]);
    else
    return(j&0xFF);
    i_minは、前記ハッシュテーブルの評価の結果として取得され、s=c<<8であり、
    ari_lookup_mは、前記現在の数値コンテキスト値の上位でない値の前記現在の数値コンテキスト値の異なる間隔に対応付けられたマッピング規則インデックス値(pki)を示すテーブルであり、
    ari_lookup_m[i_min+1]は、エントリインデックスi_min+1を有するテーブル「ari_lookup_m」のエントリを指定し、
    ari_lookup_m[i_min]は、エントリインデックスi_minを有するテーブル「ari_lookup_m」のエントリを指定し、
    条件「s>j」は、変数sによって示される状態値がテーブルエントリari_hash_m[i_min]によって示される状態値より大きいことを定義し、
    条件「c<(j>>8)」は、変数sによって示される状態値がテーブルエントリari_hash_m[i_min]によって示される状態値より小さいことを定義し、
    「j&0xFF」は、テーブルエントリari_hash_m[i_min]によって示されるマッピング規則インデックス値を示す、請求項11に記載のオーディオ復号器。
  13. 前記算術復号部は、前記ハッシュテーブルを以下のアルゴリズムを用いて評価するように構成され、
    while((i_max−i_min)>1){
    i=i_min+((i_max−i_min)/2);
    j = ari_hash_m[i];
    if(c<(j>>8))
    i_max=i;
    else if(c>(j>>8))
    i_min=i;
    else
    return(j&0xFF);

    return ari_lookup_m[i_max];
    cは、前記現在の数値コンテキスト値を示す変数であり、
    i_minは、前記ハッシュテーブルの第1のエントリのハッシュテーブルインデックス値より1だけ小さい値をとるよう初期化され、cとハッシュテーブルエントリj=ari_hash_m[i]によって示される状態値j>>8との比較に応じて選択的に更新される変数であり、
    i_maxは、前記ハッシュテーブルの最後のエントリのハッシュテーブルインデックス値を指定するよう初期化され、cとハッシュテーブルエントリj=ari_hash_m[i]によって示される状態値j>>8との比較に応じて選択的に更新される変数であり、
    iは、現在のハッシュテーブルインデックス値を示す変数であり、
    ari_hash_mは、前記ハッシュテーブルを指定し、
    ari_hash_m[i]は、ハッシュテーブルインデックス値iを有する前記ハッシュテーブルのエントリを指定し、
    条件「c<(j>>8)」は、変数cによって示される状態値がテーブルエントリj=ari_hash_m[i]によって示される状態値より小さいことを定義し、
    条件「c>(j>>8)」は、変数cによって示される状態値がテーブルエントリj=ari_hash_m[i]によって示される状態値より大きいことを定義し、
    「j&0xFF」は、テーブルエントリj=ari_hash_m[i]によって示されるマッピング規則インデックス値を示す、請求項1から10のいずれか1項に記載のオーディオ復号器。
  14. 符号化されたオーディオ情報(112;712)を入力オーディオ情報(110;710)に基づいて提供するためのオーディオ符号化器(100;700)であって、
    周波数領域オーディオ表現(132;722)を、該周波数領域オーディオ表現(132;722)がスペクトル値の集合を含むように、前記入力オーディオ情報の時間領域表現(110;710)に基づいて提供するためのエネルギー圧縮型の時間領域−周波数領域変換部(130;720)と、
    スペクトル値(a)またはその前処理されたバージョンを可変長コードワード(acod_m,acod_r)を用いて符号化するように構成された算術符号化部(170;730)であって、1つ以上のスペクトル値(a,b)または1つ以上のスペクトル値(a,b)の最上位ビットプレーンの値(m)をコード値(acod_m)にマッピングするように構成された算術符号化部(170;730)とを備え、
    前記算術符号化部は、1つ以上のスペクトル値または1つ以上のスペクトル値の最上位ビットプレーンのコード値へのマッピングを示すマッピング規則を、現在の数値コンテキスト値(c)によって示されるコンテキスト状態(s)に応じて選択するように構成され、
    前記算術符号化部は、複数の以前に符号化されたスペクトル値に応じて前記現在の数値コンテキスト値(c)を決定するように構成され、
    前記算術符号化部は、エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値のうちの上位でない状態値の間隔の境界との両方を定義するハッシュテーブルを評価するように構成され、マッピング規則インデックス値が、上位状態値である数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、前記間隔境界によって境界付けられた前記間隔のうちの1つの間隔内に位置する異なる数値コンテキスト値に対応付けられており、
    前記符号化されたオーディオ情報は、複数の可変長コードワードからなる、オーディオ符号化器(100;700)。
  15. 復号されたオーディオ情報を符号化されたオーディオ情報に基づいて提供するための方法であって、
    複数の復号されたスペクトル値を、前記符号化されたオーディオ情報に含まれる該スペクトル値の算術符号化された表現に基づいて提供するステップと、
    前記復号されたオーディオ情報を取得するために、前記復号されたスペクトル値を用いて時間領域オーディオ表現を提供するステップとを含み、
    前記複数の復号されたスペクトル値を提供するステップは、スペクトル値の算術符号化された表現のコード値(acod_m;value)の、1つ以上の復号されたスペクトル値または1つ以上の復号されたスペクトル値の最上位ビットプレーンを表す記号コード(symbol)へのマッピングを示すマッピング規則を、現在の数値コンテキスト値(c)によって示されるコンテキスト状態に応じて選択するステップを含み、
    前記現在の数値コンテキスト値(c)は、複数の以前に復号されたスペクトル値に応じて決定され、
    エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値のうちの上位でない状態値の間隔の境界との両方を定義するハッシュテーブルが評価され、
    マッピング規則インデックス値が、上位状態値である数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、前記間隔境界によって境界付けられた前記間隔のうちの1つの間隔内に位置する異なる数値コンテキスト値に対応付けられている、方法。
  16. 符号化されたオーディオ情報を入力オーディオ情報に基づいて提供するための方法であって、
    エネルギー圧縮型の時間領域−周波数領域変換を用いて、周波数領域オーディオ表現がスペクトル値の集合を有するように前記周波数領域オーディオ表現を前記入力オーディオ情報の時間領域表現に基づいて提供するステップと、
    スペクトル値またはその前処理されたバージョンを可変長コードワードを用いて算術符号化するステップであって、1つ以上のスペクトル値または1つ以上のスペクトル値の最上位ビットプレーンの値がコード値にマッピングされるステップとを含み、
    1つ以上のスペクトル値または1つ以上のスペクトル値の最上位ビットプレーンのコード値へのマッピングを示すマッピング規則が、現在の数値コンテキスト値(c)によって示されるコンテキスト状態に応じて選択され、
    前記現在の数値コンテキスト値(c)は、複数の以前に符号化された隣接するスペクトル値に応じて決定され、
    エントリが数値コンテキスト値のうちの上位状態値と数値コンテキスト値のうちの上位でない状態値の間隔の境界との両方を定義するハッシュテーブルが評価され、
    マッピング規則インデックス値が、上位状態値である現在の数値コンテキスト値に個別に対応付けられ、共通のマッピング規則インデックス値が、前記間隔境界によって境界付けられた前記間隔のうちの1つの間隔内に位置する異なる数値コンテキスト値に対応付けられており、
    前記符号化されたオーディオ情報は、複数の可変長コードワードからなる、方法。
  17. コンピュータ上で実行されたときに、請求項15に記載の方法を実行するためのコンピュータプログラム。
  18. コンピュータ上で実行されたときに、請求項16に記載の方法を実行するためのコンピュータプログラム。
JP2012548401A 2010-01-12 2011-01-11 オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム Active JP5773502B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29435710P 2010-01-12 2010-01-12
US61/294,357 2010-01-12
PCT/EP2011/050272 WO2011086065A1 (en) 2010-01-12 2011-01-11 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

Publications (2)

Publication Number Publication Date
JP2013517519A JP2013517519A (ja) 2013-05-16
JP5773502B2 true JP5773502B2 (ja) 2015-09-02

Family

ID=43617872

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2012548403A Active JP5624159B2 (ja) 2010-01-12 2011-01-11 オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化および復号するための方法、ならびに以前に復号されたスペクトル値のノルムに基づいてコンテキストサブ領域値を取得するコンピュータプログラム
JP2012548402A Active JP5622865B2 (ja) 2010-01-12 2011-01-11 オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および以前の数値コンテキスト値の数値表現の修正を用いたコンピュータプログラム
JP2012548401A Active JP5773502B2 (ja) 2010-01-12 2011-01-11 オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2012548403A Active JP5624159B2 (ja) 2010-01-12 2011-01-11 オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化および復号するための方法、ならびに以前に復号されたスペクトル値のノルムに基づいてコンテキストサブ領域値を取得するコンピュータプログラム
JP2012548402A Active JP5622865B2 (ja) 2010-01-12 2011-01-11 オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および以前の数値コンテキスト値の数値表現の修正を用いたコンピュータプログラム

Country Status (20)

Country Link
US (4) US8898068B2 (ja)
EP (3) EP2524372B1 (ja)
JP (3) JP5624159B2 (ja)
KR (3) KR101336051B1 (ja)
CN (3) CN102792370B (ja)
AR (3) AR079886A1 (ja)
AU (3) AU2011206676B2 (ja)
BR (6) BR122021008581B1 (ja)
CA (3) CA2786944C (ja)
ES (3) ES2615891T3 (ja)
HK (2) HK1178306A1 (ja)
MX (3) MX2012008077A (ja)
MY (3) MY159982A (ja)
PL (3) PL2517200T3 (ja)
PT (1) PT2524371T (ja)
RU (2) RU2644141C2 (ja)
SG (3) SG182467A1 (ja)
TW (3) TWI476757B (ja)
WO (3) WO2011086067A1 (ja)
ZA (3) ZA201205939B (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY181231A (en) * 2008-07-11 2020-12-21 Fraunhofer Ges Zur Forderung Der Angenwandten Forschung E V Audio encoder and decoder for encoding and decoding audio samples
MY160260A (en) 2008-07-11 2017-02-28 Fraunhofer Ges Forschung Audio encoder and audio decoder
EP2315358A1 (en) 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
PL2491553T3 (pl) 2009-10-20 2017-05-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio, dekoder audio, sposób kodowania informacji audio, sposób dekodowania informacji audio i program komputerowy wykorzystujący iteracyjne zmniejszania rozmiaru przedziału
JP5624159B2 (ja) 2010-01-12 2014-11-12 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化および復号するための方法、ならびに以前に復号されたスペクトル値のノルムに基づいてコンテキストサブ領域値を取得するコンピュータプログラム
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 行動高畫質連結資料轉換器以及行動高畫質連結資料轉換方法
JP6248186B2 (ja) 2013-05-24 2017-12-13 ドルビー・インターナショナル・アーベー オーディオ・エンコードおよびデコード方法、対応するコンピュータ可読媒体ならびに対応するオーディオ・エンコーダおよびデコーダ
AU2014283256B2 (en) 2013-06-21 2017-09-21 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Time scaler, audio decoder, method and a computer program using a quality control
KR101953613B1 (ko) 2013-06-21 2019-03-04 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 지터 버퍼 제어부, 오디오 디코더, 방법 및 컴퓨터 프로그램
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
JP6509916B2 (ja) * 2014-06-29 2019-05-08 エルジー エレクトロニクス インコーポレイティド 連結された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 应关雄 一种低温除氧剂
MX2020011754A (es) 2015-10-08 2022-05-19 Dolby Int Ab Codificacion en capas para representaciones de sonido o campo de sonido comprimidas.
IL302588B1 (en) 2015-10-08 2024-10-01 Dolby Int Ab Layered coding and data structure for compressed high-order sound or surround sound field representations
WO2017142967A1 (en) * 2016-02-16 2017-08-24 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
US10705809B2 (en) * 2017-09-08 2020-07-07 Devfactory Innovations Fz-Llc Pruning engine
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
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
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
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
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
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
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
CN111386566A (zh) * 2017-12-15 2020-07-07 海尔优家智能科技(北京)有限公司 设备控制方法、云端设备、智能设备、计算机介质及设备
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 네이버 주식회사 오디오 병렬 트랜스코딩을 위한 방법 및 시스템
TWI765164B (zh) 2018-07-06 2022-05-21 弗勞恩霍夫爾協會 算術編碼器、算術解碼器、視訊編碼器、視訊解碼器、編碼方法、解碼方法及電腦程式
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
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
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
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
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
US11106437B2 (en) * 2019-01-14 2021-08-31 Microsoft Technology Licensing, Llc Lookup table optimization for programming languages that target synchronous digital circuits
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 北京嘀嘀无限科技发展有限公司 语音识别模型的训练方法、语音识别方法及装置
US11276204B1 (en) 2020-08-31 2022-03-15 Protein Metrics Inc. Data compression for multidimensional time series data
EP4229631A2 (en) * 2020-10-13 2023-08-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding a plurality of audio objects and apparatus and method for decoding using two or more relevant audio objects

Family Cites Families (134)

* 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
US5878273A (en) 1993-06-24 1999-03-02 Discovision Associates System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data
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
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
CA2246532A1 (en) 1998-09-04 2000-03-04 Northern Telecom 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
CA2323561C (en) 1999-01-13 2013-03-26 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
DE60327039D1 (de) 2002-07-19 2009-05-20 Nec Corp Audiodekodierungseinrichtung, dekodierungsverfahren und programm
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
US7328150B2 (en) 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
ES2297083T3 (es) 2002-09-04 2008-05-01 Microsoft Corporation Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel.
US7299190B2 (en) 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
EP1604528A2 (en) 2002-09-17 2005-12-14 Ceperkovic, Vladimir 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
AU2003208517A1 (en) 2003-03-11 2004-09-30 Nokia Corporation 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
KR20050087956A (ko) * 2004-02-27 2005-09-01 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
ATE527654T1 (de) * 2004-03-01 2011-10-15 Dolby Lab Licensing Corp Mehrkanal-audiodecodierung
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
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
MX2007000459A (es) 2004-07-14 2007-07-25 Agency Science Tech & Res Codificacion y descodificacion de senales, basadas en contexto.
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US20060047704A1 (en) 2004-08-31 2006-03-02 Kumar Chitra Gopalakrishnan Method and system for providing information services relevant to visual imagery
JP4977471B2 (ja) 2004-11-05 2012-07-18 パナソニック株式会社 符号化装置及び符号化方法
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 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
EP1836858A1 (en) 2005-01-14 2007-09-26 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
JP5129117B2 (ja) * 2005-04-01 2013-01-23 クゥアルコム・インコーポレイテッド 音声信号の高帯域部分を符号化及び復号する方法及び装置
KR100694098B1 (ko) * 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
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
KR100703773B1 (ko) 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
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
US20070036228A1 (en) 2005-08-12 2007-02-15 Via Technologies Inc. Method and apparatus for audio encoding and decoding
JP2009510962A (ja) 2005-10-03 2009-03-12 ノキア コーポレイション 独立変数のための適応性可変長コード
US20070094035A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Audio coding
KR100803206B1 (ko) 2005-11-11 2008-02-14 삼성전자주식회사 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법
CN101167368B (zh) 2005-12-05 2012-03-28 华为技术有限公司 一种实现算术编解码的方法及装置
KR101237413B1 (ko) 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치
CN101133649B (zh) 2005-12-07 2010-08-25 索尼株式会社 编码装置、编码方法以及解码装置、解码方法
US7283073B2 (en) 2005-12-19 2007-10-16 Primax Electronics Ltd. System for speeding up the arithmetic coding processing and method thereof
WO2007080211A1 (en) * 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
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
US8706507B2 (en) * 2006-08-15 2014-04-22 Dolby Laboratories Licensing Corporation Arbitrary shaping of temporal noise envelope without side-information utilizing unchanged quantization
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 キヤノン株式会社 復号装置及び復号方法
US20080243518A1 (en) * 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
DE102007017254B4 (de) * 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
KR100868763B1 (ko) * 2006-12-04 2008-11-13 삼성전자주식회사 오디오 신호의 중요 주파수 성분 추출 방법 및 장치와 이를이용한 오디오 신호의 부호화/복호화 방법 및 장치
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 ソニー株式会社 学習装置および学習方法、並びにプログラムおよび記録媒体
EP2278582B1 (en) 2007-06-08 2016-08-10 LG Electronics Inc. A method and an apparatus for processing an audio signal
CN101743586B (zh) 2007-06-11 2012-10-17 弗劳恩霍夫应用研究促进协会 音频编码器、编码方法、解码器、解码方法
US8521540B2 (en) * 2007-08-17 2013-08-27 Qualcomm Incorporated Encoding and/or decoding digital signals using a permutation value
EP2183851A1 (fr) 2007-08-24 2010-05-12 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
EP2077550B8 (en) 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
US8483854B2 (en) * 2008-01-28 2013-07-09 Qualcomm Incorporated Systems, methods, and apparatus for context processing using multiple microphones
JP4893657B2 (ja) 2008-02-29 2012-03-07 ソニー株式会社 算術復号装置
JP5266341B2 (ja) * 2008-03-03 2013-08-21 エルジー エレクトロニクス インコーポレイティド オーディオ信号処理方法及び装置
KR101230479B1 (ko) 2008-03-10 2013-02-06 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 트랜지언트 이벤트를 갖는 오디오 신호를 조작하기 위한 장치 및 방법
US8340451B2 (en) 2008-04-28 2012-12-25 Osaka Prefecture University Public Corporation Method for constructing image database for object recognition, processing apparatus and processing program
US7864083B2 (en) 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
CA2871268C (en) * 2008-07-11 2015-11-03 Nikolaus Rettelbach Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program
MY160260A (en) * 2008-07-11 2017-02-28 Fraunhofer Ges Forschung Audio encoder and audio decoder
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
ES2592416T3 (es) 2008-07-17 2016-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Esquema de codificación/decodificación de audio que tiene una derivación conmutable
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 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
EP3764356A1 (en) 2009-06-23 2021-01-13 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
PL2491553T3 (pl) 2009-10-20 2017-05-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio, dekoder audio, sposób kodowania informacji audio, sposób dekodowania informacji audio i program komputerowy wykorzystujący iteracyjne zmniejszania rozmiaru przedziału
US8149144B2 (en) 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
JP5624159B2 (ja) 2010-01-12 2014-11-12 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化および復号するための方法、ならびに以前に復号されたスペクトル値のノルムに基づいてコンテキストサブ領域値を取得するコンピュータプログラム
CN102131081A (zh) 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
CN103282958B (zh) * 2010-10-15 2016-03-30 华为技术有限公司 信号分析器、信号分析方法、信号合成器、信号合成方法、变换器和反向变换器
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5773502B2 (ja) オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム
JP5600805B2 (ja) 最適化されたハッシュテーブルを用いるオーディオエンコーダ、オーディオデコーダ、オーディオ情報を符号化するための方法、オーディオ情報を復号化するための方法およびコンピュータプログラム
JP5245014B2 (ja) 領域に依存した算術符号化マッピングルールを使用した、オーディオ符号器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および、コンピュータプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150626

R150 Certificate of patent or registration of utility model

Ref document number: 5773502

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250