(57)【要約】【課題】  画像や音声のデータ圧縮を高圧縮率で実現し、圧縮データをもとに品質の高いデータを再生できるようにする。【解決手段】  相関度演算部３６を、動画の各フレーム画像に対して空間方向用コードブックを用いて個々にベクトル量子化するとともに、得られたコード列を空間方向コード再配列演算部３９で再配列して複数の新たなベクトルとし、それらの新たなベクトルに対して更に時間軸用コードブックを用いてベクトル量子化するように構成し、１つのフレーム画像に対して空間方向に対するベクトル量子化を行うだけでなく、時間軸に沿った複数のフレーム間で時間軸方向に対するベクトル量子化も行うようにすることにより、各フレーム間に対してもデータ圧縮を行うことができるようにして、再生画像の品質を維持したままより高い圧縮率で動画を圧縮することができるようにする。【選択図】  図９
2005012823.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段とを備えたことを特徴とするデータ圧縮装置。
【請求項２】
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、上記各時刻におけるデータ間で対応するアドレスのコードどうしをまとめて新たなベクトルを複数生成するコード列再配列手段を備えたことを特徴とする請求項１に記載のデータ圧縮装置。
【請求項３】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段とを備えたことを特徴とするデータ圧縮装置。
【請求項４】
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列手段を備えたことを特徴とする請求項３に記載のデータ圧縮装置。
【請求項５】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段とを備えたことを特徴とするデータ圧縮装置。
【請求項６】
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列手段を備えたことを特徴とする請求項５に記載のデータ圧縮装置。
【請求項７】
少なくとも１つ以上のデータを有するデータ列をベクトルとし、少なくとも１つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項１または２に記載のデータ圧縮装置により生成されたコード列に対応するコードベクトルを上記第２のコードブックから夫々探し出して出力する第２のデコード手段と、
上記第２のデコード手段により出力された複数のコードベクトルを構成するコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、上記新たなベクトルを構成するコード列に対応するコードベクトルを上記第１のコードブックから夫々探し出して出力する第１のデコード手段とを備えたことを特徴とするデータ伸長装置。
【請求項８】
少なくとも１つ以上のデータを有するデータ列をベクトルとし、少なくとも１つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項３または４に記載のデータ圧縮装置により生成されたコード列に対応するコードベクトルを上記第２のコードブックから夫々探し出して出力する第２のデコード手段と、
上記第２のデコード手段により出力された複数のコードベクトルを構成するコード列と上記基準コード列との間で対応するアドレスのコードどうしを加算した結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、上記新たなベクトルを構成するコード列に対応するコードベクトルを上記第１のコードブックから夫々探し出して出力する第１のデコード手段とを備えたことを特徴とするデータ伸長装置。
【請求項９】
少なくとも１つ以上のデータを有するデータ列をベクトルとし、少なくとも１つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項５または６に記載のデータ圧縮装置により生成されたコード列に対応するコードベクトルを上記第２のコードブックから夫々探し出して出力する第２のデコード手段と、
上記第２のデコード手段により出力された複数のコードベクトルを構成するコード列について、コードをアドレス順に加算していった夫々の結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、上記新たなベクトルを構成するコード列に対応するコードベクトルを上記第１のコードブックから夫々探し出して出力する第１のデコード手段とを備えたことを特徴とするデータ伸長装置。
【請求項１０】
上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする請求項１〜６の何れか１項に記載のデータ圧縮装置。
【請求項１１】
上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の少なくとも近接する要素を時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする請求項７〜９の何れか１項に記載のデータ伸長装置。
【請求項１２】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータ列のうち、各時刻におけるデータ間で対応するアドレスのデータどうしをまとめて複数のベクトルとし、それらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を出力するベクトル量子化手段を備えたことを特徴とするデータ圧縮装置。
【請求項１３】
上記複数のベクトルを取り出す際に、上記ベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする請求項１２に記載のデータ圧縮装置。
【請求項１４】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象から少なくとも１つ以上の特徴量を抽出し、特徴量データと上記圧縮対象から上記特徴量を除いた基本パターンデータとに分離する分離手段を備え、
上記分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたことを特徴とするデータ圧縮装置。
【請求項１５】
上記分離手段によって時間軸に沿って変化する圧縮対象から分離された各時刻における基本パターンデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを基本パターン用の第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、
上記第１のベクトル量子化手段により各時刻毎に出力されたコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを基本パターン用の第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段と、
上記分離手段によって上記時間軸に沿って変化する圧縮対象から分離された各時刻における特徴量を構成するデータ列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを特徴量用の第３のコードブックから夫々探し出し、それらに対応するコード列を出力する第３のベクトル量子化手段とを備えたことを特徴とする請求項１４に記載のデータ圧縮装置。
【請求項１６】
少なくとも１つ以上のデータを有するデータ列をベクトルとし、少なくとも１つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項１４または１５に記載のデータ圧縮装置より出力された基本パターンに関するコード列に基づいて元の基本パターンデータを再現する基本パターン用の第１のデコード手段と、
請求項１４または１５に記載のデータ圧縮装置より出力された特徴量に関するコード列に基づいて元の特徴量データを再現する特徴量用の第２のデコード手段と、
上記第１、第２のデコード手段の出力結果を合成して元データを再現する合成手段とを備えたことを特徴とするデータ伸長装置。
【請求項１７】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化手段と、
上記ベクトル量子化手段により各時刻毎に出力されるコード列について、時間軸方向に隣接するデータの対応するアドレスどうしでコード間の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とするデータ圧縮装置。
【請求項１８】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象のカラー画像より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
輝度信号用のコードブックと色信号用のコードブックとを備え、上記色信号用のコードブックよりも上記輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたことを特徴とするデータ圧縮装置。
【請求項１９】
上記輝度信号であるＹ信号、および上記色信号であるＵ信号、Ｖ信号の圧縮レートが４：１：１もしくは４：２：２であることを特徴とする請求項１８に記載のデータ圧縮装置。
【請求項２０】
少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用いたことを特徴とするコードブックの作成方法。
【請求項２１】
少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記１回の処理で更新する範囲を上記仮想的な２次元平面上で１次元的に適用し、かつ更新回数の増加と共に範囲を減少させることを特徴とするコードブックの作成方法。
【請求項２２】
少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記更新係数の初期値を０．３〜１の範囲内の何れかの値とし、かつ更新回数の増加と共に上記更新係数の値を減少させることを特徴とするコードブックの作成方法。
【請求項２３】
少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用い、
上記１回の処理で更新する範囲を上記仮想的な２次元平面上で１次元的に適用し、かつ更新回数の増加と共に範囲を減少させ、
上記更新係数の初期値を０．３〜１の範囲内の何れかの値とし、かつ更新回数の増加と共に上記更新係数の値を減少させるようにしたことを特徴とするコードブックの作成方法。
【請求項２４】
少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
複数のサンプルデータに対して独立にコードブックを最適化し、得られた複数のコードブックを合成して新たなコードブックを作成するようにしたことを特徴とするコードブックの作成方法。
【請求項２５】
上記複数のサンプルデータに対して独立にコードブックを最適化する際に、請求項２０〜２３の何れか１項に記載の方法によりコードブックを作成するようにしたことを特徴とする請求項２４に記載のコードブックの作成方法。
【請求項２６】
コードブック内の各コードベクトルに関してあらかじめ求められた特徴量を記憶する特徴量記憶手段と、
上記圧縮対象より抽出されるベクトルの特徴量を求める特徴量演算手段と、
上記特徴量記憶手段に記憶されている各コードベクトルの特徴量と上記特徴量演算手段により求められた圧縮対象ベクトルの特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定する演算省略手段とを備えたことを特徴とする請求項１〜６、１０、１２〜１３、１７〜１９の何れか１項に記載のデータ圧縮装置。
【請求項２７】
上記特徴量は、ベクトルを構成するデータ列の値の総和、平均値もしくは直流成分であることを特徴とする請求項２６に記載のデータ圧縮装置。
【請求項２８】
上記特徴量は、ベクトルを構成するデータ列のうちの一部の要素の値を、とり得る値の中間値を基準として反転するように操作した後の値の総和、平均値もしくは直流成分であることを特徴とする請求項２６に記載のデータ圧縮装置。
【請求項２９】
上記特徴量は、ベクトルを構成するデータ列の値のブロック内での変化の方向であることを特徴とする請求項２６に記載のデータ圧縮装置。
【請求項３０】
上記特徴量は、ベクトルを構成するデータ列の値のブロック内での変化の態様であることを特徴とする請求項２６に記載のデータ圧縮装置。
【請求項３１】
上記演算省略手段は、あるコードベクトルの特徴量と上記圧縮対象ベクトルの特徴量との差分絶対値を求める差分絶対値演算手段と、
上記差分絶対値演算手段により求められた差分絶対値が、他のコードベクトルについて既に求められている類似度を表す値の最小値よりも大きい場合に、上記あるコードベクトルについての類似度の演算を省略する省略判定手段とを備えることを特徴とする請求項２６〜３０の何れか１項に記載のデータ圧縮装置。
【請求項３２】
コードブック内の各コードベクトルに関してあらかじめ求められた異なる種類の特徴量を記憶する特徴量記憶手段と、
上記圧縮対象より抽出されるベクトルについて異なる種類の特徴量を求める特徴量演算手段と、
上記特徴量記憶手段に記憶されている各コードベクトルに関する異なる種類の特徴量と、上記特徴量演算手段により求められた圧縮対象ベクトルに関する異なる種類の特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定する演算省略手段とを備えたことを特徴とする請求項１〜６、１０、１２〜１３、１７〜１９の何れか１項に記載のデータ圧縮装置。
【請求項３３】
少なくとも１つ以上のコードブックを保持しておくコードブックサーバと、データ圧縮システムと、データ伸長システムとを備えたデータ圧縮伸長システムであって、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記コードブックサーバは、上記データ圧縮システムおよびデータ伸長システムからの要求に従って、保持している何れかのコードブックを供給することを特徴とするデータ圧縮伸長システム。
【請求項３４】
上記コードブックサーバは、少なくとも１つ以上のコードブックを保持するコードブック保持手段と、
上記データ圧縮システムおよびデータ伸長システムからの要求に合ったコードブックを生成するコードブック生成手段と、
上記データ圧縮システムおよびデータ伸長システムからの要求に応じて、上記コードブック保持手段に保持されているコードブックもしくは上記コードブック生成手段により生成されたコードブックを供給するコードブック管理手段とを備えることを特徴とする請求項３３に記載のデータ圧縮伸長システム。
【請求項３５】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化ステップと、
上記第１のベクトル量子化ステップで各時刻毎に出力されたコード列のうち、上記各時刻におけるデータ間で対応するアドレスのコードどうしをまとめて新たなベクトルを複数生成するコード列再配列ステップと、
上記コード列再配列ステップで生成された複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化ステップとを有することを特徴とするデータ圧縮方法。
【請求項３６】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化ステップと、
上記第１のベクトル量子化ステップで各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列ステップと、
上記コード列再配列ステップで生成された複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化ステップとを有することを特徴とするデータ圧縮方法。
【請求項３７】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化ステップと、
上記第１のベクトル量子化ステップで各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列ステップと、
上記コード列再配列ステップで生成された複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化ステップとを備えたことを特徴とするデータ圧縮方法。
【請求項３８】
上記コード列再配列ステップで上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにしたことを特徴とする請求項３５〜３７の何れか１項に記載のデータ圧縮方法。
【請求項３９】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータ列のうち、各時刻におけるデータ間で対応するアドレスのデータどうしをまとめて複数のベクトルとし、それらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を出力するベクトル量子化ステップを有することを特徴とするデータ圧縮方法。
【請求項４０】
上記複数のベクトルを取り出す際に、上記ベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにすることを特徴とする請求項３９に記載のデータ圧縮方法。
【請求項４１】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象から少なくとも１つ以上の特徴量を抽出し、特徴量データと上記圧縮対象から上記特徴量を除いた基本パターンデータとに分離し、分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたことを特徴とするデータ圧縮方法。
【請求項４２】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化ステップと、
上記ベクトル量子化ステップで各時刻毎に出力されるコード列について、時間軸方向に隣接するデータの対応するアドレスどうしでコード間の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力する出力ステップとを有することを特徴とするデータ圧縮方法。
【請求項４３】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象のカラー画像より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
輝度信号用のコードブックと色信号用のコードブックとを備え、上記色信号用のコードブックよりも上記輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたことを特徴とするデータ圧縮方法。
【請求項４４】
上記輝度信号であるＹ信号、および上記色信号であるＵ信号、Ｖ信号の圧縮レートが４：１：１もしくは４：２：２であることを特徴とする請求項４３に記載のデータ圧縮方法。
【請求項４５】
圧縮対象より抽出されるベクトルの特徴量と、上記コードブック内の各コードベクトルに関する特徴量とを比較し、その比較結果に基づいて上記コードベクトルについて上記圧縮対象ベクトルとの類似度を求める演算を省略するようにしたことを特徴とする請求項３５〜４４の何れか１項に記載のデータ圧縮方法。
【請求項４６】
あるコードベクトルの特徴量と上記圧縮対象ベクトルの特徴量との差分絶対値を求める差分絶対値演算ステップと、
上記差分絶対値演算ステップで求められた差分絶対値が、他のコードベクトルについて既に求められている類似度を表す値の最小値よりも大きい場合に、上記あるコードベクトルについての類似度の演算を省略する省略判定ステップとを備えることを特徴とする請求項４５に記載のデータ圧縮方法。
【請求項４７】
異なる種類の特徴量を複数利用し、上記複数種類の特徴量と上記圧縮対象のベクトルより抽出される複数種類の特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定するようにしたことを特徴とする請求項４５または４６に記載のデータ圧縮方法。
【請求項４８】
少なくとも１つ以上のコードブックを保持しておくコードブックサーバと、データ圧縮システムと、データ伸長システムとを備えたデータ圧縮伸長システムにおいて、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、上記コードブックサーバが、上記データ圧縮システムおよびデータ伸長システムからの要求に従って、保持している何れかのコードブックを供給するようにしたことを特徴とするデータ圧縮伸長方法。
【請求項４９】
請求項１〜１７の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５０】
請求項２１〜２４の何れか１項に記載のコードブックの作成方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５１】
請求項２６または３２に記載の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５２】
請求項３３に記載の機能をコンピュータに実現させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５３】
請求項３５〜３７、３９、４２の何れか１項に記載の各ステップをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５４】
請求項４１または４５に記載のデータ圧縮方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５５】
請求項４８に記載のデータ圧縮伸長方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項５６】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化手段と、
上記ベクトル量子化手段により各時刻毎に探し出されるコードベクトルの特徴量について、時間軸方向に隣接するデータの対応するアドレスどうしで上記特徴量の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とするデータ圧縮装置。
【請求項５７】
上記出力制御手段は、或る時刻において、上記相関が所定値より小さいかどうかに関係なく、全アドレスまたは一部アドレスについて上記ベクトル量子化手段より出力されたコード列を出力するようにしたことを特徴とする請求項１７または５６に記載のデータ圧縮装置。
【請求項５８】
上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスは、圧縮対象のデータ中に存在する複数の隣接ブロックを含むアドレス、もしくは圧縮対象のデータ中に存在する複数の離散ブロックを含むアドレスであることを特徴とする請求項５７に記載のデータ圧縮装置。
【請求項５９】
上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスを、時間の経過と共に変化させるようにしたことを特徴とする請求項５７または５８に記載のデータ圧縮装置。
【請求項６０】
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化ステップと、
上記ベクトル量子化ステップで各時刻毎に探し出されるコードベクトルの特徴量について、時間軸方向に隣接するデータの対応するアドレスどうしで上記特徴量の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力する出力ステップとを有することを特徴とするデータ圧縮方法。
【請求項６１】
上記出力ステップでは、或る時刻においては、上記相関が所定値より小さいかどうかに関係なく、全アドレスまたは一部アドレスについて上記ベクトル量子化ステップにて出力されたコード列を出力することを特徴とする請求項４２または６０に記載のデータ圧縮方法。
【請求項６２】
上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスは、圧縮対象のデータ中に存在する複数の隣接ブロックを含むアドレス、もしくは圧縮対象のデータ中に存在する複数の離散ブロックを含むアドレスであることを特徴とする請求項６１に記載のデータ圧縮方法。
【請求項６３】
上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスを、時間の経過と共に変化させるようにしたことを特徴とする請求項６１または６２に記載のデータ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ圧縮装置および方法、データ伸長装置および方法、データ圧縮伸長システムおよび方法、コードブックの作成方法、更にはこれらの処理を実行させるためのプログラムを記憶した記録媒体に関し、特に、データ圧縮手法の１つとしてベクトル量子化を用いる装置、システムおよび方法に用いて好適なものである。
【背景技術】
【０００２】
従来、データ圧縮の手法が種々提案されている。その中で、圧縮データの伸長処理を非常に簡単に行うことが可能なデータ圧縮アルゴリズムの１つとして、「ベクトル量子化」という手法が良く知られている。このアルゴリズムは、古くから信号処理の分野で知られており、特に、画像信号や音声信号のデータ圧縮、あるいはパターン認識に応用されてきた。
【０００３】
このベクトル量子化では、ある大きさ（例えば４×４画素のブロック）の画素パターンを幾つか用意しておき、それぞれにユニークな番号などを与える（この集合体を「コードブック」という）。そして、例えば２次元配列の画像データ中から同じ大きさ（例えば４×４画素）のブロックを順次取り出し、それと最も似通ったパターンをコードブック中から見つけ出して、そのパターンの番号を当該ブロックに当てはめるというデータ圧縮を行う。ベクトル量子化では、１つのブロック内のデータ列が１つのベクトルに対応する。
【０００４】
このようにコード化された圧縮データの受信側あるいは伸長側では、各ブロック毎に番号に対応するパターンをコードブックの中から取り出すだけで、元の画像を再現することができる。したがって、伸長側では、コードブックさえ受け取っているか、あるいはあらかじめ保持していれば、特に特殊な演算は必要としないため、非常に簡単なハードウェアで元の画像を再生することが可能となる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のようなベクトル量子化において、例えば画像や音声信号のデータ圧縮を行う際に、高い圧縮率を保持したままいかに高品質の再生画像や再生音声を得るのか、また、ベクトル量子化を実行する上で必ず必要となるコードブックとしていかに性能の良いものを作成するかが課題となっている。
【０００６】
従来、高い圧縮率を実現するために、例えば、画像データから取り出すブロックの大きさを大きくしたり、コードブックを構成するブロックの個数を少なくするといった努力が成されている。また、コードブックの最適化の手法としては、Kohonenの自己組織化マップの手法などを始めとして幾つかの手法が用いられていた。
【０００７】
しかしながら、例えばベクトル量子化の手法を用いて画像をデータ圧縮する際に、高い圧縮率を実現しようとすると、どうしても再生画像の画質が劣化してしまうという問題が生じる。逆に、再生画像の画質を高めようとすると、ベクトル量子化以外の処理が入るため、結果的に圧縮率は高くならないという問題があった。
【０００８】
画像データの圧縮に用いられるベクトル量子化技術は、静止画に対してベクトル量子化を行うように成されている。したがって、動画像を圧縮する場合は、各々のフレームに対してベクトル量子化を行い、更にベクトル量子化以外の技術を組み合わせることにより実現されてきた。よって、特に動画の場合には、圧縮率が結果的に高くならない割には、再生画像の画質が悪いという問題があった。
【０００９】
また、上記Kohonenの自己組織化マップの手法などのコードブックの最適化技術は、サンプル画像などを用いて適当な数式処理を行うことにより、コードブックの最適化を図るものである。したがって、得られるコードブックは、最適化の際に使用したデータに対してのみ有用なコードブックとなってしまうという問題があった。
【００１０】
すなわち、例えば、ある人の顔の画像データを用いて最適化されたコードブックは、その最適化に用いた画像に対しては最良のコードブックとなるが、他の画像に対しては必ずしも最良のコードブックになるとは限らない。したがって、例えば、そのコードブックを他の人の顔の画像データに対して用いてデータ圧縮を実施すると、圧縮データから再生した画像の画質は低下することになる。
【００１１】
さらに、最適化に用いた画像と同じ人の顔という分類に含まれる画像に対しては、再生画像として比較的良好な画質が得られても、風景や文字といった異なる分類の画像に対しては、画質が劣化してしまうことが多い。つまり、コードブックのパターンが画像によって全く異なっているため、汎用性の低いコードブックになってしまうという問題があった。
【００１２】
また、コードブックを用いたベクトル量子化の技術では、入力ベクトルと最も似通ったパターンのコードベクトルをコードブック中から探し出す処理や、圧縮コードに対応するコードベクトルをコードブック中から取り出して表示する処理に多くの演算を要し、処理に時間がかかるという問題もあった。
【００１３】
本発明は、このような問題を解決するために成されたものであり、例えば画像や音声信号のデータ圧縮をベクトル量子化によって行う場合に、データ圧縮を高い圧縮率で実現するとともに、それにより得られた圧縮データをもとに品質の高いデータを再生できるようにすることを目的とする。
また、本発明は、高性能で、種々の画像に対応できる汎用性の高いコードブックを実現できるようにすることも目的とする。
さらに、本発明は、ベクトル量子化による圧縮時および伸長による画像再生時の処理速度を向上させることも目的とする。
【課題を解決するための手段】
【００１４】
第１の本発明は、少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、上記第１のベクトル量子化手段により各時刻毎に出力されたコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段とを備えたことを特徴とする。
【００１５】
第２の発明は、少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段とを備えたことを特徴とする。
【００１６】
第３の発明は、少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第１のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第１のベクトル量子化手段と、上記第１のベクトル量子化手段により各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第２のコードブックから夫々探し出し、それらに対応するコード列を出力する第２のベクトル量子化手段とを備えたことを特徴とする。
【００１７】
第４の発明は、上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする。
また、上記第１〜第３の発明であるデータ圧縮装置とは逆の処理を行う伸長側にて複数の新たなベクトルを生成する際に、上記新たなベクトル内の少なくとも近接する要素を時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする。
【００１８】
第５の発明は、少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、上記圧縮対象から少なくとも１つ以上の特徴量を抽出し、特徴量データと上記圧縮対象から上記特徴量を除いた基本パターンデータとに分離する分離手段を備え、上記分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたことを特徴とする。
【００１９】
第６の発明は、少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化手段と、上記ベクトル量子化手段により各時刻毎に出力されるコード列について、時間軸方向に隣接するデータの対応するアドレスどうしでコード間の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とする。
また、第６の発明の他の態様では、上記ベクトル量子化手段により各時刻毎に探し出されるコードベクトルの特徴量について、時間軸方向に隣接するデータの対応するアドレスどうしで上記特徴量の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とする。
【００２０】
第７の発明は、少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象のカラー画像より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、輝度信号用のコードブックと色信号用のコードブックとを備え、上記色信号用のコードブックよりも上記輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたことを特徴とする。
【００２１】
第８の発明は、少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、上記初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用いたことを特徴とする。
また、上記１回の処理で更新する範囲を上記仮想的な２次元平面上で１次元的に適用し、かつ更新回数の増加と共に範囲を減少させることを特徴とする。
また、上記更新係数の初期値を０．３〜１の範囲内の何れかの値とし、かつ更新回数の増加と共に上記更新係数の値を減少させることを特徴とする。
【００２２】
第９の発明は、少なくとも１つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な２次元平面上で指定された範囲の内容を１回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、複数のサンプルデータに対して独立にコードブックを最適化し、得られた複数のコードブックを合成して新たなコードブックを作成するようにしたことを特徴とする。
【００２３】
第１０の発明は、コードブック内の各コードベクトルに関してあらかじめ求められた特徴量を記憶する特徴量記憶手段と、上記圧縮対象より抽出されるベクトルの特徴量を求める特徴量演算手段と、上記特徴量記憶手段に記憶されている各コードベクトルの特徴量と上記特徴量演算手段により求められた圧縮対象ベクトルの特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定する演算省略手段とを備えたことを特徴とする。
【００２４】
第１１の発明は、少なくとも１つ以上のコードブックを保持しておくコードブックサーバと、データ圧縮システムと、データ伸長システムとを備えたデータ圧縮伸長システムであって、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、上記コードブックサーバは、上記データ圧縮システムおよびデータ伸長システムからの要求に従って、保持している何れかのコードブックを供給することを特徴とする。
【００２５】
第１２の発明は、上記第６の発明において、上記出力制御手段が、或る時刻において、上記相関が所定値より小さいかどうかに関係なく、全アドレスまたは一部アドレスについて上記ベクトル量子化手段より出力されたコード列を出力するようにしたことを特徴とする。
【発明の効果】
【００２６】
以上詳しく説明したように、第１〜第３の発明によれば、時間軸に沿って変化する圧縮対象をベクトル量子化する際に、同一時間内の１つのデータ列に対して空間方向に対するベクトル量子化を行うだけでなく、時間軸に沿った複数のデータ列間で時間軸方向に対するベクトル量子化も行うようにしたので、例えば、動画像の各フレーム内でデータ圧縮を行うだけでなく、各フレーム間に対してもデータ圧縮を行うことができる。これにより、再生画像の品質を維持したままより高い圧縮率で動画を圧縮することができる。
【００２７】
また、第４の発明によれば、圧縮時において時間軸方向に対するベクトル量子化を行うために複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにするか、もしくは、伸長時にて上記圧縮時とは逆の処理を行う際に複数の新たなベクトルを生成する場合に、上記新たなベクトル内の少なくとも近接する要素を時間軸方向にずらして配列するようにしたので、例えば圧縮対象として動画を用いた場合、伸長時に各時間毎の画像を再生していく毎に目立っていた量子化誤差を目立たなくすることができ、動画の高い圧縮率を保ったまま品質の良い再生画像を得ることができる。
【００２８】
また、第５の発明によれば、圧縮対象から少なくとも１つ以上の特徴量を抽出して特徴量データと残りの基本パターンデータとに分離し、分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたので、様々な特徴が絡み合った圧縮対象そのものに対するコードブックに比べて、それぞれのデータのベクトル量子化で使用するコードブックを単純化することができ、必要なパターン数も減らすことができる。これにより、ベクトル量子化により類似度の大きいパターンをコードブック中から探し出す際に、より適切なパターンに絞り込みやすくなり、高精度のベクトル量子化を行うことができる。したがって、例えば圧縮対象として画像データを用いた場合、高い圧縮率を保ったままより高品位な再生画像を得ることができる。
【００２９】
また、第６の発明によれば、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれベクトル量子化を実行し、これにより各時刻毎に得られるコード列あるいはそのコード列に対応するコードベクトルの特徴量について、時間軸方向の相関が小さい部分のみコードを出力するようにしたので、例えば圧縮対象として動画を用いた場合、フレーム間でデータ値が大きく変化したところのデータだけを転送し、変化が少ないところのデータは転送しないようにすることができる。これにより、個々のフレーム内で空間方向に対してベクトル量子化をした結果に加えて、フレーム間に対してもデータを圧縮することができ、高い圧縮率で動画を圧縮・転送することができる。
【００３０】
また、第７の発明によれば、カラー画像をベクトル量子化する場合に、色信号用のコードブックよりも輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたので、画質にとってより重要度の大きい輝度信号に関してより類似度の高いコードベクトルをベクトル量子化によって得ることができる。したがって、全体としてのコード長を変えないようにすることで、圧縮率を維持したまま再生画像の画質を向上させることができる。
【００３１】
また、第８の発明によれば、コードブックの作成する際に、初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用い、１回の処理で更新する範囲を仮想的な２次元平面上で１次元的に適用し、かつ更新回数の増加と共に範囲を減少させ、更新係数の初期値を０．３〜１の範囲内の何れかの値とし、かつ更新回数の増加と共に更新係数の値を減少させるようにしたので、コードブックの最適化をより効率的に行うことができるとともに、高精度なコードブックを得ることができる。これにより、生成されたコードブックを例えば画像のデータ圧縮伸長システムに用いることで、再生画像の画質を向上させることができる。
【００３２】
また、第９の発明によれば、コードブックを作成する際に、複数のサンプルデータに対して独立にコードブックを最適化し、得られた複数のコードブックを合成して新たなコードブックを作成するようにしたので、様々な画像に対して耐性を有するコードブックを作成することができる。これにより、コードブックを記憶するための装置のサイズを大きくすることなく、汎用的なコードブックを得ることができる。
【００３３】
また、第１０の発明によれば、圧縮対象より抽出されるベクトルの特徴量と、コードブック内の各コードベクトルの特徴量とを比較し、その比較結果に基づいて、各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定するようにしたので、類似度の演算に比べて演算量の少ない特徴量の演算を行うことによって適宜類似度の演算を省略することができ、圧縮対象ベクトルに類似したコードベクトルを検索する操作を行う際に、その検索に必要な演算量を少なくすることができ、ベクトル量子化の演算を全体として高速に行うことができる。
【００３４】
また、第１１の発明によれば、ベクトル量子化により圧縮伸長を行う際に必ず必要となるコードブックを圧縮・伸長システムとは別に用意するようにしたので、各圧縮・伸長システムはコードブックを保持する必要がなく、実際のデータのみを転送するだけで良くなり、より容量の少ない媒体を使ってデータ転送を行うことができる。これにより、非常に簡単なデータ転送システムを実現することができる。
【００３５】
また、第１２の発明によれば、上記第９の発明に関して、或る時刻においては相関が所定値より小さいかどうかに関係なく、ベクトル量子化手段より出力された全アドレスまたは一部アドレスについてのコード列を更新データとして出力するようにしたので、相関が所定値よりも小さく前フレームのデータをそのまま用いるという状態が続いていたとしても、その状態を更新データの送信によって断つことができ、時間の経過に伴う画質の劣化を抑えることができる。
【発明を実施するための最良の形態】
【００３６】
（第１の実施形態）
第１の実施形態においては、静止画に対してベクトル量子化を行う際に、通常は例えば４×４画素のような正方形のブロックに対してベクトル量子化を行うところを、１６×１画素のように１ラインで成るブロックに対してベクトル量子化を行う。さらに、ベクトル量子化時あるいはその圧縮画像の再生の際に、画像の水平方向にブロックを各ライン毎にずらす処理を行う。
【００３７】
図１および図２は、それぞれ第１の実施形態に係るデータ圧縮装置および伸長装置の構成を示す機能ブロック図であり、図３および図４は、それぞれ図１および図２に示したデータ圧縮装置およびデータ伸長装置の動作を示すフローチャートである。また、図５および図６は、本実施形態による伸長側の動作を説明するための説明図である。
【００３８】
まず、図５および図６について説明する。図５では、ベクトルとして画像上の走査線に沿ったラインブロックをベクトルデータとして用いた場合（本実施形態のラインブロック方式）について、従来の正方形のブロックをベクトルデータとした場合（マクロブロック方式）と比較して説明している。図５（ａ）は従来のマクロブロック方式を示し、図５（ｂ）は本実施形態のラインブロック方式を示している。
【００３９】
図５（ａ）に示すように、コードブックメモリには、例えば４×４画素のマクロブロックを構成する１６個のデータ列を１つのコードベクトルとして、このコードベクトルがアドレス順に多数記憶されている。このコードベクトルを利用して再生画像を生成し、それをディスプレイ等に表示する際には、１６個のデータ列が４×４の正しい画素位置に表示されるように、ディスプレイメモリ上でアドレス変換を行う必要があった。
【００４０】
これに対して、図５（ｂ）に示す本実施形態のラインブロック方式では、１６×１画素の１つのライン上でブロックを抽出してベクトル量子化を行っている。このラインブロック内のデータ配列は、ディスプレイのスキャン方向と合致しているので、正方形のマクロブロックの場合に必要だったアドレス変換操作は回避することができる。また、この場合のコードブックも、Kohonenの自己組織化マップの手法を用いれば容易に得ることができる。
【００４１】
図７は、６４０×４８０画素の１枚の画像を圧縮、伸長、表示する処理を行う際に、それぞれの処理にかかる所用時間を測定した結果を示す図である。この図７を見ると、従来のマクロブロック方式では、ベクトル量子化（ＶＱ）に約５０msec、デコードに約１６０msec、表示に約６０msecの時間を要している。デコードにこれだけの時間がかかる理由は、上述したように、コード番号で指定されたコードベクトルをコードブックメモリから取り出してディスプレイに表示できる形式にする際に、アドレス変換が必要なためである。
【００４２】
このような場合、一般的にはアドレス変換用の専用チップを用意してその高速化を図るのだが、本実施形態ではもっと簡単に高速化を図るための手段として、上述のラインブロック方式による手法を提案している。
図７には、ラインブロック方式をとった場合の各処理時間も示している。ベクトル量子化および表示走査にかかる時間はマクロブロック方式の場合と変化はないが、デコード時間は１６０msecから大幅に短縮できていることが分かる。
【００４３】
また、マクロブロック方式およびラインブロック方式の何れの場合も（特にラインブロック方式をとった場合）、コードベクトルのパターン画像を順番に整然と貼り込んで再生画像を表示すると、再生画像の各ラインの両端のパターンの大きな不連続点がどうしても目立ってしまう。そこで、図６に示すように、本実施形態では、コードベクトルのパターンを貼り込む位置を各ライン毎に少しずつずらす工夫をとった（以下、これをスライドブロック方式と称する）。
【００４４】
このように、少なくとも近接するライン間ではコードベクトルのブロックを画像の水平方向にずらしてはめ込むようにすると、各ブロック境界の連続性が断たれてブロック境界（量子化誤差）が目立ちにくくなる。これにより、再生画像の両端に毛羽立ったような部分は見えるが、概ね良好な画像が得られるようになる。なお、この画像の両端部分の乱れは、表示をするときにマスクをかけることで容易に除去することが可能である。
【００４５】
本実施形態では、近接するライン間で画像の水平方向にブロックをずらしていく処理を、図６で説明したようにベクトル量子化後の画像の再生時に行うだけでなく、ベクトル量子化時にも行う。すなわち、画像の左上から順番にきちんとブロックを切り出してくるのではなく、画像の水平方向にずらしながらブロックを切り出してベクトル量子化を行うようにしている。
【００４６】
次に、以上に述べた第１の実施形態に係る構成および動作を、主に図１〜図４に基づいて説明する。図１において、１は画像入力部であり、圧縮対象の原画像データを入力する。入力された画像データは、画像メモリ２に一旦蓄えられ、読み出し部３からのアドレス制御等により読み出されて出力される。
【００４７】
４はブロック化部であり、上記画像メモリ２から読み出された画像データを、例えば１６×１画素単位のラインブロックに分割する。その際、少なくとも近接するライン間で画像の水平方向にずらしながらブロックを切り出すようにする。なお、近接する水平ラインとの間でブロックの位置がずれていれば、ずらす方向と量は任意に設定可能である。また、ここではブロック化部４を設けているが、読み出し部３が画像データの読み出しを行うときに、上述のようにラインブロックをずらしながら読み出すようにすれば、このブロック化部４は必ずしも必要ではない。
【００４８】
５はコードブック記憶部であり、原画像から抽出されるラインブロックと同じ大きさ（１６×１画素のブロック）の画素パターンをコードベクトルとしてあらかじめ複数記憶している。６はベクトル量子化部であり、上記ブロック化部４によって原画像から抽出されたある１つのラインブロックのデータと、コードブック記憶部５に記憶されている複数のコードベクトルのデータとを夫々比較することにより、原画像のブロックデータと最も似通ったパターンをコードブック中から見つけ出して、そのパターンのコード番号を出力する。この操作を、原画像中から抽出される全てのラインブロックについて行う。
【００４９】
また、図２において、７はコード番号入力部であり、圧縮側で特定された各ブロック毎のコード番号列を入力する。入力されたコード番号列は、コードメモリ８に一旦蓄えられ、読み出し部９からのアドレス制御等により読み出されて出力される。１０はコードブック記憶部であり、例えば１６×１画素で成るブロックの画素パターンをコードベクトルとしてあらかじめ複数記憶している。このコードブックは、伸長処理に先立って圧縮側のコードブックを伝送して記憶するようにしても良いし、最初から同じものを記憶しておくようにしても良い。
【００５０】
１１は再生画像生成部であり、コードメモリ８より読み出されたコード番号列をもとに、これらに対応するコードベクトルのパターン画像を夫々コードブック記憶部１０から読み出して当てはめる処理を行う。１２はブロックシフト部であり、再生画像生成部１１より出力された再生画像を構成する各ブロックを画像の水平方向にずらす処理を行う。その際、例えば少なくとも近接する水平ライン間でブロックの位置がずれていれば、ずらす方向と量は任意に設定可能である。このようなシフト処理を施された再生画像は、画像メモリ１３に一旦蓄積された後、図示しない表示装置に送られて表示される。
【００５１】
上記図１に示した圧縮側の動作を示す図３において、まずステップＳ１で初期化処理を行う。ここでは、処理済のブロックをカウントするためのブロックカウンタ（図１では図示せず）、画像バッファ（図１の画像メモリ２）、およびベクトル量子化により決定したコード番号を格納するためのコードバッファ（図１では図示せず）をそれぞれクリアする処理を行う。
【００５２】
次に、ステップＳ２で原画像を入力し、画像バッファに格納する。そして、ステップＳ３で、その画像バッファに格納された原画像中からｘ×ｙ画素の大きさのブロック（ｘ，ｙは任意の値だが、上述の例ではｘ＝１６，ｙ＝１）を読み出す。この読み出しの際には、少なくとも近接する水平ライン間でブロックの位置がずれるようにブロックの位置を調整する。
【００５３】
そして、ステップＳ４で、読み出したブロックのデータに対してベクトル量子化の処理を行い、コードブック記憶部５に記憶されているコードブックの中から上記読み出したブロックのデータと最も相関度の大きいコードベクトルを探し出し、それに対応するコード番号（Winner code ）を決定する。次に、ステップＳ５で、得られたコード番号をコードバッファに格納する。ここに格納されたコード番号は、その後外部に出力される。なお、このコードバッファは必ずしも必要ではない。
【００５４】
次に、ステップＳ６に進み、画像中の全てのブロックについて上述の処理が終了したかどうかを判断する。終了していなければ、ステップＳ７でブロックカウンタの値を１だけ増やした後、ステップＳ３に戻って同様の処理を繰り返す。このようにして画像中の全てのブロックについてコード番号を決定して出力することにより、原画像が圧縮される。
【００５５】
また、上記図２に示した伸長側の動作を示す図４において、まずステップＳ８で初期化処理を行う。ここでは、処理済のブロックをカウントするためのブロックカウンタ（図２では図示せず）、再現画像バッファ（図２の画像メモリ１３）、および入力されたコード番号を格納するためのコードバッファ（図２のコードメモリ８）をそれぞれクリアする処理を行う。
【００５６】
次に、ステップＳ９で、圧縮側で生成されたコード番号列を入力し、コードバッファに格納する。そして、ステップＳ１０で、格納されたコード番号列のうち、現在のブロックカウンタで示される１つのコード番号をもとにデコード処理を行う。すなわち、コードブック記憶部１０に記憶されているコードブックの中から、コード番号に対応するコードベクトル（パターン画像）を取り出して再現画像バッファに格納する。その際、取り出されたｘ×ｙ画素のブロックを、少なくとも近接する水平ライン間で位置がずれるように格納する。
【００５７】
ここで、本実施形態では、圧縮側のステップＳ３と伸長側のステップＳ１０とで、ブロックのずらし方が互いに逆の関係となるようにする。すなわち、ステップＳ３においてあるブロックラインについて右方向にｉ画素分ずらしたら、ステップＳ１０では、そのブロックラインについては左方向にｉ画素分ずらすようにする。このようにすることで、再生される再現画像中には各ブロックライン毎のずれがなくなくので、量子化誤差を目立たなくすることができるだけでなく、再生画像の画質を更に向上させることができる。
【００５８】
次に、ステップＳ１１に進み、画像中の全てのブロックについて上述の処理が終了したかどうかを判断する。終了していなければ、ステップＳ１２でブロックカウンタの値を１だけ増やした後、ステップＳ１０に戻って同様の処理を繰り返す。このようにして画像中の全てのブロックについてコードブック中からパターン画像を取り出して再現画像バッファに格納することにより、ここに格納された再現画像がディスプレイ等に与えられて表示される。
【００５９】
なお、以上の例では、圧縮側と伸長側との両方でブロックをずらす例を説明したが、圧縮側においてのみ、もしくは伸長側においてのみブロックをずらすようにしても良い。この場合は、再現画像中に各ブロックライン毎のずれが含まれることはあるものの、量子化誤差自体は目立たなくすることができ、従来例に比べて再生画像の画質を向上させることができる。
【００６０】
また、ここでは静止画のデータ圧縮について説明しているが、動画の場合は個々のフレームに対してベクトル量子化を行うことから、この動画のデータ圧縮についても同様に適用することができる。
本実施形態では、図８に示すベクトル量子化ＰＣＩバスボード２２を用いて、動画像をベクトル量子化により圧縮し、圧縮を行った結果から動画像の再生を行うシステムを実現している。以下に、その詳細な説明を行う。
【００６１】
図８に示すベクトル量子化ボード２２には、例えば８ビット１６次元（４×４画素）のコードベクトルを２５６個搭載可能なチップが８個実装されており、合わせて２０４８個のコードベクトルを用いてベクトル量子化を実行可能となっている。これらのチップは、例えばＦＰＧＡ（Field Programmable Gate Array）により構成されたＰＣＩバスインターフェースを介して図示しないコンピュータと接続されている。
【００６２】
ベクトル量子化を行う際には、まずあらかじめ作成しておいたコードブックを構成している全てのコードベクトルをメモリ２１からベクトル量子化ボード２２のチップ上に転送しておく。次に、あらかじめメモリ２１に保存しておいた動画像データを順次ベクトル量子化ボード２２に送り、ベクトル量子化を実行する。ベクトル量子化の結果得られたコード番号は、一旦メモリ２１に格納される。そして、このコード番号をもとにそれに対応するコードベクトルをメモリ２１から読み出し、デコードを実行する。デコードされた再生画像データは、コンピュータのディスプレイ２３に送られ、画像として表示される。
【００６３】
ここでは、コードブックを構成しているコードベクトルの個数を２０４８個とし、コードベクトルを構成しているデータの個数を１６個としているが、これは１つの具体例であり、ここで述べた数値に制限されるものでないことは言うまでもない。また、ここで構成したシステムにおいて用いた画像サイズ、並びにベクトル量子化を行う際のブロックサイズについても、１つの具体例であり、ここで述べた数値に制限されるものでないことも言うまでもない。
【００６４】
以上のように、第１の実施形態では、ベクトル量子化の処理単位であるブロックを、例えば１６×１画素のようなラインブロックとしている。これは、ディスプレイのスキャン方向に合っているため、再生の際のアドレス変換処理が不要となり、画像の再現スピードが速くなる（４×４画素のマクロブロックでベクトル量子化を行った場合に比べて、約３．５倍の再現スピードが得られる）。
【００６５】
例えば、１フレームが６４０×４８０画素の動画像に対してマクロブロック方式によりデータ圧縮を行うと、フレームレートは４フレーム／秒程度であるが、本実施形態のラインブロック方式によれば、毎秒１４フレーム程度のベクトル量子化動作が実現できる。
【００６６】
表示部分の処理時間の短縮は、表示プログラムの改善により実現可能である。また、現在のシステムでは、ベクトル量子化処理にかかる時間は、その６割程度が入力ベクトルをベクトル量子化ボードに転送するためのアドレス変換および転送時間で占められており、実際にベクトル量子化チップが動作しているのはわずかである。したがって、転送バス幅を拡張してＣＰＵの処理能力を高めることにより、処理速度を更に短縮することが可能である。これらの改善を実行することで、毎秒３０フレームのベクトル量子化動作は実現可能である。
【００６７】
また、本実施形態では、画像の水平方向に各ブロックをずらしながら切り出してベクトル量子化を行い、あるいは各ブロックをずらしながら画像の再現を行っているので、ブロックをそのまま順番にはめ込んだ場合に画像の両端において目立つブロック境界による縦線（量子化誤差）が分散されて目立たなくなり、画質を向上させることができる。
【００６８】
なお、以上の実施形態ではラインブロック方式とスライドブロック方式とを併用しているが、何れか一方のみを用いても良い。ラインブロック方式だけを採用した場合は少なくとも画像の再現スピードを速くすることができ、スライドブロック方式だけを採用した場合は少なくとも量子化誤差を目立たなくすることができる。
【００６９】
また、以上の実施形態では、１枚の画像内で空間方向に対してブロックをずらす例を示しているが、複数のフレームを有する動画像をデータ圧縮する場合において、フレーム間において時間軸方向に対してブロック内の要素をずらすようにしても良い。このようにした場合にも、再生画像中の量子化誤差を目立たなくすることができる。
【００７０】
（第２の実施形態）
動画像に対して圧縮を行う際に、動画を構成する各々のフレーム（静止画）に対してベクトル量子化を行うだけでは、高い圧縮率を得ることは難しい。そこで第２の実施形態では、複数フレームの各静止画に対してフレーム内でのベクトル量子化を行うだけでなく、複数フレームの各静止画の同じアドレスどうしのデータをベクトルと成し、フレーム間でもベクトル量子化を適用してデータ圧縮を行うようにする。
【００７１】
図９および図１０は、第２の実施形態によるデータ圧縮伸長システムの一構成例を示す機能ブロック図であり、図１１は、第２の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、図９は圧縮側の構成を示し、図１０は伸長側の構成を示している。また、伸長時のデータの流れは基本的に圧縮時の流れと逆であり、図１１から想定できるので、伸長時のデータフロー図はここでは特に示していない。
【００７２】
ここでは、図１１に示すように、１フレームが６４０×４８０画素からなり、１画素当たりの輝度値が８ビット表現された動画像に対して圧縮伸長を行う場合について述べる。また、ここでは説明の都合上、１６フレーム分の画像に対して圧縮伸長を行っているものとする。
【００７３】
図９において、３１は画像入力部であり、圧縮対象の原画像データ、ここでは動画像データを各フレーム毎に順次入力する。入力された画像データは、各フレーム毎に画像メモリ３２に一旦蓄えられ、読み出し部３３からのアドレス制御等により読み出されて出力される。
【００７４】
３４はブロック化部であり、上記画像メモリ３２から読み出された画像データを、例えば４×４画素単位のブロックに分割する。なお、ここではブロック化部３４を設けているが、読み出し部３３が画像データの読み出しを行うときに、ブロック単位で読み出すようにすれば、このブロック化部３４は必ずしも必要ではない。
【００７５】
３５は空間方向用コードブック記憶部であり、１枚の静止画（フレーム）に対して当該フレーム内でベクトル量子化を行うためのコードブック（１つのフレーム空間内でベクトル量子化を行うためのコードブックであるので、以下ではこれを「空間方向用コードブック」と称する）をデータベースとしてあらかじめ記憶しておくものである。
【００７６】
ここでは、この空間方向用コードブックは、１６個のデータからなるデータ列を１つのコードベクトルとし、そのコードベクトルを複数組み合わせたものである。ここでは、２０４８ベクトル分を組み合わせて空間方向用コードブックを構成している。
【００７７】
３６は相関度演算部であり、演算モード指定部３７により空間方向ベクトル量子化を行うモードが指定されているときは、順次入力される各フレーム毎に、上記空間方向用コードブック記憶部３５に記憶されている空間方向用コードブックを用いて、当該コードブック中の複数のコードベクトルと原画像からの入力ベクトルとの相関、つまり類似度を算出する。
【００７８】
ここで類似度とは、例えば、２つのベクトルデータをある関数に入力して演算することで、両者がどれくらい似ているかを数値化したものを言う。上記関数の代表的なものとしては、２つの入力ベクトルデータのマンハッタン距離（差分絶対値距離）やユークリッド距離を求める関数が挙げられる。例えばマンハッタン距離は、入力ベクトルを構成している個々の要素のデータと、コードベクトルを構成してい個々の要素のデータとの差分絶対値を夫々求め、得られたそれぞれの差分絶対値を加算することで得られる。
【００７９】
入力ベクトルに最も似通ったコードベクトルを探し出すためには、空間方向用コードブックを構成する各コードベクトル毎に例えば上述のようなマンハッタン距離を求め、その距離が最も小さいものを探し出す。
なお、類似度を求めるための関数は、上記の関数に限らず、目的に応じて任意の関数を使うことができる。例えば、一方あるいは双方のベクトルデータに対して係数（重み）を付けた関数や、ブロック内の特徴量データ（例えば、ベクトルデータの要素の総和）を計算する関数などを使っても良い。
【００８０】
３８はコード決定部であり、上記相関度演算部３６による類似度の演算結果に基づいて、類似度の最も大きいコードベクトルに対応するコード番号をそのブロックの圧縮コード（Winner code）として出力する。この相関度演算部３６およびコード決定部３８によりベクトル量子化手段が構成される。ここでのベクトル量子化の手法としては、従来の手法を用いても良いし、第１の実施形態で述べた手法を用いても良い。
【００８１】
以下、この空間方向ベクトル量子化の動作について、図１１を用いて詳しく説明する。まず、第１フレーム目の画像について、上記空間方向用コードブックを用いてベクトル量子化を行う。ここでは、第１フレーム目の画像を水平方向に４画素、垂直方向に４画素ずつ区切ったブロック領域をそれぞれ入力ベクトルと定義し、その１つの入力ベクトルと、空間方向用コードブックを構成している各コードベクトルとの類似度を求め、入力ベクトルに最も似通ったコードベクトルのコード番号を特定する。
【００８２】
この操作をフレーム内の全ての入力ベクトルに対して行うことにより、第１フレーム目の画像を４×４画素に分割した各ブロック領域を、空間方向用コードブック中のコードベクトルに対応するコード番号で置き換える。図１１中に１２７，１９８，…と示した数字は、画像の左上から右下方向に向かって順に抽出したそれぞれのブロックについて置き換えたコード番号を示している。
【００８３】
次に、第２フレーム目の画像から第１６フレーム目の画像まで計１５枚の画像に対して、上記第１フレーム目の画像と同じ処理を行い、それぞれのフレーム画像について、フレーム内を夫々４×４画素に分割した各ブロック領域を、空間方向用コードブック中のコードベクトルに対応するコード番号で置き換える。
【００８４】
図９に戻り、３９は空間方向コード再配列演算部であり、上記空間方向ベクトル量子化手段によって空間方向用コードブックのコード番号で表現された各フレームの画像に対して、同じアドレスが示すブロックのコード番号をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各コード番号を１つのデータ列としてまとめて表現する。
【００８５】
つまり、図１１のように１６フレーム分の画像に対して空間方向ベクトル量子化を行った場合、第１フレーム目の画像中の指定されたアドレスのブロックのコード番号が、新しく作られるデータ列の０番地の位置に置かれ、第２フレーム目の画像中の上記第１フレーム目の画像と同じアドレスのブロックのコード番号が、新しく作られるデータ列の１番地の位置に置かれる。このように、１６フレーム分の同アドレスのブロックのコード番号に対して並べ替えが行われ、最後の第１６フレーム目の画像中の同じアドレスのブロックのコード番号は、新しく作られるデータ列の１５番地の位置に置かれることになる。
【００８６】
このようにして新しく生成された１６個のコード番号列を含む集合を、新たなベクトルとする。以下では、これを「時間軸ベクトル」と称する。図１１に示した例の場合、例えば、第１フレーム目〜第１６フレーム目の各フレームの先頭アドレスで指定されるブロックのコード番号を並べ替えた（１２７，２８７，５８，…，１４８３，８７６）のデータ列が、１つの時間軸ベクトルに相当する。
【００８７】
本例のように、１フレームが６４０×４８０画素の画像の場合で、かつ１つのブロック領域を４×４画素とした場合、１フレームの画像からは１６０×１２０＝１９２００個のブロックが生成される。よって、上述のような並べ替え処理を空間方向ベクトル量子化を行った画像のすべての範囲に対して行うと、１９２００個の時間軸ベクトルが新しく生成されることとなる。
【００８８】
再び図９に戻り、４０は時間軸用コードブック記憶部であり、上記のように作成された時間軸ベクトルに対してベクトル量子化を行うためのコードブック（時間の経過と共に与えられる複数のフレーム間に渡るデータに対してベクトル量子化を行うためのコードブックであるので、以下ではこれを「時間軸用コードブック」と称する）をデータベースとしてあらかじめ記憶しておく。この時間軸用コードブックも、１６個のデータからなるデータ列を１つのコードベクトルとし、そのコードベクトルを２０４８個組み合わせたものである。
【００８９】
上記空間方向コード再配列演算部３９により画像のすべての範囲に対して並べ替えが行われると、時間軸ベクトル量子化開始信号が出力され、それが演算モード指定部３７に与えられる。これに応じて演算モード指定部３７は、時間軸ベクトル量子化を行うモードに切り替える。相関度演算部３６は、演算モード指定部３７により時間軸ベクトル量子化を行うモードが指定されているときは、上記空間方向コード再配列演算部３９により作成された各時間軸ベクトルに対して、上記時間軸用コードブック記憶部４０に記憶されている時間軸用コードブックを用いてベクトル量子化を行う。
【００９０】
以下、この時間軸ベクトル量子化の動作について、図１１を用いて詳しく説明する。すなわち、先に生成された１９２００個の時間軸ベクトルのうち、ある１つの時間軸ベクトルと、時間軸用コードブックを構成している各コードベクトルとの類似度を演算し、その類似度が最も大きいコードベクトルの時間軸用コードブック内のアドレス（コード番号）を特定する。なお、類似度の演算については上述した通りである。
【００９１】
この操作を全ての時間軸ベクトルに対して行うことにより、空間方向ベクトル量子化後のコード番号列で表現されていた複数の時間軸ベクトルを、時間軸用コードブック中の各コードベクトルに対応するコード番号列で置き換える。図１１の例では、例えば上述した（１２７，２８７，５８，…，１４８３，８７６）の時間軸ベクトルが"１０"という時間軸コード番号に置き換えられている。この段階で、１６フレーム分の６４０×４８０画素分の画像は、例えば１１ビット表現された１９２００個のデータから成るデータ列（１０，９８４，…）で表現されており、これが伸長側に供給される。
【００９２】
したがって、１６フレーム分の動画像を圧縮側から伸長側に転送しようとする場合、空間方向用コードブックと時間軸用コードブックとをあらかじめ伸長側に送っておき（伸長側において最初から同じものを持っていても良い）、その後、上述の一連の処理によって得られた時間軸コードブックのコード番号列で表現されたリストを送れば良い。これにより、３９３２１６００ビットの情報量を有する１６フレーム分の画像を、約０．０１倍にあたる４２２４００ビットの情報量を有する時間軸コードブックのコード番号列にまで、画質を保持したまま圧縮することができる。
【００９３】
図１０に示す伸長側では、このようにして圧縮側から転送されてきたデータをもとに、もとの１６フレーム分の画像を再現することができる。まず、時間軸コード入力部４１は、圧縮側より転送されてきた時間軸用コードブックのコード番号列を入力する。入力された時間軸コード番号列は、時間軸コードメモリ４２に一旦蓄えられ、読み出し部４３からのアドレス制御等により読み出されて出力される。
【００９４】
そして、空間方向コード再生部４４は、時間軸コードメモリ４２より読み出された時間軸コード番号列を用いて、個々の時間軸コード番号に対応するコードベクトルを、例えば圧縮側からあらかじめ転送され時間軸用コードブック記憶部４５に記憶されている時間軸コードブックから取り出す。そして、取り出した各コードベクトルを順に配列することにより、空間方向のコード番号を再生する。
【００９５】
ここでは、時間軸コードメモリ４２より読み出された時間軸コード番号列には１９２００個の時間軸コード番号が含まれており、これらの時間軸コード番号に対応する時間軸コードブックの１つのコードベクトルは１６個のデータから構成されている。そのため、上記空間方向コード再生部４４の処理により順番に配列されたコードベクトルのデータは、全部で３０７２００個のデータ（空間方向コード番号）から構成される。
【００９６】
このようにして再生された空間方向コード番号列は、空間方向コードメモリ４６に一旦蓄えられ、読み出し部４７からのアドレス制御等により読み出されて出力される。次に、再生画像生成部４８は、上記のように配列された３０７２００個のデータ列から１６個おきにデータを取り出し、１９２００個のデータで１つのデータ列を生成し、これをベクトルとする。以下ではこれを、上述した時間軸ベクトルに対して「空間方向ベクトル」と称する。
【００９７】
この操作を３０７２００個のデータ列の全空間に渡って行うことにより、空間方向コードメモリ４６から読み出した空間方向コード番号列を１６個の空間方向ベクトルに１６分割する。ここで生成された１６個の空間方向ベクトルは、それぞれ第１フレーム目から第１６フレーム目までの画像を再現するための空間方向コード番号列の集合である。
【００９８】
再生画像生成部４８は、さらに、１６個に分割された空間方向ベクトル列のそれぞれについて、その空間方向ベクトルを構成する個々の空間方向コード番号（１９２００個）に対応するコードベクトルを、例えば圧縮側からあらかじめ転送され空間方向用コードブック記憶部４９に記憶されている空間方向用コードブックから参照して探し出す。そして、該当するコードベクトル（パターン画像）のデータを各ブロック位置に順次はめ込むことにより、元の画像を再生する。
【００９９】
このような処理を１６個に分割された空間方向ベクトル列が得られる毎に行うことにより、元の１６フレーム分の画像を再生することができる。なお、３０７２００個の空間方向コード番号列から１６個おきにデータを取り出す操作を読み出し部４７が行うようにすれば、再生画像生成部４８は、１９２００個のデータが読み出される毎に各フレームの再生画像を順に生成することができる。
【０１００】
このようにして再生された画像は、画像メモリ５０に一旦蓄積された後、図示しない表示装置に送られて表示されたり、あるいは図示しない記憶装置に送られて記憶されたりする。
【０１０１】
なお、この第２の実施形態では、１つのベクトルを構成するデータの数が１６個であり、空間方向用コードブックおよび時間軸用コードブックがそれぞれ２０４８個のコードベクトルで構成されているとしたが、これは本実施形態を説明するにあたって分かりやすくするために挙げた例であり、ここで述べた数値に限定されるべきでないのは言うまでもない。
【０１０２】
また、ここでは１６フレーム分の画像をベクトル量子化により圧縮することについて述べたが、圧縮を行うフレームの枚数は１６フレームに限定されるものではなく、必要な枚数のフレームをベクトル量子化により圧縮しても良いことは言うまでもない。また、ここでは動画像を用いた実施形態を示しているが、動画像に限らず、音声信号を対象にしても同様に適用することができる。
【０１０３】
また、この第２の実施形態では、１つの相関度演算部３６を空間方向ベクトル量子化と時間軸ベクトル量子化とで使い回すようにしているが、それぞれのベクトル量子化用に２つ設けても良い。
【０１０４】
（第３の実施形態）
図１２は、第３の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、第３の実施形態によるデータ圧縮伸長システムの構成は、第２の実施形態とほぼ同様なのでここでは図示を省略する。ただし、空間方向コード再配列演算部３９および再生画像生成部４８における処理内容が第３の実施形態では多少異なっているので、これについては詳しく説明する。
【０１０５】
本実施形態では、図１２に示すように、１７フレーム分の画像に対して圧縮を行っている。このため、相関度演算部３６では、演算モード指定部３７により空間方向ベクトル量子化を行うことが指定されているときに、第１のフレーム目の画像から第１７のフレーム目の画像まで計１７枚の画像に対して空間方向ベクトル量子化の処理を行うことにより、それぞれのフレーム画像について、夫々４×４画素に分割した各ブロック領域を、空間方向用コードブック中のコードベクトルに対応するコード番号で置き換える。
【０１０６】
空間方向コード再配列演算部３９は、上記相関度演算部３６によって空間方向用コードブックのコード番号で表現された各フレームの画像中で同じアドレスが示すブロックのコード番号について、第１フレーム目（これを基準フレームとする）のコード番号と各フレームのコード番号との差分を夫々算出し、その結果をフレーム画像順に並べ替える。なお、並べ替えた後に個々のアドレス毎に基準フレームとの差分を計算しても良い。
【０１０７】
すなわち、図１２に示すように、まず第１フレーム目と第２フレーム目とで同じアドレスどうしのコード番号間で差分をとり、次に第１フレーム目と第３フレーム目とで同じアドレスどうしのコード番号間で差分をとる。以下同様にして、第１フレーム目と第４〜第１７フレーム目とで同じアドレスどうしのコード番号間で差分をとる。そして、同じアドレスが示すブロックの差分結果をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各差分コード番号を１つのデータ列としてまとめて表現する。
【０１０８】
つまり、図１２のように１７フレーム分の画像に対して空間方向ベクトル量子化を行った場合、第１フレーム目の画像のコード番号と第２フレーム目の画像のコード番号との差が、新しく作られるデータ列の０番地の位置に置かれ、第１フレーム目の画像のコード番号と第３フレーム目の画像のコード番号との差が、新しく作られるデータ列の１番地の位置に置かれる。
【０１０９】
このように、第１フレーム目のコード番号と残り１６フレーム分のコード番号とのそれぞれの差に対して並べ替えが行われ、最後の第１フレーム目の画像のコード番号と第１７フレーム目の画像のコード番号との差は、新しく作られるデータ列の１５番地の位置に置かれることになる。相関度演算部３６は、演算モード指定部３７により時間軸ベクトル量子化を行うことが指定されているときは、このようにして並べ替えられた時間軸ベクトル列に対して時間軸ベクトル量子化の処理を行い、時間軸用コードブックの時間軸コード番号列を出力する。
【０１１０】
この段階で、１７フレーム分の６４０×４８０画素分の画像は、例えば１１ビット表現された１９２００個のデータから成るデータ列で表現されている。したがって、１７フレーム分の動画像を転送する場合、空間方向用コードブックと時間軸用コードブックとをあらかじめ伸長側に送っておき、その後、上述の一連の処理によって得られた時間軸コードブックのコード番号列で表現されたリストと、第１フレーム目の画像が空間方向用コードブックのコード番号列で表現されたデータ列とを送れば良い。
【０１１１】
これにより、４１７７９２００ビットの情報量を有する１７フレーム分の画像を、約０．０１倍にあたる４２２４００ビットの情報量を有する時間軸コードブックのコード番号列にまで、画質を保持したまま圧縮することができる。
【０１１２】
伸長側では、このようにして圧縮側から転送されてきたデータをもとに、もとの１７フレーム分の画像を再現することができる。再生画像生成部４８によって３０７２００個の配列データを１６個の空間方向ベクトルに１６分割するところまでは、第２の実施形態と同様である。本実施形態では、さらに、圧縮側より送られてきている第１フレーム目の空間方向ベクトル量子化後のコード番号と、再生画像生成部４８により再生された各空間方向ベクトルを構成しているコード番号差分との加算を行い、コード番号のデータ列を再構成する。
【０１１３】
再生画像生成部４８は、第１フレーム目の空間方向ベクトルと、１６個に分割され再構成された空間方向ベクトル列とのそれぞれについて、その空間方向ベクトルを構成する個々のコード番号に対応するコードベクトルを、空間方向用コードブック記憶部４９に記憶されている空間方向用コードブックから探し出してはめ込んでいくことにより、元の画像を再生する。これにより、元の１７フレーム分の画像を再生することができる。
【０１１４】
なお、この第３の実施形態では、１つのベクトルを構成するデータの数が１６個であり、空間方向用コードブックおよび時間軸用コードブックがそれぞれ２０４８個のベクトルで構成されているとしたが、これは本実施形態を説明するにあたって分かりやすくするために挙げた例であり、ここで述べた数値に限定されるべきでないのは言うまでもない。
【０１１５】
また、ここでは１７フレーム分の画像をベクトル量子化により圧縮することについて述べたが、圧縮を行うフレームの枚数は１７フレームに限定されるものではなく、必要な枚数のフレームをベクトル量子化により圧縮しても良いことは言うまでもない。また、ここでは動画像を用いた実施形態を示しているが、動画像に限らず、音声信号を対象にしても同様に適用することができる。
【０１１６】
（第４の実施形態）
図１３は、第４の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、第４の実施形態によるデータ圧縮伸長システムの構成も、第２の実施形態とほぼ同様なのでここでは図示を省略する。ただし、空間方向コード再配列演算部３９および再生画像生成部４８における処理内容が第４の実施形態では多少異なっているので、これについては詳しく説明する。
【０１１７】
図１３に示すように、本実施形態においても第３の実施形態と同様に、１７フレーム分の画像に対して圧縮を行っているが、空間方向コード再配列演算部３９で行う差分演算の内容が上述の例とは異なっている。すなわち、第３の実施形態では、第１フレーム目の画像のコード番号と残りの各フレームのコード番号との差分を夫々演算していたが、第４の実施形態では、互いに隣り合うフレームどうしでコード番号の差分を演算する。
【０１１８】
すなわち、図１３に示すように、まず第１フレーム目と第２フレーム目とで同じアドレスどうしのコード番号間で差分をとり、次に第２フレーム目と第３フレーム目とで同じアドレスどうしのコード番号間で差分をとる。以下、第１６フレーム目と第１７フレーム目とで差分をとるまで同様の処理を行う。そして、同じアドレスが示すブロックの差分結果をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各差分コード番号を１つのデータ列としてまとめて表現する。
【０１１９】
また、第４の実施形態による伸長側の構成および動作も、第３の実施形態の場合とほぼ同じであるが、再生画像生成部４８で行う加算の内容が異なっている。すなわち、第４の実施形態では、互いに隣り合うフレームの空間方向ベクトルを構成しているコード番号どうしで加算を行い、それぞれの加算結果でコード番号のデータ列を再構成する。
【０１２０】
すなわち、まず、圧縮側より送られてきている第１フレーム目の空間方向ベクトル後のコード番号と、再生画像生成部４８により再生された１つ目の空間方向ベクトルを構成しているコード番号差分との加算を行い、第２フレーム目の画像の空間方向ベクトルを生成する。
【０１２１】
次に、生成された第２フレーム目の画像の空間方向ベクトルを構成しているコード番号と、再生画像生成部４８により生成された２つ目の空間方向ベクトルを構成しているコード番号差分との加算を行い、第３フレーム目の画像の空間方向ベクトルを生成する。同じ操作を残りの空間方向ベクトルについても順番に行うことにより、第１フレーム目を除く１６フレーム分の空間方向ベクトルのコード番号列を再構成する。
【０１２２】
なお、この第４の実施形態でも、１つのベクトルを構成するデータの数が１６個であり、空間方向用コードブックおよび時間軸用コードブックがそれぞれ２０４８個のベクトルで構成されているとしたが、これは本実施形態を説明するにあたって分かりやすくするために挙げた例であり、ここで述べた数値に限定されるべきでないのは言うまでもない。
【０１２３】
また、ここでは１７フレーム分の画像をベクトル量子化により圧縮することについて述べたが、圧縮を行うフレームの枚数は１７フレームに限定されるものではなく、必要な枚数のフレームをベクトル量子化により圧縮しても良いことは言うまでもない。また、ここでは動画像を用いた実施形態を示しているが、動画像に限らず、音声信号を対象にしても同様に適用することができる。
【０１２４】
また、ここではフレーム間のコード番号の差分をとる方法として、隣り合うフレームどうしのコード番号差分をとっているが、必ずしも隣り合うフレーム間のコード番号の差分をとる必要はないことは言うまでもない。
【０１２５】
以上のように、第２〜第４の実施形態によれば、空間方向ベクトル量子化の処理に加えて時間軸ベクトル量子化の処理を導入することにより、動画像の各フレーム内でデータ圧縮を行うだけでなく、各フレーム間に対してもデータ圧縮を行うことができ、より高い圧縮率を得ることができる。
【０１２６】
すなわち、１枚のフレーム画像に対して空間方向ベクトル量子化のみを行ったときの圧縮率は１／１１．６程度であるが、時間軸ベクトル量子化を導入して例えば１６フレーム分の動画像に対してデータ圧縮を行うと、圧縮率は１６倍（圧縮の対象となるフレーム枚数倍）になり、１／１８５．６となる。
【０１２７】
（第５の実施形態）
本実施形態では、圧縮した画像を再生する際に、より高画質な再生画像を得るための手法の具体例について述べる。なお、時間軸方向に画像データを圧縮する手法については、第２〜第４の実施形態で述べた何れの手法を用いてもよいが、ここでは第２の実施形態の手法を用いた場合を例にとって説明する。
【０１２８】
上述した第２の実施形態では、空間方向コード再生部４４により再生された３０７２００個の空間方向コード番号列を再配列して生成した１６個の空間方向ベクトルに対して、それらを構成する個々のコード番号に対応するコードベクトルを空間方向用コードブック記憶部４９内の空間方向用コードブックから参照し、該当するパターン画像のデータを各ブロック位置にはめ込むことで元の画像を再生していた。
【０１２９】
ところが、この手法だと１枚目のフレームの再生画像は画質の高いものが得られるが、フレームが進むにつれて時間軸方向のベクトル量子化による量子化誤差が目立つようになり、画質が劣化してくる。そこで、本実施形態では、このような画質の劣化を防ぎ、かつ圧縮率を同等に維持するために、伸長側の再生画像生成部４８内の構成を例えば図１４のようにする。
【０１３０】
図１４において、時間軸コード再配列演算部４８ａは、第２の実施形態と同様に、空間方向コード再生部４４により再生された３０７２００個の空間方向コード番号列を再配列して、１９２００個のデータ列から成る１６個の空間方向ベクトルを生成する。本実施形態では、この時間軸コード再配列演算部４８ａの後段に時間軸シフト部４８ｂを設けている。
【０１３１】
時間軸シフト部４８ｂは、空間方向デコード部４８ｃが１６個の空間方向ベクトル列の個々のコード番号に対応するコードベクトルを空間方向用コードブック記憶部４９内のコードブックから参照し、参照してきたパターン画像を各フレーム画像ごとにはめ込む際に、圧縮側でベクトル量子化を行ったときに定義したブロックの所望のアドレス毎に、空間方向ベクトルの要素を時間軸方向にずらしてパターン画像をはめ込むようにシフト処理を行う。
【０１３２】
すなわち、時間軸シフト部４８ｂは、空間方向ベクトル内の各要素（各アドレス）毎に、近接する要素を時間軸方向にずらす処理を行う。例えば、ある指定されたアドレスについては、１６個の空間方向コード番号列が第１フレーム目から順に配列されるが、他のアドレスについては、１６個の空間方向コード番号列が第１フレーム目以外のフレームから順に配列されるようにする。
【０１３３】
このようにすることで、時間軸方向のベクトル量子化により生じる量子化誤差を時間軸方向に分散させることができる。よって、フレームが進むごとに目立っていた量子化誤差を目立たなくすることができ、全体的に再生画像の画質を向上させることができるという利点が得られる。
【０１３４】
（第６の実施形態）
上述した第５の実施形態では、伸長側においてパターン画像を時間軸方向にずらしてはめ込むことにより、量子化誤差を目立たなくさせていた。これに対して、圧縮側において時間軸方向へのシフト処理を行うことにより、量子化誤差を目立たなくさせることもできる。この第６の実施形態では、そのような手法について説明する。
【０１３５】
本実施形態においても、時間軸方向に画像データを圧縮する手法については、上記第２〜第４の実施形態で述べた何れの手法を用いてもよいが、ここでも第２の実施形態の手法を用いた場合を例にとって説明する。
本実施形態において、図９の空間方向コード再配列演算部３９は、空間方向ベクトル量子化後のコード番号列を時間軸方向にシフトする処理を行う。
【０１３６】
すなわち、空間方向コード再配列演算部３９は、相関度演算部３６による空間方向ベクトル量子化によって各フレーム画像毎に生成された空間方向コード番号列のうち、同じアドレスが示すブロックのコード番号について、アドレス毎に異なるフレームを基準として時間軸ベクトルの要素が配列されるように並べ替えを行う。
【０１３７】
つまり、上述した第２の実施形態では、空間方向ベクトル量子化後のコード番号列のうち、同じアドレスが示すブロックのコード番号をフレーム画像順に並べ替えて時間軸ベクトルを生成する際に、全てのアドレスについて第１フレームを基準として並べ替えを行っていたが、本実施形態においては、どのフレームを基準として並べ替えるかをアドレス毎に異ならせる。
【０１３８】
例えば、ある時間軸ベクトルについては、第１フレーム目のコード番号が新しく作られる時間軸ベクトルのデータ列の０番地の位置に置かれるが、他の時間軸ベクトルについては、第１フレーム目以外のフレームのコード番号が新しく作られるデータ列の０番地の位置に置かれるようにする。
【０１３９】
このようにすることで、上記第５の実施形態と同様に、時間軸方向のベクトル量子化により生じる量子化誤差を時間軸方向に分散させることができる。したがって、圧縮した画像を再生する際に、フレームが進むごとに目立っていた量子化誤差を目立たなくすることができ、全体的に画質を向上させることができるという利点が得られる。
【０１４０】
なお、以上の実施形態では空間方向ベクトル量子化と時間軸ベクトル量子化とを組み合わせて行う場合を例にとって説明しているが、少なくとも時間軸ベクトル量子化だけを行うようにしても良い。その際に、各フレーム画像内の画素あるいはブロックを単位として、上述のようにフレーム間で（時間軸方向に）位置をずらす処理を行うことにより、時間軸方向のベクトル量子化により生じる量子化誤差を目立たなくすることができる。
【０１４１】
（第７の実施形態）
図１５は、第７の実施形態によるデータ圧縮システムの一構成例を示す機能ブロック図であり、図１６は、第７の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、図１５において、図９に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。また、図１６では説明の都合上、原画像を１フレームしか示していないが、実際には複数のフレームが画像入力部３１より順に入力される。
【０１４２】
ＤＣ成分検出・除去部５１は、原画像に対してベクトル量子化を行う際の各ブロック毎に、ブロックの中からＤＣ成分（各画素の最小輝度値）を検出する。また、上記各ブロック毎に検出したＤＣ成分をブロック内の全ての画素値から夫々減算することにより、入力された原画像の各画素値を各ブロック毎にその最小輝度値からの増分だけで表した画像を生成する。
【０１４３】
相関度演算部３６は、演算モード指定部５２により空間方向ベクトル量子化を行うモードが指定されているときは、空間方向用コードブック記憶部５３にあらかじめ記憶されている、基本パターンだけで構成された空間方向用コードブックを用いて、ＤＣ成分除去後の入力画像ブロックに対して空間方向ベクトル量子化の処理を行う。ここで、基本パターンとは、例えば、コードベクトルのブロック内で各画素の輝度値が８つの方向に単調に変化するパターンを言う。
【０１４４】
すなわち、基本パターンのコードブックとは、例えば４×４画素単位で構成されるブロックのエッジ部分（上下左右の各辺および四隅の各点）の何れかを始点として、ブロック内を上下左右方向あるいは斜め方向に輝度値が徐々に変化するパターンのコードベクトルの集合を言う。これらのコードベクトルの始点の輝度値を０に設定することで、ＤＣ成分検出・除去部５１により生成されるＤＣ成分の除去された画像ブロックに合ったものとなっている。始点から終点までの輝度値の増分にバリエーションを与えること等により、例えば３２１パターンのコードベクトルによりこの基本パターンの空間方向用コードブックを構成する。
【０１４５】
また、ＤＣ成分検出・除去部５１は、各ブロック毎に検出した最小輝度値をそれぞれ抽出する。これにより、図１６に示すように、各ブロックの最小輝度値のみで構成した１６０×１２０画素の画像を生成する。このようにして、ＤＣ成分検出・除去部５１による最小輝度値の抽出処理、および相関度演算部３６による空間方向ベクトル量子化処理を行うことで、原画像として入力される複数フレームのそれぞれの画像に対して、空間方向コード番号のデータ列と各ブロックの最小輝度値のデータ列とを生成する。
【０１４６】
次に、空間方向コード再配列演算部３９は、上記相関度演算部３６によって空間方向用コードブックのコード番号列で表現された各フレームの画像に対して、同じアドレスが示すブロックのコード番号をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各コード番号を１つのデータ列としてまとめた時間軸ベクトルを生成する。この処理は、上記第２〜第４の実施形態で述べた何れの手法によっても良い。
【０１４７】
同様に、空間方向ＤＣ成分再配列演算部５４は、上記ＤＣ成分検出・除去部５１により各ブロックの最小輝度値のみで表現された各フレームの画像に対して、同じアドレスが示すブロックのデータ値をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各最小輝度値を１つのデータ列としてまとめた時間軸ベクトルを生成する。この処理も、上記第２〜第４の実施形態で述べた何れの手法によっても良い。
【０１４８】
図１６に示した例の場合、基本パターンの時間軸ベクトルについては、例えば第１フレーム目〜第１６フレーム目の各フレームの先頭アドレスで指定されるブロックのコード番号を並べ替えた（１２７，２８７，５８，…，２８３，２７６）のデータ列が、１つの基本パターンの時間軸ベクトルに相当する。また、最小輝度値の時間軸ベクトルについては、例えば第１フレーム目〜第１６フレーム目の各フレームの先頭アドレスで指定されるブロックの最小輝度値を並べ替えた（６０，５０，５８，…，７６，７７）のデータ列が、１つの最小輝度値の時間軸ベクトルに相当する。
【０１４９】
上記空間方向コード再配列演算部３９および空間方向ＤＣ成分再配列演算部５４により並べ替えが行われると、時間軸ベクトル量子化開始信号が出力され、それが演算モード指定部５２に与えられる。これに応じて演算モード指定部５２は、基本パターンあるいは最小輝度値の何れかについて時間軸ベクトル量子化を行うモードに切り替える。
【０１５０】
相関度演算部３６は、演算モード指定部５２により基本パターンの時間軸ベクトル量子化を行うことが指定されているときは、上記空間方向コード再配列演算部３９により生成された各時間軸ベクトルに対して、時間軸用コードブック記憶部５５に記憶されている時間軸用コードブックを用いてベクトル量子化を行う。また、演算モード指定部５２により最小輝度値の時間軸ベクトル量子化を行うことが指定されているときは、上記空間方向ＤＣ成分再配列演算部５４により生成された各時間軸ベクトルに対して、時間軸ＤＣ成分用コードブック記憶部５６に記憶されている時間軸用コードブックを用いてベクトル量子化を行う。
【０１５１】
以上の処理により、空間方向ベクトル量子化後のコード番号列で表現されていた基本パターンに関する複数の時間軸ベクトルを、基本パターンの時間軸コードブック中の各コードベクトルに対応するコード番号列で置き換えるとともに、各ブロックの最小輝度値のデータ列で表現されていた最小輝度値に関する複数の時間軸ベクトルを、最小輝度値の時間軸コードブック中の各コードベクトルに対応するコード番号列で置き換える。そして、これらのデータリストを伸長側に転送する。
【０１５２】
なお、本実施形態において、伸長側の構成およびデータの流れについては図示していないが、基本的には圧縮側とは逆の関係になっており、例えば以下のようにして処理を行えば良い。すなわち、基本パターンおよび最小輝度値の各々について、上記第２〜第４の実施形態で述べたのと同様の伸長処理を行う。そして、それぞれについて伸長処理が完了したら、それぞれの結果を各ブロック毎に合成していくことによって、元の画像を再現することができる。
【０１５３】
以上詳しく説明したように、第７の実施形態によれば、原画像から１つの特徴量データ（上述の例では各ブロック毎の最小輝度値）を抽出し、抽出した特徴量データのベクトル量子化と、特徴量除去後の基本パターンのベクトル量子化とを別個に行うようにしたので、様々な特徴が絡み合った原画像そのものに対するコードブックに比べて、それぞれの画像のベクトル量子化で使用するコードブックを単純化することができ、必要なパターン数も減らすことができる（第２〜第６の実施形態では２０４８パターンであったのが、本実施形態では３２１パターンで済んでいる）。
【０１５４】
これにより、ベクトル量子化により類似度の大きいパターンをコードブック中から探し出す際に、単純化されたパターンどうしでの比較を行っているために、より適切なパターンに絞り込みやすくなり、高精度のベクトル量子化を行うことができる。よって、このようにして圧縮されたデータを再生する際には、より高画質の再生画像を得ることができるようになる。
【０１５５】
なお、この第７の実施形態では、抽出する特徴量として最小輝度値を例に挙げて説明したが、これに限定されるものではない。例えば、ブロック内の各画素の最大輝度値や平均値などを抽出するようにしても良い。
また、この第７の実施形態でも、１つの相関度演算部３６を空間方向ベクトル量子化と時間軸ベクトル量子化とで使い回すようにしているが、それぞれのベクトル量子化用に複数設けても良い。
【０１５６】
また、本実施形態は、モノクロ画像やカラー画像を問わずに適用することが可能である。例えば、Ｙ信号（輝度信号）とＵ，Ｖ信号（色信号）とから成るカラー画像の場合、Ｙ信号に対して上述のように最小輝度値、最大輝度値、平均値などを特徴量として抽出することが可能である。また、輝度信号に限らず、色信号に対しても最小値、最大値、平均値等を特徴量として抽出してベクトル量子化を行うようにしても良い。
【０１５７】
また、以上の例では原画像から１つの特徴量のみを抽出しているが、異なる種類の特徴量（例えば、ブロック内の最小輝度値、輝度変化の方向など）を複数抽出してベクトル量子化を行うようにしても良い。この場合は、出力されるコード番号のリストが増える分圧縮率が低下するが、再生画像の画質は更に向上させることができる。画質を優先させたい場合は、多くの特徴量を抽出してそれぞれ別個にベクトル量子化するようにすれば良い。また、画質と圧縮率のどちらを優先するか、あるいはどの程度優先するかを切り替えられるようにしても良い。
【０１５８】
（第８の実施形態）
上述したように、動画像に対して圧縮を行う際に、動画を構成する各々のフレーム画像（静止画）に対して単に空間方向ベクトル量子化を行うだけでは、高い圧縮率を得ることは難しい。第２〜第７の実施形態では、更に時間軸ベクトル量子化も行うことによって圧縮率を更に高めるようにしてきた。これに対して以下に述べる第８の実施形態では、今までとは異なる手法によって圧縮率を高める手段について説明する。
【０１５９】
本実施形態によるデータ圧縮システムの構成例を、図１７に示す。図１７において、画像入力部６１は、画像を連続して取り込む装置である。ここでは、例えば１画素が８ビットの階調を持った６４０×４４０画素の画像を１秒間に３０枚の割合で取り込む。この画像入力部６１は、例えば、画像取り込み用のカメラやビデオカメラのみならず、画像を記憶可能な半導体メモリ装置、ハードディスクやフレキシブルディスクなどの記憶媒体によって実現することもできる。
【０１６０】
コードブック記憶部６２には、例えば４×４画素のブロックで構成されたパターン画像（コードベクトル）が多数登録されていて、各々のブロックにはユニークなコード番号が割り当てられている。
【０１６１】
コードブック方式による圧縮部６３は、画像入力部６１で得られた画像の１枚１枚に対して、次に述べるような空間方向ベクトル量子化の処理を行う。すなわち、原画像の左上を起点としてそこから右方向へ向かって順次４×４画素のブロックを取り出す。右端まで取り出したら、取り出す位置を１ブロック分下にずらして左端から再び取り出して行き、それを繰り返すことにより全画面分のブロックを取り出す。
【０１６２】
そして、取り出した各ブロックに対して、コードブック記憶部６２に多数登録されているコードベクトルの中から最もパターンの似ているものを選び出し、それに対応するコード番号を出力する。６４０×４８０画素の画像を処理する場合、１９２００個のブロックが取り出されて処理されるので、出力されるコード番号も１９２００個である。
【０１６３】
コード列記憶部６４は、ある時刻ｔにおけるフレーム画像をコードブック方式による圧縮部６３にて処理して出力されるコード番号列を記憶しておくためのものである。また、コード列比較部６５は、コード列記憶部６４に記憶されている上記ある時刻ｔの画像のコード番号列と、次の時刻ｔ＋１の画像のコード番号列とを比較し、同じアドレスが示すブロックのコード番号どうしでその差分絶対値をそれぞれ計算する。
【０１６４】
出力部６６は、コード列比較部６５から与えられる差分絶対値をもとに、媒体６７（ネットワークなどの通信チャンネルまたは記録媒体）に出力するデータを決定する。すなわち、あるアドレスについての差分絶対値がある閾値より大きい場合は、そのアドレスとコード番号とを媒体６７に出力する。一方、あるアドレスについての差分絶対値がある閾値より小さい場合は、そのアドレスとコード番号は媒体６７に出力しない。
【０１６５】
次に、上記図１７に示したデータ圧縮システムをソフトウェアで実現する場合の構成例を、図１８に示す。この図１８は、ＣＰＵ６８を含むコードブック方式動画像圧縮プロセッサの構成を示すものである。なお、この図１８に示した画像入力部６１、コードブック方式による圧縮部６３および媒体６７は、図１７に示したものと同じである。
【０１６６】
図１８において、ＣＰＵ６８に付随して設けられるメモリ６９には、コードブック記憶エリア６９ａ、コード列記憶エリア６９ｂ、ポインタ・カウンタエリア６９ｃおよび閾値記憶エリア６９ｄが設けられている。
【０１６７】
コードブック記憶エリア６９ａは、コードブック方式による圧縮部６３で使用するコードブックを記憶しておくものである。コード列記憶エリア６９ｂは、コードブック方式による圧縮部６３から各フレーム毎に出力されるコード番号列を順次記憶しておくものであり、時刻ｔの画像をコードブック方式による圧縮部６３で圧縮した結果のコード番号列が記憶される。
【０１６８】
また、ポインタ・カウンタエリア６９ｃは、コード列記憶エリア６９ｂに対するコード番号の読み出し・書き込みを行う位置を示すポインタ（アドレス）を記憶するものである。閾値記憶エリア６９ｄは、出力部６６で媒体６７に転送するデータを決定するための判断基準となる閾値を記憶するものである。
【０１６９】
図１９は、図１８のＣＰＵ６８が実行する圧縮処理の手順を示すフローチャートである。図１９において、まずステップＳ２１で、コードブック記憶エリア６９ａからコードブック方式による圧縮部６３に対してコードブックのデータを転送する。次に、ステップＳ２２で閾値記憶エリア６９ｂに所定の閾値を設定し、ステップＳ２３でポインタ・カウンタエリア６９ｃのポインタ（アドレス）をイニシャライズして、ポインタ値を例えば"０"に設定する。
【０１７０】
次に、ステップＳ２４で、画像入力部６１から原画像中のマクロブロック（例えば、４×４画素のブロック）を１つ読み込む。そして、ステップＳ２５で、読み込んだマクロブロックをコードブック方式による圧縮部６３に送り、ここで空間方向ベクトル量子化の処理を実行させる。これにより、圧縮コードとして空間方向のコード番号列を得る。
【０１７１】
次に、ステップＳ２６で、コードブック方式による圧縮部６３から出力されたコード番号と、以前の処理によって得られコード列記憶エリア６９ｂに記憶されているコード番号で、現在のポインタ値で示されるコード番号との差分絶対値を計算する。そして、ステップＳ２７で、上記計算された差分絶対値が、閾値記憶エリア６９ｄに記憶されている閾値よりも大きかどうかを判断する。
【０１７２】
ここで、差分絶対値の方が大きい場合には、ステップＳ２８で、上記コードブック方式による圧縮部６３から出力されたコード番号と、そのときのポインタの値とを媒体６７に出力した後、ステップＳ２９で当該コード番号をコード列記憶エリア６９ｂに記憶する。
【０１７３】
一方、計算された差分絶対値が、閾値記憶エリア６９ｄに記憶されている閾値よりも小さい場合には、ステップＳ２８の処理を実行せずにステップＳ２９に進み、コードブック方式圧縮部６３から出力されたコード番号をコード列記憶エリア６９ｂに記憶する。そして、ステップＳ３０でポインタ・カウンタエリア６９ｃのポインタをインクリメントし、ステップＳ３１で１つの画像内の全てのマクロブロックについて処理が終了したかどうかを判断する。
【０１７４】
全てのマクロブロックについて処理が終了していない場合は、ステップＳ２４に戻り、次のマクロブロックを１つ取り込んで同様の処理を行う。上述した処理は、画像入力部６１から得られた画像中のすべてのマクロブロックを処理するまで続けられる。画像中のすべてのマクロブロックを処理し終わると、動画像１フレーム分に対する圧縮処理は全て終了する。以上の処理を各フレーム毎に順次繰り返すことにより、動画像の圧縮が実行される。
【０１７５】
一方、伸長側においては、送られてきたコード番号に対応するコードベクトルをコードブック中から探し出し、それを各ブロック位置にはめ込んでいくという基本的な処理は、以上に述べた各実施形態と同様である。ただし、本実施形態においては、あるアドレスのブロックについてはコード番号が転送されてきていないので、そのようなブロックについては何らかの方法によって代わりのコードベクトルもしくはパターン画像を用意する必要がある。
【０１７６】
そのために、例えば、データ伸長システムの構成として、ある時刻ｔにおけるデコード処理によって再現されたフレーム画像を記憶しておくための再現画像記憶部を設ける。そして、時刻ｔ＋１における再現画像をデコード処理によって生成する際に、あるブロックについて圧縮側からコード番号が送られてきていない場合は、そのブロックの画像を上記再現画像記憶部に記憶されている前フレームの画像で代用するようにする。このように、コード番号が送られたブロックと送られていないブロックとを伸長側で識別するために、コード番号と共に送られてくるブロックのアドレスが利用される。
【０１７７】
以上のように、本実施形態では、複数フレームの画像のそれぞれに対して空間方向ベクトル量子化の処理を行い、それぞれのフレーム画像について空間方向コード番号列を生成する。そして、複数フレームの画像の同じアドレスどうしのコード番号について、フレーム間における変化量（差分絶対値）を求め、その変化量がある閾値以上となった場合のみそれを転送データとし、変化量が閾値より小さい場合には転送データとしないようにしている。
【０１７８】
つまり、複数フレームの画像を構成する各ブロックのうち、フレーム間でデータ値が大きく変化したところのデータだけを転送し、変化が少ないところのデータは転送せずに前フレームのデータを用いるようにする。これにより、動きの激しい部分のデータのみを転送することとなり、個々のフレーム内で空間方向ベクトル量子化した結果に加えて、フレーム方向（時間軸）に対してもデータを圧縮することができ、単なる空間方向ベクトル量子化だけでは得られなかった高い圧縮率を得ることができる。
【０１７９】
（第９の実施形態）
以上の示した各実施形態は、モノクロ画像に対してもカラー画像に対しても同様に適用することができる。以下に述べる第９の実施形態は、特にカラー画像に対してベクトル量子化によるデータ圧縮を行う場合に、伸長側での再生画像の画質と圧縮率をより向上させることができるようにしたものである。
【０１８０】
図２０は、本実施形態によるデータ圧縮システムの構成例を示すブロック図である。図２０において、画像入力部７１より入力されたカラーの原画像は、画像メモリ７２に一旦蓄えられ、読み出し部７３からのアドレス制御等により読み出されて出力される。画像メモリ７２より読み出されたカラー画像は、Ｙ，Ｕ，Ｖ信号分離部７４に与えられる。
【０１８１】
このＹ，Ｕ，Ｖ信号分離部７４は、原画像からＹ信号（輝度信号）とＵ信号およびＶ信号（色信号）をそれぞれ分離する。ブロック化部７５は、上記Ｙ，Ｕ，Ｖ信号分離部７４により分離された各画像データを、例えば４×４画素単位のブロックに分割する。このときブロック化部７５は、Ｙ，Ｕ，Ｖのどの信号に対してブロック化を行っているかを信号種指定信号として空間方向用コードブック記憶部７６に伝える。
【０１８２】
相関度演算部７７は、このようにして分離抽出したＹ信号、Ｕ信号、Ｖ信号のそれぞれに対して独立に、上述した類似度を算出する。そして、コード決定部７８は、上記相関度演算部７７による類似度の演算結果に基づいて、類似度の最も大きいコードベクトルに対応するコード番号をそのブロックの圧縮コード（Winner code）として出力する。
【０１８３】
このような空間方向ベクトル量子化の実行の際、相関度演算部７７では、空間方向用コードブック記憶部７６にあらかじめ記憶されているコードブックを用いてベクトル量子化を行うが、空間方向用コードブック記憶部７６内のどのコードブックを利用するかは、上記信号種指定信号に応じて決められる。すなわち、空間方向用コードブック記憶部７６には、Ｙ信号用のコードブックと、Ｕ信号用のコードブックと、Ｖ信号用のコードブックとがあらかじめ多数記憶されており、それぞれの信号用のコードブックが、ブロック化部７５から相関度演算部７７に出力される信号種に合わせて順次利用される。
【０１８４】
このとき、本実施形態では、Ｙ信号に対してＵＶ信号よりも大きなコードブックを割り当てるようにする。例えば、Ｙ信号用のコードブックを８１９２個のコードベクトル（１３ビット）で構成し、ＵＶ信号用のコードブックをそれぞれ１２８個のコードベクトル（７ビット）で構成するようにする。ただし、Ｙ，Ｕ，Ｖを合わせた全体のコードブックの大きさは、それぞれの信号用のコードブックを均等に割り当てた場合の全体の大きさと変わらないか、もしくはそれより小さくなるようにする。
【０１８５】
一般に、画質を決める最も重要な信号はＹ信号（輝度信号）であるため、それぞれの信号に対して割り当てるコードブック（コードベクトルのコード長）を、ＵＶ信号よりもＹ信号の方を大きくすることにより、全体的なコード長は変えずに再生画像の画質を向上させることができる。
【０１８６】
すなわち、圧縮レートをＹ：Ｕ：Ｖ＝１：１：１として圧縮を行った場合、Ｙ信号に対してコードベクトルの数をＵＶ信号より多く割り当てても、全体としてのコード長が変わっていないので、１枚の画像に対する圧縮率は変化しない。しかも、Ｙ信号に対してのコードベクトルの数が多いので、画質にとってより重要度の大きいＹ信号に関して、より類似度の高いコードベクトルをベクトル量子化によって得ることができ、再生画像の画質は向上する。
【０１８７】
なお、圧縮レートがＹ：Ｕ：Ｖ＝１：１：１の場合に限らず、４：１：１や４：２：２の場合でも同様の効果を得ることができる。例えば、圧縮レートがＹ：Ｕ：Ｖ＝４：１：１の場合は、Ｙ信号の各ブロックに対して１３ビットのコードを割り当てるのに対して、ＵＶ信号に対してはそれぞれ４つのブロックで７ビットのコードを割り当てることになる。しかし、人間の視覚特性として色の誤差に関しては比較的鈍感という性質があるので、このようにしても色再現性に関して特に問題はない。
【０１８８】
また、以上の実施形態では、Ｙ，Ｕ，Ｖ各信号の空間方向ベクトル量子化手段として１つの相関度演算部７７を使い回すようにしているが、それぞれの信号用に空間方向ベクトル量子化手段を複数設け、各信号を並列に処理するようにしても良い。
また、以上の実施形態では、１つの空間方向用コードブック記憶部７６の中にＹ，Ｕ，Ｖ各信号用のコードブックを記憶しているが、それぞれのコードブックを異なる記憶部に分けて記憶するようにしても良い。
【０１８９】
（第１０の実施形態）
次に、１枚の画像に対して空間方向ベクトル量子化を行う際に用いる空間方向用コードブックの作成方法について説明する。本実施形態では、従来から良く知られているKohonenの学習アルゴリズムを利用する。図２１は、このKohonenの学習アルゴリズムの手順を示す図である。
【０１９０】
この手法では、図２１に示すように、学習の際に与える初期のコードブックを用意するとともに、学習に用いる１つのサンプル画像を用意する。学習の際は、このサンプル画像から例えば４×４画素単位の画像ブロックを順次入力し、コードブックを用いて空間方向ベクトル量子化の処理を行うことにより、入力した画像ブロックと最も似通ったコードベクトルを検出する。そして、この結果をもとにコードブックの内容を書き換える。
【０１９１】
コードブックの書き換えは、Kohonenの学習アルゴリズムを表す数式中の利得ｋおよび書き換えの範囲Ｎｃを適当な値に決めて行う。このようなコードベクトルの検出および書き換え処理を所定の学習回数だけ繰り返すことにより、最適化されたコードブックを得る。本実施形態においては、このような学習を実施するに当たって、初期のコードブックとして様々なパターンのものを用いた。
【０１９２】
図２２は、初期のコードブックとして、とり得る値の最小値から最大値まで輝度値が連続的に変化するパターン（ａ）と、輝度値がランダムに変化するパターン（ｂ）と、輝度値が１２８（中間値）で一定のパターン（ｃ）とを入力し、これらを用いてコードブックを最適化する。そして、それにより得られたコードブックを用いてベクトル量子化により画像を圧縮・伸長したときのＰＳＮＲ（peak signal to noise ratio）特性の違いを示した図である。なお、（ａ）〜（ｃ）中に示す小さい四角の１つ１つがコードベクトルを表している。この図２２より、輝度値が連続的に変化するパターンを初期のコードブックとして入力した場合に、より良好な結果が得られていることが分かる。
【０１９３】
また、図２３は、（ａ）のようにマップ上（仮想の２次元平面）において１回の学習で書き換えを行う範囲を１次元的に適用し、更新回数の増加とともに書き換え範囲を減少させていく方法と、（ｂ）のように書き換えを行う範囲を２次元的に適用し、更新回数の増加とともに書き換え範囲を減少させていく方法とでコードブックを作成し、更に画像を圧縮・伸長したときのＰＳＮＲ特性の違いを示した図である。
【０１９４】
なお、図２３（ａ）および（ｂ）に示す白丸および黒丸の１つ１つがコードベクトルのブロックを示しており、黒丸のブロックは現在のベクトル量子化の対象ブロックを示している。また、これらの白丸および黒丸を囲んだ四角の範囲が、コードブックの書き換え範囲を表している。また、矢印は書き換え範囲を減少させる方向を表している。この図２３より、（ａ）の場合が（ｂ）の場合よりも優れていることが分かる。
【０１９５】
また、図２４は、Kohonenの学習式中の利得ｋの値を、コードブックの更新回数の増加にかかわらず初期値から減少させない場合と、更新回数の増加とともに初期値から減少させた場合とのＰＳＮＲ特性の違いを示す図である。この図２４より、利得ｋの値をコードブックの更新回数の増加とともに初期値から減少させていった場合の方が優れていることが分かる。
【０１９６】
また、図２５は、利得ｋの初期値として様々な値を与え、更新回数を例えば１６００００回としてコードブックを作成したときのＰＳＮＲ特性の違いを示す図である。この図２５より、利得ｋの初期値が０．３〜１の場合に優れた結果が得られることが分かる。
【０１９７】
以上の図２２〜図２５に示される結果から、様々なパラメータの中から最も画質を向上させるパラメータの値を特定して学習を行うことにより、それにより生成したコードブックをデータ圧縮伸長システムに用いることで、再生画像の画質を向上させることができる。例えば、学習の際に与える初期のコードブックとして、とり得る値の最小値から最大値まで輝度値が連続的に変化するパターンを用いる。また、１回の学習で影響を与える範囲は１次元的に適用し、かつ更新回数の増加と共にその範囲を減少させていく。さらに、学習の際に与える利得係数ｋの初期値を０．３〜１の範囲の何れかの値とし、かつ更新回数の増加と共に係数値を減少させていくことによって、高精度なコードブックを得ることができ、これを用いて圧縮・伸長した再生画像の画質を向上させることができる。
【０１９８】
（第１１の実施形態）
本実施形態は、学習により複数のコードブックを作成し、それらを合成して新しいコードブックを作成することにより、高精度なコードブックを得るようにしたものである。図２６は、最適化で得られた３種類のコードブックＡ，Ｂ，Ｃの特徴を１つのコードブックＡ＋Ｂ＋Ｃにまとめる手法を示している。
【０１９９】
図２６において、コードブックＡ＋Ｂ＋Ｃのサイズ（コードベクトルの個数）は、Ａ，Ｂ，Ｃ単独のコードブックサイズと同様に、例えば１０２４である。つまり、１つにまとめたコードブックＡ＋Ｂ＋Ｃの中に含まれるパターンは、個々のコードブックＡ，Ｂ，Ｃに含まれるパターンをそれぞれ適当に間引いて合成したものである。
【０２００】
ここでは、Kohonenの自己組織化マップで得られたコードブックは、似たようなパターンがマップ上に近接して存在するため、この特性を生かして各コードブックＡ，Ｂ，Ｃのマップ上の左上から順番に１つおきにそのままパターンを取り出し、これを新しいコードブックＡ＋Ｂ＋Ｃとして再構成している。これにより、それぞれのコードブックＡ，Ｂ，Ｃの特徴を残したコードブックＡ＋Ｂ＋Ｃが新たに生成される。
【０２０１】
図２７は、図２６に示したＡ，Ｂ，Ｃ，Ａ＋Ｂ＋Ｃそれぞれのコードブックを用いて画像Ａ′，Ｂ′，Ｃ′に対してベクトル量子化を行った後、それを復元した画像のＰＳＮＲ特性を示す図である。なお、画像Ａ′，Ｂ′，Ｃ′は、それぞれ単独のコードブックＡ，Ｂ，Ｃを作成する際に用いたサンプル画像であるものとする。
【０２０２】
図２７から分かるように、単独のコードブックＡ，Ｂ，Ｃは、それぞれを作成する際に用いたサンプル画像Ａ′，Ｂ′，Ｃ′に対しては概ね良好な結果を示すが、他の種類の画像に対しては良好な結果は得られていない。例えば、コードブックＡを用いた場合、サンプル画像Ａ′に対しては良好な結果が得られるが、他の画像Ｂ′，Ｃ′に対しては良好な結果は得られない。
【０２０３】
これに対して、合成したコードブックＡ＋Ｂ＋Ｃを用いた場合のＰＳＮＲ特性は、全ての画像Ａ′，Ｂ′，Ｃ′について、単独のコードブックＡ，Ｂ，Ｃを用いた場合の特性と匹敵しており、かつ全ての特性を兼ね備えたものとなっている。このように、特徴的な画像をいくつか組み合わせてコードブックを作成することで、様々な画像に対して耐性を有するコードブックを作成することができる。例えば、人の顔、風景、文字などの画像を用いてそれぞれのコードブックを作成し、それらを合成することにより、コードブックメモリのサイズを大きくすることなく汎用的なコードブックを作成することができる。
【０２０４】
なお、上記実施形態では、同じサイズの３種類のコードブックを１つにまとめる手法を示したが、３種類に限定されるものではなく、２種類あるいは３種類以上のコードブックをまとめて１つに合成することもできる。また、サイズの異なる複数のコードブックをまとめて１つに合成するようにすることもできる。
【０２０５】
（第１２の実施形態）
ベクトル量子化によりコードブックの中から最も似通ったコードベクトルを選び出すためには、膨大な演算量が必要である。そのため、ベクトル量子化の専用ハードウェアを設計する場合、高速に演算を行うためには通常は膨大なハードウェア面積を必要とすることになる。以下に述べる実施形態は、ハードウェア規模を大きくすることなく演算を高速に行えるようにしたものである。
【０２０６】
図２８は、２つの入力ベクトルが類似しているか否かを数値化した類似度を求める関数としてマンハッタン距離を利用し、また、画像の特徴量としてベクトルデータの要素の総和を利用した場合のベクトル量子化装置の構成と、演算が省略される様子とを説明するための図である。なお、類似度としてマンハッタン距離を用いた場合、距離が小さいほうが類似度は大きい。
【０２０７】
最初に、演算が省略できる原理を説明する。
ベクトルデータの次元数（要素数）をｎ、コードブック記憶部８１内のテンプレートベクトル（コードベクトル）データの総数をｋとする。このとき、
入力ベクトルデータ：Ｉ＝（Ｉ1 ，Ｉ2 ，…，Ｉn ）
テンプレートベクトルデータ：Ｔm ＝（Ｔm1，Ｔm2，…Ｔmn）
（ｍ＝１，２，…，ｋ）
について、入力ベクトルデータＩとテンプレートベクトルデータＴm との類似度を、以下の式(1) で示すマンハッタン距離Ｍm で定義すると、入力ベクトルデータＩに最も類似しているテンプレートベクトルデータＴm を検索する操作とは、全てのマンハッタン距離Ｍm （ｍ＝１，２，…，ｋ）の中で距離Ｍm が最も小さくなるｍの値を探し出す操作に相当する。
【０２０８】
【数１】
2005012823.tif 000003
【０２０９】
ここで、以下の式(2) に示すような、入力ベクトルデータＩの要素の総和とテンプレートベクトルデータＴm の要素の総和との差の絶対値Ｄm と、上記式(1) に示したマンハッタン距離Ｍm との間には、Ｄm ≦Ｍm という関係が成り立つことに注目すると、以下のような議論が成り立つ。
【０２１０】
【数２】
2005012823.tif 000004
【０２１１】
すなわち、コードブック記憶部８１内にあるテンプレートベクトルデータＴm と入力ベクトルデータＩとのマンハッタン距離Ｍm が判明しているとする。このとき、コードブック記憶部８１内にあって、上記テンプレートベクトルデータＴm とは別な任意のテンプレートベクトルデータＴo と入力ベクトルデータＩとについて、各々のベクトルデータの要素の総和をとり、その総和どうしの差の絶対値Ｄo を計算した結果、Ｄo ＞Ｍm となっている場合を仮定する。
【０２１２】
この場合、上述のＤm ≦Ｍm という関係により、常にＭo ＞Ｍm が成り立つ。よって、テンプレートベクトルデータＴo と入力ベクトルデータＩとのマンハッタン距離Ｍo を計算せずとも、差分絶対値Ｄo を計算するだけで、テンプレートベクトルデータＴo はテンプレートベクトルデータＴm に比べて入力ベクトルデータＩに類似していないことが分かる。つまり、テンプレートベクトルデータＴo を検索対象から除外できることになる。
【０２１３】
以上だけを見ると、テンプレートベクトルデータＴo について、マンハッタン距離Ｍo を計算しなくても、差分絶対値Ｄo を計算する必要があるのならば、検索に関わる処理は減少していないように見える。しかし、差分絶対値Ｄo の演算において、テンプレートベクトルデータＴm の特徴量である要素の総和ΣＴmi（式(2) 中の右辺第２項）は、あらかじめ計算して特徴量記憶部８２に記憶しておくことができる。
【０２１４】
よって、差分絶対値Ｄo の算出は、入力ベクトルデータＩの特徴量の演算と、これと特徴量記憶部８２内に記憶されている特徴量との差をとる演算を行うだけで済む。また、入力ベクトルデータＩの特徴量の算出は、１つの入力ベクトルデータに対して１回の演算で済む。このため、差分絶対値Ｄo の算出は、マンハッタン距離Ｍo の算出に比べて非常に少ない演算量で行うことができる。
【０２１５】
なお、特徴量としてベクトルデータの要素の総和を用いることと、要素の平均値を用いることとは等価である。なぜならば、要素の平均値とは要素の総和を要素数で割っただけのものに過ぎないからである。
【０２１６】
次に、図２８を使って具体的に説明する。
図２８において、入力ベクトルデータＩおよびコードブック記憶部８１内の複数のテンプレートベクトルデータＴ1 ，Ｔ2 ，Ｔ3 ，Ｔ4 ，…は、例として共に６次元のベクトルデータとなっているが、任意の次元でかまわない。特徴量記憶部８２には、コードブック記憶部８１内に記憶されている各テンプレートベクトルデータＴ1 ，Ｔ2 ，Ｔ3 ，Ｔ4 ，…の特徴量（例えば要素の総和）ΣＴ1 ，ΣＴ2 ，ΣＴ3 ，ΣＴ4 ，…が記憶されている。
【０２１７】
図２８中では、コードブック記憶部８１内の各テンプレートベクトルデータＴ1 ，Ｔ2 ，Ｔ3 ，Ｔ4 ，…と、すぐ左側に位置する特徴量記憶部８２内の各特徴量ΣＴ1 ，ΣＴ2 ，ΣＴ3 ，ΣＴ4 ，…とは対応している。つまり、テンプレートベクトルデータＴ1 の特徴量はΣＴ1 、テンプレートベクトルデータＴ2 の特徴量はΣＴ2 、以下同様となる。これらのコードブック記憶部８１および特徴量記憶部８２内のデータは、アドレスカウンタ８８からのアドレスに従って順に読み出される。
【０２１８】
また、マンハッタン距離演算部８３は、コードブック記憶部８１から転送されたｄ２で示される各テンプレートベクトルデータＴm と、ｄ１で示される入力ベクトルデータＩとのマンハッタン距離Ｍm （ｍ＝１〜ｋ）を求め、ｄ３で示されるマンハッタン距離データを出力する。また、最小マンハッタン距離記憶部８４は、演算省略判定部８７による更新制御に従って、今までに計算されたマンハッタン距離Ｍm のうち、最小の距離ｍｉｎＭを記憶する。
【０２１９】
ある１つの入力ベクトルデータＩについて全てのテンプレートベクトルデータＴm との演算が終了したとき、この最小マンハッタン距離記憶部８４に記憶されているものに対応するテンプレートベクトルデータが、入力ベクトルデータＩに最も類似するデータである。そして、このように最も類似する（最も距離が短い）テンプレートベクトルデータのアドレスｍｉｎＡは、演算省略判定部８７による更新制御に従って、アドレスカウンタ８８から最小距離アドレス記憶部８９に与えられて記憶されている。
【０２２０】
そこで、ある１つの入力ベクトルデータＩについて処理が終わったときに、この最小距離アドレス記憶部８９に記憶されているアドレスが、当該ブロックのコード番号に相当することになる。なお、このコード番号は、１つの入力ベクトルデータＩの処理が終わる毎に出力しても良いし、１枚の画像全体の処理が終わったときにまとめて出力するようにしても良い。
【０２２１】
特徴量演算部８５は、入力ベクトルデータＩの各要素の総和を演算し、その結果を出力する。少なくとも同じ入力ベクトルデータＩについて類似度を求める演算を行っている間は、ここで演算した特徴量は保存されている。特徴量差分演算部８６は、上記特徴量演算部８５で求められた入力ベクトルデータＩの特徴量ｄ４と、特徴量記憶部８２から読み出されたテンプレートベクトルデータＴm の特徴量ｄ５との差分を演算し、出力する。
【０２２２】
演算省略判定部８７は、最小マンハッタン距離記憶部８４より出力される、今までに分かっている最小のマンハッタン距離ｄ６と、特徴量差分演算部８６で演算された特徴量の差分ｄ７とを利用して、テンプレートベクトルデータＴm と入力ベクトルデータＩのマンハッタン距離を演算する必要があるか否かを判別する。
【０２２３】
そして、その判別結果をマンハッタン距離演算部８３に伝え、必要でない演算を省略するようにするとともに、最小マンハッタン距離記憶部８４、アドレスカウンタ８８および最小距離アドレス記憶部８９に所定の制御信号を出力し、それぞれの内容の更新制御を行う。
【０２２４】
アドレスカウンタ８８の内容は、１回の処理が終わることに更新されるが、最小マンハッタン距離記憶部８４および最小距離アドレス記憶部８９の内容は、所定の条件を満たしたときのみ更新される。なお、テンプレートベクトルデータを読み出す前にアドレスカウンタ２０８の値をインクリメントすれば、マンハッタン距離演算部２０２への制御信号は必ずしも必要ではない。
【０２２５】
次に、上記のように構成したベクトル量子化装置のベクトル量子化の手順を示す。演算の省略の様子も同時に説明する。
１）まず、入力ベクトルデータＩの特徴量を特徴量演算部８５により演算し、その結果を保存する。この特徴量は、１つの入力ベクトルデータＩに対して１度だけ演算すればよい。
【０２２６】
２）次に、入力ベクトルデータＩと、コードブック記憶部８１内の第１番目のテンプレートベクトルデータＴ1 とのマンハッタン距離Ｍ1 をマンハッタン距離演算部８３によって演算する。この演算結果を以下の式(3) に示す。この段階ではマンハッタン距離はまだ１つしか演算していないので、現在までに見つかっている最小のマンハッタン距離ｍｉｎＭは、Ｍ1 となる。したがって、このマンハッタン距離Ｍ1 を最小マンハッタン距離記憶部８４に記憶する。
【０２２７】
【数３】
2005012823.tif 000005
【０２２８】
３）次に、特徴量記憶部８２内の第２番目のテンプレートベクトルデータＴ2 の特徴量ΣＴ2 と、特徴量演算部８５に保存されている入力ベクトルデータＩの特徴量（この例では２６５）との差の絶対値Ｄ2 を特徴量差分演算部８６で求める。この演算結果を以下の式(4) に示す。
【０２２９】
【数４】
2005012823.tif 000006
【０２３０】
４）さらに、手順３）で求めた特徴量の差の絶対値Ｄ2 と、現在までに見つかっている最小のマンハッタン距離ｍｉｎＭとをもとに、第２番目のテンプレートベクトルデータＴ2 と入力ベクトルデータＩとのマンハッタン距離Ｍ2 を演算する必要があるかどうかを、演算省略判定部８７で判断する。今の場合、Ｄ2 ＜ｍｉｎＭ（＝Ｍ1 ）であるから、第２番目のテンプレートベクトルデータＴ2 と入力ベクトルデータＩとのマンハッタン距離Ｍ2 の演算は省略できない。
【０２３１】
５）手順４）により、第２番目のテンプレートベクトルデータＴ2 と入力ベクトルデータＩとのマンハッタン距離Ｍ2 の演算が必要と判定されたので、マンハッタン距離演算部８３はこの演算を行う。この演算の結果は、Ｍ2 ＝２２であるが、これは今までに見つかっている最小のマンハッタン距離ｍｉｎＭ（＝Ｍ1 ）よりも小さいので、ｍｉｎＭの値をＭ2 に更新する。よって、ｍｉｎＭ＝Ｍ2 となる。つまり、最小マンハッタン距離記憶部８４には第２番目のテンプレートベクトルデータＴ2 に関するマンハッタン距離Ｍ2 が記憶される。
【０２３２】
６）次に、特徴量記憶部８２内の第３番目のテンプレートベクトルデータＴ3 の特徴量ΣＴ3 と、特徴量演算部８５に保存されている入力ベクトルデータＩの特徴量との差の絶対値Ｄ3 を特徴量差分演算部８６で求める。この演算結果は、Ｄ3 ＝４６である。
【０２３３】
７）さらに、手順６）で求めた特徴量の差の絶対値Ｄ3 と、現在までに見つかっている最小のマンハッタン距離ｍｉｎＭとをもとに、第３番目のテンプレートベクトルデータＴ3 と入力ベクトルデータＩとのマンハッタン距離Ｍ3 を演算する必要があるかどうかを、演算省略判定部８７で判断する。今の場合、Ｄ3 ＞ｍｉｎＭ（＝Ｍ2 ）であるから、第３番目のテンプレートベクトルデータＴ3 と入力ベクトルデータＩとのマンハッタン距離Ｍ3 の演算は省略できる。
【０２３４】
８）手順７）により、第３番目のテンプレートベクトルデータＴ3 と入力ベクトルデータＩとのマンハッタン距離Ｍ3 の演算は省略できると判明したので、この演算は省略する。そして、第４番目のテンプレートベクトルデータＴ4 の特徴量ΣＴ4 と入力ベクトルデータＩの特徴量との差の絶対値Ｄ4 を特徴量差分演算部８６で演算する。その演算結果は、Ｄ4 ＝１５７である。
【０２３５】
９）手順８）で求めた特徴量の差の絶対値Ｄ4 と、現在までに見つかっている最小のマンハッタン距離ｍｉｎＭとをもとに、第４番目のテンプレートベクトルデータＴ4 と入力ベクトルデータＩとのマンハッタン距離Ｍ4 を演算する必要があるかどうかを、演算省略判定部８７で判断する。今の場合、Ｄ4 ＞ｍｉｎＭ（＝Ｍ2 ）であるから、第４番目のテンプレートベクトルデータＴ4 と入力ベクトルデータＩとのマンハッタン距離Ｍ4 の演算も省略できる。
【０２３６】
１０）以下、同様の処理をｍ＝ｋとなるまで繰り返す。
【０２３７】
図２９は、上記した本実施形態のベクトル量子化処理の手順を示すフローチャートである。以下、このフローチャートについて説明する。
図２９において、まず最初にステップＳ４１で入力ベクトルデータＩを入力する。そして、ステップＳ４２で、その入力ベクトルデータＩの要素の総和（特徴量）を演算し、その結果を保存する。
【０２３８】
次に、ステップＳ４３で、検索するテンプレートベクトルデータの番号（アドレス）をｍ＝１、ｍｉｎＡ＝１に初期化するとともに、現在までに見つかっている最小のマンハッタン距離ｍｉｎＭの値を∞に初期化する。次に、ステップＳ４４で、アドレスカウンタｍの値がテンプレートベクトルデータの数ｋを越えたかどうかを判断し、越えていない場合はステップＳ４５に進む。
【０２３９】
ステップＳ４５では、検索するテンプレートベクトルデータＴm についてあらかじめ記憶されている特徴量と、演算の結果保存されている入力ベクトルデータＩの特徴量との差の絶対値Ｄm を求める。そして、ステップＳ４６で、その演算した差分絶対値Ｄm が、現在までに見つかっている最小のマンハッタン距離ｍｉｎＭの値以上かどうかを判断する。
【０２４０】
ここで、差分絶対値Ｄm が現在の最小マンハッタン距離ｍｉｎＭの値以上の場合は、ステップＳ５０でアドレスカウンタｍの値をインクリメントした後、ステップＳ４４の処理に戻る。一方、上記差分絶対値Ｄm が現在の最小マンハッタン距離ｍｉｎＭより小さい場合は、ステップＳ４７に進み、入力ベクトルデータＩと、検索するテンプレートベクトルデータＴm とのマンハッタン距離Ｍm を演算する。
【０２４１】
そして、ステップＳ４８で、演算したマンハッタン距離Ｍm が現在の最小マンハッタン距離ｍｉｎＭ以上であるかどうかを判断し、そうである場合はステップＳ５０でアドレスカウンタｍの値をインクリメントした後、ステップＳ４４の処理に戻る。一方、演算したマンハッタン距離Ｍm が現在の最小マンハッタン距離ｍｉｎＭより小さい場合は、ステップＳ４９に進む。
【０２４２】
ステップＳ４９では、最小マンハッタン距離ｍｉｎＭの値を上記演算したマンハッタン距離Ｍm に更新するとともに、探し出したテンプレートベクトルデータの番号（アドレス）を最小距離アドレス記憶部８９に記録する。その後、ステップＳ５０でアドレスカウンタｍの値をインクリメントした後、ステップＳ４４の処理に戻る。
【０２４３】
以上の手順の中でも示した通り、図２８に記載した構成のベクトル最子化装置を用いれば、入力ベクトルデータＩに最も類似したテンプレートベクトルデータを検索する操作を行う際に、その検索に必要な類似度の演算を少なくすることができ、高速に演算を行うことができる。
【０２４４】
なお、図２８では、コードブック記憶部８１内の各テンプレートベクトルデータＴ1 ，Ｔ2 ，Ｔ3 ，Ｔ4 ，…は任意の順で並んでいたが、特徴量の大きい順に並べておいても良い。テンプレートベクトルデータが特徴量順に並んでいる場合、テンプレートベクトルデータを検索する際、入力ベクトルデータＩと特徴量が最も近いテンプレートベクトルデータから検索をすることが容易になる。特徴量が近い２つのベクトルデータは、類似度も大きい傾向があるので、入力ベクトルデータと特徴量が最も近いテンプレートベクトルデータから検索を行うことで、類似度の演算をより多く省略することができる。
【０２４５】
また、本実施形態では、ベクトル量子化装置が取り扱うベクトルデータの次元を６次元としたが、ベクトルデータの次元は任意で良い。
また、図２８のベクトル量子化装置は、専用のハードウェアで実現することも可能であるし、コンピュータ上のプログラムによってソフトウェアで実現することもできる。ハードウェアで実現する場合、新たに設けた特徴量演算部８５、特徴量差分演算部８６および演算省略判定部８７は、それ程大きなハードウェア面積を必要としない。
【０２４６】
また、上記実施形態において、ベクトルデータの特徴量としては、ベクトルデータの要素の総和に限定されるものではない。例えば、ベクトルデータの分散を使いたい場合は、特徴量演算部８５と演算省略判定部８７とを分散演算用のものに変更すれば良い。また、類似度を求める関数をマンハッタン距離以外の関数、例えばユークリッド距離を求める関数等に変更したい場合は、マンハッタン距離演算部８３と最小マンハッタン距離記憶部８４と演算省略判定部８７とを変更すれば良い。
【０２４７】
（第１３の実施形態）
第１３の実施形態では、上記第１２の実施形態で示したベクトル量子化装置への入力として画像データを用い、上記実施形態のベクトル量子化装置を画像圧縮装置に応用した例を、図３０および図３１を使って説明する。まず、ベクトル量子化装置を使って画像圧縮を行う場合の一般的な例を図３０により説明する。
【０２４８】
図３０において、入力される原画像９１は、画素と呼ばれる要素が多数集まって構成されている。個々の画素は輝度値、あるいは色差信号などの情報を持っている。入力画像９１中から複数画素で構成されるブロックを取り出したのが、入力画像ブロック９２である。図３０の例では、入力画像ブロック９２の大きさとして４×４画素を選んでいるが、この大きさは何であっても良い。
【０２４９】
入力画像ブロック９２は、上述の通り複数の画素を持っているから、各々の画素が持つ輝度値などを集めてベクトルデータとすることができる。これが図２８で説明したベクトル量子化装置の入力ベクトルデータＩである。
【０２５０】
人間の視覚特性上、入力画像９１中の幾つかの入力画像ブロックは、見た目では殆ど同じに見える場合がある。こういった同じに見える複数の入力画像ブロックを、より少ない数の画像ブロックで代表させることが可能である。画像ブロックコードブック９３は、入力画像９１上の多数の入力画像ブロックを代表する画像ブロック（テンプレートベクトルデータ）を複数持ったものである。テンプレートベクトルデータは、画像ブロックコードブック９３内の画像ブロック各々の画素が持つ輝度をベクトルデータとしたものである。
【０２５１】
ベクトル量子化装置では、入力画像９１全体を画像ブロックとして分割し、各々の画像ブロック９２を入力ベクトルデータとして、その入力ベクトルデータに類似するテンプレートベクトルデータをコードブック９３内から検索する。そして、該当するテンプレートベクトルデータの番号のみを転送することで、画像を圧縮することが可能である。圧縮された画像を再生して再現画像９４を得るには、上記転送された番号に対応するテンプレートベクトルデータをコードブック９３から読み出し、画像に当てはめれば良い。
【０２５２】
本実施形態において、入力画像９１中から画像ブロック９２で示される入力ベクトルデータを取り出してしまえば、類似度を求める関数としてマンハッタン距離を用い、特徴量としてベクトルデータの要素の総和を用いた場合、ベクトル量子化の手順は上述した第１２の実施形態と全く同一である（ここではその詳細な手順の説明は省略する）。よって、入力ベクトルデータに類似するテンプレートベクトルデータを検索する際、検索にまつわる演算を少なくできるので、高速な画像の圧縮が可能となる。
【０２５３】
以上のような方法によって画像データに対してベクトル量子化の操作を行ったときに、マンハッタン距離の演算をどれほど省略できるのかを示したのが、図３１である。図３１は、屋外風景写真、屋内風景写真、人物写真を入力画像としたときに、様々なテンプレートベクトルデータ群に対して、各々のテンプレートベクトルデータ群の中でマンハッタン距離を演算しなければならないテンプレートベクトルデータの割合を表している。
【０２５４】
この図３１によると、テンプレートベクトルデータ群の中で、入力ベクトルデータとのマンハッタン距離を演算しなければならないテンプレートベクトルデータは、せいぜい１４％以内となっていることが分かり、本実施形態の有用性が示されている。
【０２５５】
なお、以上の例では画素の輝度値をベクトルデータとしたが、輝度値だけでなく、各画素が有する数値化された情報は何であれベクトルデータとすることができる。また、入力画像９１中から入力画像ブロック９２を取り出した後、離散余弦変換をはじめとする様々な変換をかけ、変換後の画像からベクトルデータを作ってベクトル量子化装置の入力としても良い。
【０２５６】
また、入力ベクトルデータが画像データの場合は、特徴量としてベクトルデータの要素の総和を用いても、画像データを周波数分解した際の直流成分を用いても、両者は等価である。何故ならば、上記直流成分は、ベクトルデータの要素の総和に対してある係数を掛けたものに過ぎないからである。
【０２５７】
（第１４の実施形態）
上記第１２の実施形態で示したベクトル量子化装置への入力として画像データを用いた場合、ベクトルデータの特徴量として、画像特有の性質を使うことが可能である。本実施形態では、ベクトル量子化装置の入力を画像データとした場合の画像データ特有な特微量について説明し、幾つかの特徴量を組み合わせてベクトル量子化処理の演算量を減少させることが可能であることを以下に示す。
【０２５８】
まず、画像データに対して、類似度を演算する関数をマンハッタン距離とし、特徴量としてベクトル要素の総和を用いた場合の問題点を、図３２を使って説明する。図３２において、入力ベクトルデータに対応する画像ブロック１０１と、テンプレートベクトルデータに対応する画像ブロック１０２は、ほぼ同じブロックである。一方、入力ベクトルデータに対応する画像ブロック１０１と、もう一方のテンプレートベクトルデータに対応する画像ブロック１０３は、全く上下左右が反転したブロックとなっており、見た目では全く異なるものである。
【０２５９】
実際に、入力画像ブロック１０１とテンプレート画像ブロック１０２，１０３との画素の輝度値を取り出して、それぞれをベクトルデータとしてマンハッタン距離を演算すると、テンプレート画像ブロック１０３は、もう一方のテンプレート画像ブロック１０２と比較して入力画像ブロック１０１と類似していないことが明らかになる。
【０２６０】
しかしながら、特徴量であるベクトルデータの要素の総和は、２つのテンプレート画像ブロック１０２と１０３とで等しい。このことは、特徴量としてベクトルデータの要素の総和を使っただけでは、無駄な類似度演算が多く残ることを意味している。
【０２６１】
この問題を解決するための手段としては、特徴量として、ベクトルデータの各要素の一部を画素の明暗が反転するように操作した後の各要素の総和を使うという手段が考えられる。
【０２６２】
図３３は、ベクトルデータの要素の一部の明暗を反転させた場合、画像ブロックがどのように変化するかを表している。初期の画像ブロック１１１に対して、３種類の反転パターン１１２〜１１４を用いて、黒で塗りつぶされた部分の画素が明暗反転するように操作した結果が、反転後画像ブロック１１５〜１１７である。このように、１つの画像に対して異なる反転パターン１１２〜１１４で明暗反転をすると、初期の画像ブロックが同じでも、反転後画像ブロック１１５〜１１７の画素の輝度値の総和１１８〜１２０は異なった値となる。
【０２６３】
また、図３４は、ベクトルデータの要素の総和が等しい場合でも、ベクトルデータの要素の一部を画素の明暗が反転するように操作してから、ベクトルデータの要素の総和を求めて特徴量とすると、特徴量に差が現れてくる例を示したものである。図３４において、初期の画像ブロック１２１と１２２は、画素の輝度値の総和は全く同じである。よって、ベクトルデータの要素の総和、すなわち、ブロック内の画素の輝度値の総和を特徴量としても両者は全く区別できない。
【０２６４】
このような２つの初期画像ブロック１２１，１２２に対して、同じ反転パターン１２３の黒塗りの部分を明暗反転し、反転後の画像ブロック１２４，１２５について画素の輝度値の総和１２６，１２７を計算すると、両者は全く異なった値となる。
【０２６５】
本実施形態は、以上のことを利用して、無駄なマンハッタン距離の演算を更に減少させることができるようにしたものである。すなわち、以上の例からも分かるように、ある特徴量を使ったときには省略できない類似度の演算が、別の特徴量を使うと省略できる場合がある。この場合、異なる特徴量を２つ以上利用して演算量を更に減少させることができる。
【０２６６】
具体的には、ある特徴量でテンプレートベクトルデータの中から類似度を演算しなければならない範囲を絞り込み、別の特徴量で更に範囲を絞り込むという、２段階で特徴量を使う方法や、同時に２つの特徴量を使って、特徴量の差が大きい方を演算省略の判断に使う方法などが挙げられる。
【０２６７】
なお、ある画像から入力画像ブロックを取り出してきてベクトル量子化装置の入力とする場合、上述の「ベクトルデータの要素の一部を画素の明暗が反転するように操作した後のベクトルデータの総和」の他にも、画像特有の特徴量がいくつか考えられる。以下では、画像ブロックの四隅の画素の情報を特徴量として使う方法と、画像ブロック上の画素値の変化の様子を特徴量として使う方法とを説明する。
【０２６８】
最初に、画像ブロックの四隅の画素の情報を特徴量として使う方法について説明する。画像ブロックを入力画像中から取り出してきた場合に、ブロック内で画素値がある方向に滑らかに変化する画像に対しては、画像ブロックの四隅から特徴量を得ることができる。図３５は、画像ブロックの四隅を特徴量として使う方法を説明した図である。
【０２６９】
図３５（ａ）において、画像ブロック１３１は、ブロックの右下から左上方向に輝度が徐々に明るくなる変化をしている。この画像ブロック１３１から四隅１３３を取り出し、それらの４画素の輝度値を比較すると、画像ブロック１３１はどのような方向に輝度が変化しているのかを把握することができる。
【０２７０】
また、画像ブロック１３２とその四隅１３４は、画素値の変化する方向が上記とは異なる場合の一例を示すものであり、画像ブロックの右辺から左辺方向に輝度が徐々に明るくなる変化を示している。なお、１３３および１３４中に示した矢印は、画素の輝度の大小関係を示すものであり、矢印の先にある画素の方が輝度が大きい。また、輝度の大小に差がない場合には、線分で表している。
【０２７１】
このように、画像ブロックの四隅の画素の間で輝度を大小比較し、大小を判別することで、画像ブロックの特徴を捉えることができる。四隅の画素の間での輝度の大小パターンは幾通りもあるので、それらのパターンを番号付けして特徴量とすることができる。すなわち、図３５（ｂ）に示すように、四隅の画素の間での輝度の大小の各パターンに対して番号を付与し、その番号を特徴量として本実施形態のベクトル量子化装置に組み込むことができる。
【０２７２】
なお、図３５では、画像ブロックの大きさを４×４画素としているが、この大きさは任意で良い。また、画素値として輝度値を用いているが、他の画素値（例えば色信号値）を用いても良い。
【０２７３】
次に、画像ブロック上での画素値の変化を特微量として使う方法を説明する。入力画像中から画像ブロックを幾つか切り出してくると、それらの画像ブロックの中には、画素値の変化の様子が似ているものがある。図３６は、画素値の変化の周期および変化率が同じである２つの画像ブロック１４１，１４２を示している。これらの画像ブロック１４１と１４２は何れも左右方向にのみ画素値が変化している。
【０２７４】
画像ブロック１４１の左右方向の画素値の変化は、もう一方の画像ブロック１４２の左右方向の画素値の変化に所定の係数をかけて、変化の振幅を抑えたものに他ならない。このような状態を、画像ブロック１４１，１４２の画像ブロック上での画素値の変化のモードが同じであると言うことにする。
【０２７５】
画像ブロック上での画素値の変化のモードは多数あるので、それらの変化のモードを番号付けすることにより特徴量とすることができる。すなわち、画素値の変化のモードに対してそれぞれ番号を付与し、その番号を特徴量として本実施形態のベクトル量子化装置に組み込むことができる。
なお、この図３６でも画像ブロックの大きさを４×４画素としているが、この大きさは任意で良い。
【０２７６】
最後に、第１の特徴量として画像ブロック上での画素値の変化、つまり画像ブロック上での変化のモードを番号付けしたものを用いるとともに、第２の特徴量として画像ブロック上の画素の値の総和、つまりベクトルデータの要素の総和を用いた場合の、第１４の実施形態に係るベクトル量子化装置の構成を、図３７を用いて説明する。なお、図３７において、図２８に示したブロックと同じブロックには同一の符号を付している。また、ここでは類似度をマンハッタン距離によって求めている。また、図３７中ではベクトルデータを、相当する画像ブロックとして視覚的に表現している。
【０２７７】
入力ベクトルデータＩは、第１の特徴量である画像ブロック上での画素値の変化モードによって分類される。すなわち、変化モード判定部１５１は、画素値の変化モードの典型的なベクトルデータを集めた特徴テンプレート記憶部１５２に記憶されているベクトルデータの情報をもとに、入力ベクトルデータＩの第１の特徴量である画像ブロック上での画素値の変化モードが、テンプレートの何番に相当するものであるかを示すデータｄ８を出力する。
【０２７８】
テンプレートベクトルデータを記憶するコードブック記憶部８１と、テンプレートベクトルデータの第２の特徴量であるベクトルデータの要素の総和を記憶する特徴量記憶部８２の内部には、第１の特徴量の種類ごとにデータが並べられている。図３７の例では、入力ベクトルデータＩの第１の特徴量は"２"と判断されたので、コードブック記憶部８１と特徴量記憶部８２の中から、第１の特徴量が"２"となる部分１５３のみが選択され、残りの部分は検索対象外となる。
【０２７９】
コードブック記憶部８１および特徴量記憶部８２の中で、以上のようにして第１の特徴量が"２"となる部分１５３に関してのみ、上記第１２の実施形態と同様の手順でテンプレートベクトルデータの検索を行う。すなわち、入力ベクトルデータＩの第２の特徴量を特徴量演算部８５で演算し、その結果ｄ４と、特徴量記憶部８２内の特徴量ｄ５とを用いて、特徴量差分演算部８６ならびに演算省略判定部８７により、コードブック記憶部８１内の第１の特徴量が"２"となるテンプレートベクトルデータの中で、特にマンハッタン距離の演算が必要ないものを判断する。
【０２８０】
以上のように、第１４の実施形態によれば、第１２の実施形態で説明したように特徴量を単独で使う場合に比べて、より多くの演算を省略することができる。これは、第１の特徴量によってあらかじめ検索対象となるテンプレートベクトルデータを限定し、第２の特徴量で更に検索対象を絞り込むようにしているからである。これによって、特徴量を１つだけ使う場合に比べてより多くの演算の省略が可能となり、より高速に演算を行うことができる。
【０２８１】
また、テンプレートベクトルデータは、第１の特徴量だけでなく、第２の特徴量の大きさ順によっても並べることで２次元的な配列にしておくことにより、入力ベクトルデータＩと第２の特徴量が似たテンプレートベクトルデータから検索を始めることができるので、入力ベクトルデータＩと類似するテンプレートベクトルデータをより効率的に検索することができる。
なお、図３７では、画像ブロックの大きさとして４×４画素、つまりベクトルデータに直せば１６次元のものを例に説明したが、この大きさは任意である。
【０２８２】
（第１５の実施形態）
図３８は、第１５の実施形態に係るデータ圧縮伸長システムの構成例を示す図である。本実施形態では、ベクトル量子化を利用したデータ圧縮伸長システムにおいて、データ圧縮・伸長時に使用するコードブックを保持しておくためのシステムを独立に用意しておくものである。
【０２８３】
図３８において、コードブック方式圧縮システム１６１は、外部より入力された、あるいは蓄積されているデータをコードブック方式により圧縮する装置である。コードブックサーバシステム１６２は、コードブック蓄積装置１７１、コードブック管理装置１７２、コードブック登録装置１７３、コードブック生成装置１７４を備え、圧縮・伸張システムからのリクエストに応じてコードブックを転送する機能を持つ。
【０２８４】
コードブック方式圧縮システム１６１においてデータ圧縮の処理過程で使用するコードブックは、コードブックサーバ１６２よりネットワーク１６４を介して転送されたコードブック１６５を用いる。どのようなコードブックが必要であるかは、コードブックサーバ１６２に対するコードブック・リクエスト１６３をネットワーク１６４を介して送信する。
【０２８５】
コードブックサーバ１６２は、コードブック・リクエスト１６３に対する返答として、以下のような動作を実行する。すなわち、コードブック管理装置１７２が、リクエストされたものに合ったコードブックのデータをコードブック蓄積装置１７１に蓄積されたコードブックの中から探し出し、それをネットワーク１６４を介してコードブック方式圧縮システム１６１に送信する。なお、コードブック蓄積装置１７１には、コードブック登録装置１７３によって事前に幾つかのコードブックが登録され、蓄積されている。
【０２８６】
上記コードブック蓄積装置１７１内にリクエストされたものに合致するコードブックがない場合には、最も似通ったコードブックからリクエストに合ったコードブックをコードブック生成装置１７４が生成する。このとき、コードブック蓄積装置１７１に蓄積されているコードブックを基に生成しても良いし、全く新たに生成しても良い。
【０２８７】
以上のようにして転送されたコードブック１６５を用いて、コードブック方式圧縮システム１６１で生成された圧縮データは、ネットワーク１６６を介してコードブック方式伸長システム１６７に送信される。
コードブック方式伸長システム１６７においてデータ伸長の処理過程で使用するコードブックは、コードブックサーバ１６２より転送されたコードブック１７０を用いる。どのようなコードブックが必要であるかは、コードブックサーバ１６２に対するコードブック・リクエスト１６８をネットワーク１６９を介して送信する。
【０２８８】
コードブック方式伸長システム１６７がリクエストする内容は、コードブック方式圧縮システム１６１で生成されたリクエスト内容を圧縮データと共に受け取り、これを使用しても良い。また、コードブック方式伸長システム１６７が独自に生成したリクエスト内容であっても良く、圧縮と伸長とで異なるコードブックを使用しても差し支えない。
【０２８９】
コードブックサーバ１６２は、コードブック・リクエスト１６８に対する返答として、以下のような動作を実行する。すなわち、コードブック管理装置１７２が、リクエストされたものに合ったコードブックのデータをコードブック蓄積装置１７１に蓄積されているコードブックの中から探し出し、それをネットワーク１６９を介してコードブック方式伸長システム１６７に送信する。
【０２９０】
リクエストされたものに合致するコードブックがない場合には、最も似通ったコードブックからリクエストに合ったコードブックをコードブック生成装置１７４が生成する。このとき、コードブック蓄積装置１７１に蓄積されているコードブックを基に生成しても良いし、全く新たに生成しても良い。
【０２９１】
以上のように、本実施形態では、ベクトル量子化によるデータ圧縮・伸長時に使用するコードブックを保持しておくためのコードブックサーバ１６２を独立に用意しておく。さらに、このコードブックサーバ１６２と、データ圧縮システム１６１（データ送信側）と、データ伸長システム１６７（データ受信側）とを、それぞれ互いにアナログ電話回線、デジタル回線、インターネット専用線、通信回線等に代表されるネットワークを介して接続する。
【０２９２】
そして、データ圧縮システム１６１、データ伸長システム１６７のそれぞれからコードブックの配信要求がコードブックサーバ１６２に与えられたときに、コードブックサーバ１６２がネットワークを介して瞬時にコードブックを送信するようにする。
【０２９３】
これにより、各データ圧縮・伸長システムがコードブックを保持する必要がなく、かつ、コードブックが更新された場合にはコードブックサーバ１６２のデータを更新するだけで良いので、非常に簡単なデータ転送システムを実現することができる。また、常に最新のコードブックをコードブックサーバ１６２から受け取ることができ、データの質を良好に保つことができる。
【０２９４】
（第１６の実施形態）
第１６の実施形態では、各フレーム毎にフレーム内でのベクトル量子化（空間方向ベクトル量子化）を行った後で、それにより得られたコード番号を並べ替えてフレーム間でのベクトル量子化（時間軸方向ベクトル量子化）を行う上述の実施形態を応用した例について、以下に述べる。
【０２９５】
これまでに述べた第２〜第７の実施形態では、それぞれのフレームから空間方向ベクトル量子化後のコード番号を１つずつ抜き出してきて、それらをフレーム画像順に並べ替えることによって新たなベクトル（時間軸ベクトル）を生成していた。これに対して、第１６の実施形態では、１枚のフレームから抜き出してくるコード番号は１つではなく、各フレームからそれぞれ複数のコード番号を抜き出してきて新たな時間軸ベクトルを生成するものである。
【０２９６】
図３９は、本実施形態に係る空間方向コード番号の並べ替え方を説明するためのデータフロー図である。図３９に示すように、まず原画像のそれぞれのフレームに対して、４×４画素単位のマクロブロック毎に空間方向ベクトル量子化（ＳＤＶＱ）の処理を行い、各マクロブロックを空間方向用コードベクトルに対応するコード番号で置き換える。図３９の例では、あるフレームの右隅のマクロブロックがコード番号"３０"に置き換えられ、その周りの３つのマクロブロックがコード番号"１５"、"１０"、"２０"に置き換えられていることが示されている。
【０２９７】
このような空間方向ベクトル量子化の処理が各フレーム（図３９の例では４つのフレーム）について行われると、空間方向用コードブックのコード番号で表現されたそれぞれのフレーム画像中から、同じアドレスが示すブロックのコード番号を２×２のブロック単位で４個ずつ取り出してきて、それらをフレーム画像順に並べ替える。これにより、時間軸方向に分散して存在する同アドレス４ブロック分の各コード番号を１つの時間軸ベクトルのデータ列、つまり時間軸方向ベクトル量子化（ＴＤＶＱ）用の１つのマクロブロックとしてまとめて表現する。
【０２９８】
図４０は、本実施形態による空間方向コード番号の再配列の仕方を上述した第２の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図であり、また図４１および図４２は、その場合のデータ圧縮伸長システムの構成例を示すブロック図である。なお、図４０に関して、圧縮対象とするフレーム数が４フレームであること、およびコード番号の再配列の仕方が異なること以外は図１１に示した第２の実施形態と同じなので、ここでは説明を省略する。
【０２９９】
図４１において、本実施形態のデータ圧縮システムでは、図９に示した第２の実施形態によるデータ圧縮システムに対して、空間方向コード再配列方法指定部１８１が更に追加されている。また、図４２において、本実施形態のデータ伸長システムでは、図１０に示した第２の実施形態によるデータ伸長システムに対して、空間方向コード再生方法指定部１８２が更に追加されている。
【０３００】
空間方向コード再配列方法指定部１８１は、空間方向コード番号を再配列して新たな時間軸ベクトルを生成する際に、１枚のフレームから抜き出してくるコード番号を１個とするか、それとも各フレームからそれぞれ４個のコード番号を抜き出してくるかを指定するものである。言い換えれば、ベクトル量子化の一連の処理を図１１の流れに従って行うか、それとも図４０の流れに従って行うかを指定するものである。
【０３０１】
また、空間方向コード再生方法指定部１８２は、これとは逆に、時間軸コード番号に対応するコードベクトルを時間軸コードブックから取り出す際に、１つの時間軸コード番号に対して１個のコードベクトルを取り出すか、それとも４個のコードベクトルを取り出すかを指定するものである。この指定は、空間方向コード再配列方法指定部１８１でどちらの再配列方法が指定されたかに応じて、対応する再生方法が指定される。
【０３０２】
図４３および図４４は、本実施形態による空間方向コード番号の再配列の仕方を上述した第３の実施形態および第４の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。これらの図４３および図４４に関して、圧縮対象とするフレーム数が５フレームであること、およびコード番号の再配列の仕方が異なること以外は、図１２や図１３に示した第３の実施形態および第４の実施形態と同じなので、ここでは説明を省略する。
【０３０３】
また、図４５は、本実施形態による空間方向コード番号の再配列の仕方を上述した第７の実施形態に応用した場合のデータ圧縮システムの構成例を示すブロック図である。図４５において、本実施形態のデータ圧縮システムでは、図１５に示した第７の実施形態によるデータ圧縮システムに対して、空間方向コード再配列方法指定部１８１および空間方向ＤＣ成分再配列方法指定部１８３が更に追加されている。
【０３０４】
上記空間方向コード再配列方法指定部１８１は、上記図４１に示したものと同じものである。また、空間方向ＤＣ成分再配列方法指定部１８３は、各ブロックの最小輝度値のみで表現された各フレームの画像に対して、同じアドレスが示すブロックのデータ値をフレーム画像順に再配列して新たな時間軸ベクトルを生成する際に、１枚のフレームから抜き出してくるＤＣ成分を１個とするか、それとも各フレームからそれぞれ４個のＤＣ成分を抜き出してくるかを指定するものである。
【０３０５】
以上のように、第１６の実施形態では、空間方向コード番号やＤＣ成分の再配列の仕方を指定した方法で行うように構成し、各フレームからそれぞれ複数のコード番号やＤＣ成分を抜き出してきて新たな時間軸ベクトルを生成できるようにすることにより、ある程度空間方向にまとまったブロックを単位として時間軸ベクトル量子化を行うことができるので、高い圧縮率を維持しつつ再生画像の品質を更に向上させることができる。
【０３０６】
なお、以上に示した例では、４フレームのそれぞれから空間方向コード番号を２×２のブロック単位で４個ずつ取り出して時間軸ベクトルの１つのマクロブロックとしたが、４フレームのそれぞれから３×３のブロック単位で９個ずつ取り出すようにしても良い。また、この他にも、空間方向コード番号のマクロブロックの取り方や圧縮対象のフレーム数を任意に設定することが可能である。
【０３０７】
図４６に、様々に設定した空間方向コード番号の再配列の方法と、そのときの圧縮率との関係を示す。これから分かるように、図４６に示される表の下の方の設定ほど、高い圧縮率を達成できている。
【０３０８】
（第１７の実施形態）
次に、本発明の第１７の実施形態について説明する。第１７の実施形態は、上述した第８の実施形態を更に改良したものである。
図４７は、本実施形態によるデータ圧縮システムの構成例を示すブロック図であり、第８の実施形態である上記図１７に示したブロックと同じブロックには同一の符号を付している。
【０３０９】
図４７において、画像入力部６１は、画像を連続して取り込む装置である。ここでは、例えば１画素がＲＧＢ各８ビットの階調を持った６４０×４８０画素の画像を、１秒間に３０枚の割合で取り込む。画像処理部１９１は、上記画像入力部６１から取り込まれたＲＧＢの画像信号を、輝度信号（Ｙ信号）と色信号（Ｕ信号、Ｖ信号）とから成る画像信号に変換する。このような処理を行うことにより、後のベクトル量子化でより効率的に情報量を削減できるようになる。なお、上記図１７に示す第８の実施形態の説明では、このような処理については触れていないが、同様に行っても良い。
【０３１０】
コードブック記憶部６２には、例えば４×４画素のブロックで構成されたパターン画像（コードベクトル）が多数登録されていて、各々のブロックにはユニークなコード番号が割り当てられている。これらのコードベクトルは、例えば、後述する特徴量の大きさ順（例えば、アドレス０番が特徴量最小のコードベクトルで、以下昇順）に並べられている。
【０３１１】
コードブック方式による圧縮部６３は、画像処理部１９１で得られた画像の１枚１枚に対して、第８の実施形態で述べたような空間方向ベクトル量子化の処理を行う。すなわち、原画像中に含まれる各マクロブロックに対して、コードブック記憶部６２に多数登録されているコードベクトルの中から最もパターンの似ているものを選び出し、それに対応するコード番号を出力する。６４０×４８０画素の画像を処理する場合、１９２００個のブロックが取り出されて処理されるので、出力されるコード番号も１９２００個である。
【０３１２】
コード列記憶部６４は、ある時刻ｔにおけるフレーム画像をコードブック方式による圧縮部６３にて処理して出力されるコード番号列を記憶しておくためのものである。また、特徴量相関度演算部１９２は、コード列記憶部６４に記憶されている上記ある時刻ｔ（前フレーム）における画像のコード番号列に基づきコードブック記憶部６２から読み出されたコードベクトルと、次の時刻ｔ＋１（現フレーム）の画像に対して空間方向ベクトル量子化を行った結果最もパターンが似ているとして選び出されたコードベクトルとの特徴量（例えば平均値など）を夫々計算し、同じアドレスが示すマクロブロックのコードベクトルの特徴量どうしでその相関を演算する。
【０３１３】
出力部６６は、特徴量相関度演算部１９２から与えられる特徴量の相関値をもとに、媒体６７（ネットワークなどの通信チャンネルまたは記録媒体）に出力するデータを決定する。すなわち、あるマクロブロックのアドレスについて求められた特徴量の相関値がある閾値より小さい場合は、そのアドレスとコードブック方式圧縮部６３から供給される現フレームの対応するコード番号とを媒体６７に出力する。一方、あるマクロブロックのアドレスについて求められた相関値がある閾値より大きい場合は、そのアドレスと対応するコード番号は媒体６７に出力しない（何も出力しない）。この場合、伸長側では、第８の実施形態で述べたように、そのマクロブロックに関しては前フレームで再生された画像が代わりに利用されることとなる。
【０３１４】
なお、ここでは、時間軸方向で同じ位置にある隣接フレーム間の各マクロブロックのうち、フレーム間の相関が小さいマクロブロックではそのアドレスとコード番号とを送信データとし、相関が大きいマクロブロックでは何も送らないようにしているが、送信データの形態はこのような例に限定されない。
【０３１５】
例えば、前フレームと比較して相関が小さいところには、先頭に"１"を立てるとともに、その後にコード番号を付けて送信する。一方、相関が大きいところは"０"のみを立てて送信するようにしても良い。このようにすることにより、伸長側では、各マクロブロック毎に送られてきた送信データの先頭の値が"１"か"０"かを見ることによって、コード番号が送られたブロックと送られていないブロックとを識別することができる。
【０３１６】
また、前フレームと比較して相関が小さいところではコード番号のみを送信データとし、一方、相関が大きいところでは"０"のみを送信データとするようにしても良い。このようにすることにより、伸長側では、各マクロブロック毎に送られてきた送信データの先頭の値が"０"かそうでないかを見ることによって、コード番号が送られたブロックと送られていないブロックとを識別することができる。
【０３１７】
なお、上述した送信データ形式の３つのパターンの何れにおいても、相関の大きさに応じて作成した送信データに対して、更にハフマン符号化やランレングス符号化を施すようにしても良い。このようにすれば、更に情報量を圧縮することができる。
【０３１８】
以上のように、本実施形態では、複数フレームの画像に対してそれぞれ空間方向ベクトル量子化の処理を行う。そして、時間軸方向で同じ位置にある隣接フレームのマクロブロック間で、選び出されたコードベクトルの特徴量を比較し、相関が大きい場合には前フレームにて送られたコード番号を現フレームでもそのまま使うようにしたので、個々のフレーム内で空間方向ベクトル量子化した結果に加えて、フレーム方向（時間軸）に対してもデータを圧縮することができ、動画像データを静止画ＶＱ圧縮より高い圧縮率で圧縮することができる。
【０３１９】
なお、本実施形態では、出力部６６において特徴量相関値と比較する閾値を一定としているが、ある関数等に基づいてフレーム間で変化させるようにしても良い。このようにすることにより、例えば、動画像の動きの激しさ等に応じて閾値を可変とすることで、画像の動きに合わせてダイナミックに圧縮率を変えることができる。
【０３２０】
また、上記実施形態では、コード列記憶部６４に前フレームのコード列を記憶しているが、前フレームで選び出されたコードベクトルを記憶するようにしても良い。このようにすれば、特徴量相関度演算部１９２で現フレームのコードベクトルと比較する前フレームのコードベクトルを、当該記憶部から直接読み出すことができるようになる。
【０３２１】
また、上記実施形態では、比較すべきコードベクトルの特徴量を圧縮動作時に演算により求めているが、各コードベクトルと共にそれに対応する特徴量をコードブック記憶部６２にあらかじめ記憶しておくようにしても良い。このようにすれば、圧縮動作時における特徴量の演算処理を省略することができ、データ圧縮の処理速度を高速化することができる。
【０３２２】
（第１８の実施形態）
次に、本発明の第１８の実施形態について説明する。第１８の実施形態は、上述した第１７の実施形態を更に改良したものである。
すなわち、上記第１７の実施形態では、コードベクトルの特徴量の相関が大きい場合には前フレームのデータをそのまま用いるという性質上、時間の経過と共に再生画像に画質の劣化が起こってしまうことがある。例えば、或るマクロブロックにおいてコードベクトルの特徴量の相関値が閾値をぎりぎりで越えるような状態が数フレームに渡って続く場合には、画質の劣化は否めない。また、そのような状況を予測することも困難である。
【０３２３】
このような画質劣化を目立たなくするために、本実施形態では、図４７に示したデータ圧縮システム中の出力部６６に、特徴量の相関値に関わりなく現フレームのデータを送信するという「データ更新」の機能を更に持たせる。データ更新を行うか否か、あるいはフレーム中のどの部分を更新データとするか否かの判定は、特徴量相関度演算部１９２が行う。本実施形態におけるデータ更新の方法としては、例えば以下に述べるような３つの方法が考えられる。
【０３２４】
第１の方法は、例えば数フレームに１回の割合で、そのフレームについてコードブック方式圧縮部６３により求められた全マクロブロックのコード列を、対応するコードベクトルの特徴量相関値が閾値より大きいか否かに関係なく、全て更新データとして媒体６７に出力するようにする。あるフレームにおいて更新データを出力した後は、その更新データを新たなキーフレームとしてそこから再び空間方向および時間軸方向の圧縮が行われることになる。このようにすれば、前フレームのデータをそのまま用いるという状態が続いていたとしても、その状態を更新データの送信によって必ず断つことができ、時間経過に伴う画質の劣化を抑えることができる。
【０３２５】
ただし、上記第１の方法では、更新データを送信するフレームでは、コードブック方式圧縮部６３により空間方向のベクトル量子化が行われるだけで、相関値の大きさに基づく時間軸方向の圧縮は行われないので、送信データ量は最大（普通に静止画圧縮をしたときの圧縮率）になってしまう。そこで、データ更新の第２の方法では、フレーム内の全データを更新データとするのではなく、所定のブロック単位でデータ更新を行うようにする。
【０３２６】
図４８は、データ更新の第２の方法を説明するための図である。図４８の（ａ）〜（ｄ）はそれぞれ、或る時刻ｔ〜ｔ＋３のフレームを示しており、フレーム中に示される小さい複数のブロックは、４×４画素のマクロブロックである。本実施形態では、例えば図４８中に太線枠で示すように、複数のマクロブロック（図４８の例では、縦２個×横３個）で構成される更に大きなブロック２００を単位として、上述したようなデータ更新を行う。
【０３２７】
すなわち、図４８（ａ）に示す時刻ｔにおけるフレームにおいては、フレームの左上のブロック２００内では、コードブック方式圧縮部６３より出力されたコード列を特徴量相関値の閾値処理によらず媒体６７に出力する。一方、上記ブロック２００以外の領域では、第１７の実施形態で述べたのと同様に、特徴量相関度演算部１９２および出力部６６によって特徴量相関値の閾値処理を行い、特徴量相関値が閾値より小さいマクロブロックについてのみコードを媒体６７に出力する。
【０３２８】
図４８（ｂ）に示す時刻ｔ＋１における次フレームにおいては、データ更新を行うブロック２００の位置を水平方向に１ブロック分ずらす。そして、このようにずらしたブロック２００内では、コードブック方式圧縮部６３より出力されたコード列を特徴量相関値の閾値処理によらず媒体６７に出力する。一方、ブロック２００以外の領域では特徴量相関値の閾値処理を行い、特徴量相関値が閾値より小さいマクロブロックについてのみコードを媒体６７に出力する。
【０３２９】
以下同様にして、図４８（ｃ）、（ｄ）のようにブロック２００の位置をずらしながら処理を進めていき、ブロック２００の位置がフレームの右下までいったら、再び図４８（ａ）の状態に戻って処理を繰り返す。
【０３３０】
このように、複数のマクロブロックにより構成されるブロック２００を単位として順次データ更新の処理を行うことにより、前フレームのデータをそのまま用い続けるという状態を、ブロック２００を単位とした更新データの送信によって断つことができ、時間経過に伴う画質の劣化を抑えることができる。しかも、ブロック２００以外の領域では、空間方向のベクトル量子化に加えて時間軸方向の圧縮も行われることから、高い圧縮率を確保することもできる。
【０３３１】
データ更新の第３の方法は、図４９の太線枠に示すように、１フレーム中に離散して存在する複数のマクロブロック２０１についてデータ更新を行うようにし、このデータ更新を行う離散的な位置を時間と共に（フレームが進む毎に）変えていく方法である。上述した第２の方法では、データ更新を行うブロック２００とそれ以外の領域との間で画質の差が目立つことも考えられるが、第３の方法によれば、このような差は目立たなくなるというメリットを有する。
【０３３２】
なお、本実施形態の第２の方法および第３の方法では、データ更新を行うブロック２００，２０１を毎フレームに設けているが、数フレームおきに設けるようにしても良い。
また、本実施形態では、第１７の実施形態を改良したものとして説明したが、第８の実施形態に上述したデータ更新の処理を適用することも可能である。
【０３３３】
（その他の実施形態）
上記様々な実施形態に示した各機能ブロックおよび処理手順は、ハードウェアにより構成しても良いし、ＣＰＵあるいはＭＰＵ、ＲＯＭおよびＲＡＭ等からなるマイクロコンピュータシステムによって構成し、その動作をＲＯＭやＲＡＭに格納された作業プログラムに従って実現するようにしても良い。また、上記各機能ブロックの機能を実現するように当該機能を実現するためのソフトウェアのプログラムをＲＡＭに供給し、そのプログラムに従って上記各機能ブロックを動作させることによって実施したものも、本発明の範疇に含まれる。
【０３３４】
この場合、上記ソフトウェアのプログラム自体が上述した各実施形態の機能を実現することになり、そのプログラム自体、およびそのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、上記ＲＯＭやＲＡＭの他に、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｉ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ｚｉｐ、磁気テープ、あるいは不揮発性のメモリカード等を用いることができる。
【０３３５】
また、コンピュータが供給されたプログラムを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等の共同して上述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
【０３３６】
さらに、供給されたプログラムがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【０３３７】
以下に、本発明の態様例を示す。
（態様例１）
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するようにするブロックシフト手段を備えたことを特徴とするデータ圧縮装置。
（態様例２）
上記ベクトルを構成するブロックは、データ位置を１次元的に配列したラインブロックであることを特徴とする態様例１に記載のデータ圧縮装置。
（態様例３）
少なくとも１つ以上のデータを有するデータ列をベクトルとし、少なくとも１つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記コードブックの中から探し出したコードベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てるブロックシフト手段を備えたことを特徴とするデータ伸長装置。
（態様例４）
上記ベクトルを構成するブロックは、データ位置を１次元的に配列したラインブロックであることを特徴とする態様例３に記載のデータ伸長装置。
上記態様例１〜４によれば、圧縮時にベクトル量子化を行う際に使用するベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するか、もしくは、伸長時にコードブックの中から探し出したコードベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てるようにしたので、例えば圧縮対象として画像データを用いた場合、再生画像上において各ブロック境界の連続性を断ってブロック境界（量子化誤差）を目立ちにくくすることができる。これにより、圧縮率を保ったまま質の高い再生画像を得ることができる。
（態様例５）
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、データ圧縮時には、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するとともに、データ伸長時には、上記コードブックの中から上記コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ圧縮伸長システムにおいて、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記データ圧縮時において、上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するようにする第１のブロックシフト手段と、
上記データ伸長時において、上記コードブックの中から探し出したコードベクトルのブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てる第２のブロックシフト手段との少なくとも何れかを備えたことを特徴とするデータ圧縮伸長システム。
（態様例６）
上記ベクトルを構成するブロックは、データ位置を１次元的に配列したラインブロックであることを特徴とする態様例５に記載のデータ圧縮伸長システム。
（態様例７）
上記第１のブロックシフト手段によるブロックシフトと、上記第２のブロックシフト手段によるブロックシフトとは、シフト量が同じで方向が互いに逆の関係にあることを特徴とする態様例５または態様例６に記載のデータ圧縮伸長システム。
（態様例８）
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するようにしたことを特徴とするデータ圧縮方法。
（態様例９）
上記ベクトルを構成するブロックは、データ位置を１次元的に配列したラインブロックであることを特徴とする態様例８に記載のデータ圧縮方法。
（態様例１０）
少なくとも１つ以上のデータを有するデータ列をベクトルとし、少なくとも１つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記コードブックの中から探し出したコードベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てるようにしたことを特徴とするデータ伸長方法。
（態様例１１）
上記ベクトルを構成するブロックは、データ位置を１次元的に配列したラインブロックであることを特徴とする態様例１０に記載のデータ伸長方法。
（態様例１２）
少なくとも１つ以上のデータを有するデータ列をブロック化してベクトルとし、データ圧縮時には、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するとともに、データ伸長時には、上記コードブックの中から上記コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ圧縮伸長方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記データ圧縮時において、上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するとともに、
上記データ伸長時において、上記コードブックの中から探し出したコードベクトルのブロックを、少なくとも垂直方向に近接するブロック間では、上記データ圧縮時とシフト量が同じで方向が互いに逆の関係となるように空間的位置を水平方向にずらして割り当てるようにしたことを特徴とするデータ圧縮伸長方法。
（態様例１３）
上記ベクトルを構成するブロックは、データ位置を１次元的に配列したラインブロックであることを特徴とする態様例１２に記載のデータ圧縮伸長方法。
【図面の簡単な説明】
【０３３８】
【図１】第１の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図２】第１の実施形態によるデータ伸長装置の構成を示すブロック図である。
【図３】第１の実施形態によるデータ圧縮装置の動作を示すフローチャートである。
【図４】第１の実施形態によるデータ伸長装置の動作を示すフローチャートである。
【図５】ラインブロックをベクトルデータとして用いた第１の実施形態による特徴を説明するための図である。
【図６】ラインブロックを貼り込む位置をずらした第１の実施形態による特徴を説明するための図である。
【図７】６４０×４８０画素の１枚の画像を圧縮・伸長処理するために要する時間を示す図である。
【図８】ベクトル量子化システム全体のデータの流れを説明するための図である。
【図９】第２〜第４の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図１０】第２〜第４の実施形態によるデータ伸長装置の構成を示すブロック図である。
【図１１】第２の実施形態による圧縮時のデータの流れを示すデータフロー図である。
【図１２】第３の実施形態による圧縮時のデータの流れを示すデータフロー図である。
【図１３】第４の実施形態による圧縮時のデータの流れを示すデータフロー図である。
【図１４】第５の実施形態を説明するためのブロック図である。
【図１５】第７の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図１６】第７の実施形態による圧縮時のデータの流れを示すデータフロー図である。
【図１７】第８の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図１８】第８の実施形態によるデータ圧縮装置をソフトウェアにより実現する場合の構成を示すブロック図である。
【図１９】第８の実施形態によるデータ圧縮装置の動作を示すフローチャートである。
【図２０】第９の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図２１】第１０の実施形態によるコードブック作成方法を説明するための図である。
【図２２】第１０の実施形態を示す図であり、初期のコードブックを様々に与えた場合のＰＳＮＲ特性の違いを説明するための図である。
【図２３】第１０の実施形態を示す図であり、書き換えパターンを様々に変えた場合のＰＳＮＲ特性の違いを説明するための図である。
【図２４】第１０の実施形態を示す図であり、利得の与えた方を様々に変えた場合のＰＳＮＲ特性の違いを説明するための図である。
【図２５】第１０の実施形態を示す図であり、利得の初期値を様々に与えた場合のＰＳＮＲ特性の違いを説明するための図である。
【図２６】第１１の実施形態について説明するための図である。
【図２７】第１１の実施形態について説明するためのＰＳＮＲ特性図である。
【図２８】第１２の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図２９】第１２の実施形態によるデータ圧縮装置の動作を示すフローチャートである。
【図３０】第１３の実施形態について説明するための図である。
【図３１】第１３の実施形態について説明するための特性図である。
【図３２】第１４の実施形態について説明するための図である。
【図３３】第１４の実施形態について説明するための図である。
【図３４】第１４の実施形態について説明するための図である。
【図３５】第１４の実施形態について説明するための図である。
【図３６】第１４の実施形態について説明するための図である。
【図３７】第１４の実施形態によるデータ圧縮装置の構成を示すブロック図である。
【図３８】第１５の実施形態によるデータ圧縮伸長システムの構成を示すブロック図である。
【図３９】第１６の実施形態による空間方向コード番号の並べ替え方を説明するためのデータフロー図である。
【図４０】第１６の実施形態による空間方向コード番号の再配列の仕方を第２の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。
【図４１】第１６の実施形態によるデータ圧縮装置の構成例を示すブロック図である。
【図４２】第１６の実施形態によるデータ伸長装置の構成例を示すブロック図である。
【図４３】第１６の実施形態による空間方向コード番号の再配列の仕方を第３の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。
【図４４】第１６の実施形態による空間方向コード番号の再配列の仕方を第４の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。
【図４５】第１６の実施形態による空間方向コード番号の再配列の仕方を第７の実施形態に応用した場合のデータ圧縮装置の構成例を示すブロック図である。
【図４６】空間方向コード番号の再配列の方法と圧縮率との関係を示す図である。
【図４７】第１７の実施形態によるデータ圧縮システムの一構成例を示すブロック図である。
【図４８】第１８の実施形態によるデータ更新処理の第２の方法を説明するための図である。
【図４９】第１８の実施形態によるデータ更新処理の第３の方法を説明するための図である。
【符号の説明】
【０３３９】
１  画像入力部
２  画像メモリ
３  読み出し部
４  ブロック化部
１１  再生画像生成部
１２  ブロックシフト部
３５  空間方向用コードブック記憶部
３６  相関度演算部
３７  演算モード指定部
３８  コード決定部
３９  空間方向コード再配列演算部
４０  時間軸用コードブック記憶部
４４  空間方向コード再生部
４５  時間軸用コードブック記憶部
４８  再生画像生成部
４８ａ  時間軸シフト部
４９  空間方向用コードブック記憶部
５１  ＤＣ成分検出・除去部
５２  演算モード指定部
５３  空間方向用コードブック記憶部
５４  空間方向ＤＣ成分再配列演算部
５５  時間軸用コードブック記憶部
５６  時間軸ＤＣ成分用コードブック記憶部
６４  コード列記憶部
６５  コード列比較部
６６  出力部
７４  Ｙ，Ｕ，Ｖ信号分離部
７５  ブロック化部
７６  空間方向用コードブック記憶部
７７  相関度演算部
７８  コード決定部
８１  コードブック記憶部
８２  特徴量記憶部
８３  マンハッタン距離演算部
８４  最小マンハッタン距離記憶部
８５  特徴量演算部
８６  特徴量差分演算部
８７  演算省略判定部
８８  アドレスカウンタ
８９  最小距離アドレス記憶部
１５１  変化モード判定部
１５２  特徴テンプレート記憶部
１６２  コードブックサーバシステム
１７１  コードブック蓄積装置
１７２  コードブック管理装置
１７４  コードブック生成装置
１８１  空間方向コード再配列方法指定部
１８２  空間方向コード再生方法指定部
１８３  空間方向ＤＣ成分再配列方法指定部
１９１  画像処理部
１９２  特徴量相関度演算部
２００  複数の隣接マクロブロックを含むデータ更新ブロック
２０１  複数の離散マクロブロックを含むデータ更新ブロック
【図１】
2005012823.tif 000007
【図２】
2005012823.tif 000008
【図３】
2005012823.tif 000009
【図４】
2005012823.tif 000010
【図５】
2005012823.tif 000011
【図６】
2005012823.tif 000012
【図７】
2005012823.tif 000013
【図８】
2005012823.tif 000014
【図９】
2005012823.tif 000015
【図１０】
2005012823.tif 000016
【図１１】
2005012823.tif 000017
【図１２】
2005012823.tif 000018
【図１３】
2005012823.tif 000019
【図１４】
2005012823.tif 000020
【図１５】
2005012823.tif 000021
【図１６】
2005012823.tif 000022
【図１７】
2005012823.tif 000023
【図１８】
2005012823.tif 000024
【図１９】
2005012823.tif 000025
【図２０】
2005012823.tif 000026
【図２１】
2005012823.tif 000027
【図２２】
2005012823.tif 000028
【図２３】
2005012823.tif 000029
【図２４】
2005012823.tif 000030
【図２５】
2005012823.tif 000031
【図２６】
2005012823.tif 000032
【図２７】
2005012823.tif 000033
【図２８】
2005012823.tif 000034
【図２９】
2005012823.tif 000035
【図３０】
2005012823.tif 000036
【図３１】
2005012823.tif 000037
【図３２】
2005012823.tif 000038
【図３３】
2005012823.tif 000039
【図３４】
2005012823.tif 000040
【図３５】
2005012823.tif 000041
【図３６】
2005012823.tif 000042
【図３７】
2005012823.tif 000043
【図３８】
2005012823.tif 000044
【図３９】
2005012823.tif 000045
【図４０】
2005012823.tif 000046
【図４１】
2005012823.tif 000047
【図４２】
2005012823.tif 000048
【図４３】
2005012823.tif 000049
【図４４】
2005012823.tif 000050
【図４５】
2005012823.tif 000051
【図４６】
2005012823.tif 000052
【図４７】
2005012823.tif 000053
【図４８】
2005012823.tif 000054
【図４９】
2005012823.tif 000055