КОДЕР, ДЕКОДЕР, СИСТЕМА И СПОСОБЫ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ
ENCODER, DECODER, SYSTEM AND METHODS OF ENCODING AND DECODING

Варианты выполнения относятся к кодеру, декодеру, системе, содержащей кодер и декодер, способу кодирования и способу декодирования. Некоторые варианты относятся к устройствам и способам оптимального квантования остаточных блоков в кодировании источника. Некоторые варианты выполнения относятся к схеме кодирования источника с использованием энтропийного кодирования для кодирования квантованного сигнала в определенном числе битов.
Энтропийное кодирование является эффективным инструментом для использования избыточности символов, подлежащих передаче. Обычно оно используется в кодировании, основанном на трансформации, после квантования спектральных линий. Путем использования заданного распределения вероятности квантованные значения могут быть кодированы без потерь посредством уменьшенного числа битов. Принцип состоит в формировании кодовых слов, для которых длина зависит от вероятности для символа.
Расход битов обычно становится известным только после записи символов, подверженных энтропийному кодированию, в битовый поток. Обычно это представляет проблему при оптимизации секции квантования, когда необходимо знать расход битов для оптимизации зависимости искажений от скорости передачи. Это представляет еще большую проблему, когда необходимо, чтобы битовый поток имел постоянный размер на кадр, также известный как постоянная скорость передачи битов, что является требованием, предъявляемым к большинству протоколов для сетей связи.
В трансформационном кодере набор коэффициентов масштабирования обычно определяет квантование путем формирования спектра шума квантования в частотной области. Формирование спектра шума зависит как от воспринимаемого искажения, обычно обеспечиваемого психоакустической моделью, так и от порождаемого расхода битов. Однако последний фактор обычно становится известным только после фиксации формирования спектра шума квантования. Для обеспечения сходимости оптимизации может использоваться может быть использован цикл оптимизации. Тем не менее, такая оптимизация является относительно сложной, и в реальных применениях количество итераций должно быть серьезно ограничено. Кроме того, для еще большего снижения сложности расход битов обычно не вычисляют полностью, а только оценивают. Если окончательный расход битов оказывается недооцененным, будет необходимо усекать битовый поток, чего как правило удается избежать. Действительно, недооценка приведет к жесткому усечению битового потока, что эквивалентно вызову насыщения квантования. Таким образом, квантование обычно организуют таким образом, чтобы переоценивать расход битов. Вследствие этого в окончательном битовом потоке некоторое количество битов часто является неиспользованным.
Для преодоления этой проблемы после первой секции квантования может быть добавлена вторая (остаточная) секция квантования для использования оставшихся неиспользованных битов. Тогда эти оставшиеся биты могут быть использованы для уточнения шума квантования. Этот принцип объяснен ниже.
На Фиг. 10 показана блок-схема трансформационного кодера 10. Трансформационный кодер 10 содержит первую секцию 12 квантования, секцию 14 остаточного квантования, энтропийный кодер 16, блок 18 оценки битов энтропийного кодирования, блок 20 мультиплексирования и блок 22 преобразования.
r
Блок 22 преобразования выполнен с возможностью преобразования входного сигнала из временной области в частотную область. Первая секция 12 квантования выполнена с возможностью квантования входного сигнала в частотной области во множество квантованных спектральных значений q. Множество квантованных спектральных значений q, входной сигнал в частотной области x и количество оставшихся битов вводятся в секцию 14 остаточного квантования (или вторую секцию), которая выполнена с возможностью уточнения выходных данных первой секции 12 квантования и обеспечения множества квантованных остаточных значений q. Энтропийный кодер 16 выполнен с возможностью энтропийного кодирования множества квантованных спектральных значений q для получения множества значений e после энтропийного кодирования. Блок 20 мультиплексирования выполнен с возможностью мультиплексирования множества значений e после энтропийного кодирования, коэффициентов масштабирования в зависимости от информации, обеспеченной первой секцией 14 квантования, и множества квантованных остаточных значений, выданных второй секцией 16 квантования, для получения битового потока.
Трансформационный кодер 10, показанный на Фиг. 10, выполнен с возможностью выдачи определенного целевого количества битов на кадр. Для достижения этой цели будет выполняться регулирование квантования, но по причине сложности при регулировании этапов квантования выполняется только оценка расхода битов энтропийным кодером. Кроме того, даже если оценка битов является очень точной, может быть невозможно найти набор коэффициентов масштабирования, которые приведут к ожидаемым целевым битам. После первой секции 12 квантования выполняется энтропийное кодирование квантованных значений q. Затем оставшиеся неиспользованные биты выделяются для остаточного квантования, которое уточнит выходные данные первой секции 12 квантования. Секция 14 остаточного квантования принимает в качестве входных данных квантованные спектральные значения q, исходные спектральные значения x и количество оставшихся битов. Количество оставшихся битов может представлять собой оцененное или истинное количество оставшихся битов. Оцененное количество обычно используется, когда требуется локальный синтез на стороне кодера для принятия, например, решения по переключению по методике принятия решения с замкнутым циклом, как это делается, например, в кодеке AMR-WB+ (Адаптивное многоскоростное широкополосное расширенное кодирование). В этом случае остаточное кодирование должно быть вызвано перед итоговым вызовом энтропийного кодера 16.
В обычном трансформационном кодере 10 секция 14 остаточного квантования выполняет простое равномерное скалярное квантование разности входного сигала после обратного квантования, полученного путем обратного квантования квантованных спектральных значений, и исходного входного сигнала. Однако на основании анализа характеристик скорости и искажения известно, что равномерное квантование является оптимальным лишь для не обладающих памятью и равномерно распределенных источников.
Таким образом, задача настоящего изобретения состоит в обеспечении усовершенствованного остаточного квантования для обладающих памятью и неравномерно распределенных источников.
Данная задача решается независимыми пунктами формулы изобретения.
Варианты выполнения настоящего изобретения предусматривают кодер, содержащий: секцию квантования, энтропийный кодер, секцию остаточного квантования и блок формирования кодированного сигнала. Секция квантования выполнена с возможностью квантования входного сигнала с использованием мертвой зоны для получения множества квантованных значений. Энтропийный кодер выполнен с возможностью кодирования множества квантованных значений с использованием схемы энтропийного кодирования для получения множества значений после энтропийного кодирования. Секция остаточного квантования выполнена с возможностью квантования остаточного сигнала, образованного секцией квантования, причем секция остаточного квантования выполнена с возможностью определения по меньшей мере одного квантованного остаточного значения в зависимости от мертвой зоны секции квантования. Блок формирования кодированного сигнала выполнен с возможностью формирования кодированного сигнала из множества значений после энтропийного кодирования и по меньшей мере одного квантованного остаточного значения.
Кроме того, варианты выполнения настоящего изобретения предусматривают декодер, содержащий блок синтаксического анализа кодированного сигнала, энтропийный декодер и секцию обратного квантования. Блок синтаксического анализа кодированного сигнала выполнен с возможностью синтаксического анализа кодированного сигнала для получения множества значений после энтропийного кодирования и по меньшей мере одного квантованного остаточного значения. Энтропийный декодер выполнен с возможностью декодирования множества значений после энтропийного кодирования с использованием схемы энтропийного декодирования для получения множества квантованных значений. Секция обратного квантования выполнена с возможностью обратного квантования множества квантованных значений для получения выходного сигнала. Кроме того, секция обратного квантования выполнена с возможностью уточнения уровня обратного квантования, используемого для получения выходного сигнала в зависимости от квантованного остаточного значения и мертвой зоны.
В соответствии с замыслом настоящего изобретения расхождение между (исходным) входным сигналом и сигналом после обратного квантования, полученным путем обратного квантования множества квантованных значений, может быть уменьшено или даже оптимизировано посредством секции остаточного квантования на стороне кодера, которая учитывает мертвую зону, которая была использована для квантования входного сигнала, и секции обратного квантования на стороне декодера, которая также учитывает эту мертвую зону при уточнении уровня обратного квантования, используемого для получения сигнала после обратного квантования (называемого выходным сигналом).
Кроме того, варианты выполнения настоящего изобретения предусматривают способ кодирования. Способ содержит этапы, на которых выполняют квантование входного сигнала для получения множества квантованных значений с использованием мертвой зоны; кодируют множество квантованных значений с использованием схемы энтропийного кодирования для получения множества значений после энтропийного кодирования; выполняют квантование остаточного сигнала, образованного квантованием посредством секции квантования, и определяют множество квантованных остаточных значений в зависимости от мертвой зоны секции квантования; и формируют битовый поток из множества значений после энтропийного кодирования и множества квантованных остаточных значений.
Кроме того, варианты выполнения настоящего изобретения предусматривают способ декодирования, причем способ содержит этапы, на которых выполняют синтаксический анализ кодированного сигнала для получения множества значений после энтропийного кодирования и квантованного остаточного значения; декодируют множество значений после энтропийного кодирования с использованием схемы энтропийного декодирования для получения множества квантованных значений; выполняют обратное квантование множества квантованных значений с использованием мертвой зоны для получения выходного сигнала; и уточняют уровень обратного квантования, используемый для получения выходного сигнала, в зависимости от мертвой зоны и квантованного остаточного значения.
Варианты выполнения настоящего изобретения описаны в настоящем документе с обращением к приложенным чертежам.
На Фиг. 1 показана блок-схема кодера в соответствии с вариантом выполнения настоящего изобретения.
На Фиг. 2 показана блок-схема декодера в соответствии с вариантом выполнения настоящего изобретения.
На Фиг. 3 показана блок-схема системы в соответствии с вариантом выполнения настоящего изобретения.
На Фиг. 4 показана блок-схема секции остаточного квантования в соответствии с вариантом выполнения настоящего изобретения.
На Фиг. 5 показана схема уровней обратного квантования и пороговых величин квантования, используемых в схеме порогового равномерного скалярного квантования с мертвой зоной.
На Фиг. 6 показана схема двух уточненных уровней обратного квантования для ненулевого квантованного значения.
На Фиг. 7 показана схема трех уточненных уровней обратного квантования для нулевого квантованного значения.
На Фиг. 8 показана блок-схема способа кодирования в соответствии с вариантом выполнения настоящего изобретения.
На Фиг. 9 показана блок-схема способа декодирования в соответствии с вариантом выполнения настоящего изобретения.
На Фиг. 10 показана блок-схема обычного трансформационного кодера, в котором используется остаточное квантование.
Одинаковые или эквивалентные элементы или элементы с одинаковой или эквивалентной функциональностью обозначены в нижеследующем описании одинаковыми или эквивалентными ссылочными позициями.
В нижеследующем описании приведено множество подробностей для обеспечения более подробного пояснения вариантов выполнения настоящего изобретения. Однако специалистам в данной области техники очевидно, что варианты выполнения настоящего изобретения могут быть осуществлены без этих конкретных подробностей. В других случаях известные структуры и устройства показаны в виде блок-схемы, а не подробно, чтобы избежать затруднения понимания вариантов выполнения настоящего изобретения. Кроме того, признаки различных вариантов выполнения, описанных далее, могут быть объединены друг с другом, если иное конкретно не указано.
Поскольку энтропийное кодирование обеспечивает кодовые слова переменной длины, трудно прогнозировать точный расход битов перед записью битового потока. Однако расход битов необходим для оптимизации квантования. В большинстве случаев и ввиду сложности квантование является субоптимальным, и некоторое небольшое количество битов по-прежнему остается неиспользованным. Остаточное квантование представляет собой второй уровень квантования, в котором эти неиспользованные биты используются для уточнения ошибки квантования.
Описанные ниже варианты выполнения настоящего изобретения предусматривают кодер, декодер и способы, которые оптимизируют это остаточное квантование.
r
r
На Фиг. 1 показана блок-схема кодера 100 в соответствии с вариантом выполнения настоящего изобретения. Кодер 100 содержит секцию 102 квантования (например, первую секцию квантования), энтропийный кодер 104, секцию 106 обратного квантования (например, вторую секцию квантования) и блок 108 формирования кодированного сигнала. Секция 102 квантования выполнена с возможностью квантования входного сигнала 140 с использованием мертвой зоны для получения множества квантованных значений 142 (q). Энтропийный кодер 104 выполнен с возможностью кодирования множества квантованных значений 142 (q) с использованием схемы энтропийного кодирования для получения множества значений 144 (e) после энтропийного кодирования. Секция 106 остаточного квантования выполнена с возможностью квантования остаточного сигнала, образованного квантованием в секции 102 квантования, причем секция 106 остаточного квантования выполнена с возможностью определения по меньшей мере одного квантованного остаточного значения 146 (q) в зависимости от мертвой зоны секции 102 квантования. Блок 108 формирования кодированного сигнала выполнен с возможностью формирования кодированного сигнала 148 из множества значений 144 (e) после энтропийного кодирования и по меньшей мере одного квантованного остаточного значения 146 (q).
Идея настоящего изобретения состоит в уменьшении или даже оптимизации расхождения между (исходным) входным сигналом и версией после обратного квантования квантованной версии входного сигнала посредством секции остаточного квантования на стороне кодера, в которой учитывается мертвая зона, которая была использована для квантования входного сигнала, и секции обратного квантования на стороне декодера, в которой также учитывается эта мертвая зона при уточнении уровня обратного квантования, используемого для получения сигнала после обратного квантования.
В вариантах выполнения секция 102 обратного квантования может быть выполнена с возможностью выполнения порогового равномерного скалярного квантования с мертвой зоной (DZ-UTSQ).
В вариантах выполнения блок 108 формирования кодированного сигнала может быть выполнен с возможностью формирования кодированного сигнала 148 путем присоединения по меньшей мере одного квантованного остаточного значения 146 или множества квантованных остаточных значений 146 ко множеству значений 144 после энтропийного кодирования до тех пор, пока кодированный сигнал 148 не будет содержать максимальную длину, доступную для передачи в декодер. Он не ограничен в плане того, что битовый поток содержит другую информацию в качестве коэффициентов масштабирования, определяющих формирование спектра шума первой секции квантования, или коэффициентов прогнозирования, используемых для формирования спектра шума квантования и используемых при последующей фильтрации выходного сигнала во временной области.
Например, блок 108 формирования кодированного сигнала может быть выполнен с возможностью обеспечения битового потока в качестве кодированного сигнала 148. При этом блок 108 формирования кодированного сигнала, например блок мультиплексирования, может быть выполнен с возможностью добавления в конце битового потока по меньшей мере одного квантованного остаточного значения 146 или множества квантованных остаточных значений 146. Битовый поток, формируемый кодером 100, может быть передан (например, путем передачи или широковещательной передачи) в декодер или может быть сохранен, например, на энергонезависимом носителе данных, для последующего декодирования декодером. При этом битовый поток может быть передан или сохранен путем использования кадров данных или пакетов данных, причем может быть необходимо, чтобы битовый поток имел постоянный размер (также называемый в настоящем документе целевыми битами) на кадр данных или пакет данных.
Для получения битового потока, имеющего постоянный размер или заданное количество целевых битов блок 108 формирования кодированного сигнала может быть выполнен с возможностью присоединения квантованных остаточных значений 146 к значениям 144 после энтропийного кодирования до тех пор, пока битовый поток не достигнет заданного количества целевых битов. Секция 106 остаточного квантования может прекратить определять квантованные остаточные значения 146, когда битовый поток будет содержать заданную длину или количество целевых битов.
В вариантах выполнения входной сигнал 140 может быть входным сигналом 140 в частотной области. Кодер 100 может содержать блок преобразования, выполненный с возможностью преобразования входного сигнала во временной области во входной сигнал 140 в частотной области.
r
r
На Фиг. 2 показана блок-схема декодера 120 в соответствии с вариантом выполнения настоящего изобретения. Декодер 120 содержит блок 122 синтаксического анализа кодированного сигнала, энтропийный декодер 124 и секцию 126 обратного квантования. Блок 122 синтаксического анализа кодированного сигнала выполнен с возможностью синтаксического анализа кодированного сигнала 148 для получения множества значений 144 (e) после энтропийного кодирования и по меньшей мере одного квантованного остаточного значения 146 (q). Энтропийный декодер 124 выполнен с возможностью декодирования множества значений 144 (e) после энтропийного кодирования с использованием схемы энтропийного декодирования для получения множества квантованных значений 142 (q). Секция 126 обратного квантования выполнена с возможностью обратного квантования множества квантованных значений 142 (q) для получения выходного сигнала 150. При этом секция 126 обратного квантования выполнена с возможностью 126 уточнения уровня обратного квантования, используемого для получения выходного сигнала 150, в зависимости от квантованного остаточного значения 146 (q) и мертвой зоны, используемой в кодере 100 в секции 106 квантования для получения множества квантованных значений 142 (q).
В вариантах выполнения секция 126 обратного квантования может быть выполнена с возможностью уточнения уровня обратного квантования путем определения уточненного уровня обратного квантования в зависимости от мертвой зоны.
Например, секция 126 обратного квантования может быть выполнена с возможностью определения в зависимости от мертвой зоны, или более точно - в зависимости от ширины мертвой зоны, уровня, на который должен быть уточнен, т.е. увеличен или уменьшен, уровень обратного квантования для получения уточненного уровня обратного квантования. Кроме того, секция 126 обратного квантования может быть выполнена с возможностью определения по меньшей мере двух новых уровней обратного квантования в зависимости от мертвой зоны, и получения выходного сигнала 150 путем использования одного из по меньшей мере двух уточненных уровней обратного квантования, указанных квантованным остаточным значением 146. Другими словами, квантованное остаточное значение 146 указывает на то, какой из по меньшей мере двух уровней обратного квантования необходимо использовать для получения выходного сигнала 150.
На Фиг. 3 показана блок-схема системы 130 в соответствии с вариантом выполнения настоящего изобретения. Система 130 содержит кодер 100, показанный на Фиг. 1, и декодер 120, показанный на Фиг. 2.
Далее признаки кодера 100 и декодера 120 и совместное действие или взаимодействие признаков кодера 100 и декодера 120 описаны более подробно.
На Фиг. 4 показана блок-схема секции 106 остаточного квантования в соответствии с вариантом выполнения. Секция 106 остаточного квантования может содержать блок 106ʹ остаточного квантования, блок 160 обратного квантования и блок 162 сравнения. Блок 160 обратного квантования может быть выполнен с возможностью обратного квантования множества квантованных значений 142 (q), обеспеченных секцией 102 квантования, для получения входного сигнала 152 (x_q) после обратного квантования. Секция 162 сравнения может быть выполнена с возможностью сравнения входного сигнала 140 (x) и входного сигнала 152 (x_q) после обратного квантования для получения остаточного сигнала 154. Блок 106ʹ остаточного квантования может быть выполнен с возможностью квантования остаточного сигнала, образованного секцией 102 квантования.
r
Другими словами, на Фиг. 4 проиллюстрирована блок-схема остаточного квантования. Спектр 142 (q) подвергается обратному квантованию и сравнивается с исходным спектром 140 (x). Затем выполняется второй уровень квантования в зависимости от оставшихся доступных битов. Второй этап квантования, выполняемый секцией 106 остаточного квантования, обычно представляет собой квантование по «жадному» алгоритму, т.е. квантование, которое выполняется построчно, и каждое повторно квантуемое значение обрабатывается независимо от последующей передаваемой информации. Таким образом битовый поток 146 (q) остаточного квантования может быть усечен каждый раз, когда битовый поток 148, обеспечиваемый блоком 108 формирования кодированного сигнала, достигает желаемого размера.
Как показано на Фиг. 4, секция 106 остаточного квантования может дополнительно содержать блок 164 управления, например блок регулирования. Блок 164 управления может быть выполнен с возможностью управления блоком 106ʹ остаточного квантования или его оптимизации.
Например, блок 164 управления может быть выполнен с возможностью управления блоком 106ʹ остаточного квантования таким образом, что блок 106ʹ остаточного квантования квантует остаточный сигнал 154 в зависимости от мертвой зоны, или более точно - в зависимости от ширины мертвой зоны, используемой в секции 102 квантования для получения множества квантованных значений 142 (q). Кроме того, блок 164 управления может быть выполнен с возможностью управления блоком 106ʹ остаточного квантования в зависимости от количества целевых битов и количества израсходованных битов (например, израсходованных значениями 144 после энтропийного кодирования, обеспечиваемыми энтропийным кодером, или значениями 144 после энтропийного кодирования и квантованным(и) остаточным(и) значением(ями), уже обеспеченным(и) блоком 106ʹ остаточного квантования). Кроме того, блок 164 управления может быть выполнен с возможностью управления блоком 106ʹ остаточного квантования в зависимости от информации, обеспеченной блоком 160 обратного квантования. Информация, обеспечиваемая блоком 160 обратного квантования, может включать в себя ширину мертвой зоны, которая может быть или фиксированной, или адаптивно изменяемой и также может включать в себя коэффициент масштабирования, применяемый в первой секции квантования для нормализации спектра и определения шага квантования, и может также включать в себя указание на то, было ли обнулено квантованное значение.
В обычном остаточном квантовании Qr, выполняемое секцией остаточного квантования, представляет собой простое равномерное скалярное квантование разности x[i]-x_q[i]:
ifx[i]>x_q[i]
Qr[i]=(int)(0,5+(x[i]-x_q[i])/delta_r)
Else
Qr[i]=(int)(-0,5+(x[i]-x_q[i])/delta_r)
причем x[i] является входным сигналом 140, причем x_Q[i] является входным сигналом 152 после обратного квантования, причем (int) является функцией целочисленного округления, и при этом delta_r является шагом квантования блока Qr остаточного квантования, который обычно меньше дельты шага квантования, используемой в первом блоке Q квантования. В общем случае:
delta_r=0.5*delta
Варианты выполнения настоящего решения решают две проблемы, относящиеся к остаточному квантованию. Первая и главная проблема состоит в том, как получить оптимальный Qr (функцию секции 106 остаточного квантования), зная первую секцию 102 квантования. Вторая проблема состоит в том, как минимизировать расхождение между локальным синтезом кодера и синтезом декодера, когда необходимо оценить количество оставшихся битов.
Благодаря анализу характеристик по скорости и искажению известно, что равномерное квантование (используемое в обычном остаточном квантовании) оптимально лишь для не обладающих памятью и равномерно распределенных источников. Если после этого используется энтропийное кодирование, равномерное квантование является квазиоптимальным для гауссова источника и при очень высоких скоростях передачи данных. При меньших скоростях решение, близкое к оптимальному, состоит в том, чтобы иметь мертвую зону с равномерным пороговым скалярным квантованием (DZ-UTSQ). Это семейство алгоритмов квантования является квазиоптимальным для широкого диапазона распределений, например для гауссова, лапласова и общего лапласова распределения. Коэффициент мертвой зоны может быть оптимизирован различными способами. Он может быть оптимизирован в режиме реального времени в зависимости от оцененного распределения. Более простым способом он может быть фиксирован в виде наилучшего исходного значения, найденного для ожидаемых входных сигналов или адаптированного к некоторым параметрам, таким как тональность спектра, которая также отражает распределение.
Далее представлено решение, направленное на оптимизацию остаточного квантования Qr, выполняемого секцией 106 остаточного квантования, в зависимости от первой секции 102 DZ-UTSQ. Параметр мертвой зоны называется dz, и DZ-UTSQ 102 определяется следующим образом:
If x[i]>0
Q[i]=(int)(rounding_dz+(x[i])/delta)
Else
Q[i]=(int)(-rounding_dz+(x[i])/delta)
and
x_q[i]=delta*Q[i]
причем x[i] является входным сигналом 140, причем x_Q[i] является входным сигналом 152 после обратного квантования, причем (int) является функцией целочисленного округления, и при этом delta является шагом квантования, используемым в DZ-UTSQ 102, и при этом rounding_dz=1-dz/2.
На Фиг. 5 проиллюстрирована схема DZ-UTSQ 102, в которой масштаб нормализован дельтой. Мертвая зона обычно больше, чем нормализованный размер ячейки шага 1. Мертвая зона в 1,25 является хорошим оцененным значением для большинства выборок аудиоданных с частотным преобразованием. Она может быть уменьшена, если сигнал является более шумным, и увеличена, если он является более тональным.
Варианты выполнения настоящего изобретения определяют оптимальное уточнение квантования для ошибки x[i]-x_q[i]. Поскольку остаточное кодирование не ограничено по энтропии, в остаточном квантовании Qr не принимается какая-либо дополнительная мертвая зона. Кроме того, предполагается, что распределение ошибки квантования первой секции 102 квантования является равномерным в левой и правой частях ячейки квантования, разграниченной уровнем 170 восстановления. Это предположение для высокой скорости, т.е. размер новых ячеек квантования считается достаточно малым для отбрасывания неравномерно распределенных ошибок в пределах ячейки. Предположение действительно для большинства целевых скоростей передачи данных.
Существуют два основных случая: выборка была квантована с ненулевым значением и выборка была квантована с нулевым значением.
Для ненулевого квантованного значения 1 бит на выборку может быть выделен для остаточного квантования Qr и может определять два относительных уровня восстановления fac_m и fac_p:
fac_p=0,5-rounding_dz*0,5=0,25*(dz)
fac_m=0,5*rounding_dz=0,5*(1-0,5*dz)
При этом fac_p может указывать на нормализованное абсолютное значение, на которое необходимо увеличить нормализованное абсолютное значение уровня 172 обратного квантования (или уровня восстановления) для получения первого уточненного уровня 174 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, при этом fac_m указывает на нормализованное абсолютное значение, на которое необходимо уменьшить нормализованное абсолютное значение уровня 172 обратного квантования для получения второго уточненного уровня 176 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, и при этом dz - это нормализованная ширина мертвой зоны, как станет ясно из Фиг. 6.
На Фиг. 6 проиллюстрированы два относительных (или уточненных) уровня 174 и 176 восстановления для уровня 172 восстановления со значением 1. При 1 дополнительном бите уровень 172 восстановления может быть уточнен на 1-fac_m (что приводит ко второму уточненному уровню 176 обратного квантования) или на 1+fac_p (что приводит к первому уточненному уровню 174 обратного квантования). Исходная ячейка разбита на две неравномерных ячейки. Поскольку предполагается, что ошибка квантования для Q (функции квантования первой секции 102 квантования) равномерно распределена в пределах новых ячеек, остаточное квантование Qr является оптимальным с точки зрения характеристик скорости-искажения (R-D). Следует отметить, что квантование Q и остаточное квантование Qr образуют встроенное квантование, т.е. бит, выделенный для остаточного квантования Qr, может быть отброшен, и по-прежнему может быть выполнено Q-1.
Остаточное квантование Qr, выполняемое секцией 106 остаточного квантования, может быть обобщено в виде:
r
причем prm является битовым потоком, формируемым секцией 106 остаточного квантования с использованием квантованного остаточного значения, причем x[i] является входным сигналом, причем x_Q[i] является входным сигналом после обратного квантования, причем n является индексом, увеличиваемым на 1 для каждого ненулевого квантованного значения, которое уточнено на Q, и при этом i является индексом, который увеличивается на 1 для каждого полученного квантованного значения.
Обратное Qr может быть выражено следующим образом:
bits
Можно увидеть, что обратное Qr выполняется только для N первых битов. Это означает, что кодер может формировать больше битов, чем кодер или декодер фактически декодирует. Этот механизм используется, когда оценивается оставшееся количество битов и когда необходимо сформировать локальный синтез на стороне кодера. Ожидаемый восстановленный сигнал формируется в кодере, хотя возможно, что декодер декодирует больше или меньше битов в зависимости от истинного доступного количества оставшихся битов в битовом потоке.
В качестве альтернативы, для Qr может быть выделено более 1 бита на выборку. С использованием того же принципа могут быть определены оптимальные уровни восстановления для уровней восстановления Qr с количеством битов, равным степеням числа 2.
Для нулевого квантованного значения для остаточного квантования Qr может быть выделено более 1 бита. Причина этого состоит в том, что из соображений восприятия необходимо иметь уровень восстановления, равный нулю. Это исключает, например, создание искусственного шумного сигнала во время тишины. Может быть использован особый трехуровневый код переменной длины:
0: кодирует ноль
10: отрицательный уровень восстановления
11: положительный уровень восстановления
Вычисляется новый относительный уровень восстановления, fac_z:
fac_z= dz/3
При этом fac_z может указывать на нормализованное абсолютное значение, на которое необходимо увеличить нормализованное абсолютное значение уровня 172 обратного квантования, чтобы получить первый уточненный уровень 174 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, и на нормализованное абсолютное значение, на которое необходимо уменьшить нормализованное абсолютное значение уровня обратного квантования для получения второго уточненного уровня 176 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, и при этом dz является нормализованной шириной мертвой зоны, как станет ясно из Фиг. 7.
На Фиг. 7 проиллюстрировано остаточное квантование Qr, выполняемое секцией 106 остаточного квантования для нулевых квантованных значений 142. Ячейка вокруг нуля разделена на три новых равномерных ячейки.
Остаточное квантование Qr, выполняемое секцией 106 остаточного квантования для нулевого квантованного значения, может быть обобщено следующим образом
при этом C зависит от мертвой зоны секции квантования и может быть вычислено как C=delta*(fac_z/2), причем prm является битовым потоком, формируемым секцией 106 остаточного квантования с использованием квантованного остаточного значения, при этом x[i] является входным сигналом, при этом x_Q[i] является входным сигналом после обратного квантования. Индекс n увеличивается на 1 для каждого нулевого квантованного значения, повторно квантованного в ноль, причем n увеличивается на 2 для каждого нулевого квантованного значения, повторно квантованного в ненулевое значение.
Обратное Qr может быть выражено следующим образом:
Варианты выполнения настоящего изобретения могут быть с легкостью расширены путем предположения о том, что распределение в пределах исходной ячейки квантования не является равномерным. В этом случае относительные уровни восстановления могут быть получены в зависимости от распределения ошибки квантования. Способ достижения этого состоит в разбиении исходной ячейки квантования на новые неравномерные ячейки меньшего размера. Также может быть использован параметр второй мертвой зоны.
Далее кратко описаны другие варианты выполнения кодера 100 и декодера 120.
Сначала будет описан кодер 100.
Остаточное квантование представляет собой уровень уточняющего квантования, уточняющий первую секцию SQ (или секцию 102 квантования). В нем используются итоговые неиспользованные биты, т.е. неиспользованные биты=target_bits-nbbits, причем nbbits является количеством битов, расходуемых энтропийным кодером 104. Остаточное квантование принимает «жадную» стратегию, и отсутствует энтропия, чтобы остановить кодирование каждый раз, когда битовый поток достигает желаемого размера.
Уточнение состоит в повторном квантовании квантованного спектра линия за линией. Сначала ненулевые квантованные линии обрабатываются блоком остаточного квантования в 1 бит:
При этом  является масштабированной выборкой входного сигнала 140, и  является соответствующей масштабированной выборкой входного сигнала 152 после обратного квантования.
В конечном итоге, если позволяют оставшиеся биты, нулевые квантованные линии рассматриваются и квантуются на 3 уровнях следующим образом:
При этом  является масштабированной выборкой входного сигнала 140,  является соответствующей масштабированной выборкой входного сигнала 152 после обратного квантования, fac_z может указывать на нормализованное абсолютное значение, на которое необходимо увеличить нормализованное абсолютное значение уровня 172 обратного квантования для получения первого уточненного уровня 174 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, и на нормализованное абсолютное значение, на которое необходимо уменьшить нормализованное абсолютное значение уровня обратного квантования для получения второго уточненного уровня 176 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, причем rounding_dz=1-dz/2.
Далее будет описан декодер 120.
Оставшиеся биты уточняют ненулевые декодированные линии. Считывается 1 бит на ненулевое спектральное значение:
При этом  является входным сигналом 140,  является входным сигналом 152 после обратного квантования, fac_p может указывать на нормализованное абсолютное значение, на которое должно быть увеличено нормализованное абсолютное значение уровня 172 обратного квантования (или уровня восстановления) для получения первого уточненного уровня 174 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, и fac_m может указывать на нормализованное абсолютное значение, на которое необходимо уменьшить нормализованное абсолютное значение уровня 172 обратного квантования для получения второго уточненного уровня 176 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, при этом rounding_dz=1-dz/2
Если осталось считать по меньшей мере 2 бита, нулевое значение уточняется следующим образом:
При этом  является масштабированной выборкой входного сигнала 140,  является соответствующей масштабированной выборкой входного сигнала 152 после обратного квантования, fac_z может указывать на нормализованное абсолютное значение, на которое необходимо увеличить нормализованное абсолютное значение уровня 172 обратного квантования для получения первого уточненного уровня 174 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, и на нормализованное абсолютное значение, на которое необходимо уменьшить нормализованное абсолютное значение уровня обратного квантования для получения второго уточненного уровня 176 обратного квантования из двух уточненных уровней 174 и 176 обратного квантования, причем rounding_dz=1-dz/2.
На Фиг. 8 показана блок-схема способа 200 кодирования в соответствии с вариантом выполнения. Способ 200 содержит этап 202 квантования входного сигнала для получения множества квантованных значений с использованием мертвой зоны; этап 204 кодирования множества квантованных значений с использованием схемы энтропийного кодирования для получения множества значений после энтропийного кодирования; a этапp 206 квантования остаточного сигнала, образованного квантованием посредством секции квантования, и определения множества квантованных остаточных значений в зависимости от мертвой зоны секции квантования; и этап 208 формирования битового потока из множества значений после энтропийного кодирования и множества квантованных остаточных значений.
На Фиг. 9 показана блок-схема способа 220 декодирования в соответствии с вариантом выполнения. Способ 220 содержит этап 222 синтаксического анализа кодированного сигнала для получения множества значений после энтропийного кодирования и квантованного остаточного значения; этап 224 декодирования множества значений после энтропийного кодирования с использованием схемы энтропийного декодирования для получения множества квантованных значений; этап 226 обратного квантования множества квантованных значений с использованием мертвой зоны для получения выходного сигнала; и этап 228 уточнения уровня обратного квантования для получения выходного сигнала в зависимости от мертвой зоны и квантованного остаточного значения.
Хотя некоторые аспекты были описаны в контексте устройства, ясно, что эти аспекты также представляют собой описание соответствующего способа, в котором блок или устройство соответствуют этапу способа или признаку этапа способа. Аналогичным образом, аспекты, описанные в контексте этапа способа, также представляют собой описание соответствующего блока или элемента или признака соответствующего устройства. Некоторые или все этапы способа могут быть выполнены посредством (или с использованием) аппаратного устройства, такого как, например, микропроцессор, программируемый компьютер или электронная схема. В некоторых вариантах выполнения один или более из некоторых наиболее важных этапов способа могут быть выполнены таким устройством.
В зависимости от конкретных требований к реализации варианты выполнения изобретения могут быть реализованы аппаратными или программными средствами. Реализация может быть осуществлена с использованием цифрового носителя данных, например гибкого магнитного диска, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM или FLASH-памяти, на которых сохранены считываемые электронными средствами управляющие сигналы, которые взаимодействуют (или способны взаимодействовать) с программируемой компьютерной системой таким образом, чтобы выполнялся соответствующий способ. Таким образом, цифровой носитель данных может быть машиночитаемым.
Некоторые варианты выполнения в соответствии с изобретением содержат носитель данных, имеющий считываемые электронными средствами управляющие сигналы, которые способны взаимодействовать с программируемой компьютерной системой таким образом, чтобы выполнялся один из способов, описанных в настоящем документе.
В общем случае, варианты выполнения настоящего изобретения могут быть реализованы в виде компьютерного программного продукта с программным кодом, причем программный код выполнен с возможностью выполнения одного из способов, когда компьютерная программа выполняется на компьютере. Программный код может быть, например, сохранен на машиночитаемом носителе.
Другие варианты выполнения содержат компьютерную программу для выполнения одного из способов, описанных в настоящем документе, сохраненную на машиночитаемом носителе.
Другими словами, вариант выполнения способа согласно изобретению, таким образом, представляет собой компьютерную программу, имеющую программный код для выполнения одного из способов, описанных в настоящем документе, когда компьютерная программа выполняется на компьютере.
Другим вариантом выполнения способов согласно изобретению является, таким образом, носитель данных (или цифровой носитель данных, или машиночитаемый носитель) содержащий записанную на нем компьютерную программу для выполнения одного из способов, описанных в настоящем документе. Носитель данных, цифровой носитель данных или носитель записи обычно являются материальными и постоянными.
Другим вариантом выполнения способа согласно изобретению является, таким образом, поток данных или последовательность сигналов, представляющие компьютерную программу для выполнения одного из способов, описанных в настоящем документе. Поток данных или последовательность сигналов могут, например, быть выполнены с возможностью их передачи посредством соединения для передачи данных, например по сети Интернет.
Другой вариант выполнения содержит средство обработки, например компьютер или программируемое логическое устройство, выполненные с возможностью или приспособленные для выполнения одного из способов, описанных в настоящем документе.
Другой вариант выполнения содержит компьютер, на котором установлена компьютерная программа для выполнения одного из способов, описанных в настоящем документе.
Другой вариант выполнения согласно изобретению содержит устройство или систему, выполненные с возможностью передачи (например, электронными или оптическими средствами) компьютерной программы для выполнения одного из способов, описанных в настоящем документе, на приемник. Приемник может быть, например, компьютером, мобильным устройством, запоминающим устройством или тому подобным. Упомянутые устройство и система могут, например, содержать файловый сервер для передачи компьютерной программы на приемник.
В некоторых вариантах выполнения может быть использовано программируемое логическое устройство (например, программируемая пользователем вентильная матрица) для выполнения некоторых или всех функций способов, описанных в настоящем документе. В некоторых вариантах выполнения программируемая пользователем вентильная матрица может взаимодействовать с процессором для выполнения одного из способов, описанных в настоящем документе. В общем случае, способы предпочтительно выполняются любым аппаратным устройством.
Описанные выше варианты выполнения являются лишь иллюстрацией принципов настоящего изобретения. Следует понимать, что специалистам в данной области техники будут очевидны изменения и вариации в конфигурациях и деталях, описанных в настоящем документе. Таким образом, предполагается ограничение лишь объемом нижеследующей формулы изобретения, а не конкретными подробностями, приведенными в настоящем документе в качестве описания и пояснения для вариантов выполнения.