ОБЛАСТЬ ТЕХНИКИ
Настоящая заявка относится к кодеру многоканального или стереофонического звукового сигнала и, в частности, но не исключительно, к кодеру многоканального или стереофонического звукового сигнала, предназначенному для использования в портативном устройстве.
УРОВЕНЬ ТЕХНИКИ
Звуковые сигналы, такие как речь или музыка, кодируются, например, для обеспечения возможности эффективной их передачи или хранения.
Кодеры и декодеры звуковых сигналов (также называемые кодеками) используются для представления основанных на звуковых колебаниях сигналов, таких как музыка и звуковое сопровождение (которое в терминах кодирования речи может называться фоновым шумом). В этих типах кодеках обычно для процесса кодирования не используется модель воспроизведения речи, в большей степени в этих кодеках применяются процессы представления звуковых сигналов всех типов, включая речевой сигнал. Кодеры и декодеры речи (кодеки) могут рассматриваться как кодеки звукового сигнала, которые оптимизированы для речевых сигналов и могут функционировать либо с фиксированной, либо с переменной битовой скоростью.
Кодеры и декодеры звуковых сигналов часто разрабатываются в виде несложных кодеков источника сигнала. Другими словами, эти устройства способны выполнять кодирование и декодирование звуковых сигналов без необходимости применения сложной процедуры обработки.
В качестве примера можно привести кодирование с преобразованием. В случае музыкального сигнала, кодирование звукового сигнала с преобразованием выполняется эффективнее по сравнению с технологией алгебраического линейного предсказания с кодовым возбуждением (ACELP, Algebraic Code Excited Linear Prediction), которая в лучшей степени приспособлена и направлена на обработку речевых сигналов. Кодирование с преобразованием выполняется посредством кодирования с преобразованием коэффициентов поддиапазона векторов, другими словами, звуковой сигнал разделяется на поддиапазоны, для которых определяется параметр, и параметры представляют подвекторы, полученные в результате векторного или решеточного квантования.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии с первым аспектом настоящего изобретения предлагается способ, включающий формирование по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; сортировку по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров; выбор из списка ведущих классов по меньшей мере одного потенциального кодового вектора; определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.
Способ также может включать выбор по меньшей мере одного масштабного коэффициента; при этом определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: определение расстояния на основе по меньшей мере одного масштабного коэффициента; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может включать определение выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может включать применение выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.
Формирование первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, может включать: разделение по меньшей мере одного звукового сигнала на временные кадры; и определение вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.
Сортировка по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров может включать: определение весов для определения взвешенного расстояния; сортировку весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов; и применение вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.
Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров может включать: формирование первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; корректировку знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет; и определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.
Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.
Определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, может включать: определение индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; и определение масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.
Транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может включать сортировку по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.
В соответствии со вторым аспектом предлагается устройство, содержащее средство для формирования по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; средство для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров; средство для выбора из списка ведущих классов по меньшей мере одного потенциального кодового вектора; средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и средство для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.
Устройство также может содержать средство для выбора по меньшей мере одного масштабного коэффициента; при этом средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: средство для определения расстояния на основе по меньшей мере одного масштабного коэффициента; средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может содержать средство для определения выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и средство транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может включать средство для применения выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.
Средство для формирования первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, может содержать: средство для разделения по меньшей мере одного звукового сигнала на временные кадры; и средство для определения вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала. Средство для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров может содержать: средство для определения весов для определения взвешенного расстояния; средство для сортировки весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов; и средство для применения вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.
Средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров может содержать: средство для формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; средство для корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет; и средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.
Средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может содержать средство определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.
Средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, может содержать: средство для определения индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; и средство для определения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения значений масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.
Средство для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может содержать средство для сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.
В соответствии с третьим аспектом предлагается устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, содержащую код компьютерной программы, при этом по меньшей мере одна память и код компьютерной программы сконфигурированы таким образом, чтобы при взаимодействии по меньшей мере с одним процессором устройство выполняло по меньшей мере следующее: формирование по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; сортировку по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров; выбор из списка ведущих классов по меньшей мере одного потенциального кодового вектора; определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров; определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.
Устройство также может выполнять следующее: выбор по меньшей мере одного масштабного коэффициента; при этом определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать: определение расстояния на основе по меньшей мере одного масштабного коэффициента; при этом определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может включать определение выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; при этом транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может включать применение выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.
Формирование первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, может включать разделение по меньшей мере одного звукового сигнала на временные кадры и определение вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.
Сортировка по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров может включать определение весов для определения взвешенного расстояния, для сортировки весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов и применение вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.
Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров может включать формирование первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, для корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.
Определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также может включать определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.
Определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, может включать определение индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, и определение масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.
Транспонирование по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, может включать выполнение сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.
В соответствии с четвертым аспектом настоящего изобретения предлагается устройство, содержащее формирователь вектора, сконфигурированный для формирования по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал; и решетчатый векторный квантователь, сконфигурированный для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров, выбора из списка ведущих классов по меньшей мере одного потенциального кодового вектора, определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, и транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования.
Устройство, в котором решетчатый векторный квантователь также сконфигурирован для выбора по меньшей мере одного масштабного коэффициента; при этом решетчатый векторный квантователь, сконфигурированный для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, также может быть сконфигурирован для определения расстояния на основе по меньшей мере одного масштабного коэффициента; решетчатый векторный квантователь, сконфигурированный для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может быть сконфигурирован для определения выходного масштабного коэффициента, связанного с потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и решетчатый векторный квантователь, сконфигурированный для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может быть сконфигурирован для применения выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.
Устройство также может содержать определитель параметров, сконфигурированный для разделения по меньшей мере одного звукового сигнала на временные кадры, и для определения вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.
При этом решетчатый векторный квантователь, сконфигурированный для сортировки по меньшей мере одного вектора параметров согласно порядку по меньшей мере одного из абсолютных кортежей вектора для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров, также может быть сконфигурирован для определения весов для определения взвешенного расстояния, для сортировки весов на основе порядка упомянутого по меньшей мере одного из абсолютных кортежей вектора для формирования вектора сортированных весов, и для применения вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.
Решетчатый векторный квантователь, сконфигурированный для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, также может быть сконфигурирован для формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, для корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет, и для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния.
Решетчатый векторный квантователь, сконфигурированный для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, также может быть сконфигурирован для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.
Решетчатый векторный квантователь, сконфигурированный для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также может быть сконфигурирован для определения индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, и для определения значения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.
Решетчатый векторный квантователь, сконфигурированный для транспонирования по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, также может быть сконфигурирован для сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по меньшей мере одного из абсолютных кортежей вектора.
Компьютерный программный продукт, обеспечивающий выполнение устройством описываемого способа.
Электронное устройство, может содержать описанное устройство.
Чипсет может включать описанное выше устройство.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для лучшего понимания сути настоящего изобретения далее в примерах приводятся ссылки на прилагаемые чертежи, на которых:
на фиг.1 схематично показано электронное устройство, в котором используются некоторые варианты осуществления настоящего изобретения;
на фиг. 2 схематично показана система кодека звукового сигнала в соответствии с некоторыми вариантами осуществления настоящего изобретения;
на фиг. 3 схематично показан кодер, изображенный на фиг. 2, в соответствии с некоторыми вариантами осуществления настоящего изобретения;
на фиг. 4 показан алгоритм работы кодера звукового сигнала, показанного на фиг. 3, в соответствии с некоторыми вариантами осуществления настоящего изобретения;
на фиг. 5 схематично показан решетчатый векторный квантователь, изображенный на фиг. 3, в соответствии с некоторыми вариантами осуществления настоящего изобретения; и
на фиг. 6 показан алгоритм работы решетчатого векторного квантователя, показанного на фиг. 5, в соответствии с некоторыми вариантами осуществления настоящего изобретения.
ОПИСАНИЕ НЕКОТОРЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯ
Ниже более подробно описываются возможные кодеки стереофонического и многоканального речевого и звукового сигналов, включая многоуровневые кодеки или кодеки звуковых и речевых сигналов с масштабируемой переменной скоростью.
При использовании современных подходов к кодированию с преобразованием может возникать проблема, связанная с тем, что применение эффективных решеток при сжатии может значительно улучшить квантование. Однако такие улучшения достигаются за счет существенного усложнения кодека.
Согласно подробно обсуждаемой в этом описании концепции осуществления настоящего изобретения предлагается подход, позволяющий значительно уменьшить сложность кодирования путем оценки искажения квантования в транспонированном векторном пространстве.
В этом отношении, вначале со ссылкой на фиг. 1 рассматривается блок-схема типового электронного прибора или устройства 10, которое может включать кодек, соответствующий варианту осуществления настоящего изобретения.
Устройство 10 может, например, представлять собой мобильный терминал или пользовательское оборудование системы беспроводной связи. В других вариантах осуществления устройство 10 может представлять собой аудио-видео оборудование, такое как видеокамера, телевизионный приемник, устройство звукозаписи или воспроизведения звуковых сигналов, например устройство записи/воспроизведения файлов формата mp3, устройство записи мультимедийных файлов (также известное как устройство записи/воспроизведения файлов формата mp4) или любой компьютер, подходящий для обработки звуковых сигналов.
Электронный прибор или устройство 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.
Процессор 21 в некоторых вариантах осуществления изобретения может быть сконфигурирован для выполнения различных программных кодов. Реализуемые программные коды в некоторых вариантах осуществления изобретения, как описывается ниже, могут содержать коды для кодирования или декодирования звукового сигнала. Реализуемые программные коды 23 могут в некоторых вариантах осуществления изобретения храниться, например, в памяти 22, из которой они при необходимости считываются процессором 21. В памяти 22 также может быть предусмотрен раздел 24 для хранения данных, например данных, закодированных в соответствии с настоящей заявкой.
Код кодирования и декодирования в вариантах осуществления настоящего изобретения может быть реализован, по меньшей мере частично, аппаратным и/или микропрограммным способом.
Пользовательский интерфейс (UI) 15 позволяет пользователю вводить команды в электронный прибор 10, например, с помощью клавиатуры, и/или получать информацию от электронного прибора 10, например, на дисплее. В некоторых вариантах осуществления функции ввода и вывода пользовательского интерфейса может выполнять сенсорный экран. Устройство 10 в некоторых вариантах осуществления содержит приемопередатчик (RX/TX) 13, позволяющий осуществлять связь с другим устройством, например, через сеть беспроводной связи.
Приемопередатчик 13 может осуществлять связь с другими устройствами с использованием любого подходящего известного протокола связи, например, в некоторых вариантах осуществления приемопередатчик 13 или приемопередающее средство может использовать подходящий протокол универсальной системы мобильной связи (UMTS, Universal Mobile Telecommunications System), протокол беспроводной локальной сети (WLAN, Wireless Local Area Network), такой, например, как IEEE 802.X, подходящий протокол радиочастотной связи на короткие расстояния, такой как Bluetooth или тракт связи для передачи данных в инфракрасном диапазоне (IRDA, Infrared Data Communication Pathway).
Следует понимать, что структура устройства 10 может быть дополнена или изменена различными способами.
Пользователь устройства 10, например, может применять микрофон 11 для ввода речевых или других звуковых сигналов, подлежащих передаче в некоторое другое устройство или сохранению в разделе 24 данных памяти 22. В некоторых вариантах осуществления для этого пользователем через пользовательский интерфейс 15 может активизироваться соответствующее приложение. Такое приложение в этих вариантах осуществления может запускаться процессором 21, и запускать выполнение процессором 21 кода, предназначенного для кодирования и хранящегося в памяти 22. Хотя в последующих примерах микрофон 11 сконфигурирован для формирования звуковых сигналов для ввода их в устройство, следует принимать во внимание, что входные звуковые сигналы могут приниматься из любого подходящего входного устройства, такого как память 22, в частности, из раздела 24 данных, хранимых в памяти 22, а в некоторых вариантах осуществления входной звуковой сигнал или по меньшей мере один звуковой сигнал может приниматься через приемопередатчик 13. Например, приемопередатчик 13 может быть сконфигурирован для приема звуковых сигналов, сформированных микрофонами, внешними по отношению к устройству 10, например, из оборудования Bluetooth, соединенного с устройством через приемопередатчик 13.
Аналого-цифровой преобразователь 14 в некоторых вариантах осуществления изобретения преобразует входной аналоговый звуковой сигнал в цифровой звуковой сигнал и подает этот сигнал в процессор 21. В некоторых вариантах осуществления изобретения микрофон 11 может содержать интегрированный микрофон и функциональный блок ADC и подавать цифровые звуковые сигналы для обработки непосредственно в процессор.
Процессор 21 в таких вариантах осуществления изобретения затем обрабатывает цифровой звуковой сигнал таким же образом, как описано со ссылкой на систему, показанную на фиг. 2, и в частности, со ссылкой на кодер, показанный на фиг. 3, и на элементы кодера, показанные на фиг. 5.
Результирующий битовый поток может в некоторых вариантах осуществления изобретения подаваться на приемопередатчик 13 для передачи в другое устройство. В альтернативном варианте закодированные данные звукового сигнала в некоторых вариантах осуществления изобретения могут сохраняться в разделе 24 данных памяти 22, например, для последующей передачи или последующего представления тем же устройством 10.
Устройство 10 в некоторых вариантах осуществления изобретения также может через приемопередатчик 13 принимать из другого устройства битовый поток, содержащий соответствующим образом закодированные данные. В этом примере процессор 21 может выполнять программный код для декодирования, хранимый в памяти 22. Процессор 21 в таких вариантах осуществления изобретения декодирует принятые данные и подает декодированные данные в цифро-аналоговый преобразователь 32. Цифро-аналоговый преобразователь 32 преобразует цифровые декодированные данные в аналоговый звуковой сигнал и в некоторых вариантах осуществления изобретения может выводить аналоговый звуковой сигнал через громкоговорители 33. В некоторых вариантах осуществления изобретения выполнение программного кода декодирования также может активизироваться приложением, вызываемым пользователем через пользовательский интерфейс 15.
Кроме того, принятые закодированные данные в некоторых вариантах осуществления изобретения могут не сразу выводиться через громкоговорители 33, а сохраняться в разделе 24 данных памяти 22, например, для последующего декодирования и воспроизведения или для декодирования и пересылки в другое устройство.
Следует принимать во внимание, что схематические структуры, описываемые со ссылкой на фиг. 3 и 5, и шаги способа, описываемые со ссылкой на фиг. 4 и 6, представляют только часть операций, выполняемых кодеком звукового сигнала, а конкретно те структуры и операции, которые соответствуют устройству или способу кодирования звукового сигнала, показанным в качестве примера реализации в устройстве, изображенном на фиг. 1.
Основные операции, выполняемые кодеками звуковых сигналов и реализуемые согласно вариантам осуществления настоящего изобретения, показаны на фиг. 2. Основные системы кодирования/декодирования звукового сигнала содержат как кодер, так и декодер, как схематично показано на фиг. 2. Однако следует принимать во внимание, что согласно некоторым вариантам осуществления изобретения в системе может быть реализован либо только кодер, либо только декодер, либо как кодер, так и декодер. Показанная на фиг. 2 система 102 содержит кодер 104, запоминающее устройство или мультимедийный канал 106 и декодер 108. Следует принимать во внимание, что, как было описано выше, в некоторых вариантах осуществления изобретения система может содержать или в ней может быть реализован один кодер 104, или как кодер 104, так и декодер 108.
Кодер 104 сжимает входной звуковой сигнал 110 и формирует битовый поток 112, который в некоторых вариантах осуществления может сохраняться или передаваться через мультимедийный канал 106. Кодер 104 в некоторых вариантах осуществления изобретения может содержать многоканальный кодер, который кодирует два или более звуковых сигналов.
Битовый поток 112 может приниматься в декодере 108. Декодер 108 распаковывает битовый поток 112 и формирует выходной звуковой сигнал 114. Декодер 108 может содержать преобразующий декодер, выполняющий часть всех операций декодирования. Декодер 108 также может содержать многоканальный декодер, который декодирует два или более звуковых сигналов. Скорость передачи битового потока 112 и качество выходного звукового сигнала 114 относительно входного сигнала 110 являются основными характеристиками, которые определяют производительность системы 102 кодирования.
На фиг. 3 схематично показан кодер 104 в соответствии с некоторыми вариантами осуществления настоящего изобретения.
На фиг. 4 показан алгоритм работы кодера 104 в соответствии с некоторыми вариантами осуществления настоящего изобретения.
Описываемая концепция вариантов осуществления настоящего изобретения заключается в определении кодирования и применении его к звуковым сигналам для реализации эффективного высококачественного кодирования с низкой битовой скоростью в реальном времени. В этом отношении на фиг. 3 показан пример кодера 104 в соответствии с некоторыми вариантами осуществления настоящего изобретения. Кроме того, со ссылкой на фиг. 4 более подробно описывается функционирование кодера 104. В последующих примерах, кодер сконфигурирован для формирования параметров частотной области, представляющих звуковой сигнал, и кодирования сформированных параметров частотной области с использованием подходящего способа решетчатого квантования вектора, однако следует понимать, что в некоторых вариантах осуществления описываемые параметры, используемые при решетчатом квантовании, могут представлять собой любые подходящие параметры, определяющие или представляющие звуковые сигналы или сигналы других типов (например, изображение или видеосигнал).
Кодер 104 в некоторых вариантах осуществления содержит блок 201 разделения на кадры или подходящее средство для разделения звукового сигнала. Блок 201 разделения на кадры сконфигурирован для приема звуковых сигналов (например, монофонического сигнала, стереофонического сигнала левого и правого каналов или любого представления многоканального звукового сигнала), для ввода звукового сигнала и для разделения или сегментирования данных звукового сигнала на секции или кадры, подходящие для преобразования частотной или другой области. Блок 201 разделения на кадры в некоторых вариантах осуществления изобретения также может быть сконфигурирован для оконной обработки этих кадров или секций данных звукового сигнала в соответствии с любой оконной функцией. Например, блок 201 разделения на кадры в некоторых вариантах осуществления может конфигурироваться для формирования кадров длительностью 20 мс, которые на 10 мс перекрывают каждый предшествующий и последующий кадр.
Операция формирования кадров звукового сигнала выполняется на шаге 501, изображенном на фиг. 4.
В некоторых вариантах осуществления кадры звукового сигнала могут передаваться в определитель 203 параметров.
В некоторых вариантах осуществления кодер содержит определитель 203 параметров, включающий подходящее средство для определения по меньшей мере одного параметра, представляющего входной звуковой сигнал(ы) или кадры входного звукового сигнала. В последующих примерах параметр представляет собой параметр частоты дискретного спектра (LSF, Line Spectral Frequency), однако следует принимать во внимание, что в некоторых вариантах осуществления изобретения может определяться любой подходящий параметр.
Например, в некоторых вариантах осуществления изобретения определитель параметров содержит преобразователь 203 или подходящее средство для преобразования. Преобразователь 203 в некоторых вариантах осуществления изобретения сконфигурирован для формирования представлений параметров частотной области (или другой подходящей области) этих звуковых сигналов. Эти представления параметров частотной области в некоторых вариантах осуществления изобретения могут передаваться в кодер 205 параметров.
В некоторых вариантах осуществления изобретения преобразователь 203 может быть сконфигурирован для выполнения с данными звукового сигнала любого подходящего преобразования из временной области в частотную. Например, преобразование из временной области в частотную может представлять собой дискретное преобразование Фурье (DFT, Discrete Fourier Transform), быстрое преобразование Фурье (FFT, Fast Fourier Transform), модифицированное дискретное косинусное преобразование (MDCT, Modified Discrete Cosine Transform). В последующих примерах используется быстрое преобразование Фурье (FFT).
Кроме того, преобразователь также может быть сконфигурирован для формирования отдельных представлений параметров области диапазона частот (представлений параметров поддиапазона) данных звукового сигнала каждого входного канала. Эти диапазоны могут размещаться любым удобным способом. Например, эти диапазоны могут располагаться линейно или распределяться в соответствии с восприятием или психоакустикой. Сформированные параметры могут представлять собой любые подходящие параметры.
Операция определения или формирования представлений параметров выполняется на шаге 503, изображенном на фиг. 4.
В некоторых вариантах осуществления представления, например параметры LSF, передаются в кодер 205 параметров.
В некоторых вариантах осуществления изобретения кодер 104 может содержать кодер 205 параметров. Кодер 205 параметров может быть сконфигурирован для приема представлений параметров входного звукового сигнала, например определенных параметров LSF. Кодер 205 в некоторых вариантах осуществления изобретения также может конфигурироваться для использования каждого из значений параметров LSF в качестве подвектора и комбинирования каждого подвектора для создания вектора для ввода в квантователь вектора. Другими словами, устройство может содержать формирователь вектора, сконфигурированный для формирования первого вектора параметров (или кортежей первого вектора, представляющего параметры), определяющих по меньшей мере один звуковой сигнал.
Выход квантователя вектора в некоторых вариантах осуществления изобретения представляет собой кодер, и, таким образом, выходные сигналы квантователя вектора являются «кодированными» или закодированными представлениями параметров звукового сигнала.
Операция кодирования или векторного квантования параметров выполняется на шаге 505, изображенном на фиг. 4.
В некоторых вариантах осуществления кодер 205 параметров содержит формирователь 451 вектора. Формирователь 451 вектора сконфигурирован для приема параметров LSF и для формирования из этих значений N-мерного вектора.
Операция формирования векторов из входных параметров выполняется на дополнительном шаге 551, изображенном на фиг. 4.
Сформированные векторы могут в некоторых вариантах осуществления передаваться в решетчатый векторный квантователь 453.
В некоторых вариантах осуществления кодер 205 параметров содержит решетчатый векторный квантователь 453. Решетчатый векторный квантователь 453 принимает входной вектор, сформированный на основе параметров LSF, и формирует ближайший смежный или NN-выход (nearest neighbour), который появляется в пределах определенной решетки и, таким образом, может быть декодирован с использованием аналогичной решетки в декодере.
Операция решетчатого квантования вектора выполняется на дополнительном шаге 553, изображенном на фиг. 4.
Закодированный сигнал может представлять собой выходной сигнал.
Операция вывода закодированного сигнала выполняется на шаге 507, изображенном на фиг. 4. Это, например, может быть операция вывода вектора, полученного на основе решетчатого квантования, выполняемая на дополнительном шаге 557, изображенном на фиг. 4.
На фиг. 5 показан пример решетчатого векторного квантователя 453 в соответствии с некоторыми вариантами осуществления настоящего изобретения. Решетчатый векторный квантователь 453в некоторых вариантах осуществления может определяться соответствующим программным кодом 23 компьютерной программы, которая хранится в памяти 22 носителя данных.
Перед ознакомлением с концепциями и вариантами осуществления настоящего изобретения вначале следует обсудить стандартное решетчатое квантование вектора. В некоторых решетчатых квантователях выполняется начальное формирование или определение набора потенциальных базисных кодовых векторов, при этом каждый определенный базисный кодовый вектор в этом наборе потенциальных базисных кодовых векторов связан с потенциальным базисным кодовым вектором другого набора потенциальных базисных кодовых векторов.
Каждый набор потенциальных базисных кодовых векторов содержит по меньшей мере один базисный кодовый вектор. Поскольку каждый набор базисных кодовых векторов связан по меньшей мере с одним представителем масштабного коэффициента из множества представителей масштабных коэффициентов, кодовый вектор может определяться на основе базисного кодового вектора из набора потенциальных базисных кодовых векторов и представителя масштабного коэффициента из по меньшей мере одного представителя масштабных коэффициентов, связанных с набором потенциальных базисных кодовых векторов. Другими словами, кодовый вектор может быть представлен на основе базисного кодового вектора, масштабированного с использованием соответствующего представителя масштабного коэффициента. Например, представитель масштабного коэффициента может представлять собой значение масштабного коэффициента, при этом кодовый вектор может определяться путем перемножения базисного кодового вектора и соответствующего значения масштабного коэффициента. Кроме того, в некоторых вариантах осуществления изобретения кодовый словарь формируется путем применения перестановки (со знаком) базисного вектора.
Например, по меньшей мере один набор базисных кодовых векторов связан по меньшей мере с двумя представителями масштабных коэффициентов.
Соответственно, в качестве примера кодовый словарь может содержать набор кодовых векторов, содержащий кодовые векторы, основанные на множестве наборов базисных кодовых векторов и на соответствующем по меньшей мере одном значении масштабного коэффициента, связанного с соответствующим набором базисных кодовых векторов из множества базисных кодовых векторов. Этот набор кодовых векторов для каждого базисного кодового вектора каждого набора базисных кодовых векторов и каждого по меньшей мере одного представителя масштабного коэффициента, связанного с соответствующим набором базисных кодовых векторов, может содержать кодовый вектор, основанный на соответствующем базисном кодовом векторе, масштабированном посредством соответствующего представителя масштабного коэффициента.
Например, указанные наборы базисных кодовых векторов могут представлять собой ведущие классы, каждый из которых содержит различный ведущий вектор и перестановки указанного ведущего вектора. Таким образом, указанный ведущий вектор и перестановки указанного ведущего вектора могут представлять базисные кодовые векторы соответствующего набора базисных кодовых векторов.
Множество наборов базисных кодовых векторов могут представлять подмножество второго множества наборов базисных кодовых векторов. Например, в предположении, что каждый набор базисных кодовых векторов представляет ведущий класс, множество ведущих классов может представлять подмножество второго множества ведущих классов. Таким образом, множество ведущих классов может рассматриваться как усеченное множество ведущих классов по отношению ко второму множеству ведущих классов.
Например, соответствующий потенциальный базисный кодовый вектор может определяться путем определения базисного кодового вектора по меньшей мере на основе одного базисного кодового вектора из соответствующего набора базисных кодовых векторов, ближайшего к входному вектору, подлежащему кодированию. Для нахождения базисного кодового вектора ближайшего по отношению к входному вектору, подлежащему кодированию, может использоваться подходящий критерий любого вида.
Например, потенциальный базисный кодовый вектор может определяться на основе ближайшего базисного кодового вектора по отношению к вычисленному по абсолютной величине входному вектору и на основе информации о знаках значений входного вектора, при этом данная информация может включать знак соответствующей позиции соответствующих значений во входном векторе и использоваться для назначения знаков значениям определенного потенциального базисного кодового вектора. Кроме того, в качестве примера может быть определен базисный кодовый вектор, ближайший к вычисленному по абсолютному значению входному вектору, содержащему абсолютные значения, соответствующие значениям входного вектора, при этом потенциальный базисный кодовый вектор представляет определенный ближайший базисный кодовый вектор, и знаки значений потенциального базисного кодового вектора соответствуют знакам значений входного вектора в той же позиции в векторе, при этом такое соотношение может выполняться, если паритет базисных кодовых векторов набора базисных кодовых векторов равен 0. В соответствии с другим примером, если паритет базисных кодовых векторов набора базисных кодовых векторов равен -1, знаки значений потенциального базисного кодового вектора могут назначаться в соответствии со знаками значений входного вектора, соответственно, в той же позиции вектора, и если существует четное количество отрицательных компонентов, наименьшее ненулевое абсолютное значение в потенциальном базисном кодовом векторе может изменять свой знак. В качестве другого примера, если паритет базисных кодовых векторов набора базисных кодовых векторов равен +1, знаки значений потенциального базисного кодового вектора могут назначаться в соответствии со знаками значений входного вектора, соответственно, в той же позиции вектора, и если существует нечетное количество отрицательных компонентов, наименьшее ненулевое абсолютное значение в потенциальном базисном кодовом векторе может изменять свой знак.
Кодовый вектор для кодирования входного вектора затем стандартным образом задается на основе набора определенных потенциальных кодовых векторов, при этом указанный набор определенных потенциальных кодовых векторов задает подмножество кодовых векторов, содержащее для каждого определенного потенциального базисного кодового вектора и каждого представителя масштабного коэффициента, связанного с набором базисных кодовых векторов соответствующего базисного кодового вектора, кодовый вектор, основанный на соответствующем потенциальном базисном кодовом векторе, масштабированном посредством соответствующего представителя масштабного коэффициента.
Соответственно, поиск кодового вектора для кодирования входного вектора выполнен в подмножестве кодовых векторов, заданных определенными потенциальными кодовыми векторами и соответствующим по меньшей мере одним представителем масштабного коэффициента, связанным с набором базисных кодовых векторов соответствующего определенного потенциального кодового вектора. Поскольку это подмножество кодовых векторов может представлять подмножество кодовых векторов, связанных с кодовым словарем, количество кодовых векторов в этом подмножестве кодовых векторов может быть меньше количества кодовых векторов в наборе кодовых векторов.
Например, каждый представитель масштабного коэффициента из множества представителей масштабных коэффициентов может быть связан по меньшей мере с одним набором кодовых векторов, при этом каждый набор кодовых векторов указанного по меньшей мере одного набора кодовых векторов, связанного с соответствующим представителем масштабного коэффициента, связан с набором базисных кодовых векторов из множества наборов базисных кодовых векторов, так что каждый набор кодовых векторов указанного по меньшей мере одного набора кодовых векторов, связанного с соответствующим представителем масштабного коэффициента, содержит кодовые векторы, получаемые путем масштабирования базисных векторов соответствующего ассоциированного набора базисных векторов с использованием соответствующего представителя масштабного коэффициента.
Соответственно, кодовые векторы по меньшей мере одного набора базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента из множества представителей масштабных коэффициентов, могут определяться на основе масштабирования базисных кодовых векторов каждого набора базисных кодовых векторов, связанных с представителем масштабного коэффициента, с использованием этого представителя масштабного коэффициента.
Например, в том случае, если указанные наборы базисных кодовых векторов представляют ведущие классы, по меньшей мере один набор базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента, может рассматриваться как объединение ведущих классов. Следует принимать во внимание, что обычно объединение ведущих классов не зависит от масштабного коэффициента. Таким образом, кодовый словарь может содержать по меньшей мере одно объединение ведущих классов, при этом каждое объединение ведущего класса связано по меньшей мере с одним представителем масштабного коэффициента и по меньшей мере с одним набором базисных кодовых векторов из множества базисных кодовых векторов. Например, по меньшей мере один представитель масштабного коэффициента может представлять множество представителей масштабных коэффициентов, которые могут включать по меньшей мере два представителя масштабных коэффициентов.
Так, например, bx, при x {0, 1, …, X-1} представляет набор базисных кодовых векторов из множества наборов базисных кодовых векторов, при этом X представляет количество наборов в множестве наборов базисных кодовых векторов. Каждый набор базисных кодовых векторов связан по меньшей мере с одним базисным кодовым вектором bx,y или содержит этот вектор, где Bx представляет количество базисных кодовых векторов соответствующего набора базисных кодовых векторов bx, то есть выполняется соотношение y {0, 1, …, Bx - 1}. Например, количество Bx базисных кодовых векторов в наборе базисных кодовых векторов может различаться для различных наборов базисных кодовых векторов, и/или оно может быть одинаковым по меньшей мере для двух наборов базисных кодовых векторов.
Другими словами, ведущим вектором является только один вектор. Совместно со всеми знаковыми перестановками ведущего вектора этот набор формирует ведущий класс ведущего вектора (или, как отмечалось в этом описании, базисные кодовые векторы). Если соединить несколько ведущих классов, формируется объединение ведущих классов. Затем к этому объединению/объединениям могут присоединяться один или более масштабных коэффициентов.
Таким образом, например, возможно определить кодовый вектор cx,z,y на основе базисного кодового вектора bx,y и представителя sz масштабного коэффициента, где индекс z представляет индекс соответствующего представителя масштабного коэффициента в множестве представителей масштабных коэффициентов so … sS-1, то есть выполняется соотношение z {0, 1, …, S - 1}.
Например, в том случае, если значения bx,y,t базисных кодовых векторов bx,y = [bx,y.0, bx,y,1, … bx,y,n-1] представляют абсолютные значения, где t {0, 1, … n-1}, и n представляет длину соответствующего базисного кодового вектора bx,y, и если вычисленный по абсолютному значению входной вектор используется для определения потенциального кодового вектора соответствующего набора базисных кодовых векторов, знак каждого значения bx,y,t в (t+1)-ой позиции определенного ближайшего базисного кодового вектора bx,y может назначаться на основе знака соответствующего значения it в (t+1)-ой позиции входного вектора i перед определением кодового вектора cx,z,y на основе базисного кодового вектора bx,y и представителя масштабного коэффициента sz.
Например, если 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 в потенциальном базисном кодовом векторе с наименьшим ненулевым абсолютным значением может изменять свой знак.
В одном из примеров кодовый вектор cx,z,y может определяться следующим образом: cx,z,y = [bx,y,0 ⋅ sz, bx,y,1 ⋅ sz, …, bx,y,n-1 ⋅ sz].
Каждый представитель масштабного коэффициента sz, где z {0, 1, …, S-1}, связан по меньшей мере с одним набором базисных кодовых векторов. Например, согласно одному из примеров этот соответствующий по меньшей мере один набор базисных кодовых векторов может быть представлен набором базисных кодовых векторов bx при x {0, 1, … nz - 1}, при этом nz может представлять количество наборов базисных кодовых векторов, связанных с соответствующим представителем масштабного коэффициента sz, где 0 < nz < X. На основе этой связи между соответствующим представителем масштабного коэффициента sz и по меньшей мере одним ассоциированным набором базисных кодовых векторов bx при x {0, 1, … nz - 1} может быть определен по меньшей мере один ассоциированный набор базисных кодовых векторов cx,z,y, где x {0, 1, …, nz - 1}, y {0, 1, …, Bx - 1} и z {0, 1, …, S - 1}.
Таким образом, например, структура вышеупомянутого кодового словаря может определяться множеством представителей масштабных коэффициентов sz, множеством наборов базисных кодовых векторов bx и связью между каждым представителем масштабного коэффициента с по меньшей мере одним ассоциированным набором базисных кодовых векторов.
Поскольку по меньшей мере один набор базисных кодовых векторов, например по меньшей мере набор базисных кодовых векторов b0, связан по меньшей мере с двумя представителями масштабных коэффициентов, тот же набор базисных кодовых векторов может использоваться для формирования кодовых векторов по меньшей мере одного набора кодовых векторов, связанных с первым представителем масштабного коэффициента, и для формирования кодовых векторов по меньшей мере одного набора кодовых векторов, связанных по меньшей мере с одним другим представителем масштабного коэффициента.
Для каждого набора базисных кодовых векторов из множества наборов базисных кодовых векторов возможно другими способами определить потенциальный базисный кодовый вектор для кодирования входного вектора.
Например, определение кодового вектора для кодирования входного вектора из подмножества кодовых векторов основывается на определении показателя искажения или расстояния, или значения ошибки.
В таких примерах выбирается представление масштабного коэффициента из множества представлений масштабных коэффициентов.
Кроме того, выбирается определенный потенциальный базисный кодовый вектор из набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента.
Затем может быть определен кодовый вектор на основе выбранного потенциального базисного кодового вектора и выбранного представления масштабного коэффициента, при этом такое определение кодового вектора может выполняться согласно представленному в этом описании способу.
В некоторых примерах, основанных на определенном кодовом векторе и входном векторе, определяется показатель искажения. Например, указанный показатель искажения может основываться на любом виде подходящего расстояния между определенным кодовым вектором и входным вектором. Например, может использоваться расстояние Хемминга или расстояние Эвклида, или любое другое расстояние. Например, определение кодового вектора может быть опущено, и показатель искажения может рассчитываться путем специфического рассмотрения соответствующего кодового вектора, связанного с выбранным представлением масштабного коэффициента, и набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента.
Например, если cx,z,y = [cx,z,y,o, cx,z,1, …, cx,z,n-1] представляет кодовый вектор, определенный на шаге 430, и i = [i0, i1, …, in-1] представляет входной вектор, расстояние d может вычисляться по следующей формуле:
Это расстояние d, представленное приведенной выше формулой, может быть заменено на расстояние d', вычисляемое по следующей формуле:
В другом примере, если показатель искажения определяется на основе весовой функции, расстояние d, представленное приведенной выше формулой, может быть изменено следующим образом:
где wk представляет весовые коэффициенты весовой функции.
Соответственно, расстояние d', представленное приведенной выше формулой, может быть взвешено посредством весовой функции следующим образом:
Например, показатель искажения d или d', или dw, или dw' может сохраняться, если он является первым определенным показателем искажения, или он может сравниваться с сохраненным показателем искажения, при этом сохраненный показатель искажения заменяется, если новый определенный показатель искажения лучше сохраненного. Кроме того, может сохраняться кодовый вектор, связанный с сохраненным показателем искажения, или идентификатор этого кодового вектора.
Затем, например, может выполняться проверка, имеются ли какие-либо последующие наборы базисных кодовых векторов, связанные с выбранным представлением масштабного коэффициента. Если это так, то выбирается определенный потенциальный базисный кодовый вектор из этого следующего набора базисных кодовых векторов, связанных с выбранным представлением масштабного коэффициента. Если нет, выполняется проверка со следующим представлением масштабного коэффициента из множества представлений масштабных коэффициентов.
Если существует следующее представление масштабного коэффициента из множества представлений масштабных коэффициентов, то выбирается следующее представление масштабного коэффициента, в противном случае для кодирования входного вектора может выбираться кодовый вектор, связанный с наилучшим показателем расстояния.
Например, наборы базисных кодовых векторов могут представлять собой ведущие классы, каждый из которых содержит различный ведущий вектор и перестановки указанного ведущего вектора. Таким образом, ведущий вектор и перестановки указанного ведущего вектора могут представлять базисные кодовые векторы соответствующего набора базисных кодовых векторов. Например, ведущий вектор представляет собой n-мерный вектор (где n - целое число), компоненты (положительные) которого упорядочены (например, в порядке убывания). Ведущий класс, соответствующий ведущему вектору, включает ведущий вектор и все векторы, получаемые путем всех знаковых перестановок ведущего вектора (с некоторыми возможными ограничениями).
Объединение ведущих классов может определяться набором базисных кодовых векторов, связанных с одинаковым представлением масштабного коэффициента из множества представлений масштабных коэффициентов, и соответствующим представлением масштабного коэффициента. Например, объединение ведущих классов может быть связано с набором кодовых векторов, полученных путем масштабирования базисных кодовых векторов ассоциированного набора базисных кодовых векторов с использованием представления масштабного коэффициента.
Такое объединение ведущих классов можно рассматривать как усечение. Таким образом, если во множество представлений масштабных коэффициентов входит n представлений масштабных коэффициентов, то может быть определено n объединений ведущих классов, каждое из которых задается соответствующим представлением масштабного коэффициента и набором базисных кодовых векторов, связанных с соответствующим представлением масштабного коэффициента.
Соответственно, множество представлений масштабных коэффициентов и множество наборов базисных кодовых векторов могут определять объединение ведущих классов и, таким образом, определять кодовый словарь, при этом, например, каждое объединение ведущих классов может рассматриваться как объединение масштабированных ведущих классов.
Кодовые словари, используемые в этих кодеках речевого и звукового сигналов, могут, например, основываться на решетчатых структурах, как описывается в ссылочном документе авторов 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+, однако также могут рассматриваться любые другие хорошо подходящие схемы решетчатого квантования.
Например, наборы базисных кодовых векторов являются ведущими классами, при этом каждый ведущий класс содержит различные ведущие векторы и перестановки указанного ведущего вектора, и каждый ведущий класс представляет n-мерный вектор, содержащий n абсолютных значений, упорядоченных по убыванию или по возрастанию.
Ведущий вектор 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-е наименьшее значение.
Значение Ik-1 соответствующего ведущего вектора, которое представляет значение в k-ой позиции в соответствующем ведущем векторе, может назначаться позиции в потенциальном базисном кодовом векторе, соответствующей позиции k-го наибольшего абсолютного значения (в случае упорядоченного по убыванию ведущего вектора) или позиции k-го наименьшего абсолютного значения (в случае упорядоченного по возрастанию ведущего вектора) во входном векторе. Например, эта позиция может обозначаться как позиция m. Например, потенциальный базисный кодовый вектор может быть представлен как p = [p0, p1, …, pn-1].
В одном из возможных примеров входной вектор может быть представлен следующим образом: i = [-2.4, 5.0, -1.3, 0.2], при этом соответствующий вычисленный по абсолютному значению вектор может быть представлен следующим образом: 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.
Кроме того, знак (+ или -) назначенного значения в потенциальном базисном кодовом векторе pm-1 устанавливается в соответствии со знаком значения во входном векторе, связанным с k-м наибольшим абсолютным значением. Соответственно, может выполняться равенство
pm-1 = Ik-1 ⋅ sign(im-1).
Таким образом, согласно одному из примеров входного вектора могут выполняться соотношения i = [-2.4, 5.0, -1.3, 0.2], p = I0, поскольку значение i1 = 5.0 положительно.
Счетчик "к" позиции может инкрементироваться, и может осуществляться проверка, существует ли другое значение в ведущем векторе, то есть, выполняется ли неравенство k < n.
Если значение существует, выполнение способа продолжается, и в одном из примеров относительно позиции k = 2 значение 2.4 в позиции m=1 представляет 2-е наибольшее (k-е наибольшее) абсолютное значение во входном векторе. Таким образом, может выполняться соотношение P0 = l1 ⋅ sign(i0) = -l1 для назначения I1 с учетом знака, поскольку значение I0 = -2.4 во входном векторе отрицательно.
Таким образом, в одном из примеров могут выполняться итерации цикла путем перехода к последующим позициям ведущего вектора следующим образом:
k = 3 → m = 3 → P2 = I2 ⋅ sign(i2) = -I2 ; и
k = 4 → m = 4 → P3 = I3 ⋅ sign(i3) = +I3
Таким образом, соответствующий потенциальный базисный кодовый вектор, полученный приведенным в примере способом, в результате может выглядеть следующим образом: p = [-I1, I0, -I2, I3], если соответствующий ведущий вектор I упорядочен по убыванию значений.
Если соответствующий ведущий вектор I упорядочен по возрастанию значений, то описанный выше способ может выполняться с использованием значения m, представляющего позицию k-го наименьшего значения в вычисленном по абсолютной величине входном векторе, при этом может выполняться следующее соотношение: pm-1 = Ik-1 ⋅ sign(im-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.
Таким образом, этот ближайший базисный кодовый вектор bx,y, представляющий потенциальный кодовый вектор p, может использоваться для определения кодового вектора cx,z,y на основе ближайшего базисного кодового вектора bx,y и соответствующего представителя масштабного коэффициента sz, как было описано выше.
Для каждого усечения назначаются различные представители масштабного коэффициента (например, путем обучения), например:
float scale[] = {0.8, 1.2, 2.7};
Соответственно, например, первый набор кодовых векторов из множества кодовых векторов кодового справочника определяется первым усечением, масштабированным посредством первого представления масштабного коэффициента 0.8, второй набор кодовых векторов из множества кодовых векторов кодового справочника определяется вторым усечением, масштабированным посредством второго представления масштабного коэффициента 1.2, и третий набор кодовых векторов из множества кодовых векторов кодового справочника определяется третьим усечением, масштабированным посредством третьего представления масштабного коэффициента 2.7, в результате кодовый справочник имеет решетчатую структуру с множеством масштабных коэффициентов.
В качестве примера поиск в решетчатой структуре с множеством масштабных коэффициентов может рассматриваться в виде двух фаз: на первой фазе может вычисляться потенциальный кодовый вектор для каждого ведущего класса, то есть для каждого набора базисных кодовых векторов, а на второй фазе может вычисляться искажение только для потенциальных кодовых векторов.
Например, функция вычисления абсолютного значения может применяться к входному вектору i таким образом, чтобы абсолютный входной вектор ia содержал абсолютные значения вектора i, и затем абсолютный входной вектор мог быть отсортирован в убывающем (или, в альтернативном варианте, в возрастающем) порядке.
Например, представление индекса может включать представителей, указывающих индексы каждого входного вектора i, абсолютные значения которого упорядочены по убыванию (или по возрастанию). Например, указанное представление индексов может представлять собой массив 'indx' целых чисел.
Например, если входной вектор представлен как [-2.4 5.0 -1,3 0.2], вектор, вычисленный по абсолютному значению, представлен как [2.4 5.0 1.3 0.2], и массив 'indx' представлен как [1 0 2 3]. Поскольку ведущие векторы могут быть упорядочены по убыванию, в процессе выполнения алгоритма поиска ближайшего смежного вектора первое значение ведущего вектора может быть назначено позиции, соответствующей компоненту с наибольшим абсолютным значением входного вектора и т.д.
В следующих примерах, не ограничивающих суть настоящего изобретения, переменная 'idx_lead_max' предназначена для хранения максимального количества ведущих классов во всех усечениях, которые могут соответствовать X. В этом примере их может быть 9. Соответственно, 9 наборов базисных кодовых векторов определяются посредством 9 ведущих классов, при этом n-й ведущий класс определяется ссылкой &pl[n-1].
Например, в массиве 'sign' могут храниться знаки компонентов входного вектора.
/* Первая часть поиска: вычисление всех потенциальных кодовых векторов */
Внешний цикл, определяемый счетчиком u, может рассматриваться для связи каждого значения u с соответствующим ведущим вектором. Таким образом, согласно счетчику u выбирается соответствующий набор базисных кодовых векторов с использованием внешнего цикла, поскольку каждый ведущий вектор соответствует различным наборам базисных кодовых векторов из множества базисных кодовых векторов.
Внутренний цикл, определяемый целым значением j, может рассматриваться для определения потенциального базисного кодового вектора, связанного с выбранным набором базисных кодовых векторов, при этом переменная j_crt указывает позицию (j+1)-го наибольшего абсолютного значения во входном векторе.
Таким образом, различные потенциальные базисные кодовые векторы cv_pot определяются посредством данного примера первой части поиска.
Вторая часть поиска может использоваться для определения кодового вектора для кодирования входного вектора на основе подмножества кодовых векторов.
/* Вторая часть поиска */
Внешний цикл может определяться счетчиком I, который вводится для выбора одного представления масштабного коэффициента scale[I] из множества представлений масштабных коэффициентов.
Переменная LATTICE_DIM определяет длину кодовых векторов, которая может соответствовать длине входного вектора, подлежащего кодированию.
Затем вычисляются значения ws1[k] и ws2[k] для каждого "к" из ряда (0, …, LATTICE_DIM), которые можно рассматривать как часть показателя искажения (X3), которой не зависит от потенциального базисного кодового вектора. Величина w[k] представляет величину весовой функции для каждого 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-й базисный кодовый вектор этого набора базисных кодовых векторов.
Для каждого из этих базисных кодовых векторов и выбранного представителя масштабного коэффициента, может определяться соответствующий показатель искажения для кодового вектора, связанного с соответствующим базисным кодовым вектором и выбранным представителем масштабного коэффициента, например, следующим образом:
.
Для представления наилучшего показателя искажения определяется показатель искажения с наименьшим значением, при этом кодовый вектор, связанный с кодовым вектором с таким показателем искажения может использоваться для кодирования входного вектора. Например, этот кодовый вектор может определяться наилучшим представлением масштабного коэффициента и наилучшим потенциальным базисным кодовым вектором из набора потенциальных базисных кодовых векторов.
Приведенные в этом описании варианты осуществления настоящего изобретения уменьшают сложность процесса квантования вектора не за счет вычисления массива cv_pot потенциальных кодовых векторов, а в результате применения отсортированной по абсолютному значению версии входного вектора и определения или формирования вычисления искажения в подходящем транспонированном пространстве.
В некоторых вариантах осуществления изобретения решетчатый векторный квантователь содержит сортировщик 402 входного вектора. Сортировщик 402 входного вектора или подходящее средство для сортировки входного вектора могут быть сконфигурированы для приема входного вектора.
Операция приема входного вектора выполняется на шаге 501, изображенном на фиг. 6.
Решетчатый векторный квантователь и сортировщик 402 входного вектора сконфигурированы для сортировки входного вектора в порядке убывания абсолютных значений (следует иметь в виду, что в некоторых вариантах осуществления сортировка может выполняться в порядке возрастания абсолютных значений при внесении подходящих изменений в приводимые ниже операции).
Таким образом, если, например, входной вектор представлен следующим образом:
I = [-2.4 5.0 -1.3 0.2],
вектор, вычисленный по абсолютному значению, выглядит следующим образом:
absi = [2.4 5.0 1.3 0.2],
отсортированный вектор, вычисленный по абсолютному значению, в данном случае определяется следующим образом:
cv_pot1 = [5.0 2.4 1.3 0.2],
и индекс 'indx' перестановок при сортировке = [1 0 2 3].
Операция сортировки входного вектора выполняется на шаге 503, изображенном на фиг. 6.
Сортировщик входного вектора затем может передать отсортированный вектор и информацию о перестановках при сортировке в определитель 403 кодового вектора.
В некоторых вариантах осуществления решетчатый векторный квантователь 453 содержит определитель 401 потенциального кодового вектора. Определитель 401 потенциального кодового вектора или подходящее средство для определения потенциального кодового вектора сконфигурированы для хранения или формирования ведущих классов, используемых для формирования кодовых векторов.
Например, ведущие классы могут определяться следующим образом (в значении Q1, другими словами, умноженные на 2):
Эти ведущие классы в некоторых вариантах осуществления могут передаваться в определитель 403 кодового вектора.
В некоторых вариантах осуществления решетчатый векторный квантователь 453 содержит определитель 403 кодового вектора. Определитель 403 кодового вектора или подходящее средство для определения кодового вектора могут в некоторых вариантах осуществления принимать ведущие классы, а также отсортированный входной вектор и вектор перестановок. Определитель кодового вектора затем может на основе этих значений определить выходной кодовый вектор, связанный с входным вектором.
Если определяемое расстояние представляет собой взвешенное евклидово расстояние, то в некоторых вариантах осуществления веса транспонируются в соответствии с вектором перестановок, и формируется промежуточное произведение входного вектора, при этом следует принимать во внимание, что в некоторых вариантах осуществления веса постоянны или операция взвешивания является необязательной, при этом используется невзвешенное евклидово расстояние.
Пример такого процесса представлен посредством следующего кода.
/* вычисление промежуточного произведения между транспонированными весами и отсортированным входным вектором */
Операция транспонирования и применения весов для формирования промежуточного произведения на основе отсортированного входного вектора и транспонированных весов выполняется на шаге 505, показанном на фиг. 6.
В некоторых вариантах осуществления определитель кодового вектора может определять компоненты sum1 и sum2 расстояния для первого значения scale[0] масштабного коэффициента.
Эта операция может выполняться посредством следующих шагов.
Во-первых, выполняется инициализация масштабного коэффициента и квадрата значений масштабного коэффициента для первого масштабного коэффициента scale[0].
Операция инициализации масштабного коэффициента и квадрата значений масштабных коэффициентов выполняется на шаге 508, показанном на фиг. 6.
Во-вторых, выбирается ведущий вектор из матрицы ведущих классов. Пример матрицы показан выше в виде матрицы pl_crt.
Операция выбора ведущего вектора выполняется на шаге 507, изображенном на фиг. 6.
В-третьих, формируются промежуточные значения sum1 и sum2 расстояния на основе промежуточных значений и выбранного ведущего вектора.
Операция формирования промежуточных значений на основе выбранного ведущего вектора выполняется на шаге 509, изображенном на фиг. 6.
В-четвертых, выполняется проверка условий паритета, когда ведущий вектор не достигает 7й позиции, и корректировка значения sum1, если количество отрицательных знаков во входном векторе не удовлетворяет ограничению, наложенному на паритет ведущего класса.
Операция проверки условий паритета, когда ведущий вектор не достигает 7й позиции, и корректировки значения sum1, если количество отрицательных знаков во входном векторе не удовлетворяет ограничению, наложенному на паритет ведущего класса, выполняется на шаге 511, изображенном на фиг. 6.
В-пятых, определяется расстояние или значение ошибки на основе значений sum1 и sum2, и если текущее расстояние для ведущего вектора является наименьшим, указывается индекс наименьшего вектора.
Операция определения расстояния для ведущих векторов выполняется на шаге 513, изображенном на фиг. 6.
Затем операция может повторяться в цикле, пока не будут выбраны все ведущие векторы.
Операция проверки, выбраны ли все ведущие векторы, и возврата к началу цикла, если выбраны не все ведущие векторы, выполняется на шаге 514, изображенном на фиг. 6.
Эти шаги могут быть реализованы посредством показанного ниже кода.
Затем в некоторых вариантах осуществления определитель кодового вектора может быть сконфигурирован для использования значений sum1 и sum2 для определения расстояний искажения для других масштабных коэффициентов. Кроме того, выполняется аналогичная операция проверки на «наилучшее» значение масштабного коэффициента.
Операция определения расстояния искажения для других масштабных коэффициентов выполняется на шаге 515, изображенном на фиг. 6.
Операция определения расстояния искажения для других масштабных коэффициентов с использованием значений sum1 и sum2 может быть реализована посредством следующего примера кода.
Кроме того, в некоторых вариантах осуществления определитель кодового вектора может быть сконфигурирован для вычисления результирующего кодового вектора 'cv_out' после нахождения наилучшего ведущего класса и наилучшего масштабного коэффициента.
Операция выполнения обратного транспонирования для вычисления кодового вектора выполняется на шаге 517, изображенном на фиг. 6.
В некоторых вариантах осуществления операция вычисления кодового вектора может быть реализована посредством следующего примера кода.
/* обратная перестановка */
В некоторых вариантах осуществления вычисление переменных sum1 и sum2 выполняется до достижения количества ведущих векторов из первого усечения (no_leaders[0]), и это означает, что количество ведущих векторов должно быть упорядочено по убыванию, как и соответствующие им масштабные коэффициенты.
В таких вариантах осуществления дополнительно уменьшается сложность, поскольку не требуется рассчитывать максимальное количество ведущих векторов для одной структуры, так как известно, что оно находится на первой позиции.
Следует принимать во внимание, что в наибольшей степени сложность уменьшается вследствие того, что транспонировать приходится не все ведущие векторы, а только наилучший из них. Вычисление выполняется с использованием положительных значений (как ведущий вектор, так и входной вектор представлены абсолютными величинами), что допустимо, пока компонент входного и квантованного векторов имеют одинаковый знак.
Различие в знаках влияет в том случае, если существует ограничение на паритет (нечетное или четное количество отрицательных компонентов) в рассматриваемом ведущем векторе и это ограничение не учитывается входным вектором. В этом случае знак квантованного значения наименьших компонентов входного вектора изменяется. Наименьший компонент входного вектора соответствует последнему компоненту в транспонированном пространстве. Поэтому первый цикл вычисления sum1 и sum2 выглядит следующим образом: "while(l < LATTICE_DIM - 1)". На самом деле не транспонированное пространство в этом случае соответствует наименьшему значению = indx[LATTICE_DIM - 1]. LATTICE_DIM представляет собой размер рассматриваемой решетки.
Хотя в приведенных выше примерах описываются варианты осуществления настоящего изобретения, работающие в устройстве 10, следует принимать во внимание, что изобретение, как описано ниже, может быть реализовано как часть любого кодека звукового (или речевого) сигнала, включая любой кодек звукового (или речевого) сигнала с переменной/адаптивной скоростью. Так, например, варианты осуществления настоящего изобретения могут быть реализованы в кодеке звукового сигнала, который может выполнять кодирование звуковых сигналов, передаваемых по фиксированным или проводным линиям связи.
Таким образом, пользовательское оборудование может содержать кодек звукового сигнала, подобный тем, что описаны в представленных выше вариантах осуществления настоящего изобретения.
Следует отметить, что термин пользовательское оборудование охватывает пользовательское оборудование беспроводной связи любого подходящего типа, например мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.
Кроме того, элементы наземной сети мобильной связи общего пользования (PLMN, public land mobile network) также могут содержать описанные выше кодеки звукового сигнала.
В целом, различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратуры или специализированных схем, программного обеспечения, логических схем или любой комбинации указанных средств. Например, некоторые аспекты могут быть реализованы в виде аппаратных средств, в то время как другие аспекты могут быть реализованы в виде микропрограммного или программного обеспечения, которое может выполняться контроллером, микропроцессором или другим вычислительным устройством, хотя изобретение не ограничено только перечисленными средствами. Хотя различные аспекты настоящей заявки могут быть проиллюстрированы и описаны в виде блок-схем, алгоритмов или с использованием некоторых других графических представлений, достаточно очевидно, что описанные здесь блоки, устройства, системы, технологии или способы могут быть реализованы (не ограничиваясь приведенными примерами) в виде аппаратного, программного, микропрограммного обеспечения, специализированных схем или логических схем, универсальных аппаратных средств или контроллеров, или других вычислительных устройств, или некоторой комбинации указанных средств.
Варианты осуществления этого изобретения могут быть реализованы посредством компьютерного программного обеспечения, выполняемого процессором данных мобильного устройства, например блоком процессора, или посредством аппаратного обеспечения, или посредством комбинации программного и аппаратного обеспечения. Кроме того, в этом отношении следует отметить, что различные показанные на чертежах блоки логических алгоритмов могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию шагов программы и логических схем, блоков и функций.
Память может быть любого типа, подходящего к локальной технической среде, и может быть реализована с использованием любых подходящих технологий хранения данных и представлять собой, например, устройства полупроводниковой памяти, устройства и системы магнитной памяти, устройства и системы оптической памяти, постоянное запоминающее устройство и съемные блоки памяти. Процессоры данных могут быть любого типа, подходящего для локальной технической среды, и могут, например, содержать один или более универсальных компьютеров, специализированных компьютеров, микропроцессоров, цифровых сигнальных процессоров (DSP, Digital Signal Processor), специализированных интегральных схем (ASIC, Specific Integrated Circuit), логических схем и процессоров, основанных на многоядерной архитектуре, а также другие подобные устройства.
Варианты осуществления настоящего изобретения на практике могут быть выполнены в виде различных компонентов, таких как модули интегральных схем. В целом, конструирование интегральных схем является в высшей степени автоматизированным процессом. Имеются комплексные и эффективные программные средства для преобразования конструкции логического уровня в полупроводниковую схему, подготовленную для травления и формирования полупроводниковой подложки.
Программы, производимые, например, компаниями Synopsys, Inc., расположенной в Маунтин-Вью, Калифорния, и Cadence Design, расположенной в Сан Хосе, Калифорния, автоматически разводят проводники и размещают компоненты на полупроводниковом кристалле с использованием четко установленных правил конструирования, а также библиотек, в которых хранятся заранее записанные конструктивные модули. По окончании разработки полупроводниковой схемы, полученная в результате конструкция в стандартизованном электронном формате (например, Opus, GDSII и т.п.) может быть передана в средство производства полупроводникового устройства или производственный модуль ("fab") для изготовления.
Используемый в этой заявке термин "схема" относится ко всем следующим компонентам:
только к аппаратным реализациям схем (таким как реализации, выполненные только в виде аналоговых и/или цифровых схем); и
к комбинации схем и программного обеспечения (и/или микропрограммного обеспечения), таким как: (i) комбинация процессора(-ов) или (ii) сочетание процессора(-ов)/программного обеспечения (включая цифровой сигнальный процессор(ы)), программного обеспечения и памяти, которые совместно обеспечивают выполнение устройством, таким как мобильный телефон или сервер, различных функций; и
(c) к схемам, таким как микропроцессор(ы) или компонент микропроцессора(-ов), для работы которого требуется программное или микропрограммное обеспечение, даже если оно физически не установлено.
Это определение "схема" применимо ко всем использованиям этого термина в данной заявке, включая любые пункты формулы изобретения. В качестве другого примера термина "схема", используемого в этой заявке, можно привести реализацию обычного процессора (или множества процессоров), или компонента процессора и выполняемого им (или ими) программного или микропрограммного обеспечения. Термин "схема" также относится, например (в том числе, если это применимо к конкретному пункту формулы изобретения), к интегральной схеме обработки сигнала основной полосы частот или к интегральной схеме прикладного процессора в мобильном телефоне, или к подобной интегральной схеме в сервере, в устройстве сотовой сети или в другом сетевом устройстве.
Приведенное описание посредством типовых примеров, не ограничивающих возможности реализации изобретения, предоставляет полное и информативное описание примеров осуществления настоящего изобретения. Однако специалисту в данной области техники в свете изложенного описания, изученного в совокупности с прилагаемыми чертежами и формулой изобретения, могут быть очевидны различные модификации и адаптации. Тем не менее, любые виды таких и подобных модификаций, изложенных принципов должны оставаться в пределах объема настоящего изобретения, определенного в прилагаемой формуле изобретения.
Изобретение относится к области вычислительной техники для кодирования аудиоданных. Технический результат заключается в уменьшении сложности кодирования путем оценки искажения квантования в транспонированном векторном пространстве. Технический результат достигается за счет определения расстояния между потенциальным кодовым вектором и упорядоченным вектором параметров путем формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между потенциальным кодовым вектором и упорядоченным вектором параметров, корректировки знака первого компонента расстояния, когда потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определения расстояния между по меньшей мере одним потенциальным кодовым вектором и упорядоченным вектором параметров на основе первого и второго компонентов расстояния; определения ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и сортировки ведущего класса путем обратного упорядочения по убыванию на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров. 5 н. и 10 з.п. ф-лы, 6 ил.
1. Способ кодирования звуковых сигналов, включающий:
формирование по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал;
сортировку компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров;
выбор из списка ведущих классов по меньшей мере одного потенциального кодового вектора;
определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров путем формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, корректировки знака первого компонента расстояния, когда по меньшей мере один потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния;
определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и
сортировку по меньшей мере одного ведущего класса путем обратного упорядочения по убыванию на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров.
2. Способ по п. 1, также включающий:
выбор по меньшей мере одного масштабного коэффициента;
при этом определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также включает определение расстояния на основе по меньшей мере одного масштабного коэффициента;
определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также включает определение выходного масштабного коэффициента, связанного с упомянутым потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и
сортировку по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, включает применение выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.
3. Способ по п. 1 или 2, отличающийся тем, что формирование первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, включает:
разделение по меньшей мере одного звукового сигнала на временные кадры; и
определение вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.
4. Способ по п. 1 или 2, отличающийся тем, что сортировка компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров включает:
определение весов для определения взвешенного расстояния;
сортировку весов на основе порядка убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования вектора сортированных весов; и
применение вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.
5. Способ по п. 1, отличающийся тем, что определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также включает определение расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.
6. Способ по п. 1 или 2, отличающийся тем, что определение по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, включает:
определение индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; и
определение значения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения значений масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.
7. Устройство для кодирования звуковых сигналов, содержащее:
средство для формирования по меньшей мере одного вектора параметров, определяющих по меньшей мере один звуковой сигнал;
средство для сортировки компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров;
средство для выбора из списка ведущих классов по меньшей мере одного потенциального кодового вектора;
средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров путем формирования первого и второго компонентов расстояния на основе первого значения масштабного коэффициента, при этом первый и второй компоненты расстояния связаны с расстоянием между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров, корректировки знака первого компонента расстояния, когда по меньшей мере один потенциальный кодовый вектор не проходит проверку ограничения на паритет, и определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния;
средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние; и
средство для сортировки по меньшей мере одного ведущего класса путем обратного упорядочения по убыванию на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров.
8. Устройство по п. 7, также включающее:
средство для выбора по меньшей мере одного масштабного коэффициента;
при этом средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также содержит средство для определения расстояния на основе по меньшей мере одного масштабного коэффициента;
средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, также содержит средство для определения выходного масштабного коэффициента, связанного с упомянутым потенциальным кодовым вектором и масштабным коэффициентом, который формирует наименьшее ассоциированное расстояние; и
средство для сортировки по меньшей мере одного ведущего класса для формирования выходного кодового вектора, полученного на основе решетчатого квантования, содержит средство для применения выходного масштабного коэффициента к выходному кодовому вектору, полученному на основе решетчатого квантования.
9. Устройство по п. 7 или 8, отличающееся тем, что средство для формирования первого вектора параметров, определяющих по меньшей мере один звуковой сигнал, включает:
средство для разделения по меньшей мере одного звукового сигнала на временные кадры; и
средство для определения вектора параметров частот дискретного спектра, связанных по меньшей мере с одним из временных кадров звукового сигнала.
10. Устройство по п. 7 или 8, отличающееся тем, что средство для сортировки компонентов упомянутого по меньшей мере одного вектора параметров согласно порядку убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования по меньшей мере одного ассоциированного упорядоченного вектора параметров содержит:
средство для определения весов для определения взвешенного расстояния;
средство для сортировки весов на основе порядка убывания на основе абсолютных значений компонентов упомянутого по меньшей мере одного вектора параметров для формирования вектора сортированных весов; и
средство для применения вектора сортированных весов по меньшей мере к одному упорядоченному вектору параметров.
11. Устройство по п. 7, отличающееся тем, что средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров также содержит средство для определения расстояния между по меньшей мере одним потенциальным кодовым вектором и по меньшей мере одним упорядоченным вектором параметров на основе первого и второго компонентов расстояния, а также на основе значений масштабных коэффициентов.
12. Устройство по п. 7 или 8, отличающееся тем, что средство для определения по меньшей мере одного ведущего класса, связанного с потенциальным кодовым вектором, который формирует наименьшее ассоциированное расстояние, содержит:
средство для определения индекса потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние; и
средство для определения значения масштабного коэффициента потенциального кодового вектора, который формирует наименьшее ассоциированное расстояние, путем применения значений масштабных коэффициентов только к потенциальному кодовому вектору, который формирует наименьшее ассоциированное расстояние.
13. Носитель данных, содержащий компьютерную программу, которая, при ее исполнении, обеспечивает выполнение устройством способа по любому из пп. 1-6.
14. Электронное устройство для кодирования звуковых сигналов, содержащее устройство по пп. 7-12.
15. Чипсет, включающий устройство по пп. 7-12.
US 20080097755 A1, 24.04.2008 | |||
US 20110137645 A1, 09.06.2011 | |||
US 20100274556 A1, 28.10.2010 | |||
US 20050285764 A1, 29.12.2005 | |||
АДАПТИВНОЕ ОСТАТОЧНОЕ АУДИОКОДИРОВАНИЕ | 2006 |
|
RU2380766C2 |
Авторы
Даты
2022-03-31—Публикация
2018-08-17—Подача