図2は、本発明を適用した情報処理システムの一実施の形態の構成例を示している。
情報処理装置21と22は、各種のプログラムを実行することで、各種の処理を行うようになっている。また、情報処理装置21と22は、インターネットなどのネットワーク23に接続されており、そのネットワーク23上の図示せぬサーバなどとの間で通信を行うことができるようになっている。さらに、情報処理装置21と22は、それぞれの間で、ネットワーク23を介して通信を行うことができるようになっている。
なお、情報処理装置21および22は、例えば、汎用のコンピュータや、携帯電話機、携帯用のゲーム機、電子手帳その他のPDA(Personal Digital Assistant)などで構成することができる。
図3は、情報処理装置21および22が、例えば、汎用のコンピュータで構成される場合のハードウェア構成例を示している。
情報処理装置21および22としてのコンピュータは、CPU(Central Processing Unit)32を内蔵している。CPU32には、バス31を介して、入出力インタフェース40が接続されており、CPU32は、入出力インタフェース40を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部37が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)33に格納されているプログラムを実行する。あるいは、また、CPU32は、ハードディスク35に格納されているプログラム、衛星若しくはネットワークから転送され、通信部38で受信されてハードディスク35にインストールされたプログラム、またはドライブ39に装着されたリムーバブル記録媒体41から読み出されてハードディスク35にインストールされたプログラムを、RAM(Random Access Memory)34にロードして実行する。これにより、CPU32は、後述するフローチャートにしたがった処理、あるいは後述するブロック図の構成により行われる処理を行う。そして、CPU32は、その処理結果を、必要に応じて、例えば、入出力インタフェース40を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部36から出力、あるいは、通信部38から送信、さらには、ハードディスク35に記録等させる。
なお、情報処理装置21および22としてのコンピュータが各種の処理を行うためのプログラムは、そのコンピュータに内蔵されている記録媒体としてのハードディスク35やROM33に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体41に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体41は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体41からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部38で受信し、内蔵するハードディスク35にインストールすることができる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、ここでは、情報処理装置21および22を、コンピュータで構成し、後述する各種の処理をソフトウェアにより行うこととするが、その処理は、専用のハードウェアによって行うようにすることも可能である。
情報処理装置21および22においては、例えば、オーディオデータを符号化して符号化データとし、その符号化データをオーディオデータに復号するコーデックシステムのプログラムがインストールされており、CPU32が、そのコーデックシステムのプログラムを実行することにより、情報処理装置21および22は、コーデックシステムとして機能する。
図4は、情報処理装置21および22がプログラムを実行することにより実現されるコーデックシステムの機能的構成例を示している。
コーデックシステムは、符号化装置61、復号装置62、および制御部63から構成され、オーディオデータを符号化して符号化データとし、また、符号化データをオーディオデータに復号する。
即ち、符号化装置61には、オーディオデータであるPCMデータが供給されるようになっている。符号化装置61は、そこに供給される所定のサンプル数NのPCMデータを、1フレームのデータとして、フレーム単位のPCMデータを順次符号化し、その符号化データを、例えば、光ディスクや、光磁気ディスク、磁気ディスク、半導体メモリなどの記録媒体64に記録し、あるいは、例えば、インターネットその他の無線または有線の伝送媒体65を介して送信(伝送)する。なお、記録媒体64は、例えば、図3のハードディスク35やリムーバブル記録媒体41に相当し、伝送媒体65は、例えば、図2のネットワーク23に相当する。
復号装置62は、記録媒体64から読み出された符号化データ、または伝送媒体65を介して送信されてきた符号化データを受信する。さらに、復号装置62は、符号化データをフレーム単位で復号処理することにより、PCMデータであるオーディオデータに復号して出力する。
制御部63は、符号化装置61と復号装置62の処理を制御する。
ここで、図4のコーデックシステムは、例えば、オーディオデータを符号化データに符号化して記録媒体64に記録し、あるいは、記録媒体64から符号化データを読み出し、オーディオデータに復号して再生するオーディオレコーダ/プレーヤなどのアプリケーションプログラムにおいて、オーディオデータの符号化や復号に用いることができる。さらに、図4のコーデックシステムは、例えば、オーディオデータを符号化データに符号化してインターネットなどの伝送媒体65を介して伝送するとともに、伝送媒体65から伝送されてくる符号化データを受信し、オーディオデータに復号して出力するIP電話システム(インターネット電話)などのアプリケーションプログラムにおいて、やはり、オーディオデータの符号化や復号に用いることができる。
図4において、符号化装置61は、補間部51、セレクタ52、信号記憶装置53、および符号化フレーム処理部54で構成される。
補間部51は、符号化装置61に供給される符号化対象のPCMデータの系列を受信し、制御部63の制御にしたがい、そのPCMデータの系列に対して、例えば補間処理を行うことによって、オーバーサンプリング処理を施し、元のPCMデータのR倍のサンプル数のオーバーサンプリング後のデータを、信号記憶装置53に出力する。なお、本実施の形態では、Rは、例えば、1より大の整数である。
信号記憶装置53は、例えば、FIFO(First In First Out)メモリやリングバッファなどで構成され、符号化装置61に供給されるオーバーサンプリング後のPCMデータを順次記憶する。なお、信号記憶装置53は、1フレーム以上の記憶容量を有し、その記憶容量分のデータを記憶した後は、その後に供給されるデータを、最も古いデータに上書きする形で記憶する。
符号化フレーム処理部54は、図1の符号化フレーム処理部12と同様に、信号記憶装置53に記憶されたデータのうち、まだ処理していない、最も古い所定のサンプル数Nのデータを1フレームとして、その1フレームのデータに対して、量子化のための信号分析を行なう。例えば、DFT(Discrete Fourier Transform)またはFFT(Fast Fourier Transform)や、DCT(Discrete Cosine Transform),MDCT(Modified DCT)などの直交変換処理を施し、さらに、その結果得られる直交変換データを量子化等して符号化し、符号化データを出力する。この符号化フレーム処理部54が出力する符号化データが、記録媒体64に記録され、あるいは伝送媒体65を介して伝送される。
なお、符号化フレーム処理部54は、制御部63の制御の下、オーバーサンプリング後
のデータを対象として処理を行う場合には、そのオーバーサンプリング後のデータとなる
前の元のPCMデータを対象として処理を行う場合よりも高い頻度、即ち、R倍の頻度で処理を行う。
復号フレーム処理部55は、記録媒体64から読み出された符号化データ、あるいは伝送媒体65を介して伝送されてくる符号化データを、図1の復号フレーム処理部13における場合と同様に逆量子化等し、復号フレーム処理部55は、復号処理の結果として得られるデータを、出力データとして間引き部56とセレクタ57に供給する。
なお、復号フレーム処理部55は、符号化フレーム処理部54が行う信号分析処理に対応する逆処理を施す。即ち、符号化フレーム処理部54が、信号分析処理として直交変換処理を行い、例えばMDCT処理を用いるのであれば、復号フレーム処理部55は、逆直交変換処理として逆MDCT処理を行う。また、通信等リアルタイム処理が必要とされる状況において、復号フレーム処理部55は、制御部63の制御の下、オーバーサンプリング後のデータから得られた符号化データを対象として処理を行う場合には、そのオーバーサンプリング後のデータとなる前の元のPCMデータから得られた符号化データを対象として行う場合に比べ、R倍の
頻度で処理を行う必要がある。
間引き部56は、制御部63の制御にしたがい、復号フレーム処理部55から供給される出力データに対して、間引き処理を施し、元の出力データの1/R倍のサンプル数のデータである間引きデータを、復号済のPCMデータとして出力する。
次に、図5は、R倍のオーバーサンプリングを行う図4の補間部51の第1の構成例を示している。
図5においては、補間部51は、そこに供給されるPCMデータに対して0を補間し、その補間結果を、オーバーサンプリング後のデータとして出力する。
即ち、図5では、補間部51は、セレクタ71から構成される。セレクタ71には、符号化対象のPCMデータと、値が0のデータ(以下、適宜、0値という)とが供給されるようになっており、セレクタ71は、制御部63の制御の下、PCMデータまたは0値を選択し、オーバーサンプリング後のデータとして出力する。即ち、セレクタ71は、そこに供給されるPCMデータを選択し、その後、R−1個の0値を選択する。さらに、セレクタ71は、その次に供給されるPCMデータを選択し、その後、R−1個の0値を選択し、以下、同様の処理を行うことで、そこに供給されるPCMデータの隣接するサンプルどうしの間に、R−1個の0値を挿入したPCMデータを、オーバーサンプリング後のデータとして出力する。
従って、例えば、R=2の場合は、図5の補間部51は、図6に示すオーバーサンプリング後のデータを出力する。
即ち、図6は、R=2の場合に図5の補間部51が出力するオーバーサンプリング後のデータを示している。
R=2の場合、図5の補間部51は、図6において左側に示すPCMデータに対して、その隣接するサンプルどうしの間に、1つの0値を挿入する。その結果、図5の補間部51からは、図6において右側に示すオーバーサンプリング後のデータ、即ち、図6において左側に示すPCMデータの隣接するサンプルどうしの間に、1つの0値が挿入されたPCMデータが出力される。
なお、図6においては、左から右方向を時間方向とするとともに、上方向をPCMデータのサンプル値(レベル)として、PCMデータ(オーバーサンプリング後のデータ)を示してある。後述する図8においても、同様である。
次に、図7は、R倍のオーバーサンプリングを行う図4の補間部51の第2の構成例を示している。
図7においては、補間部51は、そこに供給されるPCMデータに対して補間するサンプルのサンプル値を演算し、そのサンプル値のサンプルを、元のPCMデータに対して補間して、その補間結果を、オーバーサンプリング後のデータとして出力する。
即ち、図7では、補間部51は、ラッチ回路81および82、補間値演算部83、並びにセレクタ84から構成されている。
ラッチ回路81は、補間部51に供給されるPCMデータのサンプルを順次ラッチし、ラッチ回路82と補間値演算部83に供給する。ラッチ回路82は、ラッチ回路82から供給されるPCMデータのサンプルを順次ラッチする。即ち、これにより、ラッチ回路81において、PCMデータのあるサンプルがラッチされているとき、ラッチ回路82において、そのサンプルの1サンプル前のサンプルがラッチされる。
補間値演算部83は、ラッチ回路81と82でラッチされているPCMデータのサンプル、即ち、隣接する2つのサンプルの間を、例えば線形補間するR−1サンプルのサンプル値を演算し、セレクタ84に供給する。ここで、PCMデータの隣接する2つのサンプルの間を補間する値の方法は、線形補間に限定されるものではない。
セレクタ84は、制御部63の制御の下、ラッチ回路82でラッチされているPCMデータのサンプル、または補間値演算部83から供給されるR−1サンプルを選択し、オーバーサンプリング後のデータとして出力する。即ち、セレクタ84は、ラッチ回路82で新たなPCMデータのサンプルがラッチされたとき、そのサンプルを選択し、その後、補間値演算部83から供給されるR−1サンプルを選択することを繰り返すことで、補間部51に供給されるPCMデータの隣接するサンプルどうしの間に、R−1個のサンプルを挿入したPCMデータを、オーバーサンプリング後のデータとして出力する。
従って、例えば、R=2の場合は、図7の補間部51は、図8に示すオーバーサンプリング後のデータを出力する。
即ち、図8は、R=2の場合に図7の補間部51が出力するオーバーサンプリング後の
データを示している。
R=2の場合、図7の補間部51は、図8において左側に示すPCMデータに対して、その隣接するサンプルどうしの間を線形補間する値(以下、適宜、補間値という)を挿入する。その結果、図7の補間部51からは、図8において右側に示すオーバーサンプリング後のデータ、即ち、図8において左側に示すPCMデータの隣接するサンプルどうしの間に、1つの補間値が挿入されたPCMデータが出
力される。
次に、図9は、図4の符号化フレーム処理部54の構成例を示している。
図9において、符号化フレーム処理部54は、直交変換部91と量子化/符号化部92で構成されている。直交変換部91は、信号記憶装置53から1フレームのPCMデータを読み出して、直交変換し、その結果得られる直交変換データを、量子化/符号化部92に供給する。量子化/符号化部92は、直交変換部91から供給される直交変換データを量子化等し、その結果得られるデータを、符号化データとして出力する。
なお、直交変換部91と量子化/符号化部92は、制御部63から供給される、フレーム処理頻度制御信号に応じた頻度で、処理を行う。
即ち、符号化フレーム処理部54が、補間が行われていないPCMデータを対象として処理を行う場合、制御部63は、所定の基準の頻度(フレームレート)で処理を行う動作モードである通常モードを指示する処理頻度制御信号を、直交変換部91と量子化/符号化部92に供給し、この場合、直交変換部91と量子化/符号化部92は、通常モードで処理を行う。
一方、符号化フレーム処理部54が、オーバーサンプリング後のデータを対象として処理を行う場合、制御部63は、所定の基準の処理頻度のR倍の頻度で処理を行う動作モードである高頻度モードを指示する処理頻度制御信号を、直交変換部91と量子化/符号化部92に供給し、この場合、直交変換部91と量子化/符号化部92は、高頻度モードで処理を行う。
次に、符号化フレーム処理部54(ひいては、復号フレーム処理部55)において処理の対象となるPCMデータについて説明する。
なお、符号化対象のPCMデータを、オーバーサンプリング後のデータであるPCMデータと区別するために、以下、適宜、元のPCMデータという。
符号化フレーム処理部54において、NサンプルのPCMデータを1フレームとして直交変換処理を行う場合、1フレームの元のPCMデータのスペクトルは、例えば、図10に示すようになる。なお、ここでは、PCMデータのスペクトルとして、例えば、そのPCMデータのFFT結果を採用することとする。
即ち、図10は、横軸を角周波数とするとともに、縦軸をPCMデータのスペクトルのスペクトル成分(周波数成分)として、元のPCMデータのFFT結果としてのスペクトルを表している。なお、PCMデータの各スペクトル成分は、離散的な角周波数ごとに現れるが、図10では、図を簡略化するために、スペクトルを連続波形として表してある。後述する図11乃至図14、図20、および図22においても同様である。
Nサンプルの元のPCMデータをFFTすると、角周波数0乃至πの範囲において等間隔のN個の角周波数のスペクトル成分が得られる。図10において、角周波数π/2は、元のPCMデータのサンプリング周波数をFs[Hz]とすると、Fs/2[Hz](ナイキスト周波数)に相当し、角周波数π/2乃至πの範囲においては、角周波数0乃至π/2の範囲のスペクトル成分の折り返し成分、即ち、いわゆるエリアシング(aliasing)成分(ミラーイメージ)(スペクトルイメージ)が現れる。
符号化フレーム処理部54において、元のPCMデータを処理する場合には、図10に示す角周波数0乃至π/2の範囲のスペクトル成分を有するPCMデータを処理することになる。
次に、図11は、Nサンプルの元のPCMデータの隣接するサンプルどうしの間に、R−1個の0値を補間するR倍のオーバーサンプリング(以下、適宜、0詰め型オーバーサンプリングという)を行って得られるN×RサンプルのPCMデータであるオーバーサンプリング後のデータのFFT結果としてのスペクトルを表している。
N×Rサンプルのオーバーサンプリング後のデータをFFTすると、角周波数0乃至πの範囲において等間隔のN×R個の角周波数のスペクトル成分が得られる。図11において、角周波数π/2は、R×Fs/2[Hz]に相当し、周波数Fsの整数倍に相当する角周波数の部分には、角周波数0乃至π/(2R)の範囲のスペクトル成分のエリアシング成分が現れる。
次に、図12は、N/Rサンプルの元のPCMデータの隣接するサンプルどうしの間に、R−1個の0値を補間するR倍の0詰め型オーバーサンプリングを行って得られるNサンプルのPCMデータであるオーバーサンプリング後のデータのFFT結果としてのスペクトルを表している。
Nサンプルのオーバーサンプリング後のデータのFFT結果は、図11のN×Rサンプルのオーバーサンプリング後のデータのFFT結果であるスペクトルを、角周波数の方向に1/Rに間引いたものとなる。即ち、Nサンプルのオーバーサンプリング後のデータをFFTすると、角周波数0乃至πの範囲において等間隔のN個の角周波数のスペクトル成分が得られ、さらに、図11のN×Rサンプルのオーバーサンプリング後のデータのスペクトルと同様のエリアシング成分が現れる。
ここで、符号化フレーム処理部54は、フレーム単位、即ち、Nサンプル単位でPCMデータを処理するから、符号化フレーム処理部54が処理するオーバーサンプリング後のデータは、N/Rサンプルの元のPCMデータの隣接するサンプルに、R−1個の0値を補間することにより得られるNサンプルのオーバーサンプリング後のデータということになる。
従って、図4の補間部51として、図5の第1の構成例を採用する場合、即ち、図4の補間部51において、0値を補間する場合において、符号化フレーム処理部54で、オーバーサンプリング後のデータを処理するときには、図12に示す角周波数0乃至π/2の範囲のスペクトル成分を有するPCMデータ(オーバーサンプリング後のデータ)を処理することになる。
補間部51において、N/Rサンプルの元のPCMデータの隣接するサンプルどうしの間に、R−1個の0値を補間することにより得られるNサンプルのオーバーサンプリング後のデータは、元のPCMデータがNサンプル集まるのに要する時間の1/Rの時間で得ることができる。従って、符号化フレーム処理部54において、補間部51で得られるオーバーサンプリング後のデータを処理する場合には、アルゴリズム遅延を、元のPCMデータを処理する場合の1/Rの時間に減少させることができる。
但し、符号化フレーム処理部54において、補間部51で得られるオーバーサンプリング後のデータを処理する場合には、Nサンプル(1フレーム)のオーバーサンプリング後のデータが、元のPCMデータがNサンプル集まるのに要する時間の1/Rの時間で順次得られるため、符号化フレーム処理部54では、元のPCMデータを処理する場合のR倍の頻度で処理を行う必要がある。このため、符号化フレーム処理部54は、オーバーサンプリング後のデータを処理する場合には、上述したように、元のPCMデータを処理する場合のR倍の頻度で処理を行う。
なお、符号化フレーム処理部54が処理するオーバーサンプリング後のデータの、図12に示した角周波数0乃至π/2の範囲のスペクトル成分のうちの、周波数Fsの整数倍に相当する角周波数の部分は、角周波数0乃至π/(2R)の範囲のスペクトル成分のエリアシング成分である。従って、符号化フレーム処理部54(の量子化/符号化部92)では、角周波数0乃至π/(2R)の範囲のスペクトル成分だけを処理すれば良く、角周波数π/(2R)以上のスペクトル成分は、処理する必要がない。
従って、符号化フレーム処理部54は、0詰め型オーバーサンプリングによって得られたオーバーサンプリング後のデータを処理する場合には、元のPCMデータを処理する場合のR倍の頻度で処理を行う必要があるが、オーバーサンプリング後のデータのエリアシング成分(角周波数π/(2R)以上のスペクトル成分)は、処理する必要がないため、即ち、オーバーサンプリング後のデータのエリアシング成分でない成分だけを処理すれば良いため、全体の演算量は、元のPCMデータを処理する場合のR倍よりも十分小さく抑えることができる。
次に、図13は、Nサンプルの元のPCMデータの隣接するサンプルどうしの間に、補間値を補間するR倍のオーバーサンプリングを行って得られるN×RサンプルのPCMデータであるオーバーサンプリング後のデータのFFT結果としてのスペクトルを表している。
N×Rサンプルのオーバーサンプリング後のデータをFFTすると、角周波数0乃至πの範囲において等間隔のN×R個の角周波数のスペクトル成分が得られる。図13において、角周波数π/2は、R×Fs/2[Hz]に相当する。
ここで、補間値を補間して得られるオーバーサンプリング後のデータにおいては、角周波数0乃至π/(2R)と、(1−1/(2R))π乃至πの範囲に、図10の角周波数0乃至π/2と、π/2乃至πの範囲と同様のスペクトル成分が現れるが、図11における場合のように、周波数Fsの整数倍に相当する角周波数の部分に、エリアシング成分は現れない。従って、図13に示した、補間値を補間して得られるオーバーサンプリング後のデータのスペクトルは、図11に示した0詰め型オーバーサンプリングによって得られるオーバーサンプリング後のデータのスペクトルのエリアシング成分を帯域制限したものに等価である。そこで、補間値を補間することによるR倍のオーバーサンプリングを、以下、適宜、帯域制限型オーバーサンプリングという。
次に、図14は、N/Rサンプルの元のPCMデータの隣接するサンプルどうしの間に、R−1個の補間値を補間するR倍の帯域制限型オーバーサンプリングを行って得られるNサンプルのPCMデータであるオーバーサンプリング後のデータのFFT結果としてのスペクトルを表している。
Nサンプルのオーバーサンプリング後のデータのFFT結果は、図13のN×Rサンプルのオーバーサンプリング後のデータのFFT結果であるスペクトルを、角周波数の方向に1/Rに間引いたものとなる。即ち、Nサンプルのオーバーサンプリング後のデータをFFTすると、角周波数0乃至πの範囲において等間隔のN個の角周波数のスペクトル成分が得られる。また、そのスペクトルは、図13における場合と同様に、角周波数0乃至π/(2R)と、(1−1/(2R))π乃至πの範囲に、図10の角周波数0乃至π/2と、π/2乃至πの範囲と同様のスペクトル成分が現れるが、周波数Fsの整数倍に相当する角周波数の部分に、エリアシング成分は現れない。
ここで、符号化フレーム処理部54は、フレーム単位、即ち、Nサンプル単位でPCMデータを処理するから、符号化フレーム処理部54が処理するオーバーサンプリング後のデータは、N/Rサンプルの元のPCMデータの隣接するサンプルに、R−1個の補間値を補間することにより得られるNサンプルのオーバーサンプリング後のデータということになる。
従って、図4の補間部51として、図7の第2の構成例を採用する場合、即ち、図4の補間部51において、補間値を補間する場合において、符号化フレーム処理部54で、オーバーサンプリング後のデータを処理するときには、図14に示す角周波数0乃至π/2の範囲のスペクトル成分を有するPCMデータを処理することになる。
補間部51において、N/Rサンプルの元のPCMデータの隣接するサンプルどうしの間に、R−1個の補間値を補間することにより得られるNサンプルのオーバーサンプリング後のデータは、元のPCMデータがNサンプル集まるのに要する時間の1/Rの時間で得ることができる。従って、符号化フレーム処理部54において、補間部51で得られるオーバーサンプリング後のデータを処理する場合には、アルゴリズム遅延を、元のPCMデータを処理する場合の1/Rの時間に減少させることができる。
但し、符号化フレーム処理部54において、補間部51で得られるオーバーサンプリング後のデータを処理する場合には、Nサンプル(1フレーム)のオーバーサンプリング後のデータが、元のPCMデータがNサンプル集まるのに要する時間の1/Rの時間で順次得られるため、符号化フレーム処理部54では、元のPCMデータを処理する場合のR倍の頻度で処理を行う必要がある。このため、符号化フレーム処理部54は、オーバーサンプリング後のデータを処理する場合には、上述したように、高頻度モードで、即ち、元のPCMデータを処理する場合のR倍の頻度で処理を行う。
なお、符号化フレーム処理部54が処理するオーバーサンプリング後のデータの、図14に示した角周波数0乃至π/2の範囲のスペクトル成分のうちの、π/(2R)以上の角周波数のスペクトル成分は0である。従って、符号化フレーム処理部54(の量子化/符号化部92)では、角周波数0乃至π/(2R)の範囲のスペクトル成分だけを処理すれば良く、角周波数π/(2R)以上のスペクトル成分は、処理する必要がない。
従って、符号化フレーム処理部54は、帯域制限型オーバーサンプリングによって得られたオーバーサンプリング後のデータを処理する場合には、元のPCMデータを処理する場合のR倍の頻度で処理を行う必要があるが、オーバーサンプリング後のデータの角周波数π/(2R)以上のスペクトル成分は、処理する必要がないため、即ち、オーバーサンプリング後のデータの角周波数0乃至π/(2R)のスペクトル成分だけを処理すれば良いため、全体の演算量は、元のPCMデータを処理する場合のR倍よりも十分小さく抑えることができる。
以上のように、符号化フレーム処理部54は、0詰め型オーバーサンプリング、および帯域制限型オーバーサンプリングのいずれによって得られたオーバーサンプリング後のデータを処理する場合であっても、元のPCMデータを処理する場合のR倍の頻度で処理を行う。但し、オーバーサンプリング後のデータの角周波数π/(2R)以上のスペクトル成分は、処理する必要がないため、全体の演算量は、元のPCMデータを処理する場合のR倍よりも十分小さく抑えることができる。
なお、以上のことは、符号化フレーム処理部54に対応する処理を行う復号フレーム処理部55についても同様である。また、符号化フレーム処理部54および復号フレーム処理部55において、角周波数が0乃至π/(2R)のスペクトル成分についてだけ処理を行わせることは、制御部63による制御によって行うことができる。
次に、図15は、図4の復号フレーム処理部55の構成例を示している。
復号/逆量子化部101には、記録媒体64または伝送媒体65からの符号化データが供給される。復号/逆量子化部101は、そこに供給される符号化データを逆量子化等することにより、直交変換データに復号し、逆直交変換部102に供給する。逆直交変換部102は、復号/逆量子化部101から供給される直交変換データをフレーム単位で逆直交変換し、その逆直交変換結果のPCMデータを、出力データとして、間引き部56とセレクタ57に供給する。
なお、復号/逆量子化部101と逆直交変換部102は、制御部63から供給される、処理頻度制御信号に応じた処理頻度で、処理を行う。
即ち、復号フレーム処理部55が、補間が行われていない元のPCMデータから得られた符号化データを対象として処理を行う場合、制御部63は、所定の基準の処理頻度で処理を行う動作モードである通常モードを指示する処理頻度制御信号を、復号/逆量子化部101と逆直交変換部102に供給し、この場合、復号/逆量子化部101と逆直交変換部102は、通常モードで処理を行う。
一方、復号フレーム処理部55が、オーバーサンプリング後のデータから得られた符号化データを対象として処理を行う場合、制御部63は、所定の基準の処理頻度のR倍の頻度で処理を行う動作モードである高頻度モードを指示する処理頻度制御信号を、復号/逆量子化部101と逆直交変換部102に供給し、この場合、復号/逆量子化部101と逆直交変換部102は、高頻度モードで処理を行う。
次に、図16乃至図19のフローチャートを参照して、図4のコーデックシステムの処理について説明する。
コーデックシステムが、例えば、オーディオデータを符号化データに符号化して記録媒体64に記録し、あるいは、記録媒体64から符号化データを読み出し、オーディオデータに復号して再生するオーディオレコーダ/プレーヤなどのいわゆる蓄積系のアプリケーションプログラムにおいて、オーディオデータの符号化や復号に用いられる場合には、コーデックシステムは、記録媒体64に符号化データを記録する記録処理や、記録媒体64から符号化データを再生する再生処理を行う。
また、コーデックシステムが、例えば、オーディオデータを符号化データに符号化してインターネットなどの伝送媒体65を介して伝送するとともに、伝送媒体65から伝送されてくる符号化データを受信し、オーディオデータに復号して出力するIP電話システム(インターネット電話)などの、リアルタイム性が要求される伝送系のアプリケーションプログラムにおいて、オーディオデータの符号化や復号に用いられる場合には、コーデックシステムは、符号化データを伝送媒体65を介して送信する送信処理や、伝送媒体65を介して送信されてくる符号化データを受信する受信処理を行う。
なお、IP電話システムによれば、例えば、図2において、情報処理装置21と22との間で、電話通信を行うことができる。
まず最初に、図16のフローチャートを参照して、オーディオデータを記録媒体64に記録する記録処理について説明する。
記録処理は、例えば、記録すべきオーディオデータであるPCMデータが、コーデックシステムに供給されると開始される。
記録処理においては、まず最初に、ステップS1において、制御部63は、符号化フレーム処理部54の動作モードを通常モードとするように制御する。これにより、ステップS1では、符号化フレーム処理部54は、その動作モードを通常モードとし、所定の基準の処理頻度で処理を開始する。
ステップS1の処理後は、ステップS2に進み、制御部63は、セレクタ52を制御することにより、元のPCMデータと、補間部51が出力するオーバーサンプリング後のデータとのうちの、元のPCMデータを選択させる。これにより、セレクタ52から信号記憶装置53には、元のPCMデータが供給される。
その後、ステップS2からS3に進み、信号記憶装置53は、セレクタ52から供給される元のPCMデータの記憶を開始し、ステップS4に進む。
ステップS4では、符号化フレーム処理部54が、信号記憶装置53に、1フレーム分の元のPCMデータが記憶されたかどうかを判定し、まだ記憶されていないと判定した場合、ステップS4に戻る。そして、ステップS4において、信号記憶装置53に、1フレーム分の元のPCMデータが記憶されたと判定された場合、ステップS5に進み、符号化フレーム処理部54(図9)の直交変換部91は、信号記憶装置53から1フレーム分の元のPCMデータを読み出し、ステップS6に進む。
ステップS6では、直交変換部91は、直前のステップS5で信号記憶装置53から読み出した1フレームの元のPCMデータを直交変換し、その結果得られる直交変換データを、量子化/符号化部92に供給して、ステップS7に進む。ステップS7では、量子化/符号化部92は、直交変換部91から供給される直交変換データを量子化等することにより、符号化データとし、ステップS8に進む。
ここで、ステップS6の直交変換部91の処理と、ステップS7の量子化/符号化部92の処理は、所定の基準の処理頻度(フレーム単位の元のPCMデータの処理に間に合う処理頻度)で行われる。
ステップS8では、符号化フレーム処理部54は、符号化データを、記録媒体64に記録し、ステップS9に進む。ステップS9では、符号化フレーム処理部54が、信号記憶装置53に、未処理のPCMデータがまだ記憶されているかどうかを判定し、記憶されていると判定された場合、ステップS4に戻り、以下、同様の処理が繰り返される。
また、ステップS9において、信号記憶装置53に、未処理のPCMデータが記憶されていないと判定された場合、記録処理を終了する。
次に、図17のフローチャートを参照して、記録媒体64に記録されたオーディオデータを再生する再生処理について説明する。
再生処理は、例えば、ユーザが入力部37(図3)を操作することにより、オーディオデータの再生を指令した場合に開始される。
再生処理においては、まず最初に、ステップS21において、制御部63は、復号フレーム処理部55の動作モードを通常モードとするように制御する。これにより、ステップS21では、復号フレーム処理部55は、その動作モードを通常モードとし、所定の基準の処理頻度で処理を開始する。
ステップS21の処理後は、ステップS22に進み、復号フレーム処理部55は、記録媒体64からの符号化データの読み出しを開始し、ステップ23に進む。
ステップS23では、復号フレーム処理部55が、記録媒体64から、1フレーム分の符号化データが読み出されたかどうかを判定し、まだ読み出されていないと判定した場合、ステップS23に戻る。そして、ステップS23において、記録媒体64から、1フレーム分の符号化データが読み出されたと判定された場合、ステップS24に進み、復号フレーム処理部55(図15)の復号/逆量子化部101は、その1フレーム分の符号化データを逆量子化等することにより、直交変換データに復号し、逆直交変換部102に供給して、ステップS25に進む。ステップS25では、逆直交変換部102は、復号/逆量子化部101から供給される直交変換データを逆直交変換し、その結果得られるPCMデータを出力データとして、セレクタ57に供給して、ステップS26に進む。
ここで、ステップS24の復号/逆量子化部101の処理と、ステップS25の逆直交変換部102の処理は、所定の基準の処理頻度(フレーム単位の符号化データの処理に間に合う処理頻度)で行われる。
ステップS26では、セレクタ57は、逆直交変換部102が出力する出力データを選択して出力し、ステップS27に進む。セレクタ57が出力する出力データであるオーディオデータは、例えば、出力部36(図3)に供給されて出力される。
ステップS27では、復号フレーム処理部55が、記録媒体64に、未処理の符号化データがまだ記録されているかどうかを判定し、記録されていると判定された場合、ステップS23に戻り、以下、同様の処理が繰り返される。
また、ステップS27において、記録媒体64に、未処理の符号化データが記憶されていないと判定された場合、再生処理を終了する。
次に、図18のフローチャート参照して、オーディオデータを、伝送媒体65を介して送信する送信処理について説明する。
送信処理は、例えば、送信すべきオーディオデータであるPCMデータが、コーデックシステムに供給されると開始される。
送信処理においては、まず最初に、ステップS41において、制御部63は、符号化フレーム処理部54の動作モードを高頻度モードとするように制御する。これにより、ステップS41では、符号化フレーム処理部54は、その動作モードを高頻度モードとし、所定の基準の処理頻度のR倍の頻度で処理を開始する。
ステップS41の処理後は、ステップS42に進み、制御部63は、補間部51を制御することにより、コーデックシステムに供給される元のPCMデータに対する補間処理を開始させ、ステップS43に進む。ここで、ステップS42の処理により、補間部51からは、元のPCMデータのR倍のサンプル数のオーバーサンプリング後のデータの出力が開始される。
ステップS43では、制御部63は、セレクタ52を制御することにより、元のPCMデータと、補間部51が出力するオーバーサンプリング後のデータとのうちの、オーバーサンプリング後のデータを選択させる。これにより、セレクタ52から信号記憶装置53には、補間部51が出力するオーバーサンプリング後のデータが供給される。
その後、ステップS43からS44に進み、信号記憶装置53は、セレクタ52から供給されるオーバーサンプリング後のデータの記憶を開始し、ステップS45に進む。
ステップS45では、符号化フレーム処理部54が、信号記憶装置53に、1フレーム分のオーバーサンプリング後のデータが記憶されたかどうかを判定し、まだ記憶されていないと判定した場合、ステップS45に戻る。そして、ステップS45において、信号記憶装置53に、1フレーム分のオーバーサンプリング後のデータが記憶されたと判定された場合、ステップS46に進み、符号化フレーム処理部54(図9)の直交変換部91は、信号記憶装置53から1フレーム分のオーバーサンプリング後のデータを読み出し、ステップS47に進む。
ステップS47では、直交変換部91は、直前のステップS46で信号記憶装置53から読み出した1フレームのオーバーサンプリング後のデータを直交変換し、その結果得られる直交変換データを、量子化/符号化部92に供給して、ステップS48に進む。ステップS48では、量子化/符号化部92は、直交変換部91から供給される直交変換データを量子化等することにより、符号化データとし、ステップS49に進む。
ここで、符号化フレーム処理部54は、ステップS41の処理により、高頻度モードとなっており、従って、ステップS47の直交変換部91の処理と、ステップS48の量子化/符号化部92の処理は、所定の基準の処理頻度のR倍の頻度で行われる。
なお、処理頻度を表す情報であるR(以下、適宜、処理頻度情報Rともいう)は、符号化装置61と復号装置62において固定の値とすることもできるし、可変の値とすることもできる。処理頻度情報Rを可変とする場合には、その可変の値の処理頻度情報Rは、例えば、制御部63が、伝送媒体65におけるデータ伝送の遅延時間などに基づいて設定し、あるいは、ユーザによる入力部37(図3)の操作に応じて設定すること等が可能である。但し、例えば、オーディオデータを、情報処理装置21から22(または22から21)に送信する場合に、処理頻度情報Rを可変とするときには、送信側である情報処理装置21の制御部63で設定された処理頻度情報R、ならびに間引きのレート示す量を、受信側である情報処理装置22の制御部63で認識する必要がある。そこで、処理頻度情報Rを可変とするときには、送信側である情報処理装置21の制御部63で設定された処理頻度情報R、ならびに間引きのレート示す量を、符号化データに含めて送信することができる。
ステップS49では、符号化フレーム処理部54は、符号化データを、伝送媒体65を介して送信し、ステップS50に進む。ステップS50では、符号化フレーム処理部54が、信号記憶装置53に、未処理のオーバーサンプリング後のデータがまだ記憶されているかどうかを判定し、記憶されていると判定された場合、ステップS45に戻り、以下、同様の処理が繰り返される。
また、ステップS50において、信号記憶装置53に、未処理のオーバーサンプリング後のデータが記憶されていないと判定された場合、送信処理を終了する。
以上のように、符号化フレーム処理部54において、所定の基準の処理頻度のR倍の頻度で、元のPCMデータのR倍のサンプル数のオーバーサンプリング後のデータを処理するので、アルゴリズム遅延を、元のPCMデータを処理する場合に比較して、理論的には、1/Rにすることができる。
次に、図19のフローチャートを参照して、伝送媒体65を介して送信されてくるオーディオデータを受信する受信処理について説明する。
受信処理は、例えば、伝送媒体65を介して送信されてくるオーディオデータであるPCMデータが、コーデックシステムに供給されると開始される。
受信処理においては、まず最初に、ステップS61において、制御部63は、復号フレーム処理部55の動作モードを高頻度モードとするように制御する。これにより、ステップS61では、復号フレーム処理部55は、その動作モードを高頻度モードとし、所定の基準の処理頻度のR倍の頻度で処理を開始する。
ステップS61の処理後は、ステップS62に進み、復号フレーム処理部55は、伝送媒体65を介して送信されていく符号化データの受信を開始し、ステップ63に進む。
ステップS63では、復号フレーム処理部55が、1フレーム分の符号化データを受信したかどうかを判定し、まだ受信していないと判定した場合、ステップS63に戻る。そして、ステップS63において、1フレーム分の符号化データを受信したと判定された場合、ステップS64に進み、復号フレーム処理部55(図15)の復号/逆量子化部101は、その1フレーム分の符号化データを逆量子化等することにより、直交変換データに復号し、逆直交変換部102に供給して、ステップS65に進む。ステップS65では、逆直交変換部102は、復号/逆量子化部101から供給される直交変換データを逆直交変換し、その結果得られるPCMデータを出力データとして、間引き部56とセレクタ57に供給して、ステップS66に進み、制御部63は、間引き部56を制御することにより、間引き処理を行わせる。これにより、間引き部56では、復号フレーム処理部55の逆直交変換部102から供給される出力データを1/R倍のサンプル数に間引き、即ち、出力データの最初のサンプルを選択し、その後、R−1サンプルを選択せず、その次のサンプルを選択することを繰り返し、これにより得られる間引きデータとしてのPCMデータを、セレクタ部57に出力する
その後、ステップS66からS67に進み、制御部63はセレクタ57を制御することにより、復号フレーム処理部55の出力と、間引き部56の出力とのうちの、間引き部56の出力を選択させる。
これにより、セレクタ57は、間引き部56から供給される間引きデータとしてのPCMデータを選択して出力するようになる。セレクタ57が出力する間引きされたオーディオデータは、例えば、出力部36(図3)に供給されて出力される。
また、復号フレーム処理部55は、ステップS61の処理により、高頻度モードとなっており、従って、ステップS64の復号/逆量子化部101の処理と、ステップS65の逆直交変換部102の処理は、所定の基準の処理頻度のR倍の頻度で行われる。
ステップS67の処理後、ステップS68に進み、復号フレーム処理部55が、伝送媒体65から、符号化データがまだ送信されてくるかどうかを判定し、送信されてくると判定された場合、ステップS63に戻り、以下、同様の処理が繰り返される。
また、ステップS68において、符号化データが送信されてこないと判定された場合、受信処理を終了する。
以上のように、復号フレーム処理部55において、所定の基準の処理頻度のR倍の頻度で、元のPCMデータのR倍のサンプル数のオーバーサンプリング後のデータから得られた符号化データを処理し、さらに、その処理の結果得られる出力データを1/R倍に間引くので、アルゴリズム遅延を、元のPCMデータを処理する場合に比較して、理論的には、1/Rにすることができる。
ここで、送信処理および受信処理では、符号化フレーム処理部54および復号フレーム処理部55において、元のPCMデータのR倍のサンプル数とされたオーバーサンプリング後のデータについて、所定の基準の処理頻度のR倍の頻度で処理を行うので、符号化フレーム処理部54および復号フレーム処理部55の演算量は、単純には、元のPCMデータを所定の基準の処理頻度で処理する場合に比較して、R倍になる。但し、元のPCMデータのR倍のサンプル数とされたオーバーサンプリング後のデータについては、上述したように、図20に示すオーバーサンプリング後のデータのスペクトル成分のうちの、角周波数が0乃至π/(2R)の範囲のスペクトル成分(図20において影を付してある部分)だけを対象として処理を行えば良く、このようにすることにより、演算量を、元のPCMデータを処理する場合のR倍よりも十分小さく抑えることができる。
なお、図20は、図12に示した場合と同様の、元のPCMデータをR倍の0詰め型オーバーサンプリングした場合のオーバーサンプリング後のデータのスペクトルを示している。
次に、図21は、PCMデータを、複数の周波数帯域のデータであるサブバンドデータに周波数帯域分割し、少なくとも直交変換することにより符号化する符号化フレーム処理部54の構成例を示している。
ここで、PCMデータを、周波数帯域分割し、少なくとも直交変換することにより符号化する符号化方式としては、例えば、ATRAC(Adaptive TRansform Acoustic Coding)(ATRAC, ATRAC3, ATRAC-X)などがある。そこで、ここでは、符号化フレーム処理部54が、例えば、ATRAC-X方式でPCMデータを符号化するものとして説明を行う。なお、ATRAC-X方式では、1フレームは、2048サンプルであり、また、PCMデータは、16のサブバンドに周波数帯域分割される。
図21において、符号化フレーム処理部54は、帯域分割フィルタ111、16個のサブバンド処理部1121乃至11216、およびマルチプレクサ113で構成されている。
帯域分割フィルタ111は、例えば、PQF(Polyphase Quadrature Filter)などで構成され、そこに供給されるPCMデータを周波数帯域分割し、16のサブバンドのデータを得て、各サブバンドのデータ(サブバンドデータ)を、対応するサブバンド処理部1121乃至11216に供給する。ここで、以下、適宜、16のサブバンドを、低周波数のものから順に、サブバンド#1,#2,・・・,#16と記述する。また、以下、適宜、サブバンド#1,#2,・・・,#16のデータを、サブバンドデータ#1,#2,・・・,#16と記述する。サブバンドデータ#iは(i=1,2,・・・,16)、帯域分割フィルタ111から、サブバンド処理部112iに供給されて処理される。
サブバンド処理部112iは、帯域分割フィルタ111から供給されるサブバンドデータ#iを処理し、サブバンド#iの符号化データを得て、マルチプレクサ113に供給する。
ここで、サブバンド処理部1121は、前処理部121、直交変換部122、および量子化/符号化部123で構成される。前処理部121は、サブバンド処理部1121に供給されるサブバンドデータ#1のゲイン調整を行い、直交変換部122に供給する。直交変換部122は、前処理部121からのサブバンドデータ#1をMDCT処理し、そのMDCT処理の結果得られるMDCT係数を、量子化/符号化部123に供給する。量子化/符号化部123は、直交変換部122から供給されるMDCT係数を量子化等することにより、サブバンド#1の符号化データに符号化し、マルチプレクサ113に供給する。
サブバンド処理部1121以外のサブバンド処理部112iも、サブバンド処理部1121と同様に構成され、帯域分割フィルタ111から供給されるサブバンドデータ#iを、サブバンド処理部1121と同様に処理し、その結果得られるサブバンド#iの符号化データを、マルチプレクサ113に供給する。
マルチプレクサ113は、サブバンド処理部1121乃至11216から供給されるサブバンド#1乃至#16の符号化データを多重化し、その多重化結果を、最終的な符号化データとして出力する。
なお、ATRAC-X方式では、1フレームは、2048サンプルであるが、直交変換であるMDCT処理は、2フレームに亘り、1フレームずつオーバラップしながら行われる。従って、MDCT処理が2フレームを対象として行われるため、帯域分割フィルタ111は、2フレーム(=4096サンプル)のPCMデータを、16のサブバンドのサブバンドデータに分割して、MDCT処理が行われるサブバンド処理部112iに供給する。このため、1つのサブバンドのサブバンドデータは、256サンプル(=4096サンプル/16)となる。
図21の符号化フレーム処理部54において、元のPCMデータをR倍オーバーサンプリングして得られるオーバーサンプリング後のデータを処理する場合、そのオーバーサンプリング後のデータについては、図10乃至図14で説明したように、角周波数が0乃至π/(2R)の範囲のスペクトル成分のオーバーサンプリング後のデータだけを対象に処理すれば良い。
従って、帯域分割フィルタ111において得られる16のサブバンドのサブバンドデータ#1乃至#16のうちの、角周波数がπ/(2R)以上の範囲のサブバンドデータを処理するサブバンド処理部112iは、処理を行わなくて良い。
具体的には、例えば、R=2の場合、サブバンドデータ#1乃至#8を処理するサブバンド処理部1121乃至1128だけが処理を行えば良く、サブバンドデータ#9乃至#16を処理するサブバンド処理部1129乃至11216は処理を行う必要がない。
そして、この場合、マルチプレクサ113は、サブバンド処理部1129乃至11216から供給されるサブバンド#9乃至#16の符号化データはすべて0であるとして多重化を行えば良い。
なお、図21の符号化フレーム処理部54においても、制御部63の制御にしたがい、オーバーサンプリング後のデータを対象として処理を行う場合には、元のPCMデータを対象として処理を行う場合のR倍の頻度で処理が行われる。
但し、例えば、いま、R=2とすると、上述したように、サブバンドデータ#9乃至#16を処理するサブバンド処理部1129乃至11216は処理を行う必要がなく、さらに、帯域分割フィルタ111においても、オーバーサンプリング後のデータからサブバンドデータ#9乃至#16を分割する処理を行う必要がない。
従って、符号化フレーム処理部54において、オーバーサンプリング後のデータを対象として処理を行う場合には、元のPCMデータを対象として処理を行う場合のR倍の頻度で処理が行われるが、帯域分割フィルタ111およびサブバンド処理部1121乃至11216において、1フレームのオーバーサンプリング後のデータを処理するための演算量は、1フレームの元のPCMデータを処理するための演算量の1/Rになる。
ここで、図21の符号化フレーム処理部54が、1フレームの元のPCMデータを処理するときの演算量を1とするとともに、そのときのマルチプレクサ113の演算量をrとすると、帯域分割フィルタ111およびサブバンド処理部1121乃至11216が、1フレームの元のPCMデータを処理するときの演算量は、1−rで表すことができる。
符号化フレーム処理部54において、オーバーサンプリング後のデータを対象として処理を行う場合には、上述したように、帯域分割フィルタ111およびサブバンド処理部1121乃至11216において、1フレームのオーバーサンプリング後のデータを処理するための演算量は、1フレームの元のPCMデータを処理するための演算量の1/Rになるから、(1−r)/Rとなる。
従って、符号化フレーム処理部54において、1フレームのオーバーサンプリング後のデータを処理するための演算量は、帯域分割フィルタ111およびサブバンド処理部1121乃至11216における演算量(1−r)/Rと、マルチプレクサ113の演算量rとを加算した演算量(1−1/R)r+1/R(=(1−r)/R+r)となる。さらに、符号化フレーム処理部54では、オーバーサンプリング後のデータを処理するときは、元のPCMデータを処理するときのR倍の頻度で処理が行われるから、1フレームの元のPCMデータの処理と同一の時間に行われるオーバーサンプリング後のデータの処理に要する演算量は、1フレームのオーバーサンプリング後のデータを処理するための演算量(1−1/R)r+1/RのR倍である1+(R−1)rとなる。
なお、マルチプレクサ113において、角周波数がπ/(2R)以上の範囲のサブバンドデータの符号化データを0として多重化しないようにすれば、即ち、マルチプレクサ113においても、帯域分割フィルタ111およびサブバンド処理部1121乃至11216における場合と同様に、角周波数がπ/(2R)以上の範囲のサブバンドデータを処理しないようにすれば、符号化フレーム処理部54において、オーバーサンプリング後のデータを処理するための演算量と、元のPCMデータの処理するための演算量との差は、理論的にはない。
以上のように、符号化フレーム処理部54において、PCMデータを周波数帯域分割して処理する場合には、図22に示す、オーバーサンプリング後のデータのうちの角周波数がπ/(2R)以上の成分(サブバンドデータ)を処理する部分は、処理を行う必要がなく、従って、所定の基準の処理頻度のR倍の頻度で処理を行っても、全体的な演算量の増加を低減することができる。
ここで、符号化フレーム処理部54において、オーバーサンプリング後のデータのうちの角周波数がπ/(2R)以上の成分(サブバンドデータ)を処理する部分に処理を行わせないようにする制御(または、オーバーサンプリング後のデータのうちの角周波数がπ/(2R)以下の成分(サブバンドデータ)を処理する部分だけに処理を行わせる制御)は、制御部63において行うことができる。
なお、図22においては、角周波数0乃至π/(2R)に対応する周波数帯域(図中、影を付してある部分)が、サブバンド#1に一致しており、従って、図22に示すスペクトルとなるオーバーサンプリング後のデータについては、サブバンドデータ#1だけを処理するだけで済む。ここで、図22は、図12に示した場合と同様の、元のPCMデータをR倍の0詰め型オーバーサンプリングした場合のオーバーサンプリング後のデータのスペクトルを示している。
次に、図23は、符号化フレーム処理部54が、図21に示したように構成される場合の復号フレーム処理部55の構成例を示している。
復号フレーム処理部55に供給される符号化データは、デマルチプレクサ131に供給される。デマルチプレクサ131は、そこに供給される符号化データを、16のサブバンド#1乃至#16の符号化データに分離し、サブバンド#iの符号化データを、サブバンド処理部132iに供給する。
サブバンド処理部132iは、デマルチプレクサ131から供給されるサブバンド#iの符号化データを処理し、サブバンド#iのサブバンドデータを得て、合成フィルタ133に供給する。
なお、ATRAC-X方式では、上述したように、1つのサブバンドのサブバンドデータは、256サンプルであり、従って、サブバンド処理部132iは、1フレームにつき、256サンプルからなるサブバンドデータ#iを、合成フィルタ133に出力する。
ここで、サブバンド処理部1321は、復号/逆量子化部141、逆直交変換部142、および後処理部143で構成される。復号/逆量子化部141は、デマルチプレクサ131から供給されるサブバンドデータ#1を逆量子化等することにより、サブバンド#1のMDCT係数に復号し、逆直交変換部142に供給する。逆直交変換部142は、復号/逆量子化部141からのサブバンド#1のMDCT係数を逆MDCT処理し、その逆MDCT処理の結果得られるサブバンドデータ#1を、後処理部143に供給する。後処理部143は、逆直交変換部142から供給されるサブバンドデータ#1に対して必要な後処理を施し、合成フィルタ133に供給する。
サブバンド処理部1321以外のサブバンド処理部132iも、サブバンド処理部1321と同様に構成され、デマルチプレクサ131から供給されるサブバンド#iの符号化データを、サブバンド処理部1321と同様に処理し、その結果得られるサブバンドデータ#iを、合成フィルタ133に供給する。
合成フィルタ133は、サブバンド処理部1321乃至13216から供給される、16の周波数帯域成分としてのサブバンドデータ#iを合成し、その合成結果であるPCMデータを、合成データとして出力する。
図23の復号フレーム処理部55においても、図21の符号化フレーム処理部54における場合と同様に、符号化データが、R倍オーバーサンプリングによって生成されたオーバーサンプリング後のデータから得られたものである場合、そのオーバーサンプリング後のデータについては、図10乃至図14で説明したように、角周波数が0乃至π/(2R)の範囲のスペクトル成分のオーバーサンプリング後のデータだけを対象に処理すれば良い。
従って、デマルチプレクサ131において得られる16のサブバンド#1乃至#16の符号化データのうちの、角周波数がπ/(2R)以上の範囲のサブバンドの符号化データを処理するサブバンド処理部132iは、処理を行わなくて良い。
具体的には、例えば、R=2の場合、サブバンド#1乃至#8の符号化データを処理するサブバンド処理部1321乃至1328だけが処理を行えば良く、サブバンド#9乃至#16の符号化データを処理するサブバンド処理部1329乃至13216は処理を行う必要がない。
そして、この場合、合成フィルタ133は、サブバンド処理部1329乃至13216から供給されるサブバンド#9乃至#16のサブバンドデータはすべて0であるとして、サブバンドデータの合成を行えば良い。
なお、図23の復号フレーム処理部55においても、制御部63の制御にしたがい、オーバーサンプリング後のデータから得られた符号化データを対象として処理を行う場合には、元のPCMデータから得られた符号化データを対象として処理を行う場合のR倍の頻度で処理が行われる。
但し、図23の復号フレーム処理部55においてR倍の頻度で処理を行う場合であっても、図21の符号化フレーム処理部54における場合と同様に、サブバンド#1乃至#16の符号化データのうちの角周波数がπ/(2R)以上の成分を処理する部分は、処理を行う必要がなく、従って、所定の基準の処理頻度のR倍の頻度で処理を行っても、全体的な演算量の増加を低減することができる。
ここで、復号フレーム処理部55において、サブバンド#1乃至#16の符号化データのうちの角周波数がπ/(2R)以上の成分を処理する部分に処理を行わせないようにする制御(または、サブバンド#1乃至#16の符号化データのうちの角周波数がπ/(2R)以下の成分を処理する部分だけに処理を行わせる制御)は、制御部63において行うことができる。
以上のように、符号化装置61において、R倍のオーバーサンプリングを行い、そのオーバーサンプリングの結果得られるオーバーサンプリング後のデータを、符号化フレーム処理部54で所定の基準の処理頻度のR倍の頻度で処理を行うとともに、復号装置62において、符号化装置61から送信されている符号化データを、所定の基準の処理頻度のR倍の頻度で処理し、その結果得られるPCMデータ(出力データ)を1/R倍のデシメーション処理するようにしたので、演算量の増加を抑えながら、アルゴリズム遅延を減少させることができる。そして、その結果、例えば、リアルタイムでの双方向通信が要求されるIP電話システムなどにおいて、ユーザのコミュニケーションを円滑に図ることが可能となる。
さらに、アルゴリズム遅延を減少させるにあたって、コーデックシステムにおける直交変換処理(逆直交変換処理)の対象となるサンプル数であるフレーム長を変更する必要がないので、既存のコーデックシステムを利用して、安価に装置を実現することが可能となる。
ここで、例えば、ATRAC-Xでは、サンプリング周波数Fsが32[kHz]で、1フレームが2048サンプルで構成される。従って、R=1の場合、即ち、既存のATRAC-Xのコーデックシステムにおけるアルゴリズム遅延は、64[ミリ秒](=2048サンプル/32[kHz])となる。
これに対して、例えば、R=2の場合のアルゴリズム遅延は、既存のATRAC-Xのコーデックシステムにおけるアルゴリズム遅延の1/2の32[ミリ秒]となる。また、例えば、R=4の場合のアルゴリズム遅延は、既存のATRAC-Xのコーデックシステムにおけるアルゴリズム遅延の1/4の16[ミリ秒]となる。
符号化装置61および復号装置62では、直交変換処理(逆直交変換処理)の対象となるフレームを構成するためのアルゴリズム遅延の他に、その他の各種の処理に起因する遅延がある。そして、例えば、IP電話システムにおいて伝送媒体65となるインターネットにおける伝送遅延が、50[ミリ秒]程度以上であることを考慮すると、円滑なコミュニケーションを図るためには、フレームを構成することに起因するアルゴリズム遅延は、50[ミリ秒]以下とするのが望ましい。従って、R=2、望ましくは、R=4とすることにより、十分に円滑なコミュニケーションを図ることが可能となる。
ここで、符号化装置61において(復号装置62についても同様)、その処理頻度を、所定の基準の処理頻度のR倍にして、オーバーサンプリング後のデータを処理することは、例えば、単に、装置のシステムクロックをR倍にすることにより、処理頻度をR倍にして処理を行うこととは異なる。
即ち、例えば、所定のサンプル数Nでフレームを構成し、そのフレーム単位で処理を行う装置について、そのシステムクロックをR倍にした場合、あるフレーム#nの処理は、システムクロックをR倍にする前の1/Rの時間で終了し、次のフレーム#n+1が構成されるのを待って、そのフレーム#n+1の処理が行われる。そして、フレーム#nが構成されてから、次のフレーム#n+1が構成されるまでの時間は、処理頻度をR倍にしてもしなくても、変わらない。従って、あるフレーム#nの処理が開始されてから、次のフレーム#n+1の処理が開始されるまでの時間間隔は、処理頻度をR倍にしてもしなくても変わらない。
一方、符号化装置61では、その処理頻度を、所定の基準の処理頻度のR倍にして、PCMデータのR倍のオーバーサンプリング結果であるオーバーサンプリング後のデータを処理するので、やはり、あるフレーム#nの処理は、システムクロックをR倍にする前の1/Rの時間で終了し、次のフレーム#n+1が構成されるのを待って、そのフレーム#n+1の処理が行われる。但し、フレーム#nが構成されてから、次のフレーム#n+1が構成されるまでの時間は、フレームを構成するオーバーサンプリング後のデータが、PCMデータについてR倍のオーバーサンプリングを行うことにより得られるので、処理頻度が所定の基準の処理頻度である場合の1/Rの時間となる。従って、あるフレーム#nの処理が開始されてから、次のフレーム#n+1の処理が開始されるまでの時間間隔は、処理頻度が所定の基準の処理頻度である場合の1/R倍になる。
つまり、処理頻度をR倍にする前の1フレームの処理に要する時間を、基準時間というものとすると、装置のシステムクロックをR倍にすることにより、処理頻度をR倍にしても、しなくても、基準時間に処理されるフレーム数は、1フレームである。これに対して、符号化装置61において、その処理頻度が、所定の基準の処理頻度のR倍にされた場合には、基準時間に処理されるフレーム数は、処理頻度が、所定の基準の処理頻度の場合のR倍のフレーム数となる。
なお、符号化装置61において、PCMデータについてR倍のオーバーサンプリングを行うことにより得られるオーバーサンプリング後のデータの周波数精度は、周波数分析に用いるポイント数が同じであれば、オーバーサンプリングを行わない場合に比較して劣化する。
即ち、図10と、図12または図14とを比較して分かるように、元のPCMデータについてR倍のオーバーサンプリングを行うことにより得られるオーバーサンプリング後のデータのスペクトル(図12または図14)は、元のPCMデータの角周波数0乃至π/2の範囲のスペクトル(図10)が、角周波数0乃至π/(2R)の範囲に、いわば圧縮されたものとなるため、その周波数精度は、元のPCMデータの1/Rとなる。そして、この周波数精度の劣化は、復号装置62で得られるPCMデータとしてのオーディオデータの音質の劣化として現れる。
但し、符号化装置61(復号装置62)では、上述したように、角周波数0乃至π/(2R)の範囲のデータだけを量子化(逆量子化)すれば良いから、周波数精度の劣化に起因する音質の劣化は、その量子化(逆量子化)時の量子化ステップを細かくすることで低減することができる。なお、量子化ステップを細かくした場合、符号化装置61が送信する符号化データ(復号装置62が受信する符号化データ)のビットレートが高くなるため、量子化ステップは、符号化データのビットレートと音質とのトレードオフで決める必要がある。
以上においては、本発明を、オーディオデータを送受信する場合について説明したが、本発明は、オーディオデータ以外の、例えば、ビデオデータなどを送受信する場合にも適用可能である。
なお、本実施の形態では、補間処理を行うことによって、オーバーサンプリングを行うようにしたが、オーバーサンプリングを行う方法は、補間処理を利用するものに限定されるものではない。
また、本実施の形態では、データを、少なくとも直交変換することにより符号化するようにしたが、データの符号化方法も、直交変換を行うものに限定されるものではない。
21,22 情報処理装置, 23 ネットワーク, 31 バス, 32 CPU, 33 ROM, 34 RAM, 35 ハードディスク, 36 出力部, 37 入力部, 38 通信部, 39 ドライブ, 40 入出力インタフェース, 41 リムーバブル記録媒体, 51 補間部, 52 セレクタ, 53 信号記憶装置, 54 符号化フレーム処理部, 55 復号フレーム処理部, 56 間引き部, 57 セレクタ, 61 符号化装置, 62 復号装置, 63 制御部, 64 記録媒体, 65 伝送媒体, 71 セレクタ, 81,82 ラッチ回路, 83 補間値演算部, 84 セレクタ, 91 直交変換部, 92 量子化/符号化部, 101 復号/逆量子化部, 102 逆直交変換部, 111 帯域分割フィルタ, 1121乃至11216 サブバンド処理部, 113 マルチプレクサ, 121 前処理部, 122 直交変換部, 123 量子化/符号化部, 131 デマルチプレクサ, 1321乃至13216 サブバンド処理部, 133 合成フィルタ, 141 復号/逆量子化部, 142 逆直交変換部, 143 後処理部