RU2461079C2 - Simplified vector indexing and deindexing - Google Patents

Simplified vector indexing and deindexing Download PDF

Info

Publication number
RU2461079C2
RU2461079C2 RU2010138178/08A RU2010138178A RU2461079C2 RU 2461079 C2 RU2461079 C2 RU 2461079C2 RU 2010138178/08 A RU2010138178/08 A RU 2010138178/08A RU 2010138178 A RU2010138178 A RU 2010138178A RU 2461079 C2 RU2461079 C2 RU 2461079C2
Authority
RU
Russia
Prior art keywords
vectors
specified
sets
vector
leader
Prior art date
Application number
RU2010138178/08A
Other languages
Russian (ru)
Other versions
RU2010138178A (en
Inventor
Адриана ВАСИЛАКЕ (FI)
Адриана ВАСИЛАКЕ
Лассе ЛААКСОНЕН (FI)
Лассе ЛААКСОНЕН
Ансси РЯМЁ (FI)
Ансси РЯМЁ
Микко ТАММИ (FI)
Микко ТАММИ
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 RU2010138178/08A priority Critical patent/RU2461079C2/en
Publication of RU2010138178A publication Critical patent/RU2010138178A/en
Application granted granted Critical
Publication of RU2461079C2 publication Critical patent/RU2461079C2/en

Links

Images

Landscapes

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

Abstract

FIELD: information technology.
SUBSTANCE: indexing procedure involves performing specific processing when an input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors which are part of a plurality of sets of vectors, wherein the specific processing is adapted to a property of the sets of vectors in a predetermined group of sets of vectors and is applicable only in case of input vectors contained in the sets of vectors with a defined property. Also, the indexing procedure involves performing general processing if an input vector is not contained in the set of vectors of a predetermined group of sets of vectors. The invention also relates to a corresponding procedure for determining the target vector contained in the set of vectors, which is part of the plurality of vectors, based on an index associated with said target vector.
EFFECT: simple indexing or deindexing procedure.
37 cl, 4 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

Это изобретение относится к индексации и деиндексации векторов.This invention relates to indexing and deindexing of vectors.

УРОВЕНЬ ТЕХНИКИBACKGROUND

В обеспечении связи с помощью мобильного терминала существенную роль играют несложные алгоритмы речевого и аудиокодирования. Благодаря малому объему используемой памяти и простоте алгоритма наряду с эффективным кодированием, структурированные кодовые словари используют, например, для квантования в нескольких современных речевых и аудиокодеках, таких как адаптивный многоскоростной широкополосный (AMR-WB, Adaptive Multi Rate - WideBand) кодек или G.EV-VBR, стандарт которого в настоящее время разрабатывается в рамках ITU-T SG16/Q9.In providing communication via a mobile terminal, a simple role is played by simple speech and audio coding algorithms. Due to the small amount of memory used and the simplicity of the algorithm, along with efficient coding, structured code dictionaries are used, for example, for quantization in several modern speech and audio codecs, such as the adaptive multi-speed wideband (AMR-WB, Adaptive Multi Rate - WideBand) codec or G.EV -VBR, whose standard is currently being developed as part of ITU-T SG16 / Q9.

Кодовые словари, используемые в способах квантования речевых и аудиокодеков, могут, например, основываться на решетчатых структурах, как это описано в статье S.Ragot, В.Bessette и R.Lefebvre "Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit/s" (Несложное многоскоростное решетчатое векторное квантование, применяемое для широкополосного речевого кодирования TCX на скорости 32 кбит/с), опубликованной в материалах конференции IEEE International Conference on Acoustics, Speech, and Signal Processing, 2004 (ICASSP '04, Международная конференция IEEE по акустике, обработке речи и сигналов), Монреаль, Канада, 17-21 мая 2004 года, том 1, стр.501-504, которая полностью включена в настоящее описание посредством ссылки. В этой статье также подробно описывается процесс квантования.Code dictionaries used in methods for quantizing speech and audio codecs can, for example, be based on lattice structures, as described in S. Ragot, B. Bessette and R. Lefebvre "Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit / s "(Uncomplicated multi-speed trellis vector quantization used for TCX broadband speech coding at 32 kbps), published in IEEE International Conference on Acoustics, Speech, and Signal Processing, 2004 (ICASSP ' 04, IEEE International Conference on Acoustics, Speech and Signal Processing), M Onreal, Canada, May 17-21, 2004, Volume 1, pp. 501-504, which is incorporated herein by reference in its entirety. This article also describes the quantization process in detail.

Если в качестве кодовых словарей используются решетчатые структуры, то требуются алгоритмы для индексации узлов решетки.If lattice structures are used as code dictionaries, then algorithms are required for indexing lattice nodes.

Кодовый словарь с решетчатой структурой можно определить как объединение лидер-классов (leader class), каждый из которых характеризуется лидер-вектором (leader vector). Лидер-вектор представляет собой n-мерный вектор с упорядоченными (например, в порядке убывания) компонентами. Лидер-класс, соответствующий лидер-вектору, включает в свой состав лидер-вектор и все векторы, получаемые путем всех перестановок лидер-вектора с учетом знаков (с некоторыми возможными ограничениями).A code book with a lattice structure can be defined as a union of leader classes, each of which is characterized by a leader vector. A leader vector is an n-dimensional vector with ordered (e.g., in descending order) components. The leader class corresponding to the leader vector includes the leader vector and all vectors obtained by all permutations of the leader vector, taking into account the signs (with some possible restrictions).

Типом алгоритма индексации узлов решетки, определенной как объединение лидер-классов, может, например, быть алгоритм индексации лидер-векторов. В этом контексте, помимо прочего, могут применяться лексикографические и биномиальные алгоритмы, описанные в статье А. Vasilache и I. Tabus "Robust indexing of lattices and permutation codes over binary symmetric channels" (Надежная индексация решеток и перестановочных кодов в двоичных симметричных каналах), опубликованной в издании Signal Processing (обработка сигналов), том 83, номер 7, стр.1467-1486, 2003 год, которая полностью включена в данное описание посредством ссылки.The type of algorithm for indexing lattice nodes, defined as a union of leader classes, can, for example, be an algorithm for indexing leader vectors. In this context, among other things, the lexicographic and binomial algorithms described in the article by A. Vasilache and I. Tabus "Robust indexing of lattices and permutation codes over binary symmetric channels" (Reliable indexing of lattices and permutation codes in symmetric binary channels) can be applied, published in Signal Processing, Volume 83, Number 7, pp. 1467-1486, 2003, which is incorporated herein by reference in its entirety.

Биномиальные алгоритмы обычно менее сложные, поскольку они одновременно учитывают несколько векторных компонентов.Binomial algorithms are usually less complex because they simultaneously take into account several vector components.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Существует возможность дальнейшего упрощения процесса индексации и/или деиндексации.It is possible to further simplify the indexing and / or de-indexing process.

В соответствии с первым аспектом настоящего изобретения раскрывается способ, включающий индексацию входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов. Процедура индексации включает выполнение специфической обработки в том случае, когда входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с определенным свойством. Кроме того, процедура индексации включает выполнение общей обработки в том случае, если входной вектор не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a first aspect of the present invention, a method is disclosed comprising indexing an input vector contained in a set of vectors included in a plurality of sets of vectors. The indexing procedure involves performing specific processing in the case where the input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, while the specific processing is adapted to the property of the sets of vectors in a predetermined group of vector sets and is applicable only in the case of input vectors contained in sets of vectors with a specific property. In addition, the indexing procedure includes performing general processing if the input vector is not contained in the vector set of a predetermined group of vector sets.

В соответствии с первым аспектом настоящего изобретения также раскрывается компьютерная программа. Компьютерная программа содержит инструкции для выполнения процессором индексации входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов. Процедура индексации включает выполнение специфической обработки в том случае, когда входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с определенным свойством. Кроме того, процедура индексации включает выполнение общей обработки в том случае, если входной вектор не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a first aspect of the present invention, a computer program is also disclosed. The computer program contains instructions for the processor to index the input vector contained in a set of vectors included in many sets of vectors. The indexing procedure involves performing specific processing in the case where the input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, while the specific processing is adapted to the property of the sets of vectors in a predetermined group of vector sets and is applicable only in the case of input vectors contained in sets of vectors with a specific property. In addition, the indexing procedure includes performing general processing if the input vector is not contained in the vector set of a predetermined group of vector sets.

В соответствии с первым аспектом настоящего изобретения также раскрывается машиночитаемый носитель, на котором хранится такая компьютерная программа. Машиночитаемым носителем может быть любой носитель, на котором могут храниться цифровые данные в электрическом, магнитном, электромагнитном или оптическом виде. Носитель может фиксированным образом устанавливаться в устройстве или может представлять собой сменный носитель.In accordance with a first aspect of the present invention, a computer-readable medium on which such a computer program is stored is also disclosed. A computer-readable medium can be any medium on which digital data can be stored in electrical, magnetic, electromagnetic, or optical form. The media may be fixedly mounted in the device or may be removable media.

В соответствии с первым аспектом настоящего изобретения также раскрывается устройство, содержащее компонент обработки, выполненный с возможностью индексации входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов. Кроме того, компонент обработки сконфигурирован для выполнения специфической обработки в том случае, когда входной вектор, подлежащий индексации, содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с определенным свойством. Компонент обработки также выполнен с возможностью осуществления общей обработки в том случае, если входной вектор, подлежащий индексации, не содержится в наборе векторов заранее заданной группы наборов векторов.According to a first aspect of the present invention, there is also disclosed a device comprising a processing component adapted to index an input vector contained in a set of vectors included in a plurality of sets of vectors. In addition, the processing component is configured to perform specific processing in the case where the input vector to be indexed is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, while the specific processing is adapted to the property of the sets of vectors in a predefined group of sets of vectors and is applicable only in the case of input vectors contained in sets of vectors with a specific property. The processing component is also configured to perform general processing if the input vector to be indexed is not contained in a set of vectors of a predetermined group of sets of vectors.

В соответствии с первым аспектом настоящего изобретения также раскрывается устройство, включающее в свой состав средства для индексации входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов. Средства индексации включают в свой состав средства для выполнения специфической обработки в том случае, когда входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с определенным свойством. Кроме того, средства индексации содержат средства для выполнения общей обработки в том случае, если входной вектор не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a first aspect of the present invention, there is also disclosed an apparatus including means for indexing an input vector contained in a set of vectors included in a plurality of sets of vectors. Indexing tools include tools for performing specific processing in the case when the input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, while the specific processing is adapted to the property of the sets of vectors in a predetermined group of sets of vectors and is applicable only in the case of input vectors contained in sets of vectors with a specific property. In addition, the indexing means comprise means for performing general processing in the event that the input vector is not contained in the set of vectors of a predetermined group of sets of vectors.

В соответствии с первым аспектом настоящего изобретения входной вектор представляет собой вектор, подлежащий индексации. Входной вектор содержится в наборе векторов, который, в свою очередь, содержится в множестве наборов векторов. Множество наборов векторов может, например, служить в качестве кодового словаря для процесса квантования. В ходе такого процесса квантования входной вектор может, например, идентифицироваться как наиболее точное соответствие всех векторов в множестве наборов векторов по отношению к вектору, подлежащему квантованию.According to a first aspect of the present invention, the input vector is a vector to be indexed. The input vector is contained in a set of vectors, which, in turn, is contained in a set of sets of vectors. Many sets of vectors can, for example, serve as a codebook for the quantization process. During such a quantization process, an input vector can, for example, be identified as the most accurate correspondence of all vectors in the set of vector sets with respect to the vector to be quantized.

При индексации входному вектору назначается индекс. Индекс может, например, принимать форму сигнала. Между двумя объектами может осуществляться обмен этим сигналом для идентификации входного вектора. С помощью индекса входной вектор может по меньшей мере частично идентифицироваться в наборе векторов, в котором он содержится. Индекс может, например, идентифицировать входной вектор в множестве наборов векторов или только в наборе векторов, в котором содержится этот входной вектор. Кроме того, индекс может представлять или не представлять знаки компонентов входного вектора.When indexing, an index is assigned to the input vector. The index may, for example, take the form of a waveform. Between two objects, this signal can be exchanged to identify the input vector. Using an index, an input vector can be at least partially identified in the set of vectors in which it is contained. An index can, for example, identify an input vector in a plurality of sets of vectors, or only in a set of vectors in which this input vector is contained. In addition, the index may or may not represent the signs of the components of the input vector.

При индексации входного вектора может, например, по меньшей мере выдаваться индекс позиции, представляющий позиции значений во входном векторе. При индексации дополнительно может выдаваться индекс знака, который представляет знак компонентов входного вектора. Кроме того, при индексации может выдаваться окончательный индекс, который объединяет в себе индекс позиции и индекс знака и может дополнительно представлять лидер-класс, в котором содержится входной вектор.When indexing the input vector, for example, at least a position index representing the position of the values in the input vector may be output. During indexing, an additional index of a character may be provided that represents the character of the components of the input vector. In addition, during indexing, a final index can be issued, which combines the position index and the index of the sign and can additionally represent the leader class that contains the input vector.

В зависимости от набора векторов, в котором содержится входной вектор, выполняются различные процедуры обработки. Если входной вектор содержится в наборе векторов, который принадлежит заранее заданной группе наборов векторов, то применяется специфическая обработка. В противном случае применяется общая обработка. Оба вида обработки образуют по меньшей мере часть процедуры индексации входного вектора. Например, специфическая обработка и общая обработка могут относиться ко всему процессу индексации, а могут относиться только к частям этого процесса.Depending on the set of vectors in which the input vector is contained, various processing procedures are performed. If the input vector is contained in a set of vectors that belongs to a predefined group of sets of vectors, then specific processing is applied. Otherwise, general processing is applied. Both types of processing form at least part of the indexing procedure of the input vector. For example, specific processing and general processing may relate to the entire indexing process, but may relate only to parts of this process.

Специфическая обработка адаптирована к свойству набора векторов, в котором содержится входной вектор.Specific processing is adapted to the property of a set of vectors, which contains the input vector.

Специфическая обработка настраивается для набора векторов, в котором содержится входной вектор. Это позволяет повысить возможности обработки и уменьшить общий уровень сложности процесса индексации входного вектора.Specific processing is configured for a set of vectors containing the input vector. This allows you to increase processing capabilities and reduce the overall level of complexity of the process of indexing the input vector.

Например, структура специфической обработки может быть упрощена по сравнению с общей обработкой путем, например, выполнения нескольких действий в одном цикле.For example, the structure of a specific treatment can be simplified compared to general processing by, for example, performing several actions in a single cycle.

Таким же образом, введение специфической обработки может позволить снизить сложность общей обработки, например, за счет исключения процедуры обработки входных векторов конкретных наборов векторов из процесса общей обработки (и включения этой процедуры в процесс специфической обработки), благодаря чему общая обработка упрощается. Обе меры приводят к снижению общего уровня сложности индексации входного вектора.In the same way, the introduction of specific processing can reduce the complexity of the overall processing, for example, by eliminating the processing of input vectors of specific sets of vectors from the overall processing process (and including this procedure in the specific processing process), thereby simplifying the overall processing. Both measures lead to a decrease in the overall complexity of indexing the input vector.

Процесс настройки может ограничить область применения специфической обработки входными векторами, содержащимися в наборах векторов с определенным свойством, то есть специфическая обработка может быть неприменима, например, в том случае, если входные векторы содержатся в наборах векторов, которые не входят в заранее заданную группу наборов векторов.The tuning process may limit the scope of specific processing to the input vectors contained in sets of vectors with a certain property, i.e., specific processing may not be applicable, for example, if the input vectors are contained in sets of vectors that are not included in a predefined group of sets of vectors .

Общая обработка может быть не ограничена применением только в том случае, если входные векторы содержатся в наборах векторов конкретной группы наборов векторов. Например, общая обработка может быть применима в том случае, если входные векторы содержатся в любом наборе векторов, входящем в множество наборов векторов, или в случае, когда входные векторы содержатся в любом наборе векторов, входящем в множество наборов векторов, за исключением наборов векторов, входящих в заранее заданную группу наборов векторов. В последнем случае возможна оптимизация общей обработки по отношению к входным векторам, содержащимся в наборах векторов, которые не входят в заранее заданную группу наборов векторов.General processing may not be limited to use only if the input vectors are contained in the sets of vectors of a particular group of sets of vectors. For example, general processing may be applicable if the input vectors are contained in any set of vectors included in the set of vectors, or in the case where the input vectors are contained in any set of vectors included in the set of vectors, except for sets of vectors, sets of vectors included in a predetermined group. In the latter case, it is possible to optimize the overall processing with respect to the input vectors contained in the sets of vectors that are not included in a predefined group of sets of vectors.

В соответствии с примером осуществления первого аспекта настоящего изобретения общая обработка в случае применения к входным векторам, содержащимся в наборах векторов с определенным свойством, была бы более сложной по сравнению со специфической обработкой, применяемой к тем же входным векторам. В данном случае сложность может, например, быть связана с вычислительной сложностью и/или с требованиями к объему памяти.According to an exemplary embodiment of the first aspect of the present invention, general processing when applied to input vectors contained in sets of vectors with a specific property would be more complex than the specific processing applied to the same input vectors. In this case, complexity may, for example, be related to computational complexity and / or memory requirements.

В соответствии с примером осуществления первого аспекта настоящего изобретения входные векторы, содержащиеся в наборе векторов заранее заданной группы наборов векторов, могут быть индексированы с большей вероятностью, чем входные векторы, содержащиеся в наборах векторов, не входящих в заранее заданную группу наборов векторов. С учетом общей сложности может быть особенно полезным то, что специфическая обработка является менее сложным процессом, чем общая обработка (если применяется к входным векторам, содержащимся в наборах векторов с определенным свойством). Вероятность может зависеть от приложения, в котором выполняется индексация. Вероятность может, например, определяться в автономном режиме.According to an exemplary embodiment of the first aspect of the present invention, input vectors contained in a vector set of a predetermined group of vector sets may be more likely to be indexed than input vectors contained in sets of vectors outside the predetermined group of vector sets. Given the total complexity, it can be especially useful that specific processing is less complex than general processing (if applied to input vectors contained in sets of vectors with a specific property). The likelihood may depend on the application in which indexing is performed. The probability may, for example, be determined offline.

В соответствии с примером осуществления первого аспекта настоящего изобретения наборы векторов представляют собой лидер-классы, а каждый лидер-класс содержит различный лидер-вектор и перестановки лидер-вектора. Объединение этих лидер-классов затем может определять решетку, которая может использоваться в виде структурированного кодового словаря для квантования, например, в речевом, аудио- или видеокодеке, при кодировании изображений, сжатии данных или в любой другой области, в которой используется квантование.According to an embodiment of the first aspect of the present invention, the vector sets are leader classes, and each leader class contains a different leader vector and permutations of the leader vector. The combination of these leader classes can then define a lattice that can be used as a structured codebook for quantization, for example, in a speech, audio or video codec, for image encoding, data compression, or in any other area that uses quantization.

Лидер-классы могут иметь знак, и при индексации по меньшей мере может выдаваться индекс позиции, представляющий позиции значений во входном векторе, и индекс знака, представляющий знаки компонентов входного вектора. Далее в рамках специфической обработки индекс позиции и индекс знака могут совместно определяться в одном цикле. Этот цикл, например, может выполняться для каждого компонента входного вектора. С другой стороны, в рамках общей обработки индекс позиции и индекс знака могут определяться только друг за другом. При индексации может также выдаваться окончательный индекс, который объединяет в себе индекс позиции и индекс знака и может дополнительно представлять лидер-класс, в котором содержится входной вектор.Leader classes can have a sign, and when indexing, at least a position index representing the position of the values in the input vector and a sign index representing the signs of the components of the input vector can be returned. Further, within the framework of specific processing, the position index and the sign index can be jointly determined in one cycle. This loop, for example, can be performed for each component of the input vector. On the other hand, within the framework of general processing, the position index and the index of the sign can only be determined one after another. During indexing, the final index can also be issued, which combines the position index and the index of the sign and can optionally represent the leader class that contains the input vector.

В альтернативном варианте лидер-классы могут быть без знака. В этом случае при индексации может выдаваться только индекс позиции, представляющий позиции значений во входном векторе. В зависимости от обстоятельств при индексации может также выдаваться окончательный индекс, который дополнительно представляет лидер-класс, в котором содержится входной вектор.Alternatively, leader classes may be unsigned. In this case, when indexing, only the position index representing the position of the values in the input vector can be returned. Depending on the circumstances, the index may also produce a final index, which additionally represents the leader class that contains the input vector.

Свойство, к которому адаптирована специфическая обработка, может заключаться в том, что заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают только заранее заданное количество различных значений. Это заранее заданное количество может, например, равняться двум. Адаптация специфической обработки к этому свойству, в частности, может быть полезной в контексте биномиальной индексации, поскольку, помимо прочего, она позволяет совместно определить индекс позиции и индекс знака в одном цикле, а не по отдельности. Кроме того, адаптация специфической обработки к этому свойству может быть полезной в контексте биномиальной индексации, поскольку, помимо прочего, процедура индексации при этом должна только обрабатывать позицию одного значения (первого) без необходимости дальнейших подготовительных операций для проверки позиций второго значения (его позиция (позиции) зафиксирована путем фиксации позиции (позиций) первого значения).A property to which specific processing is adapted may consist in the fact that a predetermined group of leader classes consists only of leader classes with leader vectors whose components take only a predetermined number of different values. This predetermined amount may, for example, be two. Adaptation of specific processing to this property, in particular, can be useful in the context of binomial indexing, because, among other things, it allows you to jointly determine the position index and sign index in one cycle, and not separately. In addition, adapting a specific processing to this property can be useful in the context of binomial indexing, because, among other things, the indexing procedure should only process the position of one value (first) without the need for further preparatory operations to check the positions of the second value (its position (positions ) is fixed by fixing the position (s) of the first value).

Заранее заданная группа лидер-классов может содержать первую подгруппу лидер-классов с лидер-векторами, компоненты которых принимают только четные значения, и вторую подгруппу лидер-классов с лидер-векторами, компоненты которых принимают только нечетные значения. Согласно процессу специфической обработки действия, которые могут предприниматься в том случае, если входной вектор содержится в лидер-классе первой подгруппы лидер-классов, могут отличаться от действий, которые выполняются в том случае, когда входной вектор содержится в лидер-классе второй подгруппы лидер-классов.A predefined group of leader classes may contain a first subgroup of leader classes with leader vectors whose components take only even values, and a second subgroup of leader classes with leader vectors whose components take only odd values. According to the process of specific processing, the actions that can be taken if the input vector is contained in the leader class of the first subgroup of leader classes may differ from the actions that are performed when the input vector is contained in the leader class of the second leader group classes.

В альтернативном варианте свойство, к которому адаптирована специфическая обработка, может заключаться в том, что заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают максимальное количество различных значений. Например, лидер-классы в заранее заданной группе лидер-классов могут содержать лидер-векторы с четырьмя значениями. Обработка таких лидер-классов в рамках процесса специфической обработки может упростить общую обработку, поскольку затем в процессе общей обработки могут учитываться только лидер-классы, в которые входят лидер-векторы с тремя или менее значениями. Это способствует снижению общего уровня сложности индексации входных векторов.Alternatively, the property to which the specific processing is adapted may consist in the fact that a predefined group of leader classes consists only of leader classes with leader vectors whose components take the maximum number of different values. For example, leader classes in a predefined leader group group may contain leader vectors with four values. Processing such leader classes as part of a specific processing process can simplify the overall processing, since then only leader classes that include leader vectors with three or less values can be taken into account during the general processing. This helps to reduce the overall complexity of indexing input vectors.

С целью оптимизации общая обработка может применяться в том случае, если входные векторы содержатся в любом наборе векторов, входящем в множество наборов векторов, за исключением наборов векторов, входящих в заранее заданную группу наборов векторов.For optimization purposes, general processing can be applied if the input vectors are contained in any set of vectors included in the set of vectors, with the exception of sets of vectors included in a predefined group of sets of vectors.

Индексация входного вектора может выполняться в процессе квантования, который основан на решетчатом кодовом словаре, определенном лидер-классами.Indexing of the input vector can be performed during the quantization process, which is based on a trellis codebook defined by leader classes.

В соответствии с примером осуществления первого аспекта настоящего изобретения индексация является биномиальной индексацией. Такая процедура биномиальной индексации основана на количестве возможных распределений значений по позициям в векторе определенной размерности.According to an embodiment of the first aspect of the present invention, indexing is binomial indexing. Such a binomial indexing procedure is based on the number of possible distributions of values by position in a vector of a certain dimension.

В соответствии со вторым аспектом настоящего изобретения раскрывается способ, включающий определение целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе индекса, связанного с целевым вектором. Процедура определения включает выполнение специфической обработки в том случае, когда целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с определенным свойством. Кроме того, процедура определения включает выполнение общей обработки в том случае, если целевой вектор не содержится в наборе векторов заранее заданной группы наборов векторов.According to a second aspect of the present invention, a method is disclosed comprising determining a target vector contained in a set of vectors included in a plurality of sets of vectors based on an index associated with the target vector. The determination procedure involves performing specific processing in the case where the target vector is contained in the set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, and the specific processing is adapted to the property of the sets of vectors in a predetermined group of vector sets and is applicable only in the case of target vectors contained in sets of vectors with a specific property. In addition, the determination procedure includes performing general processing in the event that the target vector is not contained in the vector set of a predetermined group of vector sets.

В соответствии со вторым аспектом настоящего изобретения также раскрывается компьютерная программа, включающая инструкции для выполнения процессором определения целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе индекса, связанного с целевым вектором. Процедура определения включает выполнение специфической обработки в том случае, когда целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с определенным свойством. Кроме того, процедура определения включает выполнение общей обработки в том случае, если целевой вектор не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a second aspect of the present invention, there is also disclosed a computer program including instructions for the processor to determine a target vector contained in a set of vectors included in a plurality of sets of vectors based on an index associated with the target vector. The determination procedure involves performing specific processing in the case where the target vector is contained in the set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, and the specific processing is adapted to the property of the sets of vectors in a predetermined group of vector sets and is applicable only in the case of target vectors contained in sets of vectors with a specific property. In addition, the determination procedure includes performing general processing in the event that the target vector is not contained in the vector set of a predetermined group of vector sets.

В соответствии со вторым аспектом настоящего изобретения также раскрывается машиночитаемый носитель, на котором хранится такая компьютерная программа. Машиночитаемым носителем может быть любой носитель, на котором могут храниться цифровые данные в электрическом, магнитном, электромагнитном или оптическом виде. Носитель может фиксированным образом устанавливаться в устройстве или может представлять собой сменный носитель.In accordance with a second aspect of the present invention, a computer-readable medium on which such a computer program is stored is also disclosed. A computer-readable medium can be any medium on which digital data can be stored in electrical, magnetic, electromagnetic, or optical form. The media may be fixedly mounted in the device or may be removable media.

В соответствии со вторым аспектом настоящего изобретения также раскрывается устройство, содержащее компонент обработки, выполненный с возможностью определения целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе индекса, связанного с целевым вектором. Кроме того, компонент обработки сконфигурирован для выполнения специфической обработки в том случае, когда определяемый целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с определенным свойством. Компонент обработки также выполнен с возможностью осуществления общей обработки в том случае, если определяемый целевой вектор не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a second aspect of the present invention, there is also disclosed an apparatus comprising a processing component configured to determine a target vector contained in a set of vectors included in a plurality of sets of vectors based on an index associated with the target vector. In addition, the processing component is configured to perform specific processing in the case when the determined target vector is contained in the set of vectors of a predetermined group of one or more sets of vectors included in the set of vectors, while the specific processing is adapted to the property of the sets of vectors in a predetermined group of sets of vectors and is applicable only in the case of target vectors contained in sets of vectors with a specific property. The processing component is also configured to perform general processing if the determined target vector is not contained in the vector set of a predetermined group of vector sets.

В соответствии со вторым аспектом настоящего изобретения также раскрывается устройство, содержащее средства для определения целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе индекса, связанного с целевым вектором. Средства для определения включают в свой состав средства для выполнения специфической обработки в том случае, когда целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, при этом специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с определенным свойством. Кроме того, средства для определения содержат средства для выполнения общей обработки в том случае, если целевой вектор не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a second aspect of the present invention, there is also disclosed an apparatus comprising means for determining a target vector contained in a set of vectors included in a plurality of sets of vectors based on an index associated with the target vector. Means for determining include means for performing specific processing in the case when the target vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in many sets of vectors, while the specific processing is adapted to the property of the sets of vectors in advance a given group of sets of vectors and is applicable only in the case of target vectors contained in sets of vectors with a specific property. In addition, the means for determining contain means for performing general processing in the event that the target vector is not contained in the set of vectors of a predetermined group of sets of vectors.

В соответствии со вторым аспектом настоящего изобретения целевой вектор представляет собой вектор, который должен определяться на основе индекса, связанного с целевым вектором. Целевой вектор содержится в наборе векторов, который, в свою очередь, содержится в множестве наборов векторов. Множество наборов векторов может, например, служить в качестве кодового словаря для процесса квантования. В ходе такого процесса квантования целевой вектор может, например, идентифицироваться как наиболее точное соответствие всех векторов в множестве наборов векторов по отношению к вектору, подлежащему квантованию, и ему может назначаться индекс (то есть он может быть индексирован) таким образом, как это, например, раскрыто выше со ссылкой на первый аспект настоящего изобретения. Этот индекс может, например, по меньшей мере частично идентифицировать целевой вектор в наборе векторов. Кроме того, этот индекс может, например, идентифицировать набор векторов, в котором содержится целевой вектор, и может также указывать знаки компонентов целевого вектора. Затем на основе этого индекса в соответствии со вторым аспектом настоящего изобретения восстанавливается целевой вектор. Это может потребовать передачи индекса из объекта, который выполняет индексацию целевого вектора, в объект, который выполняет определение целевого вектора на основе индекса. В этом отношении индекс можно рассматривать как сигнал, который передается между объектами. Индексация может, например, осуществляться во время квантования, а определение целевого вектора на основе индекса, которое может рассматриваться как "деиндексация", может затем выполняться в процессе деквантования.In accordance with a second aspect of the present invention, the target vector is a vector to be determined based on an index associated with the target vector. The target vector is contained in a set of vectors, which, in turn, is contained in a set of sets of vectors. Many sets of vectors can, for example, serve as a codebook for the quantization process. During such a quantization process, the target vector can, for example, be identified as the most exact correspondence of all vectors in the set of vectors with respect to the vector to be quantized, and it can be assigned an index (that is, it can be indexed) in a way such as this, for example disclosed above with reference to the first aspect of the present invention. This index can, for example, at least partially identify the target vector in the set of vectors. In addition, this index may, for example, identify the set of vectors that contain the target vector, and may also indicate the signs of the components of the target vector. Then, based on this index in accordance with the second aspect of the present invention, the target vector is reconstructed. This may require transferring the index from the object that indexes the target vector to the object that performs the determination of the target vector based on the index. In this regard, the index can be considered as a signal that is transmitted between objects. Indexing can, for example, be carried out during quantization, and the determination of the target vector based on the index, which can be considered as "de-indexation", can then be performed during the dequantization process.

В соответствии со вторым аспектом настоящего изобретения в зависимости от набора векторов, в котором содержится целевой вектор, выполняются различные процедуры обработки. Если целевой вектор содержится в наборе векторов, который принадлежит заранее заданной группе наборов векторов, то применяется специфическая обработка. В противном случае применяется общая обработка.In accordance with a second aspect of the present invention, various processing procedures are performed depending on the set of vectors in which the target vector is contained. If the target vector is contained in a set of vectors that belongs to a predefined group of sets of vectors, then specific processing is applied. Otherwise, general processing is applied.

Специфическая обработка адаптирована к свойству набора векторов, в котором содержится целевой вектор.Specific processing is adapted to the property of a set of vectors that contains the target vector.

Специфическая обработка настраивается для набора векторов, в котором содержится целевой вектор, в соответствии с использованием свойства этого набора. Это позволяет улучшить обработку и снизить общий уровень сложности процедуры определения целевого вектора. Например, структура специфической обработки может быть упрощена по сравнению с общей обработкой. Эта мера приводит к снижению общего уровня сложности. Однако процесс настройки может ограничить область применения специфической обработки случаями, когда целевые векторы содержатся в наборах векторов с определенным свойством, то есть специфическая обработка может быть, например, неприменима в тех случаях, когда целевые векторы содержатся в наборах векторов, которые не входят в заранее заданную группу наборов векторов.Specific processing is configured for the set of vectors that contains the target vector, in accordance with the use of the properties of this set. This allows to improve processing and reduce the overall level of complexity of the procedure for determining the target vector. For example, the structure of a specific treatment can be simplified compared to the general treatment. This measure reduces the overall level of complexity. However, the tuning process may limit the scope of specific processing to cases where the target vectors are contained in sets of vectors with a certain property, i.e., specific processing may, for example, not be applicable in cases where the target vectors are contained in sets of vectors that are not included in a predetermined a group of sets of vectors.

Общая обработка может быть не ограничена применением в тех случаях, когда целевые векторы содержатся только в конкретной группе наборов векторов. Например, общая обработка может быть применима в том случае, если целевые векторы содержатся в любом наборе векторов, входящем в множество наборов векторов, или в случае, когда целевые векторы содержатся в любом наборе векторов, входящем в множество наборов векторов, за исключением наборов векторов, входящих в заранее заданную группу наборов векторов. В последнем случае существует возможность по меньшей мере некоторой оптимизации общей обработки.General processing may not be limited to use in cases where the target vectors are contained only in a particular group of vector sets. For example, general processing may be applicable if the target vectors are contained in any set of vectors included in the set of vectors, or in the case where the target vectors are contained in any set of vectors included in the set of vectors, except for sets of vectors, sets of vectors included in a predetermined group. In the latter case, there is the possibility of at least some optimization of the overall processing.

В соответствии с примером осуществления второго аспекта настоящего изобретения общая обработка в случае применения к целевым векторам, содержащимся в наборах векторов с определенным свойством, была бы более сложной по сравнению со специфической обработкой, применяемой к тем же целевым векторам. В данном случае сложность может, например, быть связана с вычислительной сложностью и/или с требованиями к объему памяти.According to an exemplary embodiment of the second aspect of the present invention, general processing when applied to target vectors contained in sets of vectors with a specific property would be more complex compared to the specific processing applied to the same target vectors. In this case, complexity may, for example, be related to computational complexity and / or memory requirements.

В соответствии с примером осуществления второго аспекта настоящего изобретения целевые векторы, содержащиеся в наборе векторов заранее заданной группы наборов векторов, могут быть определены с большей вероятностью, чем целевые векторы, содержащиеся в наборе векторов, не входящем в заранее заданную группу наборов векторов. С учетом общей сложности может быть особенно полезным то, что специфическая обработка является менее сложным процессом, чем общая обработка (если применяется в случае целевых векторов, содержащихся в наборах векторов с определенным свойством). Вероятность может зависеть от приложения, в котором выполняется процедура определения целевого вектора (например, процесс деквантования). Вероятность может, например, определяться в автономном режиме (офлайн).According to an exemplary embodiment of the second aspect of the present invention, target vectors contained in a vector set of a predetermined group of vector sets can be more likely to be determined than target vectors contained in a set of vectors not included in the predetermined group of vector sets. Given the total complexity, it may be especially useful that specific processing is less complex than general processing (if applied in the case of target vectors contained in sets of vectors with a specific property). The probability may depend on the application in which the procedure for determining the target vector is performed (for example, the dequantization process). Probability can, for example, be determined offline (offline).

В соответствии с примером осуществления второго аспекта настоящего изобретения наборы векторов представляют собой лидер-классы, а каждый лидер-класс содержит различный лидер-вектор и перестановки лидер-вектора.According to an embodiment of the second aspect of the present invention, the vector sets are leader classes, and each leader class contains a different leader vector and permutations of the leader vector.

Свойство, к которому адаптирована специфическая обработка, может, например, заключаться в том, что заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают только заранее заданное количество различных значений. Это заранее заданное количество может, например, равняться двум. В данном случае одно из двух различных значений может, например, равняться нулю.A property to which specific processing is adapted may, for example, consist in the fact that a predetermined group of leader classes consists only of leader classes with leader vectors whose components take only a predetermined number of different values. This predetermined amount may, for example, be two. In this case, one of two different values may, for example, be zero.

Определение целевого вектора может выполняться в процессе деквантования, который основан на решетчатом кодовом словаре, определенном лидер-классами.The determination of the target vector can be carried out in the process of dequantization, which is based on a trellised code dictionary defined by leader classes.

Свойство, к которому адаптирована специфическая обработка, может также заключаться в том, что заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают максимальное количество различных значений. Например, лидер-классы в заранее заданной группе лидер-классов могут содержать лидер-векторы с четырьмя значениями. Обработка таких лидер-классов в рамках процесса специфической обработки может упростить общую обработку, поскольку затем в процессе общей обработки могут учитываться только лидер-классы, в которые входят лидер-векторы с тремя или менее значениями. Это способствует снижению общего уровня сложности деиндексации входных векторов.The property to which specific processing is adapted may also consist in the fact that a predefined group of leader classes consists only of leader classes with leader vectors whose components take the maximum number of different values. For example, leader classes in a predefined leader group group may contain leader vectors with four values. Processing such leader classes as part of a specific processing process can simplify the overall processing, since then only leader classes that include leader vectors with three or less values can be taken into account during the general processing. This helps to reduce the overall complexity of the de-indexation of input vectors.

С целью оптимизации общая обработка может применяться в том случае, если целевые векторы содержатся в любом наборе векторов, входящем в множество наборов векторов, за исключением наборов векторов, входящих в заранее заданную группу наборов векторов.For optimization purposes, general processing can be applied if the target vectors are contained in any set of vectors included in the set of vectors, except for the sets of vectors included in a predefined group of sets of vectors.

В соответствии с примером осуществления второго аспекта настоящего изобретения индекс связан с целевым вектором через биномиальную индексацию. Такая процедура биномиальной индексации основана на количестве возможностей распределения значений по позициям в векторе определенной размерности.According to an embodiment of the second aspect of the present invention, the index is associated with the target vector through binomial indexing. Such a binomial indexing procedure is based on the number of possibilities for distributing values by position in a vector of a certain dimension.

В соответствии с третьим аспектом настоящего изобретения раскрывается система. Система содержит первый компонент обработки, выполненный с возможностью индексации входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, при этом первый компонент обработки сконфигурирован для выполнения специфической обработки в том случае, когда индексируемый входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, причем специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с определенным свойством, и, кроме того, первый компонент обработки выполнен с возможностью осуществления общей обработки в том случае, если входной вектор, подлежащий индексации, не содержится в наборе векторов заранее заданной группы наборов векторов. Система также содержит второй компонент обработки, выполненный с возможностью определения целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе индекса, связанного с целевым вектором, при этом второй компонент обработки также сконфигурирован для выполнения специфической обработки в том случае, когда определяемый целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в множество наборов векторов, причем специфическая обработка адаптирована к свойству наборов векторов в заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с определенным свойством, и, кроме того, второй компонент обработки также выполнен с возможностью осуществления общей обработки в том случае, если целевой вектор, подлежащий определению, не содержится в наборе векторов заранее заданной группы наборов векторов.In accordance with a third aspect of the present invention, a system is disclosed. The system comprises a first processing component configured to index an input vector contained in a set of vectors included in a plurality of sets of vectors, wherein the first processing component is configured to perform specific processing when the indexed input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the set of sets of vectors, and the specific processing is adapted to the property of the sets of vectors in a predetermined group npe of sets of vectors and is applicable only in the case of input vectors contained in sets of vectors with a certain property, and, in addition, the first processing component is capable of performing general processing if the input vector to be indexed is not contained in the vector set in advance of a given group of sets of vectors. The system also includes a second processing component, configured to determine the target vector contained in the set of vectors included in the set of vectors based on the index associated with the target vector, while the second processing component is also configured to perform specific processing in the case when the determined target vector is contained in the set of vectors of a predetermined group of one or more sets of vectors included in the set of sets of vectors, moreover, the specific processing of hell is applied to the property of vector sets in a predetermined group of vector sets and is applicable only in the case of target vectors contained in vector sets with a specific property, and, in addition, the second processing component is also capable of performing general processing in case the target vector to be determined, is not contained in the set of vectors of a predetermined group of sets of vectors.

Согласно третьему аспекту настоящего изобретения для системы соответственно применяется приведенное выше описание характеристик и преимуществ первого и второго аспектов настоящего изобретения.According to a third aspect of the present invention, the above description of the characteristics and advantages of the first and second aspects of the present invention is accordingly applied to the system.

Второй компонент обработки может, например, определять целевой вектор, который связан с индексом, назначенным входному вектору в процессе индексации входного вектора первым компонентом обработки, так чтобы соблюдалось равенство входного и целевого векторов. Первый и второй компоненты обработки могут, например, обмениваться индексом.The second processing component can, for example, determine the target vector that is associated with the index assigned to the input vector in the process of indexing the input vector by the first processing component, so that the equality of the input and target vectors is respected. The first and second processing components may, for example, exchange an index.

Первый и второй компоненты обработки могут, например, входить в состав двух различных устройств, при этом в устройстве, содержащем первый компонент обработки, выполняется индексация входного вектора, а в устройстве, содержащем второй компонент обработки, определяется целевой вектор, который связан с индексом, определенным первым компонентом обработки.The first and second processing components can, for example, be part of two different devices, in this case, the input vector is indexed in the device containing the first processing component, and the target vector is determined in the device containing the second processing component, which is associated with the index defined first component of processing.

Кроме того, первый и второй компоненты обработки могут входить в состав одного и того же устройства и могут, например, соответственно использоваться для квантования и деквантования.In addition, the first and second processing components can be part of the same device and can, for example, be used respectively for quantization and dequantization.

Эти и другие аспекты настоящего изобретения разъясняются в представленном ниже подробном описании. Представленные выше признаки настоящего изобретения и примеры его осуществления подразумеваются раскрытыми во всех возможных комбинациях друг с другом.These and other aspects of the present invention are explained in the following detailed description. The above features of the present invention and examples of its implementation are intended to be disclosed in all possible combinations with each other.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

К описанию прилагаются следующие чертежи:The following drawings are attached to the description:

фиг.1: схематическая блок-схема кодера G.EV-VBR;figure 1: a schematic block diagram of a coder G.EV-VBR;

фиг.2: алгоритм реализации способа для индексации входного вектора в соответствии с примером осуществления первого аспекта настоящего изобретения;figure 2: the implementation algorithm of the method for indexing the input vector in accordance with an example implementation of the first aspect of the present invention;

фиг.3: алгоритм реализации способа для определения целевого вектора на основе индекса, связанного с целевым вектором, в соответствии с примером осуществления второго аспекта настоящего изобретения;3: an algorithm for implementing a method for determining a target vector based on an index associated with a target vector, in accordance with an embodiment of the second aspect of the present invention;

фиг.4: схематическая блок-схема устройства, способного реализовать способы, соответствующие первому и второму аспектам настоящего изобретения.4: a schematic block diagram of a device capable of implementing methods corresponding to the first and second aspects of the present invention.

ПОДРОБНОЕ ОПИСАНИЕ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE EMBODIMENTS

В приводимом ниже подробном описании настоящего изобретения примеры его осуществления приводятся в контексте индексации и деиндексации узлов решетки, связанных с решетчатым квантователем, предложенным для кодека G.EV-VBR или производных от него кодеков. Однако настоящее изобретение не ограничено этим кодеком, этим конкретным решетчатым квантователем или индексацией/деиндексаций решетчатых структур; оно также может применяться во всех иных сценариях, в которых требуется выполнение индексации и деиндексации векторов.In the following detailed description of the present invention, examples of its implementation are given in the context of indexing and deindexing lattice nodes associated with the trellis quantizer proposed for the G.EV-VBR codec or its derivative codecs. However, the present invention is not limited to this codec, this particular trellis quantizer or indexing / deindexing trellis structures; it can also be used in all other scenarios that require indexing and deindexing of vectors.

Процесс стандартизации кодека G.EV-VBR осуществляется в рамках документа ITU-T SG16/Q9. Этот кодек представляет собой речевой и встроенный масштабируемый аудиокодек для широкополосных сигналов с битовыми скоростями кодирования 8, 12, 16, 24 и 32 кбит/с.The G.EV-VBR codec standardization process is part of ITU-T SG16 / Q9. This codec is a speech and integrated scalable audio codec for wideband signals with coding rates of 8, 12, 16, 24 and 32 kbit / s.

На фиг.1 представлена схематическая блок-схема кодера 1 G.EV-VBR. Первые два уровня основаны на линейном предсказании с кодовым возбуждением (CELP; Code Excited Linear Prediction) и обозначаются как "базовый кодек" (см. блок 101 базового кодека). Оставшиеся уровни формируются посредством кодирования коэффициентов модифицированного дискретного косинусного преобразования (MDCT, Modified Discrete Cosine Transform) (см. блок 104 MDCT) разностного сигнала 103 между исходным сигналом 100 и синтезированным сигналом базового кодека, при этом разностный сигнал вырабатывается сумматором 102. Для квантования коэффициентов MDCT (для уровня, соответствующего битовой скорости 24 кбит/с) используется квантователь 105, функционирование которого основано на лидер-классах, полученных из лидер-классов решетки 2RE8, которая является повернутой версией решетки Е8, масштабированной с множителем 2. Первые два уровня затем объединяются с оставшимися уровнями в блоке 106 генерации битового потока.1 is a schematic block diagram of a G.EV-VBR encoder 1. The first two levels are based on Code Excited Linear Prediction (CELP; Code Excited Linear Prediction) and are referred to as the “base codec” (see block 101 of the base codec). The remaining levels are formed by coding the coefficients of the modified discrete cosine transform (MDCT, Modified Discrete Cosine Transform) (see block 104 MDCT) of the differential signal 103 between the original signal 100 and the synthesized signal of the base codec, while the difference signal is generated by the adder 102. To quantize the MDCT coefficients (for a level corresponding to a 24 kbit / s bit rate) a quantizer 105 is used, the operation of which is based on leader classes obtained from the leader classes of the 2RE8 lattice, which is is a rotated version of the lattice E8, scaled with a factor of 2. The first two levels are then combined with the remaining levels in the bitstream generation unit 106.

Решетка, обычно используемая при квантовании, может быть представлена в виде объединения лидер-классов. В результате структуры квантования, основанные на решетках, могут быть описаны в виде объединения лидер-классов.The lattice commonly used in quantization can be represented as a union of leader classes. As a result, lattice-based quantization structures can be described as combining leader classes.

Лидер-вектор представляет собой n-мерный целый вектор с упорядоченными компонентами (например, в порядке убывания):The leader vector is an n-dimensional integer vector with ordered components (for example, in descending order):

1,.…, ν1, ν2,.…, ν2, νm,.…, νm), где ν12>…>νm, νi∈N.1 ,. ..., ν 1 , ν 2 ,. ..., ν 2 , ν m ,. ..., ν m ), where ν 1 > ν 2 >...> ν m , ν i ∈N.

