(57)【要約】【課題】音声符号化における符号化の効率を向上させる。【解決手段】音声符号化装置１００は、入力された音声信号をフレームに分割し、フレーム毎に、フレームに含まれる音声信号の振幅の最大値に基づいて音声信号のレベルを調整し、１フレームを構成する単位毎に、レベルが調整された音声信号に対しＭＤＣＴ（変形離散コサイン変換）を施してＭＤＣＴ係数を算出する。そして、ＭＤＣＴが施された１フレーム分のＭＤＣＴブロックのうち、予め指定されたＭＤＣＴブロックのＭＤＣＴ係数で、同一フレーム内の他のＭＤＣＴ係数を除算し、この除算処理により得られた音声信号にベクトル量子化を施し、ベクトル量子化により得られた音声信号にエントロピー符号化を施して出力する。【選択図】図１
2006119363.tif 000002
【特許請求の範囲】
【請求項１】
入力された音声信号をフレームに分割するフレーム化部と、
１フレームを構成する単位毎に、音声信号に対し周波数変換を施して変換係数を算出する周波数変換部と、
前記周波数変換により得られた変換係数のうち１単位分の変換係数で、同一フレーム内の他の変換係数を除算する除算部と、
前記除算部により得られた音声信号を、所定の符号化方式で符号化する符号化部と、
を備えることを特徴とする音声符号化装置。
【請求項２】
前記除算部は、予め指定された１単位分の変換係数で、同一フレーム内の他の変換係数を除算することを特徴とする請求項１に記載の音声符号化装置。
【請求項３】
前記除算部は、フレームを構成する単位毎に、変換係数の絶対値の和を算出し、算出結果に基づいて除算値とする変換係数を選択することを特徴とする請求項１に記載の音声符号化装置。
【請求項４】
前記除算部は、前記算出された絶対値の和が最大となる単位の変換係数で、同一フレーム内の他の変換係数を除算することを特徴とする請求項３に記載の音声符号化装置。
【請求項５】
前記除算部は、フレームを構成する単位毎に、変換係数の絶対値の最大値を算出し、算出結果に基づいて除算値とする変換係数を選択することを特徴とする請求項１に記載の音声符号化装置。
【請求項６】
前記除算部は、前記算出された絶対値の最大値が最も大きい単位の変換係数で、同一フレーム内の他の変換係数を除算することを特徴とする請求項５に記載の音声符号化装置。
【請求項７】
前記除算部は、除算値の絶対値が１以上である場合に除算処理を行うことを特徴とする請求項１〜６の何れか一項に記載の音声符号化装置。
【請求項８】
フレーム分割され、１フレームを構成する単位毎に周波数変換が施され、前記周波数変換により得られた１単位分の変換係数を除算値として、同一フレーム内の他の変換係数が除算され、所定の符号化方式で符号化された音声信号を復号する復号部と、
前記復号部により得られた音声信号に関する変換係数のうち、符号化時に除算値として使用された変換係数を、同一フレーム内の他の変換係数に乗算する乗算部と、
前記乗算部により得られた音声信号に対し、周波数逆変換を施す周波数逆変換部と、
前記周波数逆変換後の各フレームを合成するフレーム合成部と、
を備えることを特徴とする音声復号装置。
【請求項９】
入力された音声信号をフレームに分割し、
１フレームを構成する単位毎に、音声信号に対し周波数変換を施して変換係数を算出し、
前記周波数変換により得られた変換係数のうち１単位分の変換係数で、同一フレーム内の他の変換係数を除算し、
除算処理により得られた音声信号を、所定の符号化方式で符号化することを特徴とする音声符号化方法。
【請求項１０】
フレーム分割され、１フレームを構成する単位毎に周波数変換が施され、前記周波数変換により得られた１単位分の変換係数を除算値として、同一フレーム内の他の変換係数が除算され、所定の符号化方式で符号化された音声信号を復号し、
復号処理により得られた音声信号に関する変換係数のうち、符号化時に除算値として使用された変換係数を、同一フレーム内の他の変換係数に乗算し、
乗算処理により得られた音声信号に対し、周波数逆変換を施し、
前記周波数逆変換後の各フレームを合成することを特徴とする音声復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声符号化装置、音声復号装置、音声符号化方法及び音声復号方法に関する。
【背景技術】
【０００２】
従来より、音声信号の圧縮方式として、μ−ｌａｗ、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）、音楽で利用されるＭＰ３（MPEG Audio Layer-3）、携帯電話等で利用されるＶＳＥＬＰ(Vector Sum Excited Linear Prediction)、Ｇ．７２９等のＣＥＬＰ（Code-Excited Linear Prediction）系の圧縮方式が実用化されている。特許文献１には、音声圧縮技術として、ベクトル量子化を用いた技術が開示されている。
【特許文献１】特開平１０−６３２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
語学学習において会話等の録音を行う場合、１６ｋＨｚ程度のサンプリング周波数が、各言語の特徴を保ちつつ、多くのデータ量を必要としない適度な周波数であると考えられている。しかしながら、ＣＥＬＰ系の圧縮方式に現れる圧縮ノイズは、語学学習用には適切ではないという問題があった。また、μ−ｌａｗ、ＡＤＰＣＭは、十分な音質であるが、符号化レートが高いため、携帯機器でこれらの圧縮方式を利用する場合、録音時間が短くなってしまうという問題があった。また、ＭＰ３は、主に高品質の音声の圧縮を対象としており、１６ｋＨｚ程度のサンプリング周波数では、効果的に圧縮を行うことができないという問題があった。
【０００４】
本発明の課題は、音声符号化における符号化の効率を向上させることにより、効果的な音声符号化を実現させることである。
【課題を解決するための手段】
【０００５】
本発明に係る音声符号化装置は、入力された音声信号をフレームに分割するフレーム化部と、１フレームを構成する単位毎に、音声信号に対し周波数変換を施して変換係数を算出する周波数変換部と、前記周波数変換により得られた変換係数のうち１単位分の変換係数で、同一フレーム内の他の変換係数を除算する除算部と、前記除算部により得られた音声信号を、所定の符号化方式で符号化する符号化部と、を備えることを特徴としている。
【０００６】
また、前記除算部は、予め指定された１単位分の変換係数で、同一フレーム内の他の変換係数を除算することが好ましい。
【０００７】
また、前記除算部は、フレームを構成する単位毎に、変換係数の絶対値の和を算出し、算出結果に基づいて除算値とする変換係数を選択することが好ましい。
【０００８】
特に、前記算出された絶対値の和が最大となる単位の変換係数で、同一フレーム内の他の変換係数を除算するのが好ましい。
【０００９】
また、前記除算部は、フレームを構成する単位毎に、変換係数の絶対値の最大値を算出し、算出結果に基づいて除算値とする変換係数を選択することが好ましい。
【００１０】
特に、前記算出された絶対値の最大値が最も大きい単位の変換係数で、同一フレーム内の他の変換係数を除算するのが好ましい。
【００１１】
更に、前記除算部は、除算値の絶対値が１以上である場合に除算処理を行うことが好ましい。
【００１２】
本発明に係る音声復号装置は、フレーム分割され、１フレームを構成する単位毎に周波数変換が施され、前記周波数変換により得られた１単位分の変換係数を除算値として、同一フレーム内の他の変換係数が除算され、所定の符号化方式で符号化された音声信号を復号する復号部と、前記復号部により得られた音声信号に関する変換係数のうち、符号化時に除算値として使用された変換係数を、同一フレーム内の他の変換係数に乗算する乗算部と、前記乗算部により得られた音声信号に対し、周波数逆変換を施す周波数逆変換部と、前記周波数逆変換後の各フレームを合成するフレーム合成部と、を備えることを特徴としている。
【００１３】
本発明に係る音声符号化方法は、入力された音声信号をフレームに分割し、１フレームを構成する単位毎に、音声信号に対し周波数変換を施して変換係数を算出し、前記周波数変換により得られた変換係数のうち１単位分の変換係数で、同一フレーム内の他の変換係数を除算し、除算処理により得られた音声信号を、所定の符号化方式で符号化することを特徴としている。
【００１４】
本発明に係る音声復号方法は、フレーム分割され、１フレームを構成する単位毎に周波数変換が施され、前記周波数変換により得られた１単位分の変換係数を除算値として、同一フレーム内の他の変換係数が除算され、所定の符号化方式で符号化された音声信号を復号し、復号処理により得られた音声信号に関する変換係数のうち、符号化時に除算値として使用された変換係数を、同一フレーム内の他の変換係数に乗算し、乗算処理により得られた音声信号に対し、周波数逆変換を施し、前記周波数逆変換後の各フレームを合成することを特徴としている。
【発明の効果】
【００１５】
本発明によれば、周波数変換により得られた変換係数のうち、フレーム中の１単位分の変換係数で、同一フレーム内の他の変換係数を除算するようにしたことにより、除算後の変換係数の絶対値の範囲が狭くなり、ベクトル量子化やエントロピー符号化等の効率が向上し、音質を向上させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
まず、本実施形態における構成について説明する。
【００１７】
図１に、本発明の実施形態に係る音声符号化装置１００の構成を示す。音声符号化装置１００は、図１に示すように、Ａ／Ｄ変換部１、ＤＣ（Direct Current）除去部２、フレーム化部３、レベル調整部４、周波数変換部５、除算部６、周波数並べ替え部７、ベクトル量子化部８、エントロピー符号化部９、レートコントローラ１０、データ削除部１１により構成される。
【００１８】
Ａ／Ｄ変換部１は、入力された音声アナログ信号をデジタル信号に変換し、ＤＣ除去部２に出力する。サンプリング周波数は、16kHz程度が望ましいが、11.025kHz、22.05kHz等でもかまわない。
【００１９】
ＤＣ除去部２は、Ａ／Ｄ変換部１から入力された音声信号の直流成分を除去し、フレーム化部３に出力する。音声信号の直流成分を除去するのは、直流成分が音質にほとんど無関係であることによる。直流成分の除去は、例えば、高域通過フィルタによって実現することができる。高域通過フィルタには、例えば、式（１）で表されるものがある。
【数１】
2006119363.tif 000003
【００２０】
フレーム化部３は、ＤＣ除去部２から入力された信号を、符号化（圧縮）の処理単位であるフレームに分割し、レベル調整部４に出力する。ここで、１つのフレームは、１つ以上、好ましくは４つ以上のブロックが含まれる長さにする。１ブロックは、１回のＭＤＣＴ（Modified Discrete Cosine Transform：変形離散コサイン変換）を行う単位であり、ＭＤＣＴの次数分の長さを有する。以下、１フレームを構成する各ブロックをＭＤＣＴブロックと呼ぶことにする。図２に、入力信号と各フレームとの関係を示し、図３に、１フレームと各ＭＤＣＴブロックとの関係を示す。図３に示すように、各ＭＤＣＴブロックは直前のＭＤＣＴブロックと、ＭＤＣＴブロックの半分の長さの重複部分を有する。また、図２に示すように、各フレームは、直前のフレームと、ＭＤＣＴブロックの半分の長さの重複部分を有する。
【００２１】
レベル調整部４は、フレーム毎に、入力された音声信号のレベル調整を行い、レベル調整された信号を周波数変換部５に出力する。レベル調整とは、１フレーム中に含まれる信号の振幅の最大値を、指定されたビット（以下、制圧目標ビット）数に収まるようにすることである。レベル調整は、例えば、１フレーム中の信号の最大振幅をｎbit、制圧目標ビット数をＮとすると、フレーム中の信号を全て、式（２）を満たすshift_bit数分ＬＳＢ（Least Significant Bit：最下位ビット）側にシフトすることによって実現できる。
【数２】
2006119363.tif 000004
音声信号では、１０ビット程度に制圧することが考えられる。なお、音声再生時には、振幅が制圧目標ビット以下に制圧された信号を元に戻す必要があるため、shift_bitを表す信号が、音声符号化信号の一部として出力される。
【００２２】
周波数変換部５は、レベル調整部４から入力された信号に対し周波数変換を施し、除算部６に出力する。本実施形態では、周波数変換としてＭＤＣＴ（Modified Discrete Cosine Transform：変形離散コサイン変換）を用いる場合を示す。ＭＤＣＴブロックの長さをＭ、入力信号を｛ｘn｜n=0,…,M-1｝とすると、ＭＤＣＴ係数｛Ｘk｜k=0,…,M/2-1｝は式（３）のように表される。
【数３】
2006119363.tif 000005
ここで、ｈnは窓関数であり、式（４）で表される。
【数４】
2006119363.tif 000006
なお、ブロック長Ｍは、16kHz程度のサンプリング周波数の音声では、２５６程度の値が考えられる。
【００２３】
除算部６は、周波数変換により得られた１フレーム分のＭＤＣＴブロックのうち予め指定されたＭＤＣＴブロックのＭＤＣＴ係数で、他のＭＤＣＴブロックのＭＤＣＴ係数を除算する処理を行う。例えば、１フレーム中にＭ0〜Ｍ3の４つのＭＤＣＴブロックがあり、各ＭＤＣＴブロックは６次のＭＤＣＴ係数を有するものとする。ｉ番目のＭＤＣＴブロックのＭＤＣＴ係数をＭi＝｛ｍin｜n=0,…,5｝と表し、除算処理において除算値として予め指定されたＭＤＣＴブロックをＭ0とする。同一フレーム内の他のＭＤＣＴブロックＭ1〜Ｍ3のＭＤＣＴ係数をＭ0のＭＤＣＴ係数で除算した結果Ｍ'i＝｛ｍ'in｜n=0,…,5｝は、式（５）のようになる。
ｍ'in＝ｍin / ｍ0n      i＝1,2,3,  n＝0,…,5      （５）
なお、除算値ｍ0nの絶対値が１未満であった場合、除算によりＭＤＣＴ係数の値が却って大きくなってしまうため、除算値ｍ0nの絶対値が１以上である場合（|ｍ0n|＞1）のみ、除算処理を行うようにする。
【００２４】
例えば、ＭＤＣＴブロックＭ0〜Ｍ3のＭＤＣＴ係数が下記の式（６）である場合、除算処理後のＭ'i（i＝1,2,3）は式（７）のようになる。
【数５】
2006119363.tif 000007
【数６】
2006119363.tif 000008
【００２５】
周波数並べ替え部７は、除算部６の除算処理で得られたＭＤＣＴ係数を周波数毎に並べ替え、同一周波数帯域の係数をまとめてベクトル化し、ベクトル量子化部８に出力する。このように、同一周波数帯域の信号をまとめてベクトル化すると、例えば、定常信号を多く含む場合、後のベクトル量子化の精度が向上する。１フレームにＭＤＣＴブロックがｍ個あり、各ＭＤＣＴでＭＤＣＴ係数がＭ/２個算出された場合、ｉ番目のＭＤＣＴブロックのｊ番目のＭＤＣＴ係数をＸijとすると、ｊ番目の周波数帯域をまとめたベクトルＦjは、Ｆj＝｛Ｘij｜i=0,…,m-1｝,j=0,…,M/2-1となる。
【００２６】
ベクトル量子化部８は、複数の音声パターンを示す代表ベクトルを格納したＶＱ（Vector Quantization）テーブルを有し、周波数並べ替え部７で作成されたベクトルＦjと、ＶＱテーブルに格納された各代表ベクトルを比較し、最も類似した代表ベクトルが示すインデックスを符号としてエントロピー符号化部９に出力する。
【００２７】
例えば、ベクトル長Ｎの符号化対象のベクトルを｛ｓj｜j=1,…,N｝、ＶＱテーブルに格納されたｋ個の代表ベクトルを｛Ｖi｜i=1,…,k｝、Ｖi＝｛ｖij｜j=1,…,N｝とすると、符号化対象のベクトルと、ＶＱテーブルに格納されたｉ番目の代表ベクトルの各要素ｖijの誤差ｅiが最小となるようなｉ（インデックス）を、出力する符号とする。誤差ｅiの算出式を式（８）に示す。
【数７】
2006119363.tif 000009
代表ベクトルの数ｋと符号化対象ベクトルのベクトル長Ｎは、ベクトル量子化に要する処理時間やＶＱテーブルの容量等を勘案して決定される。例えば、ベクトル長を２にして代表ベクトル数を２５６にしたり、ベクトル長を４にして代表ベクトル数を８１９２（＝２13）にしたりするなど、自由な組み合わせが考えられる。
【００２８】
音声は、高域周波数部分と低域周波数部分で異なる特性がある場合が多いため、本実施形態では、高域と低域で異なるＶＱテーブルを用いることにする。高域用の代表ベクトルが格納されたＶＱテーブルを高域用ＶＱテーブル８ａ、低域用の代表ベクトルが格納されたＶＱテーブルを低域用ＶＱテーブル８ｂとする。周波数並べ替え部７で作成されたベクトルＦj＝｛Ｘij｜i=0,…,m-1｝,j=0,…,M/2-1において、高域と低域の境界は、周波数帯域を示すｊを単純に半分に分ければよい。即ち、Ｆ0,Ｆ1,…,ＦM/4-1を低域、ＦM/4,ＦM/4+1,…,ＦM/2-1を高域とすればよい。従って、低域のベクトルＦ0,Ｆ1,…,ＦM/4-1は、低域用ＶＱテーブル８ｂに格納された各代表ベクトルと比較され、最も類似した代表ベクトルが示すインデックスが符号として出力される。同様に、高域のベクトルＦM/4,ＦM/4+1,…,ＦM/2-1は、高域用ＶＱテーブル８ａに格納された各代表ベクトルと比較され、最も類似した代表ベクトルが示すインデックスが符号として出力される。
【００２９】
エントロピー符号化部９は、ベクトル量子化部８から入力された符号に対してエントロピー符号化を施し、レートコントローラ１０に出力する。エントロピー符号化とは、信号の統計的性質を利用して、符号をより短い符号へと変換する符号化方式であり、ハフマン（Huffman）符号化、算術符号化、レンジコーダ（Range Coder）による符号化等がある。エントロピー符号化の詳細については、後に図４〜図８を参照して説明する。
【００３０】
レートコントローラ１０は、エントロピー符号化で得られた符号のデータ量が、予め設定された目標データ量より大きいか否かを判定し、エントロピー符号化で得られた符号のデータ量が目標データ量より大きいと判定した場合、データ削除部１１に対し、符号のデータ量の抑制を要求する。エントロピー符号化で得られた符号のデータ量が目標データ量以下であると判定した場合は、レートコントローラ１０は、エントロピー符号化で得られた符号を符号化（圧縮）された音声信号として出力する。レートコントローラ１０から出力された音声符号化信号は、記録媒体に記録されたり、通信ネットワークを介して外部装置に伝送されたりする。
【００３１】
データ削除部１１は、レートコントローラ１０により、エントロピー符号化で得られた符号のデータ量が目標データ量より大きいと判定された場合、エネルギー｜Ｆj｜2が最小の帯域を削除し、削除後の音声信号をエントロピー符号化部９に出力し、再度、エントロピー符号化を要求する。
【００３２】
〈エントロピー符号化〉
以下では、本実施形態で適用されるエントロピー符号化の例として、ハフマン符号化、レンジコーダによる符号化について説明する。
【００３３】
（ハフマン符号化）
ハフマン符号化とは、出現頻度の高い記号には短い符号を割り当て、出現頻度の低い記号には長い符号を割り当てることで、全体のデータ量を圧縮する方式である。例えば、４つの記号｛ａ、ｂ、ｃ、ｄ｝からなる１００文字のデータがあったとする。全ての記号に同じ長さの２進数の符号（固定長符号）を割り当てる場合、４つの記号を表すには２ビットが必要であるため、１００文字のデータ量は、２[bit]×１００＝２００[bit]となる。
【００３４】
ハフマン符号化では、各記号の出現頻度に応じて２進数の符号が割り当てられる。図４に、１００文字のデータ中の各記号ａ、ｂ、ｃ、ｄの出現頻度が、それぞれ、１０、７０、１、１９である場合に各記号に割り当てられた２進数の符号の例を示す。図４に示すように、記号ａ、ｂ、ｃ、ｄに、それぞれ、符号１００、０、１０１、１１が割り当てられた場合、１００文字のデータ量は、３[bit]×１０＋１[bit]×７０＋３[bit]×１＋２[bit]×１９＝１４１[bit]となり、データ量は、固定長符号のデータ量の７０％に圧縮される。
【００３５】
（レンジコーダによる符号化）
符号化前の元信号に含まれる記号の集合をＳ＝｛si|i=1,…,n｝とし、各記号siの出現確率をｐiとする。また、元信号に含まれる各記号siを予め決められた順番に並べ替えた記号列｛s1、s2、…、sn｝において、記号sk（ｋ≧２）より前に並んでいる各記号の出現確率の合計をＧkとする。即ち、Ｇkは、式（９）のように表される。
【数８】
2006119363.tif 000010
【００３６】
レンジコーダによる符号化では、記号毎に出現確率ｐiとＧiを対応付けて格納したテーブル（以下、生起確率テーブルという。）に基づいて、入力済みの信号が示す記号列に、数値で示す範囲（下限、幅）を設定する処理を行う。入力済みの信号に設定される範囲（下限、幅）は、直前に入力された信号に設定された範囲と生起確率テーブルに基づいて決定される。
【００３７】
符号化対象の信号skが入力されたときに設定される幅をrange'、下限をlow'とし、その信号skの１つ前の信号が入力されたときに設定された幅をrange、下限をlowとすると、幅range'、下限low'は、それぞれ、式（１０）、式（１１）のように表される。
range'＝range×ｐk       （１０）
low'＝low＋range×Ｇk    （１１）
式（１０）及び式（１１）で算出されたrange'、low'が、次の信号が入力されたときのrange、lowとなる。
【００３８】
式（１０）及び式（１１）で示す算出処理は、入力信号がなくなるまで行われ、最後の信号が入力されたときに算出されたrange、lowに基づいて決定される範囲low〜low＋rangeの間の値が符号値として出力される。
【００３９】
図５に、レンジコーダ符号化の例を示す。図５（ａ）に、元信号に含まれる記号の集合がＳ＝｛s1=ａ、s2=ｂ、s3=ｃ、s4=ｄ｝であるときの生起確率テーブルの一例を示す。また、図５（ｂ）に、記号列｛ｂａｃａ｝に対する符号化の一例を示す。図５（ｂ）では、記号列を示す符号を１０進数とし、lowの初期値を０、rangeの初期値を１０6とした場合を示している。図５（ｂ）において、「入力信号」項目は、入力された記号を示し、「記号列」項目は、これまでに入力された記号列を示し、「low」項目は、式（１１）により算出されるlow'を示し、「range」項目は、式（１０）により算出されるrange'を示す。また、「範囲」項目は、low及びrangeから決定される符号値の範囲を示す。図５（ｂ）において、［ｘ、ｙ）という表記は、符号値Ｚがｘ≦Ｚ＜ｙを満たすことを意味する。図５（ｂ）によると、５９３７５０≦Ｚ＜６０３１２５を満たす符号値Ｚのうちの１つ（例えば、６０００００）が、記号列｛ｂａｃａ｝を符号化した結果として出力されることになる。
【００４０】
このように、レンジコーダによる符号化では、予め決められた出現確率を利用して入力される各記号を符号化しているため、元信号に含まれる各記号の出現確率が固定された情報源からの発生であれば非常に有効である。しかしながら、符号化対象となる信号が、出現確率が一定の情報源から発生されていることは極めてまれである。よって、上述のレンジコーダによる符号化では、各記号の出現確率が符号化対象となる信号に適応していない。そこで、本実施形態では、レンジコーダ符号化において、信号が入力される度に出現確率を更新させるようにすることによって、実際の信号に適応可能にした。以下、本実施形態のレンジコーダによる符号化について説明する。
【００４１】
上述と同様に、符号化前の元信号に含まれる記号の集合をＳ＝｛si|i=1,…,n｝とする。元信号に含まれる記号siの出現頻度をｇi、出現頻度ｇiの合計をｃｕｍ、各記号siの出現確率をｐiとすると、ｃｕｍ、ｐiは、それぞれ、式（１２）、式（１３）のように表される。
【数９】
2006119363.tif 000011
【数１０】
2006119363.tif 000012
【００４２】
エントロピー符号化部９は、入力された信号に幅range及び下限lowを設定するためのテーブルとして、図６に示すような生起確率テーブル８１を有する。生起確率テーブル８１は、図６に示すように、各記号毎に、出現頻度ｇi、出現確率ｐi、Ｇiの各項目を対応付けて格納している。Ｇiの定義は、式（９）で示したとおりである。
【００４３】
エントロピー符号化部９に符号化対象の信号skが入力されたときに設定される幅をrange'、下限をlow'とし、その信号skの１つ前の信号が入力されたときに設定された幅をrange、下限をlowとすると、幅range'、下限low'は、それぞれ、式（１４）、式（１５）のように表される。
【数１１】
2006119363.tif 000013
【数１２】
2006119363.tif 000014
式（１４）及び式（１５）で算出されたrange'、low'が、次の信号が入力されたときのrange、lowとなる。
【００４４】
信号skの入力によりrange、lowが算出されると、エントロピー符号化部９は、式（１６）に示すように、出現確率ｇkに１を加算し、算出された出現確率ｇk'を新たなｇkとする。
ｇk'＝ｇk＋１      （１６）
エントロピー符号化部９は、出現確率ｇkの加算に伴い、ｃｕｍ、出現確率ｐi、Ｇiを再計算し、生起確率テーブル８１を更新する。エントロピー符号化部９は、これらの処理を、入力信号がなくなるまで行い、最後の信号が入力されたときに算出されたrange、lowに基づいて決定される範囲low〜low＋rangeの間の値を符号値として出力する。
【００４５】
図７及び図８に、本実施形態のレンジコーダ符号化の例を示す。図７（ａ）に、元信号に含まれる記号の集合がＳ＝｛s1=ａ、s2=ｂ、s3=ｃ、s4=ｄ｝であるときのデフォルトの生起確率テーブル８１の一例を示す。図７（ａ）に示すデフォルトの生起確率テーブル８１のpi及びＧiは、図５（ａ）に示す生起確率テーブルと同一であるものとする。また、図７（ｂ）には、図５（ｂ）に示した記号列と同一の記号列｛ｂａｃａ｝に対する符号化の一例を示す。図７（ｂ）においても、記号列を示す符号を１０進数とし、lowの初期値を０、rangeの初期値を１０6とする。図７（ｂ）において、「入力信号」項目は、入力された記号を示し、「記号列」項目は、これまでに入力された記号列を示し、「low」項目は、式（１５）により算出されるlow'を示し、「range」項目は、式（１４）により算出されるrange'を示す。また、「範囲」項目は、low及びrangeから決定される符号値の範囲を示す。また、「生起確率テーブル」項目は、記号の入力毎に更新された生起確率テーブルを示す。図８に、記号の入力毎に更新された生起確率テーブルを示す。図７（ｂ）によると、記号の入力毎に生起確率テーブルを更新することで、記号列｛ｂａｃａ｝が示す「範囲」は、図５（ｂ）に示した生起確率テーブルが固定された場合と異なり、５９１９９２≦Ｚ＜５９９７５７を満たす符号値Ｚのうちの１つが、記号列｛ｂａｃａ｝を符号化した結果として出力されることになる。
【００４６】
図９に、音声符号化装置１００により符号化（圧縮）された音声信号を復号する音声復号装置２００の構成を示す。音声復号装置２００は、図９に示すように、エントロピー復号部２１、逆ベクトル量子化部２２、時間順並べ替え部２３、乗算部２４、周波数逆変換部２５、レベル再現部２６、フレーム合成部２７、Ｄ／Ａ変換部２８により構成される。なお、音声符号化装置１００と音声復号装置２００を１つの筐体に一体的に備えるような構造としてもよいし、各々を別体として設けるようにしてもよい。
【００４７】
エントロピー復号部２１は、エントロピー符号化により符号化された信号を復号し、逆ベクトル量子化部２２に出力する。逆ベクトル量子化部２２は、複数の音声パターンを示す代表ベクトルを格納したテーブルとして、高域用ＶＱテーブル２２ａ、低域用ＶＱテーブル２２ｂを有し、エントロピー復号部２１から入力された信号（インデックス）に対応する代表ベクトルを抽出し、時間順並べ替え部２３に出力する。高域用ＶＱテーブル２２ａ、低域用ＶＱテーブル２２ｂは、それぞれ、図１に示す高域用ＶＱテーブル８ａ、低域用ＶＱテーブル８ｂと同一のものである。
【００４８】
時間順並べ替え部２３は、逆ベクトル量子化部２２から入力されたベクトルを時間順に並べ替え、乗算部２４に出力する。乗算部２４は、時間順並べ替え部２３により得られた１フレーム分のＭＤＣＴブロックのうち予め指定されたＭＤＣＴブロックのＭＤＣＴ係数を、他のＭＤＣＴブロックのＭＤＣＴ係数に乗算し、乗算結果を周波数逆変換部２５に出力する。ここで、予め指定されたＭＤＣＴブロックとは、符号化時に音声符号化装置１００の除算部６において除算値として使用されたＭＤＣＴブロックと同一である。
【００４９】
周波数逆変換部２５は、乗算部２４から入力された信号（ＭＤＣＴ係数）に対し逆ＭＤＣＴを施し、レベル再現部２６に出力する。レベル再現部２６は、周波数逆変換部２５から入力された信号のレベル調節を行って、元のレベルに戻し、フレーム合成部２７に出力する。
【００５０】
フレーム合成部２７は、符号化及び復号化の処理単位であったフレームを合成し、合成後の信号をＤ／Ａ変換部２８に出力する。Ｄ／Ａ変換部２８は、フレーム合成部２７から入力されたデジタル信号をアナログ信号に変換し、音声再生信号として出力する。
【００５１】
次に、本実施形態における動作について説明する。
まず、図１０のフローチャートを参照して、音声符号化装置１００において実行される音声符号化処理について説明する。
【００５２】
まず、音声アナログ信号が入力されると、Ａ／Ｄ変換部１において、入力された音声アナログ信号が音声デジタル信号に変換される（ステップＳ１）。以下、符号化対象の音声デジタル信号を単に音声信号を呼ぶことにする。次いで、ＤＣ除去部２において、音声信号の直流成分が削除され（ステップＳ２）、フレーム化部３において、直流成分削除後の音声信号がフレームに分割される（ステップＳ３）。
【００５３】
次いで、レベル調整部４において、フレーム毎に、入力された音声信号のレベルが調整され（ステップＳ４）、周波数変換部５において、レベル調整後の音声信号に対し、ＭＤＣＴが施される（ステップＳ５）。
【００５４】
次いで、除算部６において、フレーム毎に、ステップＳ５で得られたＭＤＣＴ係数に対する除算処理（周波数変換係数除算処理）が行われる（ステップＳ６）。ステップＳ６では、図１１に示すように、周波数変換部５で得られた１フレーム分のＭＤＣＴブロックのうち予め指定されたＭＤＣＴブロックのＭＤＣＴ係数で、同一フレーム内の他のＭＤＣＴブロックのＭＤＣＴ係数が除算される（ステップＳ２０）。
【００５５】
次いで、周波数並べ替え部７において、ステップＳ６の周波数変換係数除算処理で得られたＭＤＣＴ係数が周波数毎に並べ替えられ（ステップＳ７）、同一周波数帯域の係数がまとめてベクトル化される。
【００５６】
次いで、ベクトル量子化部８において、高域のＭＤＣＴ係数のベクトルと高域用ＶＱテーブル８ａに格納された代表ベクトルが比較されるとともに、低域のＭＤＣＴ係数のベクトルと低域用ＶＱテーブル８ｂに格納された代表ベクトルが比較され、最も類似した代表ベクトルが示すインデックスが符号として出力される（ステップＳ８）。
【００５７】
次いで、ベクトル量子化後の音声信号に対し、フレーム毎にエントロピー符号化が施され（ステップＳ９）、エントロピー符号化後の信号が音声符号化信号としてレートコントローラ１０に出力される。次いで、レートコントローラ１０において、エントロピー符号化部９から入力された１フレーム分の音声符号化信号が予め設定された目標データ量以下であるか否かが判定される（ステップＳ１０）。
【００５８】
ステップＳ１０において、入力された音声符号化信号が目標データ量より大きいと判定された場合（ステップＳ１０；ＮＯ）、データ削除部１１において、１フレーム分の音声符号化信号のうち、エネルギー｜Ｆj｜2が最小の帯域の信号が削除される（ステップＳ１２）。ステップＳ１２が終了すると、ステップＳ９に戻り、再度、該当フレームの音声信号に対するエントロピー符号化が行われる（ステップＳ９）。
【００５９】
ステップＳ１０において、入力された音声符号化信号が目標データ量以下であると判定された場合（ステップＳ１０；ＹＥＳ）、エントロピー符号化部９に次のフレームの音声信号が入力されたか否かが判定される（ステップＳ１１）。
【００６０】
ステップＳ１１において、エントロピー符号化部９に次のフレームの音声信号が入力されたと判定された場合（ステップＳ１１；ＹＥＳ）、ステップＳ９に戻り、当該フレームに対するエントロピー符号化が行われる（ステップＳ９）。ステップＳ１１において、エントロピー符号化部９に入力された全てのフレームに対するエントロピー符号化が終了したと判定された場合（ステップＳ１１；ＮＯ）、本音声符号化処理が終了する。
【００６１】
<周波数変換係数除算処理の変形例>
ステップＳ６の周波数変換係数除算処理の方法は、図１１に示した方法に限定されない。以下、図１１の周波数変換係数除算処理の変形例について、図１２のフローチャートを参照して説明する。
【００６２】
まず、１フレーム分の各ＭＤＣＴブロック毎に、ＭＤＣＴ係数の絶対値の和が算出される（ステップＳ３０）。ｉ番目のＭＤＣＴブロックのＭＤＣＴ係数をＭi＝｛ｍin｜n=0,…,k-1｝とすると、ｉ番目のＭＤＣＴブロックのＭＤＣＴ係数の絶対値の和ＳＭiは式（１７）のように表される。
【数１３】
2006119363.tif 000015
【００６３】
次いで、該当フレームのＭＤＣＴブロックのうち、ＭＤＣＴ係数の絶対値の和ＳＭiが最も大きいＭＤＣＴブロックが選択され（ステップＳ３１）、その選択されたＭＤＣＴブロックのＭＤＣＴ係数で、同一フレーム内の他のＭＤＣＴブロックのＭＤＣＴ係数が除算され（ステップＳ３２）、本周波数変換係数除算処理が終了する。
【００６４】
例えば、式（６）で示した例において、各ＭＤＣＴブロック毎にＭＤＣＴ係数の絶対値の和ＳＭiを計算すると、ＳＭ0＝186、ＳＭ1＝201、ＳＭ2＝150、ＳＭ3＝180となる。この中ではＳＭ1が最も大きいため、Ｍ1が除算値として利用するＭＤＣＴブロックとして選択される。このとき、除算処理後のＭ'i（i＝0,2,3）は式（１８）のようになる。
【数１４】
2006119363.tif 000016
式（１８）と式（７）を比較すると、式（１８）の方が、除算処理後のＭＤＣＴ係数のとり得る範囲がより狭いことがわかる。
【００６５】
周波数変換係数除算処理の他の方法として、絶対値が最も大きいＭＤＣＴ係数を有するＭＤＣＴブロックを除算値として利用する方法がある。例えば、式（６）で示した例では、各ＭＤＣＴブロックにおいて絶対値が最も大きいＭＣＤＴ係数は、Ｍ0が112、Ｍ1が120、Ｍ2が97、Ｍ3が110となる。この中で最も大きいのはＭ1の120であるため、Ｍ1が除算値として利用するＭＤＣＴブロックとして選択される。
【００６６】
音声復号装置２００の乗算部２４では、図１０のステップＳ６に示した周波数変換係数除算処理（以下、単に「除算処理」という。）の方法に対応して、周波数変換係数乗算処理が行われる。
【００６７】
ステップＳ６において図１１の除算処理が行われた場合、乗算部２４では、図１３に示すように、１フレーム分のＭＤＣＴブロックのうち予め指定されたＭＤＣＴブロックのＭＤＣＴ係数が、同一フレーム内の他のＭＤＣＴブロックのＭＤＣＴ係数に乗算される（ステップＳ４０）。ここで、予め指定されたＭＤＣＴブロックとは、符号化時に音声符号化装置１００の除算部６において除算値として使用されたＭＤＣＴブロックと同一である。
【００６８】
ステップＳ６において図１２の除算処理が行われた場合、乗算部２４では、図１４に示すように、１フレーム分のＭＤＣＴブロックのうち、ステップＳ３１で選択されたＭＤＣＴブロックのＭＤＣＴ係数が、他のＭＤＣＴブロックのＭＤＣＴ係数に乗算される（ステップＳ５０）。
【００６９】
ステップＳ６において、絶対値が最も大きいＭＤＣＴ係数を有するＭＤＣＴブロックを除算値として利用する除算処理が行われた場合、乗算部２４では、当該ＭＤＣＴブロックのＭＤＣＴ係数が、他のＭＤＣＴブロックのＭＤＣＴ係数に乗算される。
【００７０】
以上のように、本実施形態及びその変形例の音声符号化装置１００及び音声復号装置２００によれば、１フレーム中の１つのＭＤＣＴブロックのＭＤＣＴ係数を用いて、他のＭＤＣＴブロックのＭＤＣＴ係数を除算するようにしたことにより、除算後のＭＤＣＴ係数の絶対値の範囲が狭くなり、ベクトル量子化やエントロピー符号化等の効率が向上し、音質を向上させることができる。また、除算値の絶対値が１以上である場合にのみ、除算処理を行うことにより、ＭＤＣＴ係数が却って大きくなることを防ぎ、ベクトル量子化の効率に悪影響を与えることがなくなる。
【００７１】
なお、本実施形態における記述内容は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
例えば、上述の実施形態では、周波数変換としてＭＤＣＴを用いる場合を示したが、ＦＦＴ（Fast Fourier Transform：高速フーリエ変換）等の他の周波数変換を用いるようにしてもよい。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施形態に係る音声符号化装置の構成を示すブロック図。
【図２】入力信号のフレーム分割を示す図。
【図３】１フレームと各ＭＤＣＴブロックの関係を示す図。
【図４】ハフマン符号の一例を示す図。
【図５】従来のレンジコーダによる符号化の一例を示す図。
【図６】本実施形態のレンジコーダ符号化に必要な生起確率テーブル８１のデータ構成を示す図。
【図７】デフォルトの生起確率テーブル８１の一例（同図（ａ））と、符号化の一例（同図（ｂ））を示す図。
【図８】生起確率テーブル８１の更新例を示す図。
【図９】符号化された音声を復号する音声復号装置の構成を示すブロック図。
【図１０】本実施形態の音声符号化装置において実行される音声符号化処理を示すフローチャート。
【図１１】本実施形態の音声符号化装置において実行される周波数変換係数除算処理を示すフローチャート。
【図１２】図１１の周波数変換係数除算処理の変形例を示すフローチャート。
【図１３】本実施形態の音声復号装置において実行される周波数変換係数乗算処理を示すフローチャート。
【図１４】図１３の周波数変換係数乗算処理の変形例を示すフローチャート。
【符号の説明】
【００７３】
１  Ａ／Ｄ変換部
２  ＤＣ除去部
３  フレーム化部
４  レベル調整部
５  周波数変換部
６  除算部
７  周波数並べ替え部
８  ベクトル量子化部
８ａ  高域用ＶＱテーブル
８ｂ  低域用ＶＱテーブル
９  エントロピー符号化部
１０  レートコントローラ
１１  データ削除部
８１  生起確率テーブル
２１  エントロピー復号部
２２  逆ベクトル量子化部
２３  時間順並べ替え部
２４  乗算部
２５  周波数逆変換部
２６  レベル再現部
２７  フレーム合成部
２８  Ｄ／Ａ変換部
１００  音声符号化装置
２００  音声復号装置
【図１】
2006119363.tif 000017
【図２】
2006119363.tif 000018
【図３】
2006119363.tif 000019
【図４】
2006119363.tif 000020
【図５】
2006119363.tif 000021
【図６】
2006119363.tif 000022
【図７】
2006119363.tif 000023
【図８】
2006119363.tif 000024
【図９】
2006119363.tif 000025
【図１０】
2006119363.tif 000026
【図１１】
2006119363.tif 000027
【図１２】
2006119363.tif 000028
【図１３】
2006119363.tif 000029
【図１４】
2006119363.tif 000030