(57)【要約】【課題】予測符号化を利用して時系列信号の圧縮を行う際に、より効率の高い可逆圧縮を行うことが可能な時系列信号の符号化装置、復号装置を提供する。【解決手段】時系列のサンプル列で構成される時系列信号に対して、予測誤差変換手段２０が処理を行う前に、信号平坦部符号化手段１０が処理を行い、チャンネル間演算手段３０、フレーム間演算手段４０、データ分離手段６０は、予測誤差変換の後に行う。データ分離手段６０により分離された上位サンプルは上位サンプル符号化手段８０により可変長に符号化される。【選択図】  図１
2004221708.tif 000002
【特許請求の範囲】
【請求項１】
時系列のサンプル列で構成される時系列信号に対して、前記全てのサンプル列を再現できるように情報量を圧縮する符号化装置であって、
前記サンプル列の各サンプルの値を、時間的に過去の複数のサンプルからの予測誤差値に変換する予測誤差変換手段と、
前記予測誤差値に変換された各サンプル値を表現するビットデータを所定のビット位置で分断し、上位ビットのサンプル列で構成される上位サンプル列と、下位ビットのサンプル列で構成される下位サンプル列とに分離するデータ分離手段と、
前記上位サンプル列に対しては、可変長符号で符号化を行うようにした上位サンプル符号化手段と、
前記下位サンプル列に対しては、固定長符号で符号化を行うようにした下位サンプル符号化手段と、
を有することを特徴とする時系列信号の符号化装置。
【請求項２】
請求項１において、
前記予測誤差変換手段による処理後の各サンプル値から極性ビットと絶対値ビット列とを区分し、各サンプル値を０または正の値をもつ絶対値ビット列に変換する極性処理手段をさらに有し、極性処理手段により処理されたサンプル列に対して前記データ分離手段が処理を行うようにしたことを特徴とする時系列信号の符号化装置。
【請求項３】
請求項１において、
前記サンプル列の中で、サンプルの値が連続して同一値になっている信号平坦部を抽出し、当該サンプル列から分離すると共に分離したサンプルの先頭時間位置と、サンプル個数と、サンプル値の３つの値を信号平坦部データとして符号化する信号平坦部符号化手段をさらに有し、
信号平坦部の分離により残ったサンプル列に対して、前記予測誤差変換手段が処理を行うことを特徴とする時系列信号の符号化装置。
【請求項４】
請求項１において、
前記データ分離手段により分離された上位サンプル列の中で、サンプル値の値が連続して同一値になっている信号平坦部を抽出し、当該上位サンプル列から分離すると共に分離した上位サンプルの先頭時間位置と、データ個数と、データ値の３つの値を上位信号平坦部データとして符号化する上位信号平坦部符号化手段をさらに有し、
上位信号平坦部の分離により残った上位サンプル列に対して、前記上位サンプル符号化手段が処理を行うことを特徴とする時系列信号の符号化装置。
【請求項５】
請求項１において、
前記サンプル列が同一時刻に複数の値をもつ複数のチャンネルで構成されている場合、チャンネル間のサンプル列に所定の演算を施し、いずれかのチャンネルのサンプル列を更新するようにしたチャンネル間演算手段をさらに有し、
当該チャンネル間演算手段により処理されたサンプル列に対して、前記データ分離手段が処理を行うことを特徴とする時系列信号の符号化装置。
【請求項６】
請求項１において、
前記サンプル列の中から所定の個数のサンプル列で構成されるフレームを複数個抽出し、抽出したフレーム間で所定の演算を施し、一方のフレームの各サンプル値を、演算した値に更新するフレーム間演算手段をさらに有し、
当該フレーム間演算手段により処理されたサンプル列に対して、前記データ分離手段が処理を行うことを特徴とする時系列信号の符号化装置。
【請求項７】
請求項１において、
前記上位サンプル符号化手段は、
対象ビット列のヒストグラムに基づいて、変換されたビット列の最上位ビットが１になるような最小ビット長で記述したルックアップテーブルを作成するルックアップテーブル作成手段と、
前記対象ビット列に対して前記ルックアップテーブルを用いて変換を施すビットデータ変換手段と、
変換後のビット列間には所定のビット数の区分ビット列を挿入するようにビット列を符号化するビットデータ符号化手段と、
で構成されていることを特徴とする時系列信号の符号化装置。
【請求項８】
請求項７において、
前記区分ビット列は、ルックアップテーブルのサイズにより変化し、ルックアップテーブルが所定のサイズより小さい場合は１ビット、所定のサイズ以上の場合は２ビットとして挿入されることを特徴とする時系列信号の符号化装置。
【請求項９】
請求項８において、
前記ルックアップテーブルは、対象ビット列の出現頻度が高いほど少ないビット長になるように変換がなされるようにし、前記区分ビット列が１ビット０である場合、０１という２ビットのパターンを含まないようなビット列に変換がなされ、前記区分ビット列が２ビット００である場合、００１という３ビットのパターンを含まないようなビット列に変換がなされていることを特徴とする時系列信号の符号化装置。
【請求項１０】
請求項８において、
前記ルックアップテーブルで変換されたビット列の最上位ビットの直後に固定長の拡張ビット列を挿入し、前記区分ビット列が１ビット０である場合、０１という２ビットのデータ区分パターンに後続して拡張ビット列が挿入され、前記ルックアップテーブルで変換された可変長のビット列と固定長の拡張ビット列をもとに符号化することを特徴とする時系列信号の符号化装置。
【請求項１１】
与えられた時系列信号に対して、請求項１から請求項１０のいずれかに記載の時系列信号の符号化装置により得られた符号データを記録した記録媒体。
【請求項１２】
記録媒体に記録された符号データを読込むデータ読込手段と、
前記読込んだ符号データのうち、ルックアップテーブルを参照することにより、上位可変長サンプル列から上位固定長サンプル列を復元すると共に、上位信号平坦部データをもとに信号平坦部を復元して上位固定長サンプル列に挿入する上位サンプル変換手段と、
前記符号データ中の下位固定長サンプル列と前記上位固定長サンプル列を統合するデータ統合手段と、
統合された各サンプル列を、前記読込んだ符号データに含まれるフレーム構造データを用いて、各フレームの情報を復元するフレーム復元手段と、
前記読込んだ符号データに含まれるチャンネル間データを用いて、各チャンネルのサンプル列を復元するチャンネル復元手段と、
予測誤差で記録された各サンプル値を、元の独立したサンプルの値に変換する独立サンプル復元手段と、
前記読込んだ符号データに含まれる信号平坦部データを用いて、前記サンプル列に信号平坦部を挿入する信号平坦部挿入手段と、
を有することを特徴とする時系列信号の復号装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、音楽制作、音響データの素材保管、ロケ素材の中継など音楽制作分野、特にＣＤよりも品質の高い高精細オーディオ制作を行う分野、ＣＤ、ＤＶＤ等のデジタル記録媒体を用いたオーディオ記録再生分野、遠隔医療における生体信号の伝送等、データの改変が嫌われる分野等において好適なデータの可逆圧縮技術に関する。
【０００２】
【従来の技術】
従来より、音響信号の圧縮には様々な手法が用いられている。音響信号を圧縮して符号化する手法として、ＭＰ３（ＭＰＥＧ−１／Ｌａｙｅｒ３）、ＡＡＣ（ＭＰＥＧ−２／Ｌａｙｅｒ３）などが実用化されている。このような圧縮符号化方式により、音響信号を小さいデータとして扱うことが可能となり、データの記録・伝送の効率化に貢献している。
【０００３】
上述のようなＭＰ３、ＡＡＣ等はいずれもロッシー符号化方式といわれるものであり、効率的な圧縮が可能であるが、復号化にあたって、少なからず品質の劣化を伴い、原信号を完全に再現することはできない。そのため、音楽制作、素材保管、ロケ素材の中継など音楽制作分野では、これらの符号化方式を適用できず、非効率ではあるが、非圧縮で保存・伝送する方式がとられている。特に最近は高精細オーディオを扱うプロダクションが増え、素材容量が膨大になり、ワークディスクを管理する上で問題になってきている。
【０００４】
最近では、上記問題を解決するため、音響信号を可逆圧縮符号化する方法として、予測符号化を利用し、予測誤差のデータを出現頻度に応じた符号化処理と組み合わせたものも提案されている（例えば、特許文献１参照）。
【０００５】
また、本出願人も、時系列信号のサンプル列に対してチャンネル間、フレーム間の差分演算を行って、各サンプルの値を小さくした後、予測符号化を利用してデータの圧縮を行う技術について提案している。（特許文献２参照）。
【０００６】
【特許文献１】
特開２００２−２７８６００号公報
【特許文献２】
特願２００２−２３１１５０号
【０００７】
【発明が解決しようとする課題】
しかしながら、上記特許文献１に記載の方法では、出現頻度が少ない予測誤差データでは、本来のビット列より極端に長いビット長が割り当てられてしまうという問題がある。また、上記特許文献２で提案した技術では、予測符号化の前に、チャンネル間、フレーム間の差分演算、各サンプルの上下ビットの分離を行っているため、予測符号化による圧縮効率が低下するという問題がある。
【０００８】
そこで、これらの問題を解決するため、本発明は、予測符号化を利用して時系列信号の圧縮を行う際に、より効率の高い圧縮を行うことが可能であると共に、復号時には、元の時系列信号を完全に復号することが可能な時系列信号の符号化装置および復号装置を提供することを課題とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するため、本発明では、時系列のサンプル列で構成される時系列信号に対して、前記全てのサンプル列を再現できるように情報量を圧縮する符号化装置を、前記サンプル列の各サンプルの値を、時間的に過去の複数のサンプルからの予測誤差値に変換する予測誤差変換手段、前記予測誤差値に変換された各サンプル値を表現するビットデータを所定のビット位置で分断し、上位ビットのサンプル列で構成される上位サンプル列と、下位ビットのサンプル列で構成される下位サンプル列とに分離するデータ分離手段、前記上位サンプル列に対しては、可変長符号で符号化を行うようにした上位サンプル符号化手段、前記下位サンプル列に対しては、固定長符号で符号化を行うようにした下位サンプル符号化手段を有する構成としたことを特徴とする。
【００１０】
本発明によれば、予測誤差符号化を用いて時系列信号の圧縮符号化を行うにあたり、各サンプルの値を予測誤差値に変換した後、各サンプルの上位ビットと下位ビットを分離し、上位ビットについては、可変長で符号化を行ってデータ量を削減するようにしたので、より効率の高い圧縮を行うことが可能となる。
【００１１】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して詳細に説明する。
（装置構成）
図１は、本発明に係る時系列信号の符号化装置の一実施形態を示す構成図である。図１において、１０は信号平坦部符号化手段、２０は予測誤差変換手段、３０はチャンネル間演算手段、４０はフレーム間演算手段、５０は極性処理手段、６０はデータ分離手段、７０は上位信号平坦部符号化手段、８０は上位サンプル符号化手段、８１はルックアップテーブル作成手段、８２はビットデータ変換手段、８３はビットデータ符号化手段、９０は下位サンプル符号化手段である。
【００１２】
図１において、信号平坦部符号化手段１０は、各チャンネルごとのサンプル列に対して、信号の値が一定である平坦部を検出し、効率的に符号化する機能を有する。予測誤差変換手段２０は、線形予測誤差の手法を用いて、各サンプルの値を予測誤差値に変換する機能を有する。チャンネル間演算手段３０は、複数のチャンネルからなるサンプル列の各チャンネル間の差分演算を行う機能を有する。フレーム間演算手段４０は、チャンネル間演算が行われた各サンプル列に対して、所定の区間をフレームとして設定した後、類似するフレームを検出し、類似するフレーム間で差分演算する機能を有する。極性処理手段５０は、正負の値を補数表現により表した各サンプルのビット列を、正負の極性を表す１ビットと他のビット列に分ける処理を行う機能を有する。
【００１３】
データ分離手段６０は、極性処理が行われたサンプル列を構成する各サンプルを所定の位置で上位ビットである上位サンプルデータと下位ビットである下位サンプルデータに分離する機能を有する。上位信号平坦部符号化手段７０は、各チャンネルごとの上位サンプル列に対して、信号の値が一定である平坦部を検出し、効率的に符号化する機能を有する。上位サンプル符号化手段８０は、データ分離手段６０により分離された上位サンプル列を効率良く符号化する機能を有する。下位サンプル符号化手段９０は、データ分離手段６０により分離された下位サンプル列を効率良く符号化する機能を有する。図１に示した各構成要素は、実際には、コンピュータおよびコンピュータにより実行される専用のソフトウェアプログラムにより実現される。
【００１４】
（処理動作）
次に、図１に示した時系列信号の符号化装置の処理動作について説明する。ここでは、時系列信号として複数のチャンネルを有する音響信号の場合を例にとって説明する。まず、時系列信号であるアナログの音響信号をデジタル化する。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周波数でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えば良い。本実施形態では、サンプリング周波数４４．１ＫＨｚ、量子化ビット数１６ビットで正負の符号を記録した場合を想定して以降説明する。サンプリング周波数４４．１ＫＨｚでサンプリングすると、１秒あたり４４１００個のサンプルにより構成されるサンプル列ができることになる。またここでは、音響信号が複数のチャンネルからなるので、各チャンネルごとにデジタル化が行われる。デジタル化された音響信号を模式的に示すと図２（ａ）のようになる。図２（ａ）は、２チャンネルのステレオ音響信号を示しており、Ｃｈ１にＬ（左）信号、Ｃｈ２にＲ（右）信号が記録されている。また、図２（ａ）から（ｄ）においては、左端が開始時刻であり、右端が終端時刻である。高さは各サンプルのビット数を示しており、本実施形態では、１６ビットとしている。
【００１５】
（信号平坦部の処理）
このようにしてデジタル化されたデジタル音響信号であるサンプル列に対して、信号平坦部符号化手段１０が、信号平坦部の処理を行う。信号平坦部とは、同一の信号レベルが連続する部分のことをいう。特に信号レベルが「０」の無音部、および信号レベルの絶対値が最大の飽和部に現れることが多い。無音部は実際に無音であるか、音が非常に小さく記録されなかった場合に生じるが、飽和部は、信号の録音およびＡ／Ｄ変換の過程において生じる。無音部、飽和部またはそれ以外の同一信号レベルが連続する場合のいずれであっても、信号平坦部は、同一の信号レベルが所定の時間（所定のサンプル数）連続して記録される。このため、この部分は圧縮し易いデータになっている。具体的には、信号平坦部の先頭時刻位置と、同一信号レベルが続くサンプルの個数と、信号レベル（サンプル値）の３つの値を信号平坦部データとして各チャンネルのサンプル列と分離して記録する。各チャンネルのサンプル列からは、信号平坦部が削除される。これを模式的に示すと図２（ｂ）（ｃ）に示すようになる。図２（ｂ）は、信号平坦部処理前のサンプル列である。図２（ｂ）において、網掛けで示した部分は信号平坦部を示す。信号平坦部符号化手段１０の処理により、信号平坦部は元のサンプル列からは削除され、図２（ｃ）に示すようになる。ただし、復号時に元通りに復元するために、分離された信号平坦部は、図２（ｅ）に示すような形式で記録しておく。
【００１６】
信号平坦部データは、上述のように、信号平坦部ごとに、その先頭時刻（サンプル番号）、サンプル数、サンプル値の３属性で記録する。ここで、先頭時刻とは、信号の開始位置からの時刻であり、図２（ｅ）の例では、先頭からのサンプル番号で記録している。このサンプル番号をサンプリング周波数で除算すれば、時刻に変換されることになる。サンプル数は、そのサンプル値がどの程度連続して続くかを示す情報である。なお、サンプル数の代わりに信号平坦部の終了時刻を記録するようにしても良い。サンプル値は、デジタル化された信号レベルを示している。本実施形態では、符号付き１６ビットで量子化しているので、最大値は「３２７６７」、最小値は「−３２７６８」となる。すなわち、「０」は無音部、「３２７６７」および「−３２７６８」は飽和部を示している。ただし、信号平坦部符号化手段１０は、信号平坦部を無条件には処理しない。本発明は、データの圧縮を目的としているため、サンプル列の削減分よりも信号平坦部データが大きくなると意味がないからである。したがって、信号平坦部となるサンプルが所定数以上連続する場合に限り信号平坦部データを作成して各チャンネルのサンプル列から分離するのである。
【００１７】
（予測誤差への変換）
続いて、信号平坦部の処理が行われたサンプル列の各サンプルの値を、予測誤差変換手段２０が予測誤差値に変換する。具体的には、直前の２つのサンプルを基に各サンプルの予測値と予測誤差を算出する。ここで、予測誤差の算出手法について、図３を用いて説明する。例えば、サンプル値ｘ（ｔ）が図３（ａ）に示すような状態である場合を考えてみる。図３（ａ）において、横軸は時刻（サンプル番号）、縦軸はサンプル値ｘ（ｔ）である。また、各時刻における線分は、各時刻におけるサンプル値ｘ（ｔ）の大きさを示している。このような状態で、時刻ｔのサンプルにおける予測誤差ｅ（ｔ）を算出する場合、直前の時刻ｔ−１におけるサンプル値ｘ（ｔ−１）および２つ前の時刻ｔ−２におけるサンプル値ｘ（ｔ−２）を利用して以下の〔数式１〕により算出する。
【００１８】
〔数式１〕
ｅ（ｔ）＝ｘ（ｔ）−２×ｘ（ｔ−１）＋ｘ（ｔ−２）−ｅ（ｔ−１）／２
【００１９】
上記〔数式１〕において、「２×ｘ（ｔ−１）−ｘ（ｔ−２）」は過去の２つのサンプルに基づく線形予測成分である。予測誤差変換手段２０は、この線形予測成分、および、直前のサンプルにおいて算出された予測誤差「ｅ（ｔ−１）／２」（誤差フィードバック成分）を用いて時刻ｔにおける予測誤差ｅ（ｔ）を算出する。全サンプルについて、予測誤差の算出を行い、サンプル値の代わりに予測誤差が記録される。
【００２０】
これを図３（ａ）に示したサンプルを基に説明する。まず、誤差フィードバック成分を加えない状態で各予測誤差ｅｏ（ｔ）を算出する。図３（ｂ）に示すように、時刻ｔの予測誤差ｅｏ（ｔ）を算出する場合、直前の時刻ｔ−１におけるサンプル値ｘ（ｔ−１）および２つ前の時刻ｔ−２におけるサンプル値ｘ（ｔ−２）を結ぶ予測線が時刻ｔでとる値と、時刻ｔにおけるサンプル値ｘ（ｔ）の差分（図中太点線で示す）に基づいて予測誤差ｅｏ（ｔ）が算出される。時刻ｔ＋１以降も同様に行って予測誤差ｅｏ（ｔ＋１）を算出する。算出された予測誤差ｅｏ（ｔ）は、図３（ｃ）に示すようになる。図３（ａ）と図３（ｃ）を比較するとわかるように値が変動する範囲が大きく狭まり、データ圧縮に都合が良くなる。
【００２１】
続いて、〔数式１〕に基づいて予測誤差ｅｏ（ｔ）に対して直前の時刻ｔ−１における補正が加わった予測誤差ｅ（ｔ−１）の５０％を減算させて、誤差フィードバック処理を加えた結果が図３（ｄ）である。図３（ｃ）と比べると、時刻ｔ＋１およびｔ＋２における予測誤差の低減が顕著である。逆に時刻ｔ＋３およびｔ＋４では予測誤差が増大しているが、平均的には予測誤差が低減し、図３（ａ）と比較すると値が変動する範囲が更に狭まり、データ圧縮効果が向上する。ただし、予測誤差変換手段２０による処理は、各サンプルの値を変えるだけであるため、音響信号を模式的に示した状態は、図２（ｃ）に示した状態のままである。
【００２２】
（チャンネル間演算）
次に、予測誤差値が記録された各チャンネルのサンプル列に対して、チャンネル間演算手段３０によりチャンネル間の差分演算が行われる。これは、同一時刻におけるサンプルデータの差分を単純にとることにより行われる。差分演算の結果は、一方のチャンネルのサンプル列として与え、他方のチャンネルのサンプル列の値は、元のままとしておく。具体的には、図２（ｃ）に示すような２チャンネルのステレオ音響信号の場合Ｃｈ１にはＬ信号の値をそのまま記録しておき、Ｃｈ２にはＲ−Ｌの差分値を与える。一般に、ステレオ音響信号では、同一時刻におけるそれぞれのデータには相関があり、各時刻における両データの差分値は元の値に比べて小さな値となる。これは線形予測により予測符号化した場合も同じである。そのため、図２（ｄ）の例では、Ｃｈ２における各サンプルの値が小さくなり、後に圧縮できる余地が大きくなる。
【００２３】
（フレーム間演算）
続いて、チャンネル間演算が行われた各チャンネルのサンプル列に対して、フレーム間演算手段４０が、所定の区間長をもつフレームを設定して、設定されたフレーム間の演算を行う。各フレームを構成するサンプル列の類似度を求め、類似しているフレームを選別する。本実施形態では、フレーム長をサンプル列の開始時刻から終了時刻までの全区間に渡って固定長としている。具体的には、１フレームを２５６サンプルとしている。フレーム間演算手段４０は、チャンネルデータの先頭から２５６サンプルずつを１フレームとして抽出し、各フレームの類似度を求めていくことになる。フレーム同士の類似度とは、両信号の相関を求めることになるので、相関計算を行うための種々の手法を用いることができるが、本実施形態では、各フレームにおいて対応する２５６サンプルに対して差分を計算し、各々の絶対値の最大値を算出する。本実施形態では、基本フレームに対して後続する１００フレームについて各々最大になる差分絶対値を算出し、最大値が所定値以下となるフレームを相関フレームとして選別し、前記基本フレームと１つのグループを形成することになる。この処理はサンプル列の全区間に渡って行われる。ここで、フレーム間演算手段４０の処理によるサンプル列の変化の様子を図４（ａ）〜（ｃ）に示す。なお、図４においては、図２と異なり１チャンネルしか示していないが、他のチャンネルについても同様に処理される。まず、図４（ａ）に示したように、固定長にフレーム化されたサンプル列は、固定長にフレーム化されたサンプル列は、フレームＦ１、Ｆ２、Ｆ３、．．．Ｆｎ、Ｆｎ＋１に分割される。
【００２４】
続いて、１つの基本フレームに対して後続する複数のフレームについて、差分を算出する。まず先頭のフレームＦ１と次のフレームＦ２内の各サンプルごとに差分を算出していく。本実施形態では、２５６個の差分値が各サンプル時刻に対して得られることになる。得られた差分値の絶対値の最大値をＦ２フレームにおけるＦ１フレームとの相関を示す指標値として記録しておく。同様に、Ｆ３フレームに対してもＦ１フレームとの差分絶対値の最大値を求め、最大値が最も小さくなるフレームを相関フレーム候補として選別する。例えば、フレームＦ１を基本フレームとしたとき、フレームＦ３の差分絶対値の最大値が最も小さいため、フレームＦ３が相関フレーム候補となる。そして、差分をとる前のフレームＦ３の各サンプル値の絶対値の最大値に比べ、前記差分絶対値の最大値が、所定の割合以下に減少している場合、フレームＦ３を相関フレームに決定し、基本フレームであるフレームＦ１とグループＡを形成する。この時、フレームＦ１はそのままであるが、フレームＦ３の各サンプルには、フレームＦ１との差分値に更新されることになる。差分値であることを示すために、処理後のフレームをフレーム「Ｆ３−Ｆ１」で表現することにする。さらに、後続するフレームに対しても同様の処理が行われる。例えば、基本フレームＦｍに対してフレームＦｎが相関フレームとして決定され、グループＧが構成されるとともに、フレームＦｎについても差分処理を行い、フレーム「Ｆｎ−Ｆｍ」が得られる。結局、グループ内の基本フレームは、そのままとなり、グループ内の相関フレームには、基本フレームとの差分が記録されることになる。
【００２５】
フレーム間演算手段４０は、上記差分演算処理と並列してフレーム間の関係であるフレーム構造データを記録していく。具体的には、どのフレームがグループ化されたかの情報を記録していくことになる。フレームの記録は、各フレームのフレーム番号を記録することにより行う。ここで、フレーム構造データの一例を図４（ｄ）に示す。図４（ｄ）に示すようにフレーム構造データには、グループ番号とそのグループに属する基本フレームと相関フレームの各々のＩＤ番号により記録している。このフレーム構造データは、復号時に元の信号を忠実に復元するために必要となる。フレーム間演算手段４０では、類似しているフレームを選別して各グループの相関フレームは基本フレームとの差分で記録するようにした。類似しているフレームの差分値は、値が小さくなるので、後述する処理で記録するビット数を変化させたときに、少ないビット数で表現することが可能となる。
【００２６】
（極性の処理）
続いて、極性処理手段５０が、正負の値をとる各サンプルの値を、正負の極性が付いたビット列に変換する。具体的には、１６ビットで正負の値を表現しているビット列を、先頭の１ビットを正負の極性符号とし、他の１５ビットで絶対値を表すように変換する。このように変換した場合、「０」については、極性符号が必要ないため、省略が可能となる。これにより、値が「０」のサンプル数×１ビット分が削減できることになる。
【００２７】
（上位ビットと下位ビットの分離）
極性処理が行われたら、次に、データ分離手段６０が、各サンプルの上位ビットと下位ビットの分離を行う。例えば、音響信号をＰＣＭによりデジタル化する際に、量子化ビット数１６でサンプリングした場合、各サンプルは１６ビットで表現されている。この場合、本実施形態では、上位ビット１２ビットと、下位ビット４ビットに分離する。この分離は、基本的に、Ａ／Ｄ変換機等、音響信号をデジタル化する際に用いる回路の熱雑音を分離するために行う。そのため、熱雑音であると考えられる下位ビットを分離するのである。下位ビットとして、どの程度分離するかは、音源や利用した回路の特性によっても変化するが、通常量子化ビット数の１／４程度とすることが望ましい。したがって、ここでは、１６ビットの１／４にあたる４ビットを下位ビットとして分離しているのである。本発明においては、特に、この上位ビットと下位ビットの分離を予測誤差に変換した後に行うことを特徴としている。これは、予測誤差への変換を上位ビットと下位ビットの分離後に上位サンプルに対して行うと、たとえ予測誤差への変換により圧縮可能な成分が下位ビットのなかに含まれていても、圧縮処理が行われないため、全体的に圧縮効率が低下する場合があるためである。
【００２８】
ここで、データ分離手段６０によるデータ分離の様子を図６に模式的に示す。図５において、Ｈは上位ビットもしくは上位サンプルデータを示し、Ｌは下位ビットもしくは下位サンプルデータを示す。図５（ａ）は分離前のサンプルデータである。データ分離手段６０により、サンプルデータは、図５（ｂ）に示す上位サンプルデータと図５（ｃ）に示す下位サンプルデータに分離されることになる。なお、上位ビットに含まれる符号ビットは、そのまま上位サンプルデータに含まれて分離される。図５の例で、「Ｈ４」として示したように、極性処理手段５０により符号ビットが削除されている場合には、符号ビットのない上位サンプルデータとなる。上記のようにして分離されたサンプルデータは、以降別々に処理されることになる。
【００２９】
（上位サンプルの信号平坦部処理）
次に、上位信号平坦部符号化手段７１が、各チャンネルの上位サンプル列に対して、信号平坦部の処理を行う。上位信号平坦部符号化手段７１が行う処理は、信号平坦部符号化手段１０が行った処理と全く同じである。すなわち、上位サンプル列中で同一の信号レベルが連続する部分を、信号平坦部の先頭時刻位置と、同一信号レベルが続くサンプルの個数と、信号レベル（サンプル値）の３つの値で構成される上位信号平坦部データとして、各チャンネルの上位サンプル列と分離して記録する。上位信号平坦部データは、図２（ｅ）に示した信号平坦部データと同様の形式で記録される。
【００３０】
（上位サンプルの符号化）
続いて、上位サンプル変換手段８０が、固定長の上位サンプル列を可変長に変換する。まず、最初にルックアップテーブル作成手段８１が、ビット構成の変換を行うために利用するルックアップテーブルの作成を行う。ルックアップテーブルの作成にあたって、上位サンプル列の全時刻に渡って、各上位サンプル値のヒストグラムを算出する。各上位サンプル値は上記極性処理手段５０により、全て絶対値化されているので、正負の区別なくヒストグラムを算出する。その結果、サンプル絶対値の種類が６４０以上となった場合、セパレータビットを２ビット固定値「００」とし、サンプル絶対値の種類が６３９以下となった場合、セパレータビットを１ビット固定値「０」とする。さらに、出現頻度の高いサンプル絶対値から順に、少ないビット数のビットパターンを割り当てていく。この際、割り当てるビットパターンには規則が有り、最上位ビットは必ず「１」とすると共に、セパレータビットが２ビット「００」の場合は「００１」のビットパターンを含むビットパターンは禁止し、セパレータビットが１ビット「０」の場合は「０１」のビットパターンを含むビットパターンは禁止する。また、セパレータビットが２ビット「００」の場合のルックアップテーブルは１つだけであるが、セパレータビットが１ビット「０」の場合のルックアップテーブルは、サンプル絶対値の種類が３２０以上の場合と、３２０未満の場合で異なるものを作成するようにしている。サンプル絶対値の種類の数に応じたルックアップテーブルの例を図６、図７に示す。
【００３１】
上記のようにして作成されたルックアップテーブルを用いて、ビットデータ変換手段８２が、１２ビット固定長の連続する上位サンプルデータを、可変長のビットパターンに変換していく。可変長になるため、変換後の各データの区切りを区別する必要が生じる。そのため、本実施形態では、ビットデータ符号化手段８３が、各データ間に上述のような１ビットもしくは２ビットのセパレータビットを挿入する。サンプル値の種類が３２０未満の場合、各順位のデータを表現するためのビット列、およびビット数は、図６（ａ）に示すようになる。図６（ａ）において、順位０位は、最もビット数が少ない１ビット「１」で表現される。図６（ａ）においては、変換前ビット列は省略してあるが、最も頻繁に現れるビット列が１ビット「１」に変換されることになる。また、各可変長ビットには、セパレータが必ず付加されるので、順位０位のデータを表現するためには、２ビットが必要となることになる。図６（ａ）に示すサンプル値の種類が３２０未満の場合は、セパレータビットが１ビット「０」であるため、「０１」のビットパターンは割り当てられないことになる。
【００３２】
また、サンプル値の種類が３２０以上６４０未満の場合、各順位のデータを表現するためのビット列、およびビット数は、図６（ｂ）に示すようになる。図６（ｂ）は、図６（ａ）に示したルックアップテーブルの各ビット列の最上位１ビットに後続して１ビットを付加したものを新たなビット列としている。例えば、図６（ｂ）において順位０位の「１０」と順位１位の「１１」は、図６（ａ）において順位０位の「１」に１ビット「０」と「１」をそれぞれ付加したものであり、図６（ｂ）において順位２位の「１００」と順位３位の「１１０」は、図６（ａ）において順位１位の「１０」の２ビット目に１ビット「０」と「１」をそれぞれ付加したものである。図６（ｂ）においても。各可変長ビットには、セパレータが必ず付加されるので、順位０位のデータを表現するためには、３ビットが必要となることになる。図６（ｂ）の例では、セパレータビットが１ビット「０」であるため、「０１」のビットパターンは割り当てられないことになるが、データの読出しの順序を工夫することにより復号時には正しいデータが抽出できるようになっている。
【００３３】
また、セパレータビットが２ビット「００」の場合、各順位のデータを表現するためのビット列、およびビット数は、図７に示すようになる。図７において、順位０位は、最もビット数が少ない１ビット「１」で表現される。図７においても、変換前ビット列は省略してあるが、最も頻繁に現れるビット列が１ビット「１」に変換されることになる。また、各可変長ビットには、セパレータが必ず付加されるので、順位０位のデータを表現するためには、３ビットが必要となることになる。図７の例では、セパレータビットが２ビット「００」であるため、「００１」のビットパターンは割り当てられないことになる。
【００３４】
図８（ａ）（ｂ）に、上位サンプル符号化手段８０によるデータ変換の様子を模式的に示す。図８（ａ）（ｂ）はいずれもサンプル列の上位部分に対応しており、図８（ａ）は固定長の上位サンプルが連続して記録されている様子を示している。図８（ａ）に示したような上位サンプル列は、図６（ａ）（ｂ）および図７に示したルックアップテーブルを用いて図８（ｂ）に示すように変換されることになる。
【００３５】
（下位サンプルの符号化）
一方、下位サンプルデータは、下位サンプル符号化手段９０により処理される。具体的には、データ分離手段６０により分離された下位２ビットのデータを連続に配置していく。
【００３６】
（符号データの記録）
以上のようにして得られた符号データは、図９に示すようになる。すなわち、上位可変長サンプル列、上位信号平坦部データ、ルックアップテーブル、下位固定長サンプル列、フレーム構造データ、信号平坦部データ、チャンネル間データとなる。このデータを記録すべき記録媒体に合わせたフォーマットで記録する。
【００３７】
（復号）
次に、上記符号化装置により符号化された符号データの復号について説明する。図１０は、本発明に係る時系列信号の復号装置の構成を示す機能ブロック図である。図１０において、９１はデータ読込手段、９２は上位サンプル変換手段、９３はデータ統合手段、９４は極性復元手段、９５はフレーム復元手段、９６はチャンネル復元手段、９７は独立サンプル復元手段、９８は信号平坦部挿入手段である。図１０に示す構成は、コンピュータおよびコンピュータに搭載される専用のソフトウェアプログラムにより実現される。
【００３８】
続いて、図１０に示した復号装置の処理動作について説明する。まず、図９に示したような符号データを記録した記録媒体を、データ読込手段９１が読み込む。データ読込手段９１は、読み込んだデータのうち、上位可変長サンプル列とルックアップテーブルを、上位サンプル変換手段９２に渡す。上位サンプル変換手段９２では、ルックアップテーブルを参照することにより、上位可変長サンプル列から、１２ビット（値が「０」のものについては１１ビット）固定長の上位固定長サンプル列を復元してゆく。この際、ルックアップテーブルが図６（ａ）もしくは図７に示したものである場合には、上位可変長サンプル列のビットデータを順番に読み込んで復元していけば問題ないが、図６（ｂ）に示したようなルックアップテーブルである場合には、変換時に工夫が必要となる。この場合、セパレータビットが１ビット「０」であるため、「０１」のビットパターンは本来禁止されるはずであるが、図６（ｂ）に示すように、変換後ビット列には、「０１」のビットパターンを含むものがある。そこで、本実施形態では、ビットパターンの書き込み順序を変更することで対応している。具体的には、図６（ａ）または図７の場合、常に１となる先頭ビットを最後に書き込むようにし、２ビット目から書き込むようにし、図６（ｂ）の場合、１および２ビット目を最後に書き込むようにし、３ビット目から書き込むようにしている。例えば、順位４位のビット列「１０１」は「０１」のビットパターンを含むが、このようなビット列の場合、まず３ビット目の「１」から読み込まれ、セパレータビットと第１ビットから構成される「０１」パターンを認識して、２ビット目が最後に読まれることになるため、セパレータの誤認識が生じない。この場合、上位サンプル変換手段９２は「１０１」のビット列を認識し、ルックアップテーブルに従って元の固定長ビット列が復元できる。
【００３９】
さらに、上位サンプル変換手段９２は読み込んだ上位信号平坦部データを上位固定長サンプル列の所定の位置に挿入していく。続いて、データ統合手段９３が上位固定長サンプル列と下位固定長サンプル列を統合する。具体的には、上位固定長サンプル列から１２ビットを抽出し、下位固定長サンプル列から４ビットを抽出して順次統合する処理を行う。続いて、極性復元手段９４が、正負の正負極性部１ビットと数値部１５ビットで表現されたサンプル列を正負の数値をとる１６ビットに変換する。
【００４０】
この時点で、各チャンネルのサンプル列は、図３（ｃ）に示したような構成となっている。フレーム復元手段９６は、このようなサンプル列に対して、フレーム構造データを用いて、どのフレームが基本フレームであるか、およびどのフレームが差分フレームになっているかを認識して復元する。この結果、図２（ｄ）に示すようなサンプル列が復元される。さらに、チャンネル復元手段９６がチャンネル間情報を用いて、どのチャンネルのサンプル列が元のままであるか、どのチャンネルのサンプル列がどのチャンネルのサンプル列との差分情報となっているかを認識して、サンプル列を復元する。この時点で各サンプルの値は前２つのサンプル値に基づく予測誤差で記録されているので、独立サンプル復元手段９７が、上記〔数式１〕の左辺の項と右辺第１項を交換した式に基づいて、元のサンプル値ｘ（ｔ）を順次復元してゆく。最後に、信号平坦部挿入手段９８は、図２（ｅ）に示したような信号平坦部データを用いて、図２（ｂ）に示すようにサンプル列の所定の位置に信号平坦部を挿入する。これにより、アナログ信号をＰＣＭ化した状態のデジタル音響信号がデータの欠落無く復元されることになる。
【００４１】
（フレーム間演算の変形例）
続いて、本発明に係る符号化装置の変形例について説明する。本発明においては、複数の構成手段により様々な処理が行われているが、各手段における処理は上記実施形態において説明したものに限定されるわけではない。まず、フレーム間演算手段４０について説明する。上記の例では、フレーム間演算手段４０は、２つの相関するフレームをグループ化し、各グループの相関フレームに対して基本フレームとの差分演算を行い、各グループの相関フレームを基本フレームとの差分で記録すると共に、復号時に正しく復元するために、フレーム構造データを記録した。上記のような例に代えて、以下のようなフレーム間演算を行うことも可能である。
【００４２】
まず、フレームを設定した後、各フレームを構成するサンプル列の類似度を求め、類似しているフレームを選別する。フレーム長は、サンプル列の開始時刻から終了時刻までの全区間に渡って固定長とし、上記の例と同様、１フレームを２５６サンプルとしている。チャンネルデータ（チャンネルを構成するサンプル列）の先頭から２５６サンプルずつを１フレームとして抽出し、各フレームの類似度を求めていくことになる。具体的には、各フレームにおける２５６サンプルのうち、他フレームにおける対応するサンプルとの差分値の絶対値の最大値を抽出し、最大値が所定値以内に収まるフレーム対を１つの類似フレームとして選別する。この処理はサンプル列の全区間に渡って行われる。この場合の、フレーム間演算処理によるサンプル列の変化の様子を図１１（ａ）〜（ｃ）に示す。なお、図１１においても、図３と同様に１チャンネルしか示していないが、他のチャンネルについても同様に処理される。まず、図１１（ａ）に示したように、固定長にフレーム化されたサンプル列は、フレームＡ１、Ａ２、Ａ３…に区分される。
【００４３】
続いて、各フレームについて、差分を算出する。ここでは、２５６個の差分値が各サンプル時刻に対して得られることになる。得られた差分値の絶対値の最大値が、所定値以内であれば、そのフレームの差分処理後のサンプル列を差分データとして、各チャンネルのサンプル列から分離して記録する。例えば、図１１（ｂ）に示されるように、フレームＡ１とフレームＡ２に対して処理を行った場合、先行するフレームＡ１はそのままであるが、フレームＡ１とフレームＡ２の差分値の絶対値の最大値が所定値内であるため、図１１（ｃ）に示されるように、フレームＡ２はそのチャンネルのサンプル列から分離され、他のフレームが前に詰められることになる。このように、１フレームが分離されると、サンプル列からは２５６サンプル削減されることになる。分離されたフレームＡ２は、そのままの値で記録されるのではなく、フレームＡ１とフレームＡ２の差分データが前記最大値を表現できる最小ビット数で記録される。フレームＡ２の情報は削除されるが、復号時にフレームＡ２の情報を復元するために、フレームＡ１とフレームＡ２の各サンプルの差分値（図１１中「Ａ２−Ａ１」と表現する）がフレーム間差分データとして分離される。フレーム間差分データは上記フレーム構造データに代えて、符号データとして記録されることになる。
【００４４】
一方、フレームＡ１とフレームＡ２の差分値の絶対値の最大値が所定値内に納まらない場合は、フレームＡ２の元のサンプル列をそのまま残すことになる。同様に、フレームＡ１とフレームＡ３、フレームＡ２とフレームＡ３、フレームＡ１とフレームＡ４、フレームＡ２とフレームＡ４、フレームＡ３とフレームＡ４、という具合に、後続するフレーム間に対しても同様の処理が行われる。このとき、フレームＡ１と類似するフレームとして削除されたフレームＡ２も後続するフレーム間差分処理において、元のサンプル列が参照される。また、差分演算処理の負荷を軽減するため、参照するフレーム間の距離は１００フレーム以内などの制限を加える。すなわち、フレームＡ１と差分演算処理を行うフレームはフレームＡ１００までとし、フレームＡ１０１以降は類似フレーム判断の対象から外す。
【００４５】
上記、フレーム間差分データは、差分処理を行った２つのフレーム番号も記録することになる。分離されたフレーム間差分データ内において同一の値が複数サンプル連続する場合は、連続する部分の先頭のサンプル番号と、サンプル値、および連続するサンプル数を記録することによりデータ量をさらに削減する。この場合、連続するサンプル数に代えて最後尾のサンプル番号を記録するようにしても良い。フレームがフレーム間差分データとして分離されたサンプル列は、分離されたフレーム以降のサンプル列を前に詰めることにより、全体のサンプル数が減ることになる。
【００４６】
（上位サンプル符号化の変形例）
また、上位サンプル符号化手段８０についても、上記の例に代えて以下のような処理を行うようにしても良い。なお、この場合、極性処理手段５０による極性処理は行わない。上位サンプル符号化手段８０は、１２ビット固定長の上位サンプル列に符号反転データの挿入を行う。具体的には、サンプル値が正の値から負の値に変化する部分に符号反転データを挿入し、負の値のサンプル値をその絶対値に置きかえる。符号反転データとしては、適当なビット列を割り当てておく。符号反転データは後の処理で異なるビット列に変換されるため、この時点では、他のサンプル列と区別ができるビット列であれば良い。ただし、他のサンプル列のビット数に合わせて１２ビットで構成されるようにしておく。
【００４７】
次に、上記の例と同様にビット構成の変換を行うために、ルックアップテーブル作成手段８１が、利用するルックアップテーブルの作成を行う。具体的には、まず全時刻に渡って、各サンプル値のヒストグラムを算出する。各サンプル値は上記処理において、全て絶対値化されているので、正負の区別なくヒストグラムを算出する。その結果、サンプル絶対値の種類が６４０以上となった場合、セパレータビットを２ビット固定値「００」とし、サンプル絶対値の種類が６３９以下となった場合、セパレータビットを１ビット固定値「０」とする。さらに、出現頻度の高いサンプル絶対値から順に、少ないビット数のビットパターンを割り当てていく。この際、割り当てるビットパターンには規則が有り、最上位ビットは必ず「１」とすると共に、セパレータビットが２ビット「００」の場合は「００１」のビットパターンを含むビットパターンは禁止し、セパレータビットが１ビット「０」の場合は「０１」のビットパターンを含むビットパターンは禁止する。セパレータビットが１ビット「０」、２ビット「００」の場合のルックアップテーブルの一例を図１２に示す。
【００４８】
上記のようにして作成されたルックアップテーブルを用いて、ビットデータ変換手段８２が、１２ビット固定長の連続する上位サンプルデータを、可変長のビットパターンに変換していく。可変長になるため、変換後の各データの区切りを区別する必要が生じる。そのため、ここでも、ビットデータ符号化手段８３が、各データ間に上述のような１ビットもしくは２ビットのセパレータビットを挿入する。セパレータビットが１ビット「０」の場合、各順位のデータを表現するためのビット列、およびビット数は、図１２（ａ）に示すようになる。図１２（ａ）において、順位０位は、最もビット数が少ない１ビット「１」で表現される。図１２（ａ）においては、変換前ビット列は省略してあるが、実際には、最も頻繁に現れる符号反転データが「１」で表現されることになる。また、各可変長ビットには、セパレータが必ず付加されるので、順位０位のデータを表現するためには、２ビットが必要となることになる。図１２の例では、セパレータビットが１ビット「０」であるため、「０１」のビットパターンは割り当てられないことになる。しかし、順位６位として示す「１０００」のビットパターンは、可変長ビットへの変換時に、直前のビットが「０」（セパレータビット）の場合に、例外的に「１０１」のビットパターンに変更することができる。このとき、直前のセパレータビットとビットパターンで「０１０１」のビット列が出現する。このビット列「０１０１」は、セパレータビットを挟んで順位０位のビット列「１」が２つ連続した場合と考えることもできる。しかし、順位０位のビット列「１」は符号反転データが割り当てられており、符号反転データが２つ連続することは有り得ないため、復号するためのシステムは、「１０１」のビット列のデータであると判断することができる。これにより、順位６位のビットパターンは、セパレータビットを合わせて、５ビットから４ビットに減らすことができる。
【００４９】
また、セパレータビットが２ビット「００」の場合、各順位のデータを表現するためのビット列、およびビット数は、図１２（ｂ）に示すようになる。図１２（ｂ）において、順位０位は、最もビット数が少ない１ビット「１」で表現される。上述のように、最も頻繁に現れる符号反転データが「１」で表現されることになる。また、各可変長ビットには、セパレータが必ず付加されるので、順位０位のデータを表現するためには、３ビットが必要となることになる。図１２（ｂ）の例では、セパレータビットが１ビット「００」であるため、「００１」のビットパターンは割り当てられないことになる。しかし、順位１４位として示す「１００００」のビットパターンは、可変長ビットへの変換時に、直前のビットが「００」の場合に、例外的に「１００１」のビットパターンに変更することができる。このとき、直前のセパレータビットとビットパターンで「００１００１」のビット列が出現する。このビット列「００１００１」は、セパレータビットを挟んで順位０位のビット列「１」が２つ連続した場合と考えることもできる。しかし、順位０位のビット列「１」は符号反転データが割り当てられており、符号反転データが２つ連続することは有り得ないため、復号するためのシステムは、「１００１」のビット列のデータであると判断することができる。これにより、順位１４位のビットパターンは、セパレータビットを合わせて、７ビットから６ビットに減らすことができる。
【００５０】
【発明の効果】
以上、説明したように本発明によれば、時系列信号に対して、サンプル列の各サンプルの値を、時間的に過去の複数のサンプルからの予測誤差値に変換し、予測誤差値に変換された各サンプル値を表現するビットデータを所定のビット位置で分断し、上位ビットのサンプル列で構成される上位サンプル列と、下位ビットのサンプル列で構成される下位サンプル列とに分離し、上位サンプル列に対しては、可変長符号で符号化を行うようにしたので、より効率の高い圧縮を行うことが可能となるという効果を奏する。
【図面の簡単な説明】
【図１】本発明に係る時系列信号の符号化装置の一実施形態を示す機能ブロック図である。
【図２】信号平坦部符号化手段１０およびチャンネル間演算手段３０による処理の様子を示す図である。
【図３】予測誤差変換手段２０による予測誤差算出処理の様子を示す図である。
【図４】フレーム間演算手段４０による処理の様子を示す図である。
【図５】データ分離手段５０による処理の様子を示す図である。
【図６】サンプル絶対値の種類が６４０未満の場合のルックアップテーブルの一例を示す図である。
【図７】サンプル絶対値の種類が６４０以上の場合のルックアップテーブルの一例を示す図である。
【図８】上位サンプルのビット長の変換を模式的に示す図である。
【図９】本発明に係る時系列信号の符号化装置により得られる符号データを示す図である。
【図１０】本発明に係る時系列信号の復号装置の一実施形態を示す機能ブロック図である。
【図１１】予測誤差算出処理の変形例の様子を示す図である。
【図１２】変形例におけるルックアップテーブルの一例を示す図である。
【符号の説明】
１０・・・信号平坦部符号化手段
２０・・・予測誤差変換手段
３０・・・チャンネル間演算手段
４０・・・フレーム間演算手段
５０・・・極性処理手段
６０・・・データ分離手段
７０・・・上位信号平坦部符号化手段
８０・・・上位サンプル符号化手段
８１・・・ルックアップテーブル作成手段
８２・・・ビットデータ変換手段
８３・・・ビットデータ符号化手段
９０・・・下位サンプル符号化手段
９１・・・データ読込手段
９２・・・上位サンプル変換手段
９３・・・データ統合手段
９４・・・極性復元手段
９５・・・フレーム復元手段
９６・・・チャンネル復元手段
９７・・・独立サンプル復元手段
９８・・・信号平坦部挿入手段
【図１】
2004221708.tif 000003
【図２】
2004221708.tif 000004
【図３】
2004221708.tif 000005
【図４】
2004221708.tif 000006
【図５】
2004221708.tif 000007
【図６】
2004221708.tif 000008
【図７】
2004221708.tif 000009
【図８】
2004221708.tif 000010
【図９】
2004221708.tif 000011
【図１０】
2004221708.tif 000012
【図１１】
2004221708.tif 000013
【図１２】
2004221708.tif 000014