(57)【要約】【課題】  符号化効率を保ちながら、プリエコーを適宜抑制し、音質の良いビットストリームを効率的に作成することを課題とする。【解決手段】  オーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部（２）と、変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部（６）と、フィルタバンク部が短いブロック長で周波数変換を行った場合、アタック検出情報に基づいて周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部（７）と、決定されたビット割当てに従ってグループ分けされた周波数スペクトルを量子化する量子化部（９）とを有するオーディオ信号符号化装置が提供される。【選択図】        図１
2006126372.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ入力信号をフレームに分割するフレーム分割部と、
前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部と、
前記アタック検出部の検出結果に応じて変換ブロック長を決定するブロック判定部と、
オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算部と、
前記ブロック判定部が決定する変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部と、
前記フィルタバンク部が短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部と、
前記フィルタバンク部により変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当て部と、
前記ビット割当て部により決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化部と
を有することを特徴とするオーディオ信号符号化装置。
【請求項２】
前記アタック検出部は、オーディオ入力信号を短いブロック長よりもさらに短期間の時間小片に分割してその時間小片単位でアタック検出情報を検出することを特徴とする請求項１記載のオーディオ信号符号化装置。
【請求項３】
前記グループ判定部は、前記アタック検出情報に基づいてグループ境界を決定することを特徴とする請求項１又は２記載のオーディオ信号符号化装置。
【請求項４】
前記グループ判定部は、前記アタック検出情報及び周波数帯域毎の許容誤差エネルギーに基づいてグループ分けを行うことを特徴とする請求項１〜３のいずれか１項に記載のオーディオ信号符号化装置。
【請求項５】
前記許容誤差エネルギーは、前記聴覚心理演算部が出力する周波数帯域毎の信号対マスク比の逆数と、各周波数帯域のスペクトルエネルギーの積であることを特徴とする請求項４記載のオーディオ信号符号化装置。
【請求項６】
前記グループ判定部は、前記許容誤差エネルギーを利用してグループの連続性を判断してグループ分けすることを特徴とする請求項４又は５記載のオーディオ信号符号化装置。
【請求項７】
前記グループ判定部は、通常動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行い、高速動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行わないことを特徴とする請求項６記載のオーディオ信号符号化装置。
【請求項８】
符号化形式がＭＰＥＧ−２／４ ＡＡＣであることを特徴とする請求項１〜７のいずれか１項に記載のオーディオ信号符号化装置。
【請求項９】
オーディオ入力信号をフレームに分割するフレーム分割ステップと、
前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出ステップと、
前記アタック検出結果に応じて変換ブロック長を決定するブロック判定ステップと、
オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算ステップと、
前記決定され変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換する変換ステップと、
前記変換ステップで短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定ステップと、
前記変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算ステップの演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当てステップと、
前記決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化ステップと
を有することを特徴とするオーディオ信号符号化方法。
【請求項１０】
前記アタック検出ステップは、オーディオ入力信号を短いブロック長よりもさらに短期間の時間小片に分割してその時間小片単位でアタック検出情報を検出することを特徴とする請求項９記載のオーディオ信号符号化方法。
【請求項１１】
前記グループ判定ステップは、前記アタック検出情報に基づいてグループ境界を決定することを特徴とする請求項９又は１０記載のオーディオ信号符号化方法。
【請求項１２】
前記グループ判定ステップは、前記アタック検出情報及び周波数帯域毎の許容誤差エネルギーに基づいてグループ分けを行うことを特徴とする請求項９〜１１のいずれか１項に記載のオーディオ信号符号化方法。
【請求項１３】
前記許容誤差エネルギーは、前記聴覚心理演算ステップで出力される周波数帯域毎の信号対マスク比の逆数と、各周波数帯域のスペクトルエネルギーの積であることを特徴とする請求項１２記載のオーディオ信号符号化方法。
【請求項１４】
前記グループ判定ステップは、前記許容誤差エネルギーを利用してグループの連続性を判断してグループ分けすることを特徴とする請求項１２又は１３記載のオーディオ信号符号化方法。
【請求項１５】
前記グループ判定ステップは、通常動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行い、高速動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行わないことを特徴とする請求項１４記載のオーディオ信号符号化方法。
【請求項１６】
符号化形式がＭＰＥＧ−２／４ ＡＡＣであることを特徴とする請求項９〜１５のいずれか１項に記載のオーディオ信号符号化方法。
【請求項１７】
請求項９〜１６のいずれか１項に記載のオーディオ信号符号化方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ信号の符号化技術に関し、特に変換ブロック長の変更が可能な変換符号化技術を利用したオーディオ信号符号化技術に関する。
【背景技術】
【０００２】
近年、高音質、かつ高効率なオーディオ信号符号化技術は、DVD-Videoの音声トラックや、半導体メモリやHDD（ハードディスクドライブ）などを利用した携帯オーディオプレイヤー、インターネットを介した音楽配信、家庭内LANにおけるホームサーバへの楽曲蓄積などに広く利用され、幅広く普及するとともにその重要性も増している。
【０００３】
このようなオーディオ信号符号化技術の多くは、変換符号化技術を利用して時間周波数変換を行っている。例えば、MPEG-2 AACやDolby Digital(AC-3)などでは、MDCTなどの直交変換単体でフィルタバンクを構成しており、MPEG-1 Audio Layer III(MP3)やATRAC(MDに利用されている符号化方式)では、QMFなどのサブバンド分割フィルタと直交変換を多段接続してフィルタバンクを構成している。
【０００４】
変換符号化方式では、基本的にはフィルタバンクによって周波数成分に変換された入力信号を、人間の聴覚の周波数分解能に基づいて設定される分割周波数帯域ごとにまとめ、量子化時に各分割周波数帯域毎の正規化係数を決定し、正規化係数と量子化スペクトルの組み合わせで周波数成分を表現することで情報量を削減している。MPEG-2 AACでは、この分割周波数帯域をスケールファクタバンド（ＳＦＢ）と呼び、正規化係数をスケールファクタと呼称する。
【０００５】
更に、これらの高効率オーディオ符号化技術では、人間の聴覚特性を利用したマスキング分析を行うことによって、マスキングされると判断したスペクトル成分を取り除く、あるいはマスクされる量子化誤差を許容することにより、スペクトルを表現するための情報量を削減し、圧縮効率を高めている。
【０００６】
これらの高効率オーディオ符号化技術で用いられているマスキング分析は、主に、静寂時の可聴周波数領域によるマスキングと、臨界帯域におけるマスカーによる周波数マスキングである。
【０００７】
上記マスキング分析により、人間に感知できないと判断される信号の多くは主に高周波域の信号になるため、通常の場合、高周波成分の量子化誤差は多少大きくなってもマスキングされうる。
【０００８】
ところが、変換符号化方式では、オーディオ入力信号に急激な変化がある、いわゆる過渡状態の場合、急激な変化が起こっている部分の高周波成分の量子化誤差が、急激な変化の直前や直後の信号にまで影響を与えるため、リンギングノイズが生じる。
【０００９】
人間の聴覚特性として、大きな音が発生した場合、その直前と直後の時間は音が聞こえづらくなる。これを時間マスキング効果という。大きな音の後に聞こえなくなる時間は、個人差はあるが約100msec程度と比較的長い。しかしながら、直前に働くマスキング効果の時間は約5〜6msecと短い。従って、リンギングノイズが生じると、大きな音の前のノイズは感知されやすくなってしまう。これは一般にプリエコーと呼ばれる現象である。
【００１０】
以下、この現象を図１３〜図１５を用いて説明する。
図１３は、急激に変化しているオーディオ入力信号の一例である。この信号を、MPEG-2 AACの通常の変換ブロック長である2048 サンプルブロックで符号化・復号化したオーディオ信号の例を図１４に示している。図示したように急激な信号の変化の部分で生じている高周波域の量子化誤差が、ブロック全域に渡って影響している。
【００１１】
前述したように、振幅が急激に変化する部分の直前では、時間マスキング効果によって人間はノイズを感知できない。しかしながら、入力信号が音楽用CDに用いられているPCM信号と同様な44.1KHzサンプリング周波数を用いていると仮定して、ブロック長を時間に換算すると、2048サンプルブロックの時間は2048÷44100×1000＝約46.44msとなるため、この前半の時間にノイズが生じているとしてもプリマスキング時間をはみだしてしまい、人間はプリエコーを感知してしまう。
【００１２】
これを抑制するための一方法として、種々のオーディオ符号化方式では、入力信号の急激な変化を検知して変換ブロック長を短くすることにより、急激な変化による高周波成分の量子化誤差が、変化直前の部分に及ばないようにすることで、プリエコーの発生を抑制している。
【００１３】
図１５では、MPEG-2 AACにおけるショートブロック長である256サンプルブロックで図１３に示すオーディオ信号を符号化、復号化した信号を示している。この場合、入力信号の急激な変化による高周波数域の量子化誤差の影響は、変化が発生している256サンプルブロックの中に閉じ込められてしまう。先ほどと同様に、このブロック長を44.1KHzサンプリング周波数で時間に換算すると、約5.80msとなるため、プリマスキング効果によりこのノイズを人間はほぼ感知できなくなり、結果としてプリエコーは消える。
【００１４】
ところが、一般にブロック長を短くすると、周波数分解能が落ちることによりマスキング分析の精度が落ちるばかりでなく、量子化時に使用するスケールファクタバンドがブロックの数だけ増大するために、スケールファクタによって消費される情報量が増えてしまい、量子化時に本来ならスペクトル情報に割り当てるべきビットがスケールファクタに消費されてしまうため、符号化効率が低下する。その結果、特に低ビットレート時には量子化誤差が厳密にマスキングできなくなるため、ブロック長が長い場合に比較して、ノイズが感知されやすくなる恐れがある。
【００１５】
そこで、ブロック長の切り替えを適応的に行う符号化方式では、プリエコーが発生しそうなアタック部を的確に検出することが重要となる。MPEG-1 Audio Layer IIIやAACの規格書では、聴覚心理モデルIIにおいて算出される聴覚エントロピー（PE）がある閾値を超えたかどうかで判定しているが、その他に、時間領域信号内の高周波成分の変化によってアタックを検出する方法も利用されている。
【００１６】
ところで、このような変換符号化方式では、ブロック間の境界で生じるエイリアシング（折り返しノイズ）を除去するために、各ブロック幅の二倍の時間信号に対してsinウィンドウなどの一定の条件を満たすウィンドウによってウィンドウ掛けを行ってからMDCTによって周波数スペクトルに変換し、復号側で逆MDCTによって時間信号に逆変換した後、ブロック幅分の時間信号を重ね合わせるという処理を行っている。従って、ブロック長の変更を行う場合、このエイリアシングキャンセルが確実に行われるようにフレームにおけるブロック幅やウィンドウ掛けの仕様を設計する必要がある。
【００１７】
MPEGオーディオ規格では、このフレーム内におけるブロック幅とウィンドウパターンの組み合わせをブロックタイプ、もしくはウィンドウ・シーケンスと呼称しており、例えばMPEG-2/4 AACにおけるブロックタイプは図１６のテーブルに示すように、４つのタイプが定義されている。これらのブロックタイプのうち、EIGHT_SHORT_SEQUENCEの場合のみ、ショートブロック長の場合の聴覚分析結果が採用され、その他のブロックタイプではロングブロック長の場合の聴覚分析結果が採用される。
【００１８】
なお、図１６において、イメージの列では各ブロックタイプにおけるウィンドウ掛けのイメージを模式的に図示している。図において、太い縦線はフレーム境界を示しており、細い縦線（点線）は、128サンプルごとの境界を示す。
【００１９】
MPEG-2/4 AACでは１フレーム分の周波数成分を得るために、2フレーム分の時間信号、すなわち2048サンプルをまとめて時間周波数変換する。次のフレームの変換は、1フレーム分、すなわち1024サンプルずつ入力をシフトさせて行い、復号側で逆MDCT後に得られた時間成分を重ね合わせることにより、エイリアシングキャンセルが実行される。
【００２０】
このウィンドウの重ね合わせによるエイリアシングキャンセルが確実に行われるためには、ブロックタイプの推移はある程度制限されなければならない。例えば、MPEG-2/4 AACの場合では、ONLY_LONG_SEQUENCEからEIGHT_SHORT_SEQUENCEにブロックタイプが推移する場合は、必ずその間にLONG_START_SEQUENCEに推移しなければならない。逆に、EIGHT_SHORT_SEQUENCEからONLY_LONG_SEQUENCEに推移するためには、必ずその間にLONG_STOP_SEQUENCEを経由する必要がある。
【００２１】
このように、現在処理中のフレームのブロックタイプを決定するためには、その後に推移するブロック長を知る必要がある。前述したように、MPEGオーディオ規格書に記載されている技術ではブロック長はPEによって決定される。従って、MPEGオーディオ規格書に記載されている技術では、聴覚心理モデルによる入力信号分析は、処理中のフレームよりも1フレーム分時間的に先行して行う必要がある。
【００２２】
ところで、MPEG-2 AACでは、ショートブロックで処理するときに、各ブロックに含まれる信号の特性によって複数のブロックをグループ化し、同じグループに含まれるブロックではスケールファクタを共有することによって、スケールファクタによって消費されるビットを削減する仕組みが規格上定められている。これをグルーピングと呼ぶ。
【００２３】
MPEG-2 AACでは、適切なグルーピングを行うことによって、ショートブロックで変換を行った場合の符号化効率の低下を抑制しつつ、効果的にプリエコーの発生を抑えることが可能である。
【００２４】
グルーピングはスケールファクタを異なるショートブロックで共有するため、本来ならば、スケールファクタを決定した後で、スケールファクタのパターンが似通っているショートブロックを同じグループにまとめることが望ましい。また、スケールファクタは入力信号の変化に応じて変化するため、ショートブロックのグループも入力信号の変化に合致していないと、復号時の量子化誤差が大きくなる可能性がある。
【００２５】
【特許文献１】特開２００３−１０８１９２号公報
【特許文献２】特開２００１−２９６８９３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
ところが、MPEG-2 AAC規格書（ISO/IEC  １３８１８−７）には、グルーピング情報をビットストリーム上に格納する書式情報や、グルーピング情報の復号化方法は記載されているものの、ショートブロックのグループを決定する方法については一切記述がない。ISOのMPEG-4 Ver.1リファレンスプログラムでは、グループ分けのパターンを予め決めておいて、全てのショートブロックフレームを同じグループパターンで処理するように実装されているが、これでは刻々と変化する入力情報とグルーピングパターンが合致せず、音質が劣化してしまう。
【００２７】
最も単純なグループ判定手法としては、全てのブロックのスケールファクタを算出した後に、隣接するブロック間でスケールファクタの類似の度合いを判定することによってグループを判定する方法がある。しかし、スケールファクタが実際に決定されるのは量子化処理後であるため、この手法では、グループ判定後に再度量子化をやり直すことになってしまい、処理量のオーバヘッドが著しく大きくなってしまうため、現実的ではない。
【００２８】
上記の特許文献１に開示されている先行技術では、隣接するブロック、もしくはグループを統合した場合のスペクトル変動指標を全ての組み合わせで算出し、この変動指標と閾値を比較することによってグループの判定を行っている。
【００２９】
しかし、この方法では変動指標を計算するために多くの計算量が要求され、また、グループ統合の決定を行う度に繰り返し計算を行わなければならないため、結果として処理効率が落ちる。また、繰り返し計算を行う度に変動指標に累積される誤差が増して、結果として入力信号に合致しないグルーピングが行われてしまう可能性がある。
【００３０】
また、上記の特許文献２に開示されている先行技術では、スペクトル面積を比較することによってグループ化を決定しているが、聴覚心理演算の結果をグループ化手続きに組み込んでいないため、結果として聴感ノイズが増加する危険性がある。
【００３１】
本発明は上記問題点に鑑みて考案されたものであり、細かい時間分解能でアタック検出を行ってグループ境界を設定し、及び／又はスケールファクタを算出する際の基準となるスケールファクタバンド毎の許容誤差エネルギーを利用して、グループの連続性を判定することにより、入力信号の変化に応じ、かつ、人間の聴覚特性に合致した適切なグルーピングを可能にし、符号化効率を保ちながら、プリエコーを適宜抑制し、音質の良いビットストリームを効率的に作成することができるオーディオ符号化技術を提供するものである。
【課題を解決するための手段】
【００３２】
本発明のオーディオ信号符号化装置は、オーディオ入力信号をフレームに分割するフレーム分割部と、前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部と、前記アタック検出部の検出結果に応じて変換ブロック長を決定するブロック判定部と、オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算部と、前記ブロック判定部が決定する変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部と、前記フィルタバンク部が短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部と、前記フィルタバンク部により変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当て部と、前記ビット割当て部により決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化部とを有することを特徴とする。
【００３３】
また、本発明のオーディオ信号符号化方法は、オーディオ入力信号をフレームに分割するフレーム分割ステップと、前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出ステップと、前記アタック検出結果に応じて変換ブロック長を決定するブロック判定ステップと、オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算ステップと、前記決定され変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換する変換ステップと、前記変換ステップで短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定ステップと、前記変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算ステップの演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当てステップと、前記決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化ステップとを有することを特徴とする。
【００３４】
また、本発明のプログラムは、上記のオーディオ信号符号化方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００３５】
アタック検出情報を基にグループ分けすることにより、オーディオ入力信号の変化に応じ、かつ、人間の聴覚特性に合致した適切なグルーピングを可能にし、符号化効率を保ちながら、プリエコーを適宜抑制し、音質の良いビットストリームを効率的に作成することができる。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態におけるオーディオ符号化装置の一構成例である。なお、図中の太線はデータ信号、細線は制御信号を示す。
【００３７】
図示の構成において、１はオーディオ入力信号を処理単位であるフレームに分割するフレーム分割器である。ここで分割されたフレームは後述するアタック検出器２と遅延バッファ４へ送出される。
【００３８】
２は、入力されたオーディオ入力信号内の急激な振幅変化であるアタック・リリース状態を検出するアタック検出器である。通常、このようなアタック検出器では、まず、１フレーム分の入力信号をハイパスフィルタに通し、高周波成分を取り出した後、ショートブロック長よりも短い時間単位に再分割し、高周波成分の振幅を比較することによって、アタックやリリースを検出する。本実施形態におけるアタック検出器２で行われる処理の詳細は後述する。
【００３９】
３は、ブロック判定器である。本実施形態において、ブロック判定は二段階の手順をとって行われる。まず、アタック検出器２から送出されたアタック検出情報より、フィルタバンク６において変換されるフレームよりも１フレーム分時間的に先行するフレーム（以下先行フレーム）の変換ブロック長を選択する。例えば、アタックが検知された場合は、先行フレームのブロック長としてショートブロック長が選択され、それ以外の場合はロングブロック長が選択される。
【００４０】
次に、ブロック判定器３内に保持されている符号化対象のフレーム（以下、現行フレーム）のブロック長と、先ほど選択した先行フレームのブロック長から、現行フレームのブロックタイプを決定する。例えば、MPEG-2 AACの場合、現行フレームのブロック長がロングブロック長であり、先行フレームのブロック長がショートブロック長である場合は、先行フレーム処理時に確実にスイッチングが行われるように、現行フレームのブロックタイプをLONG_START_SEQUENCEに決定する。
【００４１】
４は遅延バッファであり、入力信号を１フレーム分溜めておく事ができる。すなわち、このバッファによって、アタック検出器２に送出される入力信号は、聴覚心理演算器５やフィルタバンク６に送出される入力信号よりも１フレーム分時間的に先行することになる。
【００４２】
５は聴覚心理演算器であり、ブロック判定器３から送出されるブロックタイプに従って、現行フレームのオーディオ入力信号を分析し、人間の周波数分解能に基づいて分割されたサブ周波数帯域ごとの聴覚マスキング計算を行う。この演算の結果、スケールファクタバンド（SFB）ごとの信号対マスク比（SMR）がグループ判定器７へ、また、聴覚エントロピー（PE）がビット割り当て器８へ出力される。
【００４３】
６はフィルタバンクであり、現行フレームの時間領域のオーディオ入力信号に対してブロック判定器３によって指定されたブロックタイプのウィンドウ掛けを行った後、ブロックタイプのブロック長で時間周波数変換を行い、周波数スペクトルに変換する。
【００４４】
７はグループ判定器であり、聴覚心理演算器５から送出されるSFBごとのSMR値とフィルタバンク６から出力されるスペクトル列より、SFBごとの許容誤差エネルギーを算出するとともに、スペクトル列がショートブロックの組である場合にのみ、アタック検出器２から送出されるアタック検出情報と、許容誤差エネルギーに基づいてショートブロックのグループ判定を行う。具体的には、周波数スペクトルをブロック数よりも小さい数のグループにグループ分けする。
【００４５】
８はビット割当て器であり、聴覚心理演算器５より送出される分割周波数帯域ごとのPE値、フィルタバンク６から出力される周波数スペクトル、グループ判定器７から出力される許容誤差エネルギーを参照して、各分割周波数帯域に割り当てるビット量を決定する。
【００４６】
９は量子化器であり、フィルタバンク６が出力する周波数スペクトルの正規化係数(スケールファクタ)を各周波数帯域毎に算出し、ビット割当て器８が出力する、各周波数帯域に割り当てられたビット量に従ってグループ分けされた周波数スペクトルを量子化する。
【００４７】
１０はビット整形器であり、量子化器９が出力するスケールファクタと量子化スペクトルを適宜規定のフォーマットに整形してビットストリームを作成し、出力する。
【００４８】
上記構成によるオーディオ信号符号化装置におけるオーディオ信号の処理動作を以下に説明する。
【００４９】
なお、本実施形態では説明の便宜のために符号化方式としてMPEG-2  AACを例にとって説明するが、ショートブロックのグルーピングを行うその他の符号化方式についても全く同様な方法で実現可能である。
【００５０】
まず、処理に先立ち、各部の初期化を行う。本実施形態では、初期化によって、動作モードが高速（動作）モードであるか通常（動作）モードであるかが設定される。
【００５１】
オーディオPCM信号などのオーディオ入力信号はフレーム分割器１によってフレーム単位に分割され、アタック検出器２と遅延バッファ４に送出される。MPEG-2 AAC LC(Low-Complexity)プロファイルの場合、1フレームは1024サンプルのPCM信号で構成される。
【００５２】
アタック検出器２では入力されたフレーム(先行フレーム)に対して前述したアタック検出が行われるが、本実施形態で行われるアタック検出の詳細を、図１７を用いて以下説明する。
【００５３】
図１７は本実施形態におけるアタック検出とグループ境界の関係を模式的に示した図である。同図において、横軸は時間を示しており、左から右に時間が進んでいる。太い縦線はフレーム境界を示し、細い縦線は128サンプルごとの幅を示しており、全体で先行フレームである2フレーム分の時間サンプルを表示している。本実施形態におけるアタック検出の目的は、ブロック長の判定と、ショートブロックのグループ分けであるため、図１７では、先行フレームがショートブロックとして処理される場合のウィンドウ掛けされる範囲を模式的に示している。
【００５４】
本実施形態において、アタック検出は、図示したように、先行フレーム2048サンプルのうち、先頭から576番目のサンプルを先頭とする1024サンプルに対して行われる。まず、検出対象の1024サンプルをハイパスフィルタに通して高域成分を取り出す。次に、これらのサンプルを64サンプルごとの小片（ショートブロックより小さい時間小片）に順に16分割し、各小片の時間振幅エネルギーを計算する。次に、これらの16小片の時間振幅エネルギーおのおのに対して、2つ前の小片の時間振幅エネルギーとの比を取り、これが予め決められている閾値を超えた場合、アタックを検出したと判定する。本実施形態では小片を隣同士で比較するのではなく、一つ置きに比較するが、これは、時間信号が連続的に変化している場合、隣同士では変化量が少なくなって、アタックを検出できない場合が考えられるためである。図１７では、アタックが検出された領域を網掛けの斜線で示している。アタック検出した場合を１、されなかった場合を０として表現すると、本実施形態におけるアタック検出情報として、時間小片単位で16ビットのアタック検出情報が得られる。図１１に本実施形態におけるアタック検出情報のイメージを示す。図１７に示すアタック領域をアタック検出情報にすると図１１に示すビットパターンが作成される。
【００５５】
ブロック判定器３では、まず先行フレームのブロック長を決定する。アタック検出器２から送出されたアタック検出情報に、一つでもビットが立っているならば、先行フレームのブロック長をショートブロックと決定する。そうでなければ、ロングブロックと決定する。次に、これと内部に保持されている現行フレームのブロック長に基づいて現行フレームのブロックタイプを決定する。
【００５６】
遅延バッファ４では、先行フレームの入力信号をバッファリングし、現行フレームの入力信号を聴覚心理演算器５とフィルタバンク６に送出する。
【００５７】
聴覚心理演算器５は、ブロック判定器３から送出されるブロックタイプに従って、FFT（高速フーリエ変換）によって時間周波数変換を行ったのち、マスキング計算を行い、SFB毎のSMRとPEを算出する。
【００５８】
フィルタバンク６では、ブロック判定器３が出力するブロックタイプに従って、適宜遅延バッファ４から送出される現行フレームの入力信号を周波数成分へ変換する。長いブロック長を用いる場合は、入力信号の2048サンプルを一つのブロックとして、ブロックタイプに応じた形の窓掛けを実行後、MDCTを行い、1024個の周波数スペクトルを出力する。短いブロック長を用いる場合は、入力信号の2048サンプルのうち、448番目のサンプルを先頭として256サンプルを一つのブロックとして窓掛け後にMDCTを行い、128個の周波数成分を出力する変換を、入力信号を128サンプルずつずらしながら都合8回行い、8組の周波数スペクトルを得る。
【００５９】
グループ判定器７は、聴覚心理演算器５が出力するSFBごとのSMR値と、フィルタバンク６から出力される周波数スペクトルから許容誤差エネルギーを算出する。ここでは説明の便宜のためブロックタイプがONLY_SHORT_SEQUENCEの場合について詳細に説明する。a番目のブロックにおいて、SFBｂのSMR値をSMR[a][b]、許容誤差エネルギーをxmin[a][b]とすると、許容誤差エネルギーは次式より算出される。
【００６０】
【数１】
2006126372.tif 000003
【００６１】
ここで、energy[a][b]はa番目のブロックのSFB bに含まれるスペクトルの総エネルギーである。i番目のスペクトルをxiと表記し、帯域ｂに含まれるスペクトルがｊ番目からｋ番目までであるとすると、energy[b]は次式で求められる。
【００６２】
【数２】
2006126372.tif 000004
【００６３】
次に、グループ判定器７は、ブロックタイプがONLY_SHORT_SEQUENCEである場合は、アタック検出器２から送出されるアタック検出情報に従ってショートブロックのグルーピングを行う。本実施形態におけるグルーピングの詳細を図１７を用いて以下説明する。同図において、網掛けがされている領域がアタック検出器２によってアタックが検出された部分である。本実施形態におけるグルーピングは、アタック検出情報によってグループ境界を設定することにより行われる。具体的には、アタックが検出された領域を変換ウィンドウ幅に含むブロックのうち、もっとも時間的に早い位置にあるものを、グループの先頭としてグループ境界を設定する。なぜなら、変換ウィンドウ範囲内にアタックが存在する場合、周波数スペクトルの形が大きく変化するためである。図１７の例では、左から二番目と三番目のブロック間、三番目と四番目のブロック間、七番目と八番目のブロック間にブロック境界が設定される。
【００６４】
このように、ショートブロック間にブロック境界が存在するかどうかを、存在する場合は１、存在しない場合は０で表現すると、ブロック境界情報は７ビットのビットパターンで表現できる。図１２は、本実施形態におけるブロック境界情報のイメージを示したものである。図１２のビットパターンは図１７に示したアタック検出結果と同期している。すなわち、図１１のアタック検出情報から図１２のブロック境界情報を作成することが可能であるが、その詳細については後述の第２の実施形態において述べる。
【００６５】
ここで、動作モードが通常モードの場合は、許容誤差エネルギーによって、グループ境界情報を検査し、必要ならばその補正を行う。具体的には、同じグループに属するブロック間の許容誤差エネルギーを比較し、大きく異なる場合に新たにグループ境界を追加するが、この処理の詳細は後述の第２の実施形態において後述する。
【００６６】
フィルタバンク６から出力された周波数スペクトルと、聴覚心理演算器５から出力されたPEと、グループ検出器７から出力された許容誤差エネルギーに基づいて、ビット割当て器８はSFBごとにビットを割り当て、量子化器９は各SFBのスケールファクタ(正規化係数)を算出し、SFBに割り当てられたビットに従って周波数スペクトルを量子化する。
【００６７】
各SFBのスケールファクタと量子化スペクトルはビット整形器１０によって定められた書式に従ってビットストリームに整形されて、出力される。
【００６８】
以上説明したように、本実施形態におけるアタック検出器２は、入力時間信号をショートブロックのウィンドウ幅よりも細分化してアタック検出を行い、これによって作成されたアタック検出情報に基づきグループ判定器７はショートブロックのグルーピングを行い、更に、通常モードにおいては許容誤差エネルギーによってグループの連続性を検査する。よって、従来技術と比較して簡単な処理によって、入力情報の変化に追従しながら、人間の聴覚特性とも合致したグルーピングが可能になるため、ショートブロック時にも符号化効率の低下を最小限に留めることを実現し、効率的に音質の良いビットストリームを作成することができる。
【００６９】
（第２の実施形態）
本実施形態は汎用的なPC（パーソナルコンピュータ）上で動作するソフトウェアプログラムとして実施することも可能である。以下、この場合について図面を用いて説明する。
【００７０】
図６は、本発明の第２の実施形態におけるオーディオ信号符号化装置の構成例である。図示の構成において、１００はＣＰＵであり、オーディオ信号符号化処理のための演算、論理判断等を行い、１０２のバスを介して、バスに接続された各構成要素を制御する。
【００７１】
１０１はメモリであり、本実施形態の構成例における基本I／Oプログラムや、実行しているプログラムコード、プログラム処理時に必要なデータなどを格納する。
【００７２】
１０２はバスであり、ＣＰＵ１００の制御の対象とする構成要素を指示するアドレス信号を転送し、ＣＰＵ１００の制御の対象とする各構成要素のコントロール信号を転送し、各構成機器相互間のデータ転送を行う。
【００７３】
１０３は端末であり、装置の起動、各種条件や入力信号の設定、符号化開始の指示を行う。
【００７４】
１０４は外部記憶装置であり、データやプログラム等を記憶するための外部記憶領域である。データやプログラム等は必要に応じて保管され、また、保管されたデータやプログラムは必要な時に呼び出される。
【００７５】
１０５はメディアドライブであり、記録媒体に記録されているプログラムやデータ、デジタルオーディオ信号などはこのメディアドライブ１０５が読み取ることにより本オーディオ信号符号化装置にロードされる。また、外部記憶装置１０４に蓄えられた各種データや実行プログラムを、記録媒体に書き込むことができる。
【００７６】
１０６はマイクであり、音を集音してオーディオ信号に変換する。
１０７はスピーカーであり、任意のオーディオ信号データを実際の音にして出力することができる。
【００７７】
１０８は通信網であり、LAN、公衆回線、無線回線、放送電波などで構成されている。
１０９は通信インターフェースであり、通信網１０８に接続されている。本実施形態のオーディオ信号符号化装置はこの機器を介して通信網１０８を経由し、外部機器と通信し、データやプログラムを送受信することができる。
【００７８】
かかる各構成要素からなる本実施形態のオーディオ信号符号化装置においては、端末１０３からの各種の入力に応じて作動するものであって、端末１０３からの入力が供給されると、インタラプト信号がＣＰＵ１００に送られることによって、ＣＰＵ１００がメモリ１０１内に記憶してある各種の制御信号を読出し、それらの制御信号に従って、各種の制御が行われる。
【００７９】
本実施形態の装置は、基本Ｉ／Ｏプログラム、ＯＳ，および本オーディオ信号符号化処理プログラムをＣＰＵ１００が実行することによって動作する。基本Ｉ／Ｏプログラムはメモリ１０１中に書き込まれており、ＯＳは外部記憶装置１０４に書き込まれている。そして、本装置の電源がＯＮにされると、基本Ｉ／Ｏプログラム中のＩＰＬ（イニシャルプログラムローディング）機能により外部記憶部１０４からＯＳがメモリ１０１に読み込まれ、ＯＳの動作が開始される。
【００８０】
本オーディオ信号符号化処理プログラムは、図２に示されるオーディオ信号符号化処理手順のフローチャートに基づいてプログラムコード化されたものである。
【００８１】
図７は、本オーディオ信号符号化処理プログラムおよび関連データを記録媒体に記録したときの内容構成図である。
【００８２】
本実施形態において、本オーディオ信号符号化処理プログラムおよび関連データは記録媒体に記録されている。図示したように記録媒体の先頭領域には、この記録媒体のディレクトリ情報が記録されており、その後にこの記録媒体のコンテンツである本オーディオ信号符号化処理プログラムと、オーディオ信号符号化処理関連データがファイルとして記録されている。
【００８３】
図８は本オーディオ信号符号化装置に、本オーディオ信号符号化処理プログラムを導入する模式図である。記録媒体に記録されたオーディオ信号符号化処理プログラムおよび関連データは、図６に示したようにメディアドライブ１０５を通じて本装置にロードすることができる。この記録媒体１１０をメディアドライブ１０５にセットすると、ＯＳ及び基本Ｉ／Ｏプログラムの制御のもとに本オーディオ信号符号化処理プログラムおよび関連データが記録媒体１１０から読み出され、外部記憶装置１０４に格納される。その後、再起動時にこれらの情報がメモリ１０１にロードされて動作可能となる。
【００８４】
図９は、本オーディオ信号符号化装置処理プログラムがメモリ１０１にロードされ実行可能となった状態のメモリマップを示す。
【００８５】
このとき、メモリ１０１のワークエリアには、各種変数、現行フレームブロックタイプ、先行フレームブロック長、現行フレームブロック長、先行フレームアタック検出情報、現行フレームアタック検出情報、入力信号バッファ、ＳＭＲ、ＰＥ、余剰ビット量、時間小片エネルギー、グループ境界情報、グループ情報、閾値A、αの格納領域が確保されており、閾値Aとαには予め定められた値が格納されている。
【００８６】
図１０は、本オーディオ信号符号化装置処理プログラムにおける入力信号バッファの一構成例である。
【００８７】
図示の構成において、バッファサイズは1024×3サンプルであり、説明の便宜上1024サンプル毎に縦線で区切っている。入力信号は1フレーム分の1024サンプルずつ右側から入力されて、左側から逐次処理される。すなわち、図１０の左側が最も時間的に前に位置する信号サンプルとなり、右方向に時間順に時間信号サンプルが逐次入力される。
【００８８】
なお、図示の構成は1チャンネル分の入力信号バッファを模式的に示しており、本実施形態では入力信号のチャンネル分だけ同様なバッファが用意される。
【００８９】
図１１は、本オーディオ信号符号化装置処理プログラムにおけるアタック検出情報の一構成例である。本実施形態においても、アタック検出情報は１６個のビットで構成される。前述の第１の実施形態で説明したように、アタック検出情報の各ビットはアタック検出対象となる1024個の時間サンプルを16分割した64サンプルにおいて、アタックが検出されたかどうかを示すフラグになっている。
【００９０】
図１２は、本オーディオ信号符号化装置処理プログラムにおけるグループ境界情報の一構成例である。本実施形態においても、グループ境界情報は7個のビットで構成される。前述の第１の実施形態で説明したように、グループ境界情報の各ビットは、各ショートブロック間にグループ境界が存在するかどうかを示すフラグになっている。
【００９１】
以下、本実施形態においてＣＰＵ１００で実行されるオーディオ信号符号化処理をフローに従って説明する。
【００９２】
図２は、本実施形態におけるオーディオ信号符号化処理のフローチャートである。
まず、Ｓ１は、符号化する入力オーディオ信号をユーザが端末１０３を用いて指定する処理である。本実施形態において、符号化するオーディオ信号は、外部記憶装置１０４に格納されているオーディオＰＣＭファイルでも良いし、マイク１０６で捉えたリアルタイムの音声信号をアナログ・デジタル変換した信号でも良い。処理を終えると、Ｓ２へ進む。
【００９３】
Ｓ２は、符号化する入力オーディオ信号が終了したかどうかを判定する処理である。入力信号が終了している場合は、Ｓ１７へ処理が進む。未終了の場合は、Ｓ３へ処理が進む。
【００９４】
Ｓ３は、フレームごとの初期化を行う処理である。本実施形態において、ここで行われる処理は主に二つある。まず、図１０に示す入力信号バッファにおいて、右側の2フレーム分、すなわち2048サンプルの時間信号を1フレーム分左にシフトするとともに、新たに1フレーム分、すなわち1024サンプルの入力信号を右側に読み込む。この処理は入力信号に含まれる全てのチャンネルに対して行われる。次に、メモリ101上に格納されている先行フレームブロック長の内容を現行フレームブロック長の領域に、また、先行フレームアタック検出情報の内容を現行フレームアタック検出情報の領域にそれぞれコピーする。処理を終えると、Ｓ４へ処理が進む。
【００９５】
Ｓ４は、符号化対象となっているフレームから時間的に先行するフレーム（以下、先行フレーム）のアタック検出を行う処理である。この処理の詳細は図３を用いて後述するが、この結果、メモリ１０１上にアタック検出情報が格納される。処理を終えると、Ｓ５へ進む。
【００９６】
Ｓ５は、Ｓ４のアタック検出結果によって、先行フレームのブロック長を判定する処理である。本実施形態において、Ｓ４においてアタックが検出された場合は、先行フレームのブロック長をショートブロックと判定し、アタックが検出されなかった場合は先行フレームのブロック長をロングブロックと判定する。判定の結果はメモリ１０１上の先行フレームブロック長に格納される。処理を終えると、Ｓ６へ進む。
【００９７】
Ｓ６は、メモリ１０１上に格納されている現行フレームブロック長と先行フレームブロック長から、最終的な現行フレームのブロックタイプを決定する処理である。例えば、MPEG-2 AACの場合において、現行フレームがロングブロック長であり、先行フレームがショートブロック長である場合は、現行フレームのブロックタイプとしてLONG_START_SEQUENCEが決定される。なお、ブロックタイプが決定されると、自動的にブロック長が決定する。MPEG-2 AACの場合、ブロックタイプがEIGHT_SHORT_SEQUENCEの場合はブロック長はショートブロック長となり、それ以外の場合はロングブロック長となる。現行フレームのブロック長がショートブロック長である場合は、Ｓ7へ処理が進む。現行ブロックのブロック長がロングブロック長である場合は、Ｓ１０に処理が進む。
【００９８】
Ｓ７は、Ｓ６の判定結果に従って、ショートブロック長の場合の聴覚心理演算を行う処理である。この演算の結果、現行フレームの聴覚エントロピー（PE）と、量子化単位である分割周波数帯域ごとのSMR値が算出される。ここで、SMR値はショートブロック時の８組が算出される。処理を終えると、Ｓ８へ処理が進む。
【００９９】
Ｓ８では、Ｓ６で行われた判定に基づき、現行フレームの入力信号に対してショートブロック長による直交変換を行う。MPEG-２ AACの場合、入力信号バッファにおける現行フレームの2048サンプルのうち、448番目のサンプルを先頭として256サンプルを一つのブロックとして窓掛け後にMDCTを行い、128個の周波数成分を出力する変換を、入力信号を128サンプルずつずらしながら都合8回行い、8組の周波数スペクトルを得る。処理を終えると、Ｓ９に処理が進む。
【０１００】
Ｓ９は、Ｓ４で計算された分割周波数帯域ごとのＳＭＲ値と、Ｓ７で計算された８組のショートブロックスペクトルから周波数帯域ごとの許容誤差エネルギーを計算し、それに基づいてショートブロックのグループを決定する処理である。この処理の詳細は図４を用いて後述する。処理を終えると、Ｓ１３へ進む。
【０１０１】
Ｓ１０では、Ｓ６で行われた決定に基づき、処理対象フレームに対してロングブロックによる直交変換を行う。MPEG-2  AACの場合、この結果、1024の周波数成分に分割されたスペクトルの組が一組だけ得られる。処理を終えると、Ｓ１１に処理が進む。
【０１０２】
Ｓ１１は、Ｓ６で決定されたブロックタイプに応じて、現行フレームの入力信号に対して窓掛けを行った後、ロングブロック長の直行変換を行う処理である。例えば、MPEG-2 AACの場合、現行フレームの入力信号2048サンプルを直行変換して、1024の周波数成分からなる周波数スペクトルが得られる。処理を終えると、Ｓ１２へ進む。
【０１０３】
Ｓ１２は、Ｓ１０で得られたＳＭＲ値とＳ１１で得られたスペクトルから許容誤差エネルギーを算出する処理である。許容誤差エネルギーの計算は、第１の実施形態において説明した式によってSFBごとに行われる。処理を終えると、Ｓ１３へ処理が進む。
【０１０４】
Ｓ１３は、ビット割当てを行う処理である。本実施形態において、ビット割当ては二段階に行われる。まず、処理中のフレーム全体に割り当てるビットを余剰ビット量や、Ｓ７やＳ１０で算出された処理中のフレームのPE値、変換ブロック長から決定し、次に、Ｓ９もしくはＳ１２で得られる許容誤差エネルギーより、フレーム内の各SFBに割り当てるビット量を決定する。このような処理は本実施形態のような変換符号化方法において一般的であるので、詳細は説明しない。処理を終えると、Ｓ１４へ処理が進む。
【０１０５】
Ｓ１４は、各SFBのスケールファクタを算出するとともに、Ｓ１３で割り当てられたビット量に従って、周波数スペクトルを量子化する処理である。処理を終えると、Ｓ１５へ処理が進む。
【０１０６】
Ｓ１５は、Ｓ１４で算出されたスケールファクタと量子化スペクトルを、符号化方式によって定められたフォーマットに従って整形し、ビットストリームとして出力する処理である。本実施形態において、この処理によって出力されるビットストリームは、外部記憶装置１０４に格納されても良いし、あるいは、通信インターフェース１０９を介して回線網１０８に繋がっている外部機器に出力されても良い。処理を終えると、Ｓ２へ処理が進む。
【０１０７】
Ｓ１７は、聴覚心理演算や直交変換などで生じる遅延によってまだ出力されていない量子化スペクトルがメモリ上に残っているため、それらをビットストリームに整形して出力する処理である。処理を終えると、オーディオ信号符号化処理を終了する。
【０１０８】
図３は、本実施形態におけるＳ４のアタック検出処理を詳細化したフローチャートである。
【０１０９】
Ｓ１０１は、先行フレームの入力信号をハイパスフィルタに通して、高域の信号を取り出す処理である。具体的には、先行フレームの2048サンプルのうち、先頭から576番目のサンプルから1024個の時間信号サンプルにハイパスフィルタを適用する。処理を終えると、Ｓ１０２へ進む。
【０１１０】
Ｓ１０２は、Ｓ１０１によってハイパスフィルタを通した1024個の高域信号を先頭から64サンプルずつの小片に16分割する処理である。処理を終えると、Ｓ１０３へ進む。
【０１１１】
Ｓ１０３は、Ｓ１０２で作成した64サンプルずつの高域時間信号小片の振幅エネルギーを算出する処理である。本実施形態において、p番目の高域時間小片のi番目の高域時間信号をxp,i、振幅エネルギーをEngy[p]とすると、これは次式によって計算される。
【０１１２】
【数３】
2006126372.tif 000005
【０１１３】
処理を終えると、Ｓ１０４へ進む。
Ｓ１０４は、小片のカウンタ変数pを０に初期化する処理である。処理を終えると、Ｓ１０５へ進む。
【０１１４】
Ｓ１０５は、p番目の時間小片振幅エネルギーEngy[p]と、二つ前の時間小片振幅エネルギーEngy[p-2]との比をとり、予め定められている閾値Aより大きいかどうかを判定する処理である。ここで、p＝0、p＝1の場合は、前回のアタック検出処理において算出したEngy[14]とEngy[15]を各々二つ前の値として使用する。これらの値はメモリ１０１上のワークエリアに保存されている。この判定の結果、時間小片振幅エネルギーの比が閾値Aより大きい場合はＳ１０６へ処理が進む。そうでない場合は、Ｓ１０７へ処理が進む。
【０１１５】
Ｓ１０６は、Ｓ１０５の判定の結果、アタックが検出されたものとして、メモリ１０１上の先行フレームアタック検出情報において、図１１に示すビット列のうちp番目のビットであるAttack[p]に１を格納する。処理を終えると、Ｓ１０８へ進む。
【０１１６】
Ｓ１０７は、Ｓ１０５の判定の結果、アタックが検出されなかったものとして、メモリ１０１上のアタック検出情報、すなわち、図１１に示すビット列のp番目のビットであるAttack[p]に０を格納する。処理を終えると、Ｓ１０８へ進む。
【０１１７】
Ｓ１０８は、小片カウンタpに１を加える処理である。処理を終えると、Ｓ１０９へ進む。
【０１１８】
Ｓ１０９は、小片カウンタpが16であるかどうかを判定する処理である。この判定の結果、pが16である場合はＳ１１０へ処理が進む。pが16以外の場合は、Ｓ１０５へ処理が進む。
【０１１９】
Ｓ１１０は、Ｓ１０３で算出した時間小片振幅エネルギーのうち、14番目と15番目のエネルギーEngy[14]とEngy[15]をメモリ１０１上のワークエリアに格納する処理である。これは、次回のアタック検出処理において利用される。処理を終えると、アタック検出処理を終えてリターンする。
【０１２０】
図４は、本実施形態におけるＳ９のグループ判定処理を詳細化したフローチャートである。
【０１２１】
Ｓ２０１は、８組の周波数スペクトルと、SFBごとのSMR値より、８組の許容誤差エネルギーを算出する処理である。この計算も第１の実施形態における式（１）と同様な計算を行うことによって求められる。処理を終えると、Ｓ２０２へ進む。
【０１２２】
Ｓ２０２は、インデックス変数aに２を、また、bに０を設定する処理である。本実施形態において、aはアタック検出情報のビット位置を示すために、また、bはグループ境界情報のビット位置を示すために利用される。処理を終えると、Ｓ２０３へ進む。
【０１２３】
Ｓ２０３は、インデックス変数aが16未満であるかどうかを判定する処理である。この判定の結果、aが16未満であればＳ２０４へ処理が進む。aが16以上である場合は、Ｓ２０７へ進む。
【０１２４】
Ｓ２０４は、現行フレームアタック検出情報において、a番目、もしくはa+1番目のビットが1であるかどうかを判定する処理である。この判定の結果、どちらかのビットが1である場合はＳ２０５へ処理が進む。それ以外の場合は、Ｓ２０６へ進む。
【０１２５】
Ｓ２０５は、グループ境界情報において、b番目のビットであるgroup[b]に1を設定する処理である。すなわち、アタック検出処理においてこの位置にアタックが検出されているため、ここにグループ境界を設定する。処理を終えると、Ｓ２０６へ進む。
【０１２６】
Ｓ２０６は、インデックス変数aに２を加え、bに１を加える処理である。処理を終えると、Ｓ２０３へ進む。
【０１２７】
Ｓ２０７は、メモリ１０１上のグループ境界情報に基づき、グループ情報を作成する処理である。本実施形態において、グループ情報はグループの数と、各グループに含まれるショートブロックの数(以下、グループ長)で表現される。処理を終えると、Ｓ２０８へ進む。
【０１２８】
Ｓ２０８は、符号化器の符号化モードが高速（動作）モードであるかどうかを判定する処理である。符号化モードが高速モードである場合は、Ｓ２１０へ進む。高速モードでない場合は、Ｓ２０９へ進む。
【０１２９】
Ｓ２０９は、許容誤差エネルギーによってグループ境界情報を補正する処理である。この処理の詳細は図５を用いて後述する。処理を終えると、Ｓ２１０へ進む。
【０１３０】
Ｓ２１０は、Ｓ２０７もしくはＳ２０９で作成されたグループ情報に応じて許容誤差エネルギーをグループ毎にまとめる処理である。本実施形態において、この処理は、同グループ内に含まれる同じ分割周波数帯域の許容誤差エネルギーの総和を、グループに含まれるブロック数で割ることによってなされる。処理を終えると、Ｓ２１１へ進む。
【０１３１】
Ｓ２１１は、決定されたグループ情報に従って、同グループ、同スケールファクタごとにまとめるようにして、スペクトル成分の順番を入れ替える処理である。本実施形態では、MPEG-2 AACの場合を考慮しているが、MPEG-2 AACではこの並び替え順は規格上で定められており、公知であるため詳細は説明しない。処理を終えると、グループ判定処理を終了し、リターンする。
【０１３２】
図５は、本実施形態におけるＳ２０９のグループ補正処理を詳細化したフローチャートである。
【０１３３】
Ｓ３０１は、メモリ１０１上のワークエリアにあるグループカウンタ変数gに０を設定する処理である。処理を終えると、Ｓ３０２へ進む。
【０１３４】
Ｓ３０２は、メモリ１０１上のワークエリアにあるグループ内ブロックカウンタｗに０を設定する処理である。処理を終えると、Ｓ３０３へ進む。
【０１３５】
Ｓ３０３は、グループ内ブロックカウンタｗに１を加えた値がｇ番目のグループ長glen[g]を超えていないかどうかを判定する処理である。この判定の結果、グループ長を超えていない場合はＳ３０４へ処理が進む。グループ長を超えている場合は、Ｓ３０９へ処理が進む。
【０１３６】
Ｓ３０４は、ブロックｗとブロックｗ＋１の許容誤差差分絶対和Ｓを算出する処理である。本実施形態において、各ショートブロックがｎ個の分割周波数帯域に分割される場合、Ｓは次式によって求められる。
【０１３７】
【数４】
2006126372.tif 000006
【０１３８】
ただし、xmin[w][b]はブロックｗの分割周波数帯域ｂにおける許容誤差エネルギーである。処理を終えると、Ｓ３０５へ進む。
【０１３９】
Ｓ３０５は、ブロックｗの許容誤差エネルギー総和Ｘを算出する処理である。Ｘは次式によって求められる。
【０１４０】
【数５】
2006126372.tif 000007
【０１４１】
処理を終えると、Ｓ３０６へ進む。
Ｓ３０６は、Ｓ３０４で計算した許容誤差エネルギー差分和Ｓと、Ｓ３０５で計算したブロックｗの許容誤差エネルギー総和Ｘに予め定められた係数α(0 < α < 1)を掛けた値とを比較する処理である。
【０１４２】
この比較の結果、許容誤差エネルギー差分和Ｓの大きさが大きい場合は、ブロックｗとｗ＋１の間をグループの切れ目と判断し、Ｓ３０７へ処理が進む。そうでない場合は、ブロックｗとｗ＋１に連続性があると判断し、Ｓ３０８へ処理が進む。
【０１４３】
Ｓ３０７は、Ｓ３０６の判定に従って、ブロックｗとｗ＋１の境界にグループ境界を追加設定する処理である。この処理は、メモリ101上のグループ境界情報にこのグループ境界を追加することにより行われる。処理を終えると、Ｓ３０８へ進む。
【０１４４】
Ｓ３０８は、ブロックカウンタｗに１を加える処理である。処理を終えると、Ｓ３０３へ進む。
【０１４５】
Ｓ３０９は、グループカウンタｇが総グループ数gnumより小さいかどうかを判定する処理である。なお、総グループ数gnumはメモリ101上のグループ情報に格納されている。この判定の結果、gがgnumより小さい場合は、残りのグループの補正を行うためにＳ３０２へ進む。ｇがgnum以上の場合は、全てのグループ補正が済んでいるため、Ｓ３１０へ進む。
【０１４６】
Ｓ３１０は、新たにグループ境界が追加されたグループ境界情報に基づいて、グループ情報を再度作成する処理である。ここでは、図４のＳ２０７と全く同様な処理が行われる。処理を終えると、グループ境界補正処理を終了し、リターンする。
【０１４７】
以上、本実施形態における符号化処理では、このグループ補正処理を行うことにより、アタックが検出されなかった場合にも著しくブロック間の許容誤差エネルギーに差が生じた場合は、別のグループとして扱うため、より人間の聴覚特性に合致したグルーピングが可能となる。
【０１４８】
以上説明したように、本実施形態におけるオーディオ信号符号化処理では、アタック検出処理において、ショートブロックよりも短時間の小片において詳細なアタック検出処理を行い、その結果に基づいてショートブロックのグルーピングを行うことによって、入力信号に合致したグルーピングを効率的に実行することが可能になる。
【０１４９】
さらに、許容誤差エネルギーに基づくグループ補正処理を行うことにより、アタックが検出されなかった場合にも著しくブロック間の許容誤差エネルギーに差が生じた場合は、別のグループとして扱うため、より人間の聴覚特性に合致したグルーピングを行うことができる。
【０１５０】
また、符号化モードが高速モードである場合はグループ補正処理を省略することによって、処理負荷を増大させることなく高速にグルーピングを実行することができる。
【０１５１】
（その他の実施形態）
なお、本発明は上述した実施形態に限定されるものではない。また、上述の第２の実施形態では、許容誤差エネルギーの差分の総和によってグルーピング補正を行う例を示したが、許容誤差エネルギーのピークによってグルーピング補正を行うことも可能である。また、許容誤差エネルギーの差分和とピーク位置差分、ピーク差分を同時に検出し、総合的に判断してグルーピングの補正を行ってもよい。また、上述の第２の実施形態では、特に記録媒体に関して言及していないが、これは、ＦＤ、ＨＤＤ、ＣＤ、ＤＶＤ、ＭＯ、半導体メモリなど、どのような記録媒体を用いても適用可能である。上記の符号化形式は、MPEG-2/4 AACが好ましい。その他、本発明はその要旨を逸脱しない範囲で種種変形して実施することができる。
【０１５２】
以上説明したように、第１及び第２の実施形態のオーディオ信号符号化装置では、ショートブロックよりも短時間の小片において詳細なアタック検出を行い、その結果に基づいてショートブロックのグルーピングを行うことによって、入力信号に合致したグルーピングを効率的に実行することが可能になる。
【０１５３】
さらに、許容誤差エネルギーに基づくグループ補正を行うことにより、アタックが検出されなかった場合にも著しくブロック間の許容誤差エネルギーに差が生じた場合は、別のグループとして扱うため、より人間の聴覚特性に合致したグルーピングを行うことを実現し、高音質なビットストリームを作成することができる。
【０１５４】
また、符号化モードが高速モードである場合はグループ補正を省略することによって、処理負荷を増大させることなく高速にグルーピングを実行することができる。
【０１５５】
グループ判定器７は、アタック検出器２が出力するアタック検出情報と周波数帯域ごとの許容誤差エネルギーに基づいて短いブロックのグループ分けを判定することによって、入力信号の変化に応じ、かつ、人間の聴覚特性にも合致したグルーピングを行うことを実現し、効率的に音質の良いビットストリームを作成することができる。
【０１５６】
本実施形態によれば、ごく簡単なアタック検出を時間領域で行い、補正を行う場合にも各ショートブロック間の許容誤差エネルギー比較は単純な処理を各一回だけ行えばよいため、軽い処理を行うだけでグルーピングでき、従来の方法に比べて計算量が著しく少ない。
【０１５７】
また、オーディオ入力信号のアタックを検出してグループの切れ目を判定することで入力信号に合致したグルーピングを行い、さらに聴覚分析に基づく許容誤差エネルギーによってグループの連続性を検証するため、より人間の聴覚に合った結果を得ることができ、結果的に聴感ノイズの少ないグルーピング結果が得られる。
【０１５８】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１５９】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１６０】
【図１】本発明の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図２】本発明の実施形態におけるオーディオ信号符号化処理のフローチャートである。
【図３】本発明の実施形態におけるアタック検出処理のフローチャートである。
【図４】本発明の実施形態におけるグループ判定処理のフローチャートである。
【図５】本発明の実施形態におけるグループ補正処理のフローチャートである。
【図６】本発明の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図７】本発明の実施形態におけるオーディオ信号符号化処理プログラムを格納した記憶媒体の内容構成を示す図である。
【図８】本発明の実施形態におけるオーディオ信号符号化処理をＰＣに導入する模式図である。
【図９】本発明の実施形態におけるメモリマップ構成図である。
【図１０】本発明の実施形態における入力信号バッファ構成図である。
【図１１】本発明の実施形態におけるアタック検出情報構成図である。
【図１２】本発明の実施形態におけるグループ境界情報構成図である。
【図１３】オーディオ信号の模倣図である。
【図１４】図１３で示されるオーディオ信号を2048サンプルブロックで符号化、復号化した場合のオーディオ信号の模倣図である。
【図１５】図１３で示されるオーディオ信号を256サンプルブロックで符号化、復号化した場合のオーディオ信号の模倣図である。
【図１６】AACのブロックタイプを示す図である。
【図１７】本発明の実施形態におけるアタック検出とグループ境界の関係を示す模倣図である。
【符号の説明】
【０１６１】
１  フレーム分割器
２  アタック検出器
３  ブロック判定器
４  遅延バッファ
５  聴覚心理演算器
６  フィルタバンク
７  グループ判定器
８  ビット割当て器
９  量子化器
１０  ビット整形器
１００  ＣＰＵ
１０１  メモリ
１０２  バス
１０３  端末
１０４  外部記憶
１０５  メディアドライブ
１０６  マイク
１０７  スピーカー
１０８  通信回線
１０９  通信インターフェース
１１０  記録媒体
２００  入力情報バッファ
【図１】
2006126372.tif 000008
【図２】
2006126372.tif 000009
【図３】
2006126372.tif 000010
【図４】
2006126372.tif 000011
【図５】
2006126372.tif 000012
【図６】
2006126372.tif 000013
【図７】
2006126372.tif 000014
【図８】
2006126372.tif 000015
【図９】
2006126372.tif 000016
【図１０】
2006126372.tif 000017
【図１１】
2006126372.tif 000018
【図１２】
2006126372.tif 000019
【図１３】
2006126372.tif 000020
【図１４】
2006126372.tif 000021
【図１５】
2006126372.tif 000022
【図１６】
2006126372.tif 000023
【図１７】
2006126372.tif 000024