Существует ni значений vi. Лидер-класс, соответствующий лидер-вектору, включает в свой состав векторы, получаемые путем всех знаковых перестановок лидер-класса (с некоторыми возможными ограничениями). Ограничения, если они применяются, относятся к количеству отрицательных компонентов вектора, которое может быть нечетным или четным. Количество векторов в лидер-классе вычисляется по формулеThere are n i values of v i . The leader class corresponding to the leader vector includes vectors obtained by all the symbolic permutations of the leader class (with some possible restrictions). Limitations, if applicable, relate to the number of negative components of the vector, which may be odd or even. The number of vectors in the leader class is calculated by the formula

Figure 00000001
Figure 00000001

где p определяет четность и может принимать значение 0 (отсутствие ограничений по знаку), +1 (четное количество отрицательных компонентов) или -1 (нечетное количество отрицательных компонентов).where p determines the parity and can take the value 0 (no restrictions on the sign), +1 (even number of negative components) or -1 (odd number of negative components).

В качестве примера биномиальной индексации рассмотрим 4-мерный лидер-вектор (2, 1, 1, 0). Предположим, что перестановки выполняются без учета знака.As an example of binomial indexing, consider a 4-dimensional leader vector (2, 1, 1, 0). Suppose that permutations are performed without regard to the sign.

