Канальное кодирование на основе комплексного преобразования с частотным кодированием с расширенной полосой
Иллюстрации
Показать всеИзобретение относится к способам кодирования и декодирования многоканального звука. Техническим результатом является повышение эффективности обработки оцифрованного звука с одновременной поддержкой его качества. Указанный технический результат достигается тем, что в способе кодирования данных многоканального звука принимают данные многоканального звука, содержащие группу из множества исходных каналов, выполняют кодирование с канальным расширением в отношении этих данных многоканального звука: формируют комбинированный канал из упомянутой группы из множества исходных каналов, кодируют комбинированный канал и определяют множество параметров для представления отдельных исходных каналов упомянутой группы в качестве модифицированных версий закодированного комбинированного канала, содержащее параметр, представляющий отношение мнимого-к-действительному кросс-корреляции между этими отдельными исходными каналами. После этого выполняют кодирование с частотным расширением в отношении данных многоканального звука: разделяют полосы частот в данных многоканального звука на группу основной полосы частот и группу расширенной полосы частот и кодируют звуковые коэффициенты в группе расширенной полосы частот на основе звуковых коэффициентов в группе основной полосы частот. 4 н. и 16 з.п. ф-лы, 42 ил., 1 табл.
Реферат
Предшествующий уровень техники
Инженеры используют множество способов для эффективной обработки оцифрованного звука с одновременной поддержкой качества оцифрованного звука. Для понимания этих способов полезно понимать, как представляется и обрабатывается в компьютере звуковая информация.
I. Представление звуковой информации в компьютере
Компьютер обрабатывает звуковую информацию как последовательность чисел, представляющую звуковую информацию. Например, одно число может представлять звуковой сэмпл, который является значением амплитуды в конкретное время. На качество звуковой информации влияют несколько факторов, включающих в себя глубину сэмпла, частоту дискретизации и режим канала.
Глубина (или точность) сэмпла указывает на диапазон чисел, используемых для представления сэмпла. Чем больше значений, возможных для сэмпла, тем выше качество, потому что число может фиксировать меньшие изменения амплитуды. Например, для 8-битового сэмпла существует 256 возможных значений, в то время как для 16-битового сэмпла существует 65536 возможных значений. На качество также влияет частота дискретизации (обычно измеряемая количеством сэмплов в секунду). Чем выше частота дискретизации, тем выше качество, потому что может быть представлено больше частот звука. Некоторыми общепринятыми частотами дискретизации являются 8000, 11025, 22050, 32000, 44100, 48000 и 96000 сэмплов/секунда.
Моно и стерео являются двумя общепринятыми режимами канала для звука. В режиме моно, звуковая информация присутствует в одном канале. В режиме стерео, звуковая информация присутствует в двух каналах, обычно обозначается как левый и правый каналы. Также возможны другие режимы с большим количеством каналов, например, объемный 5.1-канальный, 7.1-канальный или 9.1-канальный звук канала ("1" указывает на сабвуфер или канал с низкочастотными эффектами). В таблице 1 представлены несколько форматов звука с различными уровнями качества и соответствующими затратами по общему расходу битов (битрейту).
Таблица 1 | ||||
Битрейты для звуковой информации различного качества | ||||
Глубина сэмпла(биты/сэмпл) | Частота дискретизации(сэмплы/секунда) | Режим | Общий битрейт(биты/секунда) | |
Интернет-телефония | 8 | 8 000 | моно | 64 000 |
Телефон | 8 | 11 025 | моно | 88 200 |
CD звук | 16 | 44 100 | стерео | 1 411 200 |
У объемного звука, как правило, еще более высокий общий битрейт.
Как видно из таблицы 1, ценой высококачественной звуковой информации является высокий битрейт. На высококачественную звуковую информацию расходуется большая часть запоминающего устройства компьютера и пропускной способности. Однако компании и потребители все больше и больше зависят от компьютеров при создании, распространении и воспроизведении высококачественного звукового контента.
II. Обработка звуковой информации в компьютере
Многие компьютеры и компьютерные сети испытывают недостаток в ресурсах для обработки необработанного оцифрованного звука. При сжатии (также называемом кодированием) затраты на хранение и передачу звуковой информации уменьшаются за счет преобразования информации в представление с меньшим битрейтом. При распаковке (также называемой декодированием) из сжатого представления извлекается восстановленная версия исходной информации. Системы кодера и декодера включают в себя определенные версии кодера и декодера звуковых файлов Windows ("WMA") и кодера и декодера WMA Pro корпорации "Майкрософт".
Сжатие может быть без потерь (при котором качество не страдает) или с потерями (при котором страдает качество, но уменьшение битрейта от последующего сжатия без потерь является более существенным). Например, сжатие с потерями используется для аппроксимации исходной звуковой информации, и затем эту аппроксимацию сжимают без потерь. Способы сжатия без потерь включают в себя неравномерное кодирование, кодирование run-level, кодирование переменной длины и арифметическое кодирование. Соответствующие способы распаковки (также называемые методиками энтропийного декодирования) включают в себя неравномерное декодирование, декодирование run-level, декодирование переменной длины и арифметическое декодирование.
Одна цель звукового сжатия состоит в том, чтобы в цифровой форме представить звуковые сигналы, чтобы обеспечить максимальное воспринимаемое качество сигнала наименее возможным количеством битов. С этой целью различные современные системы кодирования звука используют множество различных способов сжатия с потерями. Эти способы сжатия с потерями, как правило, включают в себя перцепционное моделирование/взвешивание и квантование после частотного преобразования. Соответствующая распаковка включает в себя обратное квантование, обратное взвешивание и обратное частотное преобразование.
Посредством методик частотного преобразования данные преобразуются в представление, облегчающее отделение важной, с точки зрения восприятия, информации от незначительной, с точки зрения восприятия, информации. Менее важная информация может далее быть подвергнута сжатию с большими потерями, в то время как более важную информацию сохраняют для обеспечения лучшего воспринимаемого качества заданного битрейта. При частотном преобразовании, как правило, принимаются звуковые сэмплы, которые преобразуются из временной области в данные частотной области, иногда называемые частотными коэффициентами или спектральными коэффициентами.
Перцепционное моделирование включает в себя обработку звуковых данных согласно модели слуховой системы человека для улучшения воспринимаемого качества восстановленного звукового сигнала для заданного битрейта. Например, в слуховой модели, как правило, учитывают диапазон частот, слышимый человеком, и критические полосы частот. С использованием результатов перцепционного моделирования кодер придает форму искажению (например, шум квантования) в звуковых данных с целью минимизации слышимости искажения в заданном битрейте.
Посредством квантования диапазоны входных значений отображаются в одиночные значения, что привносит необратимую потерю информации, но также обеспечивает возможность кодеру отрегулировать качество и битрейт выходных данных. Иногда кодер выполняет квантование вместе с контроллером скорости, который иффектирует квантование для регулировки битрейта и/или качества. Существуют различные виды квантования, включая адаптивное и неадаптивное, скалярное и векторное, равномерное и неравномерное. Перцепционное взвешивание можно рассматривать как вид неравномерного квантования. Посредством обратного квантования, и обратного взвешивания данных восстанавливают аппроксимацию данных исходных частотных коэффициентов из данных взвешенных, квантованных частотных коэффициентов. Далее посредством обратного частотного преобразования данные восстановленных частотных коэффициентов преобразуют в восстановленные звуковые сэмплы временной области.
Совместное кодирование звуковых каналов включает в себя кодирование объединенной информации из нескольких каналов для уменьшения битрейта. Например, кодирование с выделением суммарного и разностного каналов (также называемое M/S-кодированием или суммарно-разностным кодированием) включает в себя выполнение в кодере матричной операции над левым и правым стереоканалами и отправки результирующих каналов "суммарного" и "разностного" (нормированных каналов суммы и разности) в декодер. Декодер восстанавливает фактические физические каналы из суммарного и разностного каналов. M/S-кодирование является кодированием без потерь, обеспечивающим возможность полного восстановления, если в процессе кодирования не используются никакие другие способы с потерями (например, квантование).
Стереоинтенсивное кодирование является примером способа совместного кодирования с потерями, который может использоваться при низких битрейтах. Стереоинтенсивное кодирование включает в себя суммирование в кодере левого и правого каналов и последующее масштабирование информации в декодере, исходя из канала суммы, во время восстановления левого и правого каналов. Как правило, стереоинтенсивное кодирование выполняется на верхних частотах, где искажения, привнесенные этим способом с потерями, менее заметны.
Учитывая важность сжатия и распаковки для мультимедийной обработки, неудивительно, что сжатие и распаковка являются вполне разработанными областями. Каковы бы ни были преимущества предшествующих способов и систем, однако у них нет разнообразных преимуществ способов и систем, описанных в этом документе.
Сущность изобретения
В этом кратком изложении сущности изобретения в упрощенном виде представлен выбор концепций, которые описаны ниже в подробном описании. Нет намерения в этом кратком изложении сущности изобретения идентифицировать основные или существенные признаки заявленного изобретения, и при этом нет намерения ограничивать объем заявленного изобретения.
Вкратце, подробное описание нацелено на принципы кодирования и декодирования многоканального звука. Например, аудиокодер использует несколько способов для улучшения качества и/или битрейта многоканального звука. Это улучшает общую практику прослушивания и делает компьютерные системы более привлекательной платформой для создания, распространения и воспроизведения высококачественного многоканального звука. Принципы кодирования и декодирования, описанные в этом документе, включают в себя разнообразные способы и инструментальные средства, которые могут быть использованы в комбинации или независимо.
Например, аудиокодер принимает данные многоканального звука, причем данные многоканального звука содержат группу из множества исходных каналов. Кодер выполняет кодирование с канальным расширением в отношении данных многоканального звука. Кодирование с канальным расширением содержит кодирование комбинированного канала для упомянутой группы и определение множества параметров для представления отдельных исходных каналов данной группы в качестве модифицированных версий закодированного комбинированного канала. Кодер также выполняет кодирование с частотным расширением в отношении данных многоканального звука. Кодирование с частотным расширением может содержать, например, разбиение полос частот в данных многоканального звука на группу основной полосы частот и группу расширенной полосы частот и кодирование звуковых коэффициентов в группе расширенной полосы частот на основе звуковых коэффициентов в группе основной полосы частот.
В качестве другого примера, аудиодекодер принимает закодированные данные многоканального звука, содержащие данные кодирования с канальным расширением и данные кодирования с частотным расширением, декодер восстанавливает множество звуковых каналов с использованием данных кодирования с канальным расширением и данных кодирования с частотным расширением. Данные кодирования с канальным расширением содержат комбинированный канал для упомянутого множества звуковых каналов и множество параметров для представления отдельных каналов упомянутого множества звуковых каналов в качестве модифицированных версий комбинированного канала.
В качестве другого примера, аудиодекодер принимает данные многоканального звука и выполняет обратное многоканальное преобразование, обратное основное преобразование частотной области во временную область, обработку с частотным расширением и обработку с канальным расширением в отношении принятых данных многоканального звука. Декодер может выполнять декодирование, которое соответствует кодированию, выполненному в кодере, и/или дополнительные этапы, такие как прямое комплексное преобразование принятых данных, и может выполнять эти этапы в разном порядке.
Для нескольких из аспектов, описанных в этом документе для аудиокодера, аудиодекодер выполняет соответствующую обработку и декодирование.
Предыдущие и другие объекты, признаки и преимущества станут более очевидны из следующего подробного описания, которое дается согласно прилагаемым чертежам.
Перечень фигур чертежей
Фиг.1 - блок-схема обобщенного рабочего округления, с которым могут быть реализованы разнообразные описанные варианты осуществления.
Фиг.2, фиг.3, фиг.4 и фиг.5 - блок-схемы обобщенных кодеров и/или декодеров, с которыми могут быть реализованы разнообразные описанные варианты осуществления.
Фиг.6 - схема, на которой изображена иллюстративная конфигурация сегментов.
Фиг.7 - блок-схема последовательности операций, иллюстрирующая обобщенный способ многоканальной предварительной обработки (предобработки).
Фиг.8 - блок-схема последовательности операций, иллюстрирующая обобщенный способ многоканальной постобработки.
Фиг.9 - блок-схема последовательности операций, иллюстрирующая способ получения комплексных масштабных множителей для комбинированных каналов при кодировании с канальным расширением.
Фиг.10 - блок-схема последовательности операций, иллюстрирующая способ использования комплексных масштабных множителей при декодировании с канальным расширением.
Фиг.11 - схема, иллюстрирующая масштабирование коэффициентов комбинированного канала при восстановлении канала.
Фиг.12 - график, иллюстрирующий графическое сравнение фактических отношений мощностей и отношений мощностей, интерполированных из отношений мощностей в опорных точках.
Фиг.13-фиг.33 - уравнения и связанные компоновки матриц, детали тонкости обработки с канальным расширением в некоторых реализациях.
Фиг.34 - блок-схема аспектов кодера, который выполняет кодирование с частотным расширением.
Фиг.35 - блок-схема последовательности операций, представляющая иллюстративный способ кодирования подполос расширенной полосы.
Фиг.36 - блок-схема аспектов декодера, который выполняет декодирование с частотным расширением.
Фиг.37 - блок-схема аспектов кодера, который выполняет кодирование с канальным расширением и кодирование с частотным расширением.
Фиг.38, фиг.39 и фиг.40 - блок-схемы аспектов декодера, который выполняет декодирование с канальным расширением и декодирование с частотным расширением.
Фиг.41 - схема, на которой изображены представления векторов смещения для двух звуковых блоков.
Фиг.42 - схема, на которой изображена конфигурация звуковых блоков, имеющих опорные точки для интерполяции масштабных параметров.
Подробное описание
Описаны разнообразные способы и инструментальные средства для представления, кодирования и декодирования звуковой информации. Эти способы и инструментальные средства способствуют созданию, распространению и воспроизведению высококачественного звукового контента, даже при очень низких скоростях передачи битов.
Разнообразные способы и инструментальные средства, описанные в этом документе, можно использовать независимо. Некоторые из способов и инструментальных средств могут быть использованы в комбинации (например, на разных фазах процесса комбинированного кодирования и/или декодирования).
Ниже описаны разные способы согласно блок-схемам действий по обработке. Разные действия по обработке, представленные в блок-схемах, могут быть объединены в меньшее количество действий или разделены на большее количество действий. Для простоты отношение между действиями, представленными в конкретной блок-схеме, и действиями, описанными в другом месте, часто не показывается. Во многих случаях действия в блок-схеме могут быть переупорядочены.
Большая часть подробного описания относится к представлению, кодированию и декодированию звуковой информации. Многие способы и инструментальные средства, описанные в этом документе, для представления кодирования и декодирования звуковой информации также могут быть применены к видеоинформации, информации неподвижного изображения или другой мультимедийной информации, отправляемой по одному или нескольким каналам.
I. Вычислительное окружение
На фиг.1 изображен обобщенный пример подходящего вычислительного окружения 100 вычислений, в котором могут быть реализованы описанные варианты осуществления. Вычислительное окружение 100 не подразумевает каких-либо ограничений относительно объема использования или функциональных возможностей, так как описанные варианты осуществления могут быть реализованы в разнообразных универсальных или специализированных вычислительных окружениях.
Согласно фиг.1, вычислительное окружение 100 включает в себя, по меньшей мере, один процессор 110 и память 120. На фиг.1 эта самая базовая конфигурации 130 обведена пунктирной линией. Процессор 110 исполняет машиноисполнимые инструкции и может быть реальным или виртуальным процессором. В многопроцессорной системе машиноисполняемые инструкции исполняют несколько процессоров для увеличения вычислительной мощности. Память 120 может быть энергозависимой памятью (например, регистры, кэш, RAM), энергонезависимой памятью (например, ROM, EEPROM, флэш-память) или некоторой комбинацией их обоих. В памяти 120 хранится программное обеспечение 180, реализующее один или несколько способов и/или систем обработки звука согласно одному или нескольким описанным вариантам осуществления.
У вычислительного окружения могут быть дополнительные признаки. Например, вычислительное окружение 100 включает в себя запоминающее устройство 140, одно или несколько устройств 150 ввода, одно или несколько устройств 160 вывода и одно или несколько соединений 170 связи. Механизм межкомпонентного соединения (не изображен), например, шина, контроллер или сеть, соединяет компоненты среды 100 вычислений. Как правило, программное обеспечение операционной системы (не изображено) обеспечивает рабочую среду для программного обеспечения, выполняющегося в среде 100 вычислений, и координирует действия компонентов среды 100 вычислений.
Запоминающее устройство 140 может быть сменным или несъемным и включает в себя магнитные диски, магнитные ленты или кассеты, компакт-диски (CD), универсальные цифровые диски (DVD) или любой другой носитель информации, который может быть использован для хранения информации, и к которому можно осуществить доступ в вычислительном окружении 100. В запоминающем устройстве 140 хранятся инструкции для программного обеспечения 180.
Устройство(а) 150 ввода может быть сенсорным устройством ввода, например, клавиатурой, мышью, пером, сенсорным экраном или трекболом, голосовым устройством ввода, устройством сканирования или другим устройством, которое обеспечивает ввод в вычислительное окружение 100. Для звука или видео устройством(ами) 150 ввода может быть микрофон, звуковой адаптер, видеоадаптер, адаптер ТВ-тюнера или сходное устройство, которое принимает ввод видеоданных или звуковой информации в аналоговом или цифровом представлении, либо CD или DVD, с которого считываются видео или звуковые сэмплы в вычислительное окружение. Устройство(а) 160 вывода может быть дисплеем, принтером, динамиком, устройством записи на CD/DVD, сетевым адаптером или другим устройством, которое обеспечивает вывод из вычислительного окружения 100.
Соединение(я) 170 связи обеспечивает возможность связи через среду связи с одним или несколькими другими вычислительными объектами. Среда связи передает информацию, например, машиноисполнимые инструкции, звуковую или видеоинформацию или другие данные в сигнале данных. Модулированный сигнал данных является сигналом, одна или несколько характеристик которого установлена или изменяется таким образом, чтобы закодировать в этом сигнале информацию. Например, среды связи включают в себя проводные или беспроводные методики, реализованные с помощью электрической, оптической, радиочастотной, инфракрасной, акустической или другой среды.
Варианты осуществления могут быть описаны в общем контексте машиночитаемых носителей информации. Машиночитаемыми носителями информации являются любые доступные носители информации, к которым можно осуществить доступ в вычислительном окружении. Например, в случае вычислительного окружения 100, машиночитаемые носители информации включают в себя память 120, запоминающее устройство 140, среды связи и комбинации любых вышеупомянутых сред и носителей.
Варианты осуществления могут быть описаны в общем контексте машиноисполняемых инструкций, например, включенных в программные модули, исполняемые в вычислительном окружении на целевом реальном или виртуальном процессоре. В общем, программные модули включают в себя процедуры, программы, библиотеки, объектные файлы, классы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные типы данных. Функциональные возможности программных модулей могут быть объединены или распределены между программными модулями, как требуется в разнообразных вариантах осуществления. Исполнимые компьютером инструкции для программных модулей могут исполняться в локальном или распределенном вычислительном окружении.
Для представления, в подробном описании термины типа "определять", "принимать" и "выполнять" используются для описания компьютерных операций в вычислительном окружении. Эти термины являются обобщениями высокого уровня для операций, выполняемых компьютером, и их не следует путать с действиями, совершаемыми человеком. Фактические компьютерные операции, соответствующие этим терминам, меняются в зависимости от реализации.
II. Иллюстративные кодеры и декодеры
На фиг.2 изображен первый кодер 200 звука, в котором могут быть реализованы один или несколько описанных вариантов осуществления. Кодер 200 является основанным на преобразовании, перцепционным аудиокодером 200. На фиг.3 изображен соответствующий аудиодекодер 300.
На фиг.4 изображен второй аудиокодер 400, в котором могут быть реализованы один или несколько описанных вариантов осуществления. Кодер 400 также является основанным на преобразовании, перцепционным аудиокодером, но кодер 400 включает в себя дополнительные модули, например, модули для обработки многоканального звука. На фиг.5 изображен соответствующий аудиодекодер 500.
Хотя системы, изображенные на фиг.2 - фиг.5, являются обобщенными, у каждой существуют характеристики, имеющиеся в реальных системах. В любом случае, отношения, представленные между модулями кодеров и декодеров, указывают на потоки информации в кодерах и декодерах; для простоты другие отношения не изображены. В зависимости от реализации и типа заданного сжатия, модули кодера или декодера могут быть добавлены, не включены, разделены на несколько модулей, комбинированы с другими модулями и/или заменены подобными модулями. В альтернативных вариантах осуществления кодеры или декодеры с различными модулями и/или другими конфигурациями обрабатывают звуковые данные или некоторые другие типы данных согласно одному или нескольким описанным вариантам осуществления.
A. Первый аудиокодер
Кодер 200 принимает временную последовательность входных звуковых сэмплов 205 с некоторой скоростью и глубиной дискретизации. Входные звуковые сэмплы 205 являются сэмплами для многоканального звука (например, стерео) или монозвука. Кодер 200 сжимает звуковые сэмплы 205 и мультиплексирует информацию, сгенерированную разнообразными модулями кодера 200, для вывода битового потока 295 в формате сжатия, например, формате WMA, контейнерном формате, например, расширенном потоковом формате ("ASF"), или другом формате сжатия, или контейнерном формате.
Частотный преобразователь 210 принимает звуковые сэмплы 205 и преобразует их в данные частотной (или спектральной) области. Например, частотный преобразователь 210 разбивает звуковые сэмплы 205 кадров на блоки подкадров, которые могут быть переменной длины, для обеспечения переменного разрешения по времени. Блоки могут перекрываться для уменьшения воспринимаемых нарушений непрерывности между блоками, которые иначе могут быть привнесены последующим квантованием. Частотный преобразователь 210 применяет к блокам меняющееся во времени модулированное преобразование с перекрытием ("MLT"), модулированное дискретное компусное преобразование (DCT) ("MDCT"), некоторые другие разнообразные MLT или DCT или некоторые другие виды модулированного или немодулированного, с перекрытием или без перекрытия частотного преобразования, или использует подполосное кодирование или вейвлет-кодирование. Частотный преобразователь 210 выводит блоки данных спектральных коэффициентов и выводит дополнительную информацию, например, размеры блоков, в мультиплексор ("MUX") 280.
Для данных многоканального звука средство многоканального преобразования 220 может преобразовывать несколько исходных, независимо закодированных каналов в совместно закодированные каналы. Или, многоканальный преобразователь 220 может передавать левый и правый каналы как независимо закодированные каналы. Устройство многоканального преобразования 220 генерирует дополнительную информацию для MUX 280 с указанием используемого режима канала. Кодер 200 может применять многоканальную повторную матричную обработку к блоку звуковых данных после многоканального преобразования.
Средство 230 перцепционного моделирования моделирует свойства слуховой системы человека для улучшения воспринимаемого качества восстановленного звукового сигнала для заданного битрейта. Средство 230 перцепционного моделирования использует любую из разнообразных слуховых моделей и передает информацию об образце возбуждения или другую информацию в средство 240 взвешивания. Например, в слуховой модели, как правило, учитывают диапазон частот, слышимый человеком, и критические полосы частот (например, Bark-диапазоны). Кроме диапазона частот и критических полос частот, на восприятие может существенно влиять взаимодействие между звуковыми сигналами. Кроме того, слуховая модель может учитывать множество других факторов, касающихся физических или нервных аспектов восприятия человеком звука.
Средство 230 перцепционного моделирования выводит информацию, которую средство 240 взвешивания использует для придания формы шуму в звуковых данных, которая уменьшает слышимость шума. Например, с использованием любой из разнообразных методик средство 240 взвешивания формирует весовые коэффициенты для матриц квантования (иногда называемых масками) на основе принятой информации. Весовые коэффициенты для матрицы квантования включают в себя вес для каждой из нескольких полос квантования в матрице, где полосы квантования являются диапазонами частот частотных коэффициентов. Соответственно, весовые коэффициенты указывают пропорции, при которых ошибка шум/квантование распространяется по полосам квантования, тем самым контролируя спектральное/временное распространение ошибки шум/квантование, с целью минимизации слышимости шума, помещая большее количество шума в полосы частот, где он менее слышим, и наоборот.
Средство 240 взвешивания далее применяет весовые коэффициенты к данным, принятым из средства 220 многоканального преобразования.
Квантователь 250 квантует выходные данные средства 240 взвешивания с генерацией квантованных данных коэффициентов для энтропийного кодера 260 и дополнительной информации, включающей в себя размер шага квантования, для MUX 280. На фиг.2 квантователь 250 является адаптивным, равномерным, скалярным квантователем. Квантователь 250 применяет идентичный размер шага квантования к каждому спектральному коэффициенту, но размер шага самого квантования может изменяться от одной итерации цикла квантования к другой для влияния на битрейт выходных данных энтропийного кодера 260. Другими видами квантования являются неравномерное, векторное квантование и/или неадаптивное квантование.
Энтропийный кодер 260 сжимает без потерь квантованные данные коэффициентов, принятых из квантователя 250, например, посредством выполнения кодирования run-level и векторного кодирования переменной длины. Энтропийный кодер 260 может вычислять количество битов, затраченных на кодирование звуковой информации, и передавать эту информацию в контроллер 270 скорости/качества.
Контроллер 270 работает с квантователем 250 для регулирования битрейта и/или качества выходных данных кодера 200. Контроллер 270 выводит размер шага квантования в квантователь 250 с целью удовлетворения ограничениям по битрейту и качеству.
Кроме того, кодер 200 может применять замену на шум и/или усечение полосы частот к блоку звуковых данных.
MUX 280 мультиплексирует дополнительную информацию, принятую из других модулей аудиокодера 200 вместе с данными, закодированными энтропийным кодированием, которые приняты из энтропийного кодера 260. MUX 280 может включать в себя виртуальный буфер, который хранит битовый поток 295 для вывода его кодером 200.
B. Первый аудиодекодер
Декодер 300 принимает битовый поток 305 сжатой звуковой информации, в том числе данные, закодированные энтропийным кодированием, а также дополнительную информацию, исходя из чего декодер 300 восстанавливает звуковые сэмплы 395.
Демультиплексор ("DEMUX") 310 анализирует информацию в битовом потоке 305 и отправляет информацию в модули декодера 300. DEMUX 310 включает в себя один или несколько буферов для компенсации краткосрочных изменений в битрейте из-за флуктуаций в сложности звука, сетевого дрожания и/или других факторов.
Энтропийный декодер 320 без потерь распаковывает энтропийные коды, принятые из DEMUX 310, с генерацией квантованных данных спектральных коэффициентов. Энтропийный декодер 320, как правило, применяет способы, обратные способам энтропийного кодирования, используемым в кодере.
Обратный квантователь 330 принимает размер шага квантования из DEMUX 310 и принимает квантованные данные спектральных коэффициентов из энтропийного декодера 320. Обратный квантователь 330 применяет размер шага квантования к квантованным данным частотных коэффициентов для частичного восстановления данных частотных коэффициентов или иным образом выполняет обратное квантование.
Из DEMUX 310 генератор 340 шума принимает информацию, указывающую, какие полосы частот в блоке данных заменены на шум, а также любые параметры для формы шума. Генератор 340 шума формирует образцы для указанных полос частот и передает информацию в средство 350 обратного взвешивания.
Средство 350 обратного взвешивания принимает весовые коэффициенты из DEMUX 310, образцы для любых замененных на шум полос частот из генератора 340 шума и частично восстановленные данные частотных коэффициентов из обратного квантователя 330. По мере необходимости, средство 350 обратного взвешивания распаковывает весовые коэффициенты. Средство 350 обратного взвешивания применяет весовые коэффициенты к частично восстановленным данным частотных коэффициентов для полос частот, которые не были заменены на шум. Средство 350 обратного взвешивания далее добавляет в шум образцы, принятые из генератора 340 шума для замененных на шум полос частот.
Средство 360 обратного многоканального преобразования принимает данные восстановленных спектральных коэффициентов из средства 350 обратного взвешивания и информацию о режиме канала из DEMUX 310. Если многоканальный звук находится в независимо закодированных каналах, то средство 360 обратного многоканального преобразования пропускает эти каналы дальше. Если многоканальные данные находятся в совместно закодированных каналах, то средство 360 обратного многоканального преобразования преобразует данные в независимо закодированные каналы.
Средство 370 обратного частотного преобразования принимает данные спектральных коэффициентов, выведенные средством 360 обратного многоканального преобразования, а также дополнительную информацию, например, размеры блока, из DEMUX 310. Средство 370 обратного частотного преобразования применяет преобразование, обратное частотному преобразованию, используемому в кодере, и выводит блоки восстановленных звуковых сэмплов 395.
C. Второй аудиокодер
Согласно фиг.4, кодер 400 принимает временную последовательность входных звуковых сэмплов 405 с некоторой скоростью и глубиной дискретизации. Входные звуковые сэмплы 405 являются сэмплами для многоканального звука (например, стерео, объемного) или монозвука. Кодер 400 сжимает звуковые сэмплы 405 и мультиплексирует информацию, сгенерированную разнообразными модулями кодера 400, для вывода битового потока 495 в формате сжатия, например, формате WMA Pro, контейнерном формате, например, ASF или другом формате сжатия или контейнерном формате.
Кодер 400 выбирает между несколькими способами кодирования для звуковых сэмплов 405. На фиг.4, кодер 400 переключается между смешанным/чистым способом кодирования без потерь и способом кодирования с потерями. Способ кодирования без потерь включает в себя смешанный/чистый кодер 472 без потерь и, как правило, используется для сжатия с высоким качеством (и высоким битрейтом). Способ кодирования с потерями включает в себя компоненты, такие как средство 442 взвешивания и квантователь 460 и, как правило, используется для сжатия с регулируемым качеством (и регулируемым битрейтом). Выбор зависит от ввода пользователя или других критериев.
Для кодирования с потерями данных многоканального звука, многоканальный препроцессор 410, в необязательном порядке, повторно выполняет матричную обработку звуковых сэмплов 405 временной области. Например, многоканальный препроцессор 410, в необязательном порядке, повторно выполняет матричную обработку звуковых сэмплов 405 для исключения одного или нескольких закодированных каналов или увеличивает межканальную корреляцию в кодере 400, в то же время обеспечивая возможность восстановления (в некотором представлении) в декодере 500. Многоканальный препроцессор 410 может отправлять в MUX 490 дополнительную информацию, например инструкции для многоканальной постобработки.
Модуль 420 разделения на окна разделяет кадр входных звуковых сэмплов 405 на блоки подкадров (окна). Окна могут иметь меняющийся во времени размер и функции придания формы окна. Когда кодер 400 использует кодирование с потерями, окна переменного размера обеспечивают возможность переменного разрешения по времени. Модуль 420 разделения на окна выводит блоки разделенных данных, а также выводит дополнительную информацию, например размеры блоков, в MUX 490.
На фиг.4, средство 422 конфигурирования сегментов разделяет кадры многоканального звука на поканальной основе. Средство 422 конфигурирования сегментов независимо разделяет каждый канал в кадре, если позволяет качество/битрейт. Это обеспечивает возможность, например, средству 422 конфигурирования сегментов изолировать переходы, которые появляются в конкретном канале, в меньших окнах, но использовать большие окна для разрешения по частоте или эффективности сжатия в других каналах. Изоляция переходов на поканальной основе может повысить эффективность сжатия, но во многих случаях требуется дополнительная информация, указывающая на разделения в отдельных каналах. Окна идентичного размера, которые совмещены во времени, могут определяться для дальнейшего устранения избыточности при многоканальном преобразовании. Соответственно, средство 422 конфигурирования сегментов группирует окна идентичного размера, которые совмещены во времени, в виде сегмента.
На фиг.6 изображена иллюстративная конфигурация 600 сегментов для кадра звука 5.1-канального. Конфигурация 600 сегментов включает в себя семь сегментов, пронумерованных от 0 до 6. Сегмент 0 включает в себя сэмплы из каналов 0, 2, 3 и 4 и покрывает первую четверть кадра. Сегмент 1 включает в себя сэмплы из канала 1 и покрывает первую половину кадра. Сегмент 2 включает в себя сэмплы из канала 5 и покрывает весь кадр. Сегмент 3 подобен сегменту 0, но покрывает вторую четверть кадра. Сегменты 4 и 6 включают в себя сэмплы в каналах 0, 2 и 3 и покрывают третью и четвертую четверти кадра соответственно. Наконец, сегмент 5 включает в себя сэмплы из каналов 1 и 4 и покрывает последнюю половину кадра. Как показано, конкретный сегмент размещения может включать в себя окна в несмежных каналах.
Частотный преобразователь 430 принимает звуковые сэмплы и преобразует их в данные в частотной области с применени