(57)【特許請求の範囲】
【請求項１】
帯域分割されたサブバンドデータにマトリクス演算処理を施し、マトリクス演算処理結果として所定サンプル数で構成され、データ値の配置形状がデータ列の所定サンプル点において前半部と後半部とで点対称となるＡデータ列及び所定のサンプル点において前半部と後半部とで線対称となるＢデータ列を求め、このＡデータ列とＢデータ列が上記マトリクス演算処理部から算出される毎に上記Ａデータ列とＢデータ列の各データをＦＩＦＯバッファに蓄積し、ＦＩＦＯバッファには過去複数回のマトリクス演算結果を配列し、新たにマトリクス演算結果が上記ＦＩＦＯバッファに投入される毎にＮ回前に蓄積されたＡデータ列とＢデータ列を上記ＦＩＦＯバッファから排出すると共に、このＦＩＦＯバッファに配列されたＮ回分のＡデータ列とＢデータ列を各取り込み回数の順序に従ってＡデータ列とＢデータ列を交互に抽出し、この抽出された各データに係数を乗算して窓掛け演算処理を施し、その演算結果を累積加算してＰＣＭ信号を生成する音声復号化方法において、
上記マトリクス演算結果として得られるＡデータ列の点対称となるデータ配列の前半部又は後半部の何れか一方及びＢデータ列の線対称となるデータ配列の前半部又は後半部の何れか一方を切除し、残されたデータ量が半分のａデータ列とｂデータ列を上記ＦＩＦＯバッファに所定のマトリクス演算処理回数分蓄積させ、各蓄積回毎のａデータ列は上記点対称となるサンプル点を折返点として往復にわたり一方の読み出し時と他方の読み出し時は符号を異ならせて読み出すことにより元のデータ量を持つＡデータ列を生成し、ｂデータ列は上記線対称となるサンプル点を折返点として往復にわたって読み出すことによって元のデータ量を持つＢデータ列を生成し、生成された元のＡデータ列及びＢデータ列に窓掛け演算処理を実行して上記ＰＣＭ信号を生成する音声復号化方法。
【請求項２】
Ａ．記憶媒体から読み出された圧縮データを蓄積する圧縮データバッファと、
Ｂ．この圧縮データバッファに所定量の圧縮データ列が読み出される毎に、圧縮された音声データ列にビットストリーム展開処理を施すビットストリーム展開処理器と、
Ｃ．このビットストリーム展開処理器で展開され帯域分割されたサブバンドデータ列にマトリクス演算処理を施すマトリクス演算処理器と、
Ｄ．このマトリクス演算処理器で演算処理された所定サンプル数のデータ列で構成され、データ値の配列形状がデータ列の所定サンプル点において前半部と後半部とで点対称となるＡデータ列及び所定のサンプル点において前半部と後半部とで線対称となるＢデータ列のそれぞれのデータ列の中から上記前半部又は後半部で構成される対称型の一方の部分を切除するデータ切除器と、
Ｅ．このデータ切除器でデータの一部を切除した残りのａデータ列及びｂデータ列をＮ回のマトリクス演算回数分配列して記憶するＦＩＦＯバッファと、
Ｆ．このＦＩＦＯバッファから、ａデータ列は上記点対称となるサンプル点を折返点とし往と復で異符号を付して往復にわたって読み出し、元のデータ量を持つＡデータ列を生成し、ｂデータ列は上記線対称となるサンプル点を折返点として往復にわたって読み出し、元のデータ量を持つＢデータ列を生成する読み出し手段と、
Ｇ．この読み出し手段で生成したＡデータ列及びＢデータ列に係数を乗算し窓掛演算処理する乗算器と、
Ｈ．この乗算器の乗算結果を累積加算し、ＰＣＭ信号を生成する累積加算器と、
によって構成したことを特徴とする音声復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はＭＰＥＧ音声符号化復号化方法に準処した音声復号化方法及び音声復号化装置に関し、特に複数トラック（チャンネル）の同時再生機能を廉価、かつコンパクトなシステム上に実装する方法及び装置に関する。
【０００２】
【従来の技術】
図４は４トラックのマルチトラックレコーダを構成した場合のデコーダ部（復号化部）の構成を示している。記憶媒体１００から読み出された例えば各楽器別に記録されている４トラック分のビットストリーム（圧縮されているデータ列）がそれぞれ復号器１０１に入力され、出力されたＰＣＭデータをミキサー１０２でミックスし、ＤＡ変換器１０３で２チャンネルのステレオ信号として再現し、音声信号１及び２を得る。
【０００３】
復号器１０１はモノラルビットストリームを復号する復号器である。４トラックマルチトラックレコーダの場合、同じ構成のものが４つ並列に並ぶ。ＭＰＥＧオーディオ勧告書（ＩＳＯ／ＩＥＣ１１１７２−３Ｉｎｆｏｒｍａｔｉｏｎ  ｔ−ｅｃｈｎｏｎｏｇｙ‐Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅｓａｎｄ  ａｓｓｏｃｉａｔｅｄ  ａｕｄｉｏ  ｆｏｒ  ｄｉｇｉｔａｌ  ｓｔｏ−ｒａｇｅ  ｍｅｄｉａ  ａｔ  ｕｐ  ｔｏ  ａｂｏｕｔ  １．５  Ｍｂｉｔ／ｓ‐Ｐａｒｔ３：Ａｕｄｉｏ  以下ＭＰＥＧ勧告書）で示される実装方法によれば、復号化処理においてサブバンドフィルタバンク処理で使用するメモリ使用量は復号器１０１で使用するメモリ使用量の大半を占める。しかも、サブバンドフィルタバンク処理で利用されるメモリ領域はフィルタリング処理の中間結果を保持するものであるためスタティックな領域に確保する必要がある。従って、他のトラックと共用することができない。
【０００４】
図５は一つの復号器１０１の構成例である。ＭＰＥＧオーディオＬａｙｅｒIIの場合、１１５２サンプルを１固まりとしてこれを１フレームと呼ぶ。１トラック分のビットストリームが圧縮データバッファ２００にストアされ、１フレーム分のデータが溜まった時点でビットストリーム展開処理器２０１へ入力される。ビットストリーム展開処理器２０１では上述の勧告書で定められているフレームのアンパッキング処理、ビットアロケーション処理、スケールファクタ処理、サブバンドサンプル構成処理を経てサブバンドサンプルを出力する。２１０はサブバンドフィルタリング処理部を示す。このサブバンドフィルタリング処理部２１０で施される処理はＭＰＥＧ勧告書に詳細が示されており、以下にその手順を示す。
手順１：ｊ＝０〜３１について新しい３２個のサブバンドデータＳｓ［ｊ］を入力する。
手順２：ｎ＝１０２３〜６４についてＶ［ｎ］＝Ｖ［ｎ−６４］の処理を行うことでＦＩＦＯバッファ２０３の古い６４個のデータを破棄し、次の手順３で得られる６４個のデータのためのスペースを作る。
手順３：マトリクス演算処理を行う。マトリクス演算はｎ＝０〜６３について
【０００５】
【数１】
0003682863.tif 000002
【０００６】
を算出することにより得られる。ただし、
【０００７】
【数２】
0003682863.tif 000003
【０００８】
である。
手順４：ｉ＝０〜７、ｊ＝０〜３１について５１２サンプルのベクトルＵを構成する。Ｕは
Ｕ［６４ｉ＋ｊ］＝Ｖ［１２８ｉ＋ｊ］                        （３）
Ｕ［６４ｉ＋３２＋ｊ］＝Ｖ［１２８ｉ＋９６＋ｊ］            （４）
の式で計算される。
手順５：５１２個の係数で窓掛けを行ってベクトルＷを構成する。Ｗはｍ＝０〜５１１について
Ｗ［ｍ］＝Ｕ［ｍ］*Ｄ［ｍ］                                  （５）
を算出することで得られる。ただし、Ｄ［ｍ］はＭＰＥＧ勧告書の表Ｂ．３（Ｔａｂｌｅ  Ｂ．３  Ｃｏｅｆｆｉｃｉｅｎｔｓ  Ｄｉ  ｏｆ  ｓｙｓｔｈｅｓｉｓ  ｗｉｎｄｏｗ）で示されている５１２点の係数である。
手順６：ｊ＝０〜３１について
【０００９】
【数３】
0003682863.tif 000004
【００１０】
を計算して３２個のＰＣＭサンプル出力Ｓｐ［ｊ］を得る。以下では図５に示したサブバンドフィルタリング処理部２１０で施される処理を上記手順と対応させて図５及び図６を用いて説明する。
手順１ではビットストリーム展開処理器２０１から得られたサブバンドデータを３２個のデータ毎にマトリクス演算処理器２０２へ入力する。
手順２は１０２４点ＦＩＦＯバッファ２０３−１を６４点シフトして最も古い６４個のデータを破棄する。この処理は通常は１０２４点ＦＩＦＯバッファ２０３−１をＦＩＦＯ（先入れ先出し）バッファとして構成することにより簡単に構成することができる。ＦＩＦＯバッファは汎用ＤＳＰ（デジタル・シグナル・プロセッサ）の機能として実装されているサーキュラアドレッシング（巡回アドレッシング）機能を使って容易に実現することができる。
【００１１】
手順３はマトリクス演算処理器２０２に入力された３２個のデータの入力に対してマトリクス演算処理を施し６４個のデータを計算する処理である。マトリクス演算処理はｃｏｓ係数の対称性、周期性を利用することにより、実装対象ＤＳＰにとって最も実行サイクルが少ない計算方式を選択して実装する。
式（２）は係数メモリ２０５（図５参照）上にｃｏｓ係数のテーブルを保持しておくことで処理の度に計算することなく利用できる。手順４、手順５、手順６はメモリ節約のため中間結果であるベクトルＵおよびベクトルＷをバッファ上にとらず、１０２４点ＦＩＦＯバッファ２０３−１から直接計算結果を得る。（３）式、（４）式で計算されるベクトルＵはアドレス選択部３０１でアドレスを選択することで得られる。アドレス選択部３０２では係数メモリ２０６内のアドレスを選択しこれらの出力を使って乗算器３０３において（５）式に相当する乗算が行われる。アドレス選択部３０１および３０２はｊ（ｊ＝０〜３１）によって３２のアドレスを順番に選択する事を示している。ｉ＝０〜１５についての乗算器３０３の出力結果を累積器３０４で累積した結果がＰＣＭ出力Ｓｐ［ｊ］である。このＳｐ［ｊ］をｊ＝０〜３１について算出すれば３２個のデータが得られる。
【００１２】
【発明が解決しようとする課題】
ＭＰＥＧオーディオ符号化復号方式を利用したマルチトラックレコーダの場合、トラック数を多く採るとトラック数に比例して利用するメモリ量が増加する。従って、高速なアクセス速度を持つＤＳＰの内部ＲＡＭのみを利用して上記サブバンドフィルタリング処理部２１０を構成することが困難になる。
その結果としてアクセス速度の遅い外部ＲＡＭ（ＤＳＰの外部にＲＡＭを接続した場合、ＤＳＰとＲＡＭとの間のデータの授受に時間がかかり、アクセス速度が遅くなる欠点がある）を利用するか、内部に大容量のＲＡＭ領域を装備した高価なＤＳＰを選択せざるを得なくなるという問題があった。
【００１３】
つまり、ＭＰＥＧオーディオ勧告書で定義されている実装方法によれば、１０２４点ＦＩＦＯバッファ２０３−１は（図６に示したように）アドレス３２〜９５、１６０〜２２３、２８８〜３５１、４１６〜４７９、５４４〜６０７、６７２〜７３５、８００〜８６３、９２８〜９９１の全部で６４×８＝５１２アドレス分の領域がデータに遅延時間を与えるためのバッファとして流用されるから、無駄が多い。
ここで１０２４点ＦＩＦＯバッファ２０３−１に空き領域が存在する理由を説明する。１０２４点ＦＩＦＯバッファ２０３−１に１回に入力されるデータは６４個のデータ列である。この６４個のデータ列は図１１に示すように前半の３２個をＡデータ列、後半の３２個のデータ列をＢデータ列と表記する。ＦＩＦＯバッファ２０３−１は１０２４点のアドレスを有していることから、１６回分のマトリクス演算結果を格納することができる。
【００１４】
アドレス選択部３０１の各読み出し点ｉ０〜ｉ１５では読出点ｉ０は０〜３１アドレス分読み出す。つまり最新のＡデータ列を読み出す。
読出点ｉ１では２個目に古いＢデータ列を０〜３１アドレス分読み出す。
読出点ｉ２では３個目に古いＡデータ列を０〜３１アドレス分読み出す。
読出点ｉ３では４個目に古いＢデータ列を０〜３１アドレス分読み出す。
従って、先に説明した勧告書に従ってＦＩＦＯバッファ２０３−１と読出点ｉ０〜ｉ１５の読み出しを実行するためには各読出点ｉ０〜ｉ１５ではＡデータ列とＢデータ列を交互に選び、且つデータ列の取り込み順序を１番ずつ繰上げて順番に選択することになる。図７に乗算器３０３の各入力端子Ｘ０〜Ｘ１５に入力されるデータの配列を示す。各データ名Ａ、Ｂのカッコ内はデータの取り込み順序に付した番号を表す。このデータの配列を得るためにＦＩＦＯバッファ２０３−１上に余分な記憶領域が必要となる。
【００１５】
この発明の目的はＦＩＦＯバッファ２０３−１に無駄が生じることなく、従って最小アドレス容量で実現可能とした音声復号化方法及びこの復号化方法を用いて動作する音声復号装置を提案しようとするものである。
【００１６】
この発明の請求項１では、帯域分割されたサブバンドデータにマトリクス演算処理を施し、マトリクス演算処理結果として所定サンプル数で構成され、データ値の配置形状がデータ列の所定サンプル点において前半部と後半部とで点対称となるＡデータ列及び所定のサンプル点において前半部と後半部とで線対称となるＢデータ列を求め、このＡデータ列とＢデータ列がマトリクス演算処理部から算出される毎にＡデータ列とＢデータ列の各データをＦＩＦＯバッファに蓄積し、ＦＩＦＯバッファには過去複数回のマトリクス演算結果を配列し、新たにマトリクス演算結果がＦＩＦＯバッファに投入される毎にＮ回前に蓄積されたＡデータ列とＢデータ列をＦＩＦＯバッファから排出すると共に、このＦＩＦＯバッファに配列されたＮ回分のＡデータ列とＢデータ列を各取り込み回数の順序に従ってＡデータ列とＢデータ列を交互に抽出し、この抽出された各データに係数を乗算して窓掛け演算処理を施し、その演算結果を累積加算してＰＣＭ信号を生成する音声復号化方法において、マトリクス演算結果として得られるＡデータ列の点対称となるデータ配列の前半部又は後半部の何れか一方及びＢデータ列の線対称となるデータ配列の前半部又は後半部の何れか一方を切除し、残されたデータ量が半分のａデータ列とｂデータ列をＦＩＦＯバッファに所定のマトリクス演算処理回数分蓄積させ、各蓄積回毎のａデータ列は点対称となるサンプル点を折返点として往復にわたり一方の読み出し時と他方の読み出し時は符号を異ならせて読み出すことにより元のデータ量を持つＡデータ列を生成し、ｂデータ列は線対称となるサンプル点を折返点として往復にわたって読み出すことによって元のデータ量を持つＢデータ列を生成し、生成された元のＡデータ列及びＢデータ列に窓掛け演算処理を実行してＰＣＭ信号を生成する音声復号化方法を提案する。
【００１７】
この発明の請求項２では、記憶媒体から読み出された圧縮データを蓄積する圧縮データバッファと、この圧縮データバッファに所定量の圧縮データ列が読み出される毎に、圧縮された音声データ列にビットストリーム展開処理を施すビットストリーム展開処理器と、このビットストリーム展開処理器で展開され帯域分割されたサブバンドデータ列にマトリクス演算処理を施すマトリクス演算処理器と、このマトリクス演算処理器で演算処理された所定サンプル数のデータ列で構成され、データ値の配列形状がデータ列の所定サンプル点において前半部と後半部とで点対称となるＡデータ列及び所定のサンプル点において前半部と後半部とで線対称となるＢデータ列のそれぞれのデータ列の中から前半部又は後半部で構成される対称型の一方の部分を切除するデータ切除器と、
【００１８】
このデータ切除器でデータの一部を切除した残りのａデータ列及びｂデータ列をＮ回のマトリクス演算回数分配列して記憶するＦＩＦＯバッファと、このＦＩＦＯバッファから、ａデータ列は点対称となるサンプル点を折返点とし往と復で異符号を付して往復にわたって読み出し、元のデータ量を持つＡデータ列を生成し、ｂデータ列は線対称となるサンプル点を折返点として往復にわたって読み出し、元のデータ量を持つＢデータ列を生成する読み出し手段と、この読み出し手段で生成したＡデータ列及びＢデータ列に係数を乗算し窓掛演算処理する乗算器と、この乗算器の乗算結果を累積加算し、ＰＣＭ信号を生成する累積加算器と、によって構成したことを特徴とする音声復号装置を提案する。
【００１９】
この縮小された配列からａデータ列及びｂデータ列を読み出す際にその各ａデータ列及びｂデータ列を複数回読み出すことにより切除前の元のＡデータ列及びＢデータ列を再生し、この再生されたＡデータ列及びＢデータ列に窓掛け演算を施すことにより正規の音声信号を復号する。
従って、この発明によればａデータ列及びｂデータ列を配列して記憶しておくＦＩＦＯバッファの記憶容量を半減させることができる。この結果、ＤＳＰの内部に装備しているＲＡＭの容量でも、充分多チャンネルの復号装置を構成できることになる。従って、廉価なＤＳＰで多チャンネルの音声再生器を構成することができる利点が得られる。
【００２０】
ここでマトリクス演算処理されてＦＩＦＯバッファに投入されるＡデータ列及びＢデータ列が対称形になっていることについて説明する。
図５及び図６に示した係数メモリ２０５には（２）式に示すｃｏｓ関数を表す係数が格納されている。図８及び図９に係数メモリ２０５に記憶している係数の一部を示す。この係数は（２）式にｎの値と、ｋの値を代入して求めた値である。
因みに、図８に示すｎ＝０とｋ＝０の欄では（２）式にｎ＝０とｋ＝０を代入すると、
ｃｏｓ［（１６＋０）（１）］π／６４＝ｃｏｓ（１６／６４）π
となる。これを図１０に示すｃｏｓ曲線状に当て嵌めるとπ／４となりｃｏｓ４５°の値を意味する。
【００２１】
ｎ＝０、ｋ＝１の場合は
0003682863.tif 000005
となる。これをｃｏｓ曲線上に当て嵌めるとπ／４の逆極性の値を採ることが分かる。従って、ここでは−ｃｏｓ（１６／６４）πと表記している。
図８及び図９に示す係数表で特異な点はｎ＝１６の点である。ｎ＝１６の点ではｋの値が０〜３１（図では０〜７までを示す）の全てに対して−ｃｏｓ（３２／６４）πとなる。この値はｃｏｓ（π／２）を意味し、ｃｏｓπ／２＝０となる。従って、ここではｎ＝１６で与えられるデータをＤ０と称することにする。
【００２２】
更に、図９に示すｎ＝４８の点ではｋの値に関係なく、係数は全て−ｃｏｓ（０／６４）πとなる。つまり−ｃｏｓ０°を意味し、常に一定値−１となる。従って、ここではｎ＝４８で得られるデータをＤＣと称することにする。図８及び図９に示した係数を解析すると、マトリクス演算処理して求められる６４個のデータの値は図１１に示すように前半のＡデータ列はゼロとなるデータＤ０を中心に点対称形となり、また後半のＢデータ列は中央のデータＤＣを境に線対称形となることが解る。
【００２３】
データＤ０はどの時点で出力されるＡデータ列であってもゼロとなる。
この出願の発明者はこの点に着目し、対称型のデータ列の一方を切除してＦＩＦＯバッファに記憶させ、読出時に記憶しているデータ列を複数回読み出す（アドレスを逆向きに読み出す）ことにより元のデータ列を再現することを思いついた。
【００２４】
【発明の実施の形態】
図１にこの発明による音声復号装置の一実施例を示す。この実施例を説明することにより、この発明の音声復号化方法についても説明する。図５と対応する部分には同一符号を付して示す。この発明の特徴とする構成はマトリクス演算処理器２０２の出力側にデータ切除器２０７を設けた点と、ＦＩＦＯバッファ２０３−２を図６に示したＦＩＦＯバッファ２０３−１の半分の容量５１２点のＦＩＦＯバッファとした点と、このＦＩＦＯバッファ２０３−２の読出側にデータ再生器２０８を設けた構成とした点である。
【００２５】
マトリクス演算処理器２０２で演算処理されて出力される６４個のデータは図１１で説明したように前半のＡデータ列はデータＤ０を境に点対称である、後半のＢデータ列は中央のデータＤＣを境に線対称であることから、データ切除器２０７はＡデータ列の後半とゼロ値を与えるデータＤ０を切除し、更にＢデータ列の最初のデータ（図１１に示したデータＳＰ３３）とデータＤＣ以後の１５個のデータを切除する。
先ず、この発明の理解を助けるために、図１１に示したＡデータ列及びＢデータ列のそれぞれからどの部分のデータを切除し、どの部分のデータをＦＩＦＯバッファ２０３−２に記憶し、ＦＩＦＯバッファ２０３−２からデータを読み出す際にどのようにして元のＡデータ列及びＢデータ列を再現するかについて説明する。
【００２６】
図１１に示したＡデータ列とＢデータ列においてＡデータ列では先頭のデータＳＰ１から１６サンプル目のデータＳＰ１６までをＦＩＦＯバッファ２０３−２に書き込み、データＤＯから３２サンプル目のデータＳＰ３２までのデータを切除する。
Ｂデータ列では３３サンプル目のデータＳＰ３３を除いて３４サンプル目のデータＳＰ３４からデータＤＣまでをＦＩＦＯバッファ２０３−２に書き込み、他を切除する。
【００２７】
この結果ＦＩＦＯバッファ２０３−２に書き込むデータはＡデータ列から１６サンプル、Ｂデータ列から１６サンプルの合計３２サンプルのデータがＦＩＦＯバッファ２０３−２に書き込まれる。従って、ＦＩＦＯバッファ２０３−２に書き込むそれぞれ１６サンプルで構成されるデータ列をここではａデータ列及びｂデータ列と表記することにする。図２にａデータ列とｂデータ列を抜き出して示す。
次に、図１１を用いて図２に示したａデータ列とｂデータ列から元のＡデータ列及びＢデータ列を再現する方法について説明する。先ずａデータ列について説明する。ＦＩＦＯバッファＦＩＦＯ２０３−２には図１１に破線で囲んだ先頭のデータＳＰ１から１６サンプル目のデータＳＰ１６が格納される。データＳＰ１からＳＰ１６までを読み出し、データＳＰ１６を読み出した後にデータＤＯを挿入して再びデータＳＰ１６から１アドレスずつ逆向に読み出しを行なう。逆向に読み出しを行なう場合、読み出したデータに「−」符号を付し、極性を反転させ、先頭から１個手前のデータＳＰ２までを読み出す。この読み出しにより図１１に示す３２サンプルで構成されるＡデータ列が再現される。
【００２８】
次にｂデータ列について説明する。ｂデータ列は３４サンプル目のデータＳＰ３４からデータＤＣまでがＦＩＦＯバッファ２０３−２に書き込まれる。従って、このｂデータ列を往復読み出すことにより、図１１に示す３４サンプル目のデータＳＰ３４から最終の６４サンプル目のデータＳＰ６４までが再現できる。然し乍らこの場合、再現されたデータ列は３１サンプル数となる。
つまり、Ｂデータ列の先頭のデータＳＰ３３が再現されていないことになる。データＳＰ３３はＡデータ列の先頭のデータＳＰ１を極性反転させたデータである。このため、ｂデータ列を読み出す際にはＦＩＦＯバッファ２０３−２において、ａデータ列の先頭のアドレスからデータＳＰ１を読み出し、この読み出したデータＳＰ１を極性反転させて１サンプルを生成し、この１サンプルに続いてＦＩＦＯバッファ２０３−２からデータＳＰ３４〜データＤＣまでを読み出すと共に、データＤＣから逆向に先頭のデータＳＰ３４までを読み出すと、Ｂデータ列の後半のｂ′データ列が再現される。データＳＰ３４からデータＤＣまでを往復読み出すと、データＤＣは読み出しが１度であるから全部で３１サンプルとなる。この３１サンプルのデータ列の先頭にａデータ列の先頭から読み出したデータＳＰ３３（データＳＰ１を極性反転させて加える）を加えることにより全体で３２サンプルのＢデータ列を再現することができる。
【００２９】
ここでデータＳＰ３３の取扱いについて説明する。データＳＰ３３はＡデータ列の先頭のデータを極性反転させたデータである。従って本来はＡデータ列に属することが望ましいのであるが、Ａデータ列は先頭から３２サンプル目のデータＳＰ３２で既にサンプル数が３２となる。図６で説明したように乗算器３０３では図６に示した各入力端子Ｘ０〜Ｘ１５に３２サンプルずつデータを入力することを演算処理の都合上要求するから、Ａデータ列及びＢデータ列は３２サンプルずつに揃える必要がある。このような理由からデータＳＰ３３をＢデータ列に含ませたものである。
【００３０】
以上の説明から明らかなようにＦＩＦＯバッファ２０３−２には図２に示すＡデータ列の半分のデータ量となったａデータ列と、Ｂデータ列の半分のデータ量となったｂデータ列を書き込む。ａデータ列とｂデータ列はそれぞれ１６サンプルのデータで構成されるため、ＦＩＦＯバッファ２０３−２には一度に３２個のデータが書き込まれる。
ＦＩＦＯバッファ２０３−２には５１２点の記憶容量を持たせる。従って、ＦＩＦＯバッファ２０３−２には図３に示すように、１６回分のマトリックス演算結果が格納される。
【００３１】
データ再生器２０８はアドレス選択部３０１とこのアドレス選択部３０１を制御するアドレスコントローラ３０５と、読出回路に設けた付加回路３０６とによって構成することができる。アドレスコントローラ３０５はアドレス選択部３０１を制御する。アドレス選択部３０１は１６個の読出点ｉ０〜１５の読出アドレスを制御する。各読出点ｉ０〜ｉ１５は５１２点のＦＩＦＯバッファのアドレス領域を１６等分した各領域に割付けられたアドレス０〜３１を読み出すように制御される。ここで特に偶数番目の読出点ｉ０、ｉ２、ｉ４、ｉ６、ｉ８、ｉ１０、ｉ１２、ｉ１４は各領域の前半のアドレス０〜１５を読み出す。また奇数番目の読出点ｉ１、ｉ３、ｉ５、ｉ７、ｉ９、ｉ１１、ｉ１３、ｉ１５は各領域のａデータ列の先頭のアドレスと後半のアドレス１６〜３１を読み出す。
【００３２】
この結果偶数番目の読出点ｉ０、ｉ２、…ｉ１４はＦＩＦＯバッファ２０３−２に書き込まれているａデータ列を読み出すことになり、また奇数番目の読出点ｉ１、ｉ３、…ｉ１５はＦＩＦＯバッファ２０３−２に書き込まれているａデータ列の先頭のデータとｂデータ列を読み出すことになる。
更に、ａデータ列を読み出す偶数番目の読出点ｉ０、ｉ２、…ｉ１４は各自己に割当てられた領域の０〜１５のアドレスを０〜１５まで読み出した後、今度は逆向きにアドレスを１５〜１までの読出を実行する。このとき復路の読み出しは、復路の読出の実行を開始する時点でゼロを与えるデータＤ０を付加回路３０６で付加し、更にマイナス符号「−」を付加して読み出すことにより、図１１に示した本来の３２サンプルで構成されるＡデータ列を再現することができる。
【００３３】
一方、奇数番目の読出点ｉ１、ｉ３、…ｉ１５では各領域に記憶したａデータ列の先頭のアドレスとｂデータ列を記憶しているアドレスを１６〜３１まで読み出し、ａデータ列から読み出したデータを極性反転することにより、図１１に示したｂデータ列（３３サンプル目のデータＳＰ３３を含む）を読み出すことができる。更にその最大アドレス３１から逆向きにアドレス１６までを読み出せば、図１１に示した本来の３２サンプルで構成されるＢデータ列を再現することができる。
【００３４】
アドレスコントローラ３０５がアドレス選択部３０１の各読出点ｉ０〜ｉ１５を上述のように制御することにより、各読出点ｉ０〜ｉ１５は
（１）読出点ｉ０は最新のａデータ列を読み出して本来の３２サンプルで構成されるデータ列Ａを再現する。
（２）読出点ｉ１は２番目に古いａデータ列の先頭とｂデータ列を読み出して本来の３２サンプルで構成されるデータ列Ｂを再現する。
（３）読出点ｉ２は３番目に古いａデータ列を読み出して本来の３２サンプルで構成されるデータ列Ａを再現する。
（４）読出点ｉ３は４番目に古いａデータ列の先頭とｂデータ列を読み出して本来の３２サンプルで構成されるデータ列Ｂを再現する。
（５）読出点ｉ４は５番目に古いａデータ列を読み出して本来の３２サンプルで構成されるデータ列Ａを再現する。
【００３５】
・
・
・
（１６）読出点ｉ１５は１６番目に古いａデータ列の先頭とｂデータ列を読み出して本来の３２サンプルで構成されるデータ列Ｂを再現するように動作する。
この動作の結果は図６で説明した動作と等価であり、図７に示したデータの配列と同じデータの配列となる。従来は１０２４点のＦＩＦＯバッファを用いて実現している窓掛演算に出力するデータ列の読出を、５１２点のＦＩＦＯバッファで実現することができる。
【００３６】
つまり、窓掛演算を実行する乗算器３０３の各入力端子Ｘ０〜Ｘ１５には図７に示したように、
Ｘ０に最新のＡデータ列Ａ（１）が入力され、
Ｘ１に２番目に古いＢデータ列Ｂ（２）が入力され、
Ｘ２に３番目に古いＡデータ列Ａ（３）が入力され、
Ｘ３に４番目に古いＢデータ列Ｂ（４）が入力され、
・
・
・
Ｘ１５に１６番目に古いＢデータ列Ｂ（１６）が入力される。
【００３７】
乗算器３０３の他の入力端子には係数メモリ２０６から従来と同様の窓掛係数が入力され、その乗算値を累積器３０４で累積することによりＰＣＭ信号を出力することができる。このＰＣＭ信号は図４に示したＤＡ変換器１０３でＤＡ変換され、アナログ信号として出力される。
【００３８】
【発明の効果】
以上説明したように、この発明によれば１チャンネルのデコーダを５１２点のＦＩＦＯバッファ２０３−２で構成することができるから、４チャンネルのデコーダを構成する場合でもＦＩＦＯバッファ２０３−２としては５１２×４＝２０４８点のＦＩＦＯバッファが存在すれば実現することができる。２０４８点のＦＩＦＯバッファを装備しているＤＳＰ（デジタル・シグナル・プロセッサ）は比較的安価に入手することができるから、この発明によれば廉価なＤＳＰを用いて多チャンネル（例えば４チャンネル）の音声復号装置を構成することができる。この結果、小型で廉価な多チャンネル音声復号装置を提供できる利点が得られる。
【図面の簡単な説明】
【図１】この発明の一実施例を説明するためのブロック図。
【図２】この発明の要部の動作を説明するための図。
【図３】この発明の要部の構成を説明するための接続図。
【図４】一般的な多チャンネル音声復号装置の全体の構成を説明するためのブロック図。
【図５】従来の技術を説明するためのブロック図。
【図６】従来の音声復号装置の要部の構成を説明するためのブロック図。
【図７】図６に示した従来の音声信号装置でＦＩＦＯバッファ２０３−１から読み出されるデータの配列を説明するための図。
【図８】図５に示した係数メモリ２０５に格納したＣＯＳ係数の一部を示す図。
【図９】図５に示した係数メモリ２０５に格納したＣＯＳ係数の一部を示す図。
【図１０】図８と図９に示したＣＯＳ係数の意味するところを説明するための図。
【図１１】図８及び図９に示したＣＯＳ係数を利用してマトリックス演算を施したデータ列の様子を説明する図。
【符号の説明】
２００        圧縮データバッファ
２０１        ビットストリーム展開処理器
２０２        マトリクス演算処理器
２０３−１        １０２４点ＦＩＦＯバッファ
２０３−２        ５１２点ＦＩＦＯバッファ
２０４        窓掛け演算処理器
２０５、２０６        係数メモリ
２０７        データ切除器
２０８        データ再生器
３０１、３０２        アドレス選択部
３０３        乗算器
３０４        累積器
３０５        アドレスコントローラ
３０６        付加回路
【図１】
0003682863.tif 000006
【図２】
0003682863.tif 000007
【図３】
0003682863.tif 000008
【図４】
0003682863.tif 000009
【図５】
0003682863.tif 000010
【図６】
0003682863.tif 000011
【図７】
0003682863.tif 000012
【図８】
0003682863.tif 000013
【図９】
0003682863.tif 000014
【図１０】
0003682863.tif 000015
【図１１】
0003682863.tif 000016