(57)【特許請求の範囲】
【請求項１】
サンプル情報のビット幅についての情報を有するアロケーション情報、及び、サンプル情報を含むＭＰＥＧ規格のオーディオ圧縮データが入力されるＭＰＥＧオーディオデコーダであって、
上記オーディオ圧縮データ中に含まれるサンプル情報を記憶するための記憶手段と、
上記記憶手段の記憶領域に複数のサンプル情報を順に書き込むようにして、各サンプル情報のビット幅が相互に異なることにより、上記複数のサンプル情報の境界と上記記憶手段の各アドレスの境界とが一致していないミスアライン状態で記憶するようにする書き込み手段と、
上記書き込み手段によってミスアライン状態で上記記憶手段に記憶された複数のサンプル情報を１つずつ取り出して読み出すようにする読み出し手段とを設け、
上記読み出し手段は、読み出そうとしているサンプル情報の最上位ビットの位置と、上記アロケーション情報から得た該サンプル情報のビット幅とに基づいて、その読み出そうとしているサンプル情報が１つのアドレス内に記憶されているのか、２つのアドレスにまたがって記憶されているのかを判別する判別手段を有することを特徴とするＭＰＥＧオーディオデコーダ。
【請求項２】
上記読み出し手段は、上記記憶手段から読み出そうとする１つのサンプル情報の位置を指定するサンプル指定手段と、
上記サンプル指定手段により指定された上記記憶手段の１つのアドレスのデータを順次ラッチする第１のラッチ手段と、
上記第１のラッチ手段から出力されるデータを順次ラッチする第２のラッチ手段と、
上記判別手段が１つのアドレス内に記憶されていると判断したときに、上記読み出そうとする１つのサンプル情報を上記第２のラッチ手段にラッチされているデータの中から取り出すようにする第１の取出手段と、
上記判別手段が２つのアドレスにまたがって記憶していると判断したときに、上記読み出そうとする１つのサンプル情報を上記第１のラッチ手段および上記第２のラッチ手段にそれぞれラッチされているデータの中から取り出すようにする第２の取出手段とを具備することを特徴とする請求項１に記載のＭＰＥＧオーディオデコーダ。
【請求項３】
上記第１の取出手段は、上記第２のラッチ手段にラッチされているデータを所定ビットだけシフトすることにより、上記データ中に含まれる上記読み出そうとする１つのサンプル情報が１ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の１ワード内のビットを全て０にすることにより、上記読み出そうとする１つのサンプル情報のみを取り出すことを特徴とする請求項２に記載のＭＰＥＧオーディオデコーダ。
【請求項４】
上記第１の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内におけるサンプル情報の位置に応じて決定するようにしたことを特徴とする請求項３に記載のＭＰＥＧオーディオデコーダ。
【請求項５】
上記第２の取出手段は、上記第１のラッチ手段および上記第２のラッチ手段にラッチされているデータをそれぞれ所定ビットずつシフトすることにより、上記第１のラッチ手段および上記第２のラッチ手段の各データ中に分割して含まれている上記読み出そうとする１つのサンプル情報が１ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の１ワード内のビットを全て０にすることにより、上記読み出そうとする１つのサンプル情報のみを取り出すようにしたことを特徴とする請求項２に記載のＭＰＥＧオーディオデコーダ。
【請求項６】
上記第２の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内における上記サンプル情報の位置に応じて決定するようにしたことを特徴とする請求項５に記載のＭＰＥＧオーディオデコーダ。
【請求項７】
上記読み出し手段は、上記第１の取出手段または上記第２の取出手段により取り出されたサンプル情報と所定の逆量子化係数とを加算する加算手段を更に具備することを特徴とする請求項２〜６の何れか１項に記載のＭＰＥＧオーディオデコーダ。
【請求項８】
上記第１の取出手段および上記第２の取出手段によるサンプル情報の取り出し処理と上記加算手段による加算手段とをパイプライン処理で行うようにしたことを特徴とする請求項７に記載のＭＰＥＧオーディオデコーダ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＭＰＥＧによって圧縮されたオーディオデータをデコードするＭＰＥＧオーディオデコーダに関するものである。
【０００２】
【従来の技術】
近年、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｉｍａｇｅ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ）オーディオと称されるディジタル音声信号の圧縮技術が開発されてきている。現在、このＭＰＥＧオーディオにはＭＰＥＧ１という規格がある。さらに、上記ＭＰＥＧ１の規格には、要求される音質や回路規模によってレイヤＩ，レイヤＩＩ，レイヤＩＩＩ  の３つの方式が用意されている。
【０００３】
また、ＭＰＥＧオーディオにおいては、音声信号のチャネルモードとして、シングルチャネル、デュアルチャネル、ステレオ、ジョイントステレオなどの各モードが規定されている。さらに、ＭＰＥＧオーディオでは、各レイヤの各チャネルモード毎に使用可能な伝送レート（ビットレート）や、再生後の音声信号の出力レート（サンプリング周波数）が種々規定されている。
【０００４】
例えば、レイヤＩＩのステレオモードでは、オーディオデータは最大３０個のサブバンドに分割され、各サブバンド毎にサンプル情報が３個ずつまとめて符号化されており、各サブバンドには２個のチャネルが含まれている。このような符号化により得られるオーディオ圧縮データは、主にアロケーション（Ａｌｌｏｃａｔｉｏｎ）、スケールファクタ（Ｓｃａｌｅ  Ｆａｃｔｏｒ）およびサンプル（Ｓａｍｐｌｅ）もしくはサンプル（Ｓａｍｐｌｅ  Ｃｏｄｅ  ）の各情報により構成される。
【０００５】
そして、復号時には、上記アロケーション情報およびスケールファクタ情報によりサンプル情報が加工されることによってオーディオ圧縮データが復号され、ＰＣＭデータが生成されるようになっている。
【０００６】
すなわち、上記アロケーション情報は、復号時における逆量子化演算の際に用いられるデータであり、後に入力されるサンプルデータが何ビット幅であるかという情報と、そのサンプルデータが通常のサンプル情報なのかサンプルコード情報なのかという情報とを含んでいる。
【０００７】
ここで、サンプルコードとは、各サブバンド単位で、時間軸方向に連続して存在する３個のサンプル情報を１つのコードにまとめたものである。１つのサンプル情報のとり得る値が３通り、５通りまたは９通りである場合には、サンプルデータは、サンプルコード情報の形態がとられる。
【０００８】
また、上記スケールファクタ情報は、上記逆量子化演算の後の逆スケーリング演算の際に用いられるデータであり、おおよその出力レベルを与えるスケーリング係数値を表すものである。
【０００９】
また、上記サンプル情報は、上記逆量子化演算に用いられるデータであり、出力データの細かい値を与えるものである。レイヤＩＩの場合、このサンプル情報は、１フレーム単位で見ると各サブバンドの各チャネル毎に時間軸方向に３６個存在している。そして、この３６個のサンプル情報は、連続する１２個毎に異なるスケールファクタ値をとり得る。
【００１０】
以上のようなオーディオ圧縮データのデコード処理は、次のようにして行われる。すなわち、まず、上述した逆量子化処理および逆スケーリング処理によってサブバンドサンプル情報が求められる。次に、このサブバンドサンプル情報を用いて合成サブバンドフィルタ処理が行われることにより、ＰＣＭデータが生成される。
【００１１】
一般に、従来のＭＰＥＧオーディオデコーダにおいては、入力されるオーディオ圧縮データや、上述のような一連の処理過程で得られるデータを一時記憶しておくためのバッファメモリが幾つか設けられている。そのうちの１つに、上記オーディオ圧縮データ中に含まれるサンプル情報を一次記憶しておくためのサンプルＲＡＭがある。
【００１２】
【発明が解決しようとする課題】
上述したように、オーディオ圧縮データ中に含まれる各サンプル情報は、それぞれビット幅が異なるものである。具体的には、サンプル情報のビット幅は、２ビット〜１６ビットと様々である。このため、サンプルＲＡＭの１ワードは、ビット幅が最大のサンプル情報を１つのアドレスに記憶することができるようにするために、１６ビット幅となっていた。
【００１３】
また、従来のＭＰＥＧオーディオデコーダでは、アドレス単位でサンプル情報を読み出すようにしていた。このため、サンプル情報の記憶時には、各サンプル情報のビット幅がそれぞれ異なっているにもかかわらず、各サンプル情報を１つのアドレスに１つずつ記憶するようにしていた。
【００１４】
このため、１６ビット幅のサンプル情報を記憶する場合は良いが、それ以下のビット幅を持つサンプル情報を記憶する場合には、１つのアドレス内の一部にのみサンプル情報が記憶されることになる。これにより、サンプルＲＡＭの全記憶領域の中でサンプル情報が記憶されない無駄な領域が多く生じていた。
【００１５】
本発明は、このような問題を解決するために成されたものであり、オーディオ圧縮データ中のサンプル情報が記憶されるサンプルＲＡＭのメモリ領域の無駄をなくし、メモリ容量を小さくすることができるようにすることを目的とする。
【００１６】
【課題を解決するための手段】
本発明のＭＰＥＧオーディオデコーダは、サンプル情報のビット幅についての情報を有するアロケーション情報、及び、サンプル情報を含むＭＰＥＧ規格のオーディオ圧縮データが入力されるＭＰＥＧオーディオデコーダであって、上記オーディオ圧縮データ中に含まれるサンプル情報を記憶するための記憶手段と、上記記憶手段の記憶領域に複数のサンプル情報を順に書き込むようにして、各サンプル情報のビット幅が相互に異なることにより、上記複数のサンプル情報の境界と上記記憶手段の各アドレスの境界とが一致していないミスアライン状態で記憶するようにする書き込み手段と、上記書き込み手段によってミスアライン状態で上記記憶手段に記憶された複数のサンプル情報を１つずつ取り出して読み出すようにする読み出し手段とを設け、上記読み出し手段は、読み出そうとしているサンプル情報の最上位ビットの位置と、上記アロケーション情報から得た該サンプル情報のビット幅とに基づいて、その読み出そうとしているサンプル情報が１つのアドレス内に記憶されているのか、２つのアドレスにまたがって記憶されているのかを判別する判別手段を有するものである。
【００１７】
本発明の他の特徴とするところは、上記読み出し手段は、上記記憶手段から読み出そうとする１つのサンプル情報の位置を指定するサンプル指定手段と、上記サンプル指定手段により指定された上記記憶手段の１つのアドレスのデータを順次ラッチする第１のラッチ手段と、上記第１のラッチ手段から出力されるデータを順次ラッチする第２のラッチ手段と、上記判別手段が１つのアドレス内に記憶されていると判断したときに、上記読み出そうとする１つのサンプル情報を上記第２のラッチ手段にラッチされているデータの中から取り出すようにする第１の取出手段と、上記判別手段が２つのアドレスにまたがって記憶していると判断したときに、上記読み出そうとする１つのサンプル情報を上記第１のラッチ手段および上記第２のラッチ手段にそれぞれラッチされているデータの中から取り出すようにする第２の取出手段とを具備するものである。
【００１８】
本発明のその他の特徴とするところは、上記第１の取出手段は、上記第２のラッチ手段にラッチされているデータを所定ビットだけシフトすることにより、上記データ中に含まれる上記読み出そうとする１つのサンプル情報が１ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の１ワード内のビットを全て０にすることにより、上記読み出そうとする１つのサンプル情報のみを取り出すことを特徴とする。
【００１９】
本発明のその他の特徴とするところは、上記第１の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内におけるサンプル情報の位置に応じて決定するようにしたことを特徴とする。
【００２０】
また、本発明のその他の特徴とするところは、上記第２の取出手段は、上記第１のラッチ手段および上記第２のラッチ手段にラッチされているデータをそれぞれ所定ビットずつシフトすることにより、上記第１のラッチ手段および上記第２のラッチ手段の各データ中に分割して含まれている上記読み出そうとする１つのサンプル情報が１ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の１ワード内のビットを全て０にすることにより、上記読み出そうとする１つのサンプル情報のみを取り出すようにしたことを特徴とする。
【００２１】
また、本発明のその他の特徴とするところは、上記第２の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内における上記サンプル情報の位置に応じて決定するようにしたことを特徴とする。
【００２２】
また、本発明のその他の特徴とするところは、上記読み出し手段は、上記第１の取出手段または上記第２の取出手段により取り出されたサンプル情報と所定の逆量子化係数とを加算する加算手段を更に具備することを特徴とする。
【００２３】
また、本発明のその他の特徴とするところは、上記第１の取出手段および上記第２の取出手段によるサンプル情報の取り出し処理と上記加算手段による加算手段とをパイプライン処理で行うようにしたことを特徴とする。
【００２４】
【作用】
本発明は上記技術手段より成るので、１つのアドレス内に複数のサンプル情報をミスアライン状態で記憶することが可能となり、従来のように記憶手段の１ワードに満たないビット幅を持つサンプル情報が１つのアドレスに１つだけ記憶されることにより、上記記憶手段の全記憶領域の中でサンプル情報が記憶されない無駄な領域が生じるという不都合をなくすことができるようになるとともに、記憶すべきサンプル数の分だけアドレスを用意しなくても済むようになる。
【００２５】
また、本発明の他の特徴によれば、ある１つのサンプル情報を取り出す際に、メモリアドレスへのアクセスが２回行われ、上記２回にわたるメモリアドレスへのアクセスにより読み出されるデータのラッチ処理が行われることとなるので、サンプル情報の取り出し処理とその取り出したサンプル情報および逆量子化係数の加算処理とをパイプライン処理で行うようにした場合には、上記サンプル情報の取り出し処理を行っている間に、その前に取り出したサンプル情報を用いて加算処理を行う時間が十分に得られるようになる。
【００２６】
【実施例】
以下、本発明のＭＰＥＧオーディオデコーダの一実施例を図面に基づいて説明する。図１は、本発明によるＭＰＥＧオーディオデコーダの要部構成を示すブロック図である。
【００２７】
上述したように、オーディオ圧縮データのデコード処理においては、まず、逆量子化処理および逆スケーリング処理によってサブバンドサンプル情報Ｓが次の演算式に従って求められる。
Ｓ＝ｆａｃｔｏｒ×Ｃ×（Ｓ”＋Ｄ）    （式１）
ここで、（式１）中のｆａｃｔｏｒは、スケールファクタ情報に応じて特定される演算値である。また、上記（式１）中の値Ｓ”は、サンプル情報の最上位ビット（ＭＳＢ）を反転したものである。同じく（式１）中の値Ｃ，Ｄは、逆量子化係数であり、アロケーション情報に応じた値が用いられる。
【００２８】
図１は、オーディオ圧縮データ中に含まれるサンプル情報をサンプルＲＡＭに一時記憶するとともに、逆量子化処理を行うためにサンプルＲＡＭからサンプル情報を読み出す際に、上記（式１）中の（Ｓ”＋Ｄ）の値を得るようにするための構成を示したものである。
【００２９】
図１において、１はデータ入力部であり、主としてアロケーション（Ａｌｌｏｃａｔｉｏｎ）、スケールファクタ（Ｓｃａｌｅ  Ｆａｃｔｏｒ）およびサンプル（Ｓａｍｐｌｅ）の各情報で構成されるＭＰＥＧ規格のオーディオ圧縮データを入力する。このデータ入力部１に入力された各情報のうち、スケールファクタ情報およびアロケーション情報は、ＡＳ−ＲＡＭ（Ａｌｌｏｃａｔｉｏｎ・Ｓｃａｌｅ  Ｆａｃｔｏｒ−ＲＡＭ）９に記憶される。
【００３０】
また、上記サンプル情報は、例えばレイヤＩＩの場合、図４の矢印で示す順番に従ってデータ入力部１に入力される。すなわち、サブバンド番号をｓｂ（＝  ０〜３１）  、チャネル番号をｃｈ（＝  ０〜１）、１フレーム中で時間軸方向に３６個存在するサンプル情報を３個ずつまとめた各グループ０〜１１内の番号をＧＲ（＝  ０〜２）で表し、各サンプル情報をｓｐ（ｃｈ，ｓｂ，ＧＲ）で定義すると、ｓｐ（０，０，０）  、ｓｐ（０，０，１）  、ｓｐ（０，０，２）  、ｓｐ（１，０，０）  、ｓｐ（１，０，１）  、ｓｐ（１，０，２）  、ｓｐ（０，１，０）  、………、ｓｐ（１，３１，２）の順番でデータ入力部１に入力されていく。
【００３１】
２はサンプル変換部であり、入力されるサンプルデータがサンプルコード情報である場合に、そのサンプルコード情報を分解して３つのサンプル情報に変換する。３は書き込み手段であり、上記サンプル変換部２から送られてくるサンプル情報をサンプルＲＡＭ４に書き込む。なお、このサンプルＲＡＭ４の１ワードは、サンプル情報の最大ビット幅である１６ビット（２バイト）に合わせて設計されている。
【００３２】
図１から明らかなように、本実施例の書き込み手段３は、ビット幅が異なる複数のサンプル情報を、サンプルＲＡＭ４の１ワードに１つずつ書き込むのではなく、先に書き込んだサンプル情報に続けて詰めて書き込むようにしている。これにより、サンプルＲＡＭ４の１つのアドレス内には幾つものサンプル情報が記憶されるようになる。また、斜線部で示したように、１つのアドレス内の残りの記憶領域で足りないときは、次のアドレスの記憶領域も使って１つのサンプル情報が記憶される、つまり、１つのサンプル情報が２つのアドレスにまたがって記憶されることが頻繁に発生する。
【００３３】
すなわち、サンプルＲＡＭ４には、サンプル情報がｓｐ（０，０，０）  、ｓｐ（０，０，１）  、ｓｐ（０，０，２）  、ｓｐ（１，０，０）  、ｓｐ（１，０，１）  、ｓｐ（１，０，２）  、ｓｐ（０，１，０）  、………、ｓｐ（１，３１，２）の順番で若いアドレスから順に詰めて記憶されていく。このように、本実施例においては、サンプルＲＡＭ４に記憶されるサンプル情報の境界と各アドレスの境界とが一致しないので、アラインメントがとれていないと言える。以下では、この状態をミスアライン状態と呼ぶことにする。
【００３４】
５は読み出し手段であり、上記サンプルＲＡＭ４にミスアライン状態で記憶された複数のサンプル情報を１つずつ読み出し、その読み出したサンプル情報に所定の逆量子化係数を加算して出力するものである。すなわち、この読み出し手段５は、サンプル取り出し手段６と加算手段７とを具備している。
【００３５】
上記サンプル取り出し手段６は、ミスアライン状態で記憶されているサンプル情報をサンプルＲＡＭ４から１つずつ取り出す。サンプル情報が１つのアドレス内に記憶されているときは、そのアドレスから１つのサンプル情報を取り出す。また、サンプル情報が２つのアドレスにまたがって記憶されているときは、その２つのアドレスから１つのサンプル情報を取り出す。その際、取り出したサンプル情報の最上位ビット（ＭＳＢ）を反転して加算手段７に出力する。
【００３６】
また、上記加算手段７は、サンプル取り出し手段６によってＭＳＢが反転された状態で取り出されたサンプル情報Ｓ”と、係数ＲＯＭ８にあらかじめ記憶されている逆量子化係数Ｄとを加算する。この加算結果（Ｓ”＋Ｄ）は、図示しない乗加算器に与えられ、逆量子化処理および逆スケーリング処理に利用される。
【００３７】
なお、上記サンプル取り出し手段６におけるサンプル情報の取り出し処理は、ＡＳ−ＲＡＭ９から読み出されるアロケーション情報を参照して行われる。また、上記加算手段７において加算される逆量子化係数Ｄは、上記アロケーション情報の値に応じて決められる。
【００３８】
上記サンプル取り出し手段６は、図２に示すように構成されている。
図２に示したように、サンプル取り出し手段６は、サンプル指定手段１０と、第１および第２のラッチ手段１１，１２と、第１および第２のサンプル取出手段１３，１４と、判別手段１５と、切り替え手段１６とにより構成されている。
【００３９】
上記サンプル指定手段１０は、サンプルＲＡＭ４から読み出そうとするサンプル情報のアドレスやそのアドレス内での位置を指定する。第１のラッチ手段１１は、上記サンプル指定手段１０により指定されたアドレスから読み出されるデータ（幾つかのサンプル情報を含んでいる）を順次ラッチするものであり、本実施例では１６ビットで構成されている。第２のラッチ手段１２は、上記第１のラッチ手段１１の出力を順次ラッチするものであり、同じく１６ビットで構成されている。
【００４０】
第１のサンプル取出手段１３は、上記第２のラッチ手段１２にラッチされている１６ビットデータから１つのサンプル情報を取り出す。この第１のサンプル取出手段１３は、１つのサンプル情報が１つのアドレス内に記憶されている場合に、そのアドレスの１６ビットデータを用いて、読み出そうとする１つのサンプル情報のみを取り出す。
【００４１】
具体的には、図５の（１）に示すように、第２のラッチ手段１２にラッチされている１６ビットデータ中に含まれる１つのサンプル情報（図５（ａ）の斜線で示した部分）が１ワードの先頭にくるように所定ビットだけ右シフトするとともに、シフトされたサンプル情報（図５（ｂ）の斜線部分）以外の１ワード内のビットを全て“０”にセットすることにより、読み出そうとする１つのサンプル情報のみを取り出す。このとき、得られたサンプル情報のＭＳＢをビット反転する。
【００４２】
また、第２のサンプル取出手段１４は、上記第１および第２のラッチ手段１１，１２にラッチされている各１６ビットデータから１つのサンプル情報を取り出す。この第２のサンプル取出手段１４は、１つのサンプル情報が２つのアドレスにまたがって記憶されている場合に、その２つのアドレスの各１６ビットデータを用いて、読み出そうとする１つのサンプル情報のみを取り出す。
【００４３】
具体的には、図５の（２）に示すように、第２のラッチ手段１２にラッチされている１６ビットデータ中に含まれる１つのサンプル情報の一部分（図５（ｄ）の斜線部分）が１ワードの先頭にくるように所定ビットだけ右シフトする。また、第１のラッチ手段１１にラッチされている１６ビットデータ中に含まれる上記１つのサンプル情報の残りの部分（図５（ｃ）の斜線部分）が上記右シフトされたサンプル情報の後に続くように所定ビットだけ左シフトすることにより、読み出そうとする１つのサンプル情報を生成する（図５（ｅ）の斜線部分）。
【００４４】
そして、このようにして生成したサンプル情報以外の１ワード内のビットを全て“０”にセットするとともに、得られたサンプル情報のＭＳＢをビット反転することにより、２つのアドレスの各１６ビットデータから、読み出そうとする１つのサンプル情報のみを取り出す。
【００４５】
判別手段１５は、サンプルＲＡＭ４から読み出そうとする１つのサンプル情報が、サンプルＲＡＭ４の１つのアドレス内に記憶されているのか、あるいは、２つのアドレスにまたがって記憶されているのかを判別する。切り替え手段１６は、上記判別手段１５による判別結果に応じて、上記第１のサンプル取出手段１３または第２のサンプル取出手段１４の何れかに切り替え、何れかの取出手段によって取り出されたサンプル情報Ｓ”を次段の加算手段７に出力する。
【００４６】
このように、本実施例では、サンプルＲＡＭ４にミスアライン状態で記憶されたサンプル情報を１つずつ読み出すことができるような構成（サンプル取り出し手段６）を設けたので、書き込み手段３によってサンプルＲＡＭ４の記憶領域にビット幅が異なる複数のサンプル情報を順に詰めて書き込むことが可能となり、１つのアドレス内に幾つものサンプル情報を記憶することができるようになった。
【００４７】
これにより、サンプルＲＡＭ４の記憶領域を有効に使うことができるようになるとともに、サンプル情報の数だけアドレスを用意しなくても済むようになるので、サンプルＲＡＭ４のメモリ容量を可及的に小さくすることができる。
【００４８】
図３は、図１に示した読み出し手段５を具体的に実施した場合の構成を示す回路図である。
図３において、３１，３２は第１、第２のアロケーションレジスタであり、図１のＡＳ−ＲＡＭ９より入力されるアロケーション情報をラッチする。
【００４９】
ここで、上記第１のアロケーションレジスタ３１は、チャネルｃｈ０  に対応するアロケーション情報をラッチし、上記第２のアロケーションレジスタ３２は、チャネルｃｈ１  に対応するアロケーション情報をラッチする。以下では、第１のアロケーションレジスタ３１にラッチされるアロケーション情報の値をａｌ０  で表し、第２のアロケーションレジスタ３２にラッチされるアロケーション情報の値をａｌ１  で表す。
【００５０】
なお、レイヤＩＩの場合、アロケーション情報は、ＭＰＥＧ１規格に基づく所定のアロケーションテーブルを参照して、対応するサンプル情報のビット幅を表す値に事前に変換され、それが上記ＡＳ−ＲＡＭ９に記憶されているものとする。したがって、上記アロケーション情報の値ａｌ０  ，ａｌ１  は、それぞれ対応するサンプル情報のビット幅を示している。
【００５１】
３３はアロケーションデコーダであり、上記第１および第２のアロケーションレジスタ３１，３２からアロケーション情報を順次入力し、次の表１に示す処理内容に従って所定値を表すデータを出力する。
【００５２】
【表１】
0003581431.tif 000002
【００５３】
例えば、入力されるアロケーション情報に対応するチャネル番号がｃｈ＝０で、グループ内番号がＧＲ＝０の場合は、上記所定値を表すデータとして“０”を出力する。また、入力されるアロケーション情報に対応するチャネル番号がｃｈ＝０で、グループ内番号がＧＲ＝１の場合は、そのアロケーション情報に対応するサンプル情報のビット幅そのものを上記所定値として出力する。他のチャネル番号、グループ内番号を有するアロケーション情報が入力されたときは、表１の対応する計算式に従って所定値を計算し、それを出力する。
【００５４】
３４は第１の加算器であり、上記第１および第２のアロケーションレジスタ３１，３２にラッチされたアロケーション情報の値ａｌ０  ，ａｌ１  を用いて、
（ａｌ０  ＋ａｌ１  ）×３
の演算を行う。３５は第１の選択器であり、上記第１および第２のアロケーションレジスタ３１，３２にラッチされたアロケーション情報のうち、何れか一方を選択して出力する。
【００５５】
３６は第２の加算器であり、上記第１の加算器３４から出力されるデータと第２のレジスタ３９から出力されるデータとを加算する。ここで、上記第２のレジスタ３９は、第２の選択器３７から出力されるデータをラッチするものであり、上記第２の選択器３７は、上記第２の加算器３６から出力されるデータと第１のレジスタ３８から出力されるデータとの何れかを選択するものである。
【００５６】
また、上記第１のレジスタ３８は、上記第２のレジスタ３９から出力されるデータをラッチするものである。なお、デコード処理の初期段階においては、サンプル情報ｓｐ（０，０，０）  のＭＳＢの位置を示す値がこの第１のレジスタ３８に記憶されている。
【００５７】
４０は第３の加算器であり、上記アロケーションデコーダ３３から出力されるデータと上記第２のレジスタ３９から出力されるデータとを加算する。４１は第３の選択器であり、上記第３の加算器４０から出力されるデータと第４の加算器４３から出力されるデータとの何れかを選択する。ここで、上記第４の加算器４３は、アドレスレジスタ４２から出力されるデータに１６（１０）（＝１０００（２）  ）を加えて出力するものである。
【００５８】
上記アドレスレジスタ４２は、上記第３の選択器４１から出力されるデータをラッチするものであり、図２に示したサンプル指定手段１０に対応する。このアドレスレジスタ４２にラッチされたデータは、サンプルＲＡＭ４から読み出そうとしているサンプル情報のアドレスやそのアドレス内でのＭＳＢの位置を示している。
【００５９】
４４はデコーダであり、上記第１の選択器３５から出力されるデータと上記第３の加算器４０から出力されるデータの下位４ビットとを加算し、その加算結果が１７（１０）以上になったかどうかを判別する。そして、加算結果が１７（１０）以上であるときは出力が“Ｈｉ”、１７（１０）より小さいときは出力が“Ｌｏ”となる制御信号ＯＦ−Ｐを次のマシンサイクルで出力する。このデコーダ４４は、図２に示した判別手段１５に対応するものである。
【００６０】
４５は第１のサンプルレジスタであり、サンプルＲＡＭ４の各アドレスより読み出される１６ビットデータを順次ラッチする。４６は第２のサンプルレジスタであり、上記第１のサンプルレジスタ４５から出力されるデータを順次ラッチする。これらの第１および第２のサンプルレジスタ４５，４６は、それぞれ図２に示した第１および第２のラッチ手段１１，１２に対応するものである。
【００６１】
４７はデータジェネレータであり、上記第１および第２のサンプルレジスタ４５，４６にそれぞれラッチされた１６ビットデータの中から、読み出すべき１つのサンプル情報Ｓ”のみを取り出すとともに、その取り出したサンプル情報Ｓ”に逆量子化係数Ｄを加算する。このデータジェネレータ４７は、図２に示した第１および第２のサンプル取出手段１３，１４、切り替え手段１６、および図１に示した加算手段７を具備している。
【００６２】
次に、図３のように構成したサンプル記憶ブロックの動作について説明する。ここでは、一連の動作をサイクルで区切って説明することにする。まず、図３中の点線で囲んだアドレスジェネレータの動作について説明する。
【００６３】
▲１▼第１サイクル
まず始めに、図１に示したＡＳ−ＲＡＭ９よりサブバンドｓｂ０  ，チャネルｃｈ０  に対応するアロケーション情報、およびサブバンドｓｂ０  ，チャネルｃｈ１  に対応するアロケーション情報が入力され、それぞれ第１および第２のアロケーションレジスタ３１，３２にラッチされる。
【００６４】
それと同時に、第２の選択器３７では、端子Ａ側に入力されるデータが選択される。これにより、第１のレジスタ３８に記憶されているデータが第２のレジスタ３９にラッチされる。デコード開始時は、第１のレジスタ３８には初期値“０”がセットされているので、第２のレジスタ３９には“０”がラッチされる。
【００６５】
また、アロケーションデコーダ３３では、上記第１および第２のアロケーションレジスタ３１，３２にラッチされたアロケーション情報に応じて所定の値が計算され、それが第３の加算器４０に出力される。例えば、チャネル番号がｃｈ＝０で、グループ内番号がＧＲ＝０の場合は、先に示した表１の処理内容に従って所定値“０”が出力される。
【００６６】
また、第１の選択器３５では、端子Ａ側が選択される。これにより、上記第１のアロケーションレジスタ３１にラッチされたアロケーション情報がデコーダ４４に出力される。
【００６７】
デコーダ４４は、上記第１の選択器３５から出力されるデータと第３の加算器４０から出力されるデータの下位４ビットとを加算し、その加算結果が１７（１０）以上となるかどうかを判別する。
【００６８】
上記第３の加算器４０から出力されるデータの下位４ビットは、サンプルＲＡＭ４から読み出そうとしているサンプル情報のＭＳＢのワード内位置を示すものである。また、第１の選択器３５から出力されるデータは、そのサンプル情報のビット幅を示すものである。よって、デコーダ４４における上記加算結果は、読み出そうとしているサンプル情報の最下位ビット（ＬＳＢ）の位置を示すことになる。
【００６９】
したがって、この加算結果の値が１７（１０）以上であるときは、その読み出そうとしているサンプル情報がサンプルＲＡＭ４の２つのアドレスにまたがって記憶されていると判断することができる。
【００７０】
デコーダ４４は、このような判別結果に応じて“Ｈｉ”または“Ｌｏ”の値を持つ制御信号ＯＦ−Ｐを次の第２サイクルで出力し、それを第３の選択器４１の制御端に供給する。なお、第１サイクルにおいては、第３の選択器４１では端子Ａ側が選択されている。これにより、第３の加算器４０から出力されるデータが選択されて次段のアドレスレジスタ４２に出力される。
【００７１】
▲２▼第２サイクル
次に、上記第３の選択器４１から出力されるデータがアドレスレジスタ４２にラッチされる。このとき、アドレスレジスタ４２の下位４ビットを除く上位ビットのデータは、サンプルＲＡＭ４から読み出そうとしているサンプル情報のＭＳＢが記憶されているアドレスを示している。
【００７２】
この上位ビットのデータは、サンプルＲＡＭ４の図示しないアドレス入力部に送られる。これにより、その指定されたアドレスに記憶されている１６ビットデータが読み出され、それが次の第３サイクルで第１のサンプルレジスタ４５にラッチされる。
【００７３】
また、この第２サイクルでは、上記第１サイクルでデコーダ４４に入力されたデータに応じて制御信号ＯＦ−Ｐの値が決められる。制御信号ＯＦ−Ｐの値が“Ｈｉ”であれば、第３の選択器４１では端子Ｂ側に入力されるデータが選択される。これにより、アドレスレジスタ４２にラッチされたデータに１６（１０）の値を加算したデータが第３の選択器４１より出力される。一方、制御信号ＯＦ−Ｐの値が“Ｌｏ”であれば、第３の選択器４１では端子Ａ側に入力されるデータが選択される。これにより、上記第１サイクルと同じ値が第３の選択器４１より出力される。
【００７４】
▲３▼第３サイクル
上記第３の選択器４１から出力されるデータがアドレスレジスタ４２ラッチされる。このとき、アドレスレジスタ４２の下位４ビットを除く上位ビットのデータは、読み出そうとしているサンプル情報のＬＳＢが記憶されているアドレスを示している。この上位ビットのデータは、上記した第２サイクルと同様に、サンプルＲＡＭ４の図示しないアドレス入力部に送られる。
【００７５】
これにより、その指定されたアドレスに記憶されている１６ビットデータが読み出され、それが次の第４サイクルで第１のサンプルレジスタ４５にラッチされる。このとき、上記第２サイクルで第１のサンプルレジスタ４５にラッチされた１６ビットデータは、同じく次の第４サイクルで第２のサンプルレジスタ４６にラッチされる。
【００７６】
それと同時に、次のアロケーション情報が第１および第２のアロケーションレジスタ３１，３２にラッチされる。また、第２の選択器３７では、端子Ｂ側に入力されるデータ、すなわち、第２の加算器３６による加算結果が選択される。
【００７７】
上記第１サイクルで第１および第２のアロケーションレジスタ３１，３２にラッチされたアロケーション情報の値をそれぞれａｌ００，ａｌ１０とすると、上記第２の加算器３６から出力されるデータの値は、第２のレジスタ３９内のデータが“０”であることから、
（ａｌ００＋ａｌ１０）×３
である。よって、第２のレジスタ３９には、この値が新たにラッチされる。
【００７８】
また、第１の選択器３５では、端子Ａ側が選択され、これにより、この第３サイクルで第１のアロケーションレジスタ３１にラッチされたアロケーション情報ａｌ０１がデコーダ４４に出力される。デコーダ４４は、上記第１の選択器３５から出力されるデータと第３の加算器４０から出力されるデータの下位４ビットとを加算し、その加算結果が１７（１０）以上となるかどうかを判別する。これにより、次に読み出すべきサンプル情報がサンプルＲＡＭ４において２つのアドレスにまたがって記憶されているかどうかを判断する。
【００７９】
デコーダ４４は、このような判別結果に応じて“Ｈｉ”または“Ｌｏ”の値を持つ制御信号ＯＦ−Ｐを次の第４サイクルで出力し、それを第３の選択器４１の制御端に供給する。なお、第３サイクルにおいては、第３の選択器４１では端子Ａ側が選択される。これにより、第３の加算器４０から出力されるデータが選択されて次段のアドレスレジスタ４２に出力される。
【００８０】
▲４▼第４サイクル
上記第３の選択器４１から出力されるデータがアドレスレジスタ４２ラッチされる。このとき、アドレスレジスタ４２の下位４ビットを除く上位ビットのデータは、次に読み出すべきサンプル情報のＭＳＢが記憶されているアドレスを示している。この上位ビットのデータは、上記した第２サイクルと同様に、サンプルＲＡＭ４の図示しないアドレス入力部に送られる。
【００８１】
これにより、その指定されたアドレスに記憶されている１６ビットデータが読み出され、それが次の第５サイクルで第１のサンプルレジスタ４５にラッチされる。このとき、上記第３サイクルで第１のサンプルレジスタ４５にラッチされた１６ビットデータは、同じく次の第５サイクルで第２のサンプルレジスタ４６にラッチされる。
【００８２】
▲５▼第５サイクル
上記した第３サイクルと同じ処理が実行される。
【００８３】
以上のような処理を繰り返して行うことにより、まず、図４中の時間軸方向で見たサンプルＮｏ．０、チャネルｃｈ０  、各サブバンドｓｂ０  〜３１に対応するサンプル情報の読み出しを実行する。また、次のステップで、時間軸方向で見たサンプルＮｏ．０、チャネルｃｈ１  、各サブバンドｓｂ０  〜３１に対応するサンプル情報の読み出しを実行する。
【００８４】
なお、サブバンドｓｂ０  、チャネルｃｈ１  に対応するサンプル情報の読み出し時には、第２の選択器３７で端子Ａ側のデータを最初に選択することにより、第２のレジスタ３９にラッチされているデータを第１のレジスタ３８にラッチする。
【００８５】
以下、時間軸方向で見たサンプルＮｏ．１、２  についても同様の読み出し処理を実行する。そして、グループ０のサンプル情報の読み出しが終了し、次にグループ１のサンプル情報の読み出しを開始するときには、始めに第１のレジスタ３８の値を更新する。すなわち、グループ０についての演算後には、第２のレジスタ３９に次の（式２）に示す値が保持されており、この値を第１のレジスタ３８にラッチすることにより値を更新する。
【００８６】
【数１】
0003581431.tif 000003
【００８７】
そして、以上に述べたのと同様の処理をグループ０〜１１まで実行することにより、１フレーム分のサンプル情報の読み出し処理を終了する。
【００８８】
次に、上記した第１〜第５サイクルの処理の並行して行われるデータジェネレータ４７での処理内容を、図５をもとに説明する。
上述したように、このデータジェネレータ４７は、第１および第２のサンプルレジスタ４５，４６にそれぞれラッチされている１６ビットデータの中から、読み出すべき１つのサンプル情報Ｓ”のみを取り出すとともに、その取り出したサンプル情報Ｓ”にレイヤＩＩでの逆量子化係数Ｄを加算するまでの処理を実行する。
【００８９】
図３に示したように、データジェネレータ４７は、アドレスレジスタ４２にラッチされているデータの下位４ビットｉ、第１の選択器３５から出力されるアロケーション情報ｊ、デコーダ４４から出力される制御信号ＯＦ−Ｐをそれぞれ入力している。そして、データジェネレータ４７は、これらのデータ値を制御入力として１つのサンプル情報を取り出す。
【００９０】
ここで、アドレスレジスタ４２にラッチされているデータの下位４ビットｉの値は、サンプルＲＡＭ４から読み出そうとしているサンプル情報のワード内位置を示すものである。また、上記アロケーション情報ｊの値は、上記読み出そうとしているサンプル情報のビット幅を示すものである。また、デコーダ４４から出力される制御信号ＯＦ−Ｐの値は、上記読み出そうとしているサンプル情報がサンプルＲＡＭ４内において２つのアドレスにまたがって記憶されているかどうかを示すものである。
【００９１】
上記制御信号ＯＦ−Ｐの値が“Ｌｏ”のときは、図５の（１）に示したように、第２のサンプルレジスタ４６にラッチされている１６ビットデータをｉビットだけ右シフトすることにより、その１６ビットデータ中に含まれる１つのサンプル情報が１ワードの先頭にくるようにする。
【００９２】
それとともに、そのシフトされたサンプル情報以外の１ワード内の（１６−ｊ）ビットを全て“０”にセットすることにより、読み出そうとする１つのサンプル情報のみを取り出す。このとき、得られたサンプル情報のＭＳＢをビット反転することにより、目的のサンプル情報Ｓ”を得る。
【００９３】
また、制御信号ＯＦ−Ｐの値が“Ｈｉ”のときは、図５の（２）に示したように、第２のサンプルレジスタ４６にラッチされている１６ビットデータをｉビットだけ右シフトすることにより、その１６ビットデータ中に含まれる１つのサンプル情報の一部分が１ワードの先頭にくるようにする。
【００９４】
それとともに、第１のサンプルレジスタ４５にラッチされている１６ビットデータを（１６−ｉ）ビットだけ左シフトすることにより、その１６ビットデータ中に含まれる上記１つのサンプル情報の残りの部分が上記ｉビットだけ右シフトされたサンプル情報の後に続くようにする。これにより、読み出そうとする１つのサンプル情報を生成する。
【００９５】
そして、このようにして生成したサンプル情報以外の残りの（１６−ｊ）ビットを全て“０”にセットするとともに、得られたサンプル情報のＭＳＢをビット反転することにより、２つのアドレスの各１６ビットデータから、読み出そうとする１つのサンプル情報Ｓ”のみを取り出す。
【００９６】
次に、以上のようにして取り出したサンプル情報Ｓ”にアロケーション情報ｊに応じた値を持つ逆量子化係数Ｄを加算することにより、上記した（式１）中の（Ｓ”＋Ｄ）の値を得る。
【００９７】
以上説明したように、本実施例によれば、サンプルＲＡＭ４の１つのアドレス内にビット幅が異なるサンプル情報を幾つも詰めて記憶することができるので、サンプルＲＡＭ４の全記憶領域の中でサンプル情報が記憶されない無駄な領域をなくすことができ、記憶領域を有効に使うことができるようになる。また、記憶するサンプル数の分だけアドレスを用意しなくても済むので、１フレームすべてのサンプル情報を記憶するためのサンプルＲＡＭ４のメモリ容量を可及的に小さくすることができるようになる。
【００９８】
また、本実施例では、１つのサンプル情報がサンプルＲＡＭ４内の２つのアドレスにまたがって記憶されることがあるので、１つのサンプル情報Ｓ”を取り出す際には、メモリアドレスへのアクセスを２回にわたって行い、それにより得られる各データを第１および第２のサンプルレジスタ４５，４６にラッチする。そして、その各データから１つのサンプル情報を取り出すようにしている。
【００９９】
このため、パイプライン処理で見た場合、このラッチ処理を行っている間に、Ｓ”＋Ｄの加算を行う時間が十分に得られる。したがって、本実施例によれば、サンプル情報Ｓ”の読み出し処理とＳ”＋Ｄの加算処理とを２つのマシンサイクルで行うことができる。
【０１００】
これに対して従来は、１つのサンプル情報Ｓ”を読み出す際にラッチ処理は行われず、また、Ｓ”＋Ｄの加算処理は、逆量子化処理や逆スケーリング処理を行うために用意された別個の乗加算器によって行われるようになされていた。
【０１０１】
なお、以上の実施例では、ＭＰＥＧ１オーディオ規格のレイヤＩＩに基づいて説明したが、本発明はこれに限定されるものではない。例えば、ＭＰＥＧ１のレイヤＩの規格にも応用することができる。
【０１０２】
【発明の効果】
本発明は上述したように、複数のサンプル情報を記憶手段の記憶領域に順に書き込むことによりミスアライン状態で記憶させる書き込み手段と、上記記憶手段にミスアライン状態で記憶された複数のサンプル情報を１つずつ取り出して読み出す読み出し手段とを設けたので、１つのアドレス内に複数のサンプル情報を記憶することができるようになり、上記記憶手段の全記憶領域の中でサンプル情報が記憶されない無駄な領域をなくすことができるとともに、記憶するサンプル数の分だけアドレスを用意しなくても済み、サンプル情報を記憶するための記憶手段の記憶容量を可及的に小さくすることができる。
【図面の簡単な説明】
【図１】本発明の一実施例であるＭＰＥＧオーディオデコーダの要部構成を示すブロック図である。
【図２】サンプル取り出し手段の具体的な構成を示すブロック図である。
【図３】図１に示した読み出し手段を具体的に実施した構成を示す回路図である。
【図４】本実施例のＭＰＥＧオーディオデコーダに入力されるサンプル情報の入力順を示す図である。
【図５】データジェネレータでの処理内容を説明するための図である。
【符号の説明】
３  書き込み手段
４  サンプルＲＡＭ
５  読み出し手段
６  サンプル取り出し手段
７  加算手段
８  係数ＲＯＭ
１０  サンプル指定手段
１１  第１のラッチ手段
１２  第２のラッチ手段
１３  第１のサンプル取出手段
１４  第２のサンプル取出手段
１５  判別手段
１６  切り替え手段
３５  第１の選択器
４２  アドレスレジスタ
４４  デコーダ
４５  第１のサンプルレジスタ
４６  第２のサンプルレジスタ
４７  データジェネレータ
【図１】
0003581431.tif 000004
【図２】
0003581431.tif 000005
【図３】
0003581431.tif 000006
【図４】
0003581431.tif 000007
【図５】
0003581431.tif 000008