Векторы, которые принадлежат лидер-классу (2, 1, 1, 0), приведены ниже в таблице 1, причем в ней представлены два варианта индексации.The vectors that belong to the leader class (2, 1, 1, 0) are shown below in table 1, moreover, two indexation options are presented in it.

Таблица 1Table 1 Лидер-класс для лидер-вектора (2, 1, 1, 0)Leader class for leader vector (2, 1, 1, 0) ИндексIndex Вариант 1Option 1 Вариант 2Option 2 00 2, 1, 1, 02, 1, 1, 0 2, 1, 1, 02, 1, 1, 0 1one 1, 2, 1, 01, 2, 1, 0 2, 1, 0, 12, 1, 0, 1 22 1, 1, 2, 01, 1, 2, 0 2, 0, 1, 12, 0, 1, 1 33 1, 1, 0, 21, 1, 0, 2 1, 2, 1, 01, 2, 1, 0 4four 2, 1, 0, 12, 1, 0, 1 1, 2, 0, 11, 2, 0, 1 55 1, 2, 0, 11, 2, 0, 1 0, 2, 1, 10, 2, 1, 1 66 1, 0, 2, 11, 0, 2, 1 1, 1, 2, 01, 1, 2, 0 77 1, 0, 1, 21, 0, 1, 2 1, 0, 2, 11, 0, 2, 1 88 2, 0, 1, 12, 0, 1, 1 0, 1, 2, 10, 1, 2, 1 99 0, 2, 1, 10, 2, 1, 1 1, 1, 0, 21, 1, 0, 2 1010 0, 1, 2, 10, 1, 2, 1 1, 0, 1, 21, 0, 1, 2 11eleven 0, 1, 1, 20, 1, 1, 2 0, 1, 1, 20, 1, 1, 2

Из первого варианта, представленного в таблице 1, видно, что в первой группе (с индексами 0-3, то есть первые четыре вектора, отделенные горизонтальной линией) относительная позиция значений 1 и 0 одинакова, однако позиция значения 2 изменяется от вектора к вектору. То же происходит и во второй группе (с индексами 4-7) и т.д. Различие между первой и второй группой заключается в том, как компоненты со значением 1 расположены в трех позициях, которые доступны после определения позиции для компонента со значением 2. Количество возможных размещений этих двух значений в трех позициях задается биномиальным коэффициентомFrom the first option, presented in table 1, it can be seen that in the first group (with indices 0-3, that is, the first four vectors separated by a horizontal line), the relative position of the values 1 and 0 is the same, however, the position of the value 2 changes from vector to vector. The same thing happens in the second group (with indices 4-7), etc. The difference between the first and second groups is how the components with a value of 1 are located in three positions that are available after determining the position for a component with a value of 2. The number of possible placements of these two values in three positions is determined by a binomial coefficient

Figure 00000002
.
Figure 00000002
.

Таким образом, в первом варианте имеются три группы, причем в каждой группе изменяется только позиция значения 2, поэтому в каждой из трех групп содержатся

Figure 00000003
вектора.Thus, in the first embodiment there are three groups, and in each group only the position of the value 2 changes, therefore, each of the three groups contains
Figure 00000003
vector.

Следовательно, можно заключить, что один из способов перечисления векторов в лидер-классе заключается в поочередном рассмотрении различных значений в векторе и отметки их возможных позиций. В рассматриваемом примере (вариант 1) вначале определяются возможные позиции значения 2, затем в оставшихся 3 позициях определяются позиции компонентов со значением 1. Позиции компонента со значением 0 зависят от позиции первых двух значений (поскольку это последнее значение), поэтому их не требуется рассматривать отдельно.Therefore, we can conclude that one of the ways to enumerate vectors in the leader class is to examine alternately the various values in the vector and mark their possible positions. In this example (option 1), the possible positions of the value 2 are first determined, then the positions of the components with the value 1 are determined in the remaining 3 positions. The positions of the component with the value 0 depend on the position of the first two values (since this is the last value), therefore they do not need to be considered separately .

Подобный подход используется и в варианте 2, представленном в таблице 1. Однако позиция значения 2 не изменяется в одной конкретной группе, а изменяется в различных группах. Соответственно, в этом варианте появляются четыре группы (с индексами 0-2, 3-5, 6-8 и 9-11 соответственно). В каждой из этих групп три вектора различаются расположением двух значений 1 в трех доступных позициях, то есть

Figure 00000004
A similar approach is used in option 2, presented in table 1. However, the position of the value 2 does not change in one particular group, but changes in different groups. Accordingly, in this variant four groups appear (with indices 0-2, 3-5, 6-8 and 9-11, respectively). In each of these groups, three vectors are distinguished by the location of two values of 1 in three available positions, i.e.
Figure 00000004

Ниже в таблице 2 воспроизводятся лидер-векторы, определенные для примера решетчатого квантователя, предложенного для кодека G.EV-VBR при стандартизации в ITU-T SG16/Q9 (эти лидер-векторы могут отличаться от стандартизованных лидер-векторов масштабным коэффициентом). Лидер-векторы (и, таким образом, решетка) имеют размерность, равную восьми, и всего имеется 36 лидер-векторов. В этом случае для лидер-векторов с компонентами с нечетными значениями вводится ограничение по знаку. В частности, если сумма абсолютных значений всех восьми компонентов кратна четырем, то количество отрицательных компонентов должно быть четным, в противном случае оно должно быть нечетным. Например, сумма значений лидер-вектора с индексом 0 (1, 1, 1, 1, 1, 1, 1, 1) равна 8, то есть кратна четырем, и, таким образом, в векторах из соответствующего ему лидер-класса должно быть четное количество значений -1. Сумма значений лидер-вектора с индексом 3 (3, 1, 1, 1, 1, 1, 1, 1) равна 10, то есть не кратна четырем, таким образом, количество отрицательных компонентов должно быть нечетным.Table 2 below reproduces the leader vectors defined for the lattice quantizer example proposed for the G.EV-VBR codec when standardized in ITU-T SG16 / Q9 (these leader vectors may differ from standardized leader vectors by a scale factor). Leader vectors (and thus the lattice) have a dimension of eight, and there are 36 leader vectors in total. In this case, for leader vectors with components with odd values, a sign restriction is introduced. In particular, if the sum of the absolute values of all eight components is a multiple of four, then the number of negative components must be even, otherwise it must be odd. For example, the sum of the values of the leader vector with the index 0 (1, 1, 1, 1, 1, 1, 1, 1) is 8, that is, a multiple of four, and thus, in the vectors from the corresponding leader class it should be an even number of values -1. The sum of the values of the leader vector with index 3 (3, 1, 1, 1, 1, 1, 1, 1) is 10, that is, not a multiple of four, so the number of negative components must be odd.

Figure 00000005
Figure 00000005

Процедура биномиальной индексации для вектора, принадлежащего лидер-классу, может быть описана следующим примером кода общей индексации, написанным на ANSI-C с использованием (для моделирования универсального цифрового сигнального процессора (DSP, Digital Signal Processor), например, функций sub(), add(), L_mult0(), move16()) библиотеки функций, работающих со значениями с фиксированной точкой, описанной в документе ITU G.191 ITU-T Software Tool Library 2005 User's Manual (руководство пользователя библиотеки программных средств ITU-T, 2005 год). В этом примере комментарии к коду приводятся после двух следующих друг за другом символов "косая черта" ("//") или между комбинацией символов "/*" и "*/". Этот код индексации является общим, то есть применим к входным векторам, содержащимся в любом лидер-классе, представленном в таблице 2.The binomial indexing procedure for a vector belonging to the leader class can be described by the following example of the general indexing code written in ANSI-C using (for modeling a universal digital signal processor (DSP, Digital Signal Processor), for example, sub (), add functions (), L_mult0 (), move16 ()) a library of functions that work with fixed-point values described in ITU G.191 ITU-T Software Tool Library 2005 User's Manual (2005 ITU-T Software Library User Guide) . In this example, code comments appear after two consecutive slash characters ("//") or between a combination of the characters "/ *" and "* /". This indexing code is general, that is, applicable to input vectors contained in any leader class presented in Table 2.

Figure 00000006
Figure 00000006

В этом коде индексации переменные и функции/процедуры имеют следующие значения:In this indexing code, variables and functions / procedures have the following meanings:

- DIM представляет собой размер решетки, то есть 8.- DIM represents the size of the grating, i.e. 8.

- В переменной int no_vals_[36] хранится количество различных значений для каждого лидер-вектора.- The variable int no_vals_ [36] stores the number of different values for each leader vector.

- В переменной int no_vals_ind_[36] [4] хранится количество каждых отдельных значений в каждом лидер-векторе.- The variable int no_vals_ind_ [36] [4] stores the number of each individual value in each leader vector.

- В переменной int vals_[36][4] хранятся значения, которые принадлежат каждому лидер-вектору.- The variable int vals_ [36] [4] stores values that belong to each leader vector.

- Переменная int idx_lead представляет индекс лидер-класса, которому принадлежит индексируемый входной вектор.- The variable int idx_lead represents the index of the leader class to which the indexed input vector belongs.

- В переменной int abs_cv[8] хранятся абсолютные значения входного вектора, подлежащего индексации.- The variable int abs_cv [8] stores the absolute values of the input vector to be indexed.

- Функция find_pos_elim_fx(int *abs_cv, int dim, int val, int *p) находит позиции компонентов со значением val в векторе размерностью dim с абсолютными значениями abs_cv, размещает их в массиве p и удаляет их из вектора abs_cv для подготовки его к поиску следующего значения.- The find_pos_elim_fx function (int * abs_cv, int dim, int val, int * p) finds the positions of components with a val value in a dim vector with absolute abs_cv values, places them in the p array and removes them from the abs_cv vector to prepare it for the next values.

- Функция find_pos_fx(int *abs_cv, int dim, int val, int *p) аналогична функции find_pos_elim_fx, за исключением того, что она не удаляет компоненты. Эта функция вызывается для предпоследнего значения в лидер-векторе, поскольку последующий поиск последнего значения не производится, и, таким образом, не требуется удалять компонент с предпоследним значением.- The find_pos_fx function (int * abs_cv, int dim, int val, int * p) is similar to the find_pos_elim_fx function, except that it does not remove components. This function is called for the penultimate value in the leader vector, since the subsequent search for the last value is not performed, and thus, it is not necessary to delete the component with the penultimate value.

- Функция int c2idx_fx(int dim, int *p, int no_vals) назначает индекс для позиционирования no_vals компонентов в общем количестве dim возможных компонентов. Например:- The function int c2idx_fx (int dim, int * p, int no_vals) assigns an index to position no_vals components in the total number of dim possible components. For example:

(x x 0 0), индекс 0(x x 0 0), index 0

(x 0 x 0), индекс 1(x 0 x 0), index 1

(x 0 0 x), индекс 2(x 0 0 x), index 2

(0 x x 0), индекс 3(0 x x 0), index 3

(0 x 0 x), индекс 4(0 x 0 x), index 4

(0 0 x x), индекс 5,(0 0 x x), index 5,

где no_vals=2, DIM=4, и индексируется позиция двух компонентов "X" в четырех возможных позициях.where no_vals = 2, DIM = 4, and the position of the two “X” components is indexed at four possible positions.

- Функция int number_fx(int no_vals, int *no_vals_ind_, int dim) вычисляет количество векторов, получаемых с помощью беззнаковых перестановок вектора размерностью dim с no_vals значениями, количество появлений каждого из которых представлено в массиве no_vals_ind_. Она соответствует формуле (1) без учета множителя 2m-|p|.- The function int number_fx (int no_vals, int * no_vals_ind_, int dim) calculates the number of vectors obtained using unsigned permutations of a vector of dimension dim with no_vals values, the number of occurrences of each of which is represented in the array no_vals_ind_. It corresponds to the formula (1) without the factor 2 m- | p | .

Функционирование представленного выше кода общей индексации станет понятным из следующего примера. Рассмотрим еще раз пример лидер-класса, соответствующего варианту 2 из таблицы 1. Значение лидер-вектора в этом примере равно (2, 1, 1, 0), и предполагается, что лидер-класс связан со значением idx_lead=5, хотя в данном примере это не существенно. Кроме того, предположим, что подлежащий индексации входной вектор имеет значение (1, 0, 2, 1), то есть его размерность в этом примере меньше, чем в приведенном в таблице 2 примере решетчатого квантователя, который использует 8-мерные векторы. Однако, поскольку выше представленный код индексации является общим, это не имеет значения.The functioning of the general indexing code presented above will become apparent from the following example. Consider once again the example of the leader class corresponding to option 2 from table 1. The value of the leader vector in this example is (2, 1, 1, 0), and it is assumed that the leader class is associated with the value idx_lead = 5, although in this an example is not essential. In addition, suppose that the input vector to be indexed has a value of (1, 0, 2, 1), that is, its dimension in this example is less than in the example of a trellis quantizer shown in Table 2, which uses 8-dimensional vectors. However, since the above indexing code is general, it does not matter.

Переменным в представленном выше коде индексации при инициализации присваиваются следующие значения:The variables in the indexing code presented above are assigned the following values during initialization:

Figure 00000007
Figure 00000007

В результате выполнения представленного выше кода индексации получаются следующие результаты (после выполнения всех операций цикла WHILE):As a result of the above indexing code, the following results are obtained (after all operations of the WHILE cycle are completed):

ii РR abs_cvabs_cv idxidx pipi qq indexindex 00 {2}{2} {1, 0, 1}{1, 0, 1} 22 33 33 66 1one {0, 2}{0, 2} {0}{0} 1one 1one 1one 77

Таким образом, окончательно в результате индексации входного вектора (1, 0, 2, 1), который содержится в лидер-классе, определяемом переменной class idx_lead=5 и который показан выше в качестве варианта 2 в таблице 1, получается индекс (позиции) 7, который фактически соответствует вектору (1,0,2,1) в лидер-классе 5.Thus, finally, as a result of indexing the input vector (1, 0, 2, 1), which is contained in the leader class defined by the variable class idx_lead = 5 and which is shown above as option 2 in table 1, we obtain the index (position) 7 which actually corresponds to the vector (1,0,2,1) in leader class 5.

В представленном выше коде общей индексации помимо индекса позиции, который представляет позиции значений во входном векторе, должна быть закодирована информация, относящаяся к знаку в ненулевых значениях входного вектора. Индекс знака вычисляется следующим образом:In the above general indexing code, in addition to the position index, which represents the position of the values in the input vector, information relating to the sign in the nonzero values of the input vector must be encoded. The sign index is calculated as follows:

Figure 00000008
Figure 00000008

где S представляет собой количество ненулевых компонентов в подлежащем индексированию векторе, значение bi равно 0, если i-й ненулевой компонент положителен, и 1 - в противном случае. Значение S одинаково для всех векторов в лидер-классе.where S is the number of non-zero components in the vector to be indexed, the value of b i is 0 if the i-th non-zero component is positive, and 1 otherwise. The value of S is the same for all vectors in the leader class.

Окончательный индекс I (содержащий информацию об индексе позиции и знака, а также информацию, указывающую лидер-класс, в котором содержится входной вектор) вычисляется следующим образом:The final index I (containing information about the position and sign index, as well as information indicating the leader class that contains the input vector) is calculated as follows:

Figure 00000009
Figure 00000009

В этом коде используемые переменные имеют следующие значения:The variables used in this code have the following meanings:

- int idx_sign_max_bit[36] является переменной, в которой хранится количество битов, в которых представлен индекс знака. Она фактически соответствует количеству ненулевых значений в векторе, если паритет нулевой, или количеству ненулевых значений без единицы, если паритет равен +/-1.- int idx_sign_max_bit [36] is a variable in which the number of bits in which the sign index is represented is stored. It actually corresponds to the number of non-zero values in the vector if the parity is zero, or the number of non-zero values without a unit if the parity is +/- 1.

- uint offset_lead[36+1] представляет смещение лидер-вектора для каждого лидер-класса. Эта переменная фактически означает, что, если имеется n1 векторов в первом лидер-классе, n2 векторов во втором и т.д., то переменная offset_lead принимает следующие значения: 0, n1, n1+n2,.…. Таким образом, информация, представляющая лидер-класс, в котором содержится входной вектор, может быть включена в окончательный индекс I.- uint offset_lead [36 + 1] represents the offset of the leader vector for each leader class. This variable actually means that if there are n 1 vectors in the first leader class, n 2 vectors in the second, etc., then the offset_lead variable takes the following values: 0, n 1 , n 1 + n 2 , ... Thus, information representing the leader class that contains the input vector can be included in the final index I.

- Окончательный индекс I фактически формируется путем размещения idx_sign в последних idx_sign_max_bits[] битах сдвинутого индекса, то есть путем конкатенации битов индекса позиции и битов idx_sign с учетом того, что переменная idx_sign может использовать максимум idx_sign_max_bit битов, и добавлением смещения для лидер-класса, которому принадлежит текущий индексируемый вектор.- The final index I is actually formed by placing idx_sign in the last idx_sign_max_bits [] bits of the shifted index, that is, by concatenating the position index bits and idx_sign bits, given that the idx_sign variable can use the maximum idx_sign_max_bit bits, and adding an offset for the leader class to which belongs to the current indexed vector.

Согласно первому аспекту настоящего изобретения для упрощения вышеописанной процедуры общей индексации предлагается применение специфической обработки, если подлежащий индексации входной вектор содержится в лидер-классе, который принадлежит заранее заданной группе лидер-классов, и в противном случае - применение общей обработки.According to a first aspect of the present invention, to simplify the general indexing procedure described above, it is proposed to use specific processing if the input vector to be indexed is contained in a leader class that belongs to a predetermined group of leader classes, and otherwise, the use of general processing.

На фиг.2 представлен алгоритм 2, иллюстрирующий способ индексации входного вектора в соответствии с примером осуществления первого аспекта настоящего изобретения.2 is a flowchart 2 illustrating a method for indexing an input vector in accordance with an embodiment of the first aspect of the present invention.

На первом шаге 200 принимается входной вектор. Входной вектор может, например, определяться в процессе квантования как наиболее точное соответствие всем векторам в решетке, которая является объединением лидер-классов. Идентификация лидер-класса, в котором содержится входной вектор, также принимается на шаге 200. В качестве нескольких примеров идентификации можно привести индекс лидер-класса или лидер-вектор лидер-класса, в котором содержится входной вектор.In a first step 200, an input vector is received. The input vector can, for example, be determined during the quantization process as the most accurate correspondence to all vectors in the lattice, which is a union of leader classes. The identification of the leader class that contains the input vector is also taken at step 200. As a few examples of identification, we can cite the leader class index or leader-leader vector of the leader class that contains the input vector.

Затем на шаге 201 определяется, содержится ли лидер-класс в заранее заданной группе, состоящей из одного или более лидер-классов. Если это так, то на шаге 202 применяется специфическая обработка. В противном случае на шаге 203 применяется общая обработка.Then, in step 201, it is determined whether the leader class is contained in a predetermined group consisting of one or more leader classes. If so, then at step 202, specific processing is applied. Otherwise, the general processing is applied in step 203.

Далее более подробно рассматриваются примеры заранее заданной группы лидер-классов и специфической обработки, применяемой при индексировании входных векторов, содержащихся в лидер-классах такой заранее заданной группы.Next, examples of a predetermined group of leader classes and specific processing used when indexing the input vectors contained in the leader classes of such a predetermined group are discussed in more detail.

В соответствии с первым примером осуществления первого аспекта настоящего изобретения специфическая обработка выполняется только для лидер-класса, который связан с лидер-вектором с индексом 20 (см. таблицу 2), то есть {6,4,2,0,0,0,0,0}. Таким образом, заранее заданная группа лидер-классов содержит только один лидер-класс, идентифицируемый индексом 20.According to a first embodiment of the first aspect of the present invention, specific processing is performed only for the leader class that is associated with the leader vector with index 20 (see table 2), i.e., {6,4,2,0,0,0, 0,0}. Thus, a predefined group of leader classes contains only one leader class, identified by index 20.

В частности, вызов функции number_fx() в рамках кода общей индексации, описанного выше, может быть заменен следующим кодом:In particular, the call to the number_fx () function within the framework of the general indexing code described above can be replaced by the following code:

Figure 00000010
Figure 00000010

В данном случае в переменной C[DIM+1][DIM+1] хранятся биномиальные коэффициенты, размерность которых не превышает 8.In this case, bin C coefficients whose dimension does not exceed 8 are stored in the variable C [DIM + 1] [DIM + 1].

В этой реализации специфическая обработка представлена кодом, который выполняется в том случае, когда значение idx_lead равно 20, а общая обработка представлена кодом, который выполняется в том случае, когда значение idx_lead не равно 20.In this implementation, specific processing is represented by code that executes when idx_lead is 20, and general processing is represented by code that executes when idx_lead is not 20.

В контексте этого осуществления настоящего изобретения его авторы обратили внимание на то, что лидер-класс с индексом 20 является единственным лидер-классом с четырьмя различными значениями. Поскольку лидер-вектор с индексом 20 является единственным вектором с четырьмя различными значениями, таблица no_vals_ind_ имеет размерность 36×4 (36 лидер-классов и максимальное количество различных значений, равное четырем, для одного лидер-класса), то есть значение no_vals_ind[idx_lead][i] отлично от нуля только для idx_lead=20 и i=3 (i находится в диапазоне от 0 до 3). Однако в представленном выше коде общей индексации единственная ссылка в функции number_fx() на это ненулевое значение no_vals_ind_ появляется для idx_lead=20. Таким образом, полезно разделить функцию number_fx() на специфическую обработку (для лидер-класса с индексом 20 лидер-вектора) и общую обработку (для оставшихся лидер-классов), в этом случае для выполнения общей обработки требуется только ссылка на таблицу no_vals_ind_ с размерами 36 х 3. Ввод специфической обработки позволяет, таким образом, оптимизировать общую обработку.In the context of this embodiment of the present invention, its authors have drawn attention to the fact that the leader class with index 20 is the only leader class with four different meanings. Since the leader vector with index 20 is the only vector with four different values, the no_vals_ind_ table has a dimension of 36 × 4 (36 leader classes and a maximum number of different values of four for one leader class), that is, the value of no_vals_ind [idx_lead] [i] is nonzero only for idx_lead = 20 and i = 3 (i is in the range from 0 to 3). However, in the above general indexing code, the only reference in the number_fx () function to this non-zero value no_vals_ind_ appears for idx_lead = 20. Thus, it is useful to separate the number_fx () function into specific processing (for a leader class with an index of 20 leader vector) and general processing (for the remaining leader classes), in this case, to perform general processing, only a reference to the table no_vals_ind_ with dimensions is required 36 x 3. Entering a specific treatment allows you to optimize the overall processing.

В контексте второго примера осуществления первого аспекта настоящего изобретения его авторы обратили внимание на то, что в некоторых случаях практического использования небольшое подмножество лидер-классов встречается гораздо чаще, чем другие подмножества. Например, для данных, квантование которых осуществляется с помощью решетчатого квантователя в кодеке G.EV-VBR с решетчатой структурой, которая основана на векторах, представленных в таблице 2, наиболее вероятно будет использоваться лидер-вектор с индексом 1, то есть (2,2,0,0,0,0,0,0), и обычно векторы, для которых лидер-вектор имеет два различных значения (например, лидер-векторы с индексами 1, 2, 3, 4, 5, 6, 9 и т.д.), наиболее вероятно будут использоваться чаще, чем другие векторы. Было решено, что целесообразно выработать способ индексации, который, в частности, был бы проще для этих векторов.In the context of the second embodiment of the first aspect of the present invention, its authors noted that in some cases of practical use, a small subset of leader classes is much more common than other subsets. For example, for data quantized using a trellis quantizer in the G.EV-VBR codec with a trellis structure, which is based on the vectors presented in Table 2, the leader vector with index 1 will most likely be used, i.e. (2.2 , 0,0,0,0,0,0,0), and usually vectors for which the leader vector has two different meanings (for example, leader vectors with indices 1, 2, 3, 4, 5, 6, 9, and t etc.) will most likely be used more often than other vectors. It was decided that it would be advisable to develop an indexing method that, in particular, would be simpler for these vectors.

Для вычисления индекса для знака требуется цикл проверки знака каждого компонента вектора. Гораздо проще отдельно/специфически рассматривать лидер-векторы только с двумя различными значениями, поскольку процедура индексации обрабатывает позицию только одного значения (первого) без дальнейших подготовительных операций для проверки позиций последующих значений. Кроме того, большинство лидер-векторов только с двумя значениями имеют одно нулевое значение (см., например, лидер-векторы с индексами 1, 2, 4 и т.д. в таблице 2), поэтому создание индекса позиции может быть эффективно связано с созданием индекса знака в том же цикле.To calculate the index for a sign, a sign verification cycle of each component of the vector is required. It is much easier to separately / specifically consider leader vectors with only two different values, since the indexing procedure processes the position of only one value (the first) without further preparatory operations to check the positions of subsequent values. In addition, most leader vectors with only two values have one zero value (see, for example, leader vectors with indices 1, 2, 4, etc. in table 2), therefore, creating a position index can be effectively associated with creating a character index in the same loop.

Существуют два типа лидер-векторов с двумя значениями, один тип имеет только четные значения (см., например, лидер-векторы с индексами 1, 2, 4, 5 и т.д. в таблице 2), а другой - только нечетные значения (см. индексы 3, 6, 9 и т.д.). Большинство компонентов первого типа имеют значение 0, в то время как большинство компонентов второго типа имеют значение 1.There are two types of leader vectors with two values, one type has only even values (see, for example, leader vectors with indices 1, 2, 4, 5, etc. in table 2), and the other only odd values (see indices 3, 6, 9, etc.). Most components of the first type have a value of 0, while most components of the second type have a value of 1.

Следующая специфическая процедура может, например, использоваться для замены всего приведенного выше кода общей индексации с целью обработки двузначных векторов с четными компонентами.The following specific procedure can, for example, be used to replace all of the above general indexing code in order to process two-digit vectors with even components.

Figure 00000011
Figure 00000011

Подобным же образом может отдельно обрабатываться второй тип (двузначные векторы с нечетными значениями) с использованием, например, следующей процедуры:Similarly, the second type (two-digit vectors with odd values) can be separately processed using, for example, the following procedure:

Figure 00000012
Figure 00000012

В этом втором примере осуществления первого аспекта настоящего изобретения заранее заданная группа лидер-классов содержит, таким образом, все лидер-классы, в которые входят только двузначные лидер-векторы (то есть лидер-классы с индексами лидер-векторов 1, 2, 3, 4, 5, 6, 9 и т.д.). Специфическая обработка представлена двумя кодовыми сегментами, определяющими соответственно обработку двузначных лидер-векторов с четными и нечетными компонентами, а общая обработка представлена кодом общей индексации, который применяется для всех других лидер-классов (например, лидер-классов с индексами лидер-векторов 0, 7, 8, 10 и т.д. в таблице 2). Здесь следует отметить, что заранее заданная группа разделена в данном случае на две подгруппы, первую подгруппу двузначных лидер-векторов с четными компонентами и вторую подгруппу двузначных лидер-векторов с нечетными компонентами, и что для каждой из этих подгрупп выполняются различные действия в рамках специфической обработки.In this second embodiment of the first aspect of the present invention, a predetermined group of leader classes thus contains all leader classes that include only two-digit leader vectors (i.e. leader classes with leader vector indices 1, 2, 3, 4, 5, 6, 9, etc.). Specific processing is represented by two code segments that respectively determine the processing of two-digit leader vectors with even and odd components, and general processing is represented by a general indexing code that is used for all other leader classes (for example, leader classes with leader vector indices 0, 7 , 8, 10, etc. in table 2). It should be noted here that the predefined group is divided in this case into two subgroups, the first subgroup of two-digit leader vectors with even components and the second subgroup of two-digit leader vectors with odd components, and that for each of these subgroups, various actions are performed within the framework of specific processing .

В виде первой модификации второго примера осуществления первого аспекта настоящего изобретение можно также отказаться от специфической обработки для двузначных лидер-векторов с нечетными компонентами (например, с индексами 3, 6, 9 и т.д.) и выполнять вместо этого код общей индексации. Заранее заданная группа лидер-классов в этом случае будет содержать только лидер-классы с двузначными лидер-векторами с четными компонентами. В альтернативном варианте можно отказаться от специфической обработки для двузначных лидер-векторов с четными компонентами.As a first modification of the second embodiment of the first aspect of the present invention, it is also possible to dispense with specific processing for two-digit leader vectors with odd components (for example, with indices 3, 6, 9, etc.) and instead execute a general indexing code. The predefined group of leader classes in this case will contain only leader classes with two-digit leader vectors with even components. Alternatively, specific processing for double-digit leader vectors with even components can be dispensed with.

В виде второй модификации второго примера осуществления первого аспекта настоящего изобретение можно также ограничить специфическую обработку только определением индекса позиции ("index") или индекса знака ("idx_sign"). Конечно, эта модификация может также применяться к первой модификации второго примера осуществления первого аспекта настоящего изобретения.As a second modification of the second embodiment of the first aspect of the present invention, it is also possible to limit the specific processing to only determining the position index ("index") or sign index ("idx_sign"). Of course, this modification can also be applied to the first modification of the second embodiment of the first aspect of the present invention.

