RU2769429C2 - Audio signal encoder - Google Patents

Audio signal encoder Download PDF

Info

Publication number
RU2769429C2
RU2769429C2 RU2018129979A RU2018129979A RU2769429C2 RU 2769429 C2 RU2769429 C2 RU 2769429C2 RU 2018129979 A RU2018129979 A RU 2018129979A RU 2018129979 A RU2018129979 A RU 2018129979A RU 2769429 C2 RU2769429 C2 RU 2769429C2
Authority
RU
Russia
Prior art keywords
vector
distance
determining
code vector
scale factor
Prior art date
Application number
RU2018129979A
Other languages
Russian (ru)
Other versions
RU2018129979A (en
RU2018129979A3 (en
Inventor
Адриана ВАСИЛАКЕ
Ансси Сакари РАМО
Лассе Юхани ЛААКСОНЕН
Original Assignee
Нокиа Текнолоджиз Ой
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Нокиа Текнолоджиз Ой filed Critical Нокиа Текнолоджиз Ой
Priority to RU2018129979A priority Critical patent/RU2769429C2/en
Publication of RU2018129979A publication Critical patent/RU2018129979A/en
Publication of RU2018129979A3 publication Critical patent/RU2018129979A3/ru
Application granted granted Critical
Publication of RU2769429C2 publication Critical patent/RU2769429C2/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

FIELD: computer equipment for encoding audio data.
SUBSTANCE: technical result is achieved by determining the distance between the potential code vector and the ordered vector of parameters by forming the first and second distance components based on the first value of the scaling factor, wherein the first and second distance components are associated with the distance between the potential code vector and the ordered parameter vector, correcting the sign of the first distance component, when the potential code vector does not pass the parity constraint check, and determining the distance between the at least one potential code vector and the ordered parameter vector based on the first and second distance components; determining the leading class, associated with potential code vector, which forms the least associated distance; and sorting the leading class by descending ordering based on the absolute values of the components of said at least one parameter vector.
EFFECT: reduced complexity of encoding by estimating distortion of quantization in transposed vector space.
15 cl, 6 dwg

Description

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

Настоящая заявка относится к кодеру многоканального или стереофонического звукового сигнала и, в частности, но не исключительно, к кодеру многоканального или стереофонического звукового сигнала, предназначенному для использования в портативном устройстве.The present application relates to a multi-channel or stereo audio encoder, and in particular, but not exclusively, to a multi-channel or stereo audio encoder for use in a portable device.

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

Звуковые сигналы, такие как речь или музыка, кодируются, например, для обеспечения возможности эффективной их передачи или хранения.Audio signals such as speech or music are encoded, for example, to enable efficient transmission or storage.

Кодеры и декодеры звуковых сигналов (также называемые кодеками) используются для представления основанных на звуковых колебаниях сигналов, таких как музыка и звуковое сопровождение (которое в терминах кодирования речи может называться фоновым шумом). В этих типах кодеках обычно для процесса кодирования не используется модель воспроизведения речи, в большей степени в этих кодеках применяются процессы представления звуковых сигналов всех типов, включая речевой сигнал. Кодеры и декодеры речи (кодеки) могут рассматриваться как кодеки звукового сигнала, которые оптимизированы для речевых сигналов и могут функционировать либо с фиксированной, либо с переменной битовой скоростью.Audio encoders and decoders (also referred to as codecs) are used to represent audio-based signals such as music and audio (which may be referred to as background noise in speech coding terms). In these types of codecs, the speech reproduction model is usually not used for the coding process; to a greater extent, these codecs use the processes for representing audio signals of all types, including the speech signal. Speech encoders and decoders (codecs) can be thought of as audio codecs that are optimized for speech signals and can operate at either a fixed or variable bit rate.

Кодеры и декодеры звуковых сигналов часто разрабатываются в виде несложных кодеков источника сигнала. Другими словами, эти устройства способны выполнять кодирование и декодирование звуковых сигналов без необходимости применения сложной процедуры обработки.Audio encoders and decoders are often designed as simple source codecs. In other words, these devices are capable of encoding and decoding audio signals without the need for complicated processing.

В качестве примера можно привести кодирование с преобразованием. В случае музыкального сигнала, кодирование звукового сигнала с преобразованием выполняется эффективнее по сравнению с технологией алгебраического линейного предсказания с кодовым возбуждением (ACELP, Algebraic Code Excited Linear Prediction), которая в лучшей степени приспособлена и направлена на обработку речевых сигналов. Кодирование с преобразованием выполняется посредством кодирования с преобразованием коэффициентов поддиапазона векторов, другими словами, звуковой сигнал разделяется на поддиапазоны, для которых определяется параметр, и параметры представляют подвекторы, полученные в результате векторного или решеточного квантования.An example is coding with a transformation. In the case of a music signal, transform coding of an audio signal is performed more efficiently than Algebraic Code Excited Linear Prediction (ACELP) technology, which is better adapted and directed to speech signal processing. Transform encoding is performed by transform encoding coefficients of subband vectors, in other words, the audio signal is divided into subbands for which a parameter is determined, and the parameters represent subvectors resulting from vector or lattice quantization.

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

В соответствии с первым аспектом настоящего изобретения предлагается способ, включающий формирование по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; сортировку по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров; выбор из списка ведущих классов по меньшей мере одного потенциального кодового вектора; определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.In accordance with the first aspect of the present invention, a method is provided, including the formation of at least one parameter vector that defines at least one audio signal; sorting at least one parameter vector according to the order of at least one of the vector's absolute tuples to form at least one associated ordered parameter vector; selecting at least one potential code vector from the list of leading classes; determining a distance between at least one candidate code vector and at least one ordered parameter vector; determining at least one leading class associated with the potential code vector that generates the smallest associated distance; and transposing at least one leading class to generate an output code vector derived from the trellis quantization.

Способ также может включать выбор по меньшей мере одного масштабного коэффициента; при этом определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: определение расстояния на основе по меньшей мере одного масштабного коэффициента; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может включать определение выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может включать применение выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.The method may also include selecting at least one scale factor; while determining the distance between at least one potential code vector and at least one ordered parameter vector may also include: determining the distance based on at least one scale factor; determining at least one leading class associated with the candidate code vector that generates the smallest associated distance may also include determining an output scale factor associated with the candidate code vector and the scale factor that generates the smallest associated distance; and transposing at least one leading class to generate an output trellis-quantized codevector may also include applying an output scaling factor to the output trellis-quantized codevector.

Формирование первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, может включать: разделение по меньшей мере одного звукового сигнала на временные кадры; и определение вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.The formation of the first vector of parameters that define at least one audio signal may include: dividing at least one audio signal into time frames; and determining a vector of discrete spectrum frequency parameters associated with at least one of the time frames of the audio signal.

Сортировка по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров может включать: определение весов для определения взвешенного расстояния; сортировку весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов; и применение вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.Sorting at least one parameter vector according to the order of at least one of the vector's absolute tuples to form at least one associated ordered parameter vector may include: determining weights to determine a weighted distance; sorting the weights based on the order of said at least one of the absolute tuples of the vector to form a vector of sorted weights; and applying the sorted weight vector to the at least one ordered parameter vector.

Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров может включать: формирование первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; корректировку знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет; и определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.Determining the distance between at least one potential code vector and at least one ordered parameter vector may include: generating the first and second distance components based on the first scale factor value, wherein the first and second distance components are related to the distance between the at least one potential a code vector and at least one ordered parameter vector; correcting the sign of the first distance component when the candidate codevector fails the parity constraint test; and determining a distance between the at least one candidate code vector and the at least one ordered parameter vector based on the first and second distance components.

Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.Determining a distance between at least one candidate code vector and at least one ordered parameter vector may also include: determining a distance between at least one candidate code vector and at least one ordered parameter vector based on the first and second distance components, and based on scale factor values.

Определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, может включать: определение индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; и определение масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.Determining at least one leading class associated with a potential codevector that generates the smallest associated distance may include: determining an index of the potential codevector that generates the smallest associated distance; and determining a scale factor of the candidate codevector that generates the smallest associated distance by applying the scale factors only to the candidate codevector that generates the smallest associated distance.

Транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может включать сортировку по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.Transposing the at least one leading class to generate an output codevector derived from the trellis quantization may include sorting the at least one leading class by reordering at least one of the vector's absolute tuples.

В соответствии со вторым аспектом предлагается устройство, содержащее средство для формирования по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; средство для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров; средство для выбора из списка ведущих классов по меньшей мере одного потенциального кодового вектора; средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и средство для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.According to a second aspect, a device is provided, comprising means for generating at least one vector of parameters defining at least one audio signal; means for sorting the at least one parameter vector according to the order of at least one of the vector's absolute tuples to form at least one associated ordered parameter vector; means for selecting at least one potential codevector from a list of leading classes; means for determining a distance between at least one candidate code vector and at least one ordered parameter vector; means for determining at least one leading class associated with the potential code vector that generates the smallest associated distance; and means for transposing the at least one leading class to generate an output code vector derived from the trellis quantization.

Устройство также может содержать средство для выбора по меньшей мере одного масштабного коэффициента; при этом средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: средство для определения расстояния на основе по меньшей мере одного масштабного коэффициента; средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может содержать средство для определения выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и средство транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может включать средство для применения выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.The device may also include means for selecting at least one scale factor; the means for determining the distance between the at least one potential code vector and the at least one ordered parameter vector may also include: means for determining the distance based on the at least one scale factor; means for determining at least one leading class associated with the candidate code vector that generates the smallest associated distance may also comprise means for determining an output scale factor associated with the candidate code vector and the scale factor that generates the smallest associated distance; and means for transposing at least one leading class to generate an output codevector derived from the trellis quantization may also include means for applying an output scaling factor to the output codevector derived from the trellis quantization.

Средство для формирования первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, может содержать: средство для разделения по меньшей мере одного звукового сигнала на временные кадры; и средство для определения вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала. Средство для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров может содержать: средство для определения весов для определения взвешенного расстояния; средство для сортировки весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов; и средство для применения вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.Means for generating a first vector of parameters defining at least one audio signal may include: means for separating at least one audio signal into time frames; and means for determining a vector of discrete spectrum frequency parameters associated with at least one of the time frames of the audio signal. Means for sorting at least one parameter vector according to the order of at least one of the absolute tuples of the vector to form at least one associated ordered parameter vector may comprise: means for determining weights for determining a weighted distance; means for sorting weights based on the order of said at least one of the absolute tuples of the vector to generate a vector of sorted weights; and means for applying the sorted weight vector to the at least one ordered parameter vector.

Средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров может содержать: средство для формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; средство для корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет; и средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.Means for determining the distance between at least one potential code vector and at least one ordered parameter vector may comprise: means for generating the first and second distance components based on the first scale factor value, wherein the first and second distance components are associated with the distance between at least one potential code vector and at least one ordered parameter vector; means for correcting the sign of the first distance component when the candidate codevector fails a parity constraint test; and means for determining a distance between the at least one candidate code vector and the at least one ordered parameter vector based on the first and second distance components.

Средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может содержать средство определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.The means for determining the distance between at least one potential code vector and at least one ordered parameter vector may also comprise means for determining the distance between at least one potential code vector and at least one ordered parameter vector based on the first and second distance components, and also based on the values of scale factors.

Средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, может содержать: средство для определения индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; и средство для определения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения значений масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.Means for determining at least one leading class associated with a potential codevector that generates the smallest associated distance may comprise: means for determining an index of the potential codevector that generates the smallest associated distance; and means for determining a scale factor of the candidate code vector that generates the smallest associated distance by applying the scale factor values only to the candidate code vector that generates the smallest associated distance.

Средство для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может содержать средство для сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.Means for transposing at least one leading class to form an output code vector derived from the trellis quantization may comprise means for sorting at least one leading class by reordering at least one of the vector's absolute tuples.

В соответствии с третьим аспектом предлагается устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, содержащую код компьютерной программы, при этом по меньшей мере одна память и код компьютерной программы сконфигурированы таким образом, чтобы при взаимодействии по меньшей мере с одним процессором устройство выполняло по меньшей мере следующее: формирование по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; сортировку по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров; выбор из списка ведущих классов по меньшей мере одного потенциального кодового вектора; определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.In accordance with a third aspect, an apparatus is provided, comprising at least one processor and at least one memory containing computer program code, wherein at least one memory and computer program code are configured such that when interacting with at least one processor the device performed at least the following: generating at least one parameter vector defining at least one audio signal; sorting at least one parameter vector according to the order of at least one of the vector's absolute tuples to form at least one associated ordered parameter vector; selecting at least one potential code vector from the list of leading classes; determining a distance between at least one candidate code vector and at least one ordered parameter vector; determining at least one leading class associated with the potential code vector that generates the smallest associated distance; and transposing at least one leading class to generate an output code vector derived from the trellis quantization.

Устройство также может выполнять следующее: выбор по меньшей мере одного масштабного коэффициента; при этом определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: определение расстояния на основе по меньшей мере одного масштабного коэффициента; при этом определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может включать определение выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; при этом транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может включать применение выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.The device may also perform the following: selecting at least one scale factor; while determining the distance between at least one potential code vector and at least one ordered parameter vector may also include: determining the distance based on at least one scale factor; wherein determining at least one leading class associated with the candidate code vector that generates the smallest associated distance may also include determining an output scale factor associated with the candidate code vector and the scale factor that generates the smallest associated distance; wherein transposing at least one leading class to generate an output codevector derived from the trellis quantization may include applying an output scaling factor to the output codevector derived from the trellis quantization.

Формирование первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, может включать разделение по меньшей мере одного звукового сигнала на временные кадры и определение вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.Forming the first vector of parameters defining at least one audio signal may include dividing at least one audio signal into time frames and determining a vector of discrete spectrum frequency parameters associated with at least one of the time frames of the audio signal.

Сортировка по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров может включать определение весов для определения взвешенного расстояния, для сортировки весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов и применение вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.Sorting at least one parameter vector according to the order of at least one of the absolute vector tuples to form at least one associated ordered parameter vector may include determining weights to determine a weighted distance, to sort the weights based on the order of said at least one of the absolute tuples a vector to generate a sorted weights vector; and applying the sorted weights vector to at least one ordered parameter vector.

Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров может включать формирование первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, для корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.Determining the distance between the at least one candidate code vector and the at least one ordered parameter vector may include generating first and second distance components based on the first scale factor value, wherein the first and second distance components are related to the distance between the at least one candidate code vector. vector and at least one ordered parameter vector, to correct the sign of the first distance component when the candidate code vector fails the parity constraint test, and determining the distance between the at least one candidate code vector and the at least one ordered parameter vector based on the first and the second distance component.

Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.Determining the distance between the at least one candidate code vector and the at least one ordered parameter vector may also include determining the distance between the at least one candidate code vector and the at least one ordered parameter vector based on the first and second distance components, as well as on based on scale factor values.

Определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, может включать определение индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, и определение масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.Determining at least one leading class associated with the potential codevector that generates the smallest associated distance may include determining an index of the potential codevector that generates the smallest associated distance and determining a scale factor of the potential codevector that generates the smallest associated distance by applying scalefactors only to the potential codevector that generates the smallest associated distance.

Транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может включать выполнение сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.Transposing at least one leading class to generate an output codevector derived from the trellis quantization may include performing a sort on at least one leading class by reordering at least one of the vector's absolute tuples.

В соответствии с четвертым аспектом настоящего изобретения предлагается устройство, содержащее формирователь вектора, сконфигурированный для формирования по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; и решетчатый векторный квантователь, сконфигурированный для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров, выбора из списка ведущих классов по меньшей мере одного потенциального кодового вектора, определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, и транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.According to a fourth aspect of the present invention, there is provided an apparatus comprising: a vector generator configured to generate at least one vector of parameters defining at least one audio signal; and a lattice vector quantizer configured to sort at least one parameter vector according to the order of at least one of the absolute tuples of the vector to form at least one associated ordered parameter vector, select at least one potential code vector from the list of leading classes, determine the distance between at least one candidate codevector and at least one ordered parameter vector, determining at least one leading class associated with the candidate codevector that generates the smallest associated distance, and transposing at least one leading class to form an output codevector , obtained on the basis of lattice quantization.

Устройство, в котором решетчатый векторный квантователь также сконфигурирован для выбора по меньшей мере одного масштабного коэффициента; при этом решетчатый векторный квантователь, сконфигурированный для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, также может быть сконфигурирован для определения расстояния на основе по меньшей мере одного масштабного коэффициента; решетчатый векторный квантователь, сконфигурированный для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может быть сконфигурирован для определения выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и решетчатый векторный квантователь, сконфигурированный для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может быть сконфигурирован для применения выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.An apparatus wherein the trellis vector quantizer is also configured to select at least one scale factor; while the lattice vector quantizer, configured to determine the distance between at least one potential code vector and at least one ordered parameter vector, can also be configured to determine the distance based on at least one scale factor; a trellis vector quantizer configured to determine at least one leading class associated with the candidate code vector that generates the smallest associated distance may also be configured to determine an output scale factor associated with the candidate code vector and the scale factor that generates the smallest associated distance ; and a trellis vector quantizer configured to transpose at least one leading class to generate an output codevector derived from the trellis quantization may also be configured to apply an output scaling factor to the output codevector derived from the trellis quantization.

Устройство также может содержать определитель параметров, сконфигурированный для разделения по меньшей мере одного звукового сигнала на временные кадры, и для определения вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.The apparatus may also comprise a parameter determiner configured to divide at least one audio signal into time frames and to determine a vector of discrete spectrum frequency parameters associated with at least one of the time frames of the audio signal.

При этом решетчатый векторный квантователь, сконфигурированный для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров, также может быть сконфигурирован для определения весов для определения взвешенного расстояния, для сортировки весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов, и для применения вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.At the same time, a lattice vector quantizer configured to sort at least one parameter vector according to the order of at least one of the absolute tuples of the vector to form at least one associated ordered parameter vector can also be configured to determine weights for determining a weighted distance, for sorting weights based on the order of said at least one of the absolute tuples of the vector to form a vector of sorted weights, and to apply the sorted weights vector to at least one ordered parameter vector.

Решетчатый векторный квантователь, сконфигурированный для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, также может быть сконфигурирован для формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, для корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет, и для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.A lattice vector quantizer configured to determine a distance between at least one potential code vector and at least one ordered parameter vector may also be configured to generate first and second distance components based on the first scale factor value, wherein the first and second distance components associated with the distance between at least one candidate codevector and at least one ordered parameter vector, to correct the sign of the first distance component when the candidate codevector fails a parity constraint test, and to determine the distance between the at least one candidate codevector and at least one ordered parameter vector based on the first and second distance components.

Решетчатый векторный квантователь, сконфигурированный для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, также может быть сконфигурирован для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.A lattice vector quantizer configured to determine a distance between at least one candidate code vector and at least one ordered parameter vector may also be configured to determine a distance between at least one potential code vector and at least one ordered parameter vector based on the first and second distance components, as well as based on the values of the scale factors.

Решетчатый векторный квантователь, сконфигурированный для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может быть сконфигурирован для определения индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, и для определения значения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.A lattice vector quantizer configured to determine at least one leading class associated with a potential codevector that generates the smallest associated distance may also be configured to determine an index of the potential codevector that generates the smallest associated distance and to determine a scale factor value of the potential codevector that generates the smallest associated distance by applying scaling factors only to the potential codevector that generates the smallest associated distance.

Решетчатый векторный квантователь, сконфигурированный для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может быть сконфигурирован для сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.A trellis vector quantizer configured to transpose at least one leading class to form an output code vector derived from the trellis quantization may also be configured to sort at least one leading class by reordering at least one of the vector's absolute tuples.

Компьютерный программный продукт, обеспечивающий выполнение устройством описываемого способа.A computer software product that enables the device to perform the described method.

Электронное устройство, может содержать описанное устройство.An electronic device may include the described device.

Чипсет может включать описанное выше устройство.The chipset may include the device described above.

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

Для лучшего понимания сути настоящего изобретения далее в примерах приводятся ссылки на прилагаемые чертежи, на которых:For a better understanding of the essence of the present invention, in the following examples, reference is made to the accompanying drawings, in which:

на фиг.1 схематично показано электронное устройство, в котором используются некоторые варианты осуществления настоящего изобретения;Figure 1 schematically shows an electronic device in which some embodiments of the present invention are used;

на фиг. 2 схематично показана система кодека звукового сигнала в соответствии с некоторыми вариантами осуществления настоящего изобретения;in fig. 2 schematically shows an audio codec system in accordance with some embodiments of the present invention;

на фиг. 3 схематично показан кодер, изображенный на фиг. 2, в соответствии с некоторыми вариантами осуществления настоящего изобретения;in fig. 3 schematically shows the encoder shown in FIG. 2, in accordance with some embodiments of the present invention;

на фиг. 4 показан алгоритм работы кодера звукового сигнала, показанного на фиг. 3, в соответствии с некоторыми вариантами осуществления настоящего изобретения;in fig. 4 shows the operation of the audio encoder shown in FIG. 3, in accordance with some embodiments of the present invention;

на фиг. 5 схематично показан решетчатый векторный квантователь, изображенный на фиг. 3, в соответствии с некоторыми вариантами осуществления настоящего изобретения; иin fig. 5 schematically shows the lattice vector quantizer shown in FIG. 3, in accordance with some embodiments of the present invention; and

на фиг. 6 показан алгоритм работы решетчатого векторного квантователя, показанного на фиг. 5, в соответствии с некоторыми вариантами осуществления настоящего изобретения.in fig. 6 shows the operation of the lattice vector quantizer shown in FIG. 5 in accordance with some embodiments of the present invention.

ОПИСАНИЕ НЕКОТОРЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯDESCRIPTION OF SOME EMBODIMENTS OF THE PRESENT INVENTION

Ниже более подробно описываются возможные кодеки стереофонического и многоканального речевого и звукового сигналов, включая многоуровневые кодеки или кодеки звуковых и речевых сигналов с масштабируемой переменной скоростью.Possible stereo and multi-channel speech and audio codecs are described in more detail below, including layered or scalable variable rate audio and speech codecs.

При использовании современных подходов к кодированию с преобразованием может возникать проблема, связанная с тем, что применение эффективных решеток при сжатии может значительно улучшить квантование. Однако такие улучшения достигаются за счет существенного усложнения кодека.With current transform coding approaches, there may be a problem that the use of efficient gratings in compression can significantly improve quantization. However, such improvements come at the expense of a significant complication of the codec.

Согласно подробно обсуждаемой в этом описании концепции осуществления настоящего изобретения предлагается подход, позволяющий значительно уменьшить сложность кодирования путем оценки искажения квантования в транспонированном векторном пространстве.As discussed in detail in this description of the concept of implementation of the present invention, an approach is proposed that can significantly reduce the complexity of coding by estimating quantization distortion in the transposed vector space.

В этом отношении, вначале со ссылкой на фиг. 1 рассматривается блок-схема типового электронного прибора или устройства 10, которое может включать кодек, соответствующий варианту осуществления настоящего изобретения.In this regard, first with reference to FIG. 1 is a block diagram of a typical electronic device or device 10 that may include a codec in accordance with an embodiment of the present invention.

Устройство 10 может, например, представлять собой мобильный терминал или пользовательское оборудование системы беспроводной связи. В других вариантах осуществления устройство 10 может представлять собой аудио-видео оборудование, такое как видеокамера, телевизионный приемник, устройство звукозаписи или воспроизведения звуковых сигналов, например устройство записи/воспроизведения файлов формата mp3, устройство записи мультимедийных файлов (также известное как устройство записи/воспроизведения файлов формата mp4) или любой компьютер, подходящий для обработки звуковых сигналов.Device 10 may, for example, be a mobile terminal or user equipment of a wireless communication system. In other embodiments, the device 10 may be an audio-video equipment such as a video camera, a television receiver, an audio recording or playback device, such as an mp3 file recorder/player, a multimedia file recorder (also known as a file recorder/player mp4 format) or any computer suitable for processing audio signals.

Электронный прибор или устройство 10 в некоторых вариантах осуществления содержит микрофон 11, который через аналого-цифровой преобразователь (ADC, Analogue-To-Digital Converter) 14 соединяется с процессором 21. Процессор 21 далее через цифро-аналоговый преобразователь (DAC, Digital-To-Analogue Converter) 32 соединяется с громкоговорителем 33. Процессор 21 также соединяется с приемопередатчиком (RX/TX) 13, пользовательским интерфейсом (UI, User Interface) 15 и памятью 22.The electronic device or device 10 in some embodiments includes a microphone 11, which is connected via an analog-to-digital converter (ADC, Analogue-To-Digital Converter) 14 to the processor 21. The processor 21 is further via a digital-to-analog converter (DAC, Digital-To- Analogue Converter) 32 is connected to speaker 33. Processor 21 is also connected to transceiver (RX/TX) 13, user interface (UI, User Interface) 15 and memory 22.

Процессор 21 в некоторых вариантах осуществления изобретения может быть сконфигурирован для выполнения различных программных кодов. Реализуемые программные коды в некоторых вариантах осуществления изобретения, как описывается ниже, могут содержать коды для кодирования или декодирования звукового сигнала. Реализуемые программные коды 23 могут в некоторых вариантах осуществления изобретения храниться, например, в памяти 22, из которой они при необходимости считываются процессором 21. В памяти 22 также может быть предусмотрен раздел 24 для хранения данных, например данных, закодированных в соответствии с настоящей заявкой.The processor 21 in some embodiments of the invention may be configured to execute various program codes. Implemented software codes in some embodiments of the invention, as described below, may contain codes for encoding or decoding an audio signal. Implemented program codes 23 may in some embodiments be stored in, for example, memory 22 from which they are read by processor 21 as needed. Memory 22 may also include a partition 24 for storing data, such as data encoded in accordance with the present application.

Код кодирования и декодирования в вариантах осуществления настоящего изобретения может быть реализован, по меньшей мере частично, аппаратным и/или микропрограммным способом.The encoding and decoding code in embodiments of the present invention may be implemented at least in part in hardware and/or firmware.

Пользовательский интерфейс (UI) 15 позволяет пользователю вводить команды в электронный прибор 10, например, с помощью клавиатуры, и/или получать информацию от электронного прибора 10, например, на дисплее. В некоторых вариантах осуществления функции ввода и вывода пользовательского интерфейса может выполнять сенсорный экран. Устройство 10 в некоторых вариантах осуществления содержит приемопередатчик (RX/TX) 13, позволяющий осуществлять связь с другим устройством, например, через сеть беспроводной связи.The user interface (UI) 15 allows the user to enter commands into the electronic device 10, for example, using a keyboard, and/or receive information from the electronic device 10, for example, on a display. In some embodiments, the input and output functions of the user interface may be performed by a touch screen. Device 10 in some embodiments includes a transceiver (RX/TX) 13 that allows communication with another device, such as through a wireless communication network.

Приемопередатчик 13 может осуществлять связь с другими устройствами с использованием любого подходящего известного протокола связи, например, в некоторых вариантах осуществления приемопередатчик 13 или приемопередающее средство может использовать подходящий протокол универсальной системы мобильной связи (UMTS, Universal Mobile Telecommunications System), протокол беспроводной локальной сети (WLAN, Wireless Local Area Network), такой, например, как IEEE 802.X, подходящий протокол радиочастотной связи на короткие расстояния, такой как Bluetooth или тракт связи для передачи данных в инфракрасном диапазоне (IRDA, Infrared Data Communication Pathway).The transceiver 13 may communicate with other devices using any suitable known communication protocol, for example, in some embodiments, the transceiver 13 or transceiver may use a suitable Universal Mobile Telecommunications System (UMTS) protocol, a wireless local area network (WLAN) , Wireless Local Area Network), such as IEEE 802.X, a suitable short distance RF communication protocol such as Bluetooth or Infrared Data Communication Pathway (IRDA).

Следует понимать, что структура устройства 10 может быть дополнена или изменена различными способами.It should be understood that the structure of the device 10 can be added to or changed in various ways.

Пользователь устройства 10, например, может применять микрофон 11 для ввода речевых или других звуковых сигналов, подлежащих передаче в некоторое другое устройство или сохранению в разделе 24 данных памяти 22. В некоторых вариантах осуществления для этого пользователем через пользовательский интерфейс 15 может активизироваться соответствующее приложение. Такое приложение в этих вариантах осуществления может запускаться процессором 21, и запускать выполнение процессором 21 кода, предназначенного для кодирования и хранящегося в памяти 22. Хотя в последующих примерах микрофон 11 сконфигурирован для формирования звуковых сигналов для ввода их в устройство, следует принимать во внимание, что входные звуковые сигналы могут приниматься из любого подходящего входного устройства, такого как память 22, в частности, из раздела 24 данных, хранимых в памяти 22, а в некоторых вариантах осуществления входной звуковой сигнал или по меньшей мере один звуковой сигнал может приниматься через приемопередатчик 13. Например, приемопередатчик 13 может быть сконфигурирован для приема звуковых сигналов, сформированных микрофонами, внешними по отношению к устройству 10, например, из оборудования Bluetooth, соединенного с устройством через приемопередатчик 13.A user of device 10, for example, may use microphone 11 to input speech or other audio signals to be transmitted to some other device or stored in data section 24 of memory 22. In some embodiments, an appropriate application may be activated by the user through user interface 15 to do this. Such an application in these embodiments may be started by the processor 21 and cause the processor 21 to execute the code to be encoded and stored in the memory 22. Although, in the following examples, the microphone 11 is configured to generate audio signals for input to the device, it should be appreciated that input audio signals may be received from any suitable input device such as memory 22, in particular from the data partition 24 stored in memory 22, and in some embodiments, the input audio signal or at least one audio signal may be received via transceiver 13. For example, transceiver 13 may be configured to receive audio signals generated by microphones external to device 10, such as from Bluetooth equipment connected to the device via transceiver 13.

Аналого-цифровой преобразователь 14 в некоторых вариантах осуществления изобретения преобразует входной аналоговый звуковой сигнал в цифровой звуковой сигнал и подает этот сигнал в процессор 21. В некоторых вариантах осуществления изобретения микрофон 11 может содержать интегрированный микрофон и функциональный блок ADC и подавать цифровые звуковые сигналы для обработки непосредственно в процессор.Analog-to-digital converter 14 in some embodiments of the invention converts the input analog audio signal into a digital audio signal and provides this signal to the processor 21. In some embodiments of the invention, the microphone 11 may include an integrated microphone and an ADC functional block and provide digital audio signals for processing directly to the processor.

Процессор 21 в таких вариантах осуществления изобретения затем обрабатывает цифровой звуковой сигнал таким же образом, как описано со ссылкой на систему, показанную на фиг. 2, и в частности, со ссылкой на кодер, показанный на фиг. 3, и на элементы кодера, показанные на фиг. 5.The processor 21 in such embodiments then processes the digital audio signal in the same manner as described with reference to the system shown in FIG. 2, and in particular with reference to the encoder shown in FIG. 3 and the encoder elements shown in FIG. 5.

Результирующий битовый поток может в некоторых вариантах осуществления изобретения подаваться на приемопередатчик 13 для передачи в другое устройство. В альтернативном варианте закодированные данные звукового сигнала в некоторых вариантах осуществления изобретения могут сохраняться в разделе 24 данных памяти 22, например, для последующей передачи или последующего представления тем же устройством 10.The resulting bit stream may, in some embodiments, be provided to transceiver 13 for transmission to another device. Alternatively, the encoded audio signal data in some embodiments of the invention may be stored in the data section 24 of the memory 22, for example, for later transmission or subsequent presentation by the same device 10.

Устройство 10 в некоторых вариантах осуществления изобретения также может через приемопередатчик 13 принимать из другого устройства битовый поток, содержащий соответствующим образом закодированные данные. В этом примере процессор 21 может выполнять программный код для декодирования, хранимый в памяти 22. Процессор 21 в таких вариантах осуществления изобретения декодирует принятые данные и подает декодированные данные в цифро-аналоговый преобразователь 32. Цифро-аналоговый преобразователь 32 преобразует цифровые декодированные данные в аналоговый звуковой сигнал и в некоторых вариантах осуществления изобретения может выводить аналоговый звуковой сигнал через громкоговорители 33. В некоторых вариантах осуществления изобретения выполнение программного кода декодирования также может активизироваться приложением, вызываемым пользователем через пользовательский интерфейс 15.The device 10 in some embodiments of the invention can also through the transceiver 13 receive from another device a bit stream containing appropriately encoded data. In this example, processor 21 may execute decoding software code stored in memory 22. Processor 21, in such embodiments, decodes received data and provides the decoded data to digital-to-analog converter 32. D/A converter 32 converts the decoded digital data into analog audio. signal and in some embodiments of the invention may output an analog audio signal through the speakers 33. In some embodiments of the invention, the execution of the decoding software code may also be activated by an application called by the user through the user interface 15.

Кроме того, принятые закодированные данные в некоторых вариантах осуществления изобретения могут не сразу выводиться через громкоговорители 33, а сохраняться в разделе 24 данных памяти 22, например, для последующего декодирования и воспроизведения или для декодирования и пересылки в другое устройство.In addition, the received encoded data, in some embodiments, may not be immediately output through the speakers 33, but stored in the data section 24 of the memory 22, for example, for later decoding and playback, or for decoding and forwarding to another device.

Следует принимать во внимание, что схематические структуры, описываемые со ссылкой на фиг. 3 и 5, и шаги способа, описываемые со ссылкой на фиг. 4 и 6, представляют только часть операций, выполняемых кодеком звукового сигнала, а конкретно те структуры и операции, которые соответствуют устройству или способу кодирования звукового сигнала, показанным в качестве примера реализации в устройстве, изображенном на фиг. 1.It will be appreciated that the schematic structures described with reference to FIGS. 3 and 5 and the method steps described with reference to FIG. 4 and 6 represent only a part of the operations performed by the audio codec, and specifically those structures and operations that correspond to the audio coding device or method shown as an exemplary implementation in the device shown in FIG. one.

Основные операции, выполняемые кодеками звуковых сигналов и реализуемые согласно вариантам осуществления настоящего изобретения, показаны на фиг. 2. Основные системы кодирования/декодирования звукового сигнала содержат как кодер, так и декодер, как схематично показано на фиг. 2. Однако следует принимать во внимание, что согласно некоторым вариантам осуществления изобретения в системе может быть реализован либо только кодер, либо только декодер, либо как кодер, так и декодер. Показанная на фиг. 2 система 102 содержит кодер 104, запоминающее устройство или мультимедийный канал 106 и декодер 108. Следует принимать во внимание, что, как было описано выше, в некоторых вариантах осуществления изобретения система может содержать или в ней может быть реализован один кодер 104, или как кодер 104, так и декодер 108.The main operations performed by audio codecs and implemented according to embodiments of the present invention are shown in FIG. 2. Basic audio encoding/decoding systems comprise both an encoder and a decoder, as shown schematically in FIG. 2. However, it should be appreciated that, according to some embodiments of the invention, either only the encoder, or only the decoder, or both the encoder and the decoder may be implemented in the system. Shown in FIG. 2, system 102 includes an encoder 104, a storage or media channel 106, and a decoder 108. It should be appreciated that, as described above, in some embodiments of the invention, the system may include or be implemented with a single encoder 104, or as an encoder 104 and decoder 108.

Кодер 104 сжимает входной звуковой сигнал 110 и формирует битовый поток 112, который в некоторых вариантах осуществления может сохраняться или передаваться через мультимедийный канал 106. Кодер 104 в некоторых вариантах осуществления изобретения может содержать многоканальный кодер, который кодирует два или более звуковых сигналов.Encoder 104 compresses input audio signal 110 and generates bitstream 112, which in some embodiments may be stored or transmitted over media channel 106. Encoder 104 in some embodiments may comprise a multi-channel encoder that encodes two or more audio signals.

Битовый поток 112 может приниматься в декодере 108. Декодер 108 распаковывает битовый поток 112 и формирует выходной звуковой сигнал 114. Декодер 108 может содержать преобразующий декодер, выполняющий часть всех операций декодирования. Декодер 108 также может содержать многоканальный декодер, который декодирует два или более звуковых сигналов. Скорость передачи битового потока 112 и качество выходного звукового сигнала 114 относительно входного сигнала 110 являются основными характеристиками, которые определяют производительность системы 102 кодирования.Bitstream 112 may be received at decoder 108. Decoder 108 decompresses bitstream 112 and generates audio output 114. Decoder 108 may include a transform decoder that performs a portion of all decoding operations. The decoder 108 may also include a multi-channel decoder that decodes two or more audio signals. The bit rate 112 and the quality of the output audio signal 114 relative to the input signal 110 are the main characteristics that determine the performance of the encoding system 102.

На фиг. 3 схематично показан кодер 104 в соответствии с некоторыми вариантами осуществления настоящего изобретения.In FIG. 3 schematically shows an encoder 104 in accordance with some embodiments of the present invention.

На фиг. 4 показан алгоритм работы кодера 104 в соответствии с некоторыми вариантами осуществления настоящего изобретения.In FIG. 4 shows the operation of an encoder 104 in accordance with some embodiments of the present invention.

Описываемая концепция вариантов осуществления настоящего изобретения заключается в определении кодирования и применении его к звуковым сигналам для реализации эффективного высококачественного кодирования с низкой битовой скоростью в реальном времени. В этом отношении на фиг. 3 показан пример кодера 104 в соответствии с некоторыми вариантами осуществления настоящего изобретения. Кроме того, со ссылкой на фиг. 4 более подробно описывается функционирование кодера 104. В последующих примерах, кодер сконфигурирован для формирования параметров частотной области, представляющих звуковой сигнал, и кодирования сформированных параметров частотной области с использованием подходящего способа решетчатого квантования вектора, однако следует понимать, что в некоторых вариантах осуществления описываемые параметры, используемые при решетчатом квантовании, могут представлять собой любые подходящие параметры, определяющие или представляющие звуковые сигналы или сигналы других типов (например, изображение или видеосигнал).The described concept of the embodiments of the present invention is to define coding and apply it to audio signals to realize efficient, high quality, low bit rate coding in real time. In this regard, in FIG. 3 shows an example of an encoder 104 in accordance with some embodiments of the present invention. In addition, with reference to FIG. 4 describes the operation of the encoder 104 in more detail. In the following examples, the encoder is configured to generate frequency domain parameters representing an audio signal and encode the generated frequency domain parameters using a suitable vector trellis quantization method, however, it should be understood that in some embodiments, the described parameters, used in trellis quantization may be any suitable parameters defining or representing audio or other types of signals (eg, image or video).

Кодер 104 в некоторых вариантах осуществления содержит блок 201 разделения на кадры или подходящее средство для разделения звукового сигнала. Блок 201 разделения на кадры сконфигурирован для приема звуковых сигналов (например, монофонического сигнала, стереофонического сигнала левого и правого каналов или любого представления многоканального звукового сигнала), для ввода звукового сигнала и для разделения или сегментирования данных звукового сигнала на секции или кадры, подходящие для преобразования частотной или другой области. Блок 201 разделения на кадры в некоторых вариантах осуществления изобретения также может быть сконфигурирован для оконной обработки этих кадров или секций данных звукового сигнала в соответствии с любой оконной функцией. Например, блок 201 разделения на кадры в некоторых вариантах осуществления может конфигурироваться для формирования кадров длительностью 20 мс, которые на 10 мс перекрывают каждый предшествующий и последующий кадр.The encoder 104 in some embodiments comprises a framing unit 201 or a suitable means for separating the audio signal. The framing unit 201 is configured to receive audio signals (for example, a mono signal, a stereo signal of the left and right channels, or any representation of a multi-channel audio signal), to input an audio signal, and to divide or segment the audio signal data into sections or frames suitable for conversion. frequency or other domain. Framing unit 201 in some embodiments of the invention may also be configured to window these frames or sections of audio signal data in accordance with any windowing function. For example, the framing unit 201 may in some embodiments be configured to generate 20 ms frames that overlap each preceding and following frame by 10 ms.

Операция формирования кадров звукового сигнала выполняется на шаге 501, изображенном на фиг. 4.The audio framing operation is performed in step 501 shown in FIG. 4.

В некоторых вариантах осуществления кадры звукового сигнала могут передаваться в определитель 203 параметров.In some embodiments, audio frames may be passed to parameter determiner 203 .

В некоторых вариантах осуществления кодер содержит определитель 203 параметров, включающий подходящее средство для определения по меньшей мере одного параметра, представляющего входной звуковой сигнал(ы) или кадры входного звукового сигнала. В последующих примерах параметр представляет собой параметр частоты дискретного спектра (LSF, Line Spectral Frequency), однако следует принимать во внимание, что в некоторых вариантах осуществления изобретения может определяться любой подходящий параметр.In some embodiments, the encoder comprises a parameter determiner 203 including suitable means for determining at least one parameter representing the input audio signal(s) or frames of the input audio signal. In the following examples, the parameter is a Line Spectral Frequency (LSF) parameter, however, it should be appreciated that in some embodiments of the invention, any suitable parameter may be determined.

Например, в некоторых вариантах осуществления изобретения определитель параметров содержит преобразователь 203 или подходящее средство для преобразования. Преобразователь 203 в некоторых вариантах осуществления изобретения сконфигурирован для формирования представлений параметров частотной области (или другой подходящей области) этих звуковых сигналов. Эти представления параметров частотной области в некоторых вариантах осуществления изобретения могут передаваться в кодер 205 параметров.For example, in some embodiments of the invention, the parameter determiner comprises a transform 203 or a suitable transform means. Converter 203, in some embodiments, is configured to generate representations of the frequency domain (or other suitable domain) parameters of these audio signals. These frequency domain parameter representations may, in some embodiments, be passed to the parameter encoder 205 .

В некоторых вариантах осуществления изобретения преобразователь 203 может быть сконфигурирован для выполнения с данными звукового сигнала любого подходящего преобразования из временной области в частотную. Например, преобразование из временной области в частотную может представлять собой дискретное преобразование Фурье (DFT, Discrete Fourier Transform), быстрое преобразование Фурье (FFT, Fast Fourier Transform), модифицированное дискретное косинусное преобразование (MDCT, Modified Discrete Cosine Transform). В последующих примерах используется быстрое преобразование Фурье (FFT).In some embodiments of the invention, the converter 203 may be configured to perform any suitable time-to-frequency transformation on the audio signal data. For example, the transformation from the time domain to the frequency domain can be a Discrete Fourier Transform (DFT, Discrete Fourier Transform), Fast Fourier Transform (FFT, Fast Fourier Transform), Modified Discrete Cosine Transform (MDCT, Modified Discrete Cosine Transform). The following examples use the Fast Fourier Transform (FFT).

Кроме того, преобразователь также может быть сконфигурирован для формирования отдельных представлений параметров области диапазона частот (представлений параметров поддиапазона) данных звукового сигнала каждого входного канала. Эти диапазоны могут размещаться любым удобным способом. Например, эти диапазоны могут располагаться линейно или распределяться в соответствии с восприятием или психоакустикой. Сформированные параметры могут представлять собой любые подходящие параметры.Furthermore, the transducer may also be configured to generate separate bandwidth domain parameter representations (subband parameter representations) of the audio signal data of each input channel. These ranges can be placed in any convenient way. For example, these ranges can be arranged linearly or distributed according to perception or psychoacoustics. The generated parameters may be any suitable parameters.

Операция определения или формирования представлений параметров выполняется на шаге 503, изображенном на фиг. 4.The operation of determining or generating parameter representations is performed at step 503 shown in FIG. 4.

В некоторых вариантах осуществления представления, например параметры LSF, передаются в кодер 205 параметров.In some embodiments, representations, such as LSF parameters, are passed to parameter encoder 205 .

В некоторых вариантах осуществления изобретения кодер 104 может содержать кодер 205 параметров. Кодер 205 параметров может быть сконфигурирован для приема представлений параметров входного звукового сигнала, например определенных параметров LSF. Кодер 205 в некоторых вариантах осуществления изобретения также может конфигурироваться для использования каждого из значений параметров LSF в качестве подвектора и комбинирования каждого подвектора для создания вектора для ввода в квантователь вектора. Другими словами, устройство может содержать формирователь вектора, сконфигурированный для формирования первого вектора параметров (или кортежей первого вектора, представляющего параметры), определяющих по меньшей мере один звуковой сигнал.In some embodiments, the encoder 104 may include a parameter encoder 205 . Parameter encoder 205 may be configured to receive parameter representations of the input audio signal, such as certain LSF parameters. Encoder 205 in some embodiments of the invention can also be configured to use each of the LSF parameter values as a subvector and combine each subvector to create a vector for input to the vector quantizer. In other words, the device may comprise a vector generator configured to generate a first vector of parameters (or tuples of a first vector representing parameters) defining at least one audio signal.

Выход квантователя вектора в некоторых вариантах осуществления изобретения представляет собой кодер, и, таким образом, выходные сигналы квантователя вектора являются «кодированными» или закодированными представлениями параметров звукового сигнала.The output of the vector quantizer in some embodiments of the invention is an encoder, and thus the outputs of the vector quantizer are "encoded" or encoded representations of audio signal parameters.

Операция кодирования или векторного квантования параметров выполняется на шаге 505, изображенном на фиг. 4.The parameter encoding or vector quantization operation is performed in step 505 shown in FIG. 4.

В некоторых вариантах осуществления кодер 205 параметров содержит формирователь 451 вектора. Формирователь 451 вектора сконфигурирован для приема параметров LSF и для формирования из этих значений N-мерного вектора.In some embodiments, the parameter encoder 205 includes a vector generator 451 . The vector generator 451 is configured to receive the LSF parameters and to generate an N-dimensional vector from these values.

Операция формирования векторов из входных параметров выполняется на дополнительном шаге 551, изображенном на фиг. 4.The operation of generating vectors from the input parameters is performed in an additional step 551 shown in FIG. 4.

Сформированные векторы могут в некоторых вариантах осуществления передаваться в решетчатый векторный квантователь 453.The generated vectors may, in some embodiments, be passed to the trellis vector quantizer 453.

В некоторых вариантах осуществления кодер 205 параметров содержит решетчатый векторный квантователь 453. Решетчатый векторный квантователь 453 принимает входной вектор, сформированный на основе параметров LSF, и формирует ближайший смежный или NN-выход (nearest neighbour), который появляется в пределах определенной решетки и, таким образом, может быть декодирован с использованием аналогичной решетки в декодере.In some embodiments, the parameter encoder 205 includes a trellis vector quantizer 453. The trellis vector quantizer 453 takes an input vector generated from the LSF parameters and generates a nearest adjacent or NN output (nearest neighbor) that appears within a certain lattice and thus , can be decoded using a similar trellis in the decoder.

Операция решетчатого квантования вектора выполняется на дополнительном шаге 553, изображенном на фиг. 4.The vector trellis quantization operation is performed in an additional step 553 shown in FIG. 4.

Закодированный сигнал может представлять собой выходной сигнал.The encoded signal may be an output signal.

Операция вывода закодированного сигнала выполняется на шаге 507, изображенном на фиг. 4. Это, например, может быть операция вывода вектора, полученного на основе решетчатого квантования, выполняемая на дополнительном шаге 557, изображенном на фиг. 4.The operation of outputting the encoded signal is performed in step 507 shown in FIG. 4. This could be, for example, the trellis-based vector derivation operation performed in additional step 557 shown in FIG. 4.

На фиг. 5 показан пример решетчатого векторного квантователя 453 в соответствии с некоторыми вариантами осуществления настоящего изобретения. Решетчатый векторный квантователь 453в некоторых вариантах осуществления может определяться соответствующим программным кодом 23 компьютерной программы, которая хранится в памяти 22 носителя данных.In FIG. 5 shows an example of a trellis vector quantizer 453 in accordance with some embodiments of the present invention. The trellis vector quantizer 453 may in some embodiments be defined by the corresponding computer program code 23 that is stored in the memory 22 of the storage medium.

Перед ознакомлением с концепциями и вариантами осуществления настоящего изобретения вначале следует обсудить стандартное решетчатое квантование вектора. В некоторых решетчатых квантователях выполняется начальное формирование или определение набора потенциальных базисных кодовых векторов, при этом каждый определенный базисный кодовый вектор в этом наборе потенциальных базисных кодовых векторов связан с потенциальным базисным кодовым вектором другого набора потенциальных базисных кодовых векторов.Before introducing the concepts and embodiments of the present invention, the standard vector trellis quantization should first be discussed. In some trellis quantizers, an initial generation or determination of a set of candidate basis codevectors is performed, with each determined basis codevector in that set of candidate basis codevectors being associated with a candidate basis codevector of another set of candidate basis codevectors.

Каждый набор потенциальных базисных кодовых векторов содержит по меньшей мере один базисный кодовый вектор. Поскольку каждый набор базисных кодовых векторов связан по меньшей мере с одним представителем масштабного коэффициента из множества представителей масштабных коэффициентов, кодовый вектор может определяться на основе базисного кодового вектора из набора потенциальных базисных кодовых векторов и представителя масштабного коэффициента из по меньшей мере одного представителя масштабных коэффициентов, связанных с набором потенциальных базисных кодовых векторов. Другими словами, кодовый вектор может быть представлен на основе базисного кодового вектора, масштабированного с использованием соответствующего представителя масштабного коэффициента. Например, представитель масштабного коэффициента может представлять собой значение масштабного коэффициента, при этом кодовый вектор может определяться путем перемножения базисного кодового вектора и соответствующего значения масштабного коэффициента. Кроме того, в некоторых вариантах осуществления изобретения кодовый словарь формируется путем применения перестановки (со знаком) базисного вектора.Each set of candidate basis code vectors contains at least one basis code vector. Since each basis codevector set is associated with at least one scale factor representative of the plurality of scale factor representatives, a code vector may be determined based on a basis code vector of the set of candidate basis code vectors and a scale factor representative of at least one scale factor representative associated with a set of potential basis code vectors. In other words, a code vector may be represented based on a basis code vector scaled using an appropriate scale factor representative. For example, a scale factor representative may be a scale factor value, wherein the code vector may be determined by multiplying the basis code vector and the corresponding scale factor value. In addition, in some embodiments of the invention, the codebook is generated by applying a (signed) permutation of the basis vector.

Например, по меньшей мере один набор базисных кодовых векторов связан по меньшей мере с двумя представителями масштабных коэффициентов.For example, at least one set of basis code vectors is associated with at least two scale factor representatives.

Соответственно, в качестве примера кодовый словарь может содержать набор кодовых векторов, содержащий кодовые векторы, основанные на множестве наборов базисных кодовых векторов и на соответствующем по меньшей мере одном значении масштабного коэффициента, связанного с соответствующим набором базисных кодовых векторов из множества базисных кодовых векторов. Этот набор кодовых векторов для каждого базисного кодового вектора каждого набора базисных кодовых векторов и каждого по меньшей мере одного представителя масштабного коэффициента, связанного с соответствующим набором базисных кодовых векторов, может содержать кодовый вектор, основанный на соответствующем базисном кодовом векторе, масштабированном посредством соответствующего представителя масштабного коэффициента.Accordingly, by way of example, the codebook may comprise a codevector set containing codevectors based on a plurality of basis codevector sets and a corresponding at least one scaling factor value associated with a corresponding basis codevector set of the plurality of basis codevectors. This codevector set for each basis codevector of each basis codevector set and each at least one scale factor representative associated with the corresponding basis code vector set may comprise a code vector based on the corresponding basis code vector scaled by the corresponding scale factor representative .

Например, указанные наборы базисных кодовых векторов могут представлять собой ведущие классы, каждый из которых содержит различный ведущий вектор и перестановки указанного ведущего вектора. Таким образом, указанный ведущий вектор и перестановки указанного ведущего вектора могут представлять базисные кодовые векторы соответствующего набора базисных кодовых векторов.For example, said sets of basis code vectors may be lead classes, each containing a different lead vector and permutations of said lead vector. Thus, said lead vector and permutations of said lead vector may represent the basis code vectors of the corresponding set of basis code vectors.

Множество наборов базисных кодовых векторов могут представлять подмножество второго множества наборов базисных кодовых векторов. Например, в предположении, что каждый набор базисных кодовых векторов представляет ведущий класс, множество ведущих классов может представлять подмножество второго множества ведущих классов. Таким образом, множество ведущих классов может рассматриваться как усеченное множество ведущих классов по отношению ко второму множеству ведущих классов.The set of basis code vector sets may represent a subset of the second set of basis code vector sets. For example, assuming that each set of basis code vectors represents a leading class, the set of leading classes may represent a subset of the second set of leading classes. Thus, the set of leading classes can be considered as a truncated set of leading classes with respect to the second set of leading classes.

Например, соответствующий потенциальный базисный кодовый вектор может определяться путем определения базисного кодового вектора по меньшей мере на основе одного базисного кодового вектора из соответствующего набора базисных кодовых векторов, ближайшего к входному вектору, подлежащему кодированию. Для нахождения базисного кодового вектора ближайшего по отношению к входному вектору, подлежащему кодированию, может использоваться подходящий критерий любого вида.For example, a corresponding candidate basis code vector may be determined by determining a basis code vector based on at least one basis code vector from the corresponding set of basis code vectors closest to the input vector to be encoded. Any kind of suitable criterion may be used to find the closest basis code vector to the input vector to be encoded.

Например, потенциальный базисный кодовый вектор может определяться на основе ближайшего базисного кодового вектора по отношению к вычисленному по абсолютной величине входному вектору и на основе информации о знаках значений входного вектора, при этом данная информация может включать знак соответствующей позиции соответствующих значений во входном векторе и использоваться для назначения знаков значениям определенного потенциального базисного кодового вектора. Кроме того, в качестве примера может быть определен базисный кодовый вектор, ближайший к вычисленному по абсолютному значению входному вектору, содержащему абсолютные значения, соответствующие значениям входного вектора, при этом потенциальный базисный кодовый вектор представляет определенный ближайший базисный кодовый вектор, и знаки значений потенциального базисного кодового вектора соответствуют знакам значений входного вектора в той же позиции в векторе, при этом такое соотношение может выполняться, если паритет базисных кодовых векторов набора базисных кодовых векторов равен 0. В соответствии с другим примером, если паритет базисных кодовых векторов набора базисных кодовых векторов равен -1, знаки значений потенциального базисного кодового вектора могут назначаться в соответствии со знаками значений входного вектора, соответственно, в той же позиции вектора, и если существует четное количество отрицательных компонентов, наименьшее ненулевое абсолютное значение в потенциальном базисном кодовом векторе может изменять свой знак. В качестве другого примера, если паритет базисных кодовых векторов набора базисных кодовых векторов равен +1, знаки значений потенциального базисного кодового вектора могут назначаться в соответствии со знаками значений входного вектора, соответственно, в той же позиции вектора, и если существует нечетное количество отрицательных компонентов, наименьшее ненулевое абсолютное значение в потенциальном базисном кодовом векторе может изменять свой знак.For example, a potential basis code vector may be determined based on the closest basis code vector to an absolute value-calculated input vector and based on sign information of the input vector values, which information may include the sign of the corresponding position of the corresponding values in the input vector and be used to assigning signs to the values of a certain potential basis code vector. In addition, as an example, the basis code vector closest to the absolute value-calculated input vector containing the absolute values corresponding to the values of the input vector can be determined, with the potential basis code vector representing the determined closest basis code vector, and the signs of the values of the potential basis code vector vectors correspond to the signs of the values of the input vector at the same position in the vector, such a relationship can hold if the basis codevector parity of the basis codevector set is 0. According to another example, if the basis codevector parity of the basis codevector set is -1 , the signs of the values of the potential basis code vector can be assigned according to the signs of the values of the input vector, respectively, at the same position of the vector, and if there is an even number of negative components, the smallest non-zero absolute value in the potential basis sleeping code vector can change its sign. As another example, if the basis codevector parity of the basis codevector set is +1, the signs of the values of the potential basis codevector may be assigned according to the signs of the values of the input vector, respectively, at the same position of the vector, and if there is an odd number of negative components, the smallest non-zero absolute value in the potential basis code vector may change its sign.

Кодовый вектор для кодирования входного вектора затем стандартным образом задается на основе набора определенных потенциальных кодовых векторов, при этом указанный набор определенных потенциальных кодовых векторов задает подмножество кодовых векторов, содержащее для каждого определенного потенциального базисного кодового вектора и каждого представителя масштабного коэффициента, связанного с набором базисных кодовых векторов соответствующего базисного кодового вектора, кодовый вектор, основанный на соответствующем потенциальном базисном кодовом векторе, масштабированном посредством соответствующего представителя масштабного коэффициента.The codevector for encoding the input vector is then standardly defined based on a set of defined candidate codevectors, where said set of defined candidate codevectors defines a codevector subset containing, for each defined candidate basis codevector and each scale factor representative associated with the basis code set vectors of the corresponding basis code vector, a code vector based on the corresponding candidate basis code vector, scaled by the corresponding scale factor representative.

Соответственно, поиск кодового вектора для кодирования входного вектора выполнен в подмножестве кодовых векторов, заданных определенными потенциальными кодовыми векторами и соответствующим по меньшей мере одним представителем масштабного коэффициента, связанным с набором базисных кодовых векторов соответствующего определенного потенциального кодового вектора. Поскольку это подмножество кодовых векторов может представлять подмножество кодовых векторов, связанных с кодовым словарем, количество кодовых векторов в этом подмножестве кодовых векторов может быть меньше количества кодовых векторов в наборе кодовых векторов.Accordingly, a search for a code vector to encode an input vector is performed on a subset of code vectors given by the determined candidate code vectors and the corresponding at least one scale factor representative associated with the set of basis code vectors of the corresponding determined candidate code vector. Since this codevector subset may represent a subset of codevectors associated with a codebook, the number of codevectors in this codevector subset may be less than the number of codevectors in the codevector set.

Например, каждый представитель масштабного коэффициента из множества представителей масштабных коэффициентов может быть связан по меньшей мере с одним набором кодовых векторов, при этом каждый набор кодовых векторов указанного по меньшей мере одного набора кодовых векторов, связанного с соответствующим представителем масштабного коэффициента, связан с набором базисных кодовых векторов из множества наборов базисных кодовых векторов, так что каждый набор кодовых векторов указанного по меньшей мере одного набора кодовых векторов, связанного с соответствующим представителем масштабного коэффициента, содержит кодовые векторы, получаемые путем масштабирования базисных векторов соответствующего ассоциированного набора базисных векторов с использованием соответствующего представителя масштабного коэффициента.For example, each scalefactor representative of the plurality of scalefactor representatives may be associated with at least one codevector set, wherein each codevector set of the at least one codevector set associated with the corresponding scalefactor representative is associated with a basis codevector set. vectors from a plurality of basis code vector sets such that each code vector set of said at least one code vector set associated with a respective scale factor representative contains code vectors obtained by scaling the basis vectors of the corresponding associated basis vector set using the respective scale factor representative .

Соответственно, кодовые векторы по меньшей мере одного набора базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента из множества представителей масштабных коэффициентов, могут определяться на основе масштабирования базисных кодовых векторов каждого набора базисных кодовых векторов, связанных с представителем масштабного коэффициента, с использованием этого представителя масштабного коэффициента.Accordingly, the codevectors of at least one set of basis codevectors associated with a corresponding scale factor representative of the plurality of scale factor representatives may be determined based on the scaling of the basis code vectors of each set of basis code vectors associated with the scale factor representative using that scale factor representative. coefficient.

Например, в том случае, если указанные наборы базисных кодовых векторов представляют ведущие классы, по меньшей мере один набор базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента, может рассматриваться как объединение ведущих классов. Следует принимать во внимание, что обычно объединение ведущих классов не зависит от масштабного коэффициента. Таким образом, кодовый словарь может содержать по меньшей мере одно объединение ведущих классов, при этом каждое объединение ведущего класса связано по меньшей мере с одним представителем масштабного коэффициента и по меньшей мере с одним набором базисных кодовых векторов из множества базисных кодовых векторов. Например, по меньшей мере один представитель масштабного коэффициента может представлять множество представителей масштабных коэффициентов, которые могут включать по меньшей мере два представителя масштабных коэффициентов.For example, if said basis codevector sets represent the leading classes, at least one basis codevector set associated with the corresponding scale factor representative can be considered as a union of the leading classes. It should be taken into account that typically the union of the leading classes does not depend on the scale factor. Thus, a codebook may comprise at least one leading class union, with each leading class union associated with at least one scale factor representative and at least one basis codevector set of the set of basis codevectors. For example, at least one scale factor representative may represent a plurality of scale factor representatives, which may include at least two scale factor representatives.

Так, например, bx, при x

Figure 00000001
{0, 1, …, X-1} представляет набор базисных кодовых векторов из множества наборов базисных кодовых векторов, при этом X представляет количество наборов в множестве наборов базисных кодовых векторов. Каждый набор базисных кодовых векторов связан по меньшей мере с одним базисным кодовым вектором bx,y или содержит этот вектор, где Bx представляет количество базисных кодовых векторов соответствующего набора базисных кодовых векторов bx, то есть выполняется соотношение y
Figure 00000001
{0, 1, …, Bx - 1}. Например, количество Bx базисных кодовых векторов в наборе базисных кодовых векторов может различаться для различных наборов базисных кодовых векторов, и/или оно может быть одинаковым по меньшей мере для двух наборов базисных кодовых векторов.So, for example, b x , for x
Figure 00000001
{0, 1, ..., X-1} represents a set of basis code vectors from the set of basis code vector sets, where X represents the number of sets in the set of basis code vector sets. Each set of basis code vectors is associated with or contains at least one basis code vector b x,y , where B x represents the number of basis code vectors of the corresponding set of basis code vectors b x , i.e. y
Figure 00000001
{0, 1, …, B x - 1}. For example, the number B x of basis codevectors in a basis codevector set may be different for different basis codevector sets and/or it may be the same for at least two basis codevector sets.

Другими словами, ведущим вектором является только один вектор. Совместно со всеми знаковыми перестановками ведущего вектора этот набор формирует ведущий класс ведущего вектора (или, как отмечалось в этом описании, базисные кодовые векторы). Если соединить несколько ведущих классов, формируется объединение ведущих классов. Затем к этому объединению/объединениям могут присоединяться один или более масштабных коэффициентов.In other words, there is only one leading vector. Together with all signed permutations of the leading vector, this set forms the leading class of the leading vector (or, as noted in this description, basis code vectors). If you connect several leading classes, a union of leading classes is formed. One or more scale factors can then be attached to this pool(s).

Таким образом, например, возможно определить кодовый вектор cx,z,y на основе базисного кодового вектора bx,y и представителя sz масштабного коэффициента, где индекс z представляет индекс соответствующего представителя масштабного коэффициента в множестве представителей масштабных коэффициентов so … sS-1, то есть выполняется соотношение z

Figure 00000001
{0, 1, …, S - 1}.Thus, for example, it is possible to determine a code vector c x , z , y based on a basis code vector b x,y and a scale factor representative s z , where the index z represents the index of the corresponding scale factor representative in the set of scale factor representatives s o … s S -1 , that is, the relation z
Figure 00000001
{0, 1, ..., S - 1}.

Например, в том случае, если значения bx,y,t базисных кодовых векторов bx,y = [bx,y.0, bx,y,1, … bx,y,n-1] представляют абсолютные значения, где t

Figure 00000001
{0, 1, … n-1}, и n представляет длину соответствующего базисного кодового вектора bx,y, и если вычисленный по абсолютному значению входной вектор используется для определения потенциального кодового вектора соответствующего набора базисных кодовых векторов, знак каждого значения bx,y,t в (t+1)-ой позиции определенного ближайшего базисного кодового вектора bx,y может назначаться на основе знака соответствующего значения it в (t+1)-ой позиции входного вектора i перед определением кодового вектора cx,z,y на основе базисного кодового вектора bx,y и представителя масштабного коэффициента sz.For example, if the values b x,y,t of the basis code vectors b x,y = [b x,y.0 , b x,y,1 , … b x,y,n-1 ] represent absolute values , where t
Figure 00000001
{0, 1, ... n-1}, and n represents the length of the corresponding basis code vector b x,y , and if the absolute-valued input vector is used to determine the potential code vector of the corresponding set of basis code vectors, the sign of each value of b x , y , t at the (t+1)th position of the determined closest basis code vector b x , y may be assigned based on the sign of the corresponding value i t at the (t+1)th position of the input vector i before determining the codevector c x , z , y based on the basis code vector b x , y and scale factor representative s z .

Например, если i = [i0, i1, …, in-1] представляет входной вектор, то вычисленный по абсолютной величине входной вектор может быть представлен следующим образом: [|i0|, |i1|, …, |in-1|]. Например, знак каждого значения bx,y,t в (t+1)-ой позиции определенного ближайшего базисного кодового вектора bx,y может совпадать со знаком соответствующего значения it в (t+1)-ой позиции входного вектора, соответственно, при этом данное условие может выполняться, если паритет базисных кодовых векторов bx,y набора базисных кодовых векторов bx равен 0. В другом примере, если паритет базисных кодовых векторов bx,y набора базисных кодовых векторов bx равен -1, то знаки значений bx,y,t потенциальных базисных кодовых векторов могут назначаться в соответствии со знаками значений входного вектора в той же позиции в векторе, соответственно, и если существует не нечетное количество отрицательных компонентов, значение bx,y,t в потенциальном базисном кодовом векторе с наименьшим ненулевым абсолютным значением может изменять свой знак. В другом примере, если паритет базисных кодовых векторов bx,y набора базисных кодовых векторов bx равен +1, знаки значений потенциального базисного кодового вектора bx,y,t могут назначаться в соответствии со знаками значений входного вектора соответственно в той же позиции вектора, и если существует нечетное количество отрицательных компонентов, значение bx,y,t в потенциальном базисном кодовом векторе с наименьшим ненулевым абсолютным значением может изменять свой знак.For example, if i = [i 0 , i 1 , …, i n-1 ] represents an input vector, then the absolute value of the input vector can be represented as follows: [|i 0 |, |i 1 |, …, | i n-1 |]. For example, the sign of each b x,y,t value at the (t+1)th position of the specified nearest basis b x,y code vector can be the same as the sign of the corresponding i t value at the (t+1)th position of the input vector, respectively , and this condition can be met if the parity of basis code vectors b x,y of the set of basis code vectors b x is equal to 0. In another example, if the parity of basis code vectors b x , y of the set of basis code vectors b x is equal to -1, then the signs of the values b x,y,t of the candidate basis code vectors may be assigned according to the signs of the values of the input vector at the same position in the vector, respectively, and if there is a non-odd number of negative components, the value of b x , y , t in the potential basis code the vector with the smallest non-zero absolute value can change its sign. In another example, if the parity of the basis code vectors b x , y of the set of basis code vectors b x is +1, the signs of the values of the potential basis code vector b x,y,t can be assigned according to the signs of the values of the input vector respectively at the same position of the vector , and if there is an odd number of negative components, the value b x,y,t in the potential basis codevector with the smallest non-zero absolute value may change sign.

В одном из примеров кодовый вектор cx,z,y может определяться следующим образом: cx,z,y = [bx,y,0 ⋅ sz, bx,y,1 ⋅ sz, …, bx,y,n-1 ⋅ sz].In one example, the code vector c x,z , y can be defined as follows: c x , z , y = [b x,y,0 ⋅ s z , b x,y,1 ⋅ s z , …, b x, y,n-1 s z ].

Каждый представитель масштабного коэффициента sz, где z

Figure 00000001
{0, 1, …, S-1}, связан по меньшей мере с одним набором базисных кодовых векторов. Например, согласно одному из примеров этот соответствующий по меньшей мере один набор базисных кодовых векторов может быть представлен набором базисных кодовых векторов bx при x
Figure 00000001
{0, 1, … nz - 1}, при этом nz может представлять количество наборов базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента sz, где 0 < nz < X. На основе этой связи между соответствующим представителем масштабного коэффициента sz и по меньшей мере одним ассоциированным набором базисных кодовых векторов bx при x
Figure 00000001
{0, 1, … nz - 1} может быть определен по меньшей мере один ассоциированный набор базисных кодовых векторов cx,z,y, где x
Figure 00000001
{0, 1, …, nz - 1}, y
Figure 00000001
{0, 1, …, Bx - 1} и z
Figure 00000001
{0, 1, …, S - 1}.Each representative of the scale factor sz, where z
Figure 00000001
{0, 1, ..., S-1} is associated with at least one set of basis code vectors. For example, in one example, this corresponding at least one basis code vector set may be represented by the basis code vector set bx at x
Figure 00000001
{0, 1, … nz - 1}, while nz may represent the number of basis codevector sets associated with the corresponding scale factor representative sz, where 0 < nz < X. Based on this relationship between the respective scale factor representative sz and at least one associated set of basis code vectors bx at x
Figure 00000001
{0, 1, … nz - 1} at least one associated set of basis code vectors cx,z,y, where x
Figure 00000001
{0, 1, …, nz - 1}, y
Figure 00000001
{0, 1, …, Bx - 1} and z
Figure 00000001
{0, 1, ..., S - 1}.

Таким образом, например, структура вышеупомянутого кодового словаря может определяться множеством представителей масштабных коэффициентов sz, множеством наборов базисных кодовых векторов bx и связью между каждым представителем масштабного коэффициента с по меньшей мере одним ассоциированным набором базисных кодовых векторов.Thus, for example, the structure of the aforementioned codebook may be defined by a plurality of scale factor representatives s z , a plurality of basis code vector sets b x , and an association between each scale factor representative with at least one associated basis code vector set.

Поскольку по меньшей мере один набор базисных кодовых векторов, например по меньшей мере набор базисных кодовых векторов b0, связан по меньшей мере с двумя представителями масштабных коэффициентов, тот же набор базисных кодовых векторов может использоваться для формирования кодовых векторов по меньшей мере одного набора кодовых векторов, связанных с первым представителем масштабного коэффициента, и для формирования кодовых векторов по меньшей мере одного набора кодовых векторов, связанных по меньшей мере с одним другим представителем масштабного коэффициента.Since at least one basis codevector set, such as at least the b 0 basis codevector set, is associated with at least two scalefactor representatives, the same basis codevector set may be used to generate the codevectors of at least one codevector set associated with the first scale factor representative, and for generating code vectors of at least one set of code vectors associated with at least one other scale factor representative.

Для каждого набора базисных кодовых векторов из множества наборов базисных кодовых векторов возможно другими способами определить потенциальный базисный кодовый вектор для кодирования входного вектора.For each basis code vector set of the plurality of basis code vector sets, it is possible in other ways to determine a potential basis code vector for encoding the input vector.

Например, определение кодового вектора для кодирования входного вектора из подмножества кодовых векторов основывается на определении показателя искажения или расстояния, или значения ошибки.For example, the determination of a codevector to encode an input vector from a subset of codevectors is based on the determination of a distortion metric, or a distance, or an error value.

В таких примерах выбирается представление масштабного коэффициента из множества представлений масштабных коэффициентов.In such examples, a scale factor representation is selected from a plurality of scale factor representations.

Кроме того, выбирается определенный потенциальный базисный кодовый вектор из набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента.In addition, a certain potential basis code vector is selected from the set of basis code vectors associated with the selected scale factor representation.

Затем может быть определен кодовый вектор на основе выбранного потенциального базисного кодового вектора и выбранного представления масштабного коэффициента, при этом такое определение кодового вектора может выполняться согласно представленному в этом описании способу.A codevector may then be determined based on the selected candidate basis codevector and the selected scale factor representation, and such codevector determination may be performed according to the method presented herein.

В некоторых примерах, основанных на определенном кодовом векторе и входном векторе, определяется показатель искажения. Например, указанный показатель искажения может основываться на любом виде подходящего расстояния между определенным кодовым вектором и входным вектором. Например, может использоваться расстояние Хемминга или расстояние Эвклида, или любое другое расстояние. Например, определение кодового вектора может быть опущено, и показатель искажения может рассчитываться путем специфического рассмотрения соответствующего кодового вектора, связанного с выбранным представлением масштабного коэффициента, и набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента.In some examples, based on a certain code vector and input vector, a distortion metric is determined. For example, said distortion metric may be based on any kind of suitable distance between a particular code vector and an input vector. For example, the Hamming distance or the Euclidean distance, or any other distance, may be used. For example, the definition of a code vector may be omitted, and the distortion metric may be calculated by specifically considering the corresponding code vector associated with the selected scalefactor representation and the set of basis codevectors associated with the selected scalefactor representation.

Например, если cx,z,y = [cx,z,y,o, cx,z,1, …, cx,z,n-1] представляет кодовый вектор, определенный на шаге 430, и i = [i0, i1 , …, in-1] представляет входной вектор, расстояние d может вычисляться по следующей формуле:For example, if c x , z , y = [c x , z , y , o , c x , z , 1 , ..., c x , z , n-1 ] represents the code vector determined in step 430 and i = [i 0 , i 1 , …, i n-1 ] represents the input vector, the distance d can be calculated using the following formula:

Figure 00000002
Figure 00000002

Это расстояние d, представленное приведенной выше формулой, может быть заменено на расстояние d', вычисляемое по следующей формуле:This distance d, represented by the above formula, can be replaced by a distance d', calculated according to the following formula:

Figure 00000003
Figure 00000003

В другом примере, если показатель искажения определяется на основе весовой функции, расстояние d, представленное приведенной выше формулой, может быть изменено следующим образом:In another example, if the distortion factor is determined based on a weighting function, the distance d represented by the above formula can be modified as follows:

Figure 00000004
Figure 00000004

где wk представляет весовые коэффициенты весовой функции.where w k represents the weight coefficients of the weight function.

Соответственно, расстояние d', представленное приведенной выше формулой, может быть взвешено посредством весовой функции следующим образом:Accordingly, the distance d' represented by the above formula can be weighted by a weight function as follows:

Figure 00000005
Figure 00000005

Например, показатель искажения d или d', или dw, или dw ' может сохраняться, если он является первым определенным показателем искажения, или он может сравниваться с сохраненным показателем искажения, при этом сохраненный показатель искажения заменяется, если новый определенный показатель искажения лучше сохраненного. Кроме того, может сохраняться кодовый вектор, связанный с сохраненным показателем искажения, или идентификатор этого кодового вектора.For example, the distortion metric d or d' or d w or d w ' may be stored if it is the first determined distortion metric, or it may be compared with the stored distortion metric, with the stored distortion metric replaced if the new determined distortion metric is better. saved. In addition, a code vector associated with the stored distortion metric or an identifier of that code vector may be stored.

Затем, например, может выполняться проверка, имеются ли какие-либо последующие наборы базисных кодовых векторов, связанные с выбранным представлением масштабного коэффициента. Если это так, то выбирается определенный потенциальный базисный кодовый вектор из этого следующего набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента. Если нет, выполняется проверка со следующим представлением масштабного коэффициента из множества представлений масштабных коэффициентов.Then, for example, a check may be performed to see if there are any subsequent sets of basis code vectors associated with the selected scale factor representation. If so, then a certain potential basis codevector is selected from this next set of basis codevectors associated with the selected scalefactor representation. If not, a check is made with the next scale factor representation from the set of scale factor representations.

Если существует следующее представление масштабного коэффициента из множества представлений масштабных коэффициентов, то выбирается следующее представление масштабного коэффициента, в противном случае для кодирования входного вектора может выбираться кодовый вектор, связанный с наилучшим показателем расстояния.If the next scale factor representation exists from the set of scale factor representations, then the next scale factor representation is selected, otherwise, the code vector associated with the best distance measure may be selected to encode the input vector.

Например, наборы базисных кодовых векторов могут представлять собой ведущие классы, каждый из которых содержит различный ведущий вектор и перестановки указанного ведущего вектора. Таким образом, ведущий вектор и перестановки указанного ведущего вектора могут представлять базисные кодовые векторы соответствующего набора базисных кодовых векторов. Например, ведущий вектор представляет собой n-мерный вектор (где n - целое число), компоненты (положительные) которого упорядочены (например, в порядке убывания). Ведущий класс, соответствующий ведущему вектору, включает ведущий вектор и все векторы, получаемые путем всех знаковых перестановок ведущего вектора (с некоторыми возможными ограничениями).For example, the sets of basis code vectors may be lead classes, each containing a different lead vector and permutations of said lead vector. Thus, the lead vector and permutations of said lead vector may represent the basis code vectors of the corresponding set of basis code vectors. For example, a leading vector is an n-dimensional vector (where n is an integer) whose (positive) components are ordered (eg, in descending order). The leading class corresponding to the leading vector includes the leading vector and all vectors obtained by all signed permutations of the leading vector (with some possible restrictions).

Объединение ведущих классов может определяться набором базисных кодовых векторов, связанных с одинаковым представлением масштабного коэффициента из множества представлений масштабных коэффициентов, и соответствующим представлением масштабного коэффициента. Например, объединение ведущих классов может быть связано с набором кодовых векторов, полученных путем масштабирования базисных кодовых векторов ассоциированного набора базисных кодовых векторов с использованием представления масштабного коэффициента.The union of the leading classes may be defined by a set of basis code vectors associated with the same scale factor representation of the set of scale factor representations and the corresponding scale factor representation. For example, a union of leading classes may be associated with a set of codevectors obtained by scaling the basis codevectors of the associated set of basis codevectors using a scale factor representation.

Такое объединение ведущих классов можно рассматривать как усечение. Таким образом, если во множество представлений масштабных коэффициентов входит n представлений масштабных коэффициентов, то может быть определено n объединений ведущих классов, каждое из которых задается соответствующим представлением масштабного коэффициента и набором базисных кодовых векторов, связанных с соответствующим представлением масштабного коэффициента.Such a union of leading classes can be considered as a truncation. Thus, if there are n scalefactor representations in the set of scalefactor representations, then n leader class unions can be defined, each defined by a corresponding scalefactor representation and a set of basis codevectors associated with the corresponding scalefactor representation.

Соответственно, множество представлений масштабных коэффициентов и множество наборов базисных кодовых векторов могут определять объединение ведущих классов и, таким образом, определять кодовый словарь, при этом, например, каждое объединение ведущих классов может рассматриваться как объединение масштабированных ведущих классов.Accordingly, a plurality of scaling factor representations and a plurality of basis code vector sets may define a union of leading classes and thus define a codebook, whereby, for example, each union of leading classes may be considered a union of scaled leader classes.

Кодовые словари, используемые в этих кодеках речевого и звукового сигналов, могут, например, основываться на решетчатых структурах, как описывается в ссылочном документе авторов A. Vasilache, B. Dumitrescu и I. Tabus "Multiple-scale leader-lattice VQ with application to LSF quantization" (ведущая решетка VQ с множеством масштабных коэффициентов в применении к квантованию LSF), опубликованном в издании Signal Processing (обработка сигналов) в 2002 г., том 82, стр. 563-586, издательство Elsevier, который полностью включен в настоящую заявку путем ссылки. Например, для квантования может рассматриваться решетка D10+, однако также могут рассматриваться любые другие хорошо подходящие схемы решетчатого квантования.The codebooks used in these speech and audio codecs may, for example, be based on trellis structures, as described in the reference document by A. Vasilache, B. Dumitrescu and I. Tabus "Multiple-scale leader-lattice VQ with application to LSF quantization" (leading multi-scale VQ grating applied to LSF quantization), published in Signal Processing 2002, Vol. links. For example, a D10+ lattice may be considered for quantization, but any other well-suited lattice quantization schemes may also be considered.

Например, наборы базисных кодовых векторов являются ведущими классами, при этом каждый ведущий класс содержит различные ведущие векторы и перестановки указанного ведущего вектора, и каждый ведущий класс представляет n-мерный вектор, содержащий n абсолютных значений, упорядоченных по убыванию или по возрастанию.For example, the sets of basis code vectors are leading classes, with each leading class containing different leading vectors and permutations of the specified leading vector, and each leading class representing an n-dimensional vector containing n absolute values, sorted in descending or ascending order.

Ведущий вектор I соответствующего набора базисных кодовых векторов bx может быть представлен следующим образом: I = [I0, I1, …, In-1], где l0, I1, …, In-1 представляют собой абсолютные значения. В случае упорядочения по убыванию I0 представляет 1-е наибольшее значение, I1 представляет 2-е наибольшее значение, и In-1 представляет n-е наибольшее значение. В случае упорядочения по возрастанию I0 представляет 1-е наименьшее значение, I1 представляет 2-е наименьшее значение, In-1 представляет n-е наименьшее значение.The leading vector I of the corresponding set of basis code vectors b x can be represented as follows: I = [I 0 , I 1 , …, I n-1 ], where l 0 , I 1 , …, I n-1 are absolute values . In the case of descending order, I 0 represents the 1st largest value, I 1 represents the 2nd largest value, and I n-1 represents the nth largest value. In the case of ascending order, I 0 represents the 1st smallest value, I 1 represents the 2nd smallest value, I n-1 represents the nth smallest value.

Значение Ik-1 соответствующего ведущего вектора, которое представляет значение в k-ой позиции в соответствующем ведущем векторе, может назначаться позиции в потенциальном базисном кодовом векторе, соответствующей позиции k-го наибольшего абсолютного значения (в случае упорядоченного по убыванию ведущего вектора) или позиции k-го наименьшего абсолютного значения (в случае упорядоченного по возрастанию ведущего вектора) во входном векторе. Например, эта позиция может обозначаться как позиция m. Например, потенциальный базисный кодовый вектор может быть представлен как p = [p0, p1, …, pn-1].The value I k-1 of the corresponding leading vector, which represents the value at the kth position in the corresponding leading vector, may be assigned to the position in the candidate basis codevector corresponding to the position of the kth largest absolute value (in the case of a descending leading vector) or position the k-th smallest absolute value (in the case of an ascending leading vector) in the input vector. For example, this position may be referred to as position m. For example, a potential basis code vector can be represented as p = [p 0 , p 1 , ..., p n-1 ].

В одном из возможных примеров входной вектор может быть представлен следующим образом: i = [-2.4, 5.0, -1.3, 0.2], при этом соответствующий вычисленный по абсолютному значению вектор может быть представлен следующим образом: ia = [2.4, 5.0, 1.3, 0.2].In one possible example, the input vector can be represented as follows: i = [-2.4, 5.0, -1.3, 0.2], while the corresponding vector calculated from the absolute value can be represented as follows: ia = [2.4, 5.0, 1.3, 0.2].

В случае упорядочения ведущего вектора по убыванию значение в позиции "к" ведущего вектора, то есть значение Ik-1, назначается позиции потенциального базисного кодового вектора, которая соответствует позиции k-го наибольшего абсолютного значения во входном векторе. Например, начиная с первой позиции, представленной счетчиком k=1, позицией 1-го наибольшего абсолютного значения во входном векторе является позиция m=2, поскольку значение 5.0 является 1-м наибольшим значением вычисленного по абсолютному значению входного вектора и оно расположено в позиции m=2, то есть ia1. Соответственно, значение I0 назначается позиции m=2 в потенциальном базисном кодовом векторе, то есть может выполняться равенство p1 = I0.In the case of descending ordering of the lead vector, the value at position "k" of the lead vector, i.e., the value I k-1 , is assigned to the position of the potential basis code vector that corresponds to the position of the k-th largest absolute value in the input vector. For example, starting from the first position represented by count k=1, the position of the 1st largest absolute value in the input vector is position m=2, because the value 5.0 is the 1st largest value of the computed absolute value of the input vector and it is located at position m =2, i.e. ia 1 . Accordingly, the value of I 0 is assigned to position m=2 in the potential basis code vector, that is, p 1 = I 0 can be satisfied.

Кроме того, знак (+ или -) назначенного значения в потенциальном базисном кодовом векторе pm-1 устанавливается в соответствии со знаком значения во входном векторе, связанным с k-м наибольшим абсолютным значением. Соответственно, может выполняться равенство
pm-1 = Ik-1 ⋅ sign(im-1).
In addition, the sign (+ or -) of the assigned value in the potential basis code vector p m-1 is set according to the sign of the value in the input vector associated with the k-th largest absolute value. Accordingly, the equality
p m-1 = I k-1 ⋅ sign(i m-1 ).

Таким образом, согласно одному из примеров входного вектора могут выполняться соотношения i = [-2.4, 5.0, -1.3, 0.2], p = I0, поскольку значение i1 = 5.0 положительно.Thus, according to one example of an input vector, the relations i = [-2.4, 5.0, -1.3, 0.2], p = I 0 can hold, since the value of i 1 = 5.0 is positive.

Счетчик "к" позиции может инкрементироваться, и может осуществляться проверка, существует ли другое значение в ведущем векторе, то есть, выполняется ли неравенство k < n.The "to" position counter may be incremented, and a check may be made to see if another value exists in the leading vector, ie, if the inequality k < n is satisfied.

Если значение существует, выполнение способа продолжается, и в одном из примеров относительно позиции k = 2 значение 2.4 в позиции m=1 представляет 2-е наибольшее (k-е наибольшее) абсолютное значение во входном векторе. Таким образом, может выполняться соотношение P0 = l1 ⋅ sign(i0) = -l1 для назначения I1 с учетом знака, поскольку значение I0 = -2.4 во входном векторе отрицательно.If the value exists, the method continues, and in one example, for position k = 2, the value 2.4 at position m=1 represents the 2nd largest (kth largest) absolute value in the input vector. Thus, the relation P 0 = l 1 ⋅ sign(i 0 ) = -l 1 can hold for sign-sensitive assignment of I 1 because the value of I 0 = -2.4 in the input vector is negative.

Таким образом, в одном из примеров могут выполняться итерации цикла путем перехода к последующим позициям ведущего вектора следующим образом:Thus, in one example, the loop can be iterated by moving to subsequent positions of the leading vector as follows:

k = 3 → m = 3 → P2 = I2 ⋅ sign(i2) = -I2 ; иk = 3 → m = 3 → P 2 = I 2 ⋅ sign(i 2 ) = -I 2 ; and

k = 4 → m = 4 → P3 = I3 ⋅ sign(i3) = +I3 k = 4 → m = 4 → P 3 = I 3 ⋅ sign(i 3 ) = +I 3

Таким образом, соответствующий потенциальный базисный кодовый вектор, полученный приведенным в примере способом, в результате может выглядеть следующим образом: p = [-I1, I0, -I2, I3], если соответствующий ведущий вектор I упорядочен по убыванию значений.Thus, the corresponding potential basis code vector obtained in the example way, as a result, may look like this: p = [-I 1 , I 0 , -I 2 , I 3 ] if the corresponding leading vector I is ordered in descending order of values.

Если соответствующий ведущий вектор I упорядочен по возрастанию значений, то описанный выше способ может выполняться с использованием значения m, представляющего позицию k-го наименьшего значения в вычисленном по абсолютной величине входном векторе, при этом может выполняться следующее соотношение: pm-1 = Ik-1 ⋅ sign(im-1).If the corresponding leading vector I is ordered in ascending order, then the above method can be performed using the value m representing the position of the k-th smallest value in the absolute value-calculated input vector, whereby the following relationship can be satisfied: p m-1 = I k -1 ⋅ sign(i m-1 ).

Полученный потенциальный базисный кодовый вектор p связан с соответствующим набором базисных кодовых векторов bx, при этом I представляет ведущий вектор этого соответствующего набора базисных кодовых векторов. Например, в описанном выше примере процесса определения кодового вектора, основанного на базисном кодовом векторе bx,y,t и представителе масштабного коэффициента sz, потенциальный кодовый вектор p представляет ближайший базисный кодовый вектор bx,y набора базисных кодовых векторов bx по отношению к входному вектору, при этом вычисленный по абсолютному значению входной вектор используется для определения потенциального кодового вектора соответствующего набора базисных кодовых векторов, и знак каждого значения bx,y,k-1 в k-ой позиции определенного ближайшего базисного кодового вектора bx,y назначается с использованием знака соответствующего значения ik в k-й позиции входного вектора i, где 0 <k ≤ n.The resulting potential basis code vector p is associated with the corresponding set of basis code vectors bx, while I represents the leading vector of this corresponding set of basis code vectors. For example, in the above example of a codevector determination process based on the basis codevector bx,y,t and the representative of the scale factor sz, the potential code vector p represents the nearest basis code vector bx,y set of basis code vectors bxwith respect to the input vector, whereby the input vector calculated from the absolute value is used to determine the potential code vector of the corresponding set of basis code vectors, and the sign of each value bx,y,k-1 at the kth position of the determined nearest basis code vector bx,y assigned using the sign of the corresponding i valuek at the kth position of the input vector i, where 0 <k ≤ n.

Таким образом, этот ближайший базисный кодовый вектор bx,y, представляющий потенциальный кодовый вектор p, может использоваться для определения кодового вектора cx,z,y на основе ближайшего базисного кодового вектора bx,y и соответствующего представителя масштабного коэффициента sz, как было описано выше.Thus, this nearest basis code vector b x , y representing a potential code vector p can be used to determine a code vector c x , z , y based on the nearest basis code vector b x , y and the corresponding scale factor representative s z , as has been described above.

Для каждого усечения назначаются различные представители масштабного коэффициента (например, путем обучения), например:For each truncation, different scale factor representatives are assigned (for example, by training), for example:

float scale[] = {0.8, 1.2, 2.7};floatscale[] = {0.8, 1.2, 2.7};

Соответственно, например, первый набор кодовых векторов из множества кодовых векторов кодового справочника определяется первым усечением, масштабированным посредством первого представления масштабного коэффициента 0.8, второй набор кодовых векторов из множества кодовых векторов кодового справочника определяется вторым усечением, масштабированным посредством второго представления масштабного коэффициента 1.2, и третий набор кодовых векторов из множества кодовых векторов кодового справочника определяется третьим усечением, масштабированным посредством третьего представления масштабного коэффициента 2.7, в результате кодовый справочник имеет решетчатую структуру с множеством масштабных коэффициентов.Accordingly, for example, a first set of codevectors from the set of codebook codevectors is defined by a first truncation scaled by a first scaling factor representation of 0.8, a second set of codevectors from a set of codebook codevectors is defined by a second truncation scaled by a second scaling factor representation of 1.2, and a third the set of code vectors from the set of code vectors of the code book is determined by the third truncation, scaled by the third representation of the scale factor 2.7, as a result, the code book has a lattice structure with many scale factors.

В качестве примера поиск в решетчатой структуре с множеством масштабных коэффициентов может рассматриваться в виде двух фаз: на первой фазе может вычисляться потенциальный кодовый вектор для каждого ведущего класса, то есть для каждого набора базисных кодовых векторов, а на второй фазе может вычисляться искажение только для потенциальных кодовых векторов.As an example, searching in a multi-scale-factor lattice structure can be considered in two phases: in the first phase, the potential code vector for each leading class, i.e., for each set of basis code vectors, can be calculated, and in the second phase, distortion for only potential code vectors.

Например, функция вычисления абсолютного значения может применяться к входному вектору i таким образом, чтобы абсолютный входной вектор ia содержал абсолютные значения вектора i, и затем абсолютный входной вектор мог быть отсортирован в убывающем (или, в альтернативном варианте, в возрастающем) порядке.For example, an absolute value calculation function can be applied to an input vector i such that the absolute input vector ia contains the absolute values of vector i, and then the absolute input vector can be sorted in descending (or alternatively ascending) order.

Например, представление индекса может включать представителей, указывающих индексы каждого входного вектора i, абсолютные значения которого упорядочены по убыванию (или по возрастанию). Например, указанное представление индексов может представлять собой массив 'indx' целых чисел.For example, an index representation may include representatives indicating the indices of each input vector i, whose absolute values are in descending (or ascending) order. For example, the specified index representation may be an array 'indx' of integers.

Например, если входной вектор представлен как [-2.4 5.0 -1,3 0.2], вектор, вычисленный по абсолютному значению, представлен как [2.4 5.0 1.3 0.2], и массив 'indx' представлен как [1 0 2 3]. Поскольку ведущие векторы могут быть упорядочены по убыванию, в процессе выполнения алгоритма поиска ближайшего смежного вектора первое значение ведущего вектора может быть назначено позиции, соответствующей компоненту с наибольшим абсолютным значением входного вектора и т.д.For example, if the input vector is represented as [-2.4 5.0 -1.3 0.2], the absolute value vector is represented as [2.4 5.0 1.3 0.2], and the 'indx' array is represented as [1 0 2 3]. Since the leading vectors can be ordered in descending order, during the execution of the algorithm for finding the nearest adjacent vector, the first value of the leading vector can be assigned to the position corresponding to the component with the largest absolute value of the input vector, and so on.

В следующих примерах, не ограничивающих суть настоящего изобретения, переменная 'idx_lead_max' предназначена для хранения максимального количества ведущих классов во всех усечениях, которые могут соответствовать X. В этом примере их может быть 9. Соответственно, 9 наборов базисных кодовых векторов определяются посредством 9 ведущих классов, при этом n-й ведущий класс определяется ссылкой &pl[n-1].In the following non-limiting examples, the variable 'idx_lead_max' is intended to store the maximum number of lead classes in all truncations that X can match. In this example, there may be 9. Accordingly, 9 sets of basis codevectors are defined by 9 lead classes , with the nth leading class defined by the reference &pl[n-1].

Например, в массиве 'sign' могут храниться знаки компонентов входного вектора.For example, the 'sign' array can store the signs of the components of the input vector.

/* Первая часть поиска: вычисление всех потенциальных кодовых векторов *//* First part of search: compute all potential codevectors */

Figure 00000006
Figure 00000006

Внешний цикл, определяемый счетчиком u, может рассматриваться для связи каждого значения u с соответствующим ведущим вектором. Таким образом, согласно счетчику u выбирается соответствующий набор базисных кодовых векторов с использованием внешнего цикла, поскольку каждый ведущий вектор соответствует различным наборам базисных кодовых векторов из множества базисных кодовых векторов.An outer loop, defined by a counter u, can be considered to associate each value of u with the corresponding leading vector. Thus, according to the counter u, a corresponding set of basis code vectors is selected using an outer loop, since each leading vector corresponds to a different set of basis code vectors from the set of basis code vectors.

Внутренний цикл, определяемый целым значением j, может рассматриваться для определения потенциального базисного кодового вектора, связанного с выбранным набором базисных кодовых векторов, при этом переменная j_crt указывает позицию (j+1)-го наибольшего абсолютного значения во входном векторе.The inner loop, defined by the integer value j, can be considered to determine the potential basis codevector associated with the selected basis codevector set, with j_crt indicating the position of the (j+1)th largest absolute value in the input vector.

Таким образом, различные потенциальные базисные кодовые векторы cv_pot определяются посредством данного примера первой части поиска.Thus, various potential basis codevectors cv_pot are determined by this example of the first part of the search.

Вторая часть поиска может использоваться для определения кодового вектора для кодирования входного вектора на основе подмножества кодовых векторов.The second part of the search may be used to determine a code vector to encode the input vector based on a subset of the code vectors.

/* Вторая часть поиска *//* Second part of the search */

Figure 00000007
Figure 00000007

Figure 00000008
Figure 00000008

Внешний цикл может определяться счетчиком I, который вводится для выбора одного представления масштабного коэффициента scale[I] из множества представлений масштабных коэффициентов.The outer loop may be defined by a counter I, which is introduced to select one scale factor representation scale[I] from a plurality of scale factor representations.

Переменная LATTICE_DIM определяет длину кодовых векторов, которая может соответствовать длине входного вектора, подлежащего кодированию.The variable LATTICE_DIM specifies the length of the codevectors, which may correspond to the length of the input vector to be encoded.

Затем вычисляются значения ws1[k] и ws2[k] для каждого "к" из ряда (0, …, LATTICE_DIM), которые можно рассматривать как часть показателя искажения (X3), которой не зависит от потенциального базисного кодового вектора. Величина w[k] представляет величину весовой функции для каждого k.Then the values ws1[k] and ws2[k] are calculated for each "k" from the series (0, ..., LATTICE_DIM), which can be considered as part of the distortion index (X3), which does not depend on the potential basis code vector. The value w[k] represents the value of the weight function for each k.

В приведенном выше примере кода также имеется внутренний цикл, реализуемый посредством счетчика j: "for(j=0; j<no_leaders[I]; j++)", в котором no_leaders[I] определяет набор ведущих векторов, связанных с выбранным представителем масштабного коэффициента scale[I], то есть no_leaders[I] может соответствовать значению nz, представляющему количество наборов базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента scale[I], и, таким образом, итерации этого цикла осуществляются с каждым набором ведущих векторов, связанных с выбранным представителем масштабного коэффициента scale[I], при этом для ведущего вектора этого набора ведущих векторов определен один потенциальный базисный кодовый вектор cv_pot. Таким образом, например, в этом цикле итерационно выбирается каждый потенциальный базисный кодовый вектор cv_pot из набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента, при этом cv_pot[j] может представлять соответствующий j-й базисный кодовый вектор этого набора базисных кодовых векторов.The code example above also has an inner loop implemented with counter j: "for(j=0;j<no_leaders[I];j++)", in which no_leaders[I] defines the set of leader vectors associated with the selected scale factor representative scale[I], i.e. no_leaders[I] may correspond to a value of n z representing the number of basis code vector sets associated with the corresponding scale factor representative scale[I], and thus this loop is iterated with each set of leader vectors, associated with the selected scale factor representative scale[I], with one potential basis code vector cv_pot defined for the leading vector of this set of leading vectors. Thus, for example, this loop iteratively selects each potential basis codevector cv_pot from the set of basis codevectors associated with the selected scalefactor representation, wherein cv_pot[j] may represent the corresponding jth basis codevector of this set of basis codevectors.

Для каждого из этих базисных кодовых векторов и выбранного представителя масштабного коэффициента, может определяться соответствующий показатель искажения для кодового вектора, связанного с соответствующим базисным кодовым вектором и выбранным представителем масштабного коэффициента, например, следующим образом:For each of these basis codevectors and the selected scalefactor representative, a corresponding distortion metric for the codevector associated with the corresponding basis codevector and the selected scalefactor representative may be determined, for example, as follows:

Figure 00000009
.
Figure 00000009
.

Для представления наилучшего показателя искажения определяется показатель искажения с наименьшим значением, при этом кодовый вектор, связанный с кодовым вектором с таким показателем искажения может использоваться для кодирования входного вектора. Например, этот кодовый вектор может определяться наилучшим представлением масштабного коэффициента и наилучшим потенциальным базисным кодовым вектором из набора потенциальных базисных кодовых векторов.To represent the best distortion metric, the distortion metric with the smallest value is determined, and the codevector associated with the codevector with that distortion metric can be used to encode the input vector. For example, this codevector may be determined by the best scale factor representation and the best candidate basis codevector from the set of candidate basis codevectors.

Приведенные в этом описании варианты осуществления настоящего изобретения уменьшают сложность процесса квантования вектора не за счет вычисления массива cv_pot потенциальных кодовых векторов, а в результате применения отсортированной по абсолютному значению версии входного вектора и определения или формирования вычисления искажения в подходящем транспонированном пространстве.The embodiments of the present invention described in this description reduce the complexity of the vector quantization process, not by computing an array of potential codevectors cv_pot, but by applying an absolute-sorted version of the input vector and determining or generating a distortion calculation in an appropriate transposed space.

В некоторых вариантах осуществления изобретения решетчатый векторный квантователь содержит сортировщик 402 входного вектора. Сортировщик 402 входного вектора или подходящее средство для сортировки входного вектора могут быть сконфигурированы для приема входного вектора.In some embodiments, the trellis vector quantizer comprises an input vector sorter 402 . An input vector sorter 402 or a suitable input vector sorter may be configured to receive an input vector.

Операция приема входного вектора выполняется на шаге 501, изображенном на фиг. 6.The input vector receive operation is performed at step 501 shown in FIG. 6.

Решетчатый векторный квантователь и сортировщик 402 входного вектора сконфигурированы для сортировки входного вектора в порядке убывания абсолютных значений (следует иметь в виду, что в некоторых вариантах осуществления сортировка может выполняться в порядке возрастания абсолютных значений при внесении подходящих изменений в приводимые ниже операции).The lattice vector quantizer and input vector sorter 402 are configured to sort the input vector in descending order of absolute values (note that in some embodiments, sorting may be performed in ascending order of absolute values, with appropriate modifications to the operations below).

Таким образом, если, например, входной вектор представлен следующим образом:Thus, if, for example, the input vector is represented as follows:

I = [-2.4 5.0 -1.3 0.2],I = [-2.4 5.0 -1.3 0.2],

вектор, вычисленный по абсолютному значению, выглядит следующим образом:vector computed by absolute value looks like this:

absi = [2.4 5.0 1.3 0.2],absi = [2.4 5.0 1.3 0.2],

отсортированный вектор, вычисленный по абсолютному значению, в данном случае определяется следующим образом:sorted vector computed by absolute value, in this case is defined as follows:

cv_pot1 = [5.0 2.4 1.3 0.2],cv_pot1 = [5.0 2.4 1.3 0.2],

и индекс 'indx' перестановок при сортировке = [1 0 2 3].and index 'indx' of sorting permutations = [1 0 2 3].

Операция сортировки входного вектора выполняется на шаге 503, изображенном на фиг. 6.The input vector sort operation is performed at step 503 shown in FIG. 6.

Сортировщик входного вектора затем может передать отсортированный вектор и информацию о перестановках при сортировке в определитель 403 кодового вектора.The input vector sorter may then pass the sorted vector and sort permutation information to the code vector determinant 403 .

В некоторых вариантах осуществления решетчатый векторный квантователь 453 содержит определитель 401 потенциального кодового вектора. Определитель 401 потенциального кодового вектора или подходящее средство для определения потенциального кодового вектора сконфигурированы для хранения или формирования ведущих классов, используемых для формирования кодовых векторов.In some embodiments, the implementation of the trellis vector quantizer 453 contains the determinant 401 of the potential code vector. A candidate codevector determiner 401 or a suitable means for determining a candidate codevector is configured to store or generate leading classes used to generate codevectors.

Например, ведущие классы могут определяться следующим образом (в значении Q1, другими словами, умноженные на 2):For example, leading classes could be defined as follows (in the value of Q1, in other words, multiplied by 2):

Figure 00000010
Figure 00000011
Figure 00000010
Figure 00000011

Эти ведущие классы в некоторых вариантах осуществления могут передаваться в определитель 403 кодового вектора.These leading classes, in some embodiments, may be passed to the code vector determinant 403 .

В некоторых вариантах осуществления решетчатый векторный квантователь 453 содержит определитель 403 кодового вектора. Определитель 403 кодового вектора или подходящее средство для определения кодового вектора могут в некоторых вариантах осуществления принимать ведущие классы, а также отсортированный входной вектор и вектор перестановок. Определитель кодового вектора затем может на основе этих значений определить выходной кодовый вектор, связанный с входным вектором.In some embodiments, the trellis vector quantizer 453 includes a code vector determinant 403 . The code vector determiner 403 or a suitable code vector determiner may, in some embodiments, accept leading classes as well as a sorted input vector and a permutation vector. The codevector determiner can then, based on these values, determine the output codevector associated with the input vector.

Если определяемое расстояние представляет собой взвешенное евклидово расстояние, то в некоторых вариантах осуществления веса транспонируются в соответствии с вектором перестановок, и формируется промежуточное произведение входного вектора, при этом следует принимать во внимание, что в некоторых вариантах осуществления веса постоянны или операция взвешивания является необязательной, при этом используется невзвешенное евклидово расстояние.If the distance to be determined is a weighted Euclidean distance, then in some embodiments the weights are transposed according to the permutation vector and the intermediate product of the input vector is formed, taking into account that in some embodiments the weights are constant or the weighting operation is optional, with This uses the unweighted Euclidean distance.

Пример такого процесса представлен посредством следующего кода.An example of such a process is represented by the following code.

/* вычисление промежуточного произведения между транспонированными весами и отсортированным входным вектором *//* Calculate the intermediate product between the transposed weights and the sorted input vector */

Figure 00000012
Figure 00000012

Операция транспонирования и применения весов для формирования промежуточного произведения на основе отсортированного входного вектора и транспонированных весов выполняется на шаге 505, показанном на фиг. 6.The operation of transposing and applying weights to form an intermediate product based on the sorted input vector and the transposed weights is performed in step 505 shown in FIG. 6.

В некоторых вариантах осуществления определитель кодового вектора может определять компоненты sum1 и sum2 расстояния для первого значения scale[0] масштабного коэффициента.In some embodiments, the codevector determiner may determine the distance components sum1 and sum2 for the first value scale[0] of the scale factor.

Эта операция может выполняться посредством следующих шагов.This operation can be performed through the following steps.

Во-первых, выполняется инициализация масштабного коэффициента и квадрата значений масштабного коэффициента для первого масштабного коэффициента scale[0].First, the scale factor and the square of the scale factor values for the first scale factor scale[0] are initialized.

Операция инициализации масштабного коэффициента и квадрата значений масштабных коэффициентов выполняется на шаге 508, показанном на фиг. 6.The operation of initializing the scale factor and the square of the scale factor values is performed at step 508 shown in FIG. 6.

Во-вторых, выбирается ведущий вектор из матрицы ведущих классов. Пример матрицы показан выше в виде матрицы pl_crt.Second, a leading vector is selected from the matrix of leading classes. An example matrix is shown above as the pl_crt matrix.

Операция выбора ведущего вектора выполняется на шаге 507, изображенном на фиг. 6.The drive vector selection operation is performed at step 507 shown in FIG. 6.

В-третьих, формируются промежуточные значения sum1 и sum2 расстояния на основе промежуточных значений и выбранного ведущего вектора.Thirdly, intermediate values sum1 and sum2 of the distance are formed based on the intermediate values and the selected leading vector.

Операция формирования промежуточных значений на основе выбранного ведущего вектора выполняется на шаге 509, изображенном на фиг. 6.The operation of generating intermediate values based on the selected leading vector is performed at step 509 shown in FIG. 6.

В-четвертых, выполняется проверка условий паритета, когда ведущий вектор не достигает 7й позиции, и корректировка значения sum1, если количество отрицательных знаков во входном векторе не удовлетворяет ограничению, наложенному на паритет ведущего класса.Fourth, parity conditions are checked when the leading vector does not reach the 7th position, and the value of sum1 is adjusted if the number of negative signs in the input vector does not satisfy the limit imposed on the leading class parity.

Операция проверки условий паритета, когда ведущий вектор не достигает 7й позиции, и корректировки значения sum1, если количество отрицательных знаков во входном векторе не удовлетворяет ограничению, наложенному на паритет ведущего класса, выполняется на шаге 511, изображенном на фиг. 6.The operation of checking for parity conditions when the leading vector does not reach the 7th position and adjusting the value of sum1 if the number of negative signs in the input vector does not satisfy the limit imposed on the parity of the leading class is performed in step 511 shown in FIG. 6.

В-пятых, определяется расстояние или значение ошибки на основе значений sum1 и sum2, и если текущее расстояние для ведущего вектора является наименьшим, указывается индекс наименьшего вектора.Fifth, the distance or error value is determined based on the values of sum1 and sum2, and if the current distance for the leading vector is the smallest, the index of the smallest vector is indicated.

Операция определения расстояния для ведущих векторов выполняется на шаге 513, изображенном на фиг. 6.The operation of determining the distance for the leading vectors is performed at step 513 shown in FIG. 6.

Затем операция может повторяться в цикле, пока не будут выбраны все ведущие векторы.The operation can then be repeated in a loop until all leading vectors have been selected.

Операция проверки, выбраны ли все ведущие векторы, и возврата к началу цикла, если выбраны не все ведущие векторы, выполняется на шаге 514, изображенном на фиг. 6.The operation of checking if all of the leading vectors have been selected and looping back if not all of the leading vectors have been selected is performed in step 514 shown in FIG. 6.

Эти шаги могут быть реализованы посредством показанного ниже кода.These steps can be implemented with the code below.

Figure 00000013
Figure 00000013

Figure 00000014
Figure 00000014

Затем в некоторых вариантах осуществления определитель кодового вектора может быть сконфигурирован для использования значений sum1 и sum2 для определения расстояний искажения для других масштабных коэффициентов. Кроме того, выполняется аналогичная операция проверки на «наилучшее» значение масштабного коэффициента.Then, in some embodiments, the code vector determinant may be configured to use the values of sum1 and sum2 to determine distortion distances for other scale factors. In addition, a similar operation of checking for the "best" value of the scale factor is performed.

Операция определения расстояния искажения для других масштабных коэффициентов выполняется на шаге 515, изображенном на фиг. 6.The operation of determining the distortion distance for other scale factors is performed at step 515 shown in FIG. 6.

Операция определения расстояния искажения для других масштабных коэффициентов с использованием значений sum1 и sum2 может быть реализована посредством следующего примера кода.The operation of determining the distortion distance for other scale factors using the values of sum1 and sum2 can be implemented by the following code example.

Figure 00000015
Figure 00000015

Figure 00000016
Figure 00000016

Кроме того, в некоторых вариантах осуществления определитель кодового вектора может быть сконфигурирован для вычисления результирующего кодового вектора 'cv_out' после нахождения наилучшего ведущего класса и наилучшего масштабного коэффициента.Furthermore, in some embodiments, the codevector determiner may be configured to calculate the resulting 'cv_out' codevector after finding the best leading class and best scaling factor.

Операция выполнения обратного транспонирования для вычисления кодового вектора выполняется на шаге 517, изображенном на фиг. 6.The operation of performing an inverse transposition for code vector calculation is performed at step 517 shown in FIG. 6.

В некоторых вариантах осуществления операция вычисления кодового вектора может быть реализована посредством следующего примера кода.In some embodiments, the code vector calculation operation may be implemented by the following code example.

/* обратная перестановка *//* reverse permutation */

Figure 00000017
Figure 00000017

В некоторых вариантах осуществления вычисление переменных sum1 и sum2 выполняется до достижения количества ведущих векторов из первого усечения (no_leaders[0]), и это означает, что количество ведущих векторов должно быть упорядочено по убыванию, как и соответствующие им масштабные коэффициенты.In some embodiments, the calculation of the variables sum1 and sum2 is performed until the number of leaders from the first truncation (no_leaders[0]) is reached, which means that the number of leaders must be ordered in descending order, as well as their corresponding scaling factors.

В таких вариантах осуществления дополнительно уменьшается сложность, поскольку не требуется рассчитывать максимальное количество ведущих векторов для одной структуры, так как известно, что оно находится на первой позиции.In such embodiments, the complexity is further reduced since it is not necessary to calculate the maximum number of leader vectors for one structure, since it is known to be in the first position.

Следует принимать во внимание, что в наибольшей степени сложность уменьшается вследствие того, что транспонировать приходится не все ведущие векторы, а только наилучший из них. Вычисление выполняется с использованием положительных значений (как ведущий вектор, так и входной вектор представлены абсолютными величинами), что допустимо, пока компонент входного и квантованного векторов имеют одинаковый знак.It should be taken into account that the complexity is reduced to the greatest extent due to the fact that not all leading vectors have to be transposed, but only the best of them. The calculation is performed using positive values (both the leading vector and the input vector are represented by absolute values), which is valid as long as the components of the input and quantized vectors have the same sign.

Различие в знаках влияет в том случае, если существует ограничение на паритет (нечетное или четное количество отрицательных компонентов) в рассматриваемом ведущем векторе и это ограничение не учитывается входным вектором. В этом случае знак квантованного значения наименьших компонентов входного вектора изменяется. Наименьший компонент входного вектора соответствует последнему компоненту в транспонированном пространстве. Поэтому первый цикл вычисления sum1 и sum2 выглядит следующим образом: "while(l < LATTICE_DIM - 1)". На самом деле не транспонированное пространство в этом случае соответствует наименьшему значению = indx[LATTICE_DIM - 1]. LATTICE_DIM представляет собой размер рассматриваемой решетки.The difference in signs is affected if there is a parity constraint (odd or even number of negative components) in the considered leading vector and this constraint is not taken into account by the input vector. In this case, the sign of the quantized value of the smallest components of the input vector is reversed. The smallest component of the input vector corresponds to the last component in the transposed space. So the first loop of calculating sum1 and sum2 looks like this: "while(l < LATTICE_DIM - 1)". Actually the non-transposed space in this case corresponds to the smallest value = indx[LATTICE_DIM - 1]. LATTICE_DIM is the size of the lattice in question.

Хотя в приведенных выше примерах описываются варианты осуществления настоящего изобретения, работающие в устройстве 10, следует принимать во внимание, что изобретение, как описано ниже, может быть реализовано как часть любого кодека звукового (или речевого) сигнала, включая любой кодек звукового (или речевого) сигнала с переменной/адаптивной скоростью. Так, например, варианты осуществления настоящего изобретения могут быть реализованы в кодеке звукового сигнала, который может выполнять кодирование звуковых сигналов, передаваемых по фиксированным или проводным линиям связи.While the above examples describe embodiments of the present invention operating in device 10, it should be appreciated that the invention, as described below, may be implemented as part of any audio (or speech) codec, including any audio (or speech) codec. signal with variable/adaptive speed. Thus, for example, embodiments of the present invention may be implemented in an audio codec that can encode audio signals transmitted over fixed or wired lines.

Таким образом, пользовательское оборудование может содержать кодек звукового сигнала, подобный тем, что описаны в представленных выше вариантах осуществления настоящего изобретения.Thus, the user equipment may contain an audio codec similar to those described in the above embodiments of the present invention.

Следует отметить, что термин пользовательское оборудование охватывает пользовательское оборудование беспроводной связи любого подходящего типа, например мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.It should be noted that the term user equipment encompasses any suitable type of wireless communication user equipment, such as mobile phones, portable data processing devices, or portable web browsers.

Кроме того, элементы наземной сети мобильной связи общего пользования (PLMN, public land mobile network) также могут содержать описанные выше кодеки звукового сигнала.In addition, the public land mobile network (PLMN) elements may also contain the audio codecs described above.

В целом, различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратуры или специализированных схем, программного обеспечения, логических схем или любой комбинации указанных средств. Например, некоторые аспекты могут быть реализованы в виде аппаратных средств, в то время как другие аспекты могут быть реализованы в виде микропрограммного или программного обеспечения, которое может выполняться контроллером, микропроцессором или другим вычислительным устройством, хотя изобретение не ограничено только перечисленными средствами. Хотя различные аспекты настоящей заявки могут быть проиллюстрированы и описаны в виде блок-схем, алгоритмов или с использованием некоторых других графических представлений, достаточно очевидно, что описанные здесь блоки, устройства, системы, технологии или способы могут быть реализованы (не ограничиваясь приведенными примерами) в виде аппаратного, программного, микропрограммного обеспечения, специализированных схем или логических схем, универсальных аппаратных средств или контроллеров, или других вычислительных устройств, или некоторой комбинации указанных средств.In general, various embodiments of the present invention may be implemented in hardware or dedicated circuits, software, logic circuits, or any combination of these means. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software that may be executed by a controller, microprocessor, or other computing device, although the invention is not limited to these. Although various aspects of the present application may be illustrated and described in the form of block diagrams, algorithms or using some other graphical representations, it is quite obvious that the blocks, devices, systems, technologies or methods described here can be implemented (without being limited to the examples given) in in the form of hardware, software, firmware, dedicated circuits or logic circuits, general purpose hardware or controllers, or other computing devices, or some combination of these.

Варианты осуществления этого изобретения могут быть реализованы посредством компьютерного программного обеспечения, выполняемого процессором данных мобильного устройства, например блоком процессора, или посредством аппаратного обеспечения, или посредством комбинации программного и аппаратного обеспечения. Кроме того, в этом отношении следует отметить, что различные показанные на чертежах блоки логических алгоритмов могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию шагов программы и логических схем, блоков и функций.Embodiments of this invention may be implemented by computer software executed by a data processor of a mobile device, such as a processor unit, or by hardware, or by a combination of software and hardware. Also, in this regard, it should be noted that the various logic blocks shown in the drawings may be program steps or interrelated logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions.

Память может быть любого типа, подходящего к локальной технической среде, и может быть реализована с использованием любых подходящих технологий хранения данных и представлять собой, например, устройства полупроводниковой памяти, устройства и системы магнитной памяти, устройства и системы оптической памяти, постоянное запоминающее устройство и съемные блоки памяти. Процессоры данных могут быть любого типа, подходящего для локальной технической среды, и могут, например, содержать один или более универсальных компьютеров, специализированных компьютеров, микропроцессоров, цифровых сигнальных процессоров (DSP, Digital Signal Processor), специализированных интегральных схем (ASIC, Specific Integrated Circuit), логических схем и процессоров, основанных на многоядерной архитектуре, а также другие подобные устройства.The memory may be of any type appropriate to the local technical environment and may be implemented using any suitable storage technology and may be, for example, semiconductor memory devices, magnetic memory devices and systems, optical memory devices and systems, read-only memory, and removable memory blocks. Data processors may be of any type suitable for the local technical environment and may, for example, include one or more general purpose computers, specialized computers, microprocessors, digital signal processors (DSP, Digital Signal Processor), specialized integrated circuits (ASIC, Specific Integrated Circuit ), logic circuits and processors based on multi-core architecture, as well as other similar devices.

Варианты осуществления настоящего изобретения на практике могут быть выполнены в виде различных компонентов, таких как модули интегральных схем. В целом, конструирование интегральных схем является в высшей степени автоматизированным процессом. Имеются комплексные и эффективные программные средства для преобразования конструкции логического уровня в полупроводниковую схему, подготовленную для травления и формирования полупроводниковой подложки.Embodiments of the present invention may be practiced in various components such as integrated circuit modules. In general, the design of integrated circuits is a highly automated process. Comprehensive and efficient software tools are available to convert a logic level design into a semiconductor circuit prepared for etching and semiconductor wafer formation.

Программы, производимые, например, компаниями Synopsys, Inc., расположенной в Маунтин-Вью, Калифорния, и Cadence Design, расположенной в Сан Хосе, Калифорния, автоматически разводят проводники и размещают компоненты на полупроводниковом кристалле с использованием четко установленных правил конструирования, а также библиотек, в которых хранятся заранее записанные конструктивные модули. По окончании разработки полупроводниковой схемы, полученная в результате конструкция в стандартизованном электронном формате (например, Opus, GDSII и т.п.) может быть передана в средство производства полупроводникового устройства или производственный модуль ("fab") для изготовления.Programs produced by, for example, Synopsys, Inc., located in Mountain View, California, and Cadence Design, located in San Jose, California, automatically route conductors and place components on a semiconductor chip using well-defined design rules, as well as libraries , which store pre-recorded structural modules. Once the semiconductor circuit design is complete, the resulting design in a standardized electronic format (eg, Opus, GDSII, etc.) can be transferred to a semiconductor device manufacturing facility or fabrication module ("fab") for fabrication.

Используемый в этой заявке термин "схема" относится ко всем следующим компонентам:As used in this application, the term "circuit" refers to all of the following components:

только к аппаратным реализациям схем (таким как реализации, выполненные только в виде аналоговых и/или цифровых схем); иonly to hardware implementations of circuits (such as implementations made only in the form of analog and/or digital circuits); and

к комбинации схем и программного обеспечения (и/или микропрограммного обеспечения), таким как: (i) комбинация процессора(-ов) или (ii) сочетание процессора(-ов)/программного обеспечения (включая цифровой сигнальный процессор(ы)), программного обеспечения и памяти, которые совместно обеспечивают выполнение устройством, таким как мобильный телефон или сервер, различных функций; иto a combination of circuitry and software (and/or firmware) such as: (i) a combination of processor(s) or (ii) a combination of processor(s)/software (including digital signal processor(s)), software software and memory that together enable a device, such as a mobile phone or a server, to perform various functions; and

(c) к схемам, таким как микропроцессор(ы) или компонент микропроцессора(-ов), для работы которого требуется программное или микропрограммное обеспечение, даже если оно физически не установлено.(c) circuitry, such as a microprocessor(s) or a component of the microprocessor(s), that requires software or firmware to operate, even if it is not physically installed.

Это определение "схема" применимо ко всем использованиям этого термина в данной заявке, включая любые пункты формулы изобретения. В качестве другого примера термина "схема", используемого в этой заявке, можно привести реализацию обычного процессора (или множества процессоров), или компонента процессора и выполняемого им (или ими) программного или микропрограммного обеспечения. Термин "схема" также относится, например (в том числе, если это применимо к конкретному пункту формулы изобретения), к интегральной схеме обработки сигнала основной полосы частот или к интегральной схеме прикладного процессора в мобильном телефоне, или к подобной интегральной схеме в сервере, в устройстве сотовой сети или в другом сетевом устройстве.This definition of "circuit" applies to all uses of the term in this application, including any claims. As another example of the term "circuitry" as used in this application, one can cite an implementation of a conventional processor (or multiple processors), or a component of the processor and the software or firmware that it (or they) execute. The term "circuit" also refers, for example (including, if applicable to a particular claim), to a baseband signal processing integrated circuit or an application processor integrated circuit in a mobile phone, or a similar integrated circuit in a server, in cellular network device or other network device.

Приведенное описание посредством типовых примеров, не ограничивающих возможности реализации изобретения, предоставляет полное и информативное описание примеров осуществления настоящего изобретения. Однако специалисту в данной области техники в свете изложенного описания, изученного в совокупности с прилагаемыми чертежами и формулой изобретения, могут быть очевидны различные модификации и адаптации. Тем не менее, любые виды таких и подобных модификаций, изложенных принципов должны оставаться в пределах объема настоящего изобретения, определенного в прилагаемой формуле изобретения.The foregoing description, by way of non-limiting generic examples, provides a complete and informative description of the exemplary embodiments of the present invention. However, a person skilled in the art in the light of the foregoing description, read in conjunction with the accompanying drawings and claims, may be obvious to various modifications and adaptations. However, any kind of such and similar modifications to the principles set forth shall remain within the scope of the present invention as defined in the appended claims.

Claims (49)

1. Способ кодирования звуковых сигналов, включающий:1. A method for encoding audio signals, including: формирование по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал;generating at least one vector of parameters defining at least one audio signal; сортировку компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров;sorting the components of said at least one parameter vector according to a descending order based on the absolute values of the components of said at least one parameter vector to form at least one associated ordered parameter vector; выбор из списка ведущих классов по меньшей мере одного потенциального кодового вектора;selecting at least one potential code vector from the list of leading classes; определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров путем формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, корректировки знака первого компонента расстояния, когда по меньшей мере один потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния;determining the distance between at least one potential code vector and at least one ordered parameter vector by generating the first and second distance components based on the first scale factor value, wherein the first and second distance components are related to the distance between at least one potential code vector and at least one ordered parameter vector, correcting the sign of the first distance component when at least one candidate code vector fails a parity constraint test, and determining the distance between the at least one candidate code vector and the at least one ordered parameter vector by based on the first and second distance components; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; иdetermining at least one leading class associated with the potential code vector that generates the smallest associated distance; and сортировку по меньшей мере одного ведущего класса путем обратного упорядочения по убыванию на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров.sorting at least one leading class by reverse ordering in descending order based on the absolute values of the components of said at least one parameter vector. 2. Способ по п. 1, также включающий:2. The method according to p. 1, also including: выбор по меньшей мере одного масштабного коэффициента;selecting at least one scale factor; при этом определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также включает определение расстояния на основе по меньшей мере одного масштабного коэффициента;while determining the distance between at least one potential code vector and at least one ordered parameter vector also includes determining the distance based on at least one scale factor; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также включает определение выходного масштабного коэффициента, связанного с упомянутым потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; иdetermining at least one leading class associated with the candidate code vector that generates the smallest associated distance also includes determining an output scale factor associated with said candidate code vector and the scale factor that generates the smallest associated distance; and сортировку по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, включает применение выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.sorting the at least one leading class to generate an output trellis-quantized codevector includes applying an output scaling factor to the trellis-quantized output codevector. 3. Способ по п. 1 или 2, отличающийся тем, что формирование первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, включает:3. The method according to claim 1 or 2, characterized in that the formation of the first vector of parameters that define at least one sound signal includes: разделение по меньшей мере одного звукового сигнала на временные кадры; иdividing at least one audio signal into time frames; and определение вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.determining a vector of frequency parameters of the discrete spectrum associated with at least one of the time frames of the audio signal. 4. Способ по п. 1 или 2, отличающийся тем, что сортировка компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров включает:4. The method according to claim 1 or 2, characterized in that sorting the components of said at least one parameter vector according to descending order based on the absolute values of the components of said at least one parameter vector to form at least one associated ordered parameter vector comprises: определение весов для определения взвешенного расстояния;defining weights to determine the weighted distance; сортировку весов на основе порядка убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования вектора сортированных весов; иsorting the weights based on a descending order based on the absolute values of the components of said at least one parameter vector to generate a vector of sorted weights; and применение вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.applying the sorted weight vector to at least one ordered parameter vector. 5. Способ по п. 1, отличающийся тем, что определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также включает определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.5. The method according to claim. 1, characterized in that determining the distance between at least one potential code vector and at least one ordered parameter vector also includes determining the distance between at least one potential code vector and at least one ordered parameter vector based on the first and second distance components, as well as based on scale factor values. 6. Способ по п. 1 или 2, отличающийся тем, что определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, включает:6. The method according to claim 1 or 2, characterized in that determining at least one leading class associated with a potential code vector that generates the smallest associated distance includes: определение индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; иdetermining an index of a potential code vector that generates the smallest associated distance; and определение значения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения значений масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.determining a scale factor value of the potential code vector that generates the smallest associated distance by applying the scale factor values only to the potential code vector that generates the smallest associated distance. 7. Устройство для кодирования звуковых сигналов, содержащее:7. A device for encoding audio signals, comprising: средство для формирования по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал;means for generating at least one vector of parameters defining at least one audio signal; средство для сортировки компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров;means for sorting the components of said at least one parameter vector according to a descending order based on the absolute values of the components of said at least one parameter vector to form at least one associated ordered parameter vector; средство для выбора из списка ведущих классов по меньшей мере одного потенциального кодового вектора;means for selecting at least one potential codevector from a list of leading classes; средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров путем формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, корректировки знака первого компонента расстояния, когда по меньшей мере один потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния;means for determining the distance between at least one potential code vector and at least one ordered parameter vector by generating the first and second distance components based on the first scale factor value, wherein the first and second distance components are associated with the distance between at least one potential code vector and at least one ordered parameter vector, correcting the sign of the first distance component when at least one candidate code vector fails a parity constraint test, and determining the distance between at least one candidate code vector and at least one ordered vector parameters based on the first and second distance components; средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; иmeans for determining at least one leading class associated with the potential code vector that generates the smallest associated distance; and средство для сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по убыванию на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров.means for sorting at least one leading class by reverse ordering in descending order based on the absolute values of the components of said at least one parameter vector. 8. Устройство по п. 7, также включающее:8. The device according to claim 7, also including: средство для выбора по меньшей мере одного масштабного коэффициента;means for selecting at least one scale factor; при этом средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также содержит средство для определения расстояния на основе по меньшей мере одного масштабного коэффициента;the means for determining the distance between the at least one potential code vector and the at least one ordered parameter vector also comprises means for determining the distance based on the at least one scale factor; средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также содержит средство для определения выходного масштабного коэффициента, связанного с упомянутым потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; иmeans for determining at least one leading class associated with the potential code vector that generates the smallest associated distance also includes means for determining an output scale factor associated with said potential code vector and the scale factor that generates the smallest associated distance; and средство для сортировки по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, содержит средство для применения выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.means for sorting at least one leading class to generate an output code vector derived from the trellis quantization comprises means for applying an output scaling factor to the output code vector derived from the trellis quantization. 9. Устройство по п. 7 или 8, отличающееся тем, что средство для формирования первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, включает:9. The device according to claim 7 or 8, characterized in that the means for generating the first vector of parameters defining at least one sound signal includes: средство для разделения по меньшей мере одного звукового сигнала на временные кадры; иmeans for separating at least one audio signal into time frames; and средство для определения вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.means for determining a vector of frequency parameters of the discrete spectrum associated with at least one of the time frames of the audio signal. 10. Устройство по п. 7 или 8, отличающееся тем, что средство для сортировки компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров содержит:10. Apparatus according to claim 7 or 8, characterized in that the means for sorting the components of said at least one parameter vector according to descending order based on the absolute values of the components of said at least one parameter vector to form at least one associated ordered parameter vector contains: средство для определения весов для определения взвешенного расстояния;means for determining weights for determining the weighted distance; средство для сортировки весов на основе порядка убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования вектора сортированных весов; иmeans for sorting the weights based on a descending order based on the absolute values of the components of said at least one parameter vector to generate a vector of sorted weights; and средство для применения вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.means for applying the sorted weight vector to the at least one ordered parameter vector. 11. Устройство по п. 7, отличающееся тем, что средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также содержит средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.11. The device according to claim. 7, characterized in that the means for determining the distance between at least one potential code vector and at least one ordered parameter vector also contains means for determining the distance between at least one potential code vector and at least one ordered vector of parameters based on the first and second distance components, as well as based on the scale factor values. 12. Устройство по п. 7 или 8, отличающееся тем, что средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, содержит:12. The device according to claim 7 or 8, characterized in that the means for determining at least one leading class associated with a potential code vector that generates the smallest associated distance comprises: средство для определения индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; иmeans for determining an index of the potential code vector that generates the smallest associated distance; and средство для определения значения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения значений масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.means for determining a scale factor value of the potential code vector that generates the smallest associated distance by applying the scale factor values only to the potential code vector that generates the smallest associated distance. 13. Носитель данных, содержащий компьютерную программу, которая, при ее исполнении, обеспечивает выполнение устройством способа по любому из пп. 1-6.13. A storage medium containing a computer program that, when executed, causes the device to perform the method according to any one of paragraphs. 1-6. 14. Электронное устройство для кодирования звуковых сигналов, содержащее устройство по пп. 7-12.14. An electronic device for encoding audio signals, containing the device according to paragraphs. 7-12. 15. Чипсет, включающий устройство по пп. 7-12.15. Chipset, including the device according to paragraphs. 7-12.
RU2018129979A 2018-08-17 2018-08-17 Audio signal encoder RU2769429C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018129979A RU2769429C2 (en) 2018-08-17 2018-08-17 Audio signal encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018129979A RU2769429C2 (en) 2018-08-17 2018-08-17 Audio signal encoder

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2016125708A Division RU2665287C2 (en) 2013-12-17 2013-12-17 Audio signal encoder

Publications (3)

Publication Number Publication Date
RU2018129979A RU2018129979A (en) 2020-02-17
RU2018129979A3 RU2018129979A3 (en) 2022-02-08
RU2769429C2 true RU2769429C2 (en) 2022-03-31

Family

ID=69590125

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018129979A RU2769429C2 (en) 2018-08-17 2018-08-17 Audio signal encoder

Country Status (1)

Country Link
RU (1) RU2769429C2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050285764A1 (en) * 2002-05-31 2005-12-29 Voiceage Corporation Method and system for multi-rate lattice vector quantization of a signal
US20080097755A1 (en) * 2006-10-18 2008-04-24 Polycom, Inc. Fast lattice vector quantization
RU2380766C2 (en) * 2005-04-15 2010-01-27 Коудинг Текнолоджиз Аб Adaptive residual audio coding
US20100274556A1 (en) * 2008-01-16 2010-10-28 Panasonic Corporation Vector quantizer, vector inverse quantizer, and methods therefor
US20110137645A1 (en) * 2008-04-16 2011-06-09 Peter Vary Method and apparatus of communication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050285764A1 (en) * 2002-05-31 2005-12-29 Voiceage Corporation Method and system for multi-rate lattice vector quantization of a signal
RU2380766C2 (en) * 2005-04-15 2010-01-27 Коудинг Текнолоджиз Аб Adaptive residual audio coding
US20080097755A1 (en) * 2006-10-18 2008-04-24 Polycom, Inc. Fast lattice vector quantization
US20100274556A1 (en) * 2008-01-16 2010-10-28 Panasonic Corporation Vector quantizer, vector inverse quantizer, and methods therefor
US20110137645A1 (en) * 2008-04-16 2011-06-09 Peter Vary Method and apparatus of communication

Also Published As

Publication number Publication date
RU2018129979A (en) 2020-02-17
RU2018129979A3 (en) 2022-02-08

Similar Documents

Publication Publication Date Title
US20050015249A1 (en) Entropy coding by adapting coding between level and run-length/level modes
US20080228476A1 (en) Entropy coding by adapting coding between level and run length/level modes
US9865269B2 (en) Stereo audio signal encoder
US9799339B2 (en) Stereo audio signal encoder
US9659569B2 (en) Audio signal encoder
US10199044B2 (en) Audio signal encoder comprising a multi-channel parameter selector
KR101850724B1 (en) Method and device for processing audio signals
US20130226598A1 (en) Audio encoder or decoder apparatus
US20160111100A1 (en) Audio signal encoder
US20110135007A1 (en) Entropy-Coded Lattice Vector Quantization
RU2769429C2 (en) Audio signal encoder
US20100292986A1 (en) encoder
RU2665287C2 (en) Audio signal encoder
US20160019900A1 (en) Method and apparatus for lattice vector quantization of an audio signal
US10580416B2 (en) Bit error detector for an audio signal decoder
US20100280830A1 (en) Decoder
KR101841380B1 (en) Multi-channel audio signal classifier
Bouzid et al. Multi-coder vector quantizer for transparent coding of wideband speech ISF parameters
WO2023198383A1 (en) Method for quantizing line spectral frequencies
KR20140037118A (en) Method of processing audio signal, audio encoding apparatus, audio decoding apparatus and terminal employing the same