(57)【特許請求の範囲】
【請求項１】
順次入力される、ブロックごとに変換符号化された所定ビット幅の符号化データに対して、有効なビットを欠落させることなく当該データをＭＳＢ側にシフトする最大のシフト量を検出するシフト量検出手段と、
前記順次入力される符号化データを、前記検出されたシフト量以下の仮のシフト量でＭＳＢ側にシフトする第１のシフト手段と、
前記シフトされた符号化データの上位の所定ビット幅部分を記憶するデータ記憶手段と、
前記記憶された符号化データを上記データ記憶手段から読み出し、
上記読み出した符号化データについての上記仮のシフト量と実際に行うべきシフト量との差を調整シフト量として検出し、
当該符号化データを上記調整シフト量でＬＳＢ側にシフトする第２のシフトを行なう
第２のシフト手段と、
前記第２のシフト手段でシフトされた前記符号化データを復号化する復号化手段と
を有する復号化装置。
【請求項２】
前記第１のシフト手段は、
前記符号化データのビット幅と上記データ記憶手段のビット幅の差を上記仮のシフト量の初期値として設定し、
当該符号化データに対して前記検出されたシフト量が、上記仮のシフト量より小さい場合は、当該検出されたシフト量で前記順次入力される符号化データをＭＳＢ側にシフトし、当該検出されたシフト量を上記仮のシフト量として更新し、
上記仮のシフト量以上の場合は、当該上記仮のシフト量で前記順次入力される符号化データをＭＳＢ側にシフトし、設定されている上記仮のシフト量の値をそのまま維持する
請求項１に記載の復号化装置。
【請求項３】
前記第２のシフト手段は、上記最終的に更新された仮のシフト量を上記実際に行うべきシフト量として上記調整シフト量を検出して、前記記憶された符号化データを読み出しそのシフト量を調整する
請求項２に記載の復号化装置。
【請求項４】
前記符号化データ各々の前記第１のシフト手段における仮のシフト量を記憶するシフト量記憶手段
をさらに有し、
前記第２のシフト手段は、前記記憶された符号化データを読み出し、当該読み出した符号化データについての上記仮のシフト量と実際に行うべきシフト量との差を調整シフト量として検出し、当該符号化データを上記調整シフト量でＬＳＢ側にシフトすることにより、そのシフト量を調整する
請求項３に記載の復号化装置。
【請求項５】
前記シフト量記憶手段は、前記順次入力される符号化データに応じて前記仮のシフト量が更新されるごとに、当該変更位置および変更結果のシフト量を記憶する
請求項４に記載の復号化装置。
【請求項６】
ブロックごとに変換符号化され量子化された符号化データを順次逆量子化し所定ビット幅の逆量子化されたデータを順次生成する逆量子化手段
をさらに有し、
前記シフト量検出手段は、前記順次逆量子化されたデータに対して、前記最大のシフト量を検出する
請求項３に記載の復号化装置。
【請求項７】
前記データ記憶手段は、前記シフト量の調整された前記符号化データを順次記憶し、
前記復号化手段は、前記記憶手段よりシフト量の調整された前記符号化データを読み出し、復号化する
請求項３に記載の復号化装置。
【請求項８】
前記データ記憶手段は、前記シフトされた符号化データの上位の、当該データ記憶手段の１ワード当たりのビット幅に相当する部分を順次記憶する
請求項３に記載の復号化装置。
【請求項９】
前記復号化手段において復号化された前記データを、当該復号化処理前の前記符号化データのシフト量に応じて調整する復号化データ調整手段
をさらに有する請求項３に記載の復号化装置。
【請求項１０】
前記データは、オーディオデータである
請求項３に記載の復号化装置。
【請求項１１】
順次入力される、ブロックごとに変換符号化された所定ビット幅の符号化データに対して、有効なビットを欠落させることなく当該データをＭＳＢ側にシフトする最大のシフト量を検出し、
前記順次入力される符号化データを、前記検出されたシフト量以下の仮のシフト量でＭＳＢ側に第１のシフトを行ない、
前記シフトされた符号化データの上位の所定ビット幅部分を順次記憶し、
前記記憶された符号化データを読み出し、
上記読み出した符号化データについての上記仮のシフト量と実際に行うべきシフト量との差を調整シフト量として検出し、
当該符号化データを、上記調整シフト量でＬＳＢ側にシフトする
第２のシフトを行ない、
前記第２のシフトがされた前記符号化データを復号化する
復号化方法。
【請求項１２】
前記第１のシフトにおいては、
前記符号化データのビット幅と上記データ記憶手段のビット幅の差を上記仮のシフト量の初期値として設定し、
当該符号化データに対して前記検出されたシフト量が、上記仮のシフト量より小さい場合は、当該検出されたシフト量で当該符号化データをＭＳＢ側にシフトし、当該検出されたシフト量を上記仮のシフト量として更新し、
上記仮のシフト量以上の場合は、当該上記仮のシフト量で当該符号化データをＭＳＢ側にシフトし、設定されている上記仮のシフト量の値をそのまま維持する
請求項１１に記載の復号化方法。
【請求項１３】
前記第２のシフトにおいては、上記最終的に更新された仮のシフト量を上記実際に行うべきシフト量として上記調整シフト量を検出して前記記憶された符号化データをシフトする
請求項１２に記載の復号化方法。
【請求項１４】
前記入力される符号化データは、ブロックごとに変換符号化され量子化されたデータを順次逆量子化した所定ビット幅のデータである
請求項１３に記載の復号化方法。
【請求項１５】
前記第２のシフトが行なわれた符号化データを、前記第１のシフトを記憶した記憶手段に記憶し、
前記復号化は、前記記憶手段より前記第２のシフトが行なわれた前記符号化データを読み出し行なう
請求項１３に記載の復号化方法。
【請求項１６】
前記復号化されたデータを、当該復号化処理前の前記符号化データのシフト量に応じて調整し、最終的な復号化データを得る
請求項１３に記載の復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブロックごとに変換符号化が行なわれた、たとえばオーディオデータなどの任意の符号化データを復号化する装置および方法に関し、特に、復号化装置に使用するメモリの容量を少なくすることができる、復号化装置および復号化方法に関する。
【０００２】
【従来の技術】
ディジタルオーディオ信号を高能率で圧縮する符号化方式としては、たとえばＭＰＥＧオーディオと呼ばれる国際標準化規格ＩＳＯ／ＩＥＣ１１１７２−３（ＭＰＥＧ−１オーディオ）や１３８１８−３（ＭＰＥＧ−２オーディオ）、１３８１８−７（ＡＡＣ:Advanced Audio Coding）などが知られている。
これらの方式では、オーディオ信号を複数個集めてブロック化し、ブロック単位で時間領域の信号から周波数領域の信号へと変換を行った後、人間の聴覚特性を利用した量子化を行ってデータ量の削減を行っている。
【０００３】
たとえばＡＡＣの符号化処理では、入力されたオーディオ信号１０２４サンプルをブロック化し、ブロックごとにＭＤＣＴ（Modified Discrete Cosine Transform）を行っている。そして、ＭＤＣＴの結果出力される変換係数に対して量子化処理を行うことにより、データ量を圧縮している。ＡＡＣにおいては、最終的に量子化された変換係数とヘッダ情報とをマルチプレクスし、符号化オーディオ信号のビットストリームが生成される。
なお、ＡＡＣの詳細な内容については、たとえば、Marina  ＢＯＳＩ，et al,“ＩＳＯ／ＩＥＣＭＰＥＧ−２Advanced Audio Coding",Journal of Audio Engineering Society,Vol.45,No.10,1997 October に記載されている。
【０００４】
たとえばこのようなＡＡＣで符号化されたオーディオ信号を復号化する、従来のオーディオ復号装置について、図５を参照して説明する。
図５は、従来の復号化装置の構成を示すブロック図であり、オーディオ復号装置９０は、デマルチプレクス回路９１、逆量子化回路９２、データ用メモリ回路９３および変換回路９４を有する。
このようなオーディオ復号装置９０においては、入力されたビットストリームは、デマルチプレクス回路９１においてデマルチプレクスされて変換係数とヘッダ情報とに分離され、変換係数が逆量子化回路９２へ入力される。
【０００５】
逆量子化回路９２において、変換係数に対して逆量子化処理が施され、逆量子化された変換係数はデータ用メモリ回路９３に一時的に記憶された後、変換回路９４に供給される。
そして、変換回路９４においてＩＭＤＣＴ（逆ＭＤＣＴ）が行なわれ、周波数領域のデータである変換係数から、時間領域のデータである通常のオーディオ信号に変換され、元のオーディオ信号が復号され、オーディオ復号装置９０より出力される。
【０００６】
【発明が解決しようとする課題】
ところで、このようなブロック単位で変換および逆変換を行なうたとえばＡＡＣで符号化された信号の復号化装置においては、逆変換処理をブロック単位で行なう必要がある、すなわち、１ブロック分の変換係数がそろったところで行う必要がある。そのため、図５に示したオーディオ復号装置９０のように、逆量子化回路９２と変換回路９４との間には、逆量子化処理と変換処理時間の時間のずれを吸収するためのバッファとしてのメモリが設けられている。
【０００７】
しかしながら、このバッファとしてのメモリ回路は、決して容量が少ないものではなく、より容量を少なくしたいという要望がある。
たとえば、図５に示したオーディオ復号装置９０において、データ用メモリ回路９３のデータのビット幅ＢＭは、逆量子化処理後の変換係数の１サンプルあたりのビット幅ＢＱに基づいて決定される。このような場合、メモリ回路のビット幅ＢＭと変換係数のビット幅ＢＱの値を等しくすると、変換係数のビット幅ＢＱの値が大きい場合にはメモリ回路の回路規模が著しく大きくなってしまう。
具体的には、たとえば変換係数のビット幅ＢＱが２４ビットで、ブロックサイズが１０２４サンプルの場合に、ステレオ信号左右２チャネル分のデータを記憶するには、６Ｋバイトの容量を有するメモリ回路が必要となる。
【０００８】
特に、最近では、このような復号化装置はＬＳＩ上に構成する場合が多い。
そのような場合には、他の機能をも同じＬＳＩ上に構成したいため、あるいは安価なＬＳＩを製造したいために、回路規模は少しでも小さくしたいという強い要望がある。しかしながら、たとえば前述したような６Ｋバイトもの容量を有するメモリ回路は、たとえが復号化ＬＳＩなどを考えた場合に、ＬＳＩの回路規模に対して十分大きい割合を占める回路であり、少しでも容量を少なくし、回路規模を小さくすることが望まれている。
【０００９】
たとえば、前述したオーディオ復号装置９０において、データ用メモリ回路９３の容量を少なくするためには、メモリ回路のビット幅ＢＭを変換係数のビット幅ＢＱよりも小さくすることが考えられる。
しかし、そのような構成にすると、変換係数のビット精度が落ちるため、音質が劣化するなど、データ精度、データ品質に問題が生じる。
【００１０】
さらに、そのような音質などのデータ品質の劣化を防ぐためには、ブロック単位で変換係数をＭＳＢ側にシフトすることにより、演算精度を必要なだけ確保するという方法も考えられる。しかし、そのような方法をとる場合には、一旦ブロック内のオーディオ信号全部を逆量子化しメモリに記憶してから、ブロック内の最大振幅を持つサンプルを検索し、そのサンプルのデータが飽和しないようにシフト量を決定しなければならず、結局、変換係数のビット幅ＢＱと同じビット幅のメモリ回路が必要となってしまう。
【００１１】
したがって本発明の目的は、データ品質の劣化を防ぎつつメモリ量を削減することのできる、安価でデータ品質の良い復号化装置を提供することにある。
また、本発明の他の目的は、データ品質の劣化を防ぎつつメモリ量を削減することのできる、安価でデータ品質の良い復号化方法を提供することにある。
【００１２】
【課題を解決するための手段】
前記課題を解決するために、本発明の復号化装置は、順次入力される、ブロックごとに変換符号化された所定ビット幅の符号化データに対して、有効なビットを欠落させることなく当該データをＭＳＢ側にシフトする最大のシフト量を検出するシフト量検出手段と、前記順次入力される符号化データを、前記検出されたシフト量以下の仮のシフト量でＭＳＢ側にシフトする第１のシフト手段と、前記シフトされた符号化データの上位の所定ビット幅部分を記憶するデータ記憶手段と、前記記憶された符号化データを上記データ記憶手段から読み出し、上記読み出した符号化データについての上記仮のシフト量と実際に行うべきシフト量との差を調整シフト量として検出し、当該符号化データを上記調整シフト量でＬＳＢ側にシフトする第２のシフトを行なう第２のシフト手段と、前記第２のシフト手段でシフトされた前記符号化データを復号化する復号化手段とを有する。
【００１３】
好適には、前記第１のシフト手段は、前記符号化データのビット幅と上記データ記憶手段のビット幅の差を上記仮のシフト量の初期値として設定し、当該符号化データに対して前記検出されたシフト量が、上記仮のシフト量より小さい場合は、当該検出されたシフト量で前記順次入力される符号化データをＭＳＢ側にシフトし、当該検出されたシフト量を上記仮のシフト量として更新し、上記仮のシフト量以上の場合は、当該上記仮のシフト量で前記順次入力される符号化データをＭＳＢ側にシフトし、設定されている上記仮のシフト量の値をそのまま維持する。
また好適には、前記第２のシフト手段は、上記最終的に更新された仮のシフト量を上記実際に行うべきシフト量として上記調整シフト量を検出して、前記記憶された符号化データを読み出しそのシフト量を調整する。
【００１４】
さらに好適には、前記符号化データ各々の前記第１のシフト手段における仮のシフト量を記憶するシフト量記憶手段をさらに有し、前記第２のシフト手段は、前記記憶された符号化データを読み出し、当該読み出した符号化データについての上記仮のシフト量と実際に行うべきシフト量との差を調整シフト量として検出し、当該符号化データを上記調整シフト量でＬＳＢ側にシフトすることにより、そのシフト量を調整する。
特定的には、前記シフト量記憶手段は、前記順次入力される符号化データに応じて前記仮のシフト量が更新されるごとに、当該変更位置および変更結果のシフト量を記憶する。
【００１５】
特定的には、ブロックごとに変換符号化され量子化された符号化データを順次逆量子化し所定ビット幅の逆量子化されたデータを順次生成する逆量子化手段をさらに有し、前記シフト量検出手段は、前記順次逆量子化されたデータに対して、前記最大のシフト量を検出する。
また好適には、前記データ記憶手段は、前記シフト量の調整された前記符号化データを順次記憶し、前記復号化手段は、前記記憶手段よりシフト量の調整された前記符号化データを読み出し、復号化する。
【００１６】
また好適には、前記データ記憶手段は、前記シフトされた符号化データの上位の、当該データ記憶手段の１ワード当たりのビット幅に相当する部分を順次記憶する。
また特定的には、前記復号化手段において復号化された前記データを、当該復号化処理前の前記符号化データのシフト量に応じて調整する復号化データ調整手段をさらに有する。
さらに特定的には、前記データは、オーディオデータである。
【００１７】
また、本発明の復号化方法は、順次入力される、ブロックごとに変換符号化された所定ビット幅の符号化データに対して、有効なビットを欠落させることなく当該データをＭＳＢ側にシフトする最大のシフト量を検出し、前記順次入力される符号化データを、前記検出されたシフト量以下の仮のシフト量でＭＳＢ側に第１のシフトを行ない、前記シフトされた符号化データの上位の所定ビット幅部分を順次記憶し、前記記憶された符号化データを読み出し、上記読み出した符号化データについての上記仮のシフト量と実際に行うべきシフト量との差を調整シフト量として検出し、当該符号化データを、上記調整シフト量でＬＳＢ側にシフトする第２のシフトを行ない、前記第２のシフトがされた前記符号化データを復号化する。
【００１８】
【発明の実施の形態】
本発明の一実施の形態のオーディオ復号装置について、図１〜図５を参照して説明する。
【００１９】
まず、そのオーディオ復号装置１０の構成について説明する。
図１は、本発明の一実施の形態のオーディオ復号装置１０の構成を示すブロック図である。
オーディオ復号装置１０は、デマルチプレクス回路１１、逆量子化回路１２、バッファ処理部２０、変換回路１４およびデータ調整回路１５を有する。
【００２０】
デマルチプレクス回路１１は、オーディオ復号装置１０に入力されるブロック単位に符号化されたオーディオデータのビットストリームをデマルチプレクスし、ヘッダ情報と変換係数に分離し、変換係数を逆量子化回路１２に出力する。ヘッダ情報は、図示しない制御部により、各構成部における処理の制御あるいは復号化したオーディオ信号の出力の際などに適宜参照される。
【００２１】
逆量子化回路１２は、デマルチプレクス回路１１より入力された変換係数に対して逆量子化処理を行い、逆量子化された変換係数をバッファ処理部２０のシフト回路２４およびシフト量検出回路２１に出力する。
なお、本実施の形態において逆量子化された変換係数のデータ幅（ビット幅）は、２４ビットとする。
【００２２】
バッファ処理部２０は、逆量子化回路１２と後段の変換回路１４との間の処理時間の差異を吸収するために、逆量子化回路１２より出力される逆量子化された変換係数を一時的に記憶するバッファである。
そして特に本実施の形態のバッファ処理部２０は、逆量子化された変換係数の各サンプルデータをビット幅を縮小して記憶することにより、従来より少ないメモリ容量で逆量子化された変換係数を記憶するようにしている。
なお、バッファ処理部２０においては、逆量子化回路１２から入力される逆量子化された変換係数を仮のシフト量でシフトさせてデータ用メモリ回路２５に記憶する第１段階のシフト処理と、その結果に基づいてブロックごとに統一したシフト量でシフトさせたデータを生成する第２段階のシフト処理とを行なう。
【００２３】
このバッファ処理部２０の構成について詳細に説明する。
バッファ処理部２０は、図示のごとく、シフト量検出回路２１、シフト制御回路２２、シフト情報用メモリ回路２３、シフト回路２４およびデータ用メモリ回路２５を有する。
【００２４】
シフト量検出回路２１は、前述した第１段階のシフト処理の際に、逆量子化回路１２より入力される逆量子化された変換係数に対して、１サンプルデータごとに、そのデータを飽和することなく最大限ＭＳＢ側に移動させるためのシフト量Ｓtmp 、すなわち、そのデータの有効な最上位のビットをＭＳＢの位置に移動させるためのシフト量Ｓtmp を検出し、シフト制御回路２２に出力する。ただし、後段で実際にシフトを行なう際の最大のシフト量は、逆量子化された変換係数のビット幅ＢＱと、データ用メモリ回路２５に記憶されるデータのビット幅ＢＭとの差ＢＱ−ＢＭビットである。したがって、シフト量検出回路２１においては、シフト量がビット幅の差ＢＱ−ＢＭビット以上となった場合には、いずれもこの最大シフト量ＢＱ−ＢＭビットを検出結果として出力する。
【００２５】
具体的には、たとえば逆量子化回路１２で逆量子化された変換係数のビット幅ＢＱが２４ビット（ＬＳＢをビット０、ＭＳＢをビット２３とする）であり、あるサンプルのデータが１８ビットで示される値、すなわち１８ビットのデータであったとする。その場合、そのサンプルデータの最上位のビットはビット１７となり、これをＭＳＢ（ビット２３）までシフトさせるためには、６ビットのシフトが必要となる。この、たとえば６ビットというシフト量Ｓtmp を各サンプルデータごとにシフト量検出回路２１が検出し、シフト制御回路２２に出力する。
【００２６】
シフト制御回路２２は、シフト回路２４で行なうシフト量の決定およびそのシフトの制御を行なう。
まず、前述した第１段階のシフト処理の際には、シフト制御回路２２は、シフト量検出回路２１より入力されるシフト量Ｓtmp に基づいて、シフト回路２４において逆量子化回路１２より出力される逆量子化された変換係数に対して実際に行なうシフト量Ｓlastを決定し、そのシフトを制御する。
【００２７】
第１段階のシフト処理の際のシフト制御回路２２における処理について具体的に説明する。
まず、シフト制御回路２２は、各ブロックの区切りごとに、シフト回路２４において実際にシフトを行なうシフト量Ｓlastに、シフト量の最大値である逆量子化された変換係数のビット幅ＢＱとデータ用メモリ回路２５のビット幅ＢＭとの差ＢＱ−ＢＭを、初期値としてセットする。
しておく。
次に、逆量子化回路１２より順次出力される逆量子化された変換係数に対応してシフト量検出回路２１より入力されるシフト量Ｓtmp を、実際に行なうシフト量Ｓlastと比較し、シフト量Ｓlast＜シフト量Ｓtmp であった場合にシフト量Ｓlastをシフト量Ｓtmp で更新する。シフト量Ｓlast≧シフト量Ｓtmp の場合には、そのままシフト量Ｓlastの値を維持する。
【００２８】
シフト量Ｓlast＞シフト量Ｓtmp という状態は、そのシフト量Ｓlastで変換係数をシフトした場合、変換係数のＭＳＢ側のビットが飽和して欠落し、変換係数が大きく変更されて音質に影響を与えるという状態である。したがってそのような場合には、実際にシフトを行なうシフト量Ｓlastをその変換係数に対応した最大のシフト量シフト量Ｓtmp で更新しておくことにより、変換係数のＭＳＢ側のデータの欠落を防ぐことができる。
【００２９】
そして、このように適宜更新されたシフト量Ｓlast分だけ、対応する逆量子化された変換係数をＭＳＢ側にシフトするように、シフト回路２４を制御する。
なお、シフト量Ｓlastの値が更新された場合には、シフト制御回路２２は、その更新が行なわれた変換係数の、ブロック内での位置および、更新されたそのシフト量Ｓtmp （＝シフト量Ｓlast）を、シフト情報用メモリ回路２３に出力し、記憶する。
【００３０】
また、前述した第２段階のシフト処理の際には、シフト制御回路２２は、シフト回路２４で行なわれる、第１段階のシフト処理で順次シフトを行いながら一旦データ用メモリ回路２５に記憶させたブロックごとの変換係数に対する、シフト量を調整するための再度のシフト処理に対して、そのシフト量Ｓadj の決定およびそのシフトの制御を行なう。
【００３１】
第２段階のシフト処理の際のシフト制御回路２２における処理について具体的に説明する。
第２段階のシフト処理が開始される時点で、データ用メモリ回路２５には、逆量子化回路１２から出力された逆量子化された変換係数が第１段階のシフト処理により各々所定のシフト量でシフトされた結果のデータが記憶されている。
また、その第１段階のシフト処理の際の各変換係数に対するシフト量は、シフト情報用メモリ回路２３に、シフト量が変更されたデータのぶロック内での位置、および、その際のシフト量という形態で記憶されている。
【００３２】
さらに、第１段階のシフト処理が終了した時点で、シフト制御回路２２が記憶しているシフト量Ｓlastは、そのブロック内の全ての変換係数に対して同一のシフト量でＭＳＢ側にシフトを行なう場合に、いずれの変換係数についてもＭＳＢ側のデータを飽和させることなくシフトを行なうことのできる最大のシフト量が設定されていることになる。
したがってシフト制御回路２２は、データ用メモリ回路２５に記憶されている同一ブロック内の変換係数が、全て同じシフト量ＳlastでＭＳＢ側にシフトされたデータとなるように、シフト回路２４において各変換係数のシフト量の調整を行なうように、シフト回路２４を制御する。
【００３３】
すなわち、シフト回路２４が順次データ用メモリ回路２５より変換係数を読み出すのに対応して、シフト情報用メモリ回路２３に記憶されている情報を参照して、その変換係数が第１段階のシフト処理の際にシフトされたシフト量Ｓを検出し、そのシフト量Ｓと目的とするシフト量Ｓlastとの差を検出する。この差が、調整すべきシフト量Ｓadj となり、シフト制御回路２２は、このシフト量Ｓadj だけその変換係数をＬＳＢ側にシフトするよう、シフト回路２４を制御する。
【００３４】
シフト情報用メモリ回路２３は、前述した第１段階のシフト処理の際に、シフト制御回路２２の制御によりシフト回路２４で行なわれた同一のブロック内の各変換係数に対するシフトの量を記憶するメモリである。
前述したように、シフト制御回路２２においては、順次逆量子化回路１２より出力されるブロックごとの変換係数に対して、最大のシフト量を初期値としておき、そのシフト量でシフトを行なうとデータが飽和してしまう場合に順次シフト量をそのデータに適したシフト量減少させていく。したがって、シフト量の変更は、最大でも逆量子化回路１２より出力される変換係数のビット幅ＢＱとデータ用メモリ回路２５のデータのビット幅ＢＭとの差ＢＱ−ＢＭ回となる。
【００３５】
たとえば、変換係数のビット幅ＢＱが２４ビットでデータ用メモリ回路２５のデータのビット幅ＢＭが１６ビットの場合には、この差は８ビットである。したがってシフト情報用メモリ回路２３は、図２に示すように、有効なデータの個数ｎを示すデータ、変更される最大８回の各シフト量を示すデータＳ［０］〜Ｓ［７］、および、最大８回のシフト量を変更した位置を示すデータＰ［０］〜Ｐ［７］が記憶されればよい。
このシフト情報用メモリ回路２３に記憶されたデータは、第２段階のシフト処理の際に、シフト制御回路２２より読み出されて参照される。
【００３６】
シフト回路２４は、シフト制御回路２２からの制御に基づいて、順次入力される変換係数を所望の方向に所望のビット数だけシフトし、シフトしたデータのＭＳＢ側より、データ用メモリ回路２５のデータのビット幅ＢＭ分のデータを抽出し、データ用メモリ回路２５に記憶する。
第１段階のシフト処理の際には、シフト回路２４は、逆量子化回路１２から入力される逆量子化された変換係数を、シフト制御回路２２から入力されるシフト量ＳlastだけＭＳＢ方向にシフトし、上位のＢＭビットをデータ用メモリ回路２５に記憶する。
また、第２段階のシフト処理の際には、シフト回路２４は、データ用メモリ回路２５から読み出される変換係数を、シフト制御回路２２から入力される調整用のシフト量Ｓadj だけＬＳＢ方向にシフトし、データ用メモリ回路２５に記憶する。
【００３７】
なお、このシフト回路２４は、特許請求の範囲に記載の第１のシフト手段と第２のシフト手段の両方を機能を順に実現する回路である。すなわち、第１段階のシフト処理を行なっている時のシフト回路２４が第１のシフト手段に相当し、第２段階のシフト処理を行なっている時のシフト回路２４が第２のシフト手段に相当する。
【００３８】
データ用メモリ回路２５は、逆量子化回路１２と変換回路１４との間の処理時間の差異を吸収するために、逆量子化回路１２より出力される逆量子化された変換係数を一時的に記憶する記憶手段本体である。
前述したように、データ用メモリ回路２５には、第１段階のシフト処理により、逆量子化回路１２からバッファ処理部２０に入力された逆量子化された変換係数が、一旦、仮のシフト量でシフトされて記憶される。そして、第２段階のシフト処理により、この変換係数が読み出され、シフト量を調整するためにシフト回路２４において再度シフト処理が行なわれ、再度データ用メモリ回路２５に書き込まれる。
そして、第２段階のシフト処理が終了した変換係数は、変換回路１４から順次読み出される。
以上が、バッファ処理部２０の構成である。
【００３９】
変換回路１４は、データ用メモリ回路２５よりブロックごとの変換係数を読み出し、たとえばＩＭＤＣＴ（逆ＭＤＣＴ）を行なうなどして、周波数領域のデータから時間領域の通常のオーディオ信号に変換する。変換結果のオーディオ信号は、データ調整回路１５に出力する。
【００４０】
データ調整回路１５は、変換回路１４より入力される時間領域の信号に変換されたオーディオ信号を、所定のシフト量だけＬＳＢ方向にシフトし、バッファ処理部２０によりシフトされたことによるレベルの変化を元のレベルに調整し、オーディオ復号装置１０からの復号オーディオ信号として出力する。
なお、ここでのシフト量は、各ブロックごとの変換係数に対するバッファ処理部２０における最終的なシフト量、換言すれば、シフト制御回路２２における第１段階のシフト処理の後のシフト量Ｓlastと、変換回路１４における変換方式に基づいて決定される。
【００４１】
次に、このような構成のオーディオ復号装置１０の動作について説明する。
なお、以下の説明では、逆量子化回路１２より出力される逆量子化された変換係数のビット幅ＢＱは２４ビット、データ用メモリ回路２５のデータのビット幅ＢＭは１６ビットとする。
まず、オーディオ復号装置１０に入力された符号化されたオーディオ信号のビットストリームは、デマルチプレスク回路１１においてデマルチプレクスされ、変換係数とヘッダ情報とに分離され、変換係数が逆量子化回路１２へ出力される。
逆量子化回路１２は、変換係数に対して逆量子化処理を施し、逆量子化された変換係数をバッファ処理部２０のシフト量検出回路２１およびシフト回路２４に順次出力する。
【００４２】
バッファ処理部２０では、まず、第１段階のシフト処理として、逆量子化回路１２の出力である変換係数を、適宜適応的に変更されるシフト量を用いてシフトし、シフト結果の変換係数の上位ＢＭビット（１６ビット）をデータ用メモリ回路２５に書き込む。
バッファ処理部２０におけるこの第１段階のシフト処理について、図３に示すフローチャートを参照して詳細に説明する。
【００４３】
バッファ処理部２０は、逆量子化回路１２より新たなブロックの逆量子化された変換係数が出力されることにより新たな一連の処理を開始し（ステップＳ３０）、まず、初期化を行なう（ステップＳ３１）。具体的には、図２に示したような、シフト情報用メモリ回路２３の、シフト量の変更個数ｎ、シフト量Ｓ［０］〜Ｓ［７］、シフト位置Ｐ［０］〜Ｐ［７］の各値を０に初期化する。また、シフト制御回路２２で使用するシフト量Ｓlastをシフトの必要のある最大値に初期化し、変換係数の位置を示す補助変数ｉｉを０に初期化する。なお、本実施の形態においてシフト量Ｓlastの初期値は、ＢＱ＝２４ビット、ＢＭ＝１６ビットであるため、その差の８となる。
【００４４】
初期化が終了したら、シフト量検出回路２１が逆量子化回路１２から出力される逆量子化された変換係数を１つずつ読み込み（ステップＳ３２）、その変換係数を飽和することなくＭＳＢ側にシフトできる最大のシフト量Ｓtmp を検出し、シフト制御回路２２に出力する（ステップＳ３３）。なお、このシフト量Ｓtmp も、ＢＱ＝２４ビット、ＢＭ＝１６ビットであるため、０から８までの値となる。
【００４５】
シフト制御回路２２においては、このシフト量Ｓtmp をそれまでに設定されているシフト回路２４で使用するシフト量Ｓlastと比較する（ステップＳ３４）。
比較の結果、新たに検出されたシフト量Ｓtmp が現在のシフト量Ｓlastより小さい場合には、シフト量Ｓlastを更新してＳlast＝Ｓtmp とする（ステップＳ３５）。そして、シフト量Ｓlastをシフト量Ｓ［ｎ］として、データの位置を示す補助変数ｉｉをシフト位置Ｐ［ｎ］として、各々シフト情報用メモリ回路２３に記録し（ステップＳ３６）、シフト量の変更個数ｎを１カウントアップしておく（ステップＳ３７）。
【００４６】
ステップＳ３４において、新たに検出されたシフト量Ｓtmp が現在のシフト量Ｓlast以上の場合には、その変換係数のデータは現在のシフト量Ｓlastによるシフトで飽和しないことになるので、シフト量の変更は行なわない。
そして、そのようなシフト量Ｓtmp ≧シフト量Ｓlastの場合、および、ステップＳ３５〜ステップＳ３７においてシフト量Ｓlastの変更が行なわれた場合のいずれも、シフト回路２４において、シフト量Ｓlastを使って、対応する１サンプル分の変換係数を、シフト量ＳlastビットだけＭＳＢ側にシフトし、上位のＢＭビットをデータ用メモリ回路２５に記録する（ステップＳ３８）。また同時に、変換係数の位置を示す補助変数ｉｉを１カウントアップする。
【００４７】
そして、この補助変数ｉｉの値がブロック内の変換係数の個数に一致するか否かを検出することにより（ステップＳ３９）、ブロック内の全ての変換係数に対して、ステップＳ３２〜ステップＳ３８の、シフトおよびデータ用メモリ回路２５への記憶の処理を行なったか否かをチェックし、全てのデータに対して処理を行なっていれば、この第１段階のシフト処理を終了する（ステップＳ４０）。
なお、この時最後に保持されているシフト量Ｓlastが、そのブロックに最適のシフト量となる。
【００４８】
このような第１段階のシフト処理が終了し、全ての変換係数をデータ用メモリ回路２５に書き終わったら、同じブロックの変換係数を、同一のシフト量でシフトされたデータにするために、シフト量の再調整を行う第２段階のシフト処理を行なう。
バッファ処理部２０におけるこの第２段階のシフト処理について、図４に示すフローチャートを参照して詳細に説明する。
まず、第１段階の処理が終了すると、直ちに第２段階の処理が開始され（ステップＳ５０）、初期設定として、シフト情報用メモリ回路２３に記録されているシフト量の個数ｎがシフト制御回路２２に読み込まれ（ステップＳ５１）、さらに、記憶されているシフト量Ｓを指示するポインタｍ、および、変換係数の位置を示す補助変数ｉｉが０にセットされる（ステップＳ５２）。
【００４９】
次に、シフト量を調整すべきデータの処理が終了したか否かをチェックするために、ポインタｍを１加算した値（ｍ＋１）とシフト量の個数ｎとを比較する（ステップＳ５３）。
値（ｍ＋１）とシフト量の個数ｎとが等しい時には、残りのデータは、最終的なシフト量Ｓlast（＝Ｓ［ｎ＋１］＝Ｓ［ｍ］）で既にシフトされたデータと言うことになるので、第２段階のこのシフト量の調整処理は終了する（ステップＳ５４）。これらのデータについては、データ用メモリ回路２５に記憶されているデータの書き換えも行なわないものとする。
【００５０】
値（ｍ＋１）とシフト量の個数ｎとが等しくない時、すなわち値（ｍ＋１）＜シフト量の個数ｎの時は、シフト量Ｓ［ｍ］は最終的なシフト量Ｓlastではなく、このシフト量Ｓ［ｍ］でシフトされた位置ｉｉ〜（Ｐ［ｍ＋１］−１）までのデータは、シフト量の調整が必要なデータということになる。
したがって、シフト回路２４は、位置ｉｉ〜（Ｐ［ｍ＋１］−１）の間の変換係数をデータ用メモリ回路２５から読み出し、（Ｓlast−Ｓ［ｍ］）ビットだけＬＳＢ側にシフトし、再びデータ用メモリ回路２５の同じアドレスに書き込む（ステップＳ５５）。
【００５１】
そして、位置ｉｉを次のシフト量の開始位置Ｐ［ｍ＋１］に変更し、さらに、ポインタｍを１カウントアップして（ステップＳ５６）、ステップＳ５３に戻り、次のシフト量についての調整に移る。
このようなステップＳ５５，Ｓ５６の処理を、ステップＳ５３においてｎ＝（ｍ＋１）となるまで続けることにより、シフト量Ｓlast以外のシフト量でシフトされた全ての変換係数が、シフト量Ｓlastでシフトされた値に調整される。
【００５２】
バッファ処理部２０において、このようにして、データ用メモリ回路２５に変換係数が記憶されたら、変換回路１４がこれを順次読み出し、ＩＭＤＣＴなどの処理を行なって周波数領域のデータから時間領域の通常のオーディオ信号に変換する。
そして得られたオーディオ信号に対して、バッファ処理部２０においてシフトされた分の補正を、バッファ処理部２０におけるシフト量Ｓlastに基づいてデータ調整回路１５で行い、復号オーディオ信号を得て、オーディオ復号装置１０より出力する。
【００５３】
このように、本実施の形態のオーディオ復号装置１０においては、第一段階の処理でサンプルごとに適応的にシフト量を調整しながらブロック全体での最適なシフト量を求め、第二段階の処理でシフト量の不一致の分についての修正を行っている。したがって、変換係数のビット幅ＢＱに比べて少ないビット幅のデータ用メモリ回路２５を用いながらも、音質の劣化を防いで、復号化処理を行なうことができる。
そしてその結果、メモリ量の削減を行うことができ、オーディオ復号装置１０は、安価で音質の良い復号化装置となっている。
【００５４】
なお、本発明は本実施の形態に限られるものではなく、任意好適な種々の改変が可能である。
たとえば、本実施の形態においては、オーディオ信号の復号化装置を例示したが、ブロック単位で符号化が行なわれる符号化データであれば、任意のデータの復号化装置として適用可能である。たとえばビデオ信号の復号化装置に適用してもよい。
【００５５】
また、本実施の形態においては、シフト回路２４において、本発明の第１のシフト手段と第２のシフト手段の両方の機能を交互に実現するものとした。しかし、本発明の第１のシフト手段と第２のシフト手段に相当するシフト回路を、別個に設けるような構成であってもよい。
また、シフト回路２４とデータ調整回路１５は、本実施の形態においては実質的に同じシフト機能を持つ回路である。したがって、各処理間のタイミングをうまく調整できれば、二つの回路を一つの回路に統合するようにしてもよい。
また、変換回路１４における変換処理も、ＡＡＣの逆変換処理に限定されるものではなく、任意の変換処理を行なってよい。
【００５６】
【発明の効果】
このように、本発明によれば、データ品質の劣化を防ぎつつメモリ量を削減することのできる、安価でデータ品質の良い復号化装置および復号化方法を提供することができる。
【図面の簡単な説明】
【図１】図１は、本発明の一実施の形態のオーディオ復号装置の構成を示すブロック図である。
【図２】図２は、図１に示したオーディオ復号装置のシフト情報用メモリ回路に記憶される、第１段階のシフト処理の際の各データのシフト量を示すデータを説明するための図である。
【図３】図３は、図１に示したオーディオ復号装置のバッファ処理部で行なう第１段階のシフト処理の流れを示すフローチャートである。
【図４】図４は、図１に示したオーディオ復号装置のバッファ処理部で行なう第２段階のシフト処理の流れを示すフローチャートである。
【図５】図５は、従来のオーディオ復号装置の構成を示すブロック図である。
【符号の説明】
１０…オーディオ復号装置、１１…デマルチプレクス回路、１２…逆量子化回路、１４…変換回路、１５…データ調整回路、２０…バッファ処理部、２１…シフト量検出回路、２２…シフト制御回路、２３…シフト情報用メモリ回路、２４…シフト回路、２５…データ用メモリ回路、９０…オーディオ復号装置、９１…デマルチプレクス回路、９２…逆量子化回路、９３…データ用メモリ回路、９４…変換回路
【図１】
0004332973.tif 000002
【図２】
0004332973.tif 000003
【図３】
0004332973.tif 000004
【図４】
0004332973.tif 000005
【図５】
0004332973.tif 000006