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