КОДЕР АУДИО И ДЕКОДЕР, ИМЕЮЩИЙ ГИБКИЕ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ КОНФИГУРАЦИИ
AUDIO ENCODER AND DECODER HAVING FLEXIBLE CONFIGURATION FUNCTIONALITIES

Настоящее изобретение относится к кодированию аудио и, в частности, к кодированию с высоким качеством и низкой частотой следования битов, такому как известное из так называемого кодирования USAC (USAC = объединенное кодирование речи и аудио).
Кодер USAC определен в ISO/IEC CD 23003-3. Этот стандарт, названный "Information technology - MPEG audio technologies - Part 3: Unified speech and audio coding" подробно описывает функциональные блоки эталонной модели вызова для предложений по объединенному кодированию речи и аудио.
Фиг. 10a и 10b иллюстрируют блок-схемы кодера и декодера. Блок-схемы кодера и декодера USAC отражают структуру кодирования USAC MPEG-D. Общая структура может быть описана, подобно следующей: сначала имеется общая предварительная/пост-обработка, состоящая из функционального блока MPEG Surround (MPEGS) для управления стерео или многоканальной обработкой, и блок расширенного SBR (eSBR), который обрабатывает параметрическое представление аудио более высоких частот во входном сигнале. Затем имеются две ветви, одна, состоящая из тракта модифицированного инструмента усовершенствованного кодирования аудио (AAC), и другая, состоящая из тракта, основанного на кодировании с линейным предсказанием (область LP или LPC), что, в свою очередь, означает или представление в частотной области или представление во временной области остатка LPC. Все переданные спектры и для AAC и для LPC представлены в области MDCT после квантования и арифметического кодирования. Представление во временной области использует схему кодирования с ACELP возбуждением.
Базовая структура USAC MPEG-D показана на фиг. 10a и фиг. 10b. Поток данных в этой диаграмме направлен слева направо, сверху вниз. Функции декодера заключаются в том, чтобы найти описание квантованных спектров аудио или представления во временной области в полезных данных потока битов и декодировать квантованные значения и другую информацию реконструкции.
В случае переданной спектральной информации декодер должен восстановить квантованные спектры, обработать восстановленные спектры с помощью любых инструментов, которые являются активными в полезных данных потока битов, чтобы получить фактические спектры сигнала, как описано полезными данными введенного потока битов, и, наконец, преобразовать спектры из частотной области во временную область. После начальной реконструкции и масштабирования реконструкции спектра, имеются необязательные инструменты, которые модифицируют один или более спектров, чтобы обеспечить более эффективное кодирование.
В случае переданного представления сигнала во временной области декодер должен восстановить квантованный временной сигнал, обработать восстановленный временной сигнал с помощью любых инструментов, которые являются активными в полезных данных потока битов, чтобы получить фактический сигнал во временной области, который описан полезными данными введенного потока битов.
Для каждого из необязательных инструментов, которые оперирует над данными сигнала, опция "пройти через" («выполнить посредством») сохраняется, и во всех случаях, где обработка пропускается, спектры или выборки времени при их вводе передают непосредственно через этот инструмент без модификации.
В местах, где поток битов изменяет свое представление сигнала из временной области в представление в частотной области или из области LP в область не-LP или наоборот, декодер должен облегчить переход от одной области к другой посредством соответствующего вырезания окна наложения - добавления перехода.
Обработка eSBR и MPEGS применяется одинаковым образом к обоим трактам кодирования после обработки перехода.
Входными данными в инструмент демультиплексора полезных данных потока битов являются полезные данные USAC MPEG-D потока битов. Демультиплексор разделяет полезные данные потока битов на части для каждого инструмента и снабжает каждый из инструментов информацией полезных данных потока битов, относящихся к этому инструменту.
Выходными из инструмента демультиплексора полезных данных потока битов являются:
* В зависимости от основного типа кодирования в текущем кадре любые из:
- квантованные и свободные от шумов кодированные спектры, представленные посредством
- информации коэффициента масштабирования;
- арифметически кодированных спектральных линий
* или: параметры линейного предсказания (LP) вместе с сигналом возбуждения, представленным также любым из:
- квантованных и арифметически кодированных спектральных линий (возбуждение с кодированным преобразованием, TCX), или
- ACELP-кодированного возбуждения временной области
* Информации заполнения спектральным шумом (опционально)
* Информации решения M/S (опционально)
* Информации формирования временного шума (TNS) (опционально)
* Информации управления банком фильтров
* Информации управления обращенной деформацией шкалы времени (TW) (опционально)
* Информации управления расширенным спектральным ответом полосы пропускания (eSBR) (опционально)
* Информация управления MPEG Surround (MPEGS) (опционально)
Инструмент свободного от шумов декодирования коэффициента масштабирования принимает информацию от демультиплексора полезных данных потока битов, синтаксически анализирует эту информацию, и декодирует кодированные по Хаффману и DPCM коэффициенты масштабирования.
Входными данными для инструмента свободного от шумов декодирования коэффициента масштабирования являются:
* Информация коэффициента масштабирования для свободных от шумов кодированных спектров
Выходными данными для инструмента свободного от шумов декодирования коэффициента масштабирования являются:
* Декодированное целочисленное представление коэффициентов масштабирования:
Инструмент спектрального свободного от шумов декодирования принимает информацию от демультиплексора полезных данных потока битов, синтаксически анализирует эту информацию, декодирует арифметически кодированные данные, и восстанавливает квантованные спектры. Входными данными для этого инструмента свободного от шумов декодирования являются:
* Свободные от шумов кодированные спектры
Выходными данными для этого инструмента свободного от шумов декодирования являются:
* Квантованные значения спектров
Инструмент обратного квантователя принимает квантованные значения для спектров, и преобразует целочисленные значения в немасштабированные восстановленные спектры. Этот квантователь является квантователем компандирования, чей коэффициент компандирования зависит от выбранного основного режима кодирования.
Выходными данными для инструмента обратного квантователя являются:
* Квантованные значения для спектров
Выходными данными для инструмента обратного квантователя являются:
* Немасштабированные обратно квантованные спектры.
Инструмент заполнения шумом используется, чтобы заполнить спектральные промежутки в декодированных спектрах, которые имеют место, когда спектральное значение квантуется в ноль например, из-за сильного ограничения требования битов в кодере. Использование инструмента заполнения шума является опциональным.
Входными данными для инструмента заполнения шумом являются:
* Немасштабированные обратно квантованные спектры
* параметры заполнения шумом
* Декодированное целочисленное представление коэффициентов масштабирования
Выходными данными для инструмента заполнения шума являются:
* Немасштабированные обратно квантованные спектральные значения для спектральных линий, которые ранее были квантованы в нуль.
* Модифицированное целочисленное представление коэффициентов масштабирования
Инструмент перемасштабирования преобразует целочисленное представление коэффициентов масштабирования к реальным значениям, и умножает немасштабированные обратно квантованные спектры на релевантные коэффициенты масштабирования.
Входными данными для коэффициентов масштабирования являются:
* Декодированное целочисленное представление коэффициентов масштабирования
* Немасштабированные обратно квантованные спектры
Выходными данными от коэффициентов масштабирования являются:
* Масштабированные обратно квантованные спектры.
Для краткого обзора по инструменту M/S см. пожалуйста ISO/IEC 14496-3:2009, 4.1.1.2.
Для краткого обзора по инструменту временного формирования шума (TNS), см. пожалуйста ISO/IEC 14496-3:2009, 4.1.1.2.
Инструмент переключения блока/банка фильтров применяет инверсию отображения частоты, которое было выполнено в кодере. Обратное модифицированное дискретное косинусное преобразование (IMDCT) используется для инструмента банка фильтров. IMDCT может быть сконфигурировано, чтобы поддерживать 120, 128, 240, 256, 480, 512, 960 или 1024 спектральных коэффициентов.
Входными данными для инструмента банка фильтров являются:
* (Обратно квантованные) спектры
* Информация управления банком фильтров
Выходными данными для инструмента банка фильтров являются:
* Аудио сигнал(ы), восстановленные во временной области.
Инструмент переключения банка/блока фильтров с деформированной шкалой времени заменяет нормальный инструмент переключения банка/блока фильтров, когда режим деформации шкалы времени разрешен. Банк фильтров является тем же самым (IMDCT), что и для нормального банка фильтров, дополнительно вырезанные в виде окна выборки временной области отображаются из области деформированной шкалы времени в область с линейной шкалой временем посредством повторной дискретизации с изменением шкалы времени.
Входными данными для инструментов банка фильтров с деформированной шкалой времени являются:
* Обратно квантованные спектры
* Информация управления банком фильтров
* Информация управления деформированной шкалой времени
Выходом(ами) инструмента банка фильтров является:
* восстановленный аудио сигнал(ы) области с линейной шкалой времени
Инструмент расширенного SBR (eSBR) восстанавливает диапазон высоких частот аудио сигнала. Он основан на репликации последовательностей гармоник, усеченных во время кодирования. Он регулирует спектральную огибающую генерированного диапазона высоких частот и применяет обратное фильтрование, и добавляет шум и синусоидальные компоненты, чтобы заново создать спектральные характеристики первоначального сигнала.
Входными данными для инструмента eSBR являются:
* Квантованные данные огибающей
* смешанные данные управления
* сигнал временной области от базового декодера частотной области или базового декодера ACELP/TCX
Выходными данными для инструмента eSBR являются любое из:
* сигнала временной области или
* представления сигнала в QMF-области, например, используется в инструменте MPEG Surround.
Инструмент MPEG Surround (MPEGS) формирует множественные сигналы из одного или более сигналов ввода, применяя сложную процедуру смешения с увеличением числа каналов к сигналу(ам) ввода, которым управляют соответствующие пространственные параметры. В контексте USAC MPEGS используется для того, чтобы кодировать многоканальный сигнал посредством передачи параметрической побочной информации вместе с переданным смешанным с пониженным числом каналов сигналом.
Входными данными для инструмента MPEGS являются:
* сигнал временной области с пониженным числом каналов, или
* представление в QMF-области сигнала с пониженным числом каналов из инструмента eSBR
Выходными данными для инструмента MPEGS являются:
* многоканальный сигнал временной области
Инструмент Классификатор Сигнала анализирует первоначальный сигнал ввода и генерирует из него информацию управления, которая инициирует выбор различных режимов кодирования. Анализ сигнала ввода является зависимым от реализации и пытается выбрать оптимальный базовый режим кодирования для заданного кадра сигнала ввода. Выходные данные классификатора сигнала могут (необязательно) также использоваться, чтобы влиять на поведение других инструментов, например MPEG Surround, расширенного SBR, банка фильтров с деформацией временной шкалы и других.
Входными данными для инструмента Классификатора сигнала являются:
* первоначальный немодифицированный сигнал ввода
* дополнительные параметры, зависимые от реализации
Выходными данными для инструмента Классификатора сигнала являются:
* управляющий сигнал, чтобы управлять выбором базового кодера-декодера (не-LP фильтрованное кодирование в частотной области, LP фильтрованная частотная область или LP фильтрованное кодирование во временной области).
Инструмент ACELP обеспечивает способ, чтобы эффективно представить сигнал возбуждения во временной области посредством комбинирования долгосрочного предсказателя (адаптивное кодовое слово) с импульсно-подобной последовательностью (обновленное кодовое слово). Восстановленное возбуждение посылают через фильтр LP-синтеза, чтобы сформировать сигнал временной области.
Входными данными для инструмента ACELP являются:
* индексы адаптивной и обновленной кодовой книги
* значения адаптивного и обновленного коэффициентов усиления кодов
* другие данные управления
* обратно квантованные и интерполированные коэффициенты LPC фильтра
Выходными данными для инструмента ACELP являются:
* восстановленный аудио сигнал временной области
Инструмент основанного на MDCT средства декодирования TCX используется, чтобы вернуть взвешенное представление остатка LP из MDCT-области назад в сигнал временной области и выводит сигнал временной области, включающий в себя взвешенную фильтрацию LP-синтеза. IMDCT может быть сконфигурирован, чтобы поддерживать 256, 512, или 1024 спектральных коэффициентов.
Входными данными для инструмента TCX являются:
* (Обратно квантованные) спектры MDCT
* обратно квантованные и интерполированные коэффициенты LPC фильтра
Выходными данными для инструмента TCX являются:
* восстановленный аудио сигнал временной области
Технология, раскрытая в ISO/IEC CD 23003-3, который включен здесь по ссылке, обеспечивает определение канальных элементов, которые являются, например, элементами единственного канала, содержащими полезные данные только для единственного канала, или элементами пары каналов, содержащими полезные данные для двух каналов, или канальными элементами LFE (низкочастотное расширение), содержащими полезные данные для канала LFE.
Многоканальный аудио сигнал с пятью каналами может, например, быть представлен элементом единственного канала, содержащим центральный канал, первым элементом пары каналов, содержащей левый канал и правый канал, и вторым элементом пары каналов, содержащей левый канал окружающего звука (Ls), и правый канал окружающего звука (Rs). Эти различные элементы каналов, которые вместе представляют многоканальный аудио сигнал, подаются в декодер и обрабатываются, используя одно и ту же конфигурацию декодера. В соответствии с предшествующим уровнем техники конфигурация декодера, посланная в специфичном для USAC конкретном элементе конфигурации, применялась декодером ко всем элементам канала, и поэтому имеется ситуация, что элементы конфигурации, действительные для всех канальных элементов, не могут быть выбраны для индивидуального канального элемента оптимальным способом, но должны быть установлены для всех канальных элементов одновременно. С другой стороны, однако, было обнаружено, что канальные элементы для описания прямого многоканального сигнала с пятью каналами очень отличаются от друг друга. Центральный канал, являющийся элементом единственного канала, имеет значительно отличающиеся характеристики от элементов пары каналов, описывающих левый/правый каналы и левый окружающего звука/правый окружающего звука каналы, и дополнительно, характеристики двух элементов пары каналов также значительно отличаются вследствие того, что каналы окружающего звука содержат информацию, которая сильно отличается от информации, содержащейся в левом и правом каналах.
Выбор данных конфигурации для всех канальных элементов вместе сделал необходимым идти на компромиссы, так чтобы была выбрана конфигурация, которая неоптимальна для всех канальных элементов, но которая представляет компромисс между всеми канальными элементами. Альтернативно, конфигурация была выбрана, чтобы быть оптимальной для одного канального элемента, но это неизбежно привело к ситуации, что конфигурация была неоптимальной для других канальных элементов. Это, однако, приводит к увеличенной частоте следования в битах (частоте следования битов) для канальных элементов, имеющих неоптимальную конфигурацию или, альтернативно или дополнительно, приводит к уменьшенному качеству аудио для этих канальных элементов, которые не имеют оптимальных параметров настройки конфигурации.
Поэтому задачей настоящего изобретения является обеспечить улучшенную концепцию кодирования/декодирования аудио.
Этот задача достигается декодером аудио в соответствии с п. 1 формулы изобретения, способом декодирования аудио в соответствии с п. 14, кодером аудио в соответствии с п. 15, способом кодирования аудио в соответствии с п. 16, компьютерной программой в соответствии с п. 17, и сигналом кодированного аудио в соответствии с п. 18.
Настоящее изобретение основано на обнаружении того, что улучшенная концепция кодирования/декодирования аудио получается, когда данные конфигурации декодера для каждого индивидуального канального элемента передаются. В соответствии с настоящим изобретением, сигнал кодированного аудио поэтому содержит первый канальный элемент и второй канальный элемент в секции полезных данных потока данных и первые данные конфигурации декодера для первого канального элемента и вторые данные конфигурации декодера для второго канального элемента в секции конфигурации потока данных. Следовательно, секция полезных данных потока данных, где расположены данные полезных данных для канальных элементов, отделена от данных конфигурации для потока данных, где расположены данные конфигурации для канальных элементов. Предпочтительно, чтобы секция конфигурации являлась непрерывной частью последовательного потока битов, где все биты, принадлежащие этой секции полезных данных или непрерывной части потока битов, являются данными конфигурации. Предпочтительно, за секцией данных конфигурации следует секция полезных данных потока данных, где расположены полезные данные для канальных элементов. Изобретенный декодер аудио содержит модуль считывания потока данных для считывания данных конфигурации для каждого канального элемента в секции конфигурации и для считывания данных полезных данных для каждого канального элемента в секции полезных данных. Кроме того, декодер аудио содержит конфигурируемый декодер для декодирования множества канальных элементов и контроллер конфигурации для конфигурирования конфигурируемого декодера так, чтобы конфигурируемый декодер конфигурировался в соответствии с первыми данными конфигурации декодера при декодировании первого канального элемента и в соответствии со вторыми данными конфигурации декодера при декодировании второго канального элемента.
Таким образом, обеспечивается, что для каждого канального элемента оптимальная конфигурация может быть выбрана. Это позволяет оптимально принимать во внимание различные характеристики различных канальных элементов.
Кодер аудио в соответствии с настоящим изобретением скомпонован для того, чтобы кодировать сигнал многоканального аудио, имеющий, например, по меньшей мере два, три или предпочтительно более, чем три канала. Кодер аудио содержит процессор конфигурации для генерирования первых данных конфигурации для первого канального элемента и вторых данных конфигурации для второго канального элемента, и конфигурируемый кодер для кодирования сигнала многоканального аудио, чтобы получить первый канальный элемент и второй канальный элемент, используя первые и вторые данные конфигурации, соответственно. Кроме того, кодер аудио содержит генератор потока данных для генерирования потока данных, представляющего сигнал кодированного аудио, причем поток данных имеет секцию конфигурации, имеющую первые и вторые данные конфигурации, и секцию полезных данных, содержащую первый канальный элемент и второй канальный элемент.
Теперь кодер, так же как декодер, находятся в положении, чтобы определить индивидуальные и предпочтительно оптимальные данные конфигурации для каждого канального элемента.
Обеспечивается, что конфигурируемый декодер для каждого канального элемента конфигурируется таким способом, которым для каждого канального элемента может быть получен оптимум относительно качества аудио и частоты следования в битах, и более компромиссы больше не могут быть сделаны.
Ниже по тексту предпочтительные варианты осуществления настоящего изобретения описаны со ссылками на сопроводительные чертежи, на которых:
Фиг. 1 является блок-схемой декодера;
Фиг. 2 является блок-схемой кодера;
Фиг. 3a и 3b представляют таблицу, иллюстрирующую в общих чертах конфигурации канала для различных установок динамика;
Фиг. 4a и 4b идентифицируют и графически иллюстрируют различные установки параметров динамика;
Фиг. 5a - 5d иллюстрируют различные аспекты сигнала кодированного аудио, имеющего секцию конфигурации и секцию полезных данных;
Фиг. 6a иллюстрирует синтаксис элемента UsacConfig;
Фиг. 6b иллюстрирует синтаксис элемента UsacChannelConfig;
Фиг. 6c иллюстрирует синтаксис UsacDecoderConfig;
Фиг. 6d иллюстрирует синтаксис UsacSingleChannelElementConfig;
Фиг. 6e иллюстрирует синтаксис UsacChannelPairElementConfig;
Фиг. 6f иллюстрирует синтаксис UsacLfeElementConfig;
Фиг. 6g иллюстрирует синтаксис UsacCoreConfig;
Фиг. 6h иллюстрирует синтаксис SbrConfig;
Фиг. 6i иллюстрирует синтаксис SbrDfltHeader;
Фиг. 6j иллюстрирует синтаксис Mps212Config;
Фиг. 6k иллюстрирует синтаксис UsacExtElementConfig;
Фиг. 6l иллюстрирует синтаксис UsacConfigExtension;
Фиг. 6m иллюстрирует синтаксис escapedValue;
Фиг. 7 иллюстрирует различные альтернативы для идентификации и конфигурирования различных инструментов кодера/декодера для канального элемента индивидуально;
Фиг. 8 иллюстрирует предпочтительный вариант осуществления реализации декодера, имеющей параллельно работающие экземпляры декодера для генерирования 5.1 многоканального сигнала аудио;
Фиг. 9 иллюстрирует предпочтительную реализацию декодера согласно Фиг. 1 в форме последовательности операций;
Фиг. 10а иллюстрирует блок-схему кодера USAC; и
Фиг. 10b иллюстрирует блок-схему декодера USAC.
Информация высокого уровня, подобная частоте дискретизации, точной конфигурации канала, о содержащемся содержимом аудио, присутствует в потоке битов аудио. Это делает поток битов более законченным и делает транспорт конфигурации и полезных данных легче, когда внедрен в схемы транспорта, которые могут не иметь средств, чтобы явно передать эту информацию.
Структура конфигурации содержит объединенную длину кадра и индекса отношения частоты дискретизации SBR (coreSbrFrameLengthlndex)). Это гарантирует эффективную передачу обоих значений и обеспечивает, что незначащие комбинации длины кадра и отношения SBR не могут быть сигнализированы. Последнее упрощает реализацию декодера.
Конфигурация может быть расширена посредством специализированного механизма расширения конфигурации. Это предотвратит большую и неэффективную передачу расширений конфигурации, как известно из AudioSpecificConfig() MPEG-4.
Конфигурация допускает свободную сигнализацию позиций громкоговорителей, ассоциированных с каждым переданным каналом аудио. Сигнализация общего используемого канала на отображения громкоговорителей может быть эффективно сигнализирована посредством channelConfigurationlndex.
Конфигурация каждого канального элемента содержится в отдельной структуре таким образом, что каждый канальный элемент может быть сконфигурирован независимо.
Данные конфигурации SBR ("заголовок SBR") разделяются на SbrInfo() и SbrHeader(). Для SbrHeader() определена версия по умолчанию (SbrDfltHeader()), на которую можно эффективно ссылаться в потоке битов. Это уменьшает битовое требование в местах, где повторная передача данных конфигурации SBR необходима.
Более обычно применяемые изменения конфигурации для SBR могут быть эффективно сигнализированы с помощью элемента синтаксиса Sbrlnfo().
Конфигурация для параметрического расширения полосы частот (SBR) и инструментов параметрического кодирования стерео (MPS212, aka. MPEG Surround 2-1-2), тесно интегрируется в структуру конфигурации USAC. Это представляет намного лучший способ, которым обе технологии фактически используются в стандарте.
Синтаксис показывает механизм расширения, который допускает передачу существующего и будущих расширений на кодек.
Расширения могут быть помещены (то есть перемежаться) с канальными элементами в любом порядке. Это позволяет, чтобы расширения были считаны прежде или после конкретного канального элемента, к которому должно быть применено расширение.
Длина по умолчанию может быть определена для расширения синтаксиса, которое делает передачу расширений постоянной длины очень эффективной, так как длина полезных данных расширения не должна передаваться каждый раз.
Общий случай сигнализации значения с помощью механизма освобождения, чтобы расширить диапазон значений при необходимости, был разделен на блоки в специализированный оригинальный элемент синтаксиса (escapedValue()), который является достаточно гибким, чтобы охватить все желательные совокупности значений освобождения и расширений битовых полей.
КОНФИГУРАЦИЯ ПОТОКА БИТОВ
UsacConfig() (Фиг. 6a)
UsacConfig() был расширен, чтобы содержать информацию о содержащемся содержимом аудио, а также обо всем необходимом для полной установки декодера. Информация высокого уровня об аудио (частота дискретизации, конфигурации канала, длины кадра вывода) собирается вначале для свободного доступа от более высоких (прикладных) уровней.
channelConfigurationlndex, UsacChannelConfig() (Фиг. 6b)
Эти элементы дают информацию о содержащихся элементах потока битов и их отображении на громкоговорители. channelConfigurationlndex обеспечивает легкий и удобный способ сигнализировать одну из диапазона заранее заданных моно, стерео или многоканальных конфигураций, которые считались релевантными.
Для более сложных конфигураций, которые не охвачены посредством channelConfigurationlndex, UsacChannelConfig() обеспечивает свободное назначение элементов на позиции громкоговорителя из списка 32 позиций динамика, которые охватывают все в настоящее время известные позиции динамика во всех известных установках динамиков для домашнего воспроизведения звука или воспроизведения звука в кинотеатре.
Этот список позиций динамиков является расширенным набором списка, имеющегося в стандарте MPEG Surround (см. Таблицу 1 и фиг. 1 в ISO/IEC 23003-1). Четыре дополнительных позиции динамика были добавлены, чтобы быть в состоянии охватить в последнее время введенные установки динамика 22.2 (см. Фиг. 3a, 3b, 4a и 4b).
UsacDecoderConfig() (Фиг. 6c)
Этот элемент находится в основе конфигурации декодера, и как таковой, содержит всю дополнительную информацию, запрошенную декодером, чтобы интерпретировать поток битов.
В частности, структура потока битов определена здесь посредством явного заявления ряда элементов и их порядка в потоке битов.
Цикл по всем элементам затем обеспечивает конфигурацию всех элементов всех типов (единственный, пара, lfe, расширение).
UsacConfigExtension() (Фиг. 6l)
Чтобы обеспечить будущие расширения, эта конфигурация предоставляет мощный механизм для расширения конфигурации для еще не существующих расширений конфигурации для USAC.
UsacSingleChannelElementConfig() (Фиг. 6d)
Эта конфигурация элемента содержит всю информацию, необходимую для конфигурирования декодера, чтобы декодировать один единственный канал. Это является по существу информацией, относящейся к базовому кодеру, и если используется SBR, относящейся к SBR информацией.
UsacChannelPairElementConfig() (Фиг. 6e)
На аналогии с вышеупомянутым эта конфигурация элемента содержит всю информацию, необходимую для конфигурирования декодера, чтобы декодировать одну пару каналов. В дополнение к вышеупомянутой базовой конфигурации и конфигурации SBR она включает в себя специфические для стерео конфигурации, подобные точному виду примененного кодирования стерео (с или без MPS212, остаток и т.д.). Следует отметить, что этот элемент охватывает все виды опций кодирования стерео, доступные в UCAC.
UsacLfeElementConfig() (Фиг. 6f)
Конфигурация элемента LFE не содержит данных конфигурации, поскольку элемент LFE имеет статическую конфигурацию.
UsacExtElementConfig() (Фиг. 6k)
Эта конфигурация элемента может быть использована для конфигурирования любого вида существующего или будущих расширений кодека. Каждый тип элемента расширения имеет свое собственное выделенное значение ID. Поле длины включено, чтобы быть в состоянии удобным образом пропустить расширения конфигурации, неизвестные декодеру. Необязательное определение длины полезных данных по умолчанию дополнительно увеличивает эффективность кодирования полезных данных расширения, присутствующих в фактическом потоке битов.
Расширения, которые предполагаются, как уже объединенные с USAC, включают в себя: MPEG Surround, SAOC, и некоторый вид элемента FIL, как известно из MPEG-4 AAC.
UsacCoreConfig() (Фиг. 6g)
Этот элемент содержит данные конфигурации, которые оказывают влияние на установку базового кодера. В настоящее время существуют переключатели для инструмента деформации шкалы времени и инструмента заполнения шума.
SbrConfig() (Фиг. 6h)
Чтобы уменьшить служебные расходы в битах, произведенные частой повторной передачей sbr_header(), значения по умолчанию для элементов sbr_header(), которые обычно сохраняются постоянными, теперь переносятся в элементе конфигурации SbrDfltHeader(). Кроме того, статические элементы конфигурации SBR также переносятся в SbrConfig(). Эти статические биты включают в себя флаги для разрешения или запрещения конкретных признаков расширенного SBR, подобных гармонической транспозиции или интер-TES.
SbrDfltHeader() (Фиг. 6i)
Это переносит элементы sbr_header(), которые типично сохраняются постоянными. Влияющие на элементы вещи, такие как амплитудное разрешение, частотный диапазон разделительного фильтра, предварительное выравнивание спектра, теперь переносятся в SbrInfo(), что позволяет эффективно изменять их на лету.
Mps212Config() (Фиг. 6j)
Подобно вышеупомянутой конфигурации SBR, все параметры установки для инструмента MPEG Surround 2-1-2 собраны в этой конфигурации. Были удалены все элементы из SpatialSpecificConfig(), которые не являются релевантными или избыточными в этом контексте.
ПОЛЕЗНЫЕ ДАННЫЕ ПОТОКА БИТОВ
UsacFrame()
Это является наиболее внешней оболочкой полезных данных потока битов USAC и представляет блок (единицу) доступа USAC. Он содержит цикл по всем содержащимся канальным элементам и элементам расширения, которые сигнализируются в части конфигурации. Это делает формат потока битов намного более гибким в терминах того, что он может содержать и является будущим шаблоном для любого будущего расширения.
UsacSingleChannelElement()
Этот элемент содержит все данные, чтобы декодировать моно поток. Содержимое разделяется на относящуюся к базовому кодеру часть и относящуюся к eSBR часть. Последняя теперь намного более тесно связана с упомянутым базовым кодером, что также намного лучше отражает порядок, в котором данные требуются декодером.
UsacChannelPairElement()
Этот элемент охватывает данные для всех возможных способов закодировать стерео пару. В частности, все разновидности унифицированного кодирования стерео охватываются в пределах от традиционного основанного на M/S кодирования до полностью параметрического кодирования стерео с помощью MPEG Surround 2-1-2. stereoConfiglndex указывает, какая особенность фактически используется. Подходящие eSBR данные и MPEG Surround 2-1-2 данные посылаются в этом элементе.
UsacLfeElement()
Прежний lfe_channel_element() переименован только для того, чтобы следовать последовательной схеме обозначений.
UsacExtElement()
Этот элемент расширения был тщательно разработан, чтобы быть в состоянии быть максимально гибким, но в то же самое время максимально эффективным даже для расширений, которые имеют маленькие полезные данные (или часто не имеют вообще). Длина полезных данных расширения сигнализируется для не знающих декодеров, чтобы пропустить их. Определенные пользователем расширения могут быть сигнализированы посредством зарезервированного диапазона типов расширений. Расширения могут быть помещены свободно в порядке элементов. Диапазон элементов расширения уже был рассмотрен, включая механизм для записи байтов заполнения.
UsacCoreCoderData()
Этот новый элемент суммирует всю информацию, затрагивающую базовые кодеры, и следовательно также содержит потоки fd_channel_stream() и lpd_channel_stream().
StereoCoreToolInfo()
Чтобы облегчить удобочитаемость синтаксиса, вся относящаяся к стерео информация была захвачена в этом элементе. Он имеет дело с многочисленными зависимостями битов в режимах кодирования стерео.
UsacSbrData()
Функциональные возможности CRC и традиционные элементы описания масштабируемого кодирования аудио были удалены из того, что должно было быть элементом sbr_extension_data(). Чтобы уменьшить служебные расходы, вызванные частой повторной передачей информации SBR и данных заголовка, присутствие их может быть явно сигнализировано.
Sbrlnfo()
Данные конфигурации SBR, которые часто модифицируются «на лету». Они включают в себя элементы, управляющие такими вещами как разрешение по амплитуде, частотный диапазон разделительного фильтра (разделительного фильтра), предварительное выравнивание спектра, которое ранее требовало передачи полного sbr_header() (см. 6.3 в [N11660], "Efficiency").
SbrHeader()
Чтобы поддерживать способность SBR изменять значения в sbr_header() на лету, теперь возможно передавать SbrHeader() в UsacSbrData() в случае, если отличные значения от посланных в SbrDfltHeader() должны использоваться. Механизм bs_header_extra был поддержан, чтобы сохранить служебные расходы настолько низкими насколько возможно для большинства общих случаев.
sbr_data()
Снова, остатки масштабируемого кодирования SBR были удалены, так как они не применимы в контексте USAC. В зависимости от количества каналов sbr_data() содержит один sbr_single_channel_Element() или один sbr_channel_pair_element().
usacSampIingFrequencyIndex
Эта таблица является расширенным набором таблицы, используемой в MPEG-4, чтобы сигнализировать частоту осуществления выборки аудио кодека. Таблица была дополнительно расширена, чтобы также охватить частоты следования битов при осуществлении выборки, которые в настоящее время используются в операционных режимах USAC. Некоторые кратные значения частот осуществления выборки были также добавлены.
channelConfigurationlndex
Эта таблица является расширенным набором таблицы, используемой в MPEG-4, чтобы сигнализировать channelConfiguration. Она была дополнительно расширена, чтобы позволить сигнализировать обычно используемых и предполагаемых будущих установок параметров громкоговорителя. Индекс в эту таблицу сигнализируется 5 битами, чтобы учесть будущие расширения.
usacElementType
Существуют только 4 типа элемента. Один для каждого из четырех основных элементов потока битов: Usac-SingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(), UsacExtEle-ment(). Эти элементы обеспечивают необходимую структуру верхнего уровня, в то же время поддерживая всю необходимую гибкость.
usacExtElementType
Внутри UsacExtElement() этот элемент позволяет сигнализировать множество расширений. Чтобы выдержать проверку временем, битовое поле было выбрано достаточно большим, чтобы учесть все мыслимые расширения. Из в настоящее время известных расширений уже несколько предложены для рассмотрения: элемент заполнения, MPEG Surround и SAOC.
usacConfigExtType
Если в некоторый момент будет необходимо расширить конфигурацию, он может быть обработан посредством UsacConfigExtension(), что затем может позволить назначать тип на каждую новую конфигурацию. В настоящее время единственным типом, который может быть сигнализирован, является механизм заполнения для этой конфигурации.
coreSbrFrameLengthlndex
Эта таблица должна сигнализировать множественные аспекты конфигурации декодера. В частности, ими являются длина выходного кадра, отношение SBR и результирующая длина кадра базового кодера (ccfl). В то же самое время она указывает количество частотных диапазонов анализа и синтеза QMF, используемых в SBR.
stereoConfiglndex
Эта таблица определяет внутреннюю структуру UsacChannelPairElement(). Она указывает использование моно или стерео ядра, использование MPS212, применен ли SBR стерео, и применено ли остаточное кодирование в MPS212. Посредством перемещения больших частей полей заголовка eSB в заголовок по умолчанию, на который можно сослаться посредством флага заголовка по умолчанию, битовое требование на посылку данных управления eSBR было значительно уменьшено. Прежние битовые поля sbr_header(), которые были рассмотрены для изменения наиболее вероятно в системе реального мира, были вместо этого заимствованы для элемента sbrInfo(), который теперь состоит только из 4 элементов, охватывающих максимум 8 битов. По сравнению с sbr_header(), который состоит по меньшей мере из 18 битов, это составляет экономию 10 битов.
Более трудно оценить воздействие этого изменения на полную частоту следования в битах, так как это сильно зависит от частоты передачи данных управления eSBR в sbrInfo(). Однако, уже для случая обычного использования, где разделительный фильтр sbr изменяется в потоке битов, экономия в битах может быть столь же высокой как 22 бита на каждое появление, при посылке sbrInfo() вместо полностью переданного sbr_header().
Выходной сигнал декодера USAC может быть далее обработан посредством MPEG Surround (MPS) (ISO/IEC 23003-1) или SAOC (ISO/IEC 23003-2). Если инструмент SBR в USAC является активным, декодер USAC может быть обычно эффективно объединенным с последующим декодером MPS/SAOC, с помощью соединения их в области QMF таким же образом, как описано для HE-AAC в ISO/IEC 23003-1 4.4. Если соединение в области QMF невозможно, они должны быть связаны во временной области.
Если побочная информация MPS/SAOC внедрена в поток битов USAC посредством механизма usacExtElement (с usacExtElementType, равным ID _EXT_ELE_MPEGS или ID _EXT_ELE_SAOC), выравнивание во времени между данными USAC и данными MPS/SAOC предполагает самое эффективное соединение между декодером USAC и декодером MPS/SAOC. Если инструмент SBR в USAC является активным и если MPS/SAOC использует представление области QMF в 64 частотных диапазонов (см. ISO/IEC 23003-1 6.6.3), самое эффективное соединение находится в области QMF. Иначе, самое эффективное соединение находится во временной области. Это соответствует выравниванию во времени для комбинации HE-AAC и MPS, как определено в ISO/IEC 23003-1 4.4, 4.5, и 7.2.1.
Дополнительная задержка, введенная добавлением декодирования MPS после декодирования USAC, задается с помощью ISO/IEC 23003-1 4.5 и зависит от того, используется ли HQ MPS или LP MPS, и соединен ли MPS с USAC в области QMF или во временной области.
ISO/IEC 23003-1 4.4 разъясняет интерфейс между системами USAC и MPEG. Каждый блок доступа, поставленный аудио декодеру из системного интерфейса, должен привести к соответствующему блоку композиции, доставленному из аудио декодера к системному интерфейсу, то есть, блоку составления композиции. Это должно включать в себя условия запуска и завершения, то есть, когда блок доступа является первым или последним в конечной последовательности блоков доступа.
Для блока композиции аудио, ISO/IEC 14496-1 7.1.3.5 Composition Time Stamp (CTS) определяет, что время композиции относится к n-ой выборке аудио в пределах блока композиции. Для USAC значение n всегда равно 1. Следует отметить, что это относится непосредственно к выходному сигналу декодера USAC. В этом случае этот декодер USAC, например, объединенный с декодером MPS, должен быть принят во внимание для блоков композиции, доставленных на выходе декодера MPS.
Особенности синтаксиса полезных данных потока битов USAC
Особенности синтаксиса вспомогательных элементов полезных данных
Особенности расширенного синтаксиса полезных данных SBR
КРАТКОЕ ОПИСАНИЕ ЭЛЕМЕНТОВ ДАННЫХ
UsacConfig() Этот элемент содержит информацию о содержащемся аудио контенте, а так же всем необходимом для полной установки декодера
UsacChannelConfig() Этот элемент дает информацию о содержащихся элементах потока битов и их отображении на громкоговорители
UsacDecoderConfig() Этот элемент содержит всю дополнительную информацию, требуемую декодером, чтобы интерпретировать поток битов. В частности, коэффициент повторной дискретизации SBR сигнализируется здесь и структура битового потока определяется здесь, явно заявляя количество элементов и их порядок в потоке битов
UsacConfigExtension() Механизм расширения конфигурации для расширения конфигурации для будущих расширений конфигурации для USAC.
UsacSingleChannelElementConfig() содержит всю информацию, необходимую для конфигурирования декодера, чтобы декодировать один единственный канал. Это является по существу относящейся к базовому кодеру информацией, и, если SBR используется, относящейся к SBR информацией.
UsacChannelPairElementConfig() По аналогии с вышеупомянутым, эта конфигурация элемента содержит всю информацию, необходимую для конфигурирования декодера, чтобы декодировать одну пару каналов. В дополнение к вышеупомянутой базовой конфигурации config и sbr, она включает в себя конкретные конфигурации стерео, такие как точный вид примененного кодирования стерео (с или без MPS212, остаток и т.д.). Этот элемент охватывает все виды опций кодирования стерео, в настоящее время доступных в UCAC.
UsacLfeElementConfig() Конфигурация элемента LFE не содержит данные конфигурации, так как элемент LFE имеет статическую конфигурацию.
UsacExtElementConfig() Эта конфигурация элемента может использоваться для конфигурирования любого вида существующего или будущих расширений к кодеку. Каждый тип элемента расширения имеет свое собственное выделенное значение типа. Поле длины включено, чтобы быть в состоянии пропустить расширения конфигурации, неизвестные декодеру.
UsacCoreConfig() содержит данные конфигурации, которые оказывают влияние на установку базового кодера.
SbrConfig() содержит значения по умолчанию для элементов конфигурации eSBR, которые типично сохраняются постоянными. Кроме того, статические элементы конфигурации SBR также передаются в SbrConfig(). Эти статические биты включают в себя флаги для разрешения или запрещения конкретных особенностей расширенного SBR, подобных перемещению гармоник или внешним TES.
SbrDfltHeader() Этот элемент переносит версию по умолчанию элементов SbrHeader(), на которые можно ссылаться, если никакие отличающиеся значения для этих элементов не являются желательными.
Mps212Config() Все параметры установки инструмента для MPEG Surround 2-1-2 собраны в этой конфигурации.
escapedValue() этот элемент реализовывает общий способ для передачи целочисленного значения, используя переменное количество битов. Он обозначает механизм освобождения уровня два, что позволяет расширять представительный диапазон значений с помощью последовательной передачи дополнительных битов.
usacSamplingFrequencyIndex Этот индекс определяет частоту осуществления выборки аудио сигнала после декодирования. Значение usacSamplingFrequencyIndex и их ассоциированные частоты осуществления выборки описаны в Таблице C.
Таблица C
Значение и смысл usacSamplingFrequencylndex
usacSamplingFrequencylndex
Частота выборки
0x00
96000
0x01
88200
0x02
64000
0x03
48000
0x04
44100
0x05
32000
0x06
24000
0x07
22050
0x08
16000
0x09
12000
0x0a
11025
0x0b
8000
0x0c
7350
0x0d
Зарезервирован
0x0e
Зарезервирован
0x0f
57600
0x10
51200
0x11
40000
0x12
38400
0x13
34150
0x14
28800
0x15
25600
0x16
20000
0x17
19200
0x18
17075
0x19
14400
0x1a
12800
0x1b
9600
0x1c
Зарезервирован
0x1d
Зарезервирован
0x1e
Зарезервирован
0x1f
Значение перехода
Замечание: значения UsacSamplingFrequencylndex 0x00 - 0x0e идентичны таковым из samplingFrequencylndex 0x0 - 0xe, содержащимся в AudioSpecificConfig(), заданном в ISO/IEC 14496-3:2009
usacSamplingFrequency Выходная частота выборки декодера, закодированное как целочисленное значение без знака в случае, если usacSamplingFrequencyIndex равняется нулю.
channelConfigurationlndex Этот индекс определяет конфигурацию канала. Если channelConfigurationlndex >0, этот индекс однозначно определяет количество каналов, канальных элементов и ассоциированное отображение громкоговорителя согласно Таблице Y. Названия позиций громкоговорителя, используемых сокращений и обычной позиции доступных громкоговорителей могут быть получены из Фиг. 3a, 3b и Фиг. 4a и 4b.
bsOutputChannelPos Этот индекс описывает позиции громкоговорителя, которые ассоциированы с заданным каналом согласно Фиг. 4a. Фиг. 4b указывает позицию громкоговорителя в 3D-среде слушателя. Чтобы облегчить понимание позиций громкоговорителя, Фиг. 4a также содержит позиции громкоговорителя согласно IEC 100/1706/CDV, которые перечислены здесь для информации заинтересованному читателю.
usacConfigExtensionPresent Указывает присутствие расширений к конфигурации
numOutChannels Если значение channelConfigurationlndex указывает, что ни одна из заранее заданных конфигураций канала не используется, то этот элемент определяет количество каналов аудио, для которых должна быть ассоциирована конкретная позиция громкоговорителя.
numElements Это поле содержит ряд элементов, которые будут следовать в цикле по типам элемента в UsacDecoderConfig()
usacElementType[elemldx] определяет тип канального элемента USAC упомянутого элемента в позиции elemldx в потоке битов. Существуют четыре типа элемента, один для каждого из четырех основных элементов потока битов: Usac-SingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(), UsacExtElement(). Эти элементы обеспечивают необходимую структуру верхнего уровня, в то же время поддерживая всю необходимую гибкость. Значение usacElementType определено в Таблице A.
stereoConfiglndex Этот элемент определяет внутреннюю структуру UsacChan-nelPairElement(). Он указывает использование моно или стерео ядра, использование MPS212, применен ли стерео SBR, и применено ли остаточное кодирование в MPS212 согласно Таблице ZZ. Этот элемент также определяет значения элементов bsStereoSbr и bsResidualCoding помощника.
tw_mdct Этот флаг сигнализирует использование деформированной шкалы времени MDCT в этом потоке.
noiseFilling Этот флаг сигнализирует использование заполнения шумом спектральных окон в базовом кодере FD.
harmonicSBR Этот флаг сигнализирует использование гармонических вставок для SBR.
bs_interTes Этот флаг сигнализирует использование инструмента интер-TES в SBR.
dflt_start_freq Это является значением по умолчанию для элемента bs_start_freq потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_stop_freq Это является значением по умолчанию для элемента bs_stop_freq потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_header_extra1 Это является значением по умолчанию для элемента bs_header_extra1 потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_header_extra2  Это является значением по умолчанию для элемента bs_header_extra2 потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_freq_scale Это является значением по умолчанию для элемента bs_freq_scale потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_alter_scale Это является значением по умолчанию для элемента bs_alter_scale потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
Dflt-noise_bands Это является значением по умолчанию для элемента bs_noise_bands потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_limiter_bands Это является значением по умолчанию для элемента bs_limiter_bands потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_limiter_gains Это является значением по умолчанию для элемента bs_limiter_gains потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_interpoI_freq Это является значением по умолчанию для элемента bs_interpol_freq потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
dflt_smoothing_mode Это является значением по умолчанию для элемента bs_smoothing_mode потока битов, который применяется в случае, если флаг sbrUseDfltHeader указывает, что значения по умолчанию для элементов SbrHeader() должны быть приняты.
usacExtElementType этот элемент позволяет сигнализировать типы расширений потока битов. Смысл (значение) usacExtElementType определен в Таблице B.
usacExtElementConfigLength сигнализирует длину конфигурации расширения в байтах (октетах).
usacExtElementDefaultLengthPresent Этот флаг сигнализирует, передан ли usacExtElementDefaultLength в UsacExtElementConfig().
usacExtElementDefaultLength сигнализирует длину по умолчанию элемента расширения в байтах. Только если элемент расширения в заданном блоке доступа отклоняется от этого значения, дополнительная длина должна быть передана в потоке битов. Если этот элемент не будет явно передан (usacExtElementDefaultLengthPresent==0), то значение usacExtElementDefaultLength должно быть установлено в ноль.
usacExtElementPayloadFrag Этот флаг указывает, могут ли полезные данные этого элемента расширения быть фрагментированы и посланы как несколько сегментов в последовательных кадрах USAC.
numConfigExtensions Если расширения к конфигурации присутствуют в UsacConfig(), это значение указывает количество сообщенных расширений конфигурации.
confExtldx Индекс к расширениям конфигурации.
usacConfigExtType Этот элемент позволяет сигнализировать типы расширения конфигурации. Значение usacExtElementType определено в Таблице D.
usacConfigExtLength сигнализирует длину расширения конфигурации в байтах (октетах).
bsPseudoLr Этот флаг сигнализирует, что инверсное среднее / боковое вращение должно быть применено к базовому сигналу до обработки Mps212.
Таблица-bsPseudoLr
bsPseudoLr
Значение
0
Выходным сигналом базового кодера является DMX/RES
1
Выходным сигналом базового кодера является Pseudo L/R
bsStereoSbr Этот флаг сигнализирует использование SBR стерео в комбинации с декодированием MPEG Surround.
Таблица-bsStereoSbr
bsStereoSbr
Значение
0
Моно SBR
1
Стерео SBR
bsResidualCoding указывает, применено ли остаточное кодирование согласно Таблице ниже. Значение bsResidualCoding определено с помощью stereoConfiglndex (см. X).
Таблица-bsResidualCoding
bsResidualCoding
Значение
0
нет кодирования остатка, базовым кодером является моно
1
кодирование остатка, базовым кодером является стерео
SbrRatioIndex указывает отношение между базовой частотой осуществления выборки и частотой осуществления выборки после обработки eSBR. В то же самое время, оно указывает количество частотных диапазонов анализа и синтеза QMF, используемых в SBR согласно Таблице ниже.
elemldx Индекс для элементов, присутствующих в UsacDecoderConfig() и UsacFrame().
UsacConfig()
UsacConfig() содержит информацию о выходной частоте осуществления выборки и конфигурации канала. Эта информация должна быть идентичной информации, сообщенной вне элемента, например в MPEG-4 AudioSpecificConfig().
ВЫХОДНАЯ ЧАСТОТА ОСУЩЕСТВЛЕНИЯ ВЫБОРКИ USAC
Если частота осуществления выборки не является одной из частот, перечисленных в правой колонке в Таблице 1, то таблицы зависимости частоты осуществления выборки (кодовые таблицы, таблицы диапазонов коэффициента масштабирования и т.д.) должны быть выведены для полезных данных потока битов, который должен быть синтаксически проанализирован. Так как заданная частота осуществление выборки ассоциирована только с одной таблицей частоты осуществления выборки, и так как максимальная гибкость желательна в диапазоне возможных частот осуществления выборки, нижеследующая таблица должна использоваться, чтобы ассоциировать предполагаемую частоту осуществления выборки с желательными таблицами зависимости частоты осуществления выборки.
UsacChannelConfig ()
Эта таблица конфигурации каналов охватывает самые общие позиции громкоговорителя. Для дополнительной гибкости каналы могут быть отображены на полный выбор 32 позиций громкоговорителя, найденных в современных установках громкоговорителя в различных приложениях (см. Фиг. 3a, 3b).
Для каждого канала, содержащегося в потоке битов, UsacChannelConfig() определяет ассоциированную позицию громкоговорителя, на которую этот конкретный канал должен быть отображен. Позиции громкоговорителя, которые индексированы в bsOutputChannelPos, перечислены на фиг. 4a. В случае множественных канальных элементов индекс i для bsOutputChannelPos[i] указывает позицию, в которой канал появляется в потоке битов. Фигура Y дает краткий обзор по позициям громкоговорителя относительно слушателя.
Более точно каналы пронумерованы в последовательности, в которой они появляются в битовом потоке, начиная с 0 (нуля). В тривиальном случае UsacSingleChannelElement() или UsacLfeElement() номер канала назначается на этот канал, и подсчет каналов увеличивается на один. В случае UsacChannelPairElement() первый канал в этом элементе (с индексом ch==0) пронумерован первым, тогда как второй канал в том же самом элементе (с индексом ch==1) принимает следующий больший номер, и подсчет каналов увеличивается на два.
Из этого следует, что numOutChannels должен быть равным или меньшим, чем накопленная сумма всех каналов, содержащихся в потоке битов. Накопленная сумма всех каналов эквивалентна количеству всех элементов UsacSingleChannelElement() плюс количество всех элементов UsacLfeEle-ment() плюс два раза количество всех элементов UsacChannelPairElement().
Все записи в массиве bsOutputChannelPos должны быть взаимно различными, чтобы избежать двойного назначения позиций громкоговорителя в потоке битов.
В специальном случае, когда channelConfigurationlndex равен 0 и numOutChannels меньше, чем накопленная сумма всех каналов, содержащихся в потоке битов, то обработка не назначенных каналов находится вне настоящего описания. Информация об этом может, например, быть передана соответствующим средством в более высоких уровнях приложений, или с помощью специально созданных (частных) полезных данных расширения.
UsacDecoderConfig()
UsacDecoderConfig() содержит всю дополнительную информацию, запрошенную декодером, чтобы интерпретировать поток битов. Сначала значение sbrRatioIndex определяет соотношение между основной длиной (ccfl) кадра кодера и длиной выходного кадра. После sbrRatioIndex имеется цикл по всем канальным элементам в существующем потоке битов. Для каждой итерации тип элемента сигнализируется в usacElementType[], с непосредственно следующей за ним соответствующей структурой конфигурации. Порядок, в котором различные элементы присутствуют в UsacDecoderConfig(), должен быть идентичным порядку соответствующих полезных данных в UsacFrame().
Каждый экземпляр элемента может быть сконфигурирован независимо. При считывании каждого канального элемента в UsacFrame(), для каждого элемента соответствующая конфигурация этого экземпляра, то есть с тем же самым elemldx, должна использоваться.
UsacSingleChannelElementConfig()
UsacSingleChannelElementConfig() содержит всю информацию, необходимую для конфигурирования декодера, чтобы декодировать один единственный канал. Данные конфигурации SBR передаются, только если SBR фактически используется.
UsacChannelPairElementConfig()
UsacChannelPairElementConfig() содержит относящиеся к базовому кодеру данные конфигурации, так же как данные конфигурации SBR в зависимости от использования SBR. Точный тип алгоритма кодирования стерео обозначен посредством stereoConfiglndex. В USAC пара каналов может быть закодирована различными способами. Ими являются:
1. Стерео пара базового кодера, использующая традиционные способы объединенного кодирования стерео, расширенные возможностью комплексного предсказания в области MDCT
2. Моно канал базового кодера в комбинации с основанным на MPEG Surround MPS212 для полностью параметрического кодирования стерео. Моно обработка SBR применяется в отношении основного сигнала.
3. Стерео пара базового кодера в комбинации с основанным на MPEG Surround MPS212, где первый канал базового кодера несет сигнал понижающего микширования, и второй канал несет остаточный сигнал. Остаток может быть частотным диапазоном, ограниченным для реализации частичного остаточного кодирования. Моно обработка SBR применяется только в отношении сигнала понижающего микширования перед обработкой MPS212.
4. Стерео пара базового кодера в комбинации с основанным на MPEG Surround MPS212, где первый канал базового кодера несет сигнал понижающего микширования и второй канал несет остаточный сигнал. Остаток может быть частотным диапазоном, ограниченным для реализации частичного остаточного кодирования. SBR Стерео применяется в отношении восстановленного сигнала стерео после обработки MPS212.
Опции 3 и 4 могут быть далее скомбинированы с псевдо вращением канала LR после базового декодера.
UsacLfeElementConfig()
Так как использование MDCT с деформированной шкалой времени и заполнение шумом не разрешены для каналов LFE, нет необходимости передавать обычный флаг базового кодера для этих инструментов. Они должны быть установлены в ноль вместо этого.
Также использование SBR не разрешено, ни является значащим в контексте LFE. Таким образом, данные конфигурации SBR не передаются.
UsacCoreConfig()
UsacCoreConfig() только содержит флаги для разрешения или запрещения использования MDCT с деформированной шкалой времени и спектрального заполнения шумом на глобальном уровне потока битов. Если tw_mdct установлен в ноль, то деформированная шкала времени не должна быть применена. Если noiseFilling установлен в ноль, то спектральное заполнение шумом не должно быть применено.
SbrConfig()
Элемент SbrConfig() потока битов служит цели сигнализировать точные параметры установки eSBR. С одной стороны, SbrConfig() сигнализирует общее использование инструментов eSBR. С другой стороны, он содержит версию по умолчанию для SbrHeader(), SbrDfltHeader(). Эти значения этого заголовка по умолчанию должны быть приняты, если никакое различие SbrHeader() не будет передано в потоке битов. Основа этого механизма в том, что обычно только один набор значений SbrHeader() применяется в одном потоке битов. Передача SbrDfltHeader() затем позволяет обращаться к этому набору значений по умолчанию очень эффективно посредством использования только одного бита в потоке битов. Возможность изменять значения SbrHeader «на лету» все еще сохраняется, обеспечивая передачу в частотном диапазоне нового SbrHeader непосредственно в потоке битов.
SbrDfltHeader()
SbrDfltHeader() является тем, что можно назвать основным шаблоном SbrHeader() и должно содержать значения для преобладающе используемой eSBR конфигурации. В потоке битов эта конфигурация может быть указана, устанавливая флаг sbrUseDfltHeader. Структура SbrDfltHeader() идентична таковой из SbrHeader(). Чтобы быть в состоянии проводить различие между значениями SbrDfltHeader() и SbrHeader(), битовые поля в SbrDfltHeader() имеют префикс "dflt_" вместо "bs_". Если использование SbrDfltHeader() указано, то битовые поля SbrHeader() должны принять значения соответствующего SbrDfltHeader(), то есть
bs_start_freq=dflt_start_freq;
bs_stop_freq=dflt_stop_freq;
и т.д.
(продолжить для всех элементов в SbrHeader(), подобно:
bs_xxx_yyy=dflt_xxx_yyy;
Mps212Config()
Mps212Config() повторно собирает SpatialSpecificConfig() для MPEG Surround, и был в большей части выведен из него. Он однако уменьшен в такой степени, чтобы содержать только информацию, относящуюся к моно к стерео повышающему микшированию в контексте USAC. Следовательно, MPS212 конфигурирует только один блок OTT.
UsacExtElementConfig()
UsacExtElementConfig() - является общим контейнером для данных конфигурации элементов расширения для USAC. Каждое расширение USAC имеет уникальный идентификатор типа, usacExtElementType, который определен на фиг. 6k. Для каждого UsacExtElementConfig() длина содержащейся конфигурации расширения передается в переменной usacExtElementConfigLength и позволяет декодерам благополучно пропускать элементы расширения, usacExtElementType которых неизвестен.
Для расширений USAC, которые обычно имеют постоянную длину полезных данных, UsacExtElementConfig() разрешает передачу usacExtElementDefaultLength. Определение длины полезных данных по умолчанию в этой конфигурации обеспечивает очень эффективную сигнализацию usacExtElementPayloadLength внутри UsacExtElement(), где потребление битов требуется быть сохраненным низким.
В случае расширений USAC, где большее количество данных накоплено и передается не на основе кадра, а только каждый второй кадр или еще более редко, эти данные могут быть переданы во фрагментах или сегментах, распределенных по нескольким кадрам USAC. Это может быть полезно, чтобы сохранить емкость в битах более уравненной. Использование этого механизма сигнализируется флагом usacExtElementPayloadFlag. Механизм фрагментации далее объяснен в описании usacExtElement в 6.2. X.
UsacConfigExtension()
UsacConfigExtension() является общим контейнером для расширений UsacConfig(). Он обеспечивает удобный способ исправить или расширить информацию, обмениваемую во время инициализации или установки декодера. Присутствие расширений config обозначается посредством usacConfigExtensionPresent. Если расширения config присутствуют (usacConfigExtensionPresent ==1), точное количество этих расширений следует в битовом поле numConfigExtensions. Каждое расширение конфигурации имеет уникальный идентификатор типа, usacConfigExtType. Для каждого UsacConfigExtension длина содержащегося расширения конфигурации передается в переменной usacConfigExtLength и позволяет анализатору потока битов конфигурации благополучно пропускать расширения конфигурации, usacConfigExtType которых неизвестен.
ПОЛЕЗНЫЕ ДАННЫЕ ВЕРХНЕГО УРОВНЯ ДЛЯ USAC ТИПА АУДИО ОБЪЕКТА
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
UsacFrame() Этот блок данных содержит аудио данные в течение временного периода одного кадра USAC, связанную информацию и другие данные. Как сигнализировано в UsacDecoderConfig(), UsacFrame() содержит numElements элементов. Эти элементы могут содержать аудио данные для одного или двух каналов, аудио данные для низкочастотного расширения или полезные данные расширения.
UsacSingleChannelElement() Сокращение - SCE. Синтаксический элемент потока битов, содержащий закодированные данные для единственного аудио канала. single_channel_element() в основном состоит из UsacCoreCoderData(), содержащего данные или для FD или для LPD базового кодера. В случае, если SBR является активным, UsacSingleChannelElement также содержит данные SBR.
UsacChannelPairElement() Сокращение - CPE. Синтаксический элемент полезных данных потока битов, содержащий данные для пары каналов. Пара каналов может быть достигнута или с помощью передачи двух дискретных каналов или с помощью одного дискретного канала и связанных полезных данных Mps212. Это сигнализируется посредством stereoConfiglndex. UsacChannelPairElement также содержит данные SBR в случае, если SBR является активным.
UsacLfeElement() Сокращение - LFE. Синтаксический элемент, который содержит канал расширения низкой частоты осуществления выборки. LFEs всегда кодируются, используя элемент fd_channel_stream().
UsacExtElement() Синтаксический элемент, который содержит полезные данные расширения. Длина элемента расширения или сигнализируется как длина по умолчанию в конфигурации (USACExtElementConfig()) или сигнализируется в UsacExtElement() непосредственно. Если присутствует, полезные данные расширения имеют тип usacExtElementType, как сигнализируется в этой конфигурации.
usacIndependencyFlag указывает, может ли текущий UsacFrame() быть декодирован полностью без знания информации от предыдущих кадров согласно Таблице ниже
Таблица
Смысл usacIndependencyFlag
Значение usacIndependencyFlag
Смысл
0
Декодирование данных, переданных в UsacFrame(), может требовать доступа к предыдущему UsacFrame()
1
Декодирование данных, переданных в UsacFrame(), возможно без доступа к предыдущему UsacFrame()
Замечание: Пожалуйста обратитесь к X.Y для рекомендаций относительно использования usacIndependencyFlag.
usacExtElementUseDefaultLength указывает, соответствует ли длина элемента расширения значению usacExtElementDefaultLength, которое было определено в UsacExtElementConfig().
usacExtElementPayloadLength должен содержать длину элемента расширения в байтах. Это значение должно только быть явно передано в потоке битов, если длина элемента расширения в существующем блоке доступа отклоняется от значения по умолчанию, usacExtElement-DefaultLength.
usacExtElementStart Указывает, начинает ли текущий usacExtElementSegmentData блок данных.
usacExtElementStop Указывает, заканчивает ли текущий usacExtElementSegmentData блок данных.
usacExtElementSegmentData Конкатенация всех usacExtElementSegmentData из UsacExtElement() последовательных кадров USAC, начинающихся с UsacExtElement() с usacExtElementStart==1 вплоть до и включая UsacExtElement() с usacExtElementStop ==1, формирует один блок данных. В случае, если полный блок данных содержится в одном UsacExtElement(), usacExtElementStart и usacExtElementStop должны оба быть установлены в 1. Блоки данных интерпретируются в качестве выровненных по границе байта полезных данных расширения в зависимости от usacExtElementType согласно следующей Таблице:
fill_byte Октет битов, которые могут использоваться, чтобы дополнить поток битов битами, которые не переносят информации. Точная битовая комбинация, используемая для fill_byte, должна быть равна '10100101'.
ВСПОМОГАТЕЛЬНЫЕ ЭЛЕМЕНТЫ
nrCoreCoderChannels В контексте элемента пары каналов эта переменная указывает количество каналов базового кодера, которые формируют основу для кодирования стерео. В зависимости от значения stereoConfiglndex это значение должно быть 1 или 2.
nrSbrChannels В контексте элемента пары каналов эта переменная указывает количество каналов, к которым применяется обработка SBR. В зависимости от значения stereoConfiglndex это значение должно быть 1 или 2.
ВСПОМОГАТЕЛЬНЫЕ ПОЛЕЗНЫЕ ДАННЫЕ ДЛЯ USAC
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
UsacCoreCoderData() Этот блок данных содержит аудио данные базового кодера. Элемент полезных данных содержит данные для одного или двух каналов базового кодера, для или FD или для LPD режима. Конкретный режим сигнализируется для каждого канала в начале элемента.
StereoCoreToolInfo() Вся относящаяся к стерео информация захватывается в этом элементе. Он имеет дело с многочисленными зависимостями полей битов в режимы кодирования стерео.
ВСПОМОГАТЕЛЬНЫЕ ЭЛЕМЕНТЫ
commonCoreMode в CPE этот флаг указывает, используют ли оба закодированных канала базового кодера один и тот же режим.
Mps212Data() Этот блок данных содержит полезные данные для модуля стерео Mps212. Присутствие этих данных зависит от stereoConfiglndex.
common_window указывает, используют ли канал 0 и канал 1 из CPE идентичные параметры окна.
common_tw указывает, используют ли канал 0 и канал 1 из CPE использует идентичные параметры для MDCT с деформированной шкалой времени.
ДЕКОДИРОВАНИЕ USACFRAME()
Один UsacFrame() формирует один блок доступа потока битов USAC. Каждый UsacFrame декодирует в 768, 1024, 2048 или 4096 выходных выборок согласно outputFrameLength, определенному из Таблицы.
Первый бит в UsacFrame() является usacIndependencyFlag, который определяет, может ли заданный кадр быть декодирован без какого-нибудь знания предыдущего кадра. Если usacIndependencyFlag установлен в 0, то зависимости к предыдущему кадру могут присутствовать в полезных данных текущего кадра.
UsacFrame() далее составлен из одного или более синтаксических элементов, которые должны появиться в потоке битов в том же самом порядке, что их соответствующие элементы конфигурации в UsacDecoderConfig(). Позиция каждого элемента в последовательности всех элементов индексирована посредством elemldx. Для каждого элемента должна использоваться соответствующая конфигурация, как передано в UsacDecoderConfig(), этого экземпляра, то есть с тем же самым elemldx.
Эти синтаксические элементы имеют один из четырех типов, которые перечислены в Таблице. Тип каждого из этих элементов определен с помощью usacElementType. Могут быть множественные элементы одного и того же типа. Элементы, появляющиеся в одной и той же позиции elemldx в различных кадрах, должны принадлежать одному и тому же потоку.
Если эти полезные данные потока битов должны быть переданы по каналу с постоянной скоростью передачи, то они могут включать в себя элемент полезных данных расширения с usacExtElementType равным ID_EXT_ELE_FILL, чтобы настроить мгновенную частоту следования в битах. В этом случае примером кодированного сигнала стерео является:
ДЕКОДИРОВАНИЕ USACSINGLECHANNELELEMENT()
Простая структура UsacSingleChannelElement() состоит из одного экземпляра элемента UsacCoreCoderData() с nrCoreCoderChannels, установленным в 1. В зависимости от sbrRatioIndex этого элемента элемент UsacSbrData() следует с nrSbrChannels, также установленным в 1.
ДЕКОДИРОВАНИЕ USACEXTELEMENT()
Структуры UsacExtElement() в потоке битов могут быть декодированы или пропущены декодером USAC. Каждое расширение идентифицировано посредством usacExtElementType, переданным в UsacExtElementConfig(), ассоциированных с UsacExtElement(). Для каждого usacExtElementType может присутствовать конкретный декодер.
Если декодер для этого расширения доступен для декодера USAC, то полезные данные расширения отправляются декодеру расширения немедленно после того, как UsacExtElement() был синтаксически разобран декодером USAC.
Если декодер для расширения не доступен для декодера USAC, минимум структуры предоставляется в пределах потока битов, так, чтобы расширение могло быть проигнорировано декодером USAC.
Длина элемента расширения или задана длиной по умолчанию в октетах, которая может быть сигнализирована в соответствующем UsacExtElementConfig() и которая может быть отвергнута в UsacExtElement(), или явно предоставлена информацией длины в UsacExtElement(), который имеет или один или три октета в длину, используя синтаксический элемент escapedValue().
Полезные данные расширения, которые охватывают один или более UsacFrame(), могут быть фрагментированы и их полезные данные распределены среди нескольких UsacFrame(). В этом случае флаг usacExtElementPayloadFrag установлен в 1, и декодер должен собрать все фрагменты из UsacFrame() с usacExtElementStart, установленным в 1 вплоть до и включая UsacFrame() с usacExtElementStop, установленным в 1. Когда usacExtElementStop установлен в 1, то рассматривают, что расширение является полным и передается к декодеру расширения.
Следует отметить, что защита целостности для фрагментированных полезных данных расширения не предоставлена в настоящем описании, и другое средство должно использоваться, чтобы гарантировать полноту полезных данных расширения.
Следует отметить, что предполагается, что все данные полезных данных расширения выровнены по границе байта.
Каждый UsacExtElement() должен соответствовать требованиям, следующим из использования usaclndependencyFlag. Более точно, если usacIndependencyFlag установлен (==1), UsacExtElement() должен быть декодируемым без знания предыдущего кадра (и полезных данных расширения, которые могут содержаться в нем).
ПРОЦЕСС ДЕКОДИРОВАНИЯ
stereoConfiglndex, который передается в UsacChannelPairElementConfig(), определяет точный тип кодирования стерео, которое применяется в заданном CPE. В зависимости от этого типа стерео кодирования или один или два канала базового кодера фактически передаются в потоке битов, и переменная nrCoreCoderChannels должна быть установлена соответственно. Синтаксический элемент UsacCoreCoderData() затем обеспечивает данные для одного или двух каналов базового кодера.
Аналогично, могут быть данные, доступные для одного или двух каналов в зависимости от типа кодирования стерео и использования eSBR (то есть, если sbrRatioIndex >0). Значение nrSbrChannels должно быть установлено соответственно и элемент UsacSbrData() синтаксиса обеспечивает eSBR данные для одного или двух каналов.
Наконец Mps212Data() передается в зависимости от значения stereoConfiglndex. Канальный элемент UsacLfeElement() расширения низкой частоты (LFE)
ОБЗОР
Чтобы поддерживать регулярную структуру в декодере, UsacLfeElement() определен как стандартный элемент fd_channel_stream (0,0,0,0, x), то есть, он равен UsacCoreCoderData(), используя кодер частотной области. Таким образом, декодирование может быть сделано, используя стандартную процедуру для декодирования элемента UsacCoreCoderData().
Чтобы приспособить большую скорость передачи в битах и аппаратно- эффективную реализацию декодера LFE, однако, несколько ограничений применяются к вариантам, используемым для кодирования этого элемента:
- поле window_sequence всегда устанавливается в 0 (ONLY_LONG_SEQUENCE)
- Только самые низкие 24 спектральных коэффициентов любого LFE могут быть отличными от нуля
- временное формирование шума не используется, то есть tns_data_present установлен в 0
- деформированная шкала времени не является активной
- заполнение шумом не применяется
UsacCoreCoderData()
UsacCoreCoderData() содержит всю информацию для декодирования одного или двух каналов базового кодера. Порядок декодирования:
- получить core_mode[] для каждого канала
- в случае двух базовых кодированных каналов (nrChannels==2), синтаксически разобрать StereoCoreToolInfoO и определить все относящиеся к стерео параметры
- В зависимости от сигнализированного core_modes передать lpd_channel_stream() или fd_channel_stream() для каждого канала
Как можно видеть из вышеупомянутого списка, декодирование одного канала базового кодера (nrChannels ==1) приводит к получению бита core_mode, с последующим одним lpd_channel_stream или fd_channel_stream, в зависимости от core_mode.
В случаях двух каналов базового кодера некоторая избыточность сигнализации между каналами может использоваться, в частности, если core_mode обоих каналов равно 0. См. 6.2. X (Декодирование StereoCoreToolInfoO) для более подробной информации
StereoCoreToolInfo()
StereoCoreToolInfo() позволяет эффективно кодировать параметры, значения которых могут быть совместно использованы в каналах базового кодера CPE в случае, если оба канала закодированы в режиме FD (core_mode [0, 1]==0). В частности, следующие элементы данных совместно используются, когда подходящий флаг в потоке битов установлен в 1.
Если соответствующий флаг не установлен, то элементы данных передаются индивидуально для каждого канала базового кодера или в StereoCoreToolInfo() (max_sfb, max_sfb1) или в fd_channel_stream(), который следует за StereoCoreToolInfo() в элементе UsacCoreCoderData().
В случае common_window ==1 StereoCoreToolInfo() также содержит информацию о кодировании стерео M/S и данных комплексного предсказания в области MDCT (см. 7.7.2).
UsacSbrData() Этот блок данных содержит полезные данные для расширения полосы частот SBR для одного или двух каналов. Присутствие этих данных зависит от sbrRatioIndex.
Sbrlnfo() Этот элемент содержит параметры управления SBR, которые не требуют сброса декодера при изменении.
SbrHeader() Этот элемент содержит данные заголовка SBR с параметрами конфигурации SBR, это типично, не изменяются в течение продолжительности потока битов.
ПОЛЕЗНЫЕ ДАННЫЕ SBR ДЛЯ USAC
В USAC полезные данные SBR передаются в UsacSbrData(), который является неотъемлемой частью каждого элемента единственного канала или элемента пары каналов. UsacSbrData() следует сразу за UsacCoreCoderData(). Нет полезных данных SBR для каналов LFE.
numSlots количество временных слотов в кадре Mps212Data.
Фиг. 1 иллюстрирует декодер аудио для декодирования сигнала кодированного аудио, поданного на вход 10. На входной линии 10 предоставлен сигнал кодированного аудио, которое является, например, потоком данных или, в качестве другого примера, поток последовательных данных. Сигнал кодированного аудио содержит первый канальный элемент и второй канальный элемент в секции полезных данных потока данных и первые данные конфигурации декодера для первого канального элемента и вторые данные конфигурации декодера для второго канального элемента в секции конфигурации потока данных. Как правило, первые данные конфигурации декодера будут отличаться от вторых данных конфигурации декодера, так как первый канальный элемент будет также типично отличаться от второго канального элемента.
Поток данных или кодированный сигнал аудио вводится в модуль 12 считывания потока данных для считывания данных конфигурации для каждого канального элемента, и направляется к контроллеру 14 конфигурации через линию 13 соединения. Кроме того, модуль считывания потока данных скомпонован для считывания данных полезных данных для каждого канального элемента в секции полезных данных и эти данные полезных данных, содержащие первый канальный элемент и второй канальный элемент, подаются к конфигурируемому декодеру 16 через линию 15 соединения. Конфигурируемый 16 декодер скомпонован для декодирования множества канальных элементов, чтобы вывести данные для индивидуальных канальных элементов, как обозначено на выходных линиях 18a, 18b. В частности, конфигурируемый декодер 16 конфигурируется в соответствии с первыми данными конфигурации декодера при декодировании первого канального элемента, и в соответствии со вторыми данными конфигурации, при декодировании второго канального элемента. Это обозначено линиями 17a, 17b соединения, причем линия 17a соединения транспортирует первые данные конфигурации декодера от контроллера 14 конфигурации к конфигурируемому декодеру, и линия 17b соединения транспортирует вторые данные конфигурации декодера от контроллера конфигурации к конфигурируемому декодеру. Контроллер конфигурации будет реализован в любом случае, чтобы вынудить конфигурируемый декодер работать в соответствии с конфигурацией декодера, сообщенной в соответствующих данных конфигурации декодера или на соответствующей линии 17a, 17b. Следовательно, контроллер 14 конфигурации может быть реализован как интерфейс между модулем 12 считывания потока данных, который фактически получает данные конфигурации из потока данных, и конфигурируемого декодера 16, который конфигурируется фактически считанными данными конфигурации.
Фиг. 2 иллюстрирует соответствующий кодер аудио для кодирования многоканального входного сигнала аудио, поданного на вход 20. Вход 20 иллюстрирован как содержащий три различные линии 20a, 20b, 20c, причем линия 20a переносит, например, аудио сигнал центрального канала, линия 20b переносит аудио сигнал левого канала, и линия 20c переносит аудио сигнал правого канала. Сигналы всех трех каналов вводятся в процессор 22 конфигурации и конфигурируемый кодер 24. Процессор конфигурации приспособлен для генерирования первых данных конфигурации по линии 21a и вторых данных конфигурации по линии 21b для первого канального элемента, например, содержащего только центральный канал так, чтобы первый канальный элемент был единственным элементом канала, и для второго канального элемента, который является, например, элементом пары каналов, несущим левый канал и правый канал. Конфигурируемый кодер 24 приспособлен для кодирования многоканального аудио сигнала 20, чтобы получить первый канальный элемент 23a и второй канальный элемент 23b, с использованием первых данных 21a конфигурации и вторых данных 21b конфигурации. Кодер аудио дополнительно содержит генератор 26 потока данных, который принимает по линиям ввода 25a и 25b первые данные конфигурации и вторые данные конфигурации и который принимает, дополнительно, первый канальный элемент 23a и второй канальный элемент 23b. Генератор 26 потока данных приспособлен генерировать поток данных 27, представляющего кодированный сигнал аудио, поток данных, имеющий секцию конфигурации, имеющую первые и вторые данные конфигурации и секцию полезных данных, содержащую первый канальный элемент и второй канальный элемент.
В этом контексте в общих чертах обрисовано, что первые данные конфигурации и вторые данные конфигурации могут быть идентичными первым данным конфигурации декодера или вторым данным конфигурации декодера или могут быть различными. В последнем случае контроллер 14 конфигурации конфигурируется, чтобы преобразовать данные конфигурации в поток данных, когда данные конфигурации являются направленными на кодер данными, в соответствующие направленные на декодер данные, применяя, например, уникальные функции или таблицы поиска или подобное. Однако, предпочтительно, чтобы данные конфигурации, записанные в поток данных, уже являлись данными конфигурации декодера так, чтобы конфигурируемый кодер 24 или процессор 22 конфигурации имели, например, функциональные возможности для получения данных конфигурации кодера из вычисленных данных конфигурации декодера или для вычисления или определения данных конфигурации декодера из вычисленных данных конфигурации кодера, снова применяя уникальные функции или таблицы поиска или другое предварительное знание.
Фиг. 5a иллюстрирует общую иллюстрацию кодированного сигнала аудио, введенного в модуль 12 считывания потока данных из Фиг. 1 или выведенного генератором 26 потока данных из Фиг. 2. Поток данных содержит секцию 50 конфигурации и секцию 52 полезных данных. Фиг. 5b иллюстрирует более детальную реализацию секции 50 конфигурации согласно Фиг. 5a. Поток данных, иллюстрированный на фиг. 5b, который типично является потоком последовательных данных, несущим один бит после другого, содержит, в его первой части 50a, общие данные конфигурации, касающиеся более высоких уровней транспортной структуры, таких как формат файла MPEG-4. Альтернативно или дополнительно, данные 50a конфигурации, которые могут быть или могут не быть, содержат дополнительные общие данные конфигурации, включенные в UsacChannelConfig, иллюстрированный посредством 50b.
Обычно, данные 50a конфигурации могут также содержать данные из UsacConfig, иллюстрированного на фиг. 6a, и элемент 50b содержит элементы, реализованные и иллюстрированные в UsacChannelConfig согласно Фиг. 6b. В частности, одна и та же конфигурация для всех канальных элементов может, например, содержать индикацию канала вывода, иллюстрированную и описанную в контексте Фиг. 3a, 3b и Фиг. 4a, 4b.
Затем, за секцией 50 конфигурации потока битов следует элемент UsacDecoderConfig, который, в этом примере, сформирован первыми данными 50c конфигурации, вторыми данными 50d конфигурации и третьими данными 50e конфигурации. Первые данные 50c конфигурации предназначены для первого канального элемента, вторые данные 50d конфигурации предназначены для второго канального элемента, и третьи данные 50e конфигурации предназначены для третьего канального элемента.
В частности, как обрисовано в общих чертах на фиг. 5b, каждые данные конфигурации для канального элемента содержат тип idx элемента идентификатора, который является, относительно его синтаксиса, используемым на фиг. 6c. Далее за индексом idx типа элемента, который имеет два бита, следуют биты, описывающие данные конфигурации канального элемента, найденные на фиг. 6c, и дополнительно поясненные на фиг. 6d для элемента единственного канала, Фиг. 6e для элемента пары каналов, Фиг. 6f для элемента LFE и Фиг. 6k для элемента расширения, которые все являются канальными элементами, которые могут типично включаться в поток битов USAC.
Фиг. 5c иллюстрирует кадр USAC, содержащийся в секции 52 полезных данных потока битов, иллюстрированного на фиг. 5a. Когда секция конфигурации на фиг. 5b формирует секцию 50 конфигурации согласно Фиг. 5a, то есть, когда секция полезных данных будет содержать три канального элемента, то секция 52 полезных данных будет реализована как обрисовано в общих чертах на фиг. 5c, то есть за данными полезных данных для первого канального элемента 52a следуют данные полезных данных для второго канального элемента, обозначенного 52b, за которыми следуют данные полезных данных 52c для третьего канального элемента. Следовательно, в соответствии с настоящим изобретением, секция конфигурации и секция полезных данных организованы таким образом, что данные конфигурации находятся в том же порядке относительно канальных элементов, как и данные полезных данных относительно канальных элементов в секции полезных данных. Следовательно, когда порядком в элементе UsacDecoderConfig является данные конфигурации для первого канального элемента, данные конфигурации для второго канального элемента, данные конфигурации для третьего канального элемента, то порядок в секции полезных данных является таким же, то есть, есть имеются данные полезных данных для первого канального элемента, затем следуют данные полезных данных для второго канального элемента и затем следуют данные полезных данных для третьего канального элемента в последовательных данных или битовом потоке.
Эта параллельная структура в секции конфигурации и секции полезных данных является выгодной вследствие того, что она обеспечивает простую организацию с чрезвычайно низкой сигнализацией служебных расходов, относительно того, какие данные конфигурации принадлежат какому канальному элементу. В предшествующем уровне техники какой-либо порядок не требовался, так как индивидуальные данные конфигурации для канальных элементов не существовали. Однако, в соответствии с настоящим изобретением отдельные данные конфигурации для индивидуальных канальных элементов вводятся, чтобы быть уверенным, что оптимальные данные конфигурации для каждого канального элемента могут быть оптимально отобраны.
Как правило, кадр USAC содержит данные для значений 20-40 миллисекунд времени. Когда более длинный поток данных рассматривают, как иллюстрировано на фиг. 5d, то имеется секция 60a конфигурации, за которой следуют секции полезных данных или кадры 62a, 62b, 62c, 62e, затем снова секция 62d конфигурации, включенная в поток битов.
Порядок данных конфигурации в секции конфигурации является, как описано относительно Фиг. 5b и 5c, таким же как порядок данных полезных данных канального элемента в каждом из кадров 62a-62e. Поэтому, также порядок данных полезных данных для индивидуальных канальных элементов является таким же как в каждом кадре 62a-62e.
Обычно, когда кодируемое сообщение является единственным файлом, сохраненным на жестком диске, например, то единственная секция 50 конфигурации достаточна в начале всей дорожки звукового канала, такой как 10 минут, или 20 минут или около того дорожки. Затем за этой единственной секцией конфигурации следует большое количество отдельных кадров, и конфигурация действительна для каждого кадра, и порядок данных канального элемента (конфигурация или полезные данные) является также одинаковой в каждом кадре и в секции конфигурации.
Однако, когда сигнал кодированного аудио является потоком данных, необходимо ввести секции конфигурации между индивидуальными кадрами, чтобы обеспечить точки доступа так, чтобы декодер мог начать декодировать, даже когда более ранняя секция конфигурации была уже передана и не была принята декодером, так как декодер еще не был переключен, чтобы принять фактический поток данных. Количество n кадров между различными секциями конфигурации, однако, является произвольно выбираемым, но когда необходимо достигнуть точки доступа каждую секунду, то количество кадров между двумя секциями конфигурации будет составлять между 25 и 50.
Ниже Фиг. 7 иллюстрирует прямой пример для кодирования и декодирования многоканальных сигналов 5.1.
Предпочтительно, четыре канальных элемента используются, где первый канальный элемент является элементом единственного канала, содержащим центральный канал, второй канальный элемент является элементом CPE1 пары каналов, содержащим левый канал и правый канал, и третий канальный элемент является вторым элементом CPE2 пары каналов, содержащим левый канал окружающего звука и правый канал окружающего звука. Наконец, четвертый канальный элемент является элементом LFE канала. В варианте осуществления, например, данные конфигурации для элемента единственного канала могут быть такими, чтобы инструмент заполнения шумом был включен, в то время как, например, для второго элемента пары каналов, содержащего каналы окружающего звука, инструмент заполнения шумом был выключен, и применяется процедура кодирования параметрического стерео, которая является процедурой кодирования низкого качества, но с низкой частотой следования битов стерео, приводя к низкой частоте следования в битах, но потери качества могут не быть проблематичными вследствие того, что этот элемент пары каналов имеет каналы окружающего звука.
С другой стороны, левый и правый каналы содержат существенное количество информации и, поэтому, высококачественная процедура кодирования стерео сигнализируется с помощью конфигурации MPS212. Кодирование стерео M/S выгодно в том, что оно обеспечивает высокое качество, но является проблематичными, так как частота следования в битах весьма высока. Поэтому, кодирование стерео M/S является предпочтительным для CPE1, но не является предпочтительным для CPE2. Кроме того, в зависимости от реализации, особенность заполнения шумом может быть включена или выключена и предпочтительно включена вследствие того, что выполняется сильное акцентирование, чтобы иметь хорошее и высококачественное представление левого и правого каналов, так же как для центрального канала, где заполнение шумом также включено.
Однако, когда основная полоса частот элемента C канала, например, является весьма низкой и количество последовательных линий, квантованных в ноль в центральном канале также низко, то также может быть полезно выключить заполнение шумом для элемента единственного канала центрального канала вследствие того, что заполнение шумом не обеспечивает дополнительное повышение качества, и биты, требуемые для передачи побочной информации для инструмента заполнения шумом могут быть затем сэкономлены ввиду отсутствия или только незначительного повышения качества.
Обычно, инструменты, сообщенные в секции конфигурации для канального элемента, являются инструментами, упомянутыми на, например, Фиг. 6d, 6e, 6f, 6 г, 6h, 6i, 6j, и дополнительно содержат элементы для конфигурации элемента расширения на фиг. 6k, 6l и 6m. Как обрисовано в общих чертах на фиг. 6e, конфигурация MPS212 может быть различной для каждого канального элемента.
MPEG Surround использует компактное параметрическое представление слуховых сигналов человека для пространственного восприятия, чтобы обеспечить эффективное по частоте следования в битах представление многоканального сигнала. В дополнение к CLD и параметрам ICC, могут быть переданы параметры IPD. Параметры OPD оцениваются с заданным CLD и параметрами IPD для эффективного представления информации фазы. Параметры IPD и OPD используются, чтобы синтезировать разность фаз, чтобы дополнительно улучшить изображение стерео.
В дополнение к параметрическому режиму остаточное кодирование может использоваться с остатком, имеющим ограниченную или полную полосу пропускания. В этой процедуре два сигнала вывода генерируются посредством смешивания моно сигнала ввода и остаточного сигнала, используя параметры CLD, ICC и IPD. Дополнительно, все параметры, упомянутые на фиг. 6j, могут быть индивидуально выбраны для каждого канального элемента. Эти индивидуальные параметры, например, объяснены подробно в документе ISO/IEC CD 23003-3 от 24 сентября 2010, который был включен здесь по ссылке.
Дополнительно, как обрисовано в общих чертах на фиг. 6f и 6g, основные признаки, такие как особенность деформированной шкалы времени и особенность заполнения шумом, могут быть включены или выключены для каждого канального элемента индивидуально. Инструмент деформированной шкалы времени, описанный под термином "переключение банка фильтров и блоков с деформированной шкалой времени" в вышеупомянутом документе, заменяет стандартное переключение банка фильтров и блоков. В дополнение к IMDCT этот инструмент содержит отображение временной области к временной области от сетки с произвольным разделением к сетке с нормальным линейным разделением по времени и соответствующей адаптации форм окна.
Дополнительно, как обрисовано в общих чертах на фиг. 7, инструмент заполнения шумом может быть включен или выключен для каждого канального элемента индивидуально. При кодировании с малой частотой следования в битах заполнение шумом может использоваться для двух целей. Грубое квантование спектральных значений при аудио кодировании с низкой частотой следования в битах может привести к очень редким спектрам после обратного квантования, так как много спектральных линий могут квантоваться в ноль. Пространственно редкие спектры приведут к декодированному сигналу, звучащему резко или непостоянно (свисты). Заменяя нулевые линии "малыми" значениями в декодере возможно замаскировать или уменьшить эти очень очевидные артефакты без добавления очевидных новых шумовых артефактов.
Если имеются шумоподобные части сигнала в первоначальном спектре, перцепционно эквивалентное представление этих шумовых частей сигнала может быть воспроизведено в декодере на основании только малой параметрической информации, подобной энергии части сигнала шума. Параметрическая информация может быть передана с малыми битами по сравнению с количеством битов, необходимыми для передачи кодированной формы сигнала. В частности, элементы данных, необходимые для передачи, являются элементом смещения шума, который является дополнительным смещением, чтобы модифицировать коэффициент масштабирования частотных диапазонов, квантованных в ноль, и уровень шума, который является целым числом, представляющим шум квантования, который должен быть добавлен для каждой спектральной линии, квантованной в ноль.
Как обрисовано в общих чертах на фиг. 7 и Фиг. 6f и 6g, эта особенность может быть включена и выключена для каждого канального элемента индивидуально.
Дополнительно, имеются SBR особенности, которые могут теперь быть сигнализированы для каждого канального элемента индивидуально.
Как обрисовано в общих чертах на фиг. 6h, эти элементы SBR содержат включение/выключение различных инструментов в SBR. Первый инструмент, который должен быть включен или выключен для каждого канального элемента индивидуально, является гармоническим SBR. Когда гармонический SBR включен, установка основного тона гармонического SBR выполняется, в то время как, когда гармонический SBR выключен, используется установка основного тона с последовательными линиями, как известно от MPEG-4 (высокая производительность).
Кроме того, процесс декодирования PVC или "прогнозирующее векторное кодирование" может быть применен. Чтобы улучшить субъективное качество eSBR инструмента, в частности, для речевого содержимого при низких частотах следования в битах, прогнозирующее векторное кодирование (PVC добавляется к eSBR инструменту). Обычно для речевого сигнала имеется относительно высокая корреляция между спектральными огибающими низкочастотных частотных диапазонов и высокочастотных частотных диапазонов. В схеме PVC это используется посредством предсказания спектральных огибающих в высокочастотных частотных диапазонах их спектральных огибающих в низкочастотных частотных диапазонах, где матрицы коэффициентов для предсказания кодируются посредством векторного квантования. Модуль настройки ВЧ огибающей модифицируется, чтобы обработать огибающие, генерируемые PVC декодером.
Инструмент PVC может поэтому быть особенно полезным для элемента единственного канала, где имеется, например, речь в центральном канале, в то время как инструмент PVC не полезен, например, для каналов окружения CPE2 или левого и правого каналов CPE1.
Кроме того, признак формирования меж-временной огибающей (inter-Tes) может быть включен или выключен для каждого канального элемента индивидуально. Формирование временной огибающей между выборками частотного поддиапазона (inter-Tes) обрабатывает выборки поддиапазона QMF после модуля настройки огибающей. Этот модуль формирует временную огибающую более тонкой степени временной детализации полосы частот более высокой частоты, чем таковая из модуля настройки огибающей. Применяя коэффициент усиления к каждой выборке частотного поддиапазона QMF в огибающей SBR, inter-Tes формирует временную огибающую среди выборок частотного поддиапазона QMF. Inter-Tes состоит из трех модулей, то есть, модуля вычисления временной огибающей между выборками частотного поддиапазона более низкой частоты, модуля настройки временной огибающей между выборками частотного поддиапазона и модуля формирования временной огибающей между выборками частотного поддиапазона. Вследствие того, что этот инструмент требует дополнительных битов, будут элементы канала, где это дополнительное потребление битов не оправдано ввиду улучшения качества и где это дополнительное потребление битов оправдано ввиду улучшения качества. Поэтому, в соответствии с настоящим изобретением, используется активация/деактивация по каждому канальному элементу этого инструмента.
Кроме того, Фиг. 6i иллюстрирует синтаксис заголовка по умолчанию SBR, и все параметры SBR в заголовке по умолчанию SBR, упомянутом на фиг. 6i, могут быть выбраны различными для каждого канального элемента. Это, например, относится к частоте начала или частоте остановки, фактически устанавливающей частоту разделительного фильтра, то есть, частоту, при которой реконструкция сигнала изменяется далеко от режима в параметрический режим. Другие признаки, такие как разрешение по частоте и разрешение частотного диапазона шума и т.д., также доступны для установки для каждого индивидуального канального элемента выборочно.
Следовательно, как обрисовано в общих чертах на фиг. 7, предпочтительно индивидуально установить данные конфигурации для особенностей стерео, для особенностей базового кодера и для особенностей SBR. Индивидуальные установки элементов не только относятся к параметрам SBR в заголовке по умолчанию SBR, как иллюстрировано на фиг. 6i но также относятся и ко всем параметрам в SbrConfig, как обрисовано в общих чертах на фиг. 6h.
Затем ссылка выполняется к Фиг. 8 для того, чтобы иллюстрировать реализацию декодера согласно Фиг. 1.
В частности, функциональные возможности модуля считывания 12 потока данных и контроллера 14 конфигурации являются подобными, как описано в контексте Фиг. 1. Однако, конфигурируемый декодер 16 теперь реализован, например, для индивидуальных экземпляров декодера, где каждый экземпляр декодера имеет вход для данных C конфигурации, предоставленных контроллером 14 конфигурации, и вход для данных D для приема соответствующих данных канальных элементов от модуля считывания 12 потока данных.
В частности, функциональные возможности согласно Фиг. 8 состоят в том, чтобы для каждого индивидуального канального элемента был предоставлен индивидуальный экземпляр декодера. Следовательно, первый экземпляр декодера конфигурируется первыми данными конфигурации как, например, элемент единственного канала для центрального канала.
Кроме того, второй экземпляр декодера конфигурируется в соответствии со вторыми данными конфигурации декодера для левого и правого каналов элемента пары каналов. Далее, третий экземпляр декодера 16c конфигурируется для другого элемента пары каналов, содержащего левый канал окружающего звука и правый канал окружающего звука. Наконец, четвертый экземпляр декодера конфигурируется для канала LFE. Следовательно, первый экземпляр декодера обеспечивает, в качестве выхода, единственный канал C. Второй и третий экземпляры декодера 16b, 16c, однако, каждый обеспечивает два канала вывода, то есть, левый и правый с одной стороны и левый окружающего звука и правый окружающего звука с другой стороны. Наконец, четвертый экземпляр декодера 16d обеспечивает, в качестве выхода, канал LFE. Все эти шесть каналов многоканального сигнала отправляются на выходной интерфейс 19 экземплярами декодера и затем наконец посылаются для хранения, например, или для воспроизведения в установки громкоговорителя 5.1, например. Ясно, что различные экземпляры декодера и различное количество экземпляров декодера требуются, когда установка громкоговорителя является отличной установкой громкоговорителя.
Фиг. 9 иллюстрирует предпочтительную реализацию способа для того, чтобы выполнить декодирование сигнала кодированного аудио в соответствии с вариантом осуществления настоящего изобретения.
На этапе 90 модуль 12 считывания потока данных начинает считывание секции 50 конфигурации согласно Фиг. 5a. Затем на основании идентификационной информации канального элемента в соответствующем блоке 50c данных конфигурации, канальный элемент идентифицируется, как обозначено на этапе 92. На этапе 94 данные конфигурации для этого идентифицированного канального элемента считываются и используются для того, чтобы фактически конфигурировать декодер или для того, чтобы сохранить для использования позднее для конфигурирования декодера, когда канальный элемент обрабатывается позднее. Это обрисовано в общих чертах на этапе 94.
На этапе 96 следующий канальный элемент идентифицируется, используя идентификатор типа элемента вторых данных конфигурации в части 50d на Фиг. 5b. Это обозначено на этапе 96 на Фиг. 9. Затем на этапе 98 данные конфигурации считываются и используются, чтобы конфигурировать фактически декодер или экземпляр декодера или считываются, чтобы альтернативно сохранить данные конфигурации для того времени, когда полезные данные для этого канального элемента должны быть декодированы.
Затем на этапе 100 выполняется цикл по всем данным конфигурации, то есть идентификация канального элемента и считывание данных конфигурации для канального элемента продолжается, пока все данные конфигурации не будут считаны.
Затем на этапах 102, 104, 106 данные полезных данных для элементов каждого канала считывают и наконец декодируют на этапе 108, используя данные C конфигурации, где данные полезных данных обозначены D. Результатом этапа 108 являются данные, выведенные, например, посредством блоков 16a - 16d, которые могут быть, например, непосредственно посланы в громкоговорители или которые должны быть синхронизирован, усилены, далее обработаны или преобразованы из цифрового в аналоговый вид, чтобы быть в конце концов посланными в соответствующие громкоговорители.
Хотя немного аспектов было описано в контексте устройства, ясно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют этапу способа или признаку этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или признака соответствующего устройства.
В зависимости от некоторых требований реализации варианты осуществления изобретения могут быть реализованы в аппаратном обеспечении или в программном обеспечении. Реализация может быть выполнена, используя цифровой носитель данных, например дискета, DVD, CD-ROM, ROM, PROM, стираемая программируемая постоянная память, EEPROM или флэш-память, имеющие электронно считываемые управляющие сигналы, сохраненные на них, которые взаимодействуют (или способны к взаимодействию) с программируемой компьютерной системой таким образом, что соответствующий способ был выполнен. Некоторые варианты осуществления согласно изобретению содержат невременный носитель информации, имеющий электронно считываемые управляющие сигналы, которые способны к взаимодействию с программируемой компьютерной системой, таким образом что один из способов, описанных здесь, выполняется.
Сигнал кодированного аудио может быть передан через проводной или беспроводный носитель передачи или может быть сохранен на машиночитаемом носителе или на невременном носителе данных.
Обычно, варианты осуществления настоящего изобретения могут быть реализованы как компьютерный программный продукт с программным кодом, причем программный код действует для того, чтобы выполнять один из способов, когда компьютерный программный продукт работает на компьютере. Программный код может например быть сохранен на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для того, чтобы выполнить один из способов, описанных здесь, сохраненных на машиночитаемом носителе.
Другими словами, вариантом осуществления изобретательного способа является поэтому, компьютерная программа, имеющая программный код для того, чтобы выполнить один из способов, описанных здесь, когда компьютерная программа работает на компьютере. Другим вариантом осуществления изобретательных способов является поэтому, носитель информации (или цифровой носитель данных, или считываемый компьютером носитель), содержащий записанную на нем компьютерную программу для того, чтобы выполнить один из способов, описанных здесь.
Дальнейший вариантом осуществления изобретательного способа является поэтому, поток данных или последовательность сигналов, представляющих компьютерную программу для того, чтобы выполнить один из способов, описанных здесь. Поток данных или последовательность сигналов могут быть, например, сконфигурированы, чтобы быть переданными через соединение передачи данных, например через Интернет.
Дальнейший вариант осуществления содержит средство обработки, например, компьютер, или программируемое логическое устройство, конфигурируемое или приспособленное, чтобы выполнять один из способов, описанных здесь.
Дальнейший вариант осуществления содержит компьютер, имеющий установленную на нем компьютерную программу для того, чтобы выполнить один из способов, описанных здесь.
В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться, чтобы выполнить некоторые или все функциональные возможности способов, описанных здесь. В некоторых вариантах осуществления программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором, чтобы выполнить один из способов, описанных здесь. Обычно, способы предпочтительно выполняются любым устройством аппаратного обеспечения.
Вышеупомянутые описанные варианты осуществления являются просто иллюстративными для принципов настоящего изобретения. Подразумевается, что модификации и изменения компоновок и деталей, описанных здесь, будут очевидны для специалистов в данной области техники. Оно предназначено, поэтому, чтобы быть ограниченным только объемом приложенной формулы изобретения, а не конкретными деталями, представленными посредством описания и объяснениями приведенных вариантов осуществления.