АУДИОКОДЕРЫ, АУДИОДЕКОДЕРЫ, СПОСОБЫ И КОМПЬЮТЕРНЫЕ ПРОГРАММЫ, ПРИМЕНЯЮЩИЕ КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ МЛАДШИХ ЗНАЧАЩИХ БИТОВ
AUDIO ENCODERS, AUDIO DECODERS, METHODS AND COMPUTER PROGRAMS USING THE LEAST SIGNIFICANT BITS ENCODING AND DECODING

ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления в соответствии с изобретением относятся к аудиодекодерам для предоставления декодированной аудиоинформации, на основе кодированной аудиоинформации.
Дополнительные варианты осуществления в соответствии с изобретением относятся к аудиокодерам для предоставления кодированной аудиоинформации, на основе входной аудиоинформации.
Дополнительные варианты осуществления изобретения относятся к способам для предоставления декодированной аудиоинформации, на основе кодированной аудиоинформации.
Дополнительные варианты осуществления в соответствии с изобретением относятся к способам для предоставления кодированной аудиоинформации, на основе входной аудиоинформации.
Дополнительные варианты осуществления в соответствии с изобретением относятся к соответствующим компьютерным программам.
Варианты осуществления в соответствии с изобретением относятся к усечению арифметически кодированных аудиоданных.
УРОВЕНЬ ТЕХНИКИ
В прошлом было разработано много разных концепций для кодирования и декодирования аудиоконтента.
Например, Новый Кодек Bluetooth (NBC) является аудиокодеком, который очень похож на основанный на MDCT аудиокодек TCX, который используется в стандарте 3GPP EVS [1]. Оба кодека используют скалярное квантование и основанное на контексте арифметическое кодирование (см., например, цитированную литературу с [2] по [4] для кодирования данных MDCT.
Скалярный квантователь является простым квантователем с постоянным шагом (с дополнительной мертвой зоной), управление размером шага которого осуществляется посредством уникального глобального усиления (которое, например, отправляется декодеру в качестве побочной информации). Это глобальное усиление управляет как искажением, которое вводится скалярным квантователем, так и также количеством битов, которые расходуются арифметическим кодером. Чем выше глобальное усиление, тем выше искажение и ниже количество битов, которое расходуется арифметическим кодером.
В EVS, как и в большинстве других кодеков связи, битрейт кодека является постоянным, т.е. доступно ограниченное количество битов (бюджет битов) для кодирования данных MDCT.
Следовательно, кодеру необходимо найти (или он должен найти) глобальное усиление, которое не является слишком низким, иначе количество битов, которое расходуется арифметическим кодером, превысит бюджет битов. Также ему необходимо (или он должен) найти глобальное усиление, которое не является слишком высоким, иначе искажение, которое вносится квантованием, будет выше, что приведет к более плохому качеству восприятия декодированного выходного сигнала.
В идеале кодер должен найти в каждом кадре оптимальное глобальное усиление: такое, которое дает минимальные искажения при этом создавая количество битов ниже бюджета битов.
Эта цель, например, может быть достигнута с использованием итеративного подхода также известного как цикл скорости (rate-loop): на каждой итерации цикла данные MDCT повторно квантуются, оценивается количество битов, израсходованное арифметическим кодером, и глобальное усиление регулируется как функция количества битов и/или искажения.
Однако, цикл скорости является вычислительно сложным и для того, чтобы сохранить сложность, обычно используется небольшое количество итераций. Это, в частности, актуально для кодеков связи с очень низким энергопотреблением (например, Новый Кодек Bluetooth), для которых требуется очень низкая вычислительная сложность. Таким образом, на практике, обычно находят неоптимальное глобальное усиление.
Было обнаружено, что в некоторых случаях найденное глобальное усиление является слишком высоким, что приводит к тому, что израсходованное количество битов значительно ниже бюджета битов. В этом случае присутствует некоторое количество неиспользованных битов. Эти биты фактически могут быть использованы дополнительным инструментом, именуемым «остаточное квантование/кодирование» (который, например, используется в EVS и NBC). Этот инструмент уточняет квантованные ненулевые коэффициенты с использованием одного бита на коэффициент и помогает в получении искажения, которое не настолько высокое, даже когда глобальное усиление слишком высокое.
Более того, было обнаружено, что в некоторых случаях найденное глобальное усиление является слишком низким, что приводит к тому, что израсходованное количество битов превышает бюджет битов. В этом случае квантованные данные не могут быть полностью кодированы. Другими словами, часть данных должна быть опущена, чтобы остаться в рамках бюджета битов. Решение, используемое в стандарте EVS (и также в настоящее время в NBC), состоит в усечении высокочастотных ненулевых коэффициентов путем установки их в ноль. Поскольку арифметический кодер не кодирует часть высокочастотных нулевых коэффициентов (путем использования индекса последнего ненулевого коэффициента), то этот подход позволяет сэкономить биты и, если усекается достаточное количество высокочастотных ненулевых коэффициентов, то это позволяет оставаться в рамках бюджета битов.
Было обнаружено, что данный подход создает хорошие результаты при низких битрейтах, так как высокочастотные коэффициенты менее важны для восприятия и они могут быть замещены произвольным шумом (с использованием инструмента наполнения шумом, см., например, EVS [1]) без значительной потери качества восприятия.
Однако, также было обнаружено, что при высоких битрейтах этот подход может сильно ухудшать эффективность кодека.
Ввиду этой ситуации есть желание иметь концепцию, которая обеспечивает более совершенный компромисс между качеством аудио, сложностью и битрейтом.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Вариант осуществления в соответствии с изобретением создает аудиодекодер для предоставления декодированной аудиоинформации, на основе кодированной аудиоинформации. Аудиодекодер выполнен с возможностью получения декодированных спектральных значений на основе кодированной информации, представляющей собой эти спектральные значения. Аудиодекодер выполнен с возможностью совместного декодирования двух или нескольких старших значащих битов на спектральное значение (например, на квантованное спектральное значение), на основе соответствующих кодов символа для набора спектральных значений с использованием арифметического декодирования. Соответствующий код символа представляет собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений. Аудиодекодер выполнен с возможностью декодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от того, сколько доступно информации о младшем значащем бите так, что декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями (которые могут, например, быть квантованными спектральными значениями), тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых были декодированы два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов. Более того, аудиодекодер выполнен с возможностью предоставления декодированной аудиоинформации с использованием (декодированных) спектральных значений.
Этот аудиодекодер обеспечивает эффективную концепцию кодирования/декодирования, которая предусматривает хороший компромисс между качеством аудио, сложностью и битрейтом. Например, аудиодекодер может хорошо справляться со случаями, при которых бюджет битов является недостаточным для того, чтобы кодировать все (квантованные) спектральные значения на стороне аудиокодера при заданном ограничении бюджета битов.
Аудиодекодер основан на обнаружении того, что для заданного бюджета битов сравнительно хорошее качество аудио может быть достигнуто, если один или несколько старших значащих битов кодируются (и декодируются) для многих спектральных значений (или даже для всех ненулевых спектральных значений), при этом пропуская кодирование (и декодирование) младших значащих битов некоторых из (квантованных) спектральных значений. Другими словами, ключевая идея настоящего изобретения заключается в том, что ухудшение качества аудио в случае, когда бюджет битов является недостаточным (например, для полного кодирования квантованных спектральных значений), часто меньше, если пропускать кодирование и декодирование некоторых младших значащих битов, в сравнении с решением, при котором пропускается кодирование всех спектральных значений. Сформулировав иначе, было обнаружено, что пропуск кодирования младших значащих битов у многих спектральных значений, как правило, все еще лучшее решение для уменьшения потребности в битах (чтобы удержаться в бюджете битов) в сравнении с тем, когда полностью пропускается кодирование сравнительно небольшого количества спектральных значений (даже если будут опущены спектральные значения в области высоких частот). Сформулировав иначе, настоящее изобретение основано на обнаружении того, что (выборочный) пропуск декодирования младших значащих битов для спектральных значений, для которых был декодирован один или несколько старших значащих битов, является хорошим способом уменьшения потребности в битах, который, как правило, приносит меньше искажений в сравнении с пропуском кодирования и декодирования спектральных значений в диапазоне высоких частот.
Соответственно, аудиодекодер, описанный в данном документе, как правило, не приносит серьезных ухудшений отношения сигнала к шуму в кадрах, в которых бюджет битов является недостаточным для кодирования полностью без потерь квантованных спектральных значений.
Более того, было обнаружено, что концепция, в частности, является эффективной в случае, когда совместно кодируются, или декодируются два или несколько старших значащих бита на спектральное значение, так как в этом случае старшие значащие биты несут достаточно важную информацию для того, чтобы обеспечить хорошее аудиопредставление даже в случае, когда младшие значащие биты не кодируются и не декодируются. Другими словами, путем совместного декодирования двух или нескольких старших значащих битов на спектральное значение можно гарантировать то, что отсутствуют чрезмерные искажения, которые будут вызваны, например, введением аудиоконтента, кодированного с помощью менее двух битов в области высоких частот. Другими словами, было обнаружено, что концепция, упомянутая в данном документе, обеспечивает хороший компромисс между битрейтом, сложностью и качеством аудио.
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью отображения одного символа арифметически кодированного представления, которое представляет собой по меньшей мере два старших значащих бита по меньшей мере одного спектрального значения, в по меньшей мере двух старших значащих битах по меньшей мере одного спектрального значения. Соответственно, может быть достигнуто то, что два или несколько старших значащих битов представляются одним символом арифметически кодированного представления (которое является частью кодированной аудиоинформации), что позволяет хорошо учитывать контекст кодирования/декодирования и статистические зависимости между смежными (квантованными) спектральными значениями.
В предпочтительном варианте осуществления арифметическое декодирование выполнено с возможностью определения битовых позиций (например, весовых коэффициентов бита) по меньшей мере двух старших значащих битов (например, обозначенных в данном документе как «numbits» и «numbits-1») и распределения по меньшей мере двух старших значащих битов, определенных символом арифметически кодированного представления, определенным битовым позициям. Битовые позиции могут быть определены, например, на основе количества так называемых «управляющих символов» (escape symbol), которые также могут быть обозначены как «VAL_ESC». Например, битовые позиции могут быть определены отдельно для разных символов арифметически кодированного представления. Соответственно, правильный числовой весовой коэффициент может быть распределен старшим значащим битам и также может быть обнаружено, ассоциирован ли один или несколько младших значащих битов и один или несколько промежуточных битов (битовые позиции которых находятся между одним или несколькими младшими значащими битами и двумя или несколькими старшими значащими битами) со спектральным значением. Таким образом, может быть принято решение в отношении того, должно ли все же быть декодирование одного или нескольких младших значащих битов для соответствующих спектральных значений (и, необязательно, одного или нескольких промежуточных битов для соответствующего спектрального значения). Также путем использования этой концепции можно избежать кодирования и декодирования младших значащих битов для таких спектральных значений, для которых двух или нескольких старших значащих битов достаточно, чтобы полностью представлять спектральное значение. Это, например, справедливо для спектральных значений, лежащих в диапазоне между 0 и 3 (в случае, когда присутствует два старших значащих бита).
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью декодирования для всех спектральных значений, для которых были декодированы два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами. Соответственно, можно декодировать все биты представления двоичных чисел квантованного спектрального значения, за исключением младшего значащего бита. Например, можно декодировать все биты представлений двоичных (и возможно со знаком) чисел всех спектральных значений, за исключением младшего значащего бита, для всех ненулевых спектральных значений. Таким образом, может быть получено хорошее представление спектра, при этом гарантируется то, что максимальная ошибка для каждого спектрального значения ограничивается младшим значащим битом независимо от вопроса, может или нет быть включено кодированное представление младшего значащего бита для соответствующего спектрального значения в кодированное аудиопредставление из-за ограничений на битрейт.
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью декодирования, на первой фазе декодирования (например, этап 3 декодирования), двух или нескольких старших значащих битов на спектральное значение и для всех спектральных значений, для которых декодируются два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов (которые совместно декодируются) и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами. Более того, на первой фазе декодирования для всех спектральных значений, для которых декодируется два или несколько старших значащих битов, и для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, декодируются знаки. Более того, аудиодекодер выполнен с возможностью выборочного пропуска, на первой фазе декодирования, декодирования знака для спектральных значений, для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение. Более того, аудиодекодер выполнен с возможностью выборочного получения, на второй фазе декодирования (например, этап 6 декодирования), которая следует за первой фазой декодирования, информации о знаке для спектральных значений, для которых два или несколько старших значащих битов и любые промежуточные биты - при условии, что промежуточные биты присутствуют - указывают нулевое значение, и для которых информация о младшем значащем бите указывает ненулевое значение.
Соответственно, на первой фазе не выполняется декодирование знака, если те биты, что декодируются на первой фазе (а именно два или несколько старших значащих битов и любые промежуточные биты, которые возможно присутствуют), указывают, что абсолютное значение у спектрального значения не больше вклада младшего значащего бита. Таким образом, декодирование знака откладывается до фактического декодирования младшего значащего бита. Такая процедура выгодна, поскольку можно избежать того, что знак декодируется «слишком рано» и напрасно, что может быть в случае, если младший значащий бит, соответствующий соответствующему спектральному значению, не включен в битовый поток из-за исчерпания бюджета битов.
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью последовательного использования последующих битов битовой последовательности информации о младшем значащем бите (например, lsbs[]) для того, чтобы получать значения младшего значащего бита, ассоциированные со спектральными значениями. Соответственно, может быть достигнуто то, что присутствует непрерывная битовая последовательность, которая представляет собой младшие значащие биты (любые знаки, по мере необходимости). Путем укорачивания этой битовой последовательности (например, lsbs[]) требуемый битрейт для передачи кодированного аудиопредставления может быть легко отрегулирован на стороне аудиокодера, и аудиодекодер может очень легко и без сложного отображения битов адаптироваться к такой регулировке битрейта (или к переменной длине или lsbs[]).
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью использования одного бита (например, этап 6, bit0) битовой последовательности информации о младшем значащем бите (например, lsbs[]) для соответствующих спектральных значений, для которых два или несколько значений старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, при этом один бит битовой последовательности информации о младшем значащем бите используется для того, чтобы получать значение младшего значащего бита в этом случае. Более того, аудиодекодер выполнен с возможностью использования одного бита (например, этап 6, bit0) битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых использованный один бит битовой последовательности информации о младшем значащем бите подтверждает нулевое значение (например, значение «0» у bit0 на этапе 6). Более того, аудиодекодер выполнен с возможностью использования двух последующих битов (например, bit0 и bit1 на этапе 6) битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых первый из использованных битов битовой последовательности информации о младшем значащем бите указывает отклонение от нулевого значения на значение младшего значащего бита (значение «1» у bit0 на этапе 6), при этом второй из использованных битов (например, bit1 на этапе 6) битовой последовательности информации о младшем значащем бите определяет знак соответствующего спектрального значения.
Путем использования такого механизма может быть достигнута высокая эффективность битрейта. Присутствует только одна непрерывная битовая последовательность (например, lsbs[]) для кодирования и декодирования младших значащих битов, при этом эта одна непрерывная битовая последовательность также выборочно содержит информацию о знаке для таких спектральных значений, которые отклоняются от нулевого значения только на значение младшего значащего бита (т.е., для которых два или несколько старших значащих битов и любые промежуточные биты (при условии, что промежуточные биты присутствуют) указывают нулевое значение).
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью декодирования младших значащих битов, начиная с младшего значащего бита, ассоциированного со спектральным значением самой низкой частоты, и продолжая в направлении спектральных значений, ассоциированных с все более высокими частотами так, что спектральные значения (например, все спектральные значения, которые содержат больше битов, чем два или несколько старших значащих битов) уточняются посредством информации о младшем значащем бите в диапазоне от спектрального значения самой низкой частоты вплоть до спектрального значения, для которого доступна последняя информации о младшем значащем бите, и так, что (например, все) спектральные значения (например, даже декодированные спектральные значения, которые содержат больше битов, чем два или несколько старших значащих битов) с ассоциированными частотами выше частоты, ассоциированной со спектральным значением, для которого доступна последняя информация о младшем значащем бите, остаются грубыми. Другими словами, спектральные значения в диапазоне более низких частот (от спектрального значения самой низкой частоты до спектрального значения с ассоциированной последней информацией о младшем значащем бите) уточняются с использованием информации о младшем значащем бите, тогда как спектральные значения, ассоциированные с более высокими частотами, все остаются грубыми. Следовательно, разрешение в более важном для восприятия диапазоне низких частот увеличивается путем использования уточнения младшего значащего бита, тогда как только два или несколько старших значащих битов (и промежуточные биты, если доступны) используются в диапазоне более высоких частот, который менее важен для восприятия. Следовательно, наилучшее возможное слуховое впечатление может быть получено на основе доступного битрейта, при этом также присутствует простой механизм, посредством которого предоставляется информация о младшем значащем бите спектральных значений. Кроме того, спектральные значения могут быть уточнены от спектрального значения самой низкой частоты вплоть до спектрального значения, с которым ассоциирована последняя информация о младшем значащем бите.
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью переключения между первым режимом, при котором декодирование спектральных значений в диапазоне более высоких частот пропускается (например, полностью пропускается) в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и вторым режимом, при котором декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как этом младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты.
Другими словами, аудиодекодер может переключаться между двумя режимами, которые используют заметно разные механизмы для обращения с исчерпанием бюджета битов.
В первом режиме все спектральные значения в диапазоне более низких частот кодируются (и декодируются) с полным включением младшего значащего бита, тогда как все спектральные значения в диапазоне более высоких частот полностью игнорируются кодером, даже если они ненулевые и, следовательно, не декодируются на стороне декодера. Во втором режиме по меньшей мере старшие значащие биты кодируются для всех ненулевых спектральных значений (и, таким образом, также декодируются), но младшие значащие биты кодируются (и декодируются), только если (или при условии, что) все еще присутствует доступный бюджет битов.
Однако, было обнаружено, что возможность переключения между двумя разными режимами позволяет аудиодекодеру адаптироваться к варьирующимся условиям передачи. Например, было обнаружено, что первый режим иногда более выгоден, чем второй режим, например, если доступен только очень небольшой битрейт. С другой стороны, также было обнаружено, что первый режим не обеспечивает хороших результатов при наличии достаточно высокого битрейта, где двоичные представления многих спектральных значений содержат младшие значащие биты в дополнение к двум или нескольким старшим значащим битам. Соответственно, аудиодекодер может работать с хорошими результатами в обстоятельствах, при которых присутствует лишь небольшое количество младших значащих битов, и в обстоятельствах, при которых присутствует сравнительно большое количество младших значащих битов (при этом работа во втором режиме, как правило, проблематична в первом случае, тогда как работа во втором режиме, как правило, очень выгодна во втором случае).
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью оценки флага битового потока, который включен в кодированное аудиопредставление, для того чтобы принять решение о том, работает ли аудиодекодер в первом режиме или во втором режиме. Соответственно, управление переключением между первым режимом и вторым режимом может осуществляться посредством аудиокодера, который, как правило, содержит хорошие знания о том, какой режим является наиболее выгодным. Также может быть уменьшена сложность аудиодекодера, потому что не требуется, чтобы аудиодекодер сам принимал решение о том, использовать ли первый режим или второй режим.
В другом варианте осуществления аудиодекодер выполнен с возможностью совместного декодирования двух или нескольких старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений на основе соответствующих кодов символа, при этом соответствующий код символа представляет собой два или несколько старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений. Такое группирование спектральных значений, в котором два или несколько спектральных значений представляются одним символом арифметически кодированного представления, также, в частности эффективно, так как часто присутствует некоторая корреляция между смежными спектральными значениями, и так как не нужно отдельно кодировать битовую позицию для каждого из двух старших значащих битов. Однако, естественно, может случиться так, что оба «старших значащих бита» одного из спектральных значений равны «нулю», так как битовая позиция, как правило, определяется спектральным значением с большим абсолютным значением.
Вариант осуществления в соответствии с изобретением создает аудиодекодер для предоставления декодированной аудиоинформации, на основе кодированной аудиоинформации. Аудиодекодер выполнен с возможностью получения декодированных спектральных значений на основе кодированной информации, представляющей собой спектральные значения. Аудиодекодер выполнен с возможностью декодирования одного или нескольких старших значащих битов на основе соответствующих кодов символа для множества спектральных значений и декодирования одного или нескольких младших значащих битов для одного или нескольких спектральных значений. В частности, аудиодекодер выполнен с возможностью переключения между первым режимом, при котором декодирование спектральных значений в диапазоне более высоких частот пропускается (например, полностью пропускается), в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются для всех спектральных значений, для которых декодируется (или был декодирован) один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и вторым режимом, при котором декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется (или был декодирован) один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов. Более того, аудиодекодер выполнен с возможностью предоставления декодированной аудиоинформации с использованием спектральных значений.
Этот вариант осуществления основан на идеи, что первый режим и второй режим могут быть более выгодными с точки зрения компромисса между сложностью, битрейтом и качеством аудио в зависимости от обстоятельств. Аудиодекодер может применять два разных подхода к исчерпанию бюджета битов. При работе в первом режиме, аудиодекодер может обрабатывать ситуации, при которых аудиокодер пропускает кодирование спектральных значений в диапазоне более высоких частот, тогда как спектральные значения в диапазоне низких частот все полностью кодируются (включая младшие значащие биты). Во втором режиме аудиодекодер обрабатывает кодированную аудиоинформацию, в которой младшие значащие биты выборочно пропущены для некоторых спектральных значений, даже несмотря на то, что один или несколько старших значащих битов кодируются для всех спектральных значений. Как уже упомянуто выше оба подхода обладают своими преимуществами в зависимости от некоторых других параметров системы (подобных, например, доступному битрейту), и аудиодекодер, описанный в данном документе, вследствие этого, может обеспечивать хорошие результаты при варьирующихся условиях.
Этот аудиодекодер также может быть дополнен любыми из признаков и функциональных возможностей упомянутого выше аудиодекодера.
В предпочтительном варианте осуществления аудиодекодер выполнен с возможностью в первом режиме получения промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением, из непрерывной битовой последовательности. Более того, аудиодекодер выполнен с возможностью во втором режиме получения промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением, из отдельных битовых последовательностей или из отдельных, не следующих друг за другом битовых местоположений битовой последовательности.
Другими словами, в первом режиме может быть одна непрерывная битовая последовательность, которая кодирует как промежуточные биты (при условии, что промежуточные биты присутствуют), так и младшие значащие биты. Эта непрерывная битовая последовательность, которая содержит как информацию о промежуточных битах, так и информацию о младшем значащем бите (но, которая, как правило, не содержит информацию об одном или нескольких старших значащих битах), может легко быть укорочена в случае, когда уменьшается бюджет битов. С другой стороны, во втором режиме, информация, представляющая собой младшие значащие биты, и информация, представляющая собой промежуточные биты, содержаться в отдельных битовых последовательностях или отдельных подпоследовательностях битовой последовательности. Соответственно, присутствует одна битовая последовательность, которая получает информацию о промежуточных битах (и, необязательно, информацию о знаке) и присутствует одна последовательность, которая содержит информацию о младшем значащем бите (и, необязательно, о знаках значений, которые очень близки к нулю). Следовательно, поскольку информация о младшем значащем бите находится в отдельной последовательности при работе во втором режиме, то легко удалить или укоротить последовательность, содержащую младшие значащие биты, чтобы тем самым уменьшить требуемый битрейт. Аудиодекодер может легко адаптироваться к варьирующейся длине последовательности, содержащей младшие значащие биты, в том смысле, что уточнение младших значащих битов спектральных значений применяется к большему или меньшему числу спектральных значений, в зависимости от того, сколько битов содержится в последовательности, представляющей собой младшие значащие биты.
Вариант осуществления в соответствии с изобретением создает аудиокодер для предоставления кодированной аудиоинформации на основе входной аудиоинформации. Аудиокодер выполнен с возможностью получения спектральных значений, представляющих собой аудиоконтент входной аудиоинформации. Аудиокодер также выполнен с возможностью кодирования по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию, представляющую собой спектральные значения (которые могут быть частью кодированной аудиоинформации). Более того, аудиокодер выполнен с возможностью совместного кодирования двух или нескольких старших значащих битов на спектральное значение, чтобы получить соответствующие коды символа для набора спектральных значений с использованием арифметического кодирования. Соответствующий код символа может представлять собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений.
Аудиокодер также выполнен с возможностью кодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от доступного бюджета битов так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов. Более того, аудиокодер выполнен с возможностью предоставления кодированной аудиоинформации с использованием кодированной информации, представляющей собой спектральные значения.
Этот аудиокодер основан на идеи, что хороший компромисс между сложностью, битрейтом и качеством аудио может быть достигнут путем выборочного пропуска кодирования одного или нескольких младших значащих битов для спектральных значений, для которых два или несколько старших значащих битов кодируются с использованием арифметического кодирования. Было обнаружено, что пропуск кодирования одного или нескольких младших значащих битов, в частности, не является губительным в случае, когда присутствует по меньшей мере два старших значащих бита, которые кодируются.
В частности, было обнаружено, что пропуск кодирования младших значащих битов для одного или нескольких (квантованных) спектральных значений, для которых кодируются старшие значащие биты, вызывает много меньшее ухудшение качества аудио в сравнении с полным пропуском кодирования некоторых спектральных значений, чтобы остаться в рамках бюджета битов.
В предпочтительном варианте осуществления арифметическое кодирование выполнено с возможностью определения битовых позиций (например, весовых коэффициентов бита) по меньшей мере двух старших значащих битов (например, numbits и numbits-1), например, отдельно для разных символов арифметически кодированного представления, и включения в арифметически кодированное представление информации, например, управляющей последовательности (escape sequence), содержащей один или несколько символов «VAL_ESC», описывающих битовые позиции. Соответственно, битовые позиции или весовые коэффициенты бита двух или нескольких старших значащих битов могут быть адаптированы к фактическим спектральным значениям, при этом старшие значащие биты могут иметь большой весовой коэффициент бита для сравнительно больших спектральных значений и при этом старшие значащие биты могут иметь сравнительно небольшой весовой коэффициент бита для сравнительно меньших спектральных значений. Соответственно, некоторые квантованные спектральные значения могут быть полностью кодированы с использованием двух или нескольких старших значащих битов, при этом не остается младших значащих битов (или промежуточных битов). В противоположность, другие сравнительно большие спектральные значения могут быть кодированы с использованием двух или нескольких старших значащих битов и с использованием по меньшей мере одного младшего значащего бита. Для таких сравнительно больших спектральных значений, для которых присутствует по меньшей мере один младший значащий бит, в дополнение к двум или нескольким старшим значащим битам, кодер может гибким образом принимать решение о том, кодировать или нет младший значащий бит, в зависимости от того, исчерпывается или нет доступный бюджет битов. Однако, чем выше разрешение квантования, тем больше количество спектральных значений, которые содержат один или несколько младших значащих битов, в дополнение к двум или нескольким старшим значащим битам. Соответственно, возможность для экономии битов путем не кодирования младших значащих битов является, в частности, высокой для тонкого квантования.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью отображения по меньшей мере двух старших значащих битов по меньшей мере одного спектрального значения в одном символе арифметически кодированного представления, которое представляет собой по меньшей мере два старших значащих бита по меньшей мере одного спектрального значения. Было обнаружено, что совместное кодирование двух или нескольких старших значащих битов с использованием одного символа арифметически кодированного представления является, в частности, эффективным, поскольку могут быть использованы корреляции между старшими значащими битами смежных спектральных значений, например, при определении контекста для арифметического кодирования.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью кодирования для всех спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами. Соответственно, все спектральные значения, для которых кодируется два или несколько старших значащих битов, фактически кодируются с хорошим разрешением. Для таких спектральных значений всегда кодируются все биты, за исключением младшего значащего бита, что дает хорошее разрешение и обладает эффектом того, что в случае, когда исчерпывается бюджет битов, затрагиваются только младшие значащие биты. Таким образом, может быть обеспечено очень хорошее слуховое впечатление.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью кодирования, на первой фазе кодирования, двух или нескольких старших значащих битов на спектральное значение и также кодирования, на первой фазе кодирования, для всех спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов (которые совместно кодируются) и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами. Более того, кодер выполнен с возможностью кодирования, на первой фазе кодирования, знаков для всех спектральных значений, для которых кодируется два или несколько старших значащих битов, и для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение. Однако, аудиокодер выполнен с возможностью выборочного пропуска, на первой фазе кодирования, кодирования знака для спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение. Соответственно, на первой фазе кодирования, кодируются старшие значащие биты и промежуточные биты (при условии, что промежуточные биты присутствуют между старшими значащими битами и младшим значащим битом). Однако, на первой фазе кодирования, знаки кодируются, только если два или несколько старших значащих битов и промежуточные биты указывают ненулевое значение. Другими словами, на первой фазе кодирования, знаки не кодируются, если спектральные значения настолько небольшие, что они отличаются от нуля только на значение младшего значащего бита (что имеет место, если весовой коэффициент бита двух или нескольких старших значащих битов выбирается так, что все старшие значащие биты являются нулем, что может, например, произойти, если весовые коэффициенты бита заданного спектрального значения затрагиваются одним или несколькими смежными спектральными значениями, которые больше заданного спектрального значения).
Более того, аудиокодер выполнен с возможностью выборочного кодирования, на второй фазе кодирования, которая следует за первой фазой кодирования, информации о знаке для спектральных значений, для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых информация о младшем значащем бите указывает ненулевое значение. Другими словами, для очень небольших спектральных значений, которые отличаются от нуля только на значения младшего значащего бита, знак кодируется только на второй фазе кодирования, при этом решение о том, исполняется (или завершается) ли фактически вторая фаза кодирования для заданного спектрального значения (т.е. включается ли информация о младшем значащем бите в кодированную аудиоинформацию) зависит от бюджета битов. Таким образом, первая фаза кодирования упорядочивается, и информация о знаке кодируется только (например, включается в кодированную аудиоинформацию) на второй фазе кодирования, если только уже очевидно из кодирования старших значащих битов и любых промежуточных битов (при условии, что присутствуют любые промежуточные биты), что информация о знаке необходима в любом случае. Избегают кодирования ненужной информации и максимально увеличивается эффективность, поскольку в начале не очевидно для каких спектральных значений будет выполняться вторая фаза кодирования. Итоговое решение о том, будет ли выполняться вторая фаза кодирования, может быть принято, когда известно, сколько битов требуется для декодирования старших значащих битов и любых промежуточных битов, и сколько битов уже использовано кодированием других младших значащих битов.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью включения информации о знаке в кодированное аудиопредставление только для спектральных значений, которые отличаются от нуля только на младший значащий бит, если фактически кодируется (включается в кодированное аудиопредставление) младший значащий бит таких спектральных значений. Соответственно, можно избежать включения ненужной информации в кодированную аудиоинформацию (или кодированное аудиопредставление). Другими словами, информация о знаке включается для всех спектральных значений, которые являются ненулевыми, даже если не рассматривать младший значащий бит. Для спектральных значений, которые являются ненулевыми только при рассмотрении младшего значащего бита, информация о знаке включается в кодированное аудиопредставление, только если информация о младшем значащем бите фактически включается в кодированное аудиопредставление.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью последовательного предоставления последующих битов битовой последовательности информации о младшем значащем бите для того, чтобы кодировать значения младшего значащего бита, ассоциированные со спектральными значениями. Соответственно, предоставляется непрерывная битовая последовательность или битовый поток, который содержит только информацию о младшем значащем бите и, возможно, некоторую информацию о знаке для таких спектральных значений, которые являются ненулевыми только при рассмотрении младшего значащего бита. Следовательно, присутствует отдельная последовательность информации о младшем значащем бите (включая ассоциированную информацию о знаке), которая может быть укорочена или пропущена, не оказывая влияния на кодирование старших значащих битов и промежуточных битов (и любой информации о знаке, которая является релевантной, даже оставляя без внимания младший значащий бит).
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью предоставления одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько значений старшего значащего бита и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, при этом использованный один бит битовой последовательности информации о младшем значащем бите используется для того, чтобы кодировать значение младшего значащего бита. Более того, аудиокодер выполнен с возможностью предоставления одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых предоставленный один бит битовой последовательности информации о младшем значащем бите подтверждает нулевое значение. Более того, аудиокодер выполнен с возможностью предоставления двух последующих битов битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых первый из предоставленных битов битовой последовательности информации о младшем значащем бите указывает отклонение от нулевого значения на значение младшего значащего бита, при этом второй из предоставленных битов битовой последовательности информации о младшем значащем бите кодирует знак соответствующего спектрального значения. Другими словами, битовая последовательность информации о младшем значащем бите, как правило, содержит один бит на спектральные значения, но содержит два бита на спектральное значение, если спектральное значение отклоняется от нулевого значения только на значение младшего значащего бита. В последнем случае информация о знаке включается в битовую последовательность информации о младшем значащем бите потому, что она требуется, только если фактически кодируется соответствующая часть информации о младшем значащем бите или фактически передается аудиодекодеру, или фактически оценивается аудиодекодером.
Другими словами, знак выборочно включается в битовую последовательность информации о младшем значащем бите для спектральных значений, для которых старшие значащие биты и промежуточные биты (если присутствуют) указывают нулевое значение, и для которых младший значащий бит указывает ненулевое значение (отклоняясь от нулевого значения только на значение младшего значащего бита).
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью кодирования младших значащих битов, начиная с младшего значащего бита, ассоциированного со спектральным значением самой низкой частоты, и продолжая в направлении спектральных значений, ассоциированных со все более высокими частотами. Соответственно, кодированная информация для уточнения спектральных значений (например, для уточнения всех спектральных значений, которые содержат больше битов, чем один или несколько старших значащих битов) посредством информации о младшем значащем бите предоставляется в диапазоне от спектрального значения самой низкой частоты вплоть до спектрального значения, для которого предоставляется «последняя» информация о младшем значащем бите. Более того, кодированная информация для уточнения спектральных значений посредством информации о младшем значащем бите не предоставляется для (всех) спектральных значений (даже для кодированных спектральных значений, которые содержат больше битов, чем два или несколько старших значащих битов) с ассоциированными частотами выше частоты, ассоциированной со спектральным значением, для которого предоставляется последняя информация о младшем значащем бите. Сформулировав иначе, неиспользованные биты бюджета битов используются для уточнения спектральных значений в области низких частот посредством информации о младшем значащем бите, до тех пор, пока бюджет битов не исчерпывается. Спектральные значения в области более высоких частот не уточняются посредством информации о младшем значащем бите, если бюджет битов исчерпан. Такая процедура влечет за собой то, что отдается предпочтение спектральным значениям на участке более низких частот над спектральными значениями на участке более высоких частот при предоставлении информации о младшем значащем бите. Это согласуется с психо-акустическими требованиями, поскольку слуховое впечатление будет менее искажено неточностями в области более высоких частот в сравнении с неточностями в области более низких частот. Соответственно, аудиокодер может гибко принимать решение, на основе бюджета битов, о том, до какой частоты (спектральное значение для которого предоставляется последняя информация о младшем значащем бите) присутствует уточнение спектральных значений с использованием информации о младшем значащем бите в зависимости от бюджета битов.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью переключения между первым режимом, при котором кодирование ненулевых спектральных значений в диапазоне более высоких частот (например, полностью) пропускается в случае, когда доступный бюджет битов использован (исчерпан) посредством кодирования спектральных значений в диапазоне более низких частот, и при котором младшие значащие биты кодируются для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и вторым режимом, при котором кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты.
Как уже упомянуто выше, наличие возможности переключения между такими режимами обеспечивает эффективное кодирование в разных средах и при разных ограничениях битрейта. В первом режиме может варьироваться количество кодируемых спектральных значений, и кодирование ненулевых спектральных значений в диапазоне более высоких частот может быть пропущено в ответ на исчерпание бюджета битов. Соответственно, слуховое впечатление в диапазоне высоких частот ухудшается, но это может быть приемлемым в некоторых обстоятельствах, например, в средах с низким битрейтом. С другой стороны, во втором режиме аудиокодер может варьировать тем, сколько младших значащих битов спектральных значений кодируется в зависимости от бюджета битов, тогда как старшие значащие биты кодируются для всех спектральных значений (даже в области высоких частот). Таким образом, во втором режиме точность кодирования может быть уменьшена даже для более низких частот в некоторых случаях, тогда как отсутствует полный пропуск ненулевых (квантованных) спектральных значений в области высоких частот. Второй режим работы может, например, привести к улучшенному слуховому впечатлению в условиях более высокого битрейта, которое страдало бы от значительного ухудшения, если бы ненулевые спектральные значения в области высоких частот полностью пропускались. Таким образом, аудиокодер может адаптироваться к разным ситуациям и требованиям к битрейту гибким образом, будучи с возможностью переключения между первым режимом и вторым режимом.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью предоставления флага битового потока, который включается в кодированную аудиоинформацию (или кодированное аудиопредставление) для того, чтобы указать, работает ли аудиокодер в первом режиме или во втором режиме. Соответственно, аудиодекодеру легко распознать, должен ли использоваться первый режим декодирования или второй режим декодирования. Разумно использование флага битового потока для такого сигнала, поскольку аудиокодер, как правило, обладает большими знаниями о конкретных обстоятельствах, чем аудиодекодер.
В предпочтительном варианте осуществления аудиокодер может быть выполнен с возможностью совместного кодирования двух или нескольких старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений с использованием соответствующих кодов символа. Соответственно, соответствующий код символа может представлять два или несколько старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений. Было обнаружено, что такое кодирование является, в частности, эффективным, поскольку могут быть использованы зависимости и корреляции между спектрально смежными спектральными значениями. Также весовой коэффициент бита старших значащих битов может быть определен на основе обоих спектральных значений, при этом в отношении спектрального значения с большим абсолютным значением может быть принято решение касательно общего весового коэффициента бита старших значащих битов для обоих спектральных значений. Соответственно, потери на сигнализацию для сигнализации весового коэффициента бита старших значащих битов могут быть уменьшены, поскольку он может быть просигнализирован совместно для двух или нескольких спектральных значений.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью определения ненулевого спектрального значения фактической самой высокой частоты (например, без усечения спектральных значений) и кодирования по меньшей мере двух или нескольких старших значащих битов всех ненулевых (квантованных) спектральных значений или всех ненулевых групп (квантованных) спектральных значений. Соответственно, можно гарантировать то, что кодируются по меньшей мере старшие значащие биты всех ненулевых (квантованных) спектральных значений, что, как правило, приводит к хорошему слуховому впечатлению.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью кодирования всех битов, за исключением младшего значащего бита, для всех ненулевых (квантованных) спектральных значений. Более того, аудиокодер выполнен с возможностью кодирования младших значащих битов для спектральных значений до тех пор, пока не исчерпывается бюджет битов (например, начиная со спектрального значения самой низкой частоты и продолжая в направлении спектральных значений более высоких частот). Соответственно, может быть достигнуто хорошее слуховое впечатление и только переменное количество младших значащих битов будет пропущено при кодировании, в зависимости от бюджета битов.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью получения информации о глобальном усилении, которая определяет шаги квантования для квантования спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений. Было обнаружено, что использование такой информации о (глобальном) усилении может быть полезным для регулирования этапов квантования. Однако, также было распознано, что, возможно, не так легко тонко настроить потребность в битах при использовании информации о глобальном усилении. Соответственно, концепция для выборочного пропуска кодирования младших значащих битов для некоторых спектральных значений может быть использована для компенсации неточностей регулировки потребности в битах, которые вызываются использованием информации о глобальном усилении. Однако, было обнаружено, что сочетание использования информации о глобальном усилении с концепцией кодирования, описанной в данном документе, создает систему со сравнительно низкой сложностью вычисления и по-прежнему обеспечивающую хороший компромисс между качеством аудио и битрейтом. В частности, заданный фиксированный битрейт может быть полностью использован даже с низкой регулировкой сложности информации о глобальном усилении путем гибкого принятия решения о том, сколько должно быть закодировано младших значащих битов.
Вариант осуществления в соответствии с изобретением создает аудиокодер для предоставления кодированной аудиоинформации на основе входной аудиоинформации. Аудиокодер выполнен с возможностью получения спектральных значений, представляющих собой аудиоконтент входной аудиоинформации. Аудиокодер выполнен с возможностью кодирования по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию, представляющую собой спектральные значения. Аудиокодер выполнен с возможностью кодирования одного или нескольких старших значащих битов с использованием соответствующих кодов символа для множества спектральных значений, и кодирования одного или нескольких младших значащих битов для одного или нескольких спектральных значений, при этом соответствующий код символа представляет собой одно или несколько значений старшего значащего бита для одного или нескольких спектральных значений. Аудиокодер выполнен с возможностью переключения между первым режимом, при котором кодирование ненулевых спектральных значений в области более высоких частот (например, полностью) пропускается в случае, когда доступный бюджет битов использован (например, исчерпан) кодированными спектральными значениями в диапазоне более низких частот, и при котором младшие значащие биты кодируются для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и вторым режимом, при котором кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты. Аудиокодер выполнен с возможностью предоставления кодированной аудиоинформации с использованием кодированной информации, представляющей собой спектральные значения.
Этот аудиокодер основан на соображениях, упомянутых выше для аналогичного аудиокодера, и также для аналогичного аудиодекодера. В частности, будучи с возможностью переключения между первым режимом и вторым режимом, аудиокодер может адаптироваться к разным ситуациям кодирования и требованиям к битрейту.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью кодирования одного или нескольких старших значащих битов всех ненулевых спектральных значений или всех ненулевых групп спектральных значений во втором режиме. Соответственно, может быть достигнуто хорошее слуховое впечатление.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью ограничения, при работе в первом режиме, диапазона частот, для которого кодируются спектральные значения, в случае, когда бюджет битов является недостаточным так, что одно или несколько спектральных значений (например, в диапазоне высоких частот) остаются нерассмотренными при кодировании спектральных значений. Таким образом, в первом режиме используется выборочное ограничение диапазона частот, в зависимости от бюджета битов, при этом ограничение диапазона частот помогает сэкономить биты.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью определения, при работе в первом режиме, значения максимальной частоты и кодирования, при работе в первом режиме, спектральных значений вплоть до максимальной частоты, и оставления, при работе в первом режиме, спектральных значений выше максимальной частоты не кодированными, даже если спектральные значения являются ненулевыми (или имеют ненулевые старшие значащие биты). Более того, аудиокодер выполнен с возможностью выбора, при работе в первом режиме, значения максимальной частоты в зависимости от вычисления или оценки потребности в битах для кодирования всех спектральных значений так, что количество спектральных значений, которые должны быть кодированы, уменьшается, если вычисленная или оцененная потребность в битах будет превышать бюджет битов. Более того, аудиокодер выполнен с возможностью определения, при работе во втором режиме, значения максимальной частоты (например, равное значению фактической максимальной частоты) и кодирования, при работе во втором режиме, спектральных значений вплоть до максимальной частоты и оставления, при работе во втором режиме, спектральных значений выше максимальной частоты не кодированными. При работе во втором режиме значение максимальной частоты выбирается так, что кодируется по меньшей мере один или несколько старших значащих битов всех ненулевых спектральных значений или всех ненулевых групп спектральных значений и так, что большая часть спектральных значений с нулевым значением остается не кодированными. Другими словами, аудиокодер использует разные критерии для выбора значения максимальной частоты в разных режимах. В первом режиме значение максимальной частоты выбирается в зависимости от потребности в битах, при этом ненулевые (квантованные) спектральные значения остаются не кодированными в случае, когда бюджет битов слишком мал. С другой стороны, во втором режиме, значение максимальной частоты выбирается так, что для всех спектральных значений, квантованных в ненулевое значение, кодируется по меньшей мере один или несколько старших значащих битов. Таким образом, разные концепции используются для борьбы с исчерпанием бюджета битов. В первом режиме исчерпание бюджета битов обрабатывается путем уменьшения значения максимальной частоты. Во втором режиме исчерпание бюджета битов обрабатывается путем пропуска кодирования младших значащих значений одного или нескольких спектральных значений, для которых кодируются старшие значащие биты.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью включения информации, описывающей максимальную частоту, в кодированную аудиоинформацию. Соответственно, аудиодекодер знает сколько спектральных значений должно быть декодировано. Информация, описывающая максимальную частоту, может быть использована как для ограничения количества кодированных (и декодированных) спектральных значений из-за исчерпания бюджета битов, так и также для сигнализации того, что спектральные значения выше максимальной частоты являются нулем (например, фактически являются нулем даже без усечения).
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью принятия решения о режиме касательно того, использовать ли первый режим или второй режим, в зависимости от доступного битрейта (например, так, что первый режим используется для сравнительно более малых битрейтов и так, что второй режим используется для сравнительно более высоких битрейтов).
Такой механизм полезен, поскольку второй режим лучше подходит для борьбы с исчерпанием бюджета битов в случае более высоких битрейтов. В противоположность, первый режим иногда дает более хорошие результаты, чем второй режим, в случае сравнительно низких битрейтов.
В другом предпочтительном варианте осуществления аудиокодер выполнен с возможностью принятия решения о режиме касательно того, использовать ли первый режим или второй режим, в зависимости от информации о количестве спектральных значений или групп спектральных значений, которые содержат, в дополнение к одному или нескольким старшим значащим битам, кодированным на этапе кодирования старших значащих битов, один или несколько младших значащих битов, кодирование которых может быть выборочно пропущено в зависимости от потребности в битах и бюджета битов. Такая концепция полезна, поскольку второй режим лучше подходит для случаев, когда присутствует (после квантования) большое количество младших значащих битов. Такое большое количество младших значащих битов, например, присутствует в случае высокого битрейта, при котором кодирование может быть выполнено с высоким разрешением (и при этом может быть использовано точное квантование).
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью включения флага битового потока в кодированную аудиоинформацию, указывающего, работает ли аудиокодер в первом режиме или во втором режиме. Соответственно, аудиодекодер может быть проинформирован о том, какой режим декодирования использовать.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью в первом режиме кодирования промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением, в непрерывную битовую последовательность. Более того, аудиокодер выполнен с возможностью во втором режиме кодирования промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением, в отдельные битовые последовательности или в отдельных, не следующих друг за другом битовых местоположениях (или участках битовой последовательности) битовой последовательности. Соответственно, при работе в первом режиме присутствует непрерывная битовая последовательность, которая представляет собой как промежуточные биты, так и младшие значащие биты. В противоположность, при работе во втором режиме промежуточные биты и младшие значащие биты предоставляются в отдельных последовательностях (или в отдельных участках общей последовательности), что обеспечивает простое укорачивание последовательности, представляющей собой младшие значащие биты. Соответственно, возможна более простая адаптация бюджета битов, даже после завершения кодирования. Это способствует адаптации к бюджету битов.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью кодирования, при работе в первом режиме, информации о знаке, ассоциированной со спектральным значением, в битовой последовательности, которая ассоциирована с промежуточными битами, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младших значащих битов. Более того, аудиокодер выполнен с возможностью выборочного кодирования, при работе во втором режиме, информации о знаке, ассоциированной со спектральным значением, в битовой последовательности, которая ассоциирована с промежуточными битами, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, или в битовой последовательности, ассоциированной с младшими значащими битами (и информацией о знаке) так, что информация о знаке для спектральных значений, которые отклоняются от нуля только на значение младшего значащего бита, кодируются в битовой последовательности, ассоциированной с младшими значащими битами (и информацией о знаке). Соответственно, информация о знаке помещается в битовую последовательность, ассоциированную с младшими значащими битами (и информацией о знаке), в случае, когда информация о знаке требуется только, когда оценивается информация о младшем значащем бите. Соответственно, информация, которая всегда включается в кодированное аудиопредставление, а именно битовую последовательность, которая ассоциирована с промежуточными битами и информацией о знаке, не содержит какой-либо информации, которая является ненужной в случае, когда информация о младшем значащем бите пропускается. Это упрощает масштабируемость битрейта.
Вариант осуществления в соответствии с изобретением создает аудиокодер для предоставления кодированной аудиоинформации на основе входной аудиоинформации. Аудиокодер выполнен с возможностью получения спектральных значений, представляющих собой аудиоконтент входной аудиоинформации (например, с использованием преобразования MDCT). Аудиокодер выполнен с возможностью кодирования по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию, представляющую собой спектральные значения. Аудиокодер выполнен с возможностью получения информации о (глобальном) усилении, которая определяет шаги квантования для квантования спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений. Аудиокодер выполнен с возможностью кодирования одного или нескольких старших значащих битов с использованием соответствующих кодов символа для множества спектральных значений с использованием арифметического кодирования, и кодирования одного или нескольких старших значащих битов для одного или нескольких спектральных значений, при этом соответствующий код символа представляет собой один или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений. Аудиокодер выполнен с возможностью кодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от доступного бюджета битов так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов. Более того, аудиокодер выполнен с возможностью предоставления кодированной аудиоинформации с использованием кодированной информации, представляющей собой спектральные значения.
Этот аудиокодер основан на обнаружении того, что использование информации об усилении (или информации о глобальном усилении) полезно для определения квантования. Также концепция выборочного кодирования младших значащих битов является очень эффективной в сочетании с этой концепцией. В отношении подробностей можно обратиться к обсуждению выше.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью получения первой оценки информации об усилении на основании энергии групп спектральных значений (например, коэффициентов MDCT). Более того, аудиокодер выполнен с возможностью квантования набора спектральных значений (например, спектра MDCT) с использованием первой оценки информации об усилении. Более того, аудиокодер выполнен с возможностью вычисления или оценки количества битов, которые требуются для кодирования набора спектральных значений, квантованных с использованием первой оценки информации об усилении или с использованием уточненной информации об усилении. Более того, аудиокодер выполнен с возможностью принятия решения о том, использовать ли первый режим или второй режим, в зависимости от требуемого количества битов. Соответственно, решение о квантовании и также решение о том, какой режим использовать, могут быть приняты эффективным образом. В зависимости от того, должна или нет быть выбрана итерационная процедура, количество битов, требуемых для кодирования набора спектральных значений, может быть оценено с использованием квантования в зависимости от первой оценки информации об усилении или с использованием квантования в зависимости от итерационной уточненной информации об усилении. Соответственно, сложность определения точности квантования может быть достаточно небольшой.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью переключения между первым режимом и вторым режимом, упомянутыми выше. В частности, аудиокодер выполнен с возможностью принятия решения о том, использовать ли первый режим или второй режим, в зависимости от требуемого количества битов и в зависимости от критерия, который указывает, сколько спектральных значений содержат больше битов, чем один или несколько старших значащих битов. В частности, требуемое количество битов, которое может быть определено после принятия решения касательно информации об усилении, которая должна быть использована (первая оценка или уточненная информация об усилении), может быть сравнено с бюджетом битов и решение о том, какой режим использовать, может быть принято, как в зависимости от этого сравнения, так и в зависимости от критерия, который указывает, сколько спектральных значений содержат больше битов, чем один или несколько старших значащих битов. Соответственно, второй режим может быть использован, если присутствует много спектральных значений, содержащих один или несколько менее значащих битов в дополнение к одному или нескольким старшим значащим битам.
В предпочтительном варианте осуществления аудиокодер выполнен с возможностью переключения между первый режимом и вторым режимом, упомянутыми выше. В этом случае аудиокодер может быть выполнен с возможностью принятия решения о том, использовать ли первый режим или второй режим, в зависимости от требуемого количества битов и в зависимости от битрейта так, что второй режим выбирается, если битрейт больше или равен пороговому битрейту и, если вычисленное или оцененное количество битов, требуемых для кодирования набора спектральных значений, выше бюджета битов. Было показано, что использование второго режима, в частности, полезно в упомянутом случае.
Более того, аудиокодер также может быть дополнен любыми другими признаками, упомянутыми ранее. Также применяются те же самые преимущества, что обсуждались ранее.
Дополнительные варианты осуществления в соответствии с изобретением создают способы для предоставления декодированной аудиоинформации, на основе кодированной аудиоинформации, и способы для предоставления кодированной аудиоинформации, на основе входной аудиоинформации. Эти способы соответствуют соответствующему аудиодекодеру и соответствующему аудиокодеру и могут быть дополнены любыми из признаков и функциональных возможностей, которые обсуждались в данном документе в отношении соответствующего аудиодекодера или аудиокодера.
Кроме того, варианты осуществления в соответствии с изобретением содержат компьютерную программу для выполнения любого из способов, описанных в данном документе.
Дополнительный вариант осуществления содержит битовый поток, который основан на тех же самых соображениях, которые обсуждались выше, и который может быть дополнен любыми из пунктов информации, которые должны быть кодированы или декодированы, как упомянуто выше.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Варианты осуществления в соответствии с настоящим изобретением впоследствии будут описаны при обращении к прилагаемым Фигурам, на которых:
Фиг. 1 показывает структурную принципиальную схему аудиодекодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 2 показывает структурную принципиальную схему аудиодекодера, в соответствии с другим вариантом осуществления настоящего изобретения;
Фиг. 3 показывает структурную принципиальную схему аудиокодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 4 показывает структурную принципиальную схему аудиокодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 5 показывает структурную принципиальную схему аудиокодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 6 показывает структурную принципиальную схему другого аудиокодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 7 показывает структурную принципиальную схему аудиодекодера, в соответствии с другим вариантом осуществления настоящего изобретения;
Фиг. 8 показывает блок-схему функциональных возможностей аудиокодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 9 показывает блок-схему функциональных возможностей аудиодекодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 10a-10f показывают представления псевдо-программного кода функциональных возможностей аудиокодера, в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 11a-11d показывают представления псевдо-программного кода функциональных возможностей аудиодекодера, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 12 показывает графическое представление отношения сигнала к шуму, которое формируется обычным аудиокодером/декодером;
Фиг. 13 показывает графическое представление отношения сигнала к шуму, которое обеспечивается аудиокодерами/декодерами, в соответствии с настоящим изобретением; и
Фиг. 14-18 показывают блок-схемы способов для кодирования аудио и декодирования аудио, в соответствии с вариантами осуществления настоящего изобретения.
1) Аудиодекодер в Соответствии с Фиг. 1
Фиг. 1 показывает структурную принципиальную схему аудиодекодера 100, в соответствии с вариантом осуществления настоящего изобретения.
Аудиодекодер 100 выполнен с возможностью приема кодированной аудиоинформации 110 и предоставления, на ее основе, декодированной аудиоинформации 112. Аудиодекодер 100 выполнен с возможностью получения декодированных спектральных значений 132 на основе кодированной информации 130, представляющей собой спектральные значения, при этом кодированная информация 130 может быть частью кодированной аудиоинформации 110. В дополнение, кодированная информация 110 может необязательно содержать дополнительную информацию, аналогичную информации формирования шума, информации управления и аналогичную.
Аудиодекодер выполнен с возможностью совместного декодирования двух или нескольких старших значащих битов на спектральное значение (например, на квантованное спектральное значение) на основе соответствующих кодов символа (например, кодов символа арифметически кодированного представления старших значащих битов) для набора спектральных значений с использованием арифметического декодирования. Соответствующий код символа может представлять два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений. Арифметически кодированные коды символа могут, например, быть частью кодированной информации 130, представляющей собой спектральные значения.
Более того, аудиодекодер выполнен с возможностью декодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от того, сколько доступно информации о младшем значащем бите. Информация о младшем значащем бите, которая может рассматриваться, как представление младших значащих битов, также может быть частью кодированной информации 130, представляющей собой спектральные значения.
В частности, аудиодекодер может быть выполнен с возможностью декодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от того сколько доступно информации о младшем значащем бите так, что декодируется один или несколько старших значащих битов, ассоциированных с одним или несколькими (квантованными) спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется (или было декодировано) один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов.
Другими словами, аудиодекодер может быть выполнен с возможностью декодирования младших значащих битов для некоторых спектральных значений, для которых были декодированы два или несколько старших значащих битов, и аудиодекодер может пропускать декодирование одного или нескольких младших значащих битов для некоторых других спектральных значений, для которых был декодирован один или несколько старших значащих битов.
Сформулировав иначе, аудиодекодер может, например, только уточнять истинное подмножество спектральных значений, для которого были декодированы старшие значащие биты, при этом количество касательно того, сколько спектральных значений уточняется посредством младших значащих битов, зависит от того, сколько доступно информации о младшем значащем бите (например, сколько информации о младшем значащем бите включено в кодированную аудиоинформацию 110 посредством аудиодекодера с учетом ограничений бюджета битов).
Аудиодекодер 100 может необязательно быть дополнен любыми признаками, функциональными возможностями и подробностями, описанными в данном документе, либо отдельно, либо в сочетании.
2) Аудиодекодер в Соответствии с Фиг. 2
Фиг. 2 показывает структурную принципиальную схему аудиодекодера 200, в соответствии с вариантом осуществления настоящего изобретения.
Аудиодекодер 200 выполнен с возможностью приема кодированной информации 210, и предоставления, на ее основе, декодированной аудиоинформации 212.
Кодированная аудиоинформация 210 может, например, содержать кодированную информацию 230, представляющую собой спектральные значения, при этом кодированная информация 230, представляющая собой спектральные значения, может, например, содержать арифметически кодированные коды символа, представляющие собой один или несколько старших значащих битов и представление младших значащих битов и знаков. Кодированная аудиоинформация 210 может необязательно содержать дополнительную информацию, аналогичную, например, информации управления или информации формирования шума. Необязательная дополнительная информация может также быть использована в процессе декодирования, но не является существенной для настоящего изобретения.
Аудиодекодер выполнен с возможностью получения декодированных спектральных значений 232 на основе кодированной информации 230, представляющей собой спектральные значения.
Аудиодекодер выполнен с возможностью декодирования одного или нескольких старших значащих битов на основе соответствующих кодов символа (например, на основе арифметически кодированных кодов символа) для множества спектральных значений, и декодирования одного или нескольких младших значащих битов для одного или нескольких спектральных значений. Например, аудиодекодер может использовать арифметически кодированные коды символа и представление младших значащих битов, которое может быть включено в кодированную информацию 230.
Аудиодекодер 200 выполнен с возможностью переключения между первый режимом, при котором пропускается (например, полностью пропускается) декодирование спектральных значений в диапазоне более высоких частот в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются для всех спектральных значений, для которых был декодирован один или несколько значащих битов, и которые содержат больше битов, чем старшие значащие биты, и вторым режимом, при котором декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты. Другими словами, в первом режиме аудиодекодер 200 может, например, декодировать только спектральные значения в диапазоне более низких частот (например, вплоть до частоты, которая определена или просигнализирована аудиокодером), при этом пропуская декодирование спектральных значений в диапазоне более высоких частот (например, выше частоты, указанной кодером). Однако, в первом режиме, представление полного числа спектральных значений может быть декодировано для всех спектральных значений в диапазоне более низких частот так, что старшие значащие биты, любые промежуточные биты и любые младшие значащие биты декодируются для всех спектральных значений в диапазоне более низких частот. В противоположность, во втором режиме, аудиодекодер может декодировать младшие значащие биты только для некоторых из спектральных значений, для которых декодируется один или несколько старших значащих битов, а не для всех спектральных значений, для которых декодируется один или несколько старших значащих битов. Таким образом, во втором режиме, младшие значащие биты могут быть декодированы в одной области частот, но не в другой области частот (например, в области более высоких частот).
Более того, аудиодекодер 200 выполнен с возможностью декодирования аудиоинформации 212 с использованием спектральных значений 232. Например, аудиодекодер 200 может содержать дополнительную обработку декодированных спектральных значений 232, которая, подробности которой, однако, не имеют особого значения для предмета настоящего изобретения.
Более того, следует отметить, что аудиодекодер 200 может быть дополнен любыми признаками, функциональными возможностями и подробностями, описанными в данном документе, либо отдельно, либо в сочетании.
3) Аудиокодер в Соответствии с Фиг. 3
Фиг. 3 показывает структурную принципиальную схему аудиокодера 300, в соответствии с вариантом осуществления настоящего изобретения. Аудиокодер 300 выполнен с возможностью приема входной аудиоинформации 310 и может предоставлять кодированную аудиоинформацию 312 (которая может соответствовать кодированной аудиоинформации 110, 210). Аудиокодер 300 выполнен с возможностью получения спектральных значений 330, представляющих собой аудиоконтент входной аудиоинформации 310. Например, аудиодекодер 300 может необязательно содержать любую форму обработки, аналогичную, например, преобразованию временной области в частотную область (например, MDCT) и/или формированию спектра (во временной области и/или спектральной области), для того, чтобы получать спектральные значения 330.
Спектральные значения 330 могут, например, быть квантованными (предпочтительно целочисленными) значениями в представлении двоичного числа со знаком. Более того, аудиокодер выполнен с возможностью кодирования по меньшей мере множества спектральных значений 330 для того, чтобы получить кодированную информацию 350, представляющую собой спектральные значения 330. Аудиокодер 330 может, например, быть выполнен с возможностью предоставления кодированной аудиоинформации 312 с использованием кодированной информации 350, представляющей собой спектральные значения. Однако, аудиокодер 300 может не обязательно также предоставлять дополнительную информацию, аналогичную информации управления или информации формирования шума, которая также включается в кодированную аудиоинформацию 312 (но подробности которой не имеют особого значения для настоящего изобретения).
Аудиокодер 300 выполнен с возможностью совместного кодирования двух или нескольких старших значащих битов на спектральное значение, чтобы получить соответствующие коды символа для набора спектральных значений с использованием арифметического кодирования. Соответствующий код символа может, например, представлять собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений.
Аудиокодер дополнительно выполнен с возможностью кодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями 330, в зависимости от бюджета битов так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов.
Например, аудиокодер 300 может предоставлять кодированные младшие значащие биты только для спектральных значений на участке более низких частот, но не для спектральных значений на участке более высоких частот. Путем выбора того, для каких спектральных значений предоставляются младшие значащие биты, количество битов может быть адаптировано к бюджету битов.
Более того, следует отметить, что аудиокодер в соответствии с Фиг. 3 может быть дополнен с использованием любого из признаков, функциональных возможностей и подробностей, описанных в данном документе, либо отдельно, либо в сочетании.
4) Аудиокодер в Соответствии с Фиг. 4
Фиг. 4 показывает структурную принципиальную схему аудиокодера 400, в соответствии с вариантом осуществления настоящего изобретения.
Аудиокодер 400 выполнен с возможностью приема входной аудиоинформации 410 и предоставления, на ее основе, кодированной аудиоинформации 412. Аудиокодер выполнен с возможностью получения спектральных значений 330 (которые могут, например, быть квантованными (предпочтительно целочисленными) спектральными значения в представлении двоичного числа со знаком), представляющих собой аудиоконтент входной аудиоинформации 410. Например, может быть использована необязательная обработка, которая может, например, содержать преобразование временной области в частотную область и/или формирование шума. Более того, квантование может не обязательно быть использовано для получения спектральных значений 430.
Аудиокодер дополнительно выполнен с возможностью кодирования по меньшей мере множества спектральных значений 430 для того, чтобы получить кодированную информацию 450, представляющую собой спектральные значения. Аудиокодер выполнен с возможностью кодирования одного или нескольких старших значащих битов (спектральных значений) с использованием соответствующих кодов символа для множества спектральных значений и кодирования одного или нескольких младших значащих битов для одного или нескольких спектральных значений. Соответствующий код символа может, например, представлять одно или несколько значений старшего значащего бита для одного или нескольких спектральных значений. Аудиокодер может быть выполнен с возможностью переключения между первым режимом, при котором кодирование ненулевых спектральных значений в диапазоне более высоких частот пропускается (например, полностью пропускается) в случае, когда доступный бюджет битов использован (исчерпан) посредством кодирования спектральных значений в диапазоне более низких частот, и при котором младшие значащие биты кодируются для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и вторым режимом, при котором кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старшие значащие биты.
Другими словами, аудиокодер может, например, кодировать сравнительно меньшее количество (например, не все ненулевые спектральные значения) в первом режиме, но те спектральные значения, которые кодируются, кодируются с полной точностью (включая младший значащий бит). В противоположность, во втором режиме, аудиокодер может, например, кодировать по меньшей мере старшие значащие биты всех ненулевых спектральных значений, но может кодировать некоторые из спектральных значений с уменьшенным разрешением (например, без кодирования соответствующего младшего значащего бита). Таким образом, кодер может, например, быть выполнен с возможностью переключения между двумя режимами, которые обеспечивают разные механизмы для адаптации количества битов к бюджету битов, при этом первый режим основан на пропуске кодирования спектральных значений в диапазоне более высоких частот для уменьшения количества битов, и при этом второй режим основан на пропуске младших значащих битов для некоторых спектральных значений (для которых кодируются только старший значащий бит и возможное некоторые промежуточные биты, и которые являются «частично кодированными»).
Аудиокодер 400 в соответствии с Фиг. 4 может быть дополнен любыми признаками, функциональными возможностями и подробностями, описанными в данном документе, либо отдельно, либо в сочетании.
5) Аудиокодер в Соответствии с Фиг. 5
Фиг. 5 показывает структурную принципиальную схему аудиокодера 500, в соответствии с вариантом осуществления настоящего изобретения. Аудиокодер 500 выполнен с возможностью приема входной аудиоинформации 510 и предоставления, на ее основе, кодированной аудиоинформации 512. Аудиокодер выполнен с возможностью получения спектральных значений 530, представляющих собой аудиоконтент входной аудиоинформации 510. Например, аудиокодер может использовать модифицированное дискретное косинусное преобразование (MDCT), чтобы получать спектральные значения 530. Вообще говоря, аудиокодер 500 может необязательно использовать любой тип предварительной обработки, аналогичной преобразованию временной области в частотную область и формированию шума, и аудиокодер 500 может необязательно также использовать квантование. Например, спектральные значения 530 могут быть квантованными спектральными значениями или могут быть после формирования шума и квантованными коэффициентами MDCT.
Аудиокодер выполнен с возможностью кодирования по меньшей мере множества спектральных значений 530 для того, чтобы получить кодированную информацию 550, представляющую собой спектральные значения. Кодированная информация 550 может быть частью кодированной аудиоинформации 512. Однако, кодированная аудиоинформация 512 также может содержать, необязательно, дополнительную информацию, аналогичную информации управления или информации формирования спектра.
Аудиокодер 500 также выполнен с возможностью получения информации 560 об усилении (например, информации о глобальном усилении), которая определяет шаги квантования для квантования спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений.
Аудиокодер 500 выполнен с возможностью кодирования одного или нескольких старших значащих битов (квантованных спектральных значений) с использованием соответствующих кодов символа для множества (квантованных) спектральных значений с использованием арифметического кодирования, и кодирования одного или нескольких младших значащих битов для одного или нескольких (квантованных) спектральных значений. Соответствующий код символа может, например, представлять один или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений.
Аудиокодер выполнен с возможностью кодирования одного или нескольких младших значащих битов, ассоциированных с одним или несколькими (квантованными) спектральными значениями, в зависимости от доступного бюджета битов так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов. Например, аудиокодер может предоставлять младшие значащие биты только для некоторых из спектральных значений, тогда как информация о младшем значащем бите не предоставляется для других спектральных значений, которые также выиграли бы от уточнения младших значащих битов.
Более того, аудиокодер 500 выполнен с возможностью предоставления кодированной аудиоинформации 512 с использованием кодированной информации 500, представляющей собой спектральные значения.
Следует отметить, что аудиокодер 500 может быть дополнен любыми из признаков, функциональных возможностей и подробностей, описанных в данном документе, либо отдельно, либо в сочетании.
6) Аудиокодер в Соответствии с Фиг. 6
Фиг. 6 показывает структурную принципиальную схему аудиокодера, в соответствии с вариантом осуществления изобретения.
Аудиокодер, в соответствии с Фиг. 6, полностью обозначен с помощью обозначения 600.
Аудиокодер 600 выполнен с возможностью приема входной аудиоинформации 610 и предоставления, на ее основе, кодированного аудиопредставления 612.
Аудиокодер 600 может содержать необязательную предварительную обработку 620, которая может применять некоторый тип предварительной обработки (аналогичной, например, фильтрации, ограничению полосы пропускания, формированию шума во временной области и аналогичное) к входному аудио сигналу.
Аудиокодер 600 может необязательно содержать преобразование 630 временной области в спектральную область, которое может, например, выполнять модифицированное дискретное косинусное преобразование или аналогичное преобразование, подобное модифицированному дискретному косинусному преобразованию с низкой задержкой. Преобразование 630 временной области в спектральную область может, например, принимать входную аудиоинформацию 610 или ее предварительно обработанную версию 622 и предоставлять спектральные значения 632.
Аудиокодер 600 может необязательно содержать (дополнительную) предварительную обработку, которая принимает спектральные значения 632 и которая может, например, выполнять формирование шума. Например, (дополнительная) предварительная обработка 640 может выполнять спектральное формирование шума и/или временное формирование шума. Необязательно, предварительная обработка 640 может, например, применять масштабные коэффициенты для масштабирования разных полос частот («полосы с масштабным коэффициентом») в соответствии с психо-акустической важностью полос частот (которая может быть определена, например, посредством психо-акустической модели). Соответственно, могут быть получены предварительно обработанные спектральные значения 642.
Аудиокодер 600 может необязательно содержать масштабирование 650, которое может, например, масштабировать спектральные значения 632 или предварительно обработанные спектральные значения 642. Например, масштабирование 650 может масштабировать спектральные значения 632 или предварительно обработанные спектральные значения 642 с использованием глобального усиления, чтобы тем самым предоставлять масштабированные спектральные значения 652.
q
Аудиокодер 600 также содержит квантование 660 (или квантователь), которое может принимать спектральные значения 632, предварительно обработанные спектральные значения 642 или масштабированные спектральные значения 652. Квантование 660 может, например, квантовать спектральные значения 632 или предварительно обработанные спектральные значения 642 или масштабированные спектральные значения 652, чтобы тем самым получать квантованные спектральные значения 662, которые могут, например, быть целочисленными значениями со знаком и которые могут, например, быть представлены в двоичном представлении (например, в представлении в дополнительном коде). Квантованные спектральные значения 662 могут, например, быть обозначены с помощью X. Например, предварительно определенное количество из 256, 512, 1024 или 2048 квантованных спектральных значений может быть предоставлено на кадр, при этом разные частоты ассоциированы с квантованными спектральными значениями.
q
Кодер 600 также может содержать кодирование 670, которое принимает квантованные значения 662 (X) и которое может предоставлять, на их основе, кодированную информацию, представляющую собой (квантованные) спектральные значения 672.
Следует отметить, что квантованные спектральные значения 662 могут соответствовать спектральным значениям 330, 430, 530, и что кодированная информация 672, представляющая собой спектральные значения, может соответствовать кодированной информации 350, 450, 550, представляющей собой спектральные значения. Более того, следует отметить, что кодирование 670 может, например, выполнять функциональные возможности, описанные в отношении кодеров 300, 400, 500. Однако, кодирование 670 также может содержать функциональные возможности, описанные в нижеследующем (например, при обращении к Фиг. 8) или по меньшей мере часть упомянутых функциональных возможностей.
Аудиокодер 600 также необязательно содержит пост-обработку 680, которая может применять пост-обработку к кодированной информации 672.
Соответственно, предоставляется кодированное представление 612, которое, как правило, содержит кодированную информацию 672. Однако, кодированное аудиопредставление 612 может необязательно также содержать дополнительную информацию, аналогичную информации управления и информации касательно формирования шума (аналогичную информации о масштабном коэффициенте, коэффициенты линейного прогнозирования или аналогичное). Кодированное аудиопредставление может необязательно также содержать информацию о глобальном усилении и/или информацию о режиме кодирования/информацию о режиме декодирования и/или информацию «lastnz».
В заключение, концепция для кодирования спектральных значений, раскрытая в данном документе, может, например, быть реализована в аудиокодере 600, при этом только некоторые или все признаки кодирования масштабного коэффициента, описанные в данном документе, могут быть приняты в аудиокодере 600.
7) Аудиодекодер в Соответствии с Фиг. 7
q
Фиг. 7 показывает структурную принципиальную схему аудиодекодера 700, в соответствии с вариантом осуществления настоящего изобретения. Аудиодекодер 700 выполнен с возможностью приема кодированной аудиоинформации 710 (которая может, например, соответствовать кодированному аудиопредставлению 612) и может предоставлять, на ее основе, декодированную аудиоинформацию 712. Аудиодекодер 700 может, например, содержать декодирование 720, которое принимает кодированную аудиоинформацию или ее часть и предоставляет, на ее основе, квантованные спектральные значения 722 (также обозначенные с помощью X). Например, декодирование 720 может предоставлять целочисленные значения со знаком в двоичном представлении (например, в представлении в дополнительном коде).
Аудиодекодер 700 необязательно содержит обратный квантователь 730, который принимает квантованные спектральные значения, и который может выполнять обратное квантование. Например, обратный квантователь 730 может использовать информацию о глобальном усилении, чтобы регулировать отображение, которое выполняется путем обратного квантования.
Аудиодекодер 700 необязательно содержит масштабирование 740, которое может принимать обратно квантованные спектральные значения 732, предоставленные обратным квантователем, и которое может выполнять масштабирование, чтобы тем самым получать обратно квантованные и масштабированные спектральные значения 742. Масштабирование может необязательно зависеть от глобального усиления.
Аудиодекодер 700 также может, необязательно, содержать пост-обработку 750, которая может принимать обратно квантованные спектральные значения 730 или обратно квантованные и масштабированные спектральные значения 742, и которая может выполнять формирование спектра. Например, формирование спектра может быть спектральным формированием шума и/или может быть основано на масштабировании разных полос частот с использованием коэффициентов и/или может быть основано на формировании спектра с использованием коэффициентов линейного прогнозирования (при этом информация, управляющая формированием спектра, может быть включена в кодированную аудиоинформацию).
Аудиодекодер 700 также может, необязательно, содержать преобразование 760 спектральной области во временную область, которое может принимать обратно квантованные спектральные значения 732, обратно квантованные и масштабированные спектральные значения 742 или пост-обработанные (например, со сформированным спектром) спектральные значения 752, предоставленные пост-обработкой 750. Преобразование спектральной области во временную область может, например, выполнять обратное модифицированное дискретное косинусное преобразование или обратное модифицированное дискретное косинусное преобразование с низкой задержкой или любое другое преобразование спектральной области во временную область, чтобы тем самым получать аудиопредставление 762 во временной области на основе входной информации, принятой преобразованием спектральной области во временную область.
Аудиопредставление 762 во временной области может, например, быть введено в (опциональную) пост-обработку 770, которая может выполнять один или несколько этапов пост-обработки и которая может, например, также выполнять формирование спектра во временной области (например, в случае, когда формирование спектра не выполняется в спектральной области, например, с использованием фильтрации LPC).
Соответственно, декодированная аудиоинформация 712 может быть предоставлена на основе выхода преобразования 762 спектральной области во временную область и, возможно, может быть получена с использованием некоторой формы пост-обработки и/или связывания кадров (аналогичного операции перекрытия с суммированием).
В заключение, аудиодекодер 700 может выполнять некоторую функциональную возможность декодирования аудио, при этом подробности, например, касательно формирования шума или формирования спектра, могут значительно варьироваться от реализации к реализации. Формирование спектра или формирование шума могут быть выполнены в спектральной области (т.е. до преобразования спектральной области во временную область) и/или во временной области (например, после преобразования спектральной области во временную область).
Однако, следует отметить, что кодированная аудиоинформация 710 может соответствовать кодированной аудиоинформации 110, 210, и что кодированная аудиоинформация 710 может содержать дополнительную информацию управления и информацию для регулирования формирования спектра. Более того, квантованные спектральные значения 722 могут, например, соответствовать декодированным спектральным значениям 132, 232.
Также декодирование 720 может выполнять некоторые или все из функциональных возможностей, описанных в отношении аудиодекодеров 100, 200.
Также декодирование 720 может быть дополнено любыми из признаков, функциональных возможностей и подробностей, описанных в данном документе в отношении декодирования спектральных значений (или спектральных коэффициентов), которое раскрываются в данном документе, либо отдельно, либо в сочетании.
8) Аудиокодирование (кодирование спектрального значения) в соответствии с Фиг. 8
Фиг. 8 показывает блок-схему функциональных возможностей, которые могут быть выполнены одним из аудиокодеров, описанных в этом документе.
Следует отметить, что некоторые или все из функциональных возможностей, описанных при обращении к Фиг. 8 (и также в отношении нижеследующих фигур), могут быть выполнены в аудиокодерах с Фиг. 3, 4, 5 и 6.
Также следует отметить, что Фиг. 8 сфокусирована на кодировании спектральных значений, которые могут, как правило, быть квантованными спектральными значениями. Предпочтительно, но не обязательно, спектральные значения являются целочисленными значениями со знаком, которые представляются посредством представления в дополнительном коде.
Функциональные возможности, как показано на блок-схеме 800, содержат первую оценку 810 глобального усиления. Эта оценка может, например, быт выполнена на основе набора спектральных значений, которые могут быть ассоциированы с кадром аудиоконтента и также может учитывать бюджет битов (или, эквивалентно, бюджет битрейта).
Функциональные возможности аудиокодера или аудиокодирования, как показано на Фиг. 8, также содержат квантование 814 спектральных коэффициентов (или, эквивалентно, спектральных значений) с использованием первой оценки глобального усиления или с использованием уточненной оценки глобального усиления (которая может быть получена итеративным образом). На этапе 814 присутствует вычисление или оценка количества битов, которые требуются для кодирования квантованного спектра (который может быть представлен квантованными спектральными коэффициентами или квантованными спектральными значениями).
На основе этого вычисления или оценки количества требуемых битов, которая выполняется на этапе 818, глобальное усиление может быть, необязательно, отрегулировано или уточнено на этапе 822, чтобы тем самым получить улучшенную оценку глобального усиления.
Соответственно, путем выполнения этапов 810, 814 и 818 и, необязательно, этапа 822 может быть получена «информация о глобальном усилении» (или, в общем, информация, описывающая квантование спектральных значений), что приводит к квантованию такому, что ожидаемое количество битов по меньшей мере примерно соответствует бюджету битов. Однако, следует отметить, что в виду ограничений по сложности, информация о глобальном усилении не может быть совсем подходящей, так что кодирование спектральных значений, квантованных в зависимости от информации о глобальном усилении, по-прежнему может расходовать больше или меньше битов в сравнении с бюджетом битов.
Следует отметить, что любые подробности в отношении вычисления глобального усиления или в отношении квантования не являются существенными для настоящего изобретения. Наоборот, варианты осуществления в соответствии с настоящим изобретением будут работать с любым механизмом, который предоставляет квантованные спектральные значения так, что спектральные значения могут быть кодированы без чрезмерного нарушения бюджета битов.
Функциональные возможности 800 дополнительно содержат выполнение принятия 830 решения о режиме. Однако, выполнение принятия решения о режиме может рассматриваться как необязательное, поскольку также возможны аудиокодеры, использующие только один режим (обозначенный в данном документе как «второй режим»). Принятие 830 решения о режиме необязательно содержит зависимую от режима идентификацию последнего кодированного коэффициента. В зависимости от принятия решения о режиме определение последнего кодированного коэффициента может быть выполнено по-разному.
Если используется «первый режим», то может быть принято решение о не кодировании некоторых ненулевых спектральных значений для того, чтобы сэкономить биты (и остаться в рамках бюджета битов). В этом случае частота, ассоциированная с последним кодированным спектральным коэффициентом, может быть выбрана так, чтобы быть меньше максимальной частоты, при которой присутствует ненулевое спектральное значение. Следовательно, некоторые ненулевые спектральные значения в области высоких частот не могут быть кодированы в первом режиме.
В противоположность, во втором режиме по меньшей мере старшие значащие биты кодируются для всех ненулевых спектральных коэффициентов. Соответственно, последний кодированный коэффициент может, например, быть выбран так, чтобы быть ненулевым спектральным значением наивысшей частоты.
Индекс, описывающий спектральное значение наивысшей частоты, который будет закодирован, предоставляется в качестве информации управления «lastnz» как в первом режиме, так и во втором режиме.
В нижеследующем будет описана работа в «первом режиме», обращаясь к функциональным возможностям с 840 по 869.
Работа в первом режиме содержит инициализацию 840 арифметического кодера. На этом этапе будут инициализированы состояния и контекст арифметического кодера.
На этапе 844 будет кодирована некоторая побочная информация, аналогичная информации о режиме, указывающей использование первого режима, глобальному усилению и информации, идентифицирующей последний кодированный коэффициент (lastnz).
Функциональные возможности с 848 по 864 повторяются для каждого спектрального значения или для каждой группы спектральных значений. Следует отметить, что в предпочтительном варианте осуществления будут кодироваться группы, содержащие два спектральных значения. Однако, также возможно кодирование отдельных спектральных значений.
Фактическое кодирование спектральных значений содержит определение весового коэффициента старшего значащего бита для спектрального коэффициента или для группы спектральных коэффициентов. Например, исследуется представление чисел одного или двух спектральных коэффициентов и идентифицируется, какая битовая позиция с самым высоким значением содержит «1». Например, двоичное значение «00010000» содержит самый старший значащий бит в битовой позиции 5 с весовым коэффициентом бита 16. Если рассматривается пара спектральных значений, которая должна быть кодирована вместе, то определяется максимум из позиций старшего значащего бита у двух спектральных значений. В отношении необязательных подробностей можно обратиться к описанию «этапа 7a», которое будет предоставлено ниже (см. описание Фиг. 10a).
На этапе 852 будет кодирован весовой коэффициент старшего значащего бита, что может быть сделано, например, путем предоставления последовательности конкретных кодированных символов, при этом количество конкретных кодированных символов указывает битовую позицию (или, эквивалентно, весовой коэффициент бита). Например, могут быть использованы так называемые «управляющие символы», которые известны в арифметическом кодировании. В отношении необязательных подробностей касательно функциональной возможности 852 обратитесь, например, к обсуждению «этапа 7b», предоставленному ниже (см. Фиг. 10с).
Впоследствии выполняется кодирование 856 старшего значащего бита. На этом этапе кодируется один или несколько битов (например, два бита) в идентифицированной битовой позиции старшего значащего бита (или смежной с идентифицированной битовой позицией старшего значащего бита). Например, если на этапе 848 идентифицирована битовая позиция 5 с весовым коэффициентом бита 16, тогда биты с битовыми позициями 5 и 4 (весовыми коэффициентами бита 16 и 8) первого спектрального значения могут быть кодированы вместе с битами в битовых позициях 5 и 4 (с весовыми коэффициентами бита 16 и 8) второго спектрального значения. Таким образом, в примере, может быть закодировано вместе суммарно четыре бита, при этом, как правило, по меньшей мере одно из двух спектральных значений будет иметь «1» в битовой позиции 5 (весовой коэффициент бита 16). Например, четыре упомянутых бита могут быть отображены в символе «sym» с использованием основанного на контексте арифметического кодирования. В отношении необязательных подробностей можно обратиться, например, к описанию «этапа 7c», которое предоставлено ниже (см. Фиг. 10d).
На этапе 860 присутствует кодирование оставшихся битов. На этапе 860 может присутствовать, например, кодирование (всех) менее значащих битов (включая один или несколько младших значащих битов) для всех спектральных значений, которые были кодированы на этапе 856 и которые содержат больше битов, чем один или несколько старших значащих битов (например, numbits>2). Другими словами, для каждого спектрального значения, которое было частично (но не полностью) кодировано на этапе 856 (так как кодирование одного или нескольких старших значащих битов было недостаточно для представления спектрального значения с полной точностью, до бита с весовым коэффициентом бита 1), будут кодированы все менее значащие биты.
Обратившись к примеру выше, если на этапе 856 были кодированы биты 5 и 4 для первого спектрального значения или для второго спектрального значения, тогда биты 1, 2 и 3 будут кодированы для перового спектрального значения и для второго спектрального значения на этапе 860.
В отношении необязательных подробностей обратитесь к описанию этапа 7d обычного подхода.
На этапе 864 присутствует кодирование знака для всех ненулевых спектральных значений, для которых был кодирован один или несколько старших значащих битов. В отношении необязательных подробностей обратитесь к описанию этапа 7e (см. Фиг. 10f).
Как упомянуто ранее, этапы с 848 по 864 повторяются для каждого спектрального значения или для каждой группы спектральных значений, старшие значащие биты которых кодируются вместе.
На этапе 868 определяется количество использованных битов, и на этапе 869 присутствует, необязательно, кодирование информации уточнения, если по-прежнему доступны неиспользованные биты.
В заключение, при работе в первом режиме некоторые ненулевые спектральные значения пропускаются при кодировании, но все спектральные значения, которые фактически кодируются, кодируются с полным разрешением (вплоть до младшего значащего бита). Соответственно, изменение требуемого битрейта может быть выполнено путем принятия решения в отношении того, сколько спектральных значений остается не кодированными (пропускается при кодировании).
В нижеследующем работа второго режима, который может, в некоторых вариантах осуществления, быть единственным режимом, будет описана при обращении к функциональным возможностям с 870 по 898.
Кодирование во втором режиме содержит инициализацию 870 арифметического кодирования, при которой будут инициализированы состояния в контексте арифметического кодирования.
На этапе 874 будет кодироваться некоторая побочная информация, аналогичная информации о глобальном усилении, «lastnz» и информация о режиме, указывающая, что используется второй режим (при условии, что кодер может переключаться между первым режимом и вторым режимом).
Функциональные возможности с 878 по 894 выполняются для каждого спектрального значения, которое должно быть кодировано, или для каждой группы спектральных значений, которые должны быть совместно кодированы.
На этапе 878 присутствует определение весового коэффициента старшего значащего бита для спектральных коэффициентов (или спектральных значений) или для группы спектральных коэффициентов (или спектральных значений). В отношении необязательных подробностей обратитесь к объяснению касательно функциональной возможности 848 и также к описанию «этапа 7a» ниже (см. Фиг. 10a).
На этапе 882 присутствует сокращение младшего значащего бита и обработка информации о младшем значащем бите. Например, информация о младшем значащем бите сокращается в представлении чисел таких спектральных значений, которые содержат как один или несколько старших значащих битов, так и младший значащий бит (numbits>2). Например, все нечетные спектральные значения могут быть установлены в следующее (смежное) четное значение, абсолютное значение которого меньше абсолютного значения у нечетного значения. Например, значение 1 может быть установлено в 0, значение 3 может быть установлено в 2, значение -1 может быть установлено в 0 и значение -3 может быть установлено в -2. В отношении необязательных подробностей см. этапы 1010f, 1011f упомянутые ниже.
Однако, информация о младшем значащем бите и также информация о знаке спектрального значения (если спектральное значение устанавливается из +1 в 0 или из -1 в 0) может быть сохранена в битовом потоке информации о младшем значащем бите (например, lsbs[]). В отношении подробностей обратитесь, например, к «этапу 7a bis», который описывается ниже (см. Фиг. 10b).
Более того, присутствует кодирование 886 весового коэффициента старшего значащего бита, которое может быть равным кодированию 852 весового коэффициента старшего значащего бита. В отношении необязательных подробностей см. описание Этапа 7b (Фиг. 10c).
Также присутствует кодирование 890 старшего значащего бита, которое может быть идентичным кодированию 856 старшего значащего бита, за исключением того факта, что используются спектральные значения, модифицированные на этапе 882 (с удаленным значением младшего значащего бита). В отношении подробностей см. описание Этапа 7c и Фиг. 10d.
Более того, присутствует кодирование 892 менее значащего бита. В кодировании 892 менее значащего бита присутствует кодирование менее значащих битов, за исключением одного или нескольких младших значащих битов. Другими словами, биты, которые находятся между младшими значащими битами и одним или несколькими старшими значащими битами, кодированными на этапе 890, могут быть кодированы, например, путем последовательной записи их в битовый поток. В отношении необязательных подробностей обратитесь к описанию ниже «этапа 7d - новая версия» (см. Фиг. 10e).
Более того, присутствует кодирование 894 знака, которое по существу является идентичным кодированию 864 знака, за исключением того факта, что знак определяется на основе спектрального значения, как модифицированного на этапе 882.
Например, если исходное (квантованное) спектральное значение было +1, спектральное значение было изменено на 0 на этапе 882, и отсутствует кодирование знака на этапе 894, так как этот знак кодируется только для ненулевых значений. Аналогичным образом, если спектральное значение исходно было -1 (после квантования), то спектральное значение заменяется на 0 на этапе 882, и знак не кодируется на этапе 894 (так как знаки не кодируются для нулевых значений).
В отношении необязательных подробностей касательно кодирования знака обратитесь к описанию этапа 7e (Фиг. 10f).
Этапы с 878 по 894 повторяются для всех спектральных значений или групп спектральных значений, старшие значащие биты которых совместно кодируются.
На этапе 896 присутствует определение количества битов, доступных для кодирования младших значащих битов. Это количество обозначается, например, с помощью nlsbs и может, например, обозначать количество неиспользованных битов.
На этапе 898 неиспользованные биты (количество которых было определено на этапе 896) используются для «фактического» кодирования младших значащих битов (включение информации о младшем значащем бите, полученной на этапе 882, или ее части, в кодированное аудиопредставление). Например, битовая последовательность, которая была определена на этапе 882, или ее часть, добавляется в кодированное аудиопредставление. Эта битовая последовательность содержит младшие значащие биты и знаки для тех спектральных значений, которые были изменены, чтобы быть нулем путем сокращения младших значащих битов.
Соответственно, во втором режиме предоставляются символы, представляющие собой один или несколько старших значащих битов, битовая последовательность, представляющая менее значащие биты, за исключением одного или нескольких младших значащих битов (и некоторую информацию о знаке), и битовая последовательность, представляющая младшие значащие биты (и некоторую информацию о знаке). В последовательности, представляющей менее значащие биты, менее значащие биты (и знаки) могут быть включены в очередности спектральное значение за спектральным значением или последовательно для пар спектральных последовательностей, кодированных совместно. Также, в битовой последовательности, представляющей младшие значащие биты, младшие значащие биты включены в очередности спектральное значение за спектральным значением.
Следует отметить, что дополнительные необязательные подробности касательно кодирования 800 будут описаны ниже. Также следует отметить, что в Фиг. 8 включены ссылки на представление в псевдо-программном коде этапов. Подробности, описанные в представлениях в псевдо-программном коде, не являются существенными, но могут, необязательно, быть включены отдельно для каждого этапа, показанного на Фиг. 8.
9. Декодирование аудио (декодирование спектрального значения) в соответствии с Фиг. 9
Фиг. 9 показывает схематичное представление функциональных возможностей, которые могут быть выполнены аудиодекодерами, как описано в данном документе.
Следует отметить, что некоторые или все из функциональных возможностей, описанных на Фиг. 9, могут быть выполнены аудиодекодерами. Следует отметить, что будет достаточным реализовать одну или несколько функциональных возможностей, описанных на Фиг. 9, отдельно, но предпочтительной является реализация поной функциональной возможности. В частности, функциональные возможности, раскрытые на Фиг. 9, относятся к предоставлению декодированных спектральных значений на основе кодированной информации, представляющей собой спектральные значения. Функциональные возможности, как показано на Фиг. 9, могут, например, быть реализованы в декодировании 720 аудиодекодера 700.
Функциональные возможности 900 содержат, на этапе 910 инициализацию состояний арифметического декодера или инициализацию контекста c, который используется арифметическим декодером. В отношении необязательных подробностей обратитесь, например, к «этапу 1» декодирования, как описано ниже.
Функциональные возможности 900 также содержат декодирование 914 глобального усиления или информации о глобальном усилении, декодирование 916 бита сигнализации для выбора режима (выбор режима 1 или режима 2) и декодирование 918 информации о последнем ненулевом кодированном коэффициенте («lastnz»). Следует отметить, что этапы 916 и 918 должны рассматриваться как необязательные, и что этап 914 может быть замещен декодированием любой другой информации, которая определяет квантование.
Функциональные возможности 900 содержат декодирование в первом режиме, который показан на этапах с 930 по 948, и декодирование во втором режиме, который показан на этапах с 950 по 972. Следует отметить, что работа в первом режиме, как описано на этапах с 930 по 948, должна рассматриваться в качестве необязательной. Другими словами, также достаточно того, чтобы декодирование аудио могло работать во втором режиме, который описывается этапами с 950 по 972, даже несмотря на то, что возможность переключения между двумя режимами расширяет функциональные возможности и дает некоторые преимущества.
Более того, функциональные возможности 900 также содержат выполнение обратного квантования 980 декодированных спектральных значений, которое может, например, быть выполнено блоком 730 в декодере 700.
В нижеследующем будет описана работа в первом режиме.
q
q
Декодирование в первом режиме содержит декодирование 930 старшего значащего бита, которое может, например, содержать совместное декодирование одного, двух или нескольких старших значащих битов двух коэффициентов, которые могут быть обозначены с помощью X(n) и X(n+1). Декодирование 930 старшего значащего бита может, например, содержать определение количества суммарных (кодированных) битов коэффициентов (например, numbits) или количества младших значащих битов коэффициентов, которые следуют за совместно кодированными старшими значащими битами.
Например, декодер может распознать (например, на основе информации сигнализации в кодированном аудиопредставлении), что один из двух спектральных коэффициентов, которые декодируются вместе, содержит ненулевое значение (старший значащий бит) в пятой битовой позиции (с весовым коэффициентом бита 16). Соответственно, биты в позициях 4 и 5 (с весовыми коэффициентами бита 8 и 16) будут декодированы совместно для двух спектральных значений, которые декодируются вместе (в качестве группы). Битовая позиция старшего значащего бита может быть кодирована, например, с использованием «механизма управляющего символа», который известен в области арифметического кодирования и декодирования. В отношении необязательных подробностей обратитесь, например, к описанию «этап 3a» ниже (Фиг. 11a).
Декодирование в первом режиме дополнительно содержит декодирование 934 менее значащего бита. Например, может присутствовать декодирование (всех) менее значащих битов, включая один или несколько младших значащих битов, всех спектральных значений, для которых был декодирован один или несколько старших значащих битов. Например, менее значащие биты могут быть считаны из битовой последовательности. В отношении подробностей обратитесь, например, к «этапу 3b, обычный подход», как описано ниже.
Декодирование в первом режиме содержит декодирование 938 знака, при котором знак может быть декодирован для всех спектральных значений, для которых ненулевое значение было декодировано на этапах 930, 934. В отношении подробностей обратитесь, например, к обсуждению ниже «этапа 3c» (см. Фиг. 11c).
Декодирование в первом режиме содержит установку 942 в ноль для не кодированных спектральных коэффициентов. Например, все спектральные коэффициенты, частоты которых выше определенной частоты, которая была просигнализирована кодером декодеру, могут быть установлены в ноль. В отношении подробностей обратитесь, например, к описанию ниже «этапа 4».
Декодирование в первом режиме также содержит определение 944 количества неиспользованных битов. Например, может быть определено, сколько битов из суммарного бюджета битов не было использовано на предыдущих этапах декодирования.
Декодирование в первом режиме может дополнительно, необязательно, содержать уточнение 948, при котором, например, спектральные значения, которые были декодированы, могут быть дополнительно уточнены. В отношении подробностей обратитесь, например, к описанию ниже «этапа 6».
Соответственно, в первом режиме спектральные значения вплоть до максимальной частоты, определенной информацией касательно информации о последнем ненулевом кодированном коэффициенте, будут полностью декодированы (от старшего значащего бита до младшего значащего бита), включая декодирование знака.
Однако, следует отметить, что подробности, как описано ниже при обращении к этапам с «этапа 3a» по «этап 6», могу быть необязательно введены в эти этапы. Однако, следует отметить, что введение всех подробностей, описанных ниже, не является существенным, и что в некоторых вариантах осуществления достаточно того, чтобы сохранялись подробности ниже только в одном из этапов или в некоторых из этапов.
В нижеследующем декодирование во втором режиме будет описано при обращении к этапам с 950 по 972.
q
q
Декодирование во втором режиме содержит декодирование 950 старшего значащего бита, которое может, например, содержать арифметическое декодирование одного или нескольких старших значащих битов. Например, декодирование 950 старшего значащего бита может содержать определение количества суммарных битов коэффициентов или количества менее значащих битов коэффициентов или битовой позиции (или весового коэффициента бита) у одного или нескольких старших значащих битов. Более того, декодирование 950 старшего значащего бита может содержать совместное декодирование одного, двух или нескольких старших значащих битов двух спектральных коэффициентов или спектральных значений X(n), X(n+1).
В отношении необязательных подробностей обратитесь, например, к описанию ниже «этапа 3a» (Фиг. 11a).
Декодирование во втором режиме также содержит декодирование 954 менее значащего бита, которое может рассматриваться в качестве необязательного. При декодировании 954 менее значащего бита имеет место декодирование менее значащих битов, за исключением одного или нескольких младших значащих битов. Декодирование 954 менее значащего бита может быть аналогично декодированию 934 менее значащего бита, за исключение того факта, что младший значащий бит, или несколько младших значащих битов пропускаются при декодировании 954 менее значащего бита. В отношении необязательных подробностей обратитесь, например, к описанию ниже «этапа 3b» (новая версия) (Фиг. 11b).
Декодирование во втором режиме также содержит декодирование 958 знака, при котором декодируются знаки спектральных значений, декодированных на этапах 950, 954, при условии, что декодированный фрагмент спектральных значений, которые декодированы на этапах 950, 954 (которые не содержат одного или нескольких младших значащих битов) указывает ненулевое значение. В отношении необязательных подробностей обратитесь, например, к описанию ниже «этапа 3c» (Фиг. 11c).
Следует отметить, что этапы 950, 954, 958 повторяются для всех спектральных значений, которые должны быть декодированы, или для всех групп спектральных значений, которые должны быть декодированы, при этом количество спектральных значений, которые должны быть декодированы, может, например, быть указано информацией о последнем ненулевом кодированном коэффициенте, предоставленной кодером.
Декодирование во втором режиме также содержит установку 962 в ноль не кодированных спектральных коэффициентов, которые не были предоставлены кодером, и которые не были декодированы в виду информации о последнем ненулевом кодированном коэффициенте. В отношении необязательных подробностей см. ниже описание этапа 4.
Более того, присутствует определение 968 количества битов доступных для декодирования младшего значащего бита. Другими словами, определяется количество неиспользованных битов (битов бюджета битов, которые не были использованы на этапах 950, 954, 958 декодирования). В отношении подробностей обратитесь, например, к описанию ниже «этапа 5».
Декодирование во втором режиме также содержит выборочное декодирование 972 одного или нескольких младших значащих битов для коэффициентов с большим числом битов, чем один или несколько старших значащих битов. Другими словами, один или несколько младших значащих битов могут быть декодированы только для некоторых спектральных значений, которые были декодированы на этапах 950, 954, 958, так, что только некоторые (но не все) упомянутые спектральные значения уточняются посредством информации о младшем значащем бите. Этап 972 может, например, включать в себя рассмотрение знака для таких спектральных значений, для которых нулевое значение было декодировано на этапах 950 и 954 (как например, что знак не был декодирован на этапе 958) и для которых информация о младшем значащем бите указывает ненулевое значение. Соответственно, спектральные значения (или спектральные коэффициенты) будут уточнены информацией о младшем значащем бите из битовой последовательности, содержащей младшие значащие биты и информацию о знаке. Количество спектральных значений, которые будут уточнены, зависит от результата определения 968 количества битов, доступных для младших значащих битов.
Соответственно, декодирование во втором режиме будет предоставлять некоторые спектральные значения с полной точностью (включая младший значащий бит) и некоторые спектральные значения с уменьшенной точностью (без младших значащих битов).
Следует отметить, что подробности, описанные ниже для этапов с «этапа 3a» по «этап 6» могут необязательно быть использованы. Однако, подробности, описанные ниже для этапов с «этапа 3a» по «этап 6», не должны рассматриваться в качестве существенных. Также следует отметить, что подробности могут быть введены для отдельных этапов без того, что возникает потребность в использовании всех подробностей, описанных ниже, при обращении к этапам с «этапа 3a» по «этап 6».
Более того, функциональные возможности 900 также содержат выполнение обратного квантования 980, при этом спектральные значения, декодированные в первом режиме, и/или спектральные значения, декодированные во втором режиме, будут обратно квантованы. При обратном квантовании может быть применена информация о глобальном усилении, декодированная на этапе 914. Однако, также могут быть использованы другие возможности для установки обратного квантования.
10) Способ Кодирования в Соответствии с Фигурами 10a-10f
В нижеследующем будет описана примерная реализация этапов для квантования и кодирования спектра X(n) MDCT, 0≤n < N. Способ может, например, быть использован в (или выполнен посредством) аудиокодерах 300, 400, 500 или аудиокодере 600. Признаки, описанные в данном документе, также могут быть выполнены, отдельно или в сочетании, в функциональной возможности 800. В частности, основное внимание будет уделено работе в режиме 2, который может быть единственным режимом в некоторых вариантах осуществления.
В нижеследующем будет описан первый этап. Первый этап содержит первую оценку глобального усиления. Эта первая оценка, например, не квантует спектр и не вычисляет количество битов, которое расходуется арифметическим кодером. Она основана только на энергии групп коэффициентов MDCT и итеративном подходе с низкой сложностью для получения первой грубой оценки глобального усиления. Например, можно обратиться к разделу 1.3.8.2 в техническом описании NBC.
q
В нижеследующем будет описан второй этап. Второй этап содержит квантование спектра MDCT с использованием глобального усиления, найденного на этапе 1. Это создает квантованный спектр X(n) MDCT 0≤n < N. В отношении подробностей обратитесь, например, к разделу 1.8.3 в техническом описании NBC.
q
В нижеследующем будет описан третий этап. Третий этап содержит вычисление количества битов, которые требуются для кодирования квантованного спектра X(n). В дополнение, этот этап также принимает решение о том, использовать ли обычный подход (также обозначенный как «первый режим») или новый подход (также обозначенный как «второй режим»). Например, этап может быть установлен битом сигнализации, упомянутым в данном документе (например, бит сигнализации, сигнализирующий о том, должен ли быть использован первый режим или второй режим). Например, новый подход (второй режим) может быть использован, если количество израсходованных битов выше бюджета битов и, если выполняются некоторые критерии (например, используется высокий битрейт). Обычный подход (первый режим) может быть использован, если количество израсходованных битов ниже бюджета битов, или если не выполняются критерии (например, критерии для использования второго режима).
В заключение, третий этап обнаруживает последний ненулевой кодированный коэффициент lastnz. Он обнаруживается аналогично тому, как описано в описании обычного подхода (т.е. для того, чтобы усечь спектр), только если выбирается обычный подход («этап находит индекс последнего ненулевого кодированного коэффициента lastnz так, что расходуемое количество битов усеченного спектра может уместиться в бюджет битов, см. раздел 1.3.8.4 в техническом описании NBC»). Если выбирается новый подход (второй режим), то спектр не усекается и lastnz соответствует тогда просто последнему ненулевому коэффициенту (например, ненулевому спектральному коэффициенту наивысшей частоты).
В нижеследующем будет описан этап 4. Четвертый этап содержит регулирование глобального усиления как функции количества битов, вычисленного на этапе 3. Если количество битов слишком высокое, то увеличивается глобальное усиление. Если количество битов слишком низкое, то глобальное усиление уменьшается. Затем, этапы 2 и 3 необязательно повторно выполняются. Этап 4 может быть повторен несколько раз до тех пор, пока не будет найдено оптимальное глобальное усиление. Однако, если требуется низкая сложность, то этап 4 может не выполняться или может быть выполнен лишь один раз (аналогично, например, в NBC, см. раздел 1.3.8.6 в спецификации NBC).
В нижеследующем будет описан этап 5. Этап 5 содержит инициализацию состояний арифметического кодера, и инициализацию контекста c, который используется арифметическим кодером.
В нижеследующем будет описан этап 6. Этап 6 содержит кодирование глобального усиления и последнего ненулевого кодированного коэффициента lastnz в качестве побочной информации. Дополнительно, этот этап также кодирует бит сигнализации (например, бит сигнализации, указывающий, используется ли первый режим или второй режим) в качестве побочной информации.
В нижеследующем будет описан этап 7. Однако, этап 7 содержит повторение подэтапов с 7a по 7e для всех (n=0; n < lastnz; n + = 2). Другими словами, этапы c 7a по 7e повторяются, начиная с n=0 до тех пор, пока n меньше lastnz, при этом n увеличивается на два при каждой итерации. Два спектральных значения обрабатываются на каждой итерации, и, как правило, будут обработаны все ненулевые спектральные значения (поскольку в режиме 2 lastnz будет выбираться так, что по меньшей мере старшие значащие биты будут кодированы для всех ненулевых спектральных значений).
q
q
В нижеследующем будет описан этап 7a. Этап 7a содержит вычисление минимального количества битов, которые требуются для представления амплитуды (или величины или абсолютного значения) двух коэффициентов X(n) и X(n+1) (которые предпочтительно являются целочисленными значениями). В отношении подробностей касательно примерной реализации обратитесь к псевдо-программному коду на Фиг. 10a (см. номер позиции 1000a). Коэффициент с большим абсолютным значением определяет минимальное количество битов, которые требуются для представления амплитуды (величины, абсолютного значения) двух коэффициентов.
q
q
В нижеследующем будет описан этап 7a-bis, который может, например, быть выполнен между этапами 7a и 7b. Другими словами, этап 7a-bis является дополнительным этапом непосредственно после этапа 7a, который выполняется, если numbits больше двух (numbits > 2). Другими словами, этап 7a-bis выполняется, если больше битов, чем два старших значащих бита, требуется для представления X(n) и/или X(n+1). На этапе 7a-bis «сохраняется» младший значащий бит каждого коэффициента и коэффициент затем модифицируется так, что его младший значащий бит теперь является нулем. Знак коэффициента также сохраняется в случае, когда коэффициент был исходно ненулевым и становится нулем после установки его младшего значащего бита в ноль.
В отношении подробностей касательно этой функциональной возможности обратитесь, например, к представлению в псевдо-программном коде, показанному на Фиг. 10b.
q
q
q
q
q
q
Как можно видеть под номером 1010a позиции, младший значащий бит абсолютного значения X[n] извлекается и сохраняется в битовой последовательности lsbs в позиции, указанной бегущей переменной nlsbs (см. номе позиции 1010b). Бегущая переменная nlsbs затем увеличивается, чтобы ссылаться на следующий неиспользованный бит в битовой последовательности lsbs. Если обнаружено, что X является +1 или -1 (условие под номером 1010c позиции), то бит знака устанавливается чтобы быть 0, если X[n] больше 0, и устанавливается в 1, если X меньше 0, как может быть видно под номером 1010d позиции. Также, если X является +1 или -1, то бит знака сохраняется в качестве следующего бита в битовой последовательности lsbs, который показан под номером 1010e позиции. Более того, спектральное значение X со знаком затем модифицируется так, что нечетные значения устанавливаются в смежные четные значения с меньшей величиной. Это функциональная возможность показана под номером 1010f позиции.
Однако, следует отметить, что очередность обработки этапов с 1010a по 1010f может быть изменена, при условии, что все функциональные возможности остаются неизменными. Естественно, также возможно сохранение промежуточных количеств.
q
Более того, следует отметить, что те же самые функциональные возможности также выполняются для спектрального значения X[n+1], что показано под номерами с 1010a по 1011f позиций.
Соответственно, этап 7a-bis предоставляет битовую последовательность lsbs, которая представляет младшие значащие биты всех спектральных значений, для которых numbits больше 2, при этом биты знака включаются в битовую последовательность lsbs для спектральных значений, для которых numbits больше двух и которые принимаю значение +1 или -1 (например, потому что они находятся в группе с большим спектральным значением). Биты в последовательности lsbs упорядочены в последовательности спектральных значений, но в последовательности lsbs отсутствуют биты для таких спектральных значений, для которых numbits не больше двух (т.е., которые полностью представляются двумя старшими значащими битами).
В нижеследующем будет описан этап 7b. На этом этапе 7b будет кодироваться информация касательно значения «numbits» (когда numbits было определено на этапе 7a и описывает весовой коэффициент бита у старших значащих битов, которые кодируются для спектрального значения или группы спектральных значений). Например, этап 7b содержит кодирование numbits-2 управляющих значений (например, представленных посредством VAL-ESC=16), если numbits больше 2. В отношении подробностей обратитесь к Фиг. 10c (номер 1020a позиции). Например, управляющие значения кодируются с использованием арифметического кодирования, при этом оценивается контекст, чтобы получить вероятности для арифметического кодирования. Управляющие символы кодируются с помощью арифметического кодирования с использованием вероятностей p. Более того, контекст обновляется.
Однако, любые подробности этого этапа не являются существенными для настоящего изобретения.
q
q
q
q
q
q
В нижеследующем будет описан этап 7c. Этап 7c содержит кодирование двух старших значащих битов каждого коэффициента X(n) и X(n+1) в качестве одного символа sym (значение которого лежит между 0 и 15). На этапе 1040a определяется, на основании значения numbits, на сколько битов (двоичное) представление чисел X[n] и X[n+1] (как модифицированное на этапе 7a-bis для случая numbits > 2) будет сдвинуто вправо. Это показано под номером 1040a позиции и может рассматриваться в качестве необязательного. На этапе 1040b X[n] обрабатывается таким образом, что биты в битовых позициях, определенных посредством numbits, сохраняются в переменной a. На этапе 1040c X[n+1] обрабатывается таким образом, что биты в битовых позициях, определенных numbits, принимаются в переменную b. Другими словами, биты в битовых позициях, которые рассматриваются в качестве двух старших значащих битов, принимаются в переменные a и b.
q
q
Следовательно, определяется четырехбитное значение, которое объединяет два старших значащих бита X[n] и X[n+1], как показано под номером 1040d позиции. Переменная sym тогда представляет четырехбитный символ, содержащий два старших значащих бита каждого из двух спектральных значений, которые должны быть кодированы вместе. Затем, вероятности для арифметического кодирования определяются из контекста c арифметического кодирования, и символ sym кодируется с использованием арифметического кодирования с учетом вероятностей p, определенных из контекста. Впоследствии контекст обновляется.
Соответственно, получается арифметически кодированное представление символа sym, представляющее два старших значащих бита двух спектральных значений, которые должны быть кодированы совместно.
q
q
В нижеследующем будет описан этап 7d. Этап 7d содержит кодирование оставшихся битов (также обозначенных как «промежуточные биты» или «менее значащие биты»), за исключением младших значащих битов. В отношении подробностей обратитесь к Фиг. 10e, которая показывает представление в псевдо-программном коде. Как может быть видно, бегущая переменная b пробегает от b=1 до numbits-3. Соответственно, биты кодируются, начиная с битовой позиции 2 (со значением бита 2), при условии, что два старших значащих бита, которые кодируются вместе на этапе 7c, находятся в по меньшей мере битовых позициях 3 и 4 (со значениями бита 4 и 8) или в более высоких битовых позициях. Соответственно, биты в битовых позициях (b+1) у абсолютных значений спектральных значений X[n] и X[n+1] кодируются в качестве побочной информации. Соответственно, любые биты, которые лежат между младшим значащим битом и двумя старшими значащими битами, кодируются в качестве побочной информации на этапе 7d, при условии, что такие биты присутствуют (что зависит от битовых позиций старших значащих битов, как определено посредством numbits).
q
q
Например, цикл, показанный под номером 1050a позиции исполняется от b=1 до b=numbits - 3 (при условии, что numbits больше или равна 4). Как может быть видно под номером 1050b позиции, бит в битовой позиции b+1 у абсолютного значения X[n] кодируется в качестве побочной информации. Как может быть видно под номером 1050c позиции, бит в битовой позиции b+1 у абсолютного значения X[n+1] кодируется в качестве побочной информации. Этапы 1050b и 1050c повторяются до тех пор, пока бегущая переменная b не достигает numbits-2.
q
q
q
q
q
q
В нижеследующем будет описан этап 7e. Этап 7e включает в себя кодирование знака каждого коэффициента (или спектрального значения), за исключением того, если коэффициент является 0. Следует отметить, что на этапе 7e рассматриваются коэффициенты, модифицированные на этапе 7a-bis. Другими словами, знак спектрального значения X будет кодироваться, если исходное значение X (до модификации на этапе 7a-bis) больше или равно 2 или меньше или равно -2. В противоположность, если X[n] исходно было равно 0, или было установлено в 0 на этапе 7a-bis, то отсутствует кодирование знака на этапе 7e. Проверка того, является ли (модифицированное) спектральное значение X[n] равным 0 или нет, видна под номером 1060a позиции, и предоставление бита знака «0» для положительного значения X[n] и бита знака «1» для отрицательного значения X[n] может быть видно под номером 1060b позиции. Кодирование значения знака в качестве побочной информации показано под номером 1060c позиции.
q
Аналогичные функциональные возможности также выполняются для X[n+1], что показано под номерами 1061a, 1061b и 1061c позиции.
В нижеследующем будет описан этап 8. Этап 8 содержит окончательную обработку арифметического кодера и вычисление количества неиспользованных битов. Например, может быть вычислено, сколько битов из суммарного бюджета битов остаются неиспользованными на этапах 7b, 7c, 7d и 7e.
В нижеследующем будет описан этап 9. На этапе 9 (если выбирается новый подход, или если выбирается второй режим, или если кодер использует только второй режим) остаточное квантование/кодирование (как в обычной концепции) не используется. Если присутствуют неиспользованные биты, то они используются для кодирования nlsbs битов, которые сохранены в lsbs[] (см. этап 7a-bis). Другими словами, если обнаружено, например, после завершения этапов с 7a по 7e, что были использованы не все биты бюджета битов, то количество битов битовой последовательности lsbs, предоставленной на этапе 7a-bis, будут включены в битовый поток (или, в целом, в кодированное аудиопредставление). Количество битов из битовой последовательности lsbs, которые включаются в кодированное аудиопредставление, может, например, быть определено посредством количества неиспользованных битов так, что бюджет битов используется полностью (например, плоть ло 1 или 2 битов, или даже полностью).
В заключение, следует отметить, что этапы, описанные в данном документе, или их подробности, могут быть использованы при выполнении функциональных возможностей на Фиг. 8. Например, этапы с 1 по 4, описанные в данном документе, или их подробности, могут быть использованы для реализации функциональных возможностей 810, 814, 818, 830.
Более того, этапы с 5 по 9, описанные в данном документе, могут быть использованы для реализации функциональных возможностей 870, 874, 878, 882, 886, 890, 892, 894, 896 и 898. Однако, следует отметить, что подробности, описанные в данном документе, могут быть отдельно взяты в этапы функциональных возможностей 800.
11) Декодирование Аудио в Соответствии с Фиг. с 11a по 11d
В нижеследующем функциональные возможности декодирования аудио будут описаны при обращении к Фиг. с 11a по 11d. Функциональные возможности декодирования, описанные в данном документе, могут быть использованы для предоставления декодированных спектральных значений на основе кодированной информации, представляющей спектральные значения. Функциональные возможности, описанные в данном документе, могут быть использованы, например, в аудиодекодерах, в соответствии с Фиг. 1 и 2 и аудиодекодере 700 в соответствии с Фиг. 7 (например, для реализации декодирования 720). Этапы, описанные в данном документе, также могут быть использованы в функциональных возможностях 900, например, для реализации функциональных возможностей 910, 950, 954, 958, 962, 968, 972.
В нижеследующем функциональные возможности для декодирования спектральных значений будут описаны поэтапно (фокусируясь на декодировании во «втором режиме» или в случае, когда используется только второй режим).
В нижеследующем будет описан первый этап. Первый этап содержит инициализацию состояний арифметического декодера и инициализацию контекста c, используемого арифметическим декодером.
В нижеследующем будет описан второй этап. Второй этап содержит декодирование глобального усиления (или информации о глобальном усилении, или любой другой информации, описывающей обратное квантование) и информации о последнем ненулевом кодированном коэффициенте «lastnz». Другими словами, второй этап содержит декодирование некоторой побочной информации или информации управления. Дополнительно, второй этап также декодирует бит сигнализации (например, бит сигнализации, определяющий, должен ли быть использован первый режим или второй режим).
В нижеследующем будет описан этап 3. Например, этап 3 содержит повторение этапов с 3a по 3c для всех (n=0; n < lastnz; n + = 2). Другими словами, этапы с 3a по 3c будут повторены для всех спектральных значений, которые должны быть декодированы (как определено lastnz), при этом группы из двух спектральных значений буду обработаны вместе.
q
q
В нижеследующем будет описан этап 3a. Этап 3a содержит декодирование двух старших значащих битов обоих коэффициентов (или спектральных значений) X(n) и X(n+1). Подробности касательно этапа 3a показаны на Фиг. 11a.
q
q
Этап 3a содержит определение переменной numbits, которая описывает битовую позицию двух старших значащих битов, которые должны быть декодированы. Переменная numbits инициализируется 1 под номером 1110a позиции. Впоследствии, вероятности p получаются из контекста (который был инициализирован до этого) на этапе 1110b и символ sym декодируется с использованием арифметического декодирования и использования вероятностей p на этапе 1110c. Впоследствии, контекст обновляется на этапе 1110d, и переменная nubits увеличивается на 1 на этапе 1110e. Однако, если декодированный символ sym является управляющим символом, то этапы 1110b, 1110c, 1110d, 1110e повторяются. Таким образом, если первый декодированный символ является не управляющим символом, то numbits устанавливается равным 2 и позиции старшего значащего бита, которые должны быть декодированы, будут определять биты в битовых позициях 1 и 2 (со значениями бита 1 и 2). Однако, если один или несколько управляющих символов идентифицируется посредством арифметического декодирования, то переменная numbits дополнительно увеличивается, указывая более высокий весовой коэффициент бита у старшего значащего бита, который должен быть декодирован, что также указывает на то, что присутствует «место» для одного или нескольких младших значащих битов. Однако, как только обнаружится, что последний декодированный символ не является управляющим символом, то старшие значащие значения с весовыми коэффициентами бита, определенными переменной numbits, определяются на основе декодированного символа. Например, если символ представлен четырехбитным значением, то два бита из четырехбитного значения используются для определения двух старших значащих битов спектрального значения X[n] и два бита четырехбитного значения используются для определения двух старших значащих битов спектрального значения X[n+1]. Подробности можно увидеть под номерами 1110f и 1110g позиций. Соответственно, 0, 1 или больше управляющих символов, которые декодируются посредством арифметического декодирования, определяют весовые коэффициенты бита у старших значащих битов, а символ, который не является управляющим символом, определяет значения бита старших значащих битов у двух спектральных значений.
В нижеследующем будет описан этап 3a-bis. Этап 3a-bis является дополнительным этапом сразу после этапа 3a. Этот этап сохраняет numbits в массиве numbits[n] так, что она может быть повторно использована позже на этапе 6. Другими словами, значения переменной numbits сохраняются для всех пар спектральных значений, декодированных для дальнейшего использования. Это, однако, лишь вспомогательный этап.
q
q
В нижеследующем будет описан этап 3b. Этап 3b содержит декодирование оставшихся битов, за исключением младшего значащего бита. В отношении подробностей обратитесь к Фиг. 11b. Здесь следует отметить, что этап 3b декодирует оставшиеся биты, только если numbits больше или равна 4, т.е. если представления двоичных чисел спектральных значений (или по меньшей мере одного спектрального значения из пары спектральных значений, которые обрабатываются вместе) содержит больше битов, чем два старших значащих бита и один младший значащий бит (т.е. по меньшей мере 4 бита). Эти биты, битовые позиции которых находятся между младшим значащим битов и двумя старшими значащими битами, впоследствии декодируются, начиная с бита с битовой позицией 2, и продолжая в направлении битов с более высокими битовыми позициями (если есть в наличии). С этой целью бегущая переменная b инициализируется 1 и декодирование бита выполняется до тех пор, пока b меньше numbits-2. Функциональные возможности цикла показаны под номером 1120a позиции, декодирование бита для первого спектрального значения X показано под номером 1120b позиции, добавление бита, взвешенного с помощью его весового коэффициента бита, к первому спектральному значению показано под номером 1120c позиции, декодирование бита для второго спектрального значения X[n+1] показано под номером 1120d позиции, и добавление бита, взвешенного с помощью его весового коэффициента бита, показано под номером 1120e позиции.
В нижеследующем будет описан этап 3c. Этап 3c содержит декодирование знака каждого коэффициента, за исключением того, если коэффициент (или спектральное значение) является 0.
q
q
Например, проверяется, является ли спектральный коэффициент, декодированный до сих пор (на этапах 3a и 3b без учета младшего значащего бита), равным 0 или нет (см. номер 1130a позиции). Если спектральное значение X[n] отличается от 0, тогда декодируется бит знака (этап 1130b), а если бит знака равен 1 (что проверяется под номером 1130c позиции), тогда знак X[n] инвертируется (см. номер 1130d позиции). Аналогичная функциональная возможность выполняется для второго спектрального значения, как показано под номерами с 1131a по 1131d позиции.
В нижеследующем будет описан этап 4. На этапе 4 все коэффициенты (или спектральные значения), для которых индекс n больше или равен lastnz, устанавливаются в 0. Соответственно, эти спектральные коэффициенты, которые не были кодированы кодером (что сигнализируется посредством побочной информации «lastnz»), устанавливаются в строго определенное значение (0).
В нижеследующем будет описан этап 5.
Этап 5 содержит окончательную обработку арифметического декодера и вычисление количества неиспользованных битов. Например, может быть вычислено, сколько битов были декодировано на этапах 3a, 3b и 3c, и затем может быть сделан вывод о том, сколько битов из полного бюджета битов не было использовано до сих пор.
ом
q
q
В нижеследующем будет описан этап 6. На 6 этапе, если присутствуют неиспользованные биты, то nlsbs биты декодируются и они сохраняются в lsbs[]. Другими словами, последовательность из nlsbs битов будет использована для уточнения младшего значащего бита, при этом они либо могут быть использованы непосредственно, либо могут быть сохранены в промежуточной структуре данных, аналогичной массиву lsbs[]. Затем коэффициенты (n, n+1) (или спектральные значения X[n] и X[n+1]) уточняются, если numbits[n] больше 2 (для соответствующих спектральных значений с индексом n и n+1) с использованием декодированных lsb битов (или битов младшего значащего бита).
В отношении подробностей обратитесь к Фиг. 11d.
q
q
q
q
q
q
Как может быть видно под номером 1140a позиции бегущая переменная k инициализируется 0. Затем обработка цикла проходит по всем парам спектральных значений, при этом определение цикла можно увидеть под номером 1140b позиции. Однако, следует отметить, что любые пары спектральных значений, которые не содержат больше битов, чем два старших значащих бита, пропускаются в обработке цикла. Проверку того, содержит ли обрабатываемая в настоящий момент пара спектральных значений больше битов, чем старшие значащие биты, можно увидеть под номером 1140c позиции. Также следует отметить, что обработка (например, уточнение спектральных значений с использованием информации о младшем значащем бите) останавливается в любом случае (даже если были рассмотрены не все спектральные значения с большими битами, чем два старших значащих бита), когда количество обработанных битов достигает общего количества nlsbs битов, доступных для уточнения младшего значащего бита. Прерывание обработки цикла, например, осуществляется посредством команды «break» и может быть видно, что, как правило, присутствует оценка того, было ли достигнуто максимальное количество битов доступных для уточнения из младших значащих битов, до того, как оценивается новый бит из битовой последовательности или массива lsbs. Например, присутствует проверка того, были ли оценены все доступные биты, под номером 1140d позиции, которая предшествует считыванию нового бита из битовой последовательности или массива lsbs, что моно увидеть под номером 1140e позиции. Вслед за считыванием бита из битовой последовательности или массива lsbs (под номером 1140e позиции), предпринимаются разные действия в зависимости от значения бита и также в зависимости от значения, ранее декодированного спектрального значения X[n]. Если значение бита уточнения, считанного на этапе 1140e, является нулем, то не предпринимается никаких дальнейших действий (так как бит указываете на то, что не требуется изменение ранее декодированного значения). В противоположность, если значение бита уточнения, считанного на этапе 1140e, является «1», то предпринимаемое действие зависит от фактического значения спектрального значения X[n]. Если спектральное значение X больше нуля и, если бит, считанный на этапе 1140e, является «1», тогда спектральное значение X[n] увеличивается на 1 (т.е. на значение младшего значащего бита), что может быть видно под номером 1140f позиции. Если спектральное значение X[n] является отрицательным и значение бита, считанного на этапе 1140e, является «1», тогда спектральное значение X[n] уменьшается на 1 (т.е. на значение младшего значащего бита).
q
q
q
Однако, если значение X является 0 и значение бита у бита, считанного на этапе 1140e, является «1», тогда другой бит считывается из битовой последовательности или массива lsbs, как показано под номером 1140i позиции, при этом считыванию другого бита на этапе 1140i предшествует проверка того, было ли уже достигнуто общее количество доступных битов (что приводит к прерыванию цикла посредством команды «break»). Впоследствии значение X[n] выборочно устанавливается в +1 или -1 в зависимости от значения «бита знака», считанного на этапе 1140i, что показано под номером 1140j позиции. Впоследствии этапы с 1140d по 1140j повторяются для второго спектрального значения X[n+1].
q
q
q
q
q
q
q
q
В заключение, до тех пор, пока не были использованы все биты из битовой последовательности или массива lsbs, которые доступны для уточнения младших значащих битов, присутствует обработка «битов уточнения» из упомянутой битовой последовательности или массива lsbs. Если ранее декодированное спектральное значение X[n], X[n+1] отличается от 0, то величина упомянутого спектрального значения выборочно увеличивается на значение младшего значащего бита в зависимости от «бита уточнения», считанного из битовой последовательности или массива lsbs. Если ранее декодированное спектральное значение X[n], X[n+1] является 0, тогда «бит знака» дополнительно извлекается из битовой последовательности или массива lsbs, и на основании бита знака решают, должно ли спектральное значение X[n], X[n+1] быть установлено в +1 или -1 в случае, когда предыдущий (первый) бит уточнения указывает, что спектральное значение должно быть модифицировано посредством значения младшего значащего бита. В противоположность, бит знака не используется, если бит уточнения указывает, что значение спектрального значения X[n], X[n+1] должно остаться без изменений.
Другими словами, первый бит уточнения, ассоциированный со спектральным значением, может рассматриваться в качестве бита, указывающего, должна ли величина спектрального значения быть увеличена на одно значение младшего значащего бита, и второй бит уточнения (бит знака) используется только в случаях, когда ранее декодированное спектральное значение было 0.
Таким образом, присутствует очень эффективная концепция для уточнения, при этом, как правило, только один бит требуется для уточнения младшего значащего бита у спектрального значения, и при этом только два бита (бит, указывающий, должно ли быть уточнение, и бит, определяющий знак) требуются в случае, когда ранее декодированное спектральное значение является 0.
Следует отметить, что функциональные возможности, описанные в данном документе, могут, например, быть использованы в функциональной возможности 900 декодирования.
Признаки, которые обсуждаются здесь более подробно, при обращении к псевдо-программным кодам, могут быть введены в функциональную возможность, как показано на Фиг. 9, отдельно или в сочетании. Однако, следует отметить, что необязательно включать каждые и любые подробности, и что подробности, описанные здесь, могут быть выгодными, когда принимаются отдельно.
11) Выводы
11.1) Общего характера
В нижеследующем будут обобщены некоторые основные идеи настоящего изобретения. В частности, аспекты, упомянутые в данном документе, могут быть реализованы отдельно или в сочетании с другими аспектами в вариантах осуществления изобретения.
Варианты осуществления в соответствии с изобретением основаны на обнаружении того, что при более низких битрейтах обычный подход может сильно ухудшать эффективность кодирования. Было обнаружено, что при высоких битрейтах высокий бюджет битов позволяет квантовать полный спектр с высокой точность, даже коэффициенты высоких частот. Также было обнаружено, что установка некоторых коэффициентов высоких частот в 0 будет добавлять значительный объем искажений в высокие частоты, что помешало бы прозрачному качеству декодированного выходного сигнала. На Фиг. 12 SNR спектра MDCT нанесено для каждого кадра аудиосигнала и для двух битрейтов, низкого битрейта в 32Кбит/с и высокого битрейта 128Кбит/с. SNR при 32Кбит/с выглядит последовательным, но SNR при 128Кбит/с содержит большие перепады. Эти перепады соответствуют кадрам, в которых высокочастотные коэффициенты были усечены потому, что израсходованное количество битов превышает бюджет битов.
11.2) Поэтапное Описание Обычного Подхода
В нижеследующем будут описаны этапы, необходимые для квантования и кодирования спектра X(n) MDCT, 0≤n < N, как выполняемые в обычном подходе.
Кодер
- Этап 1. Первая оценка глобального усиления. Эта первая оценка не квантует спектр и не вычисляет количество битов, которые расходуются арифметическим кодером. Она основана только на энергии групп коэффициентов MDCT и итеративном подходе с низкой сложностью для получения первой грубой оценки глобального усиления (см. Раздел 1.3.8.2 в технических описаниях NBC)
- Этап 2: Квантование спектра MDCT с использованием глобального усиления, найденного на Этапе 1. Это создает квантованный спектр Xq(n) MDSC 0≤n < N. (см. Раздел 1.3.8.3 в технических описаниях NBC)
- Этап 3: Вычисляют количество битов, которые требуются для кодирования квантованного спектра Xq(n). Если количество битов превышает бюджет битов, то этот этап также находит индекс последнего ненулевого кодированного коэффициента lastnz, так что израсходованное количество битов у усеченного спектра может уместиться в рамках бюджета битов. (см. Раздел 1.3.8.4 в технических описаниях NBC)
- Этап 4: Регулируют глобальное усиление как функцию количества битов, вычисленных на Этапе 3: если количество битов слишком высокое, увеличивают глобальное усиление; если количество битов слишком низкое, уменьшают глобальное усиление. Затем повторно выполняют Этапы 2 и 3. Этап 4 может быть повторен несколько раз до тех пор, пока не будет найдено оптимальное глобальное усиление. Если требуется низкая сложность, то Этап 4 не выполняется или выполняется только один раз (аналогично NBC, см. Раздел 1.3.8.6 в технических описаниях NBC).
- Этап 5: Инициализация состояний арифметического кодера; Инициализация контекста c.
- Этап 6: Кодируют глобальное усиление и последний ненулевой кодированный коэффициента lastnz в качестве побочной информации.
- Этап 7: Повторяют следующие подэтапы для всех (n=0; n<lastnz; n +=2):
-- Этап 7a: Вычисляют минимальное количество битов, которое требуется для представления амплитуды двух коэффициентов Xq(n) и Xq(n+1)
numbits=ceil( log2( max ( abs (X<sub>q</sub>[n]), abs{X<sub>q</sub>[n+1]) ) + 1 ) );
-- Этап 7b: Кодируют numbits-2 управляющих значений (escape value) (VAL_ESC=16), если numbits>2
for (b=0; b < numbits-2; b++) {Получают вероятности p из контекста cКодируют управляющий символ VAL_ESC с помощью арифметического кодирования и вероятностей pОбновляют контекст c}
q
q
-- Этап 7c: Кодируют 2 старших значащих бита обоих коэффициентов X(n) и X(n+1) в качестве одного символа sym (значение которого лежит между 0 и 15)
s=max(0, numbits-2);a=abs (X<sub>q</sub>[n]) >> s;b=abs (X<sub>q</sub>[n+1]) >> s;sym=a+4*b;Получают вероятности p из контекста cКодируют символ sym с помощью арифметического кодирования и вероятностей pОбновляют контекст c
-- Этап 7d: Кодируют оставшиеся биты, если numbits>2
for (b=0; b < numbits-2; b++) {bit0 = (abs(X<sub>q</sub>[n]) >> b) & 1;Кодируют bit0 в качестве побочной информацииbit1 = (abs(X<sub>q</sub>[n+1]) >> b) & 1;Кодируют bit1 в качестве побочной информации}
-- Этап 7e: Кодируют знак каждого коэффициента, за исключением того, если коэффициент является нулем
if (X<sub>q</sub>[n] != 0 )bit0=0;if (X<sub>q</sub>[n] < 0) { bit0=1;}Кодируют bit0 в качестве побочной информации}if (X<sub>q</sub>[n+1] != 0) {bit1=0;if (X<sub>q</sub>[n+1] < 0) {bit1=1;}Кодируют bit1 в качестве побочной информации}
- Этап 8: Осуществляют окончательную обработку арифметического кодера и вычисляют количество неиспользованных битов.
- Этап 9. Если присутствуют неиспользованные биты, кодируют остаточные биты заданные остаточным квантователем (см. Раздел 1.3.9 в технических описаниях NBC).
Декодер
- Этап 1: Инициализация состояний арифметического декодера; Инициализация контекста c.
- Этап 2: Декодируют глобальное усиление и последний ненулевой кодированный коэффициент lastnz.
- Этап 3: Повторяют следующие подэтапы для всех (n=0; n<lastnz; n +=2):
q
q
-- Этап 3a: Декодируют 2 старших значащих бита обоих коэффициентов X(n) и X(n+1)
numbits=1;do {Получают вероятности p из контекста cДекодируют символ sym с помощью арифметического декодирования и вероятностей pОбновляют контекст cnumbits++;} while (sym==VAL_ESC)X<sub>q</sub>[n] = (sym & 3) << (numbits-2);X<sub>q</sub>[n+1] = (sym >> 2) << (numbits-2);
-- Этап 3b: Декодируют оставшиеся биты, если numbits>2
for (b=0; b < numbits-2; b++) {Декодируют bit0X<sub>q</sub>[n] += bit0 << bДекодируют bit1X<sub>q</sub>[n+1] += bit1 << b}
-- Этап 3c: Декодируют знак каждого коэффициента, за исключением того, если коэффициент является нулем
if (X<sub>q</sub>[n] != 0 ) {Декодируют bit0if (bit0 == 1) { X<sub>q</sub>[n] = -X<sub>q</sub>[n];}}if (X<sub>q</sub>[n+1] != 0) {Декодируют bit1if (bit1 == 1) { X<sub>q</sub>[n+1] = -X<sub>q</sub>[n+1];}}
- Этап 4: Устанавливают все коэффициента n >= lastnz в ноль
- Этап 5: Осуществляют окончательную обработку арифметического декодера и вычисляют количество неиспользованных битов.
- Этап 6: Если присутствуют неиспользованные биты, то декодируют остаточные биты. Применяют обратный остаточный квантователь, который уточняет ненулевые коэффициенты с использованием остаточных битов (см. Раздел 1.4.3 в технических описаниях NBC).
- Этап 7: Обратное квантование: умножают декодированные коэффициенты MDCT на глобальное усиление
Следует отметить, что этапы с 1 по 9, как описано в настоящем разделе «поэтапное описание обычного подхода», могут быть использованы в обычных аудиокодерах и декодерах и также могут быть использованы, когда аудиокодер или декодер в соответствии с настоящим изобретением работает в первом режиме кодирования.
Например, этапы с 1 по 9 кодера, описанные в поэтапном описании обычного подхода, могут быть использованы, чтобы реализовать функциональные возможности 810, 814, 818, 840, 844, 848, 852, 856, 860, 864, 868 и 869. Этапы 1, 2, 4, 5, 6, 7a, 7c, 7e и 8 кодера, описанные выше в поэтапном описании обычного подхода, также могут быть использованы в аудиокодере в соответствии с вариантом осуществления настоящего изобретения, например, для реализаций функциональных возможностей 810, 814, 818, 822, 870, 874, 878, 886, 890, 894 и 896 (например, при работе в новом втором режиме).
Этапы 1, 2, 3, 3a, 3b, 3c, 4, 5, 6, 7 декодера также могут быть использованы в декодировании аудио в соответствии с настоящим изобретением при работе в «первом режиме», например, чтобы реализовывать этапы 910, 914, 918, 930, 934, 938, 942, 944, 948, 980.
Более того, этапы 1, 2, 3, 3a, 3c, 4, 5 и 7 декодера также могут быть использованы, чтобы реализовывать функциональные возможности 910, 914, 918, 950, 958, 962, 968 и 980 в декодере согласно изобретению (например, при работе во «втором режиме»).
11.3) Аспекты Предлагаемого Изобретения
В нижеследующем будут описаны улучшения и расширения для этапов кодера и этапов декодера, используемых в обычном подходе.
q
Было обнаружено, что при высоких битрейтах квантованный спектр X[n] MDCT, вычисленный на этапах с 1 по 4 кодера, содержит коэффициенты с высокой амплитудой. Было обнаружено, что минимальное количество битов, которые необходимы для представления амплитуды этих коэффициентов (этап 7a кодера) таким образом является высоким и, в большинстве случаев, выше 2. Следовательно, в большинстве случаев присутствует по меньшей мере один младший значащий бит (LSB) на коэффициент, который кодируется в качестве побочной информации, как описано на этапе 7d кодера. Эти младшие значащие биты (LSB) являются менее важной информацией и было обнаружено, что они могут быть удалены при относительно небольшом влиянии на SNR. Было обнаружено, что фактически влияние много меньше, чем установка всего коэффициента в 0 (т.е. установка как старших значащих битов MSB, так и младших значащих битов LSB в 0), аналогично обычным подходам.
Варианты осуществления в соответствии с предлагаемым изобретением, таким образом, основаны на идеи, что более эффективно усечение младших значащих битов LBS, чем усечение высокочастотных коэффициентов, когда количество битов, которое расходуется для кодирования квантованных данных MDCT, превышает бюджет битов. Однако, это является преимуществом (или только возможно), только когда квантованные коэффициента спектра MDCT обладают высокой амплитудой, как при высоких битрейтах. Следовательно, предлагаемое изобретение добавляет один бит сигнализации в битовый поток в качестве побочной информации (при этом упомянутый бит сигнализации может, например, описывать, используется ли «первый режим» или «второй режим»). Этот бит сигнализирует, используется ли обычный подход (например, как описано в разделе поэтапного описания обычного подхода) или новый подход (как описано, например, в разделе поэтапного описания варианта осуществления предлагаемого изобретения). Следует отметить, что в случае, когда израсходованное количество битов находится ниже бюджета битов, новый подход не требуется, и бит сигнализации может быть установлен, чтобы инициировать обычный подход. Новый подход, например, используется, только когда израсходованное количество битов превышает бюджет битов и выполняются некоторые критерии (например, высокий битрейт).
На Фиг. 13 был выполнен тот же самый эксперимент, как для предыдущей фигуры (Фиг. 12), за исключением того, что вариант осуществления в соответствии с предлагаемым изобретением был использован для случая высокого битрейта в 128Кбит/с. SNR при 128Кбит/с теперь выглядит много более последовательным, все перепады исчезли.
11.4) Поэтапное Описание Варианта Осуществления Предлагаемого Изобретения
В нижеследующем поэтапно будет описан вариант осуществления в соответствии с настоящим изобретением. В этом описании будет осуществляться обращение к поэтапному описанию обычного подхода, которое предоставлено в разделе 11.2, поскольку могут быть приняты некоторые из этапов обычного подхода.
Другими словами, большая часть из этапов, что описаны в разделе 11.2 (обычный подход), являются здесь теми же самыми. Таким образом, здесь будут описаны только этапы, которые отличаются.
Кодер
q
- Этап 3: Это этап по-прежнему вычисляет количество битов, которые требуются для кодирования квантованного спектра X(n). В дополнение, этот этап также должен принимать решение о том, использовать ли подход предшествующего уровня техники или новый подход (т.е. устанавливать бит сигнализации, упомянутый в предыдущем разделе).
- новый подход если: израсходованные биты выше бюджета битов и выполняются некоторые критерии (например, высокий битрейт)
- предшествующий уровень техники если: израсходованные биты ниже бюджета битов, или критерии не выполняются
В заключении, этап находит последний ненулевой кодированный коэффициент lastnz. Он находится аналогично описанному в Разделе 11.2 (т.е. для того чтобы усечь спектр), только если выбирается подход предшествующего уровня техники. Если выбирается новый подход, то спектр не усекается и lastnz тогда соответствует просто последнему ненулевому коэффициенту.
- Этап 6: дополнительно этот этап теперь также кодирует бит сигнализации в качестве побочной информации
Другие этапы кодера является точно такими же, если был выбран подход предшествующего уровня техники. Если выбирается новый подход, то добавляются/модифицируются следующие этапы.
-- Этап 7a-bis: это дополнительный этап сразу после Этапа 7a, который выполняется, если numbits>2. Сохраняется младший значащий бит каждого коэффициента и затем коэффициент модифицируется так, что теперь его LSB является нулем. Знак коэффициента также сохраняется в случае, когда коэффициент исходно был ненулевым и становится нулем после установки его LSB в ноль.
if (numbits > 2){bit=abs(X<sub>q</sub>[n]) & 1;lsbs[nlsbs++] = bit;if (bit != 0 && (abs(X<sub>q</sub>[n] ) & FFFE) == 0){ bit=0; if (X<sub>q</sub>[n] < 0) { bit=1; } lsbs[nlsbs++] = bit;}X<sub>q</sub>[n] = (X<sub>q</sub>[n]/2) *2;bit=abs (X<sub>q</sub>[n+1]) & 1;lsbs[nlsbs++] = bit;if (bit != 0 && (abs(X<sub>q</sub>[n+1]) & FFFE) == 0){ bit=0; if (X<sub>q</sub>[n+1] < 0) { bit=1; } lsbs[nlsbs++] = bit;}X<sub>q</sub>[n+1] = (X<sub>q</sub>[n+ 1]/2) *2;}
-- Этап 7d: Кодируют оставшиеся биты, за исключением младшего значащего бита
for (b=1; b < numbits-2; b++) {bit0 = (abs(X<sub>q</sub>[n]) >> b) & 1;Кодируют bit0 в качестве побочной информацииbit1 = (abs (X<sub>q</sub>[n+1]) >> b) & 1;Кодируют bit1 в качестве побочной информации}
- Этап 9: Если выбирается новый подход, то остаточное квантование/кодирование не используется. Если присутствуют неиспользованные биты, то они используются для кодирования nlsbs битов, которые были сохранены в lsbs[] (см. Этап 7a-bis).
Декодер
- Этап 2: дополнительно этот этап теперь также декодирует бит сигнализации
Другие этапы декодера являются точно такими же, если был выбран подход предшествующего уровня техники. Если выбирается новый подход, то добавляются/модифицируются следующие этапы.
-- Этап 3a-bis: это дополнительный этап непосредственно после Этапа 3a. Он сохраняет numbits в массиве numbits[n] так, что она может быть повторно использована позже на этапе 6.
-- Этап 3b: Декодируют оставшиеся биты, за исключением младшего значащего бита
for (b=1; b < numbits-2; b++) {Декодируют bit0X<sub>q</sub>[n] += bit0 << bДекодируют bit1X<sub>q</sub>[n+1] += bit1 << b}
- Этап 6: Если присутствуют неиспользованные биты, то декодируют nlsbs биты и сохраняют их в lsbs[]. Затем уточняют коэффициенты (n, n+1), если numbits[n]>2 с использованием декодированных битов LSB.
k=0;for (n=0; n < lastnz; n+=2) {if (numbits[n] > 2) { if (k == nisbs) { break; } bit0=lsbs[k++]; if (bit0 == 1) { if (X<sub>q</sub>[n] > 0) { X<sub>q</sub>[n] += 1; } else if (X<sub>q</sub>[n] < 0) { X<sub>q</sub>[n] -= 1; } else { if (k == nlsbs) { break; } bit1=lsbs[k++]; X<sub>q</sub>[n] = 1-2*bit1; } } if (k == nlsbs) { break; } bit0=lsbs[k++]; if (bit0 == 1) { if (X<sub>q</sub>[n+1] > 0) { X<sub>q</sub>[n+1] += 1; } else if (X<sub>q</sub>[n+1] < 0) { X<sub>q</sub>[n+1] -= 1; } else { if (k == nlsbs) { break; } bit1=lsbs[k++]; X<sub>q</sub>[n+1] = 1-2*bit1; } }}}
12. Способы в соответствии с Фигурами с 14 по 18
Фигуры с 14 по 15 показывают блок-схемы способов для декодирования аудио в соответствии с вариантами осуществления изобретения.
Фигуры с 16 по 18 показывают блок-схемы способов для кодирования аудио в соответствии с вариантами осуществления изобретения.
Следует отметить, что способы могут быть дополнены любыми признаками и функциональными возможностями, описанными в данном документе в отношении соответствующих устройств, и любыми из упомянутых функциональных возможностей, либо отдельно, либо в сочетании.
13. Альтернативные Варианты Реализации
Несмотря на то, что некоторые аспекты были описаны в контексте устройства, очевидно, что эти аспекты также представляют собой описание соответствующего способа, при этом блок или устройство соответствует этапу способа или признаку этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют собой описание соответствующего блока или элемента, или признака соответствующего устройства. Некоторые или все их этапов способа могут быть использованы посредством (или с использованием) устройства аппаратного обеспечения, аналогичного, например, микропроцессору, программируемому компьютеру или электронной схеме. В некоторых вариантах осуществления один или несколько наиболее важных этапов способа могут быть исполнены таким устройством.
Кодированный аудио сигнал согласно изобретению может быть сохранен на цифровом запоминающем носителе информации или может быть передан по среде передачи, такой как беспроводная среда передачи или проводная среда передачи, такая как Интернет.
В зависимости от определенных требований к реализации, варианты осуществления могут быть реализованы в аппаратном обеспечении или в программном обеспечении. Реализация может быть выполнена с использованием цифрового запоминающего носителя информации, например, гибкого диска, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM или FLASH-память, с хранящимися на нем электронно-читаемыми сигналами управления, которые взаимодействуют (или выполнены с возможностью взаимодействия) с программируемой компьютерной системой так, что выполняется соответствующий способ. Вследствие этого, цифровой запоминающий носитель информации может быть машиночитаемым.
Некоторые варианты осуществления в соответствии с изобретением содержат носитель данных с электронно-читаемыми сигналами управления, которые выполнены с возможностью взаимодействия с программируемой компьютерной системой так, что выполняется один из способов, описанных в данном документе.
В целом, варианты осуществления настоящего изобретения могут быть реализованы в качестве компьютерного программного продукта с программным кодом, причем программный код работает для выполнения одного из способов, когда компьютерный программный продукт выполняется на компьютере. Программный код может, например, быть сохранен на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для выполнения одного из способов, описанных в данном документе, которая хранится на машиночитаемом носителе.
Другими словами, вариант осуществления способа согласно изобретению, вследствие этого, является компьютерной программой с программным кодом для выполнения одного из способов, описанных в данном документе, когда компьютерная программа выполняется на компьютере.
Дополнительный вариант осуществления способа согласно изобретению, вследствие этого, является носителем данных (или цифровым запоминающим носителем информации или машиночитаемым носителем информации), содержащим, записанную на нем, компьютерную программу для выполнения одного из способов, описанных в данном документе. Носитель данных, цифровой запоминающий носитель информации или записанный носитель информации, как правило, являются вещественными и/или не временными.
Дополнительный вариант осуществления способа согласно изобретению, вследствие этого, является потоком данных или последовательностью сигналов, представляющими компьютерную программу для выполнения одного из способов, описанных в данном документе. Поток данных или последовательность сигналов могут, например, быть выполнены с возможностью их переноса через соединение связи для передачи данных, например, через Интернет.
Дополнительный вариант осуществления содержит средство обработки, например, компьютер или программируемое логическое устройство, выполненное с возможностью или адаптируемое для выполнения одного из способов, описанных в данном документе.
Дополнительный вариант осуществления содержит компьютер с инсталлированной на нем компьютерной программой для выполнения одного из способов, описанных в данном документе.
Дополнительный вариант осуществления в соответствии с изобретением содержит устройство или систему, выполненные с возможностью переноса (например, электронным или оптическим образом) компьютерной программы для выполнения одного из способов, описанных в данном документе, к приемнику. Приемник может, например, быть компьютером, мобильным устройством, устройством памяти или аналогичным. Устройство или система могут, например, быть выполнены в виде файлового сервера для переноса компьютерной программы к приемнику.
В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая вентильная матрица) может быть использовано для выполнения некоторых или всех из функциональных возможностей способов, описанных в данном документе. В некоторых вариантах осуществления программируемая вентильная матрица может взаимодействовать с микропроцессором для того, чтобы выполнять один из способов, описанных в данном документе. В целом, способы предпочтительно выполняются любым устройством аппаратного обеспечения.
Устройство, описанное в данном документе, может быть реализовано с использованием устройства аппаратного обеспечения, или с использованием компьютера, или с использованием сочетания устройства аппаратного обеспечения и компьютера.
Устройство, описанное в данном документе, или любые компоненты устройства, описанного в данном документе, могут быть реализованы по меньшей мере частично в аппаратном обеспечении и/или в программном обеспечении.
Способы, описанные в данном документе, могут быть выполнены с использованием устройства аппаратного обеспечения, или с использованием компьютера, или с использованием сочетания устройства аппаратного обеспечения и компьютера.
Способы, описанные в данном документе, или любые компоненты устройства, описанного в данном документе, могут быть выполнены по меньшей мере частично посредством аппаратного обеспечения и/или посредством программного обеспечения.
Описанные выше варианты осуществления являются лишь иллюстративными для принципов настоящего изобретения. Следует понимать, что модификации и вариации компоновок и подробностей, описанных в данном документе, будут очевидны специалистам в соответствующей области техники. Вследствие этого подразумевается, что изобретение должно ограничиваться только объемом предстоящей патентной формулы, а не конкретными подробностями, представленными в данном документе в качестве описания и объяснения вариантов осуществления.
Таким образом, в первой реализации настоящего изобретения обеспечен аудиодекодер (100; 200; 700) для предоставления декодированной аудиоинформации (112; 212; 712), на основе кодированной аудиоинформации (110; 210: 710), при этом аудиодекодер выполнен с возможностью получения декодированных спектральных значений (132; 232; 732; Xq[n], Xq[n+1]) на основе кодированной информации (130; 230), представляющей собой спектральные значения,
при этом аудиодекодер выполнен с возможностью совместного декодирования (950; 1110a-1110g) двух или нескольких старших значащих битов на спектральное значение, на основе соответствующих кодов (sym) символа для набора спектральных значений, с использованием арифметического декодирования,
при этом соответствующий код (sym) символа представляет собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений,
при этом аудиодекодер выполнен с возможностью декодирования (972; 1140a-1141j) одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от того, сколько доступно информации о младшем значащем бите так, что декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов; и
при этом аудиодекодер выполнен с возможностью предоставления декодированной аудиоинформации с использованием спектральных значений.
При этом аудиодекодер выполнен с возможностью отображения (1110f, 1110g) одного символа (sym) арифметически кодированного представления, которое представляет собой по меньшей мере два старших значащих бита по меньшей мере одного спектрального значения, в по меньшей мере двух старших значащих битах по меньшей мере одного спектрального значения.
В аудиодекодере арифметическое декодирование выполнено с возможностью определения (1110a-1110e) битовых позиций (numbits, numbits-1) по меньшей мере двух старших значащих битов и распределения (1110f, 1110g) по меньшей мере двух старших значащих битов, определенных символом (sym) арифметически кодированного представления, определенным битовым позициям.
При этом аудиодекодер выполнен с возможностью декодирования (954; 1120a-1120e) для всех спектральных значений, для которых были декодированы два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами.
При этом аудиодекодер выполнен с возможностью декодирования, на первой фазе декодирования,
- двух или нескольких старших значащих битов на спектральное значение (950; 1110a-1110g), и
- для всех спектральных значений, для которых декодируются два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов (954; 1120a-1120e), битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами, и
- для всех спектральных значений, для которых декодируется два или несколько старших значащих битов, и для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, знаков (958; 1130a-1131d); и
при этом аудиодекодер выполнен с возможностью выборочного пропуска (1130a, 1131a), на первой фазе декодирования, декодирования знака для спектральных значений, для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и
при этом аудиодекодер выполнен с возможностью выборочного получения (972; 1140h-1140j, 1141h-1141j), на второй фазе декодирования, которая следует за первой фазой декодирования, информации о знаке для спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых информация о младшем значащем бите указывает ненулевое значение.
При этом аудиодекодер выполнен с возможностью последовательного использования (1140e, 1140i, 1141e, 1141i) последующих битов битовой последовательности информации о младшем значащем бите (lsbs[]) для того, чтобы получать значения младшего значащего бита, ассоциированные со спектральными значениями.
При этом аудиодекодер выполнен с возможностью использования (1140e, 1141e) одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, при этом использованный один бит битовой последовательности информации о младшем значащем бите используется (1140f, 1140g, 1141f, 1141g) для того, чтобы получать значение младшего значащего бита; и
при этом аудиодекодер выполнен с возможностью использования (1140e, 1141e) одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых использованный один бит битовой последовательности информации о младшем значащем бите подтверждает нулевое значение; и
при этом аудиодекодер выполнен с возможностью использования (1140e, 1140i, 1141e, 1141i) двух последующих битов битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых первый из использованных битов битовой последовательности информации о младшем значащем бите указывает отклонение от нулевого значения на значение младшего значащего бита, при этом второй из использованных битов битовой последовательности информации о младшем значащем бите определяет (1140j, 1141j) знак соответствующего спектрального значения.
При этом аудиодекодер выполнен с возможностью декодирования (972; 1140a-1141j) младших значащих битов, начиная с младшего значащего бита, ассоциированного со спектральным значением самой низкой частоты, и продолжая в направлении спектральных значений, ассоциированных с все более высокими частотами,
так, что спектральные значения уточняются посредством информации о младшем значащем бите в диапазоне от спектрального значения самой низкой частоты вплоть до спектрального значения, для которого доступна последняя информации о младшем значащем бите, и так, что спектральные значения с ассоциированными частотами выше частоты, ассоциированной со спектральным значением, для которого доступна последняя информация о младшем значащем бите, остаются грубыми.
При этом аудиодекодер выполнен с возможностью переключения между
- первым режимом (930, 934, 938, 942, 944, 948), при котором декодирование спектральных значений в диапазоне более высоких частот пропускается в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются (934) для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом (950, 954, 958, 962, 968, 972), при котором декодируется (972) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты.
При этом аудиодекодер выполнен с возможностью оценки флага битового потока, который включен в кодированную аудиоинформацию, для того чтобы принять решение о том, работает ли аудиодекодер в первом режиме или во втором режиме.
q
q
При этом аудиодекодер выполнен с возможностью совместного декодирования (950; 1110a-1110g) двух или нескольких старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений (X[n], X[n+1]) на основе соответствующих кодов символа,
при этом соответствующий код символа представляет собой два или несколько старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений.
При этом аудиодекодер выполнен с возможностью декодирования спектральных значений в соответствии со следующим алгоритмом:
q
q
Декодируют 2 старших значащих бита обоих коэффициентов X(n) и X(n+1) в соответствии с:
numbits=1;
do {
Получают вероятности p из контекста c
Декодируют символ sym с помощью арифметического декодирования и вероятностей p
Обновляют контекст c
numbits++;
} while (sym==VAL_ESC)
q
X[n]=(sym & 3) << (numbits-2);
q
X[n+1]=(sym >> 2) << (numbits-2);
Декодируют оставшиеся биты, за исключением младшего значащего бита, если присутствуют любые оставшиеся биты, в соответствии с:
for (b=1; b < numbits-2; b++) {
Декодируют bit0
q
X[n] += bit0 << b
Декодируют bit1
q
X[n+1] += bit1 << b
}
Декодируют знак каждого коэффициента, за исключением того, если старший значащий бит является нулем и оставшиеся биты являются нулем, в соответствии с:
q
if (X[n] != 0) {
Декодируют bit0
if (bit0 == 1) {
q
q
X[n] = -X[n];
}
}
q
if (X[n+1] != 0) {
Декодируют bit1
if (bit1 == 1) {
q
q
X[n+1] = -X[n+1];
}
}
Устанавливают все коэффициенты n >= lastnz в ноль, при этом lastnz получается на основе побочной информации, полученной из кодированного аудиопредставления;
Осуществляют окончательную обработку арифметического декодирования и вычисляют количество неиспользованных битов;
если присутствуют неиспользованные биты, то декодируют nlsbs битов и сохраняют их в структуре данных lsbs[];
q
q
затем уточняют коэффициенты (X(n),X(n+1)), если numbits[n]>2 с использованием декодированных битов LSB в соответствии с:
Во второй реализации настоящего изобретения обеспечен аудиодекодер (100; 200; 700) для предоставления декодированной аудиоинформации (112; 212; 712), на основе кодированной аудиоинформации (110; 210; 710), при этом аудиодекодер выполнен с возможностью получения декодированных спектральных значений (132; 232; 732; Xq[n], Xq[n+1]) на основе кодированной информации (130; 230), представляющей собой спектральные значения,
q
q
при этом аудиодекодер выполнен с возможностью декодирования (950; 1110a-1110g) одного или нескольких старших значащих битов на основе соответствующих кодов (sym) символа для множества спектральных значений (X[0] … X[lastnz-1]), и декодирования одного или нескольких младших значащих битов для одного или нескольких спектральных значений,
при этом аудиодекодер выполнен с возможностью переключения между
- первым режимом (930, 934, 938, 942, 944, 948), при котором декодирование спектральных значений в диапазоне более высоких частот пропускается в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются (934) для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом (950, 954, 958, 962, 968, 972), при котором декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых был декодирован один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты; и
при этом аудиодекодер выполнен с возможностью предоставления декодированной аудиоинформации с использованием спектральных значений.
В аудиодекодере арифметическое декодирование выполнено с возможностью определения (950, 1110a-1110e) битовых позиций (numbits, numbits-1) одного или нескольких старших значащих битов и распределения (1110f, 1110g) одного или нескольких старших значащих битов, определенных символом арифметически кодированного представления, определенным битовым позициям.
При этом аудиодекодер выполнен с возможностью декодирования (954; 1120a-1120e) для всех спектральных значений, для которых был декодирован один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами.
При этом аудиодекодер выполнен с возможностью декодирования, при работе во втором режиме, на первой фазе декодирования,
- одного или нескольких старших значащих битов на спектральное значение, и
- для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битов и одним или несколькими старшими значащими битами, и
- для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и для которых один или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, знаков; и
при этом аудиодекодер выполнен с возможностью выборочного пропуска, при работе во втором режиме, на первой фазе декодирования, декодирования знака для спектральных значений, для которых один или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и
при этом аудиодекодер выполнен с возможностью выборочного получения, при работе во втором режиме, на второй фазе декодирования, которая следует за первой фазой декодирования, информации о знаке для спектральных значений, для которых один или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых информация о младшем значащем бите указывает ненулевое значение.
При этом аудиодекодер выполнен с возможностью последовательного использования последующих битов битовой последовательности информации о младшем значащем бите для того, чтобы получать значения младшего значащего бита, ассоциированные со спектральными значениями, при работе во втором режиме.
При этом аудиодекодер выполнен с возможностью использования, при работе во втором режиме, одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых один или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, при этом использованный один бит битовой последовательности информации о младшем значащем бите используется для того, чтобы получать значение младшего значащего бита; и
при этом аудиодекодер выполнен с возможностью использования, при работе во втором режиме, одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых один или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых использованный один бит битовой последовательности информации о младшем значащем бите подтверждает нулевое значение; и
при этом аудиодекодер выполнен с возможностью использования, при работе во втором режиме, двух последующих битов битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых один или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых первый из использованных битов битовой последовательности информации о младшем значащем бите указывает отклонение от нулевого значения на значение младшего значащего бита, при этом второй из использованных битов битовой последовательности информации о младшем значащем бите определяет знак соответствующего спектрального значения.
При этом аудиодекодер выполнен с возможностью декодирования, при работе во втором режиме, младших значащих битов, начиная с младшего значащего бита, ассоциированного со спектральным значением самой низкой частоты, и продолжая в направлении спектральных значений, ассоциированных с все более высокими частотами,
так, что спектральные значения уточняются посредством информации о младшем значащем бите в диапазоне от спектрального значения самой низкой частоты вплоть до спектрального значения, для которого доступна последняя информации о младшем значащем бите, и так, что спектральные значения с ассоциированными частотами выше частоты, ассоциированной со спектральным значением, для которого доступна последняя информация о младшем значащем бите, остаются грубыми.
При этом аудиодекодер выполнен с возможностью оценки флага битового потока, который включен в кодированную аудиоинформацию, для того чтобы принять решение о том, работает ли аудиодекодер в первом режиме или во втором режиме.
При этом аудиодекодер выполнен с возможностью получения (934) промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением из непрерывной битовой последовательности в первом режиме, и
при этом аудиодекодер выполнен с возможностью получения (954) промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением (972) из отдельных битовых последовательностей или из отдельных, не следующих друг за другом битовых местоположений битовой последовательности во втором режиме.
При этом аудиодекодер выполнен с возможностью выборочного получения (938) информации о знаке, ассоциированной со спектральным значением, только после декодирования одного или нескольких старших значащих битов, любых промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением, в первом режиме, в зависимости от того, указывает один или несколько старших значащих битов, промежуточные биты и младший значащий бит нулевое значение или нет, и
при этом аудиодекодер выполнен с возможностью выборочного получения (958; 1130a-1131d) информации о знаке, ассоциированной со спектральным значением, после декодирования одного или нескольких старших значащих битов и любых промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, но до того, как декодируется младший значащий бит, ассоциированный с заданным спектральным значением, во втором режиме, в зависимости от того, указывает ли один или несколько старших значащих битов и промежуточные биты нулевое значение или нет.
q
В третьей реализации настоящего изобретения обеспечен аудиокодер (300; 400; 500; 600) для предоставления кодированной аудиоинформации (312; 412; 512; 612) на основе входной аудиоинформации (310; 410; 510; 610), при этом аудиокодер выполнен с возможностью получения (620, 630, 640, 650, 660) спектральных значений (330; 662; X[n]), представляющих собой аудиоконтент входной аудиоинформации, и
при этом аудиокодер выполнен с возможностью кодирования (670; 800) по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию (350, 450, 550, 672; sym, lsbs[]), представляющую собой спектральные значения;
при этом аудиокодер выполнен с возможностью совместного кодирования (878, 886, 890; 1000a, 1020a, 1040a-1040d) двух или нескольких старших значащих битов на спектральное значение, чтобы получить соответствующие коды (sym) символа для набора спектральных значений (Xq[0] … Xq[lastnz-1]) с использованием арифметического кодирования,
при этом соответствующий код (sym) символа представляет собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений,
при этом аудиокодер выполнен с возможностью кодирования (882; 898; 1010a-1010e, 1011a-1011e) одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от доступного бюджета битов,
так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов; и
при этом аудиокодер выполнен с возможностью предоставления кодированной аудиоинформации с использованием кодированной информации, представляющей собой спектральные значения.
В аудиокодере арифметическое кодирование выполнено с возможностью определения (878; 1000a) битовых позиций (numbits, numbits-1) по меньшей мере двух старших значащих битов, и включения (886,1020a) в арифметически кодированное представление информации, описывающей битовые позиции.
q
q
При этом аудиокодер выполнен с возможностью отображения (890; 1040a-1040d) по меньшей мере двух старших значащих битов по меньшей мере одного спектрального значения (X[n], X[n+1]) в одном символе (sym) арифметически кодированного представления, которое представляет собой по меньшей мере два старших значащих бита по меньшей мере одного спектрального значения.
При этом аудиокодер выполнен с возможностью кодирования (892; 1050a-1050c) для всех спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами.
При этом аудиокодер выполнен с возможностью кодирования, на первой фазе кодирования,
- двух или нескольких старших значащих битов на спектральное значение (878, 886, 890; 1000a, 1020a, 1040a-1040d), и
- для всех спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и двумя или несколькими старшими значащими битами (892; 1050a-1050c), и
- для всех спектральных значений, для которых кодируется два или несколько старших значащих битов, и для которых два или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, знаков (894; 1060a-1061c); и
при этом аудиокодер выполнен с возможностью выборочного пропуска (1060a, 1061a), на первой фазе кодирования, кодирования знака для спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и
при этом аудиокодер выполнен с возможностью выборочного кодирования (898), на второй фазе кодирования, информации (1010e, 1011e) о знаке для спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых информация о младшем значащем бите указывает ненулевое значение.
При этом аудиокодер выполнен с возможностью включения (882, 898; 1010c-1010e, 1011c-1011e) информации о знаке в кодированное аудиопредставление только для спектральных значений, которые отличаются от нуля только на младший значащий бит, если фактически кодируется младший значащий бит таких спектральных значений.
При этом аудиокодер выполнен с возможностью последовательного предоставления последующих битов битовой последовательности (lsbs[]) информации о младшем значащем бите для того, чтобы кодировать значения младшего значащего бита, ассоциированные со спектральными значениями.
При этом аудиокодер выполнен с возможностью предоставления (882, 898; 1010a, 1010b, 1011a, 1011b) одного бита (bit) битовой последовательности (lsbs[]) информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, при этом использованный один бит битовой последовательности информации о младшем значащем бите используется для того, чтобы кодировать значение младшего значащего бита; и
при этом аудиокодер выполнен с возможностью предоставления (882, 898; 1010a, 1010b, 1011a, 1011b) одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых предоставленный один бит (bit) битовой последовательности информации о младшем значащем бите подтверждает нулевое значение; и
при этом аудиокодер выполнен с возможностью предоставления (882, 898; 1010a, 1010b, 1010d, 1010e, 1011a, 1011b, 1011d, 1011e) двух последующих битов битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых два или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых первый из предоставленных битов битовой последовательности информации о младшем значащем бите указывает отклонение от нулевого значения на значение младшего значащего бита, при этом второй из предоставленных битов битовой последовательности информации о младшем значащем бите кодирует знак соответствующего спектрального значения.
При этом аудиокодер выполнен с возможностью кодирования (882,898; 1140a-1141j) младших значащих битов, начиная с младшего значащего бита, ассоциированного со спектральным значением самой низкой частоты, и продолжая в направлении спектральных значений, ассоциированных со все более высокими частотами,
так, что кодированная информация для уточнения спектральных значений посредством информации о младшем значащем бите предоставляется в диапазоне от спектрального значения самой низкой частоты вплоть до спектрального значения, для которого предоставляется последняя информация о младшем значащем бите, и
так, что кодированная информация для уточнения спектральных значений посредством информации о младшем значащем бите не предоставляется для спектральных значений с ассоциированными частотами выше частоты, ассоциированной со спектральным значением, для которого предоставляется последняя информация о младшем значащем бите.
При этом аудиокодер выполнен с возможностью переключения между
- первым режимом (840, 844, 848, 852, 856, 860, 864, 868, 869), при котором кодирование ненулевых спектральных значений в диапазоне более высоких частот пропускается в случае, когда доступный бюджет битов использован посредством кодирования спектральных значений в диапазоне более низких частот, и при котором младшие значащие биты кодируются (860) для всех спектральных значений, для которых кодируется (848, 852, 856) один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом (870, 874, 878, 882, 886, 890, 892, 894, 896, 898), при котором кодируется (898) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты.
При этом аудиокодер выполнен с возможностью предоставления флага битового потока, который включается в кодированную аудиоинформацию для того, чтобы указать, работает ли аудиокодер в первом режиме или во втором режиме.
q
q
При этом аудиокодер выполнен с возможностью совместного кодирования (878, 886, 890; 1000a, 1020a, 1040a-1040d) двух или нескольких старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений (X[n], X[n+1]) с использованием соответствующих кодов (sym) символа,
при этом соответствующий код символа представляет собой два или несколько старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений.
При этом аудиокодер выполнен с возможностью определения ненулевого спектрального значения фактической самой высокой частоты и кодирования по меньшей мере двух или нескольких старших значащих битов всех ненулевых спектральных значений или всех ненулевых групп спектральных значений.
При этом аудиокодер выполнен с возможностью кодирования (878, 886, 890, 892) всех битов, за исключением младшего значащего бита, для всех ненулевых спектральных значений, и
при этом аудиокодер выполнен с возможностью кодирования (882, 898) младших значащих битов для спектральных значений до тех пор, пока не исчерпывается бюджет битов.
При этом аудиокодер выполнен с возможностью получения (810; 814, 818, 82) информации об усилении, которая определяет шаги квантования для квантования (660) спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений.
В четвертой реализации настоящего изобретения обеспечен аудиокодер (300; 400; 500; 600) для предоставления кодированной аудиоинформации (312; 412; 512; 612) на основе входной аудиоинформации (310; 410; 510; 610), при этом аудиокодер выполнен с возможностью получения (620, 630, 640, 650, 660) спектральных значений, представляющих собой аудиоконтент входной аудиоинформации, и при этом аудиокодер выполнен с возможностью кодирования (670; 800) по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию (350, 450, 550, 672; sym, lsbs[]), представляющую собой спектральные значения;
при этом аудиокодер выполнен с возможностью кодирования (882; 898; 1010a-1010e, 1011a-1011e) одного или нескольких старших значащих битов для получения соответствующих кодов символа для множества спектральных значений (Xq[0] … Xq[lastnz-1]), и кодирования одного или нескольких младших значащих битов для одного или нескольких спектральных значений,
при этом соответствующий код (sym) символа представляет собой одно или несколько значений старшего значащего бита для одного или нескольких спектральных значений (Xq[n], Xq[n+1]),
при этом аудиокодер выполнен с возможностью переключения между
- первым режимом (840, 844, 848, 852, 856, 860, 864, 868, 869), при котором кодирование ненулевых спектральных значений в области более высоких частот пропускается в случае, когда доступный бюджет битов использован посредством кодирования спектральных значений в диапазоне более низких частот, и при котором младшие значащие биты кодируются (860) для всех спектральных значений, для которых кодируется (848, 852, 856) один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом (870, 874, 878, 882, 886, 890, 892, 894, 896, 898), при котором кодируется (898) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты;
при этом аудиокодер выполнен с возможностью предоставления кодированной аудиоинформации с использованием кодированной информации, представляющей собой спектральные значения.
При этом аудиокодер выполнен с возможностью кодирования (878, 886, 890) по меньшей мере одного или нескольких старших значащих битов всех ненулевых спектральных значений или всех ненулевых групп спектральных значений во втором режиме.
При этом аудиокодер выполнен с возможностью ограничения, при работе в первом режиме, диапазона частот, для которого кодируются спектральные значения, в случае, когда бюджет битов является недостаточным так, что одно или несколько спектральных значений остаются нерассмотренными при кодировании спектральных значений.
При этом аудиокодер выполнен с возможностью определения, при работе в первом режиме, значения максимальной частоты и кодирования (848, 852, 856, 860), при работе в первом режиме, спектральных значений вплоть до максимальной частоты, и оставления, при работе в первом режиме, спектральных значений выше максимальной частоты не кодированными, даже если спектральные значения являются ненулевыми,
при этом аудиокодер выполнен с возможностью выбора, при работе в первом режиме, значения максимальной частоты в зависимости от вычисления или оценки потребности в битах для кодирования всех спектральных значений так, что количество спектральных значений, которые должны быть кодированы, уменьшается, если вычисленная или оцененная потребность в битах будет превышать бюджет битов, и
при этом аудиокодер выполнен с возможностью определения, при работе во втором режиме, значения максимальной частоты и кодирования (878, 882, 886, 890, 898), при работе во втором режиме, спектральных значений вплоть до максимальной частоты и оставления, при работе во втором режиме, спектральных значений выше максимальной частоты не кодированными,
при этом аудиокодер выполнен с возможностью выбора, при работе во втором режиме, значения максимальной частоты так, что кодируется по меньшей мере один или несколько старших значащих битов всех ненулевых спектральных значений или всех ненулевых групп спектральных значений и так, что большая часть спектральных значений с нулевым значением остается не кодированными.
При этом аудиокодер выполнен с возможностью включения информации (lastnz), описывающей максимальную частоту, в кодированную аудиоинформацию.
При этом аудиокодер выполнен с возможностью принятия (830) решения о режиме касательно того, использовать ли первый режим или второй режим, в зависимости от доступного битрейта.
При этом аудиокодер выполнен с возможностью принятия (830) решения о режиме касательно того, использовать ли первый режим или второй режим, в зависимости от количества спектральных значений или групп спектральных значений, которые содержат, в дополнение к одному или нескольким старшим значащим битам, кодированным на этапе кодирования старших значащих битов, один или несколько младших значащих битов, кодирование которых может быть выборочно пропущено в зависимости от потребности в битах и бюджета битов.
При этом аудиокодер выполнен с возможностью включения флага битового потока в кодированную аудиоинформацию, указывающего, работает ли аудиокодер в первом режиме или во втором режиме.
При этом аудиокодер выполнен с возможностью в первом режиме кодирования (860) промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением, в непрерывную битовую последовательность, и
при этом аудиокодер выполнен с возможностью во втором режиме кодирования (892) промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младшего значащего бита, ассоциированного с заданным спектральным значением (882, 898), в отдельные битовые последовательности или в отдельных, не следующих друг за другом битовых местоположениях битовой последовательности.
При этом аудиокодер выполнен с возможностью кодирования (864), при работе в первом режиме, информации о знаке, ассоциированной со спектральным значением, в битовой последовательности, которая ассоциирована с промежуточными битами, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и младших значащих битов, и
при этом аудиокодер выполнен с возможностью выборочного кодирования, при работе во втором режиме, информации о знаке, ассоциированной со спектральным значением, в битовой последовательности, которая ассоциирована с промежуточными битами, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и информации (894) о знаке или в битовой последовательности (lsbs[]), ассоциированной с младшими значащими битами и информацией о знаке (882, 898) так, что информация о знаке для спектральных значений, которые отклоняются от нуля только на значение младшего значащего бита, кодируются в битовой последовательности, ассоциированной с младшими значащими битами и информацией о знаке.
q
В пятой реализации настоящего изобретения обеспечен аудиокодер (300; 400; 500; 600) для предоставления кодированной аудиоинформации (312; 412; 512; 612) на основе входной аудиоинформации (310; 410; 510; 610), при этом аудиокодер выполнен с возможностью получения (620, 630, 640, 650, 660) спектральных значений (330; 662; X[n]), представляющих собой аудиоконтент входной аудиоинформации, и
при этом аудиокодер выполнен с возможностью кодирования (670; 800) по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию (350, 450, 550, 672; sym, lsbs[]), представляющую собой спектральные значения;
q
при этом аудиокодер выполнен с возможностью получения (810, 814, 818, 822) информации об усилении, которая определяет шаги квантования для квантования спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений (330; 662; X[n]);
при этом аудиокодер выполнен с возможностью кодирования (878, 886, 890; 1000a, 1020a, 1040a-1040d) одного или нескольких старших значащих битов с использованием соответствующих кодов (sym) символа для множества спектральных значений (Xq[0] … Xq[lastnz-1]) с использованием арифметического кодирования, и кодирования одного или нескольких старших значащих битов для одного или нескольких спектральных значений,
при этом соответствующий код (sym) символа представляет собой один или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений,
при этом аудиокодер выполнен с возможностью кодирования (882; 898; 1010a-1010e, 1011a-1011e) одного или нескольких младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от доступного бюджета битов,
так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов; и
при этом аудиокодер выполнен с возможностью предоставления кодированной аудиоинформации с использованием кодированной информации, представляющей собой спектральные значения.
При этом аудиокодер выполнен с возможностью
получения (810) первой оценки информации об усилении на основании энергии групп спектральных значений,
квантования (814) набора спектральных значений с использованием первой оценки информации об усилении,
вычисления или оценки (818) количества битов, которые требуются для кодирования набора спектральных значений, квантованных с использованием первой оценки информации об усилении или с использованием уточненной информации об усилении, и
принятия (830) решения о том, использовать ли первый режим или второй режим, в зависимости от требуемого количества битов.
При этом аудиокодер выполнен с возможностью переключения между
- первым режимом, при котором кодирование ненулевых спектральных значений в диапазоне более высоких частот пропускается в случае, когда доступный бюджет битов использован кодированными спектральными значениями в диапазоне более низких частот, и при котором младшие значащие биты кодируются для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом, при котором кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты; и
при этом аудиокодер выполнен с возможностью принятия решения о том, использовать ли первый режим или второй режим, в зависимости от требуемого количества битов и в зависимости от критерия, который указывает, сколько спектральных значений содержат больше битов, чем один или несколько старших значащих битов.
Аудиокодер
- первым режимом, при котором кодирование ненулевых спектральных значений в диапазоне более высоких частот пропускается в случае, когда доступный бюджет битов использован кодированными спектральными значениями в диапазоне более низких частот, и при котором младшие значащие биты кодируются для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом, при котором кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты; и
при этом аудиокодер выполнен с возможностью принятия решения о том, использовать ли первый режим или второй режим, в зависимости от требуемого количества битов и в зависимости от битрейта так, что второй режим выбирается, если битрейт больше или равен пороговому битрейту и, если вычисленное или оцененное количество битов, требуемых для кодирования набора спектральных значений, выше бюджета битов.
В аудиокодере арифметическое кодирование выполнено с возможностью определения битовых позиций одного или нескольких старших значащих битов, и включения в арифметически кодированное представление информации, описывающей битовые позиции.
При этом аудиокодер выполнен с возможностью отображения по меньшей мере двух старших значащих битов по меньшей мере одного спектрального значения в одном символе арифметически кодированного представления, которое представляет собой по меньшей мере два старших значащих бита по меньшей мере одного спектрального значения.
При этом аудиокодер выполнен с возможностью кодирования для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами.
При этом аудиокодер выполнен с возможностью кодирования, на первой фазе кодирования,
- одного или нескольких старших значащих битов на спектральное значение, и
- для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов и младший значащий бит, одного или нескольких промежуточных битов, битовые позиции которых находятся между младшим значащим битом и одним или несколькими старшими значащими битами, и
- для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и для которых один или несколько старших значащих битов и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, знаков; и
при этом аудиокодер выполнен с возможностью выборочного пропуска, на первой фазе кодирования, кодирования знака для спектральных значений, для которых одно или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и
при этом аудиокодер выполнен с возможностью выборочного кодирования, на второй фазе кодирования, которая следует за первой фазой кодирования, информации о знаке для спектральных значений, для которых одно или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых информация о младшем значащем бите указывает ненулевое значение.
При этом аудиокодер выполнен с возможностью включения информации о знаке в кодированное аудиопредставление только для спектральных значений, которые отличаются от нуля только на младший значащий бит, если фактически кодируется младший значащий бит таких спектральных значений.
При этом аудиокодер выполнен с возможностью последовательного предоставления последующих битов битовой последовательности информации о младшем значащем бите для того, чтобы кодировать значения младшего значащего бита, ассоциированные со спектральными значениями.
При этом аудиокодер выполнен с возможностью предоставления одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых одно или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают ненулевое значение, при этом использованный один бит битовой последовательности информации о младшем значащем бите используется для того, чтобы кодировать значение младшего значащего бита; и
при этом аудиокодер выполнен с возможностью предоставления одного бита битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых одно или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых предоставленный один бит битовой последовательности информации о младшем значащем бите подтверждает нулевое значение; и
при этом аудиокодер выполнен с возможностью предоставления двух последующих битов битовой последовательности информации о младшем значащем бите для соответствующих спектральных значений, для которых одно или несколько старших значащих значений и любые промежуточные биты, при условии, что промежуточные биты присутствуют, указывают нулевое значение, и для которых первый из предоставленных битов битовой последовательности информации о младшем значащем бите указывает отклонение от нулевого значения на значение младшего значащего бита, при этом второй из предоставленных битов битовой последовательности информации о младшем значащем бите кодирует знак соответствующего спектрального значения.
При этом аудиокодер выполнен с возможностью кодирования младших значащих битов, начиная с младшего значащего бита, ассоциированного со спектральным значением самой низкой частоты, и продолжая в направлении спектральных значений, ассоциированных со все более высокими частотами,
так, что кодированная информация для уточнения спектральных значений посредством информации о младшем значащем бите предоставляется в диапазоне от спектрального значения самой низкой частоты вплоть до спектрального значения, для которого предоставляется последняя информация о младшем значащем бите, и
так, что кодированная информация для уточнения спектральных значений посредством информации о младшем значащем бите не предоставляется для спектральных значений с ассоциированными частотами выше частоты, ассоциированной со спектральным значением, для которого предоставляется последняя информация о младшем значащем бите.
При этом аудиокодер выполнен с возможностью переключения между
- первым режимом, при котором кодирование ненулевых спектральных значений в диапазоне более высоких частот пропускается в случае, когда доступный бюджет битов использован кодированными спектральными значениями в диапазоне более низких частот, и при котором младшие значащие биты кодируются для всех спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом, при котором кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты.
При этом аудиокодер выполнен с возможностью предоставления флага битового потока, который включается в кодированную аудиоинформацию для того, чтобы указать, работает ли аудиокодер в первом режиме или во втором режиме.
При этом аудиокодер выполнен с возможностью совместного кодирования одного или нескольких старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений с использованием соответствующих кодов символа,
при этом соответствующий код символа представляет собой один или несколько старших значащих битов на спектральное значение для по меньшей мере двух спектральных значений.
При этом аудиокодер выполнен с возможностью определения, при работе во втором режиме, ненулевого спектрального значения фактической самой высокой частоты и кодирования по меньшей мере одного или нескольких старших значащих битов всех ненулевых спектральных значений или всех ненулевых групп спектральных значений.
При этом аудиокодер выполнен с возможностью кодирования, при работе во втором режиме, всех битов, за исключением младшего значащего бита, для всех ненулевых спектральных значений, и
при этом аудиокодер выполнен с возможностью кодирования младших значащих битов для спектральных значений до тех пор, пока не исчерпывается бюджет битов.
При этом аудиокодер выполнен с возможностью получения информации об усилении, которая определяет шаги квантования для квантования спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений.
В шестой реализации настоящего изобретения обеспечен способ для предоставления декодированной аудиоинформации (112; 212; 712), на основе кодированной аудиоинформации (110; 210: 710),
при этом способ содержит этап, на котором получают декодированные спектральные значения (132; 232; 732; Xq[n], Xq[n+1]) на основе кодированной информации (130; 230), представляющей собой спектральные значения,
при этом способ содержит этап, на котором совместно декодируют (950; 1110a-1110g) два или несколько старших значащих битов на спектральное значение, на основе соответствующих кодов (sym) символа для набора спектральных значений, с использованием арифметического декодирования,
при этом соответствующий код (sym) символа представляет собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений,
при этом способ содержит этап, на котором декодируют (972; 1140a-1141j) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от того, сколько доступно информации о младшем значащем бите,
так, что декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов; и
при этом способ содержит этап, на котором предоставляют декодированную аудиоинформацию с использованием спектральных значений.
В седьмой реализации настоящего изобретения обеспечен способ для предоставления декодированной аудиоинформации (112; 212; 712), на основе кодированной аудиоинформации (110; 210; 710),
при этом способ содержит этап, на котором получают декодированные спектральные значения (132; 232; 732; Xq[n], Xq[n+1]) на основе кодированной информации (130; 230), представляющей собой спектральные значения,
q
q
при этом способ содержит этапы, на которых декодируют (950; 1110a-1110g) один или нескольких старших значащих битов на основе соответствующих кодов (sym) символа для множества спектральных значений (X[0] … X[lastnz-1]), и
декодируют один или несколько младших значащих битов для одного или нескольких спектральных значений,
при этом способ содержит этап, на котором выбирают между
- первым режимом (930, 934, 938, 942, 944, 948), при котором декодирование спектральных значений в диапазоне более высоких частот пропускается в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются (934) для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом (950, 954, 958, 962, 968, 972), при котором декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых был декодирован один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты; и
при этом способ содержит этап, на котором предоставляют декодированную аудиоинформацию с использованием спектральных значений.
В восьмой реализации настоящего изобретения обеспечен способ для предоставления кодированной аудиоинформации (312; 412; 512; 612) на основе входной аудиоинформации (310; 410; 510; 610),
q
при этом способ содержит этап, на котором получают (620, 630, 640, 650, 660) спектральные значения (330; 662; X[n]), представляющие собой аудиоконтент входной аудиоинформации, и
при этом способ содержит этап, на котором кодируют (670; 800) по меньшей мере множества спектральных значений для того, чтобы получить кодированную информацию (350, 450, 550, 672; sym, lsbs[]), представляющую собой спектральные значения;
при этом способ содержит этап, на котором совместно кодируют (878, 886, 890; 1000a, 1020a, 1040a-1040d) два или несколько старших значащих битов на спектральное значение, чтобы получить соответствующие коды (sym) символа для набора спектральных значений (Xq[0] … Xq[lastnz-1]) с использованием арифметического кодирования,
при этом соответствующий код (sym) символа представляет собой два или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений,
при этом способ содержит этап, на котором кодируют (882; 898; 1010a-1010e, 1011a-1011e) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от доступного бюджета битов,
так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется два или несколько старших значащих битов, и которые содержат больше битов, чем два или несколько старших значащих битов; и
при этом способ содержит этап, на котором представляют кодированную аудиоинформацию с использованием кодированной информации, представляющей собой спектральные значения.
В девятой реализации настоящего изобретения обеспечен способ для предоставления кодированной аудиоинформации (312; 412; 512; 612) на основе входной аудиоинформации (310; 410; 510; 610),
при этом способ содержит этап, на котором получают (620, 630, 640, 650, 660) спектральные значения, представляющие собой аудиоконтент входной аудиоинформации, и
при этом способ содержит этап, на котором кодируют (670; 800) по меньшей мере множество спектральных значений для того, чтобы получить кодированную информацию (350, 450, 550, 672; sym, lsbs[]), представляющую собой спектральные значения;
при этом способ содержит этапы, на которых кодируют (882; 898; 1010a-1010e, 1011a-1011e) один или несколько старших значащих битов для получения соответствующих кодов символа для множества спектральных значений (Xq[0] … Xq[lastnz-1]), и кодируют один или несколько младших значащих битов для одного или нескольких спектральных значений,
при этом соответствующий код (sym) символа представляет собой одно или несколько значений старшего значащего бита для одного или нескольких спектральных значений (Xq[n], Xq[n+1]),
при этом способ содержит этап, на котором выбирают между
- первым режимом (840, 844, 848, 852, 856, 860, 864, 868, 869), при котором кодирование ненулевых спектральных значений в области более высоких частот пропускается в случае, когда доступный бюджет битов использован посредством кодирования спектральных значений в диапазоне более низких частот, и при котором младшие значащие биты кодируются (860) для всех спектральных значений, для которых кодируется (848, 852, 856) один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, и
- вторым режимом (870, 874, 878, 882, 886, 890, 892, 894, 896, 898), при котором кодируется (898) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты;
при этом способ содержит этап, на котором предоставляют кодированную аудиоинформацию с использованием кодированной информации, представляющей собой спектральные значения.
В десятой реализации настоящего изобретения обеспечен способ для предоставления кодированной аудиоинформации (312; 412; 512; 612) на основе входной аудиоинформации (310; 410; 510; 610),
q
при этом способ содержит этап, на котором получают (620, 630, 640, 650, 660) спектральные значения (330; 662; X[n]), представляющие собой аудиоконтент входной аудиоинформации, и
при этом способ содержит этап, на котором кодируют (670; 800) по меньшей мере множество спектральных значений для того, чтобы получить кодированную информацию (350, 450, 550, 672; sym, lsbs[]), представляющую собой спектральные значения;
при этом способ содержит этап, на котором получают (810, 814, 818, 822) информацию об усилении, которая определяет шаги квантования для квантования спектральных значений, и которая определяет потребность в битах для кодирования квантованных спектральных значений;
при этом способ содержит этапы, на которых кодируют (878, 886, 890; 1000a, 1020a, 1040a-1040d) один или несколько старших значащих битов с использованием соответствующих кодов (sym) символа для множества спектральных значений (Xq[0] … Xq[lastnz-1]) с использованием арифметического кодирования, и кодируют один или несколько старших значащих битов для одного или нескольких спектральных значений,
при этом соответствующий код (sym) символа представляет собой один или несколько старших значащих битов на спектральное значение для одного или нескольких спектральных значений,
при этом способ содержит этап, на котором кодируют (882; 898; 1010a-1010e, 1011a-1011e) один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, в зависимости от доступного бюджета битов,
так, что кодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не кодируются для одного или нескольких других спектральных значений, для которых кодируется один или несколько старших значащих битов, и которые содержат больше битов, чем один или несколько старших значащих битов; и
при этом способ содержит этап, на котором предоставляют кодированную аудиоинформацию с использованием кодированной информации, представляющей собой спектральные значения.
В одиннадцатой реализации настоящего изобретения обеспечена компьютерная программа для выполнения способа по одной из вышеуказанных реализаций, когда компьютерная программа выполняется на компьютере.
В двенадцатой реализации настоящего изобретения обеспечено кодированное аудиопредставление, содержащее:
кодированную информацию (130; 230), представляющую собой спектральные значения; и
флаг, указывающий, должен ли аудиодекодер работать
- в первом режиме (930, 934, 938, 942, 944, 948), при котором декодирование спектральных значений в диапазоне более высоких частот пропускается в ответ на сигнализацию от кодера, и при котором младшие значащие биты декодируются (934) для всех спектральных значений, для которых декодируется один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты, или
- во втором режиме (950, 954, 958, 962, 968, 972), при котором декодируется один или несколько младших значащих битов, ассоциированных с одним или несколькими спектральными значениями, тогда как младшие значащие биты не декодируются для одного или нескольких других спектральных значений, для которых был декодирован один или несколько старших значащих битов, и которые содержат больше битов, чем старшие значащие биты.