JP3676577B2 - Vector quantization apparatus and method, recording medium - Google Patents

Vector quantization apparatus and method, recording medium Download PDF

Info

Publication number
JP3676577B2
JP3676577B2 JP20836698A JP20836698A JP3676577B2 JP 3676577 B2 JP3676577 B2 JP 3676577B2 JP 20836698 A JP20836698 A JP 20836698A JP 20836698 A JP20836698 A JP 20836698A JP 3676577 B2 JP3676577 B2 JP 3676577B2
Authority
JP
Japan
Prior art keywords
vector data
template
search
input
template vector
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.)
Expired - Fee Related
Application number
JP20836698A
Other languages
Japanese (ja)
Other versions
JP2000004164A (en
Inventor
忠弘 大見
光司 小谷
明良 中田
誠 今井
正宏 譽田
達郎 森本
岳美 米澤
俊之 野沢
貴裕 中山
正典 藤林
雄久 新田
Original Assignee
忠弘 大見
ユーシーティー株式会社
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 忠弘 大見, ユーシーティー株式会社 filed Critical 忠弘 大見
Priority to JP20836698A priority Critical patent/JP3676577B2/en
Priority to PCT/JP1999/002049 priority patent/WO1999055093A1/en
Priority to EP99914764A priority patent/EP1079635A1/en
Publication of JP2000004164A publication Critical patent/JP2000004164A/en
Application granted granted Critical
Publication of JP3676577B2 publication Critical patent/JP3676577B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ベクトル量子化装置および方法、更にはこれらの処理を実行させるためのプログラムを記憶した記録媒体に関するものである。
【0002】
【従来の技術】
従来、データ圧縮の手法が種々提案されている。その中で、圧縮データの伸長処理を非常に簡単に行うことが可能なデータ圧縮アルゴリズムの1つとして、「ベクトル量子化」という手法が良く知られている。このアルゴリズムは、古くから信号処理の分野で知られており、特に、画像信号や音声信号のデータ圧縮、あるいはパターン認識に応用されてきた。
【0003】
このベクトル量子化では、ある大きさ(例えば4×4画素のブロック)の画素パターン(テンプレートベクトル、もしくはコードベクトルとも言う)を幾つか用意しておき、それぞれにユニークな番号などを与える(この集合体を「コードブック」という)。そして、例えば2次元配列の画像データ中から同じ大きさ(例えば4×4画素)のブロックを順次取り出し、それと最も似通ったパターンをコードブック中から見つけ出して、そのパターンの番号を当該ブロックに当てはめるというデータ圧縮を行う。ベクトル量子化では、1つのブロック内のデータ列が1つのベクトルに対応する。
【0004】
このようにコード化された圧縮データの受信側あるいは伸長側では、各ブロック毎にコード番号に対応するパターンをコードブックの中から取り出すだけで、元の画像を再現することができる。したがって、伸長側では、コードブックさえ受け取っているか、あるいはあらかじめ保持していれば、特に特殊な演算は必要としないため、非常に簡単なハードウェアで元の画像を再生することが可能となる。
【0005】
上述のように、ベクトル量子化装置では、コードブック内のテンプレートベクトル群の中から原画像の入力ベクトルデータに類似するものを見つけ出す検索処理を行う必要がある。そして、2つのベクトルデータが類似しているかどうかを判断するための手段として、2つのベクトルデータを所定の関数に入力して演算し、どのくらい似ているかを数値化してこの数値の大きさによって判断する手段が用いられてきた。
【0006】
以下、2つのベクトルデータがどのくらい似ているかを数値化したものを「類似度」と称する。この類似度を求めるための関数の代表的なものとして、2つの入力ベクトルデータのマンハッタン距離やユークリッド距離を求める関数が挙げられるが、目的に応じて任意の関数を使うことができる。
【0007】
なお、マンハッタン距離は、2つの入力ベクトルデータ間でそれらを構成する個々の要素どうしの差分絶対値を夫々計算し、各要素毎に計算したこの差分絶対値をすべて加算することによって求めるものである。また、ユークリッド距離は、上述のような差分絶対値の二乗和を求めるものである。
【0008】
【発明が解決しようとする課題】
しかしながら、従来のベクトル量子化装置では、テンプレートベクトルデータ群の中から入力ベクトルデータに類似するものを見つけ出す際に、最も類似するものを探すために、全てのテンプレートベクトルデータについて入力ベクトルデータとの類似度を演算する必要があった。したがって、テンプレートベクトルのデータ数が膨大になると、入力ベクトルデータと類似しているか否かを判断する演算量も膨大になってしまうという問題があった。
【0009】
本発明は、このような問題を解決するために成されたものであり、ベクトル量子化を行う際に、テンプレートベクトルデータと入力ベクトルデータとがどのくらい類似しているかを数値化するための演算量を減少させ、ベクトル量子化処理の高速化、低消費電力化を実現できるようにすることを目的とする。
【0010】
【課題を解決するための手段】
本発明のベクトル量子化装置は、記憶された複数のテンプレートベクトルデータの中から入力ベクトルデータに類似したテンプレートベクトルデータを検索し、検索したテンプレートベクトルデータのコードを出力する検索手段を有するベクトル量子化装置であって、上記検索を行う際に、上記入力ベクトルデータの特徴量と上記テンプレートベクトルデータの特徴量とを比較し、その比較の結果に基づいて、検索対象とするテンプレートベクトルデータを選択する検索対象選択手段を備え、上記検索手段は、上記テンプレートベクトルデータの個々の要素と上記入力ベクトルデータの対応する個々の要素との間で差分をとり、それぞれの絶対値の総和であるマンハッタン距離が最小となるテンプレートベクトルデータを検索するものであり、上記検索対象選択手段は、あるテンプレートベクトルデータについて、上記入力ベクトルデータとの間で上記マンハッタン距離Mを演算するマンハッタン距離演算手段と、上記あるテンプレートベクトルデータとは異なる他のテンプレートベクトルデータの特徴量と上記入力ベクトルデータの特徴量との差分絶対値Dを演算する差分演算手段と、上記マンハッタン距離Mと上記差分絶対値Dとを比較して、M≦Dの関係を有する場合に、上記他のテンプレートベクトルデータについては上記入力ベクトルデータとのマンハッタン距離の演算を省略する演算省略手段とを備えることを特徴とする。
本発明の他のベクトル量子化装置は、記憶された複数のテンプレートベクトルデータの中から入力ベクトルデータに類似したテンプレートベクトルデータを検索し、検索したテンプレートベクトルデータのコードを出力する検索手段を有するベクトル量子化装置であって、上記複数のテンプレートベクトルデータに関してあらかじめ求められた特徴量を記憶する特徴量記憶手段と、入力ベクトルデータの特徴量を求める特徴量演算手段と、上記特徴量記憶手段に記憶されている各テンプレートベクトルデータの特徴量と上記特徴量演算手段により求められた入力ベクトルデータの特徴量とに基づいて、検索対象とするテンプレートベクトルデータを選択する検索対象選択手段とを備え、上記検索手段は、上記テンプレートベクトルデータの個々の要素と上記入力ベクトルデータの対応する個々の要素との間で差分をとり、それぞれの絶対値の総和であるマンハッタン距離が最小となるテンプレートベクトルデータを検索するものであり、上記検索対象選択手段は、あるテンプレートベクトルデータの特徴量と上記入力ベクトルデータの特徴量との差分絶対値を求める差分演算手段と、上記差分演算手段により求められた差分絶対値が、他のコードベクトルについて既に求められている類似度を表すマンハッタン距離の最小値以上の場合に、上記あるテンプレートベクトルデータについてのマンハッタン距離の演算を省略する演算省略手段とを備えることを特徴とする。
【0011】
本発明において、ベクトル量子化装置とは、記憶されたテンプレートベクトルデータ群の中から入力ベクトルデータに最も類似した、もしくは実用上問題ない程度に類似したテンプレートベクトルデータを検索し、検索されたテンプレートベクトルデータの値、またはその番地もしくはテンプレートベクトルデータに付加されたインデックス番号等をコードとしてを出力する検索手段を有する装置を意味する。
【0012】
また、本発明において、ベクトルデータとは、数値化された情報の集合であるベクトルを表す。テンプレートベクトルデータとは、あらかじめ用意された複数のベクトルデータの集合を構成する個々のベクトルデータであり、各々のテンプレートベクトルデータにはインデックス番号等が付加される場合もある。このテンプレートベクトルデータ群は、一般にコードブックと呼ばれることもある。また、入力ベクトルデータとは、ベクトル量子化装置に入力されるベクトルデータである。
【0013】
また、本発明において、特徴量とはベクトルデータの性質を端的に表すスカラ量のことである。一例として、ベクトルデータの各要素の総和や平均値、もしくはベクトルデータの各要素の分散などが挙げられるが、これらに限ったものではない。
【0014】
本発明の他の態様では、上記検索対象選択手段は、異なる種類の複数の特徴量を用いて検索対象とするテンプレートベクトルデータを選択することを特徴としている。
また、上記ベクトルデータを構成する全要素を複数に分割し、分割した各々の要素についての特徴量を用いて検索対象とするテンプレートベクトルデータを選択するようにしても良い。
【0015】
本発明のその他の態様では、上記検索手段は、上記検索対象選択手段により検索対象とされた複数のテンプレートベクトルデータを並列的に読み込み、上記入力ベクトルデータに類似したテンプレートベクトルデータを並列的に検索する複数の類似度演算手段と、上記複数の類似度演算手段での演算結果に基づいて、その中でも上記入力ベクトルデータに最も類似したテンプレートベクトルデータを特定し、対応するコードを出力するテンプレート特定手段とを備えることを特徴としている。
【0016】
また、本発明のベクトル量子化方法は、記憶された複数のテンプレートベクトルデータの中から入力ベクトルデータに類似したテンプレートベクトルデータを検索し、検索したテンプレートベクトルデータのコードを出力するベクトル量子化方法であって、上記検索を行う際に、上記入力ベクトルデータの特徴量と上記テンプレートベクトルデータの特徴量とを比較し、その比較の結果に基づいて、検索対象とするテンプレートベクトルデータを選択する検索対象選択の処理を行い、上記検索の処理は、上記テンプレートベクトルデータの個々の要素と上記入力ベクトルデータの対応する個々の要素との間で差分をとり、それぞれの絶対値の総和であるマンハッタン距離が最小となるテンプレートベクトルデータを検索するものであり、上記検索対象選択の処理は、あるテンプレートベクトルデータについて、上記入力ベクトルデータとの間で上記マンハッタン距離Mを演算するとともに、上記あるテンプレートベクトルデータとは異なる他のテンプレートベクトルデータの特徴量と上記入力ベクトルデータの特徴量との差分絶対値Dを演算し、上記マンハッタン距離Mと上記差分絶対値Dとを比較して、M≦Dの関係を有する場合に、上記他のテンプレートベクトルデータについては上記入力ベクトルデータとのマンハッタン距離の演算を省略するようにしたものであることを特徴とする。
【0017】
また、本発明のコンピュータ読み取り可能な記録媒体は、請求項1〜12の何れか1項に記載の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とする。
また、請求項13〜16の何れか1項に記載のベクトル量子化方法の処理手順をコンピュータに実行させるためのプログラムを記録しても良い。
【0018】
【発明の実施の形態】
(第1の実施形態)
図1は、本発明によるベクトル量子化装置の一実施形態を示すブロック図である。図1において、101は複数のテンプレートベクトルデータを記憶するテンプレート記憶部、102は類似度演算部であり、入力ベクトルデータ1aと、上記テンプレート記憶部101内のあるテンプレートベクトルデータ1bとがどれほど類似しているのかを数値化して表現する類似度を演算し、出力する。
【0019】
103は最大類似度検索部であり、上記類似度演算部102で各テンプレートベクトルデータについて演算された類似度1dに基づいて、入力ベクトルデータ1aと最も類似度が大きくなるテンプレートベクトルデータがどれなのかを判断する。また、107はアドレス指示部であり、テンプレート記憶部101内のテンプレートベクトルデータの読み出しアドレスを指示する。また、このアドレス指示部107は、最大類似度のテンプレートベクトルデータに対応するアドレスを、その入力ベクトルデータ1aについてのコード番号として出力する。
【0020】
以上のような構成のベクトル量子化装置において、本実施形態においては、新たに以下のような機能ブロックを追加している。すなわち、特徴量記憶部104と、特徴量演算部105と、演算省略判定部106である。
特徴量記憶部104は、テンプレート記憶部101内の各テンプレートベクトルデータの特徴量を記憶するものである。特徴量演算部105は、入力ベクトルデータ1aの特徴量を演算するものである。
【0021】
また、演算省略判定部106は、特徴量記憶部104から読み出されたテンプレートベクトルデータに関する特徴量1eと、特徴量演算部105で求められた入力ベクトルデータに関する特徴量1fと、場合によっては類似度演算部102で求められた類似度1dとを用いて、あるテンプレートベクトルデータが検索の対象となるか否か、言い換えれば、あるテンプレートベクトルデータと入力ベクトルデータとの類似度を演算する必要があるかを否かを判断する。
【0022】
この演算省略判定部106は、類似度演算部102およびアドレス指示部107に演算省略判定信号1gを出力し、類似度の演算を行うか否かをテンプレートベクトルデータ毎に制御する。例えば、あるテンプレートベクトルデータについて類似度の演算を省略できると判断した場合は、そのアドレスのテンプレートベクトルデータの読み出しはスキップし、類似度の演算を行わないようにする。
【0023】
本実施形態では以上の構成により、例えば、あるテンプレートベクトルデータの類似度の演算に先立って、入力ベクトルデータの特徴量とテンプレートベクトルデータの特徴量とを比較し、その比較結果に基づいて、上記あるテンプレートベクトルデータについて類似度の演算を行うか否かを決定するようにする。これにより、ベクトル量子化装置で行われる類似度演算を少なくすることができ、検索に必要な演算量を減少させることが可能となる。
【0024】
なお、上記に示した実施形態の説明では、入力ベクトルデータと最も類似度が大きくなる、つまり最も類似したテンプレートベクトルデータを探す操作を行っている。そのために最大類似度検索部103を備えている。しかし、本発明は最も類似度が大きくなるものを探す場合にとどまらず、類似度が実用上問題ない程度に大きくなるようなテンプレートベクトルデータを検索する場合にも応用が可能である。これは、最大類似度検索部103の動作を変更すれば容易に実現することができる。
【0025】
また、特徴量記憶部104内に記憶するテンプレートベクトルデータに関する特徴量は、検索の実行に先立ってあらかじめ演算して求めておいても良い。または、演算省略判定部106における判定のための演算と、特徴量演算部105における入力ベクトルデータの特徴量の演算と合わせても、類似度の演算に比べて少ない演算量で行えるならば、検索時に特徴量を演算しても全体の演算量は減少させることができる。
【0026】
図1に示したベクトル量子化装置の各部分は、専用のハードウェア回路で実現することも可能であるし、上述の処理を実行させるためのプログラムにより動くコンピュータで実現することも可能である。
【0027】
(第2の実施形態)
次に、本発明の第2の実施形態を図2を用いて説明する。図2は、上記図1に示したベクトル量子化装置をより具体的に実施した構成を示す図である。この図2では、2つのベクトルが類似しているか否かを数値化した類似度を求める関数としてマンハッタン距離を利用し、特徴量としてベクトルデータの要素の総和を利用した場合のベクトル量子化装置の構成を示している。なお、類似度としてマンハッタン距離を用いた場合、距離が小さいほうが類似度は大きい。
【0028】
最初に、演算が省略できる原理を説明する。
ベクトルデータの次元数(要素数)をn、テンプレート記憶部201内のテンプレートベクトル(コードベクトル)データの総数を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の値を探し出す操作に相当する。
【0029】
【数1】

Figure 0003676577
【0030】
ここで、以下の式(2) に示すような、入力ベクトルデータIの要素の総和とテンプレートベクトルデータTm の要素の総和との差の絶対値Dm と、上記式(1) に示したマンハッタン距離Mm との間には、Dm ≦Mm という関係が成り立つことに注目すると、以下のような議論が成り立つ。
【0031】
【数2】
Figure 0003676577
【0032】
すなわち、テンプレート記憶部201内にあるテンプレートベクトルデータTm と入力ベクトルデータIとのマンハッタン距離Mm が判明しているとする。このとき、テンプレート記憶部201内にあって、上記テンプレートベクトルデータTm とは別な任意のテンプレートベクトルデータTo と入力ベクトルデータIとについて、各々のベクトルデータの要素の総和をとり、その総和どうしの差の絶対値Do を計算した結果、Do ≧Mm となっている場合を仮定する。
【0033】
この場合、上述のDm ≦Mm という関係により、常にMo >Mm が成り立つ。よって、テンプレートベクトルデータTo と入力ベクトルデータIとのマンハッタン距離Mo を計算せずとも、差分絶対値Do を計算するだけで、テンプレートベクトルデータTo はテンプレートベクトルデータTm に比べて入力ベクトルデータIに類似していないことが分かる。つまり、テンプレートベクトルデータTo を検索対象から除外できることになる。
【0034】
以上だけを見ると、テンプレートベクトルデータTo について、マンハッタン距離Mo を計算しなくても、差分絶対値Do を計算する必要があるのならば、検索に関わる処理は減少していないように見える。しかし、差分絶対値Do の演算において、テンプレートベクトルデータTm の特徴量である要素の総和ΣTmi(式(2) 中の右辺第2項)は、あらかじめ計算して特徴量記憶部204に記憶しておくことができる。
【0035】
よって、差分絶対値Do の算出は、入力ベクトルデータIの特徴量の演算と、これと特徴量記憶部204内に記憶されている特徴量との差をとる演算を行うだけで済む。また、入力ベクトルデータIの特徴量の算出は、1つの入力ベクトルデータに対して1回の演算で済む。このため、差分絶対値Do の算出は、マンハッタン距離Mo の算出に比べて非常に少ない演算量で行うことができる。
【0036】
なお、特徴量としてベクトルデータの要素の総和を用いることと、要素の平均値を用いることとは等価である。何故ならば、要素の平均値とは要素の総和を要素数で割っただけのものに過ぎないからである。
【0037】
次に、図2を使って具体的に説明する。
図2において、入力ベクトルデータIおよびテンプレート記憶部201内の複数のテンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…は、例として共に6次元のベクトルデータとなっているが、任意の次元でかまわない。特徴量記憶部204には、テンプレート記憶部201内に記憶されている各テンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…の特徴量(例えば要素の総和)ΣT1 ,ΣT2 ,ΣT3 ,ΣT4 ,…が記憶されている。
【0038】
図2中では、テンプレート記憶部201内の各テンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…と、すぐ左側に位置する特徴量記憶部204内の各特徴量ΣT1 ,ΣT2 ,ΣT3 ,ΣT4 ,…とは対応している。つまり、テンプレートベクトルデータT1 の特徴量はΣT1 、テンプレートベクトルデータT2 の特徴量はΣT2 、以下同様となる。これらのテンプレート記憶部201および特徴量記憶部204内のデータは、アドレスカウンタ208からのアドレスに従って順に読み出される。
【0039】
また、マンハッタン距離演算部202は、テンプレート記憶部201から転送された2bで示される各テンプレートベクトルデータTm と、2aで示される入力ベクトルデータIとのマンハッタン距離Mm (m=1〜k)を求め、2dで示されるマンハッタン距離データを出力する。また、最小マンハッタン距離記憶部203は、演算省略判定部207による更新制御に従って、今までに計算されたマンハッタン距離Mm のうち、最小の距離minMを記憶する。
【0040】
ある1つの入力ベクトルデータIについて全てのテンプレートベクトルデータTm との演算が終了したとき、この最小マンハッタン距離記憶部203に記憶されているものに対応するテンプレートベクトルデータが、入力ベクトルデータIに最も類似するデータである。そして、このように最も類似する(最も距離が短い)テンプレートベクトルデータのアドレスminAは、演算省略判定部207による更新制御に従って、アドレスカウンタ208から最小距離アドレス記憶部209に与えられて記憶されている。
【0041】
そこで、ある1つの入力ベクトルデータIについて処理が終わったときに、この最小距離アドレス記憶部209に記憶されているアドレスminAが、当該ブロックのコード番号に相当することになる。なお、このコード番号は、1つの入力ベクトルデータIの処理が終わる毎に出力しても良いし、1枚の画像全体の処理が終わったときにまとめて出力するようにしても良い。
【0042】
特徴量演算部205は、入力ベクトルデータIの各要素の総和を演算し、その結果を出力する。少なくとも同じ入力ベクトルデータIについて類似度を求める演算を行っている間は、ここで演算した特徴量は保存されている。特徴量差分演算部206は、上記特徴量演算部205で求められた入力ベクトルデータIの特徴量2fと、特徴量記憶部204から読み出されたテンプレートベクトルデータTm の特徴量2eとの差分を演算し、出力する。
【0043】
演算省略判定部207は、最小マンハッタン距離記憶部203より出力される、今までに分かっている最小のマンハッタン距離2cと、特徴量差分演算部206で演算された特徴量の差分2gとを利用して、テンプレートベクトルデータTm と入力ベクトルデータIのマンハッタン距離を演算する必要があるか否かを判別する。
【0044】
そして、その判別結果をマンハッタン距離演算部202に伝え、必要でない演算を省略するようにするとともに、最小マンハッタン距離記憶部203、アドレスカウンタ208および最小距離アドレス記憶部209に所定の制御信号を出力し、それぞれの内容の更新制御を行う。
【0045】
アドレスカウンタ208の内容は、1回の処理が終わることに更新されるが、最小マンハッタン距離記憶部203および最小距離アドレス記憶部209の内容は、所定の条件を満たしたときのみ更新される。なお、テンプレートベクトルデータを読み出す前にアドレスカウンタ208の値をインクリメントすれば、マンハッタン距離演算部202への制御信号は必ずしも必要ではない。
【0046】
次に、上記のように構成したベクトル量子化装置のベクトル量子化の手順を示す。演算の省略の様子も同時に説明する。
1)まず、入力ベクトルデータIの特徴量を特徴量演算部205によって演算し、その結果を保存する。この特徴量は、1つの入力ベクトルデータIに対して1度だけ演算すればよい。
【0047】
2)次に、入力ベクトルデータIと、テンプレート記憶部201内の第1番目のテンプレートベクトルデータT1 とのマンハッタン距離M1 をマンハッタン距離演算部202によって演算する。この演算結果はM1 =70である。この段階ではマンハッタン距離はまだ1つしか演算していないので、現在までに見つかっている最小のマンハッタン距離minMは、M1 となる。したがって、このマンハッタン距離M1 を最小マンハッタン距離記憶部203に記憶する。つまり、minM=M1 =70である。
【0048】
3)次に、特徴量記憶部204内の第2番目のテンプレートベクトルデータT2 の特徴量ΣT2 と、特徴量演算部205に保存されている入力ベクトルデータIの特徴量2f(この例では265)との差の絶対値D2 を特徴量差分演算部206で求める。この演算結果は、D2 =4である。
【0049】
4)さらに、手順3)で求めた特徴量の差の絶対値D2 と、現在までに見つかっている最小のマンハッタン距離minMとをもとに、第2番目のテンプレートベクトルデータT2 と入力ベクトルデータIとのマンハッタン距離M2 を演算する必要があるかどうかを、演算省略判定部207で判断する。今の場合、D2 <minM(=M1 )であるから、第2番目のテンプレートベクトルデータT2 と入力ベクトルデータIとのマンハッタン距離M2 の演算は省略できない。
【0050】
5)手順4)により、第2番目のテンプレートベクトルデータT2 と入力ベクトルデータIとのマンハッタン距離M2 の演算が必要と判定されたので、マンハッタン距離演算部202はこの演算を行う。この演算の結果は、M2 =22であるが、これは今までに見つかっている最小のマンハッタン距離minM(=M1 )よりも小さいので、minMの値をM2 に更新する。よって、minM=M2 となる。つまり、最小マンハッタン距離記憶部203には第2番目のテンプレートベクトルデータT2 に関するマンハッタン距離M2 が記憶される。
【0051】
6)次に、特徴量記憶部204内の第3番目のテンプレートベクトルデータT3 の特徴量ΣT3 と、特徴量演算部205に保存されている入力ベクトルデータIの特徴量2fとの差の絶対値D3 を特徴量差分演算部206で求める。この演算結果は、D3 =46である。
【0052】
7)さらに、手順6)で求めた特徴量の差の絶対値D3 と、現在までに見つかっている最小のマンハッタン距離minMとをもとに、第3番目のテンプレートベクトルデータT3 と入力ベクトルデータIとのマンハッタン距離M3 を演算する必要があるかどうかを、演算省略判定部207で判断する。今の場合、D3 >minM(=M2 )であるから、第3番目のテンプレートベクトルデータT3 と入力ベクトルデータIとのマンハッタン距離M3 の演算は省略できる。
【0053】
8)手順7)により、第3番目のテンプレートベクトルデータT3 と入力ベクトルデータIとのマンハッタン距離M3 の演算は省略できると判明したので、この演算は省略する。そして、第4番目のテンプレートベクトルデータT4 の特徴量ΣT4 と入力ベクトルデータIの特徴量2fとの差の絶対値D4 を特徴量差分演算部206で演算する。その演算結果は、D4 =157である。
【0054】
9)手順8)で求めた特徴量の差の絶対値D4 と、現在までに見つかっている最小のマンハッタン距離minMとをもとに、第4番目のテンプレートベクトルデータT4 と入力ベクトルデータIとのマンハッタン距離M4 を演算する必要があるかどうかを、演算省略判定部207で判断する。今の場合、D4 >minM(=M2 )であるから、第4番目のテンプレートベクトルデータT4 と入力ベクトルデータIとのマンハッタン距離M4 の演算も省略できる。
【0055】
10)以下、同様の処理をm=kとなるまで繰り返す。
【0056】
図3は、上記した本実施形態によるベクトル量子化処理の手順を示すフローチャートである。以下、このフローチャートについて説明する。
図3において、まず最初にステップS1で入力ベクトルデータIを入力する。そして、ステップS2で、その入力ベクトルデータIの要素の総和(特徴量)を演算し、その結果を保存する。
【0057】
次に、ステップS3で、検索するテンプレートベクトルデータの番号(アドレス)をm=1、minA=1に初期化するとともに、現在までに見つかっている最小のマンハッタン距離minMの値を∞に初期化する。次に、ステップS4で、アドレスカウンタmの値がテンプレートベクトルデータの数kを越えたかどうかを判断し、越えていない場合はステップS5に進む。
【0058】
ステップS5では、検索するテンプレートベクトルデータTm についてあらかじめ記憶されている特徴量と、演算の結果保存されている入力ベクトルデータIの特徴量との差の絶対値Dm を求める。そして、ステップS6で、その演算した差分絶対値Dm が、現在までに見つかっている最小のマンハッタン距離minMの値以上かどうかを判断する。
【0059】
ここで、差分絶対値Dm が現在の最小マンハッタン距離minMの値以上の場合は、ステップS10でアドレスカウンタmの値をインクリメントした後、ステップS4の処理に戻る。一方、上記差分絶対値Dm が現在の最小マンハッタン距離minMより小さい場合は、ステップS7に進み、入力ベクトルデータIと、検索するテンプレートベクトルデータTm とのマンハッタン距離Mm の演算を実行する。
【0060】
そして、ステップS8で、演算したマンハッタン距離Mm が現在の最小マンハッタン距離minM以上であるかどうかを判断し、そうである場合はステップS10でアドレスカウンタmの値をインクリメントした後、ステップS4の処理に戻る。一方、演算したマンハッタン距離Mm が現在の最小マンハッタン距離minMより小さい場合は、ステップS9に進む。
【0061】
ステップS9では、最小マンハッタン距離minMの値を上記演算したマンハッタン距離Mm に更新するとともに、探し出したテンプレートベクトルデータの番号(アドレス)を最小距離アドレス記憶部209に記録する。その後、ステップS10でアドレスカウンタmの値をインクリメントした後、ステップS4の処理に戻る。
【0062】
以上の手順の中でも示した通り、図2に記載した構成のベクトル最子化装置を用いれば、入力ベクトルデータIに最も類似したテンプレートベクトルデータを検索する操作を行う際に、その検索に必要な類似度の演算を少なくすることができ、高速に演算を行うことができる。
【0063】
なお、図2では、テンプレート記憶部201内の各テンプレートベクトルデータT1 ,T2 ,T3 ,T4 ,…は任意の順で並んでいたが、特徴量の大きい順に並べておいても良い。テンプレートベクトルデータが特徴量順に並んでいる場合は、テンプレートベクトルデータを検索する際、入力ベクトルデータIと特徴量が最も近いテンプレートベクトルデータから検索をすることが容易になる。特徴量が近い2つのベクトルデータは、類似度も大きい傾向があるので、入力ベクトルデータと特徴量が最も近いテンプレートベクトルデータから検索を行うことで、類似度の演算をより多く省略することができる。
【0064】
また、本実施形態では、ベクトル量子化装置が取り扱うベクトルデータの次元を6次元としたが、ベクトルデータの次元は任意で良い。
また、図2のベクトル量子化装置は、専用のハードウェアで実現することも可能であるし、コンピュータ上のプログラムによってソフトウェアで実現することもできる。ハードウェアで実現する場合、新たに設けた特徴量演算部205、特徴量差分演算部206および演算省略判定部207は、それ程大きなハードウェア面積を必要としない。
【0065】
また、上記実施形態において、ベクトルデータの特徴量としては、ベクトルデータの要素の総和に限定されるものではない。例えば、ベクトルデータの分散を使いたい場合は、特徴量演算部205と演算省略判定部207とを分散演算用のものに変更すれば良い。また、類似度を求める関数をマンハッタン距離以外の関数、例えばユークリッド距離を求める関数等に変更したい場合は、マンハッタン距離演算部202と最小マンハッタン距離記憶部203と演算省略判定部207とを変更すれば良い。
【0066】
(第3の実施形態)
第3の実施形態では、上記第2の実施形態で示したベクトル量子化装置への入力として画像データを用い、上記実施形態のベクトル量子化装置を画像圧縮装置に応用した例を、図4および図5を使って説明する。まず、ベクトル量子化装置を使って画像圧縮を行う場合の一般的な例を図4により説明する。
【0067】
図4において、入力される原画像401は、画素と呼ばれる要素が多数集まって構成されている。個々の画素は輝度値、あるいは色差信号などの情報を持っている。入力画像401中から複数画素で構成されるブロックを取り出したのが、入力画像ブロック402である。図4の例では、入力画像ブロック402の大きさとして4×4画素を選んでいるが、この大きさは何であっても良い。
【0068】
入力画像ブロック402は、上述の通り複数の画素を持っているから、各々の画素が持つ輝度値などを集めてベクトルデータとすることができる。これを図2で説明したベクトル量子化装置の入力ベクトルデータIとする。
【0069】
人間の視覚特性上、入力画像401中の幾つかの入力画像ブロックは、見た目では殆ど同じに見える場合がある。こういった同じに見える複数の入力画像ブロックを、より少ない数の画像ブロックで代表させることが可能である。画像ブロックコードブック403は、入力画像401上の多数の入力画像ブロックを代表する画像ブロック(テンプレートベクトルデータ)を複数持ったものである。テンプレートベクトルデータは、画像ブロックコードブック403内の画像ブロック各々の画素が持つ輝度をベクトルデータとしたものである。
【0070】
ベクトル量子化装置では、入力画像401全体を画像ブロックとして分割し、各々の画像ブロック402を入力ベクトルデータとして、その入力ベクトルデータに類似するテンプレートベクトルデータをコードブック403内から検索する。そして、該当するテンプレートベクトルデータの番号のみを転送することで、画像を圧縮することが可能である。圧縮された画像を再生して再現画像404を得るには、上記転送された番号に対応するテンプレートベクトルデータをコードブック403から読み出し、画像に当てはめれば良い。
【0071】
本実施形態において、入力画像401中から画像ブロック402で示される入力ベクトルデータを取り出してしまえば、類似度を求める関数としてマンハッタン距離を用い、特徴量としてベクトルデータの要素の総和を用いた場合、ベクトル量子化の手順は上述した第2の実施形態と全く同一である(ここではその詳細な手順の説明は省略する)。よって、入力ベクトルデータに類似するテンプレートベクトルデータを検索する際、検索にまつわる演算を少なくできるので、高速な画像の圧縮が可能となる。
【0072】
以上のような方法によって画像データに対してベクトル量子化の操作を行ったときに、マンハッタン距離の演算をどれほど省略できるのかを示したのが、図5である。図5は、屋外風景写真、屋内風景写真、人物写真を入力画像としたときに、様々なテンプレートベクトルデータ群に対して、各々のテンプレートベクトルデータ群の中でマンハッタン距離を演算しなければならないテンプレートベクトルデータの割合を表している。
【0073】
この図5によると、テンプレートベクトルデータ群の中で、入力ベクトルデータとのマンハッタン距離を演算しなければならないテンプレートベクトルデータは、せいぜい14%以内となっていることが分かり、本実施形態の有用性が示されている。
【0074】
なお、以上の例では画素の輝度値をベクトルデータとしたが、輝度値だけでなく、各画素が有する数値化された情報は何であれベクトルデータとすることができる。また、入力画像401中から入力画像ブロック402を取り出した後、離散余弦変換をはじめとする様々な変換をかけ、変換後の画像からベクトルデータを作ってベクトル量子化装置の入力としても良い。
【0075】
また、入力ベクトルデータが画像データの場合は、特徴量としてベクトルデータの要素の総和を用いても、画像データを周波数分解した際の直流成分を用いても、両者は等価である。何故ならば、上記直流成分は、ベクトルデータの要素の総和に対してある係数を掛けたものに過ぎないからである。
【0076】
(第4の実施形態)
上記第2の実施形態で示したベクトル量子化装置への入力として画像データを用いた場合、ベクトルデータの特徴量として、画像特有の性質を使うことが可能である。本実施形態では、ベクトル量子化装置の入力を画像データとした場合の画像データ特有な特微量について説明し、幾つかの特徴量を組み合わせてベクトル量子化処理の演算量を減少させることが可能であることを以下に示す。
【0077】
まず、画像データに対して、類似度を演算する関数をマンハッタン距離とし、特徴量としてベクトル要素の総和を用いた場合の問題点を、図6を使って説明する。図6において、入力ベクトルデータに対応する画像ブロック601と、テンプレートベクトルデータに対応する画像ブロック602は、ほぼ同じブロックである。一方、入力ベクトルデータに対応する画像ブロック601と、もう一方のテンプレートベクトルデータに対応する画像ブロック603は、全く上下左右が反転したブロックとなっており、見た目では全く異なるものである。
【0078】
実際に、入力画像ブロック601とテンプレート画像ブロック602,603との画素の輝度値を取り出して、それぞれをベクトルデータとしてマンハッタン距離を演算すると、テンプレート画像ブロック603は、もう一方のテンプレート画像ブロック602と比較して入力画像ブロック601と類似していないことが明らかになる。
【0079】
しかしながら、特徴量であるベクトルデータの要素の総和は、2つのテンプレート画像ブロック602と603とで等しい。このことは、特徴量としてベクトルデータの要素の総和を使っただけでは、無駄な類似度演算が多く残ることを意味している。
この問題を解決するための手段としては、特徴量として、ベクトルデータの各要素の一部を画素の明暗が反転するように操作した後の各要素の総和を使うという手段が考えられる。
【0080】
図7は、ベクトルデータの要素の一部の明暗を反転させた場合、画像ブロックがどのように変化するかを表している。初期の画像ブロック701に対して、3種類の反転パターン702〜704を用いて、黒で塗りつぶされた部分の画素が明暗反転するように操作した結果が、反転後画像ブロック705〜707である。このように、1つの画像に対して異なる反転パターン702〜704で明暗反転をすると、初期の画像ブロックが同じでも、反転後画像ブロック705〜707の画素の輝度値の総和708〜710は異なった値となる。
【0081】
また、図8は、ベクトルデータの要素の総和が等しい場合でも、ベクトルデータの要素の一部を画素の明暗が反転するように操作してから、ベクトルデータの要素の総和を求めて特徴量とすると、特徴量に差が現れてくる例を示したものである。図8において、初期の画像ブロック801と802は、画素の輝度値の総和は全く同じである。よって、ベクトルデータの要素の総和、すなわち、ブロック内の画素の輝度値の総和を特徴量としても両者は全く区別できない。
【0082】
このような2つの初期画像ブロック801,802に対して、同じ反転パターン803の黒塗りの部分を明暗反転し、反転後の画像ブロック804,805について画素の輝度値の総和806,807を計算すると、両者は全く異なった値となる。
【0083】
本実施形態は、以上のことを利用して、無駄なマンハッタン距離の演算を更に減少させることができるようにしたものである。すなわち、以上の例からも分かるように、ある特徴量を使ったときには省略できない類似度の演算が、別の特徴量を使うと省略できる場合がある。この場合、異なる特徴量を2つ以上利用して演算量を更に減少させることができる。
【0084】
具体的には、ある特徴量でテンプレートベクトルデータの中から類似度を演算しなければならない範囲を絞り込み、別の特徴量で更に範囲を絞り込むという、2段階で特徴量を使う方法や、同時に2つの特徴量を使って、特徴量の差が大きい方を演算省略の判断に使う方法などが挙げられる。
【0085】
なお、ある画像から入力画像ブロックを取り出してきてベクトル量子化装置の入力とする場合、上述の「ベクトルデータの要素の一部を画素の明暗が反転するように操作した後のベクトルデータの総和」の他にも、画像特有の特徴量がいくつか考えられる。以下では、画像ブロックの四隅の画素の情報を特徴量として使う方法と、画像ブロック上の画素値の変化の様子を特徴量として使う方法とを説明する。
【0086】
最初に、画像ブロックの四隅の画素の情報を特徴量として使う方法について説明する。画像ブロックを入力画像中から取り出してきた場合に、ブロック内で画素値がある方向に滑らかに変化する画像に対しては、画像ブロックの四隅から特徴量を得ることができる。図9は、画像ブロックの四隅を特徴量として使う方法を説明した図である。
【0087】
図9(a)において、画像ブロック901は、ブロックの右下から左上方向に輝度が徐々に明るくなる変化をしている。この画像ブロック901から四隅903を取り出し、それらの4画素の輝度値を比較すると、画像ブロック901はどのような方向に輝度が変化しているのかを把握することができる。
【0088】
また、画像ブロック902とその四隅904は、画素値の変化する方向が上記とは異なる場合の一例を示すものであり、画像ブロックの右辺から左辺方向に輝度が徐々に明るくなる変化をしている。なお、903および904中に示した矢印は、画素の輝度の大小関係を示すものであり、矢印の先にある画素の方が輝度が大きい。また、輝度の大小に差がない場合には、線分で表している。
【0089】
このように、画像ブロックの四隅の画素の間で輝度を大小比較し、大小を判別することで、画像ブロックの特徴を捉えることができる。四隅の画素の間での輝度の大小パターンは幾通りもあるので、それらのパターンを番号付けして特徴量とすることができる。すなわち、図9(b)に示すように、四隅の画素の間での輝度の大小の各パターンに対して番号を付与し、その番号を特徴量として本実施形態のベクトル量子化装置に組み込むことができる。
【0090】
なお、図9では、画像ブロックの大きさを4×4画素としているが、この大きさは任意で良い。また、画素値として輝度値を用いているが、他の画素値(例えば色信号値)を用いても良い。
【0091】
次に、画像ブロック上での画素値の変化を特微量として使う方法を説明する。入力画像中から画像ブロックを幾つか切り出してくると、それらの画像ブロックの中には、画素値の変化の様子が似ているものがある。図10は、画素値の変化の周期および変化率が同じである2つの画像ブロック1001,1002を示している。これらの画像ブロック1001と1002は何れも左右方向にのみ画素値が変化している。
【0092】
画像ブロック1001の左右方向の画素値の変化は、もう一方の画像ブロック1002の左右方向の画素値の変化に所定の係数をかけて、変化の振幅を抑えたものに他ならない。このような状態を、画像ブロック1001,1002の画像ブロック上での画素値の変化のモードが同じであると言うことにする。
【0093】
画像ブロック上での画素値の変化のモードは多数あるので、それらの変化のモードを番号付けすることにより特徴量とすることができる。すなわち、画素値の変化のモードに対してそれぞれ番号を付与し、その番号を特徴量として本実施形態のベクトル量子化装置に組み込むことができる。
なお、この図10でも画像ブロックの大きさを4×4画素としているが、この大きさは任意で良い。
【0094】
最後に、第1の特徴量として画像ブロック上での画素値の変化、つまり画像ブロック上での変化のモードを番号付けしたものを用いるとともに、第2の特徴量として画像ブロック上の画素の値の総和、つまりベクトルデータの要素の総和を用いた場合の、第4の実施形態に係るベクトル量子化装置の構成を、図11を用いて説明する。なお、図11において、図2に示したブロックと同じブロックには同一の符号を付している。また、ここでは類似度をマンハッタン距離によって求めている。また、図11中ではベクトルデータを、相当する画像ブロックとして視覚的に表現している。
【0095】
入力ベクトルデータIは、第1の特徴量である画像ブロック上での画素値の変化モードによって分類される。すなわち、変化モード判定部1101は、画素値の変化モードの典型的なベクトルデータを集めた特徴テンプレート記憶部1102に記憶されているベクトルデータの情報をもとに、入力ベクトルデータIの第1の特徴量である画像ブロック上での画素値の変化モードが、テンプレートの何番に相当するものであるかを示すデータ2hを出力する。
【0096】
テンプレートベクトルデータを記憶するテンプレート記憶部201と、テンプレートベクトルデータの第2の特徴量であるベクトルデータの要素の総和を記憶する特徴量記憶部204の内部には、第1の特徴量の種類ごとにデータが並べられている。図11の例では、入力ベクトルデータIの第1の特徴量は“2”と判断されたので、テンプレート記憶部201と特徴量記憶部204の中から、第1の特徴量が“2”となる部分1103のみが選択され、残りの部分は検索対象外となる。
【0097】
テンプレート記憶部201および特徴量記憶部204の中で、以上のようにして第1の特徴量が“2”となる部分1103に関してのみ、上記第2の実施形態と同様の手順でテンプレートベクトルデータの検索を行う。すなわち、入力ベクトルデータIの第2の特徴量を特徴量演算部205で演算し、その結果2fと、特徴量記憶部204内の特徴量2eとを用いて、特徴量差分演算部206ならびに演算省略判定部207により、テンプレート記憶部201内の第1の特徴量が“2”となるテンプレートベクトルデータの中でも特にマンハッタン距離の演算が必要ないものを判断する。
【0098】
以上のように、第4の実施形態によれば、第2の実施形態で説明したように特徴量を単独で使う場合に比べて、より多くの演算を省略することができる。これは、第1の特徴量によってあらかじめ検索対象となるテンプレートベクトルデータの範囲を限定し、第2の特徴量で更に検索対象を絞り込むようにしているからである。これによって、特徴量を1つだけ使う場合に比べてより多くの演算の省略が可能となり、より高速に演算を行うことができる。
【0099】
また、テンプレートベクトルデータは、第1の特徴量だけでなく、第2の特徴量の大きさ順によっても並べることで2次元的な配列にしておくことにより、入力ベクトルデータIと第2の特徴量が似たテンプレートベクトルデータから検索を始めることができるので、入力ベクトルデータIと類似するテンプレートベクトルデータをより効率的に検索することができる。
なお、図11では、画像ブロックの大きさとして4×4画素、つまりベクトルデータに直せば16次元のものを例に説明したが、この大きさは任意である。
【0100】
(第5の実施形態)
次に、本発明の第5の実施形態について説明する。第5の実施形態では、1つのベクトルデータを幾つかの部分に分解し、分解した各々の部分についての特徴量を利用してテンプレートベクトルデータの検索にまつわる演算量を減少させる方法を説明する。
【0101】
図12は、第5の実施形態によるベクトル量子化装置の構成例を示すブロック図である。図12では、4×4画素で構成される画像ブロックを16次元の入力ベクトルデータとし、この入力ベクトルデータを4次元のベクトル4つに分割して各々の特徴量を求め、それを利用して類似度の演算を減少させる方法を説明している。なお、図12中では、画像ブロックの形でベクトルデータを視覚的に表現している。また、図12の例では、特徴量として、ベクトルデータの各要素の平均値を利用している。
【0102】
図12において、部分毎の平均値演算部1201は、入力ベクトルデータd1を4つの部分(2×2画素のブロック)に分割し、各々の部分について特徴量である平均値を演算する。これにより、1つの入力ベクトルデータd1から特徴量は4つ算出され、それらを1つの特徴量ベクトルデータd2として出力する。平均値演算部1201内に視覚的に表現した4つのブロックの各々は、4つに分割された領域の特徴量を示している。
【0103】
一方、テンプレート記憶部1202に記憶されるテンプレートベクトルデータについては、あらかじめ、入力ベクトルデータと同様の手順で4分割された領域毎に特徴量が求められて1つの特徴量ベクトルデータが生成される。そして、その特徴量ベクトルデータの似ているもの同士を集めて集合とし、集合毎にテンプレートベクトルデータが記憶される。また、各集合毎にユニークな番号を付ける。例えば枠1205で示される縦1列が、1つの集合に相当する。
【0104】
さらに、テンプレートベクトルデータの上記集合を代表する特徴量ベクトルデータ1206が各集合毎に生成され、これもテンプレート記憶部1202に記憶される。これらの各集合を代表する特徴量ベクトルデータ1206のことを、以下では「テンプレート概形データ」と称する。テンプレート概形データ1206には、上記集合と同じ番号が振られている。このテンプレート概形データ1206および番号は、テンプレート概形データ記憶部1203にも保存される。
【0105】
入力ベクトルデータd1から抽出された特徴量ベクトルデータd2は、テンプレート概形データ記憶部1203からの各テンプレート概形データd3と共に概形判断部1204に入力される。概形判断部1204は、入力ベクトルデータd1の特徴量ベクトルデータd2と最も似ているテンプレート概形データを判断し、その番号d4を出力する。これにより、テンプレート記憶部1202からは、出力された番号d4に対応する集合のテンプレートベクトルデータのみが読み出される。
【0106】
類似度演算部1207は、概形判断部1204より出力された番号d4に対応するテンプレートベクトルデータの集合のみを検索対象として類似度の演算を実行する。図12の例では、概形判断部1204より“4”の番号が出力されているので、類似度演算部1207は、これに対応する集合1205のテンプレートベクトルデータのみを対象として類似度の演算を行う。これにより、テンプレートベクトールデータの検索にまつわる演算量を減少させることができる。
【0107】
なお、以上の実施形態ではテンプレート記憶部1202内にテンプレート概形データ1206も併せて記憶しているが、入力される番号d4に対応するテンプレートベクトルデータの集合を識別できるように構成していれば、このテンプレート概形データ1206は必ずしも記憶する必要はない。
また、上記の実施形態では、入力ベクトルデータの大きさとして4×4画素を用い、分割する各々の大きさを2×2画素としたが、これらは何れも単なる例に過ぎず、これに限定されるものではない。
【0108】
(第6の実施形態)
次に、本発明の第6の実施形態を説明する。以上の各実施形態では、検索対象とするテンプレートベクトルデータの数を減らすことはできたが、それらは全数順次に検索する必要がある。これに対して、本実施形態では、ベクトル量子化装置をハードウェアにより構成する場合に、類似度の演算を並列化する仕組みを導入することにより、更なる演算の高速化を図るものである。
【0109】
図13は、本実施形態によるベクトル量子化装置のハードウェア構成例を示す図である。図13において、テンプレート記憶装置1301は、複数のメモリ部2,3,…,4を備え、2次元的な記憶領域を有しており、それぞれに複数のテンプレートベクトルデータを記憶している。そして、アドレス部1のある部分が指定されると、そのアドレスで示される行(横一列)に記憶されている複数のテンプレートベクトルデータが各メモリ部2,3,…,4から並列的に読み出されるようになっている。
【0110】
このテンプレート記憶装置1301には、複数のテンプレートベクトルデータが、図の左下から右上に向かって特徴量(例えばベクトルデータの各要素の平均値)の大きさ順に格納されている。例えば、2行目(アドレス01)に格納されているテンプレートベクトルデータの特徴量は、1行目(アドレス00)に格納されているテンプレートベクトルデータの特徴量より大きい。
【0111】
したがって、同じ行アドレスには、ある程度特徴量の似通ったテンプレートベクトルデータが複数格納されている。なお、行を跨いで同じ特徴量のテンプレートベクトルデータが存在する場合もあり得る。特徴量範囲記憶装置1302は、同じ行に格納されているテンプレートベクトルデータの特徴量の範囲を記憶している。
【0112】
また、特徴量演算装置1303は、入力ベクトルデータの特徴量(ベクトルデータの各要素の平均値)を求めるものである。検索開始行決定装置・検索行カウンタ1304は、この特徴量演算装置1303により算出された入力ベクトルデータの特徴量と、特徴量範囲記憶装置1302に記憶されている特徴量の範囲とに基づいて、類似度の演算を行うべきテンプレートベクトルデータの検索範囲を決定する。
【0113】
すなわち、特徴量の近似している2つのベクトルは類似度が大きい傾向があるので(言い換えると、特徴量の似ていない2つのベクトルは類似度が小さい傾向がある)、入力ベクトルデータの特徴量が特徴量範囲記憶装置1302内のどの範囲に属するかを見ることによって、テンプレート記憶装置1301内のどの行に、入力ベクトルデータとの類似度が大きくなるテンプレートベクトルデータがあるかを判断できる。そして、その行のみを対象として類似度の演算を実行すれば足りることとなる。
【0114】
そこで、検索開始行決定装置・検索行カウンタ1304は、算出された入力ベクトルデータの特徴量と、特徴量範囲記憶装置1302内の特徴量の範囲とに基づいて、入力ベクトルデータの特徴量とある程度近似する特徴量を持ったテンプレートベクトルデータが格納されている1つまたは複数の行を検索範囲1307として決定し、検索行カウンタの値を検索開始行1308から順次インクリメントしていく。
【0115】
これにより、上記検索行アドレスで指定される行の各テンプレートベクトルデータがメモリ部2,3,…,4より並列的に読み出され、類似度演算装置1305に与えられる。類似度演算装置1305は、列毎の類似度演算・記憶装置5,6,…,7を備えており、各メモリ部2,3,…,4から読み出された複数のテンプレートベクトルデータを並列的に処理し、それぞれの列の中での最大類似度とそれを与えたときの行アドレスとを特定する。
【0116】
各類似度演算・記憶装置5,6,…,7は、例えば、図14のように構成される。図14において、類似度演算装置1401は、入力ベクトルデータと各テンプレートベクトルデータとの類似度を順次算出し、その算出結果を類似度一時記憶装置1402に格納する(なお、この類似度一時記憶装置1402は必ずしも必要ではない)。比較器1403は、類似度一時記憶装置1402からの類似度と、最大類似度記憶装置1404に格納されている、現在までに見つかっている最大類似度とを比較し、どちかが大きいかを判断する。
【0117】
ここで、類似度一時記憶装置1402から与えられる今回算出された類似度の方が大きい場合は、その旨を内容更新制御装置1405に伝え、この制御に従って最大類似度記憶装置1404の内容を上記今回算出された類似度の値に書き換える。これと同時に内容更新制御装置1405は、そのとき検索開始行決定装置・検索行カウンタ1304より入力されている検索行アドレスを最大類似度アドレス記憶装置1406に記憶する。
【0118】
ある1つの入力ベクトルデータについて検索範囲1307内の全てのテンプレートベクトルデータとの類似度演算が終了したとき、この最大類似度記憶装置1404および最大類似度アドレス記憶装置1406に記憶されているものが、検索範囲1307の各列の中で入力ベクトルデータに最も類似するテンプレートベクトルデータの類似度およびそれを与えたときの行アドレスである。そして、これらのデータは、図13の最大類似度テンプレートアドレス特定装置1306に出力される。
【0119】
最大類似度テンプレートアドレス特定装置1306は、各列の類似度演算・記憶装置5,6,…,7より出力されたそれぞれの列における最大類似度およびそれを与えたときの行アドレスとに基づいて、テンプレート記憶装置1301全体の中で最も類似度が大きいテンプレートベクトルデータのアドレスを特定し、それをコード番号として出力する。
【0120】
図15は、上記図13および図14のように構成したベクトル量子化装置の動作を示すフローチャートである。図15において、まずステップS11で初期化処理を行う。ここでは、各類似度演算・記憶装置5,6,…,7内に備えられた最大類似度記憶装置1404および最大類似度アドレス記憶装置1406の記憶内容をクリアする処理を行う。
【0121】
次に、ステップS12で、特徴量演算装置1303によって入力ベクトルデータの特徴量を計算する。そして、ステップS13で、その算出した入力ベクトルデータの特徴量をもとに特徴量範囲記憶装置1302内の情報を参照し、入力ベクトルデータと特徴量が最も似ているテンプレートベクトルデータが記憶されている行を特定する。そして、その特定した行から一定のオフセットを引いて検索開始行1308を決定する。
【0122】
次に、ステップS14で、検索開始行決定装置・検索行カウンタ1304に上記決定した検索開始行1308をセットする。検索行カウンタは、現在検索している行(アドレス)を指し示すものである。次のステップS15では、上記検索行カウンタが示している行に格納されている複数のテンプレートベクトルデータについて、各列の類似度演算・記憶装置5,6,…,7で並列的に類似度を算出し、その結果に応じてそれぞれの列で適宜最大類似度記憶装置1404および最大類似度アドレス記憶装置1406の更新処理を実行する。
【0123】
そして、ステップS16で検索行カウンタの値がまだ検索範囲1307内かどうかを判断し、そうであればステップS17に進んで上記検索行カウンタを1だけ増やした後、ステップS15の処理に戻る。一方、検索行カウンタが所定の値になって検索範囲1307を越えると、検索処理は終了する。この段階で、各列の最大類似度記憶装置1404には、その列内で最も大きかった類似度の値が記憶されており、各列の最大類似度アドレス記憶装置1406には、その列内で最も大きな類似度を出したテンプレートベクトルデータの格納されていた行アドレスが記憶されている。
【0124】
最後に、ステップS18で最大類似度テンプレートアドレス特定装置1306は、各列の最大類似度記憶装置1404に記憶されている類似度をもとに、どの列に入力ベクトルデータとの類似度が最も大きいテンプレートベクトルデータがあるかを判断し、その列アドレスを特定する。さらに、その特定した列の最大類似度アドレス記憶装置1406に記憶されている行アドレスと合わせて最終的なアドレスを発生する。
【0125】
以上のように、第6の実施形態によれば、ベクトルデータから抽出される特徴量に基づいて検索対象の範囲を絞り込んでいるので、類似度演算を行うテンプレートベクトルデータの数を少なくすることができ、演算時間を短くすることができる。さらに、本実施形態では、ベクトル量子化装置をハードウェア構成するに当たって、類似度の演算を並列処理する仕組みを取り入れているので、演算時間を更に短くすることができる。
【0126】
なお、上述のように検索範囲をテンプレート記憶装置1301内の一部の行に限定した場合、入力ベクトルデータとの類似度が最大となるテンプレートベクトルデータを必ず選択できるという保証はなくなる。しかしながら、特徴量の似通った範囲内で検索を行っているので、見た目の上では問題ないほど似ているテンプレートベクトルデータが選ばれることとなり、実用上問題なく適用することができる。
【0127】
(その他の実施形態)
上記様々な実施形態に示した各機能ブロックおよび処理手順は、ハードウェアにより構成しても良いし、CPUあるいはMPU、ROMおよびRAM等からなるマイクロコンピュータシステムによって構成し、その動作をROMやRAMに格納された作業プログラムに従って実現するようにしても良い。また、上記各機能ブロックの機能を実現するように当該機能を実現するためのソフトウェアのプログラムをRAMに供給し、そのプログラムに従って上記各機能ブロックを動作させることによって実施したものも、本発明の範疇に含まれる。
【0128】
この場合、上記ソフトウェアのプログラム自体が上述した各実施形態の機能を実現することになり、そのプログラム自体、およびそのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、上記ROMやRAMの他に、例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−I、CD−R、CD−RW、DVD、zip、磁気テープ、あるいは不揮発性のメモリカード等を用いることができる。
【0129】
また、コンピュータが供給されたプログラムを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等の共同して上述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
【0130】
さらに、供給されたプログラムがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【0131】
【発明の効果】
本発明は上述したように、検索対象の範囲を狭く制限することができ、入力ベクトルデータとテンプレートベクトルデータとの類似度を求める演算量を少なくすることができる。これにより、ベクトル量子化の演算を全体として高速に行うことができる。
【0132】
また、本発明の他の特徴によれば、異なる複数の特徴量を用いて検索対象とするテンプレートベクトルデータを選択するようにしたので、検索対象の範囲を更に狭く制限することができ、ベクトル量子化の演算を更に高速に行うことができる。
また、本発明のその他の特徴によれば、検索対象とされた複数のテンプレートベクトルデータを並列的に処理する仕組みを導入したので、ベクトル量子化の演算を更に高速に行うことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態によるベクトル量子化装置の構成を示す図である。
【図2】本発明の第2の実施形態によるベクトル量子化装置の構成を示す図である。
【図3】本発明の第2の実施形態によるベクトル量子化装置の動作を示すフローチャートである。
【図4】本発明の第3の実施形態を示し、ベクトル量子化装置への入力を画像データとして画像圧縮を行う方法を説明するための概念図である。
【図5】本発明の第3の実施形態を示し、類似度の演算確率を示す図である。
【図6】本発明の第4の実施形態について説明するための図である。
【図7】本発明の第4の実施形態について説明するための図である。
【図8】本発明の第4の実施形態について説明するための図である。
【図9】本発明の第4の実施形態について説明するための図である。
【図10】本発明の第4の実施形態について説明するための図である。
【図11】本発明の第4の実施形態によるベクトル量子化装置の構成を示す図である。
【図12】本発明の第5の実施形態によるベクトル量子化装置の構成を示す図である。
【図13】本発明の第6の実施形態によるベクトル量子化装置の構成を示す図である。
【図14】図13に示した類似度演算・記憶装置の構成を示す図である。
【図15】本発明の第6の実施形態によるベクトル量子化装置の動作を示すフローチャートである。
【符号の説明】
104 特徴量記憶部
105 特徴量演算部
106 演算省略判定部
201 テンプレート記憶部
202 マンハッタン距離演算部
203 最小マンハッタン距離記憶部
204 特徴量記憶部
205 特徴量演算部
206 特徴量差分演算部
207 演算省略判定部
208 アドレスカウンタ
209 最小距離アドレス記憶部
1101 変化モード判定部
1102 特徴テンプレート記憶部
1201 部分毎の平均値記憶部
1202 テンプレート記憶部
1203 テンプレート概形データ記憶部
1204 概形判断部
1301 テンプレート記憶装置
1302 特徴量範囲記憶装置
1303 特徴量演算装置
1304 検索開始行決定装置・検索行カウンタ
1305 類似度演算装置
1306 最大類似度テンプレートアドレス特定装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a vector quantization apparatus and method, and further to a recording medium storing a program for executing these processes.
[0002]
[Prior art]
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.
[0003]
In this vector quantization, several pixel patterns (also referred to as template vectors or code vectors) of a certain size (for example, a 4 × 4 pixel block) are prepared, and each is given a unique number (this set) The body is called "codebook"). 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.
[0004]
On the receiving side or decompressing side of the compressed data encoded in this way, the original image can be reproduced simply by taking out the pattern corresponding to the code 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.
[0005]
As described above, in the vector quantization apparatus, it is necessary to perform a search process for finding out a template vector group in the codebook that is similar to the input vector data of the original image. Then, as a means for judging whether or not the two vector data are similar, the two vector data are inputted to a predetermined function for calculation, and how much they are similar is quantified and judged by the magnitude of this numerical value. Means to do so have been used.
[0006]
Hereinafter, a numerical value of how much the two vector data are similar is referred to as “similarity”. A typical function for obtaining the similarity is a function for obtaining a Manhattan distance or a Euclidean distance between two input vector data. Any function can be used according to the purpose.
[0007]
The Manhattan distance is obtained by calculating the absolute difference between the individual elements constituting the two input vector data, and adding all the absolute differences calculated for each element. . The Euclidean distance is used to obtain the square sum of the absolute differences as described above.
[0008]
[Problems to be solved by the invention]
However, in the conventional vector quantization apparatus, when finding the most similar to the input vector data from the template vector data group, all template vector data are similar to the input vector data in order to find the most similar one. It was necessary to calculate the degree. Therefore, when the number of template vector data is enormous, there is a problem in that the amount of calculation for determining whether or not it is similar to the input vector data also becomes enormous.
[0009]
The present invention has been made to solve such a problem, and an amount of calculation for quantifying how similar the template vector data and the input vector data are when performing vector quantization. An object of the present invention is to realize a high-speed vector quantization process and low power consumption.
[0010]
[Means for Solving the Problems]
The vector quantization apparatus according to the present invention has a search unit for searching for template vector data similar to input vector data from a plurality of stored template vector data and outputting a code of the searched template vector data. When performing the search, the apparatus compares the feature quantity of the input vector data with the feature quantity of the template vector data, and selects template vector data to be searched based on the comparison result A search target selecting means, wherein the search means takes a difference between each element of the template vector data and a corresponding individual element of the input vector data, and a Manhattan distance that is a sum of absolute values of each of the elements. Search for the smallest template vector data The search target selecting means includes a Manhattan distance calculating means for calculating the Manhattan distance M between the input vector data and certain template vector data, and feature quantities of other template vector data different from the template vector data. And the difference calculation means for calculating the difference absolute value D between the feature quantity of the input vector data and the Manhattan distance M and the difference absolute value D. The template vector data is provided with a calculation omission means for omitting the calculation of the Manhattan distance with the input vector data.
Another vector quantization apparatus according to the present invention has a search unit for searching template vector data similar to input vector data from a plurality of stored template vector data and outputting a code of the searched template vector data. A quantization apparatus, a feature quantity storage unit that stores feature quantities obtained in advance with respect to the plurality of template vector data, a feature quantity calculation unit that obtains feature quantities of input vector data, and a memory that stores the feature quantity in the feature quantity storage unit Search object selection means for selecting template vector data to be searched based on the feature quantity of each of the template vector data and the feature quantity of the input vector data obtained by the feature quantity calculation means, The search means is the one of the above template vector data. And search for template vector data that minimizes the Manhattan distance, which is the sum of the absolute values, and a difference between the corresponding element of the input vector data and each corresponding element of the input vector data. The difference calculation means for obtaining the difference absolute value between the feature quantity of a certain template vector data and the feature quantity of the input vector data, and the difference absolute value obtained by the difference calculation means have already been obtained for other code vectors. And a calculation omission means for omitting the calculation of the Manhattan distance for the template vector data when the Manhattan distance representing the similarity is equal to or greater than the minimum value.
[0011]
In the present invention, the vector quantizing device searches the template vector data that is most similar to the input vector data from the stored template vector data group or similar to the extent that there is no practical problem. It means an apparatus having a search means for outputting a data value or an address number or an index number added to template vector data as a code.
[0012]
In the present invention, the vector data represents a vector that is a set of digitized information. The template vector data is individual vector data constituting a set of a plurality of vector data prepared in advance, and an index number or the like may be added to each template vector data. This template vector data group may be generally called a code book. The input vector data is vector data input to the vector quantization apparatus.
[0013]
In the present invention, the feature amount is a scalar amount that directly represents the nature of the vector data. As an example, the total or average value of each element of the vector data or the variance of each element of the vector data may be mentioned, but it is not limited thereto.
[0014]
Another aspect of the present invention is characterized in that the search target selection means selects template vector data to be searched using a plurality of different types of feature quantities.
Alternatively, all the elements constituting the vector data may be divided into a plurality of parts, and the template vector data to be searched may be selected using the feature amount for each of the divided elements.
[0015]
In another aspect of the present invention, the search means reads in parallel a plurality of template vector data to be searched by the search target selection means, and searches in parallel for template vector data similar to the input vector data. A plurality of similarity calculating means, and a template specifying means for specifying the template vector data most similar to the input vector data among them based on the calculation results of the plurality of similarity calculating means and outputting the corresponding code It is characterized by comprising.
[0016]
The vector quantization method of the present invention is a vector quantization method for searching template vector data similar to input vector data from a plurality of stored template vector data and outputting a code of the searched template vector data. A search target for comparing the feature quantity of the input vector data and the feature quantity of the template vector data when selecting the search, and selecting the template vector data to be searched based on the comparison result A selection process is performed, and the search process takes a difference between each element of the template vector data and a corresponding element of the input vector data, and the Manhattan distance, which is the sum of the absolute values, is obtained. Search for the smallest template vector data. The search target selection is performed by calculating the Manhattan distance M between the input vector data and the template vector data, and the feature quantity of the template vector data different from the template vector data and the input vector. When the difference absolute value D with the feature amount of the data is calculated and the Manhattan distance M is compared with the difference absolute value D, and the relationship of M ≦ D is satisfied, the other template vector data is input as described above. The calculation of the Manhattan distance with the vector data is omitted.
[0017]
A computer-readable recording medium according to the present invention is characterized in that a program for causing a computer to function as each means according to any one of claims 1 to 12 is recorded.
A program for causing a computer to execute the processing procedure of the vector quantization method according to any one of claims 13 to 16 may be recorded.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
FIG. 1 is a block diagram showing an embodiment of a vector quantization apparatus according to the present invention. In FIG. 1, 101 is a template storage unit for storing a plurality of template vector data, 102 is a similarity calculation unit, and how similar the input vector data 1a is to a certain template vector data 1b in the template storage unit 101. Calculates and outputs the degree of similarity that expresses whether or not
[0019]
Reference numeral 103 denotes a maximum similarity search unit, which template vector data has the highest similarity with the input vector data 1a based on the similarity 1d calculated for each template vector data by the similarity calculation unit 102. Judging. Reference numeral 107 denotes an address instruction unit for instructing a read address of template vector data in the template storage unit 101. Further, the address instruction unit 107 outputs an address corresponding to the template vector data having the maximum similarity as a code number for the input vector data 1a.
[0020]
In the vector quantization apparatus configured as described above, the following functional blocks are newly added in the present embodiment. That is, the feature amount storage unit 104, the feature amount calculation unit 105, and the calculation omission determination unit 106.
The feature amount storage unit 104 stores the feature amount of each template vector data in the template storage unit 101. The feature quantity computing unit 105 computes the feature quantity of the input vector data 1a.
[0021]
Further, the calculation omission determination unit 106 is similar to the feature quantity 1e related to the template vector data read from the feature quantity storage unit 104 and the feature quantity 1f related to the input vector data obtained by the feature quantity calculation unit 105 in some cases. It is necessary to calculate whether or not a certain template vector data is to be searched using the similarity 1d obtained by the degree calculation unit 102, in other words, the similarity between a certain template vector data and input vector data. Judge whether or not there is.
[0022]
The calculation omission determination unit 106 outputs an operation omission determination signal 1g to the similarity calculation unit 102 and the address instruction unit 107, and controls whether or not the similarity calculation is performed for each template vector data. For example, when it is determined that the calculation of the similarity for a certain template vector data can be omitted, the reading of the template vector data at the address is skipped and the calculation of the similarity is not performed.
[0023]
In the present embodiment, with the above configuration, for example, the feature amount of the input vector data is compared with the feature amount of the template vector data prior to the calculation of the similarity of certain template vector data. It is determined whether or not to calculate similarity for certain template vector data. Thereby, the similarity calculation performed in the vector quantization apparatus can be reduced, and the calculation amount necessary for the search can be reduced.
[0024]
In the description of the embodiment described above, an operation is performed to search for template vector data having the highest similarity with the input vector data, that is, the most similar template vector data. For this purpose, a maximum similarity search unit 103 is provided. However, the present invention is not limited to searching for the one with the highest degree of similarity, but can also be applied to searching for template vector data whose degree of similarity is large enough to cause no practical problem. This can be easily realized by changing the operation of the maximum similarity search unit 103.
[0025]
Further, the feature amount related to the template vector data stored in the feature amount storage unit 104 may be obtained by calculation in advance prior to execution of the search. Alternatively, if the calculation for determination in the calculation omission determination unit 106 and the calculation of the feature amount of the input vector data in the feature amount calculation unit 105 can be performed with a smaller calculation amount than the calculation of the similarity, the search is performed. Even if the feature amount is sometimes calculated, the total calculation amount can be reduced.
[0026]
Each part of the vector quantization apparatus shown in FIG. 1 can be realized by a dedicated hardware circuit, or can be realized by a computer that is operated by a program for executing the above-described processing.
[0027]
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIG. FIG. 2 is a diagram showing a configuration in which the vector quantization apparatus shown in FIG. 1 is implemented more specifically. In FIG. 2, the vector quantization apparatus in the case where the Manhattan distance is used as a function for obtaining a similarity obtained by quantifying whether two vectors are similar or the sum of elements of vector data is used as a feature amount. The configuration is shown. When the Manhattan distance is used as the similarity, the similarity is larger as the distance is smaller.
[0028]
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 template storage unit 201 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)
Input vector data I and template vector data T m The Manhattan distance M expressed by the following equation (1) m , Template vector data T most similar to the input vector data I m To search for all Manhattan distances M m The distance M within (m = 1, 2,..., K) m This corresponds to an operation for finding the value of m that minimizes.
[0029]
[Expression 1]
Figure 0003676577
[0030]
Here, the sum of the elements of the input vector data I and the template vector data T as shown in the following equation (2): m The absolute value D of the difference from the sum of the elements of m And the Manhattan distance M shown in the above equation (1) m D between m ≦ M m Focusing on the fact that this relationship holds, the following argument holds.
[0031]
[Expression 2]
Figure 0003676577
[0032]
That is, the template vector data T in the template storage unit 201 m And Manhattan distance M between input vector data I m Is known. At this time, in the template storage unit 201, the template vector data T m Arbitrary template vector data T different from o And the input vector data I, the sum of the elements of each vector data is taken, and the absolute value D of the difference between the sums o As a result of calculating D, o ≧ M m Assuming that
[0033]
In this case, the above D m ≦ M m Because of the relationship o > M m Holds. Therefore, template vector data T o And Manhattan distance M between input vector data I o The absolute difference D can be calculated without calculating o Just calculate the template vector data T o Is template vector data T m It can be seen that it is not similar to the input vector data I. That is, template vector data T o Can be excluded from the search target.
[0034]
Looking only at the above, template vector data T o About Manhattan distance M o The absolute difference D can be calculated without calculating o If it is necessary to calculate, the processing related to the search does not seem to decrease. However, the absolute difference D o Template vector data T m Sum of elements ΣT mi (The second term on the right side in equation (2)) can be calculated in advance and stored in the feature amount storage unit 204.
[0035]
Therefore, the absolute difference value D o Is calculated only by calculating the feature amount of the input vector data I and calculating the difference between the feature amount and the feature amount stored in the feature amount storage unit 204. Further, the calculation of the feature amount of the input vector data I can be performed once for one input vector data. Therefore, the absolute difference value D o Is calculated using the Manhattan distance M o Compared to the calculation of, it can be performed with a very small amount of calculation.
[0036]
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 the elements is only the sum of the elements divided by the number of elements.
[0037]
Next, it demonstrates concretely using FIG.
In FIG. 2, the input vector data I and a plurality of template vector data T in the template storage unit 201. 1 , T 2 , T Three , T Four ,... Are both 6-dimensional vector data as an example, but may be arbitrary dimensions. The feature amount storage unit 204 stores each template vector data T stored in the template storage unit 201. 1 , T 2 , T Three , T Four , ... feature quantity (for example, sum of elements) ΣT 1 , ΣT 2 , ΣT Three , ΣT Four , ... are stored.
[0038]
In FIG. 2, each template vector data T in the template storage unit 201. 1 , T 2 , T Three , T Four ,..., Each feature quantity ΣT in the feature quantity storage unit 204 located immediately on the left side. 1 , ΣT 2 , ΣT Three , ΣT Four , ... corresponds. That is, template vector data T 1 Features of ΣT 1 , Template vector data T 2 Features of ΣT 2 The same applies hereinafter. The data in the template storage unit 201 and the feature amount storage unit 204 are sequentially read according to the address from the address counter 208.
[0039]
In addition, the Manhattan distance calculation unit 202 transmits each template vector data T indicated by 2b transferred from the template storage unit 201. m And the Manhattan distance M between the input vector data I indicated by 2a m (M = 1 to k) is obtained, and Manhattan distance data indicated by 2d is output. In addition, the minimum Manhattan distance storage unit 203 follows the update control by the calculation omission determination unit 207 to calculate the Manhattan distance M calculated so far. m Among these, the minimum distance minM is stored.
[0040]
All template vector data T for one input vector data I m When the calculation is completed, the template vector data corresponding to that stored in the minimum Manhattan distance storage unit 203 is the data most similar to the input vector data I. The address minA of the template vector data that is most similar (the shortest distance) is given from the address counter 208 to the minimum distance address storage unit 209 and stored in accordance with the update control by the calculation omission determination unit 207. .
[0041]
Therefore, when the processing is completed for one input vector data I, the address minA stored in the minimum distance address storage unit 209 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.
[0042]
The feature quantity computing unit 205 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. The feature amount difference calculation unit 206 includes the feature amount 2f of the input vector data I obtained by the feature amount calculation unit 205 and the template vector data T read from the feature amount storage unit 204. m The difference from the feature amount 2e is calculated and output.
[0043]
The calculation omission determination unit 207 uses the minimum Manhattan distance 2c known so far output from the minimum Manhattan distance storage unit 203 and the feature amount difference 2g calculated by the feature amount difference calculation unit 206. Template vector data T m And whether or not the Manhattan distance of the input vector data I needs to be calculated.
[0044]
Then, the determination result is transmitted to the Manhattan distance calculation unit 202 so that unnecessary calculations are omitted, and predetermined control signals are output to the minimum Manhattan distance storage unit 203, the address counter 208, and the minimum distance address storage unit 209. The update control of each content is performed.
[0045]
The contents of the address counter 208 are updated when one process is completed, but the contents of the minimum Manhattan distance storage unit 203 and the minimum distance address storage unit 209 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.
[0046]
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 205, and the result is stored. This feature amount needs to be calculated only once for one input vector data I.
[0047]
2) Next, the input vector data I and the first template vector data T in the template storage unit 201 1 Manhattan distance M with 1 Is calculated by the Manhattan distance calculation unit 202. The result of this operation is M 1 = 70. At this stage, since only one Manhattan distance is calculated, the minimum Manhattan distance minM found so far is M 1 It becomes. Therefore, this Manhattan distance M 1 Is stored in the minimum Manhattan distance storage unit 203. That is, minM = M 1 = 70.
[0048]
3) Next, the second template vector data T in the feature amount storage unit 204 2 Feature amount ΣT 2 And the absolute value D of the difference between the feature quantity 2f (265 in this example) of the input vector data I stored in the feature quantity computation unit 205 2 Is obtained by the feature amount difference calculation unit 206. The result of this operation is D 2 = 4.
[0049]
4) Further, the absolute value D of the difference between the feature values obtained in step 3) 2 And the second template vector data T based on the minimum Manhattan distance minM found so far 2 And Manhattan distance M between input vector data I 2 The calculation omission determination unit 207 determines whether it is necessary to calculate. In this case, D 2 <MinM (= M 1 ), The second template vector data T 2 And Manhattan distance M between input vector data I 2 This operation cannot be omitted.
[0050]
5) According to the procedure 4), the second template vector data T 2 And Manhattan distance M between input vector data I 2 Therefore, the Manhattan distance calculation unit 202 performs this calculation. The result of this operation is M 2 = 22, but this is the smallest Manhattan distance minM (= M 1 ), The value of minM is set to M 2 Update to Therefore, minM = M 2 It becomes. That is, the minimum Manhattan distance storage unit 203 stores the second template vector data T. 2 Manhattan distance M 2 Is memorized.
[0051]
6) Next, the third template vector data T in the feature amount storage unit 204 Three Feature amount ΣT Three And the absolute value D of the difference between the feature quantity 2f of the input vector data I stored in the feature quantity computation unit 205 Three Is obtained by the feature amount difference calculation unit 206. The result of this operation is D Three = 46.
[0052]
7) Further, the absolute value D of the difference between the feature values obtained in step 6) Three And the third template vector data T based on the minimum Manhattan distance minM found so far. Three And Manhattan distance M between input vector data I Three The calculation omission determination unit 207 determines whether it is necessary to calculate. In this case, D Three > MinM (= M 2 ), The third template vector data T Three And Manhattan distance M between input vector data I Three The operation of can be omitted.
[0053]
8) According to the procedure 7), the third template vector data T Three And Manhattan distance M between input vector data I Three Since it has been found that this operation can be omitted, this operation is omitted. The fourth template vector data T Four Feature amount ΣT Four And the absolute value D of the difference between the input vector data I and the feature quantity 2f Four Is calculated by the feature amount difference calculation unit 206. The calculation result is D Four = 157.
[0054]
9) Absolute value D of the difference between the feature values obtained in step 8) Four And the fourth template vector data T based on the minimum Manhattan distance minM found so far Four And Manhattan distance M between input vector data I Four The calculation omission determination unit 207 determines whether it is necessary to calculate. In this case, D Four > MinM (= M 2 ), The fourth template vector data T Four And Manhattan distance M between input vector data I Four This calculation can also be omitted.
[0055]
10) Thereafter, the same processing is repeated until m = k.
[0056]
FIG. 3 is a flowchart showing the procedure of the vector quantization processing according to the present embodiment. Hereinafter, this flowchart will be described.
In FIG. 3, first, input vector data I is input in step S1. In step S2, the sum (feature value) of the elements of the input vector data I is calculated, and the result is stored.
[0057]
In step S3, the number (address) of the template vector data to be searched is initialized to m = 1 and minA = 1, and the minimum Manhattan distance minM found so far is initialized to ∞. . Next, in step S4, 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 S5.
[0058]
In step S5, the template vector data T to be searched m The absolute value D of the difference between the feature quantity stored in advance and the feature quantity of the input vector data I saved as a result of the operation m Ask for. In step S6, the calculated difference absolute value D m Is greater than or equal to the minimum Manhattan distance minM found so far.
[0059]
Where the difference absolute value D m Is equal to or greater than the current minimum Manhattan distance minM, the value of the address counter m is incremented in step S10, and the process returns to step S4. On the other hand, the difference absolute value D m Is smaller than the current minimum Manhattan distance minM, the process proceeds to step S7, and the input vector data I and the template vector data T to be searched for m Manhattan distance M with m Execute the operation.
[0060]
In step S8, the calculated Manhattan distance M m Is greater than or equal to the current minimum Manhattan distance minM. If so, the value of the address counter m is incremented in step S10, and the process returns to step S4. On the other hand, the calculated Manhattan distance M m Is smaller than the current minimum Manhattan distance minM, the process proceeds to step S9.
[0061]
In step S9, the Manhattan distance M calculated by calculating the value of the minimum Manhattan distance minM as described above. m And the number (address) of the found template vector data is recorded in the minimum distance address storage unit 209. Thereafter, after the value of the address counter m is incremented in step S10, the process returns to step S4.
[0062]
As shown in the above procedure, when the vector resonating device having the configuration described in FIG. 2 is used, it is necessary to perform the search for the template vector data most similar to the input vector data I. The calculation of the similarity can be reduced and the calculation can be performed at high speed.
[0063]
In FIG. 2, each template vector data T in the template storage unit 201 is displayed. 1 , T 2 , T Three , T Four ,... Are arranged in an arbitrary order, but they may be arranged in descending order of the feature amount. When the template vector data is arranged in the order of the feature amount, when searching for the template vector data, it becomes 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. .
[0064]
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.
2 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 quantity computing unit 205, feature quantity difference computing unit 206, and computation omission determination unit 207 do not require such a large hardware area.
[0065]
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 205 and the calculation omission determination unit 207 may be changed to those for distributed calculation. If the function for obtaining the similarity is to be changed to a function other than the Manhattan distance, such as a function for obtaining the Euclidean distance, the Manhattan distance calculation unit 202, the minimum Manhattan distance storage unit 203, and the calculation omission determination unit 207 are changed. good.
[0066]
(Third embodiment)
In the third embodiment, an example in which image data is used as an input to the vector quantization apparatus shown in the second 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 quantizer will be described with reference to FIG.
[0067]
In FIG. 4, an input original image 401 is configured by collecting many elements called pixels. Each pixel has information such as a luminance value or a color difference signal. The input image block 402 is obtained by extracting a block composed of a plurality of pixels from the input image 401. In the example of FIG. 4, 4 × 4 pixels are selected as the size of the input image block 402, but this size may be anything.
[0068]
Since the input image block 402 has a plurality of pixels as described above, the luminance value of each pixel can be collected and used as vector data. This is input vector data I of the vector quantization apparatus described in FIG.
[0069]
Due to human visual characteristics, some input image blocks in the input image 401 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 403 has a plurality of image blocks (template vector data) representing many input image blocks on the input image 401. The template vector data is obtained by using the luminance of each pixel in the image block in the image block codebook 403 as vector data.
[0070]
The vector quantization apparatus divides the entire input image 401 as image blocks, searches each code block 402 as input vector data, and searches the code book 403 for template vector data similar to the input vector data. 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 404, the template vector data corresponding to the transferred number may be read from the code book 403 and applied to the image.
[0071]
In the present embodiment, if the input vector data indicated by the image block 402 is extracted from the input image 401, 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 in the second embodiment described above (here, detailed description of the procedure is omitted). 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.
[0072]
FIG. 5 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. 5 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 input images. It represents the ratio of vector data.
[0073]
According to FIG. 5, it can be seen that the template vector data for which the Manhattan distance from the input vector data must be calculated is within 14% at most in the template vector data group. It is shown.
[0074]
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. In addition, after the input image block 402 is extracted from the input image 401, 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.
[0075]
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.
[0076]
(Fourth embodiment)
When image data is used as an input to the vector quantization apparatus shown in the second 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.
[0077]
First, the problem in the case where the function for calculating the similarity with respect to image data is the Manhattan distance and the sum of the vector elements is used as the feature amount will be described with reference to FIG. In FIG. 6, an image block 601 corresponding to input vector data and an image block 602 corresponding to template vector data are substantially the same block. On the other hand, the image block 601 corresponding to the input vector data and the image block 603 corresponding to the other template vector data are completely inverted blocks, and are completely different in appearance.
[0078]
Actually, when the luminance values of the pixels of the input image block 601 and the template image blocks 602 and 603 are taken out and the Manhattan distance is calculated using each as the vector data, the template image block 603 is compared with the other template image block 602. Thus, it becomes clear that the input image block 601 is not similar.
[0079]
However, the total sum of the elements of the vector data as the feature amount is equal between the two template image blocks 602 and 603. 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.
[0080]
FIG. 7 shows how the image block changes when the brightness of some of the elements of the vector data is inverted. The inverted image blocks 705 to 707 are obtained by operating the initial image block 701 so that the pixels in the black-filled portions are brightly and darkly inverted using three types of inversion patterns 702 to 704. As described above, when the light / dark reversal is performed with different reversal patterns 702 to 704 for one image, the total luminance values 708 to 710 of the pixels of the reversed image blocks 705 to 707 are different even if the initial image block is the same. Value.
[0081]
Further, FIG. 8 shows that even when the 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 Then, an example in which a difference appears in the feature amount is shown. In FIG. 8, the sum of the luminance values of the pixels in the initial image blocks 801 and 802 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.
[0082]
For such two initial image blocks 801 and 802, the black portions of the same inversion pattern 803 are brightly and darkly inverted, and the sum of pixel luminance values 806 and 807 is calculated for the image blocks 804 and 805 after inversion. Both values are completely different.
[0083]
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.
[0084]
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.
[0085]
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.
[0086]
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. 9 is a diagram illustrating a method of using the four corners of the image block as feature amounts.
[0087]
In FIG. 9A, the image block 901 has a luminance that gradually increases from the lower right to the upper left of the block. By extracting the four corners 903 from the image block 901 and comparing the luminance values of these four pixels, the image block 901 can grasp in which direction the luminance is changing.
[0088]
An image block 902 and its four corners 904 show an example in which the direction in which the pixel value changes is different from the above, and the luminance gradually changes from the right side to the left side of the image block. . The arrows shown in 903 and 904 indicate the magnitude relationship between the luminances 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.
[0089]
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. 9B, a number is assigned to each pattern of luminance 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.
[0090]
In FIG. 9, 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.
[0091]
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. 10 shows two image blocks 1001 and 1002 having the same pixel value change period and change rate. The pixel values of these image blocks 1001 and 1002 change only in the left-right direction.
[0092]
The change in the pixel value in the left-right direction of the image block 1001 is nothing but the change in the pixel value in the left-right direction of the other image block 1002 multiplied by a predetermined coefficient to suppress the change amplitude. Such a state is referred to as having the same pixel value change mode on the image blocks 1001 and 1002.
[0093]
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. 10, the size of the image block is 4 × 4 pixels, but this size may be arbitrary.
[0094]
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 fourth 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. 11, the same blocks as those shown in FIG. 2 are denoted by the same reference numerals. Here, the similarity is obtained from the Manhattan distance. Further, in FIG. 11, the vector data is visually expressed as a corresponding image block.
[0095]
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 1101 uses the first data of the input vector data I based on the vector data information stored in the feature template storage unit 1102 that collects typical vector data of the pixel value change mode. Data 2h indicating the number of the template corresponding to the change mode of the pixel value on the image block, which is the feature amount, is output.
[0096]
The template storage unit 201 that stores the template vector data and the feature amount storage unit 204 that stores the sum of the elements of the vector data that is the second feature amount of the template vector data include each type of the first feature amount. The data is arranged in In the example of FIG. 11, since the first feature amount of the input vector data I is determined to be “2”, the first feature amount is “2” from the template storage unit 201 and the feature amount storage unit 204. Only the portion 1103 is selected, and the remaining portion is excluded from the search target.
[0097]
In the template storage unit 201 and the feature amount storage unit 204, only the portion 1103 in which the first feature amount is “2” as described above is stored in the template vector data in the same procedure as in the second embodiment. Perform a search. That is, the second feature amount of the input vector data I is calculated by the feature amount calculation unit 205, and the feature amount difference calculation unit 206 and the calculation are performed using the result 2f and the feature amount 2e in the feature amount storage unit 204. The omission determination unit 207 determines, among template vector data in which the first feature amount in the template storage unit 201 is “2”, in particular, the calculation of the Manhattan distance is not necessary.
[0098]
As described above, according to the fourth embodiment, more calculations can be omitted as compared with the case where the feature amount is used alone as described in the second embodiment. This is because the range of the template vector data to be searched for 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.
[0099]
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. 11, the size of the image block is described as an example of 4 × 4 pixels, that is, 16-dimensional when converted to vector data, but this size is arbitrary.
[0100]
(Fifth embodiment)
Next, a fifth embodiment of the present invention will be described. In the fifth embodiment, a method will be described in which one vector data is decomposed into several parts, and the amount of calculation related to the search for the template vector data is reduced by using the feature quantity of each decomposed part.
[0101]
FIG. 12 is a block diagram illustrating a configuration example of the vector quantization apparatus according to the fifth embodiment. In FIG. 12, an image block composed of 4 × 4 pixels is set as 16-dimensional input vector data, and this input vector data is divided into four 4-dimensional vectors to obtain respective feature amounts. A method for reducing the calculation of similarity is described. In FIG. 12, vector data is visually represented in the form of image blocks. In the example of FIG. 12, the average value of each element of the vector data is used as the feature amount.
[0102]
In FIG. 12, an average value calculation unit 1201 for each part divides input vector data d1 into four parts (2 × 2 pixel blocks), and calculates an average value that is a feature amount for each part. As a result, four feature quantities are calculated from one input vector data d1, and are output as one feature quantity vector data d2. Each of the four blocks visually expressed in the average value calculation unit 1201 indicates the feature amount of the region divided into four.
[0103]
On the other hand, with respect to the template vector data stored in the template storage unit 1202, a feature quantity is obtained in advance for each of the four divided areas in the same procedure as the input vector data, and one feature quantity vector data is generated. Then, similar features of the vector data are collected into a set, and template vector data is stored for each set. A unique number is assigned to each set. For example, one vertical column indicated by a frame 1205 corresponds to one set.
[0104]
Further, feature vector data 1206 representing the above set of template vector data is generated for each set, and is also stored in the template storage unit 1202. The feature amount vector data 1206 representing each of these sets is hereinafter referred to as “template outline data”. The template outline data 1206 is assigned the same number as the above set. The template outline data 1206 and the number are also stored in the template outline data storage unit 1203.
[0105]
The feature vector data d2 extracted from the input vector data d1 is input to the outline determining unit 1204 together with each template outline data d3 from the template outline data storage unit 1203. The outline determining unit 1204 determines template outline data that is most similar to the feature vector data d2 of the input vector data d1, and outputs the number d4. Thereby, only the template vector data of the set corresponding to the output number d4 is read from the template storage unit 1202.
[0106]
The similarity calculation unit 1207 executes the calculation of the similarity by using only a set of template vector data corresponding to the number d4 output from the outline determination unit 1204 as a search target. In the example of FIG. 12, since the outline determination unit 1204 outputs a number “4”, the similarity calculation unit 1207 calculates the similarity only for the template vector data of the set 1205 corresponding thereto. Do. Thereby, the amount of calculation related to the search for the template vector data can be reduced.
[0107]
In the above embodiment, the template outline data 1206 is also stored in the template storage unit 1202 as long as the template vector data set corresponding to the input number d4 can be identified. The template outline data 1206 is not necessarily stored.
Further, in the above embodiment, 4 × 4 pixels are used as the size of the input vector data, and each size to be divided is 2 × 2 pixels. However, these are merely examples, and the present invention is not limited thereto. Is not to be done.
[0108]
(Sixth embodiment)
Next, a sixth embodiment of the present invention will be described. In each of the above embodiments, the number of template vector data to be searched can be reduced, but all of them need to be searched sequentially. On the other hand, in the present embodiment, when the vector quantization apparatus is configured by hardware, a speedup of the calculation is further achieved by introducing a mechanism for parallelizing the similarity calculation.
[0109]
FIG. 13 is a diagram illustrating a hardware configuration example of the vector quantization apparatus according to the present embodiment. In FIG. 13, a template storage device 1301 includes a plurality of memory units 2, 3,..., 4 and has a two-dimensional storage area, which stores a plurality of template vector data. When a certain part of the address part 1 is specified, a plurality of template vector data stored in the row (horizontal column) indicated by the address are read out in parallel from the memory parts 2, 3,. It is supposed to be.
[0110]
In the template storage device 1301, a plurality of template vector data are stored in order of the feature amount (for example, the average value of each element of the vector data) from the lower left to the upper right of the drawing. For example, the feature amount of the template vector data stored in the second row (address 01) is larger than the feature amount of the template vector data stored in the first row (address 00).
[0111]
Therefore, a plurality of template vector data having similar features to some extent are stored at the same row address. Note that template vector data having the same feature amount may exist across rows. The feature amount range storage device 1302 stores a feature amount range of template vector data stored in the same row.
[0112]
Further, the feature quantity computing device 1303 obtains the feature quantity (average value of each element of the vector data) of the input vector data. The search start row determination device / search row counter 1304 is based on the feature amount of the input vector data calculated by the feature amount calculation device 1303 and the feature amount range stored in the feature amount range storage device 1302. A search range of template vector data to be subjected to similarity calculation is determined.
[0113]
That is, since two vectors whose feature amounts are approximate tend to have a high similarity (in other words, two vectors whose features are not similar tend to have a low similarity), the feature amount of the input vector data It is possible to determine which row in the template storage device 1301 has template vector data whose degree of similarity with the input vector data is large by looking to which range in the feature amount range storage device 1302 belongs. Then, it is sufficient to execute the similarity calculation only for that row.
[0114]
Therefore, the search start row determination device / search row counter 1304 determines the input vector data feature amount to some extent based on the calculated feature amount of the input vector data and the feature amount range in the feature amount range storage device 1302. One or a plurality of rows in which template vector data having approximate feature quantities are stored are determined as the search range 1307, and the value of the search row counter is sequentially incremented from the search start row 1308.
[0115]
As a result, the template vector data of the row specified by the search row address is read out in parallel from the memory units 2, 3,..., And provided to the similarity calculation device 1305. The similarity calculation device 1305 includes similarity calculation / storage devices 5, 6,..., 7 for each column, and a plurality of template vector data read from the memory units 2, 3,. The maximum similarity in each column and the row address when it is given are specified.
[0116]
Each of the similarity calculation / storage devices 5, 6,..., 7 is configured as shown in FIG. In FIG. 14, the similarity calculation device 1401 sequentially calculates the similarity between the input vector data and each template vector data, and stores the calculation result in the similarity temporary storage device 1402 (this similarity temporary storage device). 1402 is not necessarily required). The comparator 1403 compares the similarity from the temporary similarity storage device 1402 with the maximum similarity found so far stored in the maximum similarity storage device 1404 and determines which is greater. To do.
[0117]
Here, when the similarity calculated this time given from the similarity temporary storage device 1402 is larger, this is notified to the content update control device 1405, and the content of the maximum similarity storage device 1404 is transferred to the current time according to this control. The calculated similarity value is rewritten. At the same time, the content update control device 1405 stores the search row address input from the search start row determination device / search row counter 1304 at that time in the maximum similarity address storage device 1406.
[0118]
When the similarity calculation with all the template vector data in the search range 1307 is completed for a certain input vector data, what is stored in the maximum similarity storage device 1404 and the maximum similarity address storage device 1406 is The similarity of the template vector data most similar to the input vector data in each column of the search range 1307 and the row address when it is given. These data are output to the maximum similarity template address specifying device 1306 in FIG.
[0119]
The maximum similarity template address specifying device 1306 is based on the maximum similarity in each column output from the similarity calculation / storage devices 5, 6,..., 7 of each column and the row address when it is given. The address of the template vector data having the highest degree of similarity in the entire template storage device 1301 is specified and output as a code number.
[0120]
FIG. 15 is a flowchart showing the operation of the vector quantization apparatus configured as shown in FIG. 13 and FIG. In FIG. 15, first, initialization processing is performed in step S11. Here, a process of clearing the stored contents of the maximum similarity storage device 1404 and the maximum similarity address storage device 1406 provided in each of the similarity calculation / storage devices 5, 6,.
[0121]
Next, in step S12, the feature amount calculation device 1303 calculates the feature amount of the input vector data. Then, in step S13, the information in the feature amount range storage device 1302 is referred to based on the calculated feature amount of the input vector data, and template vector data whose feature amount is most similar to the input vector data is stored. Identify the line that Then, the search start line 1308 is determined by subtracting a certain offset from the specified line.
[0122]
In step S14, the determined search start line 1308 is set in the search start line determination device / search line counter 1304. The search line counter indicates the currently searched line (address). In the next step S15, for the plurality of template vector data stored in the row indicated by the search row counter, the similarity is calculated in parallel by the similarity calculation / storage devices 5, 6,. The maximum similarity storage device 1404 and the maximum similarity address storage device 1406 are updated appropriately in each column according to the result.
[0123]
In step S16, it is determined whether or not the value of the search line counter is still within the search range 1307. If so, the process proceeds to step S17 to increment the search line counter by 1, and the process returns to step S15. On the other hand, when the search row counter reaches a predetermined value and exceeds the search range 1307, the search process ends. At this stage, the maximum similarity storage device 1404 of each column stores the highest similarity value in the column, and the maximum similarity address storage device 1406 of each column stores the value of the similarity in the column. The row address in which the template vector data having the highest similarity is stored is stored.
[0124]
Finally, in step S18, the maximum similarity template address specifying device 1306 has the highest similarity to the input vector data in any column based on the similarity stored in the maximum similarity storage device 1404 of each column. It is determined whether there is template vector data, and its column address is specified. Further, a final address is generated together with the row address stored in the maximum similarity address storage device 1406 of the specified column.
[0125]
As described above, according to the sixth embodiment, the range of the search target is narrowed down based on the feature amount extracted from the vector data. Therefore, the number of template vector data for performing similarity calculation can be reduced. The calculation time can be shortened. Furthermore, in this embodiment, when the vector quantization apparatus is configured by hardware, a mechanism for parallel processing of similarity calculations is incorporated, so that the calculation time can be further shortened.
[0126]
When the search range is limited to a part of the rows in the template storage device 1301 as described above, there is no guarantee that the template vector data that maximizes the similarity with the input vector data can be selected. However, since the search is performed within the range in which the feature amount is similar, template vector data that is so similar that there is no problem in appearance is selected, and can be applied without any problem in practice.
[0127]
(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.
[0128]
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, floppy 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.
[0129]
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.
[0130]
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.
[0131]
【The invention's effect】
As described above, the present invention can narrow the range of the search target and can reduce the amount of calculation for obtaining the similarity between the input vector data and the template vector data. Thereby, the vector quantization operation as a whole can be performed at high speed.
[0132]
Further, according to another feature of the present invention, the template vector data to be searched is selected using a plurality of different feature quantities, so that the range of the search target can be further narrowed and the vector quantum data can be limited. Can be performed at higher speed.
According to another feature of the present invention, since a mechanism for processing a plurality of template vector data to be searched in parallel is introduced, vector quantization can be performed at higher speed.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a vector quantization apparatus according to a first embodiment of the present invention.
FIG. 2 is a diagram illustrating a configuration of a vector quantization apparatus according to a second embodiment of the present invention.
FIG. 3 is a flowchart showing an operation of the vector quantization apparatus according to the second embodiment of the present invention.
FIG. 4 is a conceptual diagram illustrating a method of performing image compression using an input to a vector quantization apparatus as image data according to a third embodiment of the present invention.
FIG. 5 is a diagram showing a calculation probability of similarity according to a third embodiment of the present invention.
FIG. 6 is a diagram for explaining a fourth embodiment of the present invention.
FIG. 7 is a diagram for explaining a fourth embodiment of the present invention.
FIG. 8 is a diagram for explaining a fourth embodiment of the present invention.
FIG. 9 is a diagram for explaining a fourth embodiment of the present invention.
FIG. 10 is a diagram for explaining a fourth embodiment of the present invention.
FIG. 11 is a diagram illustrating a configuration of a vector quantization apparatus according to a fourth embodiment of the present invention.
FIG. 12 is a diagram illustrating a configuration of a vector quantization apparatus according to a fifth embodiment of the present invention.
FIG. 13 is a diagram showing a configuration of a vector quantization apparatus according to a sixth embodiment of the present invention.
14 is a diagram showing a configuration of the similarity calculation / storage device shown in FIG. 13;
FIG. 15 is a flowchart showing an operation of the vector quantization apparatus according to the sixth embodiment of the present invention.
[Explanation of symbols]
104 feature quantity storage
105 Feature value calculator
106 Operation omission determination unit
201 Template storage
202 Manhattan distance calculator
203 Minimum Manhattan distance storage unit
204 Feature amount storage unit
205 Feature amount calculator
206 Feature difference calculation unit
207 Operation omission determination unit
208 address counter
209 Minimum distance address storage unit
1101 Change mode determination unit
1102 Feature template storage unit
1201 Average value storage unit for each part
1202 Template storage unit
1203 Template outline data storage unit
1204 Outline determination unit
1301 Template storage device
1302 Feature value range storage device
1303 Feature amount calculation device
1304 Search start line determination device / search line counter
1305 Similarity calculation device
1306 Maximum similarity template address identification device

Claims (18)

記憶された複数のテンプレートベクトルデータの中から入力ベクトルデータに類似したテンプレートベクトルデータを検索し、検索したテンプレートベクトルデータのコードを出力する検索手段を有するベクトル量子化装置であって、
上記検索を行う際に、上記入力ベクトルデータの特徴量と上記テンプレートベクトルデータの特徴量とを比較し、その比較の結果に基づいて、検索対象とするテンプレートベクトルデータを選択する検索対象選択手段を備え、
上記検索手段は、上記テンプレートベクトルデータの個々の要素と上記入力ベクトルデータの対応する個々の要素との間で差分をとり、それぞれの絶対値の総和であるマンハッタン距離が最小となるテンプレートベクトルデータを検索するものであり、
上記検索対象選択手段は、あるテンプレートベクトルデータについて、上記入力ベクトルデータとの間で上記マンハッタン距離Mを演算するマンハッタン距離演算手段と、上記あるテンプレートベクトルデータとは異なる他のテンプレートベクトルデータの特徴量と上記入力ベクトルデータの特徴量との差分絶対値Dを演算する差分演算手段と、上記マンハッタン距離Mと上記差分絶対値Dとを比較して、M≦Dの関係を有する場合に、上記他のテンプレートベクトルデータについては上記入力ベクトルデータとのマンハッタン距離の演算を省略する演算省略手段とを備えることを特徴とするベクトル量子化装置。
A vector quantization apparatus having search means for searching template vector data similar to input vector data from a plurality of stored template vector data and outputting a code of the searched template vector data,
When performing the search, a search target selection means for comparing the feature quantity of the input vector data with the feature quantity of the template vector data and selecting template vector data to be searched based on the comparison result Prepared,
The search means takes a difference between each element of the template vector data and a corresponding element of the input vector data, and obtains template vector data that minimizes the Manhattan distance, which is the sum of the absolute values. To search,
The search target selecting means includes a Manhattan distance calculating means for calculating the Manhattan distance M between the input vector data and certain template vector data, and feature quantities of other template vector data different from the template vector data. And the difference calculation means for calculating the difference absolute value D between the feature quantity of the input vector data and the Manhattan distance M and the difference absolute value D. A vector quantization apparatus comprising: a calculation omitting unit that omits the calculation of the Manhattan distance with the input vector data for the template vector data.
記憶された複数のテンプレートベクトルデータの中から入力ベクトルデータに類似したテンプレートベクトルデータを検索し、検索したテンプレートベクトルデータのコードを出力する検索手段を有するベクトル量子化装置であって、
上記複数のテンプレートベクトルデータに関してあらかじめ求められた特徴量を記憶する特徴量記憶手段と、
入力ベクトルデータの特徴量を求める特徴量演算手段と、
上記特徴量記憶手段に記憶されている各テンプレートベクトルデータの特徴量と上記特徴量演算手段により求められた入力ベクトルデータの特徴量とに基づいて、検索対象とするテンプレートベクトルデータを選択する検索対象選択手段とを備え、
上記検索手段は、上記テンプレートベクトルデータの個々の要素と上記入力ベクトルデータの対応する個々の要素との間で差分をとり、それぞれの絶対値の総和であるマンハッタン距離が最小となるテンプレートベクトルデータを検索するものであり、
上記検索対象選択手段は、あるテンプレートベクトルデータの特徴量と上記入力ベクトルデータの特徴量との差分絶対値を求める差分演算手段と、上記差分演算手段により求められた差分絶対値が、他のコードベクトルについて既に求められている類似度を表すマンハッタン距離の最小値以上の場合に、上記あるテンプレートベクトルデータについてのマンハッタン距離の演算を省略する演算省略手段とを備えることを特徴とするベクトル量子化装置。
A vector quantization apparatus having search means for searching template vector data similar to input vector data from a plurality of stored template vector data and outputting a code of the searched template vector data,
Feature quantity storage means for storing the feature quantity obtained in advance for the plurality of template vector data;
A feature amount calculating means for obtaining a feature amount of input vector data;
Search target for selecting template vector data to be searched based on the feature value of each template vector data stored in the feature value storage means and the feature value of the input vector data obtained by the feature value calculation means Selecting means,
The search means takes a difference between each element of the template vector data and a corresponding element of the input vector data, and obtains template vector data that minimizes the Manhattan distance, which is the sum of the absolute values. To search,
The search target selection means includes a difference calculation means for obtaining a difference absolute value between a feature quantity of a certain template vector data and a feature quantity of the input vector data, and the difference absolute value obtained by the difference calculation means is obtained by using another code. A vector quantization apparatus comprising: an operation omitting unit that omits the calculation of the Manhattan distance for the certain template vector data when the vector is equal to or greater than the minimum value of the Manhattan distance representing the similarity already obtained for the vector. .
上記入力ベクトルデータは画像データから構成されることを特徴とする請求項1又は2に記載のベクトル量子化装置。  3. The vector quantization apparatus according to claim 1, wherein the input vector data is composed of image data. 上記特徴量は、ベクトルデータを構成する個々の要素の値の総和、平均値もしくは直流成分であることを特徴とする請求項1〜3の何れか1項に記載のベクトル量子化装置。  The vector quantization apparatus according to claim 1, wherein the feature amount is a sum, an average value, or a direct current component of values of individual elements constituting the vector data. 上記特徴量は、ベクトルデータを構成する個々の要素のうち一部の要素の値を、とり得る値の中間値を基準として反転するように操作した後の値の総和、平均値もしくは直流成分であることを特徴とする請求項1〜3の何れか1項に記載のベクトル量子化装置。  The above feature quantity is the sum, average value, or DC component of values after operating to invert the values of some of the individual elements constituting the vector data with reference to the intermediate value of possible values. The vector quantization apparatus according to claim 1, wherein the vector quantization apparatus is provided. 上記検索対象選択手段は、異なる種類の複数の特徴量を用いて検索対象とするテンプレートベクトルデータを選択することを特徴とする請求項1〜5の何れか1項に記載のベクトル量子化装置。  The vector quantization apparatus according to claim 1, wherein the search target selection unit selects template vector data to be searched using a plurality of different types of feature quantities. 上記検索対象選択手段は、上記入力ベクトルデータの第1の特徴量と上記テンプレートベクトルデータの第1の特徴量とを比較し、その比較の結果に基づいて、検索対象とするテンプレートベクトルデータの範囲を絞り込み、上記入力ベクトルデータの第2の特徴量と上記テンプレートベクトルデータの第2の特徴量とを比較し、その比較の結果に基づいて、上記検索対象とするテンプレートベクトルデータの範囲を更に絞り込むことを特徴とする請求項6に記載のベクトル量子化装置。  The search target selection means compares the first feature quantity of the input vector data with the first feature quantity of the template vector data, and based on the comparison result, the range of the template vector data to be searched And the second feature quantity of the input vector data is compared with the second feature quantity of the template vector data, and the range of the template vector data to be searched is further narrowed down based on the comparison result. The vector quantization apparatus according to claim 6. 上記ベクトルデータを構成する全要素を複数に分割し、分割した各々の要素についての特徴量を用いて検索対象とするテンプレートベクトルデータを選択することを特徴とする請求項1〜7の何れか1項に記載の記載のベクトル量子化装置。  8. All of the elements constituting the vector data are divided into a plurality of parts, and template vector data to be searched is selected using a feature amount for each of the divided elements. The vector quantization apparatus according to the item. 上記検索手段は、上記テンプレートベクトルデータの特徴量の大きさ順に検索を行うことを特徴とする請求項1〜8の何れか1項に記載のベクトル量子化装置。  The vector quantization apparatus according to claim 1, wherein the search unit performs a search in order of the feature amount of the template vector data. 上記検索手段は、上記入力ベクトルデータの特徴量および上記テンプレートベクトルデータの特徴量に基づいて、最も答えに近いと判断されるテンプレートベクトルデータから検索を行うことを特徴とする請求項9に記載のベクトル量子化装置。  10. The search unit according to claim 9, wherein the search means performs a search from template vector data determined to be closest to an answer based on a feature amount of the input vector data and a feature amount of the template vector data. Vector quantizer. 上記テンプレートベクトルデータは、その記憶装置内で特徴量の大きさ順に並べられており、かつ上記テンプレートベクトルデータが複数の特徴量を用いて多次元的に並べられることを特徴とする請求項9又は10に記載のベクトル量子化装置。  The template vector data is arranged in the order of the feature amount in the storage device, and the template vector data is arranged in a multidimensional manner using a plurality of feature amounts. The vector quantization apparatus according to 10. 上記検索手段は、上記検索対象選択手段により検索対象とされた複数のテンプレートベクトルデータを並列的に読み込み、上記入力ベクトルデータに類似したテンプレートベクトルデータを並列的に検索する複数の類似度演算手段と、
上記複数の類似度演算手段での演算結果に基づいて、その中でも上記入力ベクトルデータに最も類似したテンプレートベクトルデータを特定し、対応するコードを出力するテンプレート特定手段とを備えることを特徴とする請求項1〜11の何れか1項に記載のベクトル量子化装置。
The search means reads in parallel a plurality of template vector data targeted for search by the search target selection means, and a plurality of similarity calculation means for searching in parallel for template vector data similar to the input vector data; ,
A template specifying unit that specifies template vector data most similar to the input vector data among them based on the calculation results of the plurality of similarity calculation units, and outputs a corresponding code. Item 12. The vector quantization device according to any one of Items 1 to 11.
記憶された複数のテンプレートベクトルデータの中から入力ベクトルデータに類似したテンプレートベクトルデータを検索し、検索したテンプレートベクトルデータのコードを出力するベクトル量子化方法であって、
上記検索を行う際に、上記入力ベクトルデータの特徴量と上記テンプレートベクトルデータの特徴量とを比較し、その比較の結果に基づいて、検索対象とするテンプレートベクトルデータを選択する検索対象選択の処理を行い、
上記検索の処理は、上記テンプレートベクトルデータの個々の要素と上記入力ベクトルデータの対応する個々の要素との間で差分をとり、それぞれの絶対値の総和であるマンハッタン距離が最小となるテンプレートベクトルデータを検索するものであり、
上記検索対象選択の処理は、あるテンプレートベクトルデータについて、上記入力ベクトルデータとの間で上記マンハッタン距離Mを演算するとともに、上記あるテンプレートベクトルデータとは異なる他のテンプレートベクトルデータの特徴量と上記入力ベクトルデータの特徴量との差分絶対値Dを演算し、上記マンハッタン距離Mと上記差分絶対値Dとを比較して、M≦Dの関係を有する場合に、上記他のテンプレートベクトルデータについては上記入力ベクトルデータとのマンハッタン距離の演算を省略するようにしたものであることを特徴とするベクトル量子化方法。
A vector quantization method for searching template vector data similar to input vector data from a plurality of stored template vector data and outputting a code of the searched template vector data,
A search target selection process for comparing the feature quantity of the input vector data with the feature quantity of the template vector data when selecting the search, and selecting the template vector data to be searched based on the comparison result And
The search process takes the difference between each element of the template vector data and the corresponding element of the input vector data, and the template vector data that minimizes the Manhattan distance, which is the sum of the absolute values. Is to search for
The search target selection process calculates the Manhattan distance M between the input vector data and the template vector data, and the feature quantity of the template vector data different from the template vector data and the input When the difference absolute value D with the feature quantity of the vector data is calculated and the Manhattan distance M is compared with the difference absolute value D, and the relationship of M ≦ D is satisfied, the other template vector data is A vector quantization method characterized in that the calculation of the Manhattan distance with input vector data is omitted.
異なる種類の複数の特徴量を用いて検索対象とするテンプレートベクトルデータを選択するようにしたことを特徴とする請求項13に記載のベクトル量子化方法。  14. The vector quantization method according to claim 13, wherein template vector data to be searched is selected using a plurality of different types of feature quantities. 上記ベクトルデータを構成する全要素を複数に分割し、分割した各々の要素についての特徴量を用いて検索対象とするテンプレートベクトルデータを選択するようにしたことを特徴とする請求項13又は14に記載の記載のベクトル量子化方法。  15. All the elements constituting the vector data are divided into a plurality of parts, and the template vector data to be searched is selected using the feature amount for each of the divided elements. The vector quantization method according to the description. 検索対象とされた複数のテンプレートベクトルデータを並列的に読み込み、上記入力ベクトルデータに類似したテンプレートベクトルデータを並列的に検索するようにしたことを特徴とする請求項13〜15の何れか1項に記載のベクトル量子化方法。  16. A plurality of template vector data to be searched are read in parallel, and template vector data similar to the input vector data is searched in parallel. The vector quantization method described in 1. 請求項1〜12の何れか1項に記載の各手段としてコンピュータを機能させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。  A computer-readable recording medium on which a program for causing a computer to function as each means according to any one of claims 1 to 12 is recorded. 請求項13〜16の何れか1項に記載のベクトル量子化方法の処理手順をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。  A computer-readable recording medium having recorded thereon a program for causing a computer to execute the processing procedure of the vector quantization method according to any one of claims 13 to 16.
JP20836698A 1998-04-17 1998-07-23 Vector quantization apparatus and method, recording medium Expired - Fee Related JP3676577B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP20836698A JP3676577B2 (en) 1998-04-17 1998-07-23 Vector quantization apparatus and method, recording medium
PCT/JP1999/002049 WO1999055093A1 (en) 1998-04-17 1999-04-19 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
EP99914764A EP1079635A1 (en) 1998-04-17 1999-04-19 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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-124284 1998-04-17
JP12428498 1998-04-17
JP20836698A JP3676577B2 (en) 1998-04-17 1998-07-23 Vector quantization apparatus and method, recording medium

Publications (2)

Publication Number Publication Date
JP2000004164A JP2000004164A (en) 2000-01-07
JP3676577B2 true JP3676577B2 (en) 2005-07-27

Family

ID=26460988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20836698A Expired - Fee Related JP3676577B2 (en) 1998-04-17 1998-07-23 Vector quantization apparatus and method, recording medium

Country Status (1)

Country Link
JP (1) JP3676577B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0002623D0 (en) * 2000-02-05 2000-03-29 Res Councils Improvements in or relating to data compression
JP2003243988A (en) * 2002-02-20 2003-08-29 Tadahiro Omi Data processor
JP4077771B2 (en) * 2003-07-03 2008-04-23 財団法人国際科学振興財団 Data reproduction apparatus, reproduction method, data compression apparatus, and compression method
JP4637013B2 (en) * 2005-12-19 2011-02-23 Kddi株式会社 Vector quantizer
JP6872333B2 (en) * 2016-09-16 2021-05-19 株式会社Preferred Networks Maximum inner product search device, maximum inner product search method and maximum inner product search program

Also Published As

Publication number Publication date
JP2000004164A (en) 2000-01-07

Similar Documents

Publication Publication Date Title
JP4486780B2 (en) Nonlinear quantization and similarity matching method for image information retrieval
JP3658761B2 (en) Image search system, image search method, and storage medium storing image search program
US5805727A (en) Image recognition method and apparatus
JP4690339B2 (en) Image processing
US5047842A (en) Color image display with a limited palette size
US20090324060A1 (en) Learning apparatus for pattern detector, learning method and computer-readable storage medium
US7760940B2 (en) Method, apparatus, and program for detecting objects in digital image
US8103058B2 (en) Detecting and tracking objects in digital images
US6697529B2 (en) Data compression method and recording medium with data compression program recorded therein
US20070223837A1 (en) Picture retrieving apparatus and method which converts orthogonal transform coefficients into color histogram data
JP3676577B2 (en) Vector quantization apparatus and method, recording medium
CN109299306B (en) Image retrieval method and device
JPH0766448B2 (en) Image signal analyzer
JPH08263522A (en) Image retrieving method
JP2000101437A (en) Data analysis device and method according to code book system, data recognition device and its method, and recording medium
JP3527415B2 (en) Apparatus and method for creating codebook used in vector quantization, vector quantization method, and recording medium
JP2000040966A (en) Device and method for data compression, device and method for data expansion, data compression and expansion system, and recording medium
JP2002170122A (en) Method and program for texture analysis
JPH08167028A (en) Image processing method
JP2002133414A (en) Image processing method and its device and recording medium
EP1079635A1 (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
JPH11224337A (en) Area division integration device and area division integration method
JPH09186861A (en) Method and device for image processing
KR100695159B1 (en) Apparatus and method for generating RGB map for skin color model and apparatus and method for detecting skin color employing the same
JP2003243988A (en) Data processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040817

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050117

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050428

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees