JP3015446B2 - Vector quantization method and vector quantization apparatus - Google Patents

Vector quantization method and vector quantization apparatus

Info

Publication number
JP3015446B2
JP3015446B2 JP2280988A JP28098890A JP3015446B2 JP 3015446 B2 JP3015446 B2 JP 3015446B2 JP 2280988 A JP2280988 A JP 2280988A JP 28098890 A JP28098890 A JP 28098890A JP 3015446 B2 JP3015446 B2 JP 3015446B2
Authority
JP
Japan
Prior art keywords
vector
distortion
upper limit
limit value
codebook
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
JP2280988A
Other languages
Japanese (ja)
Other versions
JPH04156181A (en
Inventor
恵一 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Optic Co Ltd
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 Olympus Optic Co Ltd filed Critical Olympus Optic Co Ltd
Priority to JP2280988A priority Critical patent/JP3015446B2/en
Priority to US07/770,987 priority patent/US5194864A/en
Publication of JPH04156181A publication Critical patent/JPH04156181A/en
Application granted granted Critical
Publication of JP3015446B2 publication Critical patent/JP3015446B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はディジタル情報処理技術に係り、特にベクト
ル量子化方法とそのベクトル量子化装置とに関する。
Description: TECHNICAL FIELD The present invention relates to digital information processing technology, and more particularly, to a vector quantization method and a vector quantization device.

(従来の技術) 一般に、画像や音声等を関数として表現した場合に、
特定の値域に関する離散化の操作が量子化である。すな
わち、標本化によって得られた標本点上の連続的な関数
を、有限個の値に直して表現することである。その具体
的な方法として、ベクトル量子化方法である。
(Prior Art) Generally, when an image, a sound, or the like is expressed as a function,
The operation of discretization with respect to a specific range is quantization. That is, a continuous function on sampling points obtained by sampling is represented by being converted into a finite number of values. A specific method is a vector quantization method.

このベクトル量子化方法は、例えば入力した画像を複
数のブロックに分割して、各ブロックの画素を成分とす
る1つのベクトルに対して量子化を行うものであり、例
えば、特定のブロックに対し、発生頻度大きいと思われ
る代表的な画像パターン(代表ベクトル)をいくつか定
めて識別符号を付し、符号器内に記憶しておく。これを
コードブックと称し、入力信号が帰着するとブロックご
とにそのパターンに最も似た代表ベクトルをそのコード
ブックから探索して、その識別符号を送出する方法であ
る。また音声等にも同様に適用されている。
In this vector quantization method, for example, an input image is divided into a plurality of blocks, and quantization is performed on one vector having pixels of each block as components. For example, for a specific block, Several representative image patterns (representative vectors) that are considered to occur at a high frequency are determined, assigned identification codes, and stored in the encoder. This is called a codebook, and when an input signal results, a representative vector most similar to the pattern is searched from the codebook for each block, and the identification code is transmitted. The same applies to voice and the like.

このようなベクトル量子化を実行するベクトル量子化
装置には、その処理の高速化を目的として、例えば、探
索するベクトルの数を減らすために構造的なコードブッ
クを用いる木(tree)探索法(A.Buzo,A.H.Gray.Jr.,R.
M.Gray,and J.D.Markel:“Speech coding based upon v
ector quantization",IEEE Trans.Acoust.,Speech & S
ignal Process.,ASSP−28,10,pp.562−574,Oct.1980)
が提案されている。また、ベクトル量子化するのに用い
られる歪み計算の計算回数を低減させる方法のうちで、
ベクトルの生起確率に従って、探索の順序を変える方法
(特開平1−218279号公報)や、探索打ち切りにベクト
ル内平均値を用いる方法(中出、相澤、原島:“ベクト
ル量子化の直交変換領域高速探索方式、信学論、pp.110
2−1110、Vol J69−B、No.10、1986)等が提案され、
ベクトル量子化の高速化が図られている。(発明が解決
しようとする課題) しかし、前述したようなベクトル量子化方式のうち本
探索法は、歪み計算の速度では他の方法に比べて高速で
あるが、入力ベクトルが部分空間の境界の近傍にある
(「ベクトル量子化の直交変換領域高速探索方式」P.11
03右上参照)場合などには、コードブックから最適ベク
トルを得ることができないという欠点がある。従って、
木探索法は歪みを最小にするという意味では、正確性に
欠如する場合がある。
For the purpose of speeding up the processing, for example, a vector quantization apparatus that performs such vector quantization includes, for example, a tree search method using a structural codebook to reduce the number of searched vectors ( A.Buzo, AHGray.Jr., R.
M. Gray, and JDMarkel: “Speech coding based upon v
ector quantization ", IEEE Trans.Acoust., Speech & S
ignal Process., ASSP-28, 10, pp. 562-574, Oct. 1980)
Has been proposed. Also, among the methods for reducing the number of times of calculating the distortion used for vector quantization,
A method of changing the search order according to the probability of occurrence of a vector (Japanese Patent Laid-Open No. 1-218279) and a method of using an average value in a vector for search termination (Chuide, Aizawa, Harashima: Search method, IEICE, pp.110
2-1110, Vol J69-B, No. 10, 1986), etc.
The speed of vector quantization is increased. (Problems to be Solved by the Invention) However, among the above-described vector quantization methods, the present search method is faster than the other methods in the speed of distortion calculation, but the input vector is at the boundary of the subspace. In the vicinity ("High-speed search method for orthogonal transform domain of vector quantization" P.11
In some cases, for example, there is a drawback that the optimal vector cannot be obtained from the codebook. Therefore,
Tree search methods may lack accuracy in the sense of minimizing distortion.

また歪み計算回数を低減させる方法でもすべてのコー
ドブックベクトルに対して少なくとも一回の比較、もし
くは何らかの処理を施す必要がある。
Even in the method of reducing the number of distortion calculations, it is necessary to perform at least one comparison or some processing on all the codebook vectors.

以上のような従来の探索法において、帰着した入力ベ
クトルの性質によっては、そのベクトルに相当するコー
トブックベクトルの探索が、最適,高効率且つ高速化を
満足することができなかった。
In the conventional search method as described above, the search for the coat book vector corresponding to the resulting input vector cannot satisfy the optimum, high efficiency, and high speed depending on the properties of the input vector.

そこで本発明は、どのような入力ベクトルに対して
も、最適なコードブックベクトルを少ない計算回数で高
効率に、且つ高速に探索することが可能なベクトル量子
化方法とそれを実行するベクトル量子化装置を提供する
ことを目的とする。
Therefore, the present invention provides a vector quantization method capable of searching for an optimum codebook vector efficiently and quickly with a small number of calculations for any input vector, and a vector quantization method for executing the method. It is intended to provide a device.

(課題を解決するための手段) 本発明は上記目的を達成するために、第1手段とし
て、入力ベクトルとコードブックベクトルとの比較によ
る探索が終了したうちで、その中の最小歪みを歪の上限
値とする上限値設定工程と、前記最小歪みを与えるコー
ドブックベクトルおよび探索未終了のコードブックベク
トルと前記入力ベクトルとの次元ごとに算出される最小
歪みの和を歪みの下限値とする下限値設定工程と、前記
上限値と前記下限値を格納し比較する格納比較工程と、
前記格納比較工程により前記上限値と前記下限値が比較
され一致した時点で探索を終了する探索終了工程と、前
記探索終了工程により未終了とされたとき、成分ごと順
次、所定次成分までのコードブックベクトルと入力ベク
トルとの歪みの部分和を算出する部分歪み算出工程と、
前記部分和と前記上限値とを比較して、前記部分和が前
記上限値より同値もしくは大となるときには、それ以上
の歪み計算を打ち切る歪み計算打ち切工程と、前記部分
和が前記上限値より同値もしくは小なるときは、該部分
和を新たな上限値として更新する上限値更新工程とによ
ってベクトル量子化方法を提供することができる。
(Means for Solving the Problems) In order to achieve the above object, the present invention provides, as a first means, a method in which the minimum distortion in the search by comparing the input vector with the codebook vector is completed. An upper limit value setting step to set an upper limit value, and a lower limit to set a sum of a minimum distortion calculated for each dimension of the codebook vector giving the minimum distortion and a codebook vector not yet searched and the input vector as a lower limit value of the distortion. A value setting step, a storage comparing step of storing and comparing the upper limit value and the lower limit value,
A search termination step of terminating the search when the upper limit value and the lower limit value are compared and matched by the storage comparison step, and when the search termination step determines that the search has not been completed, a code for each component is sequentially transmitted to a predetermined next component. A partial distortion calculation step of calculating a partial sum of distortion between the book vector and the input vector,
Comparing the partial sum with the upper limit value, when the partial sum is equal to or greater than the upper limit value, a distortion calculation discontinuing step of discontinuing further distortion calculation, and the partial sum is equivalent to the upper limit value. Alternatively, when it is smaller, an upper limit value updating step of updating the partial sum as a new upper limit value can provide a vector quantization method.

また第2手段として、上限値設定手段のコードブック
を形成する複数の次元からなるベクトルに対して、該次
元ごとに独自な成分値を基底値として分類する分類手段
と、入力ベクトルに最も近似し且つ、未探索のコードブ
ックベクトルおよび最小歪みを与えるコードブックベク
トルに属する基底値との歪みのすべての次元にかかる和
を算出する下限値設定手段と、前記下限値と前記上限値
を格納し比較する格納比較手段と、前記格納比較工程に
より前記下限値と前記上限値が比較され一致した時点で
探索を終了する探索終了手段と、前記探索終了工程によ
り未終了とされたとき、成分ごと順次、所定次成分まで
のコードブックベクトルと入力ベクトルとの歪みの部分
和を算出する部分歪み算出手段と、前記部分和と前記上
限値とを比較して、前記部分和が前記上限値より同値も
しくは、大となるときには、それ以上の歪み計算を打ち
切る歪み計算打ち切り手段と、前記部分和が前記上限値
より同値もしくは小なるときは、該部分和を新たな上限
値として更新する上限値更新手段とを有するベクトル量
子化装置を提供することができる。
As a second means, for a vector composed of a plurality of dimensions forming a codebook of an upper limit value setting means, a classification means for classifying a unique component value as a base value for each dimension, And a lower limit value setting means for calculating a sum of distortions in all dimensions of an unsearched codebook vector and a base value belonging to a codebook vector providing a minimum distortion, storing and comparing the lower limit value and the upper limit value Storage comparing means, and a search terminating means for terminating the search when the lower limit value and the upper limit value are compared and matched by the storage comparing step, and when the search terminating step has not been completed, sequentially for each component, Partial distortion calculating means for calculating a partial sum of distortions of the codebook vector and the input vector up to a predetermined next component, and comparing the partial sum with the upper limit value, When the partial sum is equal to or larger than the upper limit value, a distortion calculation terminating means for stopping further distortion calculation when the partial sum is equal to or smaller than the upper limit value. It is possible to provide a vector quantization device having upper limit value updating means for updating as an upper limit value.

(作用) 以上のような構成のベクトル量子化方法およびベクト
ル量子化装置によれば、すべての入力ベクトルに対する
最適なコードブックベクトルを効率よく高速に探索する
ことができる。
(Operation) According to the vector quantization method and the vector quantization apparatus configured as described above, it is possible to efficiently and quickly search for the optimal codebook vector for all input vectors.

(実施例) 以下、図面を参照して本発明の実施例を詳細に説明す
る。
(Example) Hereinafter, an example of the present invention will be described in detail with reference to the drawings.

第1図は本発明の第1実施例にかかる高速ベクトル量
子化装置の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a high-speed vector quantization device according to a first embodiment of the present invention.

この高速ベクトル量子化装置の構成は、コードブック
生成部1と最適ベクトル探索部2に大別される。
The configuration of this high-speed vector quantization device is roughly divided into a codebook generation unit 1 and an optimal vector search unit 2.

前記コードブック生成部1においては、まず与えられ
たトレーニング系列に基づきトレーニング部10は、コー
ドブック100を生成する。そして前記コードブック100よ
り、ソート部11は成分ごとに基底値(独自ベクトル成分
量)に分類(ソート)して、ソート表200を作成すると
共に、前記基底値の番号を前記コードブック100の対応
するベクトル成分に付加させる。
In the codebook generation unit 1, first, the training unit 10 generates a codebook 100 based on a given training sequence. Then, based on the codebook 100, the sorting unit 11 sorts (sorts) each component into a base value (a unique vector component amount), creates a sorted table 200, and assigns the number of the base value to the corresponding value of the codebook 100. Is added to the vector component.

そして最適ベクトル探索部2は、入力ベクトルXが入
力されると、ソート表200の平均値を用いて成分の計算
順序を決定する成分計算順序決定部21と、入力ベクトル
Xとコードブックベクトルとの次元ごとの歪みを計算す
る次元歪み計算部22aおよびこの歪み部分和を計算する
部分歪み計算部22bとからなる歪み計算部22と、ソート
表200を用いて歪みの下限値を求める下限値計算部23、
部分歪み量、下限値、及び最小歪み量を上限値として記
憶するメモリ24、この上限値と歪みの部分和を用いて歪
み計算の打ち切りを決定し、また上限値と下限値を用い
て探索の終了を決定する比較部25とから構成される。
Then, when the input vector X is input, the optimal vector search unit 2 determines a component calculation order using the average value of the sort table 200, and a component calculation order determination unit 21. A distortion calculation unit 22 including a dimensional distortion calculation unit 22a that calculates distortion for each dimension and a partial distortion calculation unit 22b that calculates the distortion partial sum; and a lower limit calculation unit that obtains a lower limit value of the distortion using the sort table 200. twenty three,
A memory 24 that stores the partial distortion amount, the lower limit value, and the minimum distortion amount as the upper limit value, determines the termination of the distortion calculation using the upper limit value and the partial sum of the distortions, and searches for the search using the upper limit value and the lower limit value. And a comparison unit 25 for determining the end.

さらに前記成分計算順序決定部21では、ソート表200
の成分平均値を用いて、成分平均値と入力ベクトルXの
成分との違いが大きい順に成分計算が行われるように成
分計算順序表300が作成される。
Further, the component calculation order determining section 21 sorts the
The component calculation order table 300 is created so that the component calculation is performed in descending order of the difference between the component average value and the component of the input vector X using the component average values of the component.

また第2図(a)および(b)には前述したコードブ
ック100及びソート表200の形式の一例として模式図を示
す。
FIGS. 2A and 2B are schematic diagrams showing an example of the format of the code book 100 and the sort table 200 described above.

第2図(a)は、次元数とコードブックベクトル数に
よって区分されたコードブックベクトルの成分値と基底
値番号によって構成される。そして第2図(b)は、前
記コードブックベクトルに対応する基底値番号と次元数
によって分類され配置された基底値とベクトル数によっ
て構成される。
FIG. 2 (a) is constituted by the component values of the codebook vector and the base value number which are divided by the number of dimensions and the number of codebook vectors. FIG. 2 (b) is composed of a base value and a vector number arranged and classified according to a base value number and a dimension number corresponding to the codebook vector.

第2図(c)において、コードブックベクトルの第k
次成分を基底値に分類したとき、小さいほうから数えて
t番目にあたる基底値を「Vk(t)」で表し、入力ベク
トルXに最も接近した基底値(最近接基底値)を示すポ
インタが、「p」,「q」で示されている。そして、入
力ベクトルXとコードブックベクトルの基底値との差を
Ds(k)、Db(k)として、その差Ds(k)はXよりも
小さい側の差を表している。
In FIG. 2 (c), the k-th codebook vector
When the next component is classified as a base value, the t-th base value counted from the smallest one is represented by “Vk (t)”, and a pointer indicating the base value (closest base value) closest to the input vector X is These are indicated by “p” and “q”. Then, the difference between the input vector X and the base value of the codebook vector is
As Ds (k) and Db (k), the difference Ds (k) represents the difference on the side smaller than X.

次に前述したように構成された第1の実施例のベクト
ル量子化装置の動作について説明する。ここで、コード
ブックベクトルの数を「N」、ベクトルの次元数を
「M」とし、インデックスiで示されるコードブックベ
クトルを「Yi」で表す。まず前処理部としてのコードブ
ック生成部1では、トレーニング系列に基づいたコード
ブック100、ソート表200を生成する。
Next, the operation of the vector quantization device of the first embodiment configured as described above will be described. Here, the number of codebook vectors is “N”, the number of dimensions of the vector is “M”, and the codebook vector indicated by index i is represented by “Yi”. First, a codebook generation unit 1 as a preprocessing unit generates a codebook 100 and a sort table 200 based on a training sequence.

次に、第3図に示したフローチャートに従って、符号
化部である最適ベクトル探索部2が最適なコードブック
ベクトルを探索する。この手順を第1図の構成部材とそ
の参照番号を使って順次説明する。
Next, according to the flowchart shown in FIG. 3, the optimal vector search unit 2 as an encoding unit searches for an optimal codebook vector. This procedure will be described sequentially using the components shown in FIG. 1 and their reference numbers.

まず入力ベクトルXが成分計算順序決定部21に入力さ
れると、初期設定として、該成分計算順序決定部21はソ
ート表200の成分平均値を用いて、成分平均値と入力ベ
クトルXの成分との違いが大きい順に成分計算が行われ
るように成分計算順序表300を作成する(以下、説明を
簡略化するために、最大の違いを与える成分を1次、最
小の違いを与える成分がM次となるように番号順に並べ
替えられたものとする)。
First, when the input vector X is input to the component calculation order determination unit 21, as an initial setting, the component calculation order determination unit 21 uses the component average value of the sort table 200 to calculate the component average value and the components of the input vector X. The component calculation order table 300 is created so that the component calculation is performed in the descending order of the difference (hereinafter, in order to simplify the description, the component giving the largest difference is the first order, and the component giving the smallest difference is the Mth order Are arranged in numerical order so that

次に歪み計算部22では、コードブック100より、イン
デックス1に対応するコードブックベクトルY1を取出
し、入力ベクトルXとの歪みを計算して全次元の歪みの
和Uを(1)式、 によって、算出して、これに対応するインデックスmin
(ここでは1とする)をメモリ24に記憶する(ステップ
S1)。すなわち、全次元の歪みの和Uを上限値として設
定する。
Next, the distortion calculation unit 22 extracts the codebook vector Y1 corresponding to the index 1 from the codebook 100, calculates the distortion with respect to the input vector X, and calculates the sum U of the all-dimensional distortion by the equation (1). And the corresponding index min
(Here, 1) is stored in the memory 24 (step
S1). That is, the sum U of the distortions in all dimensions is set as the upper limit.

一方、下限値計算部23は、ソート表200を用いて、入
力ベクトルXとコードブックベクトルの基底値との二乗
歪みDs(k)、Db(k)を次に示す(2),(3)式に
よって計算する。
On the other hand, the lower limit calculation unit 23 uses the sort table 200 to calculate square distortions Ds (k) and Db (k) between the input vector X and the base value of the codebook vector as follows (2) and (3). Calculate by formula.

Ds(k)=(X(k)−Vk(p)) …(2) Db(k)=(Vk(q)−X(k)) …(3) ただし、第2図(c)に示す通り、kはベクトルの次
元を表し、p,qはXに最も接近した基底値(最近接基底
値)を示すポインタであり、DsはXよりも小さい側の差
を表している。
Ds (k) = (X (k) −Vk (p)) 2 (2) Db (k) = (Vk (q) −X (k)) 2 (3) However, FIG. 2 (c) , K represents the dimension of the vector, p and q are pointers indicating the base value closest to X (nearest base value), and Ds represents the difference on the side smaller than X.

そして下限値Lを次式(4)、 により計算しメモリ24に記憶する(ステップS2)。Then, the lower limit L is calculated by the following equation (4): And stores it in the memory 24 (step S2).

そして引き続き、比較部25では、メモリ24に記憶して
ある上限値Uと下限値Lとを比較する(ステップS3)。
Then, the comparing unit 25 compares the upper limit U and the lower limit L stored in the memory 24 (step S3).

このとき、上限値Uと下限値Lが一致すれば(Ye
s)、上限値Uはすべてのコードブックベクトルに対す
る最小歪みであるから、インデックスminを出力して終
了する(ステップS4)。
At this time, if the upper limit U and the lower limit L match, (Ye
s) Since the upper limit U is the minimum distortion for all the codebook vectors, the index min is output and the process ends (step S4).

一方、上限値Uと下限値Lが一致しなければ(No)、
次のコードベクトルとの比較を行うために、インデック
スiをインクリメントする(ステップS5)。すなわち、
インデックスiに「1」を加算する、ここで第j次成分
は「1」とする。
On the other hand, if the upper limit U and the lower limit L do not match (No),
The index i is incremented for comparison with the next code vector (step S5). That is,
"1" is added to the index i, where the j-th component is "1".

歪み計算部22では、このインデックスiでコードブッ
ク100からコードブックベクトルYiを取出し、入力ベク
トルXとの歪みを計算する(ステップS6)。ここでは、
低次元成分からに順に第j次成分までの歪みの部分和Sj
を次式(5)、 から求めて、比較部25に送出する。この比較部25では、
部分和Sjとメモリに格納されている上限値Uとを比較し
て(ステップS7)、 Sj≧U …(6) が満たされた時点で(Yes)、それ以上の歪み計算を打
ち切る。
The distortion calculator 22 extracts the codebook vector Yi from the codebook 100 at the index i and calculates the distortion with respect to the input vector X (step S6). here,
Partial sum Sj of distortion up to the j-th component in order from the low-dimensional component
Is given by the following equation (5). And sends it to the comparison unit 25. In this comparison unit 25,
The partial sum Sj is compared with the upper limit value U stored in the memory (step S7), and when Sj ≧ U (6) is satisfied (Yes), further distortion calculation is terminated.

つまり、歪み計算が打ち切れる場合には、次のコード
ブックベクトルに対応するインデックスi+1を歪み計
算部22に送り、次のコードブックベクトルに対象を移
す。またインデックスiが示すベクトルは、最小歪み
(上限値U)を与えないので、このベクトルに対応する
基底値に属するベクトル数を1ずつ減らし(ステップS
8)、後述するステップS13へ移行する。
That is, when the distortion calculation is discontinued, the index i + 1 corresponding to the next codebook vector is sent to the distortion calculator 22, and the target is shifted to the next codebook vector. Further, since the vector indicated by the index i does not give the minimum distortion (upper limit U), the number of vectors belonging to the base value corresponding to this vector is reduced by 1 (step S
8) The process proceeds to step S13 described later.

一方、歪み計算値が打ち切れない場合には(No)、ベ
クトルの次数jと次元数Mを比較する(ステップS9)。
On the other hand, if the calculated distortion value is not ceased (No), the order j of the vector is compared with the number of dimensions M (step S9).

ここで、ベクトルの次元数Mより小さければ(No)、
ベクトルの次数jに「1」を加えて(ステップS10)、
ステップS6に戻す。すなわち、歪み計算部22に送る(ス
テップS10)。
Here, if the number of dimensions of the vector is smaller than M (No),
"1" is added to the degree j of the vector (step S10),
Return to step S6. That is, it is sent to the distortion calculator 22 (step S10).

また、ベクトルの次数jが次元数Mに等しくなっても
歪み部分和Sjがそれまでの最小歪みよりも小さければ
(Yes)、インデックスminが示すベクトルは最小歪みを
与えないことが分かるので、このベクトルに対応する基
底値に属するベクトル数を1ずつ減らす(ステップS1
1)。
Further, even if the degree j of the vector is equal to the dimension number M, if the distortion partial sum Sj is smaller than the minimum distortion up to that point (Yes), it can be seen that the vector indicated by the index min does not give the minimum distortion. Decrease the number of vectors belonging to the base value corresponding to the vector by 1 (step S1
1).

この最小歪みを新たな上限値Uとして、メモリ24に記
憶し、この時のインデックスiを新たなインデックスmi
nとしてメモリ24に記憶する(ステップS12)。
This minimum distortion is stored in the memory 24 as a new upper limit value U, and the index i at this time is stored in a new index mi.
It is stored in the memory 24 as n (step S12).

このようにして、最小歪みを与えないことが分かった
コードブックベクトルに対応する基底値に属するベクト
ル数が1ずつ減らされたことに伴い、属するベクトル数
が「0」になった最近接基底値があるか否か判定する
(ステップS13)。ここで、「0」の最近接基底値があ
る場合には(Yes)、該当する最近接基底値ポインタ
「p」あるいは「q」を属するベクトルが存在する基底
値までずらし(ステップS14)、下限値Lを、計算し直
すためにステップS2に戻る。
In this manner, the number of vectors belonging to the base value corresponding to the codebook vector found not to give the minimum distortion is reduced by one, and the number of vectors belonging to the nearest base value becomes “0”. It is determined whether or not there is (step S13). Here, if there is a closest base value of “0” (Yes), it is shifted to a base value where a vector to which the corresponding closest base value pointer “p” or “q” belongs exists (step S14), and the lower limit is set. The process returns to step S2 to recalculate the value L.

一方、最近接基底値に属するベクトルの数が「0」に
ならなかった場合は、下限値LはそのままでステップS3
より処理を続行する。
On the other hand, if the number of vectors belonging to the nearest base value has not become “0”, the lower limit value L is left as it is and step S3
Continue processing.

前述したような手順で上限値Uと下限値Lが一致する
まで行う。
The above procedure is performed until the upper limit U and the lower limit L match.

以上のことから、コードブックベクトルを全探索する
ことにより得られる最適解と同じ解を得ることができ、
且つ探索を途中で打ち切ることができる。また歪み計算
についても入力ベクトルに適応して、歪みが大きくなる
可能性が高い成分から順に計算するので部分歪みは最少
の計算で最大となり、少ない計算回数で打ち切ることが
可能となる。これにより入力ベクトルに対する最適なコ
ードブックベクトルを少ない計算回数で、効率よく求め
ることができる。また下限値計算部23における最近接基
底値と入力ベクトル成分との歪みは、成分ごとに全く独
立して計算できるので、これを並列に処理することでさ
らに高速化を計ることができる。
From the above, it is possible to obtain the same solution as the optimal solution obtained by performing a full search of the codebook vector,
In addition, the search can be terminated on the way. Also in the distortion calculation, the components are calculated in order from the component having a high possibility of increasing the distortion by adapting to the input vector. Therefore, the partial distortion is maximized with the minimum calculation, and can be terminated with a small number of calculations. As a result, the optimal codebook vector for the input vector can be efficiently obtained with a small number of calculations. Further, since the distortion between the nearest base value and the input vector component in the lower limit value calculation unit 23 can be calculated completely independently for each component, it is possible to further increase the speed by processing them in parallel.

次に第4図に本発明の第2の実施例として、ベクトル
量子化装置の構成を示す。この装置の構成は、第1の実
施例と同様にコードブック生成部1と最適ベクトル探索
部2によって構成される。
Next, FIG. 4 shows the configuration of a vector quantization apparatus as a second embodiment of the present invention. The configuration of this device is composed of a codebook generation unit 1 and an optimum vector search unit 2 as in the first embodiment.

このコードブックベクトル生成部1は、第1の実施例
のトレーニング部10及びソート部11に加えて、コードブ
ック100のベクトルを入力するとそのベクトルに対応す
るインデックスを出力するようなネットワーク400を生
成するネットワーク生成部12によって構成される。最適
ベクトル探索部21は第1の実施例の成分計算順序決定部
21、歪み計算部22下限値計算部23、メモリ24、比較部25
に、入力ベクトルXが入力されるとネットワーク400を
用いてコードブック100に対する探索順序を決定する探
索順序決定部20を加えた構成とした。
The codebook vector generation unit 1 generates a network 400 that, when a vector of the codebook 100 is input, outputs an index corresponding to the vector, in addition to the training unit 10 and the sorting unit 11 of the first embodiment. It is configured by the network generation unit 12. The optimum vector searching unit 21 is a component calculation order determining unit according to the first embodiment.
21, distortion calculator 22, lower limit calculator 23, memory 24, comparator 25
In addition, a search order determining unit 20 that determines the search order for the codebook 100 using the network 400 when the input vector X is input is added to the configuration.

次にこのような構成の装置の動作について説明する。 Next, the operation of the device having such a configuration will be described.

前述した第2実施例のうち、まず前処理部としてのコ
ードブック生成部1のネットワーク生成部12の動作につ
いて、第5図(a)に示したフローチャートを参照して
説明する。
In the second embodiment described above, first, the operation of the network generation unit 12 of the codebook generation unit 1 as a preprocessing unit will be described with reference to the flowchart shown in FIG.

すなわち前記ネットワーク生成部12では、第5図
(a)のフローチャートに従って、バックプロパゲーシ
ョン法(D.E.Rumelhart,G.E.Hinton,and R.J.Williams:
Learning representations by back−propagating erro
rs,Nature,Vol.323−9,pp.533−536,1986)などにより
学習した、第5図(b)に示す構成のような、コードブ
ックに対応したネットワーク400が生成される。
That is, in the network generation unit 12, the back propagation method (DERumelhart, GEHinton, and RJWilliams:
Learning representations by back-propagating erro
rs, Nature, Vol. 323-9, pp. 533-536, 1986) and the like, and a network 400 corresponding to a codebook such as the configuration shown in FIG. 5B is generated.

このネットワーク400は、入力ベクトルが入力するた
めの複数の入力ユニットからなる入力層と、それぞれが
全ての前記入力ユニットと接続する複数の中間ユニット
からなる中間層と、さらにそれぞれが全ての前記中間ユ
ニットと接続するコードブックベクトルの数に対応した
複数の出力ユニットとによって構成されている。
The network 400 includes an input layer including a plurality of input units for inputting an input vector, an intermediate layer including a plurality of intermediate units each connected to all the input units, and further, each including all the intermediate units. And a plurality of output units corresponding to the number of codebook vectors to be connected.

そしてこのような結合は、1つのコードブックベクト
ルが、1つの出力ユニットに対応している単純な階層型
結合である。そしてこのような階層型結合の他にも、各
層内で各ユニットが相互結合された階層型結合などのニ
ュートラルネットワークで代表される幾つかのネットワ
ークを用いることも可能である。
Such a combination is a simple hierarchical combination in which one codebook vector corresponds to one output unit. In addition to such a hierarchical connection, it is also possible to use some networks represented by a neutral network such as a hierarchical connection in which units are interconnected in each layer.

次に第5図(a)のフローチャートを参照してネット
ワークの形成方法について説明をする。ここでネットワ
ークの結合係数の初期値は乱数値などにより設定されて
いるものとする。
Next, a method of forming a network will be described with reference to the flowchart of FIG. Here, it is assumed that the initial value of the coupling coefficient of the network is set by a random number value or the like.

まず、インデックスiが「1」に初期設定される(ス
テップS21)。次に、ネットワークにコードブックベク
トルYiを入力する(ステップS22)。そして入力された
前記インデックスiに対応するように1つの出力ユニッ
トが「1」を出力し、他の出力ユニットが「0」を出力
するように、ネットワークの結合係数を変更する(ステ
ップS23)。
First, the index i is initialized to "1" (step S21). Next, the codebook vector Yi is input to the network (step S22). Then, the coupling coefficient of the network is changed so that one output unit outputs "1" and the other output unit outputs "0" so as to correspond to the input index i (step S23).

そして、インデックスiが「1」個から「N」個まで
処理をしたか判定する(ステップS24)。ここで、イン
デックスiがN個に満たない時(No)には、前記インデ
ックスiに「1」を加算して(ステップS25)、ステッ
プS22に戻す。
Then, it is determined whether or not the index i has been processed from "1" to "N" (step S24). Here, when the index i is less than N (No), "1" is added to the index i (step S25), and the process returns to step S22.

また、インデックスiがN個と同数になった時(Ye
s)には、入力したどのようなインデックスiに対して
も、1つのインデックスiは、1つの出力ユニットに対
応して出力し、同じインデックスiであれば、必ず同じ
出力ユニットが出力するか判定をする(ステップS2
6)。
Also, when the index i becomes equal to N (Ye
In s), for any input index i, one index i is output corresponding to one output unit, and if the index i is the same, it is determined whether the same output unit is always output. (Step S2
6).

そして、インデックスiが異なる出力ユニットにまだ
出力する等の1つのインデックスiが1つの出力ユニッ
トに対応していない場合(NO)は、ステップS21に戻
る。またインデックスiが正しく出力されていると判定
された場合(Yes)は、学習が完了したと見なし、この
ネットワーク400の形成工程を終了する。
If one index i does not correspond to one output unit (for example, the index i is still output to a different output unit) (NO), the process returns to step S21. If it is determined that the index i is correctly output (Yes), it is considered that the learning has been completed, and the network 400 forming process ends.

次に符号化部である最適ベクトル探索部2では、はじ
めに入力ベクトルXが探索順序決定部20に入力される。
この探索順序決定部20では、コードブックベクトルによ
り学習が終了しているネットワーク400を用いて、その
出力ユニットの発火量(出力量)が大きい順に探索する
ようにインデックスを並び換える。そしてこの順にした
がって、第1の実施例と同様に第3図のフローチャート
に示した処理を行う。
Next, in the optimal vector search unit 2 which is an encoding unit, first, the input vector X is input to the search order determination unit 20.
The search order determination unit 20 rearranges the indexes using the network 400 for which learning has been completed by the codebook vector, so that the search is performed in the descending order of the firing amount (output amount) of the output unit. Then, according to this order, the processing shown in the flowchart of FIG. 3 is performed as in the first embodiment.

以上のような第2の実施例によれば、コードブックベ
クトルがどのように分布していようとも、歪み計算が入
力ベクトルに最も近いコードブックベクトルから開始さ
れるので、他のほとんどのコードブックベクトルとは、
歪み計算をする必要がはくなるか、あるいは、歪み計算
が必要となっても少ない計算回数で打ち切ることが必要
となる。これにより、入力ベクトルに対する最適なコー
ドブックベクトルを求めるための計算回数を非常に少な
くすることができる。
According to the second embodiment as described above, no matter how the codebook vectors are distributed, the distortion calculation is started from the codebook vector closest to the input vector. Is
It is not necessary to perform the distortion calculation, or even if the distortion calculation is required, it is necessary to terminate the calculation with a small number of calculations. As a result, the number of calculations for finding the optimal codebook vector for the input vector can be significantly reduced.

以上の説明において、歪み計算は2乗歪みを用いたが
これに他の歪みを用いることも可能である。
In the above description, the distortion calculation uses the squared distortion, but other distortions can be used.

また本発明は、前述した一実施例に限定されるもので
はなく、他にも発明の要旨を逸脱しない範囲で種々の変
形や応用が可能であることは勿論である。
Further, the present invention is not limited to the above-described embodiment, and it is needless to say that various modifications and applications can be made without departing from the gist of the invention.

[発明の効果] 以上詳述したように本発明によれば、高効率に、且つ
高速に探索することが可能なベクトル量子化方法とその
装置を提供することができる。
[Effects of the Invention] As described in detail above, according to the present invention, it is possible to provide a vector quantization method and a device capable of performing high-speed search at high efficiency.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明の第1の実施例にかかる高速ベクトル量
子化装置の構成を示すブロック図、第2図(a)はコー
ドブックの一例とする模式図、第2図(b)はソート表
の一例とする模式図、第2図(c)はベクトルのある次
元における入力ベクトルXに最も接近した基底値(最近
接基底値)を示すポインタの動きを示す概念図、第3図
は最適ベクトル探索部が最適なコードブックベクトルを
探索するフローチャート、第4図は本発明の第2の実施
例にかかるベクトル量子化装置の構成を示す図、第5図
(a)はネットワークの形成方法の一例を示すフローチ
ャート、第5図(b)はネットワークの構成の一例を示
す図である。 1……コードブック生成部、2……最適ベクトル探索
部、10……トレーニング部、11……ソート部、12……ネ
ットワーク生成部、20……探索順序判定部、21……成分
計算順序決定部、22……歪み計算部、22a……次元歪み
計算部、22b……部分歪み計算部、23……下限値計算
部、24……メモリ、25……比較部、100……コードブッ
ク、200……ソート表、300……成分計算順序表、400…
…ネットワーク。
FIG. 1 is a block diagram showing a configuration of a high-speed vector quantization apparatus according to a first embodiment of the present invention, FIG. 2 (a) is a schematic diagram showing an example of a codebook, and FIG. FIG. 2C is a schematic diagram showing an example of a table. FIG. 2C is a conceptual diagram showing the movement of a pointer indicating a base value (nearest base value) closest to the input vector X in a certain dimension of the vector, and FIG. FIG. 4 is a flowchart showing how a vector search unit searches for an optimal codebook vector, FIG. 4 is a diagram showing a configuration of a vector quantization apparatus according to a second embodiment of the present invention, and FIG. FIG. 5B is a flowchart showing an example of the configuration, and FIG. 1 codebook generation unit 2 optimal vector search unit 10 training unit 11 sort unit 12 network generation unit 20 search order determination unit 21 component calculation order determination , A distortion calculator, 22a a dimensional distortion calculator, 22b a partial distortion calculator, 23 a lower limit calculator, 24 a memory, 25 a comparator, 100 a codebook, 200: Sort table, 300: Component calculation order table, 400:
…network.

Claims (4)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】入力ベクトルとコードブックベクトルとの
比較による探索が終了した内で、その中の最小歪みを歪
みの上限値とする上限値設定工程と、 最小歪みを与えるコードブックベクトルおよび探索未終
了のコードブックベクトルと、前記入力ベクトルとの次
元ごとに算出される最小歪みの和を歪みの下限値とする
下限値設定工程と、 前記下限値と前記上限値を格納し比較する格納比較工程
と、 前記格納比較工程により前記上限値と前記下限値が比較
され一致した時点で探索を終了する探索終了工程と、 前記探索終了工程により未終了とされたとき、各次元ご
とに順次、所定次成分までのコードブックベクトルと入
力ベクトルとの歪みの部分和を算出する歪み部分和算出
工程と、 前記部分和と前記上限値とを比較して、前記部分和が前
記上限値より同値もしくは大となるときには、それ以上
の歪み計算を打ち切る歪み計算打ち切工程と、 前記部分和が前記上限値より小なるときは、該部分和を
新たな上限値として更新する上限値更新工程とを具備す
ることを特徴とするベクトル量子化方法。
1. After the search by comparison between an input vector and a codebook vector is completed, an upper limit setting step of setting the minimum distortion in the search as an upper limit of distortion, a codebook vector giving the minimum distortion, An end codebook vector, a lower limit value setting step of setting a sum of minimum distortions calculated for each dimension of the input vector as a lower limit value of the distortion, and a storage comparing step of storing and comparing the lower limit value and the upper limit value. A search termination step of terminating the search when the upper limit value and the lower limit value are compared and matched by the storage comparison step, and when the search termination step determines that the search has not been completed, a predetermined order is sequentially determined for each dimension. A distortion partial sum calculation step of calculating a partial sum of distortion between the codebook vector up to the component and the input vector; and comparing the partial sum with the upper limit value, When the value is equal to or greater than the upper limit value, a distortion calculation discontinuation step of discontinuing further distortion calculation, and when the partial sum is smaller than the upper limit value, an upper limit update for updating the partial sum as a new upper limit value. A vector quantization method comprising the steps of:
【請求項2】各次元ごとのコードブックベクトルの平均
値と入力ベクトルとの差の絶対値を次元ごとに計算し、
前記歪み部分和算出工程において、前記差の絶対値が大
きい成分から順に計算の対象となるように、その選択の
順序を設定する工程を具備することを特徴とする請求項
(1)記載のベクトル量子化方法。
2. An absolute value of a difference between an average value of a codebook vector for each dimension and an input vector is calculated for each dimension,
4. The vector according to claim 1, wherein the distortion partial sum calculation step includes a step of setting an order of selection such that components having a larger absolute value of the difference are to be calculated in order. Quantization method.
【請求項3】入力ベクトルとコードブックベクトルとの
比較による探索が終了した内で、その中の最小歪みを歪
みの上限値とする上限値設定工程と、 コードブックを形成する複数の次元からなるベクトルに
対して、該次元ごとに独自な成分値を基底値として分類
する分類手段と、 入力ベクトルに最も近似し且つ、未探索のコードブック
ベクトルおよび最小ベクトルを与えるコードブックベク
トルに属する基底値との歪みのすべての次元にかかる和
を算出する下限値設定手段と、 前記上限値と前記下限値を格納し比較する格納比較手段
と、 前記格納比較手段により前記上限値と前記下限値が比較
され一致した時点で探索を終了する探索終了手段と、 前記探索終了手段により未終了とされたとき、各成分ご
と順次、所定次成分までのコードブックベクトルと入力
ベクトルとの歪みの部分和を算出する歪み部分和算出手
段と、 前記部分和と前記上限値とを比較して、前記部分和が前
記上限値より同値もしくは大となるときには、それ以上
の歪み計算を打ち切る歪み計算打ち切り手段と、 前記部分和が前記上限値より小なるときは、該部分和を
新たな上限値として更新する上限値更新手段とを具備す
ることを特徴とするベクトル量子化装置。
3. An upper limit value setting step in which the search by comparison between the input vector and the codebook vector is completed, wherein a minimum distortion in the search is set as an upper limit value of the distortion, and a plurality of dimensions forming the codebook. Classifying means for classifying a unique component value as a base value for each dimension with respect to a vector, a base value belonging to a codebook vector which is closest to the input vector and which provides an unsearched codebook vector and a minimum vector. A lower limit value setting unit that calculates a sum over all dimensions of the distortion, a storage comparison unit that stores and compares the upper limit value and the lower limit value, and the upper limit value and the lower limit value are compared by the storage comparison unit. A search terminating means for terminating the search at the time of matching; A distortion partial sum calculating means for calculating a partial sum of distortions between the input vector and the input vector, comparing the partial sum with the upper limit value, and when the partial sum is equal to or larger than the upper limit value, A vector calculation means for terminating the distortion calculation, and an upper limit updating means for updating the partial sum as a new upper limit when the partial sum is smaller than the upper limit. Device.
【請求項4】コードブックを形成するベクトルを各次元
に分け、その次元ごとの平均値を計算する平均値計算手
段と、 前記平均値計算手段により算出された平均値と入力ベク
トルの成分との違いを示す歪みが大きい順に前記歪みの
計算をするように順次を決定する計算順序決定手段とを
具備することを特徴とするベクトル量子化装置。
4. An average value calculating means for dividing a vector forming a codebook into each dimension and calculating an average value for each dimension, and an average value calculated by the average value calculating means and a component of an input vector. A vector quantization apparatus, comprising: a calculation order determining unit that determines the order in which the distortions are calculated in descending order of the distortion indicating the difference.
JP2280988A 1990-10-03 1990-10-19 Vector quantization method and vector quantization apparatus Expired - Fee Related JP3015446B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2280988A JP3015446B2 (en) 1990-10-19 1990-10-19 Vector quantization method and vector quantization apparatus
US07/770,987 US5194864A (en) 1990-10-03 1991-10-01 Vector quantization method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2280988A JP3015446B2 (en) 1990-10-19 1990-10-19 Vector quantization method and vector quantization apparatus

Publications (2)

Publication Number Publication Date
JPH04156181A JPH04156181A (en) 1992-05-28
JP3015446B2 true JP3015446B2 (en) 2000-03-06

Family

ID=17632694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2280988A Expired - Fee Related JP3015446B2 (en) 1990-10-03 1990-10-19 Vector quantization method and vector quantization apparatus

Country Status (1)

Country Link
JP (1) JP3015446B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2639633B2 (en) * 1994-11-02 1997-08-13 轟産業株式会社 Reaction heat control mechanism of heat exchange area control type in chemical reactor
JP4631178B2 (en) * 2001-02-05 2011-02-16 ソニー株式会社 Vector quantization method and vector quantization apparatus
JP4590747B2 (en) * 2001-02-06 2010-12-01 ソニー株式会社 Vector quantization codebook generation method and codebook generation apparatus

Also Published As

Publication number Publication date
JPH04156181A (en) 1992-05-28

Similar Documents

Publication Publication Date Title
Quantization Vector quantization
CN111198959B (en) Two-stage image retrieval method based on convolutional neural network
Tai et al. Two fast nearest neighbor searching algorithms for image vector quantization
EP0431608B1 (en) A reflective binary encoder for vector quantization
CN107577990A (en) A kind of extensive face identification method for accelerating retrieval based on GPU
CN113326377B (en) Name disambiguation method and system based on enterprise association relationship
JP2000222581A (en) Method and device for retrieving multimedia data using shape information
CN109934272B (en) Image matching method based on full convolution network
CN108805257A (en) A kind of neural network quantization method based on parameter norm
CN111027684A (en) Deep learning model quantification method and device, electronic equipment and storage medium
CN113837376A (en) Neural network pruning method based on dynamic coding convolution kernel fusion
US5194864A (en) Vector quantization method and apparatus
JP3015446B2 (en) Vector quantization method and vector quantization apparatus
Jourlin Word-dependent acoustic-labial weights in HMM-based speech recognition.
CN109670057B (en) Progressive end-to-end depth feature quantization system and method
CN115661923A (en) Domain generalization pedestrian re-identification method of self-adaptive modeling domain features
JP3046871B2 (en) Vector quantization method and vector quantization apparatus
CN113707213B (en) Protein structure rapid classification method based on contrast graph neural network
JP3093879B2 (en) Vector quantization codebook creation and search device
CN115408555A (en) Voiceprint retrieval method, system, storage medium and electronic equipment
CN115100694A (en) Fingerprint quick retrieval method based on self-supervision neural network
CN114155554A (en) Transformer-based camera domain pedestrian re-recognition method
JP2003522487A (en) Data compression method
JP3093868B2 (en) Vector quantization codebook creation device
EP1269401B1 (en) A method for efficient coding of shape descriptor parameters

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees