JP3581431B2 - Mpegオーディオデコーダ - Google Patents
Mpegオーディオデコーダ Download PDFInfo
- Publication number
- JP3581431B2 JP3581431B2 JP13290795A JP13290795A JP3581431B2 JP 3581431 B2 JP3581431 B2 JP 3581431B2 JP 13290795 A JP13290795 A JP 13290795A JP 13290795 A JP13290795 A JP 13290795A JP 3581431 B2 JP3581431 B2 JP 3581431B2
- Authority
- JP
- Japan
- Prior art keywords
- sample
- sample information
- data
- information
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【産業上の利用分野】
本発明は、MPEGによって圧縮されたオーディオデータをデコードするMPEGオーディオデコーダに関するものである。
【0002】
【従来の技術】
近年、MPEG(Moving Picture Image Coding Experts Group )オーディオと称されるディジタル音声信号の圧縮技術が開発されてきている。現在、このMPEGオーディオにはMPEG1という規格がある。さらに、上記MPEG1の規格には、要求される音質や回路規模によってレイヤI,レイヤII,レイヤIII の3つの方式が用意されている。
【0003】
また、MPEGオーディオにおいては、音声信号のチャネルモードとして、シングルチャネル、デュアルチャネル、ステレオ、ジョイントステレオなどの各モードが規定されている。さらに、MPEGオーディオでは、各レイヤの各チャネルモード毎に使用可能な伝送レート(ビットレート)や、再生後の音声信号の出力レート(サンプリング周波数)が種々規定されている。
【0004】
例えば、レイヤIIのステレオモードでは、オーディオデータは最大30個のサブバンドに分割され、各サブバンド毎にサンプル情報が3個ずつまとめて符号化されており、各サブバンドには2個のチャネルが含まれている。このような符号化により得られるオーディオ圧縮データは、主にアロケーション(Allocation)、スケールファクタ(Scale Factor)およびサンプル(Sample)もしくはサンプル(Sample Code )の各情報により構成される。
【0005】
そして、復号時には、上記アロケーション情報およびスケールファクタ情報によりサンプル情報が加工されることによってオーディオ圧縮データが復号され、PCMデータが生成されるようになっている。
【0006】
すなわち、上記アロケーション情報は、復号時における逆量子化演算の際に用いられるデータであり、後に入力されるサンプルデータが何ビット幅であるかという情報と、そのサンプルデータが通常のサンプル情報なのかサンプルコード情報なのかという情報とを含んでいる。
【0007】
ここで、サンプルコードとは、各サブバンド単位で、時間軸方向に連続して存在する3個のサンプル情報を1つのコードにまとめたものである。1つのサンプル情報のとり得る値が3通り、5通りまたは9通りである場合には、サンプルデータは、サンプルコード情報の形態がとられる。
【0008】
また、上記スケールファクタ情報は、上記逆量子化演算の後の逆スケーリング演算の際に用いられるデータであり、おおよその出力レベルを与えるスケーリング係数値を表すものである。
【0009】
また、上記サンプル情報は、上記逆量子化演算に用いられるデータであり、出力データの細かい値を与えるものである。レイヤIIの場合、このサンプル情報は、1フレーム単位で見ると各サブバンドの各チャネル毎に時間軸方向に36個存在している。そして、この36個のサンプル情報は、連続する12個毎に異なるスケールファクタ値をとり得る。
【0010】
以上のようなオーディオ圧縮データのデコード処理は、次のようにして行われる。すなわち、まず、上述した逆量子化処理および逆スケーリング処理によってサブバンドサンプル情報が求められる。次に、このサブバンドサンプル情報を用いて合成サブバンドフィルタ処理が行われることにより、PCMデータが生成される。
【0011】
一般に、従来のMPEGオーディオデコーダにおいては、入力されるオーディオ圧縮データや、上述のような一連の処理過程で得られるデータを一時記憶しておくためのバッファメモリが幾つか設けられている。そのうちの1つに、上記オーディオ圧縮データ中に含まれるサンプル情報を一次記憶しておくためのサンプルRAMがある。
【0012】
【発明が解決しようとする課題】
上述したように、オーディオ圧縮データ中に含まれる各サンプル情報は、それぞれビット幅が異なるものである。具体的には、サンプル情報のビット幅は、2ビット〜16ビットと様々である。このため、サンプルRAMの1ワードは、ビット幅が最大のサンプル情報を1つのアドレスに記憶することができるようにするために、16ビット幅となっていた。
【0013】
また、従来のMPEGオーディオデコーダでは、アドレス単位でサンプル情報を読み出すようにしていた。このため、サンプル情報の記憶時には、各サンプル情報のビット幅がそれぞれ異なっているにもかかわらず、各サンプル情報を1つのアドレスに1つずつ記憶するようにしていた。
【0014】
このため、16ビット幅のサンプル情報を記憶する場合は良いが、それ以下のビット幅を持つサンプル情報を記憶する場合には、1つのアドレス内の一部にのみサンプル情報が記憶されることになる。これにより、サンプルRAMの全記憶領域の中でサンプル情報が記憶されない無駄な領域が多く生じていた。
【0015】
本発明は、このような問題を解決するために成されたものであり、オーディオ圧縮データ中のサンプル情報が記憶されるサンプルRAMのメモリ領域の無駄をなくし、メモリ容量を小さくすることができるようにすることを目的とする。
【0016】
【課題を解決するための手段】
本発明のMPEGオーディオデコーダは、サンプル情報のビット幅についての情報を有するアロケーション情報、及び、サンプル情報を含むMPEG規格のオーディオ圧縮データが入力されるMPEGオーディオデコーダであって、上記オーディオ圧縮データ中に含まれるサンプル情報を記憶するための記憶手段と、上記記憶手段の記憶領域に複数のサンプル情報を順に書き込むようにして、各サンプル情報のビット幅が相互に異なることにより、上記複数のサンプル情報の境界と上記記憶手段の各アドレスの境界とが一致していないミスアライン状態で記憶するようにする書き込み手段と、上記書き込み手段によってミスアライン状態で上記記憶手段に記憶された複数のサンプル情報を1つずつ取り出して読み出すようにする読み出し手段とを設け、上記読み出し手段は、読み出そうとしているサンプル情報の最上位ビットの位置と、上記アロケーション情報から得た該サンプル情報のビット幅とに基づいて、その読み出そうとしているサンプル情報が1つのアドレス内に記憶されているのか、2つのアドレスにまたがって記憶されているのかを判別する判別手段を有するものである。
【0017】
本発明の他の特徴とするところは、上記読み出し手段は、上記記憶手段から読み出そうとする1つのサンプル情報の位置を指定するサンプル指定手段と、上記サンプル指定手段により指定された上記記憶手段の1つのアドレスのデータを順次ラッチする第1のラッチ手段と、上記第1のラッチ手段から出力されるデータを順次ラッチする第2のラッチ手段と、上記判別手段が1つのアドレス内に記憶されていると判断したときに、上記読み出そうとする1つのサンプル情報を上記第2のラッチ手段にラッチされているデータの中から取り出すようにする第1の取出手段と、上記判別手段が2つのアドレスにまたがって記憶していると判断したときに、上記読み出そうとする1つのサンプル情報を上記第1のラッチ手段および上記第2のラッチ手段にそれぞれラッチされているデータの中から取り出すようにする第2の取出手段とを具備するものである。
【0018】
本発明のその他の特徴とするところは、上記第1の取出手段は、上記第2のラッチ手段にラッチされているデータを所定ビットだけシフトすることにより、上記データ中に含まれる上記読み出そうとする1つのサンプル情報が1ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の1ワード内のビットを全て0にすることにより、上記読み出そうとする1つのサンプル情報のみを取り出すことを特徴とする。
【0019】
本発明のその他の特徴とするところは、上記第1の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内におけるサンプル情報の位置に応じて決定するようにしたことを特徴とする。
【0020】
また、本発明のその他の特徴とするところは、上記第2の取出手段は、上記第1のラッチ手段および上記第2のラッチ手段にラッチされているデータをそれぞれ所定ビットずつシフトすることにより、上記第1のラッチ手段および上記第2のラッチ手段の各データ中に分割して含まれている上記読み出そうとする1つのサンプル情報が1ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の1ワード内のビットを全て0にすることにより、上記読み出そうとする1つのサンプル情報のみを取り出すようにしたことを特徴とする。
【0021】
また、本発明のその他の特徴とするところは、上記第2の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内における上記サンプル情報の位置に応じて決定するようにしたことを特徴とする。
【0022】
また、本発明のその他の特徴とするところは、上記読み出し手段は、上記第1の取出手段または上記第2の取出手段により取り出されたサンプル情報と所定の逆量子化係数とを加算する加算手段を更に具備することを特徴とする。
【0023】
また、本発明のその他の特徴とするところは、上記第1の取出手段および上記第2の取出手段によるサンプル情報の取り出し処理と上記加算手段による加算手段とをパイプライン処理で行うようにしたことを特徴とする。
【0024】
【作用】
本発明は上記技術手段より成るので、1つのアドレス内に複数のサンプル情報をミスアライン状態で記憶することが可能となり、従来のように記憶手段の1ワードに満たないビット幅を持つサンプル情報が1つのアドレスに1つだけ記憶されることにより、上記記憶手段の全記憶領域の中でサンプル情報が記憶されない無駄な領域が生じるという不都合をなくすことができるようになるとともに、記憶すべきサンプル数の分だけアドレスを用意しなくても済むようになる。
【0025】
また、本発明の他の特徴によれば、ある1つのサンプル情報を取り出す際に、メモリアドレスへのアクセスが2回行われ、上記2回にわたるメモリアドレスへのアクセスにより読み出されるデータのラッチ処理が行われることとなるので、サンプル情報の取り出し処理とその取り出したサンプル情報および逆量子化係数の加算処理とをパイプライン処理で行うようにした場合には、上記サンプル情報の取り出し処理を行っている間に、その前に取り出したサンプル情報を用いて加算処理を行う時間が十分に得られるようになる。
【0026】
【実施例】
以下、本発明のMPEGオーディオデコーダの一実施例を図面に基づいて説明する。図1は、本発明によるMPEGオーディオデコーダの要部構成を示すブロック図である。
【0027】
上述したように、オーディオ圧縮データのデコード処理においては、まず、逆量子化処理および逆スケーリング処理によってサブバンドサンプル情報Sが次の演算式に従って求められる。
S=factor×C×(S”+D) (式1)
ここで、(式1)中のfactorは、スケールファクタ情報に応じて特定される演算値である。また、上記(式1)中の値S”は、サンプル情報の最上位ビット(MSB)を反転したものである。同じく(式1)中の値C,Dは、逆量子化係数であり、アロケーション情報に応じた値が用いられる。
【0028】
図1は、オーディオ圧縮データ中に含まれるサンプル情報をサンプルRAMに一時記憶するとともに、逆量子化処理を行うためにサンプルRAMからサンプル情報を読み出す際に、上記(式1)中の(S”+D)の値を得るようにするための構成を示したものである。
【0029】
図1において、1はデータ入力部であり、主としてアロケーション(Allocation)、スケールファクタ(Scale Factor)およびサンプル(Sample)の各情報で構成されるMPEG規格のオーディオ圧縮データを入力する。このデータ入力部1に入力された各情報のうち、スケールファクタ情報およびアロケーション情報は、AS−RAM(Allocation・Scale Factor−RAM)9に記憶される。
【0030】
また、上記サンプル情報は、例えばレイヤIIの場合、図4の矢印で示す順番に従ってデータ入力部1に入力される。すなわち、サブバンド番号をsb(= 0〜31) 、チャネル番号をch(= 0〜1)、1フレーム中で時間軸方向に36個存在するサンプル情報を3個ずつまとめた各グループ0〜11内の番号をGR(= 0〜2)で表し、各サンプル情報をsp(ch,sb,GR)で定義すると、sp(0,0,0) 、sp(0,0,1) 、sp(0,0,2) 、sp(1,0,0) 、sp(1,0,1) 、sp(1,0,2) 、sp(0,1,0) 、………、sp(1,31,2)の順番でデータ入力部1に入力されていく。
【0031】
2はサンプル変換部であり、入力されるサンプルデータがサンプルコード情報である場合に、そのサンプルコード情報を分解して3つのサンプル情報に変換する。3は書き込み手段であり、上記サンプル変換部2から送られてくるサンプル情報をサンプルRAM4に書き込む。なお、このサンプルRAM4の1ワードは、サンプル情報の最大ビット幅である16ビット(2バイト)に合わせて設計されている。
【0032】
図1から明らかなように、本実施例の書き込み手段3は、ビット幅が異なる複数のサンプル情報を、サンプルRAM4の1ワードに1つずつ書き込むのではなく、先に書き込んだサンプル情報に続けて詰めて書き込むようにしている。これにより、サンプルRAM4の1つのアドレス内には幾つものサンプル情報が記憶されるようになる。また、斜線部で示したように、1つのアドレス内の残りの記憶領域で足りないときは、次のアドレスの記憶領域も使って1つのサンプル情報が記憶される、つまり、1つのサンプル情報が2つのアドレスにまたがって記憶されることが頻繁に発生する。
【0033】
すなわち、サンプルRAM4には、サンプル情報がsp(0,0,0) 、sp(0,0,1) 、sp(0,0,2) 、sp(1,0,0) 、sp(1,0,1) 、sp(1,0,2) 、sp(0,1,0) 、………、sp(1,31,2)の順番で若いアドレスから順に詰めて記憶されていく。このように、本実施例においては、サンプルRAM4に記憶されるサンプル情報の境界と各アドレスの境界とが一致しないので、アラインメントがとれていないと言える。以下では、この状態をミスアライン状態と呼ぶことにする。
【0034】
5は読み出し手段であり、上記サンプルRAM4にミスアライン状態で記憶された複数のサンプル情報を1つずつ読み出し、その読み出したサンプル情報に所定の逆量子化係数を加算して出力するものである。すなわち、この読み出し手段5は、サンプル取り出し手段6と加算手段7とを具備している。
【0035】
上記サンプル取り出し手段6は、ミスアライン状態で記憶されているサンプル情報をサンプルRAM4から1つずつ取り出す。サンプル情報が1つのアドレス内に記憶されているときは、そのアドレスから1つのサンプル情報を取り出す。また、サンプル情報が2つのアドレスにまたがって記憶されているときは、その2つのアドレスから1つのサンプル情報を取り出す。その際、取り出したサンプル情報の最上位ビット(MSB)を反転して加算手段7に出力する。
【0036】
また、上記加算手段7は、サンプル取り出し手段6によってMSBが反転された状態で取り出されたサンプル情報S”と、係数ROM8にあらかじめ記憶されている逆量子化係数Dとを加算する。この加算結果(S”+D)は、図示しない乗加算器に与えられ、逆量子化処理および逆スケーリング処理に利用される。
【0037】
なお、上記サンプル取り出し手段6におけるサンプル情報の取り出し処理は、AS−RAM9から読み出されるアロケーション情報を参照して行われる。また、上記加算手段7において加算される逆量子化係数Dは、上記アロケーション情報の値に応じて決められる。
【0038】
上記サンプル取り出し手段6は、図2に示すように構成されている。
図2に示したように、サンプル取り出し手段6は、サンプル指定手段10と、第1および第2のラッチ手段11,12と、第1および第2のサンプル取出手段13,14と、判別手段15と、切り替え手段16とにより構成されている。
【0039】
上記サンプル指定手段10は、サンプルRAM4から読み出そうとするサンプル情報のアドレスやそのアドレス内での位置を指定する。第1のラッチ手段11は、上記サンプル指定手段10により指定されたアドレスから読み出されるデータ(幾つかのサンプル情報を含んでいる)を順次ラッチするものであり、本実施例では16ビットで構成されている。第2のラッチ手段12は、上記第1のラッチ手段11の出力を順次ラッチするものであり、同じく16ビットで構成されている。
【0040】
第1のサンプル取出手段13は、上記第2のラッチ手段12にラッチされている16ビットデータから1つのサンプル情報を取り出す。この第1のサンプル取出手段13は、1つのサンプル情報が1つのアドレス内に記憶されている場合に、そのアドレスの16ビットデータを用いて、読み出そうとする1つのサンプル情報のみを取り出す。
【0041】
具体的には、図5の(1)に示すように、第2のラッチ手段12にラッチされている16ビットデータ中に含まれる1つのサンプル情報(図5(a)の斜線で示した部分)が1ワードの先頭にくるように所定ビットだけ右シフトするとともに、シフトされたサンプル情報(図5(b)の斜線部分)以外の1ワード内のビットを全て“0”にセットすることにより、読み出そうとする1つのサンプル情報のみを取り出す。このとき、得られたサンプル情報のMSBをビット反転する。
【0042】
また、第2のサンプル取出手段14は、上記第1および第2のラッチ手段11,12にラッチされている各16ビットデータから1つのサンプル情報を取り出す。この第2のサンプル取出手段14は、1つのサンプル情報が2つのアドレスにまたがって記憶されている場合に、その2つのアドレスの各16ビットデータを用いて、読み出そうとする1つのサンプル情報のみを取り出す。
【0043】
具体的には、図5の(2)に示すように、第2のラッチ手段12にラッチされている16ビットデータ中に含まれる1つのサンプル情報の一部分(図5(d)の斜線部分)が1ワードの先頭にくるように所定ビットだけ右シフトする。また、第1のラッチ手段11にラッチされている16ビットデータ中に含まれる上記1つのサンプル情報の残りの部分(図5(c)の斜線部分)が上記右シフトされたサンプル情報の後に続くように所定ビットだけ左シフトすることにより、読み出そうとする1つのサンプル情報を生成する(図5(e)の斜線部分)。
【0044】
そして、このようにして生成したサンプル情報以外の1ワード内のビットを全て“0”にセットするとともに、得られたサンプル情報のMSBをビット反転することにより、2つのアドレスの各16ビットデータから、読み出そうとする1つのサンプル情報のみを取り出す。
【0045】
判別手段15は、サンプルRAM4から読み出そうとする1つのサンプル情報が、サンプルRAM4の1つのアドレス内に記憶されているのか、あるいは、2つのアドレスにまたがって記憶されているのかを判別する。切り替え手段16は、上記判別手段15による判別結果に応じて、上記第1のサンプル取出手段13または第2のサンプル取出手段14の何れかに切り替え、何れかの取出手段によって取り出されたサンプル情報S”を次段の加算手段7に出力する。
【0046】
このように、本実施例では、サンプルRAM4にミスアライン状態で記憶されたサンプル情報を1つずつ読み出すことができるような構成(サンプル取り出し手段6)を設けたので、書き込み手段3によってサンプルRAM4の記憶領域にビット幅が異なる複数のサンプル情報を順に詰めて書き込むことが可能となり、1つのアドレス内に幾つものサンプル情報を記憶することができるようになった。
【0047】
これにより、サンプルRAM4の記憶領域を有効に使うことができるようになるとともに、サンプル情報の数だけアドレスを用意しなくても済むようになるので、サンプルRAM4のメモリ容量を可及的に小さくすることができる。
【0048】
図3は、図1に示した読み出し手段5を具体的に実施した場合の構成を示す回路図である。
図3において、31,32は第1、第2のアロケーションレジスタであり、図1のAS−RAM9より入力されるアロケーション情報をラッチする。
【0049】
ここで、上記第1のアロケーションレジスタ31は、チャネルch0 に対応するアロケーション情報をラッチし、上記第2のアロケーションレジスタ32は、チャネルch1 に対応するアロケーション情報をラッチする。以下では、第1のアロケーションレジスタ31にラッチされるアロケーション情報の値をal0 で表し、第2のアロケーションレジスタ32にラッチされるアロケーション情報の値をal1 で表す。
【0050】
なお、レイヤIIの場合、アロケーション情報は、MPEG1規格に基づく所定のアロケーションテーブルを参照して、対応するサンプル情報のビット幅を表す値に事前に変換され、それが上記AS−RAM9に記憶されているものとする。したがって、上記アロケーション情報の値al0 ,al1 は、それぞれ対応するサンプル情報のビット幅を示している。
【0051】
33はアロケーションデコーダであり、上記第1および第2のアロケーションレジスタ31,32からアロケーション情報を順次入力し、次の表1に示す処理内容に従って所定値を表すデータを出力する。
【0052】
【表1】
【0053】
例えば、入力されるアロケーション情報に対応するチャネル番号がch=0で、グループ内番号がGR=0の場合は、上記所定値を表すデータとして“0”を出力する。また、入力されるアロケーション情報に対応するチャネル番号がch=0で、グループ内番号がGR=1の場合は、そのアロケーション情報に対応するサンプル情報のビット幅そのものを上記所定値として出力する。他のチャネル番号、グループ内番号を有するアロケーション情報が入力されたときは、表1の対応する計算式に従って所定値を計算し、それを出力する。
【0054】
34は第1の加算器であり、上記第1および第2のアロケーションレジスタ31,32にラッチされたアロケーション情報の値al0 ,al1 を用いて、
(al0 +al1 )×3
の演算を行う。35は第1の選択器であり、上記第1および第2のアロケーションレジスタ31,32にラッチされたアロケーション情報のうち、何れか一方を選択して出力する。
【0055】
36は第2の加算器であり、上記第1の加算器34から出力されるデータと第2のレジスタ39から出力されるデータとを加算する。ここで、上記第2のレジスタ39は、第2の選択器37から出力されるデータをラッチするものであり、上記第2の選択器37は、上記第2の加算器36から出力されるデータと第1のレジスタ38から出力されるデータとの何れかを選択するものである。
【0056】
また、上記第1のレジスタ38は、上記第2のレジスタ39から出力されるデータをラッチするものである。なお、デコード処理の初期段階においては、サンプル情報sp(0,0,0) のMSBの位置を示す値がこの第1のレジスタ38に記憶されている。
【0057】
40は第3の加算器であり、上記アロケーションデコーダ33から出力されるデータと上記第2のレジスタ39から出力されるデータとを加算する。41は第3の選択器であり、上記第3の加算器40から出力されるデータと第4の加算器43から出力されるデータとの何れかを選択する。ここで、上記第4の加算器43は、アドレスレジスタ42から出力されるデータに16(10)(=1000(2) )を加えて出力するものである。
【0058】
上記アドレスレジスタ42は、上記第3の選択器41から出力されるデータをラッチするものであり、図2に示したサンプル指定手段10に対応する。このアドレスレジスタ42にラッチされたデータは、サンプルRAM4から読み出そうとしているサンプル情報のアドレスやそのアドレス内でのMSBの位置を示している。
【0059】
44はデコーダであり、上記第1の選択器35から出力されるデータと上記第3の加算器40から出力されるデータの下位4ビットとを加算し、その加算結果が17(10)以上になったかどうかを判別する。そして、加算結果が17(10)以上であるときは出力が“Hi”、17(10)より小さいときは出力が“Lo”となる制御信号OF−Pを次のマシンサイクルで出力する。このデコーダ44は、図2に示した判別手段15に対応するものである。
【0060】
45は第1のサンプルレジスタであり、サンプルRAM4の各アドレスより読み出される16ビットデータを順次ラッチする。46は第2のサンプルレジスタであり、上記第1のサンプルレジスタ45から出力されるデータを順次ラッチする。これらの第1および第2のサンプルレジスタ45,46は、それぞれ図2に示した第1および第2のラッチ手段11,12に対応するものである。
【0061】
47はデータジェネレータであり、上記第1および第2のサンプルレジスタ45,46にそれぞれラッチされた16ビットデータの中から、読み出すべき1つのサンプル情報S”のみを取り出すとともに、その取り出したサンプル情報S”に逆量子化係数Dを加算する。このデータジェネレータ47は、図2に示した第1および第2のサンプル取出手段13,14、切り替え手段16、および図1に示した加算手段7を具備している。
【0062】
次に、図3のように構成したサンプル記憶ブロックの動作について説明する。ここでは、一連の動作をサイクルで区切って説明することにする。まず、図3中の点線で囲んだアドレスジェネレータの動作について説明する。
【0063】
▲1▼第1サイクル
まず始めに、図1に示したAS−RAM9よりサブバンドsb0 ,チャネルch0 に対応するアロケーション情報、およびサブバンドsb0 ,チャネルch1 に対応するアロケーション情報が入力され、それぞれ第1および第2のアロケーションレジスタ31,32にラッチされる。
【0064】
それと同時に、第2の選択器37では、端子A側に入力されるデータが選択される。これにより、第1のレジスタ38に記憶されているデータが第2のレジスタ39にラッチされる。デコード開始時は、第1のレジスタ38には初期値“0”がセットされているので、第2のレジスタ39には“0”がラッチされる。
【0065】
また、アロケーションデコーダ33では、上記第1および第2のアロケーションレジスタ31,32にラッチされたアロケーション情報に応じて所定の値が計算され、それが第3の加算器40に出力される。例えば、チャネル番号がch=0で、グループ内番号がGR=0の場合は、先に示した表1の処理内容に従って所定値“0”が出力される。
【0066】
また、第1の選択器35では、端子A側が選択される。これにより、上記第1のアロケーションレジスタ31にラッチされたアロケーション情報がデコーダ44に出力される。
【0067】
デコーダ44は、上記第1の選択器35から出力されるデータと第3の加算器40から出力されるデータの下位4ビットとを加算し、その加算結果が17(10)以上となるかどうかを判別する。
【0068】
上記第3の加算器40から出力されるデータの下位4ビットは、サンプルRAM4から読み出そうとしているサンプル情報のMSBのワード内位置を示すものである。また、第1の選択器35から出力されるデータは、そのサンプル情報のビット幅を示すものである。よって、デコーダ44における上記加算結果は、読み出そうとしているサンプル情報の最下位ビット(LSB)の位置を示すことになる。
【0069】
したがって、この加算結果の値が17(10)以上であるときは、その読み出そうとしているサンプル情報がサンプルRAM4の2つのアドレスにまたがって記憶されていると判断することができる。
【0070】
デコーダ44は、このような判別結果に応じて“Hi”または“Lo”の値を持つ制御信号OF−Pを次の第2サイクルで出力し、それを第3の選択器41の制御端に供給する。なお、第1サイクルにおいては、第3の選択器41では端子A側が選択されている。これにより、第3の加算器40から出力されるデータが選択されて次段のアドレスレジスタ42に出力される。
【0071】
▲2▼第2サイクル
次に、上記第3の選択器41から出力されるデータがアドレスレジスタ42にラッチされる。このとき、アドレスレジスタ42の下位4ビットを除く上位ビットのデータは、サンプルRAM4から読み出そうとしているサンプル情報のMSBが記憶されているアドレスを示している。
【0072】
この上位ビットのデータは、サンプルRAM4の図示しないアドレス入力部に送られる。これにより、その指定されたアドレスに記憶されている16ビットデータが読み出され、それが次の第3サイクルで第1のサンプルレジスタ45にラッチされる。
【0073】
また、この第2サイクルでは、上記第1サイクルでデコーダ44に入力されたデータに応じて制御信号OF−Pの値が決められる。制御信号OF−Pの値が“Hi”であれば、第3の選択器41では端子B側に入力されるデータが選択される。これにより、アドレスレジスタ42にラッチされたデータに16(10)の値を加算したデータが第3の選択器41より出力される。一方、制御信号OF−Pの値が“Lo”であれば、第3の選択器41では端子A側に入力されるデータが選択される。これにより、上記第1サイクルと同じ値が第3の選択器41より出力される。
【0074】
▲3▼第3サイクル
上記第3の選択器41から出力されるデータがアドレスレジスタ42ラッチされる。このとき、アドレスレジスタ42の下位4ビットを除く上位ビットのデータは、読み出そうとしているサンプル情報のLSBが記憶されているアドレスを示している。この上位ビットのデータは、上記した第2サイクルと同様に、サンプルRAM4の図示しないアドレス入力部に送られる。
【0075】
これにより、その指定されたアドレスに記憶されている16ビットデータが読み出され、それが次の第4サイクルで第1のサンプルレジスタ45にラッチされる。このとき、上記第2サイクルで第1のサンプルレジスタ45にラッチされた16ビットデータは、同じく次の第4サイクルで第2のサンプルレジスタ46にラッチされる。
【0076】
それと同時に、次のアロケーション情報が第1および第2のアロケーションレジスタ31,32にラッチされる。また、第2の選択器37では、端子B側に入力されるデータ、すなわち、第2の加算器36による加算結果が選択される。
【0077】
上記第1サイクルで第1および第2のアロケーションレジスタ31,32にラッチされたアロケーション情報の値をそれぞれal00,al10とすると、上記第2の加算器36から出力されるデータの値は、第2のレジスタ39内のデータが“0”であることから、
(al00+al10)×3
である。よって、第2のレジスタ39には、この値が新たにラッチされる。
【0078】
また、第1の選択器35では、端子A側が選択され、これにより、この第3サイクルで第1のアロケーションレジスタ31にラッチされたアロケーション情報al01がデコーダ44に出力される。デコーダ44は、上記第1の選択器35から出力されるデータと第3の加算器40から出力されるデータの下位4ビットとを加算し、その加算結果が17(10)以上となるかどうかを判別する。これにより、次に読み出すべきサンプル情報がサンプルRAM4において2つのアドレスにまたがって記憶されているかどうかを判断する。
【0079】
デコーダ44は、このような判別結果に応じて“Hi”または“Lo”の値を持つ制御信号OF−Pを次の第4サイクルで出力し、それを第3の選択器41の制御端に供給する。なお、第3サイクルにおいては、第3の選択器41では端子A側が選択される。これにより、第3の加算器40から出力されるデータが選択されて次段のアドレスレジスタ42に出力される。
【0080】
▲4▼第4サイクル
上記第3の選択器41から出力されるデータがアドレスレジスタ42ラッチされる。このとき、アドレスレジスタ42の下位4ビットを除く上位ビットのデータは、次に読み出すべきサンプル情報のMSBが記憶されているアドレスを示している。この上位ビットのデータは、上記した第2サイクルと同様に、サンプルRAM4の図示しないアドレス入力部に送られる。
【0081】
これにより、その指定されたアドレスに記憶されている16ビットデータが読み出され、それが次の第5サイクルで第1のサンプルレジスタ45にラッチされる。このとき、上記第3サイクルで第1のサンプルレジスタ45にラッチされた16ビットデータは、同じく次の第5サイクルで第2のサンプルレジスタ46にラッチされる。
【0082】
▲5▼第5サイクル
上記した第3サイクルと同じ処理が実行される。
【0083】
以上のような処理を繰り返して行うことにより、まず、図4中の時間軸方向で見たサンプルNo.0、チャネルch0 、各サブバンドsb0 〜31に対応するサンプル情報の読み出しを実行する。また、次のステップで、時間軸方向で見たサンプルNo.0、チャネルch1 、各サブバンドsb0 〜31に対応するサンプル情報の読み出しを実行する。
【0084】
なお、サブバンドsb0 、チャネルch1 に対応するサンプル情報の読み出し時には、第2の選択器37で端子A側のデータを最初に選択することにより、第2のレジスタ39にラッチされているデータを第1のレジスタ38にラッチする。
【0085】
以下、時間軸方向で見たサンプルNo.1、2 についても同様の読み出し処理を実行する。そして、グループ0のサンプル情報の読み出しが終了し、次にグループ1のサンプル情報の読み出しを開始するときには、始めに第1のレジスタ38の値を更新する。すなわち、グループ0についての演算後には、第2のレジスタ39に次の(式2)に示す値が保持されており、この値を第1のレジスタ38にラッチすることにより値を更新する。
【0086】
【数1】
【0087】
そして、以上に述べたのと同様の処理をグループ0〜11まで実行することにより、1フレーム分のサンプル情報の読み出し処理を終了する。
【0088】
次に、上記した第1〜第5サイクルの処理の並行して行われるデータジェネレータ47での処理内容を、図5をもとに説明する。
上述したように、このデータジェネレータ47は、第1および第2のサンプルレジスタ45,46にそれぞれラッチされている16ビットデータの中から、読み出すべき1つのサンプル情報S”のみを取り出すとともに、その取り出したサンプル情報S”にレイヤIIでの逆量子化係数Dを加算するまでの処理を実行する。
【0089】
図3に示したように、データジェネレータ47は、アドレスレジスタ42にラッチされているデータの下位4ビットi、第1の選択器35から出力されるアロケーション情報j、デコーダ44から出力される制御信号OF−Pをそれぞれ入力している。そして、データジェネレータ47は、これらのデータ値を制御入力として1つのサンプル情報を取り出す。
【0090】
ここで、アドレスレジスタ42にラッチされているデータの下位4ビットiの値は、サンプルRAM4から読み出そうとしているサンプル情報のワード内位置を示すものである。また、上記アロケーション情報jの値は、上記読み出そうとしているサンプル情報のビット幅を示すものである。また、デコーダ44から出力される制御信号OF−Pの値は、上記読み出そうとしているサンプル情報がサンプルRAM4内において2つのアドレスにまたがって記憶されているかどうかを示すものである。
【0091】
上記制御信号OF−Pの値が“Lo”のときは、図5の(1)に示したように、第2のサンプルレジスタ46にラッチされている16ビットデータをiビットだけ右シフトすることにより、その16ビットデータ中に含まれる1つのサンプル情報が1ワードの先頭にくるようにする。
【0092】
それとともに、そのシフトされたサンプル情報以外の1ワード内の(16−j)ビットを全て“0”にセットすることにより、読み出そうとする1つのサンプル情報のみを取り出す。このとき、得られたサンプル情報のMSBをビット反転することにより、目的のサンプル情報S”を得る。
【0093】
また、制御信号OF−Pの値が“Hi”のときは、図5の(2)に示したように、第2のサンプルレジスタ46にラッチされている16ビットデータをiビットだけ右シフトすることにより、その16ビットデータ中に含まれる1つのサンプル情報の一部分が1ワードの先頭にくるようにする。
【0094】
それとともに、第1のサンプルレジスタ45にラッチされている16ビットデータを(16−i)ビットだけ左シフトすることにより、その16ビットデータ中に含まれる上記1つのサンプル情報の残りの部分が上記iビットだけ右シフトされたサンプル情報の後に続くようにする。これにより、読み出そうとする1つのサンプル情報を生成する。
【0095】
そして、このようにして生成したサンプル情報以外の残りの(16−j)ビットを全て“0”にセットするとともに、得られたサンプル情報のMSBをビット反転することにより、2つのアドレスの各16ビットデータから、読み出そうとする1つのサンプル情報S”のみを取り出す。
【0096】
次に、以上のようにして取り出したサンプル情報S”にアロケーション情報jに応じた値を持つ逆量子化係数Dを加算することにより、上記した(式1)中の(S”+D)の値を得る。
【0097】
以上説明したように、本実施例によれば、サンプルRAM4の1つのアドレス内にビット幅が異なるサンプル情報を幾つも詰めて記憶することができるので、サンプルRAM4の全記憶領域の中でサンプル情報が記憶されない無駄な領域をなくすことができ、記憶領域を有効に使うことができるようになる。また、記憶するサンプル数の分だけアドレスを用意しなくても済むので、1フレームすべてのサンプル情報を記憶するためのサンプルRAM4のメモリ容量を可及的に小さくすることができるようになる。
【0098】
また、本実施例では、1つのサンプル情報がサンプルRAM4内の2つのアドレスにまたがって記憶されることがあるので、1つのサンプル情報S”を取り出す際には、メモリアドレスへのアクセスを2回にわたって行い、それにより得られる各データを第1および第2のサンプルレジスタ45,46にラッチする。そして、その各データから1つのサンプル情報を取り出すようにしている。
【0099】
このため、パイプライン処理で見た場合、このラッチ処理を行っている間に、S”+Dの加算を行う時間が十分に得られる。したがって、本実施例によれば、サンプル情報S”の読み出し処理とS”+Dの加算処理とを2つのマシンサイクルで行うことができる。
【0100】
これに対して従来は、1つのサンプル情報S”を読み出す際にラッチ処理は行われず、また、S”+Dの加算処理は、逆量子化処理や逆スケーリング処理を行うために用意された別個の乗加算器によって行われるようになされていた。
【0101】
なお、以上の実施例では、MPEG1オーディオ規格のレイヤIIに基づいて説明したが、本発明はこれに限定されるものではない。例えば、MPEG1のレイヤIの規格にも応用することができる。
【0102】
【発明の効果】
本発明は上述したように、複数のサンプル情報を記憶手段の記憶領域に順に書き込むことによりミスアライン状態で記憶させる書き込み手段と、上記記憶手段にミスアライン状態で記憶された複数のサンプル情報を1つずつ取り出して読み出す読み出し手段とを設けたので、1つのアドレス内に複数のサンプル情報を記憶することができるようになり、上記記憶手段の全記憶領域の中でサンプル情報が記憶されない無駄な領域をなくすことができるとともに、記憶するサンプル数の分だけアドレスを用意しなくても済み、サンプル情報を記憶するための記憶手段の記憶容量を可及的に小さくすることができる。
【図面の簡単な説明】
【図1】本発明の一実施例であるMPEGオーディオデコーダの要部構成を示すブロック図である。
【図2】サンプル取り出し手段の具体的な構成を示すブロック図である。
【図3】図1に示した読み出し手段を具体的に実施した構成を示す回路図である。
【図4】本実施例のMPEGオーディオデコーダに入力されるサンプル情報の入力順を示す図である。
【図5】データジェネレータでの処理内容を説明するための図である。
【符号の説明】
3 書き込み手段
4 サンプルRAM
5 読み出し手段
6 サンプル取り出し手段
7 加算手段
8 係数ROM
10 サンプル指定手段
11 第1のラッチ手段
12 第2のラッチ手段
13 第1のサンプル取出手段
14 第2のサンプル取出手段
15 判別手段
16 切り替え手段
35 第1の選択器
42 アドレスレジスタ
44 デコーダ
45 第1のサンプルレジスタ
46 第2のサンプルレジスタ
47 データジェネレータ
Claims (8)
- サンプル情報のビット幅についての情報を有するアロケーション情報、及び、サンプル情報を含むMPEG規格のオーディオ圧縮データが入力されるMPEGオーディオデコーダであって、
上記オーディオ圧縮データ中に含まれるサンプル情報を記憶するための記憶手段と、
上記記憶手段の記憶領域に複数のサンプル情報を順に書き込むようにして、各サンプル情報のビット幅が相互に異なることにより、上記複数のサンプル情報の境界と上記記憶手段の各アドレスの境界とが一致していないミスアライン状態で記憶するようにする書き込み手段と、
上記書き込み手段によってミスアライン状態で上記記憶手段に記憶された複数のサンプル情報を1つずつ取り出して読み出すようにする読み出し手段とを設け、
上記読み出し手段は、読み出そうとしているサンプル情報の最上位ビットの位置と、上記アロケーション情報から得た該サンプル情報のビット幅とに基づいて、その読み出そうとしているサンプル情報が1つのアドレス内に記憶されているのか、2つのアドレスにまたがって記憶されているのかを判別する判別手段を有することを特徴とするMPEGオーディオデコーダ。 - 上記読み出し手段は、上記記憶手段から読み出そうとする1つのサンプル情報の位置を指定するサンプル指定手段と、
上記サンプル指定手段により指定された上記記憶手段の1つのアドレスのデータを順次ラッチする第1のラッチ手段と、
上記第1のラッチ手段から出力されるデータを順次ラッチする第2のラッチ手段と、
上記判別手段が1つのアドレス内に記憶されていると判断したときに、上記読み出そうとする1つのサンプル情報を上記第2のラッチ手段にラッチされているデータの中から取り出すようにする第1の取出手段と、
上記判別手段が2つのアドレスにまたがって記憶していると判断したときに、上記読み出そうとする1つのサンプル情報を上記第1のラッチ手段および上記第2のラッチ手段にそれぞれラッチされているデータの中から取り出すようにする第2の取出手段とを具備することを特徴とする請求項1に記載のMPEGオーディオデコーダ。 - 上記第1の取出手段は、上記第2のラッチ手段にラッチされているデータを所定ビットだけシフトすることにより、上記データ中に含まれる上記読み出そうとする1つのサンプル情報が1ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の1ワード内のビットを全て0にすることにより、上記読み出そうとする1つのサンプル情報のみを取り出すことを特徴とする請求項2に記載のMPEGオーディオデコーダ。
- 上記第1の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内におけるサンプル情報の位置に応じて決定するようにしたことを特徴とする請求項3に記載のMPEGオーディオデコーダ。
- 上記第2の取出手段は、上記第1のラッチ手段および上記第2のラッチ手段にラッチされているデータをそれぞれ所定ビットずつシフトすることにより、上記第1のラッチ手段および上記第2のラッチ手段の各データ中に分割して含まれている上記読み出そうとする1つのサンプル情報が1ワードの先頭にくるようにするとともに、上記シフトされたサンプル情報以外の1ワード内のビットを全て0にすることにより、上記読み出そうとする1つのサンプル情報のみを取り出すようにしたことを特徴とする請求項2に記載のMPEGオーディオデコーダ。
- 上記第2の取出手段は上記シフトするビット量を、上記サンプル指定手段により指定された上記記憶手段内における上記サンプル情報の位置に応じて決定するようにしたことを特徴とする請求項5に記載のMPEGオーディオデコーダ。
- 上記読み出し手段は、上記第1の取出手段または上記第2の取出手段により取り出されたサンプル情報と所定の逆量子化係数とを加算する加算手段を更に具備することを特徴とする請求項2〜6の何れか1項に記載のMPEGオーディオデコーダ。
- 上記第1の取出手段および上記第2の取出手段によるサンプル情報の取り出し処理と上記加算手段による加算手段とをパイプライン処理で行うようにしたことを特徴とする請求項7に記載のMPEGオーディオデコーダ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13290795A JP3581431B2 (ja) | 1995-05-02 | 1995-05-02 | Mpegオーディオデコーダ |
TW085104619A TW316302B (ja) | 1995-05-02 | 1996-04-18 | |
US08/638,230 US5703579A (en) | 1995-05-02 | 1996-04-26 | Decoder for compressed digital signals |
CN96106224A CN1112047C (zh) | 1995-05-02 | 1996-05-02 | 数字压缩信号的译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13290795A JP3581431B2 (ja) | 1995-05-02 | 1995-05-02 | Mpegオーディオデコーダ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08305400A JPH08305400A (ja) | 1996-11-22 |
JP3581431B2 true JP3581431B2 (ja) | 2004-10-27 |
Family
ID=15092323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13290795A Expired - Lifetime JP3581431B2 (ja) | 1995-05-02 | 1995-05-02 | Mpegオーディオデコーダ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3581431B2 (ja) |
-
1995
- 1995-05-02 JP JP13290795A patent/JP3581431B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08305400A (ja) | 1996-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1197254C (zh) | 编码无损压缩方法及其装置和译码无损压缩方法及其装置 | |
JP2010537245A5 (ja) | ||
KR20010041826A (ko) | 인코딩된 신호 내부에 보조 데이터의 삽입 | |
CN103325376B (zh) | 编码装置、编码方法、解码装置及解码方法 | |
JP3581431B2 (ja) | Mpegオーディオデコーダ | |
TW316302B (ja) | ||
JP3589746B2 (ja) | Mpegオーディオデコーダ | |
JP3639424B2 (ja) | アドレス発生回路 | |
JP3826870B2 (ja) | 圧縮データ構造、波形生成装置および波形記憶装置 | |
CN1103105C (zh) | 用于记录和/或再现一脉冲码调制数字音频信号的系统 | |
JP4736331B2 (ja) | 音響信号の再生装置 | |
JP4403319B2 (ja) | 端末装置 | |
JP3576266B2 (ja) | Mpegオーディオデコーダ | |
JP2727798B2 (ja) | 波形データ圧縮方法及び装置ならびに再生装置 | |
JP3912304B2 (ja) | 圧縮データ構造、波形生成装置および波形記憶装置 | |
JP2790128B2 (ja) | 波形データ及び楽音制御用のディジタルデータの圧縮方法 | |
JP3038760B2 (ja) | ディジタル信号処理装置 | |
JPH08292795A (ja) | Mpegオーディオデコーダ | |
JP2650636B2 (ja) | 電子楽器のデータ発生装置 | |
JP3889738B2 (ja) | 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム | |
JP2745866B2 (ja) | 波形データ及び楽音制御用のディジタルデータ圧縮方法並びに波形データ再生装置 | |
JP3222967B2 (ja) | ディジタル信号処理装置 | |
EP2191382B1 (en) | System, method, and/or apparatus for digital signal sorting | |
JP3092331B2 (ja) | 信号処理装置 | |
JPH0528647A (ja) | デイジタル音声信号の記録再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040723 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080730 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090730 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100730 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110730 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110730 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120730 Year of fee payment: 8 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120730 Year of fee payment: 8 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120730 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |