(57)【要約】符号化装置（５００）は、１ずつ繰り上がるｎ個の整数（ｎは自然数）に対し、それぞれを一意に表すｎ個のコードが示されている第４レイヤのコードブックと、同じｎ個の整数のうちの一部の整数のそれぞれを一意に表すｍ個（ｍはｍ＜ｎを満たす自然数）のコードが示されている第１レイヤから第３レイヤのコードブックとを備え、第１レイヤから第４レイヤのコードブックのいずれかを用いてデジタル信号を符号化する。従って、符号化装置（５００）は、第１レイヤから第４レイヤのコードブックのいずれかから別のいずれかにコードブックを切り替えるときでも、スケーリングをやり直す必要がない。
2006527961.tif 000002
【特許請求の範囲】
【請求項１】
コードブックを参照して、デジタル信号を符号化する符号化装置であって、
少なくとも第１のコードブックと１以上の第２のコードブックとを記憶する記憶手段と、
前記記憶手段に記憶されているいずれかのコードブックを参照することにより、デジタル信号をコードに置き換える符号化手段を備え、
前記第１のコードブックには、連続するｎ個の整数（ただし、ｎは自然数）のそれぞれを一意に表すｎ個のコードが示され、
１以上の前記第２のコードブックには、ｍ個の整数（ただし、ｍはｎ未満の自然数）のそれぞれを一意に表すｍ個のコードが示され、
前記符号化手段は、前記記憶手段に記憶されているいずれのコードブックに対しても、前記デジタル信号が示す整数値そのものを用いて参照する
ことを特徴とする符号化装置。
【請求項２】
前記ｍ個の整数は、前記ｎ個の整数の部分集合である
ことを特徴とする請求の範囲１記載の符号化装置。
【請求項３】
前記第２のコードブックが複数ある場合、前記第２のコードブックには、前記ｍ個の整数の一部に同じ整数の組み合わせが含まれ、互いに異なる個数ｍ個の整数を表すコードが示されている
ことを特徴とする請求の範囲２記載の符号化装置。
【請求項４】
前記記憶手段は、さらに、１以上の第３のコードブックを記憶し、
１以上の前記第３のコードブックには、前記ｎ個の整数の部分集合であるｋ個の整数（ただし、ｋはｎ未満の自然数）のそれぞれを一意に表すｋ個のコードが示され、
前記第３のコードブックの少なくとも１つには、前記ｋ個の整数の一部に前記第２のコードブックとは異なる整数の組み合わせが含まれ、
前記第３のコードブックが複数ある場合、前記第３のコードブックには、前記ｋ個の整数の一部に同じ整数の組み合わせが含まれ、互いに異なる個数ｋ個の整数を表すコードが示されている
ことを特徴とする請求の範囲３記載の符号化装置。
【請求項５】
前記符号化装置は、さらに、
入力される信号の値が前記ｎ個の整数を含む所定の範囲内となるよう、入力される信号をスケーリングするスケーリング手段と、
スケーリングされた信号値のそれぞれを、前記ｎ個の整数のうちのいずれかの値のデジタル信号に量子化する量子化手段と、
量子化された前記デジタル信号の値の組み合わせに応じて、１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれかを選択する選択手段とを備え、
前記符号化手段は、量子化された信号値を、選択された１以上の前記第２のコードブック又は１以上の前記第３のコードブックのうちの１つを参照してコードに置き換える
ことを特徴とする請求の範囲４記載の符号化装置。
【請求項６】
前記選択手段は、前記デジタル信号の平均値と分散とを算出し、前記デジタル信号の値の組み合わせを調べ、調べた結果に応じて１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれかを選択する
ことを特徴とする請求の範囲５記載の符号化装置。
【請求項７】
前記符号化手段は、
所定サンプル数のデジタル信号毎に、置き換えられた前記コードのビット数を算出するビット数算出部と、
算出されたビット数が目標ビット数以下か否かを判定する判定部とを備え、
前記符号化手段は、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数以下であれば、第１のコードブックを参照し、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数を超える場合には、１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれか選択された方の１つを参照する
ことを特徴とする請求の範囲６記載の符号化装置。
【請求項８】
前記符号化手段は、１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれか選択された方のうち、前記コードのビット数が目標ビット数を超えない範囲で個数ｍ又はｋが最も大きいコードブックを参照する
ことを特徴とする請求の範囲７記載の符号化装置。
【請求項９】
前記符号化手段は、
所定サンプル数のデジタル信号毎に、置き換えられた前記コードのビット数を算出するビット数算出部と、
算出されたビット数が目標ビット数以下か否かを判定する判定部とを備え、
前記符号化手段は、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数以下であれば、第１のコードブックを参照し、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数を超える場合には、１以上の前記第２のコードブックの１つを参照する
ことを特徴とする請求の範囲３記載の符号化装置。
【請求項１０】
前記符号化手段は、１以上の前記第２のコードブックうち、前記コードのビット数が目標ビット数を超えない範囲で個数ｍが最も大きいコードブックを参照する
ことを特徴とする請求の範囲９記載の符号化装置。
【請求項１１】
記憶手段に、少なくとも第１のコードブックと１以上の第２のコードブックとを記憶しておき、前記コードブックを参照して、デジタル信号を符号化する符号化方法であって、
前記記憶手段に記憶されているいずれかのコードブックを参照することにより、デジタル信号をコードに置き換える符号化ステップを備え、
前記第１のコードブックには、連続するｎ個の整数（ただし、ｎは自然数）のそれぞれを一意に表すｎ個のコードが示され、
１以上の前記第２のコードブックには、ｍ個の整数（ただし、ｍはｎ未満の自然数）のそれぞれを一意に表すｍ個のコードが示され、
前記符号化ステップでは、前記記憶手段に記憶されているいずれのコードブックに対しても、前記デジタル信号が示す整数値そのものを用いて参照する
ことを特徴とする符号化方法。
【請求項１２】
前記ｍ個の整数は、前記ｎ個の整数の部分集合である
ことを特徴とする請求の範囲１１記載の符号化方法。
【請求項１３】
前記第２のコードブックが複数ある場合、前記第２のコードブックには、前記ｍ個の整数の一部に同じ整数の組み合わせが含まれ、互いに異なる個数ｍ個の整数を表すコードが示されている
ことを特徴とする請求の範囲１２記載の符号化方法。
【請求項１４】
前記記憶手段は、さらに、１以上の第３のコードブックを記憶し、
１以上の前記第３のコードブックには、前記ｎ個の整数の部分集合であるｋ個の整数（ただし、ｋはｎ未満の自然数）のそれぞれを一意に表すｋ個のコードが示され、
前記第３のコードブックの少なくとも１つには、前記ｋ個の整数の一部に前記第２のコードブックとは異なる整数の組み合わせが含まれ、
前記第３のコードブックが複数ある場合、前記第３のコードブックには、前記ｋ個の整数の一部に同じ整数の組み合わせが含まれ、互いに異なる個数ｋ個の整数を表すコードが示されている
ことを特徴とする請求の範囲１３記載の符号化方法。
【請求項１５】
前記符号化方法は、さらに、
入力される信号の値が前記ｎ個の整数を含む所定の範囲内となるよう、入力される信号をスケーリングするスケーリングステップと、
スケーリングされた信号値のそれぞれを、前記ｎ個の整数のうちのいずれかの値のデジタル信号に量子化する量子化ステップと、
量子化された前記デジタル信号の値の組み合わせに応じて、１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれかを選択する選択ステップとを含み、
前記符号化ステップでは、量子化された信号値を、選択された１以上の前記第２のコードブック又は１以上の前記第３のコードブックのうちの１つを参照してコードに置き換える
ことを特徴とする請求の範囲１４記載の符号化方法。
【請求項１６】
前記選択ステップでは、前記デジタル信号の平均値と分散とを算出し、前記デジタル信号の値の組み合わせを調べ、調べた結果に応じて１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれかを選択する
ことを特徴とする請求の範囲１５記載の符号化方法。
【請求項１７】
前記符号化ステップでは、
所定サンプル数のデジタル信号毎に、置き換えられた前記コードのビット数を算出するビット数算出ステップと、
算出されたビット数が目標ビット数以下か否かを判定する判定ステップとを含み、
前記符号化ステップは、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数以下であれば、第１のコードブックを参照し、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数を超える場合には、１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれか選択された方の１つを参照する
ことを特徴とする請求の範囲１６記載の符号化方法。
【請求項１８】
前記符号化ステップでは、１以上の前記第２のコードブック又は１以上の前記第３のコードブックのいずれか選択された方のうち、前記コードのビット数が目標ビット数を超えない範囲で個数ｍ又はｋが最も大きいコードブックを参照する
ことを特徴とする請求の範囲１７記載の符号化方法。
【請求項１９】
前記符号化ステップでは、
所定サンプル数のデジタル信号毎に、置き換えられた前記コードのビット数を算出するビット数算出ステップと、
算出されたビット数が目標ビット数以下か否かを判定する判定ステップとを含み、
前記符号化ステップでは、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数以下であれば、第１のコードブックを参照し、前記第１のコードブックを参照して置き換えられたコードのビット数が目標ビット数を超える場合には、１以上の前記第２のコードブックの１つを参照する
ことを特徴とする請求の範囲１３記載の符号化方法。
【請求項２０】
前記符号化ステップでは、１以上の前記第２のコードブックうち、前記コードのビット数が目標ビット数を超えない範囲で個数ｍが最も大きいコードブックを参照する
ことを特徴とする請求の範囲１９記載の符号化方法。
【請求項２１】
コードで記述されたストリームを、コードブックを参照してデジタル信号に復号化する復号化装置であって、
入力されるストリームから、所定のサンプル数毎に、デジタル信号を表すコード、前記コードの復号化結果であるデジタル信号を増幅するためのゲインおよび前記コードを整数値のデジタル信号に変換するためのコードブックを特定するための情報を抽出する抽出手段と、
複数のコードブックを記憶する記憶手段と、
前記記憶手段に記憶されているコードブックの１つを特定し、特定されたコードブックを参照して、抽出されたコードを整数値のデジタル信号に変換する復号化手段と、
変換の結果得られたデジタル信号を、抽出されたゲインで増幅する増幅手段と
を備えることを特徴とする復号化装置。
【請求項２２】
記憶手段に、複数のコードブックを記憶しておき、コードで記述されたストリームを、前記コードブックを参照してデジタル信号に復号化する復号化方法であって、
入力されるストリームから、所定のサンプル数毎に、デジタル信号を表すコード、前記コードの復号化結果であるデジタル信号を増幅するためのゲインおよび前記コードを整数値のデジタル信号に変換するためのコードブックを特定するための情報を抽出する抽出ステップと、
前記記憶手段に記憶されているコードブックの１つを特定し、特定されたコードブックを参照して、抽出されたコードを整数値のデジタル信号に変換する復号化ステップと、
変換の結果得られたデジタル信号を、抽出されたゲインで増幅する増幅ステップと
を含むことを特徴とする復号化方法。
【請求項２３】
デジタル信号をコードに置き換えるために参照されるコードブックであって、
連続するｎ個（ただし、ｎは自然数）の整数の範囲で、ｍ個（ただし、ｍはｎ未満の自然数）の整数のそれぞれを一意に表すｍ個のコードが示され、前記ｍ個の整数は、前記ｎ個の整数の部分集合であることを特徴とするコードブック。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ信号やビデオ信号を高効率に符号化する符号化装置、符号化方法および前記符号化に用いられるコードブックに関する。
【背景技術】
【０００２】
従来からオーディオ信号、ビデオ信号の符号化において、ハフマン符号化方式に代表される高効率な可変長符号化方式が採用されている。たとえば、オーディオ信号の符号化においては、国際標準規格であるＩＳＯ／ＩＥＣ  １３８１８−７、通称ＭＰＥＧ（MPEG：Moving Picture Coding Experts Group）−２  ＡＡＣ（Advanced Audio Coding）方式などが有名であり、その符号化方式には、複数のハフマン符号化方式が用いられており、その符号化効率が極めて優れていることが言われている。
【０００３】
ＡＡＣの場合は、ＭＤＣＴ（Modified Discrete Cosine Transform）係数をスケーリングしたのち、整数に量子化した係数をハフマン符号で表現することで、情報量の圧縮を達成している。ここでＡＡＣのハフマン符号化では、量子化された整数の最大値と最小値を決定し、その最大値と最小値の間にある、すべての整数を量子化の代表点としてハフマン符号を割り振っている。このことは、ある最大値と最小値との間をユークリッド距離として等間隔な代表点で表現することを意味しており、その結果、量子化対象の分布によらず、量子化誤差をその間隔以内に確実に抑えることができる。また、量子化精度の異なる複数のハフマンコードブックを持つことで、量子化誤差を大きくする代わりにビット消費を抑えるか、量子化誤差を小さくする代わりにビット消費が大きくなるかを選択できるようにしている。
【０００４】
図１は、従来のＡＡＣ方式でオーディオ信号を符号化する符号化装置１００の構成を示す図である。符号化装置１００は、スケーリング部１０１、量子化部１０２、コード生成部１０３、コードブック記憶部１０４およびストリーム生成部１０５を備える。アナログオーディオ信号を所定の周波数でサンプリングすることによって得られた時間軸上のデジタルオーディオ信号は、一定時間間隔で一定サンプル数ずつに切り出され、ＭＤＣＴなどを経て、周波数軸上のデータであるＭＤＣＴ係数に変換された後、入力デジタル信号Ｙとして符号化装置１００に入力される。入力デジタル信号Ｙは、スケーリング部１０１に入力され、スケーリング部１０１は、スケールファクターバンドと呼ばれる帯域ごとにある１つのゲインＡをもって、前記帯域に含まれるＭＤＣＴ係数をスケーリングする。スケーリング部１０１は、スケーリングのゲインＡをストリーム生成部１０５に出力するとともに、スケーリングの結果得られたＭＤＣＴ係数Ｘを、量子化部１０２に出力する。量子化部１０２は、スケーリングされたＭＤＣＴ係数Ｘを決められた変換式で量子化する。ＡＡＣ方式の場合は、具体的には、浮動小数で表現されているＭＤＣＴ係数を整数値に丸めを行うことで量子化をおこなっている。コード生成部１０３は、コードブック記憶部１０４に格納されているコードブックを参照して、量子化されたＭＤＣＴ係数を符号化した上、コードＣをストリーム生成部１０５に出力する。ストリーム生成部１０５は、スケーリング部１０１から入力されたゲインＡと、コード生成部１０３から入力されたスケールファクターバンド内のコードＣとにヘッダ情報などを付加し、ストリームとして出力する。コードブック記憶部１０４には、量子化精度の異なる複数のコードブックが格納されている。コードブック記憶部１０４に格納されているコードブックのうち量子化精度の低いコードブックを参照して符号化を行えば、量子化誤差が大きくなる代わりにストリームのビット量を低減することができる。逆に、量子化精度の高いコードブックを参照して符号化を行えば、ストリームのビット量が増加してしまう代わりに量子化誤差を小さくすることができる。このように符号化装置１００は、量子化精度の異なるコードブックを選択することにより、符号化の効率を高めている。
【０００５】
図２は、図１に示した従来の符号化装置１００のコードブック記憶部１０４に格納される量子化精度の異なるコードブック２０１〜２０４の一例を示す図である。コードブック２０１では、最大値「１」と、最小値「−１」との間のすべての整数「−１」、「０」、「１」を量子化値として取りえて、それらすべての量子化値に対するコードを"０"、"１"の２値表現で示している。コードブック２０２では、最大値「２」と、最小値「―２」との間のすべての整数「−２」、「−１」、「０」、「１」、「２」を量子化値として取りえて、それらすべての量子化値に対するコードを"０"、"１"の２値表現で示している。コードブック２０３では、最大値「３」と、最小値「−３」との間のすべての整数「−３」、「−２」、「−１」、「０」、「１」、「２」、「３」を量子化値として取りえて、それらすべての量子化値に対するコードを"０"、"１"の２値表現で示している。コードブック２０４では、最大値「４」と、最小値「−４」との間のすべての整数「−４」、「−３」、「−２」、「−１」、「０」、「１」、「２」、「３」、「４」を量子化値として取りえて、それらすべての量子化値に対するコードを"０"、"１"の２値表現で示している。コードは一例であるので、これらに限定されるものではない。
【０００６】
図３は、量子化対象Ｘに対する図２のコードブック毎の量子化の代表点（量子化値Ｘ'）の分布、すなわち、代表点となる整数の組み合わせの関係を示す図である。図２および図３に示すように、コードブック２０１には、それぞれ「１」、「０」、「−１」の３点の代表点にコードが割り当てられることが示されている。この場合、量子化対象Ｘ１であるＭＤＣＴ係数は、最大値が「１」、最小値が「−１」程度（それに限定しない）になるようにスケーリングされる。このように、コードブック２０１を参照して符号化を行う場合には、それぞれの代表点を表すコードは、３つの値を表すだけでよいので、ビット数が少なくてすむ。また、コードブック２０２には、量子化値Ｘ２'として「２」、「１」、「０」、「−１」、「−２」の５点のそれぞれの代表点にコードが割り当てられることが示されている。この場合、量子化対象Ｘ２であるＭＤＣＴ係数は、最大値が「２」、最小値が「−２」程度（それに限定しない）になるようにスケーリングされる。このように、コードブック２０２を参照して符号化を行う場合には、コードブック２０１を参照する場合に比べて、５つの量子化値Ｘ２'を表現するために、３つの量子化値Ｘ１'を表現する場合に比べてそれぞれの値を表すコードのビット数が多くなる。同様に、コードブック２０３では「−３」から「＋３」までの７つの量子化値Ｘ３'にコードが割り当てられ、このとき量子化対象Ｘ３であるＭＤＣＴ係数は、最大値が「３」、最小値が「−３」程度になるようにスケーリングされる。また、コードブック２０４では「−４」から「＋４」までの９つの量子化値Ｘ４'にコードが割り当てられ、このとき量子化対象Ｘ４であるＭＤＣＴ係数は、最大値が「４」、最小値が「−４」になるようスケーリングされる。オーディオ符号化方式のＡＡＣなどでは、このような方法を用いて量子化ならびに符号化が実施される。
【０００７】
さらに、図２に示すように、コードブック２０１〜２０４では、頻繁に現れる量子化値に対して、より短いビット数のコードが割り当てられるように工夫がなされている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の方法では、実際の量子化対象の分布に関わらず、量子化対象を、「０」を中心とする等間隔な代表点に量子化しているだけである。例えば、図３を見れば明らかなように、コードブック２０１〜２０４に対応する代表点３０１〜３０４は「０」を中心としてプラス方向とマイナス方向とに均一に分布している。量子化対象が「０」を中心として分布することは統計的には一般的なことであるが、場合によっては、量子化対象の分布が「０」を中心としてではなく、プラスかマイナスの一方に偏りを示すこともないとはいえない。
【０００９】
また、上記従来の方法では、量子化精度の異なる複数のハフマンコードブックを用いて量子化を行い、符号化効率の向上を図っているが、コードブックを量子化精度の異なる別のコードブックに切り替える際には、それぞれのコードブックの分解能に適用させるために、量子化対象をスケーリングし直す必要がある。図４は、量子化精度の異なるコードブックを用いて符号化を行う場合の従来の符号化装置１００における符号化処理の手順の一例を示すフローチャートである。ここでは、１つの方法として、例えば、最初に量子化精度の最も高いコードブックを参照して符号化を行う場合について説明する。その符号化の結果、スケールファクターバンド内のビット数が基準値を超えた場合には、量子化精度の一段低いコードブックを参照して符号化を行い、スケールファクターバンド内のビット数が基準値以内になるか、それ以上量子化精度の低いコードブックがなくなるまでコードブックの量子化精度を一段ずつ下げて符号化を行うものとする。まず、スケーリング部１０１は、スケールファクターバンド毎にｎ個（ｎは自然数）のＭＤＣＴ係数（ｙ１、ｙ２、ｙ３、・・・、ｙｎ）を入力し（Ｓ４０１）、入力されたＭＤＣＴ係数の値の範囲が、最も量子化精度の高いコードブックの代表点の値の範囲内となるようＭＤＣＴ係数をスケーリングする（Ｓ４０２）。例えば、コードブック２０４を参照して符号化を行う場合には、ｋ＝１、２、・・・、ｎのとき、ｋ番目のＭＤＣＴ係数ｙｋのすべてが−４＜（ｙｋ／Ａ）＝ｘｋ＜＋４となるようなゲインＡでスケーリングを行う。量子化部１０２では、スケーリングされたＭＤＣＴ係数ｘｋの丸めを行い、コード生成部１０３では丸めによって得られた量子化値ｘｋ'に割り当てられるコードＣｋをコードブック２０４から読み出す。コード生成部１０３では、スケールファクターバンド内のｎ個のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）の合計ビット数を算出し（Ｓ４０３）、算出された合計ビット数が目標ビット数以下か否かを判定する（Ｓ４０４）。
【００１０】
ステップＳ４０４において、スケールファクターバンド内の合計ビット数が目標ビット数以下であれば、コード生成部１０３は、そのスケールファクターバンドの符号化に用いたコードブックのＩＤ（又は番号など）、及びスケールファクターバンド内のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）をストリーム生成部１０５に出力する。ストリーム生成部１０５では、コード生成部１０３からのコードブックのＩＤ及びスケールファクターバンド内のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）と、スケーリング部１０１からのスケーリングのゲインＡとを含むストリームを出力する（Ｓ４０５）。符号化装置１００には、次のスケールファクターバンドのＭＤＣＴ係数が入力され、ステップＳ４０１から上記の処理が開始される。
【００１１】
ステップＳ４０４において、スケールファクターバンド内のｎ個のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）の合計ビット数が目標ビット数を超えている場合、コード生成部１０３は、同じスケールファクターバンド内のＭＤＣＴ係数（ｙ１、ｙ２、ｙ３、・・・、ｙｎ）の値の範囲が、量子化精度が一段低いコードブックの代表点の値の範囲内となるよう、スケーリングのやり直しをスケーリング部１０１に指示する。これにより、スケーリング部１０１ではステップＳ４０２の処理に戻り、スケーリングのやり直しを行う（Ｓ４０２）。具体的には、スケーリング部１０１は、コードブック２０４より量子化精度が一段低いコードブック２０３を参照して符号化を行うために、ｋ＝１、２、・・・、ｎとなるすべてのｋについてｋ番目のＭＤＣＴ係数ｙｋがコードブック２０３の代表点の値の範囲−３＜（ｙｋ／Ａ）＝ｘｋ＜＋３を満たすようなゲインＡを求め、スケーリングを行う。量子化部１０２では、スケーリングされたＭＤＣＴ係数ｘｋの丸めを行い、コード生成部１０３では丸めによって得られた量子化値ｘｋ'に割り当てられるコードＣｋをコードブック２０３から読み出す。コード生成部１０３では、スケールファクターバンド内のｎ個のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）の合計ビット数を算出し（Ｓ４０３）、算出された合計ビット数が目標ビット数以下か否かを判定する（Ｓ４０４）。この時点でまだスケールファクターバンド内のｎ個のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）の合計ビット数が目標ビット数を超えている場合、符号化装置１００ではステップＳ４０２の処理に戻り、ゲインＡの値を変更して、それ以上量子化精度の低いコードブックがなくなるか、スケールファクターバンド内の合計ビット数が目標ビット数以下になるまで、ステップＳ４０２〜Ｓ４０４の処理を繰り返す。
【００１２】
このように、スケーリングをし直す場合には、１つのスケールファクターバンド毎に、スケールファクターバンド内に含まれるｎ個のＭＤＣＴ係数に対して割り算を実行した上、ｎ個の各実数値と代表点の値の範囲との大小比較を行う必要があり、この計算量は膨大な計算量となるので、符号化における問題となる。
【００１３】
そこで本発明は、スケーリングし直しによる処理負荷を増加することなく、さらに効率よく符号化を行うことができる符号化装置および復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
この課題を解決するために、本発明の符号化装置は、コードブックを参照して、デジタル信号を符号化する符号化装置であって、少なくとも第１のコードブックと１以上の第２のコードブックとを記憶する記憶手段と、前記記憶手段に記憶されているいずれかのコードブックを参照することにより、デジタル信号をコードに置き換える符号化手段を備え、前記第１のコードブックには、連続するｎ個の整数（ただし、ｎは自然数）のそれぞれを一意に表すｎ個のコードが示され、１以上の前記第２のコードブックには、ｍ個の整数（ただし、ｍはｎ未満の自然数）のそれぞれを一意に表すｍ個のコードが示され、前記符号化手段は、前記記憶手段に記憶されているいずれのコードブックに対しても、前記デジタル信号が示す整数値そのものを用いて参照することを特徴とする。
【発明の効果】
【００１５】
以上のように、本発明のコードブックは、量子化の代表点を最大値と最小値との間の等間隔な代表点で表現する必要が必ずしもない点に着目し、同一数値範囲を示す最大値と最小値との間の全整数値である代表点およびその個数より少ない個数の代表点で表現した。これにより、最大値と最小値との間の全整数値の数より少ない個数の代表点を持つコードブックでは、最大値と最小値との間の代表点の分布という特徴をコードブックに加味することができる。そして、最大値と最小値との間の全整数値の数より少ない、異なる個数の代表点を持つことにより、複数の量子化分解能をもつコードブックを備えることができ、生成されるストリームのビット数に応じて量子化分解能を切り替えることにより符号化効率を向上することができる。また、量子化分解能の異なるコードブックを切り替えるときにも、最大値と最小値とが同じであるので、スケーリングをやり直す必要がなく、コードブック切り替え時の計算量を低減することができる。この結果、本発明の符号化装置を、ＬＳＩ実装やソフトウェアで実現した場合に消費電力などのメリットが期待できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態における符号化装置および復号化装置について、図面を用いて説明する。
（実施の形態１）
図５は、実施の形態１の符号化装置５００の構成を示すブロック図である。同図において図１に示した従来の符号化装置１００と同じ構成要素については、同一の参照符号を付す。符号化装置５００は、同一整数範囲内で量子化の代表点の分布が異なり、かつ、前記整数範囲内で代表点の個数が異なるために量子化精度が異なる複数のコードブックの１つを参照して符号化を行う符号化装置であって、量子化部１０２、ストリーム生成部１０５、スケーリング部５０１、コード生成部５０３及びコードブック記憶部５０４を備える。スケーリング部５０１がスケーリング部１０１と異なる点は、コード生成部５０３がコードブックを切り替える際にスケーリングのやり直しを行わない点である。それ以外では、スケーリング部５０１はスケーリング部１０１と同様、符号化対象となるデジタル信号、例えば、ＭＤＣＴ係数Ｙを、（数１）の関係などを用いて、ゲインＡと、量子化対象となるＸの因子に分離する。
【００１７】
（数１）
Ｙ  ＝  Ａ・Ｘ
ここでＡおよびＸは整数でもよいし、浮動小数点の値でもよい。簡単のためにＸを浮動小数点の値とする。量子化部１０２では、入力されたＸを、四捨五入などにより整数値Ｘ'へと量子化する。コード生成部５０３では、入力された整数値Ｘ'に対応するコードを、コードブック５０４から探して対応するコードＣを出力する。しかし、コード生成部５０３がコード生成部１０３と異なる点は、量子化部１０２から入力された量子化値Ｘ'の平均値及び分散を求めて量子化対象の分布の偏りを調べ、分布の偏りに応じたコードブックのグループから１つを選択して量子化値の符号化を行う点である。それぞれの量子化対象の分布の偏りに対応したコードブックのグループは、量子化精度の異なる複数のコードブックから構成されている。コード生成部５０３は、例えば、まず、選択したグループのうちの量子化精度の最も高いコードブックを用いて符号化を行い、スケールファクターバンド内のコードの合計ビット数をカウントし、カウントされた合計ビット数が目標ビット数以下であるか否かを判定する。目標ビット数以下であれば、コード生成部５０３は、符号化に用いたコードブックを特定するためのコードブックのＩＤ又は番号と、符号化によって得られたコードＣとをストリーム生成部１０５に出力する。スケールファクターバンド内のコードの合計ビット数が目標ビット数を超えている場合には、量子化精度の一段低いコードブックに切り替えて符号化を行う。このとき、コード生成部５０３では、スケーリング部５０１に対してスケーリングのやり直しを指示しない点がコード生成部１０３と異なる点である。このようにして、コード生成部５０３は、スケールファクターバンド内のコードの合計ビット数が目標ビット数以下になるか、または、それ以上量子化精度の低いコードブックがなくなるまで、符号化と合計ビット数のカウントとを繰り返す。ストリーム生成部１０５では、スケーリング部５０１からの出力であるゲインＡ（もしくはゲインＡを表すインデックス）と、コード生成部５０３からの出力であるコードＣと、コードブックを特定するＩＤとを用いて、ビットストリームを生成する。コードブック記憶部５０４は、量子化精度の異なる複数のコードブックから構成されており、量子化対象の分布の偏りが異なるコードブックのグループを格納している点が、コードブック記憶部１０４と異なる。
【００１８】
以上のように構成された符号化装置５００で用いられるコードブックについて、本実施の形態においては、コードブックの構成方法などに特長があるので、従来例と対比しながら詳細に説明する。本実施の形態の量子化および符号化方法は、図６、図７、図８及び図９を用いて説明する。従来例として図２及び図３を用いて説明する。また、本実施の形態では、量子化部５０２に入力される値（量子化対象）Ｘが１次元の値である場合について説明する。
【００１９】
図６は、スケーリング後の量子化の代表点の分布が「＋２」周辺に偏っているコードブックのグループにおける量子化精度と代表点の分布６０１〜６０４との関係を示す図である。図７は、スケーリング後の量子化の代表点が「０」周辺に均等に分布するコードブックのグループにおける量子化精度と代表点の分布７０１〜７０４との関係を示す図である。図８は、スケーリング後の量子化の代表点の分布が「−２」周辺に偏っているコードブックのグループにおける量子化精度と代表点の分布８０１〜８０４との関係を示す図である。図６、図７及び図８においてハッチングで示される各ブロックは、１つ１つの代表点を示している。
【００２０】
図６に示す代表点の分布６０１〜６０４は、量子化の代表点が「＋２」周辺に偏って分布しているコードブックのグループにおいてコードが割り当てられる代表点の分布を示している。代表点の分布６０１では、「−４」から「＋４」までの９つの整数値に対して代表点「４」、「２」、「０」にコードが割り当てられる。また、代表点の分布６０２では、「４」、「２」、「１」、「０」、「−４」にコードが割り当てられる。さらに、代表点の分布６０３では、「４」、「２」、「１」、「０」、「−１」、「−３」、「−４」にコードが割り当てられる。最後に、代表点の分布６０４では、従来のコードブック２０４と同様、「−４」から「＋４」までの９つの整数値すべてにコードが割り当てられる。
【００２１】
図７に示す代表点の分布７０１〜７０４は、量子化の代表点が「０」周辺に均等に分布するコードブックのグループにおいてコードが割り当てられる代表点の分布を示している。代表点の分布７０１では、代表点「２」、「０」、「−２」に対してコードが割り当てられる。また、代表点の分布７０２では、代表点「４」、「２」、「０」、「−２」、「−４」に対して、コードが割り当てられる。さらに、代表点の分布７０３では、代表点「４」、「２」、「１」、「０」、「−１」、「−２」、「−４」に対して、コードが割り当てられる。最後に、代表点の分布７０４では、従来のコードブック２０４と同様、「−４」から「＋４」までの９つの整数値すべてに対してコードが割り当てられる。
【００２２】
図８に示す代表点の分布８０１〜８０４は、量子化の代表点が「−２」周辺に偏っているコードブックのグループにおいてコードが割り当てられる代表点の分布を示している。代表点の分布８０１では、代表点「０」、「−２」、「−４」に対してコードが割り当てられる。また、代表点の分布８０２では、代表点「４」、「０」、「−１」、「−２」、「−４」に対して、コードが割り当てられる。さらに、代表点の分布８０３では、代表点「４」、「３」、「１」、「０」、「−１」、「−２」、「−４」に対して、コードが割り当てられる。最後に、代表点の分布８０４では、従来のコードブック２０４と同様、「−４」から「＋４」までの９つの整数値すべてに対してコードが割り当てられる。
【００２３】
ここで、図６、図７及び図８の代表点の分布６０１、分布７０１及び分布８０１において、それぞれ代表点としてハッチングされているブロックは３つであり、代表点の数は図３の代表点の分布３０１のそれと同じ数である。また、代表点の分布６０２、分布７０２及び分布８０２において、それぞれの代表点を示すハッチングされたブロックの数は５つであり、図３の代表点の分布３０２の代表点と同じ個数である。代表点の分布６０３、分布７０３及び分布８０３において、それぞれハッチングされたブロックの数は７つであり、図３の代表点の分布３０３における代表点の数と同じ個数である。図６、図７及び図８に示す代表点の分布６０４、分布７０４及び分布８０４と図３の代表点の分布３０４とにおいて代表点の数及び分布は全く同一である。ここで、ハッチングされたブロックの個数について着目したが、これはそれぞれの量子化精度に応じたコードブックが有するコードの数を意味する。
【００２４】
つまり、図６、図７、図８及び図３において、量子化精度に応じて、（１）代表点の分布６０１、分布７０１及び分布８０１と分布３０１、（２）分布６０２、分布７０２及び分布８０２と分布３０２、（３）分布６０３、分布７０３及び分布８０３と分布３０３、（４）分布６０４、分布７０４及び分布８０４と分布３０４で示されるコードブックは、それぞれ同じ個数のコードを有するコードブックであることを意味している。つまり、図６、図７、図８及び図３において、同じ量子化精度で量子化を行うコードブックは、それぞれ同じ個数のコードを有するコードブックであることを意味している。
【００２５】
つぎに、図６における代表点の分布のみに着目すると、分布６０１でハッチングされたブロックは、分布６０２では必ずハッチングされており、分布６０２でハッチングされたブロックは、分布６０３で必ずハッチングされている。また、分布６０３でハッチングされたブロックは、分布６０４では必ずハッチングされており、分布６０４では最大値と最小値の間のすべてのブロックがハッチングされた構成になっている。図７及び図８における分布７０１及び分布８０１も同様に、分布７０１及び分布８０１でハッチングされたブロックは、分布７０２及び分布８０２で必ずハッチングされており、分布７０２及び分布８０２でハッチングされたブロックは、分布７０３及び分布８０３で必ずハッチングされている。分布７０３及び分布８０３でハッチングされたブロックは、分布７０４及び分布８０４で必ずハッチングされており、分布７０４および分布８０４では最大値と最小値の間のすべてのブロックがハッチングされた構成になっている。ここで、代表点が分布６０１、分布７０１及び分布８０１のように分布するコードブックを用いた量子化を「第１レイヤの量子化」と名づける。同様に、分布６０２、分布７０２及び分布８０２を「第２レイヤの量子化」、分布６０３、分布７０３及び分布８０３を「第３レイヤの量子化」、分布６０４、分布７０４及び分布８０４を「第４レイヤの量子化」と名づける。また、第１レイヤの量子化を行うコードブックを「第１レイヤのコードブック」、第２レイヤの量子化を行うコードブックを「第２レイヤのコードブック」、第３レイヤの量子化を行うコードブックを「第３レイヤのコードブック」、第４レイヤの量子化を行うコードブックを「第４レイヤのコードブック」と名づける。
【００２６】
第１レイヤから第４レイヤのいずれの量子化方法も、スケーリングによって、最大値を「４」、最小値を「−４」程度としたときに適用できるものであるので、量子化方法を第１から第４レイヤのいずれのレイヤに変えても、すなわち、コードブックを第１から第４レイヤのいずれのコードブックに切り替えてもスケーリングをやりなおす必要がない。また、第１レイヤから第４レイヤへとレイヤの番号を増やすにつれて、確実に量子化の分解能を確実にあげることができる。そして、本実施の形態では第４レイヤの量子化方法では、図３の従来の分布３０４の量子化方法と同一のコードブックを用いて符号化を行うので、例えば、最大の分解能を有する量子化方法で符号化すると予め決定した場合、従来のようにスケーリングをやり直しすることなく、コードブックを切り替えるだけで最大の分解能を有する符号化を行うことができる。また、量子化対象の信号分布が予め与えられている場合、その分布によって、連続した整数値に限定されることはなく、各レイヤの量子化値を従来よりも自由に設定できる。
【００２７】
図９は、図６の量子化方法に代表される本実施の形態のコードブックの一例を示す図である。これに対し、図２は、図３の量子化方法に代表される従来のコードブックを示したものである。
【００２８】
コードブック９０１では、量子化の代表点として最大値「４」と最小値「−４」との間で３つの整数（例えば、「４」、「２」、「０」）を量子化値として取りえて、それら３つすべての量子化値に対するコードを"０"と"１"との２値表現（例えば、"１１１"、"１００"、"０"）で示している。コードブック９０２では、量子化の代表点として最大値「４」と最小値「−４」との間で５つの整数（例えば、「４」、「２」、「１」、「０」、「−４」）を量子化値として取りえて、それら５つすべての量子化値に対するコードを"０"と"１"との２値表現（例えば、"１０１０"、"１００"、"００"、"０１"、"１０１１"）で示している。コードブック９０３では、量子化値として最大値「４」と最小値「−４」との間でその７つの整数（「４」、「２」、「１」、「０」、「−１」、「−３」、「−４」）を量子化値として取りえて、それら７つすべての量子化値に対するコードを"０"と"１"との２値表現（"１０１０１"、"１０１００"、"１００"、"００"、"０１"、"１０１１０"、"１０１１１"）で示している。コードブック９０４では、量子化値として最大値「４」と最小値「−４」との間ですべての整数（「４」、「３」、「２」、「１」、「０」、「−１」、「−２」、「−３」、「−４」）を量子化値として取りえて、それらすべての量子化値に対するコードを"０"と"１"との２値表現（"１０１０００１"、"１０１０１"、"１０１００００"、"１００"、"００"、"０１"、"１０１１０"、"１０１１１"、"１０１００１０"）で示している。なお、このコードは一例であるので、これらに限定されるものではない。
【００２９】
また、コードブック９０４の量子化値は、必ずコードブック９０３の量子化値を含んでいる。コードブック９０３の量子化値は、必ずコードブック９０２の量子化値を含んでいる。コードブック９０２の量子化値は、必ずコードブック９０１の量子化値を含んでいる。このことから、コードブック９０１を用いて量子化するよりも、コードブック９０２を用いて量子化した方が、同じか、もしくは量子化誤差を小さく量子化することが可能である。同様に、コードブック９０２を用いて量子化するよりも、コードブック９０３を用いて量子化した方が、同じか、もしくは量子化誤差を小さく量子化することが可能である。同様に、コードブック９０３を用いて量子化するよりも、コードブック９０４を用いて量子化した方が、同じか、もしくは量子化誤差を小さく量子化することが可能である。よって、本実施の形態の場合は、量子化対象を最大値が「４」、最小値が「−４」となる程度にＭＤＣＴ係数をスケーリングさえすれば、符号化装置５００において、コードブックを切り替える場合に再度スケーリングをやりなおす必要がない。またコードブック９０１からコードブック９０４へとレイヤの番号が大きくなるにつれ、量子化誤差を小さくできる。
【００３０】
一方、図９に示すように、同じ量子化値を表す場合であっても、量子化精度の低いコードブック９０１では、コードのビット数が少なく、量子化精度の高いコードブックほどコードのビット数が多くなっていることが分かる。例えば、量子化値「４」は、量子化精度の最も低いコードブック９０１では"１１１"と３ビットで表されているが、次に量子化精度の高いコードブック９０２では"１０１０"と４ビットで表されている。さらに量子化精度の高いコードブック９０３では、"１０１０１"と５ビットで表され、最も量子化精度の高いコードブック９０４では、"１０１０００１"と７ビットで表される。このように、コードブック９０１からコードブック９０４へと番号が大きくなるにつれ、代表点の数が増加するので、一般にビット消費が大きくなる。つまり、ビット消費を抑えたければ、量子化の代表点の数の少ないコードブックを用いて量子化し符号化を実施し、ビット消費は大きくなるものの、量子化誤差を抑えたければ、量子化値の数の大きなコードブックを用いて量子化し符号化を実施すればよい。
【００３１】
図１０は、本実施の形態の符号化装置５００における動作を示すフローチャートである。まず、スケーリング部５０１は、バンド毎にｎ個（ｎは自然数）の信号（ｙ１、ｙ２、ｙ３、・・・、ｙｎ）を入力し（Ｓ１００１）、入力された信号の値の範囲が、あらかじめ定められた範囲内となるよう信号（ｙ１、ｙ２、ｙ３、・・・、ｙｎ）をスケーリングする（Ｓ１００２）。例えば、スケーリングされた信号の値ｘｋ＝ｙｋ／Ａ（ただし、ｋ＝１、２、・・・、ｎ）の範囲が、あらかじめ定められた範囲、例えば、最小値が「−４」で最大値が「４」程度の範囲内となるよう信号（ｙ１、ｙ２、ｙ３、・・・、ｙｎ）をスケーリングする。量子化部１０２では、スケーリングされた信号ｘｋの丸めを所定の方法、例えば、四捨五入などによって行う。コード生成部５０３では、丸めによって得られた量子化値ｘｋ'の分布を分析する（Ｓ１００３）。具体的には、バンド内の量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に対して、平均値と分散を算出する。平均値によって量子化値ｘｋ'の偏りの中心がどの辺りにあるかが分かる。また、分散によって、バンド内の量子化値ｘｋ'が偏りの中心からどれぐらい分散しているかが分かる。コード生成部５０３は、分析結果に従って、量子化値ｘｋ'の分布に最も適したコードブックのグループに、コードブックのグループを切り替える（Ｓ１００４）。コード生成部５０３は、切り替えられたコードブックのグループに属するすべてのレイヤのコードブックをコードブック記憶部５０４から読み出し、量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に割り当てられる各レイヤのコードＣｋを各レイヤのコードブックから読み出す。さらに、読み出したコードＣｋをバンド内のｎ個の量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に割り当てると、レイヤ毎に、バンド内のコードの合計ビット数を算出する（Ｓ１００５）。
【００３２】
ここでは、例えば、第１レイヤから第４レイヤの処理をそれぞれ並列処理で行うものとする。具体的には、コード生成部５０３では、（１）第１レイヤの処理を行う処理部が量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に割り当てられる第１レイヤのコードＣｋ１を読み出す。（２）これと並行して、第２レイヤの処理を行う処理部が量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に割り当てられる第２レイヤのコードＣｋ２を読み出す。（３）これと並行して、第３レイヤの処理を行う処理部が量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に割り当てられる第３レイヤのコードＣｋ３を読み出す。（４）同様に並行して、第４レイヤの処理を行う処理部が量子化値ｘｋ'（ｋ＝１、２、・・・、ｎ）に割り当てられる第４レイヤのコードＣｋ４を読み出す。次いで、それぞれのレイヤ毎にスケールファクターバンド内のｎ個のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）の合計ビット数を算出する。具体的には、（１）第１レイヤの処理を行う処理部がバンド内の第１レイヤのコードＣｋ１（ｋ＝１、２、・・・、ｎ）の合計ビット数を算出する。（２）これと並行して、第２レイヤの処理を行う処理部がバンド内の第２レイヤのコードＣｋ２（ｋ＝１、２、・・・、ｎ）の合計ビット数を算出する。（３）これと並行して、第３レイヤの処理を行う処理部がバンド内の第３レイヤのコードＣｋ３（ｋ＝１、２、・・・、ｎ）の合計ビット数を算出する。（４）同様に並行して、第４レイヤの処理を行う処理部がバンド内の第４レイヤのコードＣｋ４（ｋ＝１、２、・・・、ｎ）の合計ビット数を算出する。コード生成部５０３では、レイヤ毎に算出された合計ビット数が目標ビット数以下となるレイヤのコードブックを選択する、または、合計ビット数が目標ビット数以下とならなかった場合、第１レイヤのコードブックを選択する（Ｓ１００６）。
【００３３】
コード生成部５０３は、ステップＳ１００６で選択されたコードブックを用いてバンド内の信号を符号化し（Ｓ１００７）、バンド内の信号の符号化に用いたコードブックのＩＤ（又は番号など）、及びバンド内のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）をストリーム生成部１０５に出力する。ストリーム生成部１０５では、コード生成部５０３からのコードブックのＩＤ及びスケールファクターバンド内のコード（Ｃ１、Ｃ２、Ｃ３、・・・、Ｃｎ）と、スケーリング部５０１からのスケーリングのゲインＡとを含むストリームを出力する（Ｓ１００８）。この後、符号化装置５００には、次のバンドの信号が入力され、ステップＳ１００１から上記の処理と同じ処理が開始される。
【００３４】
以上のように、本実施の形態の符号化装置５００によれば、コード生成部５０３においてコードブックを切り替える毎にスケーリングのやり直しを行う必要がないので、符号化装置５００の処理負荷を低減することができる。また、量子化の代表点の分布が異なる複数のコードブックのグループを備えたことにより、あらかじめ量子化値の分布が分かる場合には、その分布に合わせて最適なコードブックを選択することができるので、より精度の高い量子化および符号化を行うことができる。また、それぞれのコードブックのグループには、量子化精度の異なるコードブックを備えているので、より効率のよい符号化を行うことができる。
【００３５】
図１１は、実施の形態１の復号化装置１１００の構成を示すブロック図である。実施の形態１の復号化装置１１００は、実施の形態１の符号化装置５００によって符号化されたストリームを復号化する復号化装置であって、復号化装置１１００は、ストリーム分離部１１０１、復号化部１１０２、逆スケーリング部１１０３およびコードブック記憶部１１０４を備える。復号化装置１１００には、外部から記録媒体又は伝送路などを介してビットストリームがストリーム分離部１１０１に入力される。ストリーム分離部１１０１では、予め決められているストリームのシンタックスにしたがって、ゲインＡとコードＣとコードブックを特定するための番号又はＩＤなどをストリームから分離する。分離されたコードＣとコードブックを特定するための番号とは、復号化部１１０２に入力される。分離されたゲインＡは、逆スケーリング部１１０３に入力される。コードブック記憶部１１０４には、図５に示した符号化装置５００のコードブック記憶部５０４に格納されているコードブックと同じコードブックが格納されている。復号化部１１０２は、コードブックを特定するための番号に基づいてコードブック記憶部１１０４に格納されている１つのコードブックを特定する。さらに、特定されたコードブックを参照して、コードブックに記載の量子化値Ｘ'とコードＣとの対応関係から、コードＣを量子化値Ｘ'に復号化する。復号化部１１０２の出力である量子化値Ｘ'と、ストリームから分離されたゲインＡとは、逆スケーリング部１１０３に入力される。逆スケーリング部１１０３は、（数２）などの計算によって、復号化部１１０２から出力された量子化値Ｘ'をゲインＡで増幅し、例えば、ＭＤＣＴ係数などの値Ｙ'を得る。
【００３６】
（数２）
Ｙ´  ＝  Ａ・Ｘ´
以上のように、本実施の形態によれば、符号化装置５００のコードブック記憶部５０４に格納されるコードブックを、図６〜図８のような代表点の分布をもつコードブックに変更するだけで、符号化装置５００の計算量を多大に増加することなく符号化の効率を向上することができ、しかも、符号化装置５００で生成された符号列を復号化装置で復号化する際には、ストリームに記述されているゲインＡとコードＣとコードブックを特定するための番号又はＩＤとから問題なくデジタル信号を復号化することができる。
【００３７】
（実施の形態２）
実施の形態１では、量子化対象が１次元の信号である場合について説明したが、量子化対象は必ずしも１次元である必要はなく、多次元であってもよい。以下では、簡単のために２次元の場合を例として、図１２および図１３を用いて説明する。図１２は、実施の形態２の符号化装置において符号化に用いられるコードブックの代表点の２次元分布の一例を示す図である。図１３は、従来のＡＡＣなどの符号化方式で用いられているコードブックの代表点の２次元分布の一例を示す図である。なお、図１２および図１３は、横軸をｘ軸、縦軸をｙ軸とし、成分（ｘ、ｙ）からなる２次元のベクトルを与えた時の量子化の代表点の分布を模式的に示したものである。ここで、２次元のベクトル成分には、例えば、連続する２サンプルの量子化値をあてはめるとしてもよい。
【００３８】
本実施の形態では、例えば図１２に示すような量子化方法をとる。つまり、第１レイヤの分布１２０１、第２レイヤの分布１２０２、第３レイヤの分布１２０３のいずれにおいても、ｘ成分およびｙ成分の最大値と最小値とは同じで、−３≦ｘ≦３、−３≦ｙ≦３であり、かつ、第１レイヤの分布１２０１から第３レイヤの分布１２０３へとレイヤの番号が大きくなるにつれ、代表点の数だけが増えていっている。このように構成すれば、一度、量子化対象がスケーリングされて、第３レイヤの分布１２０３のいずれかの領域に含まれることが判明したならば、スケーリングを再計算することなく、同じスケーリングされた値を用いて、最も符号化効率のよいレイヤのコードブックを選択し、符号化すればよい。例えば、第２レイヤの分布１２０２または第１レイヤの分布１２０１では、量子化対象と代表点とが必ずしも一致しないが、その場合には、第２レイヤの分布１２０２または第１レイヤの分布１２０１の中で、量子化対象の値がいずれのハッチングされた領域（代表点）に近いかを判定し、もっとも近いハッチングされた領域の代表点をもって符号化される量子化値とすればよい。また１次元の時と同様に、量子化のレイヤの番号が大きくなるにつれ、第１レイヤの分布１２０１から第３レイヤの分布１２０３へと代表点の数が増える。このことから、ビット消費は増えるものの量子化誤差を減らしたいという場合は代表点の多いコードブックを用いて量子化すればよいし、量子化誤差は増える可能性があるがビット消費を減らしたい場合は、代表点の数の少ないコードブックを用いて量子化すればよい。また、コードブックにおける量子化の代表点は、量子化対象の分布にもとづいて、等間隔という制限なく任意に作成できるので、符号化効率の向上を期待することができる。
【００３９】
一方、従来のＡＡＣなどの符号化方式における量子化の代表点の分布、例えば、第１レイヤの分布１３０１においては、ｘ軸方向およびｙ軸方向に、それぞれ最大値と最小値を決め、その最大値と最小値の間を３つの領域にわけ、全体を合計９つの領域に分けている。量子化対象がスケーリングされて、９つのいずれかの領域にプロットされるとき、その領域の代表点（量子化値）をもって量子化される。例えば、第１レイヤの分布１３０１においては、スケーリング後の最大値を「１」、最小値を「−１」とした場合に、(-1,-1), (-1,0),(-1,1),(0,-1),(0,0),(0,1),(1,-1),(1,0),(1,1)の９点を代表点にするなどである。同様に、第２レイヤの分布１３０２においては、最大値と最小値との間を５つの領域に区分した場合であり、第３レイヤの分布１３０３においては、最大値と最小値との間を７つの領域に区分した場合である。いずれにしても、従来のコードブックでは、多次元の場合であっても、１次元の場合と同様に、量子化の代表点の分布が等間隔の代表点で表現されていて、かつ、別のコードブック（例えば、第１レイヤのコードブックから第２レイヤのコードブック）に切り替える場合は、スケーリングをやりなおす必要があり計算量が増加する。
【００４０】
なお、上記実施の形態２では、図１２のように代表点の分布の偏りが１種類の場合のみについて説明したが、本発明はこれに限定されず、実施の形態１のように複数種類のコードブックのグループを備えるとしてもよいことはいうまでもない。
【００４１】
また、上記実施の形態では、入力される量子化対象の信号がオーディオ信号である場合について説明したが、本発明はこれに限定されず、本発明の符号化方法を適用可能な信号であれば、どのような信号であってもよい。例えば、動画像信号などであってもよい。量子化対象が動画像信号である場合、入力されるＤＣＴ係数に対してスケーリングという処理が行われることはないが、量子化対象の分布に応じたコードブックを符号化装置に複数備えておくことにより、より効率のよい符号化を行うことができる。
【産業上の利用可能性】
【００４２】
本発明に係る符号化装置は、音声信号および映像信号を圧縮符号化する機能を備えたパーソナルコンピュータ、ＰＤＡ、デジタル放送の放送局および携帯電話機などに備えられる符号化装置として有用である。
【００４３】
本発明に係るコードブックは、音声信号および映像信号などを圧縮符号化する符号化装置に備えられるコードブックとして、前記符号化装置によって符号化された符号列を復号化する復号化装置に備えられるコードブックとして有用である。
【図面の簡単な説明】
【００４４】
【図１】従来のＡＡＣ方式でオーディオ信号を符号化する符号化装置の構成を示す図である。
【図２】図１に示した従来の符号化装置のコードブック記憶部に格納される量子化精度の異なるコードブックの一例を示す図である。
【図３】量子化対象Ｘに対する図２のコードブック毎の量子化の代表点（量子化値Ｘ'）の分布の関係を示す図である。
【図４】量子化精度の異なるコードブックを用いて符号化を行う場合の従来の符号化装置における符号化処理の手順の一例を示すフローチャートである。
【図５】実施の形態１の符号化装置の構成を示すブロック図である。
【図６】スケーリング後の量子化の代表点の分布が「＋２」周辺に偏っているコードブックのグループにおける量子化精度と代表点の分布との関係を示す図である。
【図７】スケーリング後の量子化の代表点が「０」周辺に均等に分布するコードブックのグループにおける量子化精度と代表点の分布との関係を示す図である。
【図８】スケーリング後の量子化の代表点の分布が「−２」周辺に偏っているコードブックのグループにおける量子化精度と代表点の分布との関係を示す図である。
【図９】図６の量子化方法に代表される本実施の形態のコードブックの一例を示す図である。
【図１０】本実施の形態の符号化装置における動作を示すフローチャートである。
【図１１】実施の形態１の復号化装置の構成を示すブロック図である。
【図１２】実施の形態２の符号化装置において符号化に用いられるコードブックの代表点の２次元分布の一例を示す図である。
【図１３】従来のＡＡＣなどの符号化方式で用いられているコードブックの代表点の２次元分布の一例を示す図である。
【図１】
2006527961.tif 000003
【図２】
2006527961.tif 000004
【図３】
2006527961.tif 000005
【図４】
2006527961.tif 000006
【図５】
2006527961.tif 000007
【図６】
2006527961.tif 000008
【図７】
2006527961.tif 000009
【図８】
2006527961.tif 000010
【図９】
2006527961.tif 000011
【図１０】
2006527961.tif 000012
【図１１】
2006527961.tif 000013
【図１２】
2006527961.tif 000014
【図１３】
2006527961.tif 000015
【国際調査報告】
2006527961.tif 000016
2006527961.tif 000017
2006527961.tif 000018