説明

符号化装置および方法、並びにプログラム

【課題】音質を向上させるとともに、より効率的に音声の符号化を行なう。
【解決手段】第一高域符号化回路は、低域サブバンド信号と高域サブバンド信号とに基づいて高域の符号化を行い、その高域符号量を求める。低域符号化回路は、高域符号量により定まる符号量で低域信号を符号化し、低域復号回路は符号化された低域信号の復号を行なう。サブバンド分割回路は、復号により得られた復号低域信号を複数のサブバンドの復号低域サブバンド信号に分割し、第二高域符号化回路は、復号低域サブバンド信号と高域サブバンド信号とに基づいて、高域成分を得るための高域符号列が高域符号量以下の符号量となるように、高域符号列を生成する。本発明は、符号化装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は符号化装置および方法、並びにプログラムに関し、特に、音質を向上させるとともに、より効率的に音声の符号化を行なうことができるようにした符号化装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、音声信号の符号化手法として、HE-AAC(High Efficiency MPEG(Moving Picture Experts Group)4 AAC(Advanced Audio Coding))(国際標準規格ISO/IEC14496-3)が知られている。
【0003】
この符号化手法では、高域の信号成分から特徴的な情報が抽出され、低域の信号成分と併せて符号化される(例えば、特許文献1参照)。また、復号の際には低域の信号成分が高域へ写像され、符号列に含まれる高域の情報をもとに周波数包絡の調整が行なわれる。このような符号化手法では、高域の信号成分の特徴的な情報だけを高域の信号成分に関する情報として符号化するので、音質の劣化を抑えつつ、符号化効率を向上させることができる。
【0004】
一般的に、高域成分に関する情報として、高域の特徴的な情報だけを符号化する符号化方式を採用する符号化装置では、低域に比べて高域の符号量が極端に小さく、かつ高域の符号量の調整の自由度が小さい場合が多い。そのため、まず高域の信号成分に関する情報を符号化し、次に、余った符号量で低域の信号成分を符号化する方法がとられている。また、こうした構成をとることで、符号化装置の構成の複雑化を避けるだけでなく、計算量の肥大化を防ぐこともできる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−139844号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した技術では、音質を向上させつつ、充分効率的に音声の符号化を行なうことができなかった。具体的には、例えば符号化時において、低域の信号成分の符号列の符号量と、高域の特徴的な情報の符号量とを適切に制御することができなかった。
【0007】
本技術は、このような状況に鑑みてなされたものであり、音質を向上させるとともに、より効率的に音声の符号化を行なうことができるようにするものである。
【課題を解決するための手段】
【0008】
本技術の一側面の符号化装置は、入力信号の低域成分と高域成分に基づいて、前記高域成分を得るための高域符号列の符号量である高域符号量を算出する第一高域符号化部と、前記入力信号の前記低域成分を符号化し、低域符号列を生成する低域符号化部と、前記低域符号列を復号する低域復号部と、前記高域符号列の符号量が前記高域符号量以下の符号量となるように、前記低域符号列の復号で得られた復号低域成分と、前記高域成分とに基づいて、前記高域符号列を生成する第二高域符号化部と、前記低域符号列と前記高域符号列とを多重化して出力符号列を生成する多重化部とを備える。
【0009】
前記第一高域符号化部には、前記低域成分を構成する複数のサブバンドの低域サブバンド信号と、前記高域成分を構成する複数のサブバンドの高域サブバンド信号とに基づいて、前記高域符号量を算出させ、前記第二高域符号化部には、前記復号低域成分を構成する複数のサブバンドの復号低域サブバンド信号と、前記高域サブバンド信号とに基づいて前記高域符号列を生成させることができる。
【0010】
符号化装置には、前記第二高域符号化部に入力される前記高域符号量、前記復号低域成分、および前記高域成分を遅延させる遅延部をさらに設けることができる。
【0011】
符号化装置には、前記第二高域符号化部で得られた前記高域符号列の符号量が、前記高域符号量より少ない場合、前記高域符号列の符号量と前記高域符号量の差分を、次回以降の処理において使用可能な剰余符号量として前記剰余符号量の蓄積を制御する符号量調整部をさらに設けることができる。
【0012】
前記剰余符号量は、前記高域符号列または前記低域符号列の少なくとも何れかの符号量の調整に用いることができる。
【0013】
本技術の一側面の符号化方法またはプログラムは、入力信号の低域成分と高域成分に基づいて、前記高域成分を得るための高域符号列の符号量である高域符号量を算出し、前記入力信号の前記低域成分を符号化し、低域符号列を生成し、前記低域符号列を復号し、前記高域符号列の符号量が前記高域符号量以下の符号量となるように、前記低域符号列の復号で得られた復号低域成分と、前記高域成分とに基づいて、前記高域符号列を生成し、前記低域符号列と前記高域符号列とを多重化して出力符号列を生成するステップを含む。
【0014】
本技術の一側面においては、入力信号の低域成分と高域成分に基づいて、前記高域成分を得るための高域符号列の符号量である高域符号量が算出され、前記入力信号の前記低域成分が符号化されて低域符号列が生成され、前記低域符号列が復号され、前記高域符号列の符号量が前記高域符号量以下の符号量となるように、前記低域符号列の復号で得られた復号低域成分と、前記高域成分とに基づいて、前記高域符号列が生成され、前記低域符号列と前記高域符号列とが多重化されて出力符号列が生成される。
【発明の効果】
【0015】
本技術の一側面によれば、音質を向上させるとともに、より効率的に音声の符号化を行なうことができる。
【図面の簡単な説明】
【0016】
【図1】符号化装置の一実施の形態の構成例を示す図である。
【図2】入力信号の各サブバンドのパワーを示す図である。
【図3】入力信号と復号低域信号の各サブバンドのパワーを示す図である。
【図4】符号化処理を説明するフローチャートである。
【図5】復号装置の構成例を示す図である。
【図6】復号処理を説明するフローチャートである。
【図7】符号化装置の他の構成例を示す図である。
【図8】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【0018】
〈第1の実施の形態〉
[符号化装置の構成例]
図1は、本技術を適用した符号化装置の一実施の形態の構成例を示す図である。
【0019】
この符号化装置11は、音声信号である入力信号を符号化し、その結果得られた出力符号列を出力する。
【0020】
符号化装置11は、サブバンド分割回路21、第一高域符号化回路22、低域通過フィルタ23、低域符号化回路24、低域復号回路25、サブバンド分割回路26、遅延回路27、遅延回路28、遅延回路29、第二高域符号化回路30、符号量調整回路31、符号量一時蓄積回路32、遅延回路33、および多重化回路34から構成される。
【0021】
サブバンド分割回路21は、入力信号を複数のサブバンド信号に分割し、得られた低域サブバンド信号を第一高域符号化回路22へ供給するとともに、高域サブバンド信号を第一高域符号化回路22、および遅延回路29へ供給する。
【0022】
例えば、入力信号全体の周波数帯域が、帯域幅の等しい複数の周波数帯域(以下、サブバンドと称する)に分割されて、入力信号が各サブバンドの信号(以下、サブバンド信号と称する)に分割される。そして、サブバンド信号のうち、高域側の所定のサブバンドのサブバンド信号が高域サブバンド信号とされ、高域側よりも周波数の低い低域側の所定のサブバンドのサブバンド信号が低域サブバンド信号とされる。
【0023】
第一高域符号化回路22は、サブバンド分割回路21から供給された低域サブバンド信号から得られる特徴量に基づき、高域サブバンド信号のパワーを推定するために用いられる推定係数を符号化し、その符号量(以下、高域符号量と称する)を低域符号化回路24、および遅延回路28へ供給する。
【0024】
低域通過フィルタ23は、供給された入力信号をフィルタリングして、その結果得られた、入力信号の低域成分である低域信号を低域符号化回路24へ供給する。この低域信号は、低域側の各低域サブバンド信号からなる信号である。
【0025】
低域符号化回路24は、入力信号の処理フレームで使用可能な符号量から、第一高域符号化回路22から供給された高域符号量を減じた符号量で、低域通過フィルタ23からの低域信号を符号化する。低域符号化回路24は、低域信号の符号化により得られた低域符号列を低域復号回路25、および遅延回路33へ供給する。
【0026】
低域復号回路25は、低域符号化回路24から供給された低域符号列の復号を行い、その結果得られた復号低域信号をサブバンド分割回路26へ供給する。サブバンド分割回路26は、低域復号回路25から供給された復号低域信号を、低域側の複数のサブバンドのサブバンド信号(以下、復号低域サブバンド信号と称する)に分割し、遅延回路27へ供給する。ここで、復号低域サブバンド信号のサブバンドのそれぞれは、低域サブバンド信号のサブバンドのそれぞれと同じ周波数帯域とされる。
【0027】
遅延回路27は、サブバンド分割回路26からの復号低域サブバンド信号を遅延させ、第二高域符号化回路30へ供給する。遅延回路28は、第一高域符号化回路22からの高域符号量を一定の処理フレームだけ遅延させ、第二高域符号化回路30へ供給する。遅延回路29は、サブバンド分割回路21からの高域サブバンド信号を遅延させ、第二高域符号化回路30へ供給する。
【0028】
第二高域符号化回路30は、遅延回路27から出力される復号低域サブバンド信号から得られる特徴量に基づき、遅延回路28で得られた高域符号量により定まる符号量以下になるように、遅延回路29からの高域サブバンド信号のパワーの推定係数を符号化する。第二高域符号化回路30は、推定係数を符号化して得られた高域符号列を多重化回路34へ供給するとともに、高域符号列の高域符号量を、符号量調整回路31へ供給する。
【0029】
符号量調整回路31は、第二高域符号化回路30で得られた高域符号量が、遅延回路28を通して得られる第一高域符号化回路22の高域符号量未満であった場合、その剰余符号量を符号量一時蓄積回路32へ供給する。符号量一時蓄積回路32は、剰余符号量の蓄積を行なう。この剰余符号量は、次回以降の処理フレームで適宜使用される。
【0030】
遅延回路33は、低域符号化回路24で得られた低域符号列を一定の処理フレームだけ遅延させ、多重化回路34へ供給する。多重化回路34は、遅延回路33からの低域符号列と、第二高域符号化回路30からの高域符号列を多重化し、その結果得られた出力符号列を出力する。
【0031】
[音質の向上について]
ところで、符号化装置11における符号化方式や、HE-AACといった符号化方式では、音声信号の高域成分の特徴的な情報が極めて少ない符号量で符号化され、人間の聴覚上歪が知覚されやすい周波数帯域である低域に、多くの符号量が割り当てられる。また、符号化装置11は、高域成分の信号の状態に応じて積極的に符号量を調整するため、高域符号量は処理フレームによって大きく変動することが多い。
【0032】
このような理由から、上述の符号化方式では、まず高域信号の符号化を行い、余った符号量で低域信号の符号化を行うのが一般的な構成とされている。
【0033】
また一方で、低域成分を用いて高域成分の符号化を行う符号化手法では、符号化装置11で扱う低域信号と、復号装置で扱う低域信号とが異なるという点が、高域信号の音質劣化の原因の一つになる。
【0034】
すなわち、入力信号に対するサブバンド分割により、例えば図2に示すように、入力信号が低域と高域の各サブバンドに分割されたとする。なお、図2では、入力信号の各サブバンドのパワーが示されている。また、図中、横軸は周波数を示し、縦軸は各サブバンドのサブバンド信号のパワーを示している。
【0035】
図2の例では、入力信号の低域成分はサブバンドsb-3乃至サブバンドsbの4つのサブバンドに分割され、入力信号の高域成分は、サブバンドsb+1乃至サブバンドsb+12の12のサブバンドに分割されている。また、低域側の最も周波数の高いサブバンドsbの高域側に隣接するサブバンドが、高域側の最も周波数の低いサブバンドsb+1とされている。
【0036】
ここで、各サブバンドにおける図中、横方向の実線が、それらのサブバンドのサブバンド信号(低域サブバンド信号または高域サブバンド信号)のパワーを示している。
【0037】
このような入力信号の低域成分が符号化されて、符号化により得られる低域符号列が復号装置で復号されたとする。この場合、低域符号列を復号して得られる復号低域信号に対してサブバンド分割を行なうと、復号低域信号は、例えば図3に示すように、サブバンドsb-3乃至サブバンドsbの4つのサブバンドに分割される。
【0038】
なお、図3において、横軸は周波数を示し、縦軸は各サブバンドのサブバンド信号のパワーを示している。また、各サブバンドの横方向の実線は、入力信号の符号化前の各サブバンド信号のパワーを示しており、各サブバンドの横方向の一点鎖線は、復号装置で得られた復号低域信号を構成する復号低域サブバンド信号のパワーを示している。
【0039】
図3に示されるように、復号装置において得られる復号低域信号は、符号化誤差を含んだものであるため、結果として、復号低域サブバンド信号のパワーは、符号化装置11における低域サブバンド信号のパワーと異なるものとなる。
【0040】
そのため、例えば低域サブバンド信号のパワーを特徴量として、複数の推定係数のうち、特徴量と高域サブバンド信号とから、最も高精度に高域サブバンド信号のパワーを推定できる推定係数を選択し、復号装置に出力すると音質の劣化が生じる恐れがある。
【0041】
すなわち、符号化側では、復号装置で得られる復号低域サブバンド信号とは異なる低域サブバンド信号と、高域サブバンド信号および推定係数とが用いられて高域サブバンド信号のパワーが推定され、その推定結果から、最も適切な推定係数が選択される。したがって、このように選択された推定係数を用いても、符号化側と復号側とで高域サブバンド信号のパワーの推定に用いられる低域成分が異なれば、高精度に高域サブバンド信号のパワーを推定できるとは限らない。
【0042】
そこで、より正確な推定を行うことによって音質を向上させるためには、符号化装置にも低域符号列を復号する復号装置を内蔵し、そこで得られる復号低域信号を用いて高域の符号化を行うことが必要である。
【0043】
符号化装置11では、低域復号回路25が設けられており、この低域復号回路25により低域符号列が復号され、これにより得られた復号低域サブバンド信号が用いられて高域の符号化が行なわれるため、復号により得られる音声の音質を向上させることができる。
【0044】
[符号化処理の説明]
次に、符号化装置11の動作について説明する。符号化装置11に入力信号が供給され、入力信号の符号化が指示されると、符号化装置11は符号化処理を行って、入力信号を符号化する。以下、図4のフローチャートを参照して、符号化装置11による符号化処理について説明する。
【0045】
ステップS11において、サブバンド分割回路21は、供給された入力信号を、所定の帯域幅を持つ複数のサブバンド信号に等分割する。ここで得られたサブバンド信号のうちの低域側の特定の範囲のサブバンド信号が低域サブバンド信号とされ、高域側の特定の範囲のサブバンド信号が高域サブバンド信号とされる。
【0046】
サブバンド分割回路21は、サブバンド分割により得られた低域サブバンド信号を第一高域符号化回路22に供給し、高域サブバンド信号を第一高域符号化回路22および遅延回路29に供給する。
【0047】
例えば、高域サブバンド信号のサブバンドの範囲は、入力信号の性質やビットレートなどに応じて符号化装置11側で設定される。また、低域サブバンド信号のサブバンドの範囲は、高域サブバンド信号の最低域のサブバンドより一つ低域側のサブバンドを、低域サブバンド信号の最高域のサブバンドとした、一定サブバンド数からなる周波数帯域とされる。このように、低域サブバンド信号と高域サブバンド信号がカバーするサブバンドの範囲は、符号化装置11と復号装置で同一である。
【0048】
ステップS12において、第一高域符号化回路22は、サブバンド分割回路21から供給された低域サブバンド信号からの推定に基づき高域の符号化を行なって、高域符号量を算出し、高域符号量を低域符号化回路24および遅延回路28に供給する。
【0049】
例えば、第一高域符号化回路22は、サブバンド分割回路21から供給された各サブバンドの低域サブバンド信号のパワー(以下、低域サブバンドパワーと称する)を特徴量として算出する。また、第一高域符号化回路22は、複数の推定係数ごとに、低域サブバンドパワーと推定係数とから高域の各サブバンドの高域サブバンド信号のパワーの推定値(以下、擬似高域サブバンドパワーと称する)を算出する。具体的には、サブバンドごとの推定係数が用いられて各サブバンドの低域サブバンドパワーが線形結合されて、所定のサブバンドの擬似高域サブバンドパワーとされる。
【0050】
そして、第一高域符号化回路22は、擬似高域サブバンドパワーと、実際の高域サブバンド信号のパワー(以下、高域サブバンドパワーと称する)とを比較して、複数の推定係数のうち、最も精度よく入力信号の高域を推定できる推定係数を選択する。第一高域符号化回路22は、選択された推定係数を特定する係数インデックスの符号量を、符号化された高域成分の符号量、つまり高域符号量とする。
【0051】
なお、低域信号を用いて高域の符号化を行う符号化手法であれば、符号化手法は様々な手法をとることが可能である。また、ステップS12における高域符号化処理では、高域符号量の算出ができれば、実際の符号化は行わなくともよい。さらに、計算処理量を低減させたい場合は、処理の一部を省略して高域符号量の見積もり値を取得するような構成もとることができる。
【0052】
ステップS13において、低域通過フィルタ23は、供給された入力信号に対するフィルタ処理を行うことで、入力信号の低域周波数成分を通過させて低域信号を生成し、低域符号化回路24に出力する。このフィルタ処理に用いるフィルタの遮断周波数としては、任意の周波数を設定することが可能であるが、本実施の形態では、上述の低域サブバンド信号の上端の周波数に対応して遮断周波数が設定される。
【0053】
ステップS14において、低域符号化回路24は、予め定められた処理フレーム全体で使用可能な符号量から、第一高域符号化回路22から供給された高域符号量を減じた符号量で、低域通過フィルタ23からの低域信号を符号化する。低域符号化回路24は、低域信号の符号化により得られた低域符号列を、低域復号回路25および遅延回路33に出力する。
【0054】
ステップS15において、低域復号回路25は、低域符号化回路24から供給された低域符号列の復号を行い、これにより得られた復号低域信号をサブバンド分割回路26に出力する。なお、符号化装置11では、低域信号の符号化及び復号を行う符号化方式は様々な方式をとることができ、例えば、ACELP(Algebraic Code Excited Linear Prediction)や、AAC(Advanced Audio Coding)などを採用することができる。
【0055】
ステップS16において、サブバンド分割回路26は、低域復号回路25から供給された復号低域信号を複数のサブバンドの復号低域サブバンド信号に分割し、遅延回路27に出力する。このサブバンド分割における、各サブバンドの下端及び上端の周波数は、ステップS11においてサブバンド分割回路21が行うサブバンド分割と同一とされる。つまり、復号低域サブバンド信号の各サブバンドは、低域サブバンド信号の各サブバンドと同じ周波数帯域とされる。
【0056】
ステップS17において、遅延回路27は、サブバンド分割回路26から供給された復号低域サブバンド信号を特定の時間サンプルだけ遅延させ、第二高域符号化回路30に供給する。
【0057】
遅延回路27での遅延量は、低域信号、高域信号、高域符号量、低域符号列の同期をとるためのものであり、低域、高域それぞれの符号化方式によって、適切な値を設定する必要がある。当然、符号化方式の構成によっては、各遅延回路の遅延量が0である場合もあり得る。他の遅延回路28,遅延回路29、および遅延回路33の説明は、遅延回路27が果たす機能と同等であるので、ここでは説明を省略する。
【0058】
ステップS18において、第二高域符号化回路30は、遅延回路27から出力される復号低域サブバンド信号から得られる特徴量に基づき、遅延回路28から供給された高域符号量以下の符号量になるように、遅延回路29から供給された高域サブバンド信号のパワーの推定係数を符号化する。
【0059】
例えば、第二高域符号化回路30は、遅延回路28から供給された高域符号量に、符号量一時蓄積回路32に蓄積されている剰余符号量を加算して、補正された高域符号量(以下、補正高域符号量と称する)を算出する。このとき、余剰符号量が、高域符号量の予め定められた上限補正量以上である場合には、高域符号量に上限補正量が加算されて得られる符号量が、補正高域符号量とされる。
【0060】
高域符号量の補正時において、符号量調整回路31は、符号量一時蓄積回路32に蓄積されている剰余符号量に基づいて、その剰余符号量または上限補正量を示す情報を、第二高域符号化回路30に供給する。また、符号量調整回路31は、符号量一時蓄積回路32の剰余符号量の更新を行なう。例えば、上限補正量を示す情報が第二高域符号化回路30に供給された場合、符号量調整回路31は、剰余符号量から上限補正量を減算して得られる符号量を、更新後の剰余符号量とする。
【0061】
さらに、第二高域符号化回路30は、高域サブバンド信号と復号低域サブバンド信号とに基づいて、高域符号列の符号量が補正高域符号量以下となるように、処理対象のフレームの音声信号の高域成分を符号化する。
【0062】
例えば、第二高域符号化回路30は、処理対象のフレームをいくつかの区間に分割し、ステップS12の処理と同様の処理を行って、各区間の推定係数を選択する。
【0063】
すなわち、第二高域符号化回路30は、復号低域サブバンド信号から復号低域サブバンドパワーを求め、推定係数ごとに、復号低域サブバンドパワーと推定係数とから擬似高域サブバンドパワーを算出する。そして、第二高域符号化回路30は、擬似高域サブバンドパワーと、高域サブバンド信号の高域サブバンドパワーとを比較して、最も精度よく入力信号の高域を推定できる推定係数を選択する。第二高域符号化回路30は、処理対象のフレームを構成する各区間の推定係数を示す係数インデックスからなる符号列を、高域符号列とする。
【0064】
ここで、高域符号列の符号量は、例えば処理対象のフレームを構成する区間の数を変化させることで調整が行なわれる。また、連続する区間で同じ推定係数が選択された場合には、それらの区間を特定する情報と、選択された1つの推定係数の係数インデックスとからなる情報が高域符号列を構成する符号列とされるようにして、高域符号列の符号量の調整が行なわれるようにしてもよい。
【0065】
なお、高域符号量の補正が行なわれないようにしてもよい。そのような場合には、高域符号列が遅延回路28から出力される高域符号量以下の符号量となるように、高域の符号化が行なわれる。
【0066】
また、ステップS18での符号化方式は、ステップS12における処理の符号化方式と同様に、低域信号を用いて高域の符号化を行う符号化手法であれば、符号化手法は様々な手法をとることができるが、少なくとも、ステップS12における符号化方式と同一の符号化規格に基づくものである必要がある。但し、ステップS18における符号化処理がステップS12における符号化処理と明確に異なるのは、第一に、ステップS12において算出された高域符号量以下になるように符号化する必要がある点、第二に、高域の符号化を行うために必要な低域の信号は、復号後の低域信号(復号低域サブバンド信号)である点である。
【0067】
このように、第一高域符号化回路22で高域の仮の符号化を行なって、高域符号量を定めておき、高域符号列が高域符号量により定まる符号量以下となるように、実際の高域の符号化を行なうことで、高域の符号化を行なう前に、高域符号列の符号量を確定させることができる。これにより、低域符号列に割り当てられる符号量を求めることができるので、直ちに低域信号の符号化を行なうことができ、より効率的に入力信号の符号化を行なうことが可能となる。
【0068】
ステップS19において、第二高域符号化回路30は、符号化により得られた高域符号列の符号量が補正高域符号量未満であるか否かを判定する。
【0069】
ステップS19において、補正高域符号量未満でないと判定された場合、つまり高域符号列の符号量が補正高域符号量と一致する場合、符号の剰余は発生しないので、処理はステップS23に進む。このとき、第二高域符号化回路30は、高域の符号化により得られた高域符号列を多重化回路34に供給する。
【0070】
これに対して、ステップS19において、補正高域符号量未満であると判定された場合、ステップS20において、符号量調整回路31は、高域符号列の符号量と、補正高域符号量との差分の符号量一時蓄積回路32への蓄積を行なう。すなわち、高域符号列の符号量と補正高域符号量の差の分の符号量が、符号量一時蓄積回路32に蓄積されている剰余符号量に加算されていき、剰余符号量が更新される。
【0071】
このような符号量一時蓄積回路32は、AACにおいてもビットリゾルバという名称で使われており、処理フレーム間での符号量の調整が行なわれる。なお、符号化装置11は、余剰符号量は、高域符号化のために用いられる構成になっているが、低域信号の符号化方式において、同様な機能を有する回路が存在する場合は、共通に使うことも可能である。すなわち、剰余符号量が高域符号列または低域符号列の何れか一方の符号量の調整にのみ用いられてもよいし、それらの両方の符号量の調整に用いられてもよい。
【0072】
ステップS21において、符号量調整回路31は、符号量一時蓄積回路32に蓄積している剰余符号量が予め定められた上限に達したか否かを判定する。
【0073】
例えば、符号量一時蓄積回路32では、剰余符号量とすることの可能な符号量の上限(以下、上限符号量と称する)が予め定められている。符号量調整回路31は、ステップS20で開始した、高域符号列の符号量と補正高域符号量の差分の符号量一時蓄積回路32への蓄積時に、剰余符号量が上限符号量に達した場合、ステップS21において剰余符号量が上限に達したと判定する。
【0074】
ステップS21において、剰余符号量が上限に達していないと判定された場合、高域符号列の符号量と、補正高域符号量の差分が、全て剰余符号量に加算され、剰余符号量が更新される。そして、その後、第二高域符号化回路30は、高域の符号化により得られた高域符号列を多重化回路34に供給し、処理はステップS23に進む。
【0075】
一方、ステップS21において、剰余符号量が上限に達したと判定された場合、ステップS22において、第二高域符号化回路30は、高域符号列に対するゼロ詰めを行なう。
【0076】
高域符号列の符号量と、補正高域符号量との差分を剰余符号量に加算していくときに、剰余符号量が上限符号量に達した場合、高域符号列の符号量と、補正高域符号量との差分のうち、まだ剰余符号量への加算が行なわれていない未処理の符号量が余ることになる。この未処理の符号量は、剰余符号量に加算することはできないので、第二高域符号化回路30は、この未処理の符号量の分だけ、高域符号列の最後尾に符号「0」を付加し、未処理の符号量を見かけ上、高域符号列の生成に用いたこととする。なお、復号時においては、高域符号列の最後尾に付加された符号「0」は、入力信号の復号には用いられない。
【0077】
第二高域符号化回路30は、高域符号列の最後尾に符号「0」を付加するゼロ詰めを行なうと、ゼロ詰め後の高域符号列を多重化回路34に供給し、処理はステップS23に進む。
【0078】
ステップS19において補正高域符号量未満でないと判定されたか、ステップS21において剰余符号量が上限に達していないと判定されたか、またはステップS22においてゼロ詰めが行なわれると、ステップS23の処理が行われる。
【0079】
すなわち、ステップS23において、多重化回路34は、遅延回路33からの低域符号列と、第二高域符号化回路30からの高域符号列とを多重化して出力符号列を生成し、出力符号列を出力する。このとき、多重化回路34は、低域符号列や高域符号列とともに、入力信号の低域側の上端と下端のサブバンドを示すインデックスも多重化する。このようにして出力符号列が出力されると、符号化処理は終了する。
【0080】
以上のように、符号化装置11は、高域符号量を求め、この高域符号量から定まる符号量で低域信号を符号化するとともに、低域符号列を復号して得られた復号低域信号や高域符号量に基づいて、高域成分の符号化を行なう。
【0081】
このように、高域の仮の符号化を行なって高域符号量を定めておき、高域符号列が高域符号量により定まる符号量以下となるように、実際の高域の符号化を行なうことで、高域の符号化を行なう前に、高域符号列の符号量を確定させることができる。これにより、低域符号列に割り当てられる符号量を求めることができ、直ちに低域信号の符号化を行なうことができる。したがって、符号化装置11の構成の複雑化を避け、かつ計算量の増大を避ける効率的な符号化を行なうことができる。しかも、復号後の低域の信号を用いて高域の符号化を行なうことにより、より適切な推定係数を選択することができ、音声の音質を向上させることができる。
【0082】
[復号装置の構成例]
次に、符号化装置11から出力される出力符号列を入力符号列として入力し、入力符号列の復号を行なう復号装置について説明する。復号装置は、例えば図5に示すように構成される。
【0083】
復号装置61は、非多重化回路71、低域復号回路72、サブバンド分割回路73、特徴量算出回路74、高域復号回路75、復号高域サブバンドパワー算出回路76、復号高域信号生成回路77、および合成回路78から構成される。
【0084】
非多重化回路71は、入力符号列を高域符号列と低域符号列に非多重化し、低域符号列を低域復号回路72に供給し、高域符号列を高域復号回路75に供給する。
【0085】
低域復号回路72は、非多重化回路71からの低域符号列の復号を行い、その結果得られた復号低域信号を、サブバンド分割回路73、および合成回路78に供給する。
【0086】
サブバンド分割回路73は、低域復号回路72からの復号低域信号を、所定の帯域幅を持つ複数のサブバンド信号に等分割し、得られたサブバンド信号(復号低域サブバンド信号)を、特徴量算出回路74および復号高域信号生成回路77に供給する。
【0087】
特徴量算出回路74は、サブバンド分割回路73からの復号低域サブバンド信号を用いて特徴量を算出し、復号高域サブバンドパワー算出回路76に供給する。
【0088】
高域復号回路75は、係数インデックスと推定係数とを対応付けて記録しており、非多重化回路71からの高域符号列の復号を行い、その結果得られた係数インデックスにより特定される推定係数を復号高域サブバンドパワー算出回路76に供給する。
【0089】
復号高域サブバンドパワー算出回路76は、特徴量算出回路74からの特徴量と、高域復号回路75からの推定係数とに基づいて、入力信号の高域側の各サブバンドの高域サブバンドパワーの推定値である復号高域サブバンドパワーを算出し、復号高域信号生成回路77に供給する。
【0090】
復号高域信号生成回路77は、サブバンド分割回路73からの復号低域サブバンド信号と、復号高域サブバンドパワー算出回路76からの復号高域サブバンドパワーとに基づいて、復号高域信号を生成し、合成回路78に供給する。合成回路78は、低域復号回路72からの復号低域信号と、復号高域信号生成回路77からの復号高域信号とを合成し、出力信号として出力する。
【0091】
[復号処理の説明]
次に、復号装置61の動作について説明する。復号装置61は、符号化装置11から出力符号列が供給されてくると、その出力符号列を入力符号列として復号処理を行い、出力信号を出力する。以下、図6のフローチャートを参照して、復号装置61による復号処理について説明する。
【0092】
ステップS51において、非多重化回路71は、入力符号列を高域符号列と低域符号列に非多重化し、低域符号列を低域復号回路72に供給するとともに、高域符号列を高域復号回路75に供給する。このとき、非多重化回路71は、必要に応じて非多重化により得られた、入力信号の低域側の上端と下端のサブバンドを示すインデックスを、低域復号回路72を介してサブバンド分割回路73に供給する。これにより、サブバンド分割回路73では、低域の各サブバンドをどのような周波数帯域とすればよいかを特定できる。
【0093】
ステップS52において、低域復号回路72は、非多重化回路71からの低域符号列の復号を行い、その結果得られた復号低域信号を、サブバンド分割回路73、および合成回路78に供給する。
【0094】
ステップS53において、サブバンド分割回路73は、必要に応じて非多重化回路71からのインデックスを用いて、低域復号回路72からの復号低域信号を複数の復号低域サブバンド信号に分割し、特徴量算出回路74および復号高域信号生成回路77に供給する。
【0095】
ステップS54において、特徴量算出回路74は、サブバンド分割回路73からの復号低域サブバンド信号を用いて特徴量を算出し、復号高域サブバンドパワー算出回路76に供給する。例えば、特徴量として、各サブバンドの復号低域サブバンド信号のパワーである復号低域サブバンドパワーが算出される。
【0096】
ステップS55において、高域復号回路75は、非多重化回路71からの高域符号列の復号を行い、その結果得られた係数インデックスにより特定される推定係数を復号高域サブバンドパワー算出回路76に出力する。
【0097】
ステップS56において、復号高域サブバンドパワー算出回路76は、特徴量算出回路74からの特徴量と、高域復号回路75からの推定係数とに基づいて、高域の各サブバンドの復号高域サブバンドパワーを算出し、復号高域信号生成回路77に供給する。
【0098】
例えば、サブバンドごとの推定係数が用いられて、特徴量としての各サブバンドの復号低域サブバンドパワーが線形結合されて、所定のサブバンドの復号高域サブバンドパワーとされる。
【0099】
ステップS57において、復号高域信号生成回路77は、サブバンド分割回路73からの復号低域サブバンド信号と、復号高域サブバンドパワー算出回路76からの復号高域サブバンドパワーとに基づいて、復号高域信号を生成し、合成回路78に供給する。
【0100】
ステップS58において、合成回路78は、低域復号回路72からの復号低域信号と、復号高域信号生成回路77からの復号高域信号とを合成し、出力信号として出力する。この出力信号は、推定係数を用いて予測された高域成分と、復号により得られた低域成分とからなる音声信号である。
【0101】
出力信号が生成されて出力されると、復号処理は終了する。このようにして復号装置61は入力符号列を非多重化し、高域符号列から得られる推定係数を用いて高域成分を推定し、出力信号を生成する。このように推定係数を用いて高域成分を推定することで、より効率よく復号を行なうことができ、復号で得られる音声の音質も向上させることができる。
【0102】
〈変形例〉
[符号化装置の構成例]
なお、以上においては、符号化装置11で、高域符号量や高域サブバンド信号等の各種の信号や情報が、必要に応じて遅延される場合について説明したが、特に遅延させる必要がない場合には、符号化装置に遅延回路が設けられないようにしてもよい。
【0103】
そのような場合、符号化装置は例えば図7に示すように構成される。なお、図7において、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0104】
図7の符号化装置111は、高域通過フィルタ121、第一高域符号化回路22、低域通過フィルタ23、低域符号化回路24、低域復号回路25、第二高域符号化回路30、および多重化回路34から構成される。
【0105】
高域通過フィルタ121は、供給された入力信号に対してフィルタ処理を行って、入力信号から高域成分である高域信号を抽出し、第一高域符号化回路22および第二高域符号化回路30に供給する。低域通過フィルタ23は、供給された入力信号に対してフィルタ処理を行って、入力信号から低域成分である低域信号を抽出し、第一高域符号化回路22および低域符号化回路24に供給する。
【0106】
第一高域符号化回路22は、高域通過フィルタ121からの高域信号と、低域通過フィルタ23からの低域信号とに基づいて、入力信号の高域の符号化を行い、これにより得られた高域符号量を低域符号化回路24および第二高域符号化回路30に供給する。
【0107】
低域符号化回路24は、処理フレーム全体で使用可能な符号量から、第一高域符号化回路22からの高域符号量を減じた符号量で、低域通過フィルタ23からの低域信号を符号化し、これにより得られた低域符号列を低域復号回路25および多重化回路34に供給する。低域復号回路25は、低域符号化回路24からの低域符号列を復号し、その結果得られた復号低域信号を第二高域符号化回路30に供給する。
【0108】
第二高域符号化回路30は、高域通過フィルタ121からの高域信号と、低域復号回路25からの復号低域信号とに基づき、第一高域符号化回路22からの高域符号量により定まる符号量以下になるように、入力信号の高域成分の符号化を行なう。第二高域符号化回路30は、高域の符号化により得られた高域符号列を多重化回路34に供給する。多重化回路34は、低域符号化回路24からの低域符号列と、第二高域符号化回路30からの高域符号列とを多重化し、得られた出力符号列を出力する。
【0109】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0110】
図8は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0111】
コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
【0112】
バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507、ハードディスクや不揮発性のメモリなどよりなる記録部508、ネットワークインターフェースなどよりなる通信部509、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア511を駆動するドライブ510が接続されている。
【0113】
以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
【0114】
コンピュータ(CPU501)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア511に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0115】
そして、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。
【0116】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0117】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0118】
11 符号化装置, 22 第一高域符号化回路, 24 低域符号化回路, 25 低域復号回路, 30 第二高域符号化回路, 31 符号量調整回路, 32 符号量一時蓄積回路, 34 多重化回路

