JP5085543B2 - 適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用 - Google Patents

適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用 Download PDF

Info

Publication number
JP5085543B2
JP5085543B2 JP2008521610A JP2008521610A JP5085543B2 JP 5085543 B2 JP5085543 B2 JP 5085543B2 JP 2008521610 A JP2008521610 A JP 2008521610A JP 2008521610 A JP2008521610 A JP 2008521610A JP 5085543 B2 JP5085543 B2 JP 5085543B2
Authority
JP
Japan
Prior art keywords
entropy
model
encoder
decoder
coefficient
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
JP2008521610A
Other languages
English (en)
Other versions
JP2009501943A (ja
Inventor
メーロトラ サンジーフ
チェン ウェイ−グゥ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009501943A publication Critical patent/JP2009501943A/ja
Application granted granted Critical
Publication of JP5085543B2 publication Critical patent/JP5085543B2/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
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Description

適応コーディングおよび適応デコーディングで複数のエントロピモデルを選択的に使用する技法およびツールに関する。
エンジニアは、デジタルオーディオの品質を維持しつつデジタルオーディオを効率的に処理するために、様々な技法を使用する。これらの技法を理解するために、オーディオ情報がコンピュータ内でどのように表現され、処理されるかを理解することが役立つ。
I.コンピュータでのオーディオ情報の表現
コンピュータは、オーディオ情報を表す数の系列としてオーディオ情報を処理する。例えば、一つの数は、1つのオーディオサンプルを表すことができ、このオーディオサンプルとは、特定の時刻の振幅値である。サンプル深さ、サンプリングレート、およびチャネルモードを含む複数の要因が、オーディオ情報の品質に影響する。
サンプル深さ(または精度)は、サンプルを表すのに使用される数の範囲を示す。サンプルについて可能な値が多いほど、数が振幅のより微妙な変動を取り込むことができるので、品質が高くなる。例えば、8ビットサンプルは、256個の可能な値を有するが、16ビットサンプルは、65536個の可能な値を有する。
サンプリングレート(通常は、サンプル数毎秒として測定される)も、品質に影響する。サンプリングレートが高いほど、サウンドのより多くの周波数を表現できるので、品質が高くなる。いくつかの一般的なサンプリングレートが、8000サンプル/秒、11025サンプル/秒、22050サンプル/秒、32000サンプル/秒、44100サンプル/秒、48000サンプル/秒、および96000サンプル/秒である。
モノラルおよびステレオは、オーディオの2つの一般的なチャネルモードである。モノラルモードでは、オーディオ情報が1チャネルで表される。ステレオモードでは、オーディオ情報は、通常は左チャネルおよび右チャネルと呼ばれる2つのチャネルで表される。5.1チャネル、7.1チャネル、または9.1チャネルのサラウンドサウンド(「1」は、サブウーハー(sub woofer)または低周波数効果チャネルを示す)など、より多くのチャネルを有する他のモードも可能である。表1に、対応する生ビットレートコストと一緒に、異なる品質レベルを有するオーディオの複数のフォーマットを示す。
Figure 0005085543
サラウンドサウンドオーディオは、通常は、さらに高い生ビットレートを有する。表1に示されているように、高品質オーディオ情報のコストは、高いビットレートである。高品質オーディオ情報は、大量のコンピュータストレージおよび大量の伝送容量を消費する。しかし、会社および消費者は、ますますコンピュータに依存して、高品質オーディオコンテンツを作成し、配布し、再生する。
II.コンピュータでのオーディオ情報の処理
多くのコンピュータおよびコンピュータネットワークには、生デジタルオーディオを処理するリソースが欠けている。圧縮(エンコーディングまたはコーディングとも呼ばれる)は、オーディオ情報をより低ビットレートの形に変換することによって、その情報を格納し、伝送するコストを減らす。圧縮は、ロスレス(lossless:品質が損なわれない)またはロッシイ(lossy:品質は損なわれるが、後続ロスレス圧縮からのビットレート削減がより目覚しい)とすることができる。例えば、ロッシイ圧縮は、オリジナルのオーディオ情報を近似するのに使用され、その後、この近似が、ロスレス圧縮される。圧縮解除(デコーディングとも呼ばれる)は、オリジナルの情報の再構成されたバージョンを圧縮形式から抽出する。
オーディオ圧縮の1つの目標は、可能な最小の量のビットを用いて知覚される最大の信号品質を提供するようにオーディオ信号をデジタルに表現することである。この目標をターゲットとして、様々な現代オーディオコーディングシステムは、人間の知覚モデルを利用する。エンコーダシステムおよびデコーダシステムは、Microsoft Corporation社のWindows(登録商標)Media Audio(「WMA」)エンコーダおよびWMAデコーダならびにWMA ProエンコーダおよびWMA Proデコーダのいくつかのバージョンを含む。他のシステムは、Motion Picture Experts Group、Audio Layer 3(「MP3」)標準規格、Motion Picture Experts Group 2、Advanced Audio Coding(「AAC」)標準規格、およびDolby AC3のいくつかのバージョンによって指定される。そのようなシステムは、通常、ロッシイとロスレスの組合せの圧縮および圧縮解除を使用する。
A.ロッシイ圧縮および対応する圧縮解除
従来、オーディオエンコーダは、様々な異なるロッシイ圧縮技法を使用する。これらのロッシイ圧縮技法は、通常、周波数変換後の知覚モデリング/重み付けおよび量子化を用いる。対応する圧縮解除は、逆量子化、逆重み付け、および逆周波数変換を用いる。
周波数変換技法は、データを、知覚的に重要な情報を知覚的に重要でない情報から分離することをより容易にする形式に変換する。その後、所与のビットレートに関する最良の知覚される品質を提供するために、より重要でない情報をよりロッシイな圧縮の対象にすることができ、一方、より重要な情報は保存される。周波数変換は、通常、オーディオサンプルを受け取り、これらを、時々周波数係数またはスペクトル係数と呼ばれる周波数領域のデータに変換する。
知覚モデリングは、所与のビットレートに関する再構成されたオーディオ信号の知覚される品質を改善するために、人間の聴覚系のモデルに従ってオーディオデータを処理することを伴う。知覚モデリングの結果を使用することによって、エンコーダは、所与のビットレートに関するノイズの可聴性を最小にすることを目的に、オーディオデータ内のノイズ(例えば量子化ノイズ)を成形する。
量子化は、入力値の範囲を単一の値に写像し、情報の不可逆ロスを導入するが、エンコーダが出力の品質およびビットレートを規制することを可能にもする。時々、エンコーダは、ビットレートおよび/または品質を規制するために量子化を調整するレートコントローラと共に、量子化を実行する。適応および非適応、スカラおよびベクトル、均一および不均一を含む、様々な種類の量子化がある。知覚重み付けは、不均一量子化の一形態と考えることができる。
逆量子化および逆重み付けは、重み付けされ量子化された周波数係数データを、オリジナルの周波数係数データの近似値に再構成する。その後、逆周波数変換が、再構成された周波数係数データを、再構成された時間領域オーディオサンプルに変換する。
B.ロスレス圧縮およびロスレス圧縮解除
従来、オーディオエンコーダは、様々な異なるロスレス圧縮技法(エントロピコーディング技法とも呼ばれる)のうちの1つまたは複数を使用する。一般に、ロスレス圧縮技法は、ランレングス(run-length)エンコーディング、可変長エンコーディング、および算術(arithmetic)コーディングを含む。対応する圧縮解除技法(エントロピデコーディング技法とも呼ばれる)は、ランレングスデコーディング、可変長デコーディング、および算術デコーディングを含む。
ランレングスエンコーディングは、単純な周知の圧縮技法である。一般に、ランレングスエンコーディングは、同一の値を有する連続するシンボルのシーケンス(すなわち、ラン)を、値およびシーケンスの長さに置換する。ランレングスデコーディングでは、連続するシンボルのシーケンスが、ラン値およびランレングスから再構成される。ランレングスエンコーディング/デコーディングの多数の変形形態が開発されてきた。
ランレベルエンコーディングは、同一の値を有する連続するシンボルのランが、ランレングスに置換されるという点で、ランレングスエンコーディングに似ている。ランの値は、データの支配的な値(例えば、0)であり、ランは、異なる値(例えば、非0値)を有する1つまたは複数のレベルによって分離される。
ランレングスエンコーディングの結果(例えば、ラン値およびランレングス)またはランレベルエンコーディングの結果は、ビットレートをさらに下げるために可変長コーディングすることができる。その場合に、可変長コーディングされたデータは、ランレングスデコーディングの前に可変長デコーディングされる。
可変長コーディングは、もう1つの周知の圧縮技法である。一般に、可変長コード[「VLC」]テーブルが、VLCを一意のシンボル値(または値の一意の組合せ)に関連付ける。ハフマン(Huffman)コードは、一般的なタイプのVLCである。より短いコードが、より可能性の高いシンボル値に割り当てられ、より長いコードが、より可能性の低いシンボル値に割り当てられる。確率は、ある種類の内容の通常の例について計算される。あるいは、確率は、エンコードされたばかりのデータまたはこれからエンコードされるデータについて計算され、その場合には、VLCは、一意のシンボル値の変化する確率に適合される。静的可変長コーディングと比較して、適応可変長コーディングは、通常、データに関するより正確な確率を組み込むことによって圧縮データのビットレートを下げるが、VLCを指定する余分な情報をも伝送する必要がある場合がある。
シンボルをエンコードするために、可変長エンコーダは、シンボル値を、VLCテーブル内のそのシンボル値に関連するVLCに置換する。デコードするために、可変長デコーダは、VLCをそのVLCに関連するシンボル値に置換する。
スカラ可変長コーディングでは、VLCテーブルは、単一のVLCを1つの値、例えば量子化されたデータ値の直接レベルに関連付ける。ベクトル可変長コーディングでは、VLCテーブルは、単一のVLCを値の組合せ、例えば特定の順序の量子化されたデータ値の直接レベルのグループに関連付ける。ベクトル可変長エンコーディングは、スカラ可変長エンコーディングよりよいビットレート削減につながることができる(例えば、エンコーダがバイナリVLC内で断片的に確率を活用することを可能にすることによって)。その一方で、ベクトル可変長エンコーディングのVLCテーブルは、単一のコードがシンボルの大きいグループを表す場合またはシンボルが潜在的な値の大きい範囲を有する(潜在的な組合せの個数が多いことに起因して)場合に、極端に大きくなる可能性があり、これは、VLCテーブルを計算する際およびVLCを見つける際にメモリおよび処理リソースを消費する。可変長エンコーディング/デコーディングの多数の変形形態が開発されてきた。
算術コーディングは、もう1つの周知の圧縮技法である。算術コーディングは、所与の入力シンボルをエンコードするのに最適なビットの個数が、ビットの分数個数である応用例に、およびある個々の入力シンボルの間に統計的相関が存在する場合に、時々使用される。算術コーディングは、一般に、入力シーケンスを、所与の範囲内の単一の数として表すことを用いる。通常、この数は、0と1との間の分数である。入力シーケンス内のシンボルは、0と1との間の空間の諸部分を占める範囲に関連付けられる。この範囲は、その特定のシンボルが入力シーケンス内に現れる確率に基づいて計算される。入力シーケンスを表すのに使用される分数は、この範囲への参照を用いて構成される。したがって、入力シンボルの確率分布が、算術コーディング方式において重要である。
コンテキストベースの算術コーディングでは、入力シンボルの異なる確率分布が、異なるコンテキストに関連付けられる。入力シーケンスをエンコードするのに使用される確率分布は、コンテキストが変化する時に変化する。コンテキストは、特定の入力シンボルが入力シーケンスに現れる確率に影響すると期待される様々な要因を測定することによって計算することができる。
メディア処理の圧縮および圧縮解除の重要性を与えられれば、圧縮および圧縮解除が十分に開発された分野であることは、意外ではない。しかし、ロスレス圧縮およびロスレス圧縮解除の従来の技法およびシステムの利点が何であれ、それらは、本明細書で説明する技法およびシステムの様々な利点を有しない。
適応コーディングおよび適応デコーディングで複数のエントロピモデルを選択的に使用する技法およびツールを、本明細書で説明する。例えば、複数のエントロピモデルを選択的に使用することによって、複数の分布/VLCテーブルに関するリソース使用量を大幅に減らすことができる。それと同時に、複数の分布/VLCテーブルの使用に関連するエンコーディング利益の多くを達成することができる。
技法およびツールの第1組目によれば、エンコーダまたはデコーダなどのツールは、シンボルについて、複数のエントロピモデルを含む第1モデルセットからエントロピモデルを選択する。第1モデルセットの複数のエントロピモデルのそれぞれは、1つまたは複数のエントロピモデルを含む第2モデルセットに切り替えるモデル切替点を含む。このツールは、選択されたエントロピモデルを使用してシンボルを処理し、処理の結果を出力する。
第2モデルセットの1つまたは複数のエントロピモデルのそれぞれ自体が、別のモデルセットに切り替えるためのモデル切替点を含むことができる。さらに、第1モデルセットの複数のエントロピモデルのそれぞれは、別のモデルセットに切り替える第2モデル切替点をさらに含むことができる。より一般的に、第1モデルセットの複数のエントロピモデルのそれぞれは、他のモデルセットに切り替える0個以上のモデル切替点を含むことができる(他のモデルセットの各セット自体は、0個以上のモデル切替点を含む)。他のモデルセットの所与のモデルセットについても、そのモデルセットのエントロピモデルは、再帰的な形で、さらに別のモデルセットに切り替える0個以上のモデル切替点を含むことができ、以下同様である。
技法およびツールの第2組目によれば、システムは、エントロピモデルを生成する。このシステムは、第1コストメトリック(平均2乗誤差など)に従って確率分布をクラスタ化し、予備クラスタをもたらす。このシステムは、第1コストメトリックと異なる第2コストメトリック(相対エントロピなど)に従って予備クラスタを洗練し、最終クラスタをもたらす。次に、このシステムは、最終クラスタに少なくとも部分的に基づいてエントロピモデルをセットする。
技法およびツールの第3組目によれば、システムは、シンボル値の確率分布を入手する。このシステムは、エントロピモデルを生成する。それを行う際に、このシステムは、複数の可能性のより高いシンボル値をそのように制約せずに、確率分布にまたがる共通の条件付き分布を有するように複数の可能性のより低いシンボル値を制約する。
本発明の前述および他の目的、特徴、および利点は、次の詳細な説明からより明白になり、次の詳細な説明は、添付図面を参照して進行する。
エントロピコーディング/デコーディングの様々な技法およびツールならびに関連する処理を説明する。これらの技法およびツールは、非常に低いビットレートであっても、高品質オーディオコンテンツの作成、配布、および再生を容易にする。
本明細書で説明する様々な技法およびツールは、独立に使用することができる。これらの技法およびツールのいくつかは、組み合わせて使用することができる(例えば、組み合わされたエンコーディングプロセスおよび/またはデコーディングプロセスの異なるフェーズで)。
様々な技法を、下で、処理行為の流れ図を参照して説明する。流れ図に示された様々な処理行為は、より少数の行為に合併するか、より多数の行為に分離することができる。説明を単純にするために、特定の流れ図に示された行為の、他所で説明される行為に対する関係は、しばしば、示されない。多くの場合に、流れ図の行為は、並べ換えることができる。
I.エンコーダおよび/またはデコーダの例のオペレーティング環境
図1に、説明される実施形態のうちの複数を実施できる適切なコンピューティング環境(100)の一般化された例を示す。コンピューティング環境(100)は、使用または機能性の範囲に関する限定を暗示することを意図するものではない。というのは、説明される技法およびツールを、別個の汎用のまたは特殊目的のコンピューティング環境で実施できるからである。
図1を参照すると、コンピューティング環境(100)は、少なくとも1つの処理ユニット(110)およびメモリ(120)を含む。図1では、この最も基本的な構成(130)が、破線の中に示されている。処理ユニット(110)は、コンピュータ実行可能命令を実行し、実プロセッサまたは仮想プロセッサとすることができる。マルチプロセッシングシステムでは、処理能力を高めるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ(120)は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリなど)、またはこの2つのある組合せとすることができる。メモリ(120)は、本明細書で説明する技法のうちの1つまたは複数を使用するエンコーダおよび/またはデコーダを実施するソフトウェア(180)を記憶する。
コンピューティング環境は、追加の特徴を有することができる。例えば、コンピューティング環境(100)は、ストレージ(140)、1つまたは複数の入力デバイス(150)、1つまたは複数の出力デバイス(160)、および1つまたは複数の通信接続(170)を含む。バス、コントローラ、またはネットワークなどの相互接続機構(図示せず)が、コンピューティング環境(100)のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア(図示せず)が、コンピューティング環境(100)内で実行中の他のソフトウェアのオペレーティング環境を提供し、コンピューティング環境(100)のコンポーネントのアクティビティを調整する。
ストレージ(140)は、取外し可能または取外し不能とすることができ、磁気ディスク、磁気テープもしくは磁気カセット、CD−ROM、DVD、または情報を格納するのに使用できコンピューティング環境(100)内でアクセスできる任意の他の媒体を含む。ストレージ(140)は、ソフトウェア(180)の命令を格納する。
1つまたは複数の入力デバイス(150)は、キーボード、マウス、ペン、またはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、あるいはコンピューティング環境(100)に入力を提供できる別のデバイスとすることができる。オーディオエンコーディングまたはビデオエンコーディングに関して、1つまたは複数の入力デバイス(150)を、マイクロホン、サウンドカード、ビデオカード、TVチューナカード、または、アナログ形式もしくはデジタル形式でオーディオ入力もしくはビデオ入力を受け入れる類似するデバイス、あるいは、コンピューティング環境(100)にオーディオサンプルもしくはビデオサンプルを読み込むCD−ROMもしくはCD−RWとすることができる。1つまたは複数の出力デバイス(160)は、ディスプレー、プリンタ、スピーカ、CDライタ、またはコンピューティング環境(100)からの出力を供給する別のデバイスとすることができる。
1つまたは複数の通信接続(170)は、通信媒体を介する別のコンピューティング実体への通信を可能にする。通信媒体は、コンピュータ実行可能命令、オーディオもしくはビデオの入力もしくは出力、または他のデータなどの情報を変調されたデータ信号内で伝える。変調されたデータ信号とは、信号内で情報をエンコードする形でその特性のうちの1つまたは複数をセットされまたは変更された信号である。限定ではなく例として、通信媒体は、電気搬送波、光搬送波、RF搬送波、赤外線搬送波、音響搬送波、または他の搬送波を用いて実施される有線または無線の技法を含む。
本技法およびツールを、コンピュータ可読媒体の全体的な文脈で説明することができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスできる任意の使用可能な媒体である。限定ではなく例として、コンピューティング環境(100)に関して、コンピュータ可読媒体は、メモリ(120)、ストレージ(140)、通信媒体、および上記のいずれかの組合せを含む。
本技法およびツールを、コンピューティング環境内でターゲットの実プロセッサまたは仮想プロセッサ上で実行される、プログラムモジュールに含まれるものなどのコンピュータ実行可能命令の全体的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか特定の抽象データ型を実施するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などを含む。プログラムモジュールの機能性を、様々な実施形態で望み通りに組み合わせ、またはプログラムモジュールの間で分割することができる。プログラムモジュールのコンピュータ実行可能命令を、ローカルコンピューティング環境または分散コンピューティング環境内で実行することができる。
提示のために、この詳細な説明では、「シグナリングする」、「決定する」、および「適用する」などの用語を使用して、コンピューティング環境でのコンピュータ動作を説明する。これらの用語は、コンピュータによって実行される動作の高水準の抽象であり、人間によって実行される行為と混同してはならない。これらの用語に対応する実際のコンピュータ動作は、実施態様に応じて変化する。
II.例のエンコーダおよびデコーダ
図2に、1つまたは複数の説明される実施形態を実施できる第1のオーディオエンコーダ(200)を示す。エンコーダ(200)は、変換ベースの知覚オーディオエンコーダ(200)である。図3に、対応するオーディオデコーダ(300)を示す。
図4に、1つまたは複数の説明される実施形態を実施できる第2のオーディオエンコーダ(400)を示す。エンコーダ(400)は、変換ベースの知覚オーディオエンコーダであるが、エンコーダ(400)は、マルチチャネルオーディオを処理する追加モジュールを含む。図5に、対応するオーディオデコーダ(500)を示す。
図6に、1つまたは複数の説明される実施形態を実施できるより一般化されたメディアエンコーダ(600)を示す。図7に、対応するメディアデコーダ(700)を示す。
図2から7に示されたシステムは、一般化されているが、それぞれが、実世界のシステムに見られる特性を有する。どの場合でも、エンコーダおよびデコーダの中のモジュールの間に示される関係は、エンコーダおよびデコーダの中の情報の流れを示し、他の関係は、図を単純にするために図示されていない。望まれる圧縮の実施態様およびタイプに依存して、エンコーダまたはデコーダのモジュールを、追加し、省略し、複数のモジュールに分割し、他のモジュールと組み合わせ、かつ/または類似するモジュールと置換することができる。代替実施形態では、異なるモジュールおよび/または他の構成を有するエンコーダまたはデコーダが、1つまたは複数の説明される実施形態に従ってオーディオデータまたはある他のタイプのデータを処理する。例えば、スペクトル係数を処理する、図2から7のモジュールを使用して、ベースバンドまたはベース周波数サブ範囲(より低い周波数など)の係数だけを処理し、異なるモジュール(図示せず)が他の周波数サブ範囲(より高い周波数など)のスペクトル係数を処理するものとすることができる。
A.第1のオーディオエンコーダ
全体的に、エンコーダ(200)は、あるサンプリング深さおよびサンプリングレートで入力オーディオサンプル(205)の時系列を受け取る。入力オーディオサンプル(205)は、マルチチャネルオーディオ(例えば、ステレオ)またはモノラルオーディオである。エンコーダ(200)は、オーディオサンプル(205)を圧縮し、エンコーダ(200)の様々なモジュールによって作られた情報を多重化して、WMAフォーマット、Advanced Streaming Format(「ASF」)、または他のフォーマットなどのフォーマットでビットストリーム(295)を出力する。
周波数トランスフォーマ(210)は、オーディオサンプル(205)を受け取り、これをスペクトル領域のデータに変換する。例えば、周波数トランスフォーマ(210)は、オーディオサンプル(205)をブロックに分割し、これらのブロックは、可変時間分解能を可能にするために可変サイズを有することができる。ブロックは、そうでなければ後の量子化によって導入される可能性があるブロック間の知覚可能な不連続性を減らすために、オーバーラップすることができる。周波数トランスフォーマ(210)は、時間に伴って変化するModulated Lapped Transform(「MLT」)、modulated DCT(「MDCT」)、MLTまたはDCTのいくつかの他のバラエティ、または、変更されたもしくは変更されていない、オーバーラップするもしくはオーバーラップしない周波数変換のいくつかの他のタイプをブロックに適用し、あるいは、サブバンドコーディングまたはウェーブレットコーディングを使用する。周波数トランスフォーマ(210)は、スペクトル係数データのブロックを出力し、マルチプレクサ(「MUX」)(280)にブロックサイズなどのサイド情報を出力する。
マルチチャネルオーディオデータについて、マルチチャネルトランスフォーマ(220)は、複数のオリジナルの独立にコーディングされたチャネルを共同でコーディングされたチャネルに変換することができる。あるいは、マルチチャネルトランスフォーマ(220)は、左右のチャネルを独立にコーディングされたチャネルとしてパススルーすることができる。マルチチャネルトランスフォーマ(220)は、使用されたチャネルモードを示すMUX(280)へのサイド情報を作る。エンコーダ(200)は、マルチチャネル変換の後にオーディオデータのブロックにマルチチャネルリマトリクシング(multi−channel rematrixing)を適用することができる。
知覚モデラ(230)は、人間の聴覚系の特性をモデリングして、所与のビットレートの再構成されたオーディオ信号の知覚される品質を改善する。知覚モデラ(230)は、様々な聴覚モデルのいずれかを使用する。
知覚モデラ(230)は、ウエイタ(240)がノイズの可聴性を減らすためにオーディオデータ内のノイズを成形するのに使用する情報を出力する。例えば、様々な技法のいずれかを使用して、ウエイタ(240)は、受け取った情報に基づいて量子化行列(時々マスクと呼ばれる)の重み付け係数(時々スケール係数と呼ばれる)を生成する。次に、ウエイタ(240)は、マルチチャネルトランスフォーマ(220)から受け取った情報にその重み付け係数を適用する。重み付け係数の組を、より効率的な表現のために圧縮することができる。
クォンタイザ(250)は、ウエイタ(240)の出力を量子化し、エントロピエンコーダ(260)への量子化された係数データおよびMUX(280)への量子化ステップサイズを含むサイド情報を作る。図2では、クォンタイザ(250)は、適用均一スカラクォンタイザである。クォンタイザ(250)は、各スペクトル係数に同一の量子化ステップサイズを適用するが、量子化ステップサイズ自体は、量子化ループのある反復から次の反復で、エントロピエンコーダ(260)出力のビットレートに影響するために変化することができる。他の種類の量子化が、不均一ベクトル量子化および/または非適応量子化である。
エントロピエンコーダ(260)は、例えばランレベルコーディングおよびベクトル可変長コーディングを実行することによって、クォンタイザ(250)から受け取った量子化された係数データをロスレス圧縮する。いくつかの実施形態のエントロピコーディングの様々な機構(潜在的に前処理を含む)を、セクションIIIからVで詳細に説明する。代替案では、エントロピエンコーダ(260)は、エントロピコーディング機構のある他の形または組合せを使用する。エントロピエンコーダ(260)は、オーディオ情報をエンコードして消費されたビット数を計算し、この情報をレート/品質コントローラ(270)に渡すことができる。
コントローラ(270)は、エンコーダ(200)の出力のビットレートおよび/または品質を規制するためにクォンタイザ(250)と共に働く。コントローラ(270)は、ビットレート制約および品質制約を満足することを目標に、クォンタイザ(250)に量子化ステップサイズを出力する。
さらに、エンコーダ(200)は、オーディオデータのブロックにノイズ置換および/またはバンド切捨を適用することができる。
MUX(280)は、オーディオエンコーダ(200)の他のモジュールから受け取ったサイド情報を、エントロピエンコーダ(260)から受け取ったエントロピエンコードされたデータと一緒に多重化する。MUX(280)は、エンコーダ(200)によって出力されるビットストリーム(295)を格納する仮想バッファを含むことができる。
B.第1のオーディオデコーダ
全体的に、デコーダ(300)は、エントロピエンコードされたデータならびにサイド情報を含む圧縮オーディオ情報のビットストリーム(305)を受け取り、このビットストリームから、デコーダ(300)は、オーディオサンプル(395)を再構成する。
デマルチプレクサ(「DEMUX」)(310)は、ビットストリーム(305)内の情報を解析し、情報をデコーダ(300)のモジュールに送る。DEMUX(310)は、オーディオの複雑さの変動、ネットワークジッタ、および/または他の要因に起因するビットレートの短期変動を補償するために1つまたは複数のバッファを含む。
エントロピデコーダ(320)は、DEMUX(310)から受け取ったエントロピコードを圧縮解除し、量子化されたスペクトル係数データを作る。エントロピデコーダ(320)は、通常、エンコーダで使用されたエントロピエンコーディング技法の逆を適用する。いくつかの実施形態のエントロピデコーディングの様々な機構を、セクションIIIからVで詳細に説明する。
逆クォンタイザ(330)は、DEMUX(310)から量子化ステップサイズを受け取り、エントロピデコーダ(320)から量子化されたスペクトル係数データを受け取る。逆クォンタイザ(330)は、量子化された周波数係数データに量子化ステップサイズを適用して、周波数係数データを部分的に再構成するか、他の形で逆量子化を実行する。
ノイズジェネレータ(340)は、DEMUX(310)から、データのブロックのどのバンドがノイズ置換されるかならびにノイズの形に関するすべてのパラメータを示す情報を受け取る。ノイズジェネレータ(340)は、示されたバンドのパターンを生成し、その情報を逆ウエイタ(350)に渡す。
逆ウエイタ(350)は、DEMUX(310)から重み付け係数を、ノイズジェネレータ(340)からすべてのノイズ置換されたバンドのパターンを、逆クォンタイザ(330)から部分的に再構成された周波数係数データを受け取る。必要に応じて、逆ウエイタ(350)は、重み付け係数を圧縮解除する。逆ウエイタ(350)は、ノイズ置換されなかったバンドの部分的に再構成された周波数係数データに重み付け係数を適用する。次に、逆ウエイタ(350)は、ノイズ置換されたバンドに関する、ノイズジェネレータ(340)から受け取ったノイズパターンを追加する。
逆マルチチャネルトランスフォーマ(360)は、逆ウエイタ(350)から再構成されたスペクトル係数データを、DEMUX(310)からチャネルモード情報を受け取る。マルチチャネルオーディオが独立にコーディングされたチャネルにある場合に、逆マルチチャネルトランスフォーマ(360)は、チャネルをパススルーする。マルチチャネルデータが共同でコーディングされたチャネルにある場合に、逆マルチチャネルトランスフォーマ(360)は、データを独立にコーディングされたチャネルに変換する。
逆周波数トランスフォーマ(370)は、マルチチャネルトランスフォーマ(360)によって出力されたスペクトル係数データならびにDEMUX(310)からのブロックサイズなどのサイド情報を受け取る。逆周波数トランスフォーマ(370)は、エンコーダで使用された周波数変換の逆を適用し、再構成されたオーディオサンプル(395)のブロックを出力する。
C.第2のオーディオエンコーダ
図4を参照すると、エンコーダ(400)は、あるサンプリング深さおよびサンプリングレートで入力オーディオサンプル(405)の時系列を受け取る。入力オーディオサンプル(405)は、マルチチャネルオーディオ(例えば、ステレオ、サラウンド)またはモノラルオーディオである。エンコーダ(400)は、オーディオサンプル(405)を圧縮し、エンコーダ(400)の様々なモジュールによって作られた情報を多重化して、WMA Proフォーマットまたは他のフォーマットなどのフォーマットでビットストリーム(495)を出力する。
エンコーダ(400)は、オーディオサンプル(405)について複数のエンコーディングモードの間で選択する。図4では、エンコーダ(400)は、混合/純ロスレスコーディングモードとロッシイコーディングモードとの間で切り替える。ロスレスコーディングモードは、混合/純ロスレスコーダ(472)を含み、通常は高品質(および高ビットレート)圧縮に使用される。ロッシイコーディングモードは、ウエイタ(442)およびクォンタイザ(460)などのコンポーネントを含み、通常は調整可能な品質(および制御されたビットレート)の圧縮に使用される。選択判断は、ユーザ入力または他の判断基準に依存する。
マルチチャネルオーディオデータのロッシイコーディングについて、マルチチャネルプリプロセッサ(410)は、オプションで、時間領域オーディオサンプル(405)をリマトリクシングする。いくつかの実施形態で、マルチチャネルプリプロセッサ(410)は、オーディオサンプル(405)を選択的にリマトリクシングして、エンコーダ(400)で1つまたは複数のコーディングされたチャネルを捨てるか、チャネル間相関を増やし、なおかつデコーダ(500)での再構成(ある形での)を可能にする。マルチチャネルプリプロセッサ(410)は、マルチチャネル後処理に関する命令などのサイド情報をMUX(490)に送ることができる。
ウィンドウイングモジュール(420)は、オーディオ入力サンプル(405)のフレームをサブフレームブロック(ウィンドウ)に区分する。ウィンドウは、時間的に変化するサイズおよびウィンドウ成形関数を有することができる。エンコーダ(400)がロッシイコーディングを使用する時には、可変サイズウィンドウが、可変時間分解能を可能にする。ウィンドウイングモジュール(420)は、区分されたデータのブロックを出力し、ブロックサイズなどのサイド情報をMUX(490)に出力する。
図4では、タイルコンフィギュアラ(422)が、マルチチャネルオーディオのフレームをチャネルごとの基礎で区分する。タイルコンフィギュアラ(422)は、品質/ビットレートが許容する場合に、フレーム内の各チャネルを独立に区分する。例えば、タイルコンフィギュアラ(422)は、時間的に同一位置にある同一サイズのウィンドウを1つのタイルとしてグループ化する。
周波数トランスフォーマ(430)は、オーディオサンプルを受け取り、図2の周波数トランスフォーマ(210)について上で説明したものなどの変換を適用することによって、これらのオーディオサンプルを周波数領域のデータに変換する。周波数トランスフォーマ(430)は、スペクトル係数データのブロックをウエイタ(442)に出力し、ブロックサイズなどのサイド情報をMUX(490)に出力する。周波数トランスフォーマ(430)は、周波数係数とサイド情報との両方を知覚モデラ(440)に出力する。
知覚モデラ(440)は、人間の聴覚系の特性をモデリングし、聴覚モデルに従ってオーディオデータを処理する。
ウエイタ(442)は、知覚モデラ(440)から受け取った情報に基づいて量子化行列の重み付け係数を生成する。ウエイタ(442)は、この重み付け係数を、周波数トランスフォーマ(430)から受け取ったデータに適用する。ウエイタ(442)は、量子化行列およびチャネル重み係数などのサイド情報をMUX(490)に出力し、量子化行列は、圧縮することができる。
マルチチャネルオーディオデータについて、マルチチャネルトランスフォーマ(450)は、マルチチャネル変換を適用することができる。例えば、マルチチャネルトランスフォーマ(450)は、タイル内のチャネルおよび/または量子化バンドのすべてではなく一部にマルチチャネル変換を選択的に柔軟に適用する。マルチチャネルトランスフォーマ(450)は、事前定義の行列またはカスタム行列を選択的に使用し、効率的な圧縮をカスタム行列に適用する。マルチチャネルトランスフォーマ(450)は、例えば、使用されたマルチチャネル変換およびタイルのマルチチャネル変換された部分を示す、MUX(490)へのサイド情報を作る。
クォンタイザ(460)は、マルチチャネルトランスフォーマ(450)の出力を量子化し、エントロピエンコーダ(470)への量子化された係数データおよびMUX(490)への量子化ステップサイズを含むサイド情報を作る。図4では、クォンタイザ(460)は、タイルごとに量子化係数を計算する適応均一スカラクォンタイザであるが、クォンタイザ(460)は、その代わりに、ある他の種類の量子化を実行することができる。
エントロピエンコーダ(470)は、全体的に図2のエントロピエンコーダ(260)を参照して上で説明したように、クォンタイザ(460)から受け取った量子化された係数データをロスレス圧縮する。いくつかの実施形態のエントロピコーディングの様々な機構(潜在的に前処理を含む)を、セクションIIIからVで詳細に説明する。
コントローラ(480)は、エンコーダ(400)の出力のビットレートおよび/または品質を規制するためにクォンタイザ(460)と共に働く。コントローラ(480)は、品質制約およびビットレート制約を満足することを目標に、クォンタイザ(460)に量子化係数を出力する。
混合/純ロスレスコーダ(472)および関連するエントロピエンコーダ(474)は、混合/純ロスレスコーディングモードに関してオーディオデータを圧縮する。エンコーダ(400)は、シーケンス全体に混合/純ロスレスコーディングモードを使用するか、フレームごと、ブロックごと、タイルごと、または他の基礎でコーディングモードの間で切り替えることができる。
MUX(490)は、エンコーダ(400)の他のモジュールから受け取ったサイド情報を、エントロピエンコーダ(470、474)から受け取ったエントロピエンコーディングされた情報と一緒に多重化する。MUX(490)は、レート制御または他の目的のための1つまたは複数のバッファを含む。
D.第2のオーディオデコーダ
図5を参照すると、第2のオーディオデコーダ(500)は、圧縮オーディオ情報のビットストリーム(505)を受け取る。ビットストリーム(505)は、エントロピエンコードされたデータならびにサイド情報を含み、このデータならびにサイド情報から、デコーダ(500)はオーディオサンプル(595)を再構成する。
DEMUX(510)は、ビットストリーム(505)内の情報を解析し、情報をデコーダ(500)のモジュールに送る。DEMUX(510)は、オーディオの複雑さの変動、ネットワークジッタ、および/または他の要因に起因するビットレートの短期変動を補償するために1つまたは複数のバッファを含む。
エントロピデコーダ(520)は、DEMUX(510)から受け取ったエントロピコードを圧縮解除し、通常、エンコーダ(400)で使用されたエントロピエンコーディング技法の逆を適用する。ロッシイコーディングモードで圧縮されたデータをデコードする時に、エントロピデコーダ(520)は、量子化されたスペクトル係数データを作る。いくつかの実施形態のエントロピデコーディングの様々な機構を、セクションIIIからVで詳細に説明する。
混合/純ロスレスデコーダ(522)および関連するエントロピデコーダ(520)は、混合/純ロスレスコーディングモードについて、ロスレスエンコードされたオーディオデータを圧縮解除する。
タイル構成デコーダ(530)は、フレームのタイルのパターンを示す情報をDEMUX(590)から受け取り、必要な場合にはこれをデコードする。タイルパターン情報は、エントロピエンコードされるか他の形でパラメータ化される場合がある。次に、タイル構成デコーダ(530)は、タイルパターン情報をデコーダ(500)の様々な他のモジュールに渡す。
逆マルチチャネルトランスフォーマ(540)は、エントロピデコーダ(520)からの量子化されたスペクトル係数データならびにタイル構成デコーダ(530)からのタイルパターン情報と、例えば使用されたマルチチャネル変換およびタイルの変換された部分を示すDEMUX(510)からのサイド情報とを受け取る。この情報を使用して、逆マルチチャネルトランスフォーマ(540)は、必要に応じて変換行列を圧縮解除し、1つまたは複数の逆マルチチャネル変換をオーディオデータに選択的に柔軟に適用する。
逆クォンタイザ/ウエイタ(550)は、DEMUX(510)からタイルおよびチャネル量子化係数ならびに量子化行列を受け取り、逆マルチチャネルトランスフォーマ(540)から量子化されたスペクトル係数データを受け取る。逆クォンタイザ/ウエイタ(550)は、受け取った量子化係数/行列情報を必要に応じて圧縮解除し、その後、逆量子化および重み付けを実行する。
逆周波数トランスフォーマ(560)は、逆クォンタイザ/ウエイタ(550)によって出力されたスペクトル係数データならびにDEMUX(510)からのサイド情報およびタイル構成デコーダ(530)からのタイルパターン情報を受け取る。逆周波数トランスフォーマ(570)は、エンコーダで使用された周波数変換の逆を適用し、ブロックをオーバーラッパー/アダー(570)に出力する。
タイル構成デコーダ(530)からタイルパターン情報を受け取るほかに、オーバーラッパー/アダー(570)は、逆周波数トランスフォーマ(560)および/または混合/純ロスレスデコーダ(522)から、デコードされた情報を受け取る。オーバーラッパー/アダー(570)は、必要に応じてオーディオデータをオーバーラップし、加算し、異なるモードを用いてエンコードされたオーディオデータのフレームまたは他のシーケンスをインターリーブする。
マルチチャネルポストプロセッサ(580)は、オプションで、オーバーラッパー/アダー(570)によって出力された時間領域オーディオサンプルをリマトリクシングする。ビットストリーム制御された後処理について、後処理変換行列は、経時的に変化し、シグナリングされ、またはビットストリーム(505)に含まれる。
E.一般化されたメディアエンコーダ
図6に、オーディオコンテンツ、ビデオコンテンツ、または他のメディアコンテンツをエンコードする一般化されたメディアエンコーダ(600)の諸部分を示す。図を単純にするために、メディアコンテンツのタイプに依存する可能性がある、エンコーダ(600)の多数のモジュールおよび多数のタイプのサイド情報は、図示されていない。
それぞれ図2および図4に示されたエンコーダ(200、400)に似て、エンコーダ(600)は、図6に示された入力が量子化されていないスペクトル係数(605)である限り、変換ベースである。しかし、いくつかの実施形態で、本明細書で説明するエントロピエンコーディング機構(例えば、セクションVで説明する機構)のうちの1つまたは複数が、いくつかの他の種類の入力について実行される。
クォンタイザ(620)は、係数(605)を量子化し、量子化された係数データを作る。例えば、クォンタイザ(620)は、適応均一スカラクォンタイザまたはある他の種類のクォンタイザとすることができる。
エントロピコーディングプリプロセッサ(640)は、エントロピコーディングの前に前処理を選択的に実行する。例えば、プリプロセッサ(640)は、セクションIIIで説明するように、量子化されたスペクトル係数に対して係数予測を実行する。あるいは、プリプロセッサ(640)は、セクションIVで説明するように、量子化されたスペクトル係数を並べ換える。代替案では、プリプロセッサ(640)は、ある他のタイプの前処理を実行する。
前処理された係数のほかに、プリプロセッサ(640)は、前処理を記述するサイド情報を出力ビットストリーム(695)に出力する。例えば、このサイド情報は、セクションIIIで説明する、係数予測で使用された予測係数を含む。あるいは、このサイド情報は、セクションIVで説明する、量子化されたスペクトル係数の並べ換えで使用された情報を含む。
エントロピエンコーダ(660)は、例えばランレベルコーディングおよびベクトル可変長コーディングを実行することによって、量子化された係数データをロスレス圧縮する。セクションVで、適応エントロピコーディングの機構を説明する。代替案では、エントロピエンコーダ(660)は、エントロピコーディング機構のある他の形または組合せを使用する。
図6は、プリプロセッサ(640)が、エントロピエンコーダ(660)に入力を供給し、エントロピエンコーダ(660)からのフィードバックなしで前処理を実行することが単純に示されているが、代替案では、エントロピエンコーダ(660)が、プリプロセッサ(640)にフィードバックを供給し、プリプロセッサ(640)は、このフィードバックを使用して前処理を調整する。例えば、プリプロセッサ(640)は、エントロピエンコーダ(660)からのフィードバックに基づいて係数並べ換えを調整し、その結果、エントロピエンコーダ(660)への入力がエントロピエンコーディングモデルにより適するようにする。
F.一般化されたメディアデコーダ
図7に、オーディオコンテンツ、ビデオコンテンツ、または他のメディアコンテンツをデコードする一般化されたメディアデコーダ(700)の諸部分を示す。図を単純にするために、メディアコンテンツのタイプに依存する可能性がある、デコーダ(700)の多数のモジュールおよび多数のタイプのサイド情報は、図示されていない。
それぞれ図3および図5に示されたデコーダ(300、500)に似て、デコーダ(700)は、図7に示された出力が再構成されたスペクトル係数(705)である限り、変換ベースである。しかし、いくつかの実施形態で、本明細書で説明するエントロピデコーディング機構(例えば、セクションVで説明する機構)のうちの1つまたは複数が、いくつかの他の種類の出力について実行される。
エントロピデコーダ(760)は、例えばランレベルデコーディングおよびベクトル可変長デコーディングを実行することによって、量子化された係数データをロスレス圧縮解除する。セクションVで、適応エントロピデコーディングの機構を説明する。代替案では、エントロピデコーダ(760)は、エントロピデコーディング機構のある他の形または組合せを使用する。
エントロピデコーディングポストプロセッサ(740)は、エントロピデコーディングの後に後処理を選択的に実行する。例えば、ポストプロセッサ(740)は、セクションIIIで説明するように、量子化されたスペクトル係数に対して係数予測を実行する。あるいは、ポストプロセッサ(740)は、セクションIVで説明するように、量子化されたスペクトル係数を並べ換える。代替案では、ポストプロセッサ(740)は、ある他のタイプの後処理を実行する。
エントロピデコードされた係数のほかに、ポストプロセッサ(740)は、後処理を記述するサイド情報をビットストリーム(795)から受け取る。例えば、このサイド情報は、セクションIIIで説明する、係数予測で使用された予測係数を含む。あるいは、このサイド情報は、セクションIVで説明する、量子化されたスペクトル係数の並べ換えで使用された情報を含む。
逆クォンタイザ(720)は、逆量子化を実行し、再構成された係数(705)データを作る。例えば、逆クォンタイザ(720)は、適応均一スカラ逆クォンタイザまたは他の種類のクォンタイザである。
III.コーディングおよびデコーディングに関するスペクトル領域の係数の予測
オーディオエンコーダは、しばしば、圧縮を達成するために、変換コーディングとそれに続く量子化およびエントロピコーディングを使用する。固定された変換が使用される場合に、オーディオ信号のいくつかのパターンについて、変換後に、隣接する係数の間に相関が残っている。そのような相関を活用してコーディング効率を高める様々な技法およびツールを、下で説明する。具体的に言うと、いくつかの実施形態で、図2、4、または6に示されたものなどのエンコーダが、エンコーディング中に、量子化されたスペクトル係数に対する係数予測を実行する。対応するデコーダ(図3、5、または7に示されたものなど)は、デコーディング中に、量子化されたスペクトル係数に対して係数予測を実行する。
A.例の問題領域
波形としてのオーディオを圧縮する通常のオーディオエンコーダでは、入力オーディオ信号が、可変ウィンドウサイズMDCTまたは可変サイズウィンドウを用いる他の変換を使用して変換される。例えば、図8aに示されたステレオオーディオのウィンドウイング分析が、図8bに示されたウィンドウ構成をもたらすと仮定する。一般に、そのようなウィンドウ構成は、デコードされた信号のプリエコーおよびポストエコーを減らす(過渡セグメントにより短いウィンドウを使用することによって)と同時に、全体的なコーディング効率を容易にする(他のセグメントにより長いウィンドを使用することによって)。ウィンドウイング分析の1つのねらいは、任意の所与のウィンドウ内の信号がほぼ静止状態になるウィンドウ境界を識別することである。
スペクトル係数は、チャネル変換の前後に量子化される。従来は、サブフレームまたは他のウィンドウのスペクトル係数は、その間に線形相関を一切有しないと仮定される。そうではなく、スペクトル係数は、通常、より高次の統計的関係を有すると仮定され、エンコーダは、エントロピコーディング中にその関係を活用することを試みる。
実際には、そのようなエンコーディングに潜在的に含まれる複数の仮定は、様々な状況で成り立たない。例えば、オーディオ信号のある種のタイプおよびパターンに関して、サブフレームまたは他のウィンドウのスペクトル係数は、必ずしも無相関ではない。ウィンドウ内の信号が静止状態になり得ないことの同一の理由の多くについて(下を参照されたい)、スペクトル係数が、線形相関を示す可能性がある。現代の波形ベースのエンコーダは、エントロピコーディングにおいてそのような相関を利用することができない。
もう1つの例として、ウィンドウイング分析が、いくつかのオーディオ信号に適用される時に、特定のウィンドウ内の信号は、必ずしも静止状態ではない。入力オーディオが、経時的に激しく変化する場合(例えば、音声信号の場合)に、短いウィンドウであっても、過渡セグメントを分離するのに不十分である場合がある。あるいは、レートコントローラ内のバッファが満杯の場合に、コントローラが、そうでなければより小さいウィンドウが使用されるはずの場合であっても、ビットレートを下げるためによりエンコーダが大きいウィンドウを使用することを強制する場合がある。あるいは、過渡が遅い場合に、ウィンドウイング分析が、その過渡を検出できず、より短いウィンドウが導入されなくなる場合がある。あるいは、ウィンドウイング分析が、フレーム内の他の過渡ではなく、フレームあたり1つの過渡だけによって導入されるプリエコーに対して保護する場合がある。あるいは、ウィンドウ内の信号が、ある他の理由から静止状態でない可能性がある。
スケール係数は、歪みのスペクトル分布を制御するのを助けることができる。しかし、歪みの時間的分布に関して、スペクトルに対する単純な量子化は、1つの完全な変換ブロックにわたって一定の歪みを導入し、この歪みが、フレームの時間セグメント内で可聴歪みを引き起こす可能性がある。
Temporal Noise Shaping(「TNS」)は、経時的に量子化ノイズを成形するのに周波数領域で予測手法を使用するMPEGのある種の変形形態のテクノロジである。TNSでは、エンコーダは、時間ウィンドウ全体にまたがる量子化ノイズのスミアを制限するために、スペクトル係数に予測フィルタを適用し、フィルタリングされた信号を量子化する。図9および10に、それぞれエンコーダおよびデコーダ内のTNSを示す。
図9を参照すると、エンコーダは、量子化されていないスペクトル係数(905)とプレディクタとの間の差を計算し、このプレディクタは、2つの以前に再構成された係数の組合せである。この組合せに関して、2つの再構成された時間遅延された係数(遅延910および912で)が、それぞれ、予測係数(911、913)を乗算され、一緒に加算される。予測係数(911、913)は、量子化され、ビットストリーム(995)に含められる。クォンタイザ(970)は、差値を量子化し、エントロピエンコーダ(990)は、ビットストリーム(995)で出力のために、量子化された差値をエントロピエンコードする。逆クォンタイザ(980)は、差値を再構成し、これをその係数(905)のプレディクタに加算する。これは、係数の再構成をもたらし、その係数は、後続係数(905)のプレディクタに寄与するために、第1遅延(910)内でバッファリングされ、その後に第2遅延(912)内でバッファリングされる。
対応するデコーダでは、エントロピデコーダ(1090)が、ビットストリーム(1095)からの差値をエントロピデコードし、逆クォンタイザ(1080)が、差値を逆量子化する。デコーダは、差値をプレディクタと組み合わせて、再構成されたスペクトル係数(1005)を作り、このプレディクタは、2つの以前に再構成された係数の組合せである。組合せの計算は、2つの遅延(1010、1012)および2つの予測係数(1011、1013)を使用し、これらの予測係数は、ビットストリーム(1095)から回復される。再構成されたスペクトル係数(1005)は、後続の係数(1005)のプレディクタに寄与するために、第1遅延(1010)内でバッファリングされ、その後に第2遅延(1012)内でバッファリングされる。
MPEG AACのTNSは、3つまでの別個の無限インパルス応答フィルタ(またはプレディクタ)を入力信号の異なるスペクトル領域に適用することを可能にする。フィルタ係数は、量子化され、ビットストリームに含められる。
MPEG AACが、短いウィンドウの使用を許容する時であっても、TNSは、短いウィンドウ内では使用されない。というのは、プレディクタ記述情報に必要な情報全体が、比較的大きく、スペクトル値のためのビットの減少をもたらすからである。したがって、TNSは、MPEG AACでは長いウィンドウについてのみ許容され、これが、TNSの有用性を制限している。
また、図9および10に示されているように、TNSでの予測は、量子化されていない/再構成された領域で行われる。その結果、デコーダは、逆量子化および予測(およびおそらくはエントロピデコーディングさえ)の動作をインターリーブしなければならず、高められた複雑さがもたらされる。さらに、量子化されていない/再構成された領域での予測に関して、TNS動作は、MPEG AACでは浮動小数点演算として指定され、これは、固定小数点実施態様で問題を引き起こす。
TNSプレディクタは、2次プレディクタであり、各スペクトル係数での予測動作に2つの乗算を必要とする。エンコーダ側では、効果的なプレディクタの設計が、難しくなる可能性があり、不安定なプレディクタは、問題になる可能性がある。
図9および10に示されたものに似たアーキテクチャを、差分パルス符号変調に使用することができ、この場合に、エンコーダは、時間サンプルとプレディクタとの間の差を計算し、このプレディクタは、予測係数およびバッファリングされた逆量子化された時間サンプルに基づく。この予測は、通常は詳細なプレディクタを使用するが、これは、設計が難しく、しばしば不安定であり、大規模なシグナリングおよび再構成ロジックを必要とする。さらに、そのような方式の圧縮効率は、良くはない。
要約すると、係数予測の技法およびツールによって対処できる、複数の問題を説明した。しかし、これらの問題のいずれかまたはすべてに対処するために、そのような係数予測の技法およびツールを適用する必要はない。
B.係数予測の例のアーキテクチャ
いくつかの実施形態で、エンコーダは、エンコーディング中に、量子化されたスペクトル係数に対して係数予測を実行し、対応するデコーダは、デコーディング中に、量子化されたスペクトル係数に対して係数予測を実行する。コンテンツのある種のパターンおよびタイプに関して、係数予測は、後続エントロピコーディングの効率を改善するために、スペクトル係数の冗長性を減らす。この予測は、可逆である、すなわち、デコーディング中に、係数予測(エントロピデコーディングに続く)は、エンコーダでの係数予測の鏡像になる。
図11に、量子化されたスペクトル係数の予測を用いるエンコーダを示す。例えば、このエンコーダは、プレディクタおよび差値を計算するためにステージを追加された、図2または4に示されたエンコーダの修正版である。あるいは、このエンコーダは、エントロピコーディングの前の前処理として係数予測を有する、図6に示されたエンコーダのエンコーダの修正版である。
図11を参照すると、エンコーダは、量子化されたスペクトル係数(1105)とプレディクタとの間の差(予測残差とも呼ばれる)を計算する。プレディクタに関して、時間遅延された量子化されたスペクトル係数(遅延1110内で)が、予測係数(1111)をかけられる。予測係数(1111)は、ビットストリーム(1195)内でサイド情報としてシグナリングされる。エントロピエンコーダ(1190)は、ビットストリーム(1195)での出力のために、差値をエントロピエンコードする。量子化されたスペクトル係数(1105)は、後続の量子化されたスペクトル係数(1105)のプレディクタを計算するために、第1遅延(1110)内でもバッファリングされる。
図12に、量子化されたスペクトル係数の予測を用いる対応するデコーダを示す。例えば、このデコーダは、プレディクタを計算し、そのプレディクタを差値と組み合わせるためにステージを追加された、図3または5に示されたデコーダの修正版である。あるいは、このデコーダは、エントロピデコーディングの後の後処理として係数予測を有する、図7に示されたデコーダの修正版である。
図12を参照すると、エントロピデコーダ(1290)は、ビットストリーム(1295)から差値をデコードする。デコーダは、プレディクタを計算し、差値をプレディクタと組み合わせ、量子化されたスペクトル係数(1205)を作る。プレディクタに関して、時間遅延された量子化されたスペクトル係数(遅延1210内で)が、予測係数(1211)をかけられる。予測係数(1211)は、ビットストリーム(1295)から解析される。量子化されたスペクトル係数(1205)は、後続の量子化されたスペクトル係数(1205)のプレディクタを計算するために、第1遅延(1210)内でもバッファリングされる。
図11および12では、エンコーダ内の予測動作および差演算と、デコーダ内の予測動作および合計演算とが、量子化された領域で行われる。これによって、動作および演算が同一領域内で行われる限り、エンコーダおよびデコーダの設計および複雑さが、単純になる。
いくつかの実施態様では、予測動作、合計演算、および差演算が、整数値に対して行われる。これは、通常、実施態様を単純にする。というのは、これらの動作および演算を、浮動小数点演算ではなく整数演算を用いて実行できるからである。予測をさらに単純にするために、−1から1までの範囲内の予測係数を、0.25の均一ステップサイズを使用して量子化することができる。その場合に、プレディクタの乗算演算を、2進シフト/加算演算を使用して実施することができる。
図11および12では、プレディクタは、1次プレディクタであり、これは、やはり、エンコーダ/デコーダ(「コーデック」)システムの複雑さを減らす。適応1次プレディクタでは、予測係数が変化し、したがって、同一の予測係数を、長期にわたって使用する必要はない。1次プレディクタに関して、安定性のテストは、自明である。例えば、エンコーダは、両端を含めて−1から+1までの範囲内になるように予測係数を単純に制約する。代替案では、プレディクタは、より高次のプレディクタである。例えば、プレディクタは、16次プレディクタの場合に16個までの予測係数を有する。
適応係数予測に関して、エンコーダは、サブフレームごとにまたはある他の基礎で予測係数を変更する。例えば、エンコーダは、サブフレームを複数の均一なサイズのセグメントに分割し、セグメントごとに予測係数を計算する。シグナリングに関して、エンコーダは、サブフレームのセグメントの個数ならびに予測係数をシグナリングする。したがって、2048個のスペクトル係数を有するサブフレームが、16個のセグメントに分割される場合に、エンコーダは、128個の係数のセグメントごとにセグメントの個数と1つの予測係数とをシグナリングする。サブフレームあたりのセグメントの個数は、1シーケンスについて1回、サブフレームごとに1回、またはある他の基礎でシグナリングされる。代替案では、セグメントが、可変長を有し、かつ/またはエンコーダが、予測係数をシグナリングするのに異なる機構を使用する(例えば、予測係数の変化だけをシグナリングするか、予測係数とその予測係数が使用されるセグメント数をシグナリングする)。
いくつかの入力について、係数予測は、性能を改善しない。セグメントごとの基礎で係数予測をディスエーブルすること(下で説明する)のほかに、エンコーダおよびデコーダは、シーケンス全体について(例えば、シーケンスレイヤオン/オフフラグを用いて)またはある他のレベルで係数予測をディスエーブルすることができる。
係数予測が、マルチチャネルオーディオに使用される場合に、係数予測は、量子化などがエンコーディング中にマルチチャネル変換より下流である時に、コーディングされたチャネルごとに行われる。デコーディング中にも、係数予測は、コーディングされたチャネルごとに行われる。したがって、そのようなマルチチャネルオーディオについて、セグメントごとまたはサブフレームごとにシグナリングされる予測情報は、通常、特定のコーディングされたチャネルのセグメントごとまたはサブフレームごとにシグナリングされる。係数予測は、シーケンスレベルまたはある他のレベルで、コーディングされたチャネルごとに選択的にディスエーブルすることができる。係数予測が、マルチチャネルオーディオに使用される時に、サブフレームごとのセグメントの個数を、コーディングされたチャネルごとに、コーディングされたチャネルのサブフレームごとに、またはある他のレベルでシグナリングすることができる。
いくつかの場合に、係数予測は、主に低周波数および中間周波数のスペクトル係数に関してエンコーディング利益をもたらす。したがって、係数予測を、より高い周波数のスペクトル係数に関して自動的にディスエーブルすることができる。あるいは、係数予測からのエンコーディング利益が、主に特定の周波数サブ範囲内のスペクトル係数に関するものである場合に、係数予測を、これらの周波数サブ範囲内で選択的にイネーブルし、それ以外の範囲でディスエーブルすることができる。
C.エンコーディング中の係数予測の例の技法
図13に、エンコーディング中に量子化されたスペクトル係数を予測する技法(1300)を示す。例えば、図11に示されたものなどのエンコーダが、この技法(1300)を実行する。代替案では、別のエンコーダが、この技法(1300)を実行する。
まず、エンコーダは、オーディオのセグメントの予測係数を計算する(1310)。一般に、エンコーダは、複数の技法のいずれかを使用して予測係数を計算する。例えば、1次プレディクタに関して、エンコーダは、可能な予測係数の網羅的探索を実行して、最終的な予測係数(例えば、最小エントロピのコーディングされたビットをもたらす予測係数)を見つける。あるいは、エンコーダは、セグメントの量子化されたスペクトル係数の相関定数(すなわち、E{x[i−l]x[i]}/E{x[i]x[i]})を計算して、予測係数を導出する。あるいは、より高次のプレディクタに関して、エンコーダは、線形予測係数アルゴリズム(例えば、自己相関および自己共分散の計算を用いる)を使用し、安定性は、要求されない。あるいは、フィルタの次数および精度が柔軟である場合に、エンコーダは、予測次数(1次、2次、3次など)、予測係数値、およびセグメントの精度を計算する。代替案では、エンコーダは、ある他の機構を使用して、予測係数を計算する。
多くの場合に、量子化されたスペクトル係数は、サブフレームのスペクトル全体にまたがって均一な相関を示さない。そのような情況で予測を改善するために、エンコーダは、スペクトルセグメントごとの基礎で予測係数を変更することができる。例えば、エンコーダは、あるサブフレームの完全なスペクトル(またはスペクトル係数の他のブロック)を複数の均一なサイズのセグメントに分割し、セグメントごとに予測係数を計算する。代替案では、エンコーダは、サブフレームまたはスペクトル係数の他のブロックの全スペクトルである1セグメントの予測係数を計算し、あるいは、ある他の形でスペクトルを分割する。
エンコーダは、セグメントの予測係数情報をシグナリングする(1320)。例えば、エンコーダは、予測係数を量子化し、これをビットストリーム内でシグナリングする。予測係数を、エントロピコーディングすることができる。エンコーダは、セグメントごとの基礎でデコーディング中に係数予測を選択的にディスエーブルするために、予測係数情報の一部としてオン/オフビットをシグナリングすることができる。表2に、−1から1までの範囲内の予測係数が0.25の均一ステップサイズを使用して量子化される実施態様での予測係数のビット表現を示す。
Figure 0005085543
代替案では、予測係数情報が、ある他の表現を使用してシグナリングされる。
上で注記したように、すべてのセグメントがスペクトル係数予測から利益を得るわけではない場合がある。0の予測係数は、あるセグメントに関する予測を効果的にディスエーブルし、プレディクタは、重みを与えられず、計算される必要がない。表2に示されたコードを用いると、0の予測係数をシグナリングするのに使用される単一のビットシンボルは、影響されるセグメントのオン/オフビットとして働く。単一ビットを用いて0のプレディクタをシグナリングすることは、0のプレディクタが最も一般的な予測係数である時にビットを節約する。
上で注記したように、より高次のプレディクタが許容される。より高次のプレディクタの予測係数情報のシグナリングに関して、例えば、エンコーダは、まず、プレディクタの次数および精度を送り、その後、予測係数を1つずつ送る。
次に、エンコーダは、スペクトル係数予測がこのセグメントに使用されるか否かを判定する(1330)。そうである場合には、エンコーダは、このセグメントの1つまたは複数の量子化されたスペクトル係数を予測し(1340)、次に、予測コーディングされた係数をエントロピコーディングする(1350)。例えば、エンコーダは、係数予測に、図11に示された遅延バッファおよび算術を使用する。代替案では、エンコーダは、ある他の予測機構を使用する(予測(1340)および後続のエントロピコーディング(1350)は、あるタイプのエントロピコーディング(1350)について反復的に進行する場合があるが、より通常、ベクトル可変長コーディング、ランレベルコーディング、またはある他のタイプのエントロピコーディングについてバッチ化される)。
エンコーダが係数予測(1340)をスキップする場合に、エンコーダは、単純に、1つまたは複数の量子化されたスペクトル係数をエントロピコーディングする(1350)。代替案では、エンコーダは、予測係数が0である時に予測コーディング経路をたどる。
次に、エンコーダは、次のセグメントに継続するのか、この技法(1300)を終了するのかを判定する(1360)。エンコーダが継続する場合に、エンコーダは、次のセグメントの予測係数を計算する(1310)、予測係数情報をシグナリングする(1320)、などを行う。
図13は、セグメントの個数が事前に決定され、シグナリングされない場合の、セグメントごとの基礎での予測係数の計算およびシグナリングを示す。代替案では、予測係数が計算されシグナリングされるセグメントの個数が、柔軟である。これは、通常、セグメント情報を指定する際のビットオーバーヘッドの増加を犠牲にして、予測精度を高める。サブフレームまたは他のブロックについて、エンコーダは、均一のまたは不均一のセグメント化(例えば、最小個数のビットをもたらす)を見つけ、セグメントの総数および/または他のセグメント化情報が、ビットストリーム内でシグナリングされる。
D.デコーディング中の係数予測の例の技法
図14に、デコーディング中に量子化されたスペクトル係数を予測する技法(1400)を示す。例えば、図12に示されたものなどのデコーダが、この技法(1400)を実行する。代替案では、別のデコーダが、この技法(1400)を実行する。
まず、デコーダは、オーディオのセグメントの予測係数情報を得る(1410)。例えば、デコーダは、ビットストリームから予測係数情報を解析し、予測係数を再構成する。予測係数がエントロピコーディングされている場合には、デコーダは、予測係数をエントロピデコードする。エンコーダが、デコーディング中に係数予測を選択的にイネーブル/ディスエーブルするために、予測係数情報の一部としてオン/オフビットをシグナリングする場合には、デコーダは、オン/オフビットを得る。したがって、デコーダは、スペクトルセグメントごとの基礎で予測係数を変更することができ、ここで、セグメントは、実施態様に応じて、サブフレームまたは他のブロックのスペクトル全体のすべてまたは一部であり、予測係数情報は、図13に関して上で説明した機構のいずれかを使用してシグナリングされる。
デコーダは、セグメントの1つまたは複数の量子化されたスペクトル係数の情報をエントロピデコードする(1420)。係数予測がエンコーディング中に使用された場合に、この情報は、量子化されたスペクトル係数の予測残差(差値)である。係数予測がエンコーディング中に使用されなかった(0のプレディクタ)場合に、この情報は、量子化されたスペクトル係数自体である。
次に、デコーダは、スペクトル係数予測がこのセグメントについて使用されたか否かを判定する(1430)。そうである場合には、デコーダは、このセグメントの量子化されたスペクトル係数を予測する(1440)。例えば、デコーダは、係数予測に、図12に示された遅延バッファおよび算術を使用する。代替案では、デコーダは、ある他の予測機構を使用する(エントロピデコーディング(1420)および予測(1440)は、あるタイプのエントロピデコーディング(1420)について反復的に進行する場合があるが、より通常、ベクトル可変長デコーディング、ランレベルデコーディング、またはある他のタイプのエントロピデコーディングについてバッチ化される)。
いくつかの場合に、デコーダは、デコーディング中に係数予測をスキップし、量子化されたスペクトル係数を単純にエントロピデコードする(1420)。代替案では、デコーダは、予測係数が0である時に、予測デコーディング経路をたどる。
次に、デコーダは、次のセグメントに継続するのか、この技法(1400)を終了するのかを判定する(1450)。デコーダが継続する場合に、デコーダは、次のセグメントの予測係数情報を得る(1410)などを行う。
図14では、セグメントの個数が、事前に決定され、シグナリングされない。代替案では、セグメントの個数および予測係数が、柔軟であり、デコーダは、エンコーダによってシグナリングされたセグメント化情報を解析する。
E.結果
一般に、量子化されたスペクトル係数の予測は、コンテンツのある種のタイプおよびパターンの後続エントロピエンコーディングの効率を改善する。例えば、予測は、隣接する係数の間の冗長性を減らし、後続ベクトル可変長コーディングおよび/またはランレベルコーディングをより効率的にする。対照的に、MPEG TNSの目的は、歪みの時間的分布を制御することである。
量子化されたスペクトル係数の予測に起因するコーディング効率の改善を測定するために、歌の大量のテストスイートを、係数予測を使用してエンコードした。通常の入力の歌について、歌のほとんどのサブフレームは、量子化された領域で係数予測を使用することによって利益をまったく得なかったが、一部のサブフレームは、非常に大きい利益を得た。例えば、いくつかのサブフレームについて作られるビット数は、量子化されたスペクトル係数の予測を用いて30%も低下した。いくつかの歌について、係数予測に伴う総ビットレート削減は、32Kb/sの公称ビットレートで動作する場合には3%であり、128Kb/sでは、総ビットレート削減は3.75%であった。歌のスイート全体では、総ビットレート削減は、約0.5%であった。
多数のタイプの予測が、コーディング利益を達成するためにより高次のプレディクタまたはより高い精度を使用するが、比較的低い精度(例えば、量子化された予測係数値あたり3ビット)を有する1次プレディクタは、ほとんどのシナリオで、量子化されたスペクトル係数に対してかなり良く動作する。量子化されたスペクトル係数は、通常は非常に小さい整数であり、したがって、予測係数精度を高めることは、予測される値を必ずしも変化させず、予測される値を必ずしもよりよいものにせず、残差値は、エントロピコーディングに関して整数であり、整数として予測値を計算することは、許容できる。さらに、スペクトル係数により高次の相関がある時であっても、そのより高次の相関は、通常、量子化によってゆがめられ、より高次のプレディクタは不要になる。
しかし、いくつかのエンコーディングのシナリオで、量子化ステップサイズが小さく、量子化されたスペクトル係数が大きい振幅を有する場合に、より高次のプレディクタおよび/またはより高精度の予測係数が、エンコーディング効率のより大きい改善をもたらすことができる。上で説明した係数予測の技法およびツールは、高次プレディクタおよび高精度予測係数を一般的な形でサポートする。
IV.スペクトル係数のインターリービングまたは並べ換え
前に注記したように、オーディオエンコーダは、しばしば、圧縮を達成するために、変換コーディングとそれに続く量子化およびエントロピコーディングを使用する。オーディオ信号のいくつかのパターンについて、周波数変換後に、スペクトル係数に周期的パターンが残っている。そのような冗長性を活用してコーディング効率を高める様々な技法およびツールを説明する。具体的に言うと、いくつかの実施形態で、図2、4、または6に示されたものなどのエンコーダが、量子化されたスペクトル係数のインターリービングまたは並べ換えを実行する。対応するデコーダ(図3、5、または7に示されたものなど)は、量子化されたスペクトル係数のインターリービングまたは並べ換えを逆転する。
A.例の問題領域
従来、サブフレームまたは他のウィンドウのスペクトル係数は、その間に線形相関をまったく有しないと仮定される。そうではなく、スペクトル係数は、通常、あるより高次の統計的関係を有すると仮定され、エンコーダは、エントロピコーディング中にその関係を活用することを試みる。
これらの仮定は、いくつかの状況では成り立たない。オーディオ信号のある種のタイプおよびパターンについて、サブフレームまたは他のウィンドウのスペクトル係数は、必ずしも無相関ではない。これは、例えば、オーディオ信号が時間領域で周期的であり、周期的信号のスペクトル係数も周期性を示すときに発生する。実際には、正弦波信号は、しばしばこの振る舞いを示し、ある種の非静止信号もそうである。
例示のために、図15aに、周期的オーディオ信号を時間領域で示し、サンプルの時系列の振幅をグラフにする。図15bに、DCT演算からの対応する量子化されたスペクトル係数を示す。図15bでは、約57個のスペクトル係数おきに強いピークの非0スペクトル係数があり、他の場所のスペクトル係数は、ほとんどが0または小さい値を有する。ランレベルコーディングまたはベクトル可変長コーディングなどの技法を使用して、この種類の周期的パターンを有するスペクトル係数を直接にエントロピコーディングすることは、効率的ではない。具体的に言うと、その前後に0の値または小さい値の係数を有するピーク係数をエンコードすることは、通常、ランレベルコーディングとベクトル可変長コーディングとの両方で、大量のビットを使用する。しかし、このタイプのピークパターンは、周期的信号に一般的である。
要約すると、係数並べ換えの技法およびツールによって対処できる、複数の問題を説明した。しかし、これらの問題のいずれかまたはすべてに対処するために、そのような係数並べ換えの技法およびツールを適用する必要はない。
B.スペクトル係数を並べ換える例のアーキテクチャ
いくつかの実施形態で、エンコーダは、エントロピコーディングの前に、量子化されたスペクトル係数に対して並べ換えを実行し、対応するデコーダは、エントロピコーディングの後に、量子化されたスペクトル係数に対して並べ換えを実行する。トーンまたは高調波を有する周期的信号などのコンテンツのある種のパターンおよびタイプに関して、並べ換えは、後続エントロピエンコーディングの効率を改善するために、スペクトル係数の冗長性を減らす。デコーディング中には、並べ換え(エントロピデコーディングに続く)は、エンコーダでの並べ換えを補償する。
図16に、量子化されたスペクトル係数の並べ換えを用いるエンコーダを示す。例えば、このエンコーダは、スペクトル係数を並べ換えるためにステージを追加された、図2または4に示されたエンコーダの修正版である。あるいは、このエンコーダは、エントロピコーディングの前の前処理として並べ換えを有する、図6に示されたエンコーダの修正版である。
図16を参照すると、エンコーダは、クォンタイザから、量子化されたスペクトル係数(1605)を受け取る。量子化されたスペクトル係数は、並べ換え/インターリービングモジュール(1680)によって処理され、並べ換え/インターリービングモジュール(1680)は、オプションでスペクトル係数(1605)の一部またはすべてを並べ換え、並べ換え情報をビットストリーム(1695)内でシグナリングする。
量子化されたスペクトル係数(1605)が、エントロピコーディング効率を改善するために活用できる周期的パターンを示すと仮定する。エントロピコーディングの前に、量子化されたスペクトル係数は、係数の周期性を考慮してインターリーブされる、すなわち並べ換えられる。例えば、並べ換えは、大きい値のピーク係数を一緒にクラスタ化し、これは、これらの係数の後続のベクトル可変長コーディングの効率を改善し、並べ換えは、他の係数(例えば、ピークの間の0の値の係数および小さい値の係数)を一緒にクラスタ化し、これは、これらの係数の後続ランレベルコーディングの効率を改善する。
スペクトル係数をインターリーブするために、エンコーダは、周期的パターンを示すセグメントに沿ってスペクトル係数をインターリーブする。単純な例として、エンコーダは、マルチパスの形で周期内の係数にまたがってブラウズし、まずめいめいの周期内で第1係数を選択し、次にめいめいの周期内で第2係数を選択し、次にめいめいの周期内で第3係数を選択し、以下同様である。エンコーダは、すべての係数が選択されるまで並べ換えを継続する。スペクトル係数の系列が、4つの周期A、B、C、およびDを含み、各周期が、4つのスペクトル係数を含むと仮定する。インターリーブの前には、この系列は、
0123012301230123
であり、インターリーブの後には、この系列は、
0000111122223333
である。
したがって、並べ換えられた系列は、まず係数0、4、8、および12があり、次に係数1、5、9、および13などがある。各周期で、第1係数だけが大きい値を有する場合に、インターリービングの後には、この系列の最初の4つの係数だけが、大きい値を有し、他の係数のすべてが、小さい値または0の値を有する。ベクトル可変長コーディングは、最初の4つの係数を効率的に圧縮し、ランレベルコーディングは、残りを効率的に処理する。
図16に戻ると、オプションの並べ換え(1680)の後に、エントロピエンコーダ(1690)は、(潜在的に並べ換えられている)スペクトル係数をエントロピコーディングする。エンコーダは、エントロピコーディングされた情報をビットストリーム(1695)内でシグナリングする。
図17に、量子化されたスペクトル係数の並べ換えを用いる対応するデコーダを示す。例えば、このデコーダは、並べ換えのためにステージを追加された、図3または5に示されたデコーダの修正版である。あるいは、このデコーダは、エントロピデコーディングの後の後処理として並べ換えを有する、図7に示されたデコーダの修正版である。
図17を参照すると、エントロピデコーダ(1790)は、量子化されたスペクトル係数の情報をビットストリーム(1795)からデコードする。ビットストリーム(1795)から解析された並べ換え情報を使用して、並べ換え/インターリービングモジュール(1780)は、オプションで、デコードされたスペクトル係数の一部またはすべてを並べ換え、オリジナルの順序の量子化されたスペクトル係数(1705)を作る。本質的に、デコーダでの並べ換えは、エンコーダで実行された並べ換えを逆転する。
上で示した例の系列では、周期長に基づく単純な並べ換えが実行される。しかし、いくつかの場合に、そのような単純な並べ換えは、セグメント内の前端の非周期的情報、特定の周期内の前端の0もしくは他のオフセット、および/または周期の始めのピーク係数のクラスタ化を考慮に入れることができない。追加の並べ換え情報(下で説明する)は、これらの現象に対処することができる。単純な数値の例を与えるために、1つのセグメントが、128個のスペクトル係数を有し、係数の一部について周期的パターンを含むと仮定する。周期的パターンは、係数10個の平均周期長を有し、第19係数で始まり、第102係数で終わる。周期長の倍数に関して、大まかな推定として、最初の並べ換えられる周期は、セグメントの第3周期(係数20〜29)であり、最後の並べ換えられる周期は、第10周期(係数90〜99)である。第3周期のオフセットは、−1であり(この周期の開始位置が第20係数ではなく第19係数にあることを示す)、第10周期のオフセットは、2である。他の周期のオフセットも、適宜シグナリングすることができる。並べ換えられる周期が、通常は複数のピーク係数から始まる場合には、並べ換えの後であっても隣接したままに保たれなければならない、周期あたりの最初の係数の個数を示す値をシグナリングすることができる。
適応係数並べ換えについて、エンコーダは、サブフレームごとまたはある他の基礎で並べ換えを変更する。例えば、エンコーダは、サブフレームを複数のセグメントに分割し、セグメントのうちの1つまたは複数について並べ換え情報を計算し、セグメント化情報ならびに並べ換え情報をシグナリングする。代替案では、エンコーダは、セグメント化および/またはシグナリングに異なる機構を使用する。
いくつかの入力について、係数並べ換えは、性能を改善しない。セグメントごとの基礎での係数並べ換えのディスエーブル(下で説明する)のほかに、エンコーダおよびデコーダは、シーケンス全体について(例えば、シーケンスレイヤオン/オフフラグを用いて)またはある他のレベルで係数並べ換えをディスエーブルすることができる。
係数並べ換えが、マルチチャネルオーディオに使用される場合に、係数並べ換えは、量子化などがエンコーディング中にマルチチャネル変換より下流である時に、コーディングされたチャネルごとに行われる。デコーディング中にも、係数並べ換えは、コーディングされたチャネルごとに行われる。したがって、そのようなマルチチャネルオーディオについて、セグメントごと、サブフレームごと、または周期ごとにシグナリングされる並べ換え情報は、通常、特定のコーディングされたチャネルのセグメントごと、サブフレームごと、または周期ごとにシグナリングされる。係数並べ換えが、マルチチャネルオーディオに使用される時に、係数並べ換えオン/オフ情報を、コーディングされたチャネルごとに、コーディングされたチャネルのサブフレームごとに、またはある他のレベルでシグナリングすることができる。
多くの場合に、係数並べ換えは、主に低周波数および中間周波数のスペクトル係数に関してエンコーディング利益をもたらす。したがって、係数並べ換えを、より高い周波数のスペクトル係数に関して自動的にディスエーブルすることができる。あるいは、係数並べ換えからのエンコーディング利益が、主に特定の周波数サブ範囲内のスペクトル係数に関するものである場合に、係数並べ換えを、これらの周波数サブ範囲内で選択的にイネーブルし、それ以外の範囲でディスエーブルすることができる。
セクションIIIで説明した係数予測を、係数並べ換えと共に使用することができるが、係数予測および係数並べ換えは、より一般的には、入力の異なるカテゴリについて別々に使用される。これらが一緒に使用される時には、係数予測は、エンコーディング中に並べ換えに続き、係数並べ換えは、デコーディング中に予測に続き、係数予測は、並べ換えられた係数のうちの少なくともいくつか(例えば、ピーク係数)に対して使用される。
C.エンコーディング中の係数並べ換えの例の技法
図18aに、エンコーディング中に量子化されたスペクトル係数を並べ換える技法(1800)を示し、図18bおよび18cに、この技法(1800)のある種の行為を実行する可能な形を詳細に示す。例えば、図16に示されたものなどのエンコーダが、この技法(1800)を実行する。代替案では、別のエンコーダが、この技法(1800)を実行する。
まず、エンコーダは、セグメントの並べ換え情報を計算する(1810)。例えば、エンコーダは、図18bに示されているように、並べ換え情報を計算する(1810)。代替案では、エンコーダは、他のおよび/または追加の並べ換え情報を計算する。
図18bを参照すると、エンコーダは、その中で係数が並べ換えられるセグメントを識別する(1812)。例えば、エンコーダは、周期的パターンを有するスペクトル係数のセグメントを見つける。例示のために、図15bでは、最初の800個程度の係数だけが、周期的パターンを有する。
エンコーダは、セグメントのいくつかの周期を並べ換えから除外することができる。例えば、最初の1つまたは2つの周期が、他の周期に似ていない場合に、その最初の1つまたは2つの周期は、並べ換えプロセスから除外される。いくつかの場合に、セグメントの最初の部分は、前端の0の係数または非周期的な係数を含む。したがって、エンコーダは、セグメント内で並べ換えなければならない最初の周期を追跡する。同様に、エンコーダは、セグメント内で並べ換えなければならない最後の周期をも追跡する。
次に、エンコーダは、セグメントの周期の長さを識別する(1814)。例えば、エンコーダは、セグメント内のピークの個数をカウントし、セグメント長をピークの個数で割る。あるいは、エンコーダは、候補周期長の網羅的探索を実行する。あるいは、エンコーダは、バイナリリファインメント手法(パラメータ空間の網羅的探索ではなく)を使用して、候補周期長を探索する。あるいは、エンコーダは、0値/小さい値の係数のランの長さを評価する。あるいは、エンコーダは、セグメントの周期長を識別するある他の機構を使用する。周期長を整数値に制限することができ、あるいは、周期長を非整数値にすることもできる。サブ整数精度を許容することは、並べ換えの効率を大幅に改善し、最終的にエントロピコーディングを再び改善することができる。
エンコーダは、他の並べ換え情報をも識別する(1816)が、これには、周期調整およびプリロール値を含めることができる。例えば、非整数周期長を許容する実施形態では、エンコーダは、次のように、他の並べ換え情報を計算する。
周期iの初期開始位置は、round(i*周期長)であり、周期iの初期終了位置は、次の周期の初期開始位置である。エンコーダは、追跡のために周期の開始位置および/または終了位置を記憶する周期位置テーブルを保持する。これは、エンコーダが、異なる位置を評価する時にこのテーブル内の周期の位置を単純に調整することをも可能にする。
具体的に言うと、エンコーダは、エントロピコーディングを改善するために、周期の開始位置および/または終了位置を初期位置から係数1つまたは複数分だけ移動することができる。例えば、周期の初期開始位置の直前に複数の大きい重要な係数がある場合に、エンコーダは、係数2つ分だけ開始位置を左にシフトし、その結果、これらの大きい重要な係数が、前の周期の終りではなくこの周期の始めに現れるようにする。代替案では、エンコーダは、並べ換えられる周期の開始位置および/または終了位置の調整量を決定する、ある他の機構を使用する。
エンコーダは、プリロール値をも選択する。プリロールは、互いに相対的に並べ換えられない、ある周期の始めにある係数を示す。一般に、ある周期の始めのピークは、1つのスペクトル係数だけではない。例えば、周期の始めに大きい値を有する複数の係数がある場合があり、そのような係数が、プリロール係数である。プリロール係数は、特殊な形でインターリーブされ、効果的に、並べ換えに関してグループとして扱われる。言い換えると、プリロール係数は、セグメントの周期に関する並べ換えの後であっても隣接している。プリロール値は、並べ換えられる周期のプリロール係数の個数(例えば、1、2、3)を示す。あるいは、セグメントごとにプリロールを計算するのではなく、エンコーダは、並べ換えられる周期ごとにプリロールを計算する。
代替案では、エンコーダは、ある他の機構を使用して、他の並べ換え情報を識別する(1816)。
図18aに戻って、エンコーダは、セグメントの並べ換え情報をビットストリーム内でシグナリングする(1830)。例えば、エンコーダは、図18bに示されているように計算された並べ換え情報について、図18cに示されているように並べ換え情報をシグナリングする(1830)。代替案では、エンコーダは、他のおよび/または追加の並べ換え情報をシグナリングする。
図18cを参照すると、エンコーダは、並べ換えのオン/オフビットをシグナリングする(1832)。例えば、エンコーダは、係数並べ換えが使用される時のビットコストを、係数並べ換えが使用されない時のビットコストと比較する。エンコーダは、よりよい性能を提供するモードを選択し、エンコーダは、どのモードが選択されるかを示すのに、セグメントあたり単一のビットを使用する。代替案では、エンコーダは、ある他の機構を使用しておよび/またはセグメント全体以外のある持続時間についてオン/オフ情報をシグナリングする。
並べ換えが使用される(判断1834からの「yes」分岐)場合に、エンコーダは、周期長をシグナリングする(1836)。非整数周期長が許容されるときには、周期長を、整数部分および分数部分を用いて表すことができ、この両方が、ビットストリーム内でシグナリングされる。整数周期長(または非整数周期長の整数部分)は、log2(最大周期長)ビットを有する固定長コード[「FLC」]としてシグナリングされる。例えば、最大周期長は、128であり、整数周期長は、log2(128)=7ビットを用いてシグナリングされる。分数部分は、3ビットFLCを用いてシグナリングすることができる。代替案では、周期長が、別の機構を用いてシグナリングされる。
エンコーダは、係数が並べ換えられる最初の周期をもシグナリングする(1838)。事実上、これは、おおむね、並べ換えの開始位置を示す。最初の並べ換えられる周期は、周期長の単位で表すことができる。最初の並べ換えられる周期は、例えば3ビットFLCを用いてシグナリングされ、この場合に、最初の並べ換えられる周期は、セグメント内の第1周期から第8周期までのいずれかの周期である。代替案では、最初の並べ換えられる周期が、別の機構を用いてシグナリングされる。
エンコーダは、係数が並べ換えられる最後の周期をもシグナリングする(1840)。最後の並べ換えられる周期は、周期長の単位で表すことができる。最後の並べ換えられる周期は、例えばlog2(周期の最大個数)ビットを有するFLCを用いてシグナリングされる。エンコーダは、セグメント内の係数の個数および周期長から周期の最大個数を導出する。代替案では、最後の並べ換えられる周期が、別の機構を用いてシグナリングされる。
エンコーダは、位置調整をシグナリングする(1842)。係数が並べ換えられる周期について、エンコーダは、初期開始位置および/または初期終了位置に対する相対的なオフセットを示す情報をシグナリングする。例えば、1つの調整値が、周期ごとにシグナリングされ、その調整値は、係数の個数としてシグナリングされる。そのような調整値は、log2(オフセット範囲)ビットを有するFLCとしてシグナリングすることができる。したがって、オフセット範囲が16である場合に、調整値は、係数−8…7個分の調整範囲について、log2(16)=4ビットを用いてシグナリングされる。代替案では、調整値は、別の機構を用いてシグナリングされる(例えば、以前の調整値に対する相対的な調整値(絶対項ではなく)のシグナリング、またはすべての周期に関する1つの調整のシグナリング)。
エンコーダは、プリロール値をもシグナリングする(1844)。ある個数の係数のプリロール値は、log2(最大プリロール+1)ビットを有するFLCとしてシグナリングされる。例えば、最大プリロール長は、3(0、1、2、または3のプリロールについて)であり、このプリロール値は、log2(4)=2ビットを用いてシグナリングされる。代替案では、プリロール値は、別の機構を用いてシグナリングされる。
図18aに戻って、エンコーダは、係数並べ換えを使用するか否かを決定する(1860)。使用しない場合には、エンコーダは、ベクトル可変長コーディング、ランレベルコーディング、またはある他のエントロピコーディングを使用して、セグメントの量子化されたスペクトル係数を単純にエントロピエンコードする(1880)。その一方で、係数並べ換えが使用される場合には、エンコーダは、セグメントの係数の少なくともいくつかを並べ換え(1870)、ベクトル可変長コーディング、ランレベルコーディング、またはある他のエントロピコーディングを使用して、(選択的に)並べ換えられた係数をエントロピエンコードする(1880)。例えば、エンコーダは、図18bに示されているように計算され、図18cに示されているようにシグナリングされる並べ換え情報について、次のように並べ換え(1870)を実行する。
要約すると、エンコーダは、係数を並べ換え、それらの係数を新規係数バッファに(または、並べ換えプロセスがバッファリングに余分なリソースを使用しないようにするために、エントロピコーダに直接に)出力する。エンコーダは、係数が並べ換えられる周期の開始位置および/または終了位置を示すテーブル(上で説明した)をブラウズする。一般に、エンコーダは、最初のそのような周期から最後のそのような周期までループする。
ある周期について、エンコーダは、並べ換えでまだ処理されていない最初の係数を見つける。その係数が、プリロール領域内にある場合には、エンコーダは、その係数と1つまたは複数のそれに続くプリロール係数を、そのオリジナルの順序で出力する。そうでない場合には、エンコーダは、まだ処理されていない最初の係数だけを出力する。次に、エンコーダは、その周期内の処理済みのすべての係数を、処理済みとしてマークする。エンコーダは、次の周期の最初の未処理の係数に継続する。
ある周期について、未処理の係数がない場合には、エンコーダは、単純に次の周期に移動する。
エンコーダは、1回の反復で最初から最後まですべての周期をチェックした後に、最初の周期から繰り返す。最終的に、エンコーダは、並べ換えられなければならない複数の周期の係数のすべてを処理する。セグメント内の係数が並べ換えられない時に、エンコーダは、単純に、これらの係数を新規係数バッファにコピーする(またはこれらを適当な時にエントロピコーダに直接に送る)ことができる。
代替案では、エンコーダは、ある他の機構を使用して並べ換え(1870)を実行する。あるいは、エンコーダは、他のおよび/または追加の並べ換え情報に従って並べ換え(1870)を実行する。
次に、エンコーダは、次のセグメントに継続するのか、この技法(1800)を終了するのかを判定する(1890)。エンコーダが継続する場合に、エンコーダは、次のセグメントの並べ換え情報を計算する(1810)、並べ換え情報をシグナリングする(1820)、などを行う。
図18aから図18cは、別々であり、並べ換え情報をシグナリングする行為より前の、並べ換え情報を計算する行為を示すが、代替案では、これらの行為が、互いとまたは他の行為とインターリーブされる。
D.デコーディング中に係数を並べ換える例の技法
図19aに、デコーディング中に量子化されたスペクトル係数を並べ換える技法(1900)を示し、図19bおよび19cに、技法(1900)のある種の行為を実行する可能な形を詳細に示す。例えば、図12に示されたものなどのデコーダが、技法(1900)を実行する。代替案では、別のデコーダが、技法(1900)を実行する。
まず、デコーダは、セグメントの並べ換え情報を得る(1910)。デコーダは、通常、インターリービング/並べ換えで使用するために、ビットストリームからサイド情報を読み取る。例えば、デコーダは、図18cに示されているようにシグナリングされた並べ換え情報について、図19bに示されているように並べ換え情報を得る(1910)。代替案では、デコーダは、他のおよび/または追加の並べ換え情報を得る。
図19bを参照すると、デコーダは、ビットストリームから並べ換えのオン/オフビットを解析する(1912)。例えば、デコーダは、ビットストリームから単一のビットを読み取り、ここで、この単一のビットは、係数並べ換えを用いるモードまたは係数並べ換えを用いないモードのどちらを使用すべきかを示す。代替案では、オン/オフ情報は、ある他の機構を使用してシグナリングされ、解析され、かつ/またはセグメント全体以外のある持続時間に関する。
係数並べ換えが使用される(判断1914からの「yes」分岐)場合に、デコーダは、ビットストリームから周期長を解析する(1916)。非整数周期長が許容されるときには、周期長を、整数部分および分数部分を用いて表すことができ、この両方が、ビットストリームから解析される。整数周期長(または非整数周期長の整数部分)は、log2(最大周期長)ビットを有するFLCとして表される。代替案では、周期長が、別の機構を用いてシグナリングされる。
デコーダは、ビットストリームから、係数が並べ換えられる最初の周期をも解析し(1918)、これは、おおむね、並べ換えの開始位置を示す。最初の並べ換えられる周期は、周期長の単位で表すことができる。最初の並べ換えられる周期は、例えば3ビットFLCを用いて表される。代替案では、最初の並べ換えられる周期が、別の機構を用いてシグナリングされ、解析される。
デコーダは、係数が並べ換えられる最後の周期をもビットストリームから解析する(1940)。最後の並べ換えられる周期は、周期長の単位で表すことができる。最後の並べ換えられる周期は、例えばlog2(周期の最大個数)ビットを有するFLCとしてシグナリングされ、ここで、デコーダは、セグメント内の係数の個数および周期長から周期の最大個数を導出する。代替案では、最後の並べ換えられる周期が、別の機構を用いてシグナリングされ、解析される。
周期長、最初の並べ換えられる周期、および最後の並べ換えられる周期があれば、デコーダは、周期位置テーブルを満たす情報を有し、この周期位置テーブルは、追跡のために周期の開始位置および/または終了位置を記憶する。したがって、デコーダは、対応するエンコーダによって使用された周期位置テーブルを再作成することができる。
デコーダは、位置調整をビットストリームから解析する(1922)。係数が並べ換えられる周期について、デコーダは、初期開始位置および/または初期終了位置に対する相対的なオフセットを示す情報を解析する。例えば、1つの調整値が、周期ごとに解析され、その調整値は、係数の個数として表される。そのような調整値は、log2(オフセット範囲)ビットを有するFLCとして表すことができる。代替案では、調整値は、別の機構を用いてシグナリングされ、解析される。
位置調整情報があるので、デコーダは、周期位置テーブル内の周期の開始位置および/または終了位置を調整するための情報を有する。
デコーダは、プリロール値をも解析する(1924)。ある個数の係数のプリロール値は、log2(最大プリロール+1)ビットを有するFLCとして表される。代替案では、プリロール値は、別の機構を用いてシグナリングされ、解析される。
図19aに戻って、デコーダは、ベクトル可変長デコーディング、ランレベルデコーディング、またはある他のエントロピデコーディングを使用して、ビットストリームから係数情報をエントロピデコードする(1930)。エンコーディングで並べ換えが使用されなかった場合には、デコーダは、セグメントの量子化されたスペクトル係数をそのオリジナルの順序でエントロピデコードする(1930)。その一方で、エンコーディングで並べ換えが使用された場合には、デコーダは、並べ換えられた量子化されたスペクトル係数をエントロピデコードする(1930)。
デコーダは、係数並べ換えがデコーディング中に使用されるか否かも決定する(1960)。係数並べ換えがデコーディング中に使用される場合には、デコーダは、エントロピデコードされたセグメントの係数のうちの少なくともいくつかを並べ換える(1970)。例えば、デコーダは、図19bに示されているように、取り出された並べ換え情報について、次のように並べ換え(1970)を実行する。
デコーダは、セグメントの並べ換え情報(例えば、周期長、最初の並べ換えられる周期、最後の並べ換えられる周期)から周期位置テーブルを生成し(1972)、このテーブルに周期調整を適用する(1974)。このテーブルには、並べ換えで使用される周期の開始位置および/または終了位置が格納される。代替案では、デコーダは、テーブル生成プロセスをスキップするか、ある他のテーブル構造を使用する。
次に、デコーダは、周期位置テーブルおよびプリロール値を使用して係数を並べ換える(1976)。要約すると、デコーダは、係数を並べ換え、係数を新規係数バッファに出力し、エンコーディング中に実行された並べ換えを逆転する(代替案では、デコーダは、エントロピデコーダの出力を直接に並べ換えることができ、したがって、係数バッファリングのための追加リソースは使用されない)。デコーダは、周期位置テーブル(上で説明した)を使用し、この周期位置テーブルは、係数を並べ換えなければならない周期の開始位置および/または終了位置を示す。一般に、デコーダは、エントロピデコードされたスペクトル係数を、エントロピデコーディングから生じる順序で処理する。例えば、最初に並べ換えられる周期の位置には、デコーダは、最初の未処理の係数ならびに最初の並べ換えられる周期のプリロール領域のすべての未処理の係数を置く。次に、第2の並べ換えられる周期の位置には、デコーダは、次の未処理の係数ならびに第2の並べ換えられる周期のプリロール領域のすべての未処理の係数を置く。デコーダは、最後の並べ換えられる周期までの周期のそれぞれについて、このプリロール処理を繰り返す。その後、デコーダは、ある並べ換えられる周期が充たされている場合には、その並べ換えられる周期をスキップして、連続する未処理の係数を第1、第2、第3などの並べ換えられる周期に置く。最終的に、デコーダは、並べ換えられなければならない周期の係数のすべてを処理する。セグメント内の係数が並べ換えられないときには、デコーダは、これらの係数を新規係数バッファ内の対応する位置に単純にコピーすることができる。
代替案では、デコーダは、ある他の機構を使用して並べ換え(1970)を実行する。例えば、周期位置テーブルおよびプリロール値を使用して、デコーダは、エントロピデコードされた係数をブラウズし、最初の並べ換えられる周期のスペクトル係数を選択し、出力する。次に、エンコーダは、エントロピデコードされた係数をブラウズし、第2の並べ換えられる周期のスペクトル係数を選択し、出力し、以下、最後の並べ換えられる周期まで同様である。あるいは、デコーダは、他のおよび/または追加の並べ換え情報に従って並べ換え(1970)を実行する。
次に、デコーダは、次のセグメントに継続するのか、この技法(1900)を終了するのかを判定する(1990)。デコーダが継続する場合に、デコーダは、次のセグメントの並べ換え情報を得る(1810)、などを行う。
図19aから19cは、別々であり、並べ換えの他の行為より前の、並べ換え情報を得る行為を示すが、代替案では、これらの行為が、互いとまたは他の行為とインターリーブされる。
E.結果
一般に、量子化されたスペクトル係数の並べ換えは、周期的信号の後続エントロピエンコーディングの効率を改善する。例えば、並べ換えは、類似する値を有する係数をローカルにグループ化し、後続のベクトル可変長コーディングおよび/またはランレベルコーディングをより効率的にする。
上で説明した並べ換えは、実施が相対的に単純であり、低い計算複雑さを有する。メモリ使用量に関して、いくつかの実施態様で、並べ換え動作によって要求される唯一の余分なメモリは、周期位置テーブルであり、これは非常に小さい。
図20に、係数並べ換えの後の図15bのスペクトル係数を示す。周期長は、56.7である。並べ換えは、位置114(セグメントの第3周期が始まる)から始まり、並べ換えは、位置1021付近(セグメントの第18周期が終わる)で終わる。プリロールは、このセグメントの周期について3である。並べ換えの後に、位置250付近までの係数は、ベクトル可変長コーディングのために良好にセットアップされ、その後の係数は、ランレベルコーディングのために良好にセットアップされる。
並べ換えに帰することができるコーディング利益は、信号の周期性に依存する。信号が、時間領域で周期的である場合には、しばしば、スペクトル係数の並べ換えからの大きい利益がある。そうでない場合には、コーディング利益は、通常はより小さいか存在しない。図21に、周期的信号に関する、1つの例のオーディオファイルのサブフレームあたりの並べ換えに起因するコーディング利益を示す。サブフレームの最大の利益は、40%を超え、このファイルの平均利益は、約11%である。
V.適応コーディング/デコーディングでの複数のエントロピモデルの選択的使用
いくつかの実施形態で、図2、4、または6に示されたものなどのエンコーダは、エンコーダが複数のエントロピモデルを選択的に使用する適応エントロピコーディングを実行する。対応するデコーダ(図3、5、または7に示されたものなど)は、デコーダが複数のエントロピモデルを選択的に使用する適応エントロピデコーディングを実行する。複数のエントロピモデルを選択的に使用する技法およびツールは、オーディオ、ビデオ、イメージ、または任意の他のデータのロスレスおよびロッシイの圧縮および圧縮解除を含む、シンボル値が複数の確率分布を有する様々なシナリオに適用可能である。
A.例の問題領域
シンボルの適応コーディングは、しばしば、シンボル値の確率分布が変化する時にエントロピコーディングの効率を改善するのに使用される。適応算術コーディングは、異なるまたは変化する確率分布を直接に使用することができる。適応可変長コーディング(適応ハフマンコーディングなど)について、シンボル値に関する異なるエントロピモデルは、異なるまたは変化するVLCテーブル内で実施される。
逆方向適応に関して、コーディング/デコーディングは、既に処理されたシンボルに基づいて適応する。順方向適応に関して、適応を記述する情報が、明示的にシグナリングされる。例えば、テーブル切替コードが、シンボルの系列に使用されるVLCテーブルを示すためにシグナリングされる。
適応は、確率分布(または、可変長コーディング/デコーディングに使用される対応するVLC)を動的に変更することによって達成することができる。あるいは、適応は、異なる事前にトレーニングされた確率分布(または対応するVLCテーブル)の固定されたセットから選択することによって達成することができる。
複数の異なる分布/VLCテーブルを使用することの1つの欠点は、エンコーダおよびデコーダに必要なメモリである。というのは、使用されるメモリが、分布/VLCテーブルの個数に伴って線形に増加するからである。例えば、16個のVLCテーブルが使用される場合に、単一のVLCテーブルの場合と比較して、約16倍のメモリが、エンコーダおよびデコーダ内のVLCテーブルのために使用される。
要約すると、複数のエントロピモデルの選択的使用の技法およびツールが対処できる問題を説明した。しかし、この問題に対処するために、そのような技法およびツールを適用する必要はない。
B.複数のエントロピモデルの選択的使用
複数のエントロピモデルを選択的に使用することによって、複数の分布/VLCテーブルのためのリソース使用量を大幅に減らすことができる。それと同時に、複数のエントロピモデルの使用に関連するエンコーディング利益の多くを、それでも達成することができる。様々な一般的なシナリオで、複数のエントロピモデルの選択的使用は、すべてではなくいくつかのシンボル値について異なる分布/VLCテーブルの間で選択することを含む。より一般的には、これは、いくつかのシンボル値に関するより多くの適応性および他のシンボル値に関するより少ない適応性を可能にするために階層的に編成された異なる分布/VLCテーブルの間で選択することを含む。
シンボル値のある集合が、あるテストに従って、ある種の可能性のより高いシンボル値とある種の可能性のより低いシンボル値とを含むと仮定する。分布/テーブルに使用されるメモリを減らすために、エンコーダおよびデコーダは、可能性のより高いシンボル値に複数の分布/テーブルを使用するが、可能性のより低いシンボル値は、複数の分布/テーブルでは表されない。これは、コーディング利益に対する無視できるペナルティを伴って、複数の分布/テーブルに使用されるメモリを減らす(多くの情況で、シンボル値の比較的小さい分数が、確率分布の大きいパーセンテージを占める)。具体的に言うと、エントロピモデルが、適応の所与の状態に関する条件とみなされる場合に、めいめいの異なる状態に、可能性のより高いシンボル値の異なる分布がある。しかし、可能性のより低いシンボル値の相対分布は、異なる状態において同一である。
256個のシンボル値の集合について、シンボル値のうちの32個が、ほとんどの場合に使用される場合に、エンコーダおよびデコーダは、その32個のシンボル値のための6個のVLCテーブルの間で切り替えることができ、ここで、6個のVLCテーブルのそれぞれは、他の224個のシンボル値のための単一のVLCテーブルに切り替えるエスケープコードをも含む。
あるいは、256個のシンボル値の集合について、シンボル値のうちの7つが、ほとんどの場合に使用され、シンボル値のうちの21個が、時折使用され、残りのシンボルが、希に使用されるのみであると仮定する。エンコーダおよびデコーダは、7つの最も一般的なシンボル値のための11個のVLCテーブルの間で切り替えることができ、ここで、11個のVLCテーブルのそれぞれは、21個の次に一般的なシンボル値のための2つのVLCテーブルに切り替える1つのエスケープコードを含む(このエスケープコードに、順方向適応のためのテーブル選択情報を続けることができる)。21個のシンボル値のための2つのVLCテーブルのそれぞれは、残りのシンボル値のための1つのVLCテーブルに切り替えるエスケープコードを含む。
図22に、エントロピモデル/状態(例えば、分布、VLCテーブル)の階層編成に関してより複雑な例を示す。エンコーダおよびデコーダは、シンボル値B、F、H、およびIのために8つのエントロピモデルを使用し、ここで、8つのエントロピモデルのそれぞれは、2つの切替点をも組み込まれている。例えば、エンコーダおよびデコーダが、エントロピモデルについて確率分布を使用する場合に、切替点は、分布内の特殊な切替確率値である。エンコーダおよびデコーダが、エントロピモデルについてVLCを使用する場合に、切替点は、エスケープコードまたは他の特殊なVLCである。8つのエントロピモデル内で、第1の切替点は、シンボル値AおよびCのエントロピモデルへの切替用であり、第2の切替点は、シンボル値D、E、G、J、およびKのエントロピモデルへの切替用である。
エンコーダおよびデコーダは、シンボル値AおよびCに3つのエントロピモデルを使用する。エンコーダおよびデコーダは、シンボル値E、J、およびKに4つのエントロピモデルを使用し、ここで、この4つのエントロピモデルのそれぞれは、切替点をも組み込まれている。この切替点は、シンボル値DおよびGのエントロピモデルへの切替用である。
図22では、シンボル値の部分集合は、その超集合より少数の関連するエントロピモデルを有する。これは、可能性のより高いシンボル値についてより多くの適応性がイネーブルされ、可能性のより低いシンボル値についてより少ない適応性がイネーブルされる、多数の一般的なシナリオと一貫する。しかし、その代わりに、部分集合が、その超集合より多数の関連するエントロピモデルを有することができる。
複数のエントロピモデルの間での選択は、逆方向適応機構または順方向適応機構を介するものとすることができる。複数のエントロピモデル自体は、固定されたモデルまたは事前にトレーニングされるモデルとすることができ、あるいは、動的に変更することができる。エントロピモデルは、様々なエントロピコーディング方式およびエントロピデコーディング方式に適用することができる。算術コーディングおよび算術デコーディングは、すべてではなく一部のシンボル値について複数の確率分布を選択的に使用することができる。あるいは、可変長コーディングおよび可変長デコーディングは、すべてではなく一部のシンボル値について複数のVLCテーブルを使用することができる。
1.状態に関する分布の調整
エンコーダまたはデコーダが、一部のシンボル値(すべてのシンボル値ではなく)について複数のエントロピモデルを選択的に使用するために、複数のエントロピモデルが、それ相応に調整される。次の分析は、単純な例を参照して、状態の集合に関する実際の確率分布に対する調整を例示するものである。
X(i)=X(0),X(1),...,X(M−1)というラベルを付けられたM個のシンボル値の分布を適応させるために、S(j)=S(0),S(1),...,S(N−1)というラベルを付けられたN個の状態があると仮定する。
Sは、状態に関する確率分布を示し、PS(j)は、状態がS(j)である確率である。PS(j),Xは、状態S(j)である時のシンボル値の確率分布を示し、PS(j),X(i)は、状態S(j)である時にシンボルが値X(i)を有する確率である。M個のシンボル値のうちで、L個のシンボル値が、可能性がより高いものとして指定され、M−L個のシンボル値は、可能性がより低いものとして指定される。L個の可能性がより高いシンボル値の集合が、集合Qであり、M−L個の可能性がより低いシンボル値の集合が、集合Rである。
可能性のより低いシンボル値に対する可能性のより高いシンボル値の指定は、実施態様依存であり、柔軟であるが、正しい指定は、より効率的なコーディングにつながる。すべての状態S(j)についてPS(j),X(q)>PS(j),X(r)であることは要求されず、ここで、X(q)は、Qに含まれるシンボル値を示し、X(r)は、Rに含まれるシンボル値を示す。言い換えると、所与の「可能性のより高い」シンボル値が、すべての状態において、所与の「可能性のより低い」シンボル値より高い確率を有することは、要求されない。
状態S(j)の改訂された分布P’S(j),Xは、状態S(j)の実際のシンボル値分布PS(j),Xを近似する。P’S(j),Xは、(1)集合Rに含まれるシンボル値X(i)の条件付き分布P’S(j),X(i),Rが、すべてのS(j)について同一であるが、(2)集合Qに含まれるシンボル値の分布が、任意の所与のS(j)について変化しないように、PS(j),Xを近似する(集合Qに含まれるシンボル値X(i)についてP’S(j),X(i)=PS(j),X(i)である)。
N=3であり、M=5であると仮定する。状態の集合は、N={S(0),S(1),S(2)}であり、シンボル値の集合は、M={X(0),X(1),X(2),X(3),X(4)}である。
また、状態確率が、表3に示されているようにPS(0)=0.5、PS(1)=0.2、PS(2)=0.3であると仮定する。したがって、状態0である確率は、50%であり、状態1である確率は、20%であり、状態2である確率は、30%である。
Figure 0005085543
表4に、状態のそれぞれでのシンボル値の実際の確率分布PS(j),X(i)を示す。
Figure 0005085543
任意の閾として、シンボル値X(i)は、状態のいずれかについて、その状態でのシンボル値の確率に、その状態である確率を賭けた値が0.1より大きい場合に、可能性のより高い集合Qに属すると仮定する。すなわち、任意のS(j)について、所与のX(i)についてPS(j),X(i)*PS(j)>0.1である場合に、シンボル値X(i)は、集合Qに含まれる。そうでない場合には、シンボル値X(i)は、集合Rに含まれる。表4の分布に関して、L=2、Q={X(1),X(3)}、かつR={X(0),X(2),X(4)}である(PS(2),X(0)>PS(2),X(1)の場合であっても、シンボルX(1)が、可能性のより高いシンボル値として指定され、シンボル値X(0)が、可能性のより低いシンボル値として指定されることに留意されたい。状態S(1)では、X(1)は非常に高い確率を有する)。代替案では、閾値および/またはテストが異なる。例えば、閾が、シンボル値のパーセンテージに関してセットされ、あるいは、テストが、複数の異なる状態での高い確率を要求する。一般に、集合QおよびRのサイズに関する所与の制約に関して、最適区分を、実際の分布と近似分布との間の相対エントロピを調べることによって見つけることができる(一般に、本明細書で使用される時に、用語「最適」は、あるパラメータ化またはモデリングに従って、他の解よりよい、判断基準のある集合を満足する解を記述し、これは、状況によって絶対項において最適である場合もそうでない場合もあり、用語「最適化」は、そのような解を見つけるプロセスを示すのに使用される)。
近似において、集合Qに含まれるシンボル値X(i)について、P’S(j),X(i)=PS(j),X(i)である。状態S(j)に関する分布は、集合Qに含まれるシンボル値については変更されない。しかし、集合Rに含まれるシンボル値X(i)について、近似分布は異なる。まず、集合Rに含まれるシンボル値の実際の条件付き分布PS(j),X(i),Rを計算する。集合Rに含まれるシンボル値について、実際の条件付き分布(集合Qに含まれるシンボル値X(1)、X(3)の寄与を除去し、X(0)、X(2)、X(4)からの寄与だけを用いて重みを付けた)を、表5に示す。PS(0),X(0),Rは、0.09/(0.09+0.04+0.07)=0.45であり、PS(0),X(1),Rは、0.04/(0.09+0.04+0.07)=0.2である。
Figure 0005085543
次に、近似条件付き分布P’S(j),X(i),Rは、
Figure 0005085543
として計算される。
すなわち、集合Rに含まれる時の近似条件付き分布は、N個の状態にまたがる実際の条件付き分布PS(j),X(i),Rの加重平均(PS(j)による)である。表4および5の値について、集合Rに含まれる時の近似条件付き分布P’S(j),X(i),Rを、表6に示す。X(0)について、P’S(j),X(0),Rは、(0.5*0.45)+(0.2*0.55)+(0.3*0.55)=0.5である。
Figure 0005085543
各状態S(j)の最終的な近似分布は
Figure 0005085543
である。
したがって、集合Qに含まれるシンボル値について、状態S(j)での実際の確率値が、状態S(j)の近似分布に使用される。集合Rに含まれるシンボル値について、そのシンボル値の近似条件付き分布確率P’S(j),X(i),Rは、状態S(j)の集合Rに含まれるそのシンボル値の実際の確率の合計を乗算される。シンボル値X(0)および状態S(0)について、P’S(0),X(0)は、0.5*(0.09+0.04+0.07)=0.1である。表4および6の他の値について、状態S(j)に関する最終的な近似確率分布を、表7に示す。
Figure 0005085543
基本的に、表7を表4と比較すると、分布は、可能性のより高いシンボル値X(1)、X(3)については変更されず、分布は、集合Rに含まれるシンボル値の相対確率が状態の間で同一であるという条件を実施するために、可能性のより低いシンボル値X(0)、X(2)、X(4)について変更されている。すなわち、表7の各状態で、X(0)は、X(2)より2倍可能性が高く、X(0)は、X(4)より2倍可能性が高い。
一般的な場合について、M個のシンボル値のN個の状態から出発すると、シンボル値のいくつか(集合R)に関する状態の個数は、集合RのN個の条件付き分布をP個の分布にクラスタ化することによって減らすことができ、ここで、P<Nである。次に、この手順を、M個のシンボル値のある他の部分集合について繰り返すことができる。この手順を、集合RのP個のクラスタ化された分布に対して再帰的に繰り返すこともでき、ここで、集合Rは、P個の状態と共に|R|個のシンボル値を有する(|R|は、集合Rの濃度すなわち要素数を表す)。これは、M個のシンボル値のN個の状態(または分布、あるいはクラスタ)に制約を課す。これらの制約は、M個のシンボル値のN個の状態が固定された後に適用することができ、あるいは、より多くの最適性のために、トレーニングフェーズ自体の間に適用することができる。トレーニングは、M個のシンボル値の多数の分布から出発し、条件付き分布に対する余分の制約を満足するN個のクラスタ化された分布をもたらす。
2.例のVLCテーブル
異なる状態のシンボル値の近似分布は、ハフマンコーディングおよびデコーディングならびに他の可変長コーディングおよびデコーディングを含む、様々なタイプの適応エントロピコーディングおよび適応エントロピデコーディングに使用することができる。
ハフマンコードテーブルは、ツリーとみなすことができ、このツリーの各葉は、1つのシンボル値に対応する。このツリーの左の枝は、1つのバイナリ値(例えば0)との関連を有し、このツリーの右の枝は、反対のバイナリ値(例えば1)との関連を有する。図23に示されたツリーは、表7に示された近似分布に対応する。
図23では、めいめいのツリーの破線部分は、集合Rに含まれるシンボル値に関し、ツリーの他の部分は、集合Qに含まれるシンボル値に関する。表7に示された近似分布では、集合Rに含まれるシンボルの条件付き分布は、状態にかかわりなく同一であり、したがって、図23のツリーのそれぞれは、集合Rに含まれるシンボル値について共通の同一の枝を有することができる。共通の同一の枝の配置は、一般に、その共通の枝で表されるシンボル値の確率の集団がそのツリーの他のシンボル値の確率にどのように匹敵するかに応じて、ツリー内の任意の位置に置くことができる。したがって、共通の枝が、ツリーによってより上位またはより下位になる可能性がある。
図23の任意の所与のツリー/状態に関して、集合Rに含まれるすべてのシンボル値のVLCは、そのツリーの枝の配置によって示されるものと同一のプレフィックスを有する。さらに、図23での状態とかかわりなく、集合Rに含まれる各シンボル値は、共通の同一の枝によって示されるものと同一のサフィックスを有する。図23のツリーに関して、例のハフマンコードは、次の通りである。
Figure 0005085543
同一のテーブルを、状態S(0)およびS(1)に使用することができる。状態S(0)およびS(1)では、集合Rに含まれるシンボル値の共通のプレフィックス(下線付きで示す)は、集合Rに含まれるシンボル値にかかわりなく「11」である。状態S(2)では、集合Rに含まれるシンボル値の共通のプレフィックス(下線付きで示す)は、「10」である。状態S(0)、S(1)、およびS(2)では、めいめいのシンボル値の共通のサフィックス(太字で示す)は、同一である(X(0)のサフィックスは、「0」であり、X(1)のサフィックスは、「10」であり、X(2)のサフィックスは、「11」である)。
この場合に、近似分布のハフマンコードは、集合Rに含まれるシンボル値の2ステージコーディング/デコーディングを容易にし、これと共に実施することができる。表8に示されたコードを、表9および10に示されているようにさらに分割することができる。
Figure 0005085543
Figure 0005085543
集合Rに含まれる値を有するシンボルについて、エンコーダは、まず、集合Rに含まれるシンボル値のすべてを表すエスケープコードをコーディングする。これは、特定の状態に関する集合Qに含まれるシンボル値の第1コードテーブルから、すべての状態にまたがる集合Rに含まれるシンボル値の第2コードテーブルへの切替をシグナリングする。次に、エンコーダは、第2コードテーブルから適当なコードをコーディングする。
ハフマンコードテーブルのより複雑な階層編成では、ハフマンコードテーブルに、複数の共通の枝を含めることができ、各共通の枝は、シンボル値の異なる部分集合の単一の条件付き分布に対応する。2ステージ実施態様では、第1ステージハフマンコードテーブルに、複数の共通の枝のそれぞれについて1つの、複数のエスケープコードを含めることができる。
より一般的には、ハフマンコードテーブルを、任意の階層に編成することができ、エスケープコード(およびおそらくは他の選択情報)が、別のハフマンコードテーブルまたはハフマンコードテーブルの別のセットに切り替えるのに使用される。
特定のテーブル内では、エスケープコードを、ある種のシンボル値について固定長コーディング/デコーディング方式に切り替える(別のテーブルに切り替えるのではなく)のに使用することもできる。
代替案では、ハフマンコードのルールに従わない、他のタイプのVLCテーブルが構成される。例えば、単一のVLCテーブルが、状態のグループのすべてに関して集合Rに含まれるシンボル値にVLCを関連付け、複数のVLDテーブル(グループの状態ごとに1つのテーブル)が、集合Qに含まれるシンボル値にVLCを関連付ける。
さらに、前の例では、固定された事前にトレーニングされるコードテーブルを示したが、代替案では、コードテーブルが、処理されたシンボル値に依存してそのコードを動的に変更する。そのような動的に変化するテーブルについて、エンコーダおよびデコーダは、それでも、一部のシンボル値について複数のコードテーブルを、他のシンボル値について単一のコードテーブルを選択的に使用することができる。
一般に、M個のシンボル値のN個の状態がある場合に、N個のVLCテーブルまたはハフマンコードを使用する場合にN個のツリーがある。M個のシンボル値のL個の互いに素な部分集合があり、L個の部分集合のそれぞれがl=0,1,...,L−1のPl個の状態を有し、すべてのlについてPl<Nである場合に、N個のツリーのそれぞれは、L個の枝(b0,b1,...,bL-1とラベルを付ける)を有し、各枝blは、その部分集合lに使用可能なPl個の共通の枝のうちの1つから選択される。さらに、L個の部分集合のいずれかが、もう一度部分集合に再帰的に区分され、各部分集合がその親集合より少数の状態を有する場合に、同一のことを、Pl個の枝からの枝に関して言うことができる。
3.算術コーディング/デコーディングの例の分布
他のエンコーダ/デコーダでは、近似分布が、算術コーディング/デコーディングに使用される。算術コーディングは、一般に、シンボルの系列を所与の範囲内の単一の数として表すことを用いる。通常、この数は、0と1との間の分数である。シンボルは、それを範囲の一部に置くことによってコーディングされ、この範囲は、シンボル値の確率分布に依存して区分される。
算術コーディングおよび算術デコーディングでの使用に関して、表7に示された近似分布を、表6および表11に分割することができる。X(0)、X(2)、およびX(4)に関する表11の切替値は、表11に示された状態/分布のうちの1つから表6に示された状態/分布への変化を示す。
Figure 0005085543
前の例では、固定された事前にトレーニングされる分布を示したが、代替案では、分布が、処理されたシンボル値に依存して動的に変化する。そのような動的に変化する分布について、エンコーダおよびデコーダは、それでも、一部のシンボル値について複数の分布を、他のシンボル値について単一の分布を選択的に使用することができる。
4.エントロピモデルを決定するための例のトレーニング
エンコーダおよびデコーダが、シンボルについて複数のエントロピモデルを選択的に使用する時に、エントロピモデルは、最終的に、シンボルの確率分布情報に依存する。いくつかの実施態様で、エンコーダまたは等的分析ソフトウェアなどのツールは、次の手法を使用して、エントロピモデルの状態および確率分布を判定する。
図24に、確率分布を複数エントロピモデルコーディング/デコーディング方式の状態にクラスタ化する2ステージ技法(2400)を示す。この技法(2400)は、シンボル値の確率分布をトレーニングベクトルとして扱い、トレーニングベクトルは、ベクトル量子化方式に使用されるクラスタ化手法に似て、クラスタにグループ化される。
まず、ツールは、トレーニングベクトルの実際の確率分布を入手する(2410)。トレーニングベクトルは、代表的なソースのトレーニングセットからのものである。オーディオコーディング/デコーディングについて、例えば、サブフレーム内のシンボル値の確率分布が、1つのトレーニングベクトルになる。一般的なオーディオコーディング/デコーディングについて、トレーニングセットは、確率分布が異なるオーディオソースの複数のサブフレームについて入手されるように、複数のオーディオソースを含む。トレーニングベクトルは、様々なビットレートおよび/または品質セッティングでのトレーニングから入手することができる。
ツールは、次に、第1コストメトリックを使用してトレーニングベクトルをクラスタ化する(2420)。例えば、第1コストメトリックは、平均2乗誤差(「MSE」)である。クラスタ化自体は、図25に関して説明するgeneralized Lloyd algorithm(「GLA」)の変形を使用することができ、あるいは、ある他の機構を使用することができる。基本的に、GLA変形形態では、ツールは、所与のデコーダの最適エンコーダを見つけることと所与のエンコーダの最適デコーダを見つけることとの間で反復することによって、トレーニングベクトルを所与の個数のクラスタに反復的にクラスタ化する。ある回数の反復の後に、ツールは、第1コストメトリックが最小化されるクラスタの組を見つける。
次に、ツールは、第2コストメトリックを使用してクラスタを洗練する(2430)。例えば、第2コストメトリックは、相対エントロピメトリックである。Itakura−Saito distanceが、2つの確率分布の間の相対エントロピを測定する1つの形である。洗練(2430)では、クラスタ化ロジックの諸部分を、第1コストメトリックと共に使用されるクラスタ化ロジックの諸部分と同一のまたは異なるものとすることができる。
したがって、図24によれば、ツールは、2ステージトレーニングプロセスを使用する。第1ステージでは、ツールは、第1コストメトリック(例えば、MSE)を使用して、分布に関する近似確率質量関数(「PMF」)クラスタを得る。第2ステージでは、ツールは、PMFクラスタをさらに洗練するために、第2コストメトリック(例えば、Itakura−Saito distance)を使用する。MSEは、計算が比較的単純であるが、エントロピならびにコーディング/デコーディング目的の相対エントロピメトリックをモデリングしない。その一方で、相対エントロピは、クラスタを洗練するのに効果的なメトリックであるが、これが使用される唯一のメトリックである場合に、非最適クラスタ化をもたらす可能性がある。多くの場合に、2ステージトレーニングは、複雑さに関してより高速である(相対エントロピは計算するのがより複雑なので)だけではなく、コーディング/デコーディング応用に関してよりよいクラスタをももたらす。
代替案では、ツールは、別の手法を使用して、状態および確率分布を判定する。例えば、ツールは、第1コストメトリックまたは第2コストメトリックにMSEまたは相対エントロピ以外のメトリックを使用する。あるいは、ツールは、単一ステージプロセスで単一のコストメトリックを使用する。
図25に、GLAの変形に従ってトレーニングベクトルをクラスタ化する技法(2500)を示す。図24と同様に、この技法(2500)は、シンボル値の確率分布をトレーニングベクトルとして扱い、トレーニングベクトルは、クラスタにグループ化される。
まず、ツールは、トレーニングベクトルから単一のクラスタを計算する(2510)。一般的なオーディオコーディング/デコーディングについて、例えば、トレーニングベクトルは、異なるビットレートおよび/または品質セッティングでエンコードされたオーディオファイルなどの異なるオーディオソースからのサブフレームの確率分布である。入手されるトレーニングベクトルの個数は、実施態様に依存する。一実施態様では、ツールは、計算される最終的なクラスタより約100倍多いトレーニングベクトルを入手する。単一のクラスタは、トレーニングベクトルの平均をとることによって計算されるトレーニングベクトルの重心、またはトレーニングベクトルのある他の組合せである。
ツールは、次に、単一のクラスタを複数のクラスタに分割する(2520)。例えば、ツールは、主成分分析を使用して、単一のクラスタを2つのクラスタに分割し、一方のクラスタは、オリジナルのクラスタであり、他方のクラスタは、オリジナルのクラスタに、主成分の実施態様依存の定数倍を加えたものである(例えば、他方のクラスタは、主成分の方向に沿ったあるオフセットのところにあるクラスタである)。代替案では、ツールは、ある他の分析を使用して、クラスタを複数のクラスタに分割する。
ツールは、あるコストメトリックに従って、複数の現在のクラスタの間でトレーニングベクトルを分類する(2530)。例えば、このコストメトリックは、MSE、相対エントロピ、またはある他のメトリックである。クラスタに対するトレーニングベクトルのMSEは、トレーニングベクトルの確率分布点とクラスタの対応する点との間のユークリッド距離を示す。トレーニングベクトルとクラスタとの間の相対エントロピは、次のようにトレーニングベクトルとクラスタとの間の差を与えることができる。
Figure 0005085543
ここで、kは、トレーニングベクトル内およびクラスタ内の点を示す。より形式的でなく言えば、相対エントロピは、トレーニングベクトルとクラスタとの間の不一致に起因するビットレートペナルティを示す。ツールは、トレーニングベクトルが最低のMSE、最低の相対エントロピなどを有するクラスタに関してトレーニングベクトルを分類する。
ツールは、分類されたトレーニングベクトルから現在のクラスタを再計算する(2540)。例えば、現在のクラスタごとに、ツールは、そのクラスタに分類されたトレーニングベクトルの重心を計算する。代替案では、ツールは、そのクラスタに分類されたトレーニングベクトルのある他の組合せとして、各現在のクラスタを再計算する。
ツールは、クラスタが安定したかどうかを判定する(2545)。例えば、ツールは、再計算(2540)の前後のクラスタの変化が、ある判断基準を満足するかどうかをチェックする。1つの判断基準は、クラスタが、再計算(2540)においてある閾量を超えてシフトしないことであり、ここで、閾量は、実施態様に依存する。代替案では、ツールは、他のおよび/または追加の判断基準を考慮する。クラスタが安定していない場合には、ツールは、コストメトリックに従って、複数の現在のクラスタ(再計算(2540)された)の間でトレーニングベクトルを分類する(2530)。
現在のクラスタが安定した時に、ツールは、十分なクラスタがあるかどうかを判定する(2550)。一般に、クラスタの所望の個数は、メモリ使用量とエンコーディング性能とをトレードオフするためにセットすることができる。より多くのクラスタを有することは、分布、VCLテーブルなどの格納に関するメモリ使用量の増加を犠牲にして、エントロピモデルでのより多くの状態および適応性につながる。順方向適応が使用される時には、より多くのクラスタを有することは、より多くのサイド情報がシグナリングされる(例えば、分布、テーブルなどを示すために)ことをも意味する。より少ないクラスタを有することは、対照的に、トレーニングベクトルと最終的なクラスタとの間の不一致を増やす傾向があり、これは、通常、エンコーディング中のエントロピモデルとシンボル値の実際の分布との間の不一致の増加を示す。
クラスタの所望の個数に達していない場合には、ツールは、現在のクラスタの一部またはすべてを分割する(2560)。例えば、ツールは、主成分分析またはある他の分析を使用して、1つのクラスタを2つのクラスタに分割する。ツールが、G個の最終的なクラスタを求め、現在はF個の現在のクラスタを有し、F<Gであると仮定する。F個の現在のクラスタのそれぞれを分割することが、多すぎるクラスタをもたらす場合には、ツールは、G−F個の最上位の現在のクラスタ(例えば、何個のトレーニングベクトルが現在のクラスタに分類されるかに関する「最上位」)を2つのクラスタに分割することができる。あるいは、ツールは、各反復で最上位クラスタを単純に分割するか、分割に関するある他のルールを使用することができる。次に、ツールは、コストメトリックに従って、現在のクラスタ(分割(2560)された)の間でトレーニングベクトルを分類する(2530)。
現在のクラスタが安定し、所望の個数のクラスタに達した時に、この技法(2500)は終了する。分類(2530)、再計算(2540)、および分割(2560)は、本質的に、GLA変形の反復を構成し、その反復の間に、コストメトリックが減る。
図25の技法(2500)を、次のように図24の技法(2400)に組み込むことができる。ツールは、クラスタの所望の個数に達するまで、コストメトリックとしてMSEを使用して図25の技法(2500)を実行する。クラスタの所望の個数に達した時点で、ツールは、クラスタが安定し/ある閾量を超えてシフトしなくなるまで、コストメトリックとして相対エントロピを使用して、分類(2530)、再計算(2540)、および安定性のチェック(2545)を反復して実行する。
技法(2400、2500)を使用して、実際の分布を近似するがある種のシンボル値に関して同一の条件付き分布を有する確率分布を伴う最終クラスタを作ることができる。セクションV.A.1の分析フレームワークに関して、技法(2400、2500)を使用して、分類動作およびクラスタ化動作で集合Rに含まれるシンボル値の条件付き分布がクラスタ/状態のすべてについて同一である(P’S(j),X(i),Rがすべての状態S(j)について同一である)という制約を追加することによって、表7に示されたものなどの近似確率分布を作ることができる。本質的に、集合Rに含まれるシンボル値に対応するクラスタの次元は、式(1)および(2)に示されているように制約される。分析では、所与の状態である確率PS(j)は、その状態に関するクラスタに分類されるトレーニングベクトルの個数によって示される。もう1つの制約は、クラスタのそれぞれの次元の合計が1になることである。
図25を参照すると、現在のクラスタを再計算(2540)した後に、1つまたは複数の条件付き分布制約を課すことができる。一般に、M個のシンボル値のN個の状態があり、M個のシンボル値のL個の部分集合があり、L個の部分集合のそれぞれが、l=0,1,...,L−1についてPl<NであるPl個の状態およびEl個の要素を有すると仮定する。L個の部分集合のうちの所与の1つに含まれるシンボル値のすべてを、共通の(エスケープ/切替)シンボル値にグループ化することができる。L個のそのようなエスケープ/切替シンボル値がある。次に、トレーニングは、M−(E0+E1+...+EL-1)+L個のシンボル値についてN個のクラスタ(または分布)を見つけるために進行する(L個の部分集合のEl個の要素を引き、エスケープ/切替シンボル値のL個の要素を追加する)。次に、M個のシンボル値のL個の部分集合のそれぞれについて、条件付き分布を、その部分集合内で計算する。トレーニングは、これらの部分集合のそれぞれについて、l=0,1,...,L−1のPl個のクラスタを見つけるために、L個の部分集合のそれぞれに対して繰り返される。これに関するトレーニングベクトルは、それぞれL個の部分集合内の条件付き分布になる。L個の部分集合のいずれかが、さらに副分割される場合には、この手順を、その副分割された部分集合lについて再帰的に繰り返すことができる。というのは、今や、El個のシンボル値のPl個の状態があるからである。
どのシンボル値が集合QおよびRに含まれるかの指定に関して、当初に、これは、単一の開始クラスタの確率分布に基づく。その後、集合QおよびRの成分は、めいめいの状態である確率(めいめいのクラスタ内のトレーニングベクトルの比率)およびクラスタの確率分布に依存する。
5.代替案
前の例の多くは、いくつかのシンボル値に複数の分布/テーブルを使用することおよび他のシンボル値に単一の分布/テーブルを使用することを用いる。この構成は、通常、エントロピコーディング性能を大きく損なわずにメモリ使用量を減らすが、セクションVで説明した技法およびツールは、より一般的に階層編成されたエントロピモデルに適用可能である。エンコーダまたはデコーダは、いくつかのシンボル値についてより多くの適応性、他のシンボルについてより少ない適応性を可能にする、階層編成内の異なるエントロピモデルの間で選択的に選択することができる。
階層編成されたエントロピモデルは、1つの切替あたり複数のエントロピモデルを参照することができる(例えば、可能性のより低いシンボル値用の単一のエントロピモデルに切り替えるだけではなく)。例えば、あるレベルのハフマンコードテーブルのセットは、1つのハフマンコードテーブルまたは複数のハフマンコードテーブルを含む。トレーニングを、複数のフェーズで行うことができる。第1トレーニングフェーズでは、シンボル値は、集合Qまたは集合Rに含まれるものとして指定され、集合Rに含まれるシンボル値の条件付き分布は、すべての状態について同一である。次に、集合Rに含まれるシンボル値の後続トレーニングフェーズで、集合Rに含まれるシンボル値の条件付き分布に対するより以前の制約が、取り払われ、集合Rに含まれるシンボル値の確率分布が、異なるエントロピモデルの複数のクラスタ/状態に分類される。
エントロピモデルのセットの各メンバには、別のレベルのエントロピモデルの異なるセットへの切替点を含めることができる。例えば、順方向適応について、ハフマンコードテーブルの第1セットの各テーブルは、2つのエスケープコードすなわち、1つまたは複数のハフマンコードテーブルの第2セットへの第1エスケープコードおよび1つまたは複数のハフマンコードテーブルの第3セットへの第2エスケープコードを含む。トレーニングに関して、シンボル値を、エントロピモデルの第1セットについて集合Qに含まれ、エントロピモデルの第2セットについて集合Rに含まれ、エントロピモデルの第3セットについて集合Sに含まれるものとして指定することができる。集合Rに含まれるシンボル値の条件付き分布(QおよびSに含まれるシンボル値を無視した)は、すべての状態について同一であり、集合Sに含まれるシンボル値の条件付き分布(QおよびRに含まれるシンボル値を無視した)は、すべての状態について同一である。
追加の広さのほかに、階層編成されたエントロピモデルに、3つ、4つ、またはそれより多数のレベルのエントロピモデルを含めることができる。例えば、順方向適応に関して、ハフマンコードテーブルの第1セットの各テーブルは、ハフマンコードテーブルの第2セットへのエスケープコードを含み、ハフマンコードテーブルの第2セットの各テーブルは、ハフマンコードテーブルの第3セットへのエスケープコードを含む。トレーニングは、複数のフェーズで行うことができる。第1フェーズでは、シンボル値は、エントロピモデルの第1セットについて集合Qに含まれ、あるいはエントロピモデルの他のセットについて集合Rに含まれるものとして指定される。集合Rに含まれるシンボル値の条件付き確率(Qに含まれるシンボル値を無視した)は、すべての状態について同一である。次に、集合Rに含まれるシンボル値の追加のトレーニングフェーズで、条件付き分布に対するこの制約が、取り払われ、集合Rからのシンボル値が、エントロピモデルの第2セットについて集合Sに含まれ、あるいはエントロピモデルのすべての他のセットについて集合Tに含まれるものとして指定される。このフェーズでは、集合Tに含まれるシンボル値の条件付き確率(Sに含まれるシンボル値を無視した)は、すべての状態について同一である。
可変長(例えばハフマン)コーディングおよびデコーディングならびに算術コーディングおよびデコーディングのほかに、他のタイプのエントロピコーディングおよびデコーディングに、エントロピモデルの選択的使用を組み込むことができる。例えば、variable to variableエンコーディングおよびデコーディングに、階層編成のVLCテーブルを組み込むことができる。
C.エンコーディングの例の技法
図26に、複数のエントロピモデルの選択的使用を用いてシンボルをエンコードする技法(2600)を示す。図2、4、または6に示されたエンコーダなどのエンコーダが、この技法(2600)を実行する。
waveform audioエンコーダでは、シンボルは、通常、量子化されたスペクトル係数に関する。量子化されたスペクトル係数を、前処理することができる(例えば、係数予測または係数並べ換えによって)。シンボルのそれぞれは、量子化されたスペクトル係数を表すことができる。あるいは、シンボルのそれぞれは、量子化されたスペクトル係数のグループを表すことができる。ベクトルハフマンコーディングについて、シンボルは、例えば、4つの量子化されたスペクトル係数のグループを表す。ランレベルコーディングについて、シンボルは、例えば、ランレベルペアを表す。
シンボルの系列について、エンコーダは、エントロピモデルの第1セットからエントロピモデルを選択する(2610)。例えば、エンコーダは、ベクトルハフマンコーディングまたはランレベルコーディングについて、複数の使用可能なハフマンコードテーブルの中から1つのハフマンコードテーブルを選択する。代替案では、エンコーダは、別のエントロピエンコーディング方式で使用されるエントロピモデルを選択する。いくつかの実施態様では、エンコーダは、コンテキスト情報に依存してエントロピモデルを選択する。他の実施態様では、エンコーダは、様々なエントロピモデルを使用してエンコーディングの性能を評価した後に、エントロピモデルを選択する。トレリス構造を使用するハフマンコードテーブルに関する選択プロセスの1つの例を、下で説明する。代替案では、エンコーダは、別の機構を使用してエントロピモデルを選択する。
図26に戻って、エンコーダは、オプションで、選択されたエントロピモデルを示す情報をシグナリングする(2620)。順方向適応について、エンコーダは、選択されたエントロピモデルを示す情報を明示的にシグナリングする。1つの順方向適応機能を、ハフマンコードテーブル切替に関して下で詳細に説明する。代替案では、エンコーダは、別のシグナリング機構を使用する。逆方向適応について、エントロピモデルの選択は、デコーダで使用可能なコンテキストから推論される。
次に、エンコーダは、選択されたエントロピモデルを使用して、シンボルの系列をエントロピエンコードする(2630)。エントロピモデルのどの切替点でも、エンコーダは、1つまたは複数のエントロピモデルの別のセットに切り替えることができる。例えば、エンコーダは、第1ハフマンコードテーブル内のエスケープコードを使用して第2ハフマンコードテーブルへの切替をシグナリングし、次に、エンコーダは、第2ハフマンコードテーブルを使用してシンボルをエンコードする。
次に、エンコーダは、エントロピコーディングされたシンボルをシグナリングする(2640)。切替が1つでも発生した場合には、エンコーダは、エスケープコードまたはモデルセット内の選択に関する他のモデル切替情報などの切替情報をもシグナリングする。
エンコーダは、次の系列に継続するかどうかを判定し(2650)、そうである場合には、次の系列のシンボルのエントロピモデルを選択する(2610)。例えば、1実施態様で量子化されたスペクトル係数をハフマンコーディングテーブルを使用してエンコードする時に、エンコーダは、バーク境界(bark boundary)でコードテーブルを変更することを許可される。言い換えると、周波数スペクトルを区分するバーク境界は、第1コードテーブルセットから選択されたハフマンコードテーブルを変更する可能な変更位置として働く。エンコードされている現在のシンボルの係数が、バーク境界を超えて延びる(例えば、そのシンボルがその境界をまたぐ係数のベクトルまたは係数のランレベルペアを表すので)場合に、現在のシンボルの係数の終りが、有効な変更位置になる。代替案では、エンコーダは、他の変更位置で第1モデルセットからのエントロピモデルの選択を変更し、選択されたエントロピモデルに従ってエンコードされたシンボルの系列は、ある他の持続時間を有する。
上で注記したように、一実施態様で、エンコーダは、異なるテーブルの評価にトレリス構造を使用してハフマンコードテーブルを選択する。エンコーダは、可能なテーブルのすべてを用いて、2つの有効なテーブル変更位置(バーク境界である)の間でシンボルのすべてをエンコードする。エンコーダは、シンボルをエンコードするために、テーブルあたりの使用されたビット数を追跡する。エンコーダは、テーブルが変更される場合にシグナリングされるビットを考慮に入れて、最良の可能なエンコーディングを見つけるためにトレリスを構成する。
t,iが、テーブル変更位置tまでエンコードする時に使用される最小ビット数であり、テーブルiが、使用された最後のテーブルであると仮定する。ビットカウントrt,iは、変更位置tと変更位置t+1との間でテーブルiを使用してシンボルをエンコードするのに必要なビット数である。ビットカウントst,i,kは、変更位置kでテーブルiからテーブルkへのテーブル変更をエンコードするのに必要なビット数である。言い換えると、変更位置tで使用された最後のテーブルが、テーブルiであり、テーブルkが、今や、変更位置t+1までエンコードするのに使用される。テーブルnt,iは、変更位置tでの現在のテーブルがテーブルiである最適エンコーディングを得るために、変更位置t−1で使用されたテーブルである。すると、
Figure 0005085543
である。
エンコーダは、btmax,iを最小にするiを見つけることによって、サブフレーム全体またはシーケンスの他の部分の最適エンコードを判定し、ここで、tmaxは、tの最大値である。エンコーダは、nの値を調べることによって最適経路をトレースすることによって最適テーブルを見つける。テーブル変更をコーディングするのに必要なビット数は、本質的にlog2(テーブル数)+log2(残っているバークの個数)+1である。テーブルが変更される時に、エンコーダは、これが使用される最後のテーブルであるかどうかを示すために1ビットをシグナリングし、これが使用される最後のテーブルではない場合には、エンコーダは、そのテーブルが何個のバークバンドに適用されるかをエンコードするためにlog2(残っているバークの個数)をシグナリングする。
D.デコーディングの例の技法
図27に、複数のエントロピモデルの選択的使用を用いてシンボルをデコードする技法(2700)を示す。図3、5、または7に示されたデコーダなどのデコーダが、この技法(2700)を実行する。
waveform audioデコーダでは、シンボルは、通常、量子化されたスペクトル係数に関する。量子化されたスペクトル係数がエンコード中に前処理されている(例えば、係数予測または係数並べ換えによって)場合に、係数は、後処理され(例えば、係数予測または係数並べ換えによって)、その後、エントロピデコードされる。シンボルのそれぞれは、量子化されたスペクトル係数を表すことができる。あるいは、シンボルのそれぞれは、量子化されたスペクトル係数のグループを表すことができる。ベクトルハフマンコーディングについて、シンボルは、例えば、4つの量子化されたスペクトル係数のグループを表す。ランレベルコーディングについて、シンボルは、例えば、ランレベルペアを表す。
シンボルの系列について、デコーダは、オプションで、選択されたエントロピモデルを示す情報を解析する(2710)。順方向適応について、例えば、デコーダは、エンコーダ側のシグナリングの鏡像である機構を使用して、選択されたエントロピモデルを示す情報を解析する。
デコーダは、エントロピモデルの第1セットからエントロピモデルを選択する(2720)。例えば、デコーダは、ベクトルハフマンデコーディングまたはランレベルデコーディングについて、複数の使用可能なハフマンコードテーブルの中から1つのハフマンコードテーブルを選択する。代替案では、デコーダは、別のエントロピデコーディング方式で使用されるエントロピモデルを選択する。いくつかの実施態様では、デコーダは、逆方向適応に関してコンテキスト情報に依存してエントロピモデルを選択する。他の実施態様では、デコーダは、エンコーダによってシグナリングされ、ビットストリームから解析された(2710)情報に基づいてエントロピモデルを選択する。
次に、デコーダは、選択されたエントロピモデルを使用して、シンボルの系列をエントロピデコードする(2730)。エントロピモデルのどの切替点でも、デコーダは、1つまたは複数のエントロピモデルの別のセットに切り替えることができる。例えば、デコーダは、第2ハフマンコードテーブルへの切替を示す、第1ハフマンコードテーブルのエスケープを受け取り、次に、デコーダは、第2ハフマンコードテーブルを使用してシンボルをデコードする。
次に、エンコーダは、エントロピデコードされたシンボルに関する情報、例えば、後続処理の準備ができている量子化されたスペクトル係数を出力する(2740)。
デコーダは、次の系列に継続するかどうかを判定し(2750)、そうである場合には、次の系列のシンボルのエントロピモデルを選択する(2710)。例えば、1実施態様で量子化されたスペクトル係数をハフマンコーディングテーブルを使用してデコードする時に、デコーダは、バーク境界でコードテーブルを変更することを許可される。デコードされている現在のシンボルの係数が、バーク境界を超えて延びる(例えば、そのシンボルがその境界をまたぐ係数のベクトルまたは係数のランレベルペアを表すので)場合に、現在のシンボルの係数の終りが、有効な変更位置になる。代替案では、デコーダは、他の変更位置で第1モデルセットからのエントロピモデルの選択を変更し、選択されたエントロピモデルに従ってデコードされたシンボルの系列は、ある他の持続時間を有する。
E.結果
可能性のより低いシンボル値について近似された分布を使用するコーディングは、エンコーダおよびデコーダ内で分布またはコードテーブルに必要なメモリの節約を可能にする。セクションV.A.1の分析フレームワークに関して、エンコーダおよびデコーダは、PS(j),X(q)の分布および/またはコードテーブルを格納する。すなわち、エンコーダおよびデコーダは、集合Qに含まれるシンボル値X(i)の状態S(j)ごとに1つの分布および/またはテーブルを格納する。集合Rに含まれるシンボル値X(i)について、エンコーダおよびデコーダは、単一の分布P’S(j),X(i),Rの分布および/またはテーブルを格納する。
テーブルが、状態ごとにBバイトまでのメモリを占め、16個の状態があると仮定する。すると、通常のフルテーブルの場合に、エンコーダおよびデコーダは、それぞれ、16個のテーブルのために16*Bバイトのメモリを必要とするはずである。しかし、シンボル値のうちの10%だけが、可能性がより高い(集合Qに含まれる)ものとして指定される場合に、必要なメモリの単純な近似は、(16*B*.1)+(B*.9)=2.5*Bである。したがって、必要なメモリは、フルテーブルの場合と比較して、エントロピコーディング利益のわずかな低下だけを伴って、6倍を超えて減らされている。
開示された発明の原理を適用できる多数の可能な実施形態に鑑みて、示された実施形態が、本発明の好ましい例にすぎず、本発明の制限を限定するものと解釈されてはならないことを了解されたい。そうではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。したがって、我々は、この特許請求の範囲の範囲および趣旨に含まれるすべてのものを、本発明として請求する。
様々な説明される実施形態をそれと共に実施できる一般化されたオペレーティング環境を示すブロック図である。 様々な説明される実施形態をそれと共に実施できる一般化されたエンコーダを示すブロック図である。 様々な説明される実施形態をそれと共に実施できる一般化されたデコーダを示すブロック図である。 様々な説明される実施形態をそれと共に実施できる一般化されたエンコーダを示すブロック図である。 様々な説明される実施形態をそれと共に実施できる一般化されたデコーダを示すブロック図である。 様々な説明される実施形態をそれと共に実施できる一般化されたエンコーダを示すブロック図である。 様々な説明される実施形態をそれと共に実施できる一般化されたデコーダを示すブロック図である。 マルチチャネルオーディオ信号を示すチャートである。 図8aのマルチチャネルオーディオ信号に対応するウィンドウ構成を示すチャートである。 時間ノイズ成形を用いるエンコーダを示すブロック図である。 時間ノイズ成形を用いるデコーダを示すブロック図である。 ビットレート削減のために係数予測を用いるエンコーダを示すブロック図である。 ビットレート削減のために係数予測を用いるデコーダを示すブロック図である。 量子化されたスペクトル係数のコーディングでの係数予測の技法を示す流れ図である。 量子化されたスペクトル係数のデコーディングでの係数予測の技法を示す流れ図である。 時間領域の周期的オーディオ信号を示すチャートである。 図15aの時間領域の周期的オーディオ信号に対応するスペクトル係数を示すチャートである。 係数並べ換えを用いるエンコーダを示すブロック図である。 係数並べ換えを用いるデコーダを示すブロック図である。 エントロピエンコーディングの前にスペクトル係数を並べ換える技法を示す流れ図である。 エントロピエンコーディングの前にスペクトル係数を並べ換える技法を示す流れ図である。 エントロピエンコーディングの前にスペクトル係数を並べ換える技法を示す流れ図である。 エントロピデコーディングの後にスペクトル係数を並べ換える技法を示す流れ図である。 エントロピデコーディングの後にスペクトル係数を並べ換える技法を示す流れ図である。 エントロピデコーディングの後にスペクトル係数を並べ換える技法を示す流れ図である。 並べ換えの後の図15bのスペクトル係数を示すチャートである。 例のオーディオファイルのサブフレームごとの係数並べ換えに起因するコーディング利益を示すチャートである。 階層的に編成されたエントロピモデルを示す図である。 シンボル値の近似分布に関するハフマンコードを示すチャートである。 確率分布に関してトレーニングベクトルをクラスタ化する技法を示す流れ図である。 確率分布に関してトレーニングベクトルをクラスタ化する技法を示す流れ図である。 複数のエントロピモデルの選択的使用を用いるエンコーディングの技法を示す流れ図である。 複数のエントロピモデルの選択的使用を用いるデコーディングの技法を示す流れ図である。

