(57)【特許請求の範囲】
【請求項１】
エンコード化デジタルオーディオ信号のフレームをデコーディングするための方法で、
フレームがフレームメタデータと、最初のオーディオブロックおよびそれに続く１つまたは複数のオーディオブロックとを備え、
最初およびそれに続くオーディオブロックがそれぞれ、２つまたは複数のオーディオチャンネルのブロックメタデータとエンコード化オーディオデータとを備え、
このエンコード化オーディオデータが、２つまたは複数のオーディオチャンネルのスペクトル内容を表す桁移動子と桁値とを備え、各桁値が桁移動子の対応する１つと関連付けられており、
ブロックメタデータが、このエンコード化オーディオデータを生成したエンコーディング処理で使用されたコーディングツールを表す制御情報を備え、この制御情報が、適応型ハイブリッド変換処理がエンコーディング処理で使用されたことを示し、適応型ハイブリッド変換処理が、
第１の変換により実施された解析フィルタバンクを２つまたは複数のオーディオチャンネルに適用して第１の変換係数を生成することと、
第２の変換を少なくとも２つまたは複数のオーディオチャンネルの一部の第１の変換係数に適用してハイブリッド変換係数を生成することとを備え、
この方法が、
（Ａ）エンコード化デジタルオーディオ信号のフレームを受信することと、
（Ｂ）フレームのエンコード化デジタルオーディオ信号を１つの経路で検証して、各オーディオブロックのエンコード化オーディオデータをブロック順にデコードすることであって、このそれぞれ対応するオーディオブロックのデコーディングが、
（１）対応するオーディオブロックがフレームの最初のオーディオブロックである場合は、
（ａ）フレームの対応するチャンネルのすべてのハイブリッド変換係数を、最初のオーディオブロックのエンコード化オーディオデータから取得し、
（ｂ）逆の第２の変換をハイブリッド変換係数に適用して逆の第２の変換係数を取得することと、
（２）第１の変換係数を対応するオーディオブロックで対応するチャンネルの逆の第２の変換係数から取得することとを含む、前記デコードすること、
（Ｃ）逆の第１の変換が第１の変換係数に適用されて、対応するオーディオブロックで対応するチャンネルを表す出力信号を生成すること
とを備える方法。
【請求項２】
請求項１の方法で、エンコード化デジタルオーディオ信号のフレームが拡張ＡＣ−３ビットストリーム構文に準拠している方法。
【請求項３】
請求項２の方法で、コーディングツールがスペクトル拡張処理を含み、前記制御情報が、スペクトル拡張処理がエンコーディング処理で使用されたことを示し、対応する各オーディオブロックのデコーディングがさらに、
逆の第２の変換係数から１つまたは複数のスペクトルコンポーネントを合成して拡張帯域幅を有する第１の変換係数を取得することを備えた方法。
【請求項４】
請求項２または３の方法で、コーディングツールがチャンネル結合を含み、前記制御情報が、チャンネル結合がエンコーディング処理で使用されたことを示し、対応する各オーディオブロックのデコーディングがさらに、
逆の第２の変換係数からスペクトルコンポーネントを抽出して結合されたチャンネルの第１の変換係数を取得することを備えた方法。
【請求項５】
請求項２または３の方法で、コーディングツールがチャンネル結合を含み、前記制御情報が、チャンネル結合がエンコーディング処理で使用されたことを示し、対応する各オーディオブロックのデコーディングがさらに、
（Ａ）対応するチャンネルがフレームで結合を使用した最初のチャンネルである場合は、
（１）対応するオーディオブロックがフレームの最初のオーディオブロックである場合は、
（ａ）フレームの結合チャンネルのすべてのハイブリッド変換係数を、最初のオーディオブロックのエンコード化オーディオデータから取得し、
（ｂ）逆の第２の変換をハイブリッド変換係数に適用して逆の第２の変換係数を取得することと、
（２）第１の変換係数を対応するオーディオブロックで結合チャンネルの逆の第２の変換係数から取得することとを備え、
（Ｂ）対応するチャンネルの第１の変換係数を、結合チャンネルのスペクトルコンポーネントの結合解除により取得すること
とを備えた方法。
【請求項６】
エンコード化デジタルオーディオ信号のフレームをデコーディングするための装置で、請求項１から５までのいずれか一項のすべての手順を実行する手段を備えた装置。
【請求項７】
エンコード化デジタルオーディオ信号のフレームをデコーディングするための方法を実行するための、装置により実行可能な指示のプログラムを記録する、前記装置により読み取り可能なストレージ媒体で、この方法が、請求項１から５までのいずれか一項のすべての手順を備えている、媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００９年１２月７日に出願された米国仮特許出願番号６１／２６７，４２２の優先権を主張しており、これは、本明細書に参照によりそのまま組み込まれる。
【０００２】
本発明は、一般に、オーディオコーディングシステムに関する。特には、エンコードされたデジタルオーディオ信号をデコードする方法と装置に関する。
【背景技術】
【０００３】
Ｕｎｉｔｅｄ  Ｓｔａｔｅｓ  Ａｄｖａｎｃｅｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  Ｃｏｍｍｉｔｔｅｅ（ＡＴＳＣ）は、Ｊｏｉｎｔ  Ｃｏｍｍｉｔｔｅｅ  ｏｎ  ＩｎｔｅｒＳｏｃｉｅｔｙ  Ｃｏｏｒｄｉｎａｔｉｏｎ（ＪＣＩＣ）の加盟団体により形成され、米国国内テレビジョンサービスの開発のための国内標準の協調的なセットを開発した。関連するオーディオエンコーディングおよびデコーディング標準を含むこれらの標準は、２００５年６月１４日公開の文書Ａ／５２Ｂ、タイトル「Ｄｉｇｉｔａｌ  Ａｕｄｉｏ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＣ−３，  Ｅ−ＡＣ−３）」、リビジョンＢに含まれる複数の文書で説明されており、参照により本明細書にそのまま組み込まれる。文書Ａ／５２Ｂで指定されるオーディオコーディングアルゴリズムを、「ＡＣ−３」と呼ぶ。このアルゴリズムの拡張バージョンは、文書のＡｎｎｅｘ  Ｅに説明されているが、「Ｅ−ＡＣ−３」と呼ぶ。これら２つのアルゴリズムは、本明細書では「ＡＣ−３」と呼び、関連する標準は、本明細書では「ＡＴＳＣ標準」と呼ぶ。
【０００４】
Ａ／５２Ｂ文書は、アルゴリズム設計の側面を多く指定しているものではないが、その代わり、これに準拠するデコーダがデコーディングできなければならないエンコードされた情報の構造的構文的特徴を定義する「ビットストリーム構文」について説明している。ＡＴＳＣ標準に準拠するアプリケーションの多くは、エンコード化デジタルオーディオ情報を、連続したバイナリデータの形で送信する。結果として、エンコード化データはビットストリームと呼ばれることが良くあるが、その他のデータ配列でも差し支えない。説明しやすくするため、「ビットストリーム」という言葉は、本明細書では、形式または使用されている記録技術または伝送技術にかかわらずエンコード化デジタルオーディオ信号を指すこととする。
【０００５】
ＡＴＳＣ標準に準拠するビットストリームは、連続した「同期フレーム」で配列される。各フレームは、パルス符号変調（ＰＣＭ）デジタルオーディオデータの１つまたは複数のチャンネルに完全デコードできるビットストリームの単位である。各フレームは、「オーディオブロック」とオーディオブロックに関連付けられているフレームメタデータとを含む。各オーディオブロックは、１つまたは複数のオーディオチャンネルに対するデジタルオーディオサンプルを表すエンコード化オーディオデータと、エンコード化オーディオデータと関連付けられたブロックメタデータとを格納する。
【０００６】
アルゴリズムの設計の詳細はＡＴＳＣ標準で指定されていないが、特定のアルゴリズムの機能が、プロフェッショナルおよびコンシューマ向けデコーディング装置の製造者により幅広く適用されてきた。Ｅ−ＡＣ−３エンコーダにより生成された拡張ＡＣ−３ビットストリームをデコード可能なデコーダに実装する汎用的な機能の１つに、対象チャンネルのフレームのすべてのエンコード化データを、別のチャンネルのデータのデコードの前にデコードするアルゴリズムがある。この手法は、オンチップメモリが少ないシングルチッププロセッサでの実行パフォーマンスを改善するために使用されてきた。デコーディングプロセスの一部で、フレームの各オーディオブロックからの特定のチャンネルに対するデータを必要とするためである。チャンネル順でエンコード化データを処理することで、デコード操作を特定のチャンネルに対してオンチップメモリを使用して実行することができる。デコードされたチャンネルデータは続いて、次のチャンネル用にオンチップのリソースを開放するため外部メモリに移される。
【０００７】
ＡＴＳＣ標準に準拠するビットストリームは、多数のバリエーションを取り得るため、非常に複雑になる可能性がある。本明細書で説明するいくつかの例は、チャンネル結合、チャンネル再マトリックス化、会話の標準化、ダイナミックレンジ圧縮、チャンネルダウンミキシングおよび標準ＡＣ−３ビットストリームのブロック長スイッチング、および複数独立ストリーム、従属サブストリーム、スペクトル拡張および拡張ＡＣ−３ビットストリームの適応型ハイブリッド変換の概要のみを含む。これらの機能の詳細は、Ａ／５２Ｂ文書から取得できる。
【０００８】
各チャンネルを独立して処理することにより、これらのバリエーションに必要なアルゴリズムを簡略化できる。合成フィルタリングのような、次に続く複雑な処理は、これらのバリエーションを考慮せずに実行可能である。より簡略化されたアルゴリズムは、オーディオデータのフレームの処理に必要な計算リソースを削減するという点でメリットがあると思われる。
【０００９】
あいにく、この手法には、オーディオブロックすべてのデータを２回読み取り検証するデコーディングアルゴリズムが必要である。フレームのオーディオブロックデータの読み取りと検証の各繰り返しを、本明細書ではオーディオブロックの「受け渡し」と呼ぶ。最初の受け渡しは、各ブロックのエンコード化オーディオデータの位置を判別するための広範な計算を実行する。２回目の受け渡しは、デコーディング処理で実行されるものと同じ計算の多くを実行する。両方の受け渡しとも、データ位置の計算に多くの計算リソースを必要とする。最初の受け渡しがなくなれば、オーディオデータのフレームのデコードに必要な合計処理リソースを削減することが可能となるであろう。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、前述のフレームおよびオーディオブロックなどの階層化された単位で配列されたエンコード化ビットストリームのオーディオデータのフレームのデコードに必要な計算リソースを削減することである。前述の内容と以下の開示は、ＡＴＳＣ標準に準拠したエンコード化ビットストリームを参照しているが、本発明はこれらのビットストリームでの使用のみに制限されない。本発明の原理は、基本的に、ＡＣ−３コーディングアルゴリズムで使用されるフレーム、ブロックおよびチャンネルと同様の構造的特徴を持つ任意のエンコード化ビットストリームに適用して良い。
【課題を解決するための手段】
【００１１】
本発明の一態様に従うと、方法は、各オーディオブロックのエンコード化オーディオデータをブロック順でデコードするために、フレームの受信とエンコード化デジタルオーディオ信号の検証を単一の受け渡しで行うことによりエンコード化デジタルオーディオ信号のフレームをデコードする。各フレームはフレームメタデータと複数のオーディオブロックとを備える。各オーディオブロックは、１つまたは複数のオーディオチャンネルのブロックメタデータとエンコード化オーディオデータとを備える。ブロックメタデータは、エンコード化オーディオデータを生成するエンコーディング処理により使用されるコーディングツールを記述した制御情報を備える。コーディングツールの１つに、１つまたは複数のオーディオチャンネルのスペクトル内容を表すスペクトル係数を生成する１つまたは複数のオーディオチャンネルに第１の変換により実施される解析フィルタバンクを適用し、１つまたは複数のオーディオチャンネルの少なくとも一部のスペクトル係数に第２の変換を適用してハイブリッド変換係数を生成するハイブリッド変換処理がある。各オーディオブロックのデコーディングで、エンコーディング処理がエンコード化オーディオデータのいずれかのエンコードに、適応型ハイブリッド変換処理を使用したかどうかを判別する。エンコーディング処理が適応型ハイブリッド変換処理を使用した場合、この方法は、フレームの最初のオーディオブロックのエンコード化オーディオデータから、フレームのすべてのハイブリッド変換係数を取得して、逆の第２の変換係数を取得して逆の第２の変換係数からスペクトル係数を取得するため、ハイブリッド変換係数へ第２の逆変換を適用する。エンコーディング処理が適応型ハイブリッド変換処理を使用しなかった場合、スペクトル係数が、対応するオーディオブロックのエンコード化オーディオデータから取得される。逆の第１の変換がスペクトル係数に適用されて、対応するオーディオブロックで１つまたは複数のチャンネルを表す出力信号を生成する。
【００１２】
本発明およびその好ましい実施形態のさまざまな特徴は、以降の説明と、複数の図で同じ符号が同じ要素を示す添付の図面を参照することにより、より良く理解することができよう。以降の説明および図面の内容は、例としてのみ示しており、本発明の範囲の制限を表すものと理解されるべきではない。
【図面の簡単な説明】
【００１３】
【図１】エンコーダの典型的な実装の概略ブロック図である。
【図２】デコーダの典型的な実装の概略ブロック図である。
【図３Ａ】標準および拡張構文的構造に準拠したビットストリーム内のフレームの概略図である。
【図３Ｂ】標準および拡張構文的構造に準拠したビットストリーム内のフレームの概略図である。
【図４Ａ】標準および拡張構文的構造に準拠したオーディオブロックの概略図である。
【図４Ｂ】標準および拡張構文的構造に準拠したオーディオブロックの概略図である。
【図５Ａ】プログラムおよびチャンネル拡張を使用した典型的なビットストリーム伝送データの概略図である。
【図５Ｂ】プログラムおよびチャンネル拡張を使用した典型的なビットストリーム伝送データの概略図である。
【図５Ｃ】プログラムおよびチャンネル拡張を使用した典型的なビットストリーム伝送データの概略図である。
【図６】チャンネル順でエンコード化オーディオデータを処理するデコーダにより実装された典型的な処理の概略ブロック図である。
【図７】ブロック順でエンコード化オーディオデータを処理するデコーダにより実装された典型的な処理の概略ブロック図である。
【図８】本発明のさまざまな態様の実施に使用できる装置の概略ブロック図である。
【発明を実施するための形態】
【００１４】
Ａ．コーディングシステムの概要
図１と２は、デコーダを本発明のさまざまな態様と組み合わせることができるオーディオコーディングシステムのエンコーダおよびデコーダの典型的な実装の概略ブロック図である。これらの実装は、前述のＡ／５２Ｂ文書で開示されている内容に準拠している。
【００１５】
コーディングシステムの目的は、記録または送信した後にデコードして入力オーディオ信号と基本的に同一な音の出力オーディオ信号を生成可能な、入力オーディオ信号のエンコード化表現を生成しながらもエンコード化信号を表すデジタル情報量の使用を最小限にすることである。基本的なＡＴＳＣ標準に準拠したコーディングシステムは、１チャンネルからいわゆる５．１チャンネルまでのオーディオ信号を表現できる情報のエンコーディングおよびデコーディングが可能である。５．１は、完全帯域幅信号を伝送できる５チャンネルと、低音効果（ＬＦＥ）用の信号を伝送するための限定帯域幅の１チャンネルとを意味することは理解されていよう。
【００１６】
以降のセクションで、エンコーダおよびデコーダの実装と、エンコード化ビットストリーム構造と関連するエンコーディングおよびデコーディング処理の詳細を一部説明する。これらの説明は、本発明のさまざまな態様をより簡潔に説明し、より明確に理解できるようにするために提供される。
【００１７】
１．エンコーダ
図１の典型的な実施例を参照すると、エンコーダは、入力信号経路１からの１つまたは複数のオーディオ信号の入力チャンネルを表す一連のパルス符号変調（ＰＣＭ）サンプルを受信し、解析フィルタバンク２をこの一連のサンプルに適用して、入力オーディオ信号のスペクトル構成を表すデジタル値を生成する。ＡＴＳＣ標準に準拠した実施形態では、解析フィルタバンクは、Ａ／５２Ｂ文書で説明される変形離散コサイン変換（ＭＤＣＴ）により実装される。ＭＤＣＴは、オーディオ信号の各入力チャンネルで重複セグメントまたはサンプルのブロックに適用されて、その入力チャンネル信号のスペクトル構造を表す変換係数のブロックを生成する。ＭＤＣＴは、時間領域エイリアシングを取り消すための特別に設計された窓関数と重複／追加処理を使用する解析／合成システムの一部である。各ブロックの変換係数は、浮動小数点指数と仮数とを備えたブロック浮動小数点（ＢＦＰ）形式で表される。この説明は、浮動小数点指数と仮数として表されるオーディオデータについて述べている。この表示形式は、ＡＴＳＣ標準に準拠するビットストリームで使用されるためである。しかし、この具体的な表現は、桁移動子と関連する桁値を使用する数的表示の一例に過ぎない。
【００１８】
各ブロックのＢＦＰ指数はまとめて、入力オーディオ信号の近似スペクトル包絡を提供する。これらの指数は、情報の必要量を削減するためデルタ変調およびその他のコーディング技術によりエンコードされ、フォーマッタ５に渡され、心理音響モデルに入力されて、エンコードされる信号の心理音響的マスキングしきい値を推定する。このモデルから得られる結果は、ビットアロケータ３で使用されて、デジタル情報を、仮数を量子化するためのビット形式で、量子化により生成されたノイズレベルがエンコードされる信号の心理音響的マスキングしきい値を超えないような方法で割り当てる。量子化器４は、ビットアロケータ３から受信してフォーマッタ５に渡されるビット割り当てに従って、仮数を量子化する。
【００１９】
フォーマッタ５は、エンコード化指数、量子化仮数およびその他の、ブロックメタデータと呼ばれることもある制御情報を、オーディオブロックに多重化またはアセンブルする。６つの連続したオーディオブロックのデータは、フレームと呼ばれるデジタル情報の単位にアセンブルされる。フレーム自身には、制御情報またはフレームメタデータも格納される。連続したフレームのエンコード化情報は、情報ストレージ媒体上に記録するため、または通信チャンネルを通じて送信するために経路６を通るビットストリームとして出力される。ＡＴＳＣ標準に準拠するエンコーダでは、ビットストリームの各フレームの形式は、Ａ／５２Ｂ文書に指定された構文に準拠する。
【００２０】
ＡＴＳＣ標準に準拠する一般的なエンコーダで使用されるコーディングアルゴリズムは、図１に示す、また前述のアルゴリズムよりも複雑である。たとえば、受信デコーダがビットストリームを検証できるよう、エラー検出コードがフレームに挿入される。ブロック長スイッチングとして知られ、より簡単にブロックスイッチングとして呼ばれることもあるコーディング技術を、変化する信号特性でのパフォーマンスが最適になるよう解析フィルタバンクの時間的スペクトル的解像度を適合させるために使用しても良い。浮動小数点指数は、可変の時間及び周波数解像度でエンコードして良い。複数のチャンネルを、チャンネル結合として知られるコーディング技術を使用して合成の表現に組み合わせても良い。チャンネル再マトリックスとして知られる別のコーディング技術を、２チャンネルオーディオ信号に適応的に使用しても良い。本明細書で説明しないさらなるコーディング技術を使用しても良い。これらその他のコーディング技術のいくつかは、後述する。実装のその他多くの詳細は、本発明の理解には不要であるため省略する。これらの詳細は、必要に応じて、Ａ／５２Ｂ文書から取得できる。
【００２１】
２．デコーダ
デコーダは、基本的に、エンコーダで実行されるコーディングアルゴリズムの逆のデコーディングアルゴリズムを実行する。図２の典型的な実施形態を参照すると、デコーダは一連のフレームを表すエンコード化ビットストリームを、入力信号経路１１から受信する。エンコード化ビットストリームは、情報ストレージ媒体から取得または通信チャンネルから受信しても良い。デフォーマッタ１２は、各フレームのエンコード化情報を、フレームメタデータと６つのオーディオブロックに多重分離または逆アセンブルする。オーディオブロックはそれぞれ対応するブロックメタデータ、エンコード化指数、および量子化仮数に逆アセンブルされる。エンコード化指数は、ビットアロケータ１３で心理音響モデルに使用され、デジタル情報を、ビットがエンコーダで割り当てられた時と同じ方法で、量子化仮数を逆量子化するためのビットの形式に配分する。逆量子化器１４は、量子化された仮数を、ビットアロケータ１３から受信したビット割り当てに従って逆量子化し、逆量子化された仮数を、合成フィルタバンク１５に渡す。エンコード化指数は、デコードされ、合成フィルタバンク１５に渡される。
【００２２】
デコードされた指数と逆量子化された仮数は、エンコーダでエンコードされたように入力音声信号のスペクトル内容のＢＦＰ記述を構成する。合成フィルタバンク１５は、スペクトル内容の記述に適用され、元の入力オーディオ信号の厳密ではない複製を再構築し、出力信号経路１６を通じて渡される。ＡＴＳＣ標準に準拠した実施形態では、合成フィルタバンクは、Ａ／５２Ｂ文書で説明される逆変形離散コサイン変換（ＩＭＤＣＴ）により実装される。ＩＭＤＣＴは簡単に前述した、時間領域エイリアシングを取り消すため重複され追加されたオーディオサンプルのブロックを生成する変換係数のブロックに適用される解析／合成システムの一部である。
【００２３】
ＡＴＳＣ標準に準拠する一般的なデコーダで使用されるデコーディングアルゴリズムは、図２に示す、また前述のアルゴリズムよりも複雑である。前述のコーディング技術の逆であるデコーディング技術のいくつかには、エラー修正または隠匿のためのエラー検出、合成フィルタバンクの時間的スペクトル的解像度を適用するブロック長スイッチング、結合された構造表現からチャンネル情報を復元するチャンネル結合解除、および再マトリックス化された２つのチャンネル記述の復元のためのマトリックス操作が含まれる。その他の技術について、およびさらなる詳細についての情報は、必要に応じてＡ／５２Ｂ文書から取得できる。
【００２４】
Ｂ．エンコード化ビットストリーム構造
１．フレーム
ＡＴＳＣ標準に準拠したエンコード化ビットストリームは、「同期フレーム」と呼ばれ、より簡単にフレームと呼ばれることもある一連のエンコード化情報単位を備える。前述のように、各フレームはフレームメタデータと６つのオーディオブロックとを格納する。各オーディオブロックは、オーディオ信号の１つまたは複数のチャンネルの間隔が一致するようにするためのブロックメタデータとエンコード化ＢＦＰ指数および仮数を格納する。標準ビットストリームの構造を、図３Ａに概略的に示す。Ａ／５２Ｂ文書のＡｎｎｅｘ  Ｅで説明されているような拡張ＡＣ−３ビットストリームの構造を、図３Ｂに示す。各ビットストリームの、ＳＩとＣＲＣとの印が付いた間の部分が１つのフレームである。
【００２５】
特殊なビットパターンまたは同期ワードが、各フレームの最初に用意される同期情報（ＳＩ）に含まれ、デコーダがフレームの開始位置を識別し、そのデコーディング処理とエンコード化ビットストリームとの同期を保持することができるようにする。ＳＩの直後に続く、ビットストリーム情報（ＢＳＩ）部分がデコーディングアルゴリズムがフレームをデコードするのに必要とするパラメータを伝送する。たとえば、ＢＳＩはフレームのエンコード化情報で表されるチャンネルの番号、タイプ、順番、およびデコーダにより使用されるダイナミックレンジ圧縮と会話の標準化情報を指定する。各フレームには６つのオーディオブロック（ＡＢ０〜ＡＢ５）と、必要に応じて補助（ＡＵＸ）データが続いて格納されている。エラー検出情報が巡回冗長検査（ＣＲＣ）ワードの形式で各フレームの最後に提供される。
【００２６】
拡張ＡＣ−３ビットストリームのフレームはまた、標準ビットストリームのコーディングでは使用できない高度なコーディング技術に関するフラグおよびパラメータを含むオーディオフレーム（ＡＦＲＭ）データも格納する。高度な技術のいくつかは、スペクトル複製としても知られているスペクトル拡張（ＳＰＸ）および適応型ハイブリッド変換（ＡＨＴ）の使用を含む。さまざまなコーディング技術を以降で説明する。
【００２７】
２．オーディオブロック
各オーディオブロックは、２５６の変換係数用のＢＦＰ指数および量子化仮数のエンコードされた表現と、エンコード化指数と量子化仮数のデコードに必要なブロックメタデータを格納する。この構造を、図４Ａに概略的に示す。Ａ／５２Ｂ文書のＡｎｎｅｘ  Ｅで説明されているような拡張ＡＣ−３ビットストリームのオーディオブロックの構造を、図４Ｂに示す。Ａ／５２Ｂ文書のＡｎｎｅｘ  Ｄで説明されているビットストリームの別のバージョンにおけるオーディオブロック構造は、その独自の機能が本発明には関係しないため、本明細書では説明しない。
【００２８】
ブロックメタデータのいくつかの例では、ブロックスイッチング（ＢＬＫＳＷ）、ダイナミックレンジ圧縮（ＤＹＮＲＮＧ）、チャンネル結合（ＣＰＬ）、チャンネル再マトリックス化（ＲＥＭＡＴ）、ＢＦＰ指数のエンコードに使用される指数コーディング技術または戦略（ＥＸＰＳＴＲ）、エンコード化ＢＦＰ指数（ＥＸＰ）、仮数のビット割り当て（ＢＡ）情報、デルタビット割り当て（ＤＢＡ）情報として知られるビット割り当て調整、および量子化された仮数（ＭＡＮＴ）のフラグとパラメータを含む。拡張ＡＣ−３ビットストリームの各オーディオブロックは、スペクトル拡張（ＳＰＸ）を含む高度なコーディング技術用の情報を格納しても良い。
【００２９】
３．ビットストリームの制限
ＡＴＳＣ標準は、本発明に関するビットストリームの内容にいくつかの制限を課する。本明細書では以下の２つの制限を説明する。（１）フレームの最初のオーディオブロックは、ＡＢ０と呼ばれるが、デコーディングアルゴリズムが、フレームのすべてのオーディオブロックのデコードを開始するために必要なすべての情報を格納していなければならない、（２）ビットストリームがチャンネル結合により生成されたエンコード化情報の伝送を開始したら常に、最初に使用されるチャンネル結合のオーディオブロックは、結合解除に必要なすべてのパラメータを格納していなければならない。これらの特徴について、以降で説明する。本明細書で説明していないその他の処理についての情報は、Ａ／５２Ｂ文書から取得できる。
【００３０】
Ｃ．標準コーディングプロセスと技術
ＡＴＳＣ標準は、エンコーディング処理またはエンコード化ビットストリームの生成に使用できる「コーディングツール」の観点から、ビットストリーム構文の特徴をいくつか記載している。エンコーダは、すべてのコーディングツールを採用する必要はないが、標準に準拠するデコーダは、準拠に欠かせないと判断されるコーディングツールに対応可能でなければならない。この対応は、基本的に対応するコーディングツールの逆である適切なデコーディングツールを実行することにより実装される。
【００３１】
いくつかのデコーディングツールは、特に本発明と関連がある。そのツールを使用するかしないかが、本発明の態様をどのように実施するべきかに影響を与えるためである。２、３のデコーディング処理と２、３のデコーディングツールを、以降の段落で簡潔に説明する。以下の説明は、完全な説明を目的としたものではない。各種詳細とオプションの機能は省略している。説明は、技術になじみのない者に高いレベルで紹介し、これらの言葉が説明している技術を忘れている可能性がある者の記憶を新たにすることだけを目的としている。
【００３２】
必要に応じて、さらなる詳細がＡ／５２Ｂ文書から、および１９９６年１２月１０日開示の、参照により本明細書にそのまま組み込まれる、Ｄａｖｉｓ  ｅｔ  ａｌ．による米国特許第５，５８３，９６２「Ｅｎｃｏｄｅｒ／Ｄｅｃｏｄｅｒ  ｆｏｒ  Ｍｕｌｔｉ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｓｏｕｎｄ  Ｆｉｅｌｄｓ」から取得できる。
【００３３】
１．ビットストリームの解凍
すべてのデコーダはエンコード化ビットストリームの解凍または多重分離を行い、パラメータおよびエンコードされたデータを取得する必要がある。この処理は、前述のデフォーマッタ１２で表される。この処理は基本的に、入力ビットストリームのデータを読み取り、ビットストリームの部分をレジスタにコピーし、この部分を記憶域にコピーし、またはバッファに保存されたビットストリームのデータへのポインタまたはその他の参照を保存するものである。メモリは、データおよびポインタの保存に必要であり、この情報を後から使用するために保存しておくことと、必要な時点で情報を取得するためビットストリームを再読み取りすることとの間でトレードオフをすることができる。
【００３４】
２．指数デコーディング
すべてのＢＦＰ指数の値は、各フレームでオーディオブロック内のデータを解凍するために必要である。これらの値は、間接的に、量子化された仮数に割り当てられたビット数を示すためである。ただし、時間と周波数との両方にわたり適用できる違うコーディング技術により、ビットストリーム中の指数値はエンコード化される。この結果、他のデコーディングプロセスで使用できるようにするには、エンコードされた指数を記述するデータがビットストリームから解凍され、デコードされる必要がある。
【００３５】
３．ビット割り当て処理
ビットストリームの量子化されたＢＦＰ仮数のそれぞれは、ＢＦＰ指数の関数であるビットの可変の数と、場合によってはビットストリームに格納されたその他のメタデータにより表される。ＢＦＰ指数は、指定されたモデルで、各仮数のビット割り当てを計算するモデルに入力される。オーディオブロックが、デルタビット割り当て（ＤＢＡ）情報も格納している場合、この追加情報は、モデルにより計算されるビット割り当ての調整に使用される。
【００３６】
４．仮数処理
量子化されたＢＦＰ仮数は、エンコードされたビットストリームのデータの大部分を構成する。ビット割り当ては、解凍時のビットストリームの各仮数の位置の決定と、逆量子化された仮数を取得するための適切な逆量子化関数の選択との両方のために使用される。ビットストリームのデータの一部は、単一の値で複数の仮数を表すことができる。この状況では、適切な仮数の数値が、単一の値から抽出される。ゼロに相当する割り当てを有する仮数は、ゼロに相当する値または疑似乱数の数値としてのいずれかで再生成しても良い。
【００３７】
５．チャンネル結合解除
チャンネル結合コーディング技術で、エンコーダは複数のオーディオチャンネルを少ないデータ量で表現することができる。この技術は、結合チャンネルと呼ばれる複数の選択されたチャンネルからスペクトルコンポーネントを結合し、結合チャンネルと呼ばれる合成スペクトルコンポーネントの単一チャンネルを形成する。結合チャンネルのスペクトルコンポーネントは、ＢＦＰ形式で記述される。結合チャンネルと結合されている各チャンネルとの間のエネルギーの差異を説明する桁移動子のセットは、結合座標として知られ、結合チャンネルそれぞれから抽出されて、エンコード化ビットストリームに含められる。結合は、各チャンネルの帯域の指定された部分だけに使用される。
【００３８】
チャンネル結合が使用されると、ビットストリームのパラメータの指定の通りに、デコーダはチャンネル結合解除として知られるデコーディング技術を使用して、ＢＦＰ指数および仮数の厳密ではない複製を、結合チャンネルごとに、結合チャンネルおよび結合座標のスペクトルコンポーネントから抽出する。これは、各結合チャンネルのスペクトルコンポーネントを、適切な結合座標で乗ずることにより行われる。さらなる詳細はＡ／５２Ｂ文書から取得できる。
【００３９】
６．チャンネルの再マトリックス化
チャンネルの再マトリックス化コーディング技術で、エンコーダは、マトリックスを使用して２つの独立したオーディオチャンネルを合計および差異チャンネルに変換することで、２チャンネル信号をより少ないデータ量で表現できる。ＢＦＰ指数および仮数は通常、合計と差異チャンネルとの記述ではなく、左右のオーディオチャンネルのビットストリームに圧縮される。この技術は、２つのチャンネルの類似性が高い場合に有利に使用することができる。
再マトリックス化が使用されると、ビットストリームのフラグの指定の通りに、デコーダは、適切なマトリックスを合計および差異値に適用することにより、２つのオーディオチャンネルを表現する値を取得する。さらなる詳細はＡ／５２Ｂ文書から取得できる。
【００４０】
Ｄ．拡張コーディングプロセスと技術
Ａ／５２ＢのＡｎｎｅｘ  Ｅで、高度なコーディングツールの使用が可能な拡張ＡＣ−３ビットストリーム構文の特徴について説明している。これらのツールのいくつかと、関連プロセスを、以降で簡単に説明する。
【００４１】
１．適応型ハイブリッド変換処理
適応型ハイブリッド変換（ＡＨＴ）コーディング技術は、２つの変換をカスケード式で適用することにより信号特性を変換することに対する解析および合成フィルタバンクの時間的およびスペクトル的解像度の適用のためのブロックスイッチングに加えて、別のツールを提供する。ＡＨＴ処理の詳細情報は、Ａ／５２Ｂ文書およびＶｉｎｔｏｎ  ｅｔ  ａｌ．による、２００９年４月７日開示の、参照により本明細書にそのまま組み込まれる米国特許第７，５１６，０６４「Ａｄａｐｔｉｖｅ  Ｈｙｂｒｉｄ  Ｔｒａｎｓｆｏｒｍ  ｆｏｒ  Ｓｉｇｎａｌ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｓｙｎｔｈｅｓｉｓ」から取得できる。
【００４２】
エンコーダは、前述のＭＤＣＴ解析変換により実施された第１の変換を前面に採用して、タイプＩＩ離散コサイン変換（ＤＣＴ−ＩＩ）により実施される第２の変換をカスケード式に採用する。ＭＤＣＴは、オーディオ信号サンプルの重複ブロックに適用され、オーディオ信号のスペクトル内容を表すスペクトル係数を生成する。ＤＣＴ−ＩＩは、必要に応じて信号処理経路をオンおよびオフするよう切り替えることができ、オンに切り替えると、同じ周波数を示すＭＤＣＴスペクトル係数の非重複ブロックに適用されてハイブリッド変換係数を生成する。一般的な使用方法では、ＤＣＴ−ＩＩは、入力オーディオ信号が十分に安定的であると考えられる場合にオンに切り替わる。その使用は、有効時間的解像度を２５６サンプルから１５３６サンプルに減らすことにより解析フィルタバンクの有効スペクトル解像度を著しく向上させるためである。
【００４３】
デコーダは、前述のＩＭＤＣＴ合成フィルタバンクにより実施される逆の第１の変換を採用し、続いて、タイプＩＩ離散コサイン変換（ＩＤＣＴ−ＩＩ）により実施される逆の第２の変換をカスケード式に採用する。ＩＤＣＴ−ＩＩは、エンコーダにより提供されたメタデータに対応して信号処理経路のオンおよびオフが切り替えられる。スイッチが入っている場合は、ＩＤＣＴ−ＩＩはハイブリッド変換係数の重複していないブロックに適用されて逆の第２の変換係数を取得する。逆の第２の変換係数は、チャンネル結合またはＳＰＸなどの他のコーディングツールが使用されていなかった場合にＩＭＤＣＴに直接入力するためのスペクトル係数でも良い。または、ＭＤＣＴスペクトル係数は、チャンネル結合またはＳＰＸなどのコーディングツールが使用されていた場合は逆の第２の変換係数から抽出しても良い。ＭＤＣＴスペクトル係数が取得された後、ＩＭＤＣＴはＭＤＣＴスペクトル係数のブロックに、従来の方法で適用される。
【００４４】
ＡＨＴは、結合チャンネルとＬＦＥチャンネルとを含むオーディオチャンネルのいずれにも使用して良い。ＡＨＴを使用してエンコードされたチャンネルは、別のビット割り当て処理と２種類の量子化を使用している。１つはベクトル量子化（ＶＱ）、２つ目はゲイン適応型量子化（ＧＡＱ）である。ＧＡＱ技術は、Ｄａｖｉｄｓｏｎ  ｅｔ  ａｌ．による、２００１年６月１２日に開示され、参照により本明細書にそのまま組み込まれる、米国特許第６，２４６，３４５「Ｕｓｉｎｇ  Ｇａｉｎ−Ａｄａｐｔｉｖｅ  Ｑｕａｎｔｉｚａｔｉｏｎ  ａｎｄ  Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｓｙｍｂｏｌ  Ｌｅｎｇｔｈｓ  ｆｏｒ  Ｉｍｐｒｏｖｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ」で説明されている。
【００４５】
ＡＨＴの使用には、エンコード化ビットストリームに格納された情報から複数のパラメータを抽出するためのデコーダが必要である。Ａ／５２Ｂ文書で、これらのパラメータの計算方法を説明している。パラメータの１つのセットで、ＢＦＰ指数がフレーム内を伝送される回数と、フレームのすべてのオーディオブロックに格納されたメタデータの検証により抽出される回数を指定する。他の２つのパラメータセットで、どのＢＦＰ仮数がＧＡＱを使用して量子化され、量子化器のゲイン制御ワードを提供し、オーディオブロックのチャンネルのメタデータの検証により抽出されるかを特定する。
【００４６】
ＡＨＴで使用されるハイブリット変換係数はすべて、フレームの最初のオーディオブロック、ＡＢ０で伝送される。ＡＨＴが結合チャンネルに適用される場合、ＡＨＴ係数の結合座標はＡＨＴを使用しない結合チャンネルと同様の方法でオーディオブロックのすべてにわたり分散される。この状況を処理するプロセスを以降で説明する。
【００４７】
２．スペクトル拡張処理
スペクトル拡張（ＳＰＸ）コーディング技術で、エンコーダは、高周波スペクトルコンポーネントをエンコード化ビットストリームから除外し、失われたスペクトルコンポーネントをエンコード化ビットストリームに格納されている低周波スペクトルコンポーネントからデコーダで合成することにより完全帯域幅のチャンネルのエンコードに必要な情報量を削減できる。
【００４８】
ＳＰＸを使用する場合、デコーダは失われたスペクトルコンポーネントを、より低い周波数のＭＤＣＴ係数をより高い周波数のＭＤＣＴ係数の場所にコピーし、コピーした変換係数に疑似乱数値またはノイズを追加し、エンコード化ビットストリームに含まれるＳＰＸスペクトル包絡に従って振幅を調整することにより合成する。エンコーダはＳＰＸコーディングツールが使用されるたびに、ＳＰＸスペクトル包絡を計算し、これをエンコード化ビットストリームに挿入する。
【００４９】
ＳＰＸ技術は一般に、チャンネルのスペクトルコンポーネントの最高帯域を合成するために使用される。これは周波数の中域のチャンネル結合とともに使用しても良い。処理のさらなる詳細は、Ａ／５２Ｂ文書から取得できる。
【００５０】
３．チャンネルおよびプログラム拡張
拡張ＡＣ−３ビットストリーム構文で、エンコーダは、５．１チャンネルを超える単一プログラム（チャンネル拡張）、最大５．１チャンネルの複数のプログラム（プログラム拡張）、または５．１チャンネルまでと５．１チャンネルを超えるプログラムの組み合わせを表すエンコード化ビットストリームを生成できる。プログラム拡張は、エンコード化ビットストリームの複数の独立データストリームのフレームの多重化により実施される。チャンネル拡張は、独立データストリームに関連付けられた１つまたは複数の従属データサブストリームのフレームの多重化により実施される。プログラム拡張の好ましい実施では、デコーダは、デコードするプログラムおよび、デコードされるべきではないプログラムを表すストリームおよびサブストリームをデコーディング処理で省略するかまたは基本的に無視するかを通知される。
【００５１】
図５Ａから５Ｃは、プログラムおよびチャンネル拡張を使用したビットストリーム伝送データの３つの例を示す。図５Ａは、チャンネル拡張を使用した典型的なビットストリームを示す。単一プログラムＰ１は、独立ストリームＳ０および３つの関連する従属サブストリームＳＳ０、ＳＳ１、およびＳＳ２により表される。独立ストリームＳ０のフレームＦｎの直後には、関連する従属サブストリームＳＳ０からＳＳ３までのそれぞれのフレームＦｎが続く。これらのフレームの後には、独立ストリームＳ０の次のフレームＦｎ＋１が続く。この直後には、関連する従属サブストリームＳＳ０からＳＳ２までのそれぞれのフレームＦｎ＋１が続く。拡張ＡＣ−３ビットストリーム構文で、各独立ストリームに対し８つの従属サブストリームが許可される。
【００５２】
図５Ｂは、プログラム拡張を使用した典型的なビットストリームを示す。４つのプログラムＰ１、Ｐ２、Ｐ３、およびＰ４は独立ストリームＳ０、Ｓ１、Ｓ２およびＳ３によりそれぞれ表される。独立ストリームＳ０のフレームＦｎの直後には、独立ストリームＳ１、Ｓ２およびＳ３それぞれのフレームＦｎが続く。これらのフレームの後には、各独立ストリームの次のフレームＦｎ＋１が続く。拡張ＡＣ−３ビットストリーム構文は、少なくとも１つの独立ストリームを有する必要があり、８つの独立ストリームを許可する。
【００５３】
図５Ｃは、プログラム拡張およびチャンネル拡張を使用した典型的なビットストリームを示す。プログラムＰ１は、独立ストリームＳ０のデータにより表され、プログラムＰ２は独立ストリームＳ１と関連する従属サブストリームＳＳ０およびＳＳ１とのデータにより表される。独立ストリームＳ０のフレームＦｎの直後には、独立ストリームＳ１のフレームＦｎが続き、その直後には関連する従属サブストリームＳＳ０およびＳＳ１のフレームＦｎが続く。これらのフレームの後には、各独立ストリームおよび従属サブストリームの次のフレームＦｎ＋１が続く。
【００５４】
チャンネル拡張を使用しない独立ストリームは、最大５．１の独立オーディオチャンネルを表すことができるデータを格納する。チャンネル拡張を使用した独立ストリーム、つまり、１つまたは複数の関連する従属サブストリームを有する独立ストリームは、プログラムのすべてのチャンネルの５．１チャンネルダウンミックスを表すデータを格納する。「ダウンミックス」という言葉は、チャンネルをより少ない数のチャンネルに結合することを指す。これは、従属サブストリームをデコードしないデコーダと互換するために行われる。従属サブストリームは、関連する独立ストリームで伝送されるチャンネルの置き換えまたは補完のいずれかを行うチャンネルを表すデータを格納する。チャンネル拡張では、１プログラムで１４チャンネルを許可する。
【００５５】
ビットストリーム構文および関連する処理のさらなる詳細は、Ａ／５２Ｂ文書から取得できる。
Ｅ．ブロック優先処理
さまざまなコーディングツールが組み合わせて使用され、エンコード化ビットストリームが生成された場合に発生するビットストリーム構造のバリエーションを処理し適切にデコードするには複雑なロジックが必要とされる。前述のように、アルゴリズム設計の詳細は、ＡＴＳＣ標準で指定されていないが、Ｅ−ＡＣ−３デコーダの従来の実装における汎用的な機能は別のチャンネルのデータをデコードする前に対応するチャンネルのフレームのすべてのデータをデコードするアルゴリズムである。この従来の手法は、ビットストリームのデコードに必要なオンチップメモリ量を削減するが、各フレームでフレームのオーディオブロックのすべてのデータを読み取り検証するため、複数回のデータの受け渡しが必要でもある。
【００５６】
従来の手法を、図６に概略で示す。コンポーネント１９は、経路１から受信したエンコード化ビットストリームからフレームを解析し、経路２０から受信した制御信号に対応してフレームからデータを抽出する。解析は、フレームデータを複数回受け渡すことにより行われる。１つのフレームから抽出されたデータは、コンポーネント１９の下のボックスで表される。たとえば、ラベルＡＢ０−ＣＨ０が付いているボックスは、オーディオブロックＡＢ０のチャンネル０の抽出されたデータを表し、ラベルＡＢ５−ＣＨ２が付いているボックスは、オーディオブロックＡＢ５のチャンネル２の抽出されたデータを表す。図面の簡略化のため、０から２までの３つのチャンネルと、３つのオーディオブロック０、１、および５のみを示している。コンポーネント１９はまた、フレームメタデータから取得したパラメータを、経路２０を通じてチャンネル処理コンポーネント３１、３２、３３に渡す。信号経路とデータボックスの左側にあるロータリースイッチは、チャンネル順でエンコード化オーディオデータを処理するために従来のデコーダにより実行されるロジックを表す。処理チャンネルコンポーネント３１は、オーディオブロックＡＢ０からオーディオブロックＡＢ５までのエンコード化オーディオデータおよびメタデータを、チャンネルＣＨ０のロータリースイッチ２１を通じて受信し、データをデコードして合成フィルタバンクをデコードされたデータに適用することにより出力信号を生成する。この処理の結果は、経路４１を通じて渡される。処理チャンネルコンポーネント３２は、オーディオブロックＡＢ０からＡＢ５までのチャンネルＣＨ１のデータを、ロータリースイッチ２２を通じて受信し、データを処理して経路４２を通じてその出力を渡す。処理チャンネルコンポーネント３３は、オーディオブロックＡＢ０からＡＢ５までのチャンネルＣＨ２のデータを、ロータリースイッチ２３を通じて受信し、データを処理して経路４３を通じてその出力を渡す。
【００５７】
本発明の用途は、多くの状況でフレームデータの複数回の受け渡しをなくすことで処理効率を改善できる。複数回の受け渡しは、特定の組み合わせのコーディングツールを使用してエンコード化ビットストリームを生成する場合などの状況で使用される。しかし、以降で説明する、組み合わせたコーディングツールにより生成された拡張ＡＣ−３ビットストリームは１回の受け渡しでデコードが可能である。この新しい手法を、図７に概略で示す。コンポーネント１９は、経路１から受信したエンコード化ビットストリームからフレームを解析し、経路２０から受信した制御信号に対応してフレームからデータを抽出する。多くの場合、解析は、フレームデータの１回の受け渡しで完了する。１つのフレームから抽出されたデータは、前述の図６で説明したものと同じ方法で、コンポーネント１９の下のボックスにより表される。コンポーネント１９は、フレームメタデータから取得したパラメータを、経路２０を通じてブロック処理コンポーネント６１、６２、６３に渡す。処理ブロックコンポーネント６１は、オーディオブロックＡＢ０のチャンネルすべてのロータリースイッチ５１を通じて、エンコード化オーディオデータおよびメタデータを受信し、データをデコードして合成フィルタバンクをデコードされたデータに適用することにより出力信号を生成する。チャンネルＣＨ０、ＣＨ１およびＣＨ２の処理の結果は、ロータリースイッチ７１を通じて適切な出力経路４１、４２および４３にそれぞれ渡される。処理ブロックコンポーネント６２は、オーディオブロックＡＢ１のすべてのチャンネルのデータを、ロータリースイッチ５２を通じて受信し、データを処理してロータリースイッチ７２を通じて、その出力を各チャンネルの適切な出力経路に渡す。処理ブロックコンポーネント６３は、オーディオブロックＡＢ５のすべてのチャンネルのデータを、ロータリースイッチ５３を通じて受信し、データを処理してロータリースイッチ７３を通じて、その出力を各チャンネルの適切な出力経路に渡す。
【００５８】
本発明のさまざまな態様を以降で説明し、プログラムの一部とともに示す。これらのプログラムの一部は、実際のまたは最適な実装であることが目的ではなく、例を示しているにすぎない。たとえば、プログラムステートメントの順番は、ステートメントの一部を交換することで変えても良い。
【００５９】
１．一般的処理
本発明の高レベルな例示は、以下のプログラムの一部で示す。
【００６０】
【表１】
0005607809.tif 000002
ステートメント（１．１）で、ＳＩ情報で伝送された同期パターンと一致するビットのストリングでビットストリームをスキャンする。同期パターンが見つかると、そのビットストリームのフレームの開始位置が判別される。
【００６１】
ステートメント（１．２）および（１．１９）は、ビットストリーム内の各フレームで実行されるデコーディング処理を制御する。または、他の手段でデコーディング処理が停止されるまで制御する。ステートメント（１．３）から（１．１８）までは、エンコード化ビットストリームのフレームをデコードする処理を実行する。
【００６２】
ステートメント（１．３）から（１．５）までで、フレームのメタデータを解凍し、解凍したメタデータからデコーディングパラメータを取得し、フレーム内の最初のオーディオブロックＫでデータが始まるビットストリームの位置を判別する。ステートメント（１．１６）で、続くオーディオブロックがフレーム内にある場合に、ビットストリームの次のオーディオブロックの開始位置を判別する。
【００６３】
ステートメント（１．６）および（１．１７）は、フレームの各オーディオブロックで実行されるデコーディング処理を開始する。ステートメント（１．７）から（１．１５）までは、フレームのオーディオブロックをデコードする処理を実行する。ステートメント（１．７）から（１．９）までは、オーディオブロックのメタデータを解凍し、解凍したメタデータからデコーティングパラメータを取得し、最初のチャンネルのデータの開始位置を判別する。
【００６４】
ステートメント（１．１０）および（１．１５）は、オーディオブロックの各チャンネルで実行されるデコーディング処理を開始する。ステートメント（１．１１）から（１．１３）までで、指数を解凍してデコードし、デコードされた指数を使用して各量子化された仮数を解凍して逆量子化するビット割り当てを判別し、合成フィルタバンクを逆量子化された仮数に適用する。ステートメント（１．１４）で、続くチャンネルがフレームにある場合に、次のチャンネルのデータが開始するビットストリーム内の位置を判別する。
【００６５】
処理の構造は、エンコード化ビットストリームの生成に使用されるコーディング技術が異なる場合に適応するため、それぞれ異なる。以降で、いくつかのバリエーションを説明し、プログラムの一部として示す。以下のプログラムの一部の説明は、前述のプログラムの一部で説明されている詳細を一部省いている。
【００６６】
２．スペクトル拡張
スペクトル拡張（ＳＰＸ）が使用されている場合、拡張処理が始まるオーディオブロックには、オーディオブロックの初めにＳＰＸで必要な共有パラメータと、フレーム内でＳＰＸを使用する他のオーディオブロックを格納する。共有パラメータは、処理が行われるチャンネルのＩＤ、スペクトル拡張周波数範囲、および各チャンネルのＳＰＸスペクトル包絡が時間と周波数にわたり共有される方法を含む。これらのパラメータは、ＳＰＸの使用が開始されるオーディオブロックから解凍され、フレームの次のオーディオブロックのＳＰＸ処理に使用するためメモリまたはコンピュータレジスタに保存される。
【００６７】
フレームはＳＰＸ用の開始オーディオブロックを複数有することができる。オーディオブロックは、そのオーディオブロックのメタデータがＳＰＸを使用するよう指示しており、フレームの前のオーディオブロックのメタデータがＳＰＸを使用しないよう指示しているか、そのオーディオブロックがフレームで最初のブロックである場合に、ＳＰＸを開始する。
【００６８】
ＳＰＸを使用する各オーディオブロックは、ＳＰＸ座標と呼ばれる、そのオーディオブロックでスペクトル拡張処理に使用されるＳＰＸスペクトル包絡を含むか、または前のブロックのＳＰＸ座標を使用するよう指示した「再使用」フラグの指示を含む。ブロックのＳＰＸ座標は解凍され、続くオーディオブロックのＳＰＸ操作で再使用が可能なよう保持される。
【００６９】
以下のプログラムの一部は、ＳＰＸを使用するオーディオブロックを処理可能な１つの方法を示す。
【００７０】
【表２】
0005607809.tif 000003
ステートメント（２．５）で、ＳＰＸフレームパラメータがメタデータに存在する場合に、これをフレームメタデータから解凍する。ステートメント（２．１０）で、ＳＰＸブロックパラメータがブロックメタデータに存在する場合に、これをブロックメタデータから解凍する。ブロックＳＰＸパラメータは、ブロックの１つまたは複数のチャンネルのＳＰＸ座標を含んでいても良い。
【００７１】
ステートメント（２．１２）および（２．１３）で、指数を解凍およびデコードし、このデコードされた指数を使用して解凍するビット割り当てを判別し、各量子化された仮数を逆量子化する。ステートメント（２．１４）で、現在のオーディオブロックのチャンネルＣがＳＰＸを使用しているかどうかを判別する。ＳＰＸを使用している場合、ステートメント（２．１５）でＳＰＸ処理を適用してチャンネルＣの帯域幅を拡張する。この処理により、ステートメント（２．１７）で適用される合成フィルタバンクに入力されるチャンネルＣのスペクトルコンポーネントが提供される。
【００７２】
３．適応型ハイブリッド変換
適応型ハイブリッド変換（ＡＨＴ）が使用されている場合、フレームの最初のオーディオブロックＡＢ０はＤＣＴ−ＩＩ変換で処理される各チャンネルのすべてのハイブリッド変換係数を格納する。その他すべてのチャンネルで、フレームの６つのオーディオブロックそれぞれは、ＭＤＣＴ解析フィルタバンクにより生成された２５６のスペクトル係数を格納する。
【００７３】
たとえば、エンコード化ビットストリームは、左、中央、および右チャンネルのデータを格納する。左右のチャンネルがＡＨＴで処理され、中央のチャンネルがＡＨＴで処理されていない場合、オーディオブロックＡＢ０は、左右のチャンネルそれぞれのすべてのハイブリッド変換係数を格納し、中央のチャンネルの２５６のＭＤＣＴスペクトル係数を格納する。オーディオブロックＡＢ１からＡＢ５までは、中央のチャンネルのＭＤＣＴスペクトル係数を格納し、左および右のチャンネルの係数は格納しない。
【００７４】
以下のプログラムの一部は、ＡＨＴ係数を使用するオーディオブロックを処理可能な１つの方法を示す。
【００７５】
【表３】
0005607809.tif 000004
ステートメント（３．１１）で、ＡＨＴがチャンネルＣで使用されているかどうかを判別する。使用されている場合、ステートメント（３．１２）で最初のオーディオブロックＡＢ０を処理するかどうかを判別する。最初のオーディオブロックが処理される場合、ステートメント（３．１３）から（３．１６）までで、チャンネルＣのすべてのＡＨＴ係数を取得し、逆の第２の変換またはＩＤＣＴ−ＩＩをＡＨＴ係数に適用してＭＤＣＴスペクトル係数を取得し、これらをバッファに保存する。これらのスペクトル係数は、ＡＨＴが使用されないチャンネルのステートメント（３．２０）および（３．２１）で取得される指数および逆量子化された仮数に対応する。ステートメント（３．１８）で、処理中のオーディオブロックＫに対応するＭＤＣＴスペクトル係数の指数および仮数を取得する。たとえば最初のオーディオブロック（Ｋ＝０）が処理中の場合、最初のブロックのＭＤＣＴスペクトル係数セットの指数と仮数がバッファから取得される。たとえば２番目のオーディオブロック（Ｋ＝１）が処理中の場合、２番目のブロックのＭＤＣＴスペクトル係数セットの指数と仮数がバッファから取得される。
【００７６】
４．スペクトル拡張と適応型ハイブリッド変換
ＳＰＸおよびＡＨＴは、同じチャンネルのエンコード化データを生成するために使用できる。スペクトル拡張とハイブリッド変換処理について個々に前述したロジックは、ＳＰＸが使用されているチャンネル、ＡＨＴが使用されているチャンネル、またはＳＰＸとＡＨＴの両方が使用されているチャンネルを処理するために組み合わせることができる。
【００７７】
以下のプログラムの一部は、ＳＰＸおよびＡＨＴ係数を使用するオーディオブロックを処理可能な１つの方法を示す。
【００７８】
【表４】
0005607809.tif 000005
ステートメント（４．５）で、ＳＰＸフレームパラメータがメタデータに存在する場合に、これをフレームメタデータから解凍する。ステートメント（４．１０）で、ＳＰＸブロックパラメータがブロックメタデータに存在する場合に、これをブロックメタデータから解凍する。ブロックＳＰＸパラメータは、ブロックの１つまたは複数のチャンネルのＳＰＸ座標を含んでいても良い。
【００７９】
ステートメント（４．１２）で、ＡＨＴがチャンネルＣで使用されているかどうかを判別する。ＡＨＴがチャンネルＣで使用されている場合、ステートメント（４．１３）でこれが最初のオーディオブロックかどうかを判別する。これが最初のオーディオブロックの場合、ステートメント（４．１４）から（４．１７）までで、チャンネルＣのすべてのＡＨＴ係数を取得し、逆の第２の変換またはＩＤＣＴ−ＩＩをＡＨＴ係数に適用して逆の第２の変換係数を取得し、これらをバッファに保存する。ステートメント（４．１９）で、処理中のオーディオブロックＫに対応する逆の第２の変換係数の指数および仮数を取得する。
【００８０】
ＡＨＴがチャンネルＣで使用されていない場合、ステートメント（４．２１）と（４．２２）で、プログラムステートメント（１．１１）と（１．１２）で説明したように、ブロックＫのチャンネルＣの指数と仮数を解凍して取得する。
【００８１】
ステートメント（４．２４）で、現在のオーディオブロックのチャンネルＣがＳＰＸを使用しているかどうかを判別する。ＳＰＸを使用している場合、ステートメント（４．２５）でＳＰＸ処理を逆の第２の変換係数に適用して帯域幅を拡張し、これによりチャンネルＣのＭＤＣＴスペクトル係数を取得する。この処理により、ステートメント（４．２７）で適用される合成フィルタバンクに入力されるチャンネルＣのスペクトルコンポーネントが提供される。ＳＰＸ処理がチャンネルＣで使用されていない場合、ＭＤＣＴスペクトル係数が逆の第２の変換係数から直接取得される。
【００８２】
５．結合および適応型ハイブリッド変換
チャンネル結合およびＡＨＴは、同じチャンネルのエンコード化データを生成するために使用できる。基本的に、スペクトル拡張およびハイブリッド変換処理で説明したものと同じロジックを使用して、チャンネル結合とＡＨＴを使用したビットストリームの処理が可能である。これは、前述のＳＰＸ処理がチャンネル結合で実行される処理に適用されるためである。
【００８３】
以下のプログラムの一部は、結合およびＡＨＴ係数を使用するオーディオブロックを処理可能な１つの方法を示す。
【００８４】
【表５】
0005607809.tif 000006
0005607809.tif 000007
ステートメント（５．５）で、チャンネル結合パラメータがメタデータに存在する場合に、これをフレームメタデータから解凍する。ステートメント（５．１０）で、チャンネル結合パラメータがブロックメタデータに存在する場合に、これをブロックメタデータから解凍する。存在する場合、結合座標がブロックの結合されたチャンネルで取得される。
【００８５】
ステートメント（５．１２）で、ＡＨＴがチャンネルＣで使用されているかどうかを判別する。ＡＨＴが使用されている場合、ステートメント（５．１３）で最初のオーディオブロックかどうかを判別する。最初のオーディオブロックの場合、ステートメント（５．１４）から（５．１７）まででチャンネルＣのすべてのＡＨＴ係数を取得し、逆の第２の変換またはＩＤＣＴ−ＩＩをＡＨＴ係数に適用して逆の第２の変換係数を取得し、これらをバッファに保存する。ステートメント（５．１９）で、処理中のオーディオブロックＫに対応する逆の第２の変換係数の指数および仮数を取得する。
【００８６】
ＡＨＴがチャンネルＣで使用されていない場合、ステートメント（５．２１）と（５．２２）で、プログラムステートメント（１．１１）と（１．１２）で説明したように、ブロックＫのチャンネルＣの指数と仮数を解凍して取得する。
【００８７】
ステートメント（５．２４）で、チャンネル結合がチャンネルＣで使用されているかどうかを判別する。使用されている場合、ステートメント（５．２５）で、チャンネルＣが結合を使用するブロックの最初のチャンネルであるかどうかを判別する。最初のチャンネルである場合、結合チャンネルの指数と仮数が、ステートメント（５．２６）から（５．３３）までで示す逆の第２の変換の結合チャンネル指数および仮数への適用から、またはステートメント（５．３５）および（５．３６）で示すビットストリームのデータから取得される。結合チャンネル仮数を表すデータは、チャンネルＣの仮数を表すデータの直後のビットストリームに配置されている。ステートメント（５．３９）では、結合チャンネルＣを、チャンネルＣの適切な結合座標を使用して結合チャンネルから抽出する。チャンネル結合がチャンネルＣで使用されていない場合、ＭＤＣＴスペクトル係数が逆の第２の変換係数から直接取得される。
【００８８】
６．スペクトル拡張、結合と適応型ハイブリッド変換
スペクトル拡張、チャンネル結合およびＡＨＴはすべて、同じチャンネルのエンコード化データを生成するために使用できる。スペクトル拡張および結合とＡＨＴ処理との組み合わせで前述したロジックは、８つの可能性のある状況を処理するために必要な追加ロジックを組み合わせることにより、３つのコーディングツールのどの組み合わせを使用しても、チャンネルを処理するよう結合することができる。チャンネルの結合解除のための処理は、ＳＰＸ処理を実行する前に実行される。
【００８９】
Ｆ．実装
本発明のさまざまな態様を組み合わせた装置は、コンピュータまたは汎用コンピュータにあるものと同様のコンポーネントに結合されたデジタル信号プロセッサ（ＤＳＰ）回路などのより特殊化したコンポーネントを含むその他の装置で実行するソフトウェアを含むさまざまな方法で実装して良い。図８は、本発明の態様の実施に使用できる装置９０の概略ブロック図である。プロセッサ９２は、計算リソースを提供する。ＲＡＭ９３は、プロセッサ９２で処理のため使用されるシステムのランダムアクセスメモリ（ＲＡＭ）である。ＲＯＭ９４は、読み取り専用メモリ（ＲＯＭ）などの永続ストレージなどの形式を示す。これは、装置９０の動作と、本発明のさまざまな態様の遂行を可能にするために必要なプログラムの保存に使用される。Ｉ／Ｏコントロール９５は、通信チャンネル１、１６を経由して信号を受信し送信するためのインターフェイス回路を表す。示された実施形態では、すべての主なシステムコンポーネントは複数の物理的またはロジカルバスを表すバス９１に接続する。ただし、バスアーキテクチャは、本発明の実施に必須ではない。
【００９０】
汎用コンピュータシステムにより実装される実施形態では、追加コンポーネントを、キーボードまたはマウスおよびディスプレイなどの装置に接合するため、および磁気テープまたはディスク、あるいは光媒体などのストレージ媒体を有するストレージ装置を制御するために含んでいても良い。ストレージ媒体は、オペレーティングシステム、ユーティリティおよびアプリケーションに指示するプログラムの記録に使用して良く、本発明のさまざまな態様を実施するプログラムを含んでも良い。
【００９１】
本発明のさまざまな態様を実践するために必要な機能は、分散型ロジックコンポーネント、集積回路、１つまたは複数のＡＳＩＣおよび／またはプログラム制御型プロセッサなどを含む広範な方法で実装されるコンポーネントにより実行できる。これらのコンポーネントが実装される方法は、本発明にとっては重要ではない。
【００９２】
本発明のソフトウェアの実装は超音速から紫外線周波数までを含むスペクトル全体にわたるベースバンドまたは変調通信経路、または磁気テープ、カードまたはディスク、光カードまたはディスク、および紙を含むメディア上の検出可能マーキングを含む基本的に任意の記録技術を使用して情報を伝達するストレージ媒体などの、さまざまな機械が読み取り可能な媒体により伝達されて良い。
【図１】
0005607809.tif 000008
【図２】
0005607809.tif 000009
【図３Ａ】
0005607809.tif 000010
【図３Ｂ】
0005607809.tif 000011
【図４Ａ】
0005607809.tif 000012
【図４Ｂ】
0005607809.tif 000013
【図５Ａ】
0005607809.tif 000014
【図５Ｂ】
0005607809.tif 000015
【図５Ｃ】
0005607809.tif 000016
【図６】
0005607809.tif 000017
【図７】
0005607809.tif 000018
【図８】
0005607809.tif 000019