МАСШТАБИРУЕМЫЙ АУДИОКОДЕР БЕЗ ПОТЕРЬ И АВТОРСКОЕ ИНСТРУМЕНТАЛЬНОЕ СРЕДСТВО
LOSSLESS SCALABLE AUDIO CODEC AND AUTHOR TOOL

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА СВЯЗАННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет, согласно разделу 35 Кодекса законов США 119 (e), предварительной заявки № 60/566183, озаглавленной «Backward Compatible Lossless Audio Codec», зарегистрированной 25 марта 2004, содержание которой полностью включено в настоящий документ посредством ссылки.
Область техники
Настоящее изобретение относится к аудиокодекам без потерь, более конкретно - к масштабируемому аудиокодеку без потерь и авторскому инструментальному средству.
Описание предшествующего уровня техники
Множество систем кодирования аудиосигнала с потерями с низкой битовой скоростью используется в настоящее время в широком диапазоне потребительских и профессиональных продуктов и услуг аудиовоспроизведения. Например, система кодирования аудиосигнала Dolby AC3 (Dolby digital) является международным стандартом для кодирования стереозвука и звуковых дорожек формата 5.1 для лазерных дисков, кодированного с помощью стандарта NTSC видео DVD (цифрового видеодиска) и ATV, с использованием битовых скоростей до 640 кбит/с. Стандарты аудиокодирования MPEG I (экспертной группы по вопросам движущихся изображений) и MPEG II широко используются для стерео и многоканального кодирования звуковых дорожек для кодированного с помощью стандарта PAL видео DVD, наземного цифрового радиовещания в Европе и спутникового радиовещания в США, на битовых скоростях до 768 кбит/с. Системы аудиокодирования Coherent Acoustics DTS (Digital Theater Systems, Системы цифрового театра) часто используют для звуковых дорожек формата 5.1 со студийным качеством для компакт-диска, видео DVD, спутникового радиовещания в Европе и лазерных дисков на битовых скоростях до 1536 кбит/сек.
Улучшенный кодек, обеспечивающий ширину полосы 96 кГц и разрешающую способность 24 бита, раскрыт в патенте США № 6226616 (также переуступленном Digital Theater Systems, Inc). Этот патент использует методологию основного потока и дополнительного потока (расширения), в которой традиционный алгоритм кодирования аудиосигнала составляет «основной» аудиокодер, и он остается неизменным. Аудиоданные, необходимые для представления более высоких аудиочастот (в случае более высоких частот дискретизации) или более высокой дискретизации выборок (в случае большей длины слов), или их обеих, передают как «дополнительный» поток. Это позволяет поставщикам аудиоконтента (информационного содержимого) обеспечивать единый битовый аудиопоток, который совместим с различными типами декодеров, существующих в оборудовании потребителя. Основной поток декодируется с использованием более старых декодеров, которые игнорируют данные расширения, в то время как более новые декодеры используют и основной поток данных, и дополнительные потоки данных, которые обеспечивают аудиовоспроизведение более высокого качества. Однако этот предшествующий подход не обеспечивает кодирование или декодирование на самом деле без потерь. Хотя система патента США 6226216 обеспечивает аудиовоспроизведение превосходного качества, она не обеспечивает функционирование «без потерь».
В последнее время многие потребители показывают заинтересованность в этих так называемых кодеках «без потерь». Кодеки «без потерь» основываются на алгоритмах, которые сжимают данные, не отбрасывая никакую информацию. Также они не используют психоакустические эффекты, такие как «маскирование». Кодек без потерь создает декодированный сигнал, который идентичен (цифровому) исходному сигналу. Такие характеристики обеспечиваются ценой стоимости: такие кодеки обычно требуют бульшую ширину полосы, чем кодеки с потерями, и сжимают данные в меньшей степени.
Недостаточное сжатие может вызывать проблемы, когда контент записывается на диск, CD (компакт-диск), DVD и т.д., особенно в случаях в значительной степени некоррелированных исходных материалов или высоких исходных требований к ширине полосы. Свойства оптических носителей устанавливают пиковую битовую скорость для всего содержимого, которая не может быть превышена. Как показано на фиг.1, жесткое пороговое значение 10, например 9,6 Мбит/с для аудио DVD, обычно устанавливается для аудиосигнала так, чтобы полная скорость передачи данных не превышала предельное значение для носителей.
Аудиосигнал и другие данные располагаются на диске так, чтобы удовлетворять различным ограничениям носителей и обеспечивать, чтобы все данные, которые необходимо декодировать в данном кадре, присутствовали в аудиобуфере декодера. Буфер имеет эффект сглаживания кодированной полезной нагрузки от кадра к кадру (битовой скорости) 12, которая может колебаться в широких пределах от кадра к кадру для создания буферизированной полезной нагрузки 14, т.е. буферизированной усредненной от кадра к кадру кодированной полезной нагрузки. Если буферизированная полезная нагрузка 14 из битового потока без потерь для заданного канала превышает пороговое значение в какой-нибудь точке, то входные аудиофайлы изменяют для уменьшения их информационного содержимого. Аудиофайлы можно изменять с помощью уменьшения битовой глубины одного или более каналов, например, с 24 бит до 22 бит, фильтрации ширины полосы частот канала только относительно низких частот или уменьшения полосы аудиосигнала, например, путем фильтрации информации выше 40 кГц при дискретизации 96 кГц. Измененные входные аудиофайлы повторно кодируются, чтобы полезная нагрузка 16 никогда не превышала пороговое значение 10. Пример этого процесса описан в SurCode MLP - Owner's Manual pp. 20-23.
Этот процесс очень неэффективен в вычислительном отношении и требует много времени. Кроме того, хотя аудиокодер все еще остается кодером без потерь, количество аудиосодержимого, которое доставляется пользователю, уменьшают по всему битовому потоку. Кроме того, процесс изменения неточен, если удалено слишком мало информации, то проблема может все еще существовать, если удалено слишком много информации, то аудиоданные бесполезно отбрасываются. Кроме того, процесс создания автором мультимедиа-продуктов необходимо настраивать для определенных свойств оптических носителей и для размера буфера декодера.
Сущность изобретения
Настоящее изобретение обеспечивает аудиокодек, который генерирует битовый поток без потерь, и авторское инструментальное средство, которое селективно отбрасывает биты для соответствия ограничениям для носителей, канала, буфера декодера или скорости передачи данных устройства воспроизведения, без необходимости фильтровать входные аудиофайлы, повторно кодировать или иным образом искажать битовый поток без потерь.
Это достигается с помощью кодирования без потерь аудиоданных в последовательности окон анализа в масштабируемый битовый поток, сравнения буферизированной полезной информации с разрешенной полезной информацией для каждого окна и селективного масштабирования кодированных без потерь аудиоданных в окнах, не соответствующих требованиям, для уменьшения кодированной полезной нагрузки, а следовательно, буферизированной полезной нагрузки, таким образом вводя потери.
В примерном варианте осуществления аудиокодер делит аудиоданные на части старших разрядов (СтР, MSB) и младших разрядов (МлР, LSB) и кодирует каждую из них с помощью различных алгоритмов без потерь. Авторское инструментальное средство записывает части СтР в битовый поток, записывает части МлР в окнах, соответствующих требованиям, в битовый поток, и масштабируют части МлР без потерь в любых кадрах, не соответствующих требованиям, так, чтобы сделать их соответствующими требованиям, и записывает части МлР, которые теперь имеют потери, в битовый поток. Аудиодекодер декодирует части СтР и МлР и повторно компонует модулированные с помощью импульсно-кодовой модуляции (ИКМ, PCM) аудиоданные.
Аудиокодер разделяет каждую аудиовыборку на части СтР и МлР, кодирует часть СтР с помощью первого алгоритма без потерь, кодирует часть МлР с помощью второго алгоритма без потерь и упаковывает кодированные аудиоданные в масштабируемый битовый поток без потерь. Граничная точка между частями СтР и МлР соответствующим образом устанавливается на основе энергии и/или максимальной амплитуды выборок в окне анализа. Битовая ширина МлР упаковывается в битовый поток. Часть МлР предпочтительно кодируется так, чтобы все или некоторые МлР можно было селективно отбросить. Расширения частоты можно подобным образом кодировать с помощью СтР/МлР или полностью кодировать как МлР.
Авторское инструментальное средство используется для размещения кодированных данных на диске (носителе). Начальное размещение соответствует буферизированной полезной нагрузке. Данное средство сравнивает буферизированную полезную нагрузку с разрешенной полезной нагрузкой для каждого окна анализа для определения, требует ли размещение какой-нибудь модификации. Если нет, то все части СтР и МлР без потерь битового потока без потерь записываются в битовый поток и записываются на диск. Если да, то авторское инструментальное средство масштабирует битовый поток без потерь так, чтобы соответствовать требованиям ограничения. Более конкретно, данное средство записывает части без потерь СтР и МлР для всех окон, соответствующих требованиям, и заголовки и части без потерь СтР для окон, не соответствующих требованиям, в модифицированный битовый поток. Основываясь на правиле назначения приоритетов, для каждого окна, не соответствующего требованиям, авторское инструментальное средство затем определяет, сколько МлР отбрасываются из каждой аудиовыборки в окне анализа для одного или более количества аудиоканалов, и повторно упаковывает части МлР в модифицированный битовый поток с их измененной битовой шириной. Это повторяется только для тех окон анализа, в которых буферизированная полезная нагрузка превышает разрешенную полезную нагрузку.
Декодер принимает созданный битовый поток посредством носителя или канала передачи данных. Аудиоданные направляют в буфер, который не переполняется с учетом авторского создания мультимедиа-продуктов и в свою очередь выдает достаточное количество данных в чип процессора цифровой обработки сигналов (ПЦОС, DSP) для декодирования аудиоданных для текущего окна анализа. Чип ПЦОС извлекает информацию заголовка и извлекает, декодирует и компонует части СтР аудиоданных. Если все МлР были отброшены в процессе авторского создания, то чип ПЦОС преобразует выборки СтР в слово исходной битовой ширины и выводит ИКМ-данные. В противном случае чип ПЦОС декодирует части МлР, компонует выборки СтР и МлР, преобразует скомпонованные выборки в слово исходной битовой ширины и выводит ИКМ-данные.
Эти и другие признаки и преимущества изобретения будут очевидны специалистам из последующего подробного описания предпочтительных вариантов осуществления, иллюстрируемых чертежами.
Краткое описание чертежей
Фиг.1 - график битовой скорости и полезной нагрузки для аудиоканала без потерь в зависимости от времени;
фиг.2 - структурная схема аудиокодека без потерь и авторского инструментального средства в соответствии с настоящим изобретением;
фиг.3 - упрощенная последовательность операций аудиокодера;
фиг.4 - диаграмма разделения СтР/МлР для выборки в битовом потоке без потерь;
фиг.5 - упрощенная последовательность операций авторского инструментального средства;
фиг.6 - диаграмма разделения СтР/МлР для выборки в созданных автором битовых потоках;
фиг.7 - диаграмма битового потока, включающего в себя части СтР и МлР и информацию заголовка;
фиг.8 - график полезной нагрузки для битового потока без потерь и созданного автором битового потока;
фиг.9 - простая структурная схема аудиодекодера;
фиг.10 - последовательность операций процесса декодирования;
фиг.11 - диаграмма скомпонованного битового потока;
фиг.12-15 иллюстрируют формат битового потока, кодирование, создание автором и декодирование для конкретного варианта осуществления; и
фиг.16a и 16b - структурные схемы кодера и декодера для масштабируемого кодека без потерь, который обратно совместим с основным кодером с потерями.
Подробное описание изобретения
Настоящее изобретение обеспечивает аудиокодек без потерь и авторское инструментальное средство для селективного отбрасывания битов, чтобы соответствовать ограничениям носителей, канала, буфера декодера или скорости передачи данных устройства воспроизведения без необходимости фильтровать аудиовходные файлы, повторно кодировать или иным образом искажать битовый поток без потерь.
Как показано на фиг.2, аудиокодер 20 без потерь кодирует аудиоданные в последовательности окон анализа и упаковывает кодированные данные и информацию заголовка в масштабируемый битовый поток 22 без потерь, который соответственно сохраняется в архиве 24. Окна анализа - обычно кадры кодированных данных, но, как использовано в настоящем описании, окна могут охватывать множество кадров. Кроме того, окно анализа может уточняться на один или большее количество сегментов данных в кадре, один или большее количество наборов каналов в сегменте, один или большее количество каналов в каждом наборе каналов и, наконец, на одно или большее количество расширений частоты в канале. Решения масштабирования для битового потока могут быть весьма грубыми (множество кадров) или более точными (для расширения частоты в наборе каналов в кадре).
Авторское инструментальное средство 30 используют для размещения кодированных данных на диске (носителе) в соответствии с емкостью буфера декодера. Начальное размещение соответствует буферизированной полезной нагрузке. Данное средство сравнивает буферизированную полезную нагрузку с разрешенной полезной нагрузкой для каждого окна анализа для определения, требует ли размещение какой-нибудь модификации. Разрешенная полезная нагрузка обычно является функцией пиковой битовой скорости, поддерживаемой носителями (диском DVD) или каналом передачи. Разрешенная полезная нагрузка может быть фиксированной или может изменяться как часть глобальной оптимизации. Авторское инструментальное средство селективно масштабирует кодированные без потерь аудиоданные в окнах, не соответствующих требованиям, для уменьшения кодированной полезной нагрузки, а следовательно, буферизированной полезной нагрузки. Процесс масштабирования вводит потери в кодированные данные, но он ограничен только окнами, не соответствующими требованиям, и соответственно выполняется только для того, чтобы привести в соответствие каждое окно. Авторское инструментальное средство упаковывает данные с потерями и без потерь и любую информацию измененного заголовка в битовый поток 32. Битовый поток 32 обычно сохраняется на носителях 34 или передается по каналу 36 передачи для последующего воспроизведения через аудиодекодер 38, который генерирует одно- или многоканальный ИКМ аудиопоток 40.
В примерном варианте осуществления, который показан на фиг. 3 и 4, аудиокодер 20 разделяет каждую аудиовыборку на часть 42 СтР и часть 44 МлР (этап 46). Граничная точка 48, которая разделяет аудиоданные, вычисляется сначала с помощью назначения минимальной битовой ширины 50 СтР (минимального количества СтР), которая устанавливает минимальный уровень кодирования для каждой аудиовыборки. Например, если битовая ширина 52 аудиоданных равна 20 битам, то минимальное количество СтР может быть 16 битов. Из этого следует, что максимальная битовая ширина МлР (максимальное количество МлР) 54 - битовая ширина 52 минус минимальное количество 50 СтР. Кодер вычисляет функцию стоимости, например, нормы L2 или L∞, для аудиоданных в окне анализа. Если функция стоимости превышает пороговое значение, то кодер вычисляет битовую ширину 56 МлР, по меньшей мере, одного бита и не больше максимального количества МлР. Если функция стоимости не превышает пороговое значение, то битовая ширина 56 МлР устанавливается в ноль бит. В общем случае разделение на СтР/МлР выполняется для каждого окна анализа. Как описано выше, это обычно один или более кадров. Разделение может дополнительно уточняться, например, для каждого сегмента данных, набора каналов, канала или расширения частоты. Дополнительное уточнение повышает эффективность кодирования за счет дополнительных вычислений и большего количества служебной информации в битовом потоке.
Кодер без потерь кодирует части СтР (этап 58) и части МлР (этап 60) с помощью различных алгоритмов без потерь. Аудиоданные в частях СтР обычно сильно коррелированы и по времени в пределах любого канала, и между каналами. Поэтому алгоритм без потерь соответственно использует методы энтропийного кодирования, фиксированного (неадаптивного) предсказания, адаптивного предсказания и декорреляции объединенного канала для эффективного кодирования частей СтР. Подходящий кодер без потерь описан в находящейся на рассмотрении заявке «Lossless Multi-Channel Audio Codec», зарегистрированной 8 августа 2004, серийный номер 10/911067, включенной в настоящее описание посредством ссылки. Другие соответствующие кодеры без потерь включают в себя MLP (аудио DVD), Monkey's audio (компьютерные приложения), кодер без потерь Apple, Windows Media Pro без потерь, AudioPak, DVD, LTAC, MUSICcompress, OggSquish, Philips, Shorten, Sonarc и WA. Обзор многих из этих кодеков содержится в Mat Hans, Ronald Schafer «Lossless Compression of Digital Audio» Hewlett Packard, 1999.
Наоборот, аудиоданные в части МлР являются в высокой степени некоррелированными, близкими к шуму. Поэтому сложные методы сжатия в значительной степени неэффективны и потребляют ресурсы обработки. Кроме того, для эффективного авторского создания битового потока очень желателен очень простой код без потерь, использующий упрощенное предсказание очень низкого порядка, с последующим применением простого энтропийного (статистического) кодера. Фактически, являющийся в настоящее время предпочтительным алгоритм должен кодировать часть МлР, просто копируя биты МлР «как есть». Это позволит отбрасывать отдельные МлР без необходимости декодировать часть МлР.
Кодер отдельно упаковывает кодированные части СтР и МлР в масштабируемый битовый поток 62 без потерь так, чтобы их можно было легко распаковать и декодировать (этап 64). В дополнение к обычной информации заголовка кодер упаковывает в заголовок битовую ширину 56 МлР (этап 66). Заголовок также включает в себя промежуток для уменьшения 68 битовой ширины МлР, который не используется при кодировании. Этот процесс повторяется для каждого окна анализа (кадров, кадра, сегмента, набора каналов или расширения частоты), для которого повторно вычисляется разделение.
Как показано на фиг.5, 6 и 7, авторское инструментальное средство 30 предоставляет пользователю возможность выполнять первый проход при размещении аудио и видео битовых потоков на носителях в соответствии с емкостью буфера декодера (этап 70) для удовлетворения ограничений пиковой скорости передачи данных носителей. Авторское инструментальное средство запускает цикл окон анализа (этап 71), вычисляет буферизированную полезную нагрузку (этап 72) и сравнивает буферизированную полезную нагрузку с разрешенной полезной нагрузкой для окна 73 анализа для определения, требует ли битовый поток без потерь какого-нибудь масштабирования для удовлетворения требований ограничения (этап 74). Разрешенная полезная нагрузка определяется емкостью буфера аудиодекодера и пиковой битовой скоростью носителей или канала. Кодированная полезная нагрузка определяется битовой шириной аудиоданных и количеством выборок во всех сегментах 75 данных плюс заголовок 76. Если она не превышает разрешенную полезную нагрузку, то кодированные без потерь части СтР и МлР упаковываются в соответствующие области 77 и 78 СтР и МлР сегментов 75 данных в модифицированном битовом потоке 79 (этап 80). Если разрешенная полезная нагрузка никогда не превышается, то битовый поток без потерь перемещается непосредственно на носители или в канал.
Если буферизированная полезная нагрузка превышает разрешенную полезную нагрузку, то авторское инструментальное средство упаковывает заголовки и кодированные без потерь части 42 СтР в модифицированный битовый поток 79 (этап 81). Основываясь на правиле назначения приоритетов, авторское инструментальное средство вычисляет уменьшение 68 битовой ширины МлР, на которую уменьшается кодированная полезная нагрузка, следовательно буферизуемую полезную нагрузку, до самой большой разрешенной полезной нагрузки (этап 82). Предполагая, что части МлР были просто скопированы во время кодирования без потерь, авторское инструментальное средство масштабирует части МлР (этап 84), предпочтительно добавляя случайный шум к каждой части МлР для сглаживания следующего бита МлР после уменьшения битовой ширины МлР и затем сдвигая часть МлР вправо на уменьшение битовой ширины МлР для отбрасывания битов. Если части МлР закодированы, то они должны декодироваться, сглаживаться, сдвигаться и повторно кодироваться. Данное средство упаковывает теперь кодированные с потерями части МлР для окон, которые теперь соответствуют требованиям, в битовый поток с измененной битовой шириной 56 МлР и уменьшением 68 битовой ширины МлР и параметром добавляемого случайного шума (этап 86).
Как показано на фиг.6, часть 44 МлР масштабирована от битовой ширины, равной 3, к измененной битовой ширине 56 МлР из 1 бита. Два МлР 88, которые отбрасываются, соответствуют уменьшению 68 битовой ширины МлР на 2 бита. В примерном варианте осуществления измененная битовая ширина 56 МлР и уменьшение 68 битовой ширины МлР передаются в декодер в заголовке. Альтернативно любой из них мог быть опущен, и может передаваться исходная битовая ширина МлР. Любой из параметров уникально определяется двумя другими.
Преимущества масштабируемого кодера без потерь и авторского инструментального средства лучше всего иллюстрируются с помощью наложения буферизированной полезной нагрузки 90 на созданный автором битовый поток, показанный на фиг.1, как это сделано на фиг.8. Используя известный подход изменения аудиофайлов для удаления содержимого и затем простого повторного кодирования с помощью кодера без потерь, буферизированная полезная нагрузка 14 была фактически сдвинута вниз до буферизированной полезной нагрузки 16, которая меньше разрешенной полезной нагрузки 10. Для обеспечения того, чтобы пиковая полезная нагрузка была меньше разрешенной полезной нагрузки, значительное количество содержимого отбрасывается по всему битовому потоку. Для сравнения буферизированная полезная нагрузка 90 копирует исходную без потерь буферизированную полезную нагрузку 14 за исключением тех немногих окон (кадров), где буферизированная полезная нагрузка превышает разрешенную полезную нагрузку. В этих областях кодированная полезная нагрузка, а следовательно, буферизированная полезная информация, уменьшается настолько, чтобы удовлетворить требования ограничения, и предпочтительно не больше. В результате емкость полезной нагрузки используется более эффективно, и большее количество содержимого доставляется до конечного пользователя без необходимости изменения исходных аудиофайлов или повторного кодирования.
Как показано на фиг.9, 10 и 11, аудиодекодер 38 принимает созданный автором битовый поток через диск 100. Битовый поток делится на последовательность окон анализа, каждое из которых включает в себя информацию заголовка и кодированные аудиоданные. Большинство окон включает в себя кодированные без потерь части СтР и МлР, исходную битовую ширину МлР и уменьшения битовой ширины МлР, равные нулю. Для удовлетворения требований ограничения полезной нагрузки, которые устанавливаются пиковой битовой скоростью диска 100 и емкостью буфера 102, некоторые из окон включают в себя кодированные части СтР без потерь и части МлР с потерями, измененную битовую ширину частей МлР с потерями и уменьшения битовой ширины МлР.
Контроллер 104 считывает кодированные аудиоданные из битового потока на диске 100. Средство 106 анализа отделяет аудиоданные от видеоданных и передает аудиоданные на аудиобуфер 102, который не переполняется с учетом авторского создания мультимедиа-продуктов. Буфер в свою очередь выдает достаточное количество данных в чип ПЦОС 108 для декодирования аудиоданных для текущего окна анализа. Чип ПЦОС извлекает информацию заголовка (этап 110), который включает в себя измененную битовую ширину 56 МлР, уменьшение 68 битовой ширины МлР, количество 112 пустых МлР в слове исходной ширины, и извлекает, декодирует и компонует части СтР аудиоданных (этап 114). Если все МлР отброшены в процессе авторского создания мультимедиа-продуктов или исходная битовая ширина МлР равна 0 (этап 115), то чип ПЦОС преобразует выборки СтР в слово исходной битовой ширины и выводит ИКМ-данные (этап 116). В противном случае чип ПЦОС декодирует части МлР с потерями и без потерь (этап 118), компонует выборки СтР и МлР (этап 120) и, используя информацию заголовка, преобразует скомпонованные выборки в слово исходной битовой ширины (этап 122).
Многоканальный аудиокодек и авторское инструментальное средство
Примерный вариант осуществления аудиокодека и авторского инструментального средства для кодированного аудиобитового потока, представленного как последовательность кадров, показаны на фиг.12-15. Как показано на фиг.12, каждый кадр 200 содержит заголовок 202 для хранения обычной информации 204 и подзаголовки 206 для каждого набора канала, которые хранят битовую ширину МлР и уменьшения битовой ширины МлР, и один или более сегментов 208 данных. Каждый сегмент данных содержит один или более наборов 210 каналов, причем каждый набор каналов содержит один или более аудиоканалов 212. Каждый канал содержит одно или более расширений 214 частоты, причем, по меньшей мере, расширения самой низкой частоты включают в себя кодированные части 216, 218 СтР и МлР. Битовый поток имеет различное разделение на СтР и МлР для каждого канала в каждом наборе каналов в каждом кадре. Расширения более высокой частоты можно разделять подобным образом или можно полностью кодировать как части МлР.
Масштабируемый битовый поток без потерь, из которого создается этот битовый поток, кодируется, как показано на фиг.13a и 13b. Кодер устанавливает исходную битовую ширину слова (24 бит), минимальное количество (16 бит) СтР, пороговое значение (ПЗ) для квадратичной нормы L2 и фактор масштабирования (ФМ) для этой нормы (этап 220). Кодер запускает цикл кадров (этап 222) и цикл наборов каналов (этап 224). Поскольку фактическая ширина аудиоданных (20 бит) может быть меньше исходной ширины слова, кодер вычисляет количество пустых МлР (24-20=4) (минимальное количество «0» МлР в любой ИКМ-выборке в текущем кадре) и сдвигает вправо каждую выборку на это количество (этап 226). Битовая ширина данных равна исходной битовой ширине (24) минус количество пустых МлР (4) (этап 228). Кодер затем определяет максимальное количество битов (максимальное количество МлР), которое разрешено кодировать, как часть части МлР как максимальное значение (битовая ширина - минимальное количество СтР, 0) (этап 230). В текущем примере максимальное количество МлР=20-16=4 бита.
2
Для определения граничной точки для разделения аудиоданных на части СтР и МлР кодер начинает индексирование цикла каналов (этап 232) и вычисляет норму L∞ как максимальную абсолютную амплитуду аудиоданных в канале и квадратичную норму L2 как сумму квадратичных амплитуд аудиоданных в окне анализа (этап 234). Кодер устанавливает параметр Max Amp как минимальное целое число, большее или равное log(L∞) (этап 236), и инициализирует битовую ширину МлР в ноль (этап 237). Если Max Amp больше минимального количества СтР (этап 238), то битовая ширина МлР устанавливается равной разности Max Amp и минимального количества СтР (этап 240). В противном случае, если норма L2 превышает пороговое значение (малая амплитуда, но значительная дисперсия) (этап 242), то битовая ширина МлР устанавливается равной параметру Max Amp, деленному на фактор масштабирования, обычно >1 (этап 244). Если оба теста - «ложно», то битовая ширина МлР остается равной нулю. Другими словами, для поддержания минимального качества кодирования, например, минимального количества СтР, МлР не доступны. Кодер ограничивает битовую ширину МлР на значении максимального количества МлР (этап 246) и упаковывает данное значение в подзаголовок набора каналов (этап 248).
Когда определена граничная точка, т.е. битовая ширина МлР, кодер разделяет аудиоданные на части СтР и МлР (этап 250). Часть СтР кодируется без потерь с использованием соответствующего алгоритма (этап 252) и упаковывается в расширение низкой частоты в конкретном канале в наборе каналов текущего кадра (этап 254). Часть МлР кодируется без потерь с использованием соответствующего алгоритма, например, простого разрядного копирования (этап 256), и упаковывается (этап 258).
Этот процесс повторяется для каждого канала (этап 260) для каждого набора каналов (этап 262) для каждого кадра (этап 264) в битовом потоке. Кроме того, та же самая процедура может повторяться для расширений высоких частот. Однако, поскольку эти расширения содержат намного меньше информации, минимальное количество СтР можно устанавливать в 0, чтобы все кодировалось как МлР.
Когда масштабируемый битовый поток без потерь кодируется для определенного аудиосодержимого, авторское инструментальное средство создает наилучший возможный битовый поток, который удовлетворяет требованиям ограничений пиковой битовой скорости транспортных носителей и емкости буфера в аудиодекодере. Как показано на фиг.14, пользователь пытается разместить битовый поток без потерь 268 на носителе в соответствии с требованиями ограничений битовой скорости и емкости буфера (этап 270). В случае успеха битовый поток без потерь 268 записывается как созданный автором битовый поток 272 и сохраняется на носителе. В противном случае авторское инструментальное средство начинает цикл кадров (этап 274) и сравнивает буферизированную полезную нагрузку (буферизированную среднюю полезную нагрузку от кадра к кадру) с разрешенной полезной нагрузкой (пиковой скоростью передачи данных) (этап 276). Если текущий кадр соответствует разрешенной полезной нагрузке, то кодированные без потерь части СтР и МлР извлекаются из битового потока 268 без потерь и записываются в созданный автором битовый поток 272, и выполняется переход к следующему кадру.
Если авторское инструментальное средство обнаруживает кадр, не соответствующий требованиям, в котором буферизированная полезная нагрузка превышает разрешенную полезную нагрузку, то данное средство вычисляет максимальное уменьшение, которое может быть достигнуто, отбрасывая все части МлР в наборе каналов, и вычитает его из буферизированной полезной нагрузки (этап 278). Если минимальная полезная нагрузка все еще велика, то данное средство отображает сообщение об ошибке, которое включает в себя количество лишних данных и номер кадра (этап 280). В этом случае или следует уменьшать минимальное количество СтР, или следует изменять и повторно кодировать исходные аудиофайлы.
В противном случае авторское инструментальное средство вычисляет уменьшение битовой ширины МлР для каждого канала в текущем кадре, основываясь на указанном правиле назначения приоритета канала (этап 282), так что:
уменьшение битовой ширины [n-ного канала] < битовая ширина МлР [n-ного канала], когда n-ный канал = 0... общее количество каналов -1, и
буферизированная полезная нагрузка [n-ного кадра] - Σ (уменьшение битовой ширины [n-ного канала] · количество выборок в кадре) < разрешенная полезная нагрузка [n-ного кадра].
Уменьшение битовой ширины МлР на эти значения будет гарантировать соответствие кадра разрешенной полезной нагрузке. Это выполняется с минимальными потерями, вводимыми в кадры, не соответствующие требованиям, не воздействуя на кадры без потерь, которые соответствуют требованиям.
Авторское инструментальное средство корректирует кодированные части МлР (предполагая кодирование с разрядным копированием) для каждого канала, добавляя случайный шум к каждой части МлР в кадре для сглаживания следующего бита, и затем сдвигает вправо на уменьшение битовой ширины МлР (этап 284). Добавление случайного шума не является необходимым, но чрезвычайно желательно для декорреляции ошибок квантования, а также чтобы сделать их декоррелированными относительно исходного аудиосигнала. Инструментальное средство упаковывает теперь масштабированные с потерями части МлР (этап 286), измененную битовую ширину МлР и уменьшения битовой ширины МлР для каждого канала (этап 288) и измененные навигационные точки потока (этап 290) в созданный автором битовый поток. Если добавляется случайный шум, то параметр случайного шума упаковывается в битовый поток. Этот процесс затем повторяется для каждого кадра (этап 292) до завершения (этап 294).
Как показано на фиг.15a и 15b, соответствующий декодер синхронизируется с битовым потоком (этап 300) и запускает цикл кадров (этап 302). Декодер извлекает информацию заголовка кадра, включающую в себя некоторое количество сегментов, выборок в сегменте, наборов каналов и т.д. (этап 304), и извлекает информацию заголовка набора каналов, включающую в себя некоторое количество каналов в наборе, пустых МлР, битовую ширину МлР, уменьшение битовой ширины МлР для каждого набора каналов (этап 306), и сохраняет ее для каждого набора каналов (этап 307).
Когда информация заголовка доступна, декодер запускает цикл сегментов (этап 308) и цикл наборов каналов (этап 310) для текущего кадра. Декодер распаковывает и декодирует части СтР (этап 312) и сохраняет ИКМ-выборки (этап 314). Декодер затем запускает цикл каналов в текущем наборе каналов (этап 316) и продолжает работу с кодированными данными МлР.
Если измененная битовая ширина МлР не превышает ноль (этап 318), то декодер запускает цикл выборок в текущем сегменте (этап 320), преобразует ИКМ-выборки для части СтР в слово исходной ширины (этап 322) и повторяет обработку, пока цикл выборок не закончится (этап 324).
В противном случае, декодер запускает цикл выборок в текущем сегменте (этап 326), распаковывает и декодирует части МлР (этап 328) и компонует ИКМ-выборки, присоединяя часть МлР к части СтР (этап 330). Декодер затем преобразует ИКМ-выборку в слово исходной ширины, используя пустые МлР, измененную битовую ширину МлР и информацию уменьшения битовой ширины МлР из заголовка (этап 332), и повторяет этапы, пока цикл выборок не заканчивается (этап 334). Для восстановления всей аудиопоследовательности, декодер повторяет эти этапы для каждого канала (этап 336) в каждом наборе каналов (этап 338) в каждом кадре (этап 340).
Обратно совместимый масштабируемый аудиокодек
Свойства масштабируемости могут вводиться в обратно совместимый кодер без потерь, формат битового потока и декодер. Основной кодовый поток «с потерями» упаковывается совместно с кодированными без потерь частями СтР и МлР аудиоданных для передачи (или записи). После декодирования в декодере с расширенными возможностями без потерь потоки СтР без потерь и с потерями объединяются, и поток МлР присоединяется для создания восстановленного сигнала без потерь. В декодере предшествующего поколения дополнительные потоки СтР и МлР без потерь игнорируются, и основной поток «с потерями» декодируется для обеспечения высококачественного многоканального аудиосигнала с шириной полосы и характеристикой отношения сигнал - шум основного потока.
Фиг.16a показывает представление на уровне системы масштабируемого обратносовместимого кодера 400. Цифровой аудиосигнал, соответственно М-битовые аудио ИКМ-выборки, подаются на вход 402. Предпочтительно цифровой аудиосигнал имеет частоту дискретизации и ширину полосы, которые превышают ширину полосы модифицированного основного кодера 404 с потерями. В одном из вариантов осуществления частота дискретизации цифрового аудиосигнала - 96 кГц (соответствует полосе пропускания 48 кГц для дискретизированного аудиосигнала). Следует также понимать, что входной аудиосигнал может быть, и предпочтительно является, многоканальным сигналом, в котором каждый канал дискретизирован с частотой 96 кГц. Последующее описание относится к обработке одного канала, но расширение на множество каналов не вызывает затруднений. Входные сигналы дублируются в узле 406 и обрабатываются в параллельных трактах. В первом тракте сигнала модифицированный широкополосный кодер 404 с потерями кодирует сигнал. Модифицированный основной кодер 404, который описан подробно ниже, формирует кодированный поток данных (основной поток 408), который передается на блок упаковывания, или мультиплексор 410. Основной поток 408 также передается на модифицированный декодер 412 основного потока, который формирует на выходе модифицированный восстановленный основной сигнал 414, который сдвигается вправо на N бит (>>N 415), чтобы отбросить его N МлР.
Оцифрованный аудиосигнал 402, вводимый в параллельный тракт, подвергают компенсирующей задержке 416 по существу так, чтобы она равнялась задержке, введенной в восстановленный аудиопоток (модифицированным кодером и модифицированными декодерами), для создания задержанного цифрового аудиопотока. Аудиопоток разделяется на части СтР и МлР 417, как описано выше. N-битная часть 418 МлР передается в блок 410 сжатия. M-N битный восстановленный основной сигнал 414, который был сдвинут, чтобы выровнять его с частью СтР, вычитается из части СтР задержанного цифрового аудиопотока 419 в узле 420 вычитания. (Следует отметить, что узел вычитания можно заменить узлом суммирования, изменяя полярность одного из входов. Таким образом, суммирование и вычитание могут быть по существу эквивалентными для этой цели.)
Узел 420 вычитания формирует разностный сигнал 422, который представляет различие между M-N СтР исходного сигнала и восстановленным основным сигналом. Для реализации кодирования совершенно «без потерь» необходимо кодировать и передавать разностный сигнал с помощью методов кодирования без потерь. Соответственно M-N битовый разностный сигнал 422 кодируется с помощью кодера 424 без потерь, и кодированный M-N битовый сигнал 426 упаковывается, или мультиплексируется, с основным потоком 408 в блоке 410 упаковывания для создания мультиплексированного битового выходного потока 428. Следует отметить, что кодирование без потерь формирует кодированные потоки 418 и 426 без потерь, которые имеют различную битовую скорость, с учетом потребностей кодера без потерь. Сжатый поток затем дополнительно подвергается кодированию последующих уровней, которые включают в себя канальное кодирование, и затем передается или записывается. Следует отметить, что в целях данного раскрытия запись может рассматриваться как передача через канал.
Основной кодер 404 описывается как «модифицированный», потому что в варианте осуществления, который может обрабатывать расширенную ширину полосы, основной кодер требует модификации. Блок фильтров анализа с 64 полосами в кодере отбрасывает половину его выходных данных и кодирует только 32 нижние полосы частот. Эта отброшенная информация не представляет никакого интереса для существующих декодеров, которые в любом случае не способны восстанавливать верхнюю половину спектра сигнала. Остальная информация кодируется согласно немодифицированному кодеру, чтобы сформировать обратно совместимый основной выходной поток. Однако в другом варианте осуществления, работающем с частотой дискретизации 48 кГц или ниже, основной кодер может быть по существу немодифицированной версией предшествующего основного кодера. Точно так же для работы выше частоты дискретизации существующих декодеров, основной декодер 412 должен быть модифицирован, как описано ниже. Для работы на обычной частоте дискретизации (например, 48 кГц и ниже) основной декодер может быть по существу немодифицированной версией основного декодера предшествующего уровня техники или эквивалентен ему. В некоторых вариантах осуществления частота дискретизации может выбираться в процессе кодирования, и модули кодирования и декодирования при этом нереконфигурируются с помощью программного обеспечения, как требуется.
Как показано на фиг.16b способ декодирования является дополняющим к способу кодирования. Декодер предшествующего поколения может декодировать основной аудиосигнал с потерями, просто декодируя основной поток 408 и отбрасывая части МлР и СтР без потерь. Качество аудиосигнала, сформированного в таком декодере предшествующего поколения, будет очень хорошим, эквивалентным аудиоинформации предшествующего поколения, но не без потерь.
Согласно фиг.16b, поступающий битовый поток (восстановленный или из канала передачи данных, или с носителя записи) сначала распаковывается в блоке 430 распаковывания, который отделяет основной поток 408 от потоков данных расширения без потерь 418 (МлР) и 426 (СтР). Основной поток декодируется с помощью модифицированного основного декодера 432, который восстанавливает основной поток с помощью обнуления не переданных выборок подполос для 32 верхних полос при 64-полосном синтезе при восстановлении. (Следует обратить внимание, что если выполняется стандартное основное кодирование, то обнуление не требуется.) Поле расширения СтР декодируется с помощью декодера 434 СтР без потерь. Поскольку данные МлР кодировались без потерь с использованием разрядного копирования, то никакого декодирования не требуется.
После параллельного декодирования основного потока и расширений СтР без потерь интерполированные восстановленные основные данные сдвигаются вправо на N битов 436 и объединяются с частью данных без потерь с помощью сложения в блоке 438 сложения. Суммированная выходная информация сдвигается влево на N битов 440 для формирования части 442 СтР без потерь и компонуется с N-битной частью 444 МлР для формирования ИКМ информационного слова 446, которое является восстановленным представлением без потерь исходного аудиосигнала 402.
Поскольку данный сигнал кодировался путем вычитания декодированного восстановленного сигнала с потерями из точного входного сигнала, то восстановленный сигнал представляет точную реконструкцию исходных аудиоданных. Таким образом, как это ни парадоксально, комбинация кодека с потерями и кодированного сигнала без потерь фактически выступает в качестве кодека полностью без потерь, но с дополнительным преимуществом, что кодированные данные остаются совместимыми с декодерами без потерь предшествующего поколения. Кроме того, битовый поток может масштабироваться путем селективного отбрасывания МлР, чтобы он соответствовал ограничениям битовой скорости носителей и емкости буфера.
Хотя показаны и описаны некоторые иллюстративные варианты осуществления изобретения, специалистами могут быть предложены многочисленные разновидности и дополнительные варианты осуществления. Такие разновидности и дополнительные варианты осуществления предполагаются, и они могут выполняться без отклонения от сущности и объема изобретения, как определено в прилагаемой формуле изобретения.