Первый аспект настоящего изобретения ориентирован на индексацию входного вектора, которая, например, требуется в процессе квантования. Описываемый далее второй аспект настоящего изобретения ориентирован на деиндексацию, то есть определение (или восстановление) целевого вектора на основе индекса, связанного с целевым вектором.The first aspect of the present invention is focused on indexing the input vector, which, for example, is required in the quantization process. The second aspect of the present invention described hereinafter is focused on de-indexing, that is, determining (or restoring) a target vector based on an index associated with the target vector.

Процедура биномиальной деиндексации для целевого вектора, принадлежащего лидер-классу, представленному в таблице 2, может быть описана с помощью приведенного ниже примера кода общей деиндексации. Этот код является общим, то есть он применим к целевым векторам, содержащимся в любом лидер-классе таблицы 2. Переменные и функции, используемые в этом коде деиндексации, соответствуют переменным и функциям, используемым в коде общей индексации, представленном выше в контексте первого аспекта настоящего изобретения. В процедуру деиндексации в качестве входных параметров передаются переменная idx_lead, которая идентифицирует лидер-класс, и переменная index_loc, которая идентифицирует индекс позиции (который представляет позиции значений в целевом векторе), а в качестве выходного параметра определяется целевой вектор cv. Здесь не рассматривается знак целевого вектора, он может быть восстановлен в отдельной процедуре.The binomial deindexing procedure for the target vector belonging to the leader class shown in Table 2 can be described using the general deindexation code example below. This code is general, that is, it is applicable to the target vectors contained in any leader class of Table 2. The variables and functions used in this de-indexation code correspond to the variables and functions used in the general indexing code presented above in the context of the first aspect of this inventions. The idx_lead variable, which identifies the leader class, and the index_loc variable, which identifies the position index (which represents the position of the values in the target vector), are transferred as input parameters to the de-indexation procedure, and the target vector cv is determined as the output parameter. The sign of the target vector is not considered here; it can be reconstructed in a separate procedure.

Figure 00000013
Figure 00000013

Figure 00000014
Figure 00000014

Figure 00000015
Figure 00000015

В данном случае функция idx2c_fx(int dim, int* р, int no_vals, int index_loc) комплементарна обсуждавшейся выше функции c2idx_fx и возвращает позицию р компонентов no_vals в векторе размерностью dim в соответствии с index_loc.In this case, the function idx2c_fx (int dim, int * p, int no_vals, int index_loc) is complementary to the c2idx_fx function discussed above and returns the position p of the components no_vals in a vector of dimension dim in accordance with index_loc.

Кроме того, с помощью переменной int occ_pos[8] отслеживаются позиции, в которые были помещены компоненты уже декодированных значений. Переменная int offset[8] используется для обнаружения фактической позиции значений, поскольку, если, например, одно значение уже было размещено в 8-мерном векторе, индекс позиции для следующего значения относится только к семи позициям. Например, если для 4-мерного лидер-вектора (2 1 1 0) при декодировании позиции значения 2 получается результат (х 2 х х), и позиция индекса для значения 1 равна 0, это соответствует позициям (0, 1) для двух единичных значений, но единицы фактически помещаются в позициях (0, 2), поскольку первое значение 2 уже находится в позиции 1.In addition, using the variable int occ_pos [8], the positions in which the components of already decoded values were placed are tracked. The variable int offset [8] is used to detect the actual position of the values, because if, for example, one value has already been placed in the 8-dimensional vector, the position index for the next value refers to only seven positions. For example, if for a 4-dimensional leader vector (2 1 1 0) when decoding the position of the value 2, the result is (x 2 x x), and the index position for the value 1 is 0, this corresponds to the positions (0, 1) for two unit values, but units are actually placed at positions (0, 2), since the first value 2 is already at position 1.

На фиг.3 показан алгоритм, иллюстрирующий способ определения целевого вектора на основе индекса, связанного с целевым вектором, в соответствии с примером осуществления второго аспекта настоящего изобретения. Этот способ может, например, выполняться во время процесса деквантования.3 is a flowchart illustrating a method for determining a target vector based on an index associated with a target vector in accordance with an embodiment of the second aspect of the present invention. This method may, for example, be performed during the dequantization process.

На шаге 300 принимается индекс, связанный с целевым вектором, подлежащим определению. Индекс может, например, являться индексом, который выбирает вектор из векторов лидер-класса, причем векторы в лидер-классе могут, например, индексироваться биномиально. Помимо индекса принимается идентификация лидер-класса, в котором содержится целевой вектор. Однако это не обязательная операция, поскольку идентификация лидер-класса, в котором содержится целевой вектор, может также включаться в индекс, связанный с целевым вектором. Индекс и идентификация лидер-класса, полученная на шаге 300, может, например, быть получена из индекса, который содержит всю следующую информацию: идентификация лидер-класса, информация о том, какой вектор в лидер-классе должен быть определен в качестве целевого вектора, и информация о знаке для целевого вектора.At 300, an index associated with the target vector to be determined is received. An index can, for example, be an index that selects a vector from leader-class vectors, wherein vectors in the leader-class can, for example, be indexed binomially. In addition to the index, leader-class identification, which contains the target vector, is accepted. However, this is not a necessary operation, since the identification of the leader class that contains the target vector may also be included in the index associated with the target vector. The index and leader class identification obtained in step 300 can, for example, be obtained from an index that contains all of the following information: leader class identification, information about which vector in the leader class should be defined as the target vector, and sign information for the target vector.

Целевой вектор, подлежащий определению в ходе выполнения алгоритма, показанного на фиг.3, может, например, выбираться в процессе квантования как наиболее точное соответствие всем векторам в решетке.The target vector to be determined during the execution of the algorithm shown in figure 3, can, for example, be selected in the quantization process as the most accurate match to all vectors in the lattice.

Затем на шаге 301 определяется, содержится ли лидер-класс в заранее заданной группе, состоящей из одного или более лидер-классов. Если это так, то на шаге 302 применяется специфическая обработка. В противном случае на шаге 303 применяется общая обработка.Then, at step 301, it is determined whether the leader class is contained in a predetermined group consisting of one or more leader classes. If so, then at step 302, specific processing is applied. Otherwise, at step 303, the general processing is applied.

Далее более подробно рассматриваются примеры заранее заданной группы лидер-классов и специфической обработки, применяемой при деиндексации целевых векторов, содержащихся в лидер-классах такой заранее заданной группы.Further, examples of a predetermined group of leader classes and specific processing used in the de-indexation of target vectors contained in leader classes of such a predetermined group are considered in more detail.

В соответствии с первым примером осуществления второго аспекта настоящего изобретения специфическая обработка выполняется только для лидер-класса, который связан с лидер-вектором с индексом 20 (см. таблицу 2), то есть {6, 4, 2, 0, 0, 0, 0, 0}. Таким образом, заранее заданная группа лидер-классов содержит только один лидер-класс, идентифицируемый индексом 20.According to a first embodiment of the second aspect of the present invention, specific processing is performed only for the leader class, which is associated with the leader vector with index 20 (see table 2), that is, {6, 4, 2, 0, 0, 0, 0, 0}. Thus, a predefined group of leader classes contains only one leader class, identified by index 20.

В частности, первый цикл FOR (над горизонтальной пунктирной линией) представленного выше кода общей деиндексации может быть заменен следующим кодом:In particular, the first FOR cycle (above the horizontal dashed line) of the general de-indexation code presented above can be replaced by the following code:

Figure 00000016
Figure 00000016

Figure 00000017
Figure 00000017

Кроме того, вызов функции number_fx() в рамках кода общей деиндексации может быть заменен следующим кодом:In addition, the call to the number_fx () function within the general de-indexation code can be replaced by the following code:

Figure 00000018
Figure 00000018

В данном случае, как уже объяснялось выше, в переменной C[DIM+1][DIM+1] хранятся биномиальные коэффициенты, размерность которых не превышает 8.In this case, as already explained above, binomial coefficients whose dimension does not exceed 8 are stored in the variable C [DIM + 1] [DIM + 1].

В этой реализации специфическая обработка представлена кодом, который выполняется в том случае, когда значение idx_lead равно 20, а общая обработка представлена кодом, который выполняется в том случае, когда значение idx_lead не равно 20.In this implementation, specific processing is represented by code that executes when idx_lead is 20, and general processing is represented by code that executes when idx_lead is not 20.

В контексте этого осуществления настоящего изобретения его авторы обратили внимание на то, что лидер-класс с индексом 20 является единственным лидер-классом с четырьмя различными значениями. Поскольку лидер-вектор с индексом 20 является единственным вектором с четырьмя различными значениями, таблицы no_vals_ind_ и vals_ имеют размерность 36×4 (36 лидер-классов и максимальное количество различных значений, равное четырем, для одного лидер-класса), то есть значения no_vals_ind[idx lead][i] и vals_[idx_lead][i] существуют только для idx_lead=20 и i=3 (i находится в диапазоне от 0 до 3). Однако в представленном выше коде общей деиндексации единственная ссылка на соответствующие значения no_vals_indx_ и vals_ появляется для idx_lead=20 в части кода общей деиндексации, который был заменен специфическим кодом. Таким образом, теперь в оставшемся коде общей деиндексации требуется только ссылка на таблицы no_vals_ind_ и vals_ с размерностью 36×3. Ввод специфической обработки позволяет, таким образом, оптимизировать общую обработку.In the context of this embodiment of the present invention, its authors have drawn attention to the fact that the leader class with index 20 is the only leader class with four different meanings. Since the leader vector with index 20 is the only vector with four different values, the no_vals_ind_ and vals_ tables have a dimension of 36 × 4 (36 leader classes and a maximum number of different values of four for one leader class), that is, no_vals_ind [ idx lead] [i] and vals_ [idx_lead] [i] exist only for idx_lead = 20 and i = 3 (i is in the range from 0 to 3). However, in the general deindexing code presented above, the only reference to the corresponding values no_vals_indx_ and vals_ appears for idx_lead = 20 in the part of the general deindexation code that has been replaced with a specific code. Thus, now in the remaining general de-indexation code, only a link to the no_vals_ind_ and vals_ tables with a dimension of 36 × 3 is required. Entering a specific processing allows you to optimize the overall processing.

В соответствии со вторым примером осуществления второго аспекта настоящего изобретения заранее заданная группа лидер-классов содержит только лидер-класс с вектором лидер-класса, имеющим индекс 1 (см. таблицу 2), то есть {2,2,0,0,0,0,0,0}. Вместо выполнения в любом случае общей деиндексации, то есть деиндексации, которая применима в случае целевых векторов, содержащихся в любом лидер-классе (и которая была представлена выше со ссылкой на код общей деиндексации), может, например, выполняться следующая специфическая обработка, если целевой вектор содержится в лидер-классе с вектором лидер-класса, имеющим индекс 1, а общая обработка может выполняться только в противном случае. Следует отметить, что, как и в представленном выше коде общей деиндексации, в результате следующей специфической обработки формируется только беззнаковый целевой вектор cv.According to a second embodiment of the second aspect of the present invention, a predetermined leader class group contains only a leader class with a leader vector having index 1 (see table 2), i.e., {2,2,0,0,0, 0,0,0}. Instead of performing general de-indexation in any case, i.e. de-indexing, which is applicable to the target vectors contained in any leader class (and which was presented above with reference to the general de-indexation code), for example, the following specific processing can be performed if the target the vector is contained in the leader class with the leader vector having index 1, and general processing can be performed only otherwise. It should be noted that, as in the general de-indexation code presented above, as a result of the following specific processing, only an unsigned target vector cv is generated.

Figure 00000019
Figure 00000019

В кодеке G.EV.VBR (то есть для кодового словаря, основанного на лидер-векторах, определенных в таблице 2, и речевых и музыкальных данных с битовыми скоростями 16, 24 и 32 кбит/с) лидер-вектор (2,2,0,0,0,0,0,0) является наиболее вероятным, поэтому применение специфической обработки для его лидер-класса уменьшает общий уровень сложности процедуры деиндексации.In the G.EV.VBR codec (i.e., for a codebook based on leader vectors defined in Table 2 and speech and music data with bit rates of 16, 24, and 32 kbit / s), the leader vector (2,2, 0,0,0,0,0,0) is the most likely, therefore, the use of specific processing for its leader class reduces the overall level of complexity of the de-indexation procedure.

На фиг.4 показана схематическая блок-схема устройства 4, способного реализовать способы, соответствующие первому и второму аспектам настоящего изобретения. Этим устройством может, например, быть мобильный телефон, компьютер или другое электронное устройство. Устройство содержит центральный процессор (CPU, Central Processing Unit) 400, который имеет доступ к памяти 401 программ и к памяти 402. CPU 400 может, например, выполнять компьютерную программу, которая хранится в памяти 401 программ. В данном случае память 401 программ может фиксированным образом устанавливаться в устройстве 4 или быть съемной. Например, память 401 программ может быть реализована в виде машиночитаемого носителя, на котором хранится компьютерная программа. Память 402 может, например, быть реализована в виде оперативной памяти (RAM, Random Access Memory). Память 401 программ и память 402 также могут быть реализованы в виде единого компонента.Figure 4 shows a schematic block diagram of a device 4 capable of implementing methods corresponding to the first and second aspects of the present invention. This device may, for example, be a mobile phone, computer, or other electronic device. The device comprises a central processing unit (CPU, Central Processing Unit) 400, which has access to a program memory 401 and a memory 402. The CPU 400 can, for example, execute a computer program that is stored in a program memory 401. In this case, the program memory 401 can be fixedly installed in the device 4 or be removable. For example, program memory 401 may be implemented as a computer-readable medium on which a computer program is stored. Memory 402 may, for example, be implemented as random access memory (RAM, Random Access Memory). Program memory 401 and memory 402 can also be implemented as a single component.

CPU 400 также управляет драйвером микрофона, который, в свою очередь, управляет микрофоном, драйвером 403 динамика, который, в свою очередь, управляет динамиком, и интерфейсом 405, через который данные могут обмениваться с другими устройствами. Интерфейс 405 может быть реализован, например, в виде радиоинтерфейса.The CPU 400 also controls the microphone driver, which in turn controls the microphone, the speaker driver 403, which in turn controls the speaker, and an interface 405 through which data can be exchanged with other devices. Interface 405 may be implemented, for example, in the form of a radio interface.

Таким образом, устройство 4 содержит все компоненты, требуемые для установления аудиосвязи с другим объектом. Аудиосигналы, принимаемые драйвером 404 микрофона, могут быть кодированы в CPU 400 и переданы через интерфейс 405 в другое устройство. Кроме того, аудиоданные из других устройств могут приниматься через интерфейс 405, декодироваться CPU 400 и воспроизводиться с помощью драйвера 403 динамика.Thus, the device 4 contains all the components required to establish audio communication with another object. The audio signals received by the microphone driver 404 may be encoded in the CPU 400 and transmitted through the interface 405 to another device. In addition, audio data from other devices may be received via interface 405, decoded by the CPU 400, and played back using the speaker driver 403.

В этом случае для выполнения кодирования и декодирования CPU 400 устройства 4 запускает кодек, например кодек G.EV-VBR. Этот кодек может, например, быть выполнен в виде компьютерной программы, хранящейся в памяти 401 программ. Таким образом, устройство 4 может, например, реализовывать структурные блоки 101, 104, 105 и 106, показанные на фиг.1.In this case, to perform encoding and decoding, the CPU 400 of the device 4 launches a codec, for example, the G.EV-VBR codec. This codec may, for example, be implemented as a computer program stored in a program memory 401. Thus, the device 4 can, for example, implement the structural blocks 101, 104, 105 and 106 shown in figure 1.

CPU 400 можно рассматривать как компонент обработки, который осуществляет индексацию входных векторов (в соответствии с алгоритмом, показанным на фиг.2) и/или определение целевого вектора на основе индекса, связанного с целевым вектором (в соответствии с алгоритмом, показанным на фиг.3), выполняя с этой целью специфическую и общую обработку согласно первому и второму аспектам настоящего изобретения. Кроме того, кодек (или его часть) может быть выполнен в виде специализированной аппаратуры 406 (например, в виде цифрового сигнального процессора (DSP, Digital Signal Processor), программируемой пользователем вентильной матрицы (FPGA, Field Programmable Gate Array), специализированной интегральной схемы (ASIC, Application Specific Integrated Circuit) или любой другой специализированной аппаратуры), и в этом случае специализированную аппаратуру 406 можно рассматривать как компонент обработки, который осуществляет индексацию входных векторов и/или определение целевого вектора на основе индекса, связанного с целевым вектором, выполняя с этой целью специфическую и общую обработку согласно первому и второму аспектам настоящего изобретения.The CPU 400 can be considered as a processing component that indexes the input vectors (in accordance with the algorithm shown in FIG. 2) and / or determines the target vector based on the index associated with the target vector (in accordance with the algorithm shown in FIG. 3 ), performing for this purpose a specific and general processing according to the first and second aspects of the present invention. In addition, the codec (or part of it) can be made in the form of specialized equipment 406 (for example, in the form of a digital signal processor (DSP, Digital Signal Processor), a user programmable gate array (FPGA, Field Programmable Gate Array), a specialized integrated circuit ( ASIC, Application Specific Integrated Circuit) or any other specialized equipment), and in this case, specialized equipment 406 can be considered as a processing component that indexes the input vectors and / or determines the target vector based on the index xa associated with the target vector, performing for this purpose specific and general processing according to the first and second aspects of the present invention.

Программный код, выполняемый CPU 400, также можно рассматривать как содержащий такие компоненты обработки в форме функциональных модулей.The program code executed by the CPU 400 can also be considered as containing such processing components in the form of functional modules.

Настоящее изобретение было описано выше с помощью примеров его осуществления. Следует отметить, что существуют альтернативные способы и варианты, очевидные специалисту в этой области техники, которые могут быть осуществлены без нарушения объема и сути прилагаемой формулы изобретения.The present invention has been described above with examples of its implementation. It should be noted that there are alternative methods and options that are obvious to a person skilled in this technical field, which can be implemented without violating the scope and essence of the attached claims.

Claims (37)

1. Способ индексации входного вектора, включающий:
индексацию входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем указанные лидер-классы имеют знаки, и при указанной индексации выдается индекс позиции, представляющий позиции значений в указанном входном векторе, и индекс знака, представляющий знаки компонентов указанного входного вектора, при этом указанная индексация включает:
в том случае, когда указанный входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, выполнение специфической обработки, которая адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с указанным свойством, при этом указанная специфическая обработка включает совместное определение в одном цикле указанного индекса позиции и указанного индекса знака, и
выполнение общей обработки в том случае, когда указанный входной вектор не содержится в наборе векторов указанной заранее заданной группы наборов векторов, при этом общая обработка включает определение друг за другом индекса позиции и индекса знака для упомянутого входного вектора.
1. The method of indexing the input vector, including:
indexing the input vector contained in the set of vectors included in the set of vectors, the indicated sets of vectors being leader classes, each of which contains a different leader vector and permutations of the indicated leader vector, and the indicated leader classes have signs , and with the specified indexing, a position index representing the position of the values in the specified input vector and a sign index representing the signs of the components of the specified input vector are issued, while the specified indexing includes em:
in the case when the specified input vector is contained in the set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, performing specific processing that is adapted to the property of the specified sets of vectors in the specified predetermined group of vector sets and is applicable only in the case of input vectors contained in sets of vectors with the specified property, the specified specific processing includes the joint determination of the indicated ind in one cycle KSA position and the specified character index, and
performing general processing when the specified input vector is not contained in the set of vectors of the specified predefined group of sets of vectors, while the general processing includes determining, one after another, the position index and sign index for said input vector.
2. Способ по п.1, отличающийся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают только заранее заданное количество различных значений.2. The method according to claim 1, characterized in that said property, to which said specific processing is adapted, consists in that said predetermined group of leader classes consists only of leader classes with leader vectors whose components are accepted only in advance set number of different values. 3. Способ по п.2, отличающийся тем, что указанная заранее заданная группа лидер-классов содержит первую подгруппу лидер-классов с лидер-векторами, компоненты которых принимают только четные значения, и вторую подгруппу лидер-классов с лидер-векторами, компоненты которых принимают только нечетные значения, при этом в процессе указанной специфической обработки действия, которые предпринимаются в том случае, если указанный входной вектор содержится в лидер-классе указанной первой подгруппы лидер-классов, отличаются от действий, которые предпринимаются в том случае, если указанный входной вектор содержится в лидер-классе указанной второй подгруппы лидер-классов.3. The method according to claim 2, characterized in that said predetermined group of leader classes contains a first subgroup of leader classes with leader vectors whose components take only even values, and a second subgroup of leader classes with leader vectors whose components are take only odd values, while during the specified specific processing the actions that are taken if the specified input vector is contained in the leader class of the indicated first subgroup of leader classes differ from actions that accepted if said input vector is contained in the leader class of said second sub-group leader classes. 4. Способ по п.1, отличающийся тем, что входные векторы, содержащиеся в наборе векторов указанной заранее заданной группы наборов векторов, индексируют с большей вероятностью, чем входные векторы, содержащиеся в наборах векторов, не входящих в указанную заранее заданную группу наборов векторов.4. The method according to claim 1, characterized in that the input vectors contained in the set of vectors of the specified predefined group of sets of vectors are indexed more likely than the input vectors contained in sets of vectors not included in the specified predefined group of sets of vectors. 5. Способ по п.1, отличающийся тем, что указанная общая обработка в случае применения к входным векторам, содержащимся в указанных наборах векторов с указанным свойством, была бы более сложной по сравнению с указанной специфической обработкой, применяемой к тем же входным векторам.5. The method according to claim 1, characterized in that said general processing, if applied to input vectors contained in said sets of vectors with the indicated property, would be more complicated compared to said specific processing applied to the same input vectors. 6. Способ по п.1, отличающийся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают максимальное количество различных значений.6. The method according to claim 1, characterized in that said property, to which said specific processing is adapted, consists in that said predetermined group of leader classes consists only of leader classes with leader vectors whose components take the maximum number different meanings. 7. Способ по п.1, отличающийся тем, что для оптимизации указанной общей обработки эта обработка применима в том случае, если входные векторы содержатся в любом наборе векторов, входящем в указанное множество наборов векторов, за исключением указанных наборов векторов, входящих в указанную заранее заданную группу наборов векторов.7. The method according to claim 1, characterized in that to optimize the specified general processing, this processing is applicable if the input vectors are contained in any set of vectors included in the specified set of vectors, except for the specified sets of vectors included in the specified in advance given group of sets of vectors. 8. Способ по п.1, отличающийся тем, что указанная индексация представляет собой биномиальную индексацию.8. The method according to claim 1, characterized in that said indexing is binomial indexing. 9. Способ по п.1, отличающийся тем, что указанную индексацию указанного входного вектора выполняют в процессе квантования, который основан на решетчатом кодовом словаре, определенном указанными лидер-классами.9. The method according to claim 1, characterized in that said indexing of said input vector is performed in a quantization process, which is based on a trellis codebook defined by said leader classes. 10. Машиночитаемый носитель, на котором хранится компьютерная программа, содержащая:
инструкции, при исполнении которых процессор выполняет индексацию входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем указанные лидер-классы имеют знаки, и при указанной индексации выдается индекс позиции, представляющий позиции значений в указанном входном векторе, и индекс знака, представляющий знаки компонентов указанного входного вектора, при этом при указанной индексации выполняется специфическая обработка в том случае, когда указанный входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, причем специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с указанным свойством, при этом указанная специфическая обработка включает совместное определение в одном цикле указанного индекса позиции и указанного индекса знака, а в том случае, если указанный входной вектор не содержится в наборе векторов указанной заранее заданной группы наборов векторов, выполняется общая обработка, при этом общая обработка включает определение друг за другом индекса позиции и индекса знака для упомянутого входного вектора.
10. Machine-readable medium on which a computer program is stored, comprising:
instructions, when executed, the processor indexes the input vector contained in the set of vectors included in the set of vectors, and these sets of vectors are leader classes, each of which contains a leader vector and permutations of the specified leader vector, moreover, the indicated leader classes have signs, and with the indicated indexation, a position index representing the positions of the values in the specified input vector and a sign index representing the signs of the components of the specified the input vector, while the specified indexing is performed specific processing in the case when the specified input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, moreover, the specific processing is adapted to the property of these sets of vectors in to a predefined group of sets of vectors and is applicable only in the case of input vectors contained in sets of vectors with the specified property, while the specified specific The processing includes the joint determination in one cycle of the indicated position index and the indicated sign index, and if the specified input vector is not contained in the vector set of the specified predefined group of vector sets, the general processing is performed, while the general processing includes determining one after another a position index and a sign index for said input vector.
11. Устройство для индексации входного вектора, содержащее:
компонент обработки, выполненный с возможностью индексации входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем указанные лидер-классы имеют знаки, и при указанной индексации выдается индекс позиции, представляющий позиции значений в указанном входном векторе, и индекс знака, представляющий знаки компонентов указанного входного вектора, при этом указанный компонент обработки также сконфигурирован для выполнения специфической обработки в том случае, когда указанный индексируемый входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, причем специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с указанным свойством, при этом указанная специфическая обработка включает совместное определение в одном цикле указанного индекса позиции и указанного индекса знака, и, кроме того, указанный компонент обработки выполнен с возможностью осуществления общей обработки в том случае, если указанный входной вектор, подлежащий индексации, не содержится в наборе векторов указанной заранее заданной группы наборов векторов, при этом общая обработка включает определение друг за другом индекса позиции и индекса знака для упомянутого входного вектора.
11. A device for indexing an input vector, comprising:
a processing component configured to index an input vector contained in a set of vectors included in a plurality of sets of vectors, wherein said sets of vectors are leader classes, each of which contains a leader vector and permutations of the indicated leader vector, wherein the indicated leader classes have signs, and with the specified indexation, a position index representing the positions of the values in the specified input vector and a sign index representing the signs of the components of the specified input are issued vector, the specified processing component is also configured to perform specific processing in the case when the specified indexed input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, and the specific processing is adapted to the property specified sets of vectors in the specified predefined group of sets of vectors and is applicable only in the case of input vectors contained in sets of vectors with the specified In this case, the specified specific processing includes the joint determination in one cycle of the indicated position index and the indicated index of the sign, and, in addition, the specified processing component is capable of performing general processing if the specified input vector to be indexed is not contained in a set of vectors of a specified predetermined group of sets of vectors, wherein the general processing includes determining one after another the position index and sign index for said input vector.
12. Устройство по п.11, отличающееся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают только заранее заданное количество различных значений.12. The device according to claim 11, characterized in that said property, to which said specific processing is adapted, consists in that said predetermined group of leader classes consists only of leader classes with leader vectors whose components are accepted only in advance set number of different values. 13. Устройство по п.12, отличающееся тем, что указанная заранее заданная группа лидер-классов содержит первую подгруппу лидер-классов с лидер-векторами, компоненты которых принимают только четные значения, и вторую подгруппу лидер-классов с лидер-векторами, компоненты которых принимают только нечетные значения, при этом в процессе указанной специфической обработки действия, которые предпринимаются в том случае, если указанный входной вектор содержится в лидер-классе указанной первой подгруппы лидер-классов, отличаются от действий, которые выполняются в том случае, если указанный входной вектор содержится в лидер-классе указанной второй подгруппы лидер-классов.13. The device according to p. 12, characterized in that said predetermined group of leader classes contains a first subgroup of leader classes with leader vectors whose components take only even values, and a second subgroup of leader classes with leader vectors whose components take only odd values, while during the specified specific processing the actions that are taken if the specified input vector is contained in the leader class of the indicated first subgroup of leader classes differ from the actions that e are performed if the specified input vector is contained in the leader class of the specified second subgroup of leader classes. 14. Устройство по п.11, отличающееся тем, что входные векторы, содержащиеся в наборе векторов указанной заранее заданной группы наборов векторов, индексируются с большей вероятностью, чем входные векторы, содержащиеся в наборах векторов, не входящих в указанную заранее заданную группу наборов векторов.14. The device according to claim 11, characterized in that the input vectors contained in the set of vectors of the specified predefined group of sets of vectors are indexed more likely than the input vectors contained in sets of vectors not included in the specified predefined group of sets of vectors. 15. Устройство по п.11, отличающееся тем, что указанная общая обработка в случае применения к входным векторам, содержащимся в указанных наборах векторов с указанным свойством, была бы более сложной по сравнению с указанной специфической обработкой, применяемой к тем же входным векторам.15. The device according to claim 11, characterized in that said general processing, if applied to input vectors contained in said sets of vectors with the indicated property, would be more complicated compared to said specific processing applied to the same input vectors. 16. Устройство по п.11, отличающееся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают максимальное количество различных значений.16. The device according to claim 11, characterized in that said property, to which said specific processing is adapted, consists in that said predetermined group of leader classes consists only of leader classes with leader vectors whose components take the maximum number different meanings. 17. Устройство по п.11, отличающееся тем, что для оптимизации указанной общей обработки эта обработка применима в том случае, если входные векторы содержатся в любом наборе векторов, входящем в указанное множество наборов векторов, за исключением указанных наборов векторов, входящих в указанную заранее заданную группу наборов векторов.17. The device according to claim 11, characterized in that to optimize the specified general processing, this processing is applicable if the input vectors are contained in any set of vectors included in the specified set of vectors, except for the specified sets of vectors included in the specified in advance given group of sets of vectors. 18. Устройство по п.11, отличающееся тем, что указанная индексация представляет собой биномиальную индексацию.18. The device according to claim 11, characterized in that said indexing is binomial indexing. 19. Устройство по п.11, отличающееся тем, что указанная индексация указанного входного вектора выполняется в процессе квантования, который основан на решетчатом кодовом словаре, определенном указанными лидер-классами.19. The device according to claim 11, characterized in that said indexing of said input vector is performed during a quantization process, which is based on a trellis codebook defined by said leader classes. 20. Способ определения целевого вектора, включающий:
прием индекса, связанного с упомянутым целевым вектором,
определение целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе упомянутого индекса, связанного с указанным целевым вектором, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем индекс идентифицирует лидер-класс и позиции значений в целевом векторе, при этом указанное определение включает:
выполнение специфической обработки в том случае, когда указанный целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, при этом специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с указанным свойством, и
выполнение общей обработки в том случае, если указанный целевой вектор не содержится в указанном наборе векторов указанной заранее заданной группы наборов векторов.
20. The method of determining the target vector, including:
receiving an index associated with said target vector,
the definition of the target vector contained in the set of vectors included in the set of sets of vectors based on the index associated with the specified target vector, while these sets of vectors are leader classes, each of which contains a different leader vector and permutations of the specified leader vector, the index identifying the leader class and position of values in the target vector, while this definition includes:
performing specific processing in the case where the specified target vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, while the specific processing is adapted to the property of these sets of vectors in the specified predefined group of sets of vectors and applicable only in the case of target vectors contained in sets of vectors with the specified property, and
performing general processing if the specified target vector is not contained in the specified set of vectors of the specified predefined group of sets of vectors.
21. Способ по п.20, отличающийся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают только заранее заданное количество различных значений.21. The method according to claim 20, characterized in that said property, to which said specific processing is adapted, consists in that said predetermined group of leader classes consists only of leader classes with leader vectors whose components are accepted only in advance set number of different values. 22. Способ по п.20 или 21, отличающийся тем, что целевые векторы, содержащиеся в наборе векторов указанной заранее заданной группы наборов векторов, определяют с большей вероятностью, чем целевые векторы, содержащиеся в наборах векторов, не входящих в указанную заранее заданную группу наборов векторов.22. The method according to claim 20 or 21, characterized in that the target vectors contained in the set of vectors of the specified predefined group of sets of vectors are more likely to be determined than the target vectors contained in the sets of vectors not included in the specified predefined group of sets vectors. 23. Способ по п.20 или 21, отличающийся тем, что указанная общая обработка в случае применения к целевым векторам, содержащимся в указанных наборах векторов с указанным свойством, была бы более сложной по сравнению с указанной специфической обработкой, применяемой к тем же целевым векторам.23. The method according to claim 20 or 21, characterized in that said general processing, if applied to the target vectors contained in said sets of vectors with the indicated property, would be more complicated compared to the specified specific processing applied to the same target vectors . 24. Способ по п.20, отличающийся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают максимальное количество различных значений.24. The method according to claim 20, characterized in that said property, to which said specific processing is adapted, consists in that said predetermined group of leader classes consists only of leader classes with leader vectors whose components take the maximum number different meanings. 25. Способ по п.20 или 24, отличающийся тем, что для оптимизации указанной общей обработки эта обработка применима в том случае, если целевые векторы содержатся в любом наборе векторов, входящем в указанное множество наборов векторов, за исключением указанных наборов векторов, входящих в указанную заранее заданную группу наборов векторов.25. The method according to claim 20 or 24, characterized in that to optimize the specified general processing, this processing is applicable if the target vectors are contained in any set of vectors included in the specified set of vectors, except for the specified sets of vectors included in the specified predefined group of sets of vectors. 26. Способ по п.20 или 21, отличающийся тем, что указанный индекс связан с указанным целевым вектором через биномиальную индексацию.26. The method according to claim 20 or 21, characterized in that the specified index is associated with the specified target vector through binomial indexing. 27. Способ по п.20 или 21, отличающийся тем, что указанное определение указанного целевого вектора выполняют в процессе деквантования, который основан на решетчатом кодовом словаре, определенном указанными лидер-классами.27. The method according to claim 20 or 21, characterized in that the specified definition of the specified target vector is performed in the process of dequantization, which is based on a trellised code dictionary defined by the specified leader classes. 28. Машиночитаемый носитель, на котором хранится компьютерная программа, содержащая:
инструкции, при исполнении которых процессор выполняет прием индекса, связанного с упомянутым целевым вектором, определение целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе упомянутого индекса, связанного с указанным целевым вектором, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем индекс идентифицирует лидер-класс и позиции значений в целевом векторе, при этом при указанном определении выполняется специфическая обработка в том случае, когда указанный целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, причем специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с указанным свойством, а в том случае, если указанный целевой вектор не содержится в наборе векторов указанной заранее заданной группы наборов векторов, выполняется общая обработка.
28. Machine-readable medium on which a computer program is stored, comprising:
instructions in which the processor receives an index associated with said target vector, determining a target vector contained in a set of vectors included in a plurality of vector sets based on said index associated with said target vector, wherein said vector sets represent a leader -classes, each of which contains a leader vector different from the others and permutations of the indicated leader vector, and the index identifies the leader class and the position of the values in the target vector, m with the specified definition, specific processing is performed in the case when the specified target vector is contained in the set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, and the specific processing is adapted to the property of the specified sets of vectors in the specified predetermined group sets of vectors and is applicable only in the case of target vectors contained in sets of vectors with the specified property, and if the specified target vector does not contain is stored in a set of vectors of a specified predetermined group of sets of vectors, general processing is performed.
29. Устройство для определения целевого вектора, содержащее:
компонент обработки, выполненный с возможностью приема индекса, связанного с упомянутым целевым вектором, определения целевого вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, на основе упомянутого индекса, связанного с указанным целевым вектором, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем индекс идентифицирует лидер-класс и позиции значений в целевом векторе, при этом указанный компонент обработки также выполнен с возможностью осуществления специфической обработки в том случае, когда указанный определяемый целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, причем специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с указанным свойством, и, кроме того, указанный компонент обработки выполнен с возможностью осуществления общей обработки в том случае, если указанный целевой вектор, подлежащий определению, не содержится в наборе векторов указанной заранее заданной группы наборов векторов.
29. A device for determining the target vector, containing:
a processing component configured to receive an index associated with said target vector, determine a target vector contained in a set of vectors included in a plurality of vector sets based on said index associated with said target vector, said vector sets being the leader classes, each of which contains a leader vector different from the others and permutations of the indicated leader vector, the index identifying the leader class and the position of the values in the target vector, while the decree This processing component is also capable of performing specific processing in the case when the specified determined target vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, and the specific processing is adapted to the property of these sets of vectors in the specified predefined group of sets of vectors and is applicable only in the case of target vectors contained in sets of vectors with the specified property, and, except th, said processing component is adapted to perform overall processing in case said target vector to be determined is not contained in a set of vectors of said pre-defined group of sets of vectors.
30. Устройство по п.29, отличающееся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают только заранее заданное количество различных значений.30. The device according to clause 29, wherein the specified property, to which the specified specific processing is adapted, lies in the fact that the specified predefined group of leader classes consists only of leader classes with leader vectors whose components are accepted only in advance set number of different values. 31. Устройство по п.29 или 30, отличающееся тем, что целевые векторы, содержащиеся в наборе векторов указанной заранее заданной группы наборов векторов, определяются с большей вероятностью, чем целевые векторы, содержащиеся в наборах векторов, не входящих в указанную заранее заданную группу наборов векторов.31. The device according to clause 29 or 30, characterized in that the target vectors contained in the set of vectors of the specified predefined group of sets of vectors are more likely than the target vectors contained in the sets of vectors not included in the specified predefined group of sets vectors. 32. Устройство по п.29 или 30, отличающееся тем, что указанная общая обработка в случае применения к целевым векторам, содержащимся в указанных наборах векторов с указанным свойством, была бы более сложной по сравнению с указанной специфической обработкой, применяемой к тем же целевым векторам.32. The device according to clause 29 or 30, characterized in that said general processing, if applied to the target vectors contained in said sets of vectors with the indicated property, would be more complicated compared to the specified specific processing applied to the same target vectors . 33. Устройство по п.29, отличающееся тем, что указанное свойство, к которому адаптирована указанная специфическая обработка, заключается в том, что указанная заранее заданная группа лидер-классов состоит только из лидер-классов с лидер-векторами, компоненты которых принимают максимальное количество различных значений.33. The device according to clause 29, wherein the specified property, to which the specified specific processing is adapted, lies in the fact that the specified predefined group of leader classes consists only of leader classes with leader vectors whose components take the maximum number different meanings. 34. Устройство по п.29 или 33, отличающееся тем, что для оптимизации указанной общей обработки эта обработка применима в том случае, если целевые векторы содержатся в любом наборе векторов, входящем в указанное множество наборов векторов, за исключением указанных наборов векторов, входящих в указанную заранее заданную группу наборов векторов.34. The device according to clause 29 or 33, characterized in that to optimize the specified general processing, this processing is applicable if the target vectors are contained in any set of vectors included in the specified set of vectors, except for the specified sets of vectors included in the specified predefined group of sets of vectors. 35. Устройство по п.29 или 30, отличающееся тем, что указанный индекс связан с указанным целевым вектором через биномиальную индексацию.35. The device according to clause 29 or 30, characterized in that the specified index is associated with the specified target vector through binomial indexing. 36. Устройство по п.29 или 30, отличающееся тем, что указанная процедура определения указанного целевого вектора выполняется в процессе деквантования, который основан на решетчатом кодовом словаре, определенном указанными лидер-классами.36. The device according to clause 29 or 30, characterized in that said procedure for determining said target vector is performed in the process of dequantization, which is based on a trellised code dictionary defined by said leader classes. 37. Система для индексации входного вектора и для определения целевого вектора, содержащая:
первый компонент обработки, выполненный с возможностью индексации входного вектора, содержащегося в наборе векторов, входящем в множество наборов векторов, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем указанные лидер-классы имеют знаки, и при указанной индексации выдается индекс позиции, представляющий позиции значений в указанном входном векторе, и индекс знака, представляющий знаки компонентов указанного входного вектора, при этом указанный компонент обработки также выполнен с возможностью осуществления специфической обработки в том случае, когда указанный индексируемый входной вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, причем специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае входных векторов, содержащихся в наборах векторов с указанным свойством, при этом указанная специфическая обработка включает совместное определение в одном цикле указанного индекса позиции и указанного индекса знака, и, кроме того, указанный первый компонент обработки выполнен с возможностью осуществления общей обработки в том случае, если указанный входной вектор, подлежащий индексации, не содержится в наборе векторов указанной заранее заданной группы наборов векторов, при этом общая обработка включает определение друг за другом индекса позиции и индекса знака для указанного входного вектора, и
второй компонент обработки, выполненный с возможностью приема индекса, связанного с упомянутым целевым вектором, определения целевого вектора, содержащегося в наборе векторов, входящем в указанное множество наборов векторов, на основе индекса, связанного с указанным целевым вектором, при этом указанные наборы векторов представляют собой лидер-классы, каждый из которых содержит отличный от других лидер-вектор и перестановки указанного лидер-вектора, причем индекс идентифицирует лидер-класс и позиции значений в целевом векторе, при этом указанный второй компонент обработки также выполнен с возможностью осуществления специфической обработки в том случае, когда указанный определяемый целевой вектор содержится в наборе векторов заранее заданной группы из одного или более наборов векторов, входящих в указанное множество наборов векторов, причем специфическая обработка адаптирована к свойству указанных наборов векторов в указанной заранее заданной группе наборов векторов и применима только в случае целевых векторов, содержащихся в наборах векторов с указанным свойством, и, кроме того, указанный второй компонент обработки также выполнен с возможностью осуществления общей обработки в том случае, если указанный целевой вектор, подлежащий определению, не содержится в наборе векторов указанной заранее заданной группы наборов векторов.
37. A system for indexing an input vector and for determining a target vector, comprising:
the first processing component, configured to index the input vector contained in the set of vectors included in the set of sets of vectors, while these sets of vectors are leader classes, each of which contains a different leader vector and permutations of the specified leader vector, moreover, the indicated leader classes have signs, and with the indicated indexation, a position index representing the positions of the values in the specified input vector and a sign index representing the signs of the components of the specified the input vector, while the specified processing component is also configured to perform specific processing in the case when the specified indexed input vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in the specified set of vectors, and the specific processing is adapted to property of the indicated sets of vectors in the specified predefined group of sets of vectors and is applicable only in the case of input vectors contained in sets of vectors in with the specified property, wherein said specific processing includes the joint determination in one cycle of the indicated position index and the indicated sign index, and, in addition, the specified first processing component is capable of performing general processing if the specified input vector to be indexed is not contained in the set of vectors of the specified predefined group of sets of vectors, while the general processing includes determining one after another the position index and sign index for the specified input th vector, and
the second processing component, configured to receive an index associated with said target vector, determine a target vector contained in a set of vectors included in said set of vector vectors based on an index associated with said target vector, wherein said vector sets represent a leader -classes, each of which contains a leader vector different from the others and permutations of the indicated leader vector, and the index identifies the leader class and position of values in the target vector, while said second processing component is also capable of performing specific processing in the case when said specified target vector is contained in a set of vectors of a predetermined group of one or more sets of vectors included in said set of sets of vectors, wherein the specific processing is adapted to the property of said sets of vectors in the specified predefined group of vector sets and is applicable only in the case of target vectors contained in sets of vectors with the specified properties ohm, and, in addition, the specified second processing component is also configured to perform general processing if the specified target vector to be determined is not contained in the vector set of the specified predetermined group of vector sets.
RU2010138178/08A 2008-02-15 2008-02-15 Simplified vector indexing and deindexing RU2461079C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010138178/08A RU2461079C2 (en) 2008-02-15 2008-02-15 Simplified vector indexing and deindexing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010138178/08A RU2461079C2 (en) 2008-02-15 2008-02-15 Simplified vector indexing and deindexing

