ОПРЕДЕЛЕНИЕ МЕЖДУ СКАЛЯРНЫМ И ВЕКТОРНЫМ КВАНТОВАНИЕМ В КОЭФФИЦИЕНТАХ АМБИОФОНИИ ВЫСШЕГО ПОРЯДКА
DETERMINING BETWEEN SCALAR AND VECTOR QUANTIZATION IN HIGHER ORDER AMBISONIC COEFFICIENTS

Данная заявка притязает на приоритет следующих предварительных заявок на патент (США):
Предварительная заявка на патент (США) № 61/994794, поданная 16 мая 2014 года, озаглавленная "CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Предварительная заявка на патент (США) № 62/004128, поданная 28 мая 2014 года, озаглавленная "CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Предварительная заявка на патент (США) № 62/019663, поданная 1 июля 2014 года, озаглавленная "CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Предварительная заявка на патент (США) № 62/027702, поданная 22 июля 2014 года, озаглавленная "CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Предварительная заявка на патент (США) № 62/028282, поданная 23 июля 2014 года, озаглавленная "CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Предварительная заявка на патент (США) № 62/032440, поданная 1 августа 2014 года, озаглавленная "CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
причем каждая из вышеуказанных предварительных заявок на патент (США) содержится по ссылке как полностью изложенная в данном документе.
Область техники, к которой относится изобретение
Данное раскрытие сущности относится к аудиоданным, а более конкретно, к кодированию амбиофонических аудиоданных высшего порядка.
Уровень техники
Сигнал на основе амбиофонии высшего порядка (HOA) (зачастую представленный посредством множества коэффициентов сферических гармоник (SHC) или других иерархических элементов) является трехмерным представлением звукового поля. HOA- или SHC-представление может представлять звуковое поле таким способом, который является независимым от геометрии локальных динамиков, используемой для того, чтобы воспроизводить многоканальный аудиосигнал, подготовленный посредством рендеринга из SHC-сигнала. SHC-сигнал также может упрощать обратную совместимость, поскольку SHC-сигнал может подготавливаться посредством рендеринга в известные и широко приспосабливаемые многоканальные форматы, к примеру, в формат 5.1-аудиоканала или формат 7.1-аудиоканала. Следовательно, SHC-представление позволяет обеспечивать лучшее представление звукового поля, которое также приспосабливает обратную совместимость.
Сущность изобретения
В общем, описываются технологии для эффективного представления V-векторов (которые могут представлять пространственную информацию, такую как ширина, форма, направление и местоположение, ассоциированного аудиообъекта) разложенного аудиосигнала на основе амбиофонии высшего порядка (HOA) на основе набора кодовых векторов. Технологии могут заключать в себе разложение V-вектора на взвешенную сумму кодовых векторов, выбор поднабора множества весовых коэффициентов и соответствующих кодовых векторов, квантование выбранного поднабора весовых коэффициентов и индексацию выбранного поднабора кодовых векторов. Технологии могут предоставлять повышенные скорости передачи битов для кодирования HOA-аудиосигналов.
В одном аспекте, способ получения множества коэффициентов амбиофонии высшего порядка (HOA), способ содержит получение из потока битов данных, указывающих множество значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества HOA-коэффициентов. Каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов во взвешенной сумме кодовых векторов, которая представляет вектор, который включает в себя набор кодовых векторов. Способ дополнительно содержит восстановление вектора на основе значений весовых коэффициентов и кодовых векторов.
В другом аспекте, устройство сконфигурировано с возможностью получать множество коэффициентов амбиофонии высшего порядка (HOA), устройство содержит один или более процессоров, сконфигурированных с возможностью получать из потока битов данные, указывающие множество значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества HOA-коэффициентов. Каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов во взвешенной сумме кодовых векторов, которая представляет вектор и которая включает в себя набор кодовых векторов. Один или более процессоров дополнительно сконфигурированы с возможностью восстанавливать вектор на основе значений весовых коэффициентов и кодовых векторов. Устройство также содержит запоминающее устройство, сконфигурированное с возможностью сохранять восстановленный вектор.
В другом аспекте, устройство сконфигурировано с возможностью получать множество коэффициентов амбиофонии высшего порядка (HOA), устройство содержит средство для получения из потока битов данных, указывающих множество значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества HOA-коэффициентов, причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов во взвешенной сумме кодовых векторов, которая представляет вектор, который включает в себя набор кодовых векторов, и средство для восстановления вектора на основе значений весовых коэффициентов и кодовых векторов.
В другом аспекте, некратковременный компьютерно-читаемый запоминающий носитель имеет сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров получать из потока битов данные, указывающие множество значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества коэффициентов амбиофонии высшего порядка (HOA), причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов во взвешенной сумме кодовых векторов, которая представляет вектор, который включает в себя набор кодовых векторов, и восстанавливать вектор на основе значений весовых коэффициентов и кодовых векторов.
В другом аспекте, способ содержит определение, на основе набора кодовых векторов, одного или более значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества коэффициентов амбиофонии высшего порядка (HOA), причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, которая представляет вектор.
В другом аспекте, устройство содержит запоминающее устройство, сконфигурированное с возможностью сохранять набор кодовых векторов, и один или более процессоров, сконфигурированных с возможностью определять, на основе набора кодовых векторов, одно или более значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества коэффициентов амбиофонии высшего порядка (HOA), причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, которая представляет вектор.
В другом аспекте, устройство содержит средство для выполнения разложения относительно множества коэффициентов амбиофонии высшего порядка (HOA), чтобы формировать разложенную версию HOA-коэффициентов. Устройство дополнительно содержит средство для определения, на основе набора кодовых векторов, одного или более значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию HOA-коэффициентов, причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, которая представляет вектор.
В другом аспекте, некратковременный компьютерно-читаемый запоминающий носитель имеет сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров определять, на основе набора кодовых векторов, одно или более значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества коэффициентов амбиофонии высшего порядка (HOA), причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, которая представляет вектор.
В другом аспекте, способ декодирования аудиоданных, указывающих множество коэффициентов амбиофонии высшего порядка (HOA), способ содержит определение того, следует выполнять векторное деквантование или скалярное деквантование относительно разложенной версии множества HOA-коэффициентов.
В другом аспекте, устройство сконфигурировано с возможностью декодировать аудиоданные, указывающие множество коэффициентов амбиофонии высшего порядка (HOA), устройство содержит запоминающее устройство, сконфигурированное с возможностью сохранять аудиоданные, и один или более процессоров, сконфигурированных с возможностью определять то, следует выполнять векторное деквантование или скалярное деквантование относительно разложенной версии множества HOA-коэффициентов.
В другом аспекте, способ кодирования аудиоданных, способ содержит определение того, следует выполнять векторное квантование или скалярное квантование относительно разложенной версии множества коэффициентов амбиофонии высшего порядка (HOA).
В другом аспекте, способ декодирования аудиоданных, способ содержит выбор одной из множества кодовых книг, которую следует использовать при выполнении векторного деквантования относительно векторно квантованного пространственного компонента звукового поля, причем векторно квантованный пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка.
В другом аспекте, устройство содержит запоминающее устройство, сконфигурированное с возможностью сохранять множество кодовых книг, которые следует использовать при выполнении векторного деквантования относительно векторно квантованного пространственного компонента звукового поля, причем векторно квантованный пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка, и один или более процессоров, сконфигурированных с возможностью выбирать одну из множества кодовых книг.
В другом аспекте, устройство содержит средство для сохранения множества кодовых книг, которые следует использовать при выполнении векторного деквантования относительно векторно квантованного пространственного компонента звукового поля, причем векторно квантованный пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка, и средство для выбора одной из множества кодовых книг.
В другом аспекте, некратковременный компьютерно-читаемый запоминающий носитель имеет сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров выбирать одну из множества кодовых книг, которую следует использовать при выполнении векторного деквантования относительно векторно квантованного пространственного компонента звукового поля, причем векторно квантованный пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка.
В другом аспекте, способ кодирования аудиоданных, способ содержит выбор одной из множества кодовых книг, которую следует использовать при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка.
В другом аспекте, устройство содержит запоминающее устройство, сконфигурированное с возможностью сохранять множество кодовых книг, которые следует использовать при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка. Устройство также содержит один или более процессоров, сконфигурированных с возможностью выбирать одну из множества кодовых книг.
В другом аспекте, устройство содержит средство для сохранения множества кодовых книг, которые следует использовать при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение векторного синтеза ко множеству коэффициентов амбиофонии высшего порядка, и средство для выбора одной из множества кодовых книг.
В другом аспекте, некратковременный компьютерно-читаемый запоминающий носитель имеет сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров выбирать одну из множества кодовых книг, которую следует использовать при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение векторного синтеза ко множеству коэффициентов амбиофонии высшего порядка.
Подробности одного или более аспектов технологий изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества технологий должны становиться очевидными из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг. 1 является схемой, иллюстрирующей базисные функции сферических гармоник различных порядков и подпорядков.
Фиг. 2 является схемой, иллюстрирующей систему, которая может выполнять различные аспекты технологий, описанных в этом раскрытии сущности.
Фиг. 3A и 3B являются блок-схемами, подробнее иллюстрирующими различные примеры устройства кодирования аудио, показанного в примере по фиг. 2, которое может выполнять различные аспекты технологий, описанных в этом раскрытии сущности.
Фиг. 4A и 4B являются блок-схемами, подробнее иллюстрирующими различные версии устройства декодирования аудио по фиг. 2.
Фиг. 5 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу устройства кодирования аудио при выполнении различных аспектов технологий векторного синтеза, описанных в этом раскрытии сущности.
Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу устройства декодирования аудио при выполнении различных аспектов технологий, описанных в этом раскрытии сущности.
Фиг. 7 и 8 являются схемами, подробнее иллюстрирующими различные версии модуля кодирования V-векторов устройства кодирования аудио по фиг. 3A или фиг. 3B.
Фиг. 9 является концептуальной схемой, иллюстрирующей звуковое поле, сформированное из V-вектора.
Фиг. 10 является концептуальной схемой, иллюстрирующей звуковое поле, сформированное из модели 25-го порядка V-вектора.
Фиг. 11 является концептуальной схемой, иллюстрирующей взвешивание каждого порядка относительно модели 25-го порядка, показанной на фиг. 10.
Фиг. 12 является концептуальной схемой, иллюстрирующей модель 5-ого порядка V-вектора, описанного выше относительно фиг. 9.
Фиг. 13 является концептуальной схемой, иллюстрирующей взвешивание каждого порядка относительно модели 5-ого порядка, показанной на фиг. 12.
Фиг. 14 является концептуальной схемой, иллюстрирующей примерные размеры примерных матриц, используемых для того, чтобы выполнять разложение по сингулярным значениям.
Фиг. 15 является схемой, иллюстрирующей примерные повышения производительности, которые могут получаться посредством использования технологий кодирования V-векторов этого раскрытия сущности.
Фиг. 16 является рядом схем, показывающих пример кодирования V-векторов, когда выполняется в соответствии с технологиями, описанными в этом раскрытии сущности.
Фиг. 17 является концептуальной схемой, иллюстрирующей примерное кодовое векторное разложение V-вектора согласно этому раскрытию сущности.
Фиг. 18 является схемой, иллюстрирующей различные способы, посредством которых 16 различных кодовых векторов могут использоваться посредством модуля кодирования V-векторов, показанного в примере одного или обоих из фиг. 10 и 11.
Фиг. 19A и 19B являются схемами, иллюстрирующими кодовые книги с 256 строками, причем каждая строка имеет 10 значений и 16 значений, соответственно, которые могут использоваться в соответствии с различными аспектами технологий, описанных в этом раскрытии сущности.
Фиг. 20 является схемой, иллюстрирующей примерный график, показывающий пороговую ошибку, используемую для того, чтобы выбирать число X* кодовых векторов в соответствии с различными аспектами технологий, описанных в этом раскрытии сущности.
Фиг. 21 является блок-схемой, иллюстрирующей примерный модуль 520 векторного квантования согласно этому раскрытию сущности.
Фиг. 22, 24 и 26 являются блок-схемами последовательности операций способа, иллюстрирующими примерную работу модуля векторного квантования при выполнении различных аспектов технологий, описанных в этом раскрытии сущности.
Фиг. 23, 25 и 27 являются блок-схемами последовательности операций способа, иллюстрирующими примерную работу модуля восстановления V-векторов при выполнении различных аспектов технологий, описанных в этом раскрытии сущности.
Подробное описание изобретения
В общем, описываются технологии для эффективного представления V-векторов (которые могут представлять пространственную информацию, такую как ширина, форма, направление и местоположение, ассоциированного аудиообъекта) разложенного аудиосигнала на основе амбиофонии высшего порядка (HOA) на основе набора кодовых векторов. Технологии могут заключать в себе разложение V-вектора на взвешенную сумму кодовых векторов, выбор поднабора множества весовых коэффициентов и соответствующих кодовых векторов, квантование выбранного поднабора весовых коэффициентов и индексацию выбранного поднабора кодовых векторов. Технологии могут предоставлять повышенные скорости передачи битов для кодирования HOA-аудиосигналов.
Эволюция объемного звука в наше время обеспечивает доступность множества выходных форматов для развлечений. Примеры таких потребительских форматов объемного звука являются главным образом "канально"-ориентированными в том, что они неявно указывают подачи звука в громкоговорители в определенных геометрических координатах. Потребительские форматы объемного звука включают в себя популярный 5.1-формат (который включает в себя следующие шесть каналов: передний левый (FL), передний правый (FR), центральный или передний центральный, задний левый или левый объемного звучания, задний правый или правый объемного звучания и канал низкочастотных эффектов (LFE)), развивающийся 7.1-формат, различные форматы, которые включают в себя высотные динамики, такие как 7.1.4-формат и 22.2-формат (например, для использования со стандартом телевидения сверхвысокой четкости). Непотребительские форматы могут охватывать любое число динамиков (в симметричных и несимметричных геометриях), зачастую называемых "массивами объемного звучания". Один пример такого массива включает в себя 32 громкоговорителя, позиционированные в координатах по углам усеченного икосаэдра.
Входные данные для будущего MPEG-кодера необязательно представляют собой один из трех возможных форматов: (i) традиционное канально-ориентированное аудио (как пояснено выше), которое предназначено для воспроизведения через громкоговорители в заранее указываемых позициях; (ii) объектно-ориентированное аудио, которое заключает в себе дискретные данные импульсно-кодовой модуляции (PCM) для одних аудиообъектов с ассоциированными метаданными, содержащими их координаты местоположения (в числе другой информации); и (iii) сцено-ориентированное аудио, которое заключает в себе представление звукового поля с использованием коэффициентов базисных функций сферических гармоник (также называемых "коэффициентами сферических гармоник" или SHC, "амбиофонией высшего порядка" или HOA, и "HOA-коэффициентами"). Будущий MPEG-кодер подробнее описан в документе, озаглавленном "Call for Proposals for 3D Audio", от Международной организации по Стандартизации/Международной электротехнической комиссии (ISO)/(IEC) JTC1/SC29/WG11/N13411, выпущенном в январе 2013 года в Женеве, Швейцария и доступном по адресу http://mpeg.chiariglione.org/sites/default/files/files/standards/parts/does/w13411.zip.
На рынке предусмотрены различные канально-ориентированные форматы "объемного звука". Они варьируются, например, от 5.1-системы домашнего кинотеатра (которая является наиболее успешной с точки зрения проведения вторжений в гостиные за рамками стерео) до 22.2-системы, разработанной посредством NHK (Nippon Hoso Kyokai или Японской вещательной корпорации). Создатели контента (например, голливудские студии) хотят производить звуковую дорожку для фильма один раз и не тратить усилия на ее повторное сведение для каждой конфигурации динамиков. В последнее время, организации по разработке стандартов рассматривают способы, которыми можно предоставлять кодирование в стандартизированный поток битов и последующее декодирование, которое является адаптируемым и независимым от геометрии (и числа) динамиков и акустических условий в местоположении воспроизведения (предусматривающих модуль рендеринга).
Чтобы предоставлять такую гибкость для создателей контента, иерархический набор элементов может использоваться для того, чтобы представлять звуковое поле. Иерархический набор элементов может означать набор элементов, в котором элементы упорядочиваются таким образом, что базовый набор элементов более низкого порядка предоставляет полное представление моделируемого звукового поля. По мере того, как набор расширяется, так что он включает в себя элементы высшего порядка, представление становится более подробным, повышая разрешение.
Один пример иерархического набора элементов представляет собой набор коэффициентов сферических гармоник (SHC). Следующее выражение демонстрирует описание или представление звукового поля с использованием SHC:
t
c
n
n
m
Выражение показывает то, что давление  в любой точке  звукового поля, во время , может быть представлено уникально посредством SHC, . Здесь, ,  является скоростью звука (~343 м/с),  является опорной точкой (или точкой наблюдения),  является сферической функцией Бесселя порядка , и  являются базисными функциями сферических гармоник порядка  и подпорядка . Можно распознавать, что член в квадратных скобках является представлением в частотной области сигнала (т.е. ), которое может быть аппроксимировано посредством различных частотно-временных преобразований, таких как дискретное преобразование Фурье (DFT), дискретное косинусное преобразование (DCT) или вейвлет-преобразование. Другие примеры иерархических наборов включают в себя, задает коэффициентов вейвлет-преобразования и другие наборы коэффициентов базисных функций с переменным разрешением.
n=
n=
m
Фиг. 1 является схемой, иллюстрирующей базисные функции сферических гармоник от нулевого порядка (0) до четвертого порядка (4). Как можно видеть, для каждого порядка, предусмотрено расширение подпорядков , которые показаны, но не отмечены явно в примере по фиг. 1, для упрощения иллюстрации.
2
SHC  могут физически получаться (например, записываться) посредством различных конфигураций массивов микрофонов, либо альтернативно, они могут извлекаться из канально-ориентированных или объектно-ориентированных описаний звукового поля. SHC представляет сцено-ориентированное аудио, при котором SHC может вводиться в аудиокодер для того, чтобы получать кодированный SHC, что может способствовать более эффективной передаче или хранению. Например, может использоваться представление четвертого порядка, предусматривающее (1+4) (25 и, следовательно, четвертого порядка) коэффициентов.
Как отмечено выше, SHC может извлекаться из записи с микрофона с использованием массива микрофонов. Различные примеры того, как SHC может извлекаться из массивов микрофонов, описываются в работе автора Poletti, M. "Three-Dimensional Surround sound Systems Based on Spherical Harmonics", J. Audio Eng. Soc., издание 53, № 11, ноябрь 2005 года, стр. 1004-1025.
Чтобы иллюстрировать то, как SHC могут извлекаться из объектно-ориентированного описания, рассмотрим следующее уравнение. Коэффициенты  для звукового поля, соответствующего отдельному аудиообъекту, могут выражаться следующим образом:
,
где i является, является сферической функцией Ганкеля (второго вида) порядка n, и  является местоположением объекта. Знание энергии  источника объектов в качестве функции от частоты (например, с использованием технологий частотно-временного анализа, таких как выполнение быстрого преобразования Фурье для PCM-потока) обеспечивает возможность преобразовывать каждый PCM-объект и соответствующее местоположение в SHC . Дополнительно, можно показывать (поскольку выше приведено линейное и ортогональное разложение) то, что  коэффициентов для каждого объекта являются дополнением. Таким образом, множество PCM-объектов может быть представлено посредством  коэффициентов (например, в качестве суммы векторов коэффициентов для отдельных объектов). По существу, коэффициенты содержат информацию относительно звукового поля (давления в качестве функции от трехмерных координат), и выше представлено преобразование из отдельных объектов в представление полного звукового поля около точки  наблюдения. Оставшиеся чертежи описываются ниже в контексте объектно-ориентированного и SHC-ориентированного кодирования аудио.
Фиг. 2 является схемой, иллюстрирующей систему 10, которая может выполнять различные аспекты технологий, описанных в этом раскрытии сущности. Как показано в примере по фиг. 2, система 10 включает в себя устройство 12 создателя контента и устройство 14 потребителя контента. Хотя описаны в контексте устройства 12 создателя контента и устройства 14 потребителя контента, технологии могут реализовываться в любом контексте, в котором SHC (которые также могут упоминаться в качестве HOA-коэффициентов) или любое другое иерархическое представление звукового поля кодируются для того, чтобы формировать поток битов, представляющий аудиоданные. Кроме того, устройство 12 создателя контента может представлять любую форму вычислительного устройства, допускающего реализацию технологий, описанных в этом раскрытии сущности, включающего в себя переносной телефон (или сотовый телефон), планшетный компьютер, смартфон или настольный компьютер в качестве нескольких примеров. Аналогично, устройство 14 потребителя контента может представлять любую форму вычислительного устройства, допускающего реализацию технологий, описанных в этом раскрытии сущности, включающего в себя переносной телефон (или сотовый телефон), планшетный компьютер, смартфон, абонентскую приставку или настольный компьютер в качестве нескольких примеров.
Устройство 12 создателя контента может управляться посредством киностудии или другого объекта, который может формировать многоканальный аудиоконтент для потребления операторами устройств потребителя контента, таких как устройство 14 потребителя контента. В некоторых примерах, устройство 12 создателя контента может управляться отдельным пользователем, который хочет сжимать HOA-коэффициенты 11. Зачастую, создатель контента формирует аудиоконтент в сочетании с видеоконтентом. Устройство 14 потребителя контента может управляться человеком. Устройство 14 потребителя контента может включать в себя систему 16 воспроизведения аудио, которая может означать любую форму системы воспроизведения аудио, допускающей рендеринг SHC для воспроизведения в качестве многоканального аудиоконтента.
Устройство 12 создателя контента включает в себя систему 18 редактирования аудио. Устройство 12 создателя контента получает записи 7 вживую в различных форматах (в том числе непосредственно в качестве HOA-коэффициентов) и аудиообъекты 9, которые устройство 12 создателя контента может редактировать с использованием системы 18 редактирования аудио. Микрофон 5 может захватывать записи 7 вживую. Создатель контента, в ходе процесса редактирования, может подготавливать посредством рендеринга HOA-коэффициенты 11 из аудиообъектов 9, прослушивая подготовленные посредством рендеринга подачи звука в динамики в попытке идентифицировать различные аспекты звукового поля, которые требуют дополнительного редактирования. Устройство 12 создателя контента затем может редактировать HOA-коэффициенты 11 (потенциально косвенно посредством манипулирования различными аудиообъектами 9, из которых исходные HOA-коэффициенты могут извлекаться способом, описанным выше). Устройство 12 создателя контента может использовать систему 18 редактирования аудио для того, чтобы формировать HOA-коэффициенты 11. Система 18 редактирования аудио представляет любую систему, допускающую редактирование аудиоданных и вывод аудиоданных в качестве одного или более исходных коэффициентов сферических гармоник.
Когда процесс редактирования завершен, устройство 12 создателя контента может формировать поток 21 битов на основе HOA-коэффициентов 11. Иными словами, устройство 12 создателя контента включает в себя устройство 20 кодирования аудио, которое представляет устройство, сконфигурированное с возможностью кодировать или иным образом сжимать HOA-коэффициенты 11 в соответствии с различными аспектами технологий, описанных в этом раскрытии сущности, чтобы формировать поток 21 битов. Устройство 20 кодирования аудио может формировать поток 21 битов для передачи, в качестве одного примера, через канал передачи, который может представлять собой проводной или беспроводной канал, устройство хранения данных и т.п. Поток 21 битов может представлять кодированную версию HOA-коэффициентов 11 и может включать в себя первичный поток битов и другой боковой поток битов, который может упоминаться в качестве информации боковых каналов.
Хотя показано на фиг. 2 в качестве непосредственной передачи в устройство 14 потребителя контента, устройство 12 создателя контента может выводить поток 21 битов в промежуточное устройство, позиционированное между устройством 12 создателя контента и устройством 14 потребителя контента. Промежуточное устройство может сохранять поток 21 битов для последующей доставки в устройство 14 потребителя контента, которое может запрашивать поток битов. Промежуточное устройство может содержать файловый сервер, веб-сервер, настольный компьютер, переносной компьютер, планшетный компьютер, мобильный телефон, смартфон или любое другое устройство, допускающее сохранение потока битов 21 для последующего извлечения посредством аудиодекодера. Промежуточное устройство может постоянно размещаться в сети доставки контента, допускающей потоковую передачу потока 21 битов (и возможно в сочетании с передачей соответствующего потока битов видеоданных) абонентам, таким как устройство 14 потребителя контента, запрашивающее поток 21 битов.
Альтернативно, устройство 12 создателя контента может сохранять поток 21 битов на запоминающий носитель, такой как компакт-диск, цифровой видеодиск, диск по стандарту видео высокой четкости или другие запоминающие носители, большинство которых допускает считывание посредством компьютера и, следовательно, может упоминаться в качестве компьютерно-читаемых запоминающих носителей или некратковременных компьютерно-читаемых запоминающих носителей. В этом контексте, канал передачи может означать каналы, посредством которых передается контент, сохраненный на носителях (и может включать в себя розничные магазины и другой механизм доставки через магазины). В любом случае, технологии этого раскрытия сущности в силу этого не должны быть ограничены в этом отношении примером по фиг. 2.
Как подробнее показано в примере по фиг. 2, устройство 14 потребителя контента включает в себя систему 16 воспроизведения аудио. Система 16 воспроизведения аудио может представлять любую систему воспроизведения аудио, допускающую воспроизведение многоканальных аудиоданных. Система 16 воспроизведения аудио может включать в себя определенное число различных модулей 22 рендеринга. Модули 22 рендеринга могут предоставлять различную форму рендеринга, причем различные формы рендеринга могут включать в себя один или более из различных способов выполнения векторного амплитудного панорамирования (VBAP) и/или один или более из различных способов выполнения синтеза звукового поля. При использовании в данном документе, "A и/или B" означает "A или B" или "как A, так и B".
Система 16 воспроизведения аудио дополнительно может включать в себя устройство 24 декодирования аудио. Устройство 24 декодирования аудио может представлять устройство, сконфигурированное с возможностью декодировать HOA-коэффициенты 11' из потока 21 битов, причем HOA-коэффициенты 11' могут быть аналогичными HOA-коэффициентам 11, но отличаться вследствие операций с потерями (например, квантования) и/или передачи через канал передачи. Система 16 воспроизведения аудио, после декодирования потока битов 21, может получать HOA-коэффициенты 11' и подготавливать посредством рендеринга HOA-коэффициенты 11' с тем, чтобы выводить подачи 25 звука в громкоговорители. Подачи 25 звука в громкоговорители могут активировать один или более громкоговорителей (которые не показаны в примере по фиг. 2 для упрощения иллюстрации).
Чтобы выбирать надлежащий модуль рендеринга или, в некоторых случаях, формировать надлежащий модуль рендеринга, система 16 воспроизведения аудио может получать информацию 13 громкоговорителей, указывающую число громкоговорителей и/или пространственную геометрию громкоговорителей. В некоторых случаях, система 16 воспроизведения аудио может получать информацию 13 громкоговорителей с использованием опорного микрофона и управления громкоговорителей таким образом, чтобы динамически определять информацию 13 громкоговорителей. В других случаях или в сочетании с динамическим определением информации 13 громкоговорителей, система 16 воспроизведения аудио может указывать пользователю взаимодействовать с системой 16 воспроизведения аудио и вводить информацию 13 громкоговорителей.
Система 16 воспроизведения аудио затем может выбирать один из модулей 22 рендеринга аудио на основе информации 13 громкоговорителей. В некоторых случаях, система 16 воспроизведения аудио, когда ни один из модулей 22 рендеринга аудио не находится в рамках некоторого порогового показателя подобия (с точки зрения геометрии громкоговорителя) с геометрией громкоговорителя, указываемой в информации 13 громкоговорителей, может формировать один из модулей 22 рендеринга аудио на основе информации 13 громкоговорителей. Система 16 воспроизведения аудио, в некоторых случаях, может формировать один из модулей 22 рендеринга аудио на основе информации 13 громкоговорителей без попытки сначала выбирать существующий из модулей 22 рендеринга аудио. Один или более динамиков 3 затем могут воспроизводить подготовленные посредством рендеринга подачи 25 звука в громкоговорители.
Фиг. 3A является блок-схемой, подробнее иллюстрирующей один пример устройства 20 кодирования аудио, показанного в примере по фиг. 2, которое может выполнять различные аспекты технологий, описанных в этом раскрытии сущности. Устройство 20 кодирования аудио включает в себя модуль 26 анализа контента, модуль 27 векторного разложения и модуль 28 направленного разложения. Хотя кратко описывается ниже, более подробная информация относительно устройства 20 кодирования аудио и различных аспектов сжатия или иного кодирования HOA-коэффициентов содержится в публикации международной заявки на патент номер WO 2014/194099, озаглавленной "INTERPOLATION FOR DECOMPOSED REPRESENTATIONS OF A SOUND FIELD", поданной 29 мая 2014 года.
Модуль 26 анализа контента представляет модуль, сконфигурированный с возможностью анализировать контент HOA-коэффициентов 11, чтобы идентифицировать то, представляют HOA-коэффициенты 11 контент, сформированный из записи вживую или аудиообъекта. Модуль 26 анализа контента может определять то, сформированы HOA-коэффициенты 11 из записи фактического звукового поля или из искусственного аудиообъекта. В некоторых случаях, когда кадрированные HOA-коэффициенты 11 сформированы из записи, модуль 26 анализа контента передает HOA-коэффициенты 11 в модуль 27 векторного разложения. В некоторых случаях, когда кадрированные HOA-коэффициенты 11 сформированы из синтетического аудиообъекта, модуль 26 анализа контента передает HOA-коэффициенты 11 в модуль 28 направленного синтеза. Модуль 28 направленного синтеза может представлять модуль, сконфигурированный с возможностью выполнять направленный синтез HOA-коэффициентов 11, чтобы формировать направленный поток 21 битов.
Как показано в примере по фиг. 3A, модуль 27 векторного разложения может включать в себя модуль 30 линейного обратимого преобразования (LIT), модуль 32 вычисления параметров, модуль 34 переупорядочения, модуль 36 выбора приоритетных компонентов, модуль 38 энергетической компенсации, модуль 40 психоакустического аудиокодера, модуль 42 формирования потоков битов, модуль 44 анализа звукового поля, модуль 46 уменьшения числа коэффициентов, модуль 48 выбора фоновых компонентов (BG), модуль 50 пространственно-временной интерполяции и модуль 52 кодирования V-векторов.
k
D
M
2
Модуль 30 линейного обратимого преобразования (LIT) принимает HOA-коэффициенты 11 в форме HOA-каналов, причем каждый канал представляет блок или кадр коэффициента, ассоциированного с данным порядком, подпорядком сферических базисных функций (которые могут обозначаться как HOA[k], где  может обозначать текущий кадр или блок выборок). Матрица HOA-коэффициентов 11 может иметь размеры :  x (N+1).
LIT-модуль 30 может представлять модуль, сконфигурированный с возможностью выполнять форму анализа, называемого в качестве разложения по сингулярным значениям. Хотя описаны относительно SVD, технологии, описанные в этом раскрытии сущности, могут выполняться относительно любого аналогичного преобразования или разложения, которое предоставляет наборы линейно некоррелированного, энергетического уплотненного вывода. Кроме того, ссылка на "наборы" в этом раскрытии сущности, в общем, имеет намерение ссылаться на ненулевые наборы, если прямо не указано обратное, и не имеет намерение ссылаться на классическое математическое определение наборов, которое включает в себя так называемый "пустой набор". Альтернативное преобразование может содержать анализ главных компонентов, который зачастую упоминается в качестве "PCA". В зависимости от контекста, PCA может упоминаться посредством ряда различных названий, таких как дискретное преобразование Карунена-Лоэва, преобразование Хотеллинга, собственное ортогональное разложение (POD) и разложение по собственным значениям (EVD), в качестве нескольких примеров. Свойства таких операций, которые способствуют базовой цели сжатия аудиоданных, представляют собой "энергетическое уплотнение" и "декорреляцию" многоканальных аудиоданных.
В любом случае, при условии, что LIT-модуль 30 выполняет разложение по сингулярным значениям (которое, снова, может упоминаться в качестве "SVD") в целях примера, LIT-модуль 30 может преобразовывать HOA-коэффициенты 11 в два или более наборов преобразованных HOA-коэффициентов. "Наборы" преобразованных HOA-коэффициентов могут включать в себя векторы преобразованных HOA-коэффициентов. В примере по фиг. 3A, LIT-модуль 30 может выполнять SVD относительно HOA-коэффициентов 11, чтобы формировать так называемую V-матрицу, S-матрицу и U-матрицу. SVD, в линейной алгебре, может представлять факторизацию действительной или комплексной матрицы X y на z (где X может представлять многоканальные аудиоданные, такие как HOA-коэффициенты 11) в следующей форме:
X=USV*
U может представлять действительную или комплексную унитарную матрицу y на y, где y столбцов U известны как левые сингулярные вектора многоканальных аудиоданных. S может представлять прямоугольную диагональную матрицу y на z с неотрицательными действительными числами на диагонали, где диагональные значения S известны как сингулярные значения многоканальных аудиоданных. V* (которая может обозначать сопряженную транспонированную матрицу относительно V) может представлять действительную или комплексную унитарную матрицу z на z, где z столбцов V* известны как правые сингулярные векторы многоканальных аудиоданных.
В некоторых примерах, V*-матрица в математическом SVD-выражении, упомянутом выше, обозначается как сопряженная транспонированная матрица относительно V-матрицы, чтобы отражать то, что SVD может применяться к матрицам, содержащим комплексные числа. При применении к матрицам, содержащим только действительные числа, комплексно-сопряженная матрица относительно V-матрицы (или, другими словами, V*-матрица) может рассматриваться в качестве транспонированной матрицы относительно V-матрицы. Ниже предполагается, для упрощения иллюстрации, что HOA-коэффициенты 11 содержат действительные числа, так что в итоге V-матрица выводится через SVD, а не через V*-матрицу. Кроме того, хотя обозначается в качестве V-матрицы в этом раскрытии сущности, следует понимать, что ссылка на V-матрицу означает транспонированную матрицу относительно V-матрицы при необходимости. Хотя предполагается в качестве V-матрицы, технологии могут применяться аналогично HOA-коэффициентам 11, имеющим комплексные коэффициенты, причем вывод SVD представляет собой V*-матрицу. Соответственно, технологии не должны быть ограничены в том отношении, чтобы предоставлять применение SVD только для того, чтобы формировать V-матрицу, и могут включать в себя применение SVD к HOA-коэффициентам 11, имеющим комплексные компоненты, чтобы формировать V*-матрицу.
M
2
2
2
Таким образом, LIT-модуль 30 может выполнять SVD относительно HOA-коэффициентов 11, чтобы выводить US[k]-векторы 33 (которые могут представлять комбинированную версию векторов S и векторов U), имеющие размеры D:  x (N+1), и V[k]-векторы 35, имеющие размеры D: (N+1) x (N+1). Отдельные векторные элементы в US[k]-матрице также могут называться, тогда как отдельные векторы V[k]-матрицы также могут называться.
2
Анализ U-, S- и V-матриц может раскрывать то, что матрицы переносят или представляют пространственные и временные характеристики базового звукового поля, представленного выше посредством X. Каждый из N-векторов в U (длины в M выборок) может представлять нормализованные разделенные аудиосигналы в качестве функции от времени (для периода времени, представленного посредством M выборок), которые являются ортогональными друг к другу и которые развязаны от пространственных характеристик (которые также могут упоминаться в качестве направленной информации). Пространственные характеристики, представляющие пространственную форму и позицию (r, theta, phi), вместо этого могут быть представлены посредством отдельных i-ых векторов, , в V-матрице (каждый с длиной (N+1)). Отдельные элементы каждого из  векторов могут представлять HOA-коэффициент, описывающий форму (включающую в себя ширину) и позицию звукового поля для ассоциированного аудиообъекта. Векторы в U-матрице и в V-матрице нормализуются таким образом, что их среднеквадратические энергии равны единице. Энергия аудиосигналов в U в силу этого представлена посредством диагональных элементов в S. Умножение U и S, чтобы формировать US[k] (с отдельными векторными элементами), в силу этого представляет аудиосигнал с энергиями. Способность SVD-разложения развязывать временные аудиосигналы (в U), их энергии (в S) и их пространственные характеристики (в V) позволяет поддерживать различные аспекты технологий, описанных в этом раскрытии сущности. Дополнительно, модель синтезирования базовых HOA[k]-коэффициентов, X, посредством векторного умножения US[k] и V[k] дает начало термину "векторное разложение", который используется в этом документе.
Хотя описывается в качестве выполнения непосредственно относительно HOA-коэффициентов 11, LIT-модуль 30 может применять линейное обратимое преобразование к производным HOA-коэффициентов 11. Например, LIT-модуль 30 может применять SVD относительно матрицы спектральной плотности мощности, извлекаемой из HOA-коэффициентов 11. Посредством выполнения SVD относительно спектральной плотности мощности (PSD) HOA-коэффициентов, а не самих коэффициентов, LIT-модуль 30 потенциально может уменьшать вычислительную сложность выполнения SVD с точки зрения одного или более циклов процессора и пространства для хранения при достижении идентичной исходной эффективности кодирования аудио, как если SVD применяется непосредственно к HOA-коэффициентам.
R
θ
ϕ
r
e
R
θ
ϕ
r
e
Модуль 32 вычисления параметров представляет модуль, сконфигурированный с возможностью вычислять различные параметры, такие как параметр (R) корреляции, параметры (θ, ϕ, r) направленных свойств и энергетическое свойство (e). Каждый из параметров для текущего кадра может обозначаться как [k], [k], [k], [k] и [k]. Модуль 32 вычисления параметров может выполнять энергетический анализ и/или корреляцию (или так называемую взаимную корреляцию) относительно US[k]-векторов 33, чтобы идентифицировать параметры. Модуль 32 вычисления параметров также может определять параметры для предыдущего кадра, причем параметры предыдущего кадра могут обозначаться как [k-1], [k-1], [k-1], [k-1] и [k-1], на основе предыдущего кадра US[k-1]-вектора и V[k-1]-векторов. Модуль 32 вычисления параметров может выводить текущие параметры 37 и предыдущие параметры 39 в модуль 34 переупорядочения.
Параметры, вычисленные посредством модуля 32 вычисления параметров, могут использоваться посредством модуля 34 переупорядочения для того, чтобы переупорядочивать аудиообъекты, чтобы представлять их естественную оценку или непрерывность во времени. Модуль 34 переупорядочения может сравнивать каждый из параметров 37 из первых US[k]-векторов 33 по перегибам с каждым из параметров 39 для вторых US[k-1]-векторов 33. Модуль 34 переупорядочения может переупорядочивать (с использованием, в качестве одного примера, венгерского алгоритма) различные векторы в US[k]-матрице 33 и V[k]-матрице 35 на основе текущих параметров 37 и предыдущих параметров 39, чтобы выводить переупорядоченную US[k]-матрицу 33' (которая может обозначаться математически в качестве) и переупорядоченную V[k]-матрицу 35' (которая может обозначаться математически в качестве) в модуль 36 выбора приоритетного звука (или преобладающего звука, PS) ("модуль 36 выбора приоритетных компонентов") и модуль 38 энергетической компенсации.
TOT
Модуль 44 анализа звукового поля может представлять модуль, сконфигурированный с возможностью выполнять анализ звукового поля относительно HOA-коэффициентов 11, с тем чтобы потенциально достигать целевой скорости 41 передачи битов. Модуль 44 анализа звукового поля, на основе анализа и/или на принимаемой целевой скорости 41 передачи битов, может определять общее число экземпляров психоакустического кодера (которое может быть функцией от общего числа (BG) окружающих или фоновых каналов и числа приоритетных каналов или, другими словами, преобладающих каналов). Общее число экземпляров психоакустического кодера может обозначаться как numHOATransportChannels.
BG
2
2
Модуль 44 анализа звукового поля также может определять, в свою очередь, чтобы потенциально достигать целевой скорости 41 передачи битов, общее число (nFG) 45 приоритетных каналов, минимальный порядок фонового (или, другими словами, окружающего) звукового поля (N или, альтернативно, MinAmbHOAorder), соответствующее число фактических каналов, представляющих минимальный порядок фонового звукового поля (nBGa=(MinAmbHOAorder+1)), и индексы (i) дополнительных BG HOA-каналов для отправки (что может совместно обозначаться как информация 43 фоновых каналов в примере по фиг. 3A). Информация 42 фоновых каналов также может упоминаться в качестве информации 43 окружающих каналов. Каждый из каналов, который остается от numHOATransportChannels-nBGa, может представлять собой "дополнительный фоновый/окружающий канал", "активный векторный преобладающий канал", "активный направленный преобладающий сигнал" или "абсолютно неактивный". В одном аспекте, типы каналов могут указываться (в качестве синтаксического элемента ChannelType) посредством двух битов (например, 00: направленный сигнал; 01: векторный преобладающий сигнал; 10: дополнительный окружающий сигнал; 11: неактивный сигнал). Общее число фоновых или окружающих сигналов, nBGa, может задаваться посредством (MinAmbHOAorder+1)+число раз, когда индекс 10 (в вышеприведенном примере) появляется в качестве типа канала в потоке битов для этого кадра.
Модуль 44 анализа звукового поля может выбирать число фоновых (или, другими словами, окружающих) каналов и число приоритетных (или, другими словами, преобладающих) каналов на основе целевой скорости 41 передачи битов, выбирая большее число фоновых и/или приоритетных каналов, когда целевая скорость 41 передачи битов является относительно более высокой (например, когда целевая скорость 41 передачи битов равна или превышает 512 кбит/с). В одном аспекте, numHOATransportChannels может задаваться равным 8, тогда как MinAmbHOAorder может задаваться равным 1 в секции заголовка потока битов. В этом сценарии, в каждом кадре, четыре канала могут выделяться для того, чтобы представлять фоновую или окружающую часть звукового поля, тогда как другие 4 канала могут, на покадровой основе, варьироваться по типу канала, например, использоваться либо в качестве дополнительного фонового/окружающего канала, либо в качестве приоритетного/преобладающего канала. Приоритетные/преобладающие сигналы могут представлять собой одно из векторных или направленных сигналов, как описано выше.
В некоторых случаях, общее число векторных преобладающих сигналов для кадра может задаваться посредством числа раз, когда индекс ChannelType равен 01 в потоке битов этого кадра. В вышеуказанном аспекте, для каждого дополнительного фонового/окружающего канала (например, соответствующего ChannelType в 10), согласно информации того, какие из возможных HOA-коэффициентов (помимо первых четырех) могут быть представлены в этом канале. Информация, для HOA-контента четвертого порядка, может представлять собой индекс для того, чтобы указывать HOA-коэффициенты 5-25. Первые четыре окружающих HOA-коэффициента 1-4 могут отправляться все время, когда minAmbHOAorder задается равным 1, следовательно, устройство кодирования аудио, возможно, должно только указывать один из дополнительного окружающего HOA-коэффициента, имеющего индекс 5-25. Информация в силу этого может отправляться с использованием 5-битового синтаксического элемента (для контента четвертого порядка), который может обозначаться как CodedAmbCoeffIdx. В любом случае, модуль 44 анализа звукового поля выводит информацию 43 фоновых каналов и HOA-коэффициенты 11 в модуль 36 выбора фоновых компонентов (BG), информацию 43 фоновых каналов в модуль 46 уменьшения числа коэффициентов и модуль 42 формирования потоков битов и nFG 45 в модуль 36 выбора приоритетных компонентов.
BG
BG
BG
M
nBGa
2
Модуль 48 выбора фоновых компонентов может представлять модуль, сконфигурированный с возможностью определять фоновые или окружающие HOA-коэффициенты 47 на основе информации фоновых каналов (например, фонового звукового поля (N) и числа (nBGa) и индексов (i) дополнительных BG HOA-каналов для отправки). Например, когда N равен единице, модуль 48 выбора фоновых компонентов может выбирать HOA-коэффициенты 11 для каждой выборки аудиокадра, имеющего порядок, равный или меньший единицы. Модуль 48 выбора фоновых компонентов, в этом примере, затем может выбирать HOA-коэффициенты 11, имеющие индекс, идентифицированный посредством одного из индексов (i), в качестве дополнительных BG HOA-коэффициентов, причем nBGa предоставляется в модуль 42 формирования потоков битов для того, чтобы указываться в потоке 21 битов, с тем чтобы обеспечивать возможность устройству декодирования аудио, к примеру, устройству 24 декодирования аудио, показанному в примере фиг. 4A и 4B, синтаксически анализировать фоновые HOA-коэффициенты 47 из потока 21 битов. Модуль 48 выбора фоновых компонентов затем может выводить окружающие HOA-коэффициенты 47 в модуль 38 энергетической компенсации. Окружающие HOA-коэффициенты 47 могут иметь размеры D:  x [(N+1)+]. Окружающие HOA-коэффициенты 47 также могут упоминаться в качестве "окружающих HOA-коэффициентов 47", причем каждый из окружающих HOA-коэффициентов 47 соответствует отдельному окружающему HOA-каналу 47, который должен кодироваться посредством модуля 40 психоакустического аудиокодера.
k
FG
k
M
1,..., nFG
1,..., nfG
k
2
Модуль 36 выбора приоритетных компонентов может представлять модуль, сконфигурированный с возможностью выбирать переупорядоченную US[k]-матрицу 33' и переупорядоченную V[k]-матрицу 35', которые представляют приоритетные или отличительные компоненты звукового поля на основе nFG 45 (которые могут представлять один или более индексов, идентифицирующих приоритетные векторы). Модуль 36 выбора приоритетных компонентов может выводить nFG-сигналы 49 (которые могут обозначаться как переупорядоченные US[] 49, [] 49 или  49) в модуль 40 психоакустического аудиокодера, причем nFG-сигналы 49 могут иметь размеры D:  x nFG и представлять моноаудиообъекты. Модуль 36 выбора приоритетных компонентов также может выводить переупорядоченную V[k]-матрицу 35' (или  35'), соответствующую приоритетным компонентам звукового поля, в модуль 50 пространственно-временной интерполяции, причем поднабор переупорядоченной V[k]-матрицы 35', соответствующей приоритетным компонентам, может обозначаться как приоритетная V[k]-матрица 51 (которая может математически обозначаться в качестве), имеющая размеры D: (N+1) x nFG.
k
Модуль 38 энергетической компенсации может представлять модуль, сконфигурированный с возможностью выполнять энергетическую компенсацию относительно окружающих HOA-коэффициентов 47, чтобы компенсировать энергетические потери вследствие удаления различных HOA-каналов посредством модуля 48 выбора фоновых компонентов. Модуль 38 энергетической компенсации может выполнять энергетический анализ относительно одного или более из переупорядоченной US[k]-матрицы 33', переупорядоченной V[k]-матрицы 35', nFG-сигналов 49, приоритетных V[k]-векторов 51 и окружающих HOA-коэффициентов 47 и затем выполнять энергетическую компенсацию на основе энергетического анализа, чтобы формировать окружающие HOA-коэффициенты 47' после энергетической компенсации. Модуль 38 энергетической компенсации может выводить окружающие HOA-коэффициенты 47' после энергетической компенсации в модуль 40 психоакустического аудиокодера.
k
1
k
k
k
k
k
Модуль 50 пространственно-временной интерполяции может представлять модуль, сконфигурированный с возможностью принимать приоритетные V[k]-векторы 51 для k-ого кадра и приоритетные V[k-1]-векторы 51k- для предыдущего кадра (отсюда и обозначение k-1) и выполнять пространственно-временную интерполяцию, чтобы формировать интерполированные приоритетные V[k]-векторы. Модуль 50 пространственно-временной интерполяции может рекомбинировать nFG-сигналы 49 с приоритетными V[k]-векторами 51, чтобы восстанавливать переупорядоченные приоритетные HOA-коэффициенты. Модуль 50 пространственно-временной интерполяции затем может делить переупорядоченные приоритетные HOA-коэффициенты на интерполированные V[k]-векторы, чтобы формировать интерполированные nFG-сигналы 49'. Модуль 50 пространственно-временной интерполяции также может выводить приоритетные V[k]-векторы 51, которые использованы для того, чтобы формировать интерполированные приоритетные V[k]-векторы, так что устройство декодирования аудио, к примеру, устройство 24 декодирования аудио, может формировать интерполированные приоритетные V[k]-векторы и за счет этого восстанавливать приоритетные V[k]-векторы 51. Приоритетные V[k]-векторы 51, используемые для того, чтобы формировать интерполированные приоритетные V[k]-векторы, обозначаются как оставшиеся приоритетные V[k]-векторы 53. Чтобы обеспечивать то, что идентичные V[k] и V[k-1] используются в кодере и декодере (чтобы создавать интерполированные векторы V[k]), квантованные/деквантованные версии векторов могут использоваться в кодере и декодере. Модуль 50 пространственно-временной интерполяции может выводить интерполированные nFG-сигналы 49' в модуль 46 психоакустического аудиокодера и интерполированные приоритетные V[k]-векторы 51 в модуль 46 уменьшения числа коэффициентов.
2
2
2
2
BG
TOT
BG
BG
BG
Модуль 46 уменьшения числа коэффициентов может представлять модуль, сконфигурированный с возможностью выполнять уменьшение числа коэффициентов относительно оставшихся приоритетных V[k]-векторов 53 на основе информации 43 фоновых каналов, чтобы выводить уменьшенные приоритетные V[k]-векторы 55 в модуль 52 кодирования V-векторов. Уменьшенные приоритетные V[k]-векторы 55 могут иметь размеры D: [(N+1)-(N+1)-BG] x nFG. Модуль 46 уменьшения числа коэффициентов, в этом отношении, может представлять модуль, сконфигурированный с возможностью уменьшать число коэффициентов в оставшихся приоритетных V[k]-векторах 53. Другими словами, модуль 46 уменьшения числа коэффициентов может представлять модуль, сконфигурированный с возможностью исключать коэффициенты в приоритетных V[k]-векторах (которые формируют оставшиеся приоритетные V[k]-векторы 53), практически не имеющие направленной информации. В некоторых примерах, коэффициенты отличительных или, другими словами, приоритетных V[k]-векторов, соответствующих базисным функциям первого и нулевого порядка (которые могут обозначаться как N), предоставляют небольшой объем направленной информации и, следовательно, могут удаляться из приоритетных V-векторов (посредством процесса, который может упоминаться в качестве "уменьшения числа коэффициентов"). В этом примере, большая гибкость может предоставляться не только для того, чтобы идентифицировать коэффициенты, которые соответствуют N, но и для того, чтобы идентифицировать дополнительные HOA-каналы (которые могут обозначаться посредством переменной TotalOfAddAmbHOAChan) из набора [(N+1)+1, (N+1)].
Модуль 52 кодирования V-векторов может представлять модуль, сконфигурированный с возможностью выполнять любую форму квантования, чтобы сжимать уменьшенные приоритетные V[k]-векторы 55, чтобы формировать кодированные приоритетные V[k]-векторы 57, выводя кодированные приоритетные V[k]-векторы 57 в модуль 42 формирования потоков битов. При работе, модуль 52 кодирования V-векторов может представлять модуль, сконфигурированный с возможностью сжимать пространственный компонент звукового поля, т.е. один или более уменьшенных приоритетных V[k]-векторов 55 в этом примере. Модуль 52 кодирования V-векторов может выполнять любой из следующих 12 режимов квантования, как указано посредством синтаксического элемента режима квантования, обозначаемого как NbitsQ:
<i>Значение NbitsQ</i>
<i>Тип режима квантования</i>
0-3:
зарезервировано
4:
векторное квантование
5:
скалярное квантование без кодирования Хаффмана
6:
6-битовое скалярное квантование с кодированием Хаффмана
7:
7-битовое скалярное квантование с кодированием Хаффмана
8:
8-битовое скалярное квантование с кодированием Хаффмана
...
...
16:
16-битовое скалярное квантование с кодированием Хаффмана
Модуль 52 кодирования V-векторов также может выполнять прогнозные версии любого из вышеприведенных типов режимов квантования, причем разность определяется между элементом (или весовым коэффициентом, когда выполняется векторное квантование) V-вектора предыдущего кадра и элементом (или весовым коэффициентом, когда выполняется векторное квантование) V-вектора текущего кадра, определяется. Модуль 52 кодирования V-векторов затем может квантовать разность между элементами или весовыми коэффициентами текущего кадра и предыдущего кадра, а не значение элемента V-вектора самого текущего кадра.
Модуль 52 кодирования V-векторов может выполнять несколько форм квантования относительно каждого из уменьшенных приоритетных V[k]-векторов 55, чтобы получать несколько кодированных версий уменьшенных приоритетных V[k]-векторов 55. Модуль 52 кодирования V-векторов может выбирать одну из кодированных версий уменьшенных приоритетных V[k]-векторов 55 в качестве кодированного приоритетного V[k]-вектора 57. Модуль 52 кодирования V-векторов, другими словами, может выбирать одно из непрогнозированного векторно квантованного V-вектора, прогнозированного векторно квантованного V-вектора, некодированного по Хаффману скалярно квантованного V-вектора и кодированного по Хаффману скалярно квантованного V-вектора, для использования в качестве выходного переключаемого квантованного V-вектора на основе любой комбинации критериев, поясненных в этом раскрытии сущности.
В некоторых примерах, модуль 52 кодирования V-векторов может выбирать режим квантования из набора режимов квантования, который включает в себя режим векторного квантования и один или более режимов скалярного квантования, и квантовать входной V-вектор на основе (или согласно) выбранного режима. Модуль 52 кодирования V-векторов затем может предоставлять выбранный один из непрогнозированного векторно квантованного V-вектора (например, с точки зрения значений весовых коэффициентов или битов, указывающих их), прогнозированного векторно квантованного V-вектора (например, с точки зрения значений ошибки или битов, указывающих их), некодированного по Хаффману скалярно квантованного V-вектора и кодированного по Хаффману скалярно квантованного V-вектора в модуль формирования потоков битов 52 в качестве кодированных приоритетных V[k]-векторов 57. Модуль 52 кодирования V-векторов также может предоставлять синтаксические элементы, указывающие режим квантования (например, синтаксический элемент NbitsQ), и любые другие синтаксические элементы, используемые для того, чтобы деквантовать или иным образом восстанавливать V-вектор.
Относительно векторного квантования, модуль 52 кодирования V-векторов может кодировать уменьшенные приоритетные V[k]-векторы 55 на основе кодовых векторов 63, чтобы формировать кодированные V[k]-векторы. Как показано на фиг. 3A, модуль 52 кодирования V-векторов, в некоторых примерах, может выводить кодированные весовые коэффициенты 57 и индексы 73. Кодированные весовые коэффициенты 57 и индексы 73, в таких примерах, могут вместе представлять кодированные V[k]-векторы. Индексы 73 могут представлять то, какие кодовые векторы во взвешенной сумме кодирования векторов соответствуют каждому из весовых коэффициентов в кодированных весовых коэффициентах 57.
Чтобы кодировать уменьшенные приоритетные V[k]-векторы 55, модуль 52 кодирования V-векторов, в некоторых примерах, может разлагать каждый из уменьшенных приоритетных V[k]-векторов 55 на взвешенную сумму кодовых векторов на основе кодовых векторов 63. Взвешенная сумма кодовых векторов может включать в себя множество весовых коэффициентов и множество кодовых векторов и может представлять сумму произведений каждого из весовых коэффициентов, может умножаться на соответствующий один из кодовых векторов. Множество кодовых векторов, включенных во взвешенную сумму кодовых векторов, может соответствовать кодовым векторам 63, принимаемым посредством модуля 52 кодирования V-векторов. Разложение одного из уменьшенных приоритетных V[k]-векторов 55 на взвешенную сумму кодовых векторов может заключать в себе определение значений весовых коэффициентов для одного или более весовых коэффициентов, включенных во взвешенную сумму кодовых векторов.
После определения значений весовых коэффициентов, которые соответствуют весовым коэффициентам, включенным во взвешенную сумму кодовых векторов, модуль 52 кодирования V-векторов может кодировать одно или более значений весовых коэффициентов для того, чтобы формировать кодированные весовые коэффициенты 57. В некоторых примерах, кодирование значений весовых коэффициентов может включать в себя квантование значений весовых коэффициентов. В дополнительных примерах, кодирование значений весовых коэффициентов может включать в себя квантование значений весовых коэффициентов и выполнение кодирования Хаффмана относительно квантованных значений весовых коэффициентов. В дополнительных примерах, кодирование значений весовых коэффициентов может включать в себя кодирование одного или более значений весовых коэффициентов, данных, указывающих значения весовых коэффициентов, квантованных значений весовых коэффициентов, данных, указывающих квантованные значения весовых коэффициентов, с использованием любой технологии кодирования.
В некоторых примерах, кодовые векторы 63 могут представлять собой набор ортонормированных векторов. В дополнительных примерах, кодовые векторы 63 могут представлять собой набор псевдоортонормированных векторов. В дополнительных примерах, кодовые векторы 63 могут представлять собой одно или более из следующего: набор направленных векторов, набор ортогональных направленных векторов, набор ортонормированных направленных векторов, набор псевдоортонормированных направленных векторов, набор псевдоортогональных направленных векторов, набор направленных базисных векторов, набор ортогональных векторов, набор псевдоортогональных векторов, набор базисных векторов сферических гармоник, набор нормализованных векторов и набор базисных векторов. В примерах, в которых кодовые векторы 63 включают в себя направленные векторы, каждый из направленных векторов может иметь направленность, которая соответствует направлению или диаграмме направленности излучения в двумерном или трехмерном пространстве.
В некоторых примерах, кодовые векторы 63 могут представлять предварительно заданный и/или предварительно определенный набор кодовых векторов 63. В дополнительных примерах, кодовые векторы могут быть независимыми от базовых HOA-коэффициентов звукового поля и/или не формироваться на основе базовых HOA-коэффициентов звукового поля. В дополнительных примерах, кодовые векторы 63 могут быть идентичными при кодировании различных кадров HOA-коэффициентов. В дополнительных примерах, кодовые векторы 63 могут отличаться при кодировании различных кадров HOA-коэффициентов. В дополнительных примерах, кодовые векторы 63 альтернативно могут упоминаться в качестве векторов кодовых книг и/или возможных вариантов кодовых векторов.
В некоторых примерах, для того чтобы определять значения весовых коэффициентов, соответствующие одному из уменьшенных приоритетных V[k]-векторов 55, модуль 52 кодирования V-векторов, для каждого из значений весовых коэффициентов во взвешенной сумме кодовых векторов, может умножать уменьшенный приоритетный V[k]-вектор на соответствующий один из кодовых векторов 63, чтобы определять соответствующее значение весового коэффициента. В некоторых случаях, для того чтобы умножать уменьшенный приоритетный V[k]-вектор на кодовый вектор, модуль 52 кодирования V-векторов может умножать уменьшенный приоритетный V[k]-вектор на транспонированный вектор относительно соответствующего одного из кодовых векторов 63, чтобы определять соответствующее значение весового коэффициента.
Чтобы квантовать весовые коэффициенты, модуль 52 кодирования V-векторов может выполнять любой тип квантования. Например, модуль 52 кодирования V-векторов может выполнять скалярное квантование, векторное квантование или матричное квантование относительно значений весовых коэффициентов.
В некоторых примерах, вместо кодирования всех значений весовых коэффициентов для того, чтобы формировать кодированные весовые коэффициенты 57, модуль 52 кодирования V-векторов может кодировать поднабор значений весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, для того чтобы формировать кодированные весовые коэффициенты 57. Например, модуль 52 кодирования V-векторов может квантовать набор значений весовых коэффициентов, включенных во взвешенную сумму кодовых векторов. Поднабор значений весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, может означать набор значений весовых коэффициентов, который имеет число значений весовых коэффициентов, которое меньше числа значений весовых коэффициентов в полном наборе значений весовых коэффициентов, включенных во взвешенную сумму кодовых векторов.
В некотором примере, модуль 52 кодирования V-векторов может выбирать поднабор значений весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, для того чтобы кодировать и/или квантовать на основе различных критериев. В одном примере, целое число N может представлять общее число значений весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, и модуль 52 кодирования V-векторов может выбирать M наибольших значений весовых коэффициентов (т.е. максимальных значений весовых коэффициентов) из набора N значений весовых коэффициентов для того, чтобы формировать поднабор значений весовых коэффициентов, где M является целым числом, меньшим N. Таким образом, доли кодовых векторов, которые вносят относительно большую величину в разложенный V-вектор, могут сохраняться, тогда как доли кодовых векторов, которые вносят относительно небольшую величину в разложенный V-вектор, могут отбрасываться, с тем чтобы повышать эффективность кодирования. Другие критерии также могут использоваться для того, чтобы выбирать поднабор значений весовых коэффициентов для кодирования и/или квантования.
В некоторых примерах, M наибольших значений весовых коэффициентов могут представлять собой M значений весовых коэффициентов из набора N значений весовых коэффициентов, которые имеют наибольшее значение. В дополнительных примерах, M наибольших значений весовых коэффициентов могут представлять собой M значений весовых коэффициентов из набора N значений весовых коэффициентов, которые имеют наибольшее абсолютное значение.
В примерах, в которых модуль 52 кодирования V-векторов кодирует и/или квантует поднабор значений весовых коэффициентов, кодированные весовые коэффициенты 57 могут включать данные, указывающие то, какие из значений весовых коэффициентов выбраны для квантования и/или кодирования в дополнение к квантованным данным, указывающим значения весовых коэффициентов. В некоторых примерах, данные, указывающие то, какие из значений весовых коэффициентов выбраны для квантования и/или кодирования, могут включать в себя один или более индексов из набора индексов, которые соответствуют кодовым векторам во взвешенной сумме кодовых векторов. В таких примерах, для каждого из весовых коэффициентов, которые выбраны для кодирования и/или квантования, значение индекса кодового вектора, которое соответствует значению весового коэффициента во взвешенной сумме кодовых векторов, может быть включено в поток битов.
В некоторых примерах, каждый из уменьшенных приоритетных V[k]-векторов 55 может быть представлен на основе следующего выражения:
(1)
где  представляет j-ый кодовый вектор в наборе кодовых векторов (),представляет j-ый весовой коэффициент в наборе весовых коэффициентов (), и соответствует V-вектору, который представляется, разлагается и/или кодируется посредством модуля 52 кодирования V-векторов. Правая сторона выражения (1) может представлять взвешенную сумму кодовых векторов, которая включает в себя набор весовых коэффициентов () и набор кодовых векторов ().
В некоторых примерах, модуль 52 кодирования V-векторов может определять значения весовых коэффициентов на основе следующего уравнения:
(2)
где  представляет транспонированный вектор относительно k-го кодового вектора в наборе кодовых векторов (),соответствует V-вектору, который представляется, разлагается и/или кодируется посредством модуля 52 кодирования V-векторов, и  представляет j-ый весовой коэффициент в наборе весовых коэффициентов ().
В примерах, в которых набор кодовых векторов () является ортонормированным, может применяться следующее выражение:
(3)
В таких примерах, правая сторона уравнения (2) может упрощаться следующим образом:
, (4)
где  соответствует k-ому весовому коэффициенту во взвешенной сумме кодовых векторов.
Для примерной взвешенной суммы кодовых векторов, используемых в уравнении (1), модуль 52 кодирования V-векторов может вычислять значения весовых коэффициентов для каждого из весовых коэффициентов во взвешенной сумме кодовых векторов с использованием уравнения (2), и результирующие весовые коэффициенты могут представляться следующим образом:
(5)
Рассмотрим пример, в котором модуль 52 кодирования V-векторов выбирает пять максимальных значений весовых коэффициентов (т.е. весовые коэффициенты с наибольшими значениями или абсолютными значениями). Поднабор значений весовых коэффициентов, которые должны квантоваться, может представляться следующим образом:
(6)
Поднабор значений весовых коэффициентов вместе с их соответствующими кодовыми векторами может использоваться для того, чтобы формировать взвешенную сумму кодовых векторов, которая оценивает V-вектор, как показано в нижеприведенном выражении:
(7)
где  представляет j-ый кодовый вектор в поднаборе кодовых векторов (),представляет j-ый весовой коэффициент в поднаборе весовых коэффициентов (), и соответствует оцененному V-вектору, который соответствует V-вектору, разложенному и/или кодированному посредством модуля 52 кодирования V-векторов. Правая сторона выражения (1) может представлять взвешенную сумму кодовых векторов, которая включает в себя набор весовых коэффициентов () и набор кодовых векторов ().
Модуль 52 кодирования V-векторов может квантовать поднабор значений весовых коэффициентов для того, чтобы формировать квантованные значения весовых коэффициентов, которые могут представляться следующим образом:
(8)
Квантованные значения весовых коэффициентов вместе с их соответствующими кодовыми векторами могут использоваться для того, чтобы формировать взвешенную сумму кодовых векторов, которая представляет квантованную версию оцененного V-вектора, как показано в нижеприведенном выражении:
(9)
где  представляет j-ый кодовый вектор в поднаборе кодовых векторов (),представляет j-ый весовой коэффициент в поднаборе весовых коэффициентов (), и  соответствует оцененному V-вектору, который соответствует V-вектору, разложенному и/или кодированному посредством модуля 52 кодирования V-векторов. Правая сторона выражения (1) может представлять взвешенную сумму поднабора кодовых векторов, которая включает в себя набор весовых коэффициентов () и набор кодовых векторов ().
k
Альтернативное подтверждение вышеприведенного (которое в основном является эквивалентным тому, что описано выше) может заключаться в следующем. V-векторы могут кодироваться на основе предварительно заданного набора кодовых векторов. Чтобы кодировать V-векторы, каждый V-вектор разлагается на взвешенную сумму кодовых векторов. Взвешенная сумма кодовых векторов состоит из  пар предварительно заданных кодовых векторов и ассоциированных весовых коэффициентов:
,
k
k
2
где  представляет j-ый кодовый вектор в наборе предварительно заданных кодовых векторов (),представляет j-ый действительнозначный весовой коэффициент в наборе предварительно заданных весовых коэффициентов (), соответствует индексу слагаемых, которых может составлять вплоть до 7, и соответствует V-вектору, который кодируется. Выбор  зависит от кодера. Если кодер выбирает взвешенную сумму двух или более кодовых векторов, общее число предварительно заданных кодовых векторов, из которых может выбирать кодер, составляет (N+1), причем предварительно заданные кодовые векторы извлекаются в качестве HOA-коэффициентов расширения, в некоторых примерах, из таблиц F.2-F.11. Ссылка на таблицы, обозначаемые посредством F и далее периода и номера, ссылается на таблицы, указываемые в приложении F стандарта MPEG-H 3D Audio, озаглавленном "Information Technology - High efficiency coding and media delivery in heterogeneous environments - Part 3: 3D Audio", ISO/IEC JTC1/SC 29, датированном 20.02.2015 (20 февраля 2015 года), ISO/IEC 23008-3:2015(E), ISO/IEC JTC 1/SC 29/WG 11 (имя файла: ISO_IEC_23008-3(E)-Word_document_v33.doc).
N
k+
Когда  равно 4, используется таблица в приложении F.6 с 32 предварительно заданными направлениями. Во всех случаях, абсолютные значения весовых коэффициентов  векторно квантуются относительно предварительно заданных весовых значений , найденных в первых столбцах 1 таблицы в таблице F.12, показанной ниже, и передаются в служебных сигналах с ассоциированным индексом номера строки.
Знаки числа весовых коэффициентов  отдельно кодируются следующим образом:
(12)
k
k+
k+
k
j
Другими словами, после передачи в служебных сигналах значения, V-вектор кодируется с 1 индексами, которые указывают на 1 предварительно заданные кодовые векторы, одним индексом, который указывает на  квантованных весовых коэффициентов  в предварительно заданной весовой кодовой книге, и k+1 значениями s знаков числа:
(13)
Если кодер выбирает взвешенную сумму одного кодового вектора, кодовая книга, извлекаемая из таблицы F.8, используется в комбинации с абсолютными весовыми значениями  в таблице F.11, причем обе из этих таблиц показаны ниже. Кроме того, знак числа весового значения  может отдельно кодироваться.
В этом отношении, технологии могут обеспечивать возможность устройству 20 кодирования аудио выбирать одну из множества кодовых книг, которую следует использовать при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение векторного синтеза ко множеству коэффициентов амбиофонии высшего порядка.
Кроме того, технологии могут обеспечивать возможность устройству 20 кодирования аудио выбирать между множеством спаренных кодовых книг, которые должны использоваться при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение векторного синтеза ко множеству коэффициентов амбиофонии высшего порядка.
В некоторых примерах, модуль 52 кодирования V-векторов может определять, на основе набора кодовых векторов, одно или более значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества коэффициентов амбиофонии высшего порядка (HOA). Каждое из значений весовых коэффициентов может соответствовать надлежащему одному из множества весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, которая представляет вектор.
В таких примерах, модуль 52 кодирования V-векторов, в некоторых примерах, может квантовать данные, указывающие значения весовых коэффициентов. В таких примерах, для того чтобы квантовать данные, указывающие значения весовых коэффициентов, модуль 52 кодирования V-векторов, в некоторых примерах, может выбирать поднабор значений весовых коэффициентов, которые следует квантовать, и квантовать данные, указывающие выбранный поднабор значений весовых коэффициентов. В таких примерах, модуль 52 кодирования V-векторов, в некоторых примерах, может не квантовать данные, указывающие значения весовых коэффициентов, которые не включены в выбранный поднабор значений весовых коэффициентов.
В некоторых примерах, модуль 52 кодирования V-векторов может определять набор из N значений весовых коэффициентов. В таких примерах, модуль 52 кодирования V-векторов может выбирать M наибольших значений весовых коэффициентов из набора из N значений весовых коэффициентов для того, чтобы формировать поднабор значений весовых коэффициентов, где M меньше N.
Чтобы квантовать данные, указывающие значения весовых коэффициентов, модуль 52 кодирования V-векторов может выполнять, по меньшей мере, одно из скалярного квантования, векторного квантования и матричного квантования относительно данных, указывающих значения весовых коэффициентов. Также могут выполняться другие технологии квантования в дополнение или вместо вышеуказанных технологий квантования.
Чтобы определять значения весовых коэффициентов, модуль 52 кодирования V-векторов, для каждого из значений весовых коэффициентов, может определять соответствующее значение весового коэффициента на основе соответствующего из кодовых векторов 63. Например, модуль 52 кодирования V-векторов может умножать вектор на соответствующий один из кодовых векторов 63, чтобы определять соответствующее значение весового коэффициента. В некоторых случаях, модуль 52 кодирования V-векторов может заключать в себе умножение вектора на транспонированный вектор относительно соответствующего одного из кодовых векторов 63, чтобы определять соответствующее значение весового коэффициента.
В некоторых примерах, разложенная версия HOA-коэффициентов может представлять собой разложенную по сингулярным значениям версию HOA-коэффициентов. В дополнительных примерах, разложенная версия HOA-коэффициентов может представлять собой, по меньшей мере, одно из версии после анализа главных компонентов (PCA) HOA-коэффициентов, версии после преобразования Карунена-Лоэва HOA-коэффициентов, версии после преобразования Хотеллинга HOA-коэффициентов, собственной ортогональной разложенной (POD) версии HOA-коэффициентов и разложенной по собственным значениям (EVD) версии HOA-коэффициентов.
В дополнительных примерах, набор кодовых векторов 63 может включать в себя, по меньшей мере, одно из набора направленных векторов, набора ортогональных направленных векторов, набора ортонормированных направленных векторов, набора псевдоортонормированных направленных векторов, набора псевдоортогональных направленных векторов, набора направленных базисных векторов, набора ортогональных векторов, набора ортонормированных векторов, набора псевдоортонормированных векторов, набора псевдоортогональных векторов, набора базисных векторов сферических гармоник, набора нормализованных векторов и набора базисных векторов.
В некоторых примерах, модуль 52 кодирования V-векторов может использовать кодовую книгу при разложении, чтобы определять весовые коэффициенты, которые используются для того, чтобы представлять V-вектор (например, уменьшенный приоритетный V[k]-вектор). Например, модуль 52 кодирования V-векторов может выбирать кодовую книгу при разложении из набора возможных вариантов кодовых книг при разложении и определять весовые коэффициенты, которые представляют V-вектор, на основе выбранной кодовой книги при разложении.
В некоторых примерах, каждый из возможных вариантов кодовых книг при разложении может соответствовать набору кодовых векторов 63, которые могут использоваться для того, чтобы разлагать V-вектор и/или определять весовые коэффициенты, которые соответствуют V-вектору. Другими словами, каждая различная кодовая книга при разложении соответствует различному набору кодовых векторов 63, которые могут использоваться для того, чтобы разлагать V-вектор. Каждая запись в кодовой книге при разложении соответствует одному из векторов в наборе кодовых векторов.
Набор кодовых векторов в кодовой книге при разложении может соответствовать всем кодовым векторам, включенным во взвешенную сумму кодовых векторов, которая используется для того, чтобы разлагать V-вектор. Например, набор кодовых векторов может соответствовать набору кодовых векторов 63 (), включенных во взвешенную сумму кодовых векторов, показанную в правой стороне выражения (1). В этом примере, каждый из кодовых векторов 63 (т.е. ) может соответствовать записи в кодовой книге при разложении.
Различные кодовые книги при разложении могут иметь идентичное число кодовых векторов 63 в некоторых примерах. В дополнительных примерах, различные кодовые книги при разложении могут иметь различное число кодовых векторов 63.
Например, по меньшей мере, два из возможных вариантов кодовых книг при разложении могут иметь различное число записей (т.е. кодовых векторов 63 в этом примере). В качестве другого примера, все возможные варианты кодовых книг при разложении могут иметь различное число записей 63. В качестве дополнительного примера, по меньшей мере, два из возможных вариантов кодовых книг при разложении могут иметь идентичное число записей 63. В качестве дополнительного примера, все возможные варианты кодовых книг при разложении могут иметь идентичное число записей 63.
Модуль 52 кодирования V-векторов может выбирать кодовую книгу при разложении из набора возможных вариантов кодовых книг при разложении на основе одного или более различных критериев. Например, модуль 52 кодирования V-векторов может выбирать кодовую книгу при разложении на основе весовых коэффициентов, соответствующих каждой кодовой книге при разложении. Например, модуль 52 кодирования V-векторов может выполнять анализ весовых коэффициентов, соответствующих каждой кодовой книге при разложении (из соответствующей взвешенной суммы, которая представляет V-вектор), чтобы определять то, сколько весовых коэффициентов требуется для того, чтобы представлять V-вектор с некоторым допустимым запасом точности (как задано, например, посредством пороговой ошибки). Модуль 52 кодирования V-векторов может выбирать кодовую книгу при разложении, которая требует наименьшего числа весовых коэффициентов. В дополнительных примерах, модуль 52 кодирования V-векторов может выбирать кодовую книгу при разложении на основе характеристик базового звукового поля (например, искусственно созданное, естественно записываемое, сильнорассеянное и т.д.).
Чтобы определять весовые коэффициенты (т.е. значения весовых коэффициентов) на основе выбранной кодовой книги, модуль 52 кодирования V-векторов, для каждого из весовых коэффициентов, может выбирать запись кодовой книги (т.е. кодовый вектор), которая соответствует надлежащему весовому коэффициенту (идентифицированному, например, посредством синтаксического элемента WeightIdx), и определять значение весового коэффициента для соответствующего весового коэффициента на основе выбранной записи кодовой книги. Чтобы определять значение весового коэффициента на основе выбранной записи кодовой книги, модуль 52 кодирования V-векторов, в некоторых примерах, может умножать V-вектор на кодовый вектор 63, который указывается посредством выбранной записи кодовой книги, чтобы формировать значение весового коэффициента. Например, модуль 52 кодирования V-векторов может умножать V-вектор на транспонированный вектор относительно кодового вектора 63, который указывается посредством выбранной записи кодовой книги, чтобы формировать значение скалярного весового коэффициента. В качестве другого примера, уравнение (2) может использоваться для того, чтобы определять значения весовых коэффициентов.
В некоторых примерах, каждая из кодовых книг при разложении может соответствовать надлежащей одной из множества кодовых книг при квантовании. В таких примерах, когда модуль 52 кодирования V-векторов выбирает кодовую книгу при разложении, модуль 52 кодирования V-векторов также может выбирать кодовую книгу при квантовании, которая соответствует кодовой книге при разложении.
Модуль 52 кодирования V-векторов может предоставлять в модуль 42 формирования потоков битов данные, указывающие то, какая кодовая книга при разложении выбрана (например, синтаксический элемент CodebkIdx) для кодирования одного или более уменьшенных приоритетных V[k]-векторов 55, так что модуль 42 формирования потоков битов может включать такие данные в результирующий поток битов. В некоторых примерах, модуль 52 кодирования V-векторов может выбирать кодовую книгу при разложении, которую следует использовать для каждого кадра HOA-коэффициентов, которые должны кодироваться. В таких примерах, модуль 52 кодирования V-векторов может предоставлять данные, указывающие то, какая кодовая книга при разложении выбрана для кодирования каждого кадра (например, синтаксический элемент CodebkIdx), в модуль 42 формирования потоков битов. В некоторых примерах, данные, указывающие то, какая кодовая книга при разложении выбрана, могут представлять собой индекс кодовой книги и/или идентификационное значение, которое соответствует выбранной кодовой книге.
В некоторых примерах, модуль 52 кодирования V-векторов может выбирать число, указывающее то, сколько весовых коэффициентов должно использоваться для того, чтобы оценивать V-вектор (например, уменьшенный приоритетный V[k]-вектор). Число, указывающее то, сколько весовых коэффициентов должно использоваться для того, чтобы оценивать V-вектор, также может указывать число весовых коэффициентов, которые должны квантоваться и/или кодироваться посредством модуля 52 кодирования V-векторов и/или устройства 20 кодирования аудио. Число, указывающее то, сколько весовых коэффициентов должно использоваться для того, чтобы оценивать V-вектор, также может упоминаться в качестве числа весовых коэффициентов, которые должны квантоваться и/или кодироваться. Это число, указывающее то, сколько весовых коэффициентов, альтернативно может представляться как число кодовых векторов 63, которым соответствуют эти весовые коэффициенты. Следовательно, это число также может обозначаться как число кодовых векторов 63, используемых для того, чтобы деквантовать векторно квантованный V-вектор, и может обозначаться посредством синтаксического элемента NumVecIndices.
В некоторых примерах, модуль 52 кодирования V-векторов может выбирать число весовых коэффициентов, которые должны квантоваться и/или кодироваться для конкретного V-вектора, на основе значений весовых коэффициентов, которые определены для этого конкретного V-вектора. В дополнительных примерах, модуль 52 кодирования V-векторов может выбирать число весовых коэффициентов, которые должны квантоваться и/или кодироваться для конкретного V-вектора, на основе ошибки, ассоциированной с оценкой V-вектора с использованием одного или более конкретных чисел весовых коэффициентов.
Например, модуль 52 кодирования V-векторов может определять максимальное пороговое значение ошибки для ошибки, ассоциированной с оценкой V-вектора, и может определять то, сколько весовых коэффициентов требуется для того, чтобы совершать ошибку между оцененным V-вектором, который оценивается с этим числом весовых коэффициентов, и V-вектором, меньшим или равным максимальному пороговому значению ошибки. Оцененный вектор может соответствовать взвешенной сумме кодовых векторов, причем не все кодовые векторы из кодовой книги используются во взвешенной сумме.
В некоторых примерах, модуль 52 кодирования V-векторов может определять то, сколько весовых коэффициентов требуется для того, чтобы совершать ошибку ниже порогового значения, на основе следующего уравнения:
, (14)
где  представляет i-ый кодовый вектор,  представляет i-ый весовой коэффициент,  соответствует V-вектору, который разлагается, квантуется и/или кодируется посредством модуля 52 кодирования V-векторов, и  является нормой значения x, где  является значением, указывающим то, какой тип нормы используется. Например,  представляет L1-норму, и  представляет L2-норму. Фиг. 20 является схемой, иллюстрирующей примерный график 700, показывающий пороговую ошибку, используемую для того, чтобы выбирать число X* кодовых векторов в соответствии с различными аспектами технологий, описанных в этом раскрытии сущности. График 700 включает в себя линию 702, иллюстрирующую то, как уменьшается ошибка по мере того, как увеличивается число кодовых векторов.
i
В вышеуказанном примере, индексы, , в некоторых примерах, могут индексировать весовые коэффициенты в упорядоченной последовательности таким образом, что весовые коэффициенты с большей абсолютной величиной (например, с большим абсолютным значением) возникают до весовых коэффициентов с меньшей абсолютной величиной (например, с меньшим абсолютным значением) в упорядоченной последовательности. Другими словами,  может представлять наибольшее значение весового коэффициента,  может представлять следующее наибольшее значение весового коэффициента, и т.д. Аналогично,  может представлять наименьшее значение весового коэффициента.
Модуль 52 кодирования V-векторов может предоставлять в модуль 42 формирования потоков битов данные, указывающие то, сколько весовых коэффициентов выбрано для кодирования одного или более уменьшенных приоритетных V[k]-векторов 55, так что модуль 42 формирования потоков битов может включать такие данные в результирующий поток битов. В некоторых примерах, модуль 52 кодирования V-векторов может выбирать число весовых коэффициентов, которые следует использовать для кодирования V-вектора для каждого кадра HOA-коэффициентов, которые должны кодироваться. В таких примерах, модуль 52 кодирования V-векторов может предоставлять в модуль 42 формирования потоков битов данные, указывающие то, сколько весовых коэффициентов выбрано для кодирования выбранного каждого кадра, в модуль 42 формирования потоков битов. В некоторых примерах, данные, указывающие то, сколько весовых коэффициентов выбрано, могут представлять собой число, указывающее то, сколько весовых коэффициентов выбрано для кодирования и/или квантования.
В некоторых примерах, модуль 52 кодирования V-векторов может использовать кодовую книгу при квантовании, чтобы квантовать набор весовых коэффициентов, которые используются для того, чтобы представлять и/или оценивать V-вектор (например, уменьшенный приоритетный V[k]-вектор). Например, модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании из набора возможных вариантов кодовых книг при квантовании и квантовать V-вектор на основе выбранной кодовой книги при квантовании.
В некоторых примерах, каждый из возможных вариантов кодовых книг при квантовании может соответствовать набору возможных вариантов векторов квантования, которые могут использоваться для того, чтобы квантовать набор весовых коэффициентов. Набор весовых коэффициентов может формировать вектор весовых коэффициентов, которые должны квантоваться с использованием этих кодовых книг при квантовании. Другими словами, каждая различная кодовая книга при квантовании соответствует различному набору векторов квантования, из которого один вектор квантования может выбираться, чтобы квантовать V-вектор.
Каждая запись в кодовой книге может соответствовать возможному варианту вектора квантования. Число компонентов в каждом из возможных вариантов векторов квантования, в некоторых примерах, может быть равным числу весовых коэффициентов, которые должны квантоваться.
В некоторых примерах, различные кодовые книги при квантовании могут иметь идентичное число возможных вариантов векторов квантования. В дополнительных примерах, различные кодовые книги при квантовании могут иметь различное число возможных вариантов векторов квантования.
Например, по меньшей мере, два из возможных вариантов кодовых книг при квантовании могут иметь различное число возможных вариантов векторов квантования. В качестве другого примера, все возможные варианты кодовых книг при квантовании могут иметь различное число возможных вариантов векторов квантования. В качестве дополнительного примера, по меньшей мере, два из возможных вариантов кодовых книг при квантовании могут иметь идентичное число возможных вариантов векторов квантования. В качестве дополнительного примера, все возможные варианты кодовых книг при квантовании могут иметь идентичное число возможных вариантов векторов квантования.
Модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании из набора возможных вариантов кодовых книг при квантовании на основе одного или более различных критериев. Например, модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании для V-вектора на основе кодовой книги при разложении, которая использована для того, чтобы определять весовые коэффициенты для V-вектора. В качестве другого примера, модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании для V-вектора на основе распределения вероятностей значений весовых коэффициентов, которые должны квантоваться. В других примерах, модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании для V-вектора на основе комбинации выбора кодовой книги при разложении, которая использована для того, чтобы определять весовые коэффициенты для V-вектора, а также числа весовых коэффициентов, которые считаются необходимыми для того, чтобы представлять V-вектор в пределах некоторого порогового значения ошибки (например, согласно уравнению 14).
Чтобы квантовать весовые коэффициенты на основе выбранной кодовой книги при квантовании, модуль 52 кодирования V-векторов, в некоторых примерах, может определять вектор квантования, который следует использовать для квантования V-вектора на основе выбранной кодовой книги при квантовании. Например, модуль 52 кодирования V-векторов может выполнять векторное квантование (VQ), чтобы определять вектор квантования, который следует использовать для квантования V-вектора.
В дополнительных примерах, для того чтобы квантовать весовые коэффициенты на основе выбранной кодовой книги при квантовании, модуль 52 кодирования V-векторов, для каждого V-вектора, может выбирать вектор квантования из выбранной кодовой книги при квантовании на основе ошибки квантования, ассоциированной с использованием одного или более векторов квантования, чтобы представлять V-вектор. Например, модуль 52 кодирования V-векторов может выбирать возможный вариант вектора квантования из выбранной кодовой книги при квантовании, который минимизирует ошибку квантования (например, минимизирует ошибку по методу наименьших квадратов).
В некоторых примерах, каждая из кодовых книг при квантовании может соответствовать надлежащей одной из множества кодовых книг при разложении. В таких примерах, модуль 52 кодирования V-векторов также может выбирать кодовую книгу при квантовании для квантования набора весовых коэффициентов, ассоциированных с V-вектором, на основе кодовой книги при разложении, которая использована для того, чтобы определять весовые коэффициенты для V-вектора. Например, модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании, которая соответствует кодовой книге при разложении, которая использована для того, чтобы определять весовые коэффициенты для V-вектора.
Модуль 52 кодирования V-векторов может предоставлять в модуль 42 формирования потоков битов данные, указывающие то, какая кодовая книга при квантовании выбрана для квантования весовых коэффициентов, соответствующих одному или более уменьшенных приоритетных V[k]-векторов 55, так что модуль 42 формирования потоков битов может включать такие данные в результирующий поток битов. В некоторых примерах, модуль 52 кодирования V-векторов может выбирать кодовую книгу при квантовании, которую следует использовать для каждого кадра HOA-коэффициентов, которые должны кодироваться. В таких примерах, модуль 52 кодирования V-векторов может предоставлять данные, указывающие то, какая кодовая книга при квантовании выбрана для квантования весовых коэффициентов в каждом кадре, в модуль 42 формирования потоков битов. В некоторых примерах, данные, указывающие то, какая кодовая книга при квантовании выбрана, могут представлять собой индекс кодовой книги и/или идентификационное значение, которое соответствует выбранной кодовой книге.
Модуль 40 психоакустического аудиокодера, включенный в устройство 20 кодирования аудио, может представлять несколько экземпляров психоакустического аудиокодера, каждый из которых используется для того, чтобы кодировать различный аудиообъект или HOA-канал каждого из окружающих HOA-коэффициентов 47' после энергетической компенсации и интерполированных nFG-сигналов 49', чтобы формировать кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 61. Модуль 40 психоакустического аудиокодера может выводить кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 61 в модуль 42 формирования потоков битов.
Модуль 42 формирования потоков битов, включенный в устройство 20 кодирования аудио, представляет модуль, который форматирует данные таким образом, что они соответствуют известному формату (который может означать формат, известный посредством устройства декодирования), за счет этого формируя векторный поток 21 битов. Поток 21 битов, другими словами, может представлять кодированные аудиоданные, кодированные способом, описанным выше. Модуль 42 формирования потоков битов в некоторых примерах может представлять мультиплексор, который может принимать кодированные приоритетные V[k]-векторы 57, кодированные окружающие HOA-коэффициенты 59, кодированные nFG-сигналы 61 и информацию 43 фоновых каналов. Модуль 42 формирования потоков битов затем может формировать поток 21 битов на основе кодированных приоритетных V[k]-векторов 57, кодированных окружающих HOA-коэффициентов 59, кодированных nFG-сигналов 61 и информации 43 фоновых каналов. Таким образом, модуль 42 формирования потоков битов в силу этого может указывать векторы 57 в потоке 21 битов, чтобы получать поток 21 битов. Поток 21 битов может включать в себя первичный или основной поток битов и один или более потоков битов боковых каналов.
Хотя не показано в примере по фиг. 3A, устройство 20 кодирования аудио также может включать в себя модуль вывода потоков битов, который переключает поток битов, выводимый из устройства 20 кодирования аудио (например, между направленным потоком 21 битов и векторным потоком 21 битов), на основе того, должен текущий кадр кодироваться с использованием направленного синтеза или векторного синтеза. Модуль вывода потоков битов может выполнять переключение на основе синтаксического элемента, выводимого посредством модуля 26 анализа контента, указывающего того, выполнен направленный синтез (в качестве результата обнаружения того, что HOA-коэффициенты 11 сформированы из синтетического аудиообъекта) или выполнен векторный синтез (в качестве результата обнаружения того, что HOA-коэффициентов записаны). Модуль вывода потоков битов может указывать корректный синтаксис заголовка, чтобы указывать переключение или текущее кодирование, используемое для текущего кадра, вместе с соответствующим одним из потоков 21 битов.
TOT
TOT
TOT
TOT
TOT
Кроме того, как отмечено выше, модуль 44 анализа звукового поля может идентифицировать BG окружающих HOA-коэффициентов 47, которые могут изменяться на покадровой основе (хотя время от времени BG может оставаться постоянным или идентичным через два или более смежных (во времени) кадров). Изменение BG может приводить к изменениям коэффициентов, выражаемым в уменьшенных приоритетных V[k]-векторах 55. Изменение BG может приводить к фоновым HOA-коэффициентам (которые также могут упоминаться в качестве "окружающих HOA-коэффициентов"), которые изменяются на покадровой основе (хотя, снова, время от времени BG может оставаться постоянным или идентичным через два или более смежных (во времени) кадров). Изменения зачастую приводят к изменению энергии для аспектов звукового поля, представленных посредством добавления или удаления дополнительных окружающих HOA-коэффициентов и соответствующего удаления коэффициентов из или добавления коэффициентов в уменьшенные приоритетные V[k]-векторы 55.
Как результат, модуль 44 анализа звукового поля дополнительно может определять то, когда окружающие HOA-коэффициенты изменяются между кадрами, и формировать флаг или другой синтаксический элемент, указывающий изменение окружающего HOA-коэффициента с точки зрения использования для того, чтобы представлять окружающие компоненты звукового поля (при этом изменение также может упоминаться в качестве "перехода" окружающего HOA-коэффициента или в качестве "перехода" окружающего HOA-коэффициента). В частности, модуль 46 уменьшения числа коэффициентов может формировать флаг (который может обозначаться как флаг AmbCoeffTransition или флаг AmbCoeffIdxTransition), предоставлять флаг в модуль 42 формирования потоков битов, так что флаг может быть включен в поток 21 битов (возможно в качестве части информации боковых каналов).
TOT
Модуль 46 уменьшения числа коэффициентов, в дополнение к указанию флага перехода окружающего коэффициента, может также модифицировать то, как формируются уменьшенные приоритетные V[k]-векторы 55. В одном примере, после определения того, что один из окружающих HOA-коэффициентов находится в переходе в ходе текущего кадра, модуль 46 уменьшения числа коэффициентов может указывать векторный коэффициент (который также может упоминаться в качестве "векторного элемента" или "элемента") для каждого из V-векторов уменьшенных приоритетных V[k]-векторов 55, который соответствует окружающему HOA-коэффициенту в переходе. С другой стороны, окружающий HOA-коэффициент в переходе может добавляться или удаляться из общего числа BG фоновых коэффициентов. Следовательно, результирующее изменение общего числа фоновых коэффициентов влияет на то, включен или не включен окружающий HOA-коэффициент в поток битов, и на то, включен или нет соответствующий элемент V-векторов для V-векторов, указываемых в потоке битов во втором и третьем режимах конфигурирования, описанных выше. Более подробная информация относительно того, как модуль 46 уменьшения числа коэффициентов может указывать уменьшенные приоритетные V[k]-векторы 55, чтобы преодолевать изменения энергии, предоставляется в заявке на патент (США) порядковый номер 14/594533, озаглавленной "TRANSITIONING OF AMBIENT HIGHER_ORDER AMBISONIC COEFFICIENTS", поданной 12 января 2015 года.
Фиг. 3B является блок-схемой, подробнее иллюстрирующей другой пример устройства 420 кодирования аудио, показанного в примере по фиг. 3, которое может выполнять различные аспекты технологий, описанных в этом раскрытии сущности. Устройство 420 кодирования аудио, показанное на фиг. 3B, является аналогичным устройству 20 кодирования аудио за исключением того, что модуль 52 кодирования V-векторов в устройстве 420 кодирования аудио также предоставляет информацию 71 значений весовых коэффициентов в модуль 34 переупорядочения.
В некоторых примерах, информация 71 значений весовых коэффициентов может включать в себя одно или более значений весовых коэффициентов, вычисленных посредством модуля 52 кодирования V-векторов. В дополнительных примерах, информация 71 значений весовых коэффициентов может включать в себя информацию, указывающую то, какие весовые коэффициенты выбраны для квантования и/или кодирования посредством модуля 52 кодирования V-векторов. В дополнительных примерах, информация 71 значений весовых коэффициентов может включать в себя информацию, указывающую то, какие весовые коэффициенты не выбраны для квантования и/или кодирования посредством модуля 52 кодирования V-векторов. Информация 71 значений весовых коэффициентов может включать в себя любую комбинацию любого из вышеуказанных информационных элементов, а также других элементов в дополнение или вместо вышеуказанных информационных элементов.
В некоторых примерах, модуль 34 переупорядочения может переупорядочивать векторы на основе информации 71 значений весовых коэффициентов (например, на основе значений весовых коэффициентов). В примерах, в которых модуль 52 кодирования V-векторов выбирает поднабор значений весовых коэффициентов для того, чтобы квантовать и/или кодировать, модуль 34 переупорядочения, в некоторых примерах, может переупорядочивать векторы на основе того, какие из значений весовых коэффициентов выбраны для квантования или кодирования (что может указываться посредством информации 71 значений весовых коэффициентов).
Фиг. 4A является блок-схемой, подробнее иллюстрирующей устройство 24 декодирования аудио по фиг. 2. Как показано в примере по фиг. 4A устройство 24 декодирования аудио может включать в себя модуль 72 извлечения, модуль 90 восстановления на основе направленности и модуль 92 векторного восстановления. Хотя описывается ниже, более подробная информация относительно устройства 24 декодирования аудио и различных аспектов распаковки или иного декодирования HOA-коэффициентов содержится в публикации международной заявки на патент номер WO 2014/194099, озаглавленной "INTERPOLATION FOR DECOMPOSED REPRESENTATIONS OF A SOUND FIELD", поданной 29 мая 2014 года.
Модуль 72 извлечения может представлять модуль, сконфигурированный с возможностью принимать поток 21 битов и извлекать различные кодированные версии (например, направленную кодированную версию или векторную кодированную версию) HOA-коэффициентов 11. Модуль 72 извлечения может определять из вышеуказанного синтаксического элемента, указывающего то, кодированы HOA-коэффициенты 11 через различные направленные или кодированные версии. Когда выполняется направленное кодирование, модуль 72 извлечения может извлекать направленную версию HOA-коэффициентов 11 и синтаксические элементы, ассоциированные с кодированной версией (что обозначается как направленная информация 91 в примере по фиг. 4A), передавая направленную информацию 91 в модуль 90 направленного восстановления. Модуль 90 направленного восстановления может представлять модуль, сконфигурированный с возможностью восстанавливать HOA-коэффициенты в форме HOA-коэффициентов 11' на основе направленной информации 91.
Когда синтаксический элемент указывает то, что HOA-коэффициенты 11 кодированы с использованием векторного синтеза, модуль 72 извлечения может извлекать кодированные приоритетные V[k]-векторы (которые могут включать в себя кодированные весовые коэффициенты 57 и/или индексы 73), кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 59. Модуль 72 извлечения может передавать кодированные весовые коэффициенты 57 в модуль 74 квантования и кодированные окружающие HOA-коэффициенты 59 вместе с кодированными nFG-сигналами 61 в модуль 80 психоакустического декодирования.
Чтобы извлекать кодированные весовые коэффициенты 57, кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 59, модуль 72 извлечения может получать контейнер HOADecoderConfig, который включает в себя, который включает в себя синтаксический элемент, обозначаемый как CodedVVecLength. Модуль 72 извлечения может синтаксически анализировать CodedVVecLength из контейнера HOADecoderConfig. Модуль 72 извлечения может быть сконфигурирован с возможностью работать в любом из вышеописанных режимов конфигурирования на основе синтаксического элемента CodedVVecLength.
В некоторых примерах, модуль 72 извлечения может работать в соответствии с оператором switch, представленным в следующем псевдокоде, причем синтаксис представлен в следующей синтаксической таблице (при этом зачеркивания указывают удаление зачеркнутого предмета, и подчеркивания указывают добавление подчеркнутого предмета относительно предыдущих версий синтаксической таблицы) для VVectorData, как следует понимать с учетом прилагаемой семантики:
VVectorData(VecSigChannelIds(i)) -эта структура содержит данные кодированных V-векторов, используемые для векторного синтеза сигналов.
VVec(k)[i] -это V-вектор для k-ого HOAframe() для i-ого канала.
VVecLength - эта переменная указывает число векторных элементов для считывания.
VVecCoeffId - этот вектор содержит индексы передаваемых коэффициентов V-вектора.
VecVal - целочисленное значение между 0 и 255.
aVal - временная переменная, используемая в ходе декодирования VVectorData.
huffVal - кодовое слово Хаффмана, которое должно декодироваться по Хаффману.
sgnVal - это кодированное значение знака, используемое в ходе декодирования.
intAddVal - это дополнительное целочисленное значение, используемое в ходе декодирования.
NumVecIndices - число векторов, используемых для того, чтобы деквантовать векторно квантованный V-вектор.
WeightIdx - индекс в WeightValCdbk, используемый для того, чтобы деквантовать векторно квантованный V-вектор.
nbitsW - размер поля для считывания WeightIdx, чтобы декодировать векторно квантованный V-вектор.
WeightValCdbk - кодовая книга, которая содержит вектор положительных действительнозначных весовых коэффициентов. Если NumVecIndices задается равным 1, WeightValCdbk с 16 записями используется, иначе WeightValCdbk с 256 записями используется.
VvecIdx - индекс для VecDict, используемый для того, чтобы деквантовать векторно квантованный V-вектор.
nbitsIdx - размер поля для считывания отдельных VvecIdx, чтобы декодировать векторно квантованный V-вектор.
WeightVal - действительнозначный весовой коэффициент, чтобы декодировать векторно квантованный V-вектор.
T
T
T
2
2
T
2
2
DIST
DIST
DIST
DIST
BG
DIST
DIST
BG
В вышеприведенной синтаксической таблице, первый оператор switch с четырьмя случаями (case 0-3) предоставляет способ, посредством которого можно определять длину V-вектора с точки зрения числа (VVecLength) и индексов коэффициентов (VVecCoeffId). Первый случай, case 0, указывает то, что указываются все коэффициенты для V-векторов (NumOfHoaCoeffs). Второй случай, case 1, указывает то, что указываются только коэффициенты V-вектора, соответствующие числу, большему MinNumOfCoeffsForAmbHOA, что может обозначать то, что упоминается в качестве (N+1)-(N+1) выше. Дополнительно, эти коэффициенты NumOfContAddAmbHoaChan, идентифицированные в ContAddAmbHoaChan, вычитаются. Список ContAddAmbHoaChan указывает дополнительные каналы (при этом "каналы" означают конкретный коэффициент, соответствующий определенной комбинации порядка, подпорядка), соответствующие порядку, который превышает порядок MinAmbHoaOrder. Третий случай, case 2, указывает то, что указываются коэффициенты V-вектора, соответствующие числу, большему MinNumOfCoeffsForAmbHOA, что может обозначать то, что упоминается в качестве (N+1)-(N+1) выше. Как VVecLength, так и список VVecCoeffId являются допустимыми для всех VVectors в HOAFrame.
nbits
После этого оператора switch, решение в отношении того, следует выполнять векторное квантование или равномерное скалярное деквантование, может управляться посредством NbitsQ (или, как обозначено выше, ). Ранее предлагалось только скалярное квантование для того, чтобы квантовать Vvectors (например, когда NbitsQ равен 4). Хотя скалярное квантование по-прежнему предоставляется, когда NbitsQ равен 5, векторное квантование может выполняться в соответствии с технологиями, описанными в этом раскрытии сущности, когда, в качестве одного примера, NbitsQ равен 4.
Другими словами, HOA-сигнал, который имеет сильную направленность, представлен посредством приоритетного аудиосигнала и соответствующей пространственной информации, т.е. V-вектора в примерах этого раскрытия сущности. В технологиях кодирования V-векторов, описанных в этом раскрытии сущности, каждый V-вектор представлен посредством суммирования со взвешиванием предварительно заданных направленных векторов, как задано посредством следующего уравнения:
,
где  и  являются i-ым весовым значением и соответствующим направленным вектором, соответственно.
I
I
I
S
S
Пример кодирования V-векторов проиллюстрирован на фиг. 16. Как показано на фиг. 16(a), исходный V-вектор может быть представлен посредством смеси этих нескольких направленных векторов. Исходный V-вектор затем может оцениваться посредством взвешенной суммы, как показано на фиг. 16(b), при этом весовой вектор показан на фиг. 16(e). Фиг. 16(c) и (f) иллюстрируют случаи, в которых выбираются только  (≤) наибольших весовых значений. Векторное квантование (VQ) затем может выполняться для выбранных весовых значений, и результат проиллюстрирован на фиг. 16(d) и (g).
Вычислительная сложность этой схемы кодирования V-векторов может определяться следующим образом:
0,06 MOPS (HOA-порядок=6)/0,05 MOPS (HOA-порядок=5); и
0,03 MOPS (HOA-порядок=4)/0,02 MOPS (HOA-порядок=3).
Сложность ROM может определяться в качестве 16,29 кбайт (для HOA-порядков 3, 4, 5 и 6), тогда как алгоритмическая задержка определяется как составляющая 0 выборок.
Требуемая модификация текущей версии стандарта кодирования трехмерного аудио, упомянутого выше, может обозначаться в синтаксической таблице VVectorData, показанной выше посредством использования подчеркиваний. Иными словами, в CD вышеприведенного предложенного стандарта MPEG-H 3D Audio, кодирование V-векторов выполняется со скалярным квантованием (SQ) или SQ, после которого выполняется кодирование Хаффмана. Требуемое число битов предложенного способа векторного квантования (VQ) могут быть меньше традиционных способов SQ-кодирования. Для 12 опорных тестовых элементов, число требуемых битов в среднем задается следующим образом:
- SQ+кодирование Хаффмана: 16,25 кбит/с
- Предложенное VQ: 5,25 кбит/с
Сэкономленные биты могут быть переназначены для использования для перцепционного кодирования аудио.
Модуль 74 восстановления V-векторов, другими словами, может работать в соответствии со следующим псевдокодом, чтобы восстанавливать V-векторы:
Согласно вышеприведенному псевдокоду (с перечеркиваниями, указывающими удаление зачеркнутого предмета), модуль 74 восстановления V-векторов может определять VVecLength согласно псевдокоду для оператора switch на основе значения CodedVVecLength. На основе этого VVecLength, модуль 74 восстановления V-векторов может итеративно проходить через последующие операторы if/elseif, которые рассматривают значение NbitsQ. Когда i-ое значение NbitsQ для k-ого кадра равно 4, модуль 74 восстановления V-векторов определяет то, что должно выполняться векторное деквантование.
Синтаксический элемент cdbLen указывает число записей в словаре или в кодовой книге кодовых векторов (причем этот словарь обозначается как "VecDict" в вышеприведенном псевдокоде и представляет кодовую книгу с записями кодовой книги cdbLen, содержащими векторы HOA-коэффициентов расширения, используемых для того, чтобы декодировать векторно квантованный V-вектор), который извлекается на основе NumVvecIndicies и HOA-порядка. Когда значение NumVvecIndicies равно единице, HOA-коэффициенты расширения векторной кодовой книги извлекаются из вышеприведенной таблицы F.8 в сочетании с кодовой книгой из 8×1 весовых значений, показанной в вышеприведенной таблице F.11. Когда значение NumVvecIndicies превышает единицу, векторная кодовая книга с O-вектором используется в сочетании с 256×8 весовыми значениями, показанными в вышеприведенной таблице F.12.
Хотя описывается выше в качестве использования кодовой книги размера 256×8, могут использоваться различные кодовые книги, имеющие различные числа значений. Иными словами, вместо значения 0 - значения 7, может использоваться кодовая книга с 256 строками, причем каждая строка индексируется посредством различного значения индекса (индекс 0 - индекс 255) и имеет различное число значений, к примеру, значение 0 - значение 9 (всего для десяти значений) или значение 0 - значение 15 (всего для 16 значений). Фиг. 19A и 19B являются схемами, иллюстрирующими кодовые книги с 256 строками, причем каждая строка имеет 10 значений и 16 значений, соответственно, которые могут использоваться в соответствии с различными аспектами технологий, описанных в этом раскрытии сущности.
Модуль 74 восстановления V-векторов может извлекать значение весового коэффициента для соответствующего кодового вектора, используемого для того, чтобы восстанавливать V-вектор на основе кодовой книги значения весового коэффициента (обозначается как WeightValCdbk, который может представлять многомерную таблицу, индексированную на основе одного или более из индекса кодовой книги (обозначается как CodebkIdx в вышеприведенной синтаксической таблице VVectorData(i)) и индекса весового коэффициента (обозначается как WeightIdx в вышеприведенной синтаксической таблице VVectorData(i))). Этот синтаксический элемент CodebkIdx может задаваться в части информации боковых каналов, как показано в нижеприведенной синтаксической таблице ChannelSideInfoData(i).
Таблица. Синтаксис ChannelSideInfoData(i)
Подчеркивания в вышеприведенной таблице обозначают изменения существующей синтаксической таблицы, чтобы размещать добавление CodebkIdx. Семантика для вышеприведенной таблицы заключается в следующем.
Эти рабочие данные хранят вспомогательную информацию для i-ого канала. Размер и данные рабочих данных зависят от типа канала.
ChannelType[i]
Этот элемент сохраняет тип i-ого канала, который задается в таблице 95.
ActiveDirsIds[i]
Этот элемент указывает направление активного направленного сигнала с использованием индекса 900 предварительно заданных равномерно распределенных точек из приложения F.7. Кодовое слово 0 используется для передачи в служебных сигналах конца направленного сигнала.
PFlag[i]
Флаг прогнозирования, используемый для декодирования Хаффмана скалярно квантованного V-вектора, ассоциированного с векторным сигналом i-ого канала.
CbFlag[i]
Флаг кодовой книги, используемый для декодирования Хаффмана скалярно квантованного V-вектора, ассоциированного с векторным сигналом i-ого канала.
CodebkIdx[i]
Передает в служебных сигналах конкретную кодовую книгу, используемую для того, чтобы деквантовать векторно квантованный V-вектор, ассоциированный с векторным сигналом i-ого канала.
NbitsQ[i]
Этот индекс определяет таблицу Хаффмана, используемую для декодирования Хаффмана данных, ассоциированных с векторным сигналом i-ого канала. Кодовое слово 5 определяет использование равномерного 8-битового деквантователя. Два MSB 00 определяют многократное использование данных NbitsQ[i], PFlag[i] и CbFlag[i] предыдущего кадра (k-1).
bA, bB - MSB (bA) и второй MSB (bB) поля NbitsQ[i].
uintC - кодовое слово оставшихся двух битов поля NbitsQ[i].
AddAmbHoaInfoChannel(i) -эти рабочие данные содержат информацию для дополнительных окружающих HOA-коэффициентов.
Согласно семантике синтаксической таблицы VVectorData, синтаксический элемент nbitsW представляет размер поля для считывания WeightIdx, чтобы декодировать векторно квантованный V-вектор, тогда как синтаксический элемент WeightValCdbk представляет кодовую книгу, которая содержит вектор положительных действительнозначных весовых коэффициентов. Если NumVecIndices задается равным 1, WeightValCdbk с 8 записями используется, иначе WeightValCdbk с 256 записями используется. Согласно синтаксической таблице VVectorData, когда CodebkIdx равен нулю, модуль 74 восстановления V-векторов определяет то, что nbitsW равен 3, и WeightIdx может иметь значение в диапазоне 0-7. В этом случае, словарь VecDict кодовых векторов имеет относительно большое число записей (например, 900) и спаривается с кодовой книгой весовых коэффициентов, имеющей только 8 записей. Когда CodebkIdx не равен нулю, модуль 74 восстановления V-векторов определяет то, что nbitsW равен 8, и WeightIdx может иметь значение в диапазоне 0-255. В этом случае, VecDict имеет относительно меньшее число записей (например, 25 или 32 записей), и относительно большее число весовых коэффициентов требуется (например, 256) в кодовой книге весовых коэффициентов для того, чтобы обеспечивать приемлемую ошибку. Таким образом, технологии могут предоставлять спаренные кодовые книги (означающие спаренный используемый VecDict и кодовой книги весовых коэффициентов). Значение весового коэффициента (обозначается как WeightVal в вышеприведенной синтаксической таблице VVectorData) затем может вычисляться следующим образом: WeightVal[j]=((SgnVal*2)-1) * WeightValCdbk[CodebkIdx(k)[i]][WeightIdx][j];
Этот WeightVal затем может применяться согласно вышеприведенному псевдокоду к соответствующему кодовому вектору для того, чтобы векторно деквантовать V-вектор.
В этом отношении, технологии могут обеспечивать возможность устройству декодирования аудио, например, устройству 24 декодирования аудио, выбирать одну из множества кодовых книг, которую следует использовать при выполнении векторного деквантования относительно векторно квантованного пространственного компонента звукового поля, причем векторно квантованный пространственный компонент получается через применение векторного синтеза ко множеству коэффициентов амбиофонии высшего порядка.
Кроме того, технологии могут обеспечивать возможность устройству 24 декодирования аудио выбирать между множеством спаренных кодовых книг, которые должны использоваться при выполнении векторного деквантования относительно векторно квантованного пространственного компонента звукового поля, причем векторно квантованный пространственный компонент получается через применение векторного синтеза ко множеству коэффициентов амбиофонии высшего порядка.
Когда NbitsQ равен 5, выполняется равномерное 8-битовое скалярное деквантование. Напротив, значение NbitsQ, большее или равное 6, может приводить к применению декодирования Хаффмана. Вышеуказанное значение cid может быть равно двум младшим битам значения NbitsQ. Режим прогнозирования, поясненный выше, обозначается как PFlag в вышеуказанной синтаксической таблице, тогда как бит HT info обозначается как CbFlag в вышеуказанной синтаксической таблице. Оставшийся синтаксис указывает то, как возникает декодирование, способом, практически аналогичным способу, описанному выше.
Модуль 92 векторного восстановления представляет модуль, сконфигурированный с возможностью выполнять операции, обратные относительно операций, описанных выше относительно модуля 27 векторного синтеза, с тем чтобы восстанавливать HOA-коэффициенты 11'. Модуль 92 векторного восстановления может включать в себя модуль 74 восстановления V-векторов, модуль 76 пространственно-временной интерполяции, модуль 78 формулирования приоритетных компонентов, модуль 80 психоакустического декодирования, модуль 82 формулирования HOA-коэффициентов и модуль 84 переупорядочения.
k
k
Модуль 74 восстановления V-векторов может принимать кодированные весовые коэффициенты 57 и формировать уменьшенные приоритетные V[k]-векторы 55. Модуль 74 восстановления V-векторов может перенаправлять уменьшенные приоритетные V[k]-векторы 55 в модуль 84 переупорядочения.
k
k
k
Например, модуль 74 восстановления V-векторов может получать кодированные весовые коэффициенты 57 из потока 21 битов через модуль 72 извлечения и восстанавливать уменьшенные приоритетные V[k]-векторы 55 на основе кодированных весовых коэффициентов 57 и одного или более кодовых векторов. В некоторых примерах, кодированные весовые коэффициенты 57 могут включать в себя значения весовых коэффициентов, соответствующие всем кодовым векторам в наборе кодовых векторов, который используется для того, чтобы представлять уменьшенные приоритетные V[k]-векторы 55. В таких примерах, модуль 74 восстановления V-векторов может восстанавливать уменьшенные приоритетные V[k]-векторы 55 на основе полного набора кодовых векторов.
k
k
k
k
Кодированные весовые коэффициенты 57 могут включать в себя значения весовых коэффициентов, соответствующие поднабору набора кодовых векторов, который используется для того, чтобы представлять уменьшенные приоритетные V[k]-векторы 55. В таких примерах, кодированные весовые коэффициенты 57 дополнительно могут включать в себя данные, указывающие то, какие из множества кодовых векторов следует использовать для восстановления уменьшенных приоритетных V[k]-векторов 55, и модуль 74 восстановления V-векторов может использовать поднабор кодовых векторов, указываемых посредством таких данных, чтобы восстанавливать уменьшенные приоритетные V[k]-векторы 55. В некоторых примерах, данные, указывающие то, какие из множества кодовых векторов следует использовать для восстановления уменьшенных приоритетных V[k]-векторов 55, могут соответствовать индексам 57.
В некоторых примерах, модуль 74 восстановления V-векторов может получать из потока битов данные, указывающие множество значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию множества HOA-коэффициентов, и восстанавливать вектор на основе значений весовых коэффициентов и кодовых векторов. Каждое из значений весовых коэффициентов может соответствовать надлежащему одному из множества весовых коэффициентов во взвешенной сумме кодовых векторов, которая представляет вектор.
В некоторых примерах, для того чтобы восстанавливать вектор, модуль 74 восстановления V-векторов может определять взвешенную сумму кодовых векторов, причем кодовые векторы взвешены посредством значений весовых коэффициентов. В дополнительных примерах, для того чтобы восстанавливать вектор, модуль 74 восстановления V-векторов, для каждого из значений весовых коэффициентов, может умножать значение весового коэффициента на соответствующий один из кодовых векторов для того, чтобы формировать соответствующий взвешенный кодовый вектор, включенный во множество взвешенных кодовых векторов, и суммировать множество взвешенных кодовых векторов для того, чтобы определять вектор.
В некоторых примерах, модуль 74 восстановления V-векторов может получать, из потока битов, данные, указывающие то, какие из множества кодовых векторов следует использовать для восстановления вектора, и восстанавливать вектор на основе значений весовых коэффициентов (например, элемента WeightVal, извлекаемого из WeightValCdbk на основе синтаксических элементов CodebkIdx и WeightIdx), кодовые векторы и данные, указывающие то, какие из множества кодовых векторов (идентифицированных, например, посредством синтаксического элемента VVecIdx в дополнение к NumVecIndices) следует использовать для восстановления вектора. В таких примерах, для того чтобы восстанавливать вектор, модуль 74 восстановления V-векторов, в некоторых примерах, может выбирать поднабор кодовых векторов на основе данных, указывающих то, какие из множества кодовых векторов следует использовать для восстановления вектора, и восстанавливать вектор на основе значений весовых коэффициентов и выбранного поднабора кодовых векторов.
В таких примерах, для того чтобы восстанавливать вектор на основе значений весовых коэффициентов и выбранного поднабора кодовых векторов, модуль 74 восстановления V-векторов, для каждого из значений весовых коэффициентов, может умножать значение весового коэффициента на соответствующий один из кодовых векторов в поднаборе кодовых векторов для того, чтобы формировать соответствующий взвешенный кодовый вектор, и суммировать множество взвешенных кодовых векторов для того, чтобы определять вектор.
Модуль 80 психоакустического декодирования может работать способом, обратным относительно модуля 40 психоакустического кодирования аудио, показанного в примере по фиг. 4A, с тем чтобы декодировать кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 61 и за счет этого формировать окружающие HOA-коэффициенты 47' после энергетической компенсации и интерполированные nFG-сигналы 49' (которые также могут упоминаться в качестве интерполированных nFG-аудиообъектов 49'). Хотя показаны как отдельные друг от друга, кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 61 могут не быть отдельными друг от друга и вместо этого могут указываться в качестве кодированных каналов, как описано ниже относительно фиг. 4B. Модуль 80 психоакустического декодирования, когда кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 61 указываются вместе в качестве кодированных каналов, может декодировать кодированные каналы, чтобы получать декодированные каналы, и затем выполнять форму переназначения каналов относительно декодированных каналов, чтобы получать окружающие HOA-коэффициенты 47' после энергетической компенсации и интерполированные nFG-сигналы 49'.
Другими словами, модуль 80 психоакустического декодирования может получать интерполированные nFG-сигналы 49' всех преобладающих звуковых сигналов, которые могут обозначаться как кадр, окружающие HOA-коэффициенты 47' после энергетической компенсации, представляющие промежуточное представление окружающего HOA-компонента, которое может обозначаться как кадр. Модуль 80 психоакустического декодирования может выполнять это переназначение каналов на основе синтаксических элементов, указываемых в потоке 21 или 29 битов, который может включать в себя вектор назначений, указывающий, для каждого транспортного канала, индекс возможно содержащейся последовательности коэффициентов окружающего HOA-компонента, и других синтаксических элементов, указывающих набор активных V-векторов. В любом случае, модуль 80 психоакустического декодирования может передавать окружающие HOA-коэффициенты 47' после энергетической компенсации в модуль 82 формулирования HOA-коэффициентов и nFG-сигналы 49' в модуль 84 переупорядочения.
Другими словами, модуль 80 психоакустического декодирования может получать интерполированные nFG-сигналы 49' всех преобладающих звуковых сигналов, которые могут обозначаться как кадр , окружающие HOA-коэффициенты 47' после энергетической компенсации, представляющие промежуточное представление окружающего HOA-компонента, которое может обозначаться как кадр . Модуль 80 психоакустического декодирования может выполнять это переназначение каналов на основе синтаксических элементов, указываемых в потоке 21 или 29 битов, который может включать в себя вектор назначений, указывающий, для каждого транспортного канала, индекс возможно содержащейся последовательности коэффициентов окружающего HOA-компонента, и других синтаксических элементов, указывающих набор активных V-векторов. В любом случае, модуль 80 психоакустического декодирования может передавать окружающие HOA-коэффициенты 47' после энергетической компенсации в модуль 82 формулирования HOA-коэффициентов и nFG-сигналы 49' в модуль 84 переупорядочения.
S
U
US[k
Чтобы подтверждать вышеуказанное, HOA-коэффициенты могут повторно формулироваться из векторных сигналов способом, описанным выше. Скалярное деквантование может сначала выполняться относительно каждого V-вектора для того, чтобы формировать , причем i-ые отдельные векторы текущего кадра могут обозначаться как . V-векторы, возможно, разложены из HOA-коэффициентов с использованием линейного обратимого преобразования (к примеру, разложения по сингулярным значениям, анализа главных компонентов, преобразования Карунена-Лоэва, преобразования Хотеллинга, собственного ортогонального разложения или разложения по собственным значениям), как описано выше. Разложение также выводит, в случае разложения по сингулярным значениям, [k]- и [k]-векторы, которые могут комбинироваться с тем, чтобы формировать ]. Отдельные векторные элементы в US[k]-матрице могут обозначаться как .
i-ый
i-ый
US[k]
i-ый
Пространственно-временная интерполяция может выполняться относительно  и  (что обозначает V-векторы из предыдущего кадра, при этом отдельные векторы  обозначаются как ). Способ пространственной интерполяции, в качестве одного примера, управляется посредством . После интерполяции, интерполированный V-вектор () затем умножается на  (который обозначается как ), чтобы выводить столбец HOA-представления ()). Векторы-столбцы затем могут быть суммированы, чтобы формулировать HOA-представление векторных сигналов. Таким образом, разложенное интерполированное представление HOA-коэффициентов получается для кадра посредством выполнения интерполяции относительно  и , как подробнее описано ниже.
Фиг. 4B является блок-схемой, подробнее иллюстрирующей другой пример устройства 24 декодирования аудио. Пример, показанный на фиг. 4B для устройства 24 декодирования аудио, обозначается как устройство 24' декодирования аудио. Устройство 24' декодирования аудио является практически аналогичным устройству 24 декодирования аудио, показанному в примере по фиг. 4A, за исключением того, что модуль 902 психоакустического декодирования устройства 24' декодирования аудио не выполняет переназначение каналов, описанное выше. Вместо этого, устройство кодирования аудио 24' включает в себя отдельный модуль 904 переназначения каналов, который выполняет переназначение каналов, описанное выше. В примере по фиг. 4B, модуль 902 психоакустического декодирования принимает кодированные каналы 900 и выполняет психоакустическое декодирование относительно кодированных каналов 900, чтобы получать декодированные каналы 901. Модуль 902 психоакустического декодирования может выводить декодированный канал 901 в модуль 904 переназначения каналов. Модуль 904 переназначения каналов затем может выполнять вышеописанное переназначение каналов относительно декодированного канала 901, чтобы получать окружающие HOA-коэффициенты 47' после энергетической компенсации и интерполированные nFG-сигналы 49'.
k
k
k-1
k
k
Модуль 76 пространственно-временной интерполяции может работать способом, аналогичным способу, описанному выше относительно модуля 50 пространственно-временной интерполяции. Модуль 76 пространственно-временной интерполяции может принимать уменьшенные приоритетные V[k]-векторы 55и выполнять пространственно-временную интерполяцию относительно приоритетных V[k]-векторов 55 и уменьшенных приоритетных V[k-1]-векторов 55, чтобы формировать интерполированные приоритетные V[k]-векторы 55''. Модуль 76 пространственно-временной интерполяции может перенаправлять интерполированные приоритетные V[k]-векторы 55'' в модуль 770 постепенного нарастания/затухания.
k
k
k
k
k
Модуль 72 извлечения также может выводить сигнал 757, указывающий то, когда один из окружающих HOA-коэффициентов находится в переходе, в модуль 770 постепенного нарастания/затухания, который затем может определять то, какие из SHCBG 47' (причем SHCBG 47' также могут обозначаться "как окружающие HOA-каналы 47'" или "окружающие HOA-коэффициенты 47'") и элементов интерполированных приоритетных V[k]-векторов 55'' должны постепенно нарастать или постепенно затухать. В некоторых примерах, модуль 770 постепенного нарастания/затухания может работать противоположным образом относительно каждого из окружающих HOA-коэффициентов 47' и элементов интерполированных приоритетных V[k]-векторов 55''. Иными словами, модуль 770 постепенного нарастания/затухания может выполнять постепенное нарастание или постепенное затухание либо как постепенное нарастание, так и постепенное затухание относительно соответствующего одного из окружающих HOA-коэффициентов 47', при выполнении постепенного нарастания или постепенного затухания либо как постепенного нарастания, так и постепенного затухания относительно соответствующего одного из элементов интерполированных приоритетных V[k]-векторов 55''. Модуль 770 постепенного нарастания/затухания может выводить отрегулированные окружающие HOA-коэффициенты 47'' в модуль 82 формулирования HOA-коэффициентов и отрегулированные приоритетные V[k]-векторы 55''' в модуль 78 формулирования приоритетных компонентов. В этом отношении, модуль 770 постепенного нарастания/затухания представляет модуль, сконфигурированный с возможностью выполнять операцию постепенного нарастания/затухания относительно различных аспектов HOA-коэффициентов или их производных, например, в форме окружающих HOA-коэффициентов 47' и элементов интерполированных приоритетных V[k]-векторов 55''.
k
k
k
Модуль 78 формулирования приоритетных компонентов может представлять модуль, сконфигурированный с возможностью выполнять умножение матриц относительно отрегулированных приоритетных V[k]-векторов 55''' и интерполированных nFG-сигналов 49', чтобы формировать приоритетные HOA-коэффициенты 65. В этом отношении, модуль 78 формулирования приоритетных компонентов может комбинировать аудиообъекты 49' (что представляет собой другой способ, посредством которого можно обозначать интерполированные nFG-сигналы 49') с векторами 55''', чтобы восстанавливать приоритетные или, другими словами, преобладающие аспекты HOA-коэффициентов 11'. Модуль 78 формулирования приоритетных компонентов может выполнять умножение матриц интерполированных nFG-сигналов 49' на отрегулированные приоритетные V[k]-векторы 55'''.
Модуль 82 формулирования HOA-коэффициентов может представлять модуль, сконфигурированный с возможностью комбинировать приоритетные HOA-коэффициенты 65 с отрегулированными окружающими HOA-коэффициентами 47'', с тем чтобы получать HOA-коэффициенты 11'. Простое обозначение отражает то, что HOA-коэффициенты 11' могут быть аналогичными, но не идентичными HOA-коэффициентам 11. Разности между HOA-коэффициентами 11 и 11' могут получаться в результате потерь вследствие передачи по среде передачи с потерями, квантования или других операций с потерями.
Фиг. 5 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу устройства кодирования аудио, такого как устройство 20 кодирования аудио, показанное в примере по фиг. 3A, при выполнении различных аспектов технологий векторного синтеза, описанных в этом раскрытии сущности. Первоначально, устройство 20 кодирования аудио принимает HOA-коэффициенты 11 (106). Устройство 20 кодирования аудио может активировать LIT-модуль 30, который может применять LIT относительно HOA-коэффициентов для того, чтобы выводить преобразованные HOA-коэффициенты (например, в случае SVD, преобразованные HOA-коэффициенты могут содержать US[k]-векторы 33 и V[k]-векторы 35) (107).
Устройство 20 кодирования аудио затем может активировать модуль 32 вычисления параметров, чтобы выполнять вышеописанный анализ относительно любой комбинации US[k]-векторов 33, US[k-1]-векторов 33, V[k]- и/или V[k-1]-векторов 35, чтобы идентифицировать различные параметры способом, описанным выше. Иными словами, модуль 32 вычисления параметров может определять, по меньшей мере, один параметр на основе анализа преобразованных HOA-коэффициентов 33/35 (108).
BG
Устройство 20 кодирования аудио затем может активировать модуль 34 переупорядочения, который может переупорядочивать преобразованные HOA-коэффициенты (которые, снова в контексте SVD, могут означать US[k]-векторы 33 и V[k]-векторы 35) на основе параметра, чтобы формировать переупорядоченные преобразованные HOA-коэффициенты 33'/35' (или, другими словами, US[k]-векторы 33' и V[k]-векторы 35'), как описано выше (109). Устройство 20 кодирования аудио, в ходе любой из вышеприведенных операций или последующих операций, также может активировать модуль 44 анализа звукового поля. Модуль 44 анализа звукового поля, как описано выше, может выполнять анализ звукового поля относительно HOA-коэффициентов 11 и/или преобразованных HOA-коэффициентов 33/35, чтобы определять общее число (nFG) 45 приоритетных каналов, порядок (N) фонового звукового поля и число (nBGa) и индексы (i) дополнительных BG HOA-каналов для отправки (что может совместно обозначаться как информация 43 фоновых каналов в примере по фиг. 3A) (109).
Устройство 20 кодирования аудио также может активировать модуль 48 выбора фоновых компонентов. Модуль 48 выбора фоновых компонентов может определять фоновые или окружающие HOA-коэффициенты 47 на основе информации 43 фоновых каналов (110). Устройство 20 кодирования аудио дополнительно может активировать модуль 36 выбора приоритетных компонентов, который может выбирать переупорядоченные US[k]-векторы 33' и переупорядоченные V[k]-векторы 35', которые представляют приоритетные или отличительные компоненты звукового, поля на основе nFG 45 (которые могут представлять один или более индексов, идентифицирующих приоритетные векторы) (112).
Устройство 20 кодирования аудио может активировать модуль 38 энергетической компенсации. Модуль 38 энергетической компенсации может выполнять энергетическую компенсацию относительно окружающих HOA-коэффициентов 47, чтобы компенсировать энергетические потери вследствие удаления различных HOA-коэффициентов посредством модуля 48 выбора фоновых компонентов (114) и за счет этого формировать окружающие HOA-коэффициенты 47' после энергетической компенсации.
Устройство 20 кодирования аудио также может активировать модуль 50 пространственно-временной интерполяции. Модуль 50 пространственно-временной интерполяции может выполнять пространственно-временную интерполяцию относительно переупорядоченных преобразованных HOA-коэффициентов 33'/35', чтобы получать интерполированные приоритетные сигналы 49' (которые также могут упоминаться в качестве "интерполированных nFG-сигналов 49'") и оставшуюся приоритетную направленную информацию 53 (которая также может упоминаться в качестве "V[k]-векторов 53") (116). Устройство 20 кодирования аудио затем может активировать модуль 46 уменьшения числа коэффициентов. Модуль 46 уменьшения числа коэффициентов может выполнять уменьшение числа коэффициентов относительно оставшихся приоритетных V[k]-векторов 53 на основе информации 43 фоновых каналов, чтобы получать уменьшенную приоритетную направленную информацию 55 (которая также может упоминаться в качестве уменьшенных приоритетных V[k]-векторов 55) (118).
Устройство 20 кодирования аудио затем может активировать модуль 52 кодирования V-векторов для того, чтобы сжимать, способом, описанным выше, уменьшенные приоритетные V[k]-векторы 55 и формировать кодированные приоритетные V[k]-векторы 57 (120).
Устройство 20 кодирования аудио также может активировать модуль 40 психоакустического аудиокодера. Модуль 40 психоакустического аудиокодера может психоакустически кодировать каждый вектор окружающих HOA-коэффициентов 47' после энергетической компенсации и интерполированных nFG-сигналов 49', чтобы формировать кодированные окружающие HOA-коэффициенты 59 и кодированные nFG-сигналы 61. Устройство кодирования аудио затем может активировать модуль 42 формирования потоков битов. Модуль 42 формирования потоков битов может формировать поток 21 битов на основе кодированной приоритетной направленной информации 57, кодированных окружающих HOA-коэффициентов 59, кодированных nFG-сигналов 61 и информации 43 фоновых каналов.
Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу устройства декодирования аудио, такого как устройство 24 декодирования аудио, показанное на фиг. 4A, при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Первоначально, устройство 24 декодирования аудио может принимать поток 21 битов (130). При приеме потока битов, устройство 24 декодирования аудио может активировать модуль 72 извлечения. При условии, для целей пояснения, что поток 21 битов указывает то, что должно выполняться векторное восстановление, модуль 72 извлечения, может синтаксически анализировать поток битов, чтобы извлекать вышеуказанную информацию, передавая информацию в модуль 92 векторного восстановления.
Другими словами, модуль 72 извлечения может извлекать кодированную приоритетную направленную информацию 57 (которая, снова, также может упоминаться в качестве кодированных приоритетных V[k]-векторов 57), кодированные окружающие HOA-коэффициенты 59 и кодированные приоритетные сигналы (которые также могут упоминаться в качестве кодированных приоритетных nFG-сигналов 59 или кодированных приоритетных аудиообъектов 59) из потока 21 битов способом, описанным выше (132).
k
Устройство 24 декодирования аудио дополнительно может активировать модуль 74 деквантования. Модуль 74 деквантования может энтропийно декодировать и деквантовать кодированную приоритетную направленную информацию 57, чтобы получать уменьшенную приоритетную направленную информацию 55(136). Устройство 24 декодирования аудио также может активировать модуль 80 психоакустического декодирования. Модуль 80 психоакустического декодирования аудио может декодировать кодированные окружающие HOA-коэффициенты 59 и кодированные приоритетные сигналы 61, чтобы получать окружающие HOA-коэффициенты 47' после энергетической компенсации и интерполированные приоритетные сигналы 49' (138). Модуль 80 психоакустического декодирования может передавать окружающие HOA-коэффициенты 47' после энергетической компенсации в модуль 770 постепенного нарастания/затухания и nFG-сигналы 49' в модуль 78 формулирования приоритетных компонентов.
k
k
k-1
k
k
Устройство 24 декодирования аудио затем может активировать модуль 76 пространственно-временной интерполяции. Модуль 76 пространственно-временной интерполяции может принимать переупорядоченную приоритетную направленную информацию 55' и выполнять пространственно-временную интерполяцию относительно уменьшенной приоритетной направленной информации 55/55, чтобы формировать интерполированную приоритетную направленную информацию 55'' (140). Модуль 76 пространственно-временной интерполяции может перенаправлять интерполированные приоритетные V[k]-векторы 55'' в модуль 770 постепенного нарастания/затухания.
k
k
Устройство 24 декодирования аудио может активировать модуль 770 постепенного нарастания/затухания. Модуль 770 постепенного нарастания/затухания может принимать или иным образом получать синтаксические элементы (например, из модуля 72 извлечения), указывающие то, когда окружающие HOA-коэффициенты 47' после энергетической компенсации находятся в переходе (например, синтаксический элемент AmbCoeffTransition). Модуль 770 постепенного нарастания/затухания, на основе синтаксических элементов перехода и поддерживаемой информации переходного состояния, может обеспечивать постепенное нарастание или постепенное затухание окружающих HOA-коэффициентов 47' после энергетической компенсации, выводя отрегулированные окружающие HOA-коэффициенты 47'' в модуль 82 формулирования HOA-коэффициентов. Модуль 770 постепенного нарастания/затухания также может, на основе синтаксических элементов и поддерживаемой информации переходного состояния, обеспечивать постепенное затухание или постепенное нарастание соответствующего одного или более элементов интерполированных приоритетных V[k]-векторов 55'', выводя отрегулированные приоритетные V[k]-векторы 55''' в модуль 78 формулирования приоритетных компонентов (142).
k
Устройство 24 декодирования аудио может активировать модуль 78 формулирования приоритетных компонентов. Модуль 78 формулирования приоритетных компонентов может выполнять умножение матриц nFG-сигналов 49' на отрегулированную приоритетную направленную информацию 55''', чтобы получать приоритетные HOA-коэффициенты 65 (144). Устройство 24 декодирования аудио также может активировать модуль 82 формулирования HOA-коэффициентов. Модуль 82 формулирования HOA-коэффициентов может суммировать приоритетные HOA-коэффициенты 65 с отрегулированными окружающими HOA-коэффициентами 47'', с тем чтобы получать HOA-коэффициенты 11' (146).
Фиг. 7 является блок-схемой, подробнее иллюстрирующей примерный модуль 52 кодирования V-векторов, который может использоваться в устройстве 20 кодирования аудио по фиг. 3A. Модуль 52 кодирования V-векторов включает в себя модуль 502 разложения и модуль 504 квантования. Модуль 502 разложения может разлагать каждый из уменьшенных приоритетных V[k]-векторов 55 на взвешенную сумму кодовых векторов на основе кодовых векторов 63. Модуль 502 разложения может формировать весовые коэффициенты 506 и предоставлять весовые коэффициенты 506 в модуль 504 квантования. Модуль 504 квантования может квантовать весовые коэффициенты 506, чтобы формировать кодированные весовые коэффициенты 57.
Фиг. 8 является блок-схемой, подробнее иллюстрирующей примерный модуль 52 кодирования V-векторов, который может использоваться в устройстве 20 кодирования аудио по фиг. 3A. Модуль 52 кодирования V-векторов включает в себя модуль 502 разложения, модуль 510 выбора весовых коэффициентов и модуль 504 квантования. Модуль 502 разложения может разлагать каждый из уменьшенных приоритетных V[k]-векторов 55 на взвешенную сумму кодовых векторов на основе кодовых векторов 63. Модуль 502 разложения может формировать весовые коэффициенты 514 и предоставлять весовые коэффициенты 514 в модуль 510 выбора весовых коэффициентов. Модуль 510 выбора весовых коэффициентов может выбирать поднабор весовых коэффициентов 514, чтобы формировать выбранный поднабор весовых коэффициентов 516, и предоставлять выбранный поднабор весовых коэффициентов 516 в модуль 504 квантования. Модуль 504 квантования может квантовать выбранный поднабор весовых коэффициентов 516, чтобы формировать кодированные весовые коэффициенты 57.
Фиг. 9 является концептуальной схемой, иллюстрирующей звуковое поле, сформированное из V-вектора. Фиг. 10 является концептуальной схемой, иллюстрирующей звуковое поле, сформированное из модели 25-го порядка V-вектора, описанного выше относительно фиг. 9. Фиг. 11 является концептуальной схемой, иллюстрирующей взвешивание каждого порядка относительно модели 25-го порядка, показанной на фиг. 10. Фиг. 12 является концептуальной схемой, иллюстрирующей модель 5-ого порядка V-вектора, описанного выше относительно фиг. 9. Фиг. 13 является концептуальной схемой, иллюстрирующей взвешивание каждого порядка относительно модели 5-ого порядка, показанной на фиг. 12.
FG
FG
FG
T
T
Фиг. 14 является концептуальной схемой, иллюстрирующей примерные размеры примерных матриц, используемых для того, чтобы выполнять разложение по сингулярным значениям. Как показано на фиг. 14, U-матрица включена в U-матрицу, S-матрица включена в S-матрицу, и V-матрица включена в V-матрицу.
FG
2
N
В примерных матрицах по фиг. 14, U-матрица имеет размеры 1280 на 2, где 1280 соответствует числу выборок, и 2 соответствует числу приоритетных векторов, выбранных для приоритетного кодирования. U-матрица имеет размеры 1280 на 25, где 1280 соответствует числу выборок, и 25 соответствует числу каналов в HOA-аудиосигнале. Число каналов может быть равно (N+1), где  равен порядку HOA-аудиосигнала.
FG
S-матрица имеет размеры 2×2, где каждое 2 соответствует числу приоритетных векторов, выбранных для приоритетного кодирования. S-матрица имеет размеры 25 на 25, где каждое 25 соответствует числу каналов в HOA-аудиосигнале.
FG
T
T
V-матрица имеет размеры 25 на 2, где 25 соответствует числу каналов в HOA-аудиосигнале, и 2 соответствует числу приоритетных векторов, выбранных для приоритетного кодирования. V-матрица имеет размеры 25 на 25, где каждое 25 соответствует числу каналов в HOA-аудиосигнале.
FG
FG
FG
FG
FG
T
Как показано на фиг. 14, U-матрица, S-матрица и V-матрица могут умножаться друг на друга, чтобы формировать H-матрицу. H-матрица имеет размеры 1280 на 25, где 1280 соответствует числу выборок, и 25 соответствует числу каналов в HOA-аудиосигнале.
Фиг. 15 является схемой, иллюстрирующей примерные повышения производительности, которые могут получаться посредством использования технологий кодирования V-векторов этого раскрытия сущности. Каждая строка представляет тестовый элемент, и столбцы указывают, слева направо, номер тестового элемента, название тестового элемента, число битов в расчете на кадр, ассоциированное с тестовым элементом, скорость передачи битов с использованием одной или более примерных технологий кодирования V-векторов этого раскрытия сущности и скорость передачи битов, полученная с использованием других технологий кодирования V-векторов (например, скалярного квантования компонентов V-вектора без разложения V-вектора). Как показано на фиг. 15, технологии этого раскрытия сущности, в некоторых примерах, могут предоставлять существенные повышения скорости передачи битов относительно других технологий, которые не разлагают V-векторы на весовые коэффициенты, и/или выбирать поднабор весовых коэффициентов для того, чтобы квантовать.
В некоторых примерах, технологии этого раскрытия сущности позволяют выполнять квантование V-векторов на основе набора направленных векторов. V-вектор может быть представлен посредством взвешенной суммы направленных векторов. В некоторых примерах, для данного набора направленных векторов, которые являются ортонормированными друг другу, модуль 52 кодирования V-векторов может вычислять весовое значение для каждого направленного вектора. Модуль 52 кодирования V-векторов может выбирать N максимальных весовых значений, {w_i}, и соответствующие направленные векторы, {o_i}. Модуль 52 кодирования V-векторов может передавать индексы {i} в декодер, которые соответствуют выбранным весовым значениям и/или направленным векторам. В некоторых примерах, при вычислении максимумов, модуль 52 кодирования V-векторов может использовать абсолютные значения (посредством пренебрежения информацией знака). Модуль 52 кодирования V-векторов может квантовать N максимальных весовых значений, {w_i}, чтобы формировать квантованные весовые значения {w^_i}. Модуль 52 кодирования V-векторов может передавать индексы квантования для {w^_i} в декодер. В декодере, квантованный V-вектор может быть синтезирован в качестве sum_i (w^_ i * o_i)
В некоторых примерах, технологии этого раскрытия сущности позволяют предоставлять существенное повышение производительности. Например, по сравнению с использованием скалярного квантования, после которого выполняется кодирование Хаффмана, может получаться приблизительно 85%-е уменьшение скорости передачи битов. Например, скалярное квантование, после которого выполняется кодирование Хаффмана, в некоторых примерах может требовать скорости передачи битов в 16,26 кбит/с (килобит в секунду), тогда как технологии этого раскрытия сущности, в некоторых примерах, могут допускать кодирование на скорости передачи битов 2,75 кбит/с.
Рассмотрим пример, в котором X кодовых векторов из кодовой книги (и X соответствующих весовых коэффициентов) используются для того, чтобы кодировать V-вектор. В некоторых примерах, модуль 42 формирования потоков битов может формировать поток 21 битов таким образом, что каждый V-вектор представлен посредством 3 категорий параметров: (1) Число X индексов, каждый из которых указывает на конкретный вектор в кодовой книге кодовых векторов (например, в кодовой книге нормализованных направленных векторов); (2) соответствующее число (X) весовых коэффициентов для обхода с вышеуказанными индексами; и (3) знаковый бит для каждого из вышеуказанных (X) число весовых коэффициентов. В некоторых случаях, число X весовых коэффициентов дополнительно может квантоваться с использованием еще одного другого векторного квантования (VQ).
Кодовая книга при разложении, используемая для определения весовых коэффициентов в этом примере, может выбираться из набора возможных вариантов кодовых книг. Например, кодовая книга может быть 1 из 8 различных кодовых книг. Каждая из этих кодовых книг может иметь различные длины. Таким образом, например, не только кодовая книга с размером 49 векторов может использоваться для того, чтобы определять весовые коэффициенты для HOA-контента шестого порядка, но технологии этого раскрытия сущности позволяют обеспечивать вариант использования любой из 8 кодовых книг различного размера.
Кодовая книга при квантовании, используемая для VQ весовых коэффициентов, в некоторых примерах, также может иметь идентичное соответствующее число возможных кодовых книг, что и число возможных кодовых книг при разложении, используемых для того, чтобы определять весовые коэффициенты. Таким образом, в некоторых примерах, может быть предусмотрено переменное число различных кодовых книг для определения весовых коэффициентов и переменное число кодовых книг для квантования весовых коэффициентов.
В некоторых примерах, число весовых коэффициентов, используемых для того, чтобы оценивать V-вектор (т.е. число весовых коэффициентов, выбранных для квантования), может быть переменным. Например, может задаваться критерий пороговой ошибки, и число (X) весовых коэффициентов, выбранных для квантования, может зависеть от достижения порогового значения ошибки, причем пороговое значение ошибки задается выше в уравнении (10).
В некоторых примерах, один или более вышеуказанных принципов могут передаваться в служебных сигналах в потоке битов. Рассмотрим пример, в котором максимальное число весовых коэффициентов, используемых для того, чтобы кодировать V-векторы, задается равным 128 весовым коэффициентам, и восемь различных кодовых книг при квантовании используются для того, чтобы квантовать весовые коэффициенты. В таком примере, модуль 42 формирования потоков битов может формировать поток 21 битов таким образом, что блок кадров доступа в потоке 21 битов указывает максимальное число индексов, которые могут использоваться на покадровой основе. В этом примере, максимальное число индексов составляют число от 0-128, так что вышеуказанные данные могут использовать 7 битов в блоке кадров доступа.
В вышеуказанном примере, на покадровой основе, модуль 42 формирования потоков битов может формировать поток 21 битов таким образом, что он включает данные, указывающие то: (1) какая из 8 различных кодовых книг использована для того, чтобы выполнять VQ (для каждого V-вектора); и (2) фактическое число (X) индексов, используемых для того, чтобы кодировать каждый V-вектор. Данные, указывающие то, какая одна из 8 различных кодовых книг использована для того, чтобы выполнять VQ, может использовать 3 бита в этом примере. Данные, указывающие фактическое число (X) индексов, используемых для того, чтобы кодировать каждый V-вектор, могут задаваться посредством максимального числа индексов, указываемых в блоке кадров доступа. Оно может варьироваться от 0 битов до 7 битов в этом примере.
В некоторых примерах, модуль 42 формирования потоков битов может формировать поток 21 битов таким образом, что он включает в себя: (1) индексы, которые указывают то, какие направленные векторы выбираются и передаются (согласно вычисленным весовым значениям); и (2) весовое значение(я) для выбранного направленного вектора. В некоторых примерах, это раскрытие сущности позволяет предоставлять технологии для квантования V-векторов с использованием разложения для кодовой книги нормализованных кодовых векторов сферических гармоник.
Фиг. 17 является схемой, иллюстрирующей 16 различных кодовых векторов 63A-63P, представленных в пространственной области, которые могут использоваться посредством модуля 52 кодирования V-векторов, показанного в примере одного или обоих из фиг. 7 и 8. Кодовые векторы 63A-63P могут представлять один или более кодовых векторов 63, поясненных выше.
Фиг. 18 является схемой, иллюстрирующей различные способы, посредством которых 16 различных кодовых векторов 63A-63P могут использоваться посредством модуля 52 кодирования V-векторов, показанного в примере одного или обоих из фиг. 7 и 8. Модуль 52 кодирования V-векторов может принимать один из уменьшенных приоритетных V[k]-векторов 55, который показан после рендеринга в пространственной области и обозначается как V-вектор 55. Модуль 52 кодирования V-векторов может выполнять векторное квантование, поясненное выше, чтобы формировать три различных кодированных версии V-вектора 55. Три различных кодированных версии V-вектора 55 показаны после рендеринга в пространственной области и обозначаются как кодированный V-вектор 57A, кодированный V-вектор 57B и кодированные V-векторы 57C. Модуль 52 кодирования V-векторов может выбирать один из кодированных V-векторов 57A-57C в качестве одного из кодированных приоритетных V[k]-векторов 57, соответствующих V-вектору 55.
Модуль 52 кодирования V-векторов может формировать каждый из кодированных V-векторов 57A-57C на основе кодовых векторов 63A-63P ("кодовых векторов 63"), подробнее показанных в примере по фиг. 17. Модуль 52 кодирования V-векторов может формировать кодированный V-вектор 57A на основе всех 16 из кодовых векторов 63, как показано на графике 300A, на котором все 16 индексов указываются вместе с 16 весовыми значениями. Модуль 52 кодирования V-векторов может формировать кодированный V-вектор 57A на основе ненулевого поднабора кодовых векторов 63 (например, кодовых векторов 63, включенных в квадратное поле и ассоциированных с индексами 2, 6 и 7, как показано на графике 300B, с учетом того, что другие индексы имеют взвешивание в нуль). Модуль 52 кодирования V-векторов может формировать кодированный V-вектор 57C с использованием трех кодовых векторов 63, идентичных кодовым векторам, используемым при формировании кодированного V-вектора 57B, за исключением того, что сначала квантуется исходный V-вектор 55.
Изучение рендеринга кодированных V-векторов 57A-57C по сравнению с исходным V-вектором 55 иллюстрирует то, что векторное квантование может предоставлять практически аналогичное представление исходного V-вектора 55 (что означает то, что ошибка между каждым из кодированных V-векторов 57A-57C, вероятно, является небольшой). Сравнение кодированных V-векторов 57A-57C между собой также раскрывает то, что имеются только незначительные или несущественные различия. В связи с этим, один из кодированных V-векторов 57A-57C, предоставляющих наилучшее уменьшение числа битов, вероятно, представляет собой один из кодированных V-векторов 57A-57C, которые может выбирать модуль 52 кодирования V-векторов. С учетом того, что кодированный V-вектор 57C с наибольшей вероятностью предоставляет наименьшую скорость передачи битов (с учетом того, что кодированный V-вектор 57C использует квантованную версию V-вектора 55 при одновременном использовании только трех из кодовых векторов 63), модуль 52 кодирования V-векторов может выбирать кодированный V-вектор 57C в качестве одного из кодированных приоритетных V[k]-векторов 57, соответствующих V-вектору 55.
Фиг. 21 является блок-схемой, иллюстрирующей примерный модуль 520 векторного квантования согласно этому раскрытию сущности. В некоторых примерах, модуль 520 векторного квантования может быть примером модуля 52 кодирования V-векторов в устройстве 20 кодирования аудио по фиг. 3A или в устройстве 20 кодирования аудио по фиг. 3B. Модуль 520 векторного квантования включает в себя модуль 522 разложения, модуль 524 выбора и упорядочения весовых коэффициентов и модуль 526 выбора векторов. Модуль 522 разложения может разлагать каждый из уменьшенных приоритетных V[k]-векторов 55 на взвешенную сумму кодовых векторов на основе кодовых векторов 63. Модуль 522 разложения может формировать значения 528 весовых коэффициентов и предоставлять значения 528 весовых коэффициентов в модуль 524 выбора и упорядочения весовых коэффициентов.
Модуль 524 выбора и упорядочения весовых коэффициентов может выбирать поднабор значений 528 весовых коэффициентов для того, чтобы формировать выбранный поднабор значений весовых коэффициентов. Например, модуль 524 выбора и упорядочения весовых коэффициентов может выбирать M значений весовых коэффициентов с наибольшей абсолютной величиной из набора значений 528 весовых коэффициентов. Модуль 524 выбора и упорядочения весовых коэффициентов дополнительно может переупорядочивать выбранный поднабор значений весовых коэффициентов на основе абсолютных величин значений весовых коэффициентов для того, чтобы формировать переупорядоченный выбранный поднабор значений 530 весовых коэффициентов, и предоставлять переупорядоченный выбранный поднабор значений 530 весовых коэффициентов в модуль 526 выбора векторов.
Модуль 526 выбора векторов может выбирать M-компонентный вектор из кодовой книги 532 при квантовании, чтобы представлять M значений весовых коэффициентов. Другими словами, модуль 526 выбора векторов может векторно квантовать M значений весовых коэффициентов. В некоторых примерах, M может соответствовать числу значений весовых коэффициентов, выбранных посредством модуля 524 выбора и упорядочения весовых коэффициентов для того, чтобы представлять один V-вектор. Модуль 526 выбора векторов может формировать данные, указывающие M-компонентный вектор, выбранный для того, чтобы представлять M значений весовых коэффициентов, и предоставлять эти данные в модуль 42 формирования потоков битов в качестве кодированных весовых коэффициентов 57. В некоторых примерах, кодовая книга 532 при квантовании может включать в себя множество M-компонентных векторов, которые индексируются, и данные, указывающие M-компонентный вектор, могут представлять собой значение индекса в кодовой книге 532 при квантовании, которое указывает на выбранный вектор. В таких примерах, декодер может включать в себя аналогично индексированную кодовую книгу при квантовании, чтобы декодировать значение индекса.
Фиг. 22 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу модуля векторного квантования при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Как описано выше относительно примера по фиг. 21, модуль 520 векторного квантования включает в себя модуль 522 разложения, модуль 524 выбора и упорядочения весовых коэффициентов и модуль 526 выбора векторов. Модуль 522 разложения может разлагать каждый из уменьшенных приоритетных V[k]-векторов 55 на взвешенную сумму кодовых векторов на основе кодовых векторов 63 (750). Модуль 522 разложения может получать значения 528 весовых коэффициентов и предоставлять значения 528 весовых коэффициентов в модуль 524 выбора и упорядочения весовых коэффициентов (752).
Модуль 524 выбора и упорядочения весовых коэффициентов может выбирать поднабор значений 528 весовых коэффициентов для того, чтобы формировать выбранный поднабор значений весовых коэффициентов (754). Например, модуль 524 выбора и упорядочения весовых коэффициентов может выбирать M значений весовых коэффициентов с наибольшей абсолютной величиной из набора значений 528 весовых коэффициентов. Модуль 524 выбора и упорядочения весовых коэффициентов дополнительно может переупорядочивать выбранный поднабор значений весовых коэффициентов на основе абсолютных величин значений весовых коэффициентов для того, чтобы формировать переупорядоченный выбранный поднабор значений 530 весовых коэффициентов, и предоставлять переупорядоченный выбранный поднабор значений 530 весовых коэффициентов в модуль 526 выбора векторов (756).
Модуль 526 выбора векторов может выбирать M-компонентный вектор из кодовой книги 532 при квантовании, чтобы представлять M значений весовых коэффициентов. Другими словами, модуль 526 выбора векторов может векторно квантовать M значений весовых коэффициентов (758). В некоторых примерах, M может соответствовать числу значений весовых коэффициентов, выбранных посредством модуля 524 выбора и упорядочения весовых коэффициентов для того, чтобы представлять один V-вектор. Модуль 526 выбора векторов может формировать данные, указывающие M-компонентный вектор, выбранный для того, чтобы представлять M значений весовых коэффициентов, и предоставлять эти данные в модуль 42 формирования потоков битов в качестве кодированных весовых коэффициентов 57. В некоторых примерах, кодовая книга 532 при квантовании может включать в себя множество M-компонентных векторов, которые индексируются, и данные, указывающие M-компонентный вектор, могут представлять собой значение индекса в кодовой книге 532 при квантовании, которое указывает на выбранный вектор. В таких примерах, декодер может включать в себя аналогично индексированную кодовую книгу при квантовании, чтобы декодировать значение индекса.
Фиг. 23 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу модуля восстановления V-векторов при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Модуль 74 восстановления V-векторов по фиг. 4A или 4B может сначала получать значения весовых коэффициентов, например, из модуля 72 извлечения, после синтаксического анализа из потока 21 битов (760). Модуль 74 восстановления V-векторов также может получать кодовые векторы, например, из кодовой книги с использованием индекса, передаваемого в служебных сигналах в потоке 21 битов способом, описанным выше (762). Модуль 74 восстановления V-векторов затем может восстанавливать уменьшенные приоритетные V[k]-векторы 55 (которые также могут упоминаться в качестве V-векторов) на основе значений весовых коэффициентов и кодовых векторов одним или более различных способов, описанных выше (764).
Фиг. 24 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу модуля кодирования V-векторов по фиг. 3A или 3B при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Модуль 52 кодирования V-векторов может получать целевую скорость 41 передачи битов (которая также может упоминаться в качестве пороговой скорости передачи битов) (770). Когда целевая скорость 41 передачи битов превышает 256 кбит/с (либо любую другую указанную, сконфигурированную или определенную скорость передачи битов) ("Нет" на 772), модуль 52 кодирования V-векторов может определять применять и затем применять скалярное квантование к V-векторам 55 (774). Когда целевая скорость 41 передачи битов меньше или равна 256 кбит/с ("Да" на 772), модуль восстановления V-векторов 52 может определять применять и затем применять векторное квантование к V-векторам 55 (776). Модуль 52 кодирования V-векторов также может передавать в служебных сигналах в потоке 21 битов то, что скалярное или векторное квантование выполняется относительно V-векторов 55 (778).
Фиг. 25 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу модуля восстановления V-векторов при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Модуль 74 восстановления V-векторов по фиг. 4A или 4B может сначала получать индикатор (к примеру, синтаксический элемент) того, скалярное или векторное квантование выполняется относительно V-векторов 55 (780). Когда синтаксический элемент указывает то, что скалярное квантование не выполняется ("Нет" на 782), модуль 74 восстановления V-векторов может выполнять векторное деквантование, чтобы восстанавливать V-векторы 55 (784). Когда синтаксический элемент указывает то, что скалярное квантование выполняется ("Да" на 782), модуль 74 восстановления V-векторов может выполнять скалярное деквантование, чтобы восстанавливать V-векторы 55 (786).
Фиг. 26 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу модуля кодирования V-векторов по фиг. 3A или 3B при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Модуль 52 кодирования V-векторов может выбирать одну из множества (что означает две или более) кодовых книг, которую следует использовать при векторном квантовании V-векторов 55 (790). Модуль 52 кодирования V-векторов затем может выполнять векторное квантование способом, описанным выше относительно V-векторов 55, с использованием выбранной одной из двух или более кодовых книг (792). Модуль 52 кодирования V-векторов затем может указывать или иным образом передавать в служебных сигналах то, что одна из двух или более кодовых книг использована при квантовании V-вектора 55 в потоке 21 битов (794).
Фиг. 27 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу модуля восстановления V-векторов при выполнении различных аспектов технологий, описанных в этом раскрытии сущности. Модуль 74 восстановления V-векторов по фиг. 4A или 4B может сначала получать индикатор (к примеру, синтаксический элемент) одной из двух или более кодовых книг, используемых при векторном квантовании V-вектора 55 (800). Модуль 74 восстановления V-векторов затем может выполнять векторное деквантование, чтобы восстанавливать V-вектор 55, с использованием выбранной одной из двух или более кодовых книг способом, описанным выше (802).
Различные аспекты технологий могут предоставлять устройство, изложенное в следующих частях формулы изобретения:
Часть 1 формулы изобретения. Устройство, содержащее средство для сохранения множества кодовых книг, которые следует использовать при выполнении векторного квантования относительно пространственного компонента звукового поля, причем пространственный компонент получается через применение разложения ко множеству коэффициентов амбиофонии высшего порядка, и средство для выбора одной из множества кодовых книг.
Часть 2 формулы изобретения. Устройство по части 1 формулы изобретения, дополнительно содержащее средство для указания синтаксического элемента в потоке битов, который включает в себя векторно квантованный пространственный компонент, причем синтаксический элемент идентифицирует индекс в выбранной одной из множества кодовых книг, имеющей значение весового коэффициента, используемое при выполнении векторного квантования пространственного компонента.
Часть 3 формулы изобретения. Устройство по части 1 формулы изобретения, дополнительно содержащее средство для указания синтаксического элемента в потоке битов, который включает в себя векторно квантованный пространственный компонент, причем синтаксический элемент идентифицирует индекс в векторном словаре, имеющем кодовый вектор, используемый при выполнении векторного квантования пространственного компонента.
Часть 4 формулы изобретения. Способ по части 1 формулы изобретения, в котором средство для выбора одной из множества кодовых книг содержит средство для выбора одной из множества кодовых книг на основе числа кодовых векторов, используемых при выполнении векторного квантования.
Различные аспекты технологий также могут предоставлять устройство, изложенное в следующих частях формулы изобретения:
Часть 5 формулы изобретения. Устройство, содержащее средство для выполнения разложения относительно множества коэффициентов амбиофонии высшего порядка (HOA), чтобы формировать разложенную версию HOA-коэффициентов, и средство для определения, на основе набора кодовых векторов, одного или более значений весовых коэффициентов, которые представляют вектор, который включен в разложенную версию HOA-коэффициентов, причем каждое из значений весовых коэффициентов соответствует надлежащему одному из множества весовых коэффициентов, включенных во взвешенную сумму кодовых векторов, которая представляет вектор.
Часть 6 формулы изобретения. Устройство по части 5 формулы изобретения, дополнительно содержащее средство для выбора кодовой книги при разложении из набора возможных вариантов кодовых книг при разложении, при этом средство для определения, на основе набора кодовых векторов, одного или более значений весовых коэффициентов содержит средство для определения значений весовых коэффициентов на основе набора кодовых векторов, указываемых посредством выбранной кодовой книги при разложении.
Часть 7 формулы изобретения. Устройство по части 6 формулы изобретения, в котором каждый из возможных вариантов кодовых книг при разложении включают в себя множество кодовых векторов, и при этом, по меньшей мере, два из возможных вариантов кодовых книг при разложении имеют различное число кодовых векторов.
Часть 8 формулы изобретения. Устройство по п. 5, дополнительно содержащее средство для формирования потока битов таким образом, что он включает в себя один или более индексов, которые указывают то, какие кодовые векторы используются для определения весовых коэффициентов, и средство для формирования потока битов таким образом, что он дополнительно включает в себя весовые значения, соответствующие каждому из индексов.
Любая из вышеприведенных технологий может выполняться относительно любого числа различных контекстов и аудиоэкосистем. Ниже описывается ряд примерных контекстов, хотя технологии должны быть ограничены примерными контекстами. Одна примерная аудиоэкосистема может включать в себя аудиоконтент, киностудии, музыкальные студии, игровые студии звукозаписи, канально-ориентированный аудиоконтент, механизмы кодирования, игровые аудиостемы, механизмы кодирования/рендеринга игрового аудио и системы доставки.
Киностудии, музыкальные студии и игровые студии звукозаписи могут принимать аудиоконтент. В некоторых примерах, аудиоконтент может представлять вывод получения. Киностудии могут выводить канально-ориентированный аудиоконтент (например, в 2.0, 5.1 и 7.1), к примеру, посредством использования цифровой звуковой рабочей станции (DAW). Музыкальные студии могут выводить канально-ориентированный аудиоконтент (например, в 2.0 и 5.1), к примеру, посредством использования DAW. В любом случае, механизмы кодирования могут принимать и кодировать канально-ориентированный аудиоконтент на основе один или более кодеков (например, AAC, AC3, Dolby True HD, Dolby Digital Plus и DTS Master Audio) для вывода посредством систем доставки. Игровые студии звукозаписи могут выводить один или более игровых аудиостемов, к примеру, посредством использования DAW. Механизмы кодирования/рендеринга игрового аудио могут кодировать и/или подготавливать посредством рендеринга аудиостемы в канально-ориентированный аудиоконтент для вывода посредством систем доставки. Другой примерный контекст, в котором могут выполняться технологии, содержит аудиоэкосистему, которая может включать в себя аудиообъекты для широковещательной записи, профессиональные аудиосистемы, потребительскую реализованную на устройстве систему захвата, HOA-аудиоформат, реализованную на устройстве систему рендеринга, потребительское аудиооборудование, телевизоры и вспомогательные средства и автомобильные аудиосистемы.
Аудиообъекты для широковещательной записи, профессиональные аудиосистемы и потребительская реализованная на устройстве система захвата могут кодировать свой вывод с использованием HOA-аудиоформата. Таким образом, аудиоконтент может кодироваться с использованием HOA-аудиоформата в одно представление, которое может воспроизводиться с использованием реализованной на устройстве системы рендеринга, потребительского аудиооборудования, телевизоров и вспомогательных средств и автомобильных аудиосистем. Другими словами, одно представление аудиоконтента может воспроизводиться в общей системе воспроизведения аудио (т.е. в противоположность необходимости конкретной конфигурации, к примеру, 5.1, 7.1 и т.д.), к примеру, в системе 16 воспроизведения аудио.
Другие примеры контекста, в котором могут выполняться технологии, включают в себя аудиоэкосистему, которая может включать в себя элементы получения и элементы воспроизведения. Элементы получения могут включать в себя устройства проводного и/или беспроводного получения (например, собственные микрофоны), реализованную на устройстве систему захвата объемного звука и мобильные устройства (например, смартфоны и планшеты). В некоторых примерах, устройства проводного и/или беспроводного получения могут соединяться с мобильным устройством через канал(ы) проводной и/или беспроводной связи.
В соответствии с одной или более технологий этого раскрытия сущности, мобильное устройство может использоваться для того, чтобы получать звуковое поле. Например, мобильное устройство может получать звуковое поле через устройства проводного и/или беспроводного получения и/или реализованную на устройстве систему захвата объемного звука (например, множество микрофонов, интегрированных в мобильное устройство). Мобильное устройство затем может кодировать полученное звуковое поле в HOA-коэффициенты для воспроизведения посредством одного или более элементов воспроизведения. Например, пользователь мобильного устройства может записывать (получать звуковое поле) передаваемое вживую событие (например, встречу, конференцию, матч, концерт и т.д.) и кодировать запись в HOA-коэффициенты.
Мобильное устройство также может использовать один или более элементов воспроизведения для того, чтобы воспроизводить HOA-кодированное звуковое поле. Например, мобильное устройство может декодировать HOA-кодированное звуковое поле и выводить в один или более элементов воспроизведения сигнал, который инструктирует одному или более элементов воспроизведения воссоздавать звуковое поле. В качестве одного примера, мобильное устройство может использовать каналы беспроводной и/или беспроводной связи для того, чтобы выводить сигнал в один или более динамиков (например, в массивы динамиков, в звуковые панели и т.д.). В качестве другого примера, мобильное устройство может использовать решения на основе пристыковки, чтобы выводить сигнал в одну или более стыковочных станций и/или в один или более пристыкованных динамиков (например, в аудиосистемы в интеллектуальных автомобилях и/или домах). В качестве другого примера, мобильное устройство может использовать рендеринг для наушников, чтобы выводить сигнал в набор наушников, например, с тем чтобы создавать реалистичный бинауральный звук.
В некоторых примерах, конкретное мобильное устройство может как получать трехмерное звуковое поле, так и воспроизводить идентичное трехмерное звуковое поле позднее. В некоторых примерах, мобильное устройство может получать трехмерное звуковое поле, кодировать трехмерное звуковое поле в HOA и передавать кодированное трехмерное звуковое поле в одно или более других устройств (например, в другие мобильные устройства и/или другие немобильные устройства) для воспроизведения.
Еще один другой контекст, в котором могут выполняться технологии, включает в себя аудиоэкосистему, которая может включать в себя аудиоконтент, игровые студии, кодированный аудиоконтент, механизмы рендеринга и системы доставки. В некоторых примерах, игровые студии могут включать в себя одну или более DAW, которые могут поддерживать редактирование HOA-сигналов. Например, одна или более DAW могут включать в себя подключаемые HOA-модули и/или инструментальные средства, которые могут быть сконфигурированы с возможностью работать (например, взаимодействовать) с одной или более игровых аудиосистем. В некоторых примерах, игровые студии могут выводить новые форматы стемов, которые поддерживают HOA. В любом случае, игровые студии могут выводить кодированный аудиоконтент в механизмы рендеринга, которые могут подготавливать посредством рендеринга звуковое поле для воспроизведения посредством систем доставки.
Технологии также могут выполняться относительно примерных устройств получения аудио. Например, технологии могут выполняться относительно собственного микрофона, который может включать в себя множество микрофонов, которые совместно сконфигурированы с возможностью записывать трехмерное звуковое поле. В некоторых примерах, множество микрофонов из собственного микрофона может быть расположено на поверхности практически сферического шара с радиусом приблизительно в 4 см. В некоторых примерах, устройство 20 кодирования аудио может быть интегрировано в собственный микрофон, с тем чтобы выводить поток 21 битов непосредственно из микрофона.
Другой примерный контекст получения аудио может включать в себя производственную станцию, которая может быть сконфигурирована с возможностью принимать сигнал из одного или более микрофонов, к примеру, одного или более собственных микрофонов. Производственная станция также может включать в себя аудиокодер, к примеру, аудиокодер 20 по фиг. 3A.
Мобильное устройство, в некоторых случаях, также может включать в себя множество микрофонов, которые совместно сконфигурированы с возможностью записывать трехмерное звуковое поле. Другими словами, множество микрофона может иметь разнесение X, Y, Z. В некоторых примерах, мобильное устройство может включать в себя микрофон, который может поворачиваться, чтобы предоставлять разнесение X, Y, Z относительно одного или более других микрофонов мобильного устройства. Мобильное устройство также может включать в себя аудиокодер, к примеру, аудиокодер 20 по фиг. 3A.
Устройство видеозахвата повышенной прочности дополнительно может быть сконфигурировано с возможностью записывать трехмерное звуковое поле. В некоторых примерах, устройство видеозахвата повышенной прочности может присоединяться к шлему пользователя, занимающегося активным отдыхом. Например, устройство видеозахвата повышенной прочности может присоединяться к шлему пользователя, участвующего в рафтинге на реке с порогами. Таким образом, устройство видеозахвата повышенной прочности может захватывать трехмерное звуковое поле, которое представляет все действия вокруг пользователя (например, вода, грохочущая позади пользователя, другой рафтер, говорящий перед пользователем, и т.д.).
Технологии также могут выполняться относительно мобильного устройства с улучшенными вспомогательными средствами, которое может быть сконфигурировано с возможностью записывать трехмерное звуковое поле. В некоторых примерах, мобильное устройство может быть аналогичным мобильным устройствам, поясненным выше, с добавлением одного или более вспомогательных средств. Например, собственный микрофон может присоединяться к вышеуказанному мобильному устройству, чтобы формировать мобильное устройство с улучшенными вспомогательными средствами. Таким образом, мобильное устройство с улучшенными вспомогательными средствами может захватывать более высококачественную версию трехмерного звукового поля, чем при использовании только компонентов захвата звука, неразъемно установленных в мобильном устройстве с улучшенными вспомогательными средствами.
Примерные устройства воспроизведения аудио, которые могут выполнять различные аспекты технологий, описанных в этом раскрытии сущности, дополнительно пояснены ниже. В соответствии с одной или более технологий этого раскрытия сущности, динамики и/или звуковые панели могут размещаться в любой произвольной конфигурации при одновременном воспроизведении трехмерного звукового поля. Кроме того, в некоторых примерах, устройства воспроизведения с наушниками могут соединяться с декодером 24 через проводное или через беспроводное соединение. В соответствии с одной или более технологий этого раскрытия сущности, одно общее представление звукового поля может быть использовано для того, чтобы подготавливать посредством рендеринга звуковое поле для любой комбинации динамиков, звуковых панелей и устройств воспроизведения с наушниками.
Ряд других примерных окружений воспроизведения аудио также могут быть подходящими для выполнения различных аспектов технологий, описанных в этом раскрытии сущности. Например, окружение воспроизведения с помощью 5.1-динамиков, окружение воспроизведения с помощью 2,0-(например, стерео-) динамиков, окружение воспроизведения с помощью 9.1-динамиков с полновысотными передними громкоговорителями, окружение воспроизведения с помощью 22.2-динамиков, окружение воспроизведения с помощью 16.0-динамиков, окружение воспроизведения с помощью автомобильных динамиков и мобильное устройство с окружением воспроизведения с помощью наушников-вкладышей могут представлять собой подходящие окружения для выполнения различных аспектов технологий, описанных в этом раскрытии сущности.
В соответствии с одной или более технологий этого раскрытия сущности, одно общее представление звукового поля может быть использовано для того, чтобы подготавливать посредством рендеринга звуковое поле в любом из вышеприведенных окружений воспроизведения. Дополнительно, технологии этого раскрытия сущности обеспечивают возможность модулю рендеринга подготавливать посредством рендеринга звуковое поле из общего представления для воспроизведения в окружениях воспроизведения, отличных от окружений воспроизведения, описанных выше. Например, если конструктивные соображения запрещают надлежащее размещение динамиков согласно окружению воспроизведения с помощью 7.1-динамиков (например, если невозможно размещать правый динамик объемного звучания), технологии этого раскрытия сущности обеспечивают возможность модулю рендеринга выполнять компенсацию с использованием других 6 динамиков, так что воспроизведение может достигаться в окружении воспроизведения с помощью 6.1-динамиков.
Кроме того, пользователь может смотреть спортивную игру с надетыми наушниками. В соответствии с одной или более технологий этого раскрытия сущности, может получаться трехмерное звуковое поле спортивной игры (например, один или более собственных микрофонов могут быть размещены в и/или вокруг бейсбольного стадиона), HOA-коэффициенты, соответствующие трехмерному звуковому полю, могут получаться и передаваться в декодер, декодер может восстанавливать трехмерное звуковое поле на основе HOA-коэффициентов и выводить восстановленное трехмерное звуковое поле в модуль рендеринга, модуль рендеринга может получать индикатор в отношении типа окружения воспроизведения (например, наушники) и подготавливать посредством рендеринга восстановленное трехмерное звуковое поле в сигналы, которые инструктируют наушникам выводить представление трехмерного звукового поля спортивной игры.
В каждом из различных случаев, описанных выше, следует понимать, что устройство 20 кодирования аудио может осуществлять способ или в ином случае содержать средство для того, чтобы выполнять каждый этап способа, который устройство 20 кодирования аудио сконфигурировано с возможностью осуществлять. В некоторых случаях, средство может содержать один или более процессоров. В некоторых случаях, один или более процессоров могут представлять процессор специального назначения, сконфигурированный посредством инструкций, сохраненных на некратковременном компьютерно-читаемом запоминающем носителе. Другими словами, различные аспекты технологий в каждом из наборов примеров кодирования могут предоставлять некратковременный компьютерно-читаемый запоминающий носитель, имеющий сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров осуществлять способ, который устройство 20 кодирования аудио сконфигурировано с возможностью осуществлять.
В одном или более примеров, описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации вышеозначенного. При реализации в программном обеспечении, функции могут быть сохранены или переданы, в качестве одной или более инструкций или кода, по компьютерно-читаемому носителю и выполнены посредством аппаратного модуля обработки. Компьютерно-читаемые носители могут включать в себя компьютерно-читаемые запоминающие носители, которые соответствуют материальному носителю, к примеру, запоминающие носители. Запоминающие носители могут представлять собой любые доступные носители, к которым может осуществляться доступ посредством одного или более компьютеров или одного или более процессоров, с тем чтобы извлекать инструкции, код и/или структуры данных для реализации технологий, описанных в этом раскрытии сущности. Компьютерный программный продукт может включать в себя компьютерно-читаемый носитель.
Аналогично, в каждом из различных случаев, описанных выше, следует понимать, что, устройство 24 декодирования аудио может осуществлять способ или в ином случае содержать средство выполнять каждый этап способа, который устройство 24 декодирования аудио сконфигурировано с возможностью осуществлять. В некоторых случаях, средство может содержать один или более процессоров. В некоторых случаях, один или более процессоров могут представлять процессор специального назначения, сконфигурированный посредством инструкций, сохраненных на некратковременном компьютерно-читаемом запоминающем носителе. Другими словами, различные аспекты технологий в каждом из наборов примеров кодирования могут предоставлять некратковременный компьютерно-читаемый запоминающий носитель, имеющий сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров осуществлять способ, который устройство 24 декодирования аудио сконфигурировано с возможностью осуществлять.
В качестве примера, а не ограничения, эти компьютерно-читаемые запоминающие носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может быть использован для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Тем не менее, следует понимать, что компьютерно-читаемые запоминающие носители и запоминающие носители не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на некратковременные материальные запоминающие носители. Термин «диск», используемый в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом магнитные диски обычно воспроизводят данные магнитно, тогда как оптические диски обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число компьютерно-читаемых носителей.
Инструкции могут выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в рамках специализированных программных и/или аппаратных модулей, сконфигурированных с возможностью кодирования или декодирования либо встроенных в комбинированный кодек. Кроме того, технологии могут быть полностью реализованы в одной или более схем или логических элементов.
Технологии этого раскрытия сущности могут быть реализованы в широком спектре устройств или приборов, в том числе в беспроводном переносном телефоне, в интегральной схеме (IC) или в наборе IC (к примеру, в наборе микросхем). Различные компоненты, модули или блоки описываются в этом раскрытии сущности для того, чтобы подчеркивать функциональные аспекты устройств, сконфигурированных с возможностью осуществлять раскрытые технологии, но необязательно требуют реализации посредством различных аппаратных модулей. Наоборот, как описано выше, различные блоки могут быть комбинированы в аппаратный модуль кодека или предоставлены посредством набора взаимодействующих аппаратных модулей, включающих в себя один или более процессоров, как описано выше, в сочетании с надлежащим программным обеспечением и/или микропрограммным обеспечением.
Описаны различные аспекты технологий. Эти и другие аспекты технологий находятся в пределах объема прилагаемой формулы изобретения.