JP2006126372A - オーディオ信号符号化装置、方法及びプログラム - Google Patents
オーディオ信号符号化装置、方法及びプログラム Download PDFInfo
- Publication number
- JP2006126372A JP2006126372A JP2004312923A JP2004312923A JP2006126372A JP 2006126372 A JP2006126372 A JP 2006126372A JP 2004312923 A JP2004312923 A JP 2004312923A JP 2004312923 A JP2004312923 A JP 2004312923A JP 2006126372 A JP2006126372 A JP 2006126372A
- Authority
- JP
- Japan
- Prior art keywords
- group
- attack detection
- audio signal
- input signal
- block length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 符号化効率を保ちながら、プリエコーを適宜抑制し、音質の良いビットストリームを効率的に作成することを課題とする。
【解決手段】 オーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部(2)と、変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部(6)と、フィルタバンク部が短いブロック長で周波数変換を行った場合、アタック検出情報に基づいて周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部(7)と、決定されたビット割当てに従ってグループ分けされた周波数スペクトルを量子化する量子化部(9)とを有するオーディオ信号符号化装置が提供される。
【選択図】 図1
【解決手段】 オーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部(2)と、変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部(6)と、フィルタバンク部が短いブロック長で周波数変換を行った場合、アタック検出情報に基づいて周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部(7)と、決定されたビット割当てに従ってグループ分けされた周波数スペクトルを量子化する量子化部(9)とを有するオーディオ信号符号化装置が提供される。
【選択図】 図1
Description
本発明は、オーディオ信号の符号化技術に関し、特に変換ブロック長の変更が可能な変換符号化技術を利用したオーディオ信号符号化技術に関する。
近年、高音質、かつ高効率なオーディオ信号符号化技術は、DVD-Videoの音声トラックや、半導体メモリやHDD(ハードディスクドライブ)などを利用した携帯オーディオプレイヤー、インターネットを介した音楽配信、家庭内LANにおけるホームサーバへの楽曲蓄積などに広く利用され、幅広く普及するとともにその重要性も増している。
このようなオーディオ信号符号化技術の多くは、変換符号化技術を利用して時間周波数変換を行っている。例えば、MPEG-2 AACやDolby Digital(AC-3)などでは、MDCTなどの直交変換単体でフィルタバンクを構成しており、MPEG-1 Audio Layer III(MP3)やATRAC(MDに利用されている符号化方式)では、QMFなどのサブバンド分割フィルタと直交変換を多段接続してフィルタバンクを構成している。
変換符号化方式では、基本的にはフィルタバンクによって周波数成分に変換された入力信号を、人間の聴覚の周波数分解能に基づいて設定される分割周波数帯域ごとにまとめ、量子化時に各分割周波数帯域毎の正規化係数を決定し、正規化係数と量子化スペクトルの組み合わせで周波数成分を表現することで情報量を削減している。MPEG-2 AACでは、この分割周波数帯域をスケールファクタバンド(SFB)と呼び、正規化係数をスケールファクタと呼称する。
更に、これらの高効率オーディオ符号化技術では、人間の聴覚特性を利用したマスキング分析を行うことによって、マスキングされると判断したスペクトル成分を取り除く、あるいはマスクされる量子化誤差を許容することにより、スペクトルを表現するための情報量を削減し、圧縮効率を高めている。
これらの高効率オーディオ符号化技術で用いられているマスキング分析は、主に、静寂時の可聴周波数領域によるマスキングと、臨界帯域におけるマスカーによる周波数マスキングである。
上記マスキング分析により、人間に感知できないと判断される信号の多くは主に高周波域の信号になるため、通常の場合、高周波成分の量子化誤差は多少大きくなってもマスキングされうる。
ところが、変換符号化方式では、オーディオ入力信号に急激な変化がある、いわゆる過渡状態の場合、急激な変化が起こっている部分の高周波成分の量子化誤差が、急激な変化の直前や直後の信号にまで影響を与えるため、リンギングノイズが生じる。
人間の聴覚特性として、大きな音が発生した場合、その直前と直後の時間は音が聞こえづらくなる。これを時間マスキング効果という。大きな音の後に聞こえなくなる時間は、個人差はあるが約100msec程度と比較的長い。しかしながら、直前に働くマスキング効果の時間は約5〜6msecと短い。従って、リンギングノイズが生じると、大きな音の前のノイズは感知されやすくなってしまう。これは一般にプリエコーと呼ばれる現象である。
以下、この現象を図13〜図15を用いて説明する。
図13は、急激に変化しているオーディオ入力信号の一例である。この信号を、MPEG-2 AACの通常の変換ブロック長である2048 サンプルブロックで符号化・復号化したオーディオ信号の例を図14に示している。図示したように急激な信号の変化の部分で生じている高周波域の量子化誤差が、ブロック全域に渡って影響している。
図13は、急激に変化しているオーディオ入力信号の一例である。この信号を、MPEG-2 AACの通常の変換ブロック長である2048 サンプルブロックで符号化・復号化したオーディオ信号の例を図14に示している。図示したように急激な信号の変化の部分で生じている高周波域の量子化誤差が、ブロック全域に渡って影響している。
前述したように、振幅が急激に変化する部分の直前では、時間マスキング効果によって人間はノイズを感知できない。しかしながら、入力信号が音楽用CDに用いられているPCM信号と同様な44.1KHzサンプリング周波数を用いていると仮定して、ブロック長を時間に換算すると、2048サンプルブロックの時間は2048÷44100×1000=約46.44msとなるため、この前半の時間にノイズが生じているとしてもプリマスキング時間をはみだしてしまい、人間はプリエコーを感知してしまう。
これを抑制するための一方法として、種々のオーディオ符号化方式では、入力信号の急激な変化を検知して変換ブロック長を短くすることにより、急激な変化による高周波成分の量子化誤差が、変化直前の部分に及ばないようにすることで、プリエコーの発生を抑制している。
図15では、MPEG-2 AACにおけるショートブロック長である256サンプルブロックで図13に示すオーディオ信号を符号化、復号化した信号を示している。この場合、入力信号の急激な変化による高周波数域の量子化誤差の影響は、変化が発生している256サンプルブロックの中に閉じ込められてしまう。先ほどと同様に、このブロック長を44.1KHzサンプリング周波数で時間に換算すると、約5.80msとなるため、プリマスキング効果によりこのノイズを人間はほぼ感知できなくなり、結果としてプリエコーは消える。
ところが、一般にブロック長を短くすると、周波数分解能が落ちることによりマスキング分析の精度が落ちるばかりでなく、量子化時に使用するスケールファクタバンドがブロックの数だけ増大するために、スケールファクタによって消費される情報量が増えてしまい、量子化時に本来ならスペクトル情報に割り当てるべきビットがスケールファクタに消費されてしまうため、符号化効率が低下する。その結果、特に低ビットレート時には量子化誤差が厳密にマスキングできなくなるため、ブロック長が長い場合に比較して、ノイズが感知されやすくなる恐れがある。
そこで、ブロック長の切り替えを適応的に行う符号化方式では、プリエコーが発生しそうなアタック部を的確に検出することが重要となる。MPEG-1 Audio Layer IIIやAACの規格書では、聴覚心理モデルIIにおいて算出される聴覚エントロピー(PE)がある閾値を超えたかどうかで判定しているが、その他に、時間領域信号内の高周波成分の変化によってアタックを検出する方法も利用されている。
ところで、このような変換符号化方式では、ブロック間の境界で生じるエイリアシング(折り返しノイズ)を除去するために、各ブロック幅の二倍の時間信号に対してsinウィンドウなどの一定の条件を満たすウィンドウによってウィンドウ掛けを行ってからMDCTによって周波数スペクトルに変換し、復号側で逆MDCTによって時間信号に逆変換した後、ブロック幅分の時間信号を重ね合わせるという処理を行っている。従って、ブロック長の変更を行う場合、このエイリアシングキャンセルが確実に行われるようにフレームにおけるブロック幅やウィンドウ掛けの仕様を設計する必要がある。
MPEGオーディオ規格では、このフレーム内におけるブロック幅とウィンドウパターンの組み合わせをブロックタイプ、もしくはウィンドウ・シーケンスと呼称しており、例えばMPEG-2/4 AACにおけるブロックタイプは図16のテーブルに示すように、4つのタイプが定義されている。これらのブロックタイプのうち、EIGHT_SHORT_SEQUENCEの場合のみ、ショートブロック長の場合の聴覚分析結果が採用され、その他のブロックタイプではロングブロック長の場合の聴覚分析結果が採用される。
なお、図16において、イメージの列では各ブロックタイプにおけるウィンドウ掛けのイメージを模式的に図示している。図において、太い縦線はフレーム境界を示しており、細い縦線(点線)は、128サンプルごとの境界を示す。
MPEG-2/4 AACでは1フレーム分の周波数成分を得るために、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 13818−7)には、グルーピング情報をビットストリーム上に格納する書式情報や、グルーピング情報の復号化方法は記載されているものの、ショートブロックのグループを決定する方法については一切記述がない。ISOのMPEG-4 Ver.1リファレンスプログラムでは、グループ分けのパターンを予め決めておいて、全てのショートブロックフレームを同じグループパターンで処理するように実装されているが、これでは刻々と変化する入力情報とグルーピングパターンが合致せず、音質が劣化してしまう。
最も単純なグループ判定手法としては、全てのブロックのスケールファクタを算出した後に、隣接するブロック間でスケールファクタの類似の度合いを判定することによってグループを判定する方法がある。しかし、スケールファクタが実際に決定されるのは量子化処理後であるため、この手法では、グループ判定後に再度量子化をやり直すことになってしまい、処理量のオーバヘッドが著しく大きくなってしまうため、現実的ではない。
上記の特許文献1に開示されている先行技術では、隣接するブロック、もしくはグループを統合した場合のスペクトル変動指標を全ての組み合わせで算出し、この変動指標と閾値を比較することによってグループの判定を行っている。
しかし、この方法では変動指標を計算するために多くの計算量が要求され、また、グループ統合の決定を行う度に繰り返し計算を行わなければならないため、結果として処理効率が落ちる。また、繰り返し計算を行う度に変動指標に累積される誤差が増して、結果として入力信号に合致しないグルーピングが行われてしまう可能性がある。
また、上記の特許文献2に開示されている先行技術では、スペクトル面積を比較することによってグループ化を決定しているが、聴覚心理演算の結果をグループ化手続きに組み込んでいないため、結果として聴感ノイズが増加する危険性がある。
本発明は上記問題点に鑑みて考案されたものであり、細かい時間分解能でアタック検出を行ってグループ境界を設定し、及び/又はスケールファクタを算出する際の基準となるスケールファクタバンド毎の許容誤差エネルギーを利用して、グループの連続性を判定することにより、入力信号の変化に応じ、かつ、人間の聴覚特性に合致した適切なグルーピングを可能にし、符号化効率を保ちながら、プリエコーを適宜抑制し、音質の良いビットストリームを効率的に作成することができるオーディオ符号化技術を提供するものである。
本発明のオーディオ信号符号化装置は、オーディオ入力信号をフレームに分割するフレーム分割部と、前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部と、前記アタック検出部の検出結果に応じて変換ブロック長を決定するブロック判定部と、オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算部と、前記ブロック判定部が決定する変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部と、前記フィルタバンク部が短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部と、前記フィルタバンク部により変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当て部と、前記ビット割当て部により決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化部とを有することを特徴とする。
また、本発明のオーディオ信号符号化方法は、オーディオ入力信号をフレームに分割するフレーム分割ステップと、前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出ステップと、前記アタック検出結果に応じて変換ブロック長を決定するブロック判定ステップと、オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算ステップと、前記決定され変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換する変換ステップと、前記変換ステップで短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定ステップと、前記変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算ステップの演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当てステップと、前記決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化ステップとを有することを特徴とする。
また、本発明のプログラムは、上記のオーディオ信号符号化方法の各ステップをコンピュータに実行させるためのプログラムである。
アタック検出情報を基にグループ分けすることにより、オーディオ入力信号の変化に応じ、かつ、人間の聴覚特性に合致した適切なグルーピングを可能にし、符号化効率を保ちながら、プリエコーを適宜抑制し、音質の良いビットストリームを効率的に作成することができる。
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態におけるオーディオ符号化装置の一構成例である。なお、図中の太線はデータ信号、細線は制御信号を示す。
(第1の実施形態)
図1は、本発明の第1の実施形態におけるオーディオ符号化装置の一構成例である。なお、図中の太線はデータ信号、細線は制御信号を示す。
図示の構成において、1はオーディオ入力信号を処理単位であるフレームに分割するフレーム分割器である。ここで分割されたフレームは後述するアタック検出器2と遅延バッファ4へ送出される。
2は、入力されたオーディオ入力信号内の急激な振幅変化であるアタック・リリース状態を検出するアタック検出器である。通常、このようなアタック検出器では、まず、1フレーム分の入力信号をハイパスフィルタに通し、高周波成分を取り出した後、ショートブロック長よりも短い時間単位に再分割し、高周波成分の振幅を比較することによって、アタックやリリースを検出する。本実施形態におけるアタック検出器2で行われる処理の詳細は後述する。
3は、ブロック判定器である。本実施形態において、ブロック判定は二段階の手順をとって行われる。まず、アタック検出器2から送出されたアタック検出情報より、フィルタバンク6において変換されるフレームよりも1フレーム分時間的に先行するフレーム(以下先行フレーム)の変換ブロック長を選択する。例えば、アタックが検知された場合は、先行フレームのブロック長としてショートブロック長が選択され、それ以外の場合はロングブロック長が選択される。
次に、ブロック判定器3内に保持されている符号化対象のフレーム(以下、現行フレーム)のブロック長と、先ほど選択した先行フレームのブロック長から、現行フレームのブロックタイプを決定する。例えば、MPEG-2 AACの場合、現行フレームのブロック長がロングブロック長であり、先行フレームのブロック長がショートブロック長である場合は、先行フレーム処理時に確実にスイッチングが行われるように、現行フレームのブロックタイプをLONG_START_SEQUENCEに決定する。
4は遅延バッファであり、入力信号を1フレーム分溜めておく事ができる。すなわち、このバッファによって、アタック検出器2に送出される入力信号は、聴覚心理演算器5やフィルタバンク6に送出される入力信号よりも1フレーム分時間的に先行することになる。
5は聴覚心理演算器であり、ブロック判定器3から送出されるブロックタイプに従って、現行フレームのオーディオ入力信号を分析し、人間の周波数分解能に基づいて分割されたサブ周波数帯域ごとの聴覚マスキング計算を行う。この演算の結果、スケールファクタバンド(SFB)ごとの信号対マスク比(SMR)がグループ判定器7へ、また、聴覚エントロピー(PE)がビット割り当て器8へ出力される。
6はフィルタバンクであり、現行フレームの時間領域のオーディオ入力信号に対してブロック判定器3によって指定されたブロックタイプのウィンドウ掛けを行った後、ブロックタイプのブロック長で時間周波数変換を行い、周波数スペクトルに変換する。
7はグループ判定器であり、聴覚心理演算器5から送出されるSFBごとのSMR値とフィルタバンク6から出力されるスペクトル列より、SFBごとの許容誤差エネルギーを算出するとともに、スペクトル列がショートブロックの組である場合にのみ、アタック検出器2から送出されるアタック検出情報と、許容誤差エネルギーに基づいてショートブロックのグループ判定を行う。具体的には、周波数スペクトルをブロック数よりも小さい数のグループにグループ分けする。
8はビット割当て器であり、聴覚心理演算器5より送出される分割周波数帯域ごとのPE値、フィルタバンク6から出力される周波数スペクトル、グループ判定器7から出力される許容誤差エネルギーを参照して、各分割周波数帯域に割り当てるビット量を決定する。
9は量子化器であり、フィルタバンク6が出力する周波数スペクトルの正規化係数(スケールファクタ)を各周波数帯域毎に算出し、ビット割当て器8が出力する、各周波数帯域に割り当てられたビット量に従ってグループ分けされた周波数スペクトルを量子化する。
10はビット整形器であり、量子化器9が出力するスケールファクタと量子化スペクトルを適宜規定のフォーマットに整形してビットストリームを作成し、出力する。
上記構成によるオーディオ信号符号化装置におけるオーディオ信号の処理動作を以下に説明する。
なお、本実施形態では説明の便宜のために符号化方式としてMPEG-2 AACを例にとって説明するが、ショートブロックのグルーピングを行うその他の符号化方式についても全く同様な方法で実現可能である。
まず、処理に先立ち、各部の初期化を行う。本実施形態では、初期化によって、動作モードが高速(動作)モードであるか通常(動作)モードであるかが設定される。
オーディオPCM信号などのオーディオ入力信号はフレーム分割器1によってフレーム単位に分割され、アタック検出器2と遅延バッファ4に送出される。MPEG-2 AAC LC(Low-Complexity)プロファイルの場合、1フレームは1024サンプルのPCM信号で構成される。
アタック検出器2では入力されたフレーム(先行フレーム)に対して前述したアタック検出が行われるが、本実施形態で行われるアタック検出の詳細を、図17を用いて以下説明する。
図17は本実施形態におけるアタック検出とグループ境界の関係を模式的に示した図である。同図において、横軸は時間を示しており、左から右に時間が進んでいる。太い縦線はフレーム境界を示し、細い縦線は128サンプルごとの幅を示しており、全体で先行フレームである2フレーム分の時間サンプルを表示している。本実施形態におけるアタック検出の目的は、ブロック長の判定と、ショートブロックのグループ分けであるため、図17では、先行フレームがショートブロックとして処理される場合のウィンドウ掛けされる範囲を模式的に示している。
本実施形態において、アタック検出は、図示したように、先行フレーム2048サンプルのうち、先頭から576番目のサンプルを先頭とする1024サンプルに対して行われる。まず、検出対象の1024サンプルをハイパスフィルタに通して高域成分を取り出す。次に、これらのサンプルを64サンプルごとの小片(ショートブロックより小さい時間小片)に順に16分割し、各小片の時間振幅エネルギーを計算する。次に、これらの16小片の時間振幅エネルギーおのおのに対して、2つ前の小片の時間振幅エネルギーとの比を取り、これが予め決められている閾値を超えた場合、アタックを検出したと判定する。本実施形態では小片を隣同士で比較するのではなく、一つ置きに比較するが、これは、時間信号が連続的に変化している場合、隣同士では変化量が少なくなって、アタックを検出できない場合が考えられるためである。図17では、アタックが検出された領域を網掛けの斜線で示している。アタック検出した場合を1、されなかった場合を0として表現すると、本実施形態におけるアタック検出情報として、時間小片単位で16ビットのアタック検出情報が得られる。図11に本実施形態におけるアタック検出情報のイメージを示す。図17に示すアタック領域をアタック検出情報にすると図11に示すビットパターンが作成される。
ブロック判定器3では、まず先行フレームのブロック長を決定する。アタック検出器2から送出されたアタック検出情報に、一つでもビットが立っているならば、先行フレームのブロック長をショートブロックと決定する。そうでなければ、ロングブロックと決定する。次に、これと内部に保持されている現行フレームのブロック長に基づいて現行フレームのブロックタイプを決定する。
遅延バッファ4では、先行フレームの入力信号をバッファリングし、現行フレームの入力信号を聴覚心理演算器5とフィルタバンク6に送出する。
聴覚心理演算器5は、ブロック判定器3から送出されるブロックタイプに従って、FFT(高速フーリエ変換)によって時間周波数変換を行ったのち、マスキング計算を行い、SFB毎のSMRとPEを算出する。
フィルタバンク6では、ブロック判定器3が出力するブロックタイプに従って、適宜遅延バッファ4から送出される現行フレームの入力信号を周波数成分へ変換する。長いブロック長を用いる場合は、入力信号の2048サンプルを一つのブロックとして、ブロックタイプに応じた形の窓掛けを実行後、MDCTを行い、1024個の周波数スペクトルを出力する。短いブロック長を用いる場合は、入力信号の2048サンプルのうち、448番目のサンプルを先頭として256サンプルを一つのブロックとして窓掛け後にMDCTを行い、128個の周波数成分を出力する変換を、入力信号を128サンプルずつずらしながら都合8回行い、8組の周波数スペクトルを得る。
グループ判定器7は、聴覚心理演算器5が出力するSFBごとのSMR値と、フィルタバンク6から出力される周波数スペクトルから許容誤差エネルギーを算出する。ここでは説明の便宜のためブロックタイプがONLY_SHORT_SEQUENCEの場合について詳細に説明する。a番目のブロックにおいて、SFBbのSMR値をSMR[a][b]、許容誤差エネルギーをxmin[a][b]とすると、許容誤差エネルギーは次式より算出される。
ここで、energy[a][b]はa番目のブロックのSFB bに含まれるスペクトルの総エネルギーである。i番目のスペクトルをxiと表記し、帯域bに含まれるスペクトルがj番目からk番目までであるとすると、energy[b]は次式で求められる。
次に、グループ判定器7は、ブロックタイプがONLY_SHORT_SEQUENCEである場合は、アタック検出器2から送出されるアタック検出情報に従ってショートブロックのグルーピングを行う。本実施形態におけるグルーピングの詳細を図17を用いて以下説明する。同図において、網掛けがされている領域がアタック検出器2によってアタックが検出された部分である。本実施形態におけるグルーピングは、アタック検出情報によってグループ境界を設定することにより行われる。具体的には、アタックが検出された領域を変換ウィンドウ幅に含むブロックのうち、もっとも時間的に早い位置にあるものを、グループの先頭としてグループ境界を設定する。なぜなら、変換ウィンドウ範囲内にアタックが存在する場合、周波数スペクトルの形が大きく変化するためである。図17の例では、左から二番目と三番目のブロック間、三番目と四番目のブロック間、七番目と八番目のブロック間にブロック境界が設定される。
このように、ショートブロック間にブロック境界が存在するかどうかを、存在する場合は1、存在しない場合は0で表現すると、ブロック境界情報は7ビットのビットパターンで表現できる。図12は、本実施形態におけるブロック境界情報のイメージを示したものである。図12のビットパターンは図17に示したアタック検出結果と同期している。すなわち、図11のアタック検出情報から図12のブロック境界情報を作成することが可能であるが、その詳細については後述の第2の実施形態において述べる。
ここで、動作モードが通常モードの場合は、許容誤差エネルギーによって、グループ境界情報を検査し、必要ならばその補正を行う。具体的には、同じグループに属するブロック間の許容誤差エネルギーを比較し、大きく異なる場合に新たにグループ境界を追加するが、この処理の詳細は後述の第2の実施形態において後述する。
フィルタバンク6から出力された周波数スペクトルと、聴覚心理演算器5から出力されたPEと、グループ検出器7から出力された許容誤差エネルギーに基づいて、ビット割当て器8はSFBごとにビットを割り当て、量子化器9は各SFBのスケールファクタ(正規化係数)を算出し、SFBに割り当てられたビットに従って周波数スペクトルを量子化する。
各SFBのスケールファクタと量子化スペクトルはビット整形器10によって定められた書式に従ってビットストリームに整形されて、出力される。
以上説明したように、本実施形態におけるアタック検出器2は、入力時間信号をショートブロックのウィンドウ幅よりも細分化してアタック検出を行い、これによって作成されたアタック検出情報に基づきグループ判定器7はショートブロックのグルーピングを行い、更に、通常モードにおいては許容誤差エネルギーによってグループの連続性を検査する。よって、従来技術と比較して簡単な処理によって、入力情報の変化に追従しながら、人間の聴覚特性とも合致したグルーピングが可能になるため、ショートブロック時にも符号化効率の低下を最小限に留めることを実現し、効率的に音質の良いビットストリームを作成することができる。
(第2の実施形態)
本実施形態は汎用的なPC(パーソナルコンピュータ)上で動作するソフトウェアプログラムとして実施することも可能である。以下、この場合について図面を用いて説明する。
本実施形態は汎用的なPC(パーソナルコンピュータ)上で動作するソフトウェアプログラムとして実施することも可能である。以下、この場合について図面を用いて説明する。
図6は、本発明の第2の実施形態におけるオーディオ信号符号化装置の構成例である。図示の構成において、100はCPUであり、オーディオ信号符号化処理のための演算、論理判断等を行い、102のバスを介して、バスに接続された各構成要素を制御する。
101はメモリであり、本実施形態の構成例における基本I/Oプログラムや、実行しているプログラムコード、プログラム処理時に必要なデータなどを格納する。
102はバスであり、CPU100の制御の対象とする構成要素を指示するアドレス信号を転送し、CPU100の制御の対象とする各構成要素のコントロール信号を転送し、各構成機器相互間のデータ転送を行う。
103は端末であり、装置の起動、各種条件や入力信号の設定、符号化開始の指示を行う。
104は外部記憶装置であり、データやプログラム等を記憶するための外部記憶領域である。データやプログラム等は必要に応じて保管され、また、保管されたデータやプログラムは必要な時に呼び出される。
105はメディアドライブであり、記録媒体に記録されているプログラムやデータ、デジタルオーディオ信号などはこのメディアドライブ105が読み取ることにより本オーディオ信号符号化装置にロードされる。また、外部記憶装置104に蓄えられた各種データや実行プログラムを、記録媒体に書き込むことができる。
106はマイクであり、音を集音してオーディオ信号に変換する。
107はスピーカーであり、任意のオーディオ信号データを実際の音にして出力することができる。
107はスピーカーであり、任意のオーディオ信号データを実際の音にして出力することができる。
108は通信網であり、LAN、公衆回線、無線回線、放送電波などで構成されている。
109は通信インターフェースであり、通信網108に接続されている。本実施形態のオーディオ信号符号化装置はこの機器を介して通信網108を経由し、外部機器と通信し、データやプログラムを送受信することができる。
109は通信インターフェースであり、通信網108に接続されている。本実施形態のオーディオ信号符号化装置はこの機器を介して通信網108を経由し、外部機器と通信し、データやプログラムを送受信することができる。
かかる各構成要素からなる本実施形態のオーディオ信号符号化装置においては、端末103からの各種の入力に応じて作動するものであって、端末103からの入力が供給されると、インタラプト信号がCPU100に送られることによって、CPU100がメモリ101内に記憶してある各種の制御信号を読出し、それらの制御信号に従って、各種の制御が行われる。
本実施形態の装置は、基本I/Oプログラム、OS,および本オーディオ信号符号化処理プログラムをCPU100が実行することによって動作する。基本I/Oプログラムはメモリ101中に書き込まれており、OSは外部記憶装置104に書き込まれている。そして、本装置の電源がONにされると、基本I/Oプログラム中のIPL(イニシャルプログラムローディング)機能により外部記憶部104からOSがメモリ101に読み込まれ、OSの動作が開始される。
本オーディオ信号符号化処理プログラムは、図2に示されるオーディオ信号符号化処理手順のフローチャートに基づいてプログラムコード化されたものである。
図7は、本オーディオ信号符号化処理プログラムおよび関連データを記録媒体に記録したときの内容構成図である。
本実施形態において、本オーディオ信号符号化処理プログラムおよび関連データは記録媒体に記録されている。図示したように記録媒体の先頭領域には、この記録媒体のディレクトリ情報が記録されており、その後にこの記録媒体のコンテンツである本オーディオ信号符号化処理プログラムと、オーディオ信号符号化処理関連データがファイルとして記録されている。
図8は本オーディオ信号符号化装置に、本オーディオ信号符号化処理プログラムを導入する模式図である。記録媒体に記録されたオーディオ信号符号化処理プログラムおよび関連データは、図6に示したようにメディアドライブ105を通じて本装置にロードすることができる。この記録媒体110をメディアドライブ105にセットすると、OS及び基本I/Oプログラムの制御のもとに本オーディオ信号符号化処理プログラムおよび関連データが記録媒体110から読み出され、外部記憶装置104に格納される。その後、再起動時にこれらの情報がメモリ101にロードされて動作可能となる。
図9は、本オーディオ信号符号化装置処理プログラムがメモリ101にロードされ実行可能となった状態のメモリマップを示す。
このとき、メモリ101のワークエリアには、各種変数、現行フレームブロックタイプ、先行フレームブロック長、現行フレームブロック長、先行フレームアタック検出情報、現行フレームアタック検出情報、入力信号バッファ、SMR、PE、余剰ビット量、時間小片エネルギー、グループ境界情報、グループ情報、閾値A、αの格納領域が確保されており、閾値Aとαには予め定められた値が格納されている。
図10は、本オーディオ信号符号化装置処理プログラムにおける入力信号バッファの一構成例である。
図示の構成において、バッファサイズは1024×3サンプルであり、説明の便宜上1024サンプル毎に縦線で区切っている。入力信号は1フレーム分の1024サンプルずつ右側から入力されて、左側から逐次処理される。すなわち、図10の左側が最も時間的に前に位置する信号サンプルとなり、右方向に時間順に時間信号サンプルが逐次入力される。
なお、図示の構成は1チャンネル分の入力信号バッファを模式的に示しており、本実施形態では入力信号のチャンネル分だけ同様なバッファが用意される。
図11は、本オーディオ信号符号化装置処理プログラムにおけるアタック検出情報の一構成例である。本実施形態においても、アタック検出情報は16個のビットで構成される。前述の第1の実施形態で説明したように、アタック検出情報の各ビットはアタック検出対象となる1024個の時間サンプルを16分割した64サンプルにおいて、アタックが検出されたかどうかを示すフラグになっている。
図12は、本オーディオ信号符号化装置処理プログラムにおけるグループ境界情報の一構成例である。本実施形態においても、グループ境界情報は7個のビットで構成される。前述の第1の実施形態で説明したように、グループ境界情報の各ビットは、各ショートブロック間にグループ境界が存在するかどうかを示すフラグになっている。
以下、本実施形態においてCPU100で実行されるオーディオ信号符号化処理をフローに従って説明する。
図2は、本実施形態におけるオーディオ信号符号化処理のフローチャートである。
まず、S1は、符号化する入力オーディオ信号をユーザが端末103を用いて指定する処理である。本実施形態において、符号化するオーディオ信号は、外部記憶装置104に格納されているオーディオPCMファイルでも良いし、マイク106で捉えたリアルタイムの音声信号をアナログ・デジタル変換した信号でも良い。処理を終えると、S2へ進む。
まず、S1は、符号化する入力オーディオ信号をユーザが端末103を用いて指定する処理である。本実施形態において、符号化するオーディオ信号は、外部記憶装置104に格納されているオーディオPCMファイルでも良いし、マイク106で捉えたリアルタイムの音声信号をアナログ・デジタル変換した信号でも良い。処理を終えると、S2へ進む。
S2は、符号化する入力オーディオ信号が終了したかどうかを判定する処理である。入力信号が終了している場合は、S17へ処理が進む。未終了の場合は、S3へ処理が進む。
S3は、フレームごとの初期化を行う処理である。本実施形態において、ここで行われる処理は主に二つある。まず、図10に示す入力信号バッファにおいて、右側の2フレーム分、すなわち2048サンプルの時間信号を1フレーム分左にシフトするとともに、新たに1フレーム分、すなわち1024サンプルの入力信号を右側に読み込む。この処理は入力信号に含まれる全てのチャンネルに対して行われる。次に、メモリ101上に格納されている先行フレームブロック長の内容を現行フレームブロック長の領域に、また、先行フレームアタック検出情報の内容を現行フレームアタック検出情報の領域にそれぞれコピーする。処理を終えると、S4へ処理が進む。
S4は、符号化対象となっているフレームから時間的に先行するフレーム(以下、先行フレーム)のアタック検出を行う処理である。この処理の詳細は図3を用いて後述するが、この結果、メモリ101上にアタック検出情報が格納される。処理を終えると、S5へ進む。
S5は、S4のアタック検出結果によって、先行フレームのブロック長を判定する処理である。本実施形態において、S4においてアタックが検出された場合は、先行フレームのブロック長をショートブロックと判定し、アタックが検出されなかった場合は先行フレームのブロック長をロングブロックと判定する。判定の結果はメモリ101上の先行フレームブロック長に格納される。処理を終えると、S6へ進む。
S6は、メモリ101上に格納されている現行フレームブロック長と先行フレームブロック長から、最終的な現行フレームのブロックタイプを決定する処理である。例えば、MPEG-2 AACの場合において、現行フレームがロングブロック長であり、先行フレームがショートブロック長である場合は、現行フレームのブロックタイプとしてLONG_START_SEQUENCEが決定される。なお、ブロックタイプが決定されると、自動的にブロック長が決定する。MPEG-2 AACの場合、ブロックタイプがEIGHT_SHORT_SEQUENCEの場合はブロック長はショートブロック長となり、それ以外の場合はロングブロック長となる。現行フレームのブロック長がショートブロック長である場合は、S7へ処理が進む。現行ブロックのブロック長がロングブロック長である場合は、S10に処理が進む。
S7は、S6の判定結果に従って、ショートブロック長の場合の聴覚心理演算を行う処理である。この演算の結果、現行フレームの聴覚エントロピー(PE)と、量子化単位である分割周波数帯域ごとのSMR値が算出される。ここで、SMR値はショートブロック時の8組が算出される。処理を終えると、S8へ処理が進む。
S8では、S6で行われた判定に基づき、現行フレームの入力信号に対してショートブロック長による直交変換を行う。MPEG-2 AACの場合、入力信号バッファにおける現行フレームの2048サンプルのうち、448番目のサンプルを先頭として256サンプルを一つのブロックとして窓掛け後にMDCTを行い、128個の周波数成分を出力する変換を、入力信号を128サンプルずつずらしながら都合8回行い、8組の周波数スペクトルを得る。処理を終えると、S9に処理が進む。
S9は、S4で計算された分割周波数帯域ごとのSMR値と、S7で計算された8組のショートブロックスペクトルから周波数帯域ごとの許容誤差エネルギーを計算し、それに基づいてショートブロックのグループを決定する処理である。この処理の詳細は図4を用いて後述する。処理を終えると、S13へ進む。
S10では、S6で行われた決定に基づき、処理対象フレームに対してロングブロックによる直交変換を行う。MPEG-2 AACの場合、この結果、1024の周波数成分に分割されたスペクトルの組が一組だけ得られる。処理を終えると、S11に処理が進む。
S11は、S6で決定されたブロックタイプに応じて、現行フレームの入力信号に対して窓掛けを行った後、ロングブロック長の直行変換を行う処理である。例えば、MPEG-2 AACの場合、現行フレームの入力信号2048サンプルを直行変換して、1024の周波数成分からなる周波数スペクトルが得られる。処理を終えると、S12へ進む。
S12は、S10で得られたSMR値とS11で得られたスペクトルから許容誤差エネルギーを算出する処理である。許容誤差エネルギーの計算は、第1の実施形態において説明した式によってSFBごとに行われる。処理を終えると、S13へ処理が進む。
S13は、ビット割当てを行う処理である。本実施形態において、ビット割当ては二段階に行われる。まず、処理中のフレーム全体に割り当てるビットを余剰ビット量や、S7やS10で算出された処理中のフレームのPE値、変換ブロック長から決定し、次に、S9もしくはS12で得られる許容誤差エネルギーより、フレーム内の各SFBに割り当てるビット量を決定する。このような処理は本実施形態のような変換符号化方法において一般的であるので、詳細は説明しない。処理を終えると、S14へ処理が進む。
S14は、各SFBのスケールファクタを算出するとともに、S13で割り当てられたビット量に従って、周波数スペクトルを量子化する処理である。処理を終えると、S15へ処理が進む。
S15は、S14で算出されたスケールファクタと量子化スペクトルを、符号化方式によって定められたフォーマットに従って整形し、ビットストリームとして出力する処理である。本実施形態において、この処理によって出力されるビットストリームは、外部記憶装置104に格納されても良いし、あるいは、通信インターフェース109を介して回線網108に繋がっている外部機器に出力されても良い。処理を終えると、S2へ処理が進む。
S17は、聴覚心理演算や直交変換などで生じる遅延によってまだ出力されていない量子化スペクトルがメモリ上に残っているため、それらをビットストリームに整形して出力する処理である。処理を終えると、オーディオ信号符号化処理を終了する。
図3は、本実施形態におけるS4のアタック検出処理を詳細化したフローチャートである。
S101は、先行フレームの入力信号をハイパスフィルタに通して、高域の信号を取り出す処理である。具体的には、先行フレームの2048サンプルのうち、先頭から576番目のサンプルから1024個の時間信号サンプルにハイパスフィルタを適用する。処理を終えると、S102へ進む。
S102は、S101によってハイパスフィルタを通した1024個の高域信号を先頭から64サンプルずつの小片に16分割する処理である。処理を終えると、S103へ進む。
S103は、S102で作成した64サンプルずつの高域時間信号小片の振幅エネルギーを算出する処理である。本実施形態において、p番目の高域時間小片のi番目の高域時間信号をxp,i、振幅エネルギーをEngy[p]とすると、これは次式によって計算される。
処理を終えると、S104へ進む。
S104は、小片のカウンタ変数pを0に初期化する処理である。処理を終えると、S105へ進む。
S104は、小片のカウンタ変数pを0に初期化する処理である。処理を終えると、S105へ進む。
S105は、p番目の時間小片振幅エネルギーEngy[p]と、二つ前の時間小片振幅エネルギーEngy[p-2]との比をとり、予め定められている閾値Aより大きいかどうかを判定する処理である。ここで、p=0、p=1の場合は、前回のアタック検出処理において算出したEngy[14]とEngy[15]を各々二つ前の値として使用する。これらの値はメモリ101上のワークエリアに保存されている。この判定の結果、時間小片振幅エネルギーの比が閾値Aより大きい場合はS106へ処理が進む。そうでない場合は、S107へ処理が進む。
S106は、S105の判定の結果、アタックが検出されたものとして、メモリ101上の先行フレームアタック検出情報において、図11に示すビット列のうちp番目のビットであるAttack[p]に1を格納する。処理を終えると、S108へ進む。
S107は、S105の判定の結果、アタックが検出されなかったものとして、メモリ101上のアタック検出情報、すなわち、図11に示すビット列のp番目のビットであるAttack[p]に0を格納する。処理を終えると、S108へ進む。
S108は、小片カウンタpに1を加える処理である。処理を終えると、S109へ進む。
S109は、小片カウンタpが16であるかどうかを判定する処理である。この判定の結果、pが16である場合はS110へ処理が進む。pが16以外の場合は、S105へ処理が進む。
S110は、S103で算出した時間小片振幅エネルギーのうち、14番目と15番目のエネルギーEngy[14]とEngy[15]をメモリ101上のワークエリアに格納する処理である。これは、次回のアタック検出処理において利用される。処理を終えると、アタック検出処理を終えてリターンする。
図4は、本実施形態におけるS9のグループ判定処理を詳細化したフローチャートである。
S201は、8組の周波数スペクトルと、SFBごとのSMR値より、8組の許容誤差エネルギーを算出する処理である。この計算も第1の実施形態における式(1)と同様な計算を行うことによって求められる。処理を終えると、S202へ進む。
S202は、インデックス変数aに2を、また、bに0を設定する処理である。本実施形態において、aはアタック検出情報のビット位置を示すために、また、bはグループ境界情報のビット位置を示すために利用される。処理を終えると、S203へ進む。
S203は、インデックス変数aが16未満であるかどうかを判定する処理である。この判定の結果、aが16未満であればS204へ処理が進む。aが16以上である場合は、S207へ進む。
S204は、現行フレームアタック検出情報において、a番目、もしくはa+1番目のビットが1であるかどうかを判定する処理である。この判定の結果、どちらかのビットが1である場合はS205へ処理が進む。それ以外の場合は、S206へ進む。
S205は、グループ境界情報において、b番目のビットであるgroup[b]に1を設定する処理である。すなわち、アタック検出処理においてこの位置にアタックが検出されているため、ここにグループ境界を設定する。処理を終えると、S206へ進む。
S206は、インデックス変数aに2を加え、bに1を加える処理である。処理を終えると、S203へ進む。
S207は、メモリ101上のグループ境界情報に基づき、グループ情報を作成する処理である。本実施形態において、グループ情報はグループの数と、各グループに含まれるショートブロックの数(以下、グループ長)で表現される。処理を終えると、S208へ進む。
S208は、符号化器の符号化モードが高速(動作)モードであるかどうかを判定する処理である。符号化モードが高速モードである場合は、S210へ進む。高速モードでない場合は、S209へ進む。
S209は、許容誤差エネルギーによってグループ境界情報を補正する処理である。この処理の詳細は図5を用いて後述する。処理を終えると、S210へ進む。
S210は、S207もしくはS209で作成されたグループ情報に応じて許容誤差エネルギーをグループ毎にまとめる処理である。本実施形態において、この処理は、同グループ内に含まれる同じ分割周波数帯域の許容誤差エネルギーの総和を、グループに含まれるブロック数で割ることによってなされる。処理を終えると、S211へ進む。
S211は、決定されたグループ情報に従って、同グループ、同スケールファクタごとにまとめるようにして、スペクトル成分の順番を入れ替える処理である。本実施形態では、MPEG-2 AACの場合を考慮しているが、MPEG-2 AACではこの並び替え順は規格上で定められており、公知であるため詳細は説明しない。処理を終えると、グループ判定処理を終了し、リターンする。
図5は、本実施形態におけるS209のグループ補正処理を詳細化したフローチャートである。
S301は、メモリ101上のワークエリアにあるグループカウンタ変数gに0を設定する処理である。処理を終えると、S302へ進む。
S302は、メモリ101上のワークエリアにあるグループ内ブロックカウンタwに0を設定する処理である。処理を終えると、S303へ進む。
S303は、グループ内ブロックカウンタwに1を加えた値がg番目のグループ長glen[g]を超えていないかどうかを判定する処理である。この判定の結果、グループ長を超えていない場合はS304へ処理が進む。グループ長を超えている場合は、S309へ処理が進む。
S304は、ブロックwとブロックw+1の許容誤差差分絶対和Sを算出する処理である。本実施形態において、各ショートブロックがn個の分割周波数帯域に分割される場合、Sは次式によって求められる。
ただし、xmin[w][b]はブロックwの分割周波数帯域bにおける許容誤差エネルギーである。処理を終えると、S305へ進む。
S305は、ブロックwの許容誤差エネルギー総和Xを算出する処理である。Xは次式によって求められる。
処理を終えると、S306へ進む。
S306は、S304で計算した許容誤差エネルギー差分和Sと、S305で計算したブロックwの許容誤差エネルギー総和Xに予め定められた係数α(0 < α < 1)を掛けた値とを比較する処理である。
S306は、S304で計算した許容誤差エネルギー差分和Sと、S305で計算したブロックwの許容誤差エネルギー総和Xに予め定められた係数α(0 < α < 1)を掛けた値とを比較する処理である。
この比較の結果、許容誤差エネルギー差分和Sの大きさが大きい場合は、ブロックwとw+1の間をグループの切れ目と判断し、S307へ処理が進む。そうでない場合は、ブロックwとw+1に連続性があると判断し、S308へ処理が進む。
S307は、S306の判定に従って、ブロックwとw+1の境界にグループ境界を追加設定する処理である。この処理は、メモリ101上のグループ境界情報にこのグループ境界を追加することにより行われる。処理を終えると、S308へ進む。
S308は、ブロックカウンタwに1を加える処理である。処理を終えると、S303へ進む。
S309は、グループカウンタgが総グループ数gnumより小さいかどうかを判定する処理である。なお、総グループ数gnumはメモリ101上のグループ情報に格納されている。この判定の結果、gがgnumより小さい場合は、残りのグループの補正を行うためにS302へ進む。gがgnum以上の場合は、全てのグループ補正が済んでいるため、S310へ進む。
S310は、新たにグループ境界が追加されたグループ境界情報に基づいて、グループ情報を再度作成する処理である。ここでは、図4のS207と全く同様な処理が行われる。処理を終えると、グループ境界補正処理を終了し、リターンする。
以上、本実施形態における符号化処理では、このグループ補正処理を行うことにより、アタックが検出されなかった場合にも著しくブロック間の許容誤差エネルギーに差が生じた場合は、別のグループとして扱うため、より人間の聴覚特性に合致したグルーピングが可能となる。
以上説明したように、本実施形態におけるオーディオ信号符号化処理では、アタック検出処理において、ショートブロックよりも短時間の小片において詳細なアタック検出処理を行い、その結果に基づいてショートブロックのグルーピングを行うことによって、入力信号に合致したグルーピングを効率的に実行することが可能になる。
さらに、許容誤差エネルギーに基づくグループ補正処理を行うことにより、アタックが検出されなかった場合にも著しくブロック間の許容誤差エネルギーに差が生じた場合は、別のグループとして扱うため、より人間の聴覚特性に合致したグルーピングを行うことができる。
また、符号化モードが高速モードである場合はグループ補正処理を省略することによって、処理負荷を増大させることなく高速にグルーピングを実行することができる。
(その他の実施形態)
なお、本発明は上述した実施形態に限定されるものではない。また、上述の第2の実施形態では、許容誤差エネルギーの差分の総和によってグルーピング補正を行う例を示したが、許容誤差エネルギーのピークによってグルーピング補正を行うことも可能である。また、許容誤差エネルギーの差分和とピーク位置差分、ピーク差分を同時に検出し、総合的に判断してグルーピングの補正を行ってもよい。また、上述の第2の実施形態では、特に記録媒体に関して言及していないが、これは、FD、HDD、CD、DVD、MO、半導体メモリなど、どのような記録媒体を用いても適用可能である。上記の符号化形式は、MPEG-2/4 AACが好ましい。その他、本発明はその要旨を逸脱しない範囲で種種変形して実施することができる。
なお、本発明は上述した実施形態に限定されるものではない。また、上述の第2の実施形態では、許容誤差エネルギーの差分の総和によってグルーピング補正を行う例を示したが、許容誤差エネルギーのピークによってグルーピング補正を行うことも可能である。また、許容誤差エネルギーの差分和とピーク位置差分、ピーク差分を同時に検出し、総合的に判断してグルーピングの補正を行ってもよい。また、上述の第2の実施形態では、特に記録媒体に関して言及していないが、これは、FD、HDD、CD、DVD、MO、半導体メモリなど、どのような記録媒体を用いても適用可能である。上記の符号化形式は、MPEG-2/4 AACが好ましい。その他、本発明はその要旨を逸脱しない範囲で種種変形して実施することができる。
以上説明したように、第1及び第2の実施形態のオーディオ信号符号化装置では、ショートブロックよりも短時間の小片において詳細なアタック検出を行い、その結果に基づいてショートブロックのグルーピングを行うことによって、入力信号に合致したグルーピングを効率的に実行することが可能になる。
さらに、許容誤差エネルギーに基づくグループ補正を行うことにより、アタックが検出されなかった場合にも著しくブロック間の許容誤差エネルギーに差が生じた場合は、別のグループとして扱うため、より人間の聴覚特性に合致したグルーピングを行うことを実現し、高音質なビットストリームを作成することができる。
また、符号化モードが高速モードである場合はグループ補正を省略することによって、処理負荷を増大させることなく高速にグルーピングを実行することができる。
グループ判定器7は、アタック検出器2が出力するアタック検出情報と周波数帯域ごとの許容誤差エネルギーに基づいて短いブロックのグループ分けを判定することによって、入力信号の変化に応じ、かつ、人間の聴覚特性にも合致したグルーピングを行うことを実現し、効率的に音質の良いビットストリームを作成することができる。
本実施形態によれば、ごく簡単なアタック検出を時間領域で行い、補正を行う場合にも各ショートブロック間の許容誤差エネルギー比較は単純な処理を各一回だけ行えばよいため、軽い処理を行うだけでグルーピングでき、従来の方法に比べて計算量が著しく少ない。
また、オーディオ入力信号のアタックを検出してグループの切れ目を判定することで入力信号に合致したグルーピングを行い、さらに聴覚分析に基づく許容誤差エネルギーによってグループの連続性を検証するため、より人間の聴覚に合った結果を得ることができ、結果的に聴感ノイズの少ないグルーピング結果が得られる。
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
1 フレーム分割器
2 アタック検出器
3 ブロック判定器
4 遅延バッファ
5 聴覚心理演算器
6 フィルタバンク
7 グループ判定器
8 ビット割当て器
9 量子化器
10 ビット整形器
100 CPU
101 メモリ
102 バス
103 端末
104 外部記憶
105 メディアドライブ
106 マイク
107 スピーカー
108 通信回線
109 通信インターフェース
110 記録媒体
200 入力情報バッファ
2 アタック検出器
3 ブロック判定器
4 遅延バッファ
5 聴覚心理演算器
6 フィルタバンク
7 グループ判定器
8 ビット割当て器
9 量子化器
10 ビット整形器
100 CPU
101 メモリ
102 バス
103 端末
104 外部記憶
105 メディアドライブ
106 マイク
107 スピーカー
108 通信回線
109 通信インターフェース
110 記録媒体
200 入力情報バッファ
Claims (17)
- オーディオ入力信号をフレームに分割するフレーム分割部と、
前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出部と、
前記アタック検出部の検出結果に応じて変換ブロック長を決定するブロック判定部と、
オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算部と、
前記ブロック判定部が決定する変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換するフィルタバンク部と、
前記フィルタバンク部が短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定部と、
前記フィルタバンク部により変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当て部と、
前記ビット割当て部により決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化部と
を有することを特徴とするオーディオ信号符号化装置。 - 前記アタック検出部は、オーディオ入力信号を短いブロック長よりもさらに短期間の時間小片に分割してその時間小片単位でアタック検出情報を検出することを特徴とする請求項1記載のオーディオ信号符号化装置。
- 前記グループ判定部は、前記アタック検出情報に基づいてグループ境界を決定することを特徴とする請求項1又は2記載のオーディオ信号符号化装置。
- 前記グループ判定部は、前記アタック検出情報及び周波数帯域毎の許容誤差エネルギーに基づいてグループ分けを行うことを特徴とする請求項1〜3のいずれか1項に記載のオーディオ信号符号化装置。
- 前記許容誤差エネルギーは、前記聴覚心理演算部が出力する周波数帯域毎の信号対マスク比の逆数と、各周波数帯域のスペクトルエネルギーの積であることを特徴とする請求項4記載のオーディオ信号符号化装置。
- 前記グループ判定部は、前記許容誤差エネルギーを利用してグループの連続性を判断してグループ分けすることを特徴とする請求項4又は5記載のオーディオ信号符号化装置。
- 前記グループ判定部は、通常動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行い、高速動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行わないことを特徴とする請求項6記載のオーディオ信号符号化装置。
- 符号化形式がMPEG−2/4 AACであることを特徴とする請求項1〜7のいずれか1項に記載のオーディオ信号符号化装置。
- オーディオ入力信号をフレームに分割するフレーム分割ステップと、
前記フレーム分割されたオーディオ入力信号内の急激な振幅変化をアタック検出情報として検出するアタック検出ステップと、
前記アタック検出結果に応じて変換ブロック長を決定するブロック判定ステップと、
オーディオ入力信号を分析し、聴覚マスキング計算を行う聴覚心理演算ステップと、
前記決定され変換ブロック長に従って、処理対象フレーム中の時間領域のオーディオ入力信号を周波数スペクトルに変換する変換ステップと、
前記変換ステップで短いブロック長で周波数変換を行った場合、前記アタック検出情報に基づいて前記周波数スペクトルをブロック数よりも小さい数のグループにグループ分けするグループ判定ステップと、
前記変換された周波数スペクトルを複数の周波数帯域に分割して、前記聴覚心理演算ステップの演算結果によって各周波数帯域に割り当てるビット量を決定するビット割当てステップと、
前記決定されたビット割当てに従って前記グループ分けされた周波数スペクトルを量子化する量子化ステップと
を有することを特徴とするオーディオ信号符号化方法。 - 前記アタック検出ステップは、オーディオ入力信号を短いブロック長よりもさらに短期間の時間小片に分割してその時間小片単位でアタック検出情報を検出することを特徴とする請求項9記載のオーディオ信号符号化方法。
- 前記グループ判定ステップは、前記アタック検出情報に基づいてグループ境界を決定することを特徴とする請求項9又は10記載のオーディオ信号符号化方法。
- 前記グループ判定ステップは、前記アタック検出情報及び周波数帯域毎の許容誤差エネルギーに基づいてグループ分けを行うことを特徴とする請求項9〜11のいずれか1項に記載のオーディオ信号符号化方法。
- 前記許容誤差エネルギーは、前記聴覚心理演算ステップで出力される周波数帯域毎の信号対マスク比の逆数と、各周波数帯域のスペクトルエネルギーの積であることを特徴とする請求項12記載のオーディオ信号符号化方法。
- 前記グループ判定ステップは、前記許容誤差エネルギーを利用してグループの連続性を判断してグループ分けすることを特徴とする請求項12又は13記載のオーディオ信号符号化方法。
- 前記グループ判定ステップは、通常動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行い、高速動作モードの場合は前記許容誤差エネルギーによるグループの連続性の判断を行わないことを特徴とする請求項14記載のオーディオ信号符号化方法。
- 符号化形式がMPEG−2/4 AACであることを特徴とする請求項9〜15のいずれか1項に記載のオーディオ信号符号化方法。
- 請求項9〜16のいずれか1項に記載のオーディオ信号符号化方法の各ステップをコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004312923A JP2006126372A (ja) | 2004-10-27 | 2004-10-27 | オーディオ信号符号化装置、方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004312923A JP2006126372A (ja) | 2004-10-27 | 2004-10-27 | オーディオ信号符号化装置、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006126372A true JP2006126372A (ja) | 2006-05-18 |
Family
ID=36721205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004312923A Pending JP2006126372A (ja) | 2004-10-27 | 2004-10-27 | オーディオ信号符号化装置、方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006126372A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008135A (ja) * | 2009-06-29 | 2011-01-13 | Fujitsu Ltd | 情報処理装置およびプログラム |
US8249882B2 (en) | 2006-11-24 | 2012-08-21 | Fujitsu Limited | Decoding apparatus and decoding method |
US8392197B2 (en) | 2007-08-22 | 2013-03-05 | Nec Corporation | Speaker speed conversion system, method for same, and speed conversion device |
KR101393300B1 (ko) | 2007-04-24 | 2014-05-12 | 삼성전자주식회사 | 오디오/스피치 신호 복호화 방법 및 장치 |
US9418666B2 (en) | 2007-04-24 | 2016-08-16 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding audio/speech signal |
-
2004
- 2004-10-27 JP JP2004312923A patent/JP2006126372A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8249882B2 (en) | 2006-11-24 | 2012-08-21 | Fujitsu Limited | Decoding apparatus and decoding method |
KR101393300B1 (ko) | 2007-04-24 | 2014-05-12 | 삼성전자주식회사 | 오디오/스피치 신호 복호화 방법 및 장치 |
US9418666B2 (en) | 2007-04-24 | 2016-08-16 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding audio/speech signal |
US8392197B2 (en) | 2007-08-22 | 2013-03-05 | Nec Corporation | Speaker speed conversion system, method for same, and speed conversion device |
JP2011008135A (ja) * | 2009-06-29 | 2011-01-13 | Fujitsu Ltd | 情報処理装置およびプログラム |
US8295499B2 (en) | 2009-06-29 | 2012-10-23 | Fujitsu Limited | Audio information processing and attack detection apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7383067B2 (ja) | 高度なスペクトラム拡張を使用して量子化ノイズを低減するための圧縮伸張装置および方法 | |
RU2685024C1 (ru) | Постпроцессор, препроцессор, аудиокодер, аудиодекодер и соответствующие способы для улучшения обработки транзиентов | |
RU2449387C2 (ru) | Способ и устройство для обработки сигнала | |
JP4413257B2 (ja) | マルチチャネル信号を処理する装置および方法 | |
US7181404B2 (en) | Method and apparatus for audio compression | |
EP1340317A1 (en) | Parametric coding of audio signals | |
RU2656681C1 (ru) | Способ и устройство для определения режима кодирования, способ и устройство для кодирования аудиосигналов и способ, и устройство для декодирования аудиосигналов | |
KR20150110708A (ko) | 주파수 도메인 내의 선형 예측 코딩 기반 코딩을 위한 저주파수 강조 | |
RU2481650C2 (ru) | Ослабление опережающих эхо-сигналов в цифровом звуковом сигнале | |
KR102251833B1 (ko) | 오디오 신호의 부호화, 복호화 방법 및 장치 | |
JP2006126372A (ja) | オーディオ信号符号化装置、方法及びプログラム | |
KR101108955B1 (ko) | 오디오 신호 처리 방법 및 장치 | |
US10332527B2 (en) | Method and apparatus for encoding and decoding audio signal | |
JP2005165056A (ja) | オーディオ信号符号化装置及び方法 | |
JP2005351977A (ja) | オーディオ信号符号化装置及びオーディオ信号符号化方法 | |
JP2005003912A (ja) | オーディオ信号符号化装置、オーディオ信号符号化方法及びプログラム | |
JP2005003835A (ja) | オーディオ信号符号化装置、オーディオ信号符号化方法、及びプログラム |