Publications (2)

Publication Number Publication Date
RU2010138178A RU2010138178A (en) 2012-03-20
RU2461079C2 true RU2461079C2 (en) 2012-09-10

Family

ID=46029864

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010138178/08A RU2461079C2 (en) 2008-02-15 2008-02-15 Simplified vector indexing and deindexing

Country Status (1)

Country Link
RU (1) RU2461079C2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552205B2 (en) 2013-09-27 2017-01-24 Intel Corporation Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004138289A (en) * 2002-05-31 2005-06-10 Войсэйдж Корпорейшн (Ca) METHOD AND SYSTEM FOR MULTI-SPEED LATTICE VECTOR SIGNAL QUANTIZATION
WO2007026295A2 (en) * 2005-08-29 2007-03-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
US20070162236A1 (en) * 2004-01-30 2007-07-12 France Telecom Dimensional vector and variable resolution quantization
WO2007093730A2 (en) * 2006-02-17 2007-08-23 France Telecom Improved encoding/decoding of digital signals, especially in vector quantisation with permutation codes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004138289A (en) * 2002-05-31 2005-06-10 Войсэйдж Корпорейшн (Ca) METHOD AND SYSTEM FOR MULTI-SPEED LATTICE VECTOR SIGNAL QUANTIZATION
US20070162236A1 (en) * 2004-01-30 2007-07-12 France Telecom Dimensional vector and variable resolution quantization
WO2007026295A2 (en) * 2005-08-29 2007-03-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
WO2007093730A2 (en) * 2006-02-17 2007-08-23 France Telecom Improved encoding/decoding of digital signals, especially in vector quantisation with permutation codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VASILACHE А ЕТ AL: «Robust indexing of lattices and permutation codes over binary symmetric channels» SIGNAL PROCESSING, ELSEVIER SCIENCE PUBLISHERS B.V. AMSTERDAM, NL, vol.83, no 7, 2003.07.01. *

Also Published As

Publication number Publication date
RU2010138178A (en) 2012-03-20

Similar Documents

Publication Publication Date Title
TWI480859B (en) Reduced-complexity vector indexing and de-indexing
TWI405187B (en) Scalable speech and audio encoder device, processor including the same, and method and machine-readable medium therefor
RU2326450C2 (en) Method and device for vector quantisation with reliable prediction of linear prediction parameters in voice coding at variable bit rate
US9171550B2 (en) Context-based arithmetic encoding apparatus and method and context-based arithmetic decoding apparatus and method
US8510105B2 (en) Compression and decompression of data vectors
US20070168197A1 (en) Audio coding
US7805292B2 (en) Method and apparatus for audio transcoding
US20100217753A1 (en) Multi-stage quantization method and device
WO2007132750A1 (en) Lsp vector quantization device, lsp vector inverse-quantization device, and their methods
US7617096B2 (en) Robust quantization and inverse quantization using illegal space
JPWO2011045926A1 (en) Encoding device, decoding device and methods thereof
RU2461079C2 (en) Simplified vector indexing and deindexing
EP2668651A1 (en) Coding through combination of code vectors
JPWO2012035781A1 (en) Quantization apparatus and quantization method
US9318115B2 (en) Efficient coding of binary strings for low bit rate entropy audio coding
JP5544371B2 (en) Encoding device, decoding device and methods thereof
Moreau Tools for Signal Compression: Applications to Speech and Audio Coding
US9196255B2 (en) Low complexity target vector identification
CA2511516C (en) Method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
JP3700310B2 (en) Vector quantization apparatus and vector quantization method
CN116631418A (en) Speech coding method, speech decoding method, speech coding device, speech decoding device, computer equipment and storage medium
Vasilache Fast low bit rate lattice entropy coding for speech and audio coding
JP2013055417A (en) Quantization device and quantization method

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20160602