(57)【要約】【課題】本発明は、例えばＭＰＥＧ１、ＭＰＥＧ２のレイヤ１、レイヤ２でオーディオ信号を符号化処理する場合に適用して、心理聴覚分析に基づいてオーディオ信号を符号化処理する場合に、従来に比して処理の負担を軽減する。【解決手段】本発明は、ビット割り当ての評価基準を事前にソートしてビット割り当てするサブバンド信号を検出するようにして、再計算した評価基準をソートする場合には、直前のソート結果の部分的な配列の変更により評価基準をソートする。【選択図】        図１
2007264154.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化方法において、
前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算する評価基準計算ステップと、
前記評価基準をソートするソートステップと、
ビット割り当てステップと、評価基準再計算ステップと、再ソートステップとの繰り返しにより、前記複数のサブバンド信号に前記ビットを割り当てる繰り返し処理ステップとを有し、
前記ビット割り当てステップが、前記ソートステップのソート結果又は前記再ソートステップのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当てる処理であり、
前記評価基準再計算ステップが、前記ビット割り当てステップでビットを割り当てた前記サブバンド信号の前記評価基準を再計算する処理であり、
前記再ソートステップが、前記評価基準再計算ステップで計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートする処理であり、
前記再ソートステップは、
直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする
ことを特徴とするオーディオ信号符号化方法。
【請求項２】
前記評価基準が、マスク対雑音比である
ことを特徴とする請求項１に記載のオーディオ信号符号化方法。
【請求項３】
前記再ソートステップの前記ソート結果の部分的な配列の変更が、
直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の前記評価基準を順次比較対象に設定して、直前の前記評価基準再計算ステップで計算した前記評価基準と順次比較し、
比較結果に基づいて、前記比較対象の前記ソート結果上の位置を順次移動させて、前記直前の評価基準再計算ステップで計算した前記評価基準を、該ソート結果に配置する処理である
ことを特徴とする請求項１に記載のオーディオ信号符号化方法。
【請求項４】
前記繰り返し処理ステップの処理結果に基づいて、高域側のサブバンド信号であって、前記ビット割り当て処理で前記ビットが割り当てられ、かつ隣接する低域側のサブバンド信号に前記ビット割り当て処理で前記ビットが割り当てられていないサブバンド信号を検出するサブバンド信号検出処理ステップと、
前記サブバンド信号検出処理ステップで検出した前記サブバンド信号に割り当てられていたビットを、該サブバンド信号より低域のサブバンド信号に配分し直す再ビット割り当てのステップとを有する
ことを特徴とする請求項１に記載のオーディオ信号符号化方法。
【請求項５】
演算処理手段による実行により、オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化方法のプログラムにおいて、
前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算する評価基準計算ステップと、
前記評価基準をソートするソートステップと、
ビット割り当てステップと、評価基準再計算ステップと、再ソートステップとの繰り返しにより、前記複数のサブバンド信号に前記ビットを割り当てる繰り返し処理ステップとを有し、
前記ビット割り当てステップが、前記ソートステップのソート結果又は前記再ソートステップのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当てる処理であり、
前記評価基準再計算ステップが、前記ビット割り当てステップでビットを割り当てた前記サブバンド信号の前記評価基準を再計算する処理であり、
前記再ソートステップが、前記評価基準再計算ステップで計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートする処理であり、
前記再ソートステップは、
直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする
ことを特徴とするオーディオ信号符号化方法のプログラム。
【請求項６】
演算処理手段による実行により、オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化方法のプログラムを記録した記録媒体において、
前記オーディオ信号符号化方法のプログラムは、
前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算する評価基準計算ステップと、
前記評価基準をソートするソートステップと、
ビット割り当てステップと、評価基準再計算ステップと、再ソートステップとの繰り返しにより、前記複数のサブバンド信号に前記ビットを割り当てる繰り返し処理ステップとを有し、
前記ビット割り当てステップが、前記ソートステップのソート結果又は前記再ソートステップのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当てる処理であり、
前記評価基準再計算ステップが、前記ビット割り当てステップでビットを割り当てた前記サブバンド信号の前記評価基準を再計算する処理であり、
前記再ソートステップが、前記評価基準再計算ステップで計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートする処理であり、
前記再ソートステップは、
直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする
ことを特徴とするオーディオ信号符号化方法のプログラムを記録した記録媒体。
【請求項７】
オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化装置において、
前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算し、
前記評価基準をソートし、
ビット割り当てと、前記評価基準の再計算と、再ソートとを繰り返して、前記複数のサブバンド信号に前記ビットを割り当て、
前記ビット割り当てにおいて、前記ソートのソート結果又は前記再ソートのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当て、
前記評価基準の再計算において、前記ビット割り当てでビットを割り当てた前記サブバンド信号の前記評価基準を再計算し、
前記再ソートにおいて、前記評価基準の再計算で計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートし、
前記再ソートでは、
直前の前記ビット割り当てでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする
ことを特徴とするオーディオ信号符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＭＰＥＧ（Moving Picture Experts Group）１、ＭＰＥＧ２のレイヤ１、レイヤ２でオーディオ信号を符号化処理する場合に適用することができる。本発明は、ビット割り当ての評価基準を事前にソートしてビットを割り当てるサブバンド信号を検出するようにして、再計算した評価基準をソートする場合には、直前のソート結果の部分的な配列の変更により評価基準をソートすることにより、心理聴覚分析に基づいてオーディオ信号を符号化処理する場合に、従来に比して処理の負担を軽減する。
【背景技術】
【０００２】
従来、オーディオ信号の符号化処理では、知覚符号化が知られている。ここで知覚符号化は、聴覚心理符号化とも呼ばれる。知覚符号化は、最小可聴限界、マスキング効果により知覚困難な成分にはビットを割り当てないようにしてオーディオ信号を符号化処理し、人間の聴覚の特性を利用してオーディオ信号を効率良く符号化する。この知覚符号化の技術を用いた符号化方法として、ＭＰＥＧ１、ＭＰＥＧ２におけるレイヤ１、レイヤ２が広く知られている。
【０００３】
ここで図１６は、オーディオ信号Ｓ１を符号化処理するエンコーダを示すブロック図である。このエンコーダ１は、例えばディジタルシグナルプロセッサで構成され、ＭＰＥＧ１のレイヤ１又はレイヤ２により、若しくはＭＰＥＧ２のレイヤ１又はレイヤ２により、オーディオ信号Ｓ１を符号化処理してビットストリームＳ２を出力する。ここでこのオーディオ信号Ｓ１は、複数チャンネルのオーディオ信号であり、例えば直線量子化された１６ビットのＰＣＭ（Pulse Code Modulation ）データ、又は直線量子化された２４ビットのＰＣＭデータである。
【０００４】
このエンコーダ１において、サブバンド分析フィルタバンク２は、例えばポリフェーズフィルタバンクで構成され、オーディオ信号Ｓ１の全周波数帯域を３２個の周波数帯域（サブバンド）に分割し、各帯域の信号をそれぞれサブサンプリングしてサブバンド信号を出力する。なおオーディオ信号Ｓ１は、レイヤ１では、３８４サンプルが１フレームに設定されて処理され、レイヤ２では、１１５２サンプルが１フレームに設定されて処理される。
【０００５】
線形量子化器３は、動的ビット割り当て部４の制御により、このサブバンド分析フィルタバンク２から出力されるサブバンド信号を量子化して出力する。ビット圧縮部１１は、この線形量子化器３の出力データをビット圧縮して出力する。ビットストリーム形成部５は、このビット圧縮部１１の出力データに、サイド情報符号化部１０の出力データ、ＣＲＣ（Cyclic Redundancy Check ）符号等を付加してビットストリームＳ２を出力する。
【０００６】
スケールファクタ抽出部６は、サブバンド分析フィルタバンク２から出力されるサブバンド信号毎にスケールファクタを検出する。ここでスケールファクタは、各サブバンド信号における振幅の最大値を示す係数である。スケールファクタ抽出部６は、レイヤ１では、各サブバンド信号の１２サンプルを１ブロックとして、ブロック毎に、サブバンド信号の各サンプル値の絶対値から最大値を検出する。またこの検出した最大値より値の大きな振幅値を示すスケールファクタを選択し、この選択したスケールファクタから最小の振幅値を示すスケールファクタを選択する。
【０００７】
これに対してレイヤ２では、レイヤ１の場合と同様に、１２サンプルを１ブロックとして、ブロック毎にスケールファクタを検出する。また連続するブロック間で、検出したスケールファクタの差分を検出し、この差分の連続パターンを１〜３ビットの伝送パターンで表現してスケールファクタ選択情報７と共に出力する。レイヤ２では、このスケールファクタ選択情報７と１〜３ビットの伝送パターンとで各ブロックのスケールファクタが伝送される。
【０００８】
高速フーリエ変換部（ＦＦＴ：Fast Fourier Transform）８は、レイヤ１では５１２サンプル単位で、レイヤ２では１０２４サンプル単位で、オーディオ信号Ｓ１を高速フーリエ変換処理する。
【０００９】
心理聴覚モデル部９は、所定の聴覚心理モデルを用いて、高速フーリエ変換部８の処理結果と、スケールファクタ抽出部６で検出されるスケールファクタとから、サブバンド毎に、ＳＭＲ（Signal to Mask  Ratio ）を計算する。ここでＳＭＲは、各サブバンド信号へのビット割り当てに使用する評価基準を導出するために、各サブバンド信号から求められる各サブバンド信号の評価値である。ＳＭＲは、サブバンド信号における最大振幅レベルと、人間の聴覚又は知覚特性によってマスキングされる最大振幅レベル（マスキングしきい値）との比（信号対マスク比）である。
【００１０】
動的ビット割当て部４は、オーディオ信号Ｓ１自体の伝送に割り当て可能なビット量を計算し、ＳＭＲに基づいてこの計算したビット量から各サブバンドへのビット割り当て量を計算する。また動的ビット割当て部４は、各サブバンド信号の量子化スケールを計算し、この計算したビット割り当て量、量子化スケールで各サブバンド信号を符号化処理するように、線形量子化器３を制御する。なおここでオーディオ信号Ｓ１自体の伝送に割り当て可能なビット量は、利用可能な総ビット数からヘッダ、ＣＲＣ符号、アンシラリデータ、ビット割り当てのデータを差し引いて求められる。
【００１１】
サイド情報符号化部１０は、各サブバンド信号のビット割り当て量、量子化スケールのデータ、スケールファクタのデータ等を復号化に必要なデータとして入力し、この入力したデータを符号化してビットストリーム形成部５に出力する。
【００１２】
図１７は、動的ビット割当て部４の処理を簡単に示すフローチャートである。動的ビット割当て部４は、オーディオ信号Ｓ１のブロック毎に、この処理手順を実行する。
【００１３】
すなわち動的ビット割当て部４は、この処理手順を開始すると、心理聴覚モデル部９で計算されたＳＭＲから各サブバンド信号のＭＮＲ（マスク対雑音比：Mask to Noise Ratio ）を計算する。ここでＭＮＲは、各サブバンド信号にビットを割り当てるための評価基準である。ＭＮＲは、ＳＮＲ（Signal to Noise Ratio ）〔ｄＢ〕からＳＭＲ〔ｄＢ〕を減算して求められる。なおここでＳＮＲは、例えばｎビットで量子化したとした場合の各サブバンド信号のＳＮＲである。この図１７の処理開始直後は、各サブバンド信号にビットが割り当てられていないことから、ｎは初期値が適用される。
【００１４】
続いて動的ビット割当て部４は、ステップＳＰ１からステップＳＰ２に移り、各サブバンド信号のＭＮＲを検索して値の最も小さなＭＮＲを検出する。また続くステップＳＰ３において、この検出したＭＮＲのサブバンド信号に割り当てるビット量を計算し、この計算したビット量をこのサブバンド信号に割り当てる。また続くステップＳＰ４において、割り当て可能な全ビットの割り当てを全て完了したか否か判断し、ここで否定結果が得られると、ステップＳＰ３でビットを割り当てたサブバンド信号のＭＮＲを再計算してステップＳＰ２に戻る。これに対してステップＳＰ４で肯定結果が得られると、ステップＳＰ４からステップＳＰ５に移ってこの処理手順を終了する。
【００１５】
図１８及び図１９は、この図１７の処理手順を詳細に示すフローチャートである。なお図１７では、ステップＳＰ３に続いてステップＳＰ４の処理を実行するように設定されているものの、図１７は、理解を容易とするために、便宜的に処理手順を記載したものであり、実際には、この図１８及び図１９に示すように、ステップＳＰ３、ステップＳＰ４に対応する処理が図１７の例とは逆の順序で設けられる。
【００１６】
すなわち動的ビット割当て部４は、この処理手順の開始によりＭＮＲを各サブバンド信号で計算し、ステップＳＰ１１からステップＳＰ１２に移り、ビット割り当ての完了したトータルビット数（alloc bit total ）を値０に初期化する。
【００１７】
続いて動的ビット割当て部４は、ステップＳＰ１３に移り、各種の変数を初期化する。なおここでｃｈは、オーディオ信号Ｓ１のチャンネルを特定する変数であり、min ch、min sbは、ＭＮＲが最小値のチャンネル及びサブバンド信号をそれぞれ特定する変数である。またmin mnr は、ＭＮＲの最小値である。動的ビット割当て部４は、ｃｈを値０に、min ch、min sbを値−１に、min mnr を取り得る値の最大値ＭＡＸに初期化する。
【００１８】
続いて動的ビット割当て部４は、ステップＳＰ１４において、サブバンド信号を特定する変数sbを値０に初期化する。また続くステップＳＰ１５において、変数chで特定されるチャンネルの、変数sbで特定されるサブバンド信号（used〔ch〕〔sb〕）について、ビット割り当てが未完了で、かつＭＮＲの値が変数min mnr による値より小さいか否か判断する。
【００１９】
なおここで変数chで特定されるチャンネルの、変数sbで特定されるサブバンド信号（used〔ch〕〔sb〕）について、ビット割り当てが未完了したと判断される場合は、ビット割り当ての完了したトータルビット数（alloc bit total ）が全体の割り当て可能ビット数(total bit) を越えた場合、又は該当サブバンド信号の割り当て済のビット数が、１つのサブバンド信号に割り当て可能なビット数を越えた場合である。なおジョイントステレオの場合は、対応するチャンネルのサブバンド信号のビット割り当てが完了した場合にも、該当するサブバンド信号のビット割り当てが完了したと判断される。
【００２０】
このステップＳＰ１５で、肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ１５からステップＳＰ１６に移る。このステップＳＰ１６で、動的ビット割当て部４は、ＭＮＲの最小値min mnr を変数ch、sbで特定されるチャンネル、サブバンド信号のＭＮＲに更新する。またＭＮＲが最小値のチャンネル特定する変数min chを変数chで更新する。またＭＮＲが最小値のサブバンド信号を特定する変数min sbを変数sbで更新し、ステップＳＰ１７に移る。
【００２１】
これに対してステップＳＰ１５で否定結果が得られると、ステップＳＰ１５から直接ステップＳＰ１７に移る。このステップＳＰ１７で、動的ビット割当て部４は、変数sbの値が全サブバンド数（last sb ）の値より小さいか否か判断する。このステップＳＰ１７で肯定結果が得られると、ステップＳＰ１８に移って変数sbを値１だけインクリメントして処理対象のサブバンド信号を続くサブバンド信号に切り換え、ステップＳＰ１５に戻る。これに対してステップＳＰ１７で否定結果が得られると、ステップＳＰ１７からステップＳＰ１９に移る。このステップＳＰ１９で、動的ビット割当て部４は、変数chの値が全チャンネル数（last ch ）の値より小さいか否か判断する。このステップＳＰ１９で肯定結果が得られると、ステップＳＰ２０に移って変数chを値１だけインクリメントして処理対象のチャンネルを続くチャンネルに切り換え、ステップＳＰ１４に戻る。
【００２２】
動的ビット割当て部４は、このステップＳＰ１３〜ＳＰ２０の処理によって、順次チャンネル、サブバンド信号を切り換えて、ＭＮＲの最小値を検出し、図１７について上述したステップＳＰ２の処理を実行する。また全てのチャンネル、サブバンド信号について、このステップＳＰ１３〜ＳＰ２０の処理を実行すると、ステップＳＰ１９で肯定結果が得られ、動的ビット割当て部４は、ステップＳＰ１９からステップＳＰ２１（図１９）に移る。
【００２３】
このステップＳＰ２１で、動的ビット割当て部４は、ＭＮＲが最小値のサブバンド信号を特定する変数min sbが初期値（−１）のままに保持されているか否か判断する。ここで変数min sbが初期値（−１）のままに保持されている場合は、全てのチャンネルの全てのサブバンド信号について、ステップＳＰ１５で否定結果が得られた場合であり、この場合、動的ビット割当て部４は、ステップＳＰ２１からステップＳＰ２２に移り、この処理手順を終了する。なおここでこのステップＳＰ２１、ステップＳＰ２２は、図１７について上述したステップＳＰ３、ステップＳＰ４に対応する。
【００２４】
これに対してステップＳＰ２１で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ２１からステップＳＰ２３に移る。このステップＳＰ２３において、動的ビット割当て部４は、変数min chで特定されるチャンネルの、変数min sbで特定されるサブバンド信号に割り当てるビット数（alloc bit ）を計算する。
【００２５】
また動的ビット割当て部４は、続くステップＳＰ２４において、それまでビット割り当ての完了したトータルビット数（alloc bit total ）にステップＳＰ２３で計算したビット数（alloc bit ）を加算し、加算値（alloc bit total ＋alloc bit ）が、全体の割り当て可能ビット数(total bit) より小さいか否か判断する。
【００２６】
このステップＳＰ２４で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ２５に移り、加算値（alloc bit total ＋alloc bit ）をビット割り当ての完了したトータルビット数（alloc bit total ）に設定する。また変数min で特定されるチャンネルの、変数sbで特定されるサブバンド信号のビット割り当て数を、ステップＳＰ２３で計算したビット数だけを増量させ、量子化ステップを１段階だけ小さくする。またこのサブバンド信号のＭＮＲを再計算し、該当サブバンド信号へのビット割り当て数を値１だけ減少させる。
【００２７】
続いて動的ビット割当て部４は、ステップＳＰ２６に移り、該当サブバンド信号の割り当て済のビット数が、１つのサブバンド信号に割り当て可能なビット数を越えたか否か判断し、ここで否定結果が得られると、ステップＳＰ２６からステップＳＰ１３に戻る。これに対してステップＳＰ２６で否定結果が得られると、ステップＳＰ２６からステップＳＰ２７に移り、該当サブバンド信号をビット割り当て完了に設定してステップＳＰ１３に戻る。またステップＳＰ２４で否定結果が得られると、この場合も、ステップＳＰ２４からステップＳＰ２７に移り、該当サブバンド信号をビット割り当て完了に設定してステップＳＰ１３に戻る。
【００２８】
動的ビット割当て部４は、このステップＳＰ２３〜ＳＰ２７の処理によって、ステップＳＰ１３〜ＳＰ２０の処理によって検出したＭＮＲが最小値のサブバンド信号にビットを割り当て、従ってこのステップＳＰ２３〜ＳＰ２７が、図１７のステップＳＰ４に対応することになる。
【００２９】
このような符号化処理に関しては、特開平８−１２３４８８号公報等に種々の工夫が提案されている。
【００３０】
ところで評価基準を逐次計算しながら各サブバンド信号にビット割り当てする場合、１つのサブバンド信号にビット割り当てする毎に、全てのサブバンド信号のＭＮＲを検索して最小値を検出し直すことになる。従って、従来の符号化処理では、処理の負担が大きい問題があった。
【特許文献１】特開平８−１２３４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００３１】
本発明は以上の点を考慮してなされたもので、心理聴覚分析に基づいてオーディオ信号を符号化処理する場合に、従来に比して処理の負担を軽減することができるオーディオ信号符号化方法、オーディオ信号符号化方法のプログラム、オーディオ信号符号化方法のプログラムを記録した記録媒体及びオーディオ信号符号化装置を提案しようとするものである。
【課題を解決するための手段】
【００３２】
上記の課題を解決するため請求項１の発明は、オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化方法に適用して、前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算する評価基準計算ステップと、前記評価基準をソートするソートステップと、ビット割り当てステップと、評価基準再計算ステップと、再ソートステップとの繰り返しにより、前記複数のサブバンド信号に前記ビットを割り当てる繰り返し処理ステップとを有し、前記ビット割り当てステップが、前記ソートステップのソート結果又は前記再ソートステップのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当てる処理であり、前記評価基準再計算ステップが、前記ビット割り当てステップでビットを割り当てた前記サブバンド信号の前記評価基準を再計算する処理であり、前記再ソートステップが、前記評価基準再計算ステップで計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートする処理であり、前記再ソートステップは、直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする。
【００３３】
また請求項５の発明は、演算処理手段による実行により、オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化方法のプログラムに適用して、前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算する評価基準計算ステップと、前記評価基準をソートするソートステップと、ビット割り当てステップと、評価基準再計算ステップと、再ソートステップとの繰り返しにより、前記複数のサブバンド信号に前記ビットを割り当てる繰り返し処理ステップとを有し、前記ビット割り当てステップが、前記ソートステップのソート結果又は前記再ソートステップのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当てる処理であり、前記評価基準再計算ステップが、前記ビット割り当てステップでビットを割り当てた前記サブバンド信号の前記評価基準を再計算する処理であり、前記再ソートステップが、前記評価基準再計算ステップで計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートする処理であり、前記再ソートステップは、直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする。
【００３４】
また請求項６の発明は、演算処理手段による実行により、オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化方法のプログラムを記録した記録媒体に適用して、前記オーディオ信号符号化方法のプログラムは、前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算する評価基準計算ステップと、前記評価基準をソートするソートステップと、ビット割り当てステップと、評価基準再計算ステップと、再ソートステップとの繰り返しにより、前記複数のサブバンド信号に前記ビットを割り当てる繰り返し処理ステップとを有し、前記ビット割り当てステップが、前記ソートステップのソート結果又は前記再ソートステップのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当てる処理であり、前記評価基準再計算ステップが、前記ビット割り当てステップでビットを割り当てた前記サブバンド信号の前記評価基準を再計算する処理であり、前記再ソートステップが、前記評価基準再計算ステップで計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートする処理であり、前記再ソートステップは、直前の前記ビット割り当てステップでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする。
【００３５】
また請求項７の発明は、オーディオ信号を複数のサブバンド信号に分割し、心理聴覚分析に基づいて前記サブバンド信号にビットを割り当てて、前記オーディオ信号を符号化処理するオーディオ信号符号化装置に適用して、前記心理聴覚分析に基づいて、前記ビットを割り当てるための評価基準を前記サブバンド信号毎に計算し、前記評価基準をソートし、ビット割り当てと、前記評価基準の再計算と、再ソートとを繰り返して、前記複数のサブバンド信号に前記ビットを割り当て、前記ビット割り当てにおいて、前記ソートのソート結果又は前記再ソートのソート結果に基づいて、前記複数のサブバンド信号から１つのサブバンド信号を選択してビットを割り当て、前記評価基準の再計算において、前記ビット割り当てでビットを割り当てた前記サブバンド信号の前記評価基準を再計算し、前記再ソートにおいて、前記評価基準の再計算で計算した前記評価基準を対応するサブバンド信号に適用して、前記評価基準をソートし、前記再ソートでは、直前の前記ビット割り当てでビットの割り当てに使用したソート結果の部分的な配列の変更によって前記評価基準をソートする。
【００３６】
請求項１、請求項５、請求項６又は請求項７の構成によれば、ビット割り当ての評価基準を事前にソートしてビット割り当てのサブバンド信号を検出するようにして、再計算した評価基準をソートする場合には、直前のソート結果の部分的な配列の変更により評価基準をソートすることができ、従来に比して簡易な処理によりビット割り当てするサブバンド信号を検出することができる。従って心理聴覚分析に基づいてオーディオ信号を符号化処理する場合に、従来に比して処理の負担を軽減することができる。
【発明の効果】
【００３７】
本発明によれば、心理聴覚分析に基づいてオーディオ信号を符号化処理する場合に、従来に比して処理の負担を軽減することができる。
【発明を実施するための最良の形態】
【００３８】
以下、適宜図面を参照しながら本発明の実施例を詳述する。
【実施例１】
【００３９】
（１）実施例の構成
図１は、図１７との対比により本発明の実施例１のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。この実施例１のエンコーダは、この動的ビット割当て部４の処理手順が異なる点を除いて、図１６について上述したエンコーダと同一に構成される。従って以下の説明では、適宜、図１６の構成を流用して説明する。
【００４０】
この動的ビット割当て部４は、オーディオ信号Ｓ１に設定されたブロック毎に、この処理手順を実行し、各サブバンド信号にビットを割り当てる。ここで動的ビット割当て部４は、この処理手順を開始すると、図１７について上述したと同様にして、各サブバンド信号のＭＮＲを計算する。またステップＳＰ４１からステップＳＰ４２に移り、この計算したＭＮＲを値の小さい順にソートする。
【００４１】
ここで図２に示すように、動的ビット割当て部４は、図示しないメモリに一定の領域を確保して、全チャンネルの全サブバンド信号について、ＭＮＲ（p mur （図２（Ｂ））、このＭＮＲが検出されたチャンネル、サブバンド信号を特定するインデックスindex （図２（Ａ））、このインデックスindexに対する処理の状況を示すステータスused（図２（Ｃ））の組み合わせをＭＮＲでソートしてこのメモリに格納する。なおここでステータス（used）は、値０でビットを割り当てていない状態を示し、値１でビットを割り当てている状態を示し、値２でビットの割り当てを完了した状態を示す。またこの一定の領域は、全チャンネルの全サブバンド信号についてこれらインデックスindex 、ステータスused、ＭＮＲの組み合わせをメモリに格納して、後述するステップＳＰ４４の処理を繰り返すのに十分な空き領域を有するように設定される。
【００４２】
従って図２の例では、メモリ空間の変数no＝０で特定される先頭領域に、index ＝４、p mur ＝２０、used＝０の組み合わせが格納されていることになる。また以下において、メモリに記録したＭＮＲ、このＭＮＲが検出されたチャンネル、サブバンド信号を特定するインデックスindex 、このＭＮＲの処理の状況を示すステータスusedの組み合わせを、適宜、ＭＮＲの組み合わせと呼ぶ。なおここで変数noは、ＭＮＲの組み合わせを特定する変数である。
【００４３】
続いて動的ビット割当て部４は、ステップＳＰ４３に移り、ソート結果の先頭に記録された最も値の小さなＭＮＲを検出する。またこの検出したＭＮＲのインデックスindex に基づいて、対応するチャンネルのサブバンド信号にビットを割り当てた後、このビットを割り当てたサブバンド信号のＭＮＲを再計算する。
【００４４】
続いて動的ビット割当て部４は、ステップＳＰ４４に移り、割り当て可能なビットの全てのビットの割り当てを完了したか否か判断し、ここで否定結果が得られると、ステップＳＰ４５に移る。このステップＳＰ４５において、動的ビット割当て部４は、ステップＳＰ４４で再計算したＭＮＲを適用して、メモリに記録したＭＮＲを改めてソートする。
【００４５】
ここで図３に示すようにこのステップＳＰ４４におけるソートの処理において、動的ビット割当て部４は、それまでのソート結果の部分的な配列の変更により、ＭＮＲをソートする。すなわち動的ビット割当て部４は、ソート結果を記録したメモリ上で、再計算したＭＮＲより値の小さなＭＮＲが検出されるまで、矢印により示すように、それまでのソート結果の組み合わせを末尾側に順次移動させる。また再計算したＭＮＲより値の小さなＭＮＲが検出されると、移動により空き領域となった領域に、再計算したＭＮＲの組み合わせを記録する。従って図３の例は、メモリ空間の先頭領域に格納されているindex ＝４のサブバンド信号にビットを割り当てて再計算によりＭＮＲが値４４となった場合であり、no＝７〜９までの組み合わせの記録を末尾側に１つずつ移動し、この移動によって空き領域となったno＝７に、再計算結果が記録される場合である。またハッチングにより示すように、動的ビット割当て部４は、ＭＮＲを再計算してソートすると、再計算前のＭＮＲの記録を以降の処理対象から除外する。
【００４６】
動的ビット割当て部４は、ステップＳＰ４５の処理を完了すると、ステップＳＰ４３に戻り、ステップＳＰ４５でソートしたソート結果から、処理対象の先頭に記録された最も値の小さなＭＮＲを検出する。従って図３の例では、no＝１で特定されるindex ＝９のＭＮＲが最も値の小さなＭＮＲとして検出されることになる。従ってこの場合、動的ビット割当て部４は、ステップＳＰ４３で、このindex ＝９のサブバンド信号に対してビットを割り当ててＭＮＲを再計算した後、続くステップＳＰ４５で、図４に示すように、さらにＭＮＲをソートする。なおこの図４は、index ＝９のサブバンド信号について、再計算で値３２のＭＮＲが求められた場合である。なお後述するように、ステップＳＰ４３によりビットを割り当てた結果、このビット割り当てたサブバンド信号へのビット割り当てが完了した場合、動的ビット割当て部４は、ステップＳＰ４５の処理を省略してステップＳＰ４３の処理を繰り返す。
【００４７】
図５は、この図１の処理手順におけるステップＳＰ４２を関連する処理と共に詳細に示すフローチャートである。動的ビット割当て部４は、この処理手順の開始により、例えば１ビットで量子化した場合のＭＮＲを各サブバンド信号で計算し、ステップＳＰ５１からステップＳＰ５２に移る。
【００４８】
このステップＳＰ５２において、動的ビット割当て部４は、ビット割り当ての完了したビット数を示すトータルビット数（alloc bit total ）を値０に初期化する。なお以下においては、従来例との表現の統一を図るため、インデックスindex は、ch＝index ／last sb 、sb＝index ％last sb とする。従ってp mnr[index]は、mnr[ch][sb] と同じ値を指す。なおここで％は、余りを求めるモジュロ計算であり、ch、sbは、チャンネル及びサブバンド信号を特定する変数である。
【００４９】
続いて動的ビット割当て部４は、ステップＳＰ５３に移り、変数no、変数sort numを値０にそれぞれ初期化する。なおここで変数sort numは、ソートする数を示す変数である。また変数noは、この図５に示す処理においては、ソート対象を特定する。
【００５０】
続いて動的ビット割当て部４は、ステップＳＰ５４に移り、全チャンネル数last ch 、全サブバンド数last sb の乗算値last ch ×last sb より変数noの値が小さいか否か判断し、全てのソート対象の処理を未だ終了していないか否か判断する。
【００５１】
このステップＳＰ５４で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ５５に移る。ここで動的ビット割当て部４は、変数noをチャンネル及びサブバンド信号を特定する変数ch、変数sbに変換する。
【００５２】
また続くステップＳＰ５６において、変数chで特定されるチャンネルの、変数sbで特定されるサブバンド信号のステータスused〔ch〕〔sb〕を判定し、このサブバンド信号へのビット割り当てが完了しているか否か判断する。
【００５３】
このステップＳＰ５６で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ５７に移る。ここで動的ビット割当て部４は、それまでメモリに格納されているＭＮＲの組み合わせの末尾に続く領域sort numに、変数noで特定されるＭＮＲの組み合わせを格納する。なおここでorder 〔ｘ〕＝ｙは、メモリ空間上の先頭側からｘ番目の領域に、no＝ｙで特定される組み合わせを格納し、またこれとは逆に、メモリ空間上の先頭側からｘ番目の領域に、no＝ｙで特定される組み合わせをロードする意味である。ここでこの実施例では、このステップＳＰ５７でメモリに格納したＭＮＲの組み合わせがソート対象となる。また動的ビット割当て部４は、このソート対象との比較対象をメモリ空間上の記録順序で特定する変数m をsort num−１にセットし、ソート対象の１つ前に記録されているＭＮＲの組み合わせを比較対象に設定する。またソート数の変数sort numを値１だけインクリメントする。このステップＳＰ５７の処理により、動的ビット割当て部４は、ソートを準備する。
【００５４】
続いて動的ビット割当て部４は、ステップＳＰ５８に移り、変数m が値０より大きいか否か判断する。ここでソート対象がメモリ空間上で先頭に記録されたＭＮＲの組み合わせである場合、この組み合わせの前にはＭＮＲの組み合わせが記録されていないことから、比較対象が存在しないことになる。また末尾側から先頭側に順次比較対象を切り換えて、比較対象が先頭のＭＮＲの組み合わせとなった後は、比較対象が存在しないことになる。従ってこれらの場合、動的ビット割当て部４は、このステップＳＰ５８で否定結果が得られ、ステップＳＰ５８からステップＳＰ５９に移る。
【００５５】
このステップＳＰ５９において、動的ビット割当て部４は、ソート対象の組み合わせをメモリ空間の先頭に記録する（order[0]＝no）。
【００５６】
続いて動的ビット割当て部４は、ステップＳＰ６０に移り、変数noを値１だけインクリメントし、ステップＳＰ５４に戻る。
【００５７】
これに対してステップＳＰ５８で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ６１に移る。ここで動的ビット割当て部４は、変数noで特定される組み合わせのＭＮＲ（p mnr[no] ）が、変数m で特定される組み合わせのＭＮＲ（p mnr[order[m]]）より小さいか否か、すなわちソート対象のＭＮＲが比較対象のＭＮＲより小さいか否か判断する。
【００５８】
ここで肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ６２に移り、比較対象のメモリ空間上の記録を１つ末尾側に移動させる（order 〔m+1 〕＝order 〔m 〕）。また変数m を値１だけデクリメントし、比較対象を１つ前に記録された組み合わせに切り換え、ステップＳＰ５８に戻る。
【００５９】
これに対してステップＳＰ６１で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ６１からステップＳＰ６３に移り、比較対象の移動前の記録位置に、ソート対象の組み合わせを記録し（order 〔m+1 〕＝no）、ステップＳＰ６０に移る。
【００６０】
動的ビット割当て部４は、このステップＳＰ５３〜ＳＰ６３の処理によって、ＭＮＲの組み合わせを順次、メモリ空間に格納する。またこのとき１つの組み合わせをメモリに格納する毎に、図３について上述したと同様に、この格納するＭＮＲより値の小さなＭＮＲが検出されるまで、このメモリ空間上で、格納済の組み合わせを末尾側に順次移動させ、その結果発生する空き領域にＭＮＲの組み合わせを格納し、ソートの処理を実行する。
【００６１】
動的ビット割当て部４は、ソートの処理を完了すると、ステップＳＰ５４で否定結果が得られ、ステップＳＰ４３に移る。
【００６２】
図６は、図１のステップＳＰ４３、ＳＰ４４、ＳＰ４６の処理手順を詳細に示すブロック図である。なおこの図１では、ステップＳＰ４３に続いてステップＳＰ４４の処理を実行するように設定されているものの、図１は、理解を容易とするために、便宜的に処理手順を記載したもであり、実際にはこの図６に示す順序で実行される。すなわち動的ビット割当て部４は、この処理手順を開始すると、ステップＳＰ７１に移り、ここで変数noを値０に初期化する。
【００６３】
続いて動的ビット割当て部４は、ステップＳＰ７２に移り、ここで変数noの値がソート数sort num より小さいか否か判断し、処理の終了か否か判断する。ここで変数noがソート数sort num より大きい場合、動的ビット割当て部４は、ステップＳＰ７２からステップＳＰ７３に移ってこの処理手順を終了する。従ってステップＳＰ７２、ステップＳＰ７３は、図１について上述したステップＳＰ４４、ステップＳＰ４３に対応することになる。
【００６４】
これに対して変数noの値がソート数sort num より小さい場合、動的ビット割当て部４は、ステップＳＰ７２からステップＳＰ７４に移る。ここで動的ビット割当て部４は、メモリ空間上で変数noで特定される組み合わせのインデックスindex を検出し（index = order[no] ）、このインデックスindex をチャンネル、サブバンド信号を特定する変数min ch、min sbに変換する（min ch = index／ last sb; min sb = index％ last sb）。従ってこの場合、処理対象のうちで、ソートされてメモリ空間の先頭領域に記録されている最も値の小さなＭＮＲのチャンネル、サブバンド信号が検出されることになる。
【００６５】
続いて動的ビット割当て部４は、ステップＳＰ７５に移り、ステップＳＰ７４で検出したインデックスindex の組み合わせに設定されたステータスused[min ch][min sb]を判定し、このインデックスindex のサブバンド信号がビット割り当て完了か否か判断する。
【００６６】
このステップＳＰ７５で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ７５からステップＳＰ７６に移り、変数noを値１だけインクリメントし、ステップＳＰ７２に戻る。これに対してステップＳＰ７５で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ７５からステップＳＰ７７に移る。
【００６７】
従って動的ビット割当て部４は、このステップＳＰ７１−ＳＰ７２−ＳＰ７３−ＳＰ７４−ＳＰ７５の処理を実行して、またステップＳＰ７５で肯定結果が得られると、さらにステップＳＰ７６−ＳＰ７２−ＳＰ７４−ＳＰ７５の処理を実行して、処理対象としてメモリに記録された組み合わせの中から、ビット割り当てが完了していない組み合わせであって、かつ最先に記録されているＭＮＲの最も小さな組み合わせを検出する。
【００６８】
またＭＮＲの最も小さな組み合わせを検出すると、動的ビット割当て部４は、ステップＳＰ７５からステップＳＰ７７に移り、ステップＳＰ７４で検出した、このＭＮＲの最も小さな組み合わせのサブバンド信号に割り当てるビット量（alloc bit ）を計算する。また続くステップＳＰ７８で、この計算したビット量（alloc bit ）をトータルビット数（alloc bit total ）に加算し、加算値（alloc bit total ＋alloc bit ）が、全体の割り当て可能ビット数(total bit) より小さいか否か判断する。
【００６９】
このステップＳＰ７８で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ７９に移り、加算値（alloc bit total ＋alloc bit ）をビット割り当ての完了したトータルビット数（alloc bit total ）に設定する。また変数noで特定される組み合わせのステータスusedを、ビットを割り当てている状態を示す値１に設定する。また変数noで特定される組み合わせのサブバンド信号のビット割り当て数に、ステップＳＰ７７で計算したビット数を加算し、ＭＮＲを再計算する。また変数min chで特定されるチャンネルの、変数min sbで特定されるサブバンド信号の量子化ステップを１段階だけ小さくする。また該当サブバンド信号へのビット割り当て数を値１だけ減少させる。
【００７０】
続いて動的ビット割当て部４は、ステップＳＰ８０において、この変数noで特定される組み合わせのサブバンド信号について、割り当て済みのビット数が、１つのサブバンド信号に割り当て可能なビット数を越えたか否か判断し、該当サブバンド信号へのビットの割り当てが完了したか否か判断する。
【００７１】
このステップＳＰ８０で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ８１に移り、ステップＳＰ７９でステータスusedを値１に設定した組み合わせについて、さらにビット割り当てを完了したことを示す値２にステータスusedを変更し、ステップＳＰ７６に戻る。
【００７２】
従って動的ビット割当て部４は、ステップＳＰ７９でビットを割り当てたサブバンド信号へのビットの割り当てが完了した場合、ステップＳＰ８１からステップＳＰ７６に移ることから、図４との対比により図７に示すように、この場合、ソートの処理を実行することなく、続いて値の小さなＭＮＲのサブバンド信号にビット割り当て処理を実行してソートの回数を低減する。なおこの図７は、インデックスindex ＝５のサブバンド信号が最もＭＮＲが小さなサブバンド信号として検出されて、このサブバンド信号へのビット割り当てを完了した場合である。この場合、このインデックスindex ＝５のサブバンド信号については、ソートされることなく、続くインデックスindex ＝８のサブバンド信号にビットが割り当てられることになる。
【００７３】
図８は、図１のステップＳＰ４５の処理を詳細に示すフローチャートである。ここで動的ビット割当て部４は、この処理手順を開始すると、ステップＳＰ８４に移り、直前のステップＳＰ７９でビット割り当てしたサブバンド信号の組み合わせを、メモリに格納されているＭＮＲの組み合わせの末尾に続く領域sort numに格納する（order 〔sort num〕＝index ）。また動的ビット割当て部４は、この末尾に続いて格納した組み合わせをソート対象に設定する。また比較対象を特定する変数m をsort num−１にセットし、ソート対象の１つ前に記録されているＭＮＲの組み合わせを比較対象に設定する。また続いて変数sort numを値１だけインクリメントする。
【００７４】
続いて動的ビット割当て部４は、ステップＳＰ８５に移り、変数m が値no＋１より大きいか否か判断する。ここで末尾側から先頭側に順次比較対象を切り換えて、比較対象が処理対象の先頭のＭＮＲの組み合わせとなった後は、比較対象が存在しないことになる。従ってこの場合、動的ビット割当て部４は、このステップＳＰ８５で否定結果が得られ、ステップＳＰ８５からステップＳＰ８６に移る。
【００７５】
このステップＳＰ８６において、動的ビット割当て部４は、ソート対象の組み合わせをメモリ空間のno＋１番目に記録する（order[no＋１]＝index ）。なおこの組み見合せのＭＮＲはステップＳＰ７９で再計算したＭＮＲである。なおこのステップＳＰ８６において、直前のステップＳＰ８０で肯定結果の得られたビット割り当ての完了したサブバンド信号を、以降のソート処理の比較対象に含めないように、このソート対象の組み合わせの記録位置（order[ ]）を設定すると共に、変数sort numを設定すれば、一段と処理の負担を軽減することができる。
【００７６】
続いて動的ビット割当て部４は、ステップＳＰ８７に移り、変数noを値１だけインクリメントし、ステップＳＰ７２（図６）に戻る。
【００７７】
これに対してステップＳＰ８５で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ８８に移る。ここで動的ビット割当て部４は、インデックスindex で特定されるソート対象のＭＮＲ（p mnr[index]）が、変数m で特定される組み合わせのＭＮＲ（p mnr[order[m]] ）より小さいか否か判断する。
【００７８】
ここで肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ８９に移り、比較対象のメモリ空間上の記録を１つ末尾側に移動させる（order 〔m+1 〕＝order 〔m 〕）。また変数m を値１だけデクリメントし、比較対象を１つ前に記録された組み合わせに切り換え、ステップＳＰ８５に戻る。
【００７９】
これに対してステップＳＰ８８で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ８８からステップＳＰ９０に移り、比較対象の記録位置に、ソート対象の組み合わせを記録し（order 〔m+1 〕＝index ）、ステップＳＰ８７に移る。
【００８０】
（２）実施例の動作
以上の構成において、この実施例のエンコーダでは（図１６参照）、順次入力されるオーディオ信号Ｓ１がサブバンド分析フィルタバンク２で複数のサブバンド信号に分割され、各サブバンド信号が線形量子化器３で量子化される。またこの量子化処理結果がビット圧縮部１１でビット圧縮された後、ビットストリーム形成部５でビットストリームＳ２に変換されて出力される。またオーディオ信号Ｓ１は、高速フーリエ変換部８で高速フーリエ変換処理され、この高速フーリエ変換処理結果が心理聴覚モデル部９で解析されて、各サブバンド信号のＳＭＲ（信号対マスク比）が検出される。オーディオ信号Ｓ１は、動的ビット割当て部４において、この信号対マスク比ＳＭＲから各サブバンド信号のＭＮＲ（マスク対雑音比）が求められ、このＭＮＲに基づいて、各サブバンド信号へのビット割り当て、量子化スケールが求められ、このビット割り当て、量子化スケールで線形量子化器３で量子化処理が実行される。
【００８１】
この動的ビット割当て部４におけるビット割り当ての処理は、ビットを割り当てる複数のサブバンド信号の中から、最も値の小さいなＭＮＲのサブバンド信号を検出する処理と、この検出したサブバンド信号にビットを割り当ててＭＮＲを再計算する処理とを繰り返して、割り当て可能な全てのビットを各チャンネルの各サブバンド信号に割り当てて実行される。またこのビット割り当てに対応するように、各サブバンド信号の量子化スケールが設定される。
【００８２】
この実施例では、動的ビット割当て部４において（図１）、初めにＭＮＲの小さい順に各サブバンドのＭＮＲがソートされ、このソート結果の先頭に記録されたＭＮＲのサブバンド信号にビットが割り当てられる（図２）。またこのビットを割り当てたサブバンド信号のＭＮＲが再計算されてソートし直され（図３）、このソートし直した先頭に記録されたＭＮＲのサブバンド信号にビットが割り当てられる。動的ビット割当て部４において、このＭＮＲを再計算してソートし直す処理と、ソートし直した先頭に記録されたＭＮＲのサブバンド信号にビットが割り当てる処理とが繰り返されて、全てのビットが各チャンネルの各サブバンド信号に割り当てられる。
【００８３】
従って動的ビット割当て部４では、それぞれ事前にソートしてビット割り当てするサブバンド信号を検出することから、従来に比して、迅速にビット割り当てするサブバンド信号を検出することができる。
【００８４】
すなわちオーディオ信号Ｓ１は、最初に初期設定によるＭＮＲが計算され、この計算したＭＮＲが、インデックスindex 、ステータスusedとの組み合わせにより１つずつメモリに格納されてソートされる（図５）。
【００８５】
このときこのＭＮＲの組み合わせは、既にメモリに格納されているＭＮＲの組み合わせ列の末尾に格納されて（ステップＳＰ５７（図５））、より値の小さなＭＮＲが検出されるまで、直前に格納されている組み合わせとの間で配列の順序が入れ換えられ（ステップＳＰ５８−ＳＰ６１−ＳＰ６２−ＳＰ５８−……−ＳＰ５８−ＳＰ６１−ＳＰ６３又はステップＳＰ５８−ＳＰ６１−ＳＰ６２−ＳＰ５８−……−ＳＰ５８−ＳＰ５９（図５））、ソートされる。
【００８６】
またこのソートによって、先頭に格納されているＭＮＲの組み合わせが値の最も小さなＭＮＲの組み合わせとなり、この先頭の組み合わせのチャンネル、サブバンド信号にビットが割り当てられる（ステップＳＰ７１、ＳＰ７４−ＳＰ７５−ＳＰ７７（図６））。
【００８７】
また再計算したＭＮＲについても、メモリに格納済の対応するＭＮＲが処理対象より除外されて、既にメモリに格納されているＭＮＲの組み合わせ列の末尾に格納され（ステップＳＰ８４（図８））、より値の小さなＭＮＲが検出されるまで、直前に格納されている組み合わせとの間で配列の順序が入れ換えられてソートされる（ステップＳＰ８５−ＳＰ８８−ＳＰ８９−ＳＰ８８−……−ＳＰ８５−ＳＰ８８−ＳＰ８７又はステップＳＰ８５−ＳＰ８８−ＳＰ８９−ＳＰ８８−……−ＳＰ８５−ＳＰ９０（図８））。
【００８８】
またこの再計算したＭＮＲについてのソートによって、先頭に格納されているＭＮＲの組み合わせが値の最も小さなＭＮＲの組み合わせとなり、この先頭の組み合わせのチャンネル、サブバンド信号にビットが割り当てられる（ステップＳＰ７１、ＳＰ７４−ＳＰ７５−ＳＰ７７（図６））。
【００８９】
従ってソート結果の先頭の組み合わせについて、サブバンド信号へのビット割り当てが完了している場合には、ソート結果の続く組み合わせのサブバンド信号にビット割り当てすればよいことから（ステップＳＰ５６−ＳＰ６０−ＳＰ５４−ＳＰ５５−ＳＰ５６−ＳＰ５７（図５））、処理が進むに従ってソートの回数を少なくすることができビット割り当て可能なサブバンド信号について、最小のＭＮＲを検出する処理を簡略化することができる。
【００９０】
ところで事前にＭＮＲをソートして迅速に最小のＭＮＲを検出できるようにしても、この実施例では、ＭＮＲをソートしていることから、全体として見たときに処理の負担は従来と変わらないように思われる。しかしながらこの実施例では、再計算したＭＮＲをソートする場合は、既にメモリに格納されているソート結果の末尾に、再計算したＭＮＲの組み合わせを格納した後、より値の小さなＭＮＲが検出されるまで、直前に格納されている組み合わせとの間で配列の順序を入れ換えてソートすることから、それまでのソート結果を有効に利用して、それまでのソート結果の部分的な配列の変更によりＭＮＲをソートすることになる。従って全体として見たときに、従来に比して処理の負担を軽減することができる。実際上、この実施例のようにソート処理してビット割り当てしたところ、従来例により処理する場合に比して、エンコーダ全体としての処理量を５２〔％〕、低減することができた。
【００９１】
（３）実施例の効果
以上の構成によれば、事前にＭＮＲをソートして、ビット割り当てするサブバンド信号を検出するようにして、再計算したＭＮＲをソートする場合は、既にメモリに格納されているＭＮＲの組み合わせ列の末尾に、再計算したＭＮＲの組み合わせを格納した後、より値の小さなＭＮＲが検出されるまで、直前に格納されている組み合わせとの間で配列の順序を入れ換えてソートすることから、それまでのソート結果を有効に利用して、それまでのソート結果の部分的な配列の変更によりＭＮＲをソートすることができる。従って従来に比して処理の負担を軽減することができる。
【実施例２】
【００９２】
図９は、図１との対比により、本発明の実施例２のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。この実施例１のエンコーダは、この動的ビット割当て部４の処理手順が異なる点を除いて、図１６について上述したエンコーダと同一に構成される。従って以下の説明では、適宜、図１６の構成を流用して説明する。また動的ビット割当て部４は、ステップＳＰ１００の再ソートの処理が異なる点を除いて、図１について上述したエンコーダと同一に構成される。従って、以下の説明において、実施例１について上述した動的ビット割当て部４と同一の処理は、対応する符号を付して示し、重複した説明は省略する。
【００９３】
従って動的ビット割当て部４は、実施例１の動的ビット割当て部４と同一に、この処理手順を開始すると、ステップＳＰ９９からステップＳＰ４２に移り、各サブバンド信号のＭＮＲを、インデックスindex 等と共にソートしてメモリに格納する。また続くステップＳＰ４３で、最も値の小さなＭＮＲのサブバンド信号にビット割り当てし、このビット割り当てしたサブバンド信号のＭＮＲを再計算する。また続くステップＳＰ４４で、割り当て可能なビットを全て割り当てたか否か判断し、ここで否定結果が得られると、ステップＳＰ４４からステップＳＰ１００に移る。
【００９４】
このステップＳＰ１００において、動的ビット割当て部４は、ステップＳＰ４４で再計算したＭＮＲを適用して、メモリに記録したＭＮＲを改めてソートする。
【００９５】
ここでこのステップＳＰ４４におけるソートの処理において、動的ビット割当て部４は、それまでのソート結果の部分的な配列の変更により、ＭＮＲをソートする。このとき図３との対比により図１０に示すように、動的ビット割当て部４は、ソート結果を記録したメモリ上で、再計算したＭＮＲより値の大きなＭＮＲが検出されるまで、矢印により示すように、それまでのソート結果の組み合わせを先頭側に順次移動させる。また再計算したＭＮＲより値の大きなＭＮＲが検出されると、移動により空き領域となった領域に、再計算したＭＮＲの組み合わせを記録する。従って図１０の例は、メモリ空間の先頭領域に格納されているindex ＝４のサブバンド信号にビットを割り当てて再計算によりＭＮＲが値４４となった場合であり、no＝１〜６までの組み合わせの記録を先頭側に移動し、この移動によって空き領域となったno＝６に、再計算結果を記録する場合である。
【００９６】
動的ビット割当て部４は、ステップＳＰ１００の処理を完了すると、ステップＳＰ４３に戻り、ステップＳＰ４３でソートしたソート結果から、処理対象の先頭に記録された最も値の小さなＭＮＲを検出する。従って図１０の例では、続いてno＝０で特定されるindex ＝９のＭＮＲが最も値の小さなＭＮＲとして検出されることになる。従ってこの場合、動的ビット割当て部４は、ステップＳＰ４３で、このindex ＝９のサブバンド信号に対してビットを割り当ててＭＮＲを再計算した後、続くステップＳＰ１００で、図１１に示すように、さらにＭＮＲをソートする。なおこの図１１は、index ＝９のサブバンド信号について、再計算で値３２のＭＮＲが求められた場合である。
【００９７】
図１２は、この図９の処理手順におけるステップＳＰ１００を詳細に示すフローチャートである。ここで動的ビット割当て部４は、この処理手順を開始すると、ステップＳＰ１０１に移り、直前のステップＳＰ４３でビット割り当てしたサブバンド信号の組み合わせをソート対象に設定する（order 〔no〕＝index）。また比較対象を特定する変数m をno＋１にセットし、ソート対象の１つ後に記録されているＭＮＲの組み合わせを比較対象に設定する。
【００９８】
続いて動的ビット割当て部４は、ステップＳＰ１０２に移り、変数m が値sort numより小さいか否か判断する。ここで先頭側から末尾側に順次比較対象を切り換えて、比較対象が最後尾の先頭のＭＮＲの組み合わせとなった後は、比較対象が存在しないことになる。従ってこの場合、動的ビット割当て部４は、このステップＳＰ１０２で否定結果が得られ、ステップＳＰ１０２からステップＳＰ１０３に移る。
【００９９】
このステップＳＰ１０３において、動的ビット割当て部４は、ソート対象の組み合わせをメモリ空間の末尾に格納し（order[sort num-1]＝index ）、ステップＳＰ４３に戻る。
【０１００】
これに対してステップＳＰ１０２で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ１０４に移る。ここで動的ビット割当て部４は、インデックスindex で特定されるソート対象のＭＮＲ（p mnr[index]）が、変数m で特定される組み合わせのＭＮＲ（p mnr[order[m]] ）より小さいか否か判断する。
【０１０１】
ここで肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ１０５に移り、比較対象のメモリ空間上の記録を１つ先頭側に移動させる（order 〔m-1 〕＝order 〔m 〕）。また変数m を値１だけインクメントし、比較対象を１つ後に記録された組み合わせに切り換え、ステップＳＰ１０２に戻る。
【０１０２】
これに対してステップＳＰ１０４で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ１０４からステップＳＰ１０６に移り、比較対象の移動前の記録位置に、ソート対象の組み合わせを記録し（order 〔m 〕＝index ）、ステップＳＰ４３に移る。
【０１０３】
この実施例のように、再ソートの処理をＭＮＲの値の小さい側から実行するようにしても、実施例１と同様の効果を得ることができる。
【実施例３】
【０１０４】
ところで心理聴覚分析に基づいてビット割り当てして符号化処理した場合、オーディオ信号の周波数特性によっては、図１３に示すように、高域側において、特定のサブバンド信号Ｂ１、Ｂ２でビット割り当てが全く行われずに、それより高域のサブバンド信号Ｂ３、Ｂ４にビットが割り当てられる場合が発生する。特に、低ビットレートで符号化処理する場合には、この図１３に示すような状況が発生し易い。種々に検討した結果によれば、このように高域側において、特定のサブバンド信号Ｂ１、Ｂ２でビット割り当てが全く行われずに、それより高域のサブバンド信号Ｂ３、Ｂ４にビットが割り当てられると、復号化したオーディオ信号の音質が劣化することが判った。
【０１０５】
このためこの実施例では、図１３との対比により図１４に示すように、このような音質劣化の原因となるサブバンド信号Ｂ３、Ｂ４を検出し、矢印により示すように、このサブバンド信号Ｂ３、Ｂ４に割り当てたビットを他のサブンバンド信号に振り分ける。
【０１０６】
ここで図１５は、本発明の実施例３のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。この実施例１のエンコーダは、この動的ビット割当て部４の処理手順が異なる点を除いて、図１６について上述したエンコーダと同一に構成される。従って以下の説明では、適宜、図１６の構成を流用して説明する。
【０１０７】
動的ビット割当て部４は、オーディオ信号Ｓ１のブロック毎に、この処理手順を実行する。動的ビット割当て部４は、この処理手順を開始すると、ステップＳＰ１２１からステップＳＰ１２２に移り、図１又は図９の処理手順の実行により、各サブバンド信号へのビット割り当てを計算する。
【０１０８】
続いて動的ビット割当て部４は、ステップＳＰ１２３に移り、音質劣化の原因となるサブバンド信号へのビット割り当てが存在するか否か判断する。ここで動的ビット割当て部４は、一定周波数以上の帯域で、周波数の低い側の帯域のサブバンド信号にビット割り当てが無く、周波数の高い側の帯域のサブバンド信号にビット割り当てが存在し、さらにこの高い側の帯域のサブバンド信号へのビット割り当てが一定ビット数以下の場合、音質劣化の原因となるサブバンド信号へのビット割り当てが存在すると判定する。
【０１０９】
このステップＳＰ１２３で否定結果が得られると、動的ビット割当て部４は、ステップＳＰ１２３からステップＳＰ１２４に移り、この処理手順を終了する。これに対してステップＳＰ１２３で肯定結果が得られると、動的ビット割当て部４は、ステップＳＰ１２３からステップＳＰ１２５に移る。ここで動的ビット割当て部４は、この音質劣化の原因となるサブバンド信号に割り当てられているビット数を計算する。従って図１３の例の場合、動的ビット割当て部４は、サブバンド信号Ｂ３及びＢ４に割り当てたビット数を計算する。
【０１１０】
続いて動的ビット割当て部４は、ステップＳＰ１２６に移り、ステップＳＰ１２５で計算したビット量を他のサブバンド信号に割り当てる。ここで動的ビット割当て部４は、図１又は図９の処理手順を再度実行してこのステップＳＰ１２６の処理を実行する。具体的に、動的ビット割当て部４は、初めに、この音質劣化の原因となるサブバンド信号Ｂ３及びＢ４と、このサフバンド信号Ｂ３、Ｂ４の周波数の低い側に隣接するビット割り当てされていないサブバンド信号Ｂ１、Ｂ２について、ステータスusedをビット割り当て完了に設定し、これらのサブバンド信号Ｂ１〜Ｂ４にはビット割り当てしないように設定する。またそれまでサブバンド信号Ｂ３及びＢ４に割り当てていたビット量を、残り割り当て可能なビット量に設定して、図１又は図９について上述した再ソート（ステップＳＰ４５又はステップＳＰ１００）、ビット割り当て（ステップＳＰ４３）の処理を繰り返し、それまでサブバンド信号Ｂ３及びＢ４に割り当てていたビット量を他のサブバンド信号に割り当てる。なお、図１又は図９の処理を初めからやり直してこのステップＳＰ１２６の処理を実行するようにしてもよい。また単に音質劣化の原因となるそれまでビット割り当てしていたサブバンド信号Ｂ３及びＢ４だけ、ビット割り当てしないように設定してもよい。
【０１１１】
この実施例によれば、音質劣化の原因となるサブバンド信号へのビット割り当てを検出し、このサブバンド信号に割り当てていたビットを他のサブンバンド信号に振り分ける処理に適用して、簡易な処理で音質劣化を防止することができる。
【実施例４】
【０１１２】
なお上述の実施例においては、ＭＮＲを値の小さい順にソートする場合について述べたが、本発明はこれに限らず、これとは逆に値の大きい順にソートするようにしてもよい。なおこの場合、当然のことながら最も値の小さなＭＮＲを検出する処理は、上述の実施例とは逆にソート結果の末尾から検出することになり、またＭＮＲを再ソートする等の処理は、上述の実施例とは逆方向に実行することになる。
【０１１３】
また上述の実施例においては、ディジタルシグナルプロセッサによりエンコーダを構成する場合について述べたが、本発明はこれに限らず、例えばコンピュータでオーディオ信号を編集処理等する場合に適用して、演算処理手段のプログラムの実行によりオーディオ信号を符号化処理する場合等にも広く適用することができる。なおこのような演算処理手段により実行されるオーディオ信号の符号化処理方法のプログラムは、光ディスク、磁気ディスク、メモリカード等の各種記録媒体に記録して提供してもよく、またインターネット等のネットワークを介して提供するようにしてもよい。
【０１１４】
また上述の実施例においては、ＭＰＥＧ１、又はＭＰＥＧ２によりオーディオ信号を符号化処理する場合に本発明を適用して、ビットを割り当てるための評価基準としてＭＮＲを使用する場合について述べたが、本発明はこれに限らず、種々の評価基準を用いて種々のフォーマットで符号化処理する場合に広く適用することができる。
【産業上の利用可能性】
【０１１５】
本発明は、例えばＭＰＥＧ１、ＭＰＥＧ２のレイヤ１、レイヤ２でオーディオ信号を符号化処理する場合に適用することができる。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施例１のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。
【図２】図１の処理手順の説明に供する略線図である。
【図３】図２に続く状態を示す略線図である。
【図４】図３に続く状態を示す略線図である。
【図５】図１の処理手順におけるステップＳＰ４２を関連する処理と共に詳細に示すフローチャートである。
【図６】図１のステップＳＰ４３、ＳＰ４４、ＳＰ４６の処理手順を詳細に示すブロック図である。
【図７】図６の処理手順の説明に供する略線図である。
【図８】図１のステップＳＰ４５の処理を詳細に示すフローチャートである。
【図９】本発明の実施例２のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。
【図１０】図９の処理手順の説明に供する略線図である。
【図１１】図１０に続く状態を示す略線図である。
【図１２】図９の処理手順におけるステップＳＰ１００を詳細に示すフローチャートである。
【図１３】ノイズ発生の説明に供する特性曲線図である。
【図１４】ノイズの防止の説明に供する特性曲線図である。
【図１５】本発明の実施例３のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。
【図１６】エンコーダを示すブロック図である。
【図１７】従来のエンコーダにおける動的ビット割当て部４の処理手順を示すフローチャートである。
【図１８】図１７の処理手順を詳細に示すフローチャートである。
【図１９】図１８の続きを示すフローチャートである。
【符号の説明】
【０１１７】
１……エンコーダ、２……サブバンド分析フィルタバンク、３……線形量子化器、４……動的ビット割当て部、５……ビットストリーム形成部、６……スケールファクタ抽出、７……スケールファクタ選択情報、８……高速フーリエ変換部、９……心理聴覚モデル部
【図１】
2007264154.tif 000003
【図２】
2007264154.tif 000004
【図３】
2007264154.tif 000005
【図４】
2007264154.tif 000006
【図５】
2007264154.tif 000007
【図６】
2007264154.tif 000008
【図７】
2007264154.tif 000009
【図８】
2007264154.tif 000010
【図９】
2007264154.tif 000011
【図１０】
2007264154.tif 000012
【図１１】
2007264154.tif 000013
【図１２】
2007264154.tif 000014
【図１３】
2007264154.tif 000015
【図１４】
2007264154.tif 000016
【図１５】
2007264154.tif 000017
【図１６】
2007264154.tif 000018
【図１７】
2007264154.tif 000019
【図１８】
2007264154.tif 000020
【図１９】
2007264154.tif 000021
【手続補正書】
【提出日】平成18年3月30日(2006.3.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
ここで図２に示すように、動的ビット割当て部４は、図示しないメモリに一定の領域を確保して、全チャンネルの全サブバンド信号について、ＭＮＲ（p mnr （図２（Ｂ））、このＭＮＲが検出されたチャンネル、サブバンド信号を特定するインデックスindex （図２（Ａ））、このインデックスindexに対する処理の状況を示すステータスused（図２（Ｃ））の組み合わせをＭＮＲでソートしてこのメモリに格納する。なおここでステータス（used）は、値０でビットを割り当てていない状態を示し、値１でビットを割り当てている状態を示し、値２でビットの割り当てを完了した状態を示す。またこの一定の領域は、全チャンネルの全サブバンド信号についてこれらインデックスindex 、ステータスused、ＭＮＲの組み合わせをメモリに格納して、後述するステップＳＰ４４の処理を繰り返すのに十分な空き領域を有するように設定される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
従って図２の例では、メモリ空間の変数no＝０で特定される先頭領域に、index ＝４、p mnr ＝２０、used＝０の組み合わせが格納されていることになる。また以下において、メモリに記録したＭＮＲ、このＭＮＲが検出されたチャンネル、サブバンド信号を特定するインデックスindex 、このインデックスindexに対する処理の状況を示すステータスusedの組み合わせを、適宜、ＭＮＲの組み合わせと呼ぶ。なおここで変数noは、ＭＮＲの組み合わせを特定する変数である。