Claims (20)

  1. エンコーダまたはデコーダによって実行される方法であって、前記方法は、
    複数のシンボルについて、複数のエントロピーモデルを含む第1モデルセットからエントロピーモデルを選択するステップであって、前記第1モデルセットの前記複数のエントロピーモデルはそれぞれ、1つまたは複数のエントロピーモデルを含む第2モデルセットに切り替えるモデル切替点を含み、エントロピーモデルの選択は複数のエントロピーモデルを使用してエンコーディングの性能を評価することに基づいて行われる、選択するステップと、
    前記選択されたエントロピーモデルを使用して前記複数のシンボルを処理するステップと、
    前記処理の結果を出力するステップであって、前記第1モデルセットの前記複数のエントロピーモデルおよび前記第2モデルセットの前記1つまたは複数のエントロピーモデルは、コーディングおよび/またはデコーディング用の確率分布を反映し、前記第1モデルセットの前記複数のエントロピーモデルは可能性のより高いシンボルの前記確率分布を反映し、前記第2モデルセットの前記1つまたは複数のエントロピーモデルは可能性のより低いシンボルの前記確率分布を反映し、前記選択された確率分布が前記複数のシンボルの各シンボルを含まない場合には切替点が生じる、出力するステップ
    を含むことを特徴とする方法。
  2. エンコーダは、前記選択、前記処理、および前記出力をエンコード中に実行し、前記処理は、エントロピーコーディングを含むことを特徴とする請求項1に記載の方法。
  3. デコーダは、前記選択、前記処理、および前記出力をデコード中に実行し、前記処理は、エントロピーデコーディングを含むことを特徴とする請求項1に記載の方法。
  4. 前記第1モデルセットの前記複数のエントロピーモデルおよび前記第2モデルセットの前記1つまたは複数のエントロピーモデルは、算術コーディングおよび/または算術デコーディング用の確率分布であり、前記モデル切替点は、前記第1モデルセットの複数の前記確率分布でのモデル切替確率であることを特徴とする請求項1に記載の方法。
  5. 前記第1モデルセットの前記複数のエントロピーモデルは、それぞれ第1テーブルセットの複数のVLCテーブル内で実施され、前記第2モデルセットの前記1つまたは複数のエントロピーモデルは、それぞれ第2テーブルセットの1つまたは複数のVLCテーブル内で実施され、前記モデル切替点は、エスケープコードであり、前記第1テーブルセットの前記複数のVLCテーブルのそれぞれは、前記第2テーブルセットに切り替える前記エスケープコードを含むことを特徴とする請求項1に記載の方法。
  6. 前記第1テーブルセットの前記複数のVLCテーブルおよび前記第2テーブルセットの前記1つまたは複数のVLCテーブルは、ハフマンコードテーブルであり、前記第2テーブルセットは、単一のハフマンコードテーブルを含み、前記単一のハフマンコードテーブルは、前記第1テーブルセットの前記複数のハフマンコードテーブルそれぞれを表すツリー内の共通の枝を表すようになっていることを特徴とする請求項5に記載の方法。
  7. 前記第1テーブルセットの前記複数のVLCテーブルは、可能性のより高いシンボル値を含む第1シンボル値セットに適合され、前記第2テーブルセットの前記1つまたは複数のVLCテーブルは、可能性のより低いシンボル値を含む第2シンボル値セットに適合されることを特徴とする請求項5に記載の方法。
  8. 前記第2テーブルセットは、単一のVLCテーブルを含み、前記処理は、前記複数のシンボルのうちで前記可能性のより低いシンボル値を有するシンボルの2ステージ可変長コーディングまたは2ステージ可変長デコーディングに関することを特徴とする請求項7に記載の方法。
  9. 前記第1モデルセットの前記複数のエントロピーモデルおよび前記第2モデルセットの前記1つまたは複数のエントロピーモデルを生成するステップをさらに含み、前記生成するステップは、
    第1コストメトリックに従って確率分布をクラスタ化し、複数の予備クラスタをもたらすステップと、
    前記第1コストメトリックと異なる第2コストメトリックに従って前記複数の予備クラスタを精密化し、複数の最終クラスタをもたらすステップと
    を含むことを特徴とする請求項1に記載の方法。
  10. 前記第2モデルセットは、単一のエントロピーモデルを含み、前記方法は、前記第1モデルセットの前記複数のエントロピーモデルおよび前記第2モデルセットの前記単一のエントロピーモデルを生成するステップをさらに含み、前記生成するステップは、前記第2モデルセットの前記単一のエントロピーモデルについて、確率分布にまたがって共通な条件付き分布を有するように可能性のより低いシンボル値を制約するステップを含むことを特徴とする請求項1に記載の方法。
  11. 前記第2モデルセットの前記1つまたは複数のエントロピーモデルのそれぞれは、1つまたは複数のエントロピーモデルを含む第3モデルセットに切り替える第2モデル切替点を含むことを特徴とする請求項1に記載の方法。
  12. 前記第1モデルセットの前記複数のエントロピーモデルのうちの少なくともいくつかについて、前記モデル切替点は、モデルによって異なる値を有することを特徴とする請求項1に記載の方法。
  13. 前記第1モデルセットの前記複数のエントロピーモデルのそれぞれは、1つまたは複数のエントロピーモデルを含む第3モデルセットに切り替える第2モデル切替点をさらに含むことを特徴とする請求項1に記載の方法。
  14. 前記複数のシンボルは、オーディオデータの量子化されたスペクトル係数のためのものであることを特徴とする請求項1に記載の方法。
  15. 前記選択は、順方向適応切替の一部であることを特徴とする請求項1に記載の方法。
  16. 前記選択は、逆方向適応切替の一部であることを特徴とする請求項1に記載の方法。
  17. エンコーダまたはデコーダを備えるシステムであって、前記システムは、
    複数のエントロピーモデルを含む第1モデルセットからエントロピーモデルを選択する手段であって、前記第1モデルセットの前記複数のエントロピーモデルはそれぞれ、1つまたは複数のエントロピーモデルを含む第2モデルセットに切り替えるモデル切替点を含み、エントロピーモデルの選択は複数のエントロピーモデルを使用してエンコーディングの性能を評価することに基づいて行われる、選択する手段と、
    前記選択されたエントロピーモデルを使用して前記複数のシンボルを処理する手段と、
    前記処理の結果を出力する手段であって、前記第1モデルセットの前記複数のエントロピーモデルおよび前記第2モデルセットの前記1つまたは複数のエントロピーモデルは、コーディングおよび/またはデコーディング用の確率分布を反映し、前記第1モデルセットの前記複数のエントロピーモデルは可能性のより高いシンボルの前記確率分布を反映し、前記第2モデルセットの前記1つまたは複数のエントロピーモデルは可能性のより低いシンボルの前記確率分布を反映し、前記選択された確率分布が前記複数のシンボル値の各シンボルを含まない場合には切替点が生じる、出力する手段と
    を含むことを特徴とするシステム。
  18. 前記第1モデルセットの前記複数のエントロピーモデルは、それぞれ第1テーブルセットの複数のVLCテーブル内で実施され、前記第2モデルセットの前記1つまたは複数のエントロピーモデルは、それぞれ第2テーブルセットの1つまたは複数のVLCテーブル内で実施され、前記モデル切替点は、エスケープコードであり、前記第1テーブルセットの前記複数のVLCテーブルのそれぞれは、前記第2テーブルセットに切り替える前記エスケープコードを含むことを特徴とする請求項17に記載のシステム。
  19. 前記第1テーブルセットの前記複数のVLCテーブルおよび前記第2テーブルセットの前記1つまたは複数のVLCテーブルは、ハフマンコードテーブルであり、前記第2テーブルセットは、単一のハフマンコードテーブルを含み、前記単一のハフマンコードテーブルは、前記第1テーブルセットの前記複数のハフマンコードテーブルそれぞれを表すツリー内の共通の枝を表すようになっていることを特徴とする請求項18に記載のシステム。
  20. 前記複数のシンボルは、オーディオデータの量子化されたスペクトル係数のためのものであることを特徴とする請求項18に記載のシステム。
JP2008521610A 2005-07-15 2006-07-14 適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用 Active JP5085543B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/183,266 2005-07-15
US11/183,266 US7599840B2 (en) 2005-07-15 2005-07-15 Selectively using multiple entropy models in adaptive coding and decoding
PCT/US2006/027231 WO2007011653A2 (en) 2005-07-15 2006-07-14 Selectively using multiple entropy models in adaptive coding and decoding

Publications (2)

Publication Number Publication Date
JP2009501943A JP2009501943A (ja) 2009-01-22
JP5085543B2 true JP5085543B2 (ja) 2012-11-28

Family

ID=37662739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521610A Active JP5085543B2 (ja) 2005-07-15 2006-07-14 適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用

Country Status (12)

Country Link
US (1) US7599840B2 (ja)
EP (1) EP1905000B1 (ja)
JP (1) JP5085543B2 (ja)
KR (1) KR101278805B1 (ja)
CN (1) CN101223573B (ja)
AT (1) ATE536001T1 (ja)
AU (1) AU2006270259B2 (ja)
CA (1) CA2612537C (ja)
ES (1) ES2378393T3 (ja)
MX (1) MX2008000524A (ja)
NO (1) NO341186B1 (ja)
WO (1) WO2007011653A2 (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2388942T3 (es) * 2002-09-04 2012-10-19 Microsoft Corporation Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel
US7882167B2 (en) * 2005-02-18 2011-02-01 Beth Israel Deaconess Medical Center Complexity-based dynamical analysis of a network
US20080243518A1 (en) * 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
TWI312981B (en) * 2006-11-30 2009-08-01 Inst Information Industr Voice detection apparatus, method, computer program product, and computer readable medium for adjusting a window size dynamically
FR2911228A1 (fr) * 2007-01-05 2008-07-11 France Telecom Codage par transformee, utilisant des fenetres de ponderation et a faible retard.
JP2008228208A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 画像符号化方法、画像符号化装置、画像符号化回路、情報記録媒体、及び、コンピュータプログラム
KR101418248B1 (ko) * 2007-04-12 2014-07-24 삼성전자주식회사 정현파 성분의 진폭 코딩 및 디코딩 방법과 그 장치
KR101317269B1 (ko) * 2007-06-07 2013-10-14 삼성전자주식회사 정현파 오디오 코딩 방법 및 장치, 그리고 정현파 오디오디코딩 방법 및 장치
EP2023339B1 (en) * 2007-07-30 2010-08-25 Global IP Solutions (GIPS) AB A low-delay audio coder
US8463615B2 (en) * 2007-07-30 2013-06-11 Google Inc. Low-delay audio coder
US8483282B2 (en) * 2007-10-12 2013-07-09 Qualcomm, Incorporated Entropy coding of interleaved sub-blocks of a video block
AU2008321318B2 (en) 2007-11-12 2012-11-01 The Nielsen Company (Us), Llc Methods and apparatus to perform audio watermarking and watermark detection and extraction
US8972247B2 (en) * 2007-12-26 2015-03-03 Marvell World Trade Ltd. Selection of speech encoding scheme in wireless communication terminals
US8457951B2 (en) * 2008-01-29 2013-06-04 The Nielsen Company (Us), Llc Methods and apparatus for performing variable black length watermarking of media
TWI349487B (en) * 2008-03-25 2011-09-21 Novatek Microelectronics Corp Entropy encoding circuit and encoding method thereof
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8630848B2 (en) * 2008-05-30 2014-01-14 Digital Rise Technology Co., Ltd. Audio signal transient detection
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
KR101485339B1 (ko) 2008-09-29 2015-01-26 삼성전자주식회사 무손실 부호화/복호화 장치 및 방법
KR100968373B1 (ko) * 2008-10-07 2010-07-09 주식회사 코아로직 가변장 부호 테이블 분할 방법 및 이를 이용한 멀티 코덱의메모리 공유 방법 및 장치
GB2466666B (en) * 2009-01-06 2013-01-23 Skype Speech coding
US8718805B2 (en) * 2009-05-27 2014-05-06 Spot411 Technologies, Inc. Audio-based synchronization to media
CN101615910B (zh) 2009-05-31 2010-12-22 华为技术有限公司 压缩编码的方法、装置和设备以及压缩解码方法
EP2273495A1 (en) * 2009-07-07 2011-01-12 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Digital audio signal processing system
KR101739603B1 (ko) * 2009-08-20 2017-05-24 톰슨 라이센싱 2진 세트들을 인코딩 및 디코딩하기 위해 트리 구조들을 재이용하는 방법 및 장치
US8788277B2 (en) * 2009-09-11 2014-07-22 The Trustees Of Columbia University In The City Of New York Apparatus and methods for processing a signal using a fixed-point operation
CN102648494B (zh) * 2009-10-08 2014-07-02 弗兰霍菲尔运输应用研究公司 多模式音频信号解码器、多模式音频信号编码器、使用基于线性预测编码的噪声塑形的方法
US8380524B2 (en) * 2009-11-26 2013-02-19 Research In Motion Limited Rate-distortion optimization for advanced audio coding
KR101885258B1 (ko) * 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
CA2799763A1 (en) * 2010-07-13 2012-01-19 Research In Motion Limited Methods and devices for data compression using context-based coding order
JP5612698B2 (ja) * 2010-10-05 2014-10-22 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体
ES2607982T3 (es) 2011-01-14 2017-04-05 Ge Video Compression, Llc Esquema de codificación y decodificación entrópica
KR20130111611A (ko) * 2011-01-25 2013-10-10 니뽄 덴신 덴와 가부시키가이샤 부호화 방법, 부호화 장치, 주기성 특징량 결정 방법, 주기성 특징량 결정 장치, 프로그램, 기록 매체
US8942917B2 (en) 2011-02-14 2015-01-27 Microsoft Corporation Change invariant scene recognition by an agent
WO2012144128A1 (ja) 2011-04-20 2012-10-26 パナソニック株式会社 音声音響符号化装置、音声音響復号装置、およびこれらの方法
US9557836B2 (en) * 2011-11-01 2017-01-31 Microsoft Technology Licensing, Llc Depth image compression
US9459866B2 (en) 2011-12-30 2016-10-04 Intel Corporation Vector frequency compress instruction
CN103391433B (zh) * 2012-05-09 2017-07-18 腾讯科技(深圳)有限公司 视频编码帧内预测扫描方法及视频编码方法
DE102012211031B3 (de) 2012-06-27 2013-11-28 Siemens Aktiengesellschaft Verfahren zur Codierung eines Datenstroms
PL3252762T3 (pl) * 2012-10-01 2019-07-31 Nippon Telegraph And Telephone Corporation Sposób kodowania, koder, program i nośnik zapisu
JP6097399B2 (ja) * 2012-11-19 2017-03-15 エルジー エレクトロニクス インコーポレイティド 信号送受信装置及び信号送受信方法
US9857470B2 (en) 2012-12-28 2018-01-02 Microsoft Technology Licensing, Llc Using photometric stereo for 3D environment modeling
US10043535B2 (en) 2013-01-15 2018-08-07 Staton Techiya, Llc Method and device for spectral expansion for an audio signal
US9940553B2 (en) 2013-02-22 2018-04-10 Microsoft Technology Licensing, Llc Camera/object pose from predicted coordinates
US9786269B2 (en) * 2013-03-14 2017-10-10 Google Inc. Language modeling of complete language sequences
US9607624B2 (en) * 2013-03-29 2017-03-28 Apple Inc. Metadata driven dynamic range control
US9245352B1 (en) 2013-04-12 2016-01-26 Google Inc. Systems and methods for near lossless image compression
US20140327737A1 (en) 2013-05-01 2014-11-06 Raymond John Westwater Method and Apparatus to Perform Optimal Visually-Weighed Quantization of Time-Varying Visual Sequences in Transform Space
US9854377B2 (en) * 2013-05-29 2017-12-26 Qualcomm Incorporated Interpolation for decomposed representations of a sound field
US9626184B2 (en) 2013-06-28 2017-04-18 Intel Corporation Processors, methods, systems, and instructions to transcode variable length code points of unicode characters
RU2677597C2 (ru) * 2013-10-09 2019-01-17 Сони Корпорейшн Способ и устройство кодирования, способ и устройство декодирования и программа
TWI578308B (zh) 2013-10-18 2017-04-11 弗勞恩霍夫爾協會 音訊信號頻譜之頻譜係數的編碼技術
US10045135B2 (en) 2013-10-24 2018-08-07 Staton Techiya, Llc Method and device for recognition and arbitration of an input connection
US10043534B2 (en) 2013-12-23 2018-08-07 Staton Techiya, Llc Method and device for spectral expansion for an audio signal
PL3125242T3 (pl) * 2014-03-24 2018-12-31 Nippon Telegraph & Telephone Sposób kodowania, koder, program i nośnik zapisu
KR102433192B1 (ko) * 2014-07-02 2022-08-18 돌비 인터네셔널 에이비 압축된 hoa 표현을 디코딩하기 위한 방법 및 장치와 압축된 hoa 표현을 인코딩하기 위한 방법 및 장치
EP2963949A1 (en) * 2014-07-02 2016-01-06 Thomson Licensing Method and apparatus for decoding a compressed HOA representation, and method and apparatus for encoding a compressed HOA representation
US10452658B2 (en) 2014-12-23 2019-10-22 Teradata Us, Inc. Caching methods and a system for entropy-based cardinality estimation
WO2016142002A1 (en) * 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
US10763893B2 (en) * 2016-07-20 2020-09-01 Georges Harik Method for data compression
KR102252298B1 (ko) * 2016-10-21 2021-05-14 삼성전자주식회사 표정 인식 방법 및 장치
US10735736B2 (en) 2017-08-29 2020-08-04 Google Llc Selective mixing for entropy coding in video compression
US11177823B2 (en) * 2018-05-21 2021-11-16 Google Llc Data compression by local entropy encoding
US10475456B1 (en) * 2018-06-04 2019-11-12 Qualcomm Incorporated Smart coding mode switching in audio rate adaptation
US11257254B2 (en) * 2018-07-20 2022-02-22 Google Llc Data compression using conditional entropy models
CN111641826B (zh) * 2019-03-01 2022-05-20 杭州海康威视数字技术股份有限公司 对数据进行编码、解码的方法、装置与系统
US11095311B2 (en) * 2019-11-27 2021-08-17 Qualcomm Incorporated Quantization codeword selection for low cost parity checking
MX2023002825A (es) * 2020-09-09 2023-05-30 Voiceage Corp Metodo y dispositivo para la clasificacion de contenido estereo no correlacionado, deteccion de diafonia y seleccion de modo estereo en un codec de sonido.
FR3124671B1 (fr) * 2021-06-25 2023-07-07 Fond B Com Procédés de décodage et de codage d’une image, dispositifs et signal associés
CN113656906B (zh) * 2021-07-29 2023-10-03 浙江大学 一种面向燃气轮机的非平稳多变量因果关系分析方法

Family Cites Families (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420771A (en) 1981-02-09 1983-12-13 Bell Telephone Laboratories, Incorporated Technique for encoding multi-level signals
ATE108587T1 (de) 1986-09-13 1994-07-15 Philips Nv Verfahren und schaltungsanordung zur bitratenreduktion.
US4730348A (en) 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
FR2618354B1 (fr) * 1987-07-20 1989-12-01 Sames Sa Installation de pulverisation de produit de revetement a commande manuelle et projecteur pneumatique d'un tel produit de revetement
US4968135A (en) 1987-08-17 1990-11-06 Digital Equipment Corporation System for producing pixel image data from CCITT encoded pixel data
US4792981A (en) 1987-09-21 1988-12-20 Am International, Inc. Manipulation of run-length encoded images
US4813056A (en) 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
EP0339589A3 (en) 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
US5033087A (en) * 1989-03-14 1991-07-16 International Business Machines Corp. Method and apparatus for the automatic determination of phonological rules as for a continuous speech recognition system
DE3943879B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
FR2646978B1 (fr) 1989-05-11 1991-08-23 France Etat Procede et installation a codage de signaux sonores
US5179442A (en) 1989-06-02 1993-01-12 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5128758A (en) 1989-06-02 1992-07-07 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
JPH0773249B2 (ja) * 1989-06-29 1995-08-02 富士通株式会社 音声符号化・復号化伝送方式
US5270832A (en) 1990-03-14 1993-12-14 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
US5146324A (en) 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
JPH04199981A (ja) 1990-11-29 1992-07-21 Nec Corp 即時処理型1次元符号器
US5253053A (en) * 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
US5266941A (en) 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
JP2670201B2 (ja) 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP2586260B2 (ja) 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
US5227878A (en) 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
DE69228983T2 (de) 1991-12-18 1999-10-28 Koninkl Philips Electronics Nv System zum Übertragen und/oder Speichern von Signalen von texturierten Bildern
EP0559348A3 (en) 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
CA2090052C (en) 1992-03-02 1998-11-24 Anibal Joao De Sousa Ferreira Method and apparatus for the perceptual coding of audio signals
US5227788A (en) 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
US5714950A (en) 1992-07-23 1998-02-03 Samsung Electronics Co., Ltd. System for variable-length-coding and variable-length-decoding digitaldata
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
CA2107727C (en) 1992-10-07 1999-06-01 Hiroaki Ueda Synchronous compression and reconstruction system
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
JP2959916B2 (ja) 1992-10-28 1999-10-06 松下電器産業株式会社 デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
JP2922376B2 (ja) * 1992-12-26 1999-07-19 キヤノン株式会社 シート厚測定装置
US5535305A (en) * 1992-12-31 1996-07-09 Apple Computer, Inc. Sub-partitioned vector quantization of probability density functions
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
US5408234A (en) 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
KR100395190B1 (ko) 1993-05-31 2003-08-21 소니 가부시끼 가이샤 신호 부호화 또는 복호화 장치, 및 신호 부호화 또는복호화 방법
US5664057A (en) 1993-07-07 1997-09-02 Picturetel Corporation Fixed bit rate speech encoder/decoder
US5590960A (en) * 1993-11-04 1997-01-07 E. I. Du Pont De Nemours And Company One tank paint makeup process using a recirculation loop with liquid injection
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR970009408B1 (ko) * 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
US5504591A (en) 1994-04-25 1996-04-02 Microsoft Corporation System and method for compressing graphic images
US5457495A (en) 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US6195465B1 (en) 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US5568167A (en) 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US5802213A (en) 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
BR9506449A (pt) 1994-11-04 1997-09-02 Philips Electronics Nv Aparelhos para codificar um sinal de informação digital de banda larga e para decodificar um sinal digital codificado e processo de codificar um sinal de informação digital de banda larga
JP3371590B2 (ja) 1994-12-28 2003-01-27 ソニー株式会社 高能率符号化方法及び高能率復号化方法
US5574449A (en) 1995-02-24 1996-11-12 Intel Corporation Signal processing with hybrid variable-length and entropy encodidng
US5991451A (en) 1995-03-23 1999-11-23 Intel Corporation Variable-length encoding using code swapping
US5884269A (en) 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5949919A (en) 1995-10-05 1999-09-07 Microsoft Corporation Precompression extrapolation method
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5889891A (en) * 1995-11-21 1999-03-30 Regents Of The University Of California Universal codebook vector quantization with constrained storage
JP3283413B2 (ja) 1995-11-30 2002-05-20 株式会社日立製作所 符号化復号方法、符号化装置および復号装置
JPH09162748A (ja) * 1995-12-01 1997-06-20 Fujitsu Ltd データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
US5956674A (en) 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5831559A (en) 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5812971A (en) 1996-03-22 1998-09-22 Lucent Technologies Inc. Enhanced joint stereo coding method using temporal envelope shaping
US6215910B1 (en) 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
CN1183769C (zh) 1996-05-28 2005-01-05 松下电器产业株式会社 图像预测编码/解码装置和方法以及记录媒体
DE19628292B4 (de) * 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
DE19628293C1 (de) 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
US5828426A (en) 1996-08-20 1998-10-27 Samsung Electronics Co., Ltd. Apparatus for decoding variable length coded data of both MPEG-1 and MPEG-2 standards
JP3318825B2 (ja) 1996-08-20 2002-08-26 ソニー株式会社 デジタル信号符号化処理方法、デジタル信号符号化処理装置、デジタル信号記録方法、デジタル信号記録装置、記録媒体、デジタル信号伝送方法及びデジタル信号伝送装置
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
JP3103383B2 (ja) 1996-11-06 2000-10-30 松下電器産業株式会社 画像復号化方法
ES2203788T3 (es) 1996-11-11 2004-04-16 Koninklijke Philips Electronics N.V. Compresion/expansion de datos mediante un codificador/decodificador de rice.
JP3484310B2 (ja) 1997-01-17 2004-01-06 松下電器産業株式会社 可変長符号器
NL1005084C2 (nl) 1997-01-24 1998-07-27 Oce Tech Bv Werkwijze voor het uitvoeren van een beeldbewerkingsoperatie op looplengte gecodeerde bitmaps.
US6038536A (en) 1997-01-31 2000-03-14 Texas Instruments Incorporated Data compression using bit change statistics
US6272175B1 (en) 1997-02-13 2001-08-07 Conexant Systems, Inc. Video signal coding systems and processes using adaptive quantization
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
FI114248B (fi) * 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US5883633A (en) 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
US6259810B1 (en) 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
US6580834B2 (en) * 1997-05-30 2003-06-17 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding signals
DE19730129C2 (de) * 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
US6421738B1 (en) 1997-07-15 2002-07-16 Microsoft Corporation Method and system for capturing and encoding full-screen video graphics
JPH11161782A (ja) * 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6226407B1 (en) 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
US6054943A (en) 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US6408029B1 (en) 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
KR20010071519A (ko) * 1998-06-19 2001-07-28 벤자민 에프 커틀러 제1 해상도를 가지는 인코딩된 이미지를 제2 해상도를가지는 이미지로 직접 디코딩하는 방법 및 장치
JP3413720B2 (ja) * 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US6253165B1 (en) * 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
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
WO2000021199A1 (fr) 1998-10-06 2000-04-13 Matsushita Electric Industrial Co., Ltd. Procede et dispositif de codage a compression sans perte, et procede et dispositif de decodage a compression sans perte
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6377930B1 (en) * 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6100825A (en) 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
US6573915B1 (en) * 1999-12-08 2003-06-03 International Business Machines Corporation Efficient capture of computer screens
US6567781B1 (en) * 1999-12-30 2003-05-20 Quikcat.Com, Inc. Method and apparatus for compressing audio data using a dynamical system having a multi-state dynamical rule set and associated transform basis function
JP2001236088A (ja) * 2000-02-22 2001-08-31 Mitsubishi Electric Corp 統計的言語モデル作成装置、統計的言語モデル作成方法及び統計的言語モデル作成プログラムが記述された記録媒体
US6636168B2 (en) * 2000-05-23 2003-10-21 Matsushita Electric Industrial Co., Ltd. Variable length coding method and variable length coding apparatus
US6542863B1 (en) * 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
JP4508490B2 (ja) * 2000-09-11 2010-07-21 パナソニック株式会社 符号化装置および復号化装置
US6961685B2 (en) * 2000-09-19 2005-11-01 Sy Bon K Probability model selection using information-theoretic optimization criterion
US6587057B2 (en) * 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
US20030033143A1 (en) * 2001-08-13 2003-02-13 Hagai Aronowitz Decreasing noise sensitivity in speech processing under adverse conditions
US7165028B2 (en) * 2001-12-12 2007-01-16 Texas Instruments Incorporated Method of speech recognition resistant to convolutive distortion and additive distortion
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
JP4728568B2 (ja) * 2002-09-04 2011-07-20 マイクロソフト コーポレーション レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
ES2388942T3 (es) * 2002-09-04 2012-10-19 Microsoft Corporation Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel
US20040136457A1 (en) * 2002-10-23 2004-07-15 John Funnell Method and system for supercompression of compressed digital video
US7324927B2 (en) * 2003-07-03 2008-01-29 Robert Bosch Gmbh Fast feature selection method and system for maximum entropy modeling
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding

Also Published As

Publication number Publication date
CA2612537A1 (en) 2007-01-25
ATE536001T1 (de) 2011-12-15
EP1905000A4 (en) 2009-08-26
MX2008000524A (es) 2008-03-06
JP2009501943A (ja) 2009-01-22
CA2612537C (en) 2014-09-09
CN101223573B (zh) 2011-07-27
CN101223573A (zh) 2008-07-16
US20070016418A1 (en) 2007-01-18
EP1905000B1 (en) 2011-11-30
AU2006270259A1 (en) 2007-01-25
NO341186B1 (no) 2017-09-04
WO2007011653A2 (en) 2007-01-25
KR20080025399A (ko) 2008-03-20
KR101278805B1 (ko) 2013-06-25
EP1905000A2 (en) 2008-04-02
ES2378393T3 (es) 2012-04-12
US7599840B2 (en) 2009-10-06
WO2007011653A3 (en) 2007-06-07
NO20076261L (no) 2008-02-06
AU2006270259B2 (en) 2011-03-03

Similar Documents

Publication Publication Date Title
JP5085543B2 (ja) 適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用
US7693709B2 (en) Reordering coefficients for waveform coding or decoding
US7684981B2 (en) Prediction of spectral coefficients in waveform coding and decoding
US7761290B2 (en) Flexible frequency and time partitioning in perceptual transform coding of audio
KR101343267B1 (ko) 주파수 세그먼트화를 이용한 오디오 코딩 및 디코딩을 위한 방법 및 장치
US7383180B2 (en) Constant bitrate media encoding techniques
US7539612B2 (en) Coding and decoding scale factor information
US7433824B2 (en) Entropy coding by adapting coding between level and run-length/level modes
KR101330362B1 (ko) 오디오 인코딩 방법, 오디오 디코딩 방법 및 오디오 인코더 디바이스
EP1396843B1 (en) Mixed lossless audio compression
US7822601B2 (en) Adaptive vector Huffman coding and decoding based on a sum of values of audio data symbols
US7774205B2 (en) Coding of sparse digital media spectral data
RU2740690C2 (ru) Звуковые кодирующее устройство и декодирующее устройство
JP5400143B2 (ja) オーバーラッピング変換の2つのブロック変換への因数分解
KR20110042137A (ko) 넓은-뜻의 지각적 유사성을 이용하는 디지털 미디어 스펙트럼 데이터의 효과적인 코딩

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120213

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: 20120831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120905

R150 Certificate of patent or registration of utility model

Ref document number: 5085543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250