【特許請求の範囲】
【請求項1】
入力信号の低域成分と高域成分に基づいて、前記高域成分を得るための高域符号列の符号量である高域符号量を算出する第一高域符号化部と、
前記入力信号の前記低域成分を符号化し、低域符号列を生成する低域符号化部と、
前記低域符号列を復号する低域復号部と、
前記高域符号列の符号量が前記高域符号量以下の符号量となるように、前記低域符号列の復号で得られた復号低域成分と、前記高域成分とに基づいて、前記高域符号列を生成する第二高域符号化部と、
前記低域符号列と前記高域符号列とを多重化して出力符号列を生成する多重化部と
を備える符号化装置。
【請求項2】
前記第一高域符号化部は、前記低域成分を構成する複数のサブバンドの低域サブバンド信号と、前記高域成分を構成する複数のサブバンドの高域サブバンド信号とに基づいて、前記高域符号量を算出し、
前記第二高域符号化部は、前記復号低域成分を構成する複数のサブバンドの復号低域サブバンド信号と、前記高域サブバンド信号とに基づいて前記高域符号列を生成する
請求項1に記載の符号化装置。
【請求項3】
前記第二高域符号化部に入力される前記高域符号量、前記復号低域成分、および前記高域成分を遅延させる遅延部をさらに備える
請求項1に記載の符号化装置。
【請求項4】
前記第二高域符号化部で得られた前記高域符号列の符号量が、前記高域符号量より少ない場合、前記高域符号列の符号量と前記高域符号量の差分を、次回以降の処理において使用可能な剰余符号量として前記剰余符号量の蓄積を制御する符号量調整部をさらに備える
請求項1に記載の符号化装置。
【請求項5】
前記剰余符号量は、前記高域符号列または前記低域符号列の少なくとも何れかの符号量の調整に用いられる
請求項4に記載の符号化装置。
【請求項6】
入力信号の低域成分と高域成分に基づいて、前記高域成分を得るための高域符号列の符号量である高域符号量を算出する第一高域符号化部と、
前記入力信号の前記低域成分を符号化し、低域符号列を生成する低域符号化部と、
前記低域符号列を復号する低域復号部と、
前記高域符号列の符号量が前記高域符号量以下の符号量となるように、前記低域符号列の復号で得られた復号低域成分と、前記高域成分とに基づいて、前記高域符号列を生成する第二高域符号化部と、
前記低域符号列と前記高域符号列とを多重化して出力符号列を生成する多重化部と
を備える符号化装置の符号化方法であって、
前記第一高域符号化部が前記高域符号量を算出し、
前記低域符号化部が前記低域成分を符号化し、
前記低域復号部が前記低域符号列を復号し、
前記第二高域符号化部が前記高域符号列を生成し、
前記多重化部が前記出力符号列を生成する
ステップを含む符号化方法。
【請求項7】
入力信号の低域成分と高域成分に基づいて、前記高域成分を得るための高域符号列の符号量である高域符号量を算出し、
前記入力信号の前記低域成分を符号化し、低域符号列を生成し、
前記低域符号列を復号し、
前記高域符号列の符号量が前記高域符号量以下の符号量となるように、前記低域符号列の復号で得られた復号低域成分と、前記高域成分とに基づいて、前記高域符号列を生成し、
前記低域符号列と前記高域符号列とを多重化して出力符号列を生成する
ステップを含む処理をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate