従来から、オーディオ信号を高能率符号化するための様々な方式が知られている。例えば、時間領域の信号を周波数領域の信号に変換する時間軸/周波数軸変換を用いてオーディオ信号を変換し、各周波数帯域において人間の聴覚に適応したデータ圧縮を行う方式がある。この時間軸/周波数軸変換の方式としては、例えば、サブバンドフィルタやMDCT(Modified Discrete Cosine Transform)を用いた方式が挙げられる。
なお、サブバンドフィルタ符号化方式およびMDCT符号化方式の概要については、例えば、MARCEL DEKKAR 社(New York)1991年出版、 FURUI&SONDHI編の" Adbances in Speech Signal Processing "の109 ページから140 ページに記載されている。以下では、MDCT符号化方式に基づく時間軸/周波数軸変換を用いたオーディオ符号化方式について説明する。
図11に、このMDCT符号化方式を用いた符号化装置の構成例を示す。この符号化装置における符号化の処理は、以下に説明する通りである。
すなわち、入力端子51を介して入力されたディジタルオーディオ信号は、MDCT回路41により、ある時間間隔毎に時間領域の信号から周波数領域の信号へと変換される。この時間間隔に対応するデータ長を変換ブロック長と呼ぶ。
そして、上記MDCT回路41から出力された周波数領域のオーディオデータは、量子化回路42で量子化(可変長符号化)された後、マルチプレクス回路43においてサンプリング周波数等のヘッダ情報が付加されて、符号化データとして出力端子52より出力される。
上記MDCT回路41で行われる時間軸/周波数軸変換処理は、以下の式(1)で記述される。
ここで、x(k)は入力信号、w(k)は窓関数、y(m)はMDCTされた信号、N は変換ブロック長(samples )、n=N/2 は位相項である。窓関数w(k)は、各変換ブロックの端点で生じることがある不連続な信号を補正するためのものであり、その形状の一例を図12に示す。また、式(1)において、MDCT回路41への入力信号x(k)の数はN であり、一方、m は0からN/2-1 までの値をとるのでMDCTされた信号y(m)の数はN/2 となる。
MDCT処理では、現ブロックの変換後に次のブロックを変換するときには、現ブロックから次のブロックへサンプルをN/2 だけずらした点で変換を行なう。すなわち、サンプルがN/2 点だけオーバーラップする形で各変換ブロックにMDCTを連続的にかけていく。これは、各変換ブロックの境界部分で不連続な信号が発生するのを防ぐためである。この様子が図13に示されている。図13は、変換ブロック長N の値が512の場合の例である。
この図13の例では、オーディオデータは、説明のために256サンプル毎にサブブロック化されている。まず、サブブロック0とサブブロック1とを覆うようにして窓関数がかけられ、MDCTされる。次に、サンプルを256点だけずらし、サブブロック1とサブブロック2とを覆うようにして窓関数がかけられてMDCTされる。このように、図13の例では、サンプルを256点づつオーバーラップしながら512点の各ブロックのMDCTが連続的に施されていく。
MDCT回路41での変換ブロック長が一定の場合には上記のような処理となるが、入力信号の信号特性により変換ブロック長を変化させることで、符号化効率を上げる方式も知られている。このような可変ブロック長のMDCT符号化方式の一例としては、国際標準規格ISO IEC 11172−3の中のMPEGオーディオレイヤIII を挙げることができる。
この可変ブロック長のMDCT方式では、入力信号の特性に合わせて時間的に変換ブロック長を変化させる。すなわち、入力信号の特性が定常的であるときには、長い変換ブロック長を用いて符号化を行なう。これに対して、例えばパルス的な信号が入力されたときなど、入力信号の特性が急に変化するようなときには、短い変換ブロック長を用いて符号化を行なう。
なお、変換ブロック長を変化させる方法は種々あるが、長い変換ブロック長が整数N のときに、短い変換ブロック長を N/L (L =2、3、…)とする方法が一般的によく用いられる。
図11の符号化装置では、変換ブロック長決定回路44において、入力されたオーディオ信号の特性に合わせて変換ブロック長を決定し、決定した変換ブロック長情報をMDCT回路41およびマルチプレクス回路43へ供給する。MDCT回路41では、変換ブロック長決定回路44より入力される変換ブロック長情報に合わせて変換ブロック長を時間的に変化させながらMDCT処理を行う。
一方、上記変換ブロック長決定回路44により決定された変換ブロック長情報がマルチプレクス回路43に送られると、上記マルチプレクス回路43により、変換ブロック長情報と量子化データとが多重化され、符号化データとして出力端子52より出力される。
ところで、入力端子51より入力されるディジタルオーディオ信号としては、複数チャネルのオーディオ信号を扱うことが可能である。例えば、映画等で使用される5チャネルのオーディオ信号を入力した場合には、MDCT回路41、量子化回路42、変換ブロック長決定回路44での処理を5チャネルそれぞれ独立に行なう。そして、マルチプレクス回路43において5チャネル分のデータを多重化した後、符号化データとして出力する。
この場合、各チャネル間の相関を利用して符号化を行うことにより、同一ビットレートにおける音質を向上させることが可能である。そして、そのような処理方式として、差分方式とカップリング方式とが知られている。前者の差分方式は、主に低周波数のサブバンド情報(各変換ブロック内のデータ)に対して用いられ、2つのチャネルのサブバンド情報の和と差とを求めることで、符号化時に一方のチャネルに集中的に情報を配置し、情報量を削減することができるようにした方式である。
一方、後者のカップリング方式は、主に高周波数のサブバンド情報に対して用いられ、実サンプルの値を複数のチャネルで共用するようにすることにより、情報量を削減することができるようにした方式である。すなわち、サブバンド情報の高周波領域では音感としてのパワーが比較的小さく、1つのサブバンド情報を複数チャネルで共用化しても聴感上問題がない。そこで、各チャネルにおける高周波領域のサブバンド情報で類似する部分があれば、その類似部分の情報を共用化することにより情報量を削減しているのである。
次に、従来のMDCT方式によるオーディオ復号装置の一例を図14に示す。
以下、この図14を用いて複数チャネルのオーディオデータを復号する従来の復号技術の説明を行なう。
図14において、符号化されたオーディオデータは、入力端子21を介してデマルチプレクス回路31へと入力される。デマルチプレクス回路31では、入力された符号化データが、多重化された複数チャネルのオーディオデータと変換ブロック長情報とに分離される。
上記デマルチプレクス回路31により出力された各チャネルのオーディオデータは、逆量子化回路32において各チャネル毎に逆量子化処理が施され、その処理結果がIMDCT (Inverse MDCT) 回路33に入力される。ここで、逆量子化処理とは、可変長符号化された各サンプルデータのビット長を求めて、各サンプルデータを識別することを言う。IMDCT回路33には、上記デマルチプレクス回路31で分離された変換ブロック長情報も入力される。
このIMDCT回路33では、入力された変換ブロック長情報をもとに、各チャネル毎にIMDCT処理が行なわれる。上記IMDCT回路33で行われる周波数軸/時間軸変換処理は、以下の式(2)で記述される。
ここで、x(k)はIMDCT処理された信号、y(m)はMDCT処理された信号、N は変換ブロック長、n=N/2 は位相項である。また、IMDCT処理された信号x(k)の数はN であり、MDCT処理された信号y(m)の数はN/2 である。
この式(2)に基づいてIMDCT処理された信号は、ディレイバッファ34に一時的に記憶された後、窓掛け演算回路35により窓掛け演算が施される。窓掛け演算回路35は、MDCT処理のときと同じ形状の窓関数(図12に例示)をかけ、更に現ブロックの前半部分と前ブロックの後半部分とでオーバーラップする部分のデータを加算してオーディオ信号を再構成する。これは、MDCT処理を行う際にN/2 点ずつサンプルをオーバーラップして変換してあるため、加算を行わないとエリアシングが発生してしまうためである。
図15に、このときのオーバーラップの様子を示す。この例では、まず、それぞれ512点のサンプルを有するブロック0とブロック1とで256点だけオーバーラップする部分が加算され、256点のオーディオ信号が再構成される。次に、ブロック1とブロック2とで256点だけオーバーラップする部分が加算され、次の256点のオーディオ信号が再構成される。以下同様にして、256点ずつオーディオ信号が再構成されていく。
ところで、複数チャネルのオーディオデータが符号化されているとき、もし、復号化側における音声出力用のスピーカが、符号化されたチャネル数より少ない数のチャネルしか持たない場合には、ダウンミキシング処理を行うことがある。ダウンミキシング処理とは、複数のチャネルのオーディオデータからそれ以下のチャネル数のオーディオデータをつくり出す処理のことである。この処理の一例は、以下の式(3)で記述される。
ここで、x[ch][n]はチャネルchに対応する入力信号、y[n]はダウンミキシングされた1つのチャネルの信号、α[ch]はチャネルchに対応するダウンミキシングのための係数、M はダウンミキシングする対象チャネル数を示す。
例えば、映画等で使用されるオーディオ信号は、5チャネル分のオーディオデータが符号化されていることがあるが、一般の家庭のオーディオ装置では、2チャネルしか出力できないことが多い。この場合には、時間領域ダウンミキシング回路36で式(3)に示したダウンミキシング処理を2回行い、5チャネルの音声から2チャネルの音声を作りだすようにしている。
勿論、符号化されたチャネル数のオーディオデータを復号化側で全て出力できる場合にはダウンミキシング処理を行う必要はない。この場合には、ダウンミキシング回路36では何の処理も行われず、窓掛け演算回路35により窓掛けが行われたオーディオデータがそのまま出力端子22から出力される。
図16は、図14に示した従来のオーディオ復号装置を、メモリ量も考慮して更に詳しく示したハードウェア構成図である。
この図16は、5チャネルのオーディオデータを扱う例を示すものであり、変換ブロック長を512点とした場合のメモリ量を記述してある。また、上記5つのチャネルは、それぞれ左チャネルLch 、センタチャネルCch 、右チャネルRch 、後方左チャネルLSch、後方右チャネルRSchであるとする。
図16において、デマルチプレクス回路31、逆量子化回路32における処理を経て逆量子化された各チャネルのオーディオデータは、逆量子化バッファ37に格納される。そして、その逆量子化バッファ37に格納された各チャネルの逆量子化データに対して、IMDCT回路(周波数軸/時間軸変換回路)33により式(2)の演算が各チャネルごとに実行され、その演算結果が時間軸情報バッファ38へと格納される。
次に、上記時間軸情報バッファ38に格納された各チャネルのオーディオデータは、窓掛け演算回路(加算/窓掛け回路)35に与えられる。そして、この窓掛け演算回路35において、窓掛け演算が実行された後、現ブロックの前半部分のデータと、ディレイバッファ34に格納されている前ブロックの後半部分のデータとがオーバーラップ加算される。
そして、上記窓掛け演算回路35によりオーバーラップ加算された結果は、PCMバッファ39に格納される。また、現ブロックの後半部分のデータは、窓掛け演算の後で上記ディレイバッファ34に格納され、次のブロックにおけるオーバーラップ加算に利用される。
次に、ダウンミキシング処理が必要な場合には、時間領域ダウンミキシング回路36によりPCMバッファ39から各チャネルのオーディオデータが読み出され、式(3)で示されるダウンミキシング処理が実行される。そして、このようにしてダウンミキシング処理された結果が出力端子22を介して出力される。
以下に、本発明のオーディオ復号装置の実施形態を図面を参照しながら説明する。第1の実施形態のオーディオ復号装置の構成例を図1に示す。
図1において、入力端子21を介して入力された符号化データは、デマルチプレクス回路31で複数チャネルのオーディオデータと変換ブロック長情報とに分離される。このオーディオデータは、周波数領域の複数チャネルのオーディオ信号を表しているので、周波数領域オーディオデータと呼ぶ。
このデマルチプレクス回路31により分離された各チャネルの周波数領域オーディオデータは、逆量子化回路32で各チャネル毎に逆量子化処理が施され、周波数領域ダウンミキシング手段40へと入力される。また、デマルチプレクス回路31で分離された変換ブロック長情報は、周波数軸/時間軸変換手段33へと入力される。
周波数軸/時間軸変換手段33から出力された時間領域の複数チャネルのオーディオ信号を表すオーディオデータ(時間領域オーディオデータ)は、ディレイバッファ34で遅延された後、窓掛け演算回路35に入力されて窓掛け演算が施される。
図2に、図1に示した本実施形態のオーディオ復号装置の周波数領域ダウンミキシング手段40および周波数軸/時間軸変換手段33に相当する部分を、メモリ量も考慮して更に詳しく示す。
この周波数領域ダウンミキシング手段40および周波数軸/時間軸変換手段33内で行われる処理については、図2を用いて以下に説明する。
この図2も図16と同様に、5チャネルのオーディオデータを扱う例を示すものであり、変換ブロック長を512点とした場合のメモリ量を記述してある。また、図2で、Lch は左チャネル、Cch はセンタチャネル、Rch は右チャネル、LSchは後方左チャネル、RSchは後方右チャネル、Ldchはダウンミキシング処理した左チャネル、Rdchはダウンミキシング処理した右チャネルの各チャネル用のデータ領域を示している。
図1の逆量子化回路32で逆量子化されたデータは、図2の第1のメモリ回路111に格納される。次に、第1のメモリ回路111に格納された周波数領域のオーディオデータに対して、周波数領域ダウンミキシング回路101でダウンミキシング処理が行なわれ、その結果が第2のメモリ回路112へと格納される。周波数領域ダウンミキシング回路101内で行われる処理は、以下の式(4)で記述される。
ここで、X[ch][n] はチャネルchに対応する周波数領域の入力信号、Y[n] はダウンミキシングされた周波数領域の信号、α[ch]はチャネルchに対応するダウンミキシングのための係数であり、式(3)に示したものと同じものである。また、M はダウンミキシングする対象チャネル数を示す。
もし、ダウンミキシング処理の対象となる各チャネル間で変換ブロック長が異なる場合には、まず、他のチャネルと異なっているチャネルのデータを周波数軸/時間軸変換回路105で時間領域のデータに一旦変換して第5のメモリ回路115に格納する。その後、時間軸/周波数軸変換回路104で変換ブロック長をそろえる形で周波数領域への変換を再度行なう。このように、周波数領域内でダウンミキシング処理を行なうときには、各チャネルの変換ブロック長をそろえておくようにする。これにより、周波数領域内でのダウンミキシング処理を効率よく行うようにすることができる。
例えば、変換ブロック長としてN とN/2 の2種類を使う符号化を行なっている場合を考える。この場合には、ダウンミキシング処理の対象となる5つのチャネルが、変換ブロック長N とN/2 との2種類を持つ可能性がある。このときは、周波数軸/時間軸変換回路105により変換ブロック長N/2 のデータを2つ分周波数軸/時間軸変換した後で、時間軸/周波数軸変換回路104により変換ブロック長N で時間軸/周波数軸変換を施し、各チャネル間の変換ブロック長をN にそろえるようにする。
次に、周波数軸/時間軸変換回路102により、第2のメモリ回路112に格納されている周波数領域のオーディオデータに対して時間領域への変換処理が行なわれ、その変換結果が第3のメモリ回路113へ格納される。最後に、加算/窓かけ回路103により以下のような処理が行われる。
すなわち、現ブロックの前半部分のデータは、窓かけ処理が施された後、第4のメモリ回路114に蓄積されている前ブロックの後半部分のデータとオーバーラップ加算され、オーディオデータが再構成される。そして、このようにして再構成されたオーディオデータが出力端子22を介して出力される。また、現ブロックの後半部分のデータは、窓かけ処理が行なわれた後、第4のメモリ回路114内に格納される。
図2に示すように、各メモリ回路111〜115の規模は、第1のメモリ回路111が256×5ワード、第2、第4のメモリ回路112、114がそれぞれ256×2ワード、第3のメモリ回路113が512×2ワード、第5のメモリ回路115が512ワードである。つまり、本実施形態では合計で3840ワード分のメモリで済むので、図16の従来例と比較した場合、本実施形態では2560ワードだけメモリ量が少なくて済むことが分かる。したがって、本実施形態によれば、ダウンミキシングが可能なオーディオ復号装置を安価に構成することができる。
図2に示した周波数領域ダウンミキシング手段および周波数軸/時間軸変換手段での処理では、各チャネル間における変換ブロック長の不一致を周波数軸/時間軸変換、時間軸/周波数軸変換を施すことで修正している。また、可変ブロック長を有する時間軸/周波数軸変換を用いた符号化方式では、ほとんどのブロックで周波数分解能がよく符号化効率の高い長い変換ブロック長が選択され、短い変換ブロック長が選択されるのは僅かなブロックだけである。このため、ダウンミキシング処理の際に変換ブロック長の不一致が生じることも僅かである。
なお、復号の処理量については、チャネル間で変換ブロック長の不一致が生じたブロックで局所的に処理量が増えるが、その他のほとんどのブロックでは逆に処理量が減るため、全体的には処理量を従来よりも20%程度減らすことが可能である。
また、更に安価なオーディオ復号装置を構成するためには、図2の周波数軸/時間軸変換回路105、第5のメモリ回路115および時間軸/周波数軸変換回路104を省き、各チャネル間で変換ブロック長が一致しなかった場合には、不一致のチャネルをダウンミキシング処理の対象から外すような処理を行なうようにすれば良い。この場合でも、ダウンミキシング専用のオーディオ復号装置を安価に構成することができ、しかも、その割りには十分な音質を得ることができ、回路規模と復号処理量とを更に小さくすることができる。
なお、本実施形態では、時間軸/周波数軸変換としてMDCTを例に挙げて説明してきたが、以上の議論は他の方式の時間軸/周波数軸変換を用いた場合にも容易に適応することが可能である。
以上説明したように本実施形態によれば、時間軸/周波数軸変換を用いて周波数領域で符号化された複数チャネルのオーディオデータを復号するオーディオ復号装置において、周波数領域でダウンミキシング処理を行なった後で周波数軸/時間軸変換処理を行うようにしたので、ダウンミキシング処理より後の周波数軸/時間軸変換処理で扱うデータのチャネル数を上記ダウンミキシング処理よって少なくすることができ、上記周波数軸/時間軸変換処理でデータを一時格納しておくために必要なメモリ回路の数を減らすことができる。また、上記周波数軸/時間軸変換処理で扱うデータのチャネル数が少なくて済むので、復号の処理量も全体として減らすことができ、これにより、音質を大幅に低下させることなくダウンミキシングが可能で安価なオーディオ復号装置を実現することができる。
また、本実施形態の他の特徴によれば、上記周波数領域ダウンミキシング手段によって複数チャネルのオーディオデータを周波数領域でダウンミキシングする際に対象となる各チャネル間で時間軸/周波数軸変換処理の変換ブロック長が異なる場合に、全てのチャネルの変換ブロック長を合わせた後でダウンミキシング処理を行なうようにしたので、周波数領域内でのダウンミキシング処理を効率よく行うようにすることができる。
また、本実施形態のその他の特徴によれば、各チャネル間で変換ブロック長が一致しなかった場合には、不一致のチャネルをダウンミキシング処理の対象から外すようにしたので、装置構成を簡素化することができるとともに、ダウンミキシングが可能で安価なオーディオ復号装置を構成した割りには十分な音質を得ることができ、音質をそれほど低下させることなく回路規模と復号処理量とを更に小さくすることができる。
次に、本発明によるオーディオ復号装置の第2の実施形態を図面に基づいて詳細に説明する。
図3は、第2の実施形態によるオーディオ復号装置のハードウェア構成例を示す図であり、従来例として示した図16の構成を変形したものである。
なお、図16ではデマルチプレクス回路31と逆量子化回路32とに分けて示していたのを、図3ではこれらを1つにまとめてDMUX1として示している。すなわち、本実施形態のDMUX1は、多重化データの分離処理と分離した各チャネルのオーディオデータの逆量子化処理とを同時に行っている。また、この図3も図16と同様に、5チャネルのオーディオデータを扱う例を示したものであり、変換ブロック長を512点とした場合のメモリ量を示している。
この図3に示す第2の実施形態によるオーディオ復号装置は、上記DMUX1とIMDCT回路2とを協調動作させることにより、バッファメモリの容量を削減することができるようにしたものである。
すなわち、図16の従来例では、IMDCT回路33の前後にそれぞれ256×5ワード分のバッファメモリが2つ備えられていたが、本実施形態では、上記DMUX1とIMDCT回路2とでパイプライン処理を行ってワークバッファ3を使いまわすようにすることにより、ワークバッファ3のメモリ容量が256×3ワードで済むようにしている。なお、パイプライン処理とは、複数の処理において同一のメモリを共通して利用し合うことを言う。
このことを、図4および図5を用いて以下に詳しく説明する。すなわち、図16に示した従来例では、図4に示すように、まず、左チャネルLch 、センタチャネルCch 、右チャネルRch 、後方左チャネルLSch、後方右チャネルRSchの5つのチャネルについて逆量子化処理が行われ、それにより得られる各チャネルの逆量子化データが逆量子化バッファ37に格納される。
上記逆量子化バッファ37に5チャネル分の逆量子化データが格納されたら、次に、IMDCT回路33により、その5チャネル分の逆量子化データに対して周波数軸/時間軸変換処理が各チャネルごとに行われ、それにより得られる時間領域のオーディオデータが各チャネルごとに時間軸情報バッファ38に格納される。したがって従来は、全部で10セットのバッファメモリが必要であった。
これに対して本実施形態では、図5に示すように、DMUX1によりまず左チャネルLch のオーディオデータが逆量子化されてワークバッファ3内の第1のバッファ#1に格納されると、その直後に、その第1のバッファ#1に格納された逆量子化データがIMDCT回路2により周波数軸/時間軸変換される。その間、DMUX1は、次のセンタチャネルCch について逆量子化処理を行い、それにより得られる逆量子化データを第2のバッファ#2に格納する。
また、IMDCT回路2は、上記第1のバッファ#1に格納された逆量子化データに対する周波数軸/時間軸変換処理が終わったら直ぐに、次の第2のバッファ#2に格納された逆量子化データに対して周波数軸/時間軸変換処理を行う。その間、DMUX1は、次の右チャネルRch について逆量子化処理を行い、それにより得られる逆量子化データを再び第1のバッファ#1に格納する。
このようにしてDMUX1とIMDCT回路2とをパイプライン動作させることにより、そのパイプライン処理で使用するワークバッファ3を、基本的には第1のバッファ#1と第2のバッファ#2だけ設ければ済むようにしている。
なお、本実施形態では、図3に示したように、ワークバッファ3の中に、上記第1のバッファ#1および第2のバッファ#2に加えて第3のバッファ#3を設けている。この第3のバッファ#3は、従来例のところで説明したカップリング用のデータを格納するために用いるものである。
すなわち、カップリング方式では、各チャネルにおける高周波領域のオーディオデータで類似する部分の情報を共用化するようにしているので、その共用化している部分のデータを保持しておくためのバッファメモリが別に必要になるのである。ここでは、第3のバッファ#3のメモリ容量を256ワードとしたが、共用化される最大限の容量(符号化方式によって定まる容量。本実施形態では219ワードとした)を少なくとも備えていれば良い。
このように、本実施形態では、DMUX1における多重化データの分離処理および逆量子化処理と、IMDCT回路2における周波数軸/時間軸変換処理とで使用するバッファメモリは、ワークバッファ3内の第1〜第3のバッファ#1〜#3の3セットで済むようになり、そのメモリ容量は256×3ワードで済む。したがって、同じ処理に256×10ワードのメモリ容量が必要であった従来例(図16)に比べて、全体のメモリ量を大幅に削減することができる。
次に、本発明の第3の実施形態について説明する。図6は、この第3の実施形態によるオーディオ復号装置のハードウェア構成例を示す図であり、図3に示した第2の実施形態による構成を更に変形したものである。
この図6に示すオーディオ復号装置は、IMDCT回路2により周波数軸/時間軸変換されたオーディオデータのコサイン関数の対称性を利用して、時間情報に変換されたオーディオデータの256点のサンプル値のうち、オリジナルな値のみをディレイバッファ9に格納するようにすることにより、バッファメモリの容量を更に削減することができるようにしたものである。
このことを図7、図13、図15を用いて以下に詳しく説明する。本実施形態における変換ブロック長は512点であり、時間領域に変換された512点のオーディオデータは、次に窓掛け演算が行われるようになっているが、図13に示したように、符号化時において窓掛けは、サンプル値を256点ずつずらしてオーバーラップさせながら行うようになっている。つまり、上記512点のサンプル値は、256点のサンプル値が2回使いまわされるようになっている。
そこで、第3の実施形態では、上記256点のサンプル値の使いまわしの仕方を工夫することにより、ディレイバッファ9のメモリ容量を削減できるようにしている。すなわち、図7に示すように、オリジナルな256点のサンプル値(1)、(2)の部分(図7において丸付き数字で表されている部分)を変換ブロック長の真ん中に配置する。そして、窓掛け演算を行う前に、コサイン関数の対称性を使用して上記(1)、(2)の部分のサンプル値と対称な(1)′、(2)′の部分(図7において丸付き数字の右上に「′」が付されている部分)のサンプル値を求めることにより、512点のサンプル値を得るようにしている。
この場合、図15を用いて説明したように、上述のようにして求められる512点のサンプル値のうち、前半部分Aに属する256点のサンプル値は、図6の窓掛け演算回路8におけるオーバーラップ加算にそのまま用いられるのに対して、後半部分Bに属する256点のサンプル値は、所定時間の遅延を受けてからオーバーラップ加算に利用される。つまり、所定時間の遅延を受けるのは、後半部分Bに属する256点のサンプル値だけである。
ここで、後半部分Bに属する256点のサンプル値のうち、(2)′の部分のサンプル値はオリジナルな(2)の部分のサンプル値から計算により求められる。したがって、(2)の部分の128点のサンプル値をディレイバッファ9に格納して所定時間だけ遅延させるようにすれば、512点のサンプル値を再現して窓掛け演算を行うことができるようになる。
なお、図6に示した窓掛け演算回路8を、上記(1)、(2)の部分のサンプル値から対称性を有する(1)′、(2)′の部分のサンプル値を求めた後で窓掛けを行うようにすれば、実用上問題はない。
以上のように、第3の実施形態では、周波数軸/時間軸変換されたオーディオデータのオリジナルな部分である128点のサンプル値をディレイバッファ9に格納すれば良い。これにより、図3の第2の実施形態では、ディレイバッファ5は256×5ワード分のメモリ容量が必要であったのに対して、第3の実施形態では、128×5ワード分のメモリ容量で済むので、オーディオ復号装置全体のメモリ量を更に削減することができる。
次に、本発明の第4の実施形態について説明する。図8は、この第4の実施形態によるオーディオ復号装置のハードウェア構成例を示す図であり、図6に示した第3の実施形態による構成を更に変形したものである。
この図8に示すオーディオ復号装置は、窓掛け演算回路8により窓かけが施されて生成された5チャネルのPCMデータを直ちにダウンミックス処理し、ダウンミックス後の結果のみをPCMバッファ10に格納するようにすることにより、バッファメモリの容量を更に削減することができるようにしたものである。
すなわち、図8のDMUX1およびIMDCT回路2ではパイプライン的に処理を行っているので、それにより得られるオーディオデータを利用して窓掛けを行う窓掛け演算回路8では、5チャネル分のPCMデータが間欠的に生成される。この場合、上述した第2および第3の実施形態では、その5チャネル分のPCMデータをそのままPCMバッファ6に蓄えた後で、ダウンミキシング回路7により2チャネルにダウンミックスして出力するようになっていた。
これに対して、第4の実施形態では、窓掛け演算回路8により生成された5チャネルのPCMデータを直ぐにダウンミックスして2チャネルにする。そして、そのダウンミックスした2チャネルのみのPCMデータをPCMバッファ10に格納するようにしている。
これにより、第2および第3の実施形態では、PCMバッファ6は256×10ワード分のメモリ容量が必要であったのに対して、第4の実施形態では、PCMバッファ10は256×4ワード分のメモリ容量で済み、オーディオ復号装置全体のメモリ量を更に削減することができる。
なお、図8において、ダウンミキシング回路7とPCMバッファ10との間が両矢印で結ばれているのは、以下の理由による。すなわち、ダウンミックス処理は、5チャネルのPCMデータが全て揃ってから一気に行うのではなく、各チャネルのPCMデータを少しずつ重ね書きするようにして行っている。
したがって、PCMバッファ10に一度格納されたデータをダウンミキシング回路7が読み込んで、その読み込んだ値にダウンミックスした値を加算し、その加算した値をPCMバッファ10内の同じ記憶領域に再び記憶するようにするという処理が必要となる。図8の両矢印は、このような重ね書きの処理を示しているのである。
次に、本発明の第5の実施形態について説明する。図9は、この第5の実施形態によるオーディオ復号装置のハードウェア構成例を示す図であり、図8に示した第4の実施形態による構成を更に変形したものである。
上記第4の実施形態では、ダウンミックス処理を行った後に、それにより得られるチャネル数の少ないPCMデータをPCMバッファ10に格納するようにすることにより、PCMバッファ10のメモリ量をダウンミックスした分だけ削減することができるようにしていた。これと同じようなことが、ディレイバッファ9との関係においても言える。
そこで、図9に示す第5の実施形態では、次のように処理を行うようにしている。すなわち、IMDCT回路2により時間領域の情報に変換されたオーディオデータを、遅延を受けない部分のデータ(図7の前半部分Aに属する256点のサンプル値)と遅延を受ける部分のデータ(図7の後半部分Bに属する256点のサンプル値)とに分ける。
そして、遅延を受けない側では、通常通り、第1の窓掛け演算回路11で窓掛け演算を行った後、第1のダウンミキシング回路12でダウンミックス処理を行う。なお、上記第1の窓掛け演算回路11では、窓掛けを行った後のオーバーラップ加算は行っていない。
一方、遅延を受ける側では、IMDCT回路2により周波数軸/時間軸変換されたオーディオデータを第2のダウンミキシング回路13で直ちにダウンミックス処理し、そのダウンミックス処理後のチャネル数の少ないオーディオデータのみをディレイバッファ14に格納するようにする。
上記ディレイバッファ14を使って第2のダウンミキシング回路13によりダウンミックスされた2チャネルのオーディオデータは、次に第2の窓掛け演算回路15に与えられ、ここで窓掛け演算が施される。そして、これにより得られる256点のサンプル値から成るPCMデータと、上記第1の窓掛け演算回路11での窓掛け演算により得られる256点のサンプル値から成るPCMデータとがオーバーラップ加算され、PCMバッファ10に格納される。
このように、第4の実施形態では、ディレイバッファ9は128×5ワード分のメモリ容量が必要であったのに対して、第5の実施形態では、ディレイバッファ14は128×2ワード分のメモリ容量で済み、オーディオ復号装置全体のメモリ量を更に削減することができる。
図10は、図9に示した第5の実施形態によるオーディオ復号装置のハードウェア構成を、処理の流れを意識して書き換えた機能ブロック図である。
以下、この図9および図10に基づいて第5の実施形態によるオーディオ復号装置の動作を簡単に説明する。
図10のDMUX1で各チャネルのオーディオデータに分離されるとともに、各チャネルごとに逆量子化されたオーディオデータは、図9のワークバッファ3に一時的に格納される。
ここで、図10のDMUX1と、IMDCT回路2、出力セレクタ回路16、第1の窓掛け演算回路11、第1のダウンミキシング回路12および第2のダウンミキシング回路13とを協調動作させると、ワークバッファ3内の第1および第2のバッファ#1、#2を用いるだけで、処理時間を変更せずに5チャネル分のデコード処理をパイプライン動作させることができる。
また、カップリング方式を用いた場合でも、上記した2つのバッファ#1、#2に第3のバッファ#3を加えた3つのバッファを用いるだけで、5チャネル分のデコード処理をパイプライン動作させることができる。
上記IMDCT回路2により周波数軸/時間軸変換されたオーディオデータは、出力セレクタ回路16に送られ、遅延させる必要のないオーディオデータと遅延させる必要のあるオーディオデータとに分けられる。なお、遅延させる必要のないオーディオデータは、次の式(5)で表される。
ただし、この式(5)において、x(k)はIMDCT処理された信号、y(m)はMDCT処理された信号、N は変換ブロック長、n=N/2 は位相項である。また、IMDCT処理された信号x(k)の数はN であり、MDCT処理された信号y(m)の数はN/2 である。
この式(5)において、k= N/4〜N/2-1 については、j=N/2-k-1 とすると、コサイン関数の対称性を利用して次の式(6)のように変形することができる。この式(6)から明らかなように、本当にオリジナルな値は、k= 0〜N/4-1 の部分の値だけである。
また、遅延させる必要のあるオーディオデータは、次の式(7)で表される。これについても同様に式を変形すると、k= N/2〜3N/4-1 の部分だけがオリジナルな値である。したがって、ディレイバッファ14には、このk=N/2 〜 3N/4 -1のオリジナルな部分のデータのみを一時的に格納すれば良いことになる。
上記式(5)で示される遅延の必要のないオーディオデータは、第1の窓掛け演算回路11に送られる。そして、この第1の窓掛け演算回路11において、上記式(5)で示される値x(k)に窓関数がかけられた後、第1のダウンミキシング回路12でダウンミックス処理が施されて、それにより生成されるPCMデータがPCMバッファ10に格納される。
次に示す式(8)は、上記第1の窓掛け演算回路11および第1のダウンミキシング回
路12における処理の内容を示す式である。なお、この式(8)において、sch はダウンミックス前のチャネル番号を示し、dch はダウンミックス後のチャネル番号を示している。
また、上記式(7)で示される遅延の必要のあるオーディオデータは、第2のダウンミキシング回路13に送られる。そして、この第2のダウンミキシング回路13でダウンミックス処理(各チャネルデータの重ね書きの処理)が行われることにより、5チャネルから2チャネルにチャネル数が減らされて、ディレイバッファ14に格納される。この第2のダウンミキシング回路13における処理の内容を、次の式(9)に示す。
上記ディレイバッファ14に一時的に格納されたオーディオデータは、次に出力するPCMデータを生成するために使用される。そのための演算処理は、第2のダウンミキシング回路13におけるダウンミックス処理が終わって、最終的に2チャネルのオーディオデータがディレイバッファ14に格納された直後に第2の窓掛け演算回路15により行われる。この第2の窓掛け演算回路15における処理の演算式を、次の式(10)に示す。
以上の処理により生成されたPCMデータは、PCMバッファ10に一時的に格納された後、出力端子22を介して出力される。図9の例では、PCMバッファ10のメモリサイズは256×4ワードと示しているが、これはPCMデータを一定レートで出力するようにするために、PCMバッファ10を演算用とデータ出力用とでパイプライン的に用いているためである。よって、一定レートで出力することを考慮しない場合は、256×2ワードのメモリ容量でよい。
以上第2〜第5の実施形態について詳しく説明してきたが、それぞれの実施形態においてどの程度バッファメモリの容量を削減することができたかを明確にするために、次の表1にまとめて示しておく。
なお、以上の説明では、第2の実施形態から第5の実施形態へと構成要件を順に限定していく場合について説明したが、各実施形態で説明した技術はそれぞれ独立に適用することが可能である。
第2の実施形態によれば、上述したように、各チャネルごとの逆量子化処理と各チャネルごとの周波数軸/時間軸変換処理とをワークバッファを使ってパイプライン処理で行うようにしたので、逆量子化手段と周波数軸/時間軸変換手段とでパイプライン処理を行う際に1つのワークバッファを共用化することができるようになるとともに、そのワークバッファ内の同じバッファ領域を何回も使いまわしすることができるようになり、音質をほとんど損なうことなく、一連の復号処理を行うために必要なバッファメモリのメモリ容量を減らすことができる。
第3の実施形態によれば、時間領域の情報に変換されたオーディオデータが持つコサイン関数の対称性を利用して、上記対称性を有する1組のデータ値のうち一方のデータ値から他方のデータ値を求めて窓掛け演算を行うようにしたので、上記窓掛け演算を行う際に
使用するデータ遅延用のバッファメモリには、上記対称性を有する1組のデータ値のうち一方のデータ値だけを格納すれば良くなり、上記データ遅延用のバッファメモリの容量を削減することができる。これにより、音質をほとんど損なうことなく、一連の復号処理を行うために必要なバッファメモリのメモリ容量を減らすことができる。
第4の実施形態によれば、窓掛け手段により窓かけ演算が行われて生成された複数チャネルのオーディオデータを直ちにダウンミックスし、ダウンミックス後の結果のみをデータ出力用のバッファメモリに格納するようにしたので、ダウンミキシング前のチャネル数の多いオーディオデータをそのままバッファメモリに格納していた従来例に比べて、ダウンミキシングにより少なくされたチャネル数の分だけデータ出力用のバッファメモリを用意すれば済むようになり、音質をほとんど損なうことなく、一連の復号処理を行うために必要なバッファメモリのメモリ容量を減らすことができる。
第5の実施形態によれば、周波数軸/時間軸変換された複数チャネルのオーディオデータを直ちにダウンミックスし、ダウンミックス後の結果のみをデータ遅延用のバッファメモリに格納するようにしたので、ダウンミキシング前のチャネル数の多いオーディオデータをそのままデータ遅延用のバッファメモリに格納していた従来例に比べて、ダウンミキシングにより少なくされたチャネル数の分だけデータ遅延用のバッファメモリを用意すれば済むようになり、音質をほとんど損なうことなく、一連の復号処理を行うために必要なバッファメモリのメモリ容量を減らすことができる。