JP2005012823A - Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium - Google Patents

Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium Download PDF

Info

Publication number
JP2005012823A
JP2005012823A JP2004212138A JP2004212138A JP2005012823A JP 2005012823 A JP2005012823 A JP 2005012823A JP 2004212138 A JP2004212138 A JP 2004212138A JP 2004212138 A JP2004212138 A JP 2004212138A JP 2005012823 A JP2005012823 A JP 2005012823A
Authority
JP
Japan
Prior art keywords
code
data
vector
code book
vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004212138A
Other languages
Japanese (ja)
Inventor
Tadahiro Omi
忠弘 大見
Koji Kotani
光司 小谷
Akira Nakada
明良 中田
Makoto Imai
誠 今井
Masahiro Yoda
正宏 譽田
Tatsuro Morimoto
達郎 森本
Takemi Yonezawa
岳美 米澤
Toshiyuki Nozawa
俊之 野沢
Takahiro Nakayama
貴裕 中山
Masanori Fujibayashi
正典 藤林
Takehisa Nitta
雄久 新田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UCT Corp
Original Assignee
UCT Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by UCT Corp filed Critical UCT Corp
Priority to JP2004212138A priority Critical patent/JP2005012823A/en
Publication of JP2005012823A publication Critical patent/JP2005012823A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reproduce data with high quality on the basis of compressed data by realizing image or voice data compression with a high compression rate. <P>SOLUTION: A correlation ratio calculation section 36 quantizes the vectors of each frame of a moving picture by using a space direction code book. A space direction code book reconstruction calculating section 39 rearranges the obtained code string to generate new vectors. The correlation ratio calculation section 36 quantizes the new vectors by using a time-axis code book. In such a way, not only vector quantization in the space direction is performed for each frame image, but also vector quantization in the time-axis direction is performed between frames along the time axis. Thus, the data compression apparatus or the like is characterized in that data compression is applied between frames so as to compress a moving picture at a high compression rate while keeping the quality of a reproduced image. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明はデータ圧縮装置および方法、データ伸長装置および方法、データ圧縮伸長システムおよび方法、コードブックの作成方法、更にはこれらの処理を実行させるためのプログラムを記憶した記録媒体に関し、特に、データ圧縮手法の1つとしてベクトル量子化を用いる装置、システムおよび方法に用いて好適なものである。   The present invention relates to a data compression apparatus and method, a data expansion apparatus and method, a data compression / decompression system and method, a codebook creation method, and a recording medium storing a program for executing these processes, and in particular, data compression. It is suitable for use in an apparatus, system, and method using vector quantization as one of the methods.

従来、データ圧縮の手法が種々提案されている。その中で、圧縮データの伸長処理を非常に簡単に行うことが可能なデータ圧縮アルゴリズムの1つとして、「ベクトル量子化」という手法が良く知られている。このアルゴリズムは、古くから信号処理の分野で知られており、特に、画像信号や音声信号のデータ圧縮、あるいはパターン認識に応用されてきた。   Conventionally, various data compression techniques have been proposed. Among them, a technique called “vector quantization” is well known as one of data compression algorithms that can perform decompression processing of compressed data very easily. This algorithm has been known for a long time in the field of signal processing, and in particular has been applied to data compression or pattern recognition of image signals and audio signals.

このベクトル量子化では、ある大きさ(例えば4×4画素のブロック)の画素パターンを幾つか用意しておき、それぞれにユニークな番号などを与える(この集合体を「コードブック」という)。そして、例えば2次元配列の画像データ中から同じ大きさ(例えば4×4画素)のブロックを順次取り出し、それと最も似通ったパターンをコードブック中から見つけ出して、そのパターンの番号を当該ブロックに当てはめるというデータ圧縮を行う。ベクトル量子化では、1つのブロック内のデータ列が1つのベクトルに対応する。   In this vector quantization, several pixel patterns of a certain size (for example, a 4 × 4 pixel block) are prepared, and a unique number or the like is given to each pixel pattern (this set is referred to as a “code book”). Then, for example, blocks of the same size (for example, 4 × 4 pixels) are sequentially extracted from the image data of a two-dimensional array, and the most similar pattern is found from the code book, and the pattern number is assigned to the block. Perform data compression. In vector quantization, a data string in one block corresponds to one vector.

このようにコード化された圧縮データの受信側あるいは伸長側では、各ブロック毎に番号に対応するパターンをコードブックの中から取り出すだけで、元の画像を再現することができる。したがって、伸長側では、コードブックさえ受け取っているか、あるいはあらかじめ保持していれば、特に特殊な演算は必要としないため、非常に簡単なハードウェアで元の画像を再生することが可能となる。   On the reception side or decompression side of the compressed data encoded in this way, the original image can be reproduced simply by taking out the pattern corresponding to the number for each block from the code book. Therefore, on the decompression side, if the code book is received or held in advance, no special operation is required, and the original image can be reproduced with very simple hardware.

上述のようなベクトル量子化において、例えば画像や音声信号のデータ圧縮を行う際に、高い圧縮率を保持したままいかに高品質の再生画像や再生音声を得るのか、また、ベクトル量子化を実行する上で必ず必要となるコードブックとしていかに性能の良いものを作成するかが課題となっている。   In vector quantization as described above, for example, when compressing data of an image or audio signal, how to obtain a high-quality reproduced image or reproduced audio while maintaining a high compression rate, and execute vector quantization The issue is how to create a high-performance codebook that is absolutely necessary.

従来、高い圧縮率を実現するために、例えば、画像データから取り出すブロックの大きさを大きくしたり、コードブックを構成するブロックの個数を少なくするといった努力が成されている。また、コードブックの最適化の手法としては、Kohonenの自己組織化マップの手法などを始めとして幾つかの手法が用いられていた。   Conventionally, in order to achieve a high compression rate, for example, efforts have been made to increase the size of blocks extracted from image data or to reduce the number of blocks constituting a codebook. As a codebook optimization technique, several techniques such as Kohonen's self-organizing map technique have been used.

しかしながら、例えばベクトル量子化の手法を用いて画像をデータ圧縮する際に、高い圧縮率を実現しようとすると、どうしても再生画像の画質が劣化してしまうという問題が生じる。逆に、再生画像の画質を高めようとすると、ベクトル量子化以外の処理が入るため、結果的に圧縮率は高くならないという問題があった。   However, for example, when an image is compressed using a vector quantization technique, if a high compression ratio is to be realized, there arises a problem that the image quality of the reproduced image is inevitably deteriorated. Conversely, when trying to improve the quality of the reproduced image, processing other than vector quantization is performed, resulting in a problem that the compression rate does not increase.

画像データの圧縮に用いられるベクトル量子化技術は、静止画に対してベクトル量子化を行うように成されている。したがって、動画像を圧縮する場合は、各々のフレームに対してベクトル量子化を行い、更にベクトル量子化以外の技術を組み合わせることにより実現されてきた。よって、特に動画の場合には、圧縮率が結果的に高くならない割には、再生画像の画質が悪いという問題があった。   A vector quantization technique used for compressing image data is configured to perform vector quantization on a still image. Therefore, compression of moving images has been realized by performing vector quantization on each frame and further combining techniques other than vector quantization. Therefore, particularly in the case of moving images, there is a problem that the image quality of the reproduced image is poor even though the compression rate does not increase as a result.

また、上記Kohonenの自己組織化マップの手法などのコードブックの最適化技術は、サンプル画像などを用いて適当な数式処理を行うことにより、コードブックの最適化を図るものである。したがって、得られるコードブックは、最適化の際に使用したデータに対してのみ有用なコードブックとなってしまうという問題があった。   The codebook optimization technique such as Kohonen's self-organizing map technique is to optimize the codebook by performing appropriate mathematical processing using a sample image or the like. Therefore, there is a problem that the obtained code book becomes a useful code book only for the data used in the optimization.

すなわち、例えば、ある人の顔の画像データを用いて最適化されたコードブックは、その最適化に用いた画像に対しては最良のコードブックとなるが、他の画像に対しては必ずしも最良のコードブックになるとは限らない。したがって、例えば、そのコードブックを他の人の顔の画像データに対して用いてデータ圧縮を実施すると、圧縮データから再生した画像の画質は低下することになる。   That is, for example, a codebook optimized using image data of a person's face is the best codebook for the image used for the optimization, but is not necessarily best for other images. Not necessarily a codebook. Therefore, for example, if the code book is used for image data of another person's face and data compression is performed, the image quality of an image reproduced from the compressed data is lowered.

さらに、最適化に用いた画像と同じ人の顔という分類に含まれる画像に対しては、再生画像として比較的良好な画質が得られても、風景や文字といった異なる分類の画像に対しては、画質が劣化してしまうことが多い。つまり、コードブックのパターンが画像によって全く異なっているため、汎用性の低いコードブックになってしまうという問題があった。   Furthermore, for images included in the classification of the same person's face as the image used for optimization, even if a relatively good image quality is obtained as a reproduced image, for images of different classifications such as landscapes and characters In many cases, the image quality deteriorates. That is, since the code book pattern is completely different depending on the image, there is a problem that the code book becomes less versatile.

また、コードブックを用いたベクトル量子化の技術では、入力ベクトルと最も似通ったパターンのコードベクトルをコードブック中から探し出す処理や、圧縮コードに対応するコードベクトルをコードブック中から取り出して表示する処理に多くの演算を要し、処理に時間がかかるという問題もあった。   In addition, in the vector quantization technique using a code book, a process of finding a code vector having a pattern most similar to an input vector from the code book, and a process of extracting a code vector corresponding to a compressed code from the code book and displaying the code vector However, there is a problem that it takes a lot of operations and takes time.

本発明は、このような問題を解決するために成されたものであり、例えば画像や音声信号のデータ圧縮をベクトル量子化によって行う場合に、データ圧縮を高い圧縮率で実現するとともに、それにより得られた圧縮データをもとに品質の高いデータを再生できるようにすることを目的とする。
また、本発明は、高性能で、種々の画像に対応できる汎用性の高いコードブックを実現できるようにすることも目的とする。
さらに、本発明は、ベクトル量子化による圧縮時および伸長による画像再生時の処理速度を向上させることも目的とする。
The present invention has been made to solve such a problem. For example, when data compression of an image or an audio signal is performed by vector quantization, the data compression is realized at a high compression rate. It is an object to enable reproduction of high quality data based on the obtained compressed data.
Another object of the present invention is to realize a highly versatile code book that can handle various images.
Another object of the present invention is to improve the processing speed at the time of compression by vector quantization and image reproduction by expansion.

第1の本発明は、少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、上記第1のベクトル量子化手段により各時刻毎に出力されたコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段とを備えたことを特徴とする。   In the first aspect of the present invention, a data string having at least one or more data is blocked into a vector, and a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance. In the data compression apparatus that outputs a code corresponding to the code book, the code book is a code book optimized by repeating a predetermined number of times of update processing using a predetermined learning algorithm, and is a compression that changes along a time axis. For each target data at each time, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, and a code string corresponding to each code vector is found for each time. First vector quantization means for outputting to the first vector quantization means and the first vector quantization means The code string output at each time is rearranged into a plurality of new vectors, and for each of the plurality of new vectors, a code vector similar to each of the vectors is searched from the second code book. And a second vector quantization means for outputting a code string corresponding to them.

第2の発明は、少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段とを備えたことを特徴とする。   In the second invention, a data string having at least one or more data is blocked into a vector, and a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance. In the data compression device that outputs a corresponding code, the code book is a code book that is optimized by repeating an update process using a predetermined learning algorithm a predetermined number of times, and is a compression target that changes along a time axis. For each data at each time, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, and a code string corresponding to each is extracted for each time. First vector quantization means for outputting, and the first vector quantization means Among the code strings output at each time, the code string of data at a certain time is used as a reference code string, and between the codes at the corresponding addresses between the reference code string and the code string of data at another time The result of the difference is rearranged into a plurality of new vectors, and for each of the plurality of new vectors, code vectors similar to those vectors are respectively searched from the second codebook, and corresponding to them. And a second vector quantization means for outputting a code string.

第3の発明は、少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段とを備えたことを特徴とする。   According to a third aspect of the present invention, a data string having at least one or more data is blocked into a vector, and a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance. In the data compression device that outputs a corresponding code, the code book is a code book that is optimized by repeating an update process using a predetermined learning algorithm a predetermined number of times, and is a compression target that changes along a time axis. For each data at each time, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, and a code string corresponding to each is extracted for each time. First vector quantization means for outputting, and the first vector quantization means From among the code strings output at each time, the result of taking the difference between the codes of the corresponding addresses between the data adjacent in the time axis direction is rearranged into a plurality of new vectors, And a second vector quantization means for searching each new vector for code vectors similar to those vectors from the second codebook and outputting a code string corresponding to the code vectors. To do.

第4の発明は、上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする。
また、上記第1〜第3の発明であるデータ圧縮装置とは逆の処理を行う伸長側にて複数の新たなベクトルを生成する際に、上記新たなベクトル内の少なくとも近接する要素を時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする。
According to a fourth aspect of the present invention, there is provided a time axis shift means for generating the plurality of new vectors by shifting the elements in the new vector at least between adjacent vectors so as to be shifted in the time axis direction. It is characterized by that.
In addition, when generating a plurality of new vectors on the decompression side that performs processing opposite to that of the data compression apparatus according to the first to third inventions, at least adjacent elements in the new vector are represented on a time axis. It is characterized by comprising time axis shift means for shifting the arrangement in the direction.

第5の発明は、少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、上記圧縮対象から少なくとも1つ以上の特徴量を抽出し、特徴量データと上記圧縮対象から上記特徴量を除いた基本パターンデータとに分離する分離手段を備え、上記分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたことを特徴とする。   According to a fifth aspect of the present invention, a data string having at least one or more data is blocked into a vector, and a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance. In the data compression device that outputs a corresponding code, the code book is a code book that is optimized by repeating an update process using a predetermined learning algorithm a predetermined number of times, and at least one or more codebooks from the compression target A separation means for extracting feature quantities and separating them into feature pattern data and basic pattern data obtained by removing the feature quantities from the compression target is provided, and a vector is independently provided for each of the separated feature quantity data and the basic pattern data. It is characterized by performing quantization.

第6の発明は、少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化手段と、上記ベクトル量子化手段により各時刻毎に出力されるコード列について、時間軸方向に隣接するデータの対応するアドレスどうしでコード間の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とする。
また、第6の発明の他の態様では、上記ベクトル量子化手段により各時刻毎に探し出されるコードベクトルの特徴量について、時間軸方向に隣接するデータの対応するアドレスどうしで上記特徴量の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とする。
According to a sixth aspect of the present invention, a data string having at least one or more data is blocked into a vector, and a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance. In the data compression device that outputs a corresponding code, the code book is a code book that is optimized by repeating an update process using a predetermined learning algorithm a predetermined number of times, and is a compression target that changes along a time axis. A vector that extracts a plurality of blocks from the data at each time, searches for code vectors similar to those vectors from the code book, and outputs a corresponding code string at each time Output at each time by the quantization means and the vector quantization means. Output control means for taking a correlation between the codes corresponding to addresses adjacent to each other in the time axis direction and outputting a code only for an address where the correlation is smaller than a predetermined value. It is characterized by that.
In another aspect of the sixth aspect of the present invention, the feature quantity of the code vector found at each time by the vector quantization means is correlated with the feature quantity between corresponding addresses of data adjacent in the time axis direction. And output control means for outputting a code only for an address having a correlation smaller than a predetermined value.

第7の発明は、少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象のカラー画像より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、輝度信号用のコードブックと色信号用のコードブックとを備え、上記色信号用のコードブックよりも上記輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたことを特徴とする。   According to a seventh aspect of the present invention, a data string having at least one or more data is converted into a block to obtain a vector, and a code vector similar to a vector extracted from a color image to be compressed is searched from a code book prepared in advance. In the data compression apparatus that outputs a code corresponding to the code book, the code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm, and a code book for luminance signals And a code book for color signals, and more code vectors are assigned to the code book for luminance signals than the code book for color signals.

第8の発明は、少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、上記初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用いたことを特徴とする。
また、上記1回の処理で更新する範囲を上記仮想的な2次元平面上で1次元的に適用し、かつ更新回数の増加と共に範囲を減少させることを特徴とする。
また、上記更新係数の初期値を0.3〜1の範囲内の何れかの値とし、かつ更新回数の増加と共に上記更新係数の値を減少させることを特徴とする。
An eighth invention is a method for creating a codebook which is composed of a set of vectors, which is a data string having at least one data, and is used in vector quantization, and includes a sample data and an initial codebook. The code book is optimized by repeatedly performing vector quantization processing and updating the contents of the specified range on the virtual two-dimensional plane of the code book according to a predetermined update coefficient for each processing. In the method of creating a code book to be converted, a code book having a pattern in which data values continuously change from a minimum value to a maximum value of possible values is used as the initial code book.
In addition, the range to be updated by the one-time process is applied one-dimensionally on the virtual two-dimensional plane, and the range is decreased as the number of updates increases.
The initial value of the update coefficient is set to any value within a range of 0.3 to 1, and the value of the update coefficient is decreased as the number of updates increases.

第9の発明は、少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、複数のサンプルデータに対して独立にコードブックを最適化し、得られた複数のコードブックを合成して新たなコードブックを作成するようにしたことを特徴とする。   A ninth invention is a method for creating a codebook which is composed of a set of vectors, which is a data string having at least one or more data, and is used in vector quantization, and includes a sample data and an initial codebook. The code book is optimized by repeatedly performing vector quantization processing and updating the contents of the specified range on the virtual two-dimensional plane of the code book according to a predetermined update coefficient for each processing. In the method of creating a code book to be converted, a code book is optimized independently for a plurality of sample data, and a plurality of obtained code books are synthesized to create a new code book. .

第10の発明は、コードブック内の各コードベクトルに関してあらかじめ求められた特徴量を記憶する特徴量記憶手段と、上記圧縮対象より抽出されるベクトルの特徴量を求める特徴量演算手段と、上記特徴量記憶手段に記憶されている各コードベクトルの特徴量と上記特徴量演算手段により求められた圧縮対象ベクトルの特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定する演算省略手段とを備えたことを特徴とする。   According to a tenth aspect of the present invention, feature quantity storage means for storing a feature quantity obtained in advance for each code vector in a codebook, feature quantity calculation means for obtaining a feature quantity of a vector extracted from the compression target, and the feature Based on the feature quantity of each code vector stored in the quantity storage means and the feature quantity of the compression target vector obtained by the feature quantity calculation means, the similarity between each code vector and the compression target vector And a calculation omitting means for determining whether or not to omit the calculation for obtaining.

第11の発明は、少なくとも1つ以上のコードブックを保持しておくコードブックサーバと、データ圧縮システムと、データ伸長システムとを備えたデータ圧縮伸長システムであって、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、上記コードブックサーバは、上記データ圧縮システムおよびデータ伸長システムからの要求に従って、保持している何れかのコードブックを供給することを特徴とする。   An eleventh aspect of the present invention is a data compression / decompression system comprising a codebook server that holds at least one codebook, a data compression system, and a data decompression system, wherein the codebook is a predetermined codebook The code book is optimized by repeating the update process using a learning algorithm a predetermined number of times, and the code book server holds any code held in accordance with a request from the data compression system and the data decompression system. It is characterized by supplying a book.

第12の発明は、上記第6の発明において、上記出力制御手段が、或る時刻において、上記相関が所定値より小さいかどうかに関係なく、全アドレスまたは一部アドレスについて上記ベクトル量子化手段より出力されたコード列を出力するようにしたことを特徴とする。   In a twelfth aspect based on the sixth aspect, the output control means includes the vector quantization means for all or a part of the addresses regardless of whether the correlation is smaller than a predetermined value at a certain time. The output code string is output.

以上詳しく説明したように、第1〜第3の発明によれば、時間軸に沿って変化する圧縮対象をベクトル量子化する際に、同一時間内の1つのデータ列に対して空間方向に対するベクトル量子化を行うだけでなく、時間軸に沿った複数のデータ列間で時間軸方向に対するベクトル量子化も行うようにしたので、例えば、動画像の各フレーム内でデータ圧縮を行うだけでなく、各フレーム間に対してもデータ圧縮を行うことができる。これにより、再生画像の品質を維持したままより高い圧縮率で動画を圧縮することができる。   As described above in detail, according to the first to third inventions, when vector quantization is performed on a compression target that changes along the time axis, a vector in the spatial direction is applied to one data string within the same time. Since not only quantization but also vector quantization in the time axis direction between a plurality of data strings along the time axis, for example, not only data compression within each frame of a moving image, Data compression can also be performed between frames. As a result, the moving image can be compressed at a higher compression rate while maintaining the quality of the reproduced image.

また、第4の発明によれば、圧縮時において時間軸方向に対するベクトル量子化を行うために複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにするか、もしくは、伸長時にて上記圧縮時とは逆の処理を行う際に複数の新たなベクトルを生成する場合に、上記新たなベクトル内の少なくとも近接する要素を時間軸方向にずらして配列するようにしたので、例えば圧縮対象として動画を用いた場合、伸長時に各時間毎の画像を再生していく毎に目立っていた量子化誤差を目立たなくすることができ、動画の高い圧縮率を保ったまま品質の良い再生画像を得ることができる。   According to the fourth aspect of the present invention, when generating a plurality of new vectors to perform vector quantization in the time axis direction at the time of compression, time is required between at least adjacent vectors in the new vector. When arranging a plurality of new vectors when shifting in the axial direction or generating a plurality of new vectors at the time of decompression and processing opposite to those at the time of compression, at least adjacent elements in the new vectors Since, for example, a moving image is used as a compression target, the quantization error that is conspicuous each time an image is reproduced at the time of decompression may be inconspicuous. Thus, it is possible to obtain a high-quality reproduced image while maintaining a high compression rate of the moving image.

また、第5の発明によれば、圧縮対象から少なくとも1つ以上の特徴量を抽出して特徴量データと残りの基本パターンデータとに分離し、分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたので、様々な特徴が絡み合った圧縮対象そのものに対するコードブックに比べて、それぞれのデータのベクトル量子化で使用するコードブックを単純化することができ、必要なパターン数も減らすことができる。これにより、ベクトル量子化により類似度の大きいパターンをコードブック中から探し出す際に、より適切なパターンに絞り込みやすくなり、高精度のベクトル量子化を行うことができる。したがって、例えば圧縮対象として画像データを用いた場合、高い圧縮率を保ったままより高品位な再生画像を得ることができる。   According to the fifth invention, at least one feature quantity is extracted from the compression target and separated into feature quantity data and the remaining basic pattern data, and the separated feature quantity data and basic pattern data are separated. Since the vector quantization is performed independently, the codebook used for vector quantization of each data can be simplified compared to the codebook for the compression target itself in which various features are intertwined. The number of necessary patterns can also be reduced. As a result, when searching for a pattern having a high degree of similarity in the code book by vector quantization, it becomes easier to narrow down to a more appropriate pattern, and highly accurate vector quantization can be performed. Therefore, for example, when image data is used as a compression target, a higher quality reproduced image can be obtained while maintaining a high compression rate.

また、第6の発明によれば、時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれベクトル量子化を実行し、これにより各時刻毎に得られるコード列あるいはそのコード列に対応するコードベクトルの特徴量について、時間軸方向の相関が小さい部分のみコードを出力するようにしたので、例えば圧縮対象として動画を用いた場合、フレーム間でデータ値が大きく変化したところのデータだけを転送し、変化が少ないところのデータは転送しないようにすることができる。これにより、個々のフレーム内で空間方向に対してベクトル量子化をした結果に加えて、フレーム間に対してもデータを圧縮することができ、高い圧縮率で動画を圧縮・転送することができる。   According to the sixth aspect of the invention, vector quantization is performed on the data at each time to be compressed that changes along the time axis, whereby the code string obtained at each time or the code string is obtained. For the feature quantity of the corresponding code vector, the code is output only for the portion where the correlation in the time axis direction is small. For example, when moving images are used as compression targets, only the data where the data value has changed significantly between frames Can be transferred, and data with little change can be prevented from being transferred. As a result, in addition to the result of vector quantization in the spatial direction within each frame, data can be compressed between frames, and moving images can be compressed and transferred at a high compression rate. .

また、第7の発明によれば、カラー画像をベクトル量子化する場合に、色信号用のコードブックよりも輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたので、画質にとってより重要度の大きい輝度信号に関してより類似度の高いコードベクトルをベクトル量子化によって得ることができる。したがって、全体としてのコード長を変えないようにすることで、圧縮率を維持したまま再生画像の画質を向上させることができる。   Also, according to the seventh aspect, when vector quantization of a color image is performed, more code vectors are assigned to a code book for luminance signals than to a code book for color signals. A code vector having a higher similarity with respect to a luminance signal having a higher importance can be obtained by vector quantization. Therefore, by not changing the overall code length, it is possible to improve the quality of the reproduced image while maintaining the compression rate.

また、第8の発明によれば、コードブックの作成する際に、初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用い、1回の処理で更新する範囲を仮想的な2次元平面上で1次元的に適用し、かつ更新回数の増加と共に範囲を減少させ、更新係数の初期値を0.3〜1の範囲内の何れかの値とし、かつ更新回数の増加と共に更新係数の値を減少させるようにしたので、コードブックの最適化をより効率的に行うことができるとともに、高精度なコードブックを得ることができる。これにより、生成されたコードブックを例えば画像のデータ圧縮伸長システムに用いることで、再生画像の画質を向上させることができる。   According to the eighth invention, when creating a code book, a code book having a pattern in which data values continuously change from a minimum value to a maximum value of possible values is used as an initial code book. The range to be updated by the process is applied one-dimensionally on a virtual two-dimensional plane, and the range is decreased as the number of updates increases, and the initial value of the update coefficient is any value within the range of 0.3 to 1 Since the update coefficient value is decreased as the number of updates increases, the code book can be optimized more efficiently and a highly accurate code book can be obtained. Thereby, the image quality of a reproduced image can be improved by using the generated code book in, for example, an image data compression / decompression system.

また、第9の発明によれば、コードブックを作成する際に、複数のサンプルデータに対して独立にコードブックを最適化し、得られた複数のコードブックを合成して新たなコードブックを作成するようにしたので、様々な画像に対して耐性を有するコードブックを作成することができる。これにより、コードブックを記憶するための装置のサイズを大きくすることなく、汎用的なコードブックを得ることができる。   According to the ninth invention, when a code book is created, the code book is optimized independently for a plurality of sample data, and a plurality of obtained code books are synthesized to create a new code book. Since it was made to do, the code book which has tolerance with respect to various images can be created. Thereby, a general-purpose code book can be obtained without increasing the size of the device for storing the code book.

また、第10の発明によれば、圧縮対象より抽出されるベクトルの特徴量と、コードブック内の各コードベクトルの特徴量とを比較し、その比較結果に基づいて、各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定するようにしたので、類似度の演算に比べて演算量の少ない特徴量の演算を行うことによって適宜類似度の演算を省略することができ、圧縮対象ベクトルに類似したコードベクトルを検索する操作を行う際に、その検索に必要な演算量を少なくすることができ、ベクトル量子化の演算を全体として高速に行うことができる。   According to the tenth invention, the feature amount of the vector extracted from the compression target is compared with the feature amount of each code vector in the code book, and each code vector is determined based on the comparison result. Since it is determined whether or not to omit the calculation for calculating the similarity with the vector to be compressed, the calculation of the similarity is appropriately omitted by calculating the feature amount having a smaller calculation amount than the calculation of the similarity. When performing an operation to search for a code vector similar to the vector to be compressed, the amount of calculation required for the search can be reduced, and the vector quantization operation as a whole can be performed at high speed. .

また、第11の発明によれば、ベクトル量子化により圧縮伸長を行う際に必ず必要となるコードブックを圧縮・伸長システムとは別に用意するようにしたので、各圧縮・伸長システムはコードブックを保持する必要がなく、実際のデータのみを転送するだけで良くなり、より容量の少ない媒体を使ってデータ転送を行うことができる。これにより、非常に簡単なデータ転送システムを実現することができる。   Further, according to the eleventh invention, since the code book which is always necessary when performing compression / decompression by vector quantization is prepared separately from the compression / decompression system, each compression / decompression system uses a code book. There is no need to hold the data, it is only necessary to transfer actual data, and data transfer can be performed using a medium having a smaller capacity. As a result, a very simple data transfer system can be realized.

また、第12の発明によれば、上記第9の発明に関して、或る時刻においては相関が所定値より小さいかどうかに関係なく、ベクトル量子化手段より出力された全アドレスまたは一部アドレスについてのコード列を更新データとして出力するようにしたので、相関が所定値よりも小さく前フレームのデータをそのまま用いるという状態が続いていたとしても、その状態を更新データの送信によって断つことができ、時間の経過に伴う画質の劣化を抑えることができる。   According to the twelfth aspect, with respect to the ninth aspect, all or a part of the addresses output from the vector quantizing means are output regardless of whether the correlation is smaller than a predetermined value at a certain time. Since the code string is output as update data, even if the state where the correlation is smaller than the predetermined value and the data of the previous frame is used as it is continues, the state can be interrupted by transmission of the update data, It is possible to suppress the deterioration of the image quality with the progress of.

(第1の実施形態)
第1の実施形態においては、静止画に対してベクトル量子化を行う際に、通常は例えば4×4画素のような正方形のブロックに対してベクトル量子化を行うところを、16×1画素のように1ラインで成るブロックに対してベクトル量子化を行う。さらに、ベクトル量子化時あるいはその圧縮画像の再生の際に、画像の水平方向にブロックを各ライン毎にずらす処理を行う。
(First embodiment)
In the first embodiment, when vector quantization is performed on a still image, the vector quantization is normally performed on a square block such as 4 × 4 pixels. Thus, vector quantization is performed on a block consisting of one line. Further, at the time of vector quantization or when the compressed image is reproduced, a process of shifting the block for each line in the horizontal direction of the image is performed.

図1および図2は、それぞれ第1の実施形態に係るデータ圧縮装置および伸長装置の構成を示す機能ブロック図であり、図3および図4は、それぞれ図1および図2に示したデータ圧縮装置およびデータ伸長装置の動作を示すフローチャートである。また、図5および図6は、本実施形態による伸長側の動作を説明するための説明図である。   FIGS. 1 and 2 are functional block diagrams showing configurations of the data compression apparatus and the decompression apparatus according to the first embodiment, respectively. FIGS. 3 and 4 are data compression apparatuses shown in FIGS. 1 and 2, respectively. 5 is a flowchart showing the operation of the data decompression apparatus. 5 and 6 are explanatory diagrams for explaining the operation on the expansion side according to the present embodiment.

まず、図5および図6について説明する。図5では、ベクトルとして画像上の走査線に沿ったラインブロックをベクトルデータとして用いた場合(本実施形態のラインブロック方式)について、従来の正方形のブロックをベクトルデータとした場合(マクロブロック方式)と比較して説明している。図5(a)は従来のマクロブロック方式を示し、図5(b)は本実施形態のラインブロック方式を示している。   First, FIG. 5 and FIG. 6 will be described. In FIG. 5, when a line block along a scanning line on an image is used as vector data as vector data (line block method of the present embodiment), a conventional square block is used as vector data (macroblock method). It explains in comparison with. FIG. 5A shows a conventional macroblock system, and FIG. 5B shows a line block system of this embodiment.

図5(a)に示すように、コードブックメモリには、例えば4×4画素のマクロブロックを構成する16個のデータ列を1つのコードベクトルとして、このコードベクトルがアドレス順に多数記憶されている。このコードベクトルを利用して再生画像を生成し、それをディスプレイ等に表示する際には、16個のデータ列が4×4の正しい画素位置に表示されるように、ディスプレイメモリ上でアドレス変換を行う必要があった。   As shown in FIG. 5A, the code book memory stores, for example, a large number of code vectors in the order of addresses, with 16 data strings constituting a macroblock of 4 × 4 pixels as one code vector. . When a playback image is generated using this code vector and displayed on a display or the like, address conversion is performed on the display memory so that 16 data strings are displayed at the correct pixel position of 4 × 4. Had to do.

これに対して、図5(b)に示す本実施形態のラインブロック方式では、16×1画素の1つのライン上でブロックを抽出してベクトル量子化を行っている。このラインブロック内のデータ配列は、ディスプレイのスキャン方向と合致しているので、正方形のマクロブロックの場合に必要だったアドレス変換操作は回避することができる。また、この場合のコードブックも、Kohonenの自己組織化マップの手法を用いれば容易に得ることができる。   On the other hand, in the line block system of this embodiment shown in FIG. 5B, the vector quantization is performed by extracting a block on one line of 16 × 1 pixels. Since the data arrangement in this line block matches the scanning direction of the display, the address conversion operation required in the case of a square macroblock can be avoided. The code book in this case can also be easily obtained by using Kohonen's self-organizing map technique.

図7は、640×480画素の1枚の画像を圧縮、伸長、表示する処理を行う際に、それぞれの処理にかかる所用時間を測定した結果を示す図である。この図7を見ると、従来のマクロブロック方式では、ベクトル量子化(VQ)に約50msec、デコードに約160msec、表示に約60msecの時間を要している。デコードにこれだけの時間がかかる理由は、上述したように、コード番号で指定されたコードベクトルをコードブックメモリから取り出してディスプレイに表示できる形式にする際に、アドレス変換が必要なためである。   FIG. 7 is a diagram showing the results of measuring the time required for each process when compressing, expanding, and displaying one image of 640 × 480 pixels. Referring to FIG. 7, in the conventional macroblock system, it takes about 50 msec for vector quantization (VQ), about 160 msec for decoding, and about 60 msec for display. The reason for this long time for decoding is that, as described above, address conversion is required when the code vector specified by the code number is extracted from the code book memory and displayed on the display.

このような場合、一般的にはアドレス変換用の専用チップを用意してその高速化を図るのだが、本実施形態ではもっと簡単に高速化を図るための手段として、上述のラインブロック方式による手法を提案している。
図7には、ラインブロック方式をとった場合の各処理時間も示している。ベクトル量子化および表示走査にかかる時間はマクロブロック方式の場合と変化はないが、デコード時間は160msecから大幅に短縮できていることが分かる。
In such a case, a dedicated chip for address conversion is generally prepared to increase the speed, but in this embodiment, the above-described line block method is used as a means for speeding up more easily. Has proposed.
FIG. 7 also shows each processing time when the line block method is adopted. Although the time required for vector quantization and display scanning is not different from that in the case of the macroblock method, it can be seen that the decoding time can be greatly reduced from 160 msec.

また、マクロブロック方式およびラインブロック方式の何れの場合も(特にラインブロック方式をとった場合)、コードベクトルのパターン画像を順番に整然と貼り込んで再生画像を表示すると、再生画像の各ラインの両端のパターンの大きな不連続点がどうしても目立ってしまう。そこで、図6に示すように、本実施形態では、コードベクトルのパターンを貼り込む位置を各ライン毎に少しずつずらす工夫をとった(以下、これをスライドブロック方式と称する)。   Also, in both cases of the macro block method and the line block method (particularly when the line block method is used), when a playback image is displayed by orderly pasting pattern images of code vectors in order, both ends of each line of the playback image are displayed. The big discontinuity of the pattern of this will be conspicuous. Therefore, as shown in FIG. 6, in the present embodiment, the code vector pattern paste position is shifted little by little for each line (hereinafter referred to as a slide block method).

このように、少なくとも近接するライン間ではコードベクトルのブロックを画像の水平方向にずらしてはめ込むようにすると、各ブロック境界の連続性が断たれてブロック境界(量子化誤差)が目立ちにくくなる。これにより、再生画像の両端に毛羽立ったような部分は見えるが、概ね良好な画像が得られるようになる。なお、この画像の両端部分の乱れは、表示をするときにマスクをかけることで容易に除去することが可能である。   As described above, if the code vector blocks are shifted and fitted in the horizontal direction of the image at least between adjacent lines, the continuity of each block boundary is cut and the block boundary (quantization error) becomes inconspicuous. As a result, a fluffy portion can be seen at both ends of the reproduced image, but a generally good image can be obtained. Note that the disturbance at both ends of the image can be easily removed by applying a mask when displaying.

本実施形態では、近接するライン間で画像の水平方向にブロックをずらしていく処理を、図6で説明したようにベクトル量子化後の画像の再生時に行うだけでなく、ベクトル量子化時にも行う。すなわち、画像の左上から順番にきちんとブロックを切り出してくるのではなく、画像の水平方向にずらしながらブロックを切り出してベクトル量子化を行うようにしている。   In the present embodiment, the process of shifting the block in the horizontal direction of the image between adjacent lines is performed not only when the image after vector quantization is reproduced as described in FIG. 6, but also when the vector quantization is performed. . That is, the blocks are cut out properly in order from the upper left of the image, but the blocks are cut out in the horizontal direction of the image and vector quantization is performed.

次に、以上に述べた第1の実施形態に係る構成および動作を、主に図1〜図4に基づいて説明する。図1において、1は画像入力部であり、圧縮対象の原画像データを入力する。入力された画像データは、画像メモリ2に一旦蓄えられ、読み出し部3からのアドレス制御等により読み出されて出力される。   Next, the configuration and operation according to the first embodiment described above will be described mainly based on FIGS. In FIG. 1, reference numeral 1 denotes an image input unit for inputting original image data to be compressed. The input image data is temporarily stored in the image memory 2, read out by the address control from the reading unit 3, and output.

4はブロック化部であり、上記画像メモリ2から読み出された画像データを、例えば16×1画素単位のラインブロックに分割する。その際、少なくとも近接するライン間で画像の水平方向にずらしながらブロックを切り出すようにする。なお、近接する水平ラインとの間でブロックの位置がずれていれば、ずらす方向と量は任意に設定可能である。また、ここではブロック化部4を設けているが、読み出し部3が画像データの読み出しを行うときに、上述のようにラインブロックをずらしながら読み出すようにすれば、このブロック化部4は必ずしも必要ではない。   Reference numeral 4 denotes a blocking unit, which divides the image data read from the image memory 2 into, for example, 16 × 1 pixel unit line blocks. At that time, at least the blocks are cut out while shifting in the horizontal direction of the image between adjacent lines. If the position of the block is shifted from the adjacent horizontal line, the shifting direction and amount can be arbitrarily set. Although the blocking unit 4 is provided here, when the reading unit 3 reads image data, if the reading is performed while shifting the line block as described above, the blocking unit 4 is not always necessary. is not.

5はコードブック記憶部であり、原画像から抽出されるラインブロックと同じ大きさ(16×1画素のブロック)の画素パターンをコードベクトルとしてあらかじめ複数記憶している。6はベクトル量子化部であり、上記ブロック化部4によって原画像から抽出されたある1つのラインブロックのデータと、コードブック記憶部5に記憶されている複数のコードベクトルのデータとを夫々比較することにより、原画像のブロックデータと最も似通ったパターンをコードブック中から見つけ出して、そのパターンのコード番号を出力する。この操作を、原画像中から抽出される全てのラインブロックについて行う。   A code book storage unit 5 stores in advance a plurality of pixel patterns having the same size as a line block extracted from an original image (16 × 1 pixel block) as a code vector. A vector quantization unit 6 compares the data of one line block extracted from the original image by the blocking unit 4 with the data of a plurality of code vectors stored in the codebook storage unit 5. As a result, a pattern most similar to the block data of the original image is found from the code book, and the code number of the pattern is output. This operation is performed for all line blocks extracted from the original image.

また、図2において、7はコード番号入力部であり、圧縮側で特定された各ブロック毎のコード番号列を入力する。入力されたコード番号列は、コードメモリ8に一旦蓄えられ、読み出し部9からのアドレス制御等により読み出されて出力される。10はコードブック記憶部であり、例えば16×1画素で成るブロックの画素パターンをコードベクトルとしてあらかじめ複数記憶している。このコードブックは、伸長処理に先立って圧縮側のコードブックを伝送して記憶するようにしても良いし、最初から同じものを記憶しておくようにしても良い。   In FIG. 2, reference numeral 7 denotes a code number input unit, which inputs a code number string for each block specified on the compression side. The input code number string is temporarily stored in the code memory 8 and is read and output by address control or the like from the reading unit 9. Reference numeral 10 denotes a code book storage unit, which stores in advance a plurality of pixel patterns of blocks made up of, for example, 16 × 1 pixels as code vectors. Prior to the decompression process, the code book may be transmitted and stored on the compression side, or the same code book may be stored from the beginning.

11は再生画像生成部であり、コードメモリ8より読み出されたコード番号列をもとに、これらに対応するコードベクトルのパターン画像を夫々コードブック記憶部10から読み出して当てはめる処理を行う。12はブロックシフト部であり、再生画像生成部11より出力された再生画像を構成する各ブロックを画像の水平方向にずらす処理を行う。その際、例えば少なくとも近接する水平ライン間でブロックの位置がずれていれば、ずらす方向と量は任意に設定可能である。このようなシフト処理を施された再生画像は、画像メモリ13に一旦蓄積された後、図示しない表示装置に送られて表示される。   Reference numeral 11 denotes a reproduction image generation unit, which performs a process of reading out and applying the corresponding code vector pattern images from the code book storage unit 10 based on the code number sequence read from the code memory 8. Reference numeral 12 denotes a block shift unit, which performs a process of shifting each block constituting the reproduction image output from the reproduction image generation unit 11 in the horizontal direction of the image. At this time, for example, if the position of the block is shifted between at least adjacent horizontal lines, the shifting direction and the amount can be arbitrarily set. The reproduced image subjected to such a shift process is temporarily stored in the image memory 13 and then sent to a display device (not shown) for display.

上記図1に示した圧縮側の動作を示す図3において、まずステップS1で初期化処理を行う。ここでは、処理済のブロックをカウントするためのブロックカウンタ(図1では図示せず)、画像バッファ(図1の画像メモリ2)、およびベクトル量子化により決定したコード番号を格納するためのコードバッファ(図1では図示せず)をそれぞれクリアする処理を行う。   In FIG. 3 showing the operation on the compression side shown in FIG. 1, first, initialization processing is performed in step S1. Here, a block counter (not shown in FIG. 1) for counting processed blocks, an image buffer (image memory 2 in FIG. 1), and a code buffer for storing code numbers determined by vector quantization A process of clearing each (not shown in FIG. 1) is performed.

次に、ステップS2で原画像を入力し、画像バッファに格納する。そして、ステップS3で、その画像バッファに格納された原画像中からx×y画素の大きさのブロック(x,yは任意の値だが、上述の例ではx=16,y=1)を読み出す。この読み出しの際には、少なくとも近接する水平ライン間でブロックの位置がずれるようにブロックの位置を調整する。   Next, in step S2, the original image is input and stored in the image buffer. In step S3, a block having a size of x × y pixels (x and y are arbitrary values, but x = 16 and y = 1 in the above example) is read from the original image stored in the image buffer. . At the time of reading, the position of the block is adjusted so that the position of the block shifts at least between adjacent horizontal lines.

そして、ステップS4で、読み出したブロックのデータに対してベクトル量子化の処理を行い、コードブック記憶部5に記憶されているコードブックの中から上記読み出したブロックのデータと最も相関度の大きいコードベクトルを探し出し、それに対応するコード番号(Winner code )を決定する。次に、ステップS5で、得られたコード番号をコードバッファに格納する。ここに格納されたコード番号は、その後外部に出力される。なお、このコードバッファは必ずしも必要ではない。   In step S4, vector quantization processing is performed on the read block data, and the code having the highest correlation with the read block data from the code book stored in the code book storage unit 5 is obtained. Find the vector and determine the corresponding code number (Winner code). Next, in step S5, the obtained code number is stored in the code buffer. The code number stored here is then output to the outside. This code buffer is not always necessary.

次に、ステップS6に進み、画像中の全てのブロックについて上述の処理が終了したかどうかを判断する。終了していなければ、ステップS7でブロックカウンタの値を1だけ増やした後、ステップS3に戻って同様の処理を繰り返す。このようにして画像中の全てのブロックについてコード番号を決定して出力することにより、原画像が圧縮される。   Next, the process proceeds to step S6, and it is determined whether or not the above-described processing has been completed for all the blocks in the image. If not completed, the value of the block counter is increased by 1 in step S7, and the process returns to step S3 to repeat the same processing. In this way, by determining and outputting code numbers for all blocks in the image, the original image is compressed.

また、上記図2に示した伸長側の動作を示す図4において、まずステップS8で初期化処理を行う。ここでは、処理済のブロックをカウントするためのブロックカウンタ(図2では図示せず)、再現画像バッファ(図2の画像メモリ13)、および入力されたコード番号を格納するためのコードバッファ(図2のコードメモリ8)をそれぞれクリアする処理を行う。   In FIG. 4 showing the operation on the expansion side shown in FIG. 2, the initialization process is first performed in step S8. Here, a block counter (not shown in FIG. 2) for counting processed blocks, a reproduction image buffer (image memory 13 in FIG. 2), and a code buffer (FIG. 2) for storing an input code number. The code memory 8) of 2 is cleared.

次に、ステップS9で、圧縮側で生成されたコード番号列を入力し、コードバッファに格納する。そして、ステップS10で、格納されたコード番号列のうち、現在のブロックカウンタで示される1つのコード番号をもとにデコード処理を行う。すなわち、コードブック記憶部10に記憶されているコードブックの中から、コード番号に対応するコードベクトル(パターン画像)を取り出して再現画像バッファに格納する。その際、取り出されたx×y画素のブロックを、少なくとも近接する水平ライン間で位置がずれるように格納する。   Next, in step S9, the code number string generated on the compression side is input and stored in the code buffer. In step S10, decoding is performed based on one code number indicated by the current block counter in the stored code number string. That is, the code vector (pattern image) corresponding to the code number is extracted from the code book stored in the code book storage unit 10 and stored in the reproduction image buffer. At that time, the extracted block of x × y pixels is stored so that the position is shifted at least between adjacent horizontal lines.

ここで、本実施形態では、圧縮側のステップS3と伸長側のステップS10とで、ブロックのずらし方が互いに逆の関係となるようにする。すなわち、ステップS3においてあるブロックラインについて右方向にi画素分ずらしたら、ステップS10では、そのブロックラインについては左方向にi画素分ずらすようにする。このようにすることで、再生される再現画像中には各ブロックライン毎のずれがなくなくので、量子化誤差を目立たなくすることができるだけでなく、再生画像の画質を更に向上させることができる。   Here, in the present embodiment, the block shifting method is set to be opposite to each other in the step S3 on the compression side and the step S10 on the expansion side. That is, if the block line is shifted by i pixels in the right direction in step S3, the block line is shifted in the left direction by i pixels in step S10. By doing so, since there is no shift for each block line in the reproduced image to be reproduced, not only the quantization error can be made inconspicuous but also the quality of the reproduced image can be further improved. .

次に、ステップS11に進み、画像中の全てのブロックについて上述の処理が終了したかどうかを判断する。終了していなければ、ステップS12でブロックカウンタの値を1だけ増やした後、ステップS10に戻って同様の処理を繰り返す。このようにして画像中の全てのブロックについてコードブック中からパターン画像を取り出して再現画像バッファに格納することにより、ここに格納された再現画像がディスプレイ等に与えられて表示される。   Next, the process proceeds to step S11, and it is determined whether or not the above processing has been completed for all blocks in the image. If not completed, the value of the block counter is increased by 1 in step S12, and the process returns to step S10 to repeat the same processing. In this way, by extracting the pattern image from the code book for all the blocks in the image and storing it in the reproduction image buffer, the reproduction image stored here is given to the display or the like and displayed.

なお、以上の例では、圧縮側と伸長側との両方でブロックをずらす例を説明したが、圧縮側においてのみ、もしくは伸長側においてのみブロックをずらすようにしても良い。この場合は、再現画像中に各ブロックライン毎のずれが含まれることはあるものの、量子化誤差自体は目立たなくすることができ、従来例に比べて再生画像の画質を向上させることができる。   In the above example, the block is shifted on both the compression side and the expansion side. However, the block may be shifted only on the compression side or only on the expansion side. In this case, although the reproduced image may include a shift for each block line, the quantization error itself can be made inconspicuous, and the quality of the reproduced image can be improved as compared with the conventional example.

また、ここでは静止画のデータ圧縮について説明しているが、動画の場合は個々のフレームに対してベクトル量子化を行うことから、この動画のデータ圧縮についても同様に適用することができる。
本実施形態では、図8に示すベクトル量子化PCIバスボード22を用いて、動画像をベクトル量子化により圧縮し、圧縮を行った結果から動画像の再生を行うシステムを実現している。以下に、その詳細な説明を行う。
Further, here, the data compression of the still image is described, but in the case of a moving image, vector quantization is performed on each frame. Therefore, the data compression of the moving image can be similarly applied.
In the present embodiment, a system is realized in which a moving image is compressed by vector quantization using the vector quantization PCI bus board 22 shown in FIG. 8, and the moving image is reproduced based on the result of the compression. The details will be described below.

図8に示すベクトル量子化ボード22には、例えば8ビット16次元(4×4画素)のコードベクトルを256個搭載可能なチップが8個実装されており、合わせて2048個のコードベクトルを用いてベクトル量子化を実行可能となっている。これらのチップは、例えばFPGA(Field Programmable Gate Array)により構成されたPCIバスインターフェースを介して図示しないコンピュータと接続されている。   On the vector quantization board 22 shown in FIG. 8, for example, eight chips capable of mounting 256 code vectors of 8 bits and 16 dimensions (4 × 4 pixels) are mounted, and a total of 2048 code vectors are used. Thus, vector quantization can be performed. These chips are connected to a computer (not shown) through a PCI bus interface configured by, for example, an FPGA (Field Programmable Gate Array).

ベクトル量子化を行う際には、まずあらかじめ作成しておいたコードブックを構成している全てのコードベクトルをメモリ21からベクトル量子化ボード22のチップ上に転送しておく。次に、あらかじめメモリ21に保存しておいた動画像データを順次ベクトル量子化ボード22に送り、ベクトル量子化を実行する。ベクトル量子化の結果得られたコード番号は、一旦メモリ21に格納される。そして、このコード番号をもとにそれに対応するコードベクトルをメモリ21から読み出し、デコードを実行する。デコードされた再生画像データは、コンピュータのディスプレイ23に送られ、画像として表示される。   When performing vector quantization, first, all code vectors constituting a code book prepared in advance are transferred from the memory 21 onto the chip of the vector quantization board 22. Next, the moving image data stored in advance in the memory 21 is sequentially sent to the vector quantization board 22 to execute vector quantization. The code number obtained as a result of vector quantization is temporarily stored in the memory 21. Based on this code number, the corresponding code vector is read from the memory 21 and decoded. The decoded reproduced image data is sent to the display 23 of the computer and displayed as an image.

ここでは、コードブックを構成しているコードベクトルの個数を2048個とし、コードベクトルを構成しているデータの個数を16個としているが、これは1つの具体例であり、ここで述べた数値に制限されるものでないことは言うまでもない。また、ここで構成したシステムにおいて用いた画像サイズ、並びにベクトル量子化を行う際のブロックサイズについても、1つの具体例であり、ここで述べた数値に制限されるものでないことも言うまでもない。   Here, the number of code vectors constituting the code book is 2048 and the number of data constituting the code vector is 16, but this is one specific example, and the numerical values described here It goes without saying that it is not limited to this. In addition, the image size used in the system configured here and the block size when performing vector quantization are also specific examples, and it goes without saying that they are not limited to the numerical values described here.

以上のように、第1の実施形態では、ベクトル量子化の処理単位であるブロックを、例えば16×1画素のようなラインブロックとしている。これは、ディスプレイのスキャン方向に合っているため、再生の際のアドレス変換処理が不要となり、画像の再現スピードが速くなる(4×4画素のマクロブロックでベクトル量子化を行った場合に比べて、約3.5倍の再現スピードが得られる)。   As described above, in the first embodiment, a block which is a unit of vector quantization is a line block such as 16 × 1 pixel. Since this matches the display scanning direction, there is no need for address conversion processing during playback, and the image reproduction speed increases (compared to the case where vector quantization is performed with a macroblock of 4 × 4 pixels). About 3.5 times faster reproduction).

例えば、1フレームが640×480画素の動画像に対してマクロブロック方式によりデータ圧縮を行うと、フレームレートは4フレーム/秒程度であるが、本実施形態のラインブロック方式によれば、毎秒14フレーム程度のベクトル量子化動作が実現できる。   For example, when data compression is performed on a moving image having one frame of 640 × 480 pixels by the macro block method, the frame rate is about 4 frames / second, but according to the line block method of the present embodiment, 14 frames per second. A vector quantization operation of about the frame can be realized.

表示部分の処理時間の短縮は、表示プログラムの改善により実現可能である。また、現在のシステムでは、ベクトル量子化処理にかかる時間は、その6割程度が入力ベクトルをベクトル量子化ボードに転送するためのアドレス変換および転送時間で占められており、実際にベクトル量子化チップが動作しているのはわずかである。したがって、転送バス幅を拡張してCPUの処理能力を高めることにより、処理速度を更に短縮することが可能である。これらの改善を実行することで、毎秒30フレームのベクトル量子化動作は実現可能である。   The processing time of the display portion can be shortened by improving the display program. In the current system, about 60% of the time required for vector quantization processing is occupied by address conversion and transfer time for transferring the input vector to the vector quantization board. Is only a few working. Therefore, it is possible to further reduce the processing speed by expanding the transfer bus width and increasing the processing capacity of the CPU. By performing these improvements, a vector quantization operation of 30 frames per second can be realized.

また、本実施形態では、画像の水平方向に各ブロックをずらしながら切り出してベクトル量子化を行い、あるいは各ブロックをずらしながら画像の再現を行っているので、ブロックをそのまま順番にはめ込んだ場合に画像の両端において目立つブロック境界による縦線(量子化誤差)が分散されて目立たなくなり、画質を向上させることができる。   Also, in this embodiment, each block is shifted in the horizontal direction of the image and cut out to perform vector quantization, or the image is reproduced while shifting each block. Vertical lines (quantization errors) due to conspicuous block boundaries at both ends are dispersed and become inconspicuous, and image quality can be improved.

なお、以上の実施形態ではラインブロック方式とスライドブロック方式とを併用しているが、何れか一方のみを用いても良い。ラインブロック方式だけを採用した場合は少なくとも画像の再現スピードを速くすることができ、スライドブロック方式だけを採用した場合は少なくとも量子化誤差を目立たなくすることができる。   In the above embodiment, the line block method and the slide block method are used together, but only one of them may be used. When only the line block method is employed, at least the image reproduction speed can be increased, and when only the slide block method is employed, at least the quantization error can be made inconspicuous.

また、以上の実施形態では、1枚の画像内で空間方向に対してブロックをずらす例を示しているが、複数のフレームを有する動画像をデータ圧縮する場合において、フレーム間において時間軸方向に対してブロック内の要素をずらすようにしても良い。このようにした場合にも、再生画像中の量子化誤差を目立たなくすることができる。   In the above embodiment, an example is shown in which blocks are shifted with respect to the spatial direction within one image. However, in the case of compressing data of a moving image having a plurality of frames, the time axis direction between the frames is shown. On the other hand, the elements in the block may be shifted. Even in this case, the quantization error in the reproduced image can be made inconspicuous.

(第2の実施形態)
動画像に対して圧縮を行う際に、動画を構成する各々のフレーム(静止画)に対してベクトル量子化を行うだけでは、高い圧縮率を得ることは難しい。そこで第2の実施形態では、複数フレームの各静止画に対してフレーム内でのベクトル量子化を行うだけでなく、複数フレームの各静止画の同じアドレスどうしのデータをベクトルと成し、フレーム間でもベクトル量子化を適用してデータ圧縮を行うようにする。
(Second Embodiment)
When compressing a moving image, it is difficult to obtain a high compression rate only by performing vector quantization on each frame (still image) constituting the moving image. Therefore, in the second embodiment, not only vector quantization within a frame is performed on each still image of a plurality of frames, but also data between the same addresses of each still image of a plurality of frames is formed as a vector, However, data compression is performed by applying vector quantization.

図9および図10は、第2の実施形態によるデータ圧縮伸長システムの一構成例を示す機能ブロック図であり、図11は、第2の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、図9は圧縮側の構成を示し、図10は伸長側の構成を示している。また、伸長時のデータの流れは基本的に圧縮時の流れと逆であり、図11から想定できるので、伸長時のデータフロー図はここでは特に示していない。   FIG. 9 and FIG. 10 are functional block diagrams showing a configuration example of the data compression / decompression system according to the second embodiment, and FIG. 11 is a data flow showing the data flow at the time of compression according to the second embodiment. FIG. 9 shows the configuration on the compression side, and FIG. 10 shows the configuration on the expansion side. In addition, the flow of data at the time of decompression is basically the reverse of the flow at the time of compression, and can be assumed from FIG. 11, so the data flow diagram at the time of decompression is not particularly shown here.

ここでは、図11に示すように、1フレームが640×480画素からなり、1画素当たりの輝度値が8ビット表現された動画像に対して圧縮伸長を行う場合について述べる。また、ここでは説明の都合上、16フレーム分の画像に対して圧縮伸長を行っているものとする。   Here, as shown in FIG. 11, a case will be described in which compression / expansion is performed on a moving image in which one frame is composed of 640 × 480 pixels and the luminance value per pixel is represented by 8 bits. Here, for convenience of explanation, it is assumed that compression / expansion is performed on an image of 16 frames.

図9において、31は画像入力部であり、圧縮対象の原画像データ、ここでは動画像データを各フレーム毎に順次入力する。入力された画像データは、各フレーム毎に画像メモリ32に一旦蓄えられ、読み出し部33からのアドレス制御等により読み出されて出力される。   In FIG. 9, reference numeral 31 denotes an image input unit, which sequentially inputs original image data to be compressed, in this case, moving image data, for each frame. The input image data is temporarily stored in the image memory 32 for each frame, and is read and output by address control or the like from the reading unit 33.

34はブロック化部であり、上記画像メモリ32から読み出された画像データを、例えば4×4画素単位のブロックに分割する。なお、ここではブロック化部34を設けているが、読み出し部33が画像データの読み出しを行うときに、ブロック単位で読み出すようにすれば、このブロック化部34は必ずしも必要ではない。   Reference numeral 34 denotes a blocking unit, which divides the image data read from the image memory 32 into blocks of, for example, 4 × 4 pixels. Here, the blocking unit 34 is provided. However, when the reading unit 33 reads image data, the blocking unit 34 is not necessarily required if reading is performed in units of blocks.

35は空間方向用コードブック記憶部であり、1枚の静止画(フレーム)に対して当該フレーム内でベクトル量子化を行うためのコードブック(1つのフレーム空間内でベクトル量子化を行うためのコードブックであるので、以下ではこれを「空間方向用コードブック」と称する)をデータベースとしてあらかじめ記憶しておくものである。   A codebook storage unit 35 for space direction is a codebook (for performing vector quantization in one frame space) for performing a vector quantization within one frame on a single still image (frame). Since this is a code book, this is hereinafter referred to as a “space direction code book”) and stored in advance as a database.

ここでは、この空間方向用コードブックは、16個のデータからなるデータ列を1つのコードベクトルとし、そのコードベクトルを複数組み合わせたものである。ここでは、2048ベクトル分を組み合わせて空間方向用コードブックを構成している。   Here, this spatial direction codebook is a combination of a plurality of code vectors, with a data string of 16 data as one code vector. Here, a codebook for spatial direction is configured by combining 2048 vectors.

36は相関度演算部であり、演算モード指定部37により空間方向ベクトル量子化を行うモードが指定されているときは、順次入力される各フレーム毎に、上記空間方向用コードブック記憶部35に記憶されている空間方向用コードブックを用いて、当該コードブック中の複数のコードベクトルと原画像からの入力ベクトルとの相関、つまり類似度を算出する。   Reference numeral 36 denotes a correlation degree calculation unit. When a mode for performing spatial direction vector quantization is specified by the calculation mode specification unit 37, the spatial direction codebook storage unit 35 stores each frame sequentially input. Using the stored spatial direction code book, the correlation, that is, the similarity between a plurality of code vectors in the code book and the input vector from the original image is calculated.

ここで類似度とは、例えば、2つのベクトルデータをある関数に入力して演算することで、両者がどれくらい似ているかを数値化したものを言う。上記関数の代表的なものとしては、2つの入力ベクトルデータのマンハッタン距離(差分絶対値距離)やユークリッド距離を求める関数が挙げられる。例えばマンハッタン距離は、入力ベクトルを構成している個々の要素のデータと、コードベクトルを構成してい個々の要素のデータとの差分絶対値を夫々求め、得られたそれぞれの差分絶対値を加算することで得られる。   Here, the similarity means, for example, a value obtained by quantifying how similar two are obtained by inputting two vector data into a certain function. A representative example of the above function is a function for obtaining a Manhattan distance (difference absolute value distance) or Euclidean distance between two input vector data. For example, for the Manhattan distance, the absolute value of each difference between the data of the individual elements constituting the input vector and the data of the individual elements constituting the code vector is obtained, and the obtained absolute values of the respective differences are added. Can be obtained.

入力ベクトルに最も似通ったコードベクトルを探し出すためには、空間方向用コードブックを構成する各コードベクトル毎に例えば上述のようなマンハッタン距離を求め、その距離が最も小さいものを探し出す。
なお、類似度を求めるための関数は、上記の関数に限らず、目的に応じて任意の関数を使うことができる。例えば、一方あるいは双方のベクトルデータに対して係数(重み)を付けた関数や、ブロック内の特徴量データ(例えば、ベクトルデータの要素の総和)を計算する関数などを使っても良い。
In order to find the code vector most similar to the input vector, for example, the Manhattan distance as described above is obtained for each code vector constituting the spatial direction code book, and the one having the smallest distance is found.
The function for obtaining the similarity is not limited to the above function, and any function can be used according to the purpose. For example, a function in which a coefficient (weight) is added to one or both vector data, a function for calculating feature amount data (for example, the sum of elements of vector data) in a block, or the like may be used.

38はコード決定部であり、上記相関度演算部36による類似度の演算結果に基づいて、類似度の最も大きいコードベクトルに対応するコード番号をそのブロックの圧縮コード(Winner code)として出力する。この相関度演算部36およびコード決定部38によりベクトル量子化手段が構成される。ここでのベクトル量子化の手法としては、従来の手法を用いても良いし、第1の実施形態で述べた手法を用いても良い。   A code determination unit 38 outputs a code number corresponding to the code vector having the highest similarity as a compressed code (Winner code) of the block based on the calculation result of the similarity by the correlation calculation unit 36. The correlation calculation unit 36 and the code determination unit 38 constitute a vector quantization unit. As a vector quantization method here, a conventional method may be used, or the method described in the first embodiment may be used.

以下、この空間方向ベクトル量子化の動作について、図11を用いて詳しく説明する。まず、第1フレーム目の画像について、上記空間方向用コードブックを用いてベクトル量子化を行う。ここでは、第1フレーム目の画像を水平方向に4画素、垂直方向に4画素ずつ区切ったブロック領域をそれぞれ入力ベクトルと定義し、その1つの入力ベクトルと、空間方向用コードブックを構成している各コードベクトルとの類似度を求め、入力ベクトルに最も似通ったコードベクトルのコード番号を特定する。   Hereinafter, this spatial direction vector quantization operation will be described in detail with reference to FIG. First, vector quantization is performed on the first frame image using the spatial direction codebook. Here, the block area obtained by dividing the image of the first frame by 4 pixels in the horizontal direction and 4 pixels in the vertical direction is defined as an input vector, and one input vector and a spatial direction codebook are configured. Similarity with each code vector is obtained, and the code number of the code vector most similar to the input vector is specified.

この操作をフレーム内の全ての入力ベクトルに対して行うことにより、第1フレーム目の画像を4×4画素に分割した各ブロック領域を、空間方向用コードブック中のコードベクトルに対応するコード番号で置き換える。図11中に127,198,…と示した数字は、画像の左上から右下方向に向かって順に抽出したそれぞれのブロックについて置き換えたコード番号を示している。   By performing this operation on all input vectors in the frame, each block area obtained by dividing the image of the first frame into 4 × 4 pixels is assigned a code number corresponding to the code vector in the spatial direction codebook. Replace with. In FIG. 11, the numerals 127, 198,... Indicate the code numbers replaced for the respective blocks extracted in order from the upper left to the lower right of the image.

次に、第2フレーム目の画像から第16フレーム目の画像まで計15枚の画像に対して、上記第1フレーム目の画像と同じ処理を行い、それぞれのフレーム画像について、フレーム内を夫々4×4画素に分割した各ブロック領域を、空間方向用コードブック中のコードベクトルに対応するコード番号で置き換える。   Next, the same processing as that of the first frame image is performed on a total of 15 images from the second frame image to the 16th frame image, and each frame image has 4 in each frame. Each block area divided into 4 pixels is replaced with a code number corresponding to the code vector in the spatial direction codebook.

図9に戻り、39は空間方向コード再配列演算部であり、上記空間方向ベクトル量子化手段によって空間方向用コードブックのコード番号で表現された各フレームの画像に対して、同じアドレスが示すブロックのコード番号をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各コード番号を1つのデータ列としてまとめて表現する。   Returning to FIG. 9, reference numeral 39 denotes a spatial direction code rearrangement operation unit, which is a block indicated by the same address for each frame image represented by the code number of the spatial direction code book by the spatial direction vector quantization means. By rearranging the code numbers in the order of frame images, the code numbers of the same address blocks distributed in the time axis direction are collectively expressed as one data string.

つまり、図11のように16フレーム分の画像に対して空間方向ベクトル量子化を行った場合、第1フレーム目の画像中の指定されたアドレスのブロックのコード番号が、新しく作られるデータ列の0番地の位置に置かれ、第2フレーム目の画像中の上記第1フレーム目の画像と同じアドレスのブロックのコード番号が、新しく作られるデータ列の1番地の位置に置かれる。このように、16フレーム分の同アドレスのブロックのコード番号に対して並べ替えが行われ、最後の第16フレーム目の画像中の同じアドレスのブロックのコード番号は、新しく作られるデータ列の15番地の位置に置かれることになる。   That is, when spatial direction vector quantization is performed on an image for 16 frames as shown in FIG. 11, the code number of the block at the specified address in the image of the first frame is The code number of the block having the same address as the image of the first frame in the second frame image is placed at the position of the first address of the newly created data string. In this way, rearrangement is performed on the code numbers of the blocks at the same address for 16 frames, and the code numbers of the blocks at the same address in the image of the last 16th frame are 15 in the newly created data string. It will be placed at the address.

このようにして新しく生成された16個のコード番号列を含む集合を、新たなベクトルとする。以下では、これを「時間軸ベクトル」と称する。図11に示した例の場合、例えば、第1フレーム目〜第16フレーム目の各フレームの先頭アドレスで指定されるブロックのコード番号を並べ替えた(127,287,58,…,1483,876)のデータ列が、1つの時間軸ベクトルに相当する。   A set including the 16 code number strings newly generated in this way is set as a new vector. Hereinafter, this is referred to as a “time axis vector”. In the case of the example shown in FIG. 11, for example, the code numbers of the blocks specified by the head addresses of the first to sixteenth frames are rearranged (127, 287, 58,..., 1483, 876). ) Corresponds to one time axis vector.

本例のように、1フレームが640×480画素の画像の場合で、かつ1つのブロック領域を4×4画素とした場合、1フレームの画像からは160×120=19200個のブロックが生成される。よって、上述のような並べ替え処理を空間方向ベクトル量子化を行った画像のすべての範囲に対して行うと、19200個の時間軸ベクトルが新しく生成されることとなる。   As in this example, if one frame is an image of 640 × 480 pixels and one block area is 4 × 4 pixels, 160 × 120 = 19200 blocks are generated from one frame image. The Therefore, when the rearrangement process as described above is performed on the entire range of the image subjected to spatial direction vector quantization, 19200 time-axis vectors are newly generated.

再び図9に戻り、40は時間軸用コードブック記憶部であり、上記のように作成された時間軸ベクトルに対してベクトル量子化を行うためのコードブック(時間の経過と共に与えられる複数のフレーム間に渡るデータに対してベクトル量子化を行うためのコードブックであるので、以下ではこれを「時間軸用コードブック」と称する)をデータベースとしてあらかじめ記憶しておく。この時間軸用コードブックも、16個のデータからなるデータ列を1つのコードベクトルとし、そのコードベクトルを2048個組み合わせたものである。   Returning to FIG. 9 again, reference numeral 40 denotes a time-axis codebook storage unit, which is a codebook for performing vector quantization on the time-axis vector created as described above (a plurality of frames given over time). Since this is a code book for performing vector quantization on data in between, this is hereinafter referred to as a “time axis code book”) and stored in advance as a database. This time-axis codebook is also a combination of 2048 code vectors, with a data string of 16 data as one code vector.

上記空間方向コード再配列演算部39により画像のすべての範囲に対して並べ替えが行われると、時間軸ベクトル量子化開始信号が出力され、それが演算モード指定部37に与えられる。これに応じて演算モード指定部37は、時間軸ベクトル量子化を行うモードに切り替える。相関度演算部36は、演算モード指定部37により時間軸ベクトル量子化を行うモードが指定されているときは、上記空間方向コード再配列演算部39により作成された各時間軸ベクトルに対して、上記時間軸用コードブック記憶部40に記憶されている時間軸用コードブックを用いてベクトル量子化を行う。   When the spatial direction code rearrangement calculation unit 39 rearranges the entire range of the image, a time-axis vector quantization start signal is output and supplied to the calculation mode designating unit 37. In response to this, the calculation mode designating unit 37 switches to a mode for performing time axis vector quantization. When the mode for performing time axis vector quantization is designated by the operation mode designating unit 37, the correlation degree computing unit 36, for each time axis vector created by the spatial direction code rearrangement computing unit 39, Vector quantization is performed using the time-axis codebook stored in the time-axis codebook storage unit 40.

以下、この時間軸ベクトル量子化の動作について、図11を用いて詳しく説明する。すなわち、先に生成された19200個の時間軸ベクトルのうち、ある1つの時間軸ベクトルと、時間軸用コードブックを構成している各コードベクトルとの類似度を演算し、その類似度が最も大きいコードベクトルの時間軸用コードブック内のアドレス(コード番号)を特定する。なお、類似度の演算については上述した通りである。   Hereinafter, the operation of the time axis vector quantization will be described in detail with reference to FIG. That is, of the 19,200 time axis vectors generated previously, the similarity between one time axis vector and each code vector constituting the time axis codebook is calculated, and the similarity is the highest. The address (code number) in the code book for the time axis of the large code vector is specified. The calculation of the similarity is as described above.

この操作を全ての時間軸ベクトルに対して行うことにより、空間方向ベクトル量子化後のコード番号列で表現されていた複数の時間軸ベクトルを、時間軸用コードブック中の各コードベクトルに対応するコード番号列で置き換える。図11の例では、例えば上述した(127,287,58,…,1483,876)の時間軸ベクトルが"10"という時間軸コード番号に置き換えられている。この段階で、16フレーム分の640×480画素分の画像は、例えば11ビット表現された19200個のデータから成るデータ列(10,984,…)で表現されており、これが伸長側に供給される。   By performing this operation on all time axis vectors, a plurality of time axis vectors represented by the code number sequence after spatial direction vector quantization correspond to each code vector in the time axis codebook. Replace with code number column. In the example of FIG. 11, for example, the time axis vector (127, 287, 58,..., 1483, 876) described above is replaced with a time axis code number “10”. At this stage, an image of 640 × 480 pixels for 16 frames is represented by, for example, a data string (10,984,...) Composed of 19200 data expressed in 11 bits, and this is supplied to the decompression side. The

したがって、16フレーム分の動画像を圧縮側から伸長側に転送しようとする場合、空間方向用コードブックと時間軸用コードブックとをあらかじめ伸長側に送っておき(伸長側において最初から同じものを持っていても良い)、その後、上述の一連の処理によって得られた時間軸コードブックのコード番号列で表現されたリストを送れば良い。これにより、39321600ビットの情報量を有する16フレーム分の画像を、約0.01倍にあたる422400ビットの情報量を有する時間軸コードブックのコード番号列にまで、画質を保持したまま圧縮することができる。   Therefore, when transferring a moving image of 16 frames from the compression side to the decompression side, the space direction codebook and the time axis codebook are sent to the decompression side in advance (the same one from the beginning on the decompression side). Then, a list expressed by a code number sequence of the time axis codebook obtained by the above-described series of processes may be sent. As a result, it is possible to compress an image for 16 frames having an information amount of 39321600 bits, while maintaining the image quality, to a code number string of a time axis codebook having an information amount of 422400 bits, which is approximately 0.01 times. it can.

図10に示す伸長側では、このようにして圧縮側から転送されてきたデータをもとに、もとの16フレーム分の画像を再現することができる。まず、時間軸コード入力部41は、圧縮側より転送されてきた時間軸用コードブックのコード番号列を入力する。入力された時間軸コード番号列は、時間軸コードメモリ42に一旦蓄えられ、読み出し部43からのアドレス制御等により読み出されて出力される。   On the decompression side shown in FIG. 10, the original image for 16 frames can be reproduced based on the data transferred from the compression side in this way. First, the time axis code input unit 41 inputs the code number string of the time axis code book transferred from the compression side. The input time axis code number string is temporarily stored in the time axis code memory 42, and is read and output by address control or the like from the reading unit 43.

そして、空間方向コード再生部44は、時間軸コードメモリ42より読み出された時間軸コード番号列を用いて、個々の時間軸コード番号に対応するコードベクトルを、例えば圧縮側からあらかじめ転送され時間軸用コードブック記憶部45に記憶されている時間軸コードブックから取り出す。そして、取り出した各コードベクトルを順に配列することにより、空間方向のコード番号を再生する。   Then, the space direction code reproduction unit 44 uses the time axis code number sequence read from the time axis code memory 42 to transfer the code vector corresponding to each time axis code number in advance from the compression side, for example. It is taken out from the time axis code book stored in the axis code book storage unit 45. Then, the code numbers in the spatial direction are reproduced by sequentially arranging the extracted code vectors.

ここでは、時間軸コードメモリ42より読み出された時間軸コード番号列には19200個の時間軸コード番号が含まれており、これらの時間軸コード番号に対応する時間軸コードブックの1つのコードベクトルは16個のデータから構成されている。そのため、上記空間方向コード再生部44の処理により順番に配列されたコードベクトルのデータは、全部で307200個のデータ(空間方向コード番号)から構成される。   Here, the time axis code number sequence read from the time axis code memory 42 includes 19200 time axis code numbers, and one code of the time axis code book corresponding to these time axis code numbers. The vector is composed of 16 pieces of data. For this reason, the code vector data arranged in order by the processing of the spatial direction code reproduction unit 44 is composed of 307200 data (spatial direction code numbers) in total.

このようにして再生された空間方向コード番号列は、空間方向コードメモリ46に一旦蓄えられ、読み出し部47からのアドレス制御等により読み出されて出力される。次に、再生画像生成部48は、上記のように配列された307200個のデータ列から16個おきにデータを取り出し、19200個のデータで1つのデータ列を生成し、これをベクトルとする。以下ではこれを、上述した時間軸ベクトルに対して「空間方向ベクトル」と称する。   The spatial direction code number sequence reproduced in this way is temporarily stored in the spatial direction code memory 46, and is read and output by address control or the like from the reading unit 47. Next, the reproduction image generation unit 48 extracts data every 16 pieces from the 307200 data strings arranged as described above, generates one data string from 19200 data, and uses this as a vector. Hereinafter, this is referred to as a “space direction vector” with respect to the time axis vector described above.

この操作を307200個のデータ列の全空間に渡って行うことにより、空間方向コードメモリ46から読み出した空間方向コード番号列を16個の空間方向ベクトルに16分割する。ここで生成された16個の空間方向ベクトルは、それぞれ第1フレーム目から第16フレーム目までの画像を再現するための空間方向コード番号列の集合である。   By performing this operation over the entire space of 307200 data strings, the spatial direction code number string read from the spatial direction code memory 46 is divided into 16 spatial direction vectors. The 16 spatial direction vectors generated here are sets of spatial direction code number sequences for reproducing images from the first frame to the 16th frame, respectively.

再生画像生成部48は、さらに、16個に分割された空間方向ベクトル列のそれぞれについて、その空間方向ベクトルを構成する個々の空間方向コード番号(19200個)に対応するコードベクトルを、例えば圧縮側からあらかじめ転送され空間方向用コードブック記憶部49に記憶されている空間方向用コードブックから参照して探し出す。そして、該当するコードベクトル(パターン画像)のデータを各ブロック位置に順次はめ込むことにより、元の画像を再生する。   For each of the 16 spatial direction vector strings, the reproduced image generation unit 48 further selects, for example, a code vector corresponding to each spatial direction code number (19200) constituting the spatial direction vector. From the code book for space direction stored in advance in the space direction code book storage unit 49. Then, the original image is reproduced by sequentially fitting the data of the corresponding code vector (pattern image) into each block position.

このような処理を16個に分割された空間方向ベクトル列が得られる毎に行うことにより、元の16フレーム分の画像を再生することができる。なお、307200個の空間方向コード番号列から16個おきにデータを取り出す操作を読み出し部47が行うようにすれば、再生画像生成部48は、19200個のデータが読み出される毎に各フレームの再生画像を順に生成することができる。   By performing such a process every time a spatial direction vector sequence divided into 16 pieces is obtained, the original image of 16 frames can be reproduced. If the reading unit 47 performs an operation for extracting data from 307200 spatial direction code number strings every 16th, the reproduction image generation unit 48 reproduces each frame every time 19200 data is read out. Images can be generated sequentially.

このようにして再生された画像は、画像メモリ50に一旦蓄積された後、図示しない表示装置に送られて表示されたり、あるいは図示しない記憶装置に送られて記憶されたりする。   The images reproduced in this way are temporarily stored in the image memory 50 and then sent to a display device (not shown) for display or sent to a storage device (not shown) for storage.

なお、この第2の実施形態では、1つのベクトルを構成するデータの数が16個であり、空間方向用コードブックおよび時間軸用コードブックがそれぞれ2048個のコードベクトルで構成されているとしたが、これは本実施形態を説明するにあたって分かりやすくするために挙げた例であり、ここで述べた数値に限定されるべきでないのは言うまでもない。   In the second embodiment, the number of data constituting one vector is 16, and the space direction code book and the time axis code book are each composed of 2048 code vectors. However, this is an example given for the sake of clarity in describing the present embodiment, and it goes without saying that it should not be limited to the numerical values described here.

また、ここでは16フレーム分の画像をベクトル量子化により圧縮することについて述べたが、圧縮を行うフレームの枚数は16フレームに限定されるものではなく、必要な枚数のフレームをベクトル量子化により圧縮しても良いことは言うまでもない。また、ここでは動画像を用いた実施形態を示しているが、動画像に限らず、音声信号を対象にしても同様に適用することができる。   Also, here, compression of 16 frames of images by vector quantization has been described, but the number of frames to be compressed is not limited to 16 frames, and the required number of frames is compressed by vector quantization. Needless to say, you can. Although an embodiment using a moving image is shown here, the present invention is not limited to a moving image and can be similarly applied to an audio signal.

また、この第2の実施形態では、1つの相関度演算部36を空間方向ベクトル量子化と時間軸ベクトル量子化とで使い回すようにしているが、それぞれのベクトル量子化用に2つ設けても良い。   In the second embodiment, one correlation degree calculation unit 36 is reused for space direction vector quantization and time axis vector quantization, but two are provided for each vector quantization. Also good.

(第3の実施形態)
図12は、第3の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、第3の実施形態によるデータ圧縮伸長システムの構成は、第2の実施形態とほぼ同様なのでここでは図示を省略する。ただし、空間方向コード再配列演算部39および再生画像生成部48における処理内容が第3の実施形態では多少異なっているので、これについては詳しく説明する。
(Third embodiment)
FIG. 12 is a data flow diagram showing a data flow during compression according to the third embodiment. The configuration of the data compression / decompression system according to the third embodiment is substantially the same as that of the second embodiment, and is not shown here. However, since the processing contents in the spatial direction code rearrangement calculation unit 39 and the reproduction image generation unit 48 are slightly different in the third embodiment, this will be described in detail.

本実施形態では、図12に示すように、17フレーム分の画像に対して圧縮を行っている。このため、相関度演算部36では、演算モード指定部37により空間方向ベクトル量子化を行うことが指定されているときに、第1のフレーム目の画像から第17のフレーム目の画像まで計17枚の画像に対して空間方向ベクトル量子化の処理を行うことにより、それぞれのフレーム画像について、夫々4×4画素に分割した各ブロック領域を、空間方向用コードブック中のコードベクトルに対応するコード番号で置き換える。   In this embodiment, as shown in FIG. 12, compression is performed on images for 17 frames. Therefore, in the correlation degree calculation unit 36, when the calculation of the spatial direction vector quantization is specified by the calculation mode specifying unit 37, a total of 17 images from the first frame image to the 17th frame image are obtained. A code corresponding to the code vector in the spatial direction codebook is obtained by performing spatial direction vector quantization processing on each image, thereby dividing each block region into 4 × 4 pixels for each frame image. Replace with a number.

空間方向コード再配列演算部39は、上記相関度演算部36によって空間方向用コードブックのコード番号で表現された各フレームの画像中で同じアドレスが示すブロックのコード番号について、第1フレーム目(これを基準フレームとする)のコード番号と各フレームのコード番号との差分を夫々算出し、その結果をフレーム画像順に並べ替える。なお、並べ替えた後に個々のアドレス毎に基準フレームとの差分を計算しても良い。   The spatial direction code rearrangement calculation unit 39 performs the first frame (for the code number of the block indicated by the same address in the image of each frame represented by the code number of the spatial direction code book by the correlation calculation unit 36. The difference between the code number of each frame) and the code number of each frame is calculated, and the results are rearranged in the frame image order. Note that the difference from the reference frame may be calculated for each address after the rearrangement.

すなわち、図12に示すように、まず第1フレーム目と第2フレーム目とで同じアドレスどうしのコード番号間で差分をとり、次に第1フレーム目と第3フレーム目とで同じアドレスどうしのコード番号間で差分をとる。以下同様にして、第1フレーム目と第4〜第17フレーム目とで同じアドレスどうしのコード番号間で差分をとる。そして、同じアドレスが示すブロックの差分結果をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各差分コード番号を1つのデータ列としてまとめて表現する。   That is, as shown in FIG. 12, first, a difference is taken between the code numbers of the same addresses in the first frame and the second frame, and then the same addresses are assigned in the first frame and the third frame. Take the difference between the code numbers. Similarly, the difference is taken between the code numbers of the same addresses in the first frame and the fourth to 17th frames. Then, the difference results of the blocks indicated by the same address are rearranged in the order of frame images, so that the difference code numbers of the same address blocks distributed in the time axis direction are collectively expressed as one data string.

つまり、図12のように17フレーム分の画像に対して空間方向ベクトル量子化を行った場合、第1フレーム目の画像のコード番号と第2フレーム目の画像のコード番号との差が、新しく作られるデータ列の0番地の位置に置かれ、第1フレーム目の画像のコード番号と第3フレーム目の画像のコード番号との差が、新しく作られるデータ列の1番地の位置に置かれる。   That is, when spatial direction vector quantization is performed on images for 17 frames as shown in FIG. 12, the difference between the code number of the first frame image and the code number of the second frame image is The difference between the code number of the image of the first frame and the code number of the image of the third frame is placed at the position of the first address of the newly created data string. .

このように、第1フレーム目のコード番号と残り16フレーム分のコード番号とのそれぞれの差に対して並べ替えが行われ、最後の第1フレーム目の画像のコード番号と第17フレーム目の画像のコード番号との差は、新しく作られるデータ列の15番地の位置に置かれることになる。相関度演算部36は、演算モード指定部37により時間軸ベクトル量子化を行うことが指定されているときは、このようにして並べ替えられた時間軸ベクトル列に対して時間軸ベクトル量子化の処理を行い、時間軸用コードブックの時間軸コード番号列を出力する。   In this way, rearrangement is performed on the difference between the code number of the first frame and the code numbers of the remaining 16 frames, and the code number of the last first frame image and the 17th frame The difference from the code number of the image is placed at the 15th position of the newly created data string. When the calculation mode designating unit 37 designates time axis vector quantization, the correlation degree computing unit 36 performs time axis vector quantization on the time axis vector sequence rearranged in this way. Processing is performed, and the time axis code number string of the time axis code book is output.

この段階で、17フレーム分の640×480画素分の画像は、例えば11ビット表現された19200個のデータから成るデータ列で表現されている。したがって、17フレーム分の動画像を転送する場合、空間方向用コードブックと時間軸用コードブックとをあらかじめ伸長側に送っておき、その後、上述の一連の処理によって得られた時間軸コードブックのコード番号列で表現されたリストと、第1フレーム目の画像が空間方向用コードブックのコード番号列で表現されたデータ列とを送れば良い。   At this stage, an image of 640 × 480 pixels for 17 frames is expressed by a data string composed of 19200 data expressed by 11 bits, for example. Therefore, when transferring a moving image for 17 frames, the space direction code book and the time axis code book are sent to the decompression side in advance, and then the time axis code book obtained by the above-described series of processing. What is necessary is just to send the list | wrist expressed with the code number sequence, and the data sequence with which the image of the 1st frame was expressed with the code number sequence of the code book for space directions.

これにより、41779200ビットの情報量を有する17フレーム分の画像を、約0.01倍にあたる422400ビットの情報量を有する時間軸コードブックのコード番号列にまで、画質を保持したまま圧縮することができる。   As a result, an image of 17 frames having an information amount of 41779200 bits can be compressed while maintaining the image quality up to a code number string of a time axis codebook having an information amount of 422400 bits, which is approximately 0.01 times. it can.

伸長側では、このようにして圧縮側から転送されてきたデータをもとに、もとの17フレーム分の画像を再現することができる。再生画像生成部48によって307200個の配列データを16個の空間方向ベクトルに16分割するところまでは、第2の実施形態と同様である。本実施形態では、さらに、圧縮側より送られてきている第1フレーム目の空間方向ベクトル量子化後のコード番号と、再生画像生成部48により再生された各空間方向ベクトルを構成しているコード番号差分との加算を行い、コード番号のデータ列を再構成する。   On the decompression side, the original image for 17 frames can be reproduced based on the data transferred from the compression side in this way. The process up to dividing the 307200 array data into 16 spatial direction vectors by the reconstructed image generating unit 48 is the same as in the second embodiment. In the present embodiment, the code number of the spatial direction vector quantized for the first frame sent from the compression side and the code constituting each spatial direction vector reproduced by the reproduction image generation unit 48 Addition with the number difference is performed to reconstruct the code number data string.

再生画像生成部48は、第1フレーム目の空間方向ベクトルと、16個に分割され再構成された空間方向ベクトル列とのそれぞれについて、その空間方向ベクトルを構成する個々のコード番号に対応するコードベクトルを、空間方向用コードブック記憶部49に記憶されている空間方向用コードブックから探し出してはめ込んでいくことにより、元の画像を再生する。これにより、元の17フレーム分の画像を再生することができる。   For each of the spatial direction vector of the first frame and the spatial direction vector sequence reconstructed into 16 segments, the reproduced image generation unit 48 codes corresponding to individual code numbers constituting the spatial direction vector. The original image is reproduced by searching for and inserting the vector from the spatial direction codebook stored in the spatial direction codebook storage unit 49. Thereby, the original image for 17 frames can be reproduced.

なお、この第3の実施形態では、1つのベクトルを構成するデータの数が16個であり、空間方向用コードブックおよび時間軸用コードブックがそれぞれ2048個のベクトルで構成されているとしたが、これは本実施形態を説明するにあたって分かりやすくするために挙げた例であり、ここで述べた数値に限定されるべきでないのは言うまでもない。   In the third embodiment, the number of data constituting one vector is 16, and the space direction codebook and the time axis codebook are each composed of 2048 vectors. This is an example given for the sake of clarity in explaining the present embodiment, and it goes without saying that it should not be limited to the numerical values described here.

また、ここでは17フレーム分の画像をベクトル量子化により圧縮することについて述べたが、圧縮を行うフレームの枚数は17フレームに限定されるものではなく、必要な枚数のフレームをベクトル量子化により圧縮しても良いことは言うまでもない。また、ここでは動画像を用いた実施形態を示しているが、動画像に限らず、音声信号を対象にしても同様に適用することができる。   In addition, although it has been described here that images for 17 frames are compressed by vector quantization, the number of frames to be compressed is not limited to 17 frames, and the required number of frames is compressed by vector quantization. Needless to say, you can. Although an embodiment using a moving image is shown here, the present invention is not limited to a moving image and can be similarly applied to an audio signal.

(第4の実施形態)
図13は、第4の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、第4の実施形態によるデータ圧縮伸長システムの構成も、第2の実施形態とほぼ同様なのでここでは図示を省略する。ただし、空間方向コード再配列演算部39および再生画像生成部48における処理内容が第4の実施形態では多少異なっているので、これについては詳しく説明する。
(Fourth embodiment)
FIG. 13 is a data flow diagram illustrating a data flow during compression according to the fourth embodiment. The configuration of the data compression / decompression system according to the fourth embodiment is substantially the same as that of the second embodiment, and is not shown here. However, since the processing contents in the spatial direction code rearrangement calculation unit 39 and the reproduction image generation unit 48 are slightly different in the fourth embodiment, this will be described in detail.

図13に示すように、本実施形態においても第3の実施形態と同様に、17フレーム分の画像に対して圧縮を行っているが、空間方向コード再配列演算部39で行う差分演算の内容が上述の例とは異なっている。すなわち、第3の実施形態では、第1フレーム目の画像のコード番号と残りの各フレームのコード番号との差分を夫々演算していたが、第4の実施形態では、互いに隣り合うフレームどうしでコード番号の差分を演算する。   As shown in FIG. 13, in this embodiment as well as in the third embodiment, the image for 17 frames is compressed, but the contents of the difference calculation performed by the spatial direction code rearrangement calculation unit 39. Is different from the above example. That is, in the third embodiment, the difference between the code number of the first frame image and the code number of each of the remaining frames is calculated, but in the fourth embodiment, the frames adjacent to each other are calculated. Calculate the code number difference.

すなわち、図13に示すように、まず第1フレーム目と第2フレーム目とで同じアドレスどうしのコード番号間で差分をとり、次に第2フレーム目と第3フレーム目とで同じアドレスどうしのコード番号間で差分をとる。以下、第16フレーム目と第17フレーム目とで差分をとるまで同様の処理を行う。そして、同じアドレスが示すブロックの差分結果をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各差分コード番号を1つのデータ列としてまとめて表現する。   That is, as shown in FIG. 13, first, a difference is obtained between the code numbers of the same address in the first frame and the second frame, and then the same address is assigned in the second frame and the third frame. Take the difference between the code numbers. Thereafter, the same processing is performed until a difference is obtained between the 16th frame and the 17th frame. Then, the difference results of the blocks indicated by the same address are rearranged in the order of frame images, so that the difference code numbers of the same address blocks distributed in the time axis direction are collectively expressed as one data string.

また、第4の実施形態による伸長側の構成および動作も、第3の実施形態の場合とほぼ同じであるが、再生画像生成部48で行う加算の内容が異なっている。すなわち、第4の実施形態では、互いに隣り合うフレームの空間方向ベクトルを構成しているコード番号どうしで加算を行い、それぞれの加算結果でコード番号のデータ列を再構成する。   Further, the configuration and operation on the decompression side according to the fourth embodiment are substantially the same as those in the third embodiment, but the contents of the addition performed by the reproduction image generation unit 48 are different. That is, in the fourth embodiment, addition is performed between code numbers constituting the spatial direction vectors of frames adjacent to each other, and a data sequence of code numbers is reconfigured with each addition result.

すなわち、まず、圧縮側より送られてきている第1フレーム目の空間方向ベクトル後のコード番号と、再生画像生成部48により再生された1つ目の空間方向ベクトルを構成しているコード番号差分との加算を行い、第2フレーム目の画像の空間方向ベクトルを生成する。   That is, first, the code number after the spatial direction vector of the first frame sent from the compression side and the code number difference constituting the first spatial direction vector reproduced by the reproduction image generation unit 48 And the spatial direction vector of the image of the second frame is generated.

次に、生成された第2フレーム目の画像の空間方向ベクトルを構成しているコード番号と、再生画像生成部48により生成された2つ目の空間方向ベクトルを構成しているコード番号差分との加算を行い、第3フレーム目の画像の空間方向ベクトルを生成する。同じ操作を残りの空間方向ベクトルについても順番に行うことにより、第1フレーム目を除く16フレーム分の空間方向ベクトルのコード番号列を再構成する。   Next, the code number constituting the spatial direction vector of the generated second frame image, and the code number difference constituting the second spatial direction vector generated by the reproduced image generation unit 48 Is added to generate the spatial direction vector of the third frame image. By performing the same operation sequentially for the remaining spatial direction vectors, the code number sequence of the spatial direction vectors for 16 frames excluding the first frame is reconstructed.

なお、この第4の実施形態でも、1つのベクトルを構成するデータの数が16個であり、空間方向用コードブックおよび時間軸用コードブックがそれぞれ2048個のベクトルで構成されているとしたが、これは本実施形態を説明するにあたって分かりやすくするために挙げた例であり、ここで述べた数値に限定されるべきでないのは言うまでもない。   In the fourth embodiment, the number of data constituting one vector is 16, and the space direction codebook and the time axis codebook are each composed of 2048 vectors. This is an example given for the sake of clarity in explaining the present embodiment, and it goes without saying that it should not be limited to the numerical values described here.

また、ここでは17フレーム分の画像をベクトル量子化により圧縮することについて述べたが、圧縮を行うフレームの枚数は17フレームに限定されるものではなく、必要な枚数のフレームをベクトル量子化により圧縮しても良いことは言うまでもない。また、ここでは動画像を用いた実施形態を示しているが、動画像に限らず、音声信号を対象にしても同様に適用することができる。   In addition, although it has been described here that images for 17 frames are compressed by vector quantization, the number of frames to be compressed is not limited to 17 frames, and the required number of frames is compressed by vector quantization. Needless to say, you can. Although an embodiment using a moving image is shown here, the present invention is not limited to a moving image and can be similarly applied to an audio signal.

また、ここではフレーム間のコード番号の差分をとる方法として、隣り合うフレームどうしのコード番号差分をとっているが、必ずしも隣り合うフレーム間のコード番号の差分をとる必要はないことは言うまでもない。   Here, as a method of obtaining the code number difference between frames, the code number difference between adjacent frames is taken, but it goes without saying that it is not always necessary to obtain the code number difference between adjacent frames.

以上のように、第2〜第4の実施形態によれば、空間方向ベクトル量子化の処理に加えて時間軸ベクトル量子化の処理を導入することにより、動画像の各フレーム内でデータ圧縮を行うだけでなく、各フレーム間に対してもデータ圧縮を行うことができ、より高い圧縮率を得ることができる。   As described above, according to the second to fourth embodiments, by introducing the time-axis vector quantization process in addition to the spatial direction vector quantization process, data compression is performed within each frame of the moving image. Data compression can be performed not only between frames but also between frames, and a higher compression rate can be obtained.

すなわち、1枚のフレーム画像に対して空間方向ベクトル量子化のみを行ったときの圧縮率は1/11.6程度であるが、時間軸ベクトル量子化を導入して例えば16フレーム分の動画像に対してデータ圧縮を行うと、圧縮率は16倍(圧縮の対象となるフレーム枚数倍)になり、1/185.6となる。   In other words, the compression rate when only spatial direction vector quantization is performed on one frame image is about 1 / 11.6, but by introducing time-axis vector quantization, for example, 16 frames of moving images When data compression is performed on the image data, the compression ratio is 16 times (multiple times the number of frames to be compressed), which is 1 / 1855.6.

(第5の実施形態)
本実施形態では、圧縮した画像を再生する際に、より高画質な再生画像を得るための手法の具体例について述べる。なお、時間軸方向に画像データを圧縮する手法については、第2〜第4の実施形態で述べた何れの手法を用いてもよいが、ここでは第2の実施形態の手法を用いた場合を例にとって説明する。
(Fifth embodiment)
In the present embodiment, a specific example of a technique for obtaining a higher-quality reproduced image when reproducing a compressed image will be described. As a method for compressing image data in the time axis direction, any of the methods described in the second to fourth embodiments may be used, but here, the case of using the method of the second embodiment is used. For example,

上述した第2の実施形態では、空間方向コード再生部44により再生された307200個の空間方向コード番号列を再配列して生成した16個の空間方向ベクトルに対して、それらを構成する個々のコード番号に対応するコードベクトルを空間方向用コードブック記憶部49内の空間方向用コードブックから参照し、該当するパターン画像のデータを各ブロック位置にはめ込むことで元の画像を再生していた。   In the second embodiment described above, the 16 spatial direction vectors generated by re-arranging the 307200 spatial direction code number sequences reproduced by the spatial direction code reproduction unit 44 are individually configured. The code vector corresponding to the code number is referenced from the spatial direction code book in the spatial direction code book storage unit 49, and the original image is reproduced by fitting the data of the corresponding pattern image at each block position.

ところが、この手法だと1枚目のフレームの再生画像は画質の高いものが得られるが、フレームが進むにつれて時間軸方向のベクトル量子化による量子化誤差が目立つようになり、画質が劣化してくる。そこで、本実施形態では、このような画質の劣化を防ぎ、かつ圧縮率を同等に維持するために、伸長側の再生画像生成部48内の構成を例えば図14のようにする。   However, with this method, a reproduced image of the first frame can be obtained with high image quality, but as the frame advances, quantization errors due to vector quantization in the time axis direction become conspicuous, and the image quality deteriorates. come. Therefore, in this embodiment, in order to prevent such image quality deterioration and maintain the same compression rate, the configuration of the decompressed reproduction image generating unit 48 is as shown in FIG.

図14において、時間軸コード再配列演算部48aは、第2の実施形態と同様に、空間方向コード再生部44により再生された307200個の空間方向コード番号列を再配列して、19200個のデータ列から成る16個の空間方向ベクトルを生成する。本実施形態では、この時間軸コード再配列演算部48aの後段に時間軸シフト部48bを設けている。   In FIG. 14, the time axis code rearrangement calculation unit 48a rearranges the 307200 spatial direction code number sequences reproduced by the spatial direction code reproduction unit 44 in the same manner as in the second embodiment, and 19200 Sixteen spatial direction vectors composed of data strings are generated. In the present embodiment, a time axis shift unit 48b is provided following the time axis code rearrangement calculation unit 48a.

時間軸シフト部48bは、空間方向デコード部48cが16個の空間方向ベクトル列の個々のコード番号に対応するコードベクトルを空間方向用コードブック記憶部49内のコードブックから参照し、参照してきたパターン画像を各フレーム画像ごとにはめ込む際に、圧縮側でベクトル量子化を行ったときに定義したブロックの所望のアドレス毎に、空間方向ベクトルの要素を時間軸方向にずらしてパターン画像をはめ込むようにシフト処理を行う。   In the time axis shift unit 48b, the spatial direction decoding unit 48c refers to the code vector corresponding to each code number of the 16 spatial direction vector sequences from the code book in the spatial direction code book storage unit 49, and has referred to it. When inserting the pattern image into each frame image, insert the pattern image by shifting the elements of the spatial vector in the time axis direction for each desired address of the block defined when vector quantization is performed on the compression side. Shift processing is performed.

すなわち、時間軸シフト部48bは、空間方向ベクトル内の各要素(各アドレス)毎に、近接する要素を時間軸方向にずらす処理を行う。例えば、ある指定されたアドレスについては、16個の空間方向コード番号列が第1フレーム目から順に配列されるが、他のアドレスについては、16個の空間方向コード番号列が第1フレーム目以外のフレームから順に配列されるようにする。   That is, the time axis shift unit 48b performs processing for shifting adjacent elements in the time axis direction for each element (each address) in the spatial direction vector. For example, for a specified address, 16 spatial direction code number sequences are arranged in order from the first frame, but for other addresses, 16 spatial direction code number sequences are other than the first frame. The frames are arranged in order from the first frame.

このようにすることで、時間軸方向のベクトル量子化により生じる量子化誤差を時間軸方向に分散させることができる。よって、フレームが進むごとに目立っていた量子化誤差を目立たなくすることができ、全体的に再生画像の画質を向上させることができるという利点が得られる。   By doing in this way, the quantization error caused by the vector quantization in the time axis direction can be dispersed in the time axis direction. Therefore, the quantization error that is conspicuous each time the frame progresses can be made inconspicuous, and the image quality of the reproduced image can be improved as a whole.

(第6の実施形態)
上述した第5の実施形態では、伸長側においてパターン画像を時間軸方向にずらしてはめ込むことにより、量子化誤差を目立たなくさせていた。これに対して、圧縮側において時間軸方向へのシフト処理を行うことにより、量子化誤差を目立たなくさせることもできる。この第6の実施形態では、そのような手法について説明する。
(Sixth embodiment)
In the fifth embodiment described above, the quantization error is made inconspicuous by fitting the pattern image by shifting it in the time axis direction on the expansion side. In contrast, the quantization error can be made inconspicuous by performing a shift process in the time axis direction on the compression side. In the sixth embodiment, such a method will be described.

本実施形態においても、時間軸方向に画像データを圧縮する手法については、上記第2〜第4の実施形態で述べた何れの手法を用いてもよいが、ここでも第2の実施形態の手法を用いた場合を例にとって説明する。
本実施形態において、図9の空間方向コード再配列演算部39は、空間方向ベクトル量子化後のコード番号列を時間軸方向にシフトする処理を行う。
Also in the present embodiment, as a method for compressing image data in the time axis direction, any of the methods described in the second to fourth embodiments may be used, but the method of the second embodiment is used here as well. A description will be given taking the case of using as an example.
In the present embodiment, the spatial direction code rearrangement calculation unit 39 in FIG. 9 performs a process of shifting the code number sequence after spatial direction vector quantization in the time axis direction.

すなわち、空間方向コード再配列演算部39は、相関度演算部36による空間方向ベクトル量子化によって各フレーム画像毎に生成された空間方向コード番号列のうち、同じアドレスが示すブロックのコード番号について、アドレス毎に異なるフレームを基準として時間軸ベクトルの要素が配列されるように並べ替えを行う。   That is, the spatial direction code rearrangement calculation unit 39, for the code number of the block indicated by the same address in the spatial direction code number sequence generated for each frame image by the spatial direction vector quantization by the correlation degree calculation unit 36, Rearrangement is performed so that the elements of the time axis vector are arranged with reference to different frames for each address.

つまり、上述した第2の実施形態では、空間方向ベクトル量子化後のコード番号列のうち、同じアドレスが示すブロックのコード番号をフレーム画像順に並べ替えて時間軸ベクトルを生成する際に、全てのアドレスについて第1フレームを基準として並べ替えを行っていたが、本実施形態においては、どのフレームを基準として並べ替えるかをアドレス毎に異ならせる。   That is, in the second embodiment described above, when generating the time-axis vector by rearranging the code numbers of the blocks indicated by the same address in the frame image order in the code number sequence after spatial direction vector quantization, The addresses are rearranged on the basis of the first frame, but in the present embodiment, which frame is rearranged as a reference is changed for each address.

例えば、ある時間軸ベクトルについては、第1フレーム目のコード番号が新しく作られる時間軸ベクトルのデータ列の0番地の位置に置かれるが、他の時間軸ベクトルについては、第1フレーム目以外のフレームのコード番号が新しく作られるデータ列の0番地の位置に置かれるようにする。   For example, with respect to a certain time axis vector, the code number of the first frame is placed at the position of address 0 of the newly generated time axis vector data string. The code number of the frame is placed at the position of address 0 in the newly created data string.

このようにすることで、上記第5の実施形態と同様に、時間軸方向のベクトル量子化により生じる量子化誤差を時間軸方向に分散させることができる。したがって、圧縮した画像を再生する際に、フレームが進むごとに目立っていた量子化誤差を目立たなくすることができ、全体的に画質を向上させることができるという利点が得られる。   By doing so, the quantization error caused by the vector quantization in the time axis direction can be dispersed in the time axis direction as in the fifth embodiment. Therefore, when a compressed image is reproduced, the quantization error that is conspicuous each time the frame advances can be made inconspicuous, and the image quality can be improved as a whole.

なお、以上の実施形態では空間方向ベクトル量子化と時間軸ベクトル量子化とを組み合わせて行う場合を例にとって説明しているが、少なくとも時間軸ベクトル量子化だけを行うようにしても良い。その際に、各フレーム画像内の画素あるいはブロックを単位として、上述のようにフレーム間で(時間軸方向に)位置をずらす処理を行うことにより、時間軸方向のベクトル量子化により生じる量子化誤差を目立たなくすることができる。   In the above embodiment, the case where the spatial direction vector quantization and the time axis vector quantization are combined is described as an example, but at least the time axis vector quantization may be performed. At that time, the quantization error caused by the vector quantization in the time axis direction is performed by performing the process of shifting the position between the frames (in the time axis direction) as described above in units of pixels or blocks in each frame image. Can be made inconspicuous.

(第7の実施形態)
図15は、第7の実施形態によるデータ圧縮システムの一構成例を示す機能ブロック図であり、図16は、第7の実施形態に係る圧縮時のデータの流れを示すデータフロー図である。なお、図15において、図9に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。また、図16では説明の都合上、原画像を1フレームしか示していないが、実際には複数のフレームが画像入力部31より順に入力される。
(Seventh embodiment)
FIG. 15 is a functional block diagram illustrating a configuration example of a data compression system according to the seventh embodiment, and FIG. 16 is a data flow diagram illustrating a data flow during compression according to the seventh embodiment. In FIG. 15, the same reference numerals as those shown in FIG. 9 have the same functions, and thus detailed description thereof will be omitted. In FIG. 16, for convenience of explanation, only one frame of the original image is shown, but actually, a plurality of frames are sequentially input from the image input unit 31.

DC成分検出・除去部51は、原画像に対してベクトル量子化を行う際の各ブロック毎に、ブロックの中からDC成分(各画素の最小輝度値)を検出する。また、上記各ブロック毎に検出したDC成分をブロック内の全ての画素値から夫々減算することにより、入力された原画像の各画素値を各ブロック毎にその最小輝度値からの増分だけで表した画像を生成する。   The DC component detection / removal unit 51 detects a DC component (minimum luminance value of each pixel) from the block for each block when vector quantization is performed on the original image. In addition, by subtracting the DC component detected for each block from all the pixel values in the block, each pixel value of the input original image is represented by an increment from the minimum luminance value for each block. Generated image.

相関度演算部36は、演算モード指定部52により空間方向ベクトル量子化を行うモードが指定されているときは、空間方向用コードブック記憶部53にあらかじめ記憶されている、基本パターンだけで構成された空間方向用コードブックを用いて、DC成分除去後の入力画像ブロックに対して空間方向ベクトル量子化の処理を行う。ここで、基本パターンとは、例えば、コードベクトルのブロック内で各画素の輝度値が8つの方向に単調に変化するパターンを言う。   The correlation calculation unit 36 is configured only with basic patterns stored in advance in the space direction codebook storage unit 53 when the mode for performing spatial direction vector quantization is specified by the calculation mode specifying unit 52. Using the spatial direction codebook, spatial direction vector quantization is performed on the input image block from which the DC component has been removed. Here, the basic pattern refers to a pattern in which the luminance value of each pixel changes monotonously in eight directions within a code vector block, for example.

すなわち、基本パターンのコードブックとは、例えば4×4画素単位で構成されるブロックのエッジ部分(上下左右の各辺および四隅の各点)の何れかを始点として、ブロック内を上下左右方向あるいは斜め方向に輝度値が徐々に変化するパターンのコードベクトルの集合を言う。これらのコードベクトルの始点の輝度値を0に設定することで、DC成分検出・除去部51により生成されるDC成分の除去された画像ブロックに合ったものとなっている。始点から終点までの輝度値の増分にバリエーションを与えること等により、例えば321パターンのコードベクトルによりこの基本パターンの空間方向用コードブックを構成する。   In other words, the basic pattern codebook is, for example, one of the edge portions (upper and lower left and right sides and four corners) of a block configured in units of 4 × 4 pixels. A set of code vectors having a pattern in which luminance values gradually change in an oblique direction. By setting the luminance value of the start point of these code vectors to 0, it is suitable for the image block from which the DC component generated by the DC component detection / removal unit 51 is removed. By giving variations to the increment of the luminance value from the start point to the end point, for example, the spatial direction code book of this basic pattern is constituted by, for example, 321 pattern code vectors.

また、DC成分検出・除去部51は、各ブロック毎に検出した最小輝度値をそれぞれ抽出する。これにより、図16に示すように、各ブロックの最小輝度値のみで構成した160×120画素の画像を生成する。このようにして、DC成分検出・除去部51による最小輝度値の抽出処理、および相関度演算部36による空間方向ベクトル量子化処理を行うことで、原画像として入力される複数フレームのそれぞれの画像に対して、空間方向コード番号のデータ列と各ブロックの最小輝度値のデータ列とを生成する。   Further, the DC component detection / removal unit 51 extracts the minimum luminance value detected for each block. As a result, as shown in FIG. 16, an image of 160 × 120 pixels composed only of the minimum luminance value of each block is generated. Thus, by performing the extraction process of the minimum luminance value by the DC component detection / removal unit 51 and the spatial direction vector quantization process by the correlation degree calculation unit 36, each image of the plurality of frames input as the original image On the other hand, the data string of the spatial direction code number and the data string of the minimum luminance value of each block are generated.

次に、空間方向コード再配列演算部39は、上記相関度演算部36によって空間方向用コードブックのコード番号列で表現された各フレームの画像に対して、同じアドレスが示すブロックのコード番号をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各コード番号を1つのデータ列としてまとめた時間軸ベクトルを生成する。この処理は、上記第2〜第4の実施形態で述べた何れの手法によっても良い。   Next, the spatial direction code rearrangement calculation unit 39 assigns the code number of the block indicated by the same address to the image of each frame represented by the code number sequence of the spatial direction code book by the correlation calculation unit 36. By rearranging in the order of frame images, a time-axis vector in which the code numbers of the same address blocks distributed in the time-axis direction are collected as one data string is generated. This processing may be performed by any method described in the second to fourth embodiments.

同様に、空間方向DC成分再配列演算部54は、上記DC成分検出・除去部51により各ブロックの最小輝度値のみで表現された各フレームの画像に対して、同じアドレスが示すブロックのデータ値をフレーム画像順に並べ替えることにより、時間軸方向に分散して存在する同アドレスブロックの各最小輝度値を1つのデータ列としてまとめた時間軸ベクトルを生成する。この処理も、上記第2〜第4の実施形態で述べた何れの手法によっても良い。   Similarly, the spatial direction DC component rearrangement calculation unit 54 performs the data value of the block indicated by the same address on the image of each frame expressed by only the minimum luminance value of each block by the DC component detection / removal unit 51. Are rearranged in the order of frame images to generate a time-axis vector in which the minimum luminance values of the same address blocks distributed in the time-axis direction are collected as one data string. This processing may be performed by any of the methods described in the second to fourth embodiments.

図16に示した例の場合、基本パターンの時間軸ベクトルについては、例えば第1フレーム目〜第16フレーム目の各フレームの先頭アドレスで指定されるブロックのコード番号を並べ替えた(127,287,58,…,283,276)のデータ列が、1つの基本パターンの時間軸ベクトルに相当する。また、最小輝度値の時間軸ベクトルについては、例えば第1フレーム目〜第16フレーム目の各フレームの先頭アドレスで指定されるブロックの最小輝度値を並べ替えた(60,50,58,…,76,77)のデータ列が、1つの最小輝度値の時間軸ベクトルに相当する。   In the case of the example shown in FIG. 16, for the time axis vector of the basic pattern, for example, the code numbers of the blocks specified by the head addresses of the first to sixteenth frames are rearranged (127, 287). , 58,..., 283, 276) corresponds to a time axis vector of one basic pattern. For the time axis vector of the minimum luminance value, for example, the minimum luminance values of the blocks specified by the head addresses of the first to sixteenth frames are rearranged (60, 50, 58,..., 76, 77) corresponds to a time axis vector of one minimum luminance value.

上記空間方向コード再配列演算部39および空間方向DC成分再配列演算部54により並べ替えが行われると、時間軸ベクトル量子化開始信号が出力され、それが演算モード指定部52に与えられる。これに応じて演算モード指定部52は、基本パターンあるいは最小輝度値の何れかについて時間軸ベクトル量子化を行うモードに切り替える。   When rearrangement is performed by the spatial direction code rearrangement calculation unit 39 and the spatial direction DC component rearrangement calculation unit 54, a time-axis vector quantization start signal is output and supplied to the calculation mode designating unit 52. In response to this, the calculation mode designating unit 52 switches to a mode in which time-axis vector quantization is performed for either the basic pattern or the minimum luminance value.

相関度演算部36は、演算モード指定部52により基本パターンの時間軸ベクトル量子化を行うことが指定されているときは、上記空間方向コード再配列演算部39により生成された各時間軸ベクトルに対して、時間軸用コードブック記憶部55に記憶されている時間軸用コードブックを用いてベクトル量子化を行う。また、演算モード指定部52により最小輝度値の時間軸ベクトル量子化を行うことが指定されているときは、上記空間方向DC成分再配列演算部54により生成された各時間軸ベクトルに対して、時間軸DC成分用コードブック記憶部56に記憶されている時間軸用コードブックを用いてベクトル量子化を行う。   When the calculation mode specifying unit 52 specifies that the time axis vector quantization of the basic pattern should be performed, the correlation degree calculating unit 36 applies each time axis vector generated by the spatial direction code rearrangement calculating unit 39 to each time axis vector. On the other hand, vector quantization is performed using the time-axis codebook stored in the time-axis codebook storage unit 55. Further, when it is specified that the time axis vector quantization of the minimum luminance value is performed by the operation mode specifying unit 52, for each time axis vector generated by the spatial direction DC component rearrangement operation unit 54, Vector quantization is performed using the time-axis codebook stored in the time-axis DC component codebook storage unit 56.

以上の処理により、空間方向ベクトル量子化後のコード番号列で表現されていた基本パターンに関する複数の時間軸ベクトルを、基本パターンの時間軸コードブック中の各コードベクトルに対応するコード番号列で置き換えるとともに、各ブロックの最小輝度値のデータ列で表現されていた最小輝度値に関する複数の時間軸ベクトルを、最小輝度値の時間軸コードブック中の各コードベクトルに対応するコード番号列で置き換える。そして、これらのデータリストを伸長側に転送する。   Through the above processing, a plurality of time axis vectors related to the basic pattern represented by the code number string after space direction vector quantization are replaced with code number strings corresponding to the code vectors in the time axis code book of the basic pattern. At the same time, the plurality of time axis vectors related to the minimum luminance value represented by the data string of the minimum luminance value of each block is replaced with a code number sequence corresponding to each code vector in the time axis code book of the minimum luminance value. These data lists are transferred to the decompression side.

なお、本実施形態において、伸長側の構成およびデータの流れについては図示していないが、基本的には圧縮側とは逆の関係になっており、例えば以下のようにして処理を行えば良い。すなわち、基本パターンおよび最小輝度値の各々について、上記第2〜第4の実施形態で述べたのと同様の伸長処理を行う。そして、それぞれについて伸長処理が完了したら、それぞれの結果を各ブロック毎に合成していくことによって、元の画像を再現することができる。   In the present embodiment, the configuration on the decompression side and the data flow are not shown, but the relationship is basically opposite to that on the compression side. For example, the processing may be performed as follows. . That is, the same expansion process as described in the second to fourth embodiments is performed for each of the basic pattern and the minimum luminance value. When the decompression process is completed for each, the original image can be reproduced by synthesizing the results for each block.

以上詳しく説明したように、第7の実施形態によれば、原画像から1つの特徴量データ(上述の例では各ブロック毎の最小輝度値)を抽出し、抽出した特徴量データのベクトル量子化と、特徴量除去後の基本パターンのベクトル量子化とを別個に行うようにしたので、様々な特徴が絡み合った原画像そのものに対するコードブックに比べて、それぞれの画像のベクトル量子化で使用するコードブックを単純化することができ、必要なパターン数も減らすことができる(第2〜第6の実施形態では2048パターンであったのが、本実施形態では321パターンで済んでいる)。   As described above in detail, according to the seventh embodiment, one feature amount data (minimum luminance value for each block in the above example) is extracted from the original image, and vector quantization of the extracted feature amount data is performed. And the vector quantization of the basic pattern after feature removal, the code used for vector quantization of each image compared to the codebook for the original image itself in which various features are intertwined The book can be simplified, and the number of necessary patterns can be reduced (the 2048 patterns in the second to sixth embodiments are 321 patterns in the present embodiment).

これにより、ベクトル量子化により類似度の大きいパターンをコードブック中から探し出す際に、単純化されたパターンどうしでの比較を行っているために、より適切なパターンに絞り込みやすくなり、高精度のベクトル量子化を行うことができる。よって、このようにして圧縮されたデータを再生する際には、より高画質の再生画像を得ることができるようになる。   As a result, when searching for a pattern with a high degree of similarity in the code book by vector quantization, it is easy to narrow down to a more appropriate pattern because of the comparison between simplified patterns. Quantization can be performed. Therefore, when the data compressed in this way is reproduced, a higher quality reproduced image can be obtained.

なお、この第7の実施形態では、抽出する特徴量として最小輝度値を例に挙げて説明したが、これに限定されるものではない。例えば、ブロック内の各画素の最大輝度値や平均値などを抽出するようにしても良い。
また、この第7の実施形態でも、1つの相関度演算部36を空間方向ベクトル量子化と時間軸ベクトル量子化とで使い回すようにしているが、それぞれのベクトル量子化用に複数設けても良い。
In the seventh embodiment, the minimum luminance value is described as an example of the feature quantity to be extracted, but the present invention is not limited to this. For example, the maximum luminance value or average value of each pixel in the block may be extracted.
Also in this seventh embodiment, one correlation degree calculation unit 36 is reused for space direction vector quantization and time axis vector quantization, but a plurality of them may be provided for each vector quantization. good.

また、本実施形態は、モノクロ画像やカラー画像を問わずに適用することが可能である。例えば、Y信号(輝度信号)とU,V信号(色信号)とから成るカラー画像の場合、Y信号に対して上述のように最小輝度値、最大輝度値、平均値などを特徴量として抽出することが可能である。また、輝度信号に限らず、色信号に対しても最小値、最大値、平均値等を特徴量として抽出してベクトル量子化を行うようにしても良い。   Further, the present embodiment can be applied regardless of a monochrome image or a color image. For example, in the case of a color image composed of a Y signal (luminance signal) and U and V signals (color signals), the minimum luminance value, the maximum luminance value, the average value, etc. are extracted as feature amounts from the Y signal as described above. Is possible. Further, not only the luminance signal but also the color signal may be subjected to vector quantization by extracting the minimum value, maximum value, average value, etc. as feature quantities.

また、以上の例では原画像から1つの特徴量のみを抽出しているが、異なる種類の特徴量(例えば、ブロック内の最小輝度値、輝度変化の方向など)を複数抽出してベクトル量子化を行うようにしても良い。この場合は、出力されるコード番号のリストが増える分圧縮率が低下するが、再生画像の画質は更に向上させることができる。画質を優先させたい場合は、多くの特徴量を抽出してそれぞれ別個にベクトル量子化するようにすれば良い。また、画質と圧縮率のどちらを優先するか、あるいはどの程度優先するかを切り替えられるようにしても良い。   In the above example, only one feature amount is extracted from the original image. However, vector quantization is performed by extracting a plurality of different types of feature amounts (for example, minimum luminance value in a block, direction of luminance change, etc.). May be performed. In this case, the compression rate decreases as the list of code numbers to be output increases, but the quality of the reproduced image can be further improved. If it is desired to prioritize image quality, many feature quantities may be extracted and vector quantized separately. In addition, it may be possible to switch which of the image quality and the compression rate has priority or how much priority.

(第8の実施形態)
上述したように、動画像に対して圧縮を行う際に、動画を構成する各々のフレーム画像(静止画)に対して単に空間方向ベクトル量子化を行うだけでは、高い圧縮率を得ることは難しい。第2〜第7の実施形態では、更に時間軸ベクトル量子化も行うことによって圧縮率を更に高めるようにしてきた。これに対して以下に述べる第8の実施形態では、今までとは異なる手法によって圧縮率を高める手段について説明する。
(Eighth embodiment)
As described above, when compressing a moving image, it is difficult to obtain a high compression ratio by simply performing spatial direction vector quantization on each frame image (still image) constituting the moving image. . In the second to seventh embodiments, the compression ratio is further increased by further performing time-axis vector quantization. On the other hand, in an eighth embodiment described below, means for increasing the compression rate by a method different from the conventional one will be described.

本実施形態によるデータ圧縮システムの構成例を、図17に示す。図17において、画像入力部61は、画像を連続して取り込む装置である。ここでは、例えば1画素が8ビットの階調を持った640×440画素の画像を1秒間に30枚の割合で取り込む。この画像入力部61は、例えば、画像取り込み用のカメラやビデオカメラのみならず、画像を記憶可能な半導体メモリ装置、ハードディスクやフレキシブルディスクなどの記憶媒体によって実現することもできる。   A configuration example of the data compression system according to this embodiment is shown in FIG. In FIG. 17, an image input unit 61 is a device that continuously captures images. Here, for example, an image of 640 × 440 pixels in which one pixel has an 8-bit gradation is captured at a rate of 30 sheets per second. The image input unit 61 can be realized not only by an image capturing camera or a video camera, but also by a storage medium such as a semiconductor memory device capable of storing images, a hard disk, or a flexible disk.

コードブック記憶部62には、例えば4×4画素のブロックで構成されたパターン画像(コードベクトル)が多数登録されていて、各々のブロックにはユニークなコード番号が割り当てられている。   A large number of pattern images (code vectors) made up of, for example, 4 × 4 pixel blocks are registered in the code book storage unit 62, and a unique code number is assigned to each block.

コードブック方式による圧縮部63は、画像入力部61で得られた画像の1枚1枚に対して、次に述べるような空間方向ベクトル量子化の処理を行う。すなわち、原画像の左上を起点としてそこから右方向へ向かって順次4×4画素のブロックを取り出す。右端まで取り出したら、取り出す位置を1ブロック分下にずらして左端から再び取り出して行き、それを繰り返すことにより全画面分のブロックを取り出す。   The code book type compression unit 63 performs the spatial direction vector quantization processing described below on each image obtained by the image input unit 61. That is, a block of 4 × 4 pixels is sequentially extracted from the upper left corner of the original image as a starting point in the right direction. After taking out to the right end, the take-out position is shifted down by one block, it is taken out again from the left end, and the blocks for the entire screen are taken out by repeating this.

そして、取り出した各ブロックに対して、コードブック記憶部62に多数登録されているコードベクトルの中から最もパターンの似ているものを選び出し、それに対応するコード番号を出力する。640×480画素の画像を処理する場合、19200個のブロックが取り出されて処理されるので、出力されるコード番号も19200個である。   For each extracted block, a code vector having the most similar pattern is selected from among a large number of code vectors registered in the code book storage unit 62, and a code number corresponding to the selected pattern vector is output. When an image of 640 × 480 pixels is processed, since 19200 blocks are extracted and processed, 19200 code numbers are output.

コード列記憶部64は、ある時刻tにおけるフレーム画像をコードブック方式による圧縮部63にて処理して出力されるコード番号列を記憶しておくためのものである。また、コード列比較部65は、コード列記憶部64に記憶されている上記ある時刻tの画像のコード番号列と、次の時刻t+1の画像のコード番号列とを比較し、同じアドレスが示すブロックのコード番号どうしでその差分絶対値をそれぞれ計算する。   The code string storage unit 64 is for storing a code number string output by processing a frame image at a certain time t by the compression unit 63 using the code book method. Further, the code string comparison unit 65 compares the code number string of the image at the certain time t stored in the code string storage unit 64 with the code number string of the image at the next time t + 1, and indicates the same address. The difference absolute value is calculated for each block code number.

出力部66は、コード列比較部65から与えられる差分絶対値をもとに、媒体67(ネットワークなどの通信チャンネルまたは記録媒体)に出力するデータを決定する。すなわち、あるアドレスについての差分絶対値がある閾値より大きい場合は、そのアドレスとコード番号とを媒体67に出力する。一方、あるアドレスについての差分絶対値がある閾値より小さい場合は、そのアドレスとコード番号は媒体67に出力しない。   The output unit 66 determines data to be output to the medium 67 (communication channel or recording medium such as a network) based on the absolute difference value given from the code string comparison unit 65. That is, if the absolute difference value for a certain address is greater than a certain threshold value, the address and code number are output to the medium 67. On the other hand, if the absolute difference value for a certain address is smaller than a threshold value, the address and code number are not output to the medium 67.

次に、上記図17に示したデータ圧縮システムをソフトウェアで実現する場合の構成例を、図18に示す。この図18は、CPU68を含むコードブック方式動画像圧縮プロセッサの構成を示すものである。なお、この図18に示した画像入力部61、コードブック方式による圧縮部63および媒体67は、図17に示したものと同じである。   Next, FIG. 18 shows a configuration example when the data compression system shown in FIG. 17 is realized by software. FIG. 18 shows the configuration of a codebook type moving image compression processor including a CPU 68. The image input unit 61, the code book type compression unit 63, and the medium 67 shown in FIG. 18 are the same as those shown in FIG.

図18において、CPU68に付随して設けられるメモリ69には、コードブック記憶エリア69a、コード列記憶エリア69b、ポインタ・カウンタエリア69cおよび閾値記憶エリア69dが設けられている。   In FIG. 18, a memory 69 provided in association with the CPU 68 includes a code book storage area 69a, a code string storage area 69b, a pointer / counter area 69c, and a threshold value storage area 69d.

コードブック記憶エリア69aは、コードブック方式による圧縮部63で使用するコードブックを記憶しておくものである。コード列記憶エリア69bは、コードブック方式による圧縮部63から各フレーム毎に出力されるコード番号列を順次記憶しておくものであり、時刻tの画像をコードブック方式による圧縮部63で圧縮した結果のコード番号列が記憶される。   The code book storage area 69a stores a code book used in the code book type compression unit 63. The code string storage area 69b sequentially stores a code number string output for each frame from the code book type compression unit 63, and the image at time t is compressed by the code book type compression unit 63. The resulting code number string is stored.

また、ポインタ・カウンタエリア69cは、コード列記憶エリア69bに対するコード番号の読み出し・書き込みを行う位置を示すポインタ(アドレス)を記憶するものである。閾値記憶エリア69dは、出力部66で媒体67に転送するデータを決定するための判断基準となる閾値を記憶するものである。   The pointer / counter area 69c stores a pointer (address) indicating a position where the code number is read / written to / from the code string storage area 69b. The threshold value storage area 69d stores a threshold value serving as a determination criterion for determining data to be transferred to the medium 67 by the output unit 66.

図19は、図18のCPU68が実行する圧縮処理の手順を示すフローチャートである。図19において、まずステップS21で、コードブック記憶エリア69aからコードブック方式による圧縮部63に対してコードブックのデータを転送する。次に、ステップS22で閾値記憶エリア69bに所定の閾値を設定し、ステップS23でポインタ・カウンタエリア69cのポインタ(アドレス)をイニシャライズして、ポインタ値を例えば"0"に設定する。   FIG. 19 is a flowchart showing the procedure of compression processing executed by the CPU 68 of FIG. In FIG. 19, first, in step S21, the code book data is transferred from the code book storage area 69a to the compression unit 63 using the code book method. Next, in step S22, a predetermined threshold value is set in the threshold value storage area 69b. In step S23, the pointer (address) of the pointer / counter area 69c is initialized, and the pointer value is set to, for example, “0”.

次に、ステップS24で、画像入力部61から原画像中のマクロブロック(例えば、4×4画素のブロック)を1つ読み込む。そして、ステップS25で、読み込んだマクロブロックをコードブック方式による圧縮部63に送り、ここで空間方向ベクトル量子化の処理を実行させる。これにより、圧縮コードとして空間方向のコード番号列を得る。   Next, in step S24, one macroblock (for example, a 4 × 4 pixel block) in the original image is read from the image input unit 61. In step S25, the read macroblock is sent to the compression unit 63 based on the codebook method, where spatial direction vector quantization processing is executed. Thereby, a code number string in the spatial direction is obtained as a compressed code.

次に、ステップS26で、コードブック方式による圧縮部63から出力されたコード番号と、以前の処理によって得られコード列記憶エリア69bに記憶されているコード番号で、現在のポインタ値で示されるコード番号との差分絶対値を計算する。そして、ステップS27で、上記計算された差分絶対値が、閾値記憶エリア69dに記憶されている閾値よりも大きかどうかを判断する。   Next, in step S26, the code indicated by the current pointer value using the code number output from the code book type compression unit 63 and the code number obtained by the previous processing and stored in the code string storage area 69b. Calculate the absolute value of the difference from the number. In step S27, it is determined whether the calculated difference absolute value is larger than the threshold value stored in the threshold value storage area 69d.

ここで、差分絶対値の方が大きい場合には、ステップS28で、上記コードブック方式による圧縮部63から出力されたコード番号と、そのときのポインタの値とを媒体67に出力した後、ステップS29で当該コード番号をコード列記憶エリア69bに記憶する。   Here, if the difference absolute value is larger, in step S28, the code number output from the compression unit 63 by the code book method and the value of the pointer at that time are output to the medium 67, and then the step In S29, the code number is stored in the code string storage area 69b.

一方、計算された差分絶対値が、閾値記憶エリア69dに記憶されている閾値よりも小さい場合には、ステップS28の処理を実行せずにステップS29に進み、コードブック方式圧縮部63から出力されたコード番号をコード列記憶エリア69bに記憶する。そして、ステップS30でポインタ・カウンタエリア69cのポインタをインクリメントし、ステップS31で1つの画像内の全てのマクロブロックについて処理が終了したかどうかを判断する。   On the other hand, if the calculated difference absolute value is smaller than the threshold value stored in the threshold value storage area 69d, the process proceeds to step S29 without executing the process of step S28, and is output from the codebook compression unit 63. The code number is stored in the code string storage area 69b. In step S30, the pointer in the pointer / counter area 69c is incremented. In step S31, it is determined whether or not the processing has been completed for all macroblocks in one image.

全てのマクロブロックについて処理が終了していない場合は、ステップS24に戻り、次のマクロブロックを1つ取り込んで同様の処理を行う。上述した処理は、画像入力部61から得られた画像中のすべてのマクロブロックを処理するまで続けられる。画像中のすべてのマクロブロックを処理し終わると、動画像1フレーム分に対する圧縮処理は全て終了する。以上の処理を各フレーム毎に順次繰り返すことにより、動画像の圧縮が実行される。   If the processing has not been completed for all the macroblocks, the process returns to step S24, and the same processing is performed by fetching one next macroblock. The above-described processing is continued until all the macroblocks in the image obtained from the image input unit 61 are processed. When all macroblocks in the image have been processed, all compression processing for one frame of moving image is completed. By repeating the above processing for each frame sequentially, compression of moving images is executed.

一方、伸長側においては、送られてきたコード番号に対応するコードベクトルをコードブック中から探し出し、それを各ブロック位置にはめ込んでいくという基本的な処理は、以上に述べた各実施形態と同様である。ただし、本実施形態においては、あるアドレスのブロックについてはコード番号が転送されてきていないので、そのようなブロックについては何らかの方法によって代わりのコードベクトルもしくはパターン画像を用意する必要がある。   On the other hand, on the decompression side, the basic process of finding a code vector corresponding to the sent code number from the code book and inserting it into each block position is the same as in each of the embodiments described above. It is. However, in this embodiment, since a code number has not been transferred for a block at a certain address, it is necessary to prepare an alternative code vector or pattern image by some method for such a block.

そのために、例えば、データ伸長システムの構成として、ある時刻tにおけるデコード処理によって再現されたフレーム画像を記憶しておくための再現画像記憶部を設ける。そして、時刻t+1における再現画像をデコード処理によって生成する際に、あるブロックについて圧縮側からコード番号が送られてきていない場合は、そのブロックの画像を上記再現画像記憶部に記憶されている前フレームの画像で代用するようにする。このように、コード番号が送られたブロックと送られていないブロックとを伸長側で識別するために、コード番号と共に送られてくるブロックのアドレスが利用される。   For this purpose, for example, as a configuration of the data decompression system, a reproduced image storage unit is provided for storing a frame image reproduced by a decoding process at a certain time t. When a reproduced image at time t + 1 is generated by decoding processing, if a code number is not sent from the compression side for a certain block, the image of that block is stored in the previous frame stored in the reproduced image storage unit. Use the image instead. In this way, in order to identify the block to which the code number has been sent and the block to which the code number has not been sent on the decompression side, the address of the block sent together with the code number is used.

以上のように、本実施形態では、複数フレームの画像のそれぞれに対して空間方向ベクトル量子化の処理を行い、それぞれのフレーム画像について空間方向コード番号列を生成する。そして、複数フレームの画像の同じアドレスどうしのコード番号について、フレーム間における変化量(差分絶対値)を求め、その変化量がある閾値以上となった場合のみそれを転送データとし、変化量が閾値より小さい場合には転送データとしないようにしている。   As described above, in the present embodiment, the spatial direction vector quantization process is performed on each of a plurality of frame images, and a spatial direction code number sequence is generated for each frame image. Then, for the code numbers of the same addresses in the images of a plurality of frames, a change amount (difference absolute value) between frames is obtained, and only when the change amount exceeds a certain threshold value, it is used as transfer data. If it is smaller, the data is not transferred.

つまり、複数フレームの画像を構成する各ブロックのうち、フレーム間でデータ値が大きく変化したところのデータだけを転送し、変化が少ないところのデータは転送せずに前フレームのデータを用いるようにする。これにより、動きの激しい部分のデータのみを転送することとなり、個々のフレーム内で空間方向ベクトル量子化した結果に加えて、フレーム方向(時間軸)に対してもデータを圧縮することができ、単なる空間方向ベクトル量子化だけでは得られなかった高い圧縮率を得ることができる。   In other words, among the blocks making up a multi-frame image, only the data whose data value has changed greatly between frames is transferred, and the data of the previous frame is used without transferring the data whose change is small. To do. As a result, only the data of the part where the motion is intense is transferred, and in addition to the result of the spatial direction vector quantization in each frame, the data can be compressed also in the frame direction (time axis), It is possible to obtain a high compression rate that could not be obtained only by simple spatial direction vector quantization.

(第9の実施形態)
以上の示した各実施形態は、モノクロ画像に対してもカラー画像に対しても同様に適用することができる。以下に述べる第9の実施形態は、特にカラー画像に対してベクトル量子化によるデータ圧縮を行う場合に、伸長側での再生画像の画質と圧縮率をより向上させることができるようにしたものである。
(Ninth embodiment)
Each of the embodiments described above can be similarly applied to a monochrome image and a color image. In the ninth embodiment described below, the image quality and compression rate of the reproduced image on the decompression side can be further improved, particularly when data compression by vector quantization is performed on a color image. is there.

図20は、本実施形態によるデータ圧縮システムの構成例を示すブロック図である。図20において、画像入力部71より入力されたカラーの原画像は、画像メモリ72に一旦蓄えられ、読み出し部73からのアドレス制御等により読み出されて出力される。画像メモリ72より読み出されたカラー画像は、Y,U,V信号分離部74に与えられる。   FIG. 20 is a block diagram illustrating a configuration example of the data compression system according to the present embodiment. In FIG. 20, the color original image input from the image input unit 71 is temporarily stored in the image memory 72, read out by the address control or the like from the reading unit 73, and output. The color image read from the image memory 72 is given to the Y, U, V signal separation unit 74.

このY,U,V信号分離部74は、原画像からY信号(輝度信号)とU信号およびV信号(色信号)をそれぞれ分離する。ブロック化部75は、上記Y,U,V信号分離部74により分離された各画像データを、例えば4×4画素単位のブロックに分割する。このときブロック化部75は、Y,U,Vのどの信号に対してブロック化を行っているかを信号種指定信号として空間方向用コードブック記憶部76に伝える。   The Y, U, V signal separation unit 74 separates the Y signal (luminance signal), the U signal, and the V signal (color signal) from the original image. The blocking unit 75 divides each image data separated by the Y, U, V signal separating unit 74 into blocks of 4 × 4 pixels, for example. At this time, the blocking unit 75 informs the spatial direction codebook storage unit 76 as a signal type designation signal which signal of Y, U, and V is being blocked.

相関度演算部77は、このようにして分離抽出したY信号、U信号、V信号のそれぞれに対して独立に、上述した類似度を算出する。そして、コード決定部78は、上記相関度演算部77による類似度の演算結果に基づいて、類似度の最も大きいコードベクトルに対応するコード番号をそのブロックの圧縮コード(Winner code)として出力する。   The correlation calculation unit 77 calculates the above-described similarity independently for each of the Y signal, U signal, and V signal that are separated and extracted in this way. The code determination unit 78 outputs the code number corresponding to the code vector having the highest similarity as the compressed code (Winner code) of the block based on the calculation result of the similarity by the correlation calculation unit 77.

このような空間方向ベクトル量子化の実行の際、相関度演算部77では、空間方向用コードブック記憶部76にあらかじめ記憶されているコードブックを用いてベクトル量子化を行うが、空間方向用コードブック記憶部76内のどのコードブックを利用するかは、上記信号種指定信号に応じて決められる。すなわち、空間方向用コードブック記憶部76には、Y信号用のコードブックと、U信号用のコードブックと、V信号用のコードブックとがあらかじめ多数記憶されており、それぞれの信号用のコードブックが、ブロック化部75から相関度演算部77に出力される信号種に合わせて順次利用される。   When performing such spatial direction vector quantization, the correlation degree calculation unit 77 performs vector quantization using a code book stored in advance in the spatial direction code book storage unit 76. Which code book in the book storage unit 76 is used is determined according to the signal type designation signal. That is, the space direction codebook storage unit 76 stores in advance a number of codebooks for Y signals, codebooks for U signals, and codebooks for V signals. The book is sequentially used in accordance with the signal type output from the blocking unit 75 to the correlation degree calculating unit 77.

このとき、本実施形態では、Y信号に対してUV信号よりも大きなコードブックを割り当てるようにする。例えば、Y信号用のコードブックを8192個のコードベクトル(13ビット)で構成し、UV信号用のコードブックをそれぞれ128個のコードベクトル(7ビット)で構成するようにする。ただし、Y,U,Vを合わせた全体のコードブックの大きさは、それぞれの信号用のコードブックを均等に割り当てた場合の全体の大きさと変わらないか、もしくはそれより小さくなるようにする。   At this time, in this embodiment, a codebook larger than the UV signal is assigned to the Y signal. For example, the code book for Y signal is composed of 8192 code vectors (13 bits), and the code book for UV signal is composed of 128 code vectors (7 bits). However, the size of the entire code book including Y, U, and V is set to be the same as or smaller than the overall size when the code books for the respective signals are allocated equally.

一般に、画質を決める最も重要な信号はY信号(輝度信号)であるため、それぞれの信号に対して割り当てるコードブック(コードベクトルのコード長)を、UV信号よりもY信号の方を大きくすることにより、全体的なコード長は変えずに再生画像の画質を向上させることができる。   In general, the most important signal that determines the image quality is the Y signal (luminance signal). Therefore, the code book (code length of the code vector) assigned to each signal should be larger for the Y signal than for the UV signal. As a result, the quality of the reproduced image can be improved without changing the overall code length.

すなわち、圧縮レートをY:U:V=1:1:1として圧縮を行った場合、Y信号に対してコードベクトルの数をUV信号より多く割り当てても、全体としてのコード長が変わっていないので、1枚の画像に対する圧縮率は変化しない。しかも、Y信号に対してのコードベクトルの数が多いので、画質にとってより重要度の大きいY信号に関して、より類似度の高いコードベクトルをベクトル量子化によって得ることができ、再生画像の画質は向上する。   That is, when compression is performed with a compression rate of Y: U: V = 1: 1: 1, the overall code length does not change even if the number of code vectors is assigned to the Y signal more than the UV signal. Therefore, the compression rate for one image does not change. In addition, since the number of code vectors for the Y signal is large, a code vector having a higher similarity can be obtained by vector quantization for the Y signal having a higher importance for the image quality, and the quality of the reproduced image is improved. To do.

なお、圧縮レートがY:U:V=1:1:1の場合に限らず、4:1:1や4:2:2の場合でも同様の効果を得ることができる。例えば、圧縮レートがY:U:V=4:1:1の場合は、Y信号の各ブロックに対して13ビットのコードを割り当てるのに対して、UV信号に対してはそれぞれ4つのブロックで7ビットのコードを割り当てることになる。しかし、人間の視覚特性として色の誤差に関しては比較的鈍感という性質があるので、このようにしても色再現性に関して特に問題はない。   The same effect can be obtained not only when the compression rate is Y: U: V = 1: 1: 1, but also when the compression rate is 4: 1: 1 or 4: 2: 2. For example, when the compression rate is Y: U: V = 4: 1: 1, a 13-bit code is assigned to each block of the Y signal, whereas four blocks are assigned to the UV signal. A 7-bit code is assigned. However, there is no particular problem with respect to color reproducibility even in this way because there is a relatively insensitive property regarding color errors as human visual characteristics.

また、以上の実施形態では、Y,U,V各信号の空間方向ベクトル量子化手段として1つの相関度演算部77を使い回すようにしているが、それぞれの信号用に空間方向ベクトル量子化手段を複数設け、各信号を並列に処理するようにしても良い。
また、以上の実施形態では、1つの空間方向用コードブック記憶部76の中にY,U,V各信号用のコードブックを記憶しているが、それぞれのコードブックを異なる記憶部に分けて記憶するようにしても良い。
In the above embodiment, one correlation degree calculation unit 77 is used as a spatial direction vector quantization unit for each of the Y, U, and V signals. However, the spatial direction vector quantization unit is used for each signal. A plurality of signals may be provided, and each signal may be processed in parallel.
In the above embodiment, the code book for Y, U, and V signals is stored in one spatial direction code book storage unit 76, but each code book is divided into different storage units. You may make it memorize.

(第10の実施形態)
次に、1枚の画像に対して空間方向ベクトル量子化を行う際に用いる空間方向用コードブックの作成方法について説明する。本実施形態では、従来から良く知られているKohonenの学習アルゴリズムを利用する。図21は、このKohonenの学習アルゴリズムの手順を示す図である。
(Tenth embodiment)
Next, a method of creating a spatial direction code book used when performing spatial direction vector quantization on one image will be described. In this embodiment, the well-known Kohonen learning algorithm is used. FIG. 21 is a diagram showing the procedure of this Kohonen learning algorithm.

この手法では、図21に示すように、学習の際に与える初期のコードブックを用意するとともに、学習に用いる1つのサンプル画像を用意する。学習の際は、このサンプル画像から例えば4×4画素単位の画像ブロックを順次入力し、コードブックを用いて空間方向ベクトル量子化の処理を行うことにより、入力した画像ブロックと最も似通ったコードベクトルを検出する。そして、この結果をもとにコードブックの内容を書き換える。   In this method, as shown in FIG. 21, an initial codebook to be given at the time of learning is prepared, and one sample image used for learning is prepared. In learning, a code vector that is most similar to the input image block is obtained by sequentially inputting, for example, 4 × 4 pixel unit image blocks from this sample image and performing spatial direction vector quantization using a code book. Is detected. Based on this result, the contents of the code book are rewritten.

コードブックの書き換えは、Kohonenの学習アルゴリズムを表す数式中の利得kおよび書き換えの範囲Ncを適当な値に決めて行う。このようなコードベクトルの検出および書き換え処理を所定の学習回数だけ繰り返すことにより、最適化されたコードブックを得る。本実施形態においては、このような学習を実施するに当たって、初期のコードブックとして様々なパターンのものを用いた。   The rewriting of the code book is performed by determining the gain k and the rewriting range Nc in the mathematical expression representing the Kohonen learning algorithm to appropriate values. By repeating such code vector detection and rewriting processing a predetermined number of times, an optimized code book is obtained. In the present embodiment, various patterns are used as the initial code book when performing such learning.

図22は、初期のコードブックとして、とり得る値の最小値から最大値まで輝度値が連続的に変化するパターン(a)と、輝度値がランダムに変化するパターン(b)と、輝度値が128(中間値)で一定のパターン(c)とを入力し、これらを用いてコードブックを最適化する。そして、それにより得られたコードブックを用いてベクトル量子化により画像を圧縮・伸長したときのPSNR(peak signal to noise ratio)特性の違いを示した図である。なお、(a)〜(c)中に示す小さい四角の1つ1つがコードベクトルを表している。この図22より、輝度値が連続的に変化するパターンを初期のコードブックとして入力した場合に、より良好な結果が得られていることが分かる。   FIG. 22 shows, as an initial codebook, a pattern (a) in which luminance values continuously change from a minimum value to a maximum value of possible values, a pattern (b) in which luminance values change randomly, and luminance values A constant pattern (c) is input at 128 (intermediate value), and the codebook is optimized using these. And it is the figure which showed the difference of the PSNR (peak signal to noise ratio) characteristic when an image is compressed and expanded by vector quantization using the codebook obtained thereby. Each of the small squares shown in (a) to (c) represents a code vector. From FIG. 22, it can be seen that a better result is obtained when a pattern whose luminance value continuously changes is input as an initial codebook.

また、図23は、(a)のようにマップ上(仮想の2次元平面)において1回の学習で書き換えを行う範囲を1次元的に適用し、更新回数の増加とともに書き換え範囲を減少させていく方法と、(b)のように書き換えを行う範囲を2次元的に適用し、更新回数の増加とともに書き換え範囲を減少させていく方法とでコードブックを作成し、更に画像を圧縮・伸長したときのPSNR特性の違いを示した図である。   In FIG. 23, the range in which rewriting is performed by one learning is applied one-dimensionally on the map (virtual two-dimensional plane) as shown in (a), and the rewriting range is decreased as the number of updates increases. The codebook was created with the method of going through and the method of reducing the rewrite range with increasing the number of updates by applying the rewriting range as shown in (b) two-dimensionally, and further compressing / decompressing the image It is the figure which showed the difference of the PSNR characteristic at the time.

なお、図23(a)および(b)に示す白丸および黒丸の1つ1つがコードベクトルのブロックを示しており、黒丸のブロックは現在のベクトル量子化の対象ブロックを示している。また、これらの白丸および黒丸を囲んだ四角の範囲が、コードブックの書き換え範囲を表している。また、矢印は書き換え範囲を減少させる方向を表している。この図23より、(a)の場合が(b)の場合よりも優れていることが分かる。   Each of the white circles and black circles shown in FIGS. 23A and 23B indicates a code vector block, and the black circle block indicates a current vector quantization target block. A square range surrounding these white circles and black circles represents a codebook rewrite range. Moreover, the arrow represents the direction which reduces the rewriting range. FIG. 23 shows that the case (a) is superior to the case (b).

また、図24は、Kohonenの学習式中の利得kの値を、コードブックの更新回数の増加にかかわらず初期値から減少させない場合と、更新回数の増加とともに初期値から減少させた場合とのPSNR特性の違いを示す図である。この図24より、利得kの値をコードブックの更新回数の増加とともに初期値から減少させていった場合の方が優れていることが分かる。   FIG. 24 shows the case where the value of gain k in Kohonen's learning equation is not decreased from the initial value regardless of the increase in the number of codebook updates, and the case where the value is decreased from the initial value as the number of updates is increased. It is a figure which shows the difference in a PSNR characteristic. From FIG. 24, it can be seen that the case where the value of the gain k is decreased from the initial value as the number of code book updates is increased is superior.

また、図25は、利得kの初期値として様々な値を与え、更新回数を例えば160000回としてコードブックを作成したときのPSNR特性の違いを示す図である。この図25より、利得kの初期値が0.3〜1の場合に優れた結果が得られることが分かる。   FIG. 25 is a diagram showing the difference in PSNR characteristics when various values are given as the initial value of the gain k and the codebook is created with the number of updates being 160000, for example. From FIG. 25, it can be seen that an excellent result is obtained when the initial value of the gain k is 0.3 to 1.

以上の図22〜図25に示される結果から、様々なパラメータの中から最も画質を向上させるパラメータの値を特定して学習を行うことにより、それにより生成したコードブックをデータ圧縮伸長システムに用いることで、再生画像の画質を向上させることができる。例えば、学習の際に与える初期のコードブックとして、とり得る値の最小値から最大値まで輝度値が連続的に変化するパターンを用いる。また、1回の学習で影響を与える範囲は1次元的に適用し、かつ更新回数の増加と共にその範囲を減少させていく。さらに、学習の際に与える利得係数kの初期値を0.3〜1の範囲の何れかの値とし、かつ更新回数の増加と共に係数値を減少させていくことによって、高精度なコードブックを得ることができ、これを用いて圧縮・伸長した再生画像の画質を向上させることができる。   From the results shown in FIGS. 22 to 25 described above, the value of the parameter that improves the image quality is identified from various parameters and learning is performed, and the codebook generated thereby is used in the data compression / decompression system. As a result, the quality of the reproduced image can be improved. For example, as an initial codebook given at the time of learning, a pattern in which the luminance value continuously changes from the minimum value to the maximum value that can be taken is used. In addition, the range affected by one learning is applied one-dimensionally, and the range is reduced as the number of updates increases. Furthermore, by setting the initial value of the gain coefficient k given during learning to any value within the range of 0.3 to 1, and decreasing the coefficient value as the number of updates increases, a highly accurate codebook can be obtained. This can be used to improve the quality of a reconstructed image that has been compressed and decompressed.

(第11の実施形態)
本実施形態は、学習により複数のコードブックを作成し、それらを合成して新しいコードブックを作成することにより、高精度なコードブックを得るようにしたものである。図26は、最適化で得られた3種類のコードブックA,B,Cの特徴を1つのコードブックA+B+Cにまとめる手法を示している。
(Eleventh embodiment)
In the present embodiment, a plurality of code books are created by learning, and a new code book is created by synthesizing them, thereby obtaining a highly accurate code book. FIG. 26 shows a method of combining the characteristics of the three types of code books A, B, and C obtained by optimization into one code book A + B + C.

図26において、コードブックA+B+Cのサイズ(コードベクトルの個数)は、A,B,C単独のコードブックサイズと同様に、例えば1024である。つまり、1つにまとめたコードブックA+B+Cの中に含まれるパターンは、個々のコードブックA,B,Cに含まれるパターンをそれぞれ適当に間引いて合成したものである。   In FIG. 26, the size of the code book A + B + C (the number of code vectors) is, for example, 1024 like the code book sizes of A, B, and C alone. That is, the patterns included in the combined code book A + B + C are synthesized by appropriately thinning out the patterns included in the individual code books A, B, and C, respectively.

ここでは、Kohonenの自己組織化マップで得られたコードブックは、似たようなパターンがマップ上に近接して存在するため、この特性を生かして各コードブックA,B,Cのマップ上の左上から順番に1つおきにそのままパターンを取り出し、これを新しいコードブックA+B+Cとして再構成している。これにより、それぞれのコードブックA,B,Cの特徴を残したコードブックA+B+Cが新たに生成される。   Here, the codebook obtained from Kohonen's self-organizing map has similar patterns close to each other on the map, so this characteristic is utilized to make the codebook A, B, C on the map. Every other pattern is taken out in order from the upper left, and this is reconstructed as a new codebook A + B + C. As a result, a code book A + B + C that retains the characteristics of the respective code books A, B, and C is newly generated.

図27は、図26に示したA,B,C,A+B+Cそれぞれのコードブックを用いて画像A′,B′,C′に対してベクトル量子化を行った後、それを復元した画像のPSNR特性を示す図である。なお、画像A′,B′,C′は、それぞれ単独のコードブックA,B,Cを作成する際に用いたサンプル画像であるものとする。   FIG. 27 shows the PSNR of an image obtained by performing vector quantization on images A ′, B ′, and C ′ using the codebooks A, B, C, and A + B + C shown in FIG. It is a figure which shows a characteristic. It is assumed that the images A ′, B ′, and C ′ are sample images used when creating the individual codebooks A, B, and C, respectively.

図27から分かるように、単独のコードブックA,B,Cは、それぞれを作成する際に用いたサンプル画像A′,B′,C′に対しては概ね良好な結果を示すが、他の種類の画像に対しては良好な結果は得られていない。例えば、コードブックAを用いた場合、サンプル画像A′に対しては良好な結果が得られるが、他の画像B′,C′に対しては良好な結果は得られない。   As can be seen from FIG. 27, the single codebooks A, B, and C show generally good results for the sample images A ′, B ′, and C ′ used to create the respective codebooks. Good results have not been obtained for different types of images. For example, when the code book A is used, good results can be obtained for the sample image A ′, but good results cannot be obtained for the other images B ′ and C ′.

これに対して、合成したコードブックA+B+Cを用いた場合のPSNR特性は、全ての画像A′,B′,C′について、単独のコードブックA,B,Cを用いた場合の特性と匹敵しており、かつ全ての特性を兼ね備えたものとなっている。このように、特徴的な画像をいくつか組み合わせてコードブックを作成することで、様々な画像に対して耐性を有するコードブックを作成することができる。例えば、人の顔、風景、文字などの画像を用いてそれぞれのコードブックを作成し、それらを合成することにより、コードブックメモリのサイズを大きくすることなく汎用的なコードブックを作成することができる。   On the other hand, the PSNR characteristics when the synthesized code book A + B + C is used are comparable to the characteristics when the single code books A, B, and C are used for all the images A ′, B ′, and C ′. And has all the characteristics. In this way, by creating a code book by combining several characteristic images, it is possible to create a code book having resistance to various images. For example, it is possible to create a general code book without increasing the size of the code book memory by creating each code book using images of human faces, landscapes, characters, etc. and combining them it can.

なお、上記実施形態では、同じサイズの3種類のコードブックを1つにまとめる手法を示したが、3種類に限定されるものではなく、2種類あるいは3種類以上のコードブックをまとめて1つに合成することもできる。また、サイズの異なる複数のコードブックをまとめて1つに合成するようにすることもできる。   In the above embodiment, a method of combining three types of codebooks of the same size into one is shown. However, the method is not limited to three types, and two or more types of codebooks are combined into one. It can also be synthesized. It is also possible to combine a plurality of codebooks having different sizes into one.

(第12の実施形態)
ベクトル量子化によりコードブックの中から最も似通ったコードベクトルを選び出すためには、膨大な演算量が必要である。そのため、ベクトル量子化の専用ハードウェアを設計する場合、高速に演算を行うためには通常は膨大なハードウェア面積を必要とすることになる。以下に述べる実施形態は、ハードウェア規模を大きくすることなく演算を高速に行えるようにしたものである。
(Twelfth embodiment)
In order to select the most similar code vector from the code book by vector quantization, a huge amount of calculation is required. For this reason, when designing dedicated hardware for vector quantization, an enormous hardware area is usually required to perform high-speed computation. In the embodiment described below, computation can be performed at high speed without increasing the hardware scale.

図28は、2つの入力ベクトルが類似しているか否かを数値化した類似度を求める関数としてマンハッタン距離を利用し、また、画像の特徴量としてベクトルデータの要素の総和を利用した場合のベクトル量子化装置の構成と、演算が省略される様子とを説明するための図である。なお、類似度としてマンハッタン距離を用いた場合、距離が小さいほうが類似度は大きい。   FIG. 28 shows a vector in the case where Manhattan distance is used as a function for obtaining a degree of similarity obtained by quantifying whether or not two input vectors are similar, and the sum of elements of vector data is used as an image feature amount. It is a figure for demonstrating the structure of a quantization apparatus, and a mode that a calculation is abbreviate | omitted. When the Manhattan distance is used as the similarity, the similarity is larger as the distance is smaller.

最初に、演算が省略できる原理を説明する。
ベクトルデータの次元数(要素数)をn、コードブック記憶部81内のテンプレートベクトル(コードベクトル)データの総数をkとする。このとき、
入力ベクトルデータ:I=(I1 ,I2 ,…,In
テンプレートベクトルデータ:Tm =(Tm1,Tm2,…Tmn
(m=1,2,…,k)
について、入力ベクトルデータIとテンプレートベクトルデータTm との類似度を、以下の式(1) で示すマンハッタン距離Mm で定義すると、入力ベクトルデータIに最も類似しているテンプレートベクトルデータTm を検索する操作とは、全てのマンハッタン距離Mm (m=1,2,…,k)の中で距離Mm が最も小さくなるmの値を探し出す操作に相当する。
First, the principle that the calculation can be omitted will be described.
The number of dimensions (number of elements) of the vector data is n, and the total number of template vector (code vector) data in the codebook storage unit 81 is k. At this time,
Input vector data: I = (I 1 , I 2 ,..., I n )
Template vector data: T m = (T m1 , T m2 ,... T mn )
(M = 1, 2,..., K)
If the similarity between the input vector data I and the template vector data T m is defined by the Manhattan distance M m expressed by the following equation (1), the template vector data T m most similar to the input vector data I is The search operation corresponds to an operation for searching for a value of m that minimizes the distance M m among all the Manhattan distances M m (m = 1, 2,..., K).

Figure 2005012823
Figure 2005012823

ここで、以下の式(2) に示すような、入力ベクトルデータIの要素の総和とテンプレートベクトルデータTm の要素の総和との差の絶対値Dm と、上記式(1) に示したマンハッタン距離Mm との間には、Dm ≦Mm という関係が成り立つことに注目すると、以下のような議論が成り立つ。 Here, as shown in the following equation (2), the absolute value D m of the difference between the sum of the elements of the input vector data I and the sum of the elements of the template vector data T m , and the above equation (1) Focusing on the fact that the relationship D m ≦ M m holds with the Manhattan distance M m , the following argument holds.

Figure 2005012823
Figure 2005012823

すなわち、コードブック記憶部81内にあるテンプレートベクトルデータTm と入力ベクトルデータIとのマンハッタン距離Mm が判明しているとする。このとき、コードブック記憶部81内にあって、上記テンプレートベクトルデータTm とは別な任意のテンプレートベクトルデータTo と入力ベクトルデータIとについて、各々のベクトルデータの要素の総和をとり、その総和どうしの差の絶対値Do を計算した結果、Do >Mm となっている場合を仮定する。 That is, it is assumed that the Manhattan distance M m between the template vector data T m and the input vector data I in the code book storage unit 81 is known. At this time, in the codebook storage unit 81, for the above template vector data T m input vector data and another any template vector data T o and I, taking the sum of the elements of each vector data, the It is assumed that the absolute value D o of the difference between the sums is calculated, and as a result, D o > M m .

この場合、上述のDm ≦Mm という関係により、常にMo >Mm が成り立つ。よって、テンプレートベクトルデータTo と入力ベクトルデータIとのマンハッタン距離Mo を計算せずとも、差分絶対値Do を計算するだけで、テンプレートベクトルデータTo はテンプレートベクトルデータTm に比べて入力ベクトルデータIに類似していないことが分かる。つまり、テンプレートベクトルデータTo を検索対象から除外できることになる。 In this case, M o > M m always holds due to the relationship of D m ≦ M m described above. Thus, without calculating the Manhattan distance M o of the template vector data T o and the input vector data I, only to calculate the absolute difference value D o, the template vector data T o is compared to the template vector data T m input It turns out that it is not similar to the vector data I. That is, the possible exclusion of the template vector data T o from the search.

以上だけを見ると、テンプレートベクトルデータTo について、マンハッタン距離Mo を計算しなくても、差分絶対値Do を計算する必要があるのならば、検索に関わる処理は減少していないように見える。しかし、差分絶対値Do の演算において、テンプレートベクトルデータTm の特徴量である要素の総和ΣTmi(式(2) 中の右辺第2項)は、あらかじめ計算して特徴量記憶部82に記憶しておくことができる。 Looking at more than just, for the template vector data T o, it is not necessary to calculate the Manhattan distance M o, if there is need to calculate the difference absolute value D o, the process involved in the search, as not decreased appear. However, in the calculation of the difference absolute value D o, (second term on the right side in the formula (2)) sum oT mi of a feature amount of the template vector data T m elements, the feature amount storage unit 82 in advance calculated You can remember it.

よって、差分絶対値Do の算出は、入力ベクトルデータIの特徴量の演算と、これと特徴量記憶部82内に記憶されている特徴量との差をとる演算を行うだけで済む。また、入力ベクトルデータIの特徴量の算出は、1つの入力ベクトルデータに対して1回の演算で済む。このため、差分絶対値Do の算出は、マンハッタン距離Mo の算出に比べて非常に少ない演算量で行うことができる。 Therefore, the calculation of the difference absolute value D o only needs performing calculation taking the difference of the calculation of the feature quantity of the input vector data I, between this and the feature amount feature quantity stored in the storage unit 82. Further, the calculation of the feature amount of the input vector data I can be performed once for one input vector data. Therefore, the calculation of the difference absolute value D o can be carried out in calculating the amount of very small compared to the calculation of the Manhattan distance M o.

なお、特徴量としてベクトルデータの要素の総和を用いることと、要素の平均値を用いることとは等価である。なぜならば、要素の平均値とは要素の総和を要素数で割っただけのものに過ぎないからである。   Note that using the sum of the elements of the vector data as the feature amount is equivalent to using the average value of the elements. This is because the average value of elements is only the sum of elements divided by the number of elements.

次に、図28を使って具体的に説明する。
図28において、入力ベクトルデータIおよびコードブック記憶部81内の複数のテンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…は、例として共に6次元のベクトルデータとなっているが、任意の次元でかまわない。特徴量記憶部82には、コードブック記憶部81内に記憶されている各テンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…の特徴量(例えば要素の総和)ΣT1 ,ΣT2 ,ΣT3 ,ΣT4 ,…が記憶されている。
Next, a specific description will be given with reference to FIG.
In FIG. 28, the input vector data I and the plurality of template vector data T 1 , T 2 , T 3 , T 4 ,... In the code book storage unit 81 are both 6-dimensional vector data as an example. It does not matter in any dimension. The feature amount storage unit 82 includes feature amounts (for example, sum of elements) ΣT 1 , ΣT 2 of the template vector data T 1 , T 2 , T 3 , T 4 ,... Stored in the code book storage unit 81. , ΣT 3 , ΣT 4 ,... Are stored.

図28中では、コードブック記憶部81内の各テンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…と、すぐ左側に位置する特徴量記憶部82内の各特徴量ΣT1 ,ΣT2 ,ΣT3 ,ΣT4 ,…とは対応している。つまり、テンプレートベクトルデータT1 の特徴量はΣT1 、テンプレートベクトルデータT2 の特徴量はΣT2 、以下同様となる。これらのコードブック記憶部81および特徴量記憶部82内のデータは、アドレスカウンタ88からのアドレスに従って順に読み出される。 In FIG. 28, the template vector data T 1 , T 2 , T 3 , T 4 ,... In the code book storage unit 81 and the feature amounts ΣT 1 , ΣT in the feature amount storage unit 82 located immediately on the left side. 2 , ΣT 3 , ΣT 4 ,... That is, the feature amount of the template vector data T 1 is ΣT 1 , the feature amount of the template vector data T 2 is ΣT 2 , and so on. The data in the code book storage unit 81 and the feature amount storage unit 82 are sequentially read according to the address from the address counter 88.

また、マンハッタン距離演算部83は、コードブック記憶部81から転送されたd2で示される各テンプレートベクトルデータTm と、d1で示される入力ベクトルデータIとのマンハッタン距離Mm (m=1〜k)を求め、d3で示されるマンハッタン距離データを出力する。また、最小マンハッタン距離記憶部84は、演算省略判定部87による更新制御に従って、今までに計算されたマンハッタン距離Mm のうち、最小の距離minMを記憶する。 In addition, the Manhattan distance calculation unit 83 receives the Manhattan distance M m (m = 1 to k) between the template vector data T m indicated by d2 transferred from the codebook storage unit 81 and the input vector data I indicated by d1. ) And Manhattan distance data indicated by d3 is output. Further, the minimum Manhattan distance storage unit 84 stores the minimum distance minM among the Manhattan distances M m calculated so far according to the update control by the calculation omission determination unit 87.

ある1つの入力ベクトルデータIについて全てのテンプレートベクトルデータTm との演算が終了したとき、この最小マンハッタン距離記憶部84に記憶されているものに対応するテンプレートベクトルデータが、入力ベクトルデータIに最も類似するデータである。そして、このように最も類似する(最も距離が短い)テンプレートベクトルデータのアドレスminAは、演算省略判定部87による更新制御に従って、アドレスカウンタ88から最小距離アドレス記憶部89に与えられて記憶されている。 When the calculation with all the template vector data T m for one input vector data I is completed, the template vector data corresponding to the one stored in the minimum Manhattan distance storage unit 84 is the most input vector data I. Similar data. Then, the address minA of the template vector data that is most similar (the shortest distance) is given from the address counter 88 to the minimum distance address storage unit 89 according to the update control by the calculation omission determination unit 87 and stored therein. .

そこで、ある1つの入力ベクトルデータIについて処理が終わったときに、この最小距離アドレス記憶部89に記憶されているアドレスが、当該ブロックのコード番号に相当することになる。なお、このコード番号は、1つの入力ベクトルデータIの処理が終わる毎に出力しても良いし、1枚の画像全体の処理が終わったときにまとめて出力するようにしても良い。   Therefore, when the process is completed for one piece of input vector data I, the address stored in the minimum distance address storage unit 89 corresponds to the code number of the block. This code number may be output every time processing of one input vector data I is completed, or may be output collectively when processing of one entire image is completed.

特徴量演算部85は、入力ベクトルデータIの各要素の総和を演算し、その結果を出力する。少なくとも同じ入力ベクトルデータIについて類似度を求める演算を行っている間は、ここで演算した特徴量は保存されている。特徴量差分演算部86は、上記特徴量演算部85で求められた入力ベクトルデータIの特徴量d4と、特徴量記憶部82から読み出されたテンプレートベクトルデータTm の特徴量d5との差分を演算し、出力する。 The feature quantity computing unit 85 computes the sum of each element of the input vector data I and outputs the result. During the calculation of the similarity for at least the same input vector data I, the feature values calculated here are stored. Feature quantity difference computing unit 86, a difference between the feature quantity d4 of the input vector data I obtained in the feature amount computing unit 85, a feature amount d5 template vector data T m read from the feature storage unit 82 Is calculated and output.

演算省略判定部87は、最小マンハッタン距離記憶部84より出力される、今までに分かっている最小のマンハッタン距離d6と、特徴量差分演算部86で演算された特徴量の差分d7とを利用して、テンプレートベクトルデータTm と入力ベクトルデータIのマンハッタン距離を演算する必要があるか否かを判別する。 The calculation omission determination unit 87 uses the minimum Manhattan distance d6 known so far output from the minimum Manhattan distance storage unit 84 and the feature amount difference d7 calculated by the feature amount difference calculation unit 86. Thus, it is determined whether or not it is necessary to calculate the Manhattan distance between the template vector data Tm and the input vector data I.

そして、その判別結果をマンハッタン距離演算部83に伝え、必要でない演算を省略するようにするとともに、最小マンハッタン距離記憶部84、アドレスカウンタ88および最小距離アドレス記憶部89に所定の制御信号を出力し、それぞれの内容の更新制御を行う。   Then, the determination result is transmitted to the Manhattan distance calculation unit 83 so that unnecessary calculations are omitted, and predetermined control signals are output to the minimum Manhattan distance storage unit 84, the address counter 88, and the minimum distance address storage unit 89. The update control of each content is performed.

アドレスカウンタ88の内容は、1回の処理が終わることに更新されるが、最小マンハッタン距離記憶部84および最小距離アドレス記憶部89の内容は、所定の条件を満たしたときのみ更新される。なお、テンプレートベクトルデータを読み出す前にアドレスカウンタ208の値をインクリメントすれば、マンハッタン距離演算部202への制御信号は必ずしも必要ではない。   The contents of the address counter 88 are updated when one process is completed, but the contents of the minimum Manhattan distance storage unit 84 and the minimum distance address storage unit 89 are updated only when a predetermined condition is satisfied. If the value of the address counter 208 is incremented before reading the template vector data, the control signal to the Manhattan distance calculation unit 202 is not necessarily required.

次に、上記のように構成したベクトル量子化装置のベクトル量子化の手順を示す。演算の省略の様子も同時に説明する。
1)まず、入力ベクトルデータIの特徴量を特徴量演算部85により演算し、その結果を保存する。この特徴量は、1つの入力ベクトルデータIに対して1度だけ演算すればよい。
Next, a vector quantization procedure of the vector quantization apparatus configured as described above will be described. The manner in which the calculation is omitted will also be described.
1) First, the feature amount of the input vector data I is calculated by the feature amount calculation unit 85, and the result is stored. This feature amount needs to be calculated only once for one input vector data I.

2)次に、入力ベクトルデータIと、コードブック記憶部81内の第1番目のテンプレートベクトルデータT1 とのマンハッタン距離M1 をマンハッタン距離演算部83によって演算する。この演算結果を以下の式(3) に示す。この段階ではマンハッタン距離はまだ1つしか演算していないので、現在までに見つかっている最小のマンハッタン距離minMは、M1 となる。したがって、このマンハッタン距離M1 を最小マンハッタン距離記憶部84に記憶する。 2) Next, the Manhattan distance calculation unit 83 calculates the Manhattan distance M 1 between the input vector data I and the first template vector data T 1 in the codebook storage unit 81. The calculation result is shown in the following formula (3). At this stage, since only one Manhattan distance has been calculated, the minimum Manhattan distance minM found so far is M 1 . Therefore, the Manhattan distance M 1 is stored in the minimum Manhattan distance storage unit 84.

Figure 2005012823
Figure 2005012823

3)次に、特徴量記憶部82内の第2番目のテンプレートベクトルデータT2 の特徴量ΣT2 と、特徴量演算部85に保存されている入力ベクトルデータIの特徴量(この例では265)との差の絶対値D2 を特徴量差分演算部86で求める。この演算結果を以下の式(4) に示す。 3) Next, the feature amount ΣT 2 of the second template vector data T 2 in the feature amount storage unit 82 and the feature amount of the input vector data I stored in the feature amount calculation unit 85 (265 in this example) The feature value difference calculation unit 86 obtains the absolute value D 2 of the difference between the feature value and the difference value. The calculation result is shown in the following equation (4).

Figure 2005012823
Figure 2005012823

4)さらに、手順3)で求めた特徴量の差の絶対値D2 と、現在までに見つかっている最小のマンハッタン距離minMとをもとに、第2番目のテンプレートベクトルデータT2 と入力ベクトルデータIとのマンハッタン距離M2 を演算する必要があるかどうかを、演算省略判定部87で判断する。今の場合、D2 <minM(=M1 )であるから、第2番目のテンプレートベクトルデータT2 と入力ベクトルデータIとのマンハッタン距離M2 の演算は省略できない。 4) Furthermore, the second template vector data T 2 and the input vector based on the absolute value D 2 of the feature amount difference obtained in step 3) and the minimum Manhattan distance minM found so far. The calculation omission determination unit 87 determines whether or not the Manhattan distance M 2 with the data I needs to be calculated. In this case, since D 2 <minM (= M 1 ), the calculation of the Manhattan distance M 2 between the second template vector data T 2 and the input vector data I cannot be omitted.

5)手順4)により、第2番目のテンプレートベクトルデータT2 と入力ベクトルデータIとのマンハッタン距離M2 の演算が必要と判定されたので、マンハッタン距離演算部83はこの演算を行う。この演算の結果は、M2 =22であるが、これは今までに見つかっている最小のマンハッタン距離minM(=M1 )よりも小さいので、minMの値をM2 に更新する。よって、minM=M2 となる。つまり、最小マンハッタン距離記憶部84には第2番目のテンプレートベクトルデータT2 に関するマンハッタン距離M2 が記憶される。 5) Since it is determined in step 4) that the Manhattan distance M 2 between the second template vector data T 2 and the input vector data I needs to be calculated, the Manhattan distance calculation unit 83 performs this calculation. The result of this calculation is M 2 = 22, which is smaller than the minimum Manhattan distance minM (= M 1 ) found so far, so the value of minM is updated to M 2 . Therefore, it is minM = M 2. That is, the minimum Manhattan distance storage unit 84 stores the Manhattan distance M 2 related to the second template vector data T 2 .

6)次に、特徴量記憶部82内の第3番目のテンプレートベクトルデータT3 の特徴量ΣT3 と、特徴量演算部85に保存されている入力ベクトルデータIの特徴量との差の絶対値D3 を特徴量差分演算部86で求める。この演算結果は、D3 =46である。 6) Next, the absolute difference between the feature amount ΣT 3 of the third template vector data T 3 in the feature amount storage unit 82 and the feature amount of the input vector data I stored in the feature amount calculation unit 85 The value D 3 is obtained by the feature amount difference calculation unit 86. The calculation result is D 3 = 46.

7)さらに、手順6)で求めた特徴量の差の絶対値D3 と、現在までに見つかっている最小のマンハッタン距離minMとをもとに、第3番目のテンプレートベクトルデータT3 と入力ベクトルデータIとのマンハッタン距離M3 を演算する必要があるかどうかを、演算省略判定部87で判断する。今の場合、D3 >minM(=M2 )であるから、第3番目のテンプレートベクトルデータT3 と入力ベクトルデータIとのマンハッタン距離M3 の演算は省略できる。 7) Furthermore, the third template vector data T 3 and the input vector based on the absolute value D 3 of the feature amount difference obtained in step 6) and the minimum Manhattan distance minM found so far. The calculation omission determination unit 87 determines whether or not the Manhattan distance M 3 with the data I needs to be calculated. In this case, since D 3 > minM (= M 2 ), the calculation of the Manhattan distance M 3 between the third template vector data T 3 and the input vector data I can be omitted.

8)手順7)により、第3番目のテンプレートベクトルデータT3 と入力ベクトルデータIとのマンハッタン距離M3 の演算は省略できると判明したので、この演算は省略する。そして、第4番目のテンプレートベクトルデータT4 の特徴量ΣT4 と入力ベクトルデータIの特徴量との差の絶対値D4 を特徴量差分演算部86で演算する。その演算結果は、D4 =157である。 8) Since it has been found that the calculation of the Manhattan distance M 3 between the third template vector data T 3 and the input vector data I can be omitted by the procedure 7), this calculation is omitted. Then, the feature value difference calculation unit 86 calculates the absolute value D 4 of the difference between the feature value ΣT 4 of the fourth template vector data T 4 and the feature value of the input vector data I. The calculation result is D 4 = 157.

9)手順8)で求めた特徴量の差の絶対値D4 と、現在までに見つかっている最小のマンハッタン距離minMとをもとに、第4番目のテンプレートベクトルデータT4 と入力ベクトルデータIとのマンハッタン距離M4 を演算する必要があるかどうかを、演算省略判定部87で判断する。今の場合、D4 >minM(=M2 )であるから、第4番目のテンプレートベクトルデータT4 と入力ベクトルデータIとのマンハッタン距離M4 の演算も省略できる。 9) The fourth template vector data T 4 and input vector data I based on the absolute value D 4 of the feature amount difference obtained in step 8) and the minimum Manhattan distance minM found so far. The calculation omission determination unit 87 determines whether or not the Manhattan distance M 4 needs to be calculated. In this case, since D 4 > minM (= M 2 ), the calculation of the Manhattan distance M 4 between the fourth template vector data T 4 and the input vector data I can be omitted.

10)以下、同様の処理をm=kとなるまで繰り返す。   10) Thereafter, the same processing is repeated until m = k.

図29は、上記した本実施形態のベクトル量子化処理の手順を示すフローチャートである。以下、このフローチャートについて説明する。
図29において、まず最初にステップS41で入力ベクトルデータIを入力する。そして、ステップS42で、その入力ベクトルデータIの要素の総和(特徴量)を演算し、その結果を保存する。
FIG. 29 is a flowchart showing the procedure of the vector quantization process of the present embodiment described above. Hereinafter, this flowchart will be described.
In FIG. 29, first, input vector data I is input in step S41. In step S42, the sum (feature amount) of the elements of the input vector data I is calculated, and the result is stored.

次に、ステップS43で、検索するテンプレートベクトルデータの番号(アドレス)をm=1、minA=1に初期化するとともに、現在までに見つかっている最小のマンハッタン距離minMの値を∞に初期化する。次に、ステップS44で、アドレスカウンタmの値がテンプレートベクトルデータの数kを越えたかどうかを判断し、越えていない場合はステップS45に進む。   Next, in step S43, the number (address) of the template vector data to be searched is initialized to m = 1 and minA = 1, and the value of the minimum Manhattan distance minM found so far is initialized to ∞. . Next, in step S44, it is determined whether or not the value of the address counter m exceeds the number k of template vector data. If not, the process proceeds to step S45.

ステップS45では、検索するテンプレートベクトルデータTm についてあらかじめ記憶されている特徴量と、演算の結果保存されている入力ベクトルデータIの特徴量との差の絶対値Dm を求める。そして、ステップS46で、その演算した差分絶対値Dm が、現在までに見つかっている最小のマンハッタン距離minMの値以上かどうかを判断する。 In step S45, the absolute value D m of the difference between the search and the feature quantity stored in advance for template vector data T m of a feature quantity of the input vector data I stored result of the operation. Then, in step S46, the calculated difference absolute value D m is, determines whether or value of the minimum Manhattan distance minM which have been found to date.

ここで、差分絶対値Dm が現在の最小マンハッタン距離minMの値以上の場合は、ステップS50でアドレスカウンタmの値をインクリメントした後、ステップS44の処理に戻る。一方、上記差分絶対値Dm が現在の最小マンハッタン距離minMより小さい場合は、ステップS47に進み、入力ベクトルデータIと、検索するテンプレートベクトルデータTm とのマンハッタン距離Mm を演算する。 Here, the difference absolute value D m is equal to or larger than the current value of the minimum Manhattan distance MinM, after incrementing the value of the address counter m in step S50, the process returns to step S44. On the other hand, the difference absolute value D m is if the current minimum Manhattan distance minM smaller, the process proceeds to step S47, calculates an input vector data I, the Manhattan distance M m of the template vector data T m looking.

そして、ステップS48で、演算したマンハッタン距離Mm が現在の最小マンハッタン距離minM以上であるかどうかを判断し、そうである場合はステップS50でアドレスカウンタmの値をインクリメントした後、ステップS44の処理に戻る。一方、演算したマンハッタン距離Mm が現在の最小マンハッタン距離minMより小さい場合は、ステップS49に進む。 Then, in step S48, the after the calculated Manhattan distance M m is determined whether a current minimum Manhattan distance minM above. If so, incrementing the value of the address counter m in step S50, processing in step S44 Return to. On the other hand, the calculated Manhattan distance M m is if the current minimum Manhattan distance minM smaller, the process proceeds to step S49.

ステップS49では、最小マンハッタン距離minMの値を上記演算したマンハッタン距離Mm に更新するとともに、探し出したテンプレートベクトルデータの番号(アドレス)を最小距離アドレス記憶部89に記録する。その後、ステップS50でアドレスカウンタmの値をインクリメントした後、ステップS44の処理に戻る。 At step S49, the value of the minimum Manhattan distance minM renews the Manhattan distance M m mentioned above calculation, records searched template vector data number (address) to the minimum distance address storage unit 89. Thereafter, after the value of the address counter m is incremented in step S50, the process returns to step S44.

以上の手順の中でも示した通り、図28に記載した構成のベクトル最子化装置を用いれば、入力ベクトルデータIに最も類似したテンプレートベクトルデータを検索する操作を行う際に、その検索に必要な類似度の演算を少なくすることができ、高速に演算を行うことができる。   As shown in the above procedure, when the vector resonating device having the configuration described in FIG. 28 is used, when performing an operation of searching for template vector data most similar to the input vector data I, it is necessary for the search. The calculation of the similarity can be reduced and the calculation can be performed at high speed.

なお、図28では、コードブック記憶部81内の各テンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…は任意の順で並んでいたが、特徴量の大きい順に並べておいても良い。テンプレートベクトルデータが特徴量順に並んでいる場合、テンプレートベクトルデータを検索する際、入力ベクトルデータIと特徴量が最も近いテンプレートベクトルデータから検索をすることが容易になる。特徴量が近い2つのベクトルデータは、類似度も大きい傾向があるので、入力ベクトルデータと特徴量が最も近いテンプレートベクトルデータから検索を行うことで、類似度の演算をより多く省略することができる。 In FIG. 28, the template vector data T 1 , T 2 , T 3 , T 4 ,... In the code book storage unit 81 are arranged in an arbitrary order. . When the template vector data is arranged in the order of the feature amount, when searching for the template vector data, it is easy to search from the template vector data having the closest feature amount to the input vector data I. Since two vector data having similar feature values tend to have a high degree of similarity, it is possible to omit the calculation of similarity more by performing a search from template vector data having the closest feature value to the input vector data. .

また、本実施形態では、ベクトル量子化装置が取り扱うベクトルデータの次元を6次元としたが、ベクトルデータの次元は任意で良い。
また、図28のベクトル量子化装置は、専用のハードウェアで実現することも可能であるし、コンピュータ上のプログラムによってソフトウェアで実現することもできる。ハードウェアで実現する場合、新たに設けた特徴量演算部85、特徴量差分演算部86および演算省略判定部87は、それ程大きなハードウェア面積を必要としない。
In this embodiment, the dimension of the vector data handled by the vector quantization apparatus is six dimensions, but the dimension of the vector data may be arbitrary.
In addition, the vector quantization apparatus in FIG. 28 can be realized by dedicated hardware, or can be realized by software by a program on a computer. When implemented by hardware, the newly provided feature value calculation unit 85, feature value difference calculation unit 86, and calculation omission determination unit 87 do not require such a large hardware area.

また、上記実施形態において、ベクトルデータの特徴量としては、ベクトルデータの要素の総和に限定されるものではない。例えば、ベクトルデータの分散を使いたい場合は、特徴量演算部85と演算省略判定部87とを分散演算用のものに変更すれば良い。また、類似度を求める関数をマンハッタン距離以外の関数、例えばユークリッド距離を求める関数等に変更したい場合は、マンハッタン距離演算部83と最小マンハッタン距離記憶部84と演算省略判定部87とを変更すれば良い。   In the above embodiment, the feature amount of the vector data is not limited to the sum of the elements of the vector data. For example, if it is desired to use the distribution of vector data, the feature amount calculation unit 85 and the calculation omission determination unit 87 may be changed to those for distributed calculation. If the function for determining the similarity is to be changed to a function other than the Manhattan distance, such as a function for determining the Euclidean distance, the Manhattan distance calculation unit 83, the minimum Manhattan distance storage unit 84, and the calculation omission determination unit 87 may be changed. good.

(第13の実施形態)
第13の実施形態では、上記第12の実施形態で示したベクトル量子化装置への入力として画像データを用い、上記実施形態のベクトル量子化装置を画像圧縮装置に応用した例を、図30および図31を使って説明する。まず、ベクトル量子化装置を使って画像圧縮を行う場合の一般的な例を図30により説明する。
(13th Embodiment)
In the thirteenth embodiment, an example in which image data is used as an input to the vector quantization apparatus shown in the twelfth embodiment and the vector quantization apparatus of the above embodiment is applied to an image compression apparatus is shown in FIG. This will be described with reference to FIG. First, a general example when image compression is performed using a vector quantization apparatus will be described with reference to FIG.

図30において、入力される原画像91は、画素と呼ばれる要素が多数集まって構成されている。個々の画素は輝度値、あるいは色差信号などの情報を持っている。入力画像91中から複数画素で構成されるブロックを取り出したのが、入力画像ブロック92である。図30の例では、入力画像ブロック92の大きさとして4×4画素を選んでいるが、この大きさは何であっても良い。   In FIG. 30, the input original image 91 is configured by a number of elements called pixels. Each pixel has information such as a luminance value or a color difference signal. An input image block 92 is obtained by extracting a block composed of a plurality of pixels from the input image 91. In the example of FIG. 30, 4 × 4 pixels are selected as the size of the input image block 92, but this size may be anything.

入力画像ブロック92は、上述の通り複数の画素を持っているから、各々の画素が持つ輝度値などを集めてベクトルデータとすることができる。これが図28で説明したベクトル量子化装置の入力ベクトルデータIである。   Since the input image block 92 has a plurality of pixels as described above, the luminance values and the like of each pixel can be collected and used as vector data. This is the input vector data I of the vector quantization apparatus described in FIG.

人間の視覚特性上、入力画像91中の幾つかの入力画像ブロックは、見た目では殆ど同じに見える場合がある。こういった同じに見える複数の入力画像ブロックを、より少ない数の画像ブロックで代表させることが可能である。画像ブロックコードブック93は、入力画像91上の多数の入力画像ブロックを代表する画像ブロック(テンプレートベクトルデータ)を複数持ったものである。テンプレートベクトルデータは、画像ブロックコードブック93内の画像ブロック各々の画素が持つ輝度をベクトルデータとしたものである。   Due to human visual characteristics, some input image blocks in the input image 91 may look almost the same. A plurality of input image blocks that look the same can be represented by a smaller number of image blocks. The image block code book 93 has a plurality of image blocks (template vector data) representing many input image blocks on the input image 91. The template vector data is obtained by using the luminance of each pixel of the image block in the image block codebook 93 as vector data.

ベクトル量子化装置では、入力画像91全体を画像ブロックとして分割し、各々の画像ブロック92を入力ベクトルデータとして、その入力ベクトルデータに類似するテンプレートベクトルデータをコードブック93内から検索する。そして、該当するテンプレートベクトルデータの番号のみを転送することで、画像を圧縮することが可能である。圧縮された画像を再生して再現画像94を得るには、上記転送された番号に対応するテンプレートベクトルデータをコードブック93から読み出し、画像に当てはめれば良い。   In the vector quantization apparatus, the entire input image 91 is divided as image blocks, each image block 92 is used as input vector data, and template vector data similar to the input vector data is searched from the code book 93. The image can be compressed by transferring only the number of the corresponding template vector data. In order to reproduce the compressed image and obtain the reproduced image 94, template vector data corresponding to the transferred number may be read from the code book 93 and applied to the image.

本実施形態において、入力画像91中から画像ブロック92で示される入力ベクトルデータを取り出してしまえば、類似度を求める関数としてマンハッタン距離を用い、特徴量としてベクトルデータの要素の総和を用いた場合、ベクトル量子化の手順は上述した第12の実施形態と全く同一である(ここではその詳細な手順の説明は省略する)。よって、入力ベクトルデータに類似するテンプレートベクトルデータを検索する際、検索にまつわる演算を少なくできるので、高速な画像の圧縮が可能となる。   In the present embodiment, if the input vector data indicated by the image block 92 is extracted from the input image 91, the Manhattan distance is used as a function for obtaining the similarity, and the sum of the elements of the vector data is used as the feature amount. The vector quantization procedure is exactly the same as that of the twelfth embodiment described above (the detailed procedure is omitted here). Therefore, when searching for template vector data similar to the input vector data, it is possible to reduce operations related to the search, and thus it is possible to compress an image at high speed.

以上のような方法によって画像データに対してベクトル量子化の操作を行ったときに、マンハッタン距離の演算をどれほど省略できるのかを示したのが、図31である。図31は、屋外風景写真、屋内風景写真、人物写真を入力画像としたときに、様々なテンプレートベクトルデータ群に対して、各々のテンプレートベクトルデータ群の中でマンハッタン距離を演算しなければならないテンプレートベクトルデータの割合を表している。   FIG. 31 shows how much the calculation of the Manhattan distance can be omitted when the vector quantization operation is performed on the image data by the above method. FIG. 31 shows a template in which the Manhattan distance must be calculated in each template vector data group for various template vector data groups when outdoor landscape photographs, indoor landscape photographs, and portrait photographs are used as input images. It represents the ratio of vector data.

この図31によると、テンプレートベクトルデータ群の中で、入力ベクトルデータとのマンハッタン距離を演算しなければならないテンプレートベクトルデータは、せいぜい14%以内となっていることが分かり、本実施形態の有用性が示されている。   According to FIG. 31, it can be seen that the template vector data for which the Manhattan distance from the input vector data must be calculated within the template vector data group is within 14% at most. It is shown.

なお、以上の例では画素の輝度値をベクトルデータとしたが、輝度値だけでなく、各画素が有する数値化された情報は何であれベクトルデータとすることができる。また、入力画像91中から入力画像ブロック92を取り出した後、離散余弦変換をはじめとする様々な変換をかけ、変換後の画像からベクトルデータを作ってベクトル量子化装置の入力としても良い。   In the above example, the luminance value of the pixel is vector data. However, not only the luminance value but also any digitized information of each pixel can be vector data. Alternatively, after the input image block 92 is extracted from the input image 91, various transformations such as discrete cosine transformation may be performed, and vector data may be created from the transformed image to be input to the vector quantization apparatus.

また、入力ベクトルデータが画像データの場合は、特徴量としてベクトルデータの要素の総和を用いても、画像データを周波数分解した際の直流成分を用いても、両者は等価である。何故ならば、上記直流成分は、ベクトルデータの要素の総和に対してある係数を掛けたものに過ぎないからである。   In addition, when the input vector data is image data, the sum of the elements of the vector data is used as the feature amount, or the DC component when the image data is frequency-decomposed is used. This is because the direct current component is simply the sum of the elements of vector data multiplied by a certain coefficient.

(第14の実施形態)
上記第12の実施形態で示したベクトル量子化装置への入力として画像データを用いた場合、ベクトルデータの特徴量として、画像特有の性質を使うことが可能である。本実施形態では、ベクトル量子化装置の入力を画像データとした場合の画像データ特有な特微量について説明し、幾つかの特徴量を組み合わせてベクトル量子化処理の演算量を減少させることが可能であることを以下に示す。
(Fourteenth embodiment)
When image data is used as an input to the vector quantization apparatus shown in the twelfth embodiment, it is possible to use image-specific properties as vector data feature quantities. In this embodiment, the characteristic amount specific to image data when the input of the vector quantization apparatus is image data will be described, and the amount of vector quantization processing can be reduced by combining several feature amounts. It is shown below.

まず、画像データに対して、類似度を演算する関数をマンハッタン距離とし、特徴量としてベクトル要素の総和を用いた場合の問題点を、図32を使って説明する。図32において、入力ベクトルデータに対応する画像ブロック101と、テンプレートベクトルデータに対応する画像ブロック102は、ほぼ同じブロックである。一方、入力ベクトルデータに対応する画像ブロック101と、もう一方のテンプレートベクトルデータに対応する画像ブロック103は、全く上下左右が反転したブロックとなっており、見た目では全く異なるものである。   First, with reference to FIG. 32, a problem in the case where the function for calculating the similarity with respect to image data is a Manhattan distance and the sum of vector elements is used as a feature amount will be described. In FIG. 32, an image block 101 corresponding to input vector data and an image block 102 corresponding to template vector data are substantially the same block. On the other hand, the image block 101 corresponding to the input vector data and the image block 103 corresponding to the other template vector data are completely inverted blocks, and are completely different in appearance.

実際に、入力画像ブロック101とテンプレート画像ブロック102,103との画素の輝度値を取り出して、それぞれをベクトルデータとしてマンハッタン距離を演算すると、テンプレート画像ブロック103は、もう一方のテンプレート画像ブロック102と比較して入力画像ブロック101と類似していないことが明らかになる。   Actually, when the luminance values of the pixels of the input image block 101 and the template image blocks 102 and 103 are extracted and the Manhattan distance is calculated using each as the vector data, the template image block 103 is compared with the other template image block 102. It becomes clear that the input image block 101 is not similar.

しかしながら、特徴量であるベクトルデータの要素の総和は、2つのテンプレート画像ブロック102と103とで等しい。このことは、特徴量としてベクトルデータの要素の総和を使っただけでは、無駄な類似度演算が多く残ることを意味している。   However, the total sum of the elements of the vector data, which is the feature amount, is equal between the two template image blocks 102 and 103. This means that a lot of useless similarity calculation remains only by using the sum of the elements of the vector data as the feature quantity.

この問題を解決するための手段としては、特徴量として、ベクトルデータの各要素の一部を画素の明暗が反転するように操作した後の各要素の総和を使うという手段が考えられる。   As a means for solving this problem, there can be considered a means of using the sum of each element after operating so that the brightness of the pixel is inverted for a part of each element of the vector data as the feature amount.

図33は、ベクトルデータの要素の一部の明暗を反転させた場合、画像ブロックがどのように変化するかを表している。初期の画像ブロック111に対して、3種類の反転パターン112〜114を用いて、黒で塗りつぶされた部分の画素が明暗反転するように操作した結果が、反転後画像ブロック115〜117である。このように、1つの画像に対して異なる反転パターン112〜114で明暗反転をすると、初期の画像ブロックが同じでも、反転後画像ブロック115〜117の画素の輝度値の総和118〜120は異なった値となる。   FIG. 33 shows how the image block changes when the brightness of some of the elements of the vector data is inverted. As a result of operating the initial image block 111 so that the pixels of the blacked out portion are brightly and darkly inverted using the three types of inversion patterns 112 to 114, the after-inversion image blocks 115 to 117 are obtained. As described above, when the light and dark inversion is performed with different inversion patterns 112 to 114 for one image, the sums 118 to 120 of the luminance values of the pixels of the after-inversion image blocks 115 to 117 are different even if the initial image block is the same. Value.

また、図34は、ベクトルデータの要素の総和が等しい場合でも、ベクトルデータの要素の一部を画素の明暗が反転するように操作してから、ベクトルデータの要素の総和を求めて特徴量とすると、特徴量に差が現れてくる例を示したものである。図34において、初期の画像ブロック121と122は、画素の輝度値の総和は全く同じである。よって、ベクトルデータの要素の総和、すなわち、ブロック内の画素の輝度値の総和を特徴量としても両者は全く区別できない。   In FIG. 34, even when the total sum of the elements of the vector data is equal, after operating a part of the elements of the vector data so that the brightness of the pixels is reversed, the sum of the elements of the vector data is obtained and the feature amount is obtained. Then, an example in which a difference appears in the feature amount is shown. In FIG. 34, the sum of the luminance values of the pixels in the initial image blocks 121 and 122 is exactly the same. Therefore, even if the sum of the elements of the vector data, that is, the sum of the luminance values of the pixels in the block is used as the feature amount, the two cannot be distinguished at all.

このような2つの初期画像ブロック121,122に対して、同じ反転パターン123の黒塗りの部分を明暗反転し、反転後の画像ブロック124,125について画素の輝度値の総和126,127を計算すると、両者は全く異なった値となる。   For such two initial image blocks 121 and 122, the black portions of the same inversion pattern 123 are brightly inverted, and the sums 126 and 127 of the luminance values of the pixels are calculated for the inverted image blocks 124 and 125. Both values are completely different.

本実施形態は、以上のことを利用して、無駄なマンハッタン距離の演算を更に減少させることができるようにしたものである。すなわち、以上の例からも分かるように、ある特徴量を使ったときには省略できない類似度の演算が、別の特徴量を使うと省略できる場合がある。この場合、異なる特徴量を2つ以上利用して演算量を更に減少させることができる。   In the present embodiment, by using the above, it is possible to further reduce the calculation of useless Manhattan distance. That is, as can be seen from the above example, the calculation of similarity that cannot be omitted when a certain feature value is used may be omitted when another feature value is used. In this case, the calculation amount can be further reduced by using two or more different feature amounts.

具体的には、ある特徴量でテンプレートベクトルデータの中から類似度を演算しなければならない範囲を絞り込み、別の特徴量で更に範囲を絞り込むという、2段階で特徴量を使う方法や、同時に2つの特徴量を使って、特徴量の差が大きい方を演算省略の判断に使う方法などが挙げられる。   Specifically, a method that uses a feature amount in two steps of narrowing down the range in which similarity must be calculated from template vector data with a certain feature amount and further narrowing down the range with another feature amount, For example, a method using one feature amount and using the one having a larger difference in feature amount for the determination of omitting the operation may be used.

なお、ある画像から入力画像ブロックを取り出してきてベクトル量子化装置の入力とする場合、上述の「ベクトルデータの要素の一部を画素の明暗が反転するように操作した後のベクトルデータの総和」の他にも、画像特有の特徴量がいくつか考えられる。以下では、画像ブロックの四隅の画素の情報を特徴量として使う方法と、画像ブロック上の画素値の変化の様子を特徴量として使う方法とを説明する。   In the case where an input image block is extracted from an image and used as an input to the vector quantization apparatus, the above-mentioned “summation of vector data after operation of a part of vector data elements so that the brightness of pixels is inverted” In addition to the above, there are some feature values specific to an image. In the following, a method of using information on pixels at the four corners of an image block as a feature value and a method of using a change in pixel value on the image block as a feature value will be described.

最初に、画像ブロックの四隅の画素の情報を特徴量として使う方法について説明する。画像ブロックを入力画像中から取り出してきた場合に、ブロック内で画素値がある方向に滑らかに変化する画像に対しては、画像ブロックの四隅から特徴量を得ることができる。図35は、画像ブロックの四隅を特徴量として使う方法を説明した図である。   First, a method of using information about pixels at the four corners of an image block as a feature amount will be described. When the image block is extracted from the input image, the feature amount can be obtained from the four corners of the image block for an image in which the pixel value smoothly changes in a certain direction in the block. FIG. 35 is a diagram illustrating a method of using the four corners of the image block as feature amounts.

図35(a)において、画像ブロック131は、ブロックの右下から左上方向に輝度が徐々に明るくなる変化をしている。この画像ブロック131から四隅133を取り出し、それらの4画素の輝度値を比較すると、画像ブロック131はどのような方向に輝度が変化しているのかを把握することができる。   In FIG. 35A, the image block 131 changes so that the luminance gradually increases from the lower right to the upper left of the block. By extracting the four corners 133 from the image block 131 and comparing the luminance values of these four pixels, the image block 131 can grasp in which direction the luminance changes.

また、画像ブロック132とその四隅134は、画素値の変化する方向が上記とは異なる場合の一例を示すものであり、画像ブロックの右辺から左辺方向に輝度が徐々に明るくなる変化を示している。なお、133および134中に示した矢印は、画素の輝度の大小関係を示すものであり、矢印の先にある画素の方が輝度が大きい。また、輝度の大小に差がない場合には、線分で表している。   Further, the image block 132 and its four corners 134 show an example in which the direction in which the pixel value changes is different from the above, and shows a change in luminance that gradually increases from the right side to the left side of the image block. . The arrows shown in 133 and 134 indicate the magnitude relationship of the luminance of the pixels, and the pixel at the tip of the arrow has a higher luminance. When there is no difference in brightness, it is represented by a line segment.

このように、画像ブロックの四隅の画素の間で輝度を大小比較し、大小を判別することで、画像ブロックの特徴を捉えることができる。四隅の画素の間での輝度の大小パターンは幾通りもあるので、それらのパターンを番号付けして特徴量とすることができる。すなわち、図35(b)に示すように、四隅の画素の間での輝度の大小の各パターンに対して番号を付与し、その番号を特徴量として本実施形態のベクトル量子化装置に組み込むことができる。   In this way, the features of the image block can be captured by comparing the brightness between the pixels at the four corners of the image block and determining the size. Since there are various patterns of brightness between the pixels at the four corners, these patterns can be numbered as feature amounts. That is, as shown in FIG. 35 (b), a number is assigned to each pattern of brightness between the pixels at the four corners, and the number is incorporated as a feature amount in the vector quantization apparatus of the present embodiment. Can do.

なお、図35では、画像ブロックの大きさを4×4画素としているが、この大きさは任意で良い。また、画素値として輝度値を用いているが、他の画素値(例えば色信号値)を用いても良い。   In FIG. 35, the size of the image block is 4 × 4 pixels, but this size may be arbitrary. Further, although the luminance value is used as the pixel value, other pixel values (for example, color signal values) may be used.

次に、画像ブロック上での画素値の変化を特微量として使う方法を説明する。入力画像中から画像ブロックを幾つか切り出してくると、それらの画像ブロックの中には、画素値の変化の様子が似ているものがある。図36は、画素値の変化の周期および変化率が同じである2つの画像ブロック141,142を示している。これらの画像ブロック141と142は何れも左右方向にのみ画素値が変化している。   Next, a method of using a change in pixel value on an image block as a feature amount will be described. When several image blocks are cut out from the input image, some of the image blocks have similar pixel value changes. FIG. 36 shows two image blocks 141 and 142 having the same pixel value change period and change rate. The pixel values of these image blocks 141 and 142 change only in the left-right direction.

画像ブロック141の左右方向の画素値の変化は、もう一方の画像ブロック142の左右方向の画素値の変化に所定の係数をかけて、変化の振幅を抑えたものに他ならない。このような状態を、画像ブロック141,142の画像ブロック上での画素値の変化のモードが同じであると言うことにする。   The change in the pixel value in the left-right direction of the image block 141 is nothing but the suppression of the amplitude of the change by multiplying the change in the pixel value in the left-right direction of the other image block 142 by a predetermined coefficient. Such a state is referred to as having the same pixel value change mode on the image blocks 141 and 142.

画像ブロック上での画素値の変化のモードは多数あるので、それらの変化のモードを番号付けすることにより特徴量とすることができる。すなわち、画素値の変化のモードに対してそれぞれ番号を付与し、その番号を特徴量として本実施形態のベクトル量子化装置に組み込むことができる。
なお、この図36でも画像ブロックの大きさを4×4画素としているが、この大きさは任意で良い。
Since there are a large number of pixel value change modes on the image block, it is possible to obtain a feature amount by numbering the change modes. That is, a number can be assigned to each pixel value change mode, and the number can be incorporated into the vector quantization apparatus of the present embodiment as a feature amount.
In FIG. 36, the size of the image block is 4 × 4 pixels, but this size may be arbitrary.

最後に、第1の特徴量として画像ブロック上での画素値の変化、つまり画像ブロック上での変化のモードを番号付けしたものを用いるとともに、第2の特徴量として画像ブロック上の画素の値の総和、つまりベクトルデータの要素の総和を用いた場合の、第14の実施形態に係るベクトル量子化装置の構成を、図37を用いて説明する。なお、図37において、図28に示したブロックと同じブロックには同一の符号を付している。また、ここでは類似度をマンハッタン距離によって求めている。また、図37中ではベクトルデータを、相当する画像ブロックとして視覚的に表現している。   Finally, a pixel value change on the image block, that is, a numbering mode of change on the image block is used as the first feature value, and a pixel value on the image block is used as the second feature value. The configuration of the vector quantization apparatus according to the fourteenth embodiment in the case of using the sum of the values, that is, the sum of the elements of the vector data will be described with reference to FIG. In FIG. 37, the same blocks as those shown in FIG. 28 are denoted by the same reference numerals. Here, the similarity is obtained from the Manhattan distance. In FIG. 37, the vector data is visually expressed as a corresponding image block.

入力ベクトルデータIは、第1の特徴量である画像ブロック上での画素値の変化モードによって分類される。すなわち、変化モード判定部151は、画素値の変化モードの典型的なベクトルデータを集めた特徴テンプレート記憶部152に記憶されているベクトルデータの情報をもとに、入力ベクトルデータIの第1の特徴量である画像ブロック上での画素値の変化モードが、テンプレートの何番に相当するものであるかを示すデータd8を出力する。   The input vector data I is classified according to the change mode of the pixel value on the image block which is the first feature amount. That is, the change mode determination unit 151 uses the first data of the input vector data I based on the vector data information stored in the feature template storage unit 152 that collects typical vector data of the pixel value change mode. Data d8 indicating what number of the template corresponds to the change mode of the pixel value on the image block as the feature amount is output.

テンプレートベクトルデータを記憶するコードブック記憶部81と、テンプレートベクトルデータの第2の特徴量であるベクトルデータの要素の総和を記憶する特徴量記憶部82の内部には、第1の特徴量の種類ごとにデータが並べられている。図37の例では、入力ベクトルデータIの第1の特徴量は"2"と判断されたので、コードブック記憶部81と特徴量記憶部82の中から、第1の特徴量が"2"となる部分153のみが選択され、残りの部分は検索対象外となる。   The codebook storage unit 81 that stores the template vector data and the feature amount storage unit 82 that stores the sum of the elements of the vector data that is the second feature amount of the template vector data include the type of the first feature amount. Data is arranged for each. In the example of FIG. 37, since the first feature amount of the input vector data I is determined to be “2”, the first feature amount is “2” from the code book storage unit 81 and the feature amount storage unit 82. Only the portion 153 is selected, and the remaining portion is excluded from the search target.

コードブック記憶部81および特徴量記憶部82の中で、以上のようにして第1の特徴量が"2"となる部分153に関してのみ、上記第12の実施形態と同様の手順でテンプレートベクトルデータの検索を行う。すなわち、入力ベクトルデータIの第2の特徴量を特徴量演算部85で演算し、その結果d4と、特徴量記憶部82内の特徴量d5とを用いて、特徴量差分演算部86ならびに演算省略判定部87により、コードブック記憶部81内の第1の特徴量が"2"となるテンプレートベクトルデータの中で、特にマンハッタン距離の演算が必要ないものを判断する。   In the code book storage unit 81 and the feature amount storage unit 82, only for the portion 153 in which the first feature amount is “2” as described above, the template vector data is processed in the same procedure as in the twelfth embodiment. Search for. That is, the second feature amount of the input vector data I is calculated by the feature amount calculation unit 85, and the feature amount difference calculation unit 86 and the calculation are performed using the result d4 and the feature amount d5 in the feature amount storage unit 82. The omission determination unit 87 determines, among template vector data in which the first feature value in the code book storage unit 81 is “2”, in particular, the calculation of the Manhattan distance is not necessary.

以上のように、第14の実施形態によれば、第12の実施形態で説明したように特徴量を単独で使う場合に比べて、より多くの演算を省略することができる。これは、第1の特徴量によってあらかじめ検索対象となるテンプレートベクトルデータを限定し、第2の特徴量で更に検索対象を絞り込むようにしているからである。これによって、特徴量を1つだけ使う場合に比べてより多くの演算の省略が可能となり、より高速に演算を行うことができる。   As described above, according to the fourteenth embodiment, more operations can be omitted as compared with the case where the feature amount is used alone as described in the twelfth embodiment. This is because the template vector data to be searched is limited in advance by the first feature quantity, and the search target is further narrowed down by the second feature quantity. As a result, more calculations can be omitted compared to the case where only one feature amount is used, and calculations can be performed at higher speed.

また、テンプレートベクトルデータは、第1の特徴量だけでなく、第2の特徴量の大きさ順によっても並べることで2次元的な配列にしておくことにより、入力ベクトルデータIと第2の特徴量が似たテンプレートベクトルデータから検索を始めることができるので、入力ベクトルデータIと類似するテンプレートベクトルデータをより効率的に検索することができる。
なお、図37では、画像ブロックの大きさとして4×4画素、つまりベクトルデータに直せば16次元のものを例に説明したが、この大きさは任意である。
Further, the template vector data is arranged in a two-dimensional array by arranging not only the first feature quantity but also the second feature quantity in order, so that the input vector data I and the second feature quantity are arranged. Since the search can be started from template vector data having similar amounts, template vector data similar to the input vector data I can be searched more efficiently.
In FIG. 37, the size of the image block is described as an example of 4 × 4 pixels, that is, 16-dimensional when converted to vector data. However, this size is arbitrary.

(第15の実施形態)
図38は、第15の実施形態に係るデータ圧縮伸長システムの構成例を示す図である。本実施形態では、ベクトル量子化を利用したデータ圧縮伸長システムにおいて、データ圧縮・伸長時に使用するコードブックを保持しておくためのシステムを独立に用意しておくものである。
(Fifteenth embodiment)
FIG. 38 is a diagram illustrating a configuration example of a data compression / decompression system according to the fifteenth embodiment. In this embodiment, in a data compression / decompression system using vector quantization, a system for holding a codebook used at the time of data compression / decompression is prepared independently.

図38において、コードブック方式圧縮システム161は、外部より入力された、あるいは蓄積されているデータをコードブック方式により圧縮する装置である。コードブックサーバシステム162は、コードブック蓄積装置171、コードブック管理装置172、コードブック登録装置173、コードブック生成装置174を備え、圧縮・伸張システムからのリクエストに応じてコードブックを転送する機能を持つ。   In FIG. 38, a codebook compression system 161 is a device that compresses data input or stored from the outside using a codebook method. The code book server system 162 includes a code book storage device 171, a code book management device 172, a code book registration device 173, and a code book generation device 174, and has a function of transferring a code book in response to a request from the compression / decompression system. Have.

コードブック方式圧縮システム161においてデータ圧縮の処理過程で使用するコードブックは、コードブックサーバ162よりネットワーク164を介して転送されたコードブック165を用いる。どのようなコードブックが必要であるかは、コードブックサーバ162に対するコードブック・リクエスト163をネットワーク164を介して送信する。   The code book 165 transferred from the code book server 162 via the network 164 is used as the code book used in the data compression process in the code book type compression system 161. A code book request 163 to the code book server 162 is transmitted via the network 164 to determine what code book is necessary.

コードブックサーバ162は、コードブック・リクエスト163に対する返答として、以下のような動作を実行する。すなわち、コードブック管理装置172が、リクエストされたものに合ったコードブックのデータをコードブック蓄積装置171に蓄積されたコードブックの中から探し出し、それをネットワーク164を介してコードブック方式圧縮システム161に送信する。なお、コードブック蓄積装置171には、コードブック登録装置173によって事前に幾つかのコードブックが登録され、蓄積されている。   The code book server 162 executes the following operation as a response to the code book request 163. That is, the code book management device 172 searches the code book data stored in the code book storage device 171 for the code book data suitable for the requested one, and searches the code book data compression system 161 via the network 164. Send to. In the code book storage device 171, several code books are registered and stored in advance by the code book registration device 173.

上記コードブック蓄積装置171内にリクエストされたものに合致するコードブックがない場合には、最も似通ったコードブックからリクエストに合ったコードブックをコードブック生成装置174が生成する。このとき、コードブック蓄積装置171に蓄積されているコードブックを基に生成しても良いし、全く新たに生成しても良い。   If there is no code book that matches the requested one in the code book storage device 171, the code book generating device 174 generates a code book that matches the request from the most similar code book. At this time, it may be generated based on the code book stored in the code book storage device 171 or may be generated completely.

以上のようにして転送されたコードブック165を用いて、コードブック方式圧縮システム161で生成された圧縮データは、ネットワーク166を介してコードブック方式伸長システム167に送信される。
コードブック方式伸長システム167においてデータ伸長の処理過程で使用するコードブックは、コードブックサーバ162より転送されたコードブック170を用いる。どのようなコードブックが必要であるかは、コードブックサーバ162に対するコードブック・リクエスト168をネットワーク169を介して送信する。
The compressed data generated by the codebook compression system 161 using the codebook 165 transferred as described above is transmitted to the codebook decompression system 167 via the network 166.
The code book 170 transferred from the code book server 162 is used as the code book used in the data expansion process in the code book type expansion system 167. A code book request 168 to the code book server 162 is transmitted via the network 169 to determine what code book is required.

コードブック方式伸長システム167がリクエストする内容は、コードブック方式圧縮システム161で生成されたリクエスト内容を圧縮データと共に受け取り、これを使用しても良い。また、コードブック方式伸長システム167が独自に生成したリクエスト内容であっても良く、圧縮と伸長とで異なるコードブックを使用しても差し支えない。   The contents requested by the code book type decompression system 167 may be the request contents generated by the code book type compression system 161 received together with the compressed data and used. Further, the request contents uniquely generated by the code book type decompression system 167 may be used, and different code books may be used for compression and decompression.

コードブックサーバ162は、コードブック・リクエスト168に対する返答として、以下のような動作を実行する。すなわち、コードブック管理装置172が、リクエストされたものに合ったコードブックのデータをコードブック蓄積装置171に蓄積されているコードブックの中から探し出し、それをネットワーク169を介してコードブック方式伸長システム167に送信する。   In response to the code book request 168, the code book server 162 executes the following operation. That is, the code book management device 172 searches the code book stored in the code book storage device 171 for the code book data that matches the requested one, and uses the code book storage system 171 to search for the code book data. To 167.

リクエストされたものに合致するコードブックがない場合には、最も似通ったコードブックからリクエストに合ったコードブックをコードブック生成装置174が生成する。このとき、コードブック蓄積装置171に蓄積されているコードブックを基に生成しても良いし、全く新たに生成しても良い。   If there is no code book that matches the requested code book, the code book generating device 174 generates a code book that matches the request from the most similar code book. At this time, it may be generated based on the code book stored in the code book storage device 171 or may be generated completely.

以上のように、本実施形態では、ベクトル量子化によるデータ圧縮・伸長時に使用するコードブックを保持しておくためのコードブックサーバ162を独立に用意しておく。さらに、このコードブックサーバ162と、データ圧縮システム161(データ送信側)と、データ伸長システム167(データ受信側)とを、それぞれ互いにアナログ電話回線、デジタル回線、インターネット専用線、通信回線等に代表されるネットワークを介して接続する。   As described above, in this embodiment, the code book server 162 for holding the code book used for data compression / decompression by vector quantization is prepared independently. Further, the code book server 162, the data compression system 161 (data transmission side), and the data decompression system 167 (data reception side) are represented by analog telephone lines, digital lines, dedicated Internet lines, communication lines, etc., respectively. Connected through a network.

そして、データ圧縮システム161、データ伸長システム167のそれぞれからコードブックの配信要求がコードブックサーバ162に与えられたときに、コードブックサーバ162がネットワークを介して瞬時にコードブックを送信するようにする。   When the code book distribution request is given to the code book server 162 from each of the data compression system 161 and the data decompression system 167, the code book server 162 transmits the code book instantaneously via the network. .

これにより、各データ圧縮・伸長システムがコードブックを保持する必要がなく、かつ、コードブックが更新された場合にはコードブックサーバ162のデータを更新するだけで良いので、非常に簡単なデータ転送システムを実現することができる。また、常に最新のコードブックをコードブックサーバ162から受け取ることができ、データの質を良好に保つことができる。   As a result, it is not necessary for each data compression / decompression system to hold a code book, and when the code book is updated, it is only necessary to update the data in the code book server 162, so that very simple data transfer is possible. A system can be realized. In addition, the latest code book can always be received from the code book server 162, and the data quality can be kept good.

(第16の実施形態)
第16の実施形態では、各フレーム毎にフレーム内でのベクトル量子化(空間方向ベクトル量子化)を行った後で、それにより得られたコード番号を並べ替えてフレーム間でのベクトル量子化(時間軸方向ベクトル量子化)を行う上述の実施形態を応用した例について、以下に述べる。
(Sixteenth embodiment)
In the sixteenth embodiment, after performing vector quantization (spatial direction vector quantization) for each frame, the code numbers obtained thereby are rearranged to perform vector quantization between frames ( An example in which the above-described embodiment for performing (time-axis direction vector quantization) is applied will be described below.

これまでに述べた第2〜第7の実施形態では、それぞれのフレームから空間方向ベクトル量子化後のコード番号を1つずつ抜き出してきて、それらをフレーム画像順に並べ替えることによって新たなベクトル(時間軸ベクトル)を生成していた。これに対して、第16の実施形態では、1枚のフレームから抜き出してくるコード番号は1つではなく、各フレームからそれぞれ複数のコード番号を抜き出してきて新たな時間軸ベクトルを生成するものである。   In the second to seventh embodiments described so far, code numbers after spatial direction vector quantization are extracted one by one from each frame, and rearranged in the order of frame images to generate a new vector (time Axis vector). On the other hand, in the sixteenth embodiment, the code number extracted from one frame is not one, but a plurality of code numbers are extracted from each frame to generate a new time axis vector. is there.

図39は、本実施形態に係る空間方向コード番号の並べ替え方を説明するためのデータフロー図である。図39に示すように、まず原画像のそれぞれのフレームに対して、4×4画素単位のマクロブロック毎に空間方向ベクトル量子化(SDVQ)の処理を行い、各マクロブロックを空間方向用コードベクトルに対応するコード番号で置き換える。図39の例では、あるフレームの右隅のマクロブロックがコード番号"30"に置き換えられ、その周りの3つのマクロブロックがコード番号"15"、"10"、"20"に置き換えられていることが示されている。   FIG. 39 is a data flow diagram for explaining how to rearrange the spatial code numbers according to the present embodiment. As shown in FIG. 39, first, spatial direction vector quantization (SDVQ) processing is performed for each macroblock of 4 × 4 pixel units for each frame of the original image, and each macroblock is converted to a spatial direction code vector. Replace with the code number corresponding to. In the example of FIG. 39, the macro block in the right corner of a certain frame is replaced with the code number “30”, and the three surrounding macro blocks are replaced with the code numbers “15”, “10”, and “20”. It has been shown.

このような空間方向ベクトル量子化の処理が各フレーム(図39の例では4つのフレーム)について行われると、空間方向用コードブックのコード番号で表現されたそれぞれのフレーム画像中から、同じアドレスが示すブロックのコード番号を2×2のブロック単位で4個ずつ取り出してきて、それらをフレーム画像順に並べ替える。これにより、時間軸方向に分散して存在する同アドレス4ブロック分の各コード番号を1つの時間軸ベクトルのデータ列、つまり時間軸方向ベクトル量子化(TDVQ)用の1つのマクロブロックとしてまとめて表現する。   When such spatial direction vector quantization processing is performed for each frame (four frames in the example of FIG. 39), the same address is obtained from each frame image represented by the code number of the spatial direction codebook. Four pieces of code numbers of the indicated blocks are extracted in units of 2 × 2 blocks and rearranged in the order of frame images. As a result, the code numbers for the four blocks with the same address distributed in the time axis direction are grouped as one time axis vector data string, that is, one macro block for time axis direction vector quantization (TDVQ). Express.

図40は、本実施形態による空間方向コード番号の再配列の仕方を上述した第2の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図であり、また図41および図42は、その場合のデータ圧縮伸長システムの構成例を示すブロック図である。なお、図40に関して、圧縮対象とするフレーム数が4フレームであること、およびコード番号の再配列の仕方が異なること以外は図11に示した第2の実施形態と同じなので、ここでは説明を省略する。   FIG. 40 is a data flow diagram showing the flow of data during compression when the method of rearranging the spatial direction code numbers according to this embodiment is applied to the second embodiment described above, and FIG. 41 and FIG. These are block diagrams which show the structural example of the data compression / decompression system in that case. 40 is the same as the second embodiment shown in FIG. 11 except that the number of frames to be compressed is 4 and the method of code number rearrangement is different. Omitted.

図41において、本実施形態のデータ圧縮システムでは、図9に示した第2の実施形態によるデータ圧縮システムに対して、空間方向コード再配列方法指定部181が更に追加されている。また、図42において、本実施形態のデータ伸長システムでは、図10に示した第2の実施形態によるデータ伸長システムに対して、空間方向コード再生方法指定部182が更に追加されている。   41, in the data compression system of the present embodiment, a spatial direction code rearrangement method designating unit 181 is further added to the data compression system according to the second embodiment shown in FIG. 42, in the data decompression system of the present embodiment, a spatial direction code reproduction method designating unit 182 is further added to the data decompression system according to the second embodiment shown in FIG.

空間方向コード再配列方法指定部181は、空間方向コード番号を再配列して新たな時間軸ベクトルを生成する際に、1枚のフレームから抜き出してくるコード番号を1個とするか、それとも各フレームからそれぞれ4個のコード番号を抜き出してくるかを指定するものである。言い換えれば、ベクトル量子化の一連の処理を図11の流れに従って行うか、それとも図40の流れに従って行うかを指定するものである。   The spatial direction code rearrangement method designating unit 181 sets one code number extracted from one frame when rearranging the spatial direction code numbers to generate a new time axis vector, This specifies whether to extract four code numbers from each frame. In other words, it designates whether a series of vector quantization processes is performed according to the flow of FIG. 11 or according to the flow of FIG.

また、空間方向コード再生方法指定部182は、これとは逆に、時間軸コード番号に対応するコードベクトルを時間軸コードブックから取り出す際に、1つの時間軸コード番号に対して1個のコードベクトルを取り出すか、それとも4個のコードベクトルを取り出すかを指定するものである。この指定は、空間方向コード再配列方法指定部181でどちらの再配列方法が指定されたかに応じて、対応する再生方法が指定される。   On the other hand, when the space direction code reproduction method designating unit 182 takes out the code vector corresponding to the time axis code number from the time axis code book, one code for one time axis code number is obtained. This specifies whether to extract a vector or four code vectors. This designation designates a corresponding reproduction method depending on which rearrangement method is designated by the spatial direction code rearrangement method designation unit 181.

図43および図44は、本実施形態による空間方向コード番号の再配列の仕方を上述した第3の実施形態および第4の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。これらの図43および図44に関して、圧縮対象とするフレーム数が5フレームであること、およびコード番号の再配列の仕方が異なること以外は、図12や図13に示した第3の実施形態および第4の実施形態と同じなので、ここでは説明を省略する。   43 and 44 are data flow diagrams showing the flow of data during compression when the method of rearranging the spatial direction code numbers according to this embodiment is applied to the third embodiment and the fourth embodiment described above. It is. 43 and 44, except that the number of frames to be compressed is 5 and the method of rearranging code numbers is different, the third embodiment shown in FIGS. 12 and 13 and Since it is the same as that of the fourth embodiment, the description is omitted here.

また、図45は、本実施形態による空間方向コード番号の再配列の仕方を上述した第7の実施形態に応用した場合のデータ圧縮システムの構成例を示すブロック図である。図45において、本実施形態のデータ圧縮システムでは、図15に示した第7の実施形態によるデータ圧縮システムに対して、空間方向コード再配列方法指定部181および空間方向DC成分再配列方法指定部183が更に追加されている。   FIG. 45 is a block diagram showing a configuration example of a data compression system when the method of rearranging the spatial direction code numbers according to the present embodiment is applied to the seventh embodiment described above. 45, in the data compression system of the present embodiment, compared to the data compression system according to the seventh embodiment shown in FIG. 15, a spatial direction code rearrangement method designating unit 181 and a spatial direction DC component rearrangement method designating unit. 183 is further added.

上記空間方向コード再配列方法指定部181は、上記図41に示したものと同じものである。また、空間方向DC成分再配列方法指定部183は、各ブロックの最小輝度値のみで表現された各フレームの画像に対して、同じアドレスが示すブロックのデータ値をフレーム画像順に再配列して新たな時間軸ベクトルを生成する際に、1枚のフレームから抜き出してくるDC成分を1個とするか、それとも各フレームからそれぞれ4個のDC成分を抜き出してくるかを指定するものである。   The spatial direction code rearrangement method designating unit 181 is the same as that shown in FIG. Further, the spatial direction DC component rearrangement method designating unit 183 rearranges the data values of the blocks indicated by the same address in the order of the frame images for the images of the respective frames expressed only by the minimum luminance values of the respective blocks. When generating a time axis vector, it is specified whether one DC component is extracted from one frame or four DC components are extracted from each frame.

以上のように、第16の実施形態では、空間方向コード番号やDC成分の再配列の仕方を指定した方法で行うように構成し、各フレームからそれぞれ複数のコード番号やDC成分を抜き出してきて新たな時間軸ベクトルを生成できるようにすることにより、ある程度空間方向にまとまったブロックを単位として時間軸ベクトル量子化を行うことができるので、高い圧縮率を維持しつつ再生画像の品質を更に向上させることができる。   As described above, in the sixteenth embodiment, the configuration is such that the spatial direction code numbers and the DC component rearrangement method are designated, and a plurality of code numbers and DC components are extracted from each frame. By making it possible to generate a new time axis vector, time axis vector quantization can be performed in units of blocks grouped in some spatial direction, further improving the quality of the playback image while maintaining a high compression ratio. Can be made.

なお、以上に示した例では、4フレームのそれぞれから空間方向コード番号を2×2のブロック単位で4個ずつ取り出して時間軸ベクトルの1つのマクロブロックとしたが、4フレームのそれぞれから3×3のブロック単位で9個ずつ取り出すようにしても良い。また、この他にも、空間方向コード番号のマクロブロックの取り方や圧縮対象のフレーム数を任意に設定することが可能である。   In the example shown above, four spatial direction code numbers are extracted from each of the four frames in units of 2 × 2 blocks to form one macroblock of the time axis vector. Nine blocks may be taken out in units of three blocks. In addition to this, it is possible to arbitrarily set a macroblock with a spatial code number and the number of frames to be compressed.

図46に、様々に設定した空間方向コード番号の再配列の方法と、そのときの圧縮率との関係を示す。これから分かるように、図46に示される表の下の方の設定ほど、高い圧縮率を達成できている。   FIG. 46 shows the relationship between variously set rearrangement methods of spatial direction code numbers and the compression rate at that time. As can be seen, the lower the table shown in FIG. 46, the higher the compression rate.

(第17の実施形態)
次に、本発明の第17の実施形態について説明する。第17の実施形態は、上述した第8の実施形態を更に改良したものである。
図47は、本実施形態によるデータ圧縮システムの構成例を示すブロック図であり、第8の実施形態である上記図17に示したブロックと同じブロックには同一の符号を付している。
(Seventeenth embodiment)
Next, a seventeenth embodiment of the present invention will be described. The seventeenth embodiment is a further improvement of the above-described eighth embodiment.
FIG. 47 is a block diagram showing a configuration example of the data compression system according to the present embodiment. The same blocks as those shown in FIG. 17 according to the eighth embodiment are denoted by the same reference numerals.

図47において、画像入力部61は、画像を連続して取り込む装置である。ここでは、例えば1画素がRGB各8ビットの階調を持った640×480画素の画像を、1秒間に30枚の割合で取り込む。画像処理部191は、上記画像入力部61から取り込まれたRGBの画像信号を、輝度信号(Y信号)と色信号(U信号、V信号)とから成る画像信号に変換する。このような処理を行うことにより、後のベクトル量子化でより効率的に情報量を削減できるようになる。なお、上記図17に示す第8の実施形態の説明では、このような処理については触れていないが、同様に行っても良い。   In FIG. 47, an image input unit 61 is a device that continuously captures images. Here, for example, an image of 640 × 480 pixels in which one pixel has RGB gradation of 8 bits each is captured at a rate of 30 sheets per second. The image processing unit 191 converts the RGB image signal captured from the image input unit 61 into an image signal composed of a luminance signal (Y signal) and a color signal (U signal, V signal). By performing such processing, the amount of information can be reduced more efficiently by subsequent vector quantization. In the description of the eighth embodiment shown in FIG. 17, such processing is not mentioned, but it may be performed in the same manner.

コードブック記憶部62には、例えば4×4画素のブロックで構成されたパターン画像(コードベクトル)が多数登録されていて、各々のブロックにはユニークなコード番号が割り当てられている。これらのコードベクトルは、例えば、後述する特徴量の大きさ順(例えば、アドレス0番が特徴量最小のコードベクトルで、以下昇順)に並べられている。   A large number of pattern images (code vectors) made up of, for example, 4 × 4 pixel blocks are registered in the code book storage unit 62, and a unique code number is assigned to each block. These code vectors are arranged, for example, in the order of feature amounts described later (for example, address 0 is the code vector with the smallest feature amount, and the ascending order hereinafter).

コードブック方式による圧縮部63は、画像処理部191で得られた画像の1枚1枚に対して、第8の実施形態で述べたような空間方向ベクトル量子化の処理を行う。すなわち、原画像中に含まれる各マクロブロックに対して、コードブック記憶部62に多数登録されているコードベクトルの中から最もパターンの似ているものを選び出し、それに対応するコード番号を出力する。640×480画素の画像を処理する場合、19200個のブロックが取り出されて処理されるので、出力されるコード番号も19200個である。   The code book type compression unit 63 performs the spatial direction vector quantization processing described in the eighth embodiment on each of the images obtained by the image processing unit 191. That is, for each macroblock included in the original image, the one with the most similar pattern is selected from among many code vectors registered in the codebook storage unit 62, and the corresponding code number is output. When an image of 640 × 480 pixels is processed, since 19200 blocks are extracted and processed, 19200 code numbers are output.

コード列記憶部64は、ある時刻tにおけるフレーム画像をコードブック方式による圧縮部63にて処理して出力されるコード番号列を記憶しておくためのものである。また、特徴量相関度演算部192は、コード列記憶部64に記憶されている上記ある時刻t(前フレーム)における画像のコード番号列に基づきコードブック記憶部62から読み出されたコードベクトルと、次の時刻t+1(現フレーム)の画像に対して空間方向ベクトル量子化を行った結果最もパターンが似ているとして選び出されたコードベクトルとの特徴量(例えば平均値など)を夫々計算し、同じアドレスが示すマクロブロックのコードベクトルの特徴量どうしでその相関を演算する。   The code string storage unit 64 is for storing a code number string output by processing a frame image at a certain time t by the compression unit 63 using the code book method. Further, the feature quantity correlation calculation unit 192 includes a code vector read from the code book storage unit 62 based on the code number sequence of the image at the certain time t (previous frame) stored in the code sequence storage unit 64, and Then, the feature amount (for example, average value) with the code vector selected as the most similar pattern as a result of performing spatial direction vector quantization on the image at the next time t + 1 (current frame) is calculated. The correlation between the feature quantities of the code vector of the macroblock indicated by the same address is calculated.

出力部66は、特徴量相関度演算部192から与えられる特徴量の相関値をもとに、媒体67(ネットワークなどの通信チャンネルまたは記録媒体)に出力するデータを決定する。すなわち、あるマクロブロックのアドレスについて求められた特徴量の相関値がある閾値より小さい場合は、そのアドレスとコードブック方式圧縮部63から供給される現フレームの対応するコード番号とを媒体67に出力する。一方、あるマクロブロックのアドレスについて求められた相関値がある閾値より大きい場合は、そのアドレスと対応するコード番号は媒体67に出力しない(何も出力しない)。この場合、伸長側では、第8の実施形態で述べたように、そのマクロブロックに関しては前フレームで再生された画像が代わりに利用されることとなる。   The output unit 66 determines data to be output to the medium 67 (communication channel or recording medium such as a network) based on the feature value correlation value given from the feature value correlation degree calculation unit 192. That is, when the correlation value of the feature value obtained for an address of a certain macroblock is smaller than a certain threshold value, the address and the code number corresponding to the current frame supplied from the codebook compression unit 63 are output to the medium 67. To do. On the other hand, if the correlation value obtained for an address of a certain macroblock is larger than a certain threshold value, the code number corresponding to that address is not output to the medium 67 (nothing is output). In this case, on the decompression side, as described in the eighth embodiment, for the macroblock, the image reproduced in the previous frame is used instead.

なお、ここでは、時間軸方向で同じ位置にある隣接フレーム間の各マクロブロックのうち、フレーム間の相関が小さいマクロブロックではそのアドレスとコード番号とを送信データとし、相関が大きいマクロブロックでは何も送らないようにしているが、送信データの形態はこのような例に限定されない。   Here, among the macroblocks between adjacent frames located at the same position in the time axis direction, the macroblock with a small correlation between frames uses the address and code number as transmission data, and the macroblock with a large correlation does not. However, the form of transmission data is not limited to such an example.

例えば、前フレームと比較して相関が小さいところには、先頭に"1"を立てるとともに、その後にコード番号を付けて送信する。一方、相関が大きいところは"0"のみを立てて送信するようにしても良い。このようにすることにより、伸長側では、各マクロブロック毎に送られてきた送信データの先頭の値が"1"か"0"かを見ることによって、コード番号が送られたブロックと送られていないブロックとを識別することができる。   For example, when the correlation is smaller than that of the previous frame, “1” is set at the head, and then a code number is added for transmission. On the other hand, when the correlation is large, only “0” may be set and transmitted. In this way, on the decompression side, by checking whether the leading value of the transmission data sent for each macroblock is “1” or “0”, the code number is sent to the block. It is possible to distinguish between blocks that are not.

また、前フレームと比較して相関が小さいところではコード番号のみを送信データとし、一方、相関が大きいところでは"0"のみを送信データとするようにしても良い。このようにすることにより、伸長側では、各マクロブロック毎に送られてきた送信データの先頭の値が"0"かそうでないかを見ることによって、コード番号が送られたブロックと送られていないブロックとを識別することができる。   Alternatively, only the code number may be used as transmission data when the correlation is small compared to the previous frame, while only “0” may be used as transmission data when the correlation is large. In this way, on the decompression side, by checking whether the leading value of the transmission data sent for each macroblock is “0” or not, it is sent as the block where the code number is sent. It can be distinguished from no blocks.

なお、上述した送信データ形式の3つのパターンの何れにおいても、相関の大きさに応じて作成した送信データに対して、更にハフマン符号化やランレングス符号化を施すようにしても良い。このようにすれば、更に情報量を圧縮することができる。   In any of the three patterns of the transmission data format described above, Huffman coding or run length coding may be further applied to transmission data created according to the magnitude of correlation. In this way, the amount of information can be further compressed.

以上のように、本実施形態では、複数フレームの画像に対してそれぞれ空間方向ベクトル量子化の処理を行う。そして、時間軸方向で同じ位置にある隣接フレームのマクロブロック間で、選び出されたコードベクトルの特徴量を比較し、相関が大きい場合には前フレームにて送られたコード番号を現フレームでもそのまま使うようにしたので、個々のフレーム内で空間方向ベクトル量子化した結果に加えて、フレーム方向(時間軸)に対してもデータを圧縮することができ、動画像データを静止画VQ圧縮より高い圧縮率で圧縮することができる。   As described above, in the present embodiment, spatial direction vector quantization processing is performed on each of a plurality of frames of images. Then, the feature values of the selected code vectors are compared between macroblocks of adjacent frames at the same position in the time axis direction, and if the correlation is large, the code number sent in the previous frame is also changed in the current frame. Since it is used as it is, in addition to the result of space direction vector quantization within each frame, it is possible to compress data in the frame direction (time axis), and moving image data can be compared with still image VQ compression. It is possible to compress at a high compression rate.

なお、本実施形態では、出力部66において特徴量相関値と比較する閾値を一定としているが、ある関数等に基づいてフレーム間で変化させるようにしても良い。このようにすることにより、例えば、動画像の動きの激しさ等に応じて閾値を可変とすることで、画像の動きに合わせてダイナミックに圧縮率を変えることができる。   In the present embodiment, the threshold value to be compared with the feature amount correlation value in the output unit 66 is constant, but it may be changed between frames based on a certain function or the like. By doing so, for example, the compression rate can be dynamically changed in accordance with the motion of the image by making the threshold variable according to the intensity of motion of the moving image.

また、上記実施形態では、コード列記憶部64に前フレームのコード列を記憶しているが、前フレームで選び出されたコードベクトルを記憶するようにしても良い。このようにすれば、特徴量相関度演算部192で現フレームのコードベクトルと比較する前フレームのコードベクトルを、当該記憶部から直接読み出すことができるようになる。   In the above embodiment, the code string of the previous frame is stored in the code string storage unit 64, but the code vector selected in the previous frame may be stored. In this way, the code vector of the previous frame to be compared with the code vector of the current frame by the feature amount correlation degree calculation unit 192 can be directly read from the storage unit.

また、上記実施形態では、比較すべきコードベクトルの特徴量を圧縮動作時に演算により求めているが、各コードベクトルと共にそれに対応する特徴量をコードブック記憶部62にあらかじめ記憶しておくようにしても良い。このようにすれば、圧縮動作時における特徴量の演算処理を省略することができ、データ圧縮の処理速度を高速化することができる。   In the above embodiment, the feature quantity of the code vector to be compared is obtained by calculation at the time of the compression operation. However, the feature quantity corresponding to each code vector is stored in the code book storage unit 62 in advance. Also good. In this way, the feature amount calculation process during the compression operation can be omitted, and the processing speed of data compression can be increased.

(第18の実施形態)
次に、本発明の第18の実施形態について説明する。第18の実施形態は、上述した第17の実施形態を更に改良したものである。
すなわち、上記第17の実施形態では、コードベクトルの特徴量の相関が大きい場合には前フレームのデータをそのまま用いるという性質上、時間の経過と共に再生画像に画質の劣化が起こってしまうことがある。例えば、或るマクロブロックにおいてコードベクトルの特徴量の相関値が閾値をぎりぎりで越えるような状態が数フレームに渡って続く場合には、画質の劣化は否めない。また、そのような状況を予測することも困難である。
(Eighteenth embodiment)
Next, an eighteenth embodiment of the present invention will be described. The eighteenth embodiment is a further improvement of the seventeenth embodiment described above.
That is, in the seventeenth embodiment, when the correlation between the feature quantities of the code vector is large, the quality of the reproduced image may be deteriorated over time due to the property that the data of the previous frame is used as it is. . For example, when a state in which a correlation value of a code vector feature amount exceeds a threshold value for a certain macro block continues for several frames, deterioration of image quality cannot be denied. It is also difficult to predict such a situation.

このような画質劣化を目立たなくするために、本実施形態では、図47に示したデータ圧縮システム中の出力部66に、特徴量の相関値に関わりなく現フレームのデータを送信するという「データ更新」の機能を更に持たせる。データ更新を行うか否か、あるいはフレーム中のどの部分を更新データとするか否かの判定は、特徴量相関度演算部192が行う。本実施形態におけるデータ更新の方法としては、例えば以下に述べるような3つの方法が考えられる。   In order to make such image quality deterioration inconspicuous, in this embodiment, “data” is transmitted to the output unit 66 in the data compression system shown in FIG. 47 regardless of the correlation value of the feature amount. The function of “update” is further provided. The feature amount correlation calculation unit 192 determines whether or not to update data or which part of the frame is used as update data. As a data update method in this embodiment, for example, the following three methods can be considered.

第1の方法は、例えば数フレームに1回の割合で、そのフレームについてコードブック方式圧縮部63により求められた全マクロブロックのコード列を、対応するコードベクトルの特徴量相関値が閾値より大きいか否かに関係なく、全て更新データとして媒体67に出力するようにする。あるフレームにおいて更新データを出力した後は、その更新データを新たなキーフレームとしてそこから再び空間方向および時間軸方向の圧縮が行われることになる。このようにすれば、前フレームのデータをそのまま用いるという状態が続いていたとしても、その状態を更新データの送信によって必ず断つことができ、時間経過に伴う画質の劣化を抑えることができる。   In the first method, for example, the code sequence of all macroblocks obtained by the codebook compression unit 63 for the frame at a rate of once every several frames, the feature value correlation value of the corresponding code vector is larger than the threshold value. Regardless of whether or not, all data is output to the medium 67 as update data. After the update data is output in a certain frame, the update data is used as a new key frame and the compression in the spatial direction and the time axis direction is performed again from there. In this way, even if the state of using the data of the previous frame as it is continues, the state can be surely cut off by the transmission of the update data, and the deterioration of the image quality over time can be suppressed.

ただし、上記第1の方法では、更新データを送信するフレームでは、コードブック方式圧縮部63により空間方向のベクトル量子化が行われるだけで、相関値の大きさに基づく時間軸方向の圧縮は行われないので、送信データ量は最大(普通に静止画圧縮をしたときの圧縮率)になってしまう。そこで、データ更新の第2の方法では、フレーム内の全データを更新データとするのではなく、所定のブロック単位でデータ更新を行うようにする。   However, in the first method, in the frame in which update data is transmitted, only the vector quantization in the spatial direction is performed by the codebook compression unit 63, and the compression in the time axis direction based on the magnitude of the correlation value is performed. Therefore, the amount of transmission data becomes the maximum (compression rate when ordinary still image compression is performed). Therefore, in the second method of data update, not all data in the frame is used as update data, but data is updated in units of predetermined blocks.

図48は、データ更新の第2の方法を説明するための図である。図48の(a)〜(d)はそれぞれ、或る時刻t〜t+3のフレームを示しており、フレーム中に示される小さい複数のブロックは、4×4画素のマクロブロックである。本実施形態では、例えば図48中に太線枠で示すように、複数のマクロブロック(図48の例では、縦2個×横3個)で構成される更に大きなブロック200を単位として、上述したようなデータ更新を行う。   FIG. 48 is a diagram for explaining a second method of data update. 48A to 48D show frames at certain times t to t + 3, respectively, and a plurality of small blocks shown in the frame are macroblocks of 4 × 4 pixels. In the present embodiment, for example, as indicated by a thick line frame in FIG. 48, the above description is made with a larger block 200 composed of a plurality of macro blocks (in the example of FIG. 48, 2 vertical × 3 horizontal) as a unit. Update data like this.

すなわち、図48(a)に示す時刻tにおけるフレームにおいては、フレームの左上のブロック200内では、コードブック方式圧縮部63より出力されたコード列を特徴量相関値の閾値処理によらず媒体67に出力する。一方、上記ブロック200以外の領域では、第17の実施形態で述べたのと同様に、特徴量相関度演算部192および出力部66によって特徴量相関値の閾値処理を行い、特徴量相関値が閾値より小さいマクロブロックについてのみコードを媒体67に出力する。   That is, in the frame at time t shown in FIG. 48A, in the block 200 at the upper left of the frame, the code string output from the codebook compression unit 63 is the medium 67 regardless of the threshold value processing of the feature amount correlation value. Output to. On the other hand, in the area other than the block 200, as described in the seventeenth embodiment, the feature amount correlation value threshold processing is performed by the feature amount correlation calculation unit 192 and the output unit 66, and the feature amount correlation value is The code is output to the medium 67 only for the macroblock smaller than the threshold value.

図48(b)に示す時刻t+1における次フレームにおいては、データ更新を行うブロック200の位置を水平方向に1ブロック分ずらす。そして、このようにずらしたブロック200内では、コードブック方式圧縮部63より出力されたコード列を特徴量相関値の閾値処理によらず媒体67に出力する。一方、ブロック200以外の領域では特徴量相関値の閾値処理を行い、特徴量相関値が閾値より小さいマクロブロックについてのみコードを媒体67に出力する。   In the next frame at time t + 1 shown in FIG. 48B, the position of the block 200 to be updated is shifted by one block in the horizontal direction. Then, in the block 200 shifted in this way, the code string output from the codebook compression unit 63 is output to the medium 67 regardless of the threshold processing of the feature amount correlation value. On the other hand, in the area other than the block 200, threshold processing of the feature amount correlation value is performed, and the code is output to the medium 67 only for the macroblock whose feature amount correlation value is smaller than the threshold value.

以下同様にして、図48(c)、(d)のようにブロック200の位置をずらしながら処理を進めていき、ブロック200の位置がフレームの右下までいったら、再び図48(a)の状態に戻って処理を繰り返す。   In the same manner, the process proceeds while shifting the position of the block 200 as shown in FIGS. 48C and 48D. When the position of the block 200 reaches the lower right of the frame, the process shown in FIG. Return to the state and repeat the process.

このように、複数のマクロブロックにより構成されるブロック200を単位として順次データ更新の処理を行うことにより、前フレームのデータをそのまま用い続けるという状態を、ブロック200を単位とした更新データの送信によって断つことができ、時間経過に伴う画質の劣化を抑えることができる。しかも、ブロック200以外の領域では、空間方向のベクトル量子化に加えて時間軸方向の圧縮も行われることから、高い圧縮率を確保することもできる。   In this way, the state in which the data of the previous frame is continuously used as it is by sequentially performing the data update process in units of the block 200 composed of a plurality of macroblocks is the transmission of update data in units of the block 200. The image quality can be prevented from being deteriorated over time. In addition, in the area other than the block 200, the compression in the time axis direction is performed in addition to the vector quantization in the spatial direction, so that a high compression rate can be ensured.

データ更新の第3の方法は、図49の太線枠に示すように、1フレーム中に離散して存在する複数のマクロブロック201についてデータ更新を行うようにし、このデータ更新を行う離散的な位置を時間と共に(フレームが進む毎に)変えていく方法である。上述した第2の方法では、データ更新を行うブロック200とそれ以外の領域との間で画質の差が目立つことも考えられるが、第3の方法によれば、このような差は目立たなくなるというメリットを有する。   In the third method of data update, as shown by the thick line frame in FIG. 49, data update is performed for a plurality of macroblocks 201 that are discretely present in one frame, and discrete positions where this data update is performed are performed. Is a method that changes with time (every frame advances). In the second method described above, a difference in image quality may be conspicuous between the block 200 where data is updated and other areas. However, according to the third method, such a difference is inconspicuous. Has merit.

なお、本実施形態の第2の方法および第3の方法では、データ更新を行うブロック200,201を毎フレームに設けているが、数フレームおきに設けるようにしても良い。
また、本実施形態では、第17の実施形態を改良したものとして説明したが、第8の実施形態に上述したデータ更新の処理を適用することも可能である。
In the second method and the third method of the present embodiment, the blocks 200 and 201 for updating data are provided in every frame, but may be provided every several frames.
Further, although the present embodiment has been described as an improvement of the seventeenth embodiment, it is also possible to apply the data update process described above to the eighth embodiment.

(その他の実施形態)
上記様々な実施形態に示した各機能ブロックおよび処理手順は、ハードウェアにより構成しても良いし、CPUあるいはMPU、ROMおよびRAM等からなるマイクロコンピュータシステムによって構成し、その動作をROMやRAMに格納された作業プログラムに従って実現するようにしても良い。また、上記各機能ブロックの機能を実現するように当該機能を実現するためのソフトウェアのプログラムをRAMに供給し、そのプログラムに従って上記各機能ブロックを動作させることによって実施したものも、本発明の範疇に含まれる。
(Other embodiments)
Each functional block and processing procedure shown in the above-described various embodiments may be configured by hardware, or configured by a microcomputer system including a CPU or MPU, ROM, RAM, and the like, and the operation is performed on the ROM and RAM. You may make it implement | achieve according to the stored work program. In addition, what is implemented by supplying a software program for realizing the function to the RAM so as to realize the function of the function block and operating the function block according to the program is also included in the scope of the present invention. include.

この場合、上記ソフトウェアのプログラム自体が上述した各実施形態の機能を実現することになり、そのプログラム自体、およびそのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、上記ROMやRAMの他に、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−I、CD−R、CD−RW、DVD、zip、磁気テープ、あるいは不揮発性のメモリカード等を用いることができる。   In this case, the software program itself realizes the functions of the above-described embodiments, and the program itself and means for supplying the program to a computer, for example, a recording medium storing such a program are included in the present invention. Configure. As a recording medium for storing such a program, in addition to the ROM and RAM, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-I, CD-R, CD-RW, DVD, zip, A magnetic tape or a non-volatile memory card can be used.

また、コンピュータが供給されたプログラムを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等の共同して上述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。   Further, by executing the program supplied by the computer, not only the functions of the above-described embodiments are realized, but also the OS (operating system) or other application software in which the program is running on the computer. Needless to say, such a program is included in the embodiment of the present invention even when the functions of the above-described embodiment are realized.

さらに、供給されたプログラムがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。   Further, after the supplied program is stored in the memory provided in the function expansion board of the computer or the function expansion unit connected to the computer, the CPU or the like provided in the function expansion board or function expansion unit based on the instructions of the program Needless to say, the present invention includes the case where the functions of the above-described embodiment are realized by performing part or all of the actual processing.

以下に、本発明の態様例を示す。
(態様例1)
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するようにするブロックシフト手段を備えたことを特徴とするデータ圧縮装置。
(態様例2)
上記ベクトルを構成するブロックは、データ位置を1次元的に配列したラインブロックであることを特徴とする態様例1に記載のデータ圧縮装置。
(態様例3)
少なくとも1つ以上のデータを有するデータ列をベクトルとし、少なくとも1つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記コードブックの中から探し出したコードベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てるブロックシフト手段を備えたことを特徴とするデータ伸長装置。
(態様例4)
上記ベクトルを構成するブロックは、データ位置を1次元的に配列したラインブロックであることを特徴とする態様例3に記載のデータ伸長装置。
上記態様例1〜4によれば、圧縮時にベクトル量子化を行う際に使用するベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するか、もしくは、伸長時にコードブックの中から探し出したコードベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てるようにしたので、例えば圧縮対象として画像データを用いた場合、再生画像上において各ブロック境界の連続性を断ってブロック境界(量子化誤差)を目立ちにくくすることができる。これにより、圧縮率を保ったまま質の高い再生画像を得ることができる。
(態様例5)
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、データ圧縮時には、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するとともに、データ伸長時には、上記コードブックの中から上記コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ圧縮伸長システムにおいて、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記データ圧縮時において、上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するようにする第1のブロックシフト手段と、
上記データ伸長時において、上記コードブックの中から探し出したコードベクトルのブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てる第2のブロックシフト手段との少なくとも何れかを備えたことを特徴とするデータ圧縮伸長システム。
(態様例6)
上記ベクトルを構成するブロックは、データ位置を1次元的に配列したラインブロックであることを特徴とする態様例5に記載のデータ圧縮伸長システム。
(態様例7)
上記第1のブロックシフト手段によるブロックシフトと、上記第2のブロックシフト手段によるブロックシフトとは、シフト量が同じで方向が互いに逆の関係にあることを特徴とする態様例5または態様例6に記載のデータ圧縮伸長システム。
(態様例8)
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するようにしたことを特徴とするデータ圧縮方法。
(態様例9)
上記ベクトルを構成するブロックは、データ位置を1次元的に配列したラインブロックであることを特徴とする態様例8に記載のデータ圧縮方法。
(態様例10)
少なくとも1つ以上のデータを有するデータ列をベクトルとし、少なくとも1つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記コードブックの中から探し出したコードベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして割り当てるようにしたことを特徴とするデータ伸長方法。
(態様例11)
上記ベクトルを構成するブロックは、データ位置を1次元的に配列したラインブロックであることを特徴とする態様例10に記載のデータ伸長方法。
(態様例12)
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、データ圧縮時には、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するとともに、データ伸長時には、上記コードブックの中から上記コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ圧縮伸長方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記データ圧縮時において、上記圧縮対象のベクトルを構成するブロックを、少なくとも垂直方向に近接するブロック間では空間的位置を水平方向にずらして圧縮対象より抽出するとともに、
上記データ伸長時において、上記コードブックの中から探し出したコードベクトルのブロックを、少なくとも垂直方向に近接するブロック間では、上記データ圧縮時とシフト量が同じで方向が互いに逆の関係となるように空間的位置を水平方向にずらして割り当てるようにしたことを特徴とするデータ圧縮伸長方法。
(態様例13)
上記ベクトルを構成するブロックは、データ位置を1次元的に配列したラインブロックであることを特徴とする態様例12に記載のデータ圧縮伸長方法。
Examples of embodiments of the present invention are shown below.
(Example 1)
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
Data compression comprising block shift means for extracting the blocks constituting the vector to be compressed from the object to be compressed by shifting the spatial position in the horizontal direction at least between blocks adjacent in the vertical direction apparatus.
(Example 2)
2. The data compression apparatus according to aspect 1, wherein the blocks constituting the vector are line blocks in which data positions are arranged one-dimensionally.
(Example 3)
A data string having at least one or more data is used as a vector, and a code vector corresponding to the compression code is searched from a code book having at least one or more code vectors and assigned to the corresponding block position. In a data decompression device that reproduces data,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
A data expansion apparatus comprising block shift means for allocating blocks constituting a code vector searched from the code book by shifting a spatial position in a horizontal direction at least between blocks adjacent in the vertical direction.
(Example 4)
4. The data decompression device according to aspect 3, wherein the blocks constituting the vector are line blocks in which data positions are arranged one-dimensionally.
According to the above first to fourth embodiments, blocks constituting a vector used for vector quantization at the time of compression are extracted from the compression target by shifting the spatial position in the horizontal direction at least between blocks adjacent in the vertical direction. Or, the blocks that make up the code vector found in the codebook at the time of decompression are allocated with the spatial position shifted in the horizontal direction at least between the blocks adjacent in the vertical direction. When image data is used, the block boundary (quantization error) can be made inconspicuous by cutting the continuity of each block boundary on the reproduced image. As a result, a high-quality reproduced image can be obtained while maintaining the compression rate.
(Example 5)
A data string having at least one or more data is blocked and converted into a vector. At the time of data compression, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and corresponding to it. In the data compression / decompression system for reproducing the original data by searching for a code vector corresponding to the code from the code book and assigning the code vector to the corresponding block position when outputting the code and at the time of data decompression,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
First block shift means for extracting the blocks constituting the vector to be compressed from the object to be compressed by shifting the spatial position in the horizontal direction at least between the blocks adjacent in the vertical direction at the time of the data compression; ,
At the time of the data expansion, at least one of the second block shift means for allocating the block of the code vector found in the code book by shifting the spatial position in the horizontal direction at least between blocks adjacent in the vertical direction A data compression / decompression system comprising:
(Example 6)
6. The data compression / decompression system according to example 5, wherein the block constituting the vector is a line block in which data positions are arranged one-dimensionally.
(Example 7)
Example 5 or Example 6 is characterized in that the block shift by the first block shift means and the block shift by the second block shift means have the same shift amount and the opposite directions. The data compression / decompression system described in 1.
(Example 8)
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
A data compression method characterized in that the blocks constituting the vector to be compressed are extracted from the object to be compressed by shifting the spatial position in the horizontal direction at least between blocks adjacent in the vertical direction.
(Example 9)
9. The data compression method according to aspect 8, wherein the blocks constituting the vector are line blocks in which data positions are arranged one-dimensionally.
(Example 10)
A data string having at least one or more data is used as a vector, and a code vector corresponding to the compression code is searched from a code book having at least one or more code vectors and assigned to the corresponding block position. In a data decompression method that reproduces data,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
A data decompression method characterized in that blocks constituting a code vector searched from the code book are assigned with a spatial position shifted in the horizontal direction at least between blocks adjacent in the vertical direction.
(Example 11)
11. The data decompression method according to example 10, wherein the blocks constituting the vector are line blocks in which data positions are arranged one-dimensionally.
(Example 12)
A data string having at least one or more data is blocked and converted into a vector. At the time of data compression, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and corresponding to it. In the data compression / decompression method for reproducing the original data by searching for a code vector corresponding to the code from the code book and assigning the code vector to the corresponding block position at the time of data decompression while outputting the code,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
At the time of the data compression, the blocks constituting the vector to be compressed are extracted from the object to be compressed by shifting the spatial position in the horizontal direction at least between the blocks adjacent in the vertical direction.
At the time of data decompression, the block of the code vector found in the code book is at least between the blocks close in the vertical direction so that the shift amount is the same as that at the time of data compression and the directions are opposite to each other. A data compression / decompression method characterized in that a spatial position is shifted and assigned in the horizontal direction.
(Example 13)
13. The data compression / decompression method according to example 12, wherein the block constituting the vector is a line block in which data positions are arranged one-dimensionally.

第1の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 1st Embodiment. 第1の実施形態によるデータ伸長装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data expansion | extension apparatus by 1st Embodiment. 第1の実施形態によるデータ圧縮装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data compression apparatus by 1st Embodiment. 第1の実施形態によるデータ伸長装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data expansion | extension apparatus by 1st Embodiment. ラインブロックをベクトルデータとして用いた第1の実施形態による特徴を説明するための図である。It is a figure for demonstrating the characteristic by 1st Embodiment using the line block as vector data. ラインブロックを貼り込む位置をずらした第1の実施形態による特徴を説明するための図である。It is a figure for demonstrating the characteristic by 1st Embodiment which shifted the position which pastes a line block. 640×480画素の1枚の画像を圧縮・伸長処理するために要する時間を示す図である。It is a figure which shows the time required in order to compress / decompress one image of 640x480 pixels. ベクトル量子化システム全体のデータの流れを説明するための図である。It is a figure for demonstrating the data flow of the whole vector quantization system. 第2〜第4の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 2nd-4th embodiment. 第2〜第4の実施形態によるデータ伸長装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data expansion | extension apparatus by 2nd-4th embodiment. 第2の実施形態による圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure showing a flow of data at the time of compression by a 2nd embodiment. 第3の実施形態による圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure showing a flow of data at the time of compression by a 3rd embodiment. 第4の実施形態による圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure showing a flow of data at the time of compression by a 4th embodiment. 第5の実施形態を説明するためのブロック図である。It is a block diagram for demonstrating 5th Embodiment. 第7の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 7th Embodiment. 第7の実施形態による圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure showing a flow of data at the time of compression by a 7th embodiment. 第8の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 8th Embodiment. 第8の実施形態によるデータ圧縮装置をソフトウェアにより実現する場合の構成を示すブロック図である。It is a block diagram which shows the structure in the case of implement | achieving the data compression apparatus by 8th Embodiment by software. 第8の実施形態によるデータ圧縮装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data compression apparatus by 8th Embodiment. 第9の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 9th Embodiment. 第10の実施形態によるコードブック作成方法を説明するための図である。It is a figure for demonstrating the code book creation method by 10th Embodiment. 第10の実施形態を示す図であり、初期のコードブックを様々に与えた場合のPSNR特性の違いを説明するための図である。It is a figure which shows 10th Embodiment and is a figure for demonstrating the difference in the PSNR characteristic at the time of giving an initial codebook variously. 第10の実施形態を示す図であり、書き換えパターンを様々に変えた場合のPSNR特性の違いを説明するための図である。It is a figure which shows 10th Embodiment and is a figure for demonstrating the difference in the PSNR characteristic at the time of changing a rewriting pattern variously. 第10の実施形態を示す図であり、利得の与えた方を様々に変えた場合のPSNR特性の違いを説明するための図である。It is a figure which shows 10th Embodiment and is a figure for demonstrating the difference of the PSNR characteristic at the time of changing the direction to which the gain was given variously. 第10の実施形態を示す図であり、利得の初期値を様々に与えた場合のPSNR特性の違いを説明するための図である。It is a figure which shows 10th Embodiment and is a figure for demonstrating the difference of the PSNR characteristic when the initial value of a gain is given variously. 第11の実施形態について説明するための図である。It is a figure for demonstrating 11th Embodiment. 第11の実施形態について説明するためのPSNR特性図である。It is a PSNR characteristic figure for demonstrating 11th Embodiment. 第12の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 12th Embodiment. 第12の実施形態によるデータ圧縮装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the data compression apparatus by 12th Embodiment. 第13の実施形態について説明するための図である。It is a figure for demonstrating 13th Embodiment. 第13の実施形態について説明するための特性図である。It is a characteristic view for demonstrating 13th Embodiment. 第14の実施形態について説明するための図である。It is a figure for demonstrating 14th Embodiment. 第14の実施形態について説明するための図である。It is a figure for demonstrating 14th Embodiment. 第14の実施形態について説明するための図である。It is a figure for demonstrating 14th Embodiment. 第14の実施形態について説明するための図である。It is a figure for demonstrating 14th Embodiment. 第14の実施形態について説明するための図である。It is a figure for demonstrating 14th Embodiment. 第14の実施形態によるデータ圧縮装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data compression apparatus by 14th Embodiment. 第15の実施形態によるデータ圧縮伸長システムの構成を示すブロック図である。It is a block diagram which shows the structure of the data compression / decompression system by 15th Embodiment. 第16の実施形態による空間方向コード番号の並べ替え方を説明するためのデータフロー図である。It is a data flow figure for demonstrating how to rearrange the spatial direction code number by 16th Embodiment. 第16の実施形態による空間方向コード番号の再配列の仕方を第2の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure which shows the data flow at the time of compression at the time of applying the rearrangement method of the spatial direction code number by 16th Embodiment to 2nd Embodiment. 第16の実施形態によるデータ圧縮装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data compression apparatus by 16th Embodiment. 第16の実施形態によるデータ伸長装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data expansion | extension apparatus by 16th Embodiment. 第16の実施形態による空間方向コード番号の再配列の仕方を第3の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure which shows the flow of the data at the time of compression at the time of applying the rearrangement method of the spatial direction code number by 16th Embodiment to 3rd Embodiment. 第16の実施形態による空間方向コード番号の再配列の仕方を第4の実施形態に応用した場合の圧縮時のデータの流れを示すデータフロー図である。It is a data flow figure which shows the data flow at the time of compression at the time of applying the rearrangement method of the space direction code number by 16th Embodiment to 4th Embodiment. 第16の実施形態による空間方向コード番号の再配列の仕方を第7の実施形態に応用した場合のデータ圧縮装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data compression apparatus at the time of applying the method of rearrangement of the space direction code number by 16th Embodiment to 7th Embodiment. 空間方向コード番号の再配列の方法と圧縮率との関係を示す図である。It is a figure which shows the relationship between the rearrangement method of a space direction code number, and a compression rate. 第17の実施形態によるデータ圧縮システムの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the data compression system by 17th Embodiment. 第18の実施形態によるデータ更新処理の第2の方法を説明するための図である。It is a figure for demonstrating the 2nd method of the data update process by 18th Embodiment. 第18の実施形態によるデータ更新処理の第3の方法を説明するための図である。It is a figure for demonstrating the 3rd method of the data update process by 18th Embodiment.

符号の説明Explanation of symbols

1 画像入力部
2 画像メモリ
3 読み出し部
4 ブロック化部
11 再生画像生成部
12 ブロックシフト部
35 空間方向用コードブック記憶部
36 相関度演算部
37 演算モード指定部
38 コード決定部
39 空間方向コード再配列演算部
40 時間軸用コードブック記憶部
44 空間方向コード再生部
45 時間軸用コードブック記憶部
48 再生画像生成部
48a 時間軸シフト部
49 空間方向用コードブック記憶部
51 DC成分検出・除去部
52 演算モード指定部
53 空間方向用コードブック記憶部
54 空間方向DC成分再配列演算部
55 時間軸用コードブック記憶部
56 時間軸DC成分用コードブック記憶部
64 コード列記憶部
65 コード列比較部
66 出力部
74 Y,U,V信号分離部
75 ブロック化部
76 空間方向用コードブック記憶部
77 相関度演算部
78 コード決定部
81 コードブック記憶部
82 特徴量記憶部
83 マンハッタン距離演算部
84 最小マンハッタン距離記憶部
85 特徴量演算部
86 特徴量差分演算部
87 演算省略判定部
88 アドレスカウンタ
89 最小距離アドレス記憶部
151 変化モード判定部
152 特徴テンプレート記憶部
162 コードブックサーバシステム
171 コードブック蓄積装置
172 コードブック管理装置
174 コードブック生成装置
181 空間方向コード再配列方法指定部
182 空間方向コード再生方法指定部
183 空間方向DC成分再配列方法指定部
191 画像処理部
192 特徴量相関度演算部
200 複数の隣接マクロブロックを含むデータ更新ブロック
201 複数の離散マクロブロックを含むデータ更新ブロック
DESCRIPTION OF SYMBOLS 1 Image input part 2 Image memory 3 Reading part 4 Blocking part 11 Reproduction | regeneration image generation part 12 Block shift part 35 Spatial direction codebook memory | storage part 36 Correlation degree calculating part 37 Operation mode designation | designated part 38 Code determination part 39 Spatial direction code reproduction Array calculation unit 40 Time axis code book storage unit 44 Spatial direction code reproduction unit 45 Time axis code book storage unit 48 Playback image generation unit 48a Time axis shift unit 49 Spatial direction code book storage unit 51 DC component detection / removal unit 52 Calculation Mode Designation Unit 53 Spatial Direction Codebook Storage Unit 54 Spatial Directional DC Component Rearrangement Calculation Unit 55 Time Axis Codebook Storage Unit 56 Time Axis DC Component Codebook Storage Unit 64 Code String Storage Unit 65 Code String Comparison Unit 66 Output unit 74 Y, U, V signal separation unit 75 Blocking unit 76 Spatial direction Codebook storage section 77 Correlation degree calculation section 78 Code determination section 81 Codebook storage section 82 Feature quantity storage section 83 Manhattan distance calculation section 84 Minimum Manhattan distance calculation section 85 Feature quantity calculation section 86 Feature quantity difference calculation section 87 Calculation omission determination Unit 88 address counter 89 minimum distance address storage unit 151 change mode determination unit 152 feature template storage unit 162 codebook server system 171 codebook storage device 172 codebook management device 174 codebook generation device 181 spatial direction code rearrangement method designation unit 182 Spatial direction code reproduction method designating unit 183 Spatial direction DC component rearrangement method designating unit 191 Image processing unit 192 Feature amount correlation degree computing unit 200 Data update block including multiple adjacent macroblocks 201 Multiple discrete macroblocks Data update block containing a click

Claims (63)

少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段とを備えたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For each data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, respectively, First vector quantization means for outputting a corresponding code string at each time;
The code sequence output at each time by the first vector quantization means is rearranged into a plurality of new vectors, and a code vector similar to each of the plurality of new vectors is obtained. A data compression apparatus comprising: second vector quantization means for searching for each of the second codebooks and outputting a code string corresponding to the second codebook.
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、上記各時刻におけるデータ間で対応するアドレスのコードどうしをまとめて新たなベクトルを複数生成するコード列再配列手段を備えたことを特徴とする請求項1に記載のデータ圧縮装置。   Code sequence rearranging means for generating a plurality of new vectors by combining the codes of addresses corresponding to the data at each time among the code sequences output at each time by the first vector quantization means. The data compression apparatus according to claim 1, further comprising: 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段とを備えたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For each data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, respectively, First vector quantization means for outputting a corresponding code string at each time;
Of the code sequences output at each time by the first vector quantization means, the code sequence of data at a certain time is used as a reference code sequence, and between the reference code sequence and the code sequence of data at another time Are rearranged to obtain a plurality of new vectors, and for each of the plurality of new vectors, a code vector similar to each of the vectors is added to the second codebook. And a second vector quantization means for searching for each of them and outputting a code string corresponding to them.
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列手段を備えたことを特徴とする請求項3に記載のデータ圧縮装置。   Of the code sequences output at each time by the first vector quantization means, the code sequence of data at a certain time is used as a reference code sequence, and between the reference code sequence and the code sequence of data at another time 4. The data compression according to claim 3, further comprising code sequence rearranging means for taking a difference between codes at corresponding addresses and generating a plurality of new vectors by grouping the corresponding address differences. apparatus. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとった結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段とを備えたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For each data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, respectively, First vector quantization means for outputting a corresponding code string at each time;
Among the code strings output at each time by the first vector quantization means, a result obtained by taking a difference between codes at corresponding addresses between data adjacent in the time axis direction is rearranged to obtain a plurality of Second vector quantization means for finding a new vector, searching each of the plurality of new vectors for a code vector similar to each of the vectors from the second codebook, and outputting a code string corresponding thereto And a data compression apparatus.
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列手段を備えたことを特徴とする請求項5に記載のデータ圧縮装置。   Of the code strings output at each time by the first vector quantization means, a difference is taken between codes at corresponding addresses between data adjacent in the time axis direction, and the difference between the corresponding addresses is calculated. 6. The data compression apparatus according to claim 5, further comprising code sequence rearranging means for collectively generating a plurality of new vectors. 少なくとも1つ以上のデータを有するデータ列をベクトルとし、少なくとも1つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項1または2に記載のデータ圧縮装置により生成されたコード列に対応するコードベクトルを上記第2のコードブックから夫々探し出して出力する第2のデコード手段と、
上記第2のデコード手段により出力された複数のコードベクトルを構成するコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、上記新たなベクトルを構成するコード列に対応するコードベクトルを上記第1のコードブックから夫々探し出して出力する第1のデコード手段とを備えたことを特徴とするデータ伸長装置。
A data string having at least one or more data is used as a vector, and a code vector corresponding to the compression code is searched from a code book having at least one or more code vectors and assigned to the corresponding block position. In a data decompression device that reproduces data,
A second decoding means for finding out and outputting a code vector corresponding to the code string generated by the data compression apparatus according to claim 1 or 2 from the second codebook;
The code strings constituting the plurality of code vectors output by the second decoding means are rearranged into a plurality of new vectors, and the codes constituting the new vectors for the plurality of new vectors, respectively. A data decompressing apparatus comprising: a first decoding unit that searches for and outputs a code vector corresponding to a column from the first code book.
少なくとも1つ以上のデータを有するデータ列をベクトルとし、少なくとも1つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項3または4に記載のデータ圧縮装置により生成されたコード列に対応するコードベクトルを上記第2のコードブックから夫々探し出して出力する第2のデコード手段と、
上記第2のデコード手段により出力された複数のコードベクトルを構成するコード列と上記基準コード列との間で対応するアドレスのコードどうしを加算した結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、上記新たなベクトルを構成するコード列に対応するコードベクトルを上記第1のコードブックから夫々探し出して出力する第1のデコード手段とを備えたことを特徴とするデータ伸長装置。
A data string having at least one or more data is used as a vector, and a code vector corresponding to the compression code is searched from a code book having at least one or more code vectors and assigned to the corresponding block position. In a data decompression device that reproduces data,
A second decoding means for searching for and outputting a code vector corresponding to the code string generated by the data compression apparatus according to claim 3 or 4 from the second codebook;
Reordering the result of adding the codes of the corresponding addresses between the code string constituting the plurality of code vectors output by the second decoding means and the reference code string to obtain a plurality of new vectors, And a first decoding means for searching for and outputting a code vector corresponding to a code string constituting the new vector from the first code book, respectively, for each of the plurality of new vectors. Data decompression device.
少なくとも1つ以上のデータを有するデータ列をベクトルとし、少なくとも1つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項5または6に記載のデータ圧縮装置により生成されたコード列に対応するコードベクトルを上記第2のコードブックから夫々探し出して出力する第2のデコード手段と、
上記第2のデコード手段により出力された複数のコードベクトルを構成するコード列について、コードをアドレス順に加算していった夫々の結果を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、上記新たなベクトルを構成するコード列に対応するコードベクトルを上記第1のコードブックから夫々探し出して出力する第1のデコード手段とを備えたことを特徴とするデータ伸長装置。
A data string having at least one or more data is used as a vector, and a code vector corresponding to the compression code is searched from a code book having at least one or more code vectors and assigned to the corresponding block position. In a data decompression device that reproduces data,
A second decoding means for searching for and outputting a code vector corresponding to the code string generated by the data compression device according to claim 5 or 6 from the second codebook;
For the code strings constituting the plurality of code vectors output by the second decoding means, the respective results obtained by adding the codes in the order of addresses are rearranged into a plurality of new vectors, and the plurality of new vectors A data decompression device comprising: first decoding means for searching each code vector corresponding to a code string constituting the new vector from the first codebook and outputting the code vector. .
上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする請求項1〜6の何れか1項に記載のデータ圧縮装置。   The time base shift means is provided, wherein when generating the plurality of new vectors, elements in the new vector are arranged so as to be shifted in the time axis direction between at least adjacent vectors. Item 7. The data compression device according to any one of Items 1 to 6. 上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の少なくとも近接する要素を時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする請求項7〜9の何れか1項に記載のデータ伸長装置。   8. A time axis shift unit configured to shift at least adjacent elements in the new vector in a time axis direction when generating the plurality of new vectors. The data decompression device according to any one of 9. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータ列のうち、各時刻におけるデータ間で対応するアドレスのデータどうしをまとめて複数のベクトルとし、それらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を出力するベクトル量子化手段を備えたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
Of the data sequence at each time to be compressed that changes along the time axis, the data at the addresses corresponding to the data at each time are grouped into a plurality of vectors, and code vectors similar to those vectors are obtained from the codebook. A data compression apparatus comprising vector quantization means for searching for each and outputting code strings corresponding to them.
上記複数のベクトルを取り出す際に、上記ベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにする時間軸シフト手段を備えたことを特徴とする請求項12に記載のデータ圧縮装置。   13. The time axis shift means according to claim 12, further comprising: a time axis shift unit configured to shift elements in the vector in the time axis direction at least between adjacent vectors when extracting the plurality of vectors. Data compression device. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象から少なくとも1つ以上の特徴量を抽出し、特徴量データと上記圧縮対象から上記特徴量を除いた基本パターンデータとに分離する分離手段を備え、
上記分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
Separating means for extracting at least one feature quantity from the compression target and separating it into feature quantity data and basic pattern data obtained by removing the feature quantity from the compression target;
A data compression apparatus characterized in that vector quantization is performed independently for each of the separated feature data and basic pattern data.
上記分離手段によって時間軸に沿って変化する圧縮対象から分離された各時刻における基本パターンデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを基本パターン用の第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化手段と、
上記第1のベクトル量子化手段により各時刻毎に出力されたコード列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを基本パターン用の第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化手段と、
上記分離手段によって上記時間軸に沿って変化する圧縮対象から分離された各時刻における特徴量を構成するデータ列を再配列して複数の新たなベクトルとし、上記複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを特徴量用の第3のコードブックから夫々探し出し、それらに対応するコード列を出力する第3のベクトル量子化手段とを備えたことを特徴とする請求項14に記載のデータ圧縮装置。
For the basic pattern data at each time separated from the object to be compressed that changes along the time axis by the separation means, a plurality of blocks are extracted from the data, and code vectors similar to those vectors are extracted as basic patterns. First vector quantization means for finding out each of the first code book for output and outputting a code string corresponding to each code book at each time;
The code sequence output at each time by the first vector quantization means is rearranged into a plurality of new vectors, and a code vector similar to each of the plurality of new vectors is obtained. Second vector quantization means for respectively searching the second code book for the basic pattern and outputting a code string corresponding to the second code book;
The data string that constitutes the feature quantity at each time separated from the compression target that changes along the time axis by the separation means is rearranged into a plurality of new vectors, and each of the plurality of new vectors And a third vector quantization means for searching for code vectors similar to those vectors from the third code book for feature quantities and outputting a code string corresponding to the code vectors. 14. A data compression apparatus according to 14.
少なくとも1つ以上のデータを有するデータ列をベクトルとし、少なくとも1つ以上のコードベクトルを有するコードブックの中から圧縮コードに対応するコードベクトルを探し出して、それを該当するブロック位置に割り当てることによって元データを再現するデータ伸長装置において、
請求項14または15に記載のデータ圧縮装置より出力された基本パターンに関するコード列に基づいて元の基本パターンデータを再現する基本パターン用の第1のデコード手段と、
請求項14または15に記載のデータ圧縮装置より出力された特徴量に関するコード列に基づいて元の特徴量データを再現する特徴量用の第2のデコード手段と、
上記第1、第2のデコード手段の出力結果を合成して元データを再現する合成手段とを備えたことを特徴とするデータ伸長装置。
A data string having at least one or more data is used as a vector, and a code vector corresponding to the compression code is searched from a code book having at least one or more code vectors and assigned to the corresponding block position. In a data decompression device that reproduces data,
First decoding means for basic patterns for reproducing original basic pattern data based on a code string related to the basic patterns output from the data compression device according to claim 14 or 15,
A second decoding unit for feature amount that reproduces original feature amount data based on a code string related to the feature amount output from the data compression device according to claim 14 or 15,
A data decompression apparatus comprising: synthesis means for synthesizing the output results of the first and second decoding means to reproduce the original data.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化手段と、
上記ベクトル量子化手段により各時刻毎に出力されるコード列について、時間軸方向に隣接するデータの対応するアドレスどうしでコード間の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For the data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the code book, and the codes corresponding to them Vector quantization means for outputting a sequence at each time;
For the code string output at each time by the vector quantization means, the correlation between the codes is taken between the corresponding addresses of the data adjacent in the time axis direction, and the code is output only for the address where the correlation is smaller than the predetermined value A data compression apparatus comprising: an output control unit configured to do so.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象のカラー画像より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
輝度信号用のコードブックと色信号用のコードブックとを備え、上記色信号用のコードブックよりも上記輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a color image to be compressed is searched from a code book prepared in advance, and a code corresponding thereto In the data compression device that outputs
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
A codebook for luminance signals and a codebook for color signals are provided, and more code vectors are assigned to the codebook for luminance signals than to the codebook for color signals. Data compression device.
上記輝度信号であるY信号、および上記色信号であるU信号、V信号の圧縮レートが4:1:1もしくは4:2:2であることを特徴とする請求項18に記載のデータ圧縮装置。   19. The data compression apparatus according to claim 18, wherein a compression rate of the Y signal that is the luminance signal, the U signal that is the color signal, and the V signal is 4: 1: 1 or 4: 2: 2. . 少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用いたことを特徴とするコードブックの作成方法。
A method of creating a codebook used in vector quantization, which is a set of vectors, which is a data sequence having at least one or more data, and using a sample data and an initial codebook Create a codebook that optimizes the codebook by repeating the process and updating the contents of the specified range on the virtual two-dimensional plane of the codebook according to a predetermined update coefficient for each process In the method
A code book creation method using a code book having a pattern in which data values continuously change from a minimum value to a maximum value of possible values as the initial code book.
少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記1回の処理で更新する範囲を上記仮想的な2次元平面上で1次元的に適用し、かつ更新回数の増加と共に範囲を減少させることを特徴とするコードブックの作成方法。
A method of creating a codebook used in vector quantization, which is a set of vectors, which is a data sequence having at least one or more data, and using a sample data and an initial codebook Create a codebook that optimizes the codebook by repeating the process and updating the contents of the specified range on the virtual two-dimensional plane of the codebook according to a predetermined update coefficient for each process In the method
A method for creating a codebook, characterized in that the range to be updated by the one-time processing is applied one-dimensionally on the virtual two-dimensional plane, and the range is decreased as the number of updates increases.
少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記更新係数の初期値を0.3〜1の範囲内の何れかの値とし、かつ更新回数の増加と共に上記更新係数の値を減少させることを特徴とするコードブックの作成方法。
A method of creating a codebook used in vector quantization, which is a set of vectors, which is a data sequence having at least one or more data, and using a sample data and an initial codebook Create a codebook that optimizes the codebook by repeating the process and updating the contents of the specified range on the virtual two-dimensional plane of the codebook according to a predetermined update coefficient for each process In the method
A method for creating a code book, wherein an initial value of the update coefficient is set to any value within a range of 0.3 to 1, and the value of the update coefficient is decreased as the number of updates increases.
少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
上記初期のコードブックとして、とり得る値の最小値から最大値までデータ値が連続的に変化するパターンのコードブックを用い、
上記1回の処理で更新する範囲を上記仮想的な2次元平面上で1次元的に適用し、かつ更新回数の増加と共に範囲を減少させ、
上記更新係数の初期値を0.3〜1の範囲内の何れかの値とし、かつ更新回数の増加と共に上記更新係数の値を減少させるようにしたことを特徴とするコードブックの作成方法。
A method of creating a codebook used in vector quantization, which is a set of vectors, which is a data sequence having at least one or more data, and using a sample data and an initial codebook Create a codebook that optimizes the codebook by repeating the process and updating the contents of the specified range on the virtual two-dimensional plane of the codebook according to a predetermined update coefficient for each process In the method
As the initial code book, a code book with a pattern in which data values continuously change from a minimum value to a maximum value of possible values,
Apply the range to be updated in the one-time process one-dimensionally on the virtual two-dimensional plane, and decrease the range as the number of updates increases,
A codebook creation method, wherein an initial value of the update coefficient is set to any value within a range of 0.3 to 1, and the value of the update coefficient is decreased as the number of updates increases.
少なくとも1つ以上のデータを有するデータ列であるベクトルの集合から成り、ベクトル量子化で用いられるコードブックを作成する方法であって、あるサンプルデータと初期のコードブックとを用いてベクトル量子化の処理を繰り返し行い、コードブックの仮想的な2次元平面上で指定された範囲の内容を1回の処理毎に所定の更新係数に従って更新していくことによってコードブックを最適化するコードブックの作成方法において、
複数のサンプルデータに対して独立にコードブックを最適化し、得られた複数のコードブックを合成して新たなコードブックを作成するようにしたことを特徴とするコードブックの作成方法。
A method of creating a codebook used in vector quantization, which is a set of vectors, which is a data sequence having at least one or more data, and using a sample data and an initial codebook Create a codebook that optimizes the codebook by repeating the process and updating the contents of the specified range on the virtual two-dimensional plane of the codebook according to a predetermined update coefficient for each process In the method
A codebook creation method, wherein a codebook is optimized independently for a plurality of sample data, and a plurality of obtained codebooks are synthesized to create a new codebook.
上記複数のサンプルデータに対して独立にコードブックを最適化する際に、請求項20〜23の何れか1項に記載の方法によりコードブックを作成するようにしたことを特徴とする請求項24に記載のコードブックの作成方法。   The code book is created by the method according to any one of claims 20 to 23 when the code book is optimized independently for the plurality of sample data. How to create the code book described in. コードブック内の各コードベクトルに関してあらかじめ求められた特徴量を記憶する特徴量記憶手段と、
上記圧縮対象より抽出されるベクトルの特徴量を求める特徴量演算手段と、
上記特徴量記憶手段に記憶されている各コードベクトルの特徴量と上記特徴量演算手段により求められた圧縮対象ベクトルの特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定する演算省略手段とを備えたことを特徴とする請求項1〜6、10、12〜13、17〜19の何れか1項に記載のデータ圧縮装置。
Feature quantity storage means for storing a feature quantity obtained in advance for each code vector in the code book;
A feature amount calculating means for obtaining a feature amount of a vector extracted from the compression target;
Based on the feature quantity of each code vector stored in the feature quantity storage means and the feature quantity of the compression target vector obtained by the feature quantity calculation means, the code vector and the compression target vector for each of the code vectors. The data compression according to any one of claims 1 to 6, further comprising an operation omitting unit that determines whether or not to omit the operation for obtaining the similarity. apparatus.
上記特徴量は、ベクトルを構成するデータ列の値の総和、平均値もしくは直流成分であることを特徴とする請求項26に記載のデータ圧縮装置。   27. The data compression apparatus according to claim 26, wherein the feature amount is a sum, an average value, or a direct current component of values of a data string constituting a vector. 上記特徴量は、ベクトルを構成するデータ列のうちの一部の要素の値を、とり得る値の中間値を基準として反転するように操作した後の値の総和、平均値もしくは直流成分であることを特徴とする請求項26に記載のデータ圧縮装置。   The feature amount is a sum, an average value, or a direct current component of values after operating to invert values of some elements of a data string constituting a vector with reference to an intermediate value of possible values. 27. The data compression apparatus according to claim 26. 上記特徴量は、ベクトルを構成するデータ列の値のブロック内での変化の方向であることを特徴とする請求項26に記載のデータ圧縮装置。   27. The data compression apparatus according to claim 26, wherein the feature quantity is a direction of change in a block of data string values constituting a vector. 上記特徴量は、ベクトルを構成するデータ列の値のブロック内での変化の態様であることを特徴とする請求項26に記載のデータ圧縮装置。   27. The data compression apparatus according to claim 26, wherein the feature amount is an aspect of a change in a block of data string values constituting a vector. 上記演算省略手段は、あるコードベクトルの特徴量と上記圧縮対象ベクトルの特徴量との差分絶対値を求める差分絶対値演算手段と、
上記差分絶対値演算手段により求められた差分絶対値が、他のコードベクトルについて既に求められている類似度を表す値の最小値よりも大きい場合に、上記あるコードベクトルについての類似度の演算を省略する省略判定手段とを備えることを特徴とする請求項26〜30の何れか1項に記載のデータ圧縮装置。
The calculation omitting means includes a difference absolute value calculating means for obtaining a difference absolute value between a feature quantity of a certain code vector and a feature quantity of the compression target vector;
When the difference absolute value obtained by the difference absolute value computing means is larger than the minimum value of the values representing the similarity already obtained for other code vectors, the similarity is calculated for the code code. The data compression apparatus according to any one of claims 26 to 30, further comprising an omission determination unit.
コードブック内の各コードベクトルに関してあらかじめ求められた異なる種類の特徴量を記憶する特徴量記憶手段と、
上記圧縮対象より抽出されるベクトルについて異なる種類の特徴量を求める特徴量演算手段と、
上記特徴量記憶手段に記憶されている各コードベクトルに関する異なる種類の特徴量と、上記特徴量演算手段により求められた圧縮対象ベクトルに関する異なる種類の特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定する演算省略手段とを備えたことを特徴とする請求項1〜6、10、12〜13、17〜19の何れか1項に記載のデータ圧縮装置。
Feature quantity storage means for storing different types of feature quantities obtained in advance for each code vector in the code book;
Feature quantity computing means for obtaining different types of feature quantities for vectors extracted from the compression target;
Based on the different types of feature quantities related to each code vector stored in the feature quantity storage means and the different types of feature quantities related to the compression target vector obtained by the feature quantity calculation means, 20. An operation omitting unit for determining whether or not to omit an operation for obtaining a similarity to the compression target vector for any one of claims 1 to 6, 10, 12 to 13, and 17 to 19 The data compression apparatus according to item 1.
少なくとも1つ以上のコードブックを保持しておくコードブックサーバと、データ圧縮システムと、データ伸長システムとを備えたデータ圧縮伸長システムであって、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記コードブックサーバは、上記データ圧縮システムおよびデータ伸長システムからの要求に従って、保持している何れかのコードブックを供給することを特徴とするデータ圧縮伸長システム。
A data compression / decompression system comprising a codebook server that holds at least one codebook, a data compression system, and a data decompression system,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
The data compression / decompression system, wherein the code book server supplies one of the retained code books in accordance with a request from the data compression system and the data decompression system.
上記コードブックサーバは、少なくとも1つ以上のコードブックを保持するコードブック保持手段と、
上記データ圧縮システムおよびデータ伸長システムからの要求に合ったコードブックを生成するコードブック生成手段と、
上記データ圧縮システムおよびデータ伸長システムからの要求に応じて、上記コードブック保持手段に保持されているコードブックもしくは上記コードブック生成手段により生成されたコードブックを供給するコードブック管理手段とを備えることを特徴とする請求項33に記載のデータ圧縮伸長システム。
The code book server includes code book holding means for holding at least one code book;
Code book generating means for generating a code book meeting a request from the data compression system and the data decompression system;
Code book management means for supplying a code book held in the code book holding means or a code book generated by the code book generation means in response to a request from the data compression system and data decompression system. 34. The data compression / decompression system according to claim 33.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化ステップと、
上記第1のベクトル量子化ステップで各時刻毎に出力されたコード列のうち、上記各時刻におけるデータ間で対応するアドレスのコードどうしをまとめて新たなベクトルを複数生成するコード列再配列ステップと、
上記コード列再配列ステップで生成された複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化ステップとを有することを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For each data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, respectively, A first vector quantization step for outputting a corresponding code string at each time;
A code sequence rearrangement step for generating a plurality of new vectors by combining the codes of the addresses corresponding to the data at each time among the code sequences output at each time in the first vector quantization step; ,
For each of a plurality of new vectors generated in the code sequence rearrangement step, code vectors similar to those vectors are respectively searched from the second code book, and a code sequence corresponding to them is output. A data compression method comprising: a vector quantization step.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化ステップと、
上記第1のベクトル量子化ステップで各時刻毎に出力されたコード列のうち、ある時刻におけるデータのコード列を基準コード列とし、上記基準コード列と他の時刻におけるデータのコード列との間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列ステップと、
上記コード列再配列ステップで生成された複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化ステップとを有することを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For each data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, respectively, A first vector quantization step for outputting a corresponding code string at each time;
Of the code sequences output at each time in the first vector quantization step, the code sequence of data at a certain time is set as a reference code sequence, and between the reference code sequence and the code sequence of data at another time A code sequence rearrangement step that takes a difference between the codes of the corresponding addresses and generates a plurality of new vectors by combining the differences of the corresponding addresses;
For each of a plurality of new vectors generated in the code sequence rearrangement step, code vectors similar to those vectors are respectively searched from the second code book, and a code sequence corresponding to them is output. A data compression method comprising: a vector quantization step.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルを第1のコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力する第1のベクトル量子化ステップと、
上記第1のベクトル量子化ステップで各時刻毎に出力されたコード列のうち、時間軸方向に隣接するデータの間において対応するアドレスのコード間で差分をとり、上記対応するアドレスの差分どうしをまとめて新たなベクトルを複数生成するコード列再配列ステップと、
上記コード列再配列ステップで生成された複数の新たなベクトルに対してそれぞれ、それらのベクトルに類似したコードベクトルを第2のコードブックから夫々探し出し、それらに対応するコード列を出力する第2のベクトル量子化ステップとを備えたことを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For each data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the first code book, respectively, A first vector quantization step for outputting a corresponding code string at each time;
In the code sequence output at each time in the first vector quantization step, a difference is taken between codes at corresponding addresses between data adjacent in the time axis direction, and the difference between the corresponding addresses is calculated. A code sequence rearrangement step that collectively generates a plurality of new vectors;
For each of a plurality of new vectors generated in the code sequence rearrangement step, code vectors similar to those vectors are respectively searched from the second code book, and a code sequence corresponding to them is output. A data compression method comprising a vector quantization step.
上記コード列再配列ステップで上記複数の新たなベクトルを生成する際に、上記新たなベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにしたことを特徴とする請求項35〜37の何れか1項に記載のデータ圧縮方法。   When generating the plurality of new vectors in the code sequence rearrangement step, elements in the new vector are arranged so as to be shifted in the time axis direction at least between adjacent vectors. Item 38. The data compression method according to any one of Items 35 to 37. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータ列のうち、各時刻におけるデータ間で対応するアドレスのデータどうしをまとめて複数のベクトルとし、それらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を出力するベクトル量子化ステップを有することを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
Of the data sequence at each time to be compressed that changes along the time axis, the data at the addresses corresponding to the data at each time are grouped into a plurality of vectors, and code vectors similar to those vectors are obtained from the codebook. A data compression method comprising a vector quantization step of searching for each and outputting a code string corresponding thereto.
上記複数のベクトルを取り出す際に、上記ベクトル内の要素を少なくとも近接するベクトル間では時間軸方向にずらして配列するようにすることを特徴とする請求項39に記載のデータ圧縮方法。   40. The data compression method according to claim 39, wherein when the plurality of vectors are extracted, elements in the vectors are arranged so as to be shifted in the time axis direction at least between adjacent vectors. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
上記圧縮対象から少なくとも1つ以上の特徴量を抽出し、特徴量データと上記圧縮対象から上記特徴量を除いた基本パターンデータとに分離し、分離した特徴量データと基本パターンデータとに対してそれぞれ独立にベクトル量子化を行うようにしたことを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
At least one feature quantity is extracted from the compression target, separated into feature quantity data and basic pattern data excluding the feature quantity from the compression target, and for the separated feature quantity data and basic pattern data A data compression method characterized by performing vector quantization independently of each other.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化ステップと、
上記ベクトル量子化ステップで各時刻毎に出力されるコード列について、時間軸方向に隣接するデータの対応するアドレスどうしでコード間の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力する出力ステップとを有することを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For the data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the code book, and the codes corresponding to them A vector quantization step of outputting a sequence at each time;
For the code sequence output at each time in the vector quantization step, the correlation between the codes is taken between the corresponding addresses of the data adjacent in the time axis direction, and the code is output only for the address where the correlation is smaller than the predetermined value And a data compression method.
少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象のカラー画像より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
輝度信号用のコードブックと色信号用のコードブックとを備え、上記色信号用のコードブックよりも上記輝度信号用のコードブックの方により多くのコードベクトルを割り当てるようにしたことを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a color image to be compressed is searched from a code book prepared in advance, and a code corresponding thereto In the data compression method for outputting
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
A codebook for luminance signals and a codebook for color signals are provided, and more code vectors are assigned to the codebook for luminance signals than to the codebook for color signals. Data compression method.
上記輝度信号であるY信号、および上記色信号であるU信号、V信号の圧縮レートが4:1:1もしくは4:2:2であることを特徴とする請求項43に記載のデータ圧縮方法。   44. The data compression method according to claim 43, wherein a compression rate of the Y signal as the luminance signal and the U signal and the V signal as the color signals is 4: 1: 1 or 4: 2: 2. . 圧縮対象より抽出されるベクトルの特徴量と、上記コードブック内の各コードベクトルに関する特徴量とを比較し、その比較結果に基づいて上記コードベクトルについて上記圧縮対象ベクトルとの類似度を求める演算を省略するようにしたことを特徴とする請求項35〜44の何れか1項に記載のデータ圧縮方法。   Comparing the feature quantity of the vector extracted from the compression target with the feature quantity related to each code vector in the code book, and calculating the similarity between the code vector and the compression target vector based on the comparison result The data compression method according to any one of claims 35 to 44, wherein the data compression method is omitted. あるコードベクトルの特徴量と上記圧縮対象ベクトルの特徴量との差分絶対値を求める差分絶対値演算ステップと、
上記差分絶対値演算ステップで求められた差分絶対値が、他のコードベクトルについて既に求められている類似度を表す値の最小値よりも大きい場合に、上記あるコードベクトルについての類似度の演算を省略する省略判定ステップとを備えることを特徴とする請求項45に記載のデータ圧縮方法。
A difference absolute value calculating step for obtaining a difference absolute value between a feature amount of a certain code vector and a feature amount of the compression target vector;
When the difference absolute value obtained in the difference absolute value calculation step is larger than the minimum value of the values representing the similarity already obtained for other code vectors, the similarity calculation for the code vector is performed. 46. The data compression method according to claim 45, further comprising an omission determination step.
異なる種類の特徴量を複数利用し、上記複数種類の特徴量と上記圧縮対象のベクトルより抽出される複数種類の特徴量とに基づいて、上記各コードベクトルのそれぞれについて上記圧縮対象ベクトルとの類似度を求める演算を省略するかどうかを決定するようにしたことを特徴とする請求項45または46に記載のデータ圧縮方法。   Similar to the compression target vector for each of the code vectors based on the plurality of types of feature amounts and the plurality of types of feature amounts extracted from the compression target vector using a plurality of different types of feature amounts. 47. The data compression method according to claim 45 or 46, wherein it is determined whether or not the calculation for obtaining the degree is omitted. 少なくとも1つ以上のコードブックを保持しておくコードブックサーバと、データ圧縮システムと、データ伸長システムとを備えたデータ圧縮伸長システムにおいて、上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、上記コードブックサーバが、上記データ圧縮システムおよびデータ伸長システムからの要求に従って、保持している何れかのコードブックを供給するようにしたことを特徴とするデータ圧縮伸長方法。   In a data compression / decompression system including a code book server that holds at least one code book, a data compression system, and a data decompression system, the code book performs an update process using a predetermined learning algorithm. The code book is optimized by repeating a predetermined number of times, and the code book server supplies one of the held code books in accordance with a request from the data compression system and data decompression system. A method for compressing and decompressing data. 請求項1〜17の何れか1項に記載の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which a program for causing a computer to function as each means according to claim 1 is recorded. 請求項21〜24の何れか1項に記載のコードブックの作成方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   25. A computer-readable recording medium having recorded thereon a program for causing a computer to execute the processing procedure of the code book creating method according to claim 21. 請求項26または32に記載の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   33. A computer-readable recording medium in which a program for causing a computer to function as each means according to claim 26 or 32 is recorded. 請求項33に記載の機能をコンピュータに実現させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium having recorded thereon a program for causing a computer to realize the function according to claim 33. 請求項35〜37、39、42の何れか1項に記載の各ステップをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium having recorded thereon a program for causing a computer to execute the steps according to any one of claims 35 to 37, 39, and 42. 請求項41または45に記載のデータ圧縮方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   46. A computer-readable recording medium on which a program for causing a computer to execute the processing procedure of the data compression method according to claim 41 or 45 is recorded. 請求項48に記載のデータ圧縮伸長方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。   49. A computer-readable recording medium on which a program for causing a computer to execute the processing procedure of the data compression / decompression method according to claim 48 is recorded. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮装置において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化手段と、
上記ベクトル量子化手段により各時刻毎に探し出されるコードベクトルの特徴量について、時間軸方向に隣接するデータの対応するアドレスどうしで上記特徴量の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力するようにする出力制御手段とを備えたことを特徴とするデータ圧縮装置。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression device,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For the data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the code book, and the codes corresponding to them Vector quantization means for outputting a sequence at each time;
For the feature quantity of the code vector found at each time by the vector quantization means, the correlation of the feature quantity is performed between corresponding addresses of data adjacent in the time axis direction, and the correlation is smaller than a predetermined value. A data compression apparatus comprising output control means for outputting only a code.
上記出力制御手段は、或る時刻において、上記相関が所定値より小さいかどうかに関係なく、全アドレスまたは一部アドレスについて上記ベクトル量子化手段より出力されたコード列を出力するようにしたことを特徴とする請求項17または56に記載のデータ圧縮装置。   The output control means outputs the code string output from the vector quantization means for all addresses or a part of addresses regardless of whether the correlation is smaller than a predetermined value at a certain time. 57. A data compression apparatus according to claim 17 or 56, wherein: 上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスは、圧縮対象のデータ中に存在する複数の隣接ブロックを含むアドレス、もしくは圧縮対象のデータ中に存在する複数の離散ブロックを含むアドレスであることを特徴とする請求項57に記載のデータ圧縮装置。   Regardless of whether the correlation is smaller than a predetermined value, the partial address for outputting the code string is an address including a plurality of adjacent blocks existing in the data to be compressed, or a plurality of discrete addresses existing in the data to be compressed. 58. The data compression apparatus according to claim 57, wherein the address includes a block. 上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスを、時間の経過と共に変化させるようにしたことを特徴とする請求項57または58に記載のデータ圧縮装置。   59. A data compression apparatus according to claim 57 or 58, wherein a partial address for outputting a code string is changed over time regardless of whether the correlation is smaller than a predetermined value. 少なくとも1つ以上のデータを有するデータ列をブロック化してベクトルとし、あらかじめ用意されたコードブックの中から、圧縮対象より抽出されるベクトルに類似したコードベクトルを探し出して、それに対応するコードを出力するデータ圧縮方法において、
上記コードブックは、所定の学習アルゴリズムを利用した更新処理を所定回数繰り返すことにより最適化されたコードブックであるとともに、
時間軸に沿って変化する圧縮対象の各時刻におけるデータに対してそれぞれ、当該データ中から複数のブロックを抽出してそれらのベクトルに類似したコードベクトルをコードブックから夫々探し出し、それらに対応するコード列を各時刻毎に出力するベクトル量子化ステップと、
上記ベクトル量子化ステップで各時刻毎に探し出されるコードベクトルの特徴量について、時間軸方向に隣接するデータの対応するアドレスどうしで上記特徴量の相関を夫々とり、相関が所定値より小さいアドレスについてのみコードを出力する出力ステップとを有することを特徴とするデータ圧縮方法。
A data string having at least one or more data is blocked into a vector, a code vector similar to a vector extracted from a compression target is searched from a code book prepared in advance, and a code corresponding to the code vector is output. In the data compression method,
The code book is a code book that is optimized by repeating a predetermined number of update processes using a predetermined learning algorithm,
For the data at each time to be compressed that changes along the time axis, a plurality of blocks are extracted from the data, code vectors similar to those vectors are searched from the code book, and the codes corresponding to them A vector quantization step of outputting a sequence at each time;
With respect to the feature quantity of the code vector found at each time in the vector quantization step, the correlation of the feature quantity is performed between corresponding addresses of data adjacent in the time axis direction, and the correlation is smaller than a predetermined value. And a data compression method comprising: an output step for outputting only a code.
上記出力ステップでは、或る時刻においては、上記相関が所定値より小さいかどうかに関係なく、全アドレスまたは一部アドレスについて上記ベクトル量子化ステップにて出力されたコード列を出力することを特徴とする請求項42または60に記載のデータ圧縮方法。   In the output step, the code string output in the vector quantization step is output for all addresses or a partial address regardless of whether the correlation is smaller than a predetermined value at a certain time. The data compression method according to claim 42 or 60. 上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスは、圧縮対象のデータ中に存在する複数の隣接ブロックを含むアドレス、もしくは圧縮対象のデータ中に存在する複数の離散ブロックを含むアドレスであることを特徴とする請求項61に記載のデータ圧縮方法。   Regardless of whether the correlation is smaller than a predetermined value, the partial address for outputting the code string is an address including a plurality of adjacent blocks existing in the data to be compressed, or a plurality of discrete addresses existing in the data to be compressed. 62. The data compression method according to claim 61, wherein the address includes a block. 上記相関が所定値より小さいかどうかに関係なくコード列を出力する一部アドレスを、時間の経過と共に変化させるようにしたことを特徴とする請求項61または62に記載のデータ圧縮方法。   The data compression method according to claim 61 or 62, wherein a partial address for outputting a code string is changed with the passage of time regardless of whether the correlation is smaller than a predetermined value.
JP2004212138A 1998-04-17 2004-07-20 Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium Pending JP2005012823A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004212138A JP2005012823A (en) 1998-04-17 2004-07-20 Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP12428698 1998-04-17
JP20836498 1998-07-23
JP30533698 1998-10-27
JP2004212138A JP2005012823A (en) 1998-04-17 2004-07-20 Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP6708699A Division JP2000201078A (en) 1998-04-17 1999-03-12 Data compression device and method, data decompression device and method, data compression and decompression system and method, code book preparing method and recording medium

Publications (1)

Publication Number Publication Date
JP2005012823A true JP2005012823A (en) 2005-01-13

Family

ID=34108971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004212138A Pending JP2005012823A (en) 1998-04-17 2004-07-20 Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium

Country Status (1)

Country Link
JP (1) JP2005012823A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101919165A (en) * 2008-01-31 2010-12-15 日本电信电话株式会社 Polarized multiple vector quantization method, device, program and recording medium therefor
KR101998839B1 (en) * 2018-01-03 2019-07-10 중앙대학교 산학협력단 Data compression system and method for image-based embedded wireless sensor network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101919165A (en) * 2008-01-31 2010-12-15 日本电信电话株式会社 Polarized multiple vector quantization method, device, program and recording medium therefor
CN101919165B (en) * 2008-01-31 2014-04-02 日本电信电话株式会社 Polarized multiple vector quantization method, device, program and recording medium therefor
KR101998839B1 (en) * 2018-01-03 2019-07-10 중앙대학교 산학협력단 Data compression system and method for image-based embedded wireless sensor network

Similar Documents

Publication Publication Date Title
US11792405B2 (en) Codec
JP3915272B2 (en) Quantization method and recording medium recording quantization program
JP3814637B2 (en) Image encoding / decoding method and recording medium and apparatus recording the program
KR20060124652A (en) Method for processing a digital image and image representation format
JPH06237455A (en) Release of scalable digital video compression
JP2006050516A (en) Image encoding method, image decoding method, moving-image compression method, moving-image expansion method, image encoding program, image encoding device, image decoding device, image encoding/decoding system, and extended image compression/expansion system
JPH11127355A (en) Device and method for encoding image and recording medium recording image encoding program
JP2001160062A (en) Device for retrieving image data
JP2006502604A (en) Image compression method for arbitrarily shaped objects
KR100944928B1 (en) Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor
JP3932244B2 (en) Image encoding / decoding method and apparatus, and recording medium recording the program
JP2005012823A (en) Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and recording medium
JP2000201078A (en) Data compression device and method, data decompression device and method, data compression and decompression system and method, code book preparing method and recording medium
JP4190739B2 (en) Image feature value generating apparatus and method, and storage medium storing image feature value generating program
JP3158064B2 (en) Video encoding device and video decoding device
WO1999055093A1 (en) Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and vector quantizing device and method
JP4034385B2 (en) Multi-color image encoding apparatus and method, and multi-color image decoding apparatus and method
JP3835416B2 (en) Image compression apparatus, image compression method, and image compression program
JP3470326B2 (en) Image coding method
KR100775422B1 (en) Method for compressing/decompressing image sampled irregularly or sampled at bent surface
JPH04271664A (en) Picture data compressor and picture data decoder
KR100495001B1 (en) Image compression encoding method and system
JP2004187313A (en) Data processing apparatus and storage medium
JP2004260393A (en) Method for encoding and decoding digital color still image
JP2001204024A (en) Data compression method, data compressor and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060217

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080805