RU2435214C2 - Method for fast search in codebook with vector quantisation - Google Patents

Method for fast search in codebook with vector quantisation Download PDF

Info

Publication number
RU2435214C2
RU2435214C2 RU2010103261/08A RU2010103261A RU2435214C2 RU 2435214 C2 RU2435214 C2 RU 2435214C2 RU 2010103261/08 A RU2010103261/08 A RU 2010103261/08A RU 2010103261 A RU2010103261 A RU 2010103261A RU 2435214 C2 RU2435214 C2 RU 2435214C2
Authority
RU
Russia
Prior art keywords
interval
vector
search
projections
codebook
Prior art date
Application number
RU2010103261/08A
Other languages
Russian (ru)
Other versions
RU2010103261A (en
Inventor
Андрей Алексеевич Афанасьев (RU)
Андрей Алексеевич Афанасьев
Станислав Рамзисович Габдулгазиев (RU)
Станислав Рамзисович Габдулгазиев
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 RU2010103261/08A priority Critical patent/RU2435214C2/en
Publication of RU2010103261A publication Critical patent/RU2010103261A/en
Application granted granted Critical
Publication of RU2435214C2 publication Critical patent/RU2435214C2/en

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: projections are constructed for each axis interval j-1 only for those Voronoy polygons whose projection intervals partially or completely overlap with the interval under investigation. Search is performed in form of transfers on tree branches. Successively for all axes, an interval is determined, in which the input vector component falls, and the last interval determines a hyper-rectangular cell with the final set of candidate vectors. The transfer route determines the input vector, and the terminal node determines he final set of code candidate vectors.
EFFECT: reduced capacity of the required storage devices and reduced consumption of computing resources when performing fast search in a codebook with vector quantisation.
4 dwg

Description

Изобретение относится к области радиотехники, а именно к методам кодирования декодирования и преобразования кода.The invention relates to the field of radio engineering, and in particular to methods of encoding decoding and code conversion.

Векторное квантование требует достаточно большого числа операций при реализации, что приводит к высокой вычислительной сложности данной процедуры в целом, ее уменьшение является актуальной задачей, особенно при больших объемах обрабатываемой информации.Vector quantization requires a sufficiently large number of operations during implementation, which leads to high computational complexity of this procedure as a whole; its reduction is an urgent task, especially for large volumes of processed information.

Известны способы векторного квантования для осуществления процедуры кодирования речи [Макхоул Д., Рукос С., Гиш Г. Векторное квантование при кодировании речи. // ТИИЭР. - 1985. - Т.73. - №11. - С.19-61]. Также известен способ поиска в глубину по алгебраической шифровальной книге [RU 2175454 С2 27.10.2001]. В нем для поиска предлагают некоторую древовидную структуру с заданным количеством уровней. В нем для осуществления процедуры поиска используют вероятностные методы, что может приводить к неверному выбору кодового вектора, также данный подход характеризуется большей вычислительной сложностью по сравнению со способом, представленным в [V. Ramasubramanian and Kuldip К. Paliwal «Fast Nearest-Neighbor Search Based on Voronoi Projections and Its Application to Vector Quantization Encoding» in Proc. IEEE Int. Conf. Acoustics, Speech, and Signal Processing, vol.1, no.2, March 1999]. Описанный в статье метод характеризуется также достаточно большей вычислительной сложностью.Known methods of vector quantization for the implementation of the coding of speech [Makhol D., Rukos S., Guiche G. Vector quantization in speech coding. // TIIER. - 1985. - T.73. - No. 11. - S. 19-61]. Also known is a method of searching in depth by an algebraic cipher book [RU 2175454 C2 10.27.2001]. It offers a search for some tree structure with a given number of levels. It uses probabilistic methods to carry out the search procedure, which can lead to an incorrect choice of the code vector, and this approach is also characterized by greater computational complexity compared to the method presented in [V. Ramasubramanian and Kuldip K. Paliwal “Fast Nearest-Neighbor Search Based on Voronoi Projections and Its Application to Vector Quantization Encoding” in Proc. IEEE Int. Conf. Acoustics, Speech, and Signal Processing, vol. 1, no.2, March 1999]. The method described in the article is also characterized by rather greater computational complexity.

Наиболее близким по технической сущности к заявленному способу является метод быстрого поиска ближайшего вектора в кодовой книге, характеризующийся более низкой вычислительной сложностью, по сравнению с существующими аналогами, описание которого представлено в [D.Y.Cheng, A.Gersho, В.Ramamurthi, and Y.Shoham, "Fast search algorithms for vector quantization and pattern matching," in Proc. IEEE Int. Conf. Acoustics, Speech, and Signal Processing, Mar. 1984, vol. 1, pp.9.11.1-9.11.4]. Основным недостатком прототипа является экспоненциальный рост памяти при увеличении размерности пространства. Количество требуемой памяти при этом описывается выражением (2N-1)Kγ, где γ - средний размер памяти, требуемой для хранения итогового набора векторов кандидатов, N - общее количество кодовых векторов, а К - размерность пространства. Техническая реализация способа сопряжена с трудностями роста памяти, например, для 32 векторов в 10-мерном пространстве, при значении γ, равном двум байтам, необходимо 248 байт.The closest in technical essence to the claimed method is the method of quick search for the closest vector in the codebook, which is characterized by lower computational complexity compared to existing analogues, a description of which is presented in [DYCheng, A.Gersho, B. Ramamurthi, and Y.Shoham, "Fast search algorithms for vector quantization and pattern matching," in Proc. IEEE Int. Conf. Acoustics, Speech, and Signal Processing, Mar. 1984, vol. 1, pp. 9.11.1-9.11.4]. The main disadvantage of the prototype is the exponential growth of memory with increasing dimensionality of space. The amount of required memory is described by the expression (2N-1) K γ, where γ is the average size of memory required to store the final set of candidate vectors, N is the total number of code vectors, and K is the dimension of space. The technical implementation of the method is associated with difficulties in memory growth, for example, for 32 vectors in 10-dimensional space, with a value of γ equal to two bytes, 2 48 bytes are needed.

Способ, описанный в прототипе, заключается в том, что К-мерное пространство разделяют на гиперпрямоугольные ячейки путем построения проекций многоугольника Вороного для каждого кодового вектора на координатную ось j, j=1, образующих N перекрывающих интервалов проекций, которые образуют 2N границ проекций

Figure 00000001
, таких что
Figure 00000002
, при этом границы разбивают j-ю координатную ось на (2N-1) последовательных интервала {Ij(1),Ij(2), … Ij(2N-1)}, где
Figure 00000003
, m - номер интервала, причем каждому интервалу соответствует набор индексов многоугольников Вороного, чьи интервалы проекций частично или полностью перекрываются с Ij(m), а набор кодовых векторов кандидатов связывают с каждой из гиперпрямоугольных ячеек, полученных в процессе предварительной обработки и хранящихся в некоторой таблице, что и выбирают итоговым набором векторов кандидатов, на этом малом наборе далее проводят поиск, при котором для каждого компонента входного вектора определяют интервал, в который попадает данный компонент. Причем гиперпрямоугольники получаются при выполнении описанной операции построения проекций на все оси.The method described in the prototype is that K-dimensional space is divided into hyper-rectangular cells by constructing projections of the Voronoi polygon for each code vector on the coordinate axis j, j = 1, forming N overlapping projection intervals that form 2N projection boundaries
Figure 00000001
such that
Figure 00000002
, while the boundaries divide the j-th coordinate axis into (2N-1) consecutive intervals {I j (1), I j (2), ... I j (2N-1)}, where
Figure 00000003
, m is the number of the interval, and each interval corresponds to a set of indices of Voronoi polygons whose projection intervals partially or completely overlap with I j (m), and the set of candidate code vectors is associated with each of the hyper-rectangular cells obtained during the preliminary processing and stored in some the table, which is chosen by the final set of candidate vectors, on this small set, a search is then carried out in which for each component of the input vector the interval into which this component falls . Moreover, hyper-rectangles are obtained by performing the described operation of constructing projections on all axes.

Опишем прототип более подробно. При его реализации осуществляется использование информации о проекциях многоугольников Вороного, при этом К-мерное пространство разделяют на (2N-1)K гиперпрямоугольных ячеек, содержащих набор итоговых кодовых векторов кандидатов. Многоугольник Вороного Vi, связанный с вектором кодовой книги

Figure 00000004
содержит все точки в пространстве RK, наиболее близкие к
Figure 00000005
, чем к какому либо другому кодовому вектору. Таким образом, если кодовый вектор
Figure 00000006
находится в многоугольнике Vi, то связанный кодовый вектор
Figure 00000005
будет ближайшим.We describe the prototype in more detail. When it is implemented, information on the projections of Voronoi polygons is used, and the K-dimensional space is divided into (2N-1) K hyper-rectangular cells containing a set of resulting candidate code vectors. Voronoi polygon V i associated with the codebook vector
Figure 00000004
contains all points in the space R K closest to
Figure 00000005
than to any other code vector. So if the code vector
Figure 00000006
is in the polygon V i , then the associated code vector
Figure 00000005
will be the closest.

Для построения структуры, на которой будет организован поиск, осуществляют предобработку в виде "разделения пространства RK на гиперпрямоугольные ячейки". Для этого строят проекции многоугольника Vi на координатную ось j (фиг.1), получают интервал

Figure 00000007
, с начальной и конечной точкой
Figure 00000008
. Данную процедуру построения проекций осуществляют для всех N многоугольников, получают N перекрывающих интервалов проекций многоугольников Вороного
Figure 00000009
, i=1, …, N, которые образуют 2N границ проекций
Figure 00000010
таких что
Figure 00000011
. Эти границы делят j-ю координатную ось на (2N-1) последовательных интервала {Ij(1),Ij(2), … Ij(2N-1)}, где
Figure 00000003
. Каждому интервалу ставят в соответствие набор Sj(m) индексов многоугольников Вороного, чьи интервалы проекций частично или полностью перекрываются с Ij(m).To build the structure on which the search will be organized, preprocessing is performed in the form of "dividing the space R K into hyper-rectangular cells". To do this, build the projection of the polygon V i on the coordinate axis j (figure 1), get the interval
Figure 00000007
, with start and end point
Figure 00000008
. This procedure for constructing projections is carried out for all N polygons; N overlapping intervals of projections of Voronoi polygons are obtained
Figure 00000009
, i = 1, ..., N, which form 2N projection boundaries
Figure 00000010
such that
Figure 00000011
. These boundaries divide the jth coordinate axis into (2N-1) consecutive intervals {I j (1), I j (2), ... I j (2N-1)}, where
Figure 00000003
. Each interval is assigned a set of S j (m) indices of Voronoi polygons whose projection intervals partially or completely overlap with I j (m).

Набор индексов Sj(mj), связанный с интервалом Ij(mj), определяет кодовые векторы кандидаты, которые могут быть ближайшими к входному вектору

Figure 00000012
. Эту операцию разделения на интервалы повторяют для всех К осей. Далее определяют гиперпрямоугольную ячейку по формуле (1)The set of indices S j (m j ) associated with the interval I j (m j ) determines the candidate code vectors that may be closest to the input vector
Figure 00000012
. This intervaling operation is repeated for all K axes. Next, determine the hyper-rectangular cell according to the formula (1)

Figure 00000013
Figure 00000013

Каждую ячейку связывают с итоговым набором кодовых векторов кандидатов

Figure 00000014
, который получают по формуле (2):Each cell is associated with a final set of candidate code vectors
Figure 00000014
, which is obtained by the formula (2):

Figure 00000015
Figure 00000015

Набор кодовых векторов кандидатов, связанных с каждой из (2N-1)K гиперпрямоугольных ячеек, полученных в процессе предварительной обработки, хранят в некоторой таблице.A set of candidate code vectors associated with each of the (2N-1) K hyper-rectangular cells obtained during the preprocessing is stored in a table.

Поиск осуществляют следующим образом. Для каждой компоненты входного вектора

Figure 00000016
определяют интервал, в который она попадает
Figure 00000003
, т.е. компонент вектора xj удовлетворяет условию
Figure 00000017
, далее для всех К осей формируют интервалы Ij(mj), j=1, …, K, содержащие компоненты вектора
Figure 00000012
. Далее определяют гиперпрямоугольную ячейку, в которой лежит входной вектор
Figure 00000012
, по формуле (1), затем с таблицы считывают соответствующий ей набор кодовых векторов кандидатов.The search is as follows. For each component of the input vector
Figure 00000016
determine the interval in which it falls
Figure 00000003
, i.e. the component of the vector x j satisfies the condition
Figure 00000017
, then for all K axes form intervals I j (m j ), j = 1, ..., K, containing the components of the vector
Figure 00000012
. Next, determine the hyper-rectangular cell in which the input vector lies
Figure 00000012
according to formula (1), then the corresponding set of candidate code vectors is read from the table.

На этом малом наборе далее проводят поиск методом полного перебора. Данная процедура требует всего Klog(2N) сравнений для нахождения итогового набора. Однако недостатком прототипа является большое количество памяти необходимой для хранения таблицы (2N-1)Kγ, а также достаточно высокая вычислительная сложность.On this small set, a search is then carried out using the exhaustive search method. This procedure requires all Klog (2N) comparisons to find the final set. However, the disadvantage of the prototype is the large amount of memory required to store the table (2N-1) K γ, as well as a fairly high computational complexity.

Целью изобретения является создание способа быстрого поиска в кодовой книге при векторном квантовании с вычислительной сложностью и требуемым объемом памяти ниже полученной в прототипе.The aim of the invention is to provide a quick search method in the codebook for vector quantization with computational complexity and the required memory capacity lower than that obtained in the prototype.

Техническим результатом предлагаемого способа является уменьшение требуемых объема устройств памяти и вычислительной сложности при осуществлении поиска в кодовой книге при векторном квантовании.The technical result of the proposed method is to reduce the required amount of memory devices and computational complexity when searching in the codebook with vector quantization.

Технический результат достигается тем, что в способе поиска в кодовой книге при векторном квантовании, используемом в прототипе, при построении проекций многоугольников Вороного на координатную ось j, j≠1 строят проекции для каждого интервала оси j-1 только тех многоугольников Вороного, которые входят в набор индексов этого интервала, т.е. для тех, чьи интервалы проекций частично или полностью перекрываются с рассматриваемым интервалом, далее на этапе поиска интервал, в который попадает компонент входного вектора, определяют последовательно для всех осей, а последний интервал определяет гиперпрямоугольную ячейку с итоговым набором векторов кандидатов.The technical result is achieved by the fact that in the method of searching in the codebook for vector quantization used in the prototype, when constructing projections of the Voronoi polygons on the coordinate axis j, j ≠ 1, projections for each interval of the j-1 axis are constructed only of those Voronoi polygons that are included in the set of indices for this interval, i.e. for those whose projection intervals partially or completely overlap with the considered interval, then at the search stage the interval into which the input vector component falls is determined sequentially for all axes, and the last interval defines a hyper-rectangular cell with the final set of candidate vectors.

Рассмотрим заявленный способ подробнее. На первую из рассматриваемых осей строят проекции всех N многоугольников Вороного Vi. Получают N перекрывающих интервалов проекций,

Figure 00000018
, i=1, …, N, которые образуют 2N границ проекций
Figure 00000019
таких что
Figure 00000020
. Эти границы разделяют рассматриваемую координатную ось на (2N-1) последовательных интервалов {I1(1), I1(2), … I1(2N-1)}, где
Figure 00000021
. Каждый интервал соответствует набору S1(m) индексов многоугольников Вороного, чьи интервалы проекций частично или полностью перекрываются с I1(m). Далее для каждого интервала I1(m) m=1…(2N-1) на следующую рассматриваемую ось строят только проекции многоугольников Вороного, чьи интервалы проекций частично или полностью перекрываются с I1(m), т.е. входящих в набор S1(m). Получают N1<N перекрывающих интервалов проекций
Figure 00000022
, i=1, …, N1, где N1 - определяется количеством векторов, входящих в набор S1(m). В итоге получают 2N1 границ проекций
Figure 00000023
таких, что
Figure 00000024
. Эти границы разделяют рассматриваемую координатную ось на (2N1-1) последовательных интервалов {I2(1), I2(2), … I2(2N1-1)}, где
Figure 00000025
. Каждому интервалу соответствует набор S2(m) индексов многоугольников Вороного, чьи интервалы проекций частично или полностью перекрываются с I2(m) и входят в набор S1(m).Consider the claimed method in more detail. The projections of all N Voronoi polygons V i are built on the first of the axes under consideration. Get N overlapping projection intervals,
Figure 00000018
, i = 1, ..., N, which form 2N projection boundaries
Figure 00000019
such that
Figure 00000020
. These boundaries divide the coordinate axis in question into (2N-1) consecutive intervals {I 1 (1), I 1 (2), ... I 1 (2N-1)}, where
Figure 00000021
. Each interval corresponds to a set of S 1 (m) indices of Voronoi polygons whose projection intervals partially or completely overlap with I 1 (m). Further, for each interval I 1 (m) m = 1 ... (2N-1), only the projections of Voronoi polygons, whose projection intervals partially or completely overlap with I 1 (m), are constructed on the next axis under consideration. included in the set S 1 (m). Get N 1 <N overlapping projection intervals
Figure 00000022
, i = 1, ..., N 1 , where N 1 - is determined by the number of vectors included in the set S 1 (m). As a result, 2N 1 projection boundaries are obtained
Figure 00000023
such that
Figure 00000024
. These boundaries divide the coordinate axis in question into (2N 1 -1) consecutive intervals {I 2 (1), I 2 (2), ... I 2 (2N 1 -1)}, where
Figure 00000025
. Each interval corresponds to a set of S 2 (m) indices of Voronoi polygons, whose projection intervals partially or completely overlap with I 2 (m) and are included in the set S 1 (m).

Процедуру повторяют для каждого интервала I2(m), m=1…(2N1-1) и на следующую ось строят только проекции многоугольников Вороного из набора S2(m). Так последовательно рассматривают все К осей. В результате получают структуру данных для поиска в виде дерева, как показано на фиг.2.The procedure is repeated for each interval I 2 (m), m = 1 ... (2N 1 -1) and only the projections of Voronoi polygons from the set S 2 (m) are built on the next axis. So all K axes are sequentially considered. As a result, a data structure for the search in the form of a tree is obtained, as shown in FIG.

Поиск реализуют в виде переходов по веткам дерева. Таким образом, входной вектор

Figure 00000026
попадает в интервал
Figure 00000021
, если компонент вектора
Figure 00000027
. На следующем этапе рассматривают поддерево, порожденное узлом I1(m) (фиг.2), таким образом, анализируют каждый компонент входного вектора, на последнем этапе интервал IK(m), в который попадает компонент xK, определяет концевой узел, который определяет итоговый набор С'(х).The search is implemented as transitions on tree branches. So the input vector
Figure 00000026
falls into the interval
Figure 00000021
if the component of the vector
Figure 00000027
. At the next stage, the subtree generated by the node I 1 (m) is considered (Fig. 2), thus, each component of the input vector is analyzed, at the last stage, the interval I K (m), into which the component x K falls, determines the end node, which defines the final set C ' (x).

Благодаря новой совокупности существенных признаков способа быстрого поиска в кодовой книге при векторном квантовании за счет последовательного исключения многоугольников Вороного при построении проекций на оси удается достичь снижения количества запоминающих устройств и уменьшения затрат вычислительных ресурсов при осуществлении быстрого поиска в кодовой книге при векторном квантовании.Thanks to the new set of essential features of the quick search method in the codebook during vector quantization due to the successive elimination of Voronoi polygons when constructing projections on the axis, it is possible to reduce the number of storage devices and reduce the cost of computing resources when performing a quick search in the code book during vector quantization.

Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного устройства условию патентоспособности "новизна".The analysis of the prior art made it possible to establish that analogues that are characterized by a set of features identical to all the features of the claimed technical solution are absent, which indicates the compliance of the claimed device with the patentability condition of "novelty".

Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения преобразований на достижение указанного технического результата. Следовательно, заявленное изобретение соответствует условию патентоспособности "изобретательский уровень".Search results for known solutions in this and related fields of technology in order to identify features that match the distinctive features of the claimed object from the prototype showed that they do not follow explicitly from the prior art. The prior art also did not reveal the popularity of the impact provided by the essential features of the claimed invention, the transformations on the achievement of the specified technical result. Therefore, the claimed invention meets the condition of patentability "inventive step".

Заявленное техническое решение поясняется чертежами, на которых показаны:The claimed technical solution is illustrated by drawings, which show:

фиг.1 - диаграмма Вороного для шестнадцати точек на плоскости, жирными линиями выделен многоугольник Вороного;figure 1 is a Voronoi diagram for sixteen points on a plane, the Voronoi polygon is highlighted in bold lines;

фиг.2 - иллюстрация структуры данных для поиска в виде дерева;figure 2 - illustration of the data structure for the search in the form of a tree;

фиг.3 - функциональная схема осуществления процедуры формирования структуры данных и индексированной таблицы векторов кандидатов;figure 3 is a functional diagram of a procedure for generating a data structure and an indexed table of candidate vectors;

фиг.4 - функциональная схема осуществления процедуры поиска ближайшего кодового вектора.4 is a functional diagram of the implementation of the search procedure for the nearest code vector.

Функциональная схема осуществления процедуры формирования структуры данных и индексированной таблицы векторов кандидатов показана на фиг.3. Она состоит из блока 1 построения диаграммы Вороного, на который поступает набор кодовых векторов, выход блока 1 соединен со входом блока 2 определения проекций многоугольников Вороного, на вход которого поступает набор многоугольников Вороного по оси у, выход блока 2 соединен с входом блока 3 упорядочивания точек проекций многоугольников Вороного по оси у, на вход которого поступают проекции многоугольников с блока 2, выходы блока 3 соединены со входами блока 4 определения пересечения многоугольников Вороного с полученными интервалами, которые поступают на вход блока 4 с блока 3, выход блока 4 соединен со входом блока 2 и блока 5 создания индексированной таблицы векторов кандидатов, на вход которого поступают многоугольники Вороного. Выходом блока 5 является набор итоговых кодовых векторов.A functional diagram of the implementation of the procedure for generating a data structure and an indexed table of candidate vectors is shown in FIG. 3. It consists of a Voronoi diagram block 1, which receives a set of code vectors, the output of block 1 is connected to the input of the Voronoi polygon projection block 2, the input of which is a set of Voronoi polygons along the y axis, the output of block 2 is connected to the input of the point ordering block 3 projections of Voronoi polygons along the y axis, to the input of which projections of polygons from block 2 are received, the outputs of block 3 are connected to the inputs of block 4 for determining the intersection of Voronoi polygons with the obtained intervals orye input to block 4 block 3, the output of unit 4 is connected to the input unit 2 and unit 5 creating an indexed table candidate vectors at the input of which receives the Voronoi polygons. The output of block 5 is a set of resulting code vectors.

Рассмотрим реализацию процедуры формирования структуры данных и индексированной таблицы векторов кандидатов. На блок 1 поступает информация о векторах кодовой книги, блок 1 выполняет построение диаграммы Вороного и формирует на выходе набор многоугольников Вороного, соответствующих кодовым векторам, информация о которых подается на блок 2, который формирует проекции каждого многоугольника на оси, далее они поступают на вход блока 3, который упорядочивает точки проекций по оси и формирует набор интервалов, который подается на блок 4. Блок 4 для каждого полученного интервала определяет набор многоугольников, чьи координаты проекций пересекают данный интервал, причем в первоначальный набор для определения входят только те многоугольники, которые образовали данный набор интервалов. На выходе блока 4 формируют информацию о наборе многоугольников Вороного для каждого интервала. Если набор интервалов был построен для последней из рассматриваемых осей, то полученный набор многоугольников является итоговым, если нет, то информацию о наборе многоугольников подают на блок 2.Consider the implementation of the procedure for generating a data structure and an indexed table of candidate vectors. Block 1 receives information about the codebook vectors, block 1 constructs the Voronoi diagram and generates at the output a set of Voronoi polygons corresponding to the code vectors, the information about which is fed to block 2, which forms the projections of each polygon on the axis, then they are fed to the input of the block 3, which arranges the projection points along the axis and forms a set of intervals, which is fed to block 4. Block 4 for each obtained interval defines a set of polygons whose projection coordinates intersect the given th interval, and in the initial set for the determination includes only those polygons, which formed this set of intervals. At the output of block 4, information on a set of Voronoi polygons for each interval is generated. If the set of intervals was built for the last of the considered axes, then the resulting set of polygons is the final one, if not, then information about the set of polygons is fed to block 2.

На фиг.4 показана функциональная схема осуществления процедуры поиска ближайшего кодового вектора. Она состоит из блока 101 определения интервала, на который поступают последовательно компоненты кодового вектора, выход блока 101 соединен со входом блока 102 определения ячейки таблицы конечных векторов, на который поступает последний определенный интервал, выход блока 102 соединен со входом блока 103 считывания с таблицы, выход блока 103 соединен с входом блока 104 хранения таблицы итоговых наборов кодовых векторов, а выход блока 104 соединен с входом блока 103, на выходе блока 103 - итоговый набор кодовых векторов кандидатов. Ее функционирование осуществляется следующим образом. На блок 101 последовательно поступают компоненты кодового вектора. Для каждой компоненты блок 101 последовательно определяет, в какой интервал она попадает, таким образом, происходит переход по узлам дерева (см. фиг.2). Последний определенный интервал поступает на блок 102 определения ячейки таблицы конечных векторов, где по данному интервалу определяется ячейка таблицы конечных векторов. Индекс определенной ячейки подается на блок 103 считывания с таблицы, который по данному индексу считывает из блока 104 хранения таблицы итоговых наборов кодовых векторов, в итоге на выходе блока 103 - итоговый набор кодовых векторов кандидатов.Figure 4 shows a functional diagram of the procedure for finding the nearest code vector. It consists of a block 101 for determining the interval for which the components of the code vector arrive sequentially, the output of block 101 is connected to the input of the block for determining the cell of the table of finite vectors, to which the last determined interval arrives, the output of block 102 is connected to the input of the block 103 for reading from the table, the output block 103 is connected to the input of block 104 for storing the table of final sets of code vectors, and the output of block 104 is connected to the input of block 103, and the output of block 103 is the final set of candidate code vectors. Its functioning is as follows. Block 101 sequentially receives the components of the code vector. For each component, block 101 sequentially determines at what interval it falls, thus, a transition occurs along the nodes of the tree (see figure 2). The last determined interval is supplied to the block determining the cell of the finite vector table, where the cell of the finite vector table is determined from this interval. The index of a specific cell is supplied to a table reading unit 103, which at this index reads from the table storage unit 104 of the table of final sets of code vectors, as a result, at the output of block 103, the final set of candidate code vectors.

К достоинствам способа следует отнести тот факт, что построение проекций многоугольников Вороного выполняется последовательно на каждую из осей измерения и впоследствии для каждого интервала строят только проекции тех многоугольников, проекции которых пересекают данный интервал. Применение предлагаемого подхода позволяет организовать структуру для поиска в виде дерева. Концевой узел которого однозначно определяет итоговый набор векторов кандидатов.The advantages of the method include the fact that the construction of the projections of Voronoi polygons is carried out sequentially on each of the measurement axes and subsequently for each interval only projections of those polygons whose projections intersect this interval are built. Application of the proposed approach allows you to organize the structure for the search in the form of a tree. The end node of which uniquely determines the final set of candidate vectors.

Промышленное применение способа обусловлено наличием элементной базы, на базе которой могут быть выполнены устройства, реализующие данный способ. Применение предлагаемого способа существенно уменьшит требуемый для реализации объем запоминающих устройств по сравнению с прототипом, а реализация процедуры перехода по узлам дерева сократит объем вычислительных затрат.Industrial application of the method is due to the presence of the element base, on the basis of which devices that implement this method can be made. The application of the proposed method will significantly reduce the amount of storage devices required for implementation in comparison with the prototype, and the implementation of the transition procedure through the tree nodes will reduce the amount of computational cost.

Вычислительная сложность предложенного метода Zn для поиска одного вектора находится с использованием следующего выражения:The computational complexity of the proposed method Z n for finding a single vector is found using the following expression:

Figure 00000028
Figure 00000028

где Ni изменяется, Ni=N…NK, N…NK - число векторов претендентов, оставшихся не исключенными после рассмотрения i-й оси, S - конечное число в С'(х) итоговом наборе векторов кандидатов, а δ - количество операций для вычисления расстояния до кодового вектора. Для сравнения вычислительная сложность Z, предложенного в прототипе:where N i varies, N i = N ... N K , N ... N K is the number of vectors of applicants that remained not excluded after considering the ith axis, S is the final number in C '(x) of the final set of candidate vectors, and δ is the number of operations to calculate the distance to the code vector. For comparison, the computational complexity Z proposed in the prototype:

Figure 00000029
Figure 00000029

Из выражения (3) и (4) получим выражение для полученного эффекта по вычислительной сложности:From expressions (3) and (4) we obtain the expression for the obtained effect with respect to computational complexity:

Figure 00000030
Figure 00000030

Количество памяти, необходимое для реализации прототипа, оценивается выражением:The amount of memory required to implement the prototype is estimated by the expression:

Figure 00000031
Figure 00000031

где γ - средний размер памяти, требуемой для хранения итогового набора векторов кандидатов.where γ is the average size of memory required to store the final set of candidate vectors.

Оценка использованной памяти предложенного способа Мn равна:Assessment of the used memory of the proposed method M n is equal to:

Figure 00000032
Figure 00000032

Из выражения (6) и (7) получим выражение для полученного эффекта по использованию памяти:From expressions (6) and (7) we obtain the expression for the obtained effect on the use of memory:

Figure 00000033
Figure 00000033

Рассмотрим пример, показывающий наглядно эффективность предложенного метода по отношению к прототипу для случая 32 векторов для четырехмерного пространства (N=32, К=4), по вычислительной сложности и использованию ресурсов памяти. По вычислительным ресурсам для прототипа:Consider an example that demonstrates the effectiveness of the proposed method in relation to the prototype for the case of 32 vectors for four-dimensional space (N = 32, K = 4), in terms of computational complexity and the use of memory resources. By computing resources for the prototype:

Z=d·log2·2·N+δ·S=4·6+δ·S=24+δ·S,Z = d · log 2 · 2 · N + δ · S = 4 · 6 + δ · S = 24 + δ · S,

для предложенного способа:for the proposed method:

Figure 00000034
Figure 00000034

Получим выигрыш по вычислительной сложности:We get the gain in computational complexity:

Ez=(Z/Zn)=2,18, т.е на кодирование одного входного вектора, вектором из кодовой книги, для разработанного метода требуется в среднем в 2,18 раза операций меньше, чем методом, описанным в прототипе.E z = (Z / Z n ) = 2.18, i.e., to encode one input vector with a vector from the codebook, the developed method requires an average of 2.18 times less operations than the method described in the prototype.

По использованию ресурсов памятиBy using memory resources

M=(2N-1)K γ=(2·32-1)4γ=15752961·γM = (2N-1) K γ = (2 · 32-1) 4 γ = 15752961 · γ

Получим выигрыш по вычислительной сложности:We get the gain in computational complexity:

Figure 00000035
Figure 00000035

Получим выигрыш по использованию ресурсов памяти:Get the gain on the use of memory resources:

Figure 00000036
Figure 00000036

Claims (1)

Способ быстрого поиска в кодовой книге при векторном квантовании, заключающийся в том, что К-мерное пространство разделяют на гиперпрямоугольные ячейки путем построения проекций многоугольника Вороного для каждого кодового вектора на координатную ось j, j=l, образующих N перекрывающих интервалов проекций, которые образуют 2N границ проекций (
Figure 00000037
,
Figure 00000038
,…,
Figure 00000039
), таких, что (
Figure 00000040
Figure 00000041
≤…≤
Figure 00000042
), при этом границы разбивают j-ю координатную ось на (2N-1) последовательных интервала {Ij(1),Ij(2), …, Ij(2N-1)}, где Ij(m)={(
Figure 00000043
,
Figure 00000044
)}, m - номер интервала, причем каждому интервалу соответствует набор индексов многоугольников Вороного, чьи интервалы проекций частично или полностью перекрываются с Ij(m), а набор кодовых векторов кандидатов связывают с каждой из гиперпрямоугольных ячеек, полученных в процессе предварительной обработки и хранящихся в некоторой таблице, что и выбирают итоговым набором векторов кандидатов, на этом малом наборе далее проводят поиск, при котором для каждого компонента входного вектора определяют интервал, в который попадает данный компонент, отличающийся тем, что в способе поиска в кодовой книге при векторном квантовании, используемом в прототипе, при построении проекций многоугольников Вороного на координатную ось j, j≠1, строят проекции для каждого интервала оси j-1 только тех многоугольников Вороного, которые входят в набор индексов этого интервала, т.е. для тех, чьи интервалы проекций частично или полностью перекрываются с рассматриваемым интервалом, далее на этапе поиска интервал, в который попадает компонент входного вектора определяют последовательно для всех осей, а последний интервал определяет гиперпрямоугольную ячейку с итоговым набором векторов кандидатов.
A quick search method in the codebook for vector quantization, namely, that the K-dimensional space is divided into hyper-rectangular cells by constructing projections of the Voronoi polygon for each code vector on the coordinate axis j, j = l, forming N overlapping projection intervals that form 2N projection boundaries (
Figure 00000037
,
Figure 00000038
, ...,
Figure 00000039
) such that (
Figure 00000040
Figure 00000041
≤ ... ≤
Figure 00000042
), while the boundaries divide the jth coordinate axis into (2N-1) consecutive intervals {I j (1), I j (2), ..., I j (2N-1)}, where I j (m) = {(
Figure 00000043
,
Figure 00000044
)}, m is the number of the interval, and each interval corresponds to a set of indices of Voronoi polygons whose projection intervals partially or completely overlap with I j (m), and a set of candidate code vectors is associated with each of the hyper-rectangular cells obtained during pre-processing and stored in some table, which is chosen by the final set of candidate vectors, on this small set, a search is then carried out in which for each component of the input vector the interval into which this component falls m, characterized in that in the method of searching in the codebook for vector quantization used in the prototype, when constructing projections of the Voronoi polygons on the coordinate axis j, j ≠ 1, projections for each interval of the j-1 axis only of those Voronoi polygons that are included into the set of indices of this interval, i.e. for those whose projection intervals partially or completely overlap with the considered interval, then at the search stage the interval into which the input vector component falls is determined sequentially for all axes, and the last interval defines a hyper-rectangular cell with the final set of candidate vectors.
RU2010103261/08A 2010-02-01 2010-02-01 Method for fast search in codebook with vector quantisation RU2435214C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010103261/08A RU2435214C2 (en) 2010-02-01 2010-02-01 Method for fast search in codebook with vector quantisation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010103261/08A RU2435214C2 (en) 2010-02-01 2010-02-01 Method for fast search in codebook with vector quantisation

Publications (2)

Publication Number Publication Date
RU2010103261A RU2010103261A (en) 2011-08-10
RU2435214C2 true RU2435214C2 (en) 2011-11-27

Family

ID=44754117

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010103261/08A RU2435214C2 (en) 2010-02-01 2010-02-01 Method for fast search in codebook with vector quantisation

Country Status (1)

Country Link
RU (1) RU2435214C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2504027C1 (en) * 2012-07-03 2014-01-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Method of creating codebook and search therein during vector quantisation of data
RU2622629C2 (en) * 2015-03-31 2017-06-16 Закрытое акционерное общество "Лаборатория Касперского" Method of searching for the road by tree
US11741977B2 (en) 2012-03-29 2023-08-29 Telefonaktiebolaget L M Ericsson (Publ) Vector quantizer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741977B2 (en) 2012-03-29 2023-08-29 Telefonaktiebolaget L M Ericsson (Publ) Vector quantizer
RU2504027C1 (en) * 2012-07-03 2014-01-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Method of creating codebook and search therein during vector quantisation of data
RU2622629C2 (en) * 2015-03-31 2017-06-16 Закрытое акционерное общество "Лаборатория Касперского" Method of searching for the road by tree

Also Published As

Publication number Publication date
RU2010103261A (en) 2011-08-10

Similar Documents

Publication Publication Date Title
Zhang et al. ZipML: Training linear models with end-to-end low precision, and a little bit of deep learning
Dasgupta et al. Random projection trees for vector quantization
CN112487168B (en) Semantic question-answering method and device of knowledge graph, computer equipment and storage medium
CN109344242B (en) Dialogue question-answering method, device, equipment and storage medium
Puleo et al. Correlation clustering with constrained cluster sizes and extended weights bounds
Matoušek Lecture notes on metric embeddings
CN112307168A (en) Artificial intelligence-based inquiry session processing method and device and computer equipment
RU2435214C2 (en) Method for fast search in codebook with vector quantisation
O'Connor et al. Optimal transport for stationary Markov chains via policy iteration
Hirata et al. Reconstructing state spaces from multivariate data using variable delays
Liu et al. Minimax estimation of large precision matrices with bandable Cholesky factor
CN112509644A (en) Molecular optimization method, system, terminal equipment and readable storage medium
CN112149424A (en) Semantic matching method and device, computer equipment and storage medium
CN107944045B (en) Image search method and system based on t distribution Hash
Jordan et al. Estimating Jones and HOMFLY polynomials with one clean qubit
CN115168326A (en) Hadoop big data platform distributed energy data cleaning method and system
CN112818098A (en) Knowledge base-based dialog generation method and device, terminal and storage medium
Gutiérrez et al. Genetic algorithm for the weight maximization problem on weighted automata
CN117035107B (en) Media resource processing method and device, storage medium and electronic device
CN117235665B (en) Self-adaptive privacy data synthesis method, device, computer equipment and storage medium
Gong et al. Adaptive methods for center choosing of radial basis function interpolation: a review
CN115329158B (en) Data association method based on multi-source heterogeneous power data
CN116610964B (en) Text similarity matching method and device and computer equipment
CN117521658B (en) RPA process mining method and system based on chapter-level event extraction
Gong et al. AutoQNN: An End-to-End Framework for Automatically Quantizing Neural Networks

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20120202