(57)【要約】【課題】より少ないビット数で従来と同一の復号結果を得ることができ、符号化効率が向上したオーディオ符号化方法を実現すること。【解決手段】スペクトルデータをバンド単位で、ゲインを示すスケールファクタと、量子化されたスペクトルデータとで表す符号化方法において、零検出部１５１及び１５２と、データ置換部１６０とを設ける。零検出部１５１及び１５２は、バンド内の量子化されたスペクトルデータがすべて零であることを検出する。データ置換部１６０は検出結果に基づいて、スケールファクタ、インテンシティステレオ処理の一方のチャンネルに対する他方のチャンネルの指向ゲインを示すインテンシティステレオポジション、コードブック番号、ステレオ処理に関するフラグの少なくとも１つの値を別の値に置き換える。【選択図】        図１
2004246224.tif 000002
【特許請求の範囲】
【請求項１】
スペクトルデータを、バンド単位のゲインを示すスケールファクタと前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するバンドのスケールファクタの差分を可変長符号化する符号化装置であって、
バンド内のすべての前記量子化されたスペクトルデータが零であるか否かを検出する零検出部と、
前記零であることが検出されたバンドのスケールファクタを、差分可変長符号化後に最も短い符号長となる値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置。
【請求項２】
スペクトルデータを、バンド単位のゲインを示すスケールファクタと前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するバンドのスケールファクタの差分を可変長符号化する符号化装置であって、
バンド内のすべての前記量子化されたスペクトルデータが零であるか否かを検出する零検出部と、
前記零であることが検出されたバンドと隣接するバンドとのスケールファクタの差分が可変長符号化の最も短い符号長の値となるように、前記零であることが検出されたバンドのスケールファクタを別の値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置。
【請求項３】
インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータを、一方のチャンネルにおけるバンド単位のゲインを示すスケールファクタと、他方のチャンネルにおけるバンド単位の指向性ゲインを示すインテンシティステレオポジションと、一方のチャンネルのインテンシティステレオ処理されて前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するインテンシティステレオ処理されたバンドのインテンシティステレオポジションの差分を可変長符号化する符号化装置であって、
前記インテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、
前記零であることが検出されたバンドのインテンシティステレオポジションを差分可変長符号化後に最も短い符号長となる値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置。
【請求項４】
インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータを、一方のチャンネルにおけるバンド単位のゲインを示すスケールファクタと、他方のチャンネルにおけるバンド単位の指向性ゲインを示すインテンシティステレオポジションと、一方のチャンネルのインテンシティステレオ処理されて前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するインテンシティステレオ処理されたバンドのインテンシティステレオポジションの差分を可変長符号化する符号化装置であって、
前記インテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、
前記零であることが検出されたバンドと隣接するバンドとのインテンシティステレオポジションの差分が可変長符号化の最も短い符号長の値となるように、前記零であることが検出されたバンドのインテンシティステレオポジションを別の値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置。
【請求項５】
可変長符号化の最も短い符号長の値を零とすることを特徴とする請求項１〜４のいずれか１項記載のオーディオ高能率符号化装置。
【請求項６】
インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータに対してコードブックを用いてバンド単位で符号化し、インテンシティステレオ処理を行うバンドにおける一方のチャンネルのコードブック番号は、インテンシティステレオ処理されて量子化されたスペクトルデータの符号化に使用するコードブック番号を表し、他方のチャンネルのコードブック番号はインテンシティステレオ処理を表す場合の符号化装置であって、
一方のチャンネルのインテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、
インテンシティステレオ処理されて前記零であることが検出されたバンドにおける他方のチャンネルのコードブック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に変更した場合と変更しない場合の符号化に必要なビット数を算出し、コードブック番号を変更した場合の方が符号化に必要なビット数が小さいときに、前記他方のチャンネルのコードブック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置。
【請求項７】
ミッドサイドステレオ処理とインテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータをバンド単位で符号化し、ミッドサイドステレオ処理の有無とインテンシティステレオ処理の２つのチャンネルにおける位相関係の反転の有無を示すフラグを符号化する符号化装置であって、
一方のチャンネルのインテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、
インテンシティステレオ処理されて前記零であることが検出されたバンドを除いたバンドの前記フラグがすべて同一の値のときには、バンド全体のフラグの値を前記同一の値に対応する別の値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置。
【請求項８】
スペクトルデータを、バンド単位のゲインを示すスケールファクタと前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するバンドのスケールファクタの差分を可変長符号化する符号化方法であって、
バンド内のすべての前記量子化されたスペクトルデータが零であるか否かを検し、
前記零であることが検出されたバンドのスケールファクタを、差分可変長符号化後に最も短い符号長となる値に置き換えることを特徴とするオーディオ高能率符号化方法。
【請求項９】
スペクトルデータを、バンド単位のゲインを示すスケールファクタと前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するバンドのスケールファクタの差分を可変長符号化する符号化方法であって、
バンド内のすべての前記量子化されたスペクトルデータが零であるか否かを検出し、
前記零であることが検出されたバンドと隣接するバンドのスケールファクタとの差分が可変長符号化の最も短い符号長の値となるように、前記零であることが検出されたバンドのスケールファクタを別の値に置き換えることを特徴とするオーディオ高能率符号化方法。
【請求項１０】
インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータを、一方のチャンネルにおけるバンド単位のゲインを示すスケールファクタと、他方のチャンネルにおけるバンド単位の指向性ゲインを示すインテンシティステレオポジションと、一方のチャンネルのインテンシティステレオ処理されて前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するインテンシティステレオ処理されたバンドのインテンシティステレオポジションの差分を可変長符号化する符号化方法であって、
前記インテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出し、
前記零であることが検出されたバンドのインテンシティステレオポジションを差分可変長符号化後に最も短い符号長となる値に置き換えることを特徴とするオーディオ高能率符号化方法。
【請求項１１】
インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータを、一方のチャンネルにおけるバンド単位のゲインを示すスケールファクタと、他方のチャンネルにおけるバンド単位の指向性ゲインを示すインテンシティステレオポジションと、一方のチャンネルのインテンシティステレオ処理されて前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するインテンシティステレオ処理されたバンドのインテンシティステレオポジションの差分を可変長符号化する符号化方法であって、
前記インテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出し、
前記零であることが検出されたバンドと隣接するバンドのインテンシティステレオポジションとの差分が可変長符号化の最も短い符号長の値となるように、前記零であることが検出されたバンドのインテンシティステレオポジションを別の値に置き換えることを特徴とするオーディオ高能率符号化方法。
【請求項１２】
可変長符号化の最も短い符号長の値を零とすることを特徴とする請求項８〜１１のいずれか１項記載のオーディオ高能率符号化方法。
【請求項１３】
インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータに対してコードブックを用いてバンド単位で符号化し、インテンシティステレオ処理を行うバンドにおける一方のチャンネルのコードブック番号は、インテンシティステレオ処理されて量子化されたスペクトルデータの符号化に使用するコードブック番号を表し、他方のチャンネルのコードブック番号はインテンシティステレオ処理を表す場合の符号化方法であって、
一方のチャンネルのインテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出し、
インテンシティステレオ処理されて前記零であることが検出されたバンドにおける他方のチャンネルのコードブック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に変更した場合と変更しない場合の符号化に必要なビット数を算出し、コードブック番号を変更した場合の方が符号化に必要なビット数が小さいときに、前記他方のチャンネルのコードブック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に置き換えることを特徴とするオーディオ高能率符号化方法。
【請求項１４】
ミッドサイドステレオ処理とインテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータをバンド単位で符号化し、ミッドサイドステレオ処理の有無とインテンシティステレオ処理の２つのチャンネルにおける位相関係の反転の有無を示すフラグを符号化する符号化方法であって、
一方のチャンネルのインテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出し、
インテンシティステレオ処理されて前記零であることが検出されたバンドを除いたバンドの前記フラグがすべて同一の値のときには、バンド全体のフラグの値を前記同一の値に対応する別の値に置き換えることを特徴とするオーディオ高能率符号化方法。
【請求項１５】
請求項８〜１４のいずれか１項記載のオーディオ高能率符号化方法を、コンピュータまたはデジタルシグナルプロセッサに実行させるためのプログラム。
【請求項１６】
請求項８〜１４のいずれか１項記載のオーディオ高能率符号化方法を、コンピュータまたはデジタルシグナルプロセッサに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オーディオ信号をスペクトルデータに変換し、可変長符号化を用いてスペクトルデータを高能率符号化するオーディオ高能率符号化装置、オーディオ高能率符号化方法、オーディオ高能率符号化プログラム及びその記録媒体に関する。
【０００２】
【従来の技術】
近年、オーディオ信号をスペクトルデータに変換し、可変長符号化を用いてスペクトルデータを符号化することにより、符号化効率を改善したオーディオ高能率符号化方法が提案されている。
【０００３】
このようなオーディオ高能率符号化方法としては、ＭＰＥＧ−２  ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）の規格書（非特許文献１参照）に記載されたものが知られている。以下では、前記非特許文献１記載のＭＰＥＧ−２  ＡＡＣ（以下ＡＡＣと略す）のローコンプレキシティプロファイル（Ｌｏｗ  Ｃｏｍｐｌｅｘｉｔｙ  Ｐｒｏｆｉｌｅ）を例にとって、可変長符号化を用いてスペクトルデータを高能率符号化する従来の技術について説明する。
【０００４】
図１３は、従来のＡＡＣエンコーダの構成を示すブロック図である。このＡＡＣエンコーダには、フィルタバンク１０１、１０２、インテンシティステレオデータ生成部１１０、ミッドサイド（Ｍ／Ｓ）ステレオデータ生成部１２０、量子化部１３０、符号化部１４０が設けられている。このような構成のＡＡＣエンコーダの動作について説明する
【０００５】
フィルタバンク１０１に入力された左チャンネル（Ｌｃｈ）の時間軸のオーディオ信号は、所定の時間サンプル、即ち長変換ブロックの場合２０４８サンプルで、短変換ブロックの場合２５６サンプルからなる変換ブロックに分割される。そして、ＭＤＣＴ（Ｍｏｄｉｆｉｅｄ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ，変形離散コサイン変換）によりスペクトルデータ（ＭＤＣＴ係数）に変換される。この変換は変換ブロックを５０％ずつオーバーラップして実行し、長変換ブロックの場合には２０４８サンプルを１０２４本のスペクトルデータに変換する。また、短変換ブロックの場合には２５６サンプルを１２８本のスペクトルデータに変換する。
【０００６】
８個連続で短変換ブロックを変換することにより、短変換ブロックの出力スペクトルデータの本数を８×１２８＝１０２４本として、長変換ブロックと一致させる。このチャンネル当り１０２４本のスペクトルデータが符号化の単位である。次に、１０２４本のスペクトルデータは、人間の耳の臨界帯域特性を模擬したスケールファクタバンドと呼ばれるバンド単位にグループ化される。
【０００７】
同様に、フィルタバンク１０２に入力された右チャンネル（Ｒｃｈ）の時間軸のオーディオ信号は、変換ブロックに分割され、ＭＤＣＴにより１０２４本のスペクトルデータに変換される。次に、１０２４本のスペクトルデータはスケールファクタバンド単位にグループ化される。
【０００８】
インテンシティステレオデータ生成部１１０は、スケールファクタバンド単位でインテンシティステレオ処理の有無情報を出力すると共に、インテンシティステレオ処理を行うスケールファクタバンドに対しては、左チャンネルのインテンシティステレオ処理されたスペクトルデータと、２つのチャンネルの位相関係を示す情報と、左チャンネルに対する右チャンネルの指向性ゲインを示すインテンシティステレオポジションとを算出して出力する。またインテンシティステレオデータ生成部１１０は、インテンシティステレオ処理を行わないスケールファクタバンドに対しては、左右のチャンネルのスペクトルデータをそのまま出力する。
【０００９】
左チャンネルのインテンシティステレオ処理されたスペクトルデータは、左チャンネルと右チャンネルのスペクトルデータの和（２つのチャンネルの位相関係が同相の場合）、あるいは差（２つのチャンネルの位相関係が逆相の場合）を、そのパワーレベルが左チャンネルの元のパワーレベルと一致するようにゲインを補正することにより生成される。そして右チャンネルのスペクトルデータは零に設定される。なお、この零スペクトルデータは符号化データとしては伝送されない。
【００１０】
ミッドサイドステレオデータ生成部（Ｍ／Ｓステレオデータ生成部）１２０は、スケールファクタバンド単位でミッドサイドステレオ処理の有無情報と、ミッドサイドステレオ処理ありの場合にはミッドサイドステレオ処理されたミッドスペクトルデータ及びサイドスペクトルデータとを生成する。ミッドスペクトルデータは左チャンネルと右チャンネルのスペクトルデータの和の１／２で生成され、左チャンネルのスペクトルデータとして出力される。また、サイドスペクトルデータは左チャンネルと右チャンネルのスペクトルデータの差の１／２で生成され、右チャンネルのスペクトルデータとして出力される。インテンシティステレオ処理とミッドサイドステレオ処理を共に行わないスケールファクタバンドの場合、左右のチャンネルにおける元のスペクトルデータがそのまま出力される。なお、インテンシティステレオ処理とミッドサイドステレオ処理とは排他的な関係にあり、一方の処理を選択すると他方の処理を選択することはできない。
【００１１】
量子化部１３０は、スケールファクタバンド単位でスペクトルデータのゲインを示すスケールファクタと、前記ゲインで正規化されたスペクトルデータとの量子化を行う。左右のチャンネルのスペクトルデータをスケールファクタバンド毎に、聴覚モデルに基づいてスペクトルデータのマスキングレベル、すなわち許容量子化ノイズレベルを算出し、算出された許容量子化ノイズレベルに基づいてスケールファクタと正規化されたスペクトルデータとの量子化を行う。
【００１２】
符号化部１４０では、量子化されたデータに対してハフマンコードによる可変長符号化を用いて符号化処理を行い、符号化データを生成して出力する。量子化部１３０と符号化部１４０の処理は、符号化データに必要なビット数を利用可能なビット数以下に調整するため、動作を繰り返して行うことにより実行される。
【００１３】
以下、符号化部１４０で生成する符号化データのフォーマットについて説明する。ステレオオーディオ信号の場合、符号化データは、２つのチャンネルで共通のデータとチャンネル毎に固有のデータとからなる。最初にチャンネル毎のデータについて説明する。チャンネル毎の主要な符号化データとしては、セクションデータ、スケールファクタデータ、符号化スペクトルデータの３つのデータがあげられる。
【００１４】
最初にセクションデータ（非特許文献１のｓｅｃｔｉｏｎ＿ｄａｔａ（））について説明する。セクションとは、同一のコードブックを使用するスケールファクタバンドの集合のことである。セクションデータは、セクションで使用するコードブック番号と、スケールファクタバンドを単位とするセクションの長さとからなるセクション毎のデータを、すべてのセクションに対して繰り返したものである。
【００１５】
ＡＡＣでは、量子化されたスペクトルデータの符号化にコードブック番号１から１１の１１種類のハフマンコードブックを用いる。また、特別なコードブック番号として、スケールファクタバンド内の量子化されたスペクトルデータがすべて零データであることを表すコードブック番号０、インテンシティステレオ処理で２つのチャンネルの位相関係が同相であることを表すコードブック番号１５、インテンシティステレオ処理で２つのチャンネルの位相関係が逆相であることを表すコードブック番号１４の３つのコードブック番号がある。
【００１６】
ＡＡＣでは、符号化効率を改善するため、零データを表すコードブック番号０のセクションのスケールファクタと量子化されたスペクトルデータは符号化データとして伝送されない。
【００１７】
上記したセクションデータのフォーマットから明らかなように、セクションの数が多いほどセクションデータに必要なビット数は増加する。したがって、複数のハフマンコードブックが選択可能な場合、セクションデータと符号化スペクトルデータとを合わせた合計の符号化データビット数が小さくなるようにコードブックを選択してセクションを形成する。このようにセクションを形成する処理をセクショニングと呼ぶ。セクショニングにより、スケールファクタバンド内のすべての量子化されたスペクトルデータが零でもコードブック番号０を使わない場合が発生する。
【００１８】
スケールファクタデータ（非特許文献１のｓｃａｌｅ＿ｆａｃｔｏｒ＿ｄａｔａ（））は、すべてのスケールファクタバンドに対してスケールファクタを符号化したデータと、インテンシティステレオポジションを符号化したデータとからなる。
【００１９】
スケールファクタはスケールファクタバンドの１．５ｄＢ単位のゲインを表し、スケールファクタの符号化は、スケールファクタバンド間のスケールファクタの差分をハフマンコードで可変長符号化することによってなされる。スケールファクタの符号化データは、初期値と可変長符号化されたスケールファクタの差分とからなる。可変長符号化するときのスケールファクタの差分は±６０以内である。
【００２０】
図１４及び図１５はスケールファクタの差分の可変長符号化に用いられるハフマンコードの符号長を示したものである。図１４及び図１５において、ｉｎｄｅｘはハフマンコードブックを参照する時のアドレスを表し、スケールファクタの差分に６０を加算した値である。またｄｓｆはスケールファクタの差分を表わし、ｌｅｎｇｔｈはハフマンコードの符号長（単位はビット）を表す。図１４はｉｎｄｅｘが０〜５９までの、図１５はｉｎｄｅｘが６０〜１２０までのｄｓｆとｌｅｎｇｔｈとを示す。図１５に示すように、ハフマンコードの符号長が最も短いときの差分（ｄｓｆ）は０で、符号長（ｌｅｎｇｔｈ）は１ビットである。
【００２１】
インテンシティステレオ処理されたスケールファクタバンドの右チャンネルでは、スケ−ルファクタデータとして、スケールファクタの代わりにインテンシティステレオポジションを伝送する。
【００２２】
インテンシティステレオポジションは、左チャンネルに対する右チャンネルの１．５ｄＢ単位の指向性ゲインを表す。インテンシティステレオポジションの符号化は、スケールファクタの符号化と同様な方法でなされる。すなわち、隣接するインテンシティステレオ処理されたスケールファクタバンドのインテンシティステレオポジションの差分を、スケールファクタと同一のハフマンコードブックを使って可変長符号化する。ただし、スケールファクタの差分の初期値は符号化データとして伝送されるのに対し、インテンシティステレオポジションの差分の初期値は常に０であり、伝送されない。
【００２３】
符号化スペクトルデータ（非特許文献１のｓｐｅｃｔｒａｌ＿ｄａｔａ（））は、セクションとして選択したハフマンコードブックを使って量子化されたスペクトルデータを符号化したデータである。ハフマンコードブック番号が零データを表す０、あるいはインテンシティステレオ処理を表す１４、１５の場合には、スペクトルデータは伝送されない。
【００２４】
次に２つのチャンネルで共通な符号化データとして、Ｍ／Ｓ有無・ＩＳ位相反転フラグ（非特許文献１のｍｓ＿ｕｓｅｄ）と、ＭＳマスク（非特許文献１のｍｓ＿ｍａｓｋ＿ｐｒｅｓｅｎｔ）とについて以下に説明する。
【００２５】
Ｍ／Ｓ有無・ＩＳ位相反転フラグは、ミッドサイドステレオ処理の有無、あるいはインテンシティステレオ（ＩＳ）処理の位相反転の有無を表すフラグで、スケールファクタバンド当り１ビットのフラグである。具体的には次の状態を表す。
１）Ｍ／Ｓ有無・ＩＳ位相反転フラグ＝０
Ｍ／Ｓ処理なし、あるいはＩＳ処理の位相反転なし
２）Ｍ／Ｓ有無・ＩＳ位相反転フラグ＝１
Ｍ／Ｓ処理あり、あるいはＩＳ処理の位相反転あり
【００２６】
本フラグが、Ｍ／Ｓ処理の有無を表すか、ＩＳ処理の位相反転の有無を表すかは、右チャンネルのコードブック番号によって決定される。前記コードブック番号がインテンシティステレオ処理を表す場合はＩＳ処理の位相反転の有無を、そうでない場合はＭ／Ｓ処理の有無を表す。
【００２７】
ＭＳマスクは、Ｍ／Ｓ有無・ＩＳ位相反転フラグの符号化方法を表し、次の状態を表す。
１）ＭＳマスク＝０
すべてのＭ／Ｓ有無・ＩＳ位相反転フラグの値は０
２）ＭＳマスク＝１
バンド単位のＭ／Ｓ有無・ＩＳ位相反転フラグを伝送して指定
３）ＭＳマスク＝２
すべてのＭ／Ｓ有無フラグの値は１（ＩＳ位相反転フラグの値は０）
ＭＳマスクの値が０あるいは２の場合には、Ｍ／Ｓ有無・ＩＳ位相反転フラグは符号化データとして伝送されない。
【００２８】
図１６は、インテンシティステレオ処理された符号化データの例で、符号化データを説明するための図である。簡単のため、スケールファクタバンドの数は６としている。同図で、ｄｓｆはスケールファクタの差分（スケールファクタの差分の初期値は省略）、ｄｉｓｐはインテンシティステレオポジションの差分、ｓｄはスペクトルデータを表わす。また、「−」は該当するデータが伝送されないことを表す。
【００２９】
最初に左チャンネルのデータ（Ｌｃｈデータ）について説明する。この例では、セクションの数は３である。セクションデータを（コードブック番号，長さ）で表すと、セクションデータは（３，３），（０，１），（１，２）である。左チャンネルのスケールファクタバンド番号３のコードブック番号は０であり、スケールファクタデータの差分とスペクトルデータは伝送されない。
【００３０】
次に右チャンネルのデータ（Ｒｃｈデータ）について説明する。この例では、右チャンネルのセクションの数は３であり、セクションデータは、（３，２），（２，２）（１５，２）である。右チャンネルのスケールファクタバンド番号４と５のコードブック番号は１５で、インテンシティステレオ処理されていることを表す。インテンシティステレオ処理されたスケールファクタバンドでは、スケールファクタの差分の代わりにインテンシティステレオポジションの差分が伝送され、スペクトルデータは伝送されない。
【００３１】
左右のチャンネルの共通データについて説明する。この例では、ＭＳマスクの値が１であり、Ｍ／Ｓ有無・ＩＳ位相反転フラグが伝送される。右チャンネルのデータのコードブック番号から、スケールファクタバンド番号０から３のＭ／Ｓ有無・ＩＳ位相反転フラグはＭ／Ｓ処理の有無を表し、スケールファクタバンド番号４と５の前記フラグはＩＳ位相反転の有無を表す。
【００３２】
【非特許文献１】
ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ１６５０，  ”ＩＳ  ＩＳＯ／ＩＥＣ  １３８１８−７  （ＭＰＥＧ−２  Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ，  ＡＡＣ）”，  １９９７年４月，  ｐ．１４−２０，  ｐ．３３−３８，  ｐ．５１−６２，  ｐ．９２−９３，  ＡＮＮＥＸ  Ｂ  Ｉｎｆｏｒｍａｔｉｖｅ  Ｐａｒｔ  ｐ．５７−６８
【００３３】
【発明が解決しようとする課題】
しかしながら、上記従来の符号化方法では、バンド内の量子化されたスペクトルデータがすべて零であることを検出し、前記検出結果に基づいてデータを置き換えることにより、より少ないビット数で符号化データを生成するための部を備えていない。このため制限されたビットレートの環境下では符号化効率が劣化し、音質が劣化することがあるという課題があった。
【００３４】
本発明は上記問題点を解決するもので、符号化効率が向上した符号化データを生成することのできるオーディオ高能率符号化装置及びその方法を実現することを目的とする。すなわち、より少ないビット数で従来と同一の復号結果を得ることが可能な符号化データを生成すると共に、削減したビットを音質に寄与する他のデータに割り当て、音質を向上することのできるオーディオ高能率符号化装置、オーディオ高能率符号化方法、オーディオ高能率符号化プログラム及びその記録媒体を実現することを目的とする。
【００３５】
【課題を解決するための手段】
第１の発明は、スペクトルデータを、バンド単位のゲインを示すスケールファクタと前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するバンドのスケールファクタの差分を可変長符号化する符号化装置であって、バンド内のすべての前記量子化されたスペクトルデータが零であるか否かを検出する零検出部と、前記零であることが検出されたバンドのスケールファクタを、差分可変長符号化後に最も短い符号長となる値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置及びその方法である。
【００３６】
又第２の発明は、スペクトルデータを、バンド単位のゲインを示すスケールファクタと前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するバンドのスケールファクタの差分を可変長符号化する符号化装置であって、バンド内のすべての前記量子化されたスペクトルデータが零であるか否かを検出する零検出部と、前記零であることが検出されたバンドと隣接するバンドとのスケールファクタの差分が可変長符号化の最も短い符号長の値となるように、前記零であることが検出されたバンドのスケールファクタを別の値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置及びその方法である。
【００３７】
又第３の発明は、インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータを、一方のチャンネルにおけるバンド単位のゲインを示すスケールファクタと、他方のチャンネルにおけるバンド単位の指向性ゲインを示すインテンシティステレオポジションと、一方のチャンネルのインテンシティステレオ処理されて前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するインテンシティステレオ処理されたバンドのインテンシティステレオポジションの差分を可変長符号化する符号化装置であって、前記インテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、前記零であることが検出されたバンドのインテンシティステレオポジションを差分可変長符号化後に最も短い符号長となる値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置及びその方法である。
【００３８】
又第４の発明は、インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータを、一方のチャンネルにおけるバンド単位のゲインを示すスケールファクタと、他方のチャンネルにおけるバンド単位の指向性ゲインを示すインテンシティステレオポジションと、一方のチャンネルのインテンシティステレオ処理されて前記ゲインで正規化されて量子化されたスペクトルデータとで表し、隣接するインテンシティステレオ処理されたバンドのインテンシティステレオポジションの差分を可変長符号化する符号化装置であって、前記インテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、前記零であることが検出されたバンドと隣接するバンドとのインテンシティステレオポジションの差分が可変長符号化の最も短い符号長の値となるように、前記零であることが検出されたバンドのインテンシティステレオポジションを別の値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置及びその方法である。
【００３９】
ここで可変長符号化の最も短い符号長の値を零とすることとしてもよい。
【００４０】
又第５の発明は、インテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータに対してコードブックを用いてバンド単位で符号化し、インテンシティステレオ処理を行うバンドにおける一方のチャンネルのコードブック番号は、インテンシティステレオ処理されて量子化されたスペクトルデータの符号化に使用するコードブック番号を表し、他方のチャンネルのコードブック番号はインテンシティステレオ処理を表す場合の符号化装置であって、一方のチャンネルのインテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、インテンシティステレオ処理されて前記零であることが検出されたバンドにおける他方のチャンネルのコードブック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に変更した場合と変更しない場合の符号化に必要なビット数を算出し、コードブック番号を変更した場合の方が符号化に必要なビット数が小さいときに、前記他方のチャンネルのコードブック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置及びその方法である。
【００４１】
又第６の発明は、ミッドサイドステレオ処理とインテンシティステレオ処理を用いて２つのチャンネルのスペクトルデータをバンド単位で符号化し、ミッドサイドステレオ処理の有無とインテンシティステレオ処理の２つのチャンネルにおける位相関係の反転の有無を示すフラグを符号化する符号化装置であって、一方のチャンネルのインテンシティステレオ処理されたバンド内のすべての量子化されたスペクトルデータが零であるか否かを検出する零検出部と、インテンシティステレオ処理されて前記零であることが検出されたバンドを除いたバンドの前記フラグがすべて同一の値のときには、バンド全体のフラグの値を前記同一の値に対応する別の値に置き換えるデータ置換部と、を備えたことを特徴とするオーディオ高能率符号化装置及びその方法である。
【００４２】
又第７の発明は、請求項８〜１４のいずれか１項記載のオーディオ高能率符号化方法を、コンピュータまたはデジタルシグナルプロセッサに実行させるためのプログラムである。
【００４３】
更に第８の発明は、請求項８〜１４のいずれか１項記載のオーディオ高能率符号化方法を、コンピュータまたはデジタルシグナルプロセッサに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００４４】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。各実施の形態の説明では、本発明のオーディオ高能率符号化方法をＡＡＣエンコーダに適用した場合を例として説明する。
【００４５】
最初に本発明の各実施の形態におけるオーディオ高能率符号化方法に共通で、特徴的なポイントについてまとめて説明し、次に各実施の形態について固有の特徴的なポイントについて個々に説明する。
【００４６】
図１は、本発明の実施の形態におけるオーディオ高能率符号化方法によるＡＡＣエンコーダの構成を示すブロック図である。図１に示すＡＡＣエンコーダは、フィルタバンク１０１、１０２、インテンシティステレオデータ生成部１１０、ミッドサイド（Ｍ／Ｓ）ステレオデータ生成部１２０、量子化部１３０、符号化部１４０、零検出部１５１、１５２、データ置換部１６０を含んで構成される。なお、図１において図１３と同じ構成要素については同じ符号を用い、説明を省略する。
【００４７】
以下、本発明の特徴的なポイントである零検出部１５１、１５２とデータ置換部１６０とについて、その動作を説明する。零検出部１５１は、量子化部１３０からの左チャンネルの量子化されたスペクトルデータを用いて、スケールファクタバンド内の量子化されたスペクトルデータがすべて零であるか否かを検出し、検出結果をデータ置換部１６０に出力する。
【００４８】
同様に、零検出部１５２は量子化部１３０からの右チャンネルの量子化されたスペクトルデータがスケールファクタバンド内ですべて零であるか否かを検出し、検出結果をデータ置換部１６０に出力する。インテンシティステレオ処理された右チャンネルのスケールファクタバンドに関しては、零検出部１５２での零検出処理は不要である。
【００４９】
以下、零検出部１５１、１５２で零であることが検出されたスケールファクタバンドを零検出バンドと呼び、また、零であることが検出されなかったスケールファクタバンドを非零検出バンドと呼ぶことにする。
【００５０】
データ置換部１６０は、零検出部１５１、１５２からの零検出結果に基づいて零検出バンドのデータを置き換えて符号化部１４０に出力する。インテンシティステレオ処理されたスケールファクタバンドの場合、右チャンネルの復号は左チャンネルの復号結果に基づいて行われるので、左チャンネルの零検出部１５１からの検出結果に基づいて、対応する右チャンネルのスケールファクタバンドのインテンシティステレオポジションやコードブック番号を置き換える。
【００５１】
符号化部１４０は、データ置換部１６０で置換されたデータを用いて符号化を行い、符号化データを生成して出力する。
【００５２】
（実施の形態１）
図２は、実施の形態１のオーディオ高能率符号化装置において、データ置換部１６０Ａの構成を示すブロック図である。このデータ置換部１６０Ａには、非零バンド間スケールファクタ差分算出部２１１、２１２、零バンドスケールファクタ差分算出部２２１、２２２、零バンドスケールファクタ置換部２３１、２３２が設けられている。図２の上段における非零バンド間スケールファクタ差分算出部２１１、零バンドスケールファクタ差分算出部２２１、零バンドスケールファクタ置換部２３１は、左チャンネルのデータ用である。下段における非零バンド間スケールファクタ差分算出部２１２、零バンドスケールファクタ差分算出部２２２、零バンドスケールファクタ置換部２３２は右チャンネルのデータ用である。左チャンネルと右チャンネルの動作は同一であるので、以下では左チャンネルの動作について説明し、右チャンネルの動作については説明を省略する。
【００５３】
非零バンド間スケールファクタ差分算出部２１１は、零検出部１５１で非零検出バンドと検出されたスケールファクタバンド間のスケールファクタの差分を算出する。
【００５４】
零バンドスケールファクタ差分算出部２２１は、非零検出バンド間スケールファクタ差分算出部２１１からの非零検出バンド間のスケールファクタの差分を用いて、非零検出バンド間のスケールファクタの差分を変えることなく、零検出バンドと隣接するスケールファクタバンドのスケールファクタの差分を可変長符号化後に最も短い符号長にする値を算出する。
【００５５】
ｉをスケールファクタバンドの番号とし、ｓｆ（ｉ）をｉのスケールファクタとする。ここでｉとｉ＋２を非零検出バンドとし、ｉ＋１を零検出バンドとする場合を考える。ｓｆ（ｉ＋２）−ｓｆ（ｉ）の値を用いて、表を参照することにより、図１４及び図１５のハフマンコードによる可変長符号化後の符号長を最小にする差分ｓｆ（ｉ＋１）−ｓｆ（ｉ）の値を算出する。
【００５６】
図３〜図６は、図１４及び図１５のハフマンコードを用いて、２つの差分ｄｓｆ１とｄｓｆ２の和が一定という条件で、ｄｓｆ１とｄｓｆ２の合計の符号長を最小にするｄｓｆ１とｄｓｆ２の値と、そのときの合計の符号長ｌｅｎｇｔｈを示す表である。ここでｄｓｆ１とｄｓｆ２の値は入れ替えてもよい。なお、図３はｄｓｆ１＋ｄｓｆ２の値が−１２０〜−６１までのｄｓｆ１、ｄｓｆ２、ｌｅｎｇｔｈを示す。また図４はｄｓｆ１＋ｄｓｆ２の値が−６０〜−１までの値を示し、図５はｄｓｆ１＋ｄｓｆ２の値が０〜５９までの値を示し、図６はｄｓｆ１＋ｄｓｆ２の値が６０〜１２０までの値を示す。
【００５７】
非零検出バンド間のスケールファクタの差分ｓｆ（ｉ＋２）−ｓｆ（ｉ）が、例えば−４の場合を考える。図３〜図６において、ｄｓｆ１＋ｄｓｆ２が−４となる行を参照すると、図４に示すように可変長符号化後の符号長を最小にするｓｆ（ｉ＋１）−ｓｆ（ｉ）の値は−４（ｄｓｆ１）か０（ｄｓｆ２）であり、このときのｓｆ（ｉ＋２）−ｓｆ（ｉ＋１）の値はそれぞれ０、−４であることが算出できる。
【００５８】
零検出バンドがｋ個（ただし、ｋは正整数）連続する場合には、所定の差分を（ｋ＋１）個の差分の和として表した同様な表を参照することにより、可変長符号化後の符号長を最小とする差分を算出することができる。
【００５９】
零バンドスケールファクタ置換部２３１では、零検出バンドの１つ前のスケールファクタバンドにおけるスケールファクタに対して、零バンドスケールファクタ差分算出部２２１で算出した差分を加算した値を算出し、零検出バンドのスケールファクタを置き換える。零検出バンドでは、すべての量子化されたスペクトルデータは零なので、ゲインを表すスケールファクタの値を変化させても同一の復号結果を得ることができる。
【００６０】
なお、スケールファクタの符号化時にはスケールファクタの差分を算出することが必要であり、図７に示すような構成として、零バンドスケールファクタ差分算出部２２１、２２２で算出された零検出バンドのスケールファクタの差分を直接出力し、符号化部１４０では、前記スケールファクタの差分を直接可変長符号化するようにしてもよい。この場合、零バンドスケールファクタ差分算出部２２１、２２２では、零検出バンドと隣接する２つのスケールファクタバンドとの２つのスケールファクタの差分を算出して出力する必要がある。すなわち、上記した例では、ｓｆ（ｉ＋１）−ｓｆ（ｉ）とｓｆ（ｉ＋２）−ｓｆ（ｉ＋１）の２つの差分を算出して出力することが必要である。
【００６１】
実施の形態１によれば、スケールファクタの伝送が必要なコードブック番号が１から１１のスケールファクタバンドに対して、スケールファクタデータの符号化に必要なビット数を削減することが可能である。しかしながら、コードブック番号が０のスケールファクタバンドでは、スケールファクタを伝送する必要がないので、スケールファクタデータのビット数を削減することはできない。
【００６２】
以上のように実施の形態１では、零検出部１５１、１５２からの零検出バンド／非零検出バンドの検出結果に基づいて、零検出バンドのスケールファクタを差分可変長符号化後に最も短い符号長となる値に零バンドスケールファクタ置換部２３１、２３２で置き換えることにより、より少ないビット数で従来と同一の復号結果を得ることができ、符号化効率が向上した符号化データを生成することができる。さらに、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【００６３】
（実施の形態２）
次に本発明の実施の形態２におけるオーディオ高能率符号化装置について説明する。図８は実施の形態２のオーディオ高能率符号化装置におけるデータ置換部１６０Ｂの構成を示すブロック図である。図８において、図２と同じ構成要素については同じ符号を用いる。このデータ置換部１６０Ｂには、非零バンド間スケールファクタ差分算出部２１１、２１２、差分範囲判定部２４１、２４２、零バンドスケールファクタ差分設定部２５１、２５２、零バンドスケールファクタ置換部２３１、２３２が設けられる。
【００６４】
図８の上段において、非零バンド間スケールファクタ差分算出部２１１、差分範囲判定部２４１、零バンドスケールファクタ差分設定部２５１、零バンドスケールファクタ置換部２３１は、左チャンネルのデータ用である。下段の非零バンド間スケールファクタ差分算出部２１２、差分範囲判定部２４２、零バンドスケールファクタ差分設定部２５２、零バンドスケールファクタ置換部２３２は、右チャンネルのデータ用である。左チャンネルと右チャンネルの動作は同一であるので、以下では左チャンネルの動作について説明し、右チャンネルの動作については説明を省略する。
【００６５】
非零バンド間スケールファクタ差分算出部２１１は、図１の零検出部１５１で非零検出バンドとして検出されたスケールファクタバンド間のスケールファクタの差分を算出する。
【００６６】
差分範囲判定部２４１は、非零バンド間スケールファクタ差分算出部２１１からの非零検出バンド間のスケールファクタの差分が所定の範囲内にあるか否か、本実施の形態では±６０以内にあるか否かを判定し、判定結果を出力する。
【００６７】
零バンドスケールファクタ差分設定部２５１は、差分範囲判定部２４１からの出力に基づいて、非零検出バンド間のスケールファクタの差分が±６０以内にあるときには、零検出バンドと隣接するスケールファクタバンドのスケールファクタの差分を、可変長符号化の最も短い符号長である値に設定する。本実施の形態では、可変長符号化に図１４及び図１５のハフマンコードを用いる。最も短い符号長は１ビットであり、このときの値は０である。
【００６８】
ｉをスケールファクタバンドの番号、ｓｆ（ｉ）をｉのスケールファクタ、ｉとｉ＋２を非零検出バンドで、ｉ＋１を零検出バンドとした場合、ｓｆ（ｉ＋２）−ｓｆ（ｉ）が±６０以内のとき、差分ｓｆ（ｉ＋１）−ｓｆ（ｉ）の値を０に設定する。
【００６９】
零検出バンドが２つ以上続く場合には、すべての零検出バンドに対して隣接するスケールファクタバンドとのスケールファクタの差分を０に設定する。零バンドスケールファクタ置換部２３１は、零検出バンドの１つ前のスケールファクタバンドにおけるスケールファクタに、零バンドスケールファクタ差分設定部２５１で設定した差分を加算した値を算出し、零検出バンドのスケールファクタを置き換える。本実施の形態では差分は０に設定されているので、ｓｆ（ｉ＋１）はｓｆ（ｉ）と同一の値に置き換えられる。
【００７０】
零検出バンドでは、すべての量子化されたスペクトルデータは零なので、ゲインを表すスケールファクタの値を変化させても同一の復号結果を得ることができる。
【００７１】
実施の形態２では、零検出バンドと隣接するスケールファクタバンドのスケールファクタの差分を固定値に設定すれば良いので、実施の形態１で用いた図３〜図６の表は不要である。
【００７２】
また、実施の形態２では、実施の形態１と比較して、非零検出バンド間のスケールファクタにおける差分の範囲が±６０以内の条件（非零検出バンド間のスケールファクタの差分を変えないための条件）が必要である。しかし、スケールファクタの±６０は、±９０ｄＢ（＝±６０×１．５ｄＢ）のゲインに対応し、ほとんどの場合この条件を満足するので、実質的に制約条件とはならない。
【００７３】
また、スケールファクタの差分可変長符号化後の符号長に関しても、実施の形態２で対応可能な１２１個（±６０の範囲内における整数の個数）の差分の内、１２０個の差分で最小の値であり、残りの１個も最小より１ビット長いだけという、ほぼ最適な可変長符号化を実現できる。すなわち、図３〜図６におけるｄｓｆ１＋ｄｓｆ２が±６０の範囲内で、ｄｓｆ１＋ｄｓｆ２が３１の場合を除いて、ｄｓｆ１、あるいはｄｓｆ２の値は０としている。また、ｄｓｆ１が０（１ビット）、ｄｓｆ２が３１（１９ビット）でｄｓｆ１＋ｄｓｆ２が３１の場合の符号長は２０（＝１＋１９）ビットであり、これは図５に示す最小時の１９ビットより１ビット長い。
【００７４】
なお、スケールファクタの符号化時にはスケールファクタの差分を算出することが必要なので、実施の形態１で説明したのと同様に、零バンドスケールファクタ差分設定部２５１で算出された零検出バンドのスケールファクタの差分を出力し、符号化部１４０が前記スケールファクタの差分を直接可変長符号化するようにしてもよい。
【００７５】
実施の形態２によれば、スケールファクタの伝送に必要なコードブック番号が１から１１のスケールファクタバンドでは、スケールファクタデータの符号化に必要なビット数を削減することが可能である。しかしながら、コードブック番号が０のスケールファクタバンドでは、スケールファクタを伝送する必要がないので、スケールファクタデータのビット数を削減することはできない。
【００７６】
以上のように実施の形態２では、零検出部１５１、１５２からの零検出バンド／非零検出バンドの検出結果に基づいて、零検出バンドと隣接するスケールファクタバンドのスケールファクタの差分が可変長符号化の最も短い符号長の値となるように、零検出バンドのスケールファクタを零バンドスケールファクタ置換部２３１、２３２で置き換える。このような簡単な処理により、少ないビット数で従来と同一の復号結果を得ることができ、符号化効率が向上した符号化データを生成することができる。さらに、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【００７７】
なお、実施の形態２では、非零検出バンド間のスケールファクタの差分が所定の範囲内（±６０以内）である場合にのみ、零検出バンドのスケールファクタの置き換えを行った。しかし、零検出バンドのスケールファクタの置き換えを常に行い、非零検出バンド間のスケールファクタの差分が所定の範囲外となるときには、所定の範囲内となるように非零検出バンド間のスケールファクタの差分を制限するようにしてもよい。スケールファクタの差分が±６０（±９０ｄＢ）の範囲外となる場合はほとんどないので、このようにしても実施の形態２とほぼ同じ結果を得ることができる。
【００７８】
（実施の形態３）
次に本発明の実施の形態３におけるオーディオ高能率符号化装置について説明する。図９は実施の形態３のオーディオ高能率符号化装置におけるデータ置換部１６０Ｃの構成を示すブロック図である。このデータ置換部１６０Ｃには、非零バンド間ＩＳポジション差分算出部３１０、零バンドＩＳポジション差分算出部３２０、零バンドＩＳポジション置換部３３０が設けられている。
【００７９】
非零バンド間ＩＳポジション差分算出部３１０では、インテンシティステレオ処理されて左チャンネルの零検出部１５１で非零検出バンドと検出された場合、スケールファクタバンド間の右チャンネルのインテンシティステレオ（ＩＳ）ポジションの差分を算出する。
【００８０】
零バンドＩＳポジション差分算出部３２０では、非零バンド間ＩＳポジション差分算出部３１０からの非零検出バンド間のインテンシティステレオポジションの差分を用いて、非零検出バンド間のインテンシティステレオポジションの差分を変えることなく、零検出バンドと隣接するスケールファクタバンドのインテンシティステレオポジションの差分を可変長符号化後に最も短い符号長にする値を算出する。
【００８１】
ｉをスケールファクタバンドの番号、ｉｓｐ（ｉ）をｉのインテンシティステレオポジション、ｉとｉ＋２を非零検出バンドとし、ｉ＋１を零検出バンドとした場合、ｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ）の値を用いて、図３〜図６に示す表を参照することにより、図１４及び図１５のハフマンコードによる可変長符号化後の符号長を最小にする差分ｉｓｐ（ｉ＋１）−ｉｓｐ（ｉ）の値を算出する。
【００８２】
インテンシティステレオポジションの差分の可変長符号化に用いるハフマンコードは、スケールファクタの差分の可変長符号化に用いるハフマンコードと同一なので、実施の形態１で用いた表をそのまま使用することができる。
【００８３】
例えば、非零検出バンド間のインテンシティステレオポジションの差分ｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ）が０の場合、図３〜６の可変長符号化後の符号長を最小にするｓｆ（ｉ＋１）−ｓｆ（ｉ）の値は０であり、このときのｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ＋１）の値も０である。
【００８４】
零バンドＩＳポジション置換部３３０は、零検出バンドの１つ前のスケールファクタバンドにおけるインテンシティステレオポジションに、零バンドＩＳポジション差分算出部３２０で算出した差分を加算した値を算出し、零検出バンドの右チャンネルのインテンシティステレオポジションを置き換える。
【００８５】
例えば、置き換え前のインテンシティステレオポジションの値をｉｓｐ（ｉ）＝４、ｉｓｐ（ｉ＋１）＝−４、ｉｓｐ（ｉ＋２）＝４とし、ｉとｉ＋２とを非零検出バンドとし、ｉ＋１を零検出バンドとした場合、ｉｓｐ（ｉ＋１）＝４に置き換える。この結果、置き換え前はｉｓｐ（ｉ＋１）−ｉｓｐ（ｉ）＝−８（８ビット）と、ｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ＋１）＝８（８ビット）で合わせて符号化に１６（＝８＋８）ビットが必要であった。これに対し、置き換え後は、ｉｓｐ（ｉ＋１）−ｉｓｐ（ｉ）＝０（１ビット）となり、ｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ＋１）＝０（１ビット）となり、計２（＝１＋１）ビットでよいので、符号化に必要なビット数を１４（＝１６−２）ビット削減できる。
【００８６】
零検出バンドでは、すべての量子化されたスペクトルデータは零なので、左チャンネルに対する右チャンネルの指向性ゲインを表すインテンシティステレオポジションの値を変化させても、同一の復号結果を得ることができる。
【００８７】
なお、インテンシティステレオポジションの符号化時にはインテンシティステレオポジションの差分を算出することが必要なので、データ置換部を図１０に示すような構成として、零バンドＩＳポジション差分算出部３２０で算出された零検出バンドの右チャンネルにおけるインテンシティステレオポジションの差分を出力し、図１の符号化部１４０が前記インテンシティステレオポジションの差分を直接可変長符号化するようにしてもよい。この場合、零バンドＩＳポジション差分算出部３２０では、零検出バンドと隣接する２つのスケールファクタバンドとの２つのインテンシティステレオポジションの差分を設定する必要がある。すなわち、上記した例では、ｉｓｐ（ｉ＋１）−ｉｓｐ（ｉ）と、ｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ＋１）との２つの差分を算出して出力することが必要である。
【００８８】
実施の形態３によれば、右チャンネルのコードブック番号がインテンシティステレオ処理を表す１４か１５の場合、スケールファクタデータ中のインテンシティステレオポジションの符号化に必要なビット数を、その最小のビット数まで削減することが可能である。
【００８９】
以上のように実施の形態３では、零検出部１５１からの零検出バンド／非零検出バンドの検出結果に基づいて、零検出バンドのインテンシティステレオポジションを、差分可変長符号化後に最も短い符号長となる値に零バンドＩＳポジション置換部３３０で置き換えることにより、より少ないビット数で従来と同一の復号結果を得ることができ、符号化効率が向上した符号化データを生成することができる。さらに、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【００９０】
（実施の形態４）
次に本発明の実施の形態４におけるオーディオ高能率符号化装置について説明する。図１１は実施の形態４のオーディオ高能率符号化方法におけるデータ置換部１６０Ｄの構成を示すブロック図である。図９と同じ構成要素については同じ符号を用いる。このデータ置換部１６０Ｄには、非零バンド間ＩＳポジション差分算出部３１０、差分範囲判定部３４０、零バンドＩＳポジション差分設定部３５０、零バンドＩＳポジション置換部３３０が設けられている。
【００９１】
非零バンド間ＩＳポジション差分算出部３１０は、インテンシティステレオ処理されて左チャンネルの零検出部１５１で非零検出バンドと検出されたスケールファクタバンド間の右チャンネルにおけるインテンシティステレオポジションの差分を算出する。
【００９２】
差分範囲判定部３４０は、非零バンド間ＩＳポジション差分算出部３１０からの非零検出バンド間のインテンシティステレオポジションの差分が所定の範囲内、即ち本実施の形態では±６０以内にあるか否かを判定し、判定結果を出力する。
【００９３】
零バンドＩＳポジション差分設定部３５０は、差分範囲判定部３４０からの出力に基づいて、非零検出バンド間のインテンシティステレオポジションの差分が±６０以内にあるときには、零検出バンドと隣接するスケールファクタバンドのインテンシティステレオポジションの差分を、可変長符号化の最も短い符号長である値に設定する。本実施の形態では可変長符号化に図１４及び図１５のハフマンコードを用いるので、最も短い符号長は１ビットで値は０である。
【００９４】
ｉをスケールファクタバンドの番号、ｉｓｐ（ｉ）をｉのインテンシティステレオポジション、ｉとｉ＋２を非零検出バンドとし、ｉ＋１を零検出バンドとした場合、ｉｓｐ（ｉ＋２）−ｉｓｐ（ｉ）が±６０以内のとき、差分ｉｓｐ（ｉ＋１）−ｉｓｐ（ｉ）の値を０に設定する。
【００９５】
零検出バンドが２つ以上続く場合には、すべての零検出バンドに対して隣接するスケールファクタバンドとのインテンシティステレオポジションの差分を０に設定する。
【００９６】
零バンドＩＳポジション置換部３３０では、零検出バンドの１つ前のスケールファクタバンドにおけるインテンシティステレオポジションに、零バンドＩＳポジション差分設定部３５０で設定した差分を加算した値を算出し、零検出バンドのインテンシティステレオポジションを置き換える。本実施の形態では差分は０に設定されているので、ｉｓｐ（ｉ＋１）はｉｓｐ（ｉ）と同一の値に置き換えられる。
【００９７】
零検出バンドでは、すべての量子化されたスペクトルデータは零なので、指向性ゲインを表すインテンシティステレオポジションの値を変化させても、同一の復号結果を得ることができる。
【００９８】
実施の形態４では、零検出バンドと隣接するスケールファクタバンドのスケールファクタの差分を固定値に設定すれば良いので、実施の形態３で必要であった図３〜図６の表が不要になる。
【００９９】
また、実施の形態４では、実施の形態３と比較して、非零検出バンド間のインテンシティステレオポジションにおける差分の範囲が±６０以内の条件（非零検出バンド間のインテンシティステレオポジションの差分を変えないための条件）が必要であるが、インテンシティステレオポジションの±６０は±９０ｄＢ（＝±６０×１．５ｄＢ）のゲインに対応し、ほとんどの場合この条件を満足するので、実質的に制約条件とはならない。
【０１００】
また、インテンシティステレオポジションの差分可変長符号化後の符号長に関しても、実施の形態３で対応可能な１２１個の差分の内、１２０個が差分で最小の値であり、残りの１個も最小より１ビット長いだけである。このため、ほぼ最適な可変長符号化を実現できる。
【０１０１】
なお、インテンシティステレオポジションの符号化時には、インテンシティステレオポジションの差分を算出することが必要なので、実施の形態３で説明したのと同様に、零バンドＩＳポジション差分設定部３５０で算出された零検出バンドのインテンシティステレオポジションの差分を出力し、符号化部１４０では、前記インテンシティステレオポジションの差分を直接可変長符号化するようにしてもよい。
【０１０２】
実施の形態４によれば、右チャンネルのコードブック番号がインテンシティステレオ処理を表す１４か１５の場合、スケールファクタデータの中のインテンシティステレオポジションにおける符号化に必要なビット数を、ほとんどの場合その最小のビット数まで削減することが可能である。
【０１０３】
以上のように実施の形態４では、零検出部１５１からの零検出バンド／非零検出バンドの検出結果に基づいて、零検出バンドと隣接するスケールファクタバンドのインテンシティステレオポジションの差分が、可変長符号化の最も短い符号長の値となるように、零検出バンドのインテンシティステレオポジションを零バンドＩＳポジション置換部３３０で置き換える。このような簡単な処理により、少ないビット数で従来と同一の復号結果を得ることができ、符号化効率が向上した符号化データを生成することができる。さらに、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【０１０４】
なお、実施の形態４では、非零検出バンド間のインテンシティステレオポジションの差分が所定の範囲内（±６０以内）である場合にのみ、零検出バンドのインテンシティステレオポジションの置き換えを行った。しかし、零検出バンドのインテンシティステレオポジションの置き換えを常に行い、非零検出バンド間のインテンシティステレオポジションの差分が所定の範囲外となるときには、所定の範囲内となるように非零検出バンド間のインテンシティステレオポジションの差分を制限するようにしてもよい。インテンシティステレオポジションの差分が±６０（±９０ｄＢ）の範囲外となる場合はほとんどないので、このようにしても実施の形態４とほぼ同じ結果を得ることができる。
【０１０５】
（実施の形態５）
実施の形態５は、インテンシティステレオ処理されたスケールファクタバンドに関し、零検出バンドの右チャンネルハフマンコードブック番号をデータ置換部１６０で置き換えることを特徴とするものである。
【０１０６】
図１の左チャンネルの零検出部１５１は、インテンシティステレオ処理されたスケールファクタバンド内の量子化されたスペクトルデータがすべて零であるか否かを検出し、データ置換部１６０に出力する。
【０１０７】
データ置換部１６０は、インテンシティステレオ処理されたスケールファクタバンドに関し、以下の処理を行う。最初に非零検出バンド間の右チャンネルにおけるインテンシティステレオポジションの差分が±６０以内にあるかを判定する。±６０以内にあれば、零検出バンドのインテンシティステレオポジションを省いても、非零検出バンド間のインテンシティステレオポジションの差分を維持することができる。
【０１０８】
次に、前記差分が±６０以内にあるときには、非零検出バンドの間にある零検出バンドの右チャンネルのインテンシティステレオを表すコードブック番号（１４あるいは１５）を、零データを表すコードブック番号（０）に変更したときと変更しないとき、右チャンネルのセクションデータとスケールファクタデータの符号化に必要なビット数を算出する。変更したときの方が必要なビット数が少ないときには、インテンシティステレオを表す右チャンネルのコードブック番号を、零データを表すコードブック番号に置き換える。
【０１０９】
零データを表すコードブック番号の場合、スケールファクタを伝送する必要がないので、スケールファクタデータに必要なビット数は減少する。しかしながらコードブック番号を変更することにより、セクションの数が増加し、セクションデータに必要なビット数が増加することもある。このため、スケールファクタデータとセクションデータの符号化に必要なビット数が小さくなるときのみ、右チャンネルのコードブック番号を変更する。
【０１１０】
零検出バンドでは、インテンシティステレオ処理されて量子化されたスペクトルデータはすべて零なので、右チャンネルのコードブック番号を、インテンシティステレオ処理を表す番号（１４、あるいは１５）から零データを表すコードブック番号（０）に変化させても、同一の復号結果を得ることができる。
【０１１１】
以上のように実施の形態５では、零検出部１５１からの零検出バンド／非零検出バンドの検出結果に基づいて、データ置換部１６０で、インテンシティステレオ処理された零検出バンドの右チャンネルのコードブックック番号を、インテンシティステレオ処理を表すコードブック番号から零データを表すコードブック番号に変更したときの方が符号化に必要なビット数が小さいときに、前記右チャンネルのコードブック番号を置き換える。こうすることにより、より少ないビット数で従来と同一の復号結果を得ることができ、符号化効率が向上した符号化データを生成することができる。さらに、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【０１１２】
（実施の形態６）
次に本発明の実施の形態６におけるオーディオ高能率符号化方法について説明する。図１２は実施の形態６のオーディオ高能率符号化方法におけるデータ置換部１６０Ｅの構成を示すブロック図である。このデータ置換部１６０Ｅには、非零バンドＭ／Ｓ・ＩＳ位相反転フラグ同一判定部４１０、ＭＳマスク設定部４２０が設けられている。
【０１１３】
非零バンドＭ／Ｓ・ＩＳ位相反転フラグ同一判定部４１０は、インテンシティステレオ処理されて、左チャンネルの零検出部１５１で零検出バンドと検出されたスケールファクタバンドを除いたスケールファクタバンドのＭＳ有無・ＩＳ位相反転フラグが、すべて同一の値であるかどうかを判定し、判定結果を出力する。
【０１１４】
非零バンドＭ／Ｓ・ＩＳ位相反転フラグ同一判定部４１０で、ＭＳ有無・ＩＳ位相反転フラグが同一の値であると判定されたときには、ＭＳマスク設定部４２０はバンド全体のフラグであるＭＳマスクの値を、同一の値に対応する値に置き換えて出力する。すなわち、同一の値が０の場合にはＭＳマスクの値を０に置き換え、同一の値が１の場合にはＭＳマスクの値を２に置き換える。
【０１１５】
インテンシティステレオ処理された零検出バンドでは、すべての量子化されたスペクトルデータは零なので、２つのチャンネルの位相関係を表すフラグの値を反転しても同一の復号結果を得ることができる。
【０１１６】
前述したようにＭＳマスクの値が１以外の場合には、ＭＳ有無・ＩＳ位相反転フラグを符号化データとして伝送する必要がない。従って置き換える前のＭＳマスクの値が１の場合、０あるいは２に置き換えることによって、ＭＳ有無・ＩＳ位相反転フラグビットを伝送する必要がなくなり、符号化に必要なビットを削減することができる。ＭＳ有無・ＩＳ位相反転フラグはスケールファクタバンド毎に１ビット必要なので、例えば、スケールファクタバンドの数が４９の場合、４９ビット削減することができる。
【０１１７】
以上のように実施の形態６では、零検出部１５１からの零検出バンド／非零ゼ検出バンドの検出結果に基づいて、インテンシティステレオ処理された零検出バンドを除いたスケールファクタバンドのステレオ処理の状態を表すＭＳ有無・ＩＳ位相反転フラグの値がすべて同一の場合、バンド全体のフラグの状態を表すＭＳマスクの値をＭＳマスク設定部４２０で置き換えることにより、スケールファクタバンド単位の前記フラグの伝送を不要とし、符号化効率が向上した符号化データを生成することができる。さらに、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【０１１８】
なお、上記の各実施の形態におけるオーディオ高能率符号化方法は、零検出バンドとそれに関連するデータを、より短い符号長のデータとなるように置き換えることにより、符号化効率の向上を実現している。このため、零スペクトルデータが発生しやすい低ビットレートの符号化や狭帯域信号の符号化に対して特に有効である。
【０１１９】
なお、上記の各実施の形態を組み合わせて実施することも可能であり、例えば、実施の形態１、実施の形態３、実施の形態５、実施の形態６を組み合わせて実施することもできる。ただし、同じデータを異なった形態で置き換える実施の形態１と実施の形態２、あるいは実施の形態３と実施の形態４は、同時に実施することはできない。
【０１２０】
なお、上記の各実施の形態では、オーディオ高能率符号化方法をＡＡＣエンコーダに適用した例を示した。しかし本発明は、同様な符号化フォーマットを有する他の符号化方式にも適用可能である。
【０１２１】
なお、上記の各実施の形態におけるオーディオ高能率符号化方法は、コンピュータまたはデジタルシグナルプロセッサに実行させるためのプログラムとして実現することができ、これをコンピュータ読み取り可能な記録媒体に記録してもよい。
【０１２２】
【発明の効果】
以上のように本発明によれば、符号化効率が向上した符号化データを生成することができる。すなわち、より少ないビット数で従来と同一の復号結果を得る符号化データを生成することができる。
【０１２３】
また本発明によれば、削減したビットを音質に寄与する他のデータに割り当てることにより、音質を向上させることができる。
【０１２４】
本発明は特に零スペクトルデータが発生しやすい低ビットレートの符号化や狭帯域信号の符号化に対して有効である。
【図面の簡単な説明】
【図１】本発明の各実施の形態によるオーディオ高能率符号化方法において、ＡＡＣエンコーダの構成を示すブロック図である。
【図２】本発明の実施の形態１におけるデータ置換部の構成を示すブロック図である。
【図３】２つの差分の和が一定という条件で、可変長符号化後の符号長を最小にする差分を示す表（その１）である。
【図４】２つの差分の和が一定という条件で、可変長符号化後の符号長を最小にする差分を示す表（その２）である。
【図５】２つの差分の和が一定という条件で、可変長符号化後の符号長を最小にする差分を示す表（その３）である。
【図６】２つの差分の和が一定という条件で、可変長符号化後の符号長を最小にする差分を示す表（その４）である。
【図７】本発明の実施の形態１におけるデータ置換部の別の構成を示すブロック図である。
【図８】本発明の実施の形態２におけるデータ置換部の構成を示すブロック図である。
【図９】本発明の実施の形態３におけるデータ置換部の構成を示すブロック図である。
【図１０】本発明の実施の形態３におけるデータ置換部の別の構成を示すブロック図である。
【図１１】本発明の実施の形態４におけるデータ置換部の構成を示すブロック図である。
【図１２】本発明の実施の形態６におけるデータ置換部の構成を示すブロック図である。
【図１３】従来のＡＡＣエンコーダの構成を示すブロック図である。
【図１４】スケールファクタとインテンシティステレオポジションの差分可変長符号化に用いられるハフマンコードの符号長を示す表（その１）である。
【図１５】スケールファクタとインテンシティステレオポジションの差分可変長符号化に用いられるハフマンコードの符号長を示す表（その２）である。
【図１６】インテンシティステレオ処理された符号化データの例を説明するための図である。
【符号の説明】
１０１，１０２  フィルタバンク
１１０  インテンシティステレオデータ生成部
１２０  Ｍ／Ｓステレオデータ生成部
１３０  量子化部
１４０  符号化部
１５１，１５２  零検出部
１６０，１６０Ａ，１６０Ｂ，１６０Ｃ，１６０Ｄ，１６０Ｅ  データ置換部
２１１，２１２  非零バンド間スケールファクタ差分算出部
２２１，２２２  零バンドスケールファクタ差分算出部
２３１，２３２  零バンドスケールファクタ置換部
２４１，２４２  差分範囲判定部
２５１，２５２  零バンドスケールファクタ差分設定部
３１０  非零バンド間ＩＳポジション差分算出部
３２０  零バンドＩＳポジション差分算出部
３３０  零バンドＩＳポジション置換部
３４０  差分範囲判定部
３５０  零バンドＩＳポジション差分設定部
４１０  非零バンドＭ／Ｓ・ＩＳ位相反転フラグ同一判定部
４２０  ＭＳマスク設定部
【図１】
2004246224.tif 000003
【図２】
2004246224.tif 000004
【図３】
2004246224.tif 000005
【図４】
2004246224.tif 000006
【図５】
2004246224.tif 000007
【図６】
2004246224.tif 000008
【図７】
2004246224.tif 000009
【図８】
2004246224.tif 000010
【図９】
2004246224.tif 000011
【図１０】
2004246224.tif 000012
【図１１】
2004246224.tif 000013
【図１２】
2004246224.tif 000014
【図１３】
2004246224.tif 000015
【図１４】
2004246224.tif 000016
【図１５】
2004246224.tif 000017
【図１６】
2004246224.tif 000018