ПРЕДСТАВЛЕНИЕ МНОГОКАНАЛЬНОГО ЗВУКА С ИСПОЛЬЗОВАНИЕМ ИНТЕРПОЛИРОВАННЫХ МАТРИЦ
PRESENTATION OF MULTICHANNEL SOUND USING INTERPOLATED MATRICES

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка заявляет приоритет предварительной заявки на патент США № 61/883890, поданной 27 сентября 2013 г., которая полностью включена в настоящее описание посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к обработке звуковых сигналов и, конкретнее, к представлению многоканальных звуковых программ (например, битовых потоков, указывающих на звуковые программы на основе объекта, включающие по меньшей мере один звуковой объектный канал и по меньшей мере один канал динамика) с использованием интерполированных матриц и к кодированию и декодированию программ. В некоторых вариантах осуществления декодер выполняет интерполяцию в отношении набора начальных элементарных матриц для определения интерполированных матриц для использования в каналах представления программы. Некоторые варианты осуществления генерируют, декодируют и/или представляют аудиоданные в формате, известном как Dolby TrueHD.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
Dolby и Dolby TrueHD являются торговыми марками Dolby Laboratories Licensing Corporation.
Сложность, финансовые расходы и вычислительные затраты представления звуковых программ увеличиваются с количеством каналов, которые должны быть представлены. Во время представления и воспроизведения звуковых программ на основе объекта звуковое содержимое имеет количество каналов (например, объектных каналов и каналов динамика), которое, как правило, значительно превышает (например, на порядок величины) количество, возникающее во время представления и воспроизведения традиционных программ на основе канала динамика. Как правило, система динамика, использующаяся для воспроизведения, также включает намного большее количество динамиков, чем количество, использующееся для воспроизведения традиционных программ на основе канала динамика.
Несмотря на то что варианты осуществления изобретения подходят для каналов представления любой многоканальной звуковой программы, многие варианты осуществления изобретения являются особенно подходящими для каналов представления звуковых программ на основе объекта, имеющих большое количество каналов.
Известно использование систем воспроизведения (например, в кинотеатрах) для представления звуковых программ на основе объекта. Звуковые программы на основе объекта могут указывать на множество различных звуковых объектов, соответствующих изображениям на экране, диалогу, шумам и звуковым эффектам, которые исходят из различных мест на (или относительно) экране, а также фоновую музыку и эффекты окружающей среды (которые могут быть указаны каналами динамика программы) для создания предполагаемых впечатлений от общего прослушивания. Для точного воспроизведения данных программ необходимо, чтобы звуки были воспроизведены таким образом, который как можно более точно соответствует тому, что предполагалось создателем содержимого в отношении размера, положения, интенсивности, движения и глубины звукового объекта.
Во время генерирования звуковых программ на основе объекта, как правило, предполагается, что громкоговорители, которые должны быть использованы для представления, расположены в произвольных местоположениях в среде воспроизведения; необязательно в предопределенном расположении в (номинально) горизонтальной плоскости или в любом другом предопределенном расположении, известном во время генерирования программы. Как правило, метаданные, включенные в программу, указывают на параметры представления для представления по меньшей мере одного объекта программы в кажущемся местоположении в пространстве или вдоль траектории (в трехмерном объеме), например, с использованием трехмерного массива динамиков. Например, объектный канал программы может иметь соответствующие метаданные, указывающие на трехмерную траекторию кажущихся положений в пространстве, в которых должен быть представлен объект (указанный объектным каналом). Траектория может включать последовательность «напольных» местоположений (в плоскости поднабора динамиков, которые должны быть расположены на полу или в другой горизонтальной плоскости среды воспроизведения) и последовательность «надпольных» местоположений (каждое из которых определено посредством перемещения поднабора динамиков, которые должны быть расположены в по меньшей мере еще одной горизонтальной плоскости среды воспроизведения).
Звуковые программы на основе объекта представляют значительное улучшение во многих отношениях по сравнению с традиционными звуковыми программами на основе канала динамика, поскольку звук на основе канала динамика является более ограниченным в отношении воспроизведения в пространстве конкретных звуковых объектов, чем звук на основе объектного канала. Звуковые программы на основе канала динамика состоят только из каналов динамика (а не объектных каналов), и каждый канал динамика, как правило, определяет сигнал, подаваемый на динамик, для конкретного отдельного динамика в среде прослушивания.
Были предложены различные способы и системы генерирования и представления звуковых программ на основе объекта. Во время генерирования звуковой программы на основе объекта, как правило, предполагается, что произвольное количество громкоговорителей будет использовано для воспроизведения программы, и, что громкоговорители, которые должны быть использованы для воспроизведения, будут расположены в произвольных местоположениях в среде воспроизведения; необязательно в (номинально) горизонтальной плоскости или в любом другом предопределенном расположении, известном во время генерирования программы. Как правило, метаданные, относящиеся к объекту, включенные в программу, указывают на параметры представления для представления по меньшей мере одного объекта программы в кажущемся местоположении в пространстве или вдоль траектории (в трехмерном объеме), например, с использованием трехмерного массива динамиков. Например, объектный канал программы может иметь соответствующие метаданные, указывающие на трехмерную траекторию кажущихся положений в пространстве, в которых объект (указанный объектным каналом) должен быть представлен. Траектория может включать последовательность «напольных» местоположений (в плоскости поднабора динамиков, которые должны быть расположены на полу или в другой горизонтальной плоскости среды воспроизведения) и последовательность «надпольных» местоположений (каждое из которых определено посредством перемещения поднабора динамиков, которые должны быть расположены в по меньшей мере еще одной горизонтальной плоскости среды воспроизведения). Примеры представления звуковых программ на основе объекта описаны, например, в международной заявке PCT № PCT/US2001/028783, опубликованной под эгидой международной публикации № WO 2011/119401 A2 29 сентября 2011 г. и закрепленной за патентообладателем настоящей заявки.
Звуковая программа на основе объекта может включать каналы «платформы». Канал платформы может являться объектным каналом, указывающим на объект, положение которого не изменяется в течение соответствующего интервала времени (и, следовательно, как правило, представляется с использованием набора динамиков системы воспроизведения, имеющих статические местоположения динамиков), или он может являться каналом динамика (который должен быть представлен с использованием динамика системы воспроизведения). Каналы платформы не имеют соответствующих изменяющихся во времени метаданных о положении (при этом они могут быть рассмотрены в качестве содержащих не изменяющиеся во времени метаданные о положении). Они могут указывать на звуковые элементы, которые распределены в пространстве, например звук, указывающий на окружающую среду.
Воспроизведение звуковой программы на основе объекта посредством традиционной настройки динамиков (например, системы воспроизведения 7.1) достигается посредством каналов представления программы (включая объектные каналы) для набора сигналов, подаваемых на динамик. В типичных вариантах осуществления изобретения процесс представления объектных каналов (иногда называемых в данном документе объектами) и других каналов звуковой программы на основе объекта (или каналов звуковой программы другого типа) включает по большей части (или исключительно) преобразование метаданных о положении в пространстве (для каналов, которые должны быть представлены) для каждого момента времени в соответствующую матрицу коэффициентов усиления (называемую в данном документе «матрицей представления»), которая представляет, какой вклад каждый из каналов (например, объектных каналов и каналов динамика) вносит в микширование звукового содержимого (в тот момент), указанного сигналом, подаваемым на динамик, для конкретного динамика (т.е. относительный весовой коэффициент каждого из каналов программы в микшировании, указанном сигналом, подаваемым на динамик).
«Объектный канал» звуковой программы на основе объекта указывает на последовательность дискретных значений, указывающих на звуковой объект, и программа, как правило, включает последовательность значений метаданных о положении в пространстве, указывающих на траекторию или положение объекта для каждого объектного канала. В типичных вариантах осуществления изобретения последовательности значений метаданных о положении, соответствующих объектным каналам программы, используются для определения матрицы M×N A(t), указывающей на изменяющуюся во времени спецификацию коэффициента усиления для программы.
Представление «N» каналов (например, объектных каналов или объектных каналов и каналов динамика) звуковой программы на «M» динамиках (сигналах, подаваемых на динамик) в момент времени «t» программы может быть представлено посредством умножения вектора x(t) длины «N», состоящего из дискретного значения аудиоданных в момент времени «t» из каждого канала, на матрицу M×N A(t), определенную из соответствующих метаданных о положении (и факультативно других метаданных, соответствующих звуковому содержимому, которое должно быть представлено, например, коэффициентов усиления объекта) в момент времени «t». Полученные в результате значения (например, коэффициенты усиления или уровни) сигналов, подаваемых на динамик, в момент времени t могут быть представлены в качестве вектора y(t), как показано в следующем уравнении (1):
(1)
Несмотря на то что уравнение (1) описывает представление N каналов звуковой программы (например, звуковой программы на основе объекта или кодированной версии звуковой программы на основе объекта) в M выходных каналов (например, M сигналов, подаваемых на динамик), оно также представляет общий набор сценариев, в которых набор из N дискретных значений аудиоданных преобразовывается в набор из M значений (например, M дискретных значений) посредством линейных операций. Например, матрица A(t) может являться статической матрицей «A», коэффициенты которой не изменяются в зависимости от различных значений времени «t». В качестве еще одного примера матрица A(t) (которая может являться статической матрицей A) может представлять традиционное понижающее микширование набора каналов динамика  до меньшего набора каналов динамика  (или x(t) может являться набором звуковых каналов, которые описывают сцену в пространстве в формате амбиофонии) и преобразование в сигналы, подаваемые на динамик,  может быть представлено в качестве умножения на матрицу понижающего микширования . Даже в приложении, использующем номинально статическую матрицу понижающего микширования, примененное фактическое линейное преобразование (умножение матриц) может являться динамическим для гарантирования защиты от усечения понижающего микширования (т.е. статическое преобразование  может быть преобразовано в изменяющееся во времени преобразование A(t) для гарантирования защиты от усечения).
Система представления звуковой программы (например, декодер, реализующий такую систему) может принимать метаданные, которые определяют матрицы  представления, (или она может принимать сами матрицы) только периодически, а не в каждый момент времени «t» во время программы. Например, это может происходить по любой из ряда причин, например, вследствие низкой разрешающей способности по времени системы, которая фактически выводит метаданные, или необходимости ограничить битовую скорость передачи программы. Авторы изобретения осознали, что в случае системы представления может быть необходима интерполяция между матрицами представления  и в моменты «t1» и «t2» времени во время программы соответственно для получения матрицы A(t3) представления для промежуточного момента «t3» времени. Интерполяция гарантирует, что воспринимаемое положение объектов в представленных сигналах, подаваемых на динамик, изменяется плавно с течением времени и может устранить нежелательные артефакты, такие как шумы застежки-молнии, которые являются следствием периодических (кусочно-постоянных) обновлений матрицы. Интерполяция может быть линейной (или нелинейной) и, как правило, должна гарантировать непрерывную передачу во времени от  до .
Dolby TrueHD является традиционным форматом аудио кодека, который поддерживает масштабируемую передачу без потерь звуковых сигналов. Исходный звук кодируется в иерархию подпотоков каналов, и выбранный поднабор подпотоков (а не все подпотоки) может быть извлечен из битового потока и декодирован для получения представления с пониженной размерностью (понижающим микшированием) сцены в пространстве. После декодирования всех подпотоков полученный в результате звук является идентичным исходному звуку (кодирование, за которым следует декодирование, выполняется без потерь).
В коммерчески доступной версии TrueHD исходный звук, как правило, является микшированием каналов 7.1, которое кодируется в последовательность из трех подпотоков, включая первый подпоток, который может быть декодирован для определения понижающего микширования двух каналов исходного звука каналов 7.1. Первые два подпотока могут быть декодированы для определения понижающего микширования каналов 5.1 исходного звука. Все три подпотока могут быть декодированы для определения исходного звука каналов 7.1. Технические подробности формата Dolby TrueHD и технологии Meridian Lossless Packing (MLP), на которой он основан, хорошо известны. Аспекты формата TrueHD и технологии MLP описаны в патенте США № 6611212, выданном 26 августа 2003 г. и закрепленном за Dolby Laboratories Licensing Corp., и статье Gerzon et al. под названием «The MLP Lossless Compression System for PCM Audio», J. AES, том 52, № 3, страницы 243-260 (март 2004 г.).
Формат TrueHD поддерживает спецификацию матриц понижающего микширования. В типовом варианте применения создатель содержимого звуковой программы каналов 7.1 указывает статическую матрицу для понижающего микширования программы каналов 7.1 до микширования каналов 5.1 и еще одну статическую матрицу для понижающего микширования понижающего микширования каналов 5.1 до 2-канального понижающего микширования. Каждая статическая матрица понижающего микширования может быть преобразована в последовательность матриц понижающего микширования (каждая матрица в последовательности предназначена для понижающего микширования различного интервала в программе) для достижения защиты от усечения. Однако каждая матрица в последовательности передается (или метаданные, определяющие каждую матрицу в последовательности, передаются) на декодер, а декодер не выполняет интерполяцию в отношении какой-либо ранее указанной матрицы для определения последующей матрицы в последовательности матриц понижающего микширования для программы.
На фиг. 1 показана схематическая диаграмма элементов традиционной системы TrueHD, в которой кодер (30) и декодер (32) выполнены с возможностью реализации матричных операций в отношении дискретных значений аудиоданных. В показанной на фиг. 1 системе кодер 30 выполнен с возможностью кодирования 8-канальной звуковой программы (например, традиционного набора сигналов 7.1, подаваемых на динамик), поскольку кодированный битовый поток включает два подпотока, и декодер 32 выполнен с возможностью декодирования кодированного битового потока для представления либо исходной 8-канальной программы (без потерь), либо 2-канального понижающего микширования исходной 8-канальной программы. Кодер 30 соединен и выполнен с возможностью генерирования кодированного битового потока и с возможностью передачи кодированного битового потока на систему 31 подачи.
Система 31 подачи соединена и выполнена с возможностью подачи (например, посредством сохранения и/или передачи) кодированного битового потока на декодер 32. В некоторых вариантах осуществления система 31 реализует подачу (например, передачу) кодированной многоканальной звуковой программы через систему вещания или сеть (например, сеть Интернет) на декодер 32. В некоторых вариантах осуществления система 31 сохраняет кодированную многоканальную звуковую программу на носитель данных (например, диск или набор дисков) и декодер 32 выполнен с возможностью считывания программы с носителя данных.
Блок, обозначенный как «InvChAssign1», в кодере 30 выполнен с возможностью выполнения перестановки каналов (эквивалентной умножению на матрицу перестановок) в отношении каналов входной программы. Затем переставленные каналы подвергаются кодированию на этапе 33, который выводит восемь кодированных каналов сигнала. Кодированные каналы сигнала могут (но необязательно) соответствовать каналам динамика воспроизведения. Кодированные каналы сигнала иногда называются «внутренними» каналами, поскольку декодер (и/или система представления), как правило, декодирует и представляет содержимое кодированных каналов сигнала для восстановления входного звука, так что кодированные каналы сигнала являются «внутренними» в отношении системы кодирования/декодирования. Кодирование, выполненное на этапе 33, эквивалентно умножению каждого набора дискретных значений переставленных каналов на матрицу кодирования (реализованную в качестве каскада умножений матриц n+1, идентифицированного как , который будет более подробно описан далее).
0
1
n
-1
-1
-1
Подсистема 34 определения матрицы выполнена с возможностью генерирования данных, указывающих на коэффициенты двух наборов выходных матриц (по одному набору, соответствующему каждому из двух подпотоков кодированных каналов). Один набор выходных матриц состоит из двух матриц , каждая из которых является элементарной матрицей (определенной далее) с размерностью 2×2 и предназначена для представления первого подпотока (подпотока понижающего микширования), содержащего два кодированных звуковых канала кодированного битового потока (для представления двухканального понижающего микширования восьмиканального входного звука). Другой набор выходных матриц состоит из матриц представления , каждая из которых является элементарной матрицей и предназначена для представления второго подпотока, содержащего все восемь кодированных звуковых каналов кодированного битового потока (для восстановления без потерь восьмиканальной входной звуковой программы). Каскад матриц  вместе с матрицами P, P, …, P, примененными к звуку на кодере, равняется спецификации матрицы понижающего микширования, которая преобразовывает 8 входных звуковых каналов в 2-канальное понижающее микширование, и каскад матриц  представляет 8 кодированных каналов кодированного битового потока обратно в исходные 8 входных каналов.
Коэффициенты (каждой матрицы), которые выводятся из подсистемы 34 на подсистему 35 упаковки, являются метаданными, указывающими на относительный или абсолютный коэффициент усиления каждого канала, который должен быть включен в соответствующее микширование каналов программы. Коэффициенты каждой матрицы представления (для момента времени во время программы) представляют, какой вклад каждый из каналов микширования должен внести в микширование звукового содержимого (в соответствующий момент представленного микширования), указанного сигналом, подаваемым на динамик, для конкретного динамика системы воспроизведения.
Восемь кодированных каналов сигнала (выводимых на этапе 33 кодирования), коэффициенты выходной матрицы (сгенерированные подсистемой 34), а также, как правило, дополнительные данные передаются на подсистему 35 упаковки, которая компонует их в кодированный битовый поток, который затем передается на систему 31 подачи.
Кодированный битовый поток включает данные, указывающие на восемь кодированных звуковых каналов, два набора выходных матриц (по одному набору, соответствующему каждому из двух подпотоков кодированных каналов), а также, как правило, дополнительные данные (например, метаданные о звуковом содержимом).
Подсистема 36 синтаксического разбора декодера 32 выполнена с возможностью принятия (считывания или приема) кодированного битового потока от системы 31 подачи и с возможностью синтаксического разбора кодированного битового потока. Подсистема 36 выполнена с возможностью передачи подпотоков кодированного битового потока, включая «первый» подпоток, содержащий только два кодированных канала кодированного битового потока, и выходных матриц (), соответствующих первому подпотоку, на этапе 38 умножения матриц (для обработки, которая приводит к 2-канальному представлению понижающего микширования содержимого исходной 8-канальной входной программы). Подсистема 36 также выполнена с возможностью передачи подпотоков кодированного битового потока (при этом «второй» подпоток содержит все восемь кодированных каналов кодированного битового потока) и соответствующих выходных матриц () на этапе 37 умножения матриц для обработки, которая приводит к представлению без потерь исходной 8-канальной программы.
Более конкретно, на этапе 38 выполняется умножение двух дискретных значений аудиоданных двух каналов первого подпотока посредством каскада матриц  и каждый полученный в результате набор из двух линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign0», для получения каждой пары дискретных значений необходимого 2-канального понижающего микширования 8 исходных звуковых каналов. Каскад матричных операций, выполняющихся в кодере 30 и декодере 32, эквивалентен применению спецификации матрицы понижающего микширования, которая преобразовывает 8 входных звуковых каналов в 2-канальное понижающее микширование.
На этапе 37 выполняется умножение каждого вектора восьми дискретных значений аудиоданных (по одному из каждого полного набора из восьми каналов кодированного битового потока) на каскад матриц и каждый полученный в результате набор из восьми линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign1», для получения каждого набора из восьми дискретных значений восстановленной без потерь исходной 8-канальной программы. Для того чтобы выходной 8-канальный звук был точно таким же, как и входной 8-канальный звук (для достижения характеристики «без потерь» системы), матричные операции, выполняющиеся в кодере 30, должны быть точным (включая эффекты квантования) обращением матричных операций, выполняющихся в декодере 32 в отношении (второго) подпотока без потерь кодированного битового потока (т.е. умножения на каскад матриц). Таким образом, на фиг. 1 матричные операции на этапе 33 кодера 30 идентифицируются в качестве каскада обратных матриц матриц в противоположной последовательности, применяющейся на этапе 37 декодера 32, а именно: .
Декодер 32 применяет обращение перестановки каналов, применяющейся кодером 30 (т.е. матрица перестановок, представленная элементом «ChAssign1» декодера 32, является обратной матрицей матрицы, представленной элементом «InvChAssign1» кодера 30).
С учетом спецификации матрицы понижающего микширования (например, спецификации статической матрицы A, которая имеет размерность 2×8) целью реализации традиционного кодера TrueHD кодера 30 является создание выходных матриц (например, и, показанных на фиг. 1) и назначений входных матриц () и выходного (и входного) канала, так что:
1) кодированный битовый поток является иерархическим (т.е. в примере первых двух кодированных каналов достаточно для получения 2-канального представления понижающего микширования и полного набора из восьми кодированных каналов достаточно для восстановления исходной 8-канальной программы); и
2) матрицы для самого верхнего потока ( в примере) являются точно обратимыми, так что входной звук может быть точно извлечен декодером.
Типичные вычислительные системы работают с ограниченной точностью, и для точного обращения произвольной обратимой матрицы может понадобиться очень высокая точность. Формат TrueHD решает данную проблему посредством ограничения выходных матриц и входных матриц (т.е. и) до квадратных матриц типа, известного как «элементарные матрицы».
Элементарная матрица  с размерностью N×N имеет следующий вид:
.
0
1
2
N-1
Элементарная матрица всегда является квадратной матрицей. Элементарная матрица с размерностью N×N идентична матрице тождественности с размерностью N×N за исключением одной (нетривиальной) строки (т.е. строки, содержащей элементы α, α, α, … α в примере). Во всех других строках недиагональные элементы равняются нулям, и диагональный элемент имеет абсолютное значение, равное 1 (т.е. либо +1, либо -1). Для упрощения формулировки в данном раскрытии графические материалы и описания будут всегда предполагать, что элементарная матрица имеет диагональные элементы, которые равняются +1, с возможным исключением диагонального элемента в нетривиальной строке. Однако мы отмечаем, что это осуществляется без потери общности, и идеи, представленные в данном раскрытии, относятся к общему классу элементарных матриц, в которых диагональные элементы могут равняться +1 или -1.
Если элементарная матрица P применяется в отношении (т.е. умножается) вектора x(t), тогда результатом является произведение Px(t), которое является еще одним N-мерным вектором, который точно такой же, как и x(t) во всех элементах, за исключением одного. Таким образом, каждая элементарная матрица может быть связана с уникальным каналом, которым она управляет (или в отношении которого она применяется).
Мы будем использовать термин «единичная элементарная матрица» в данном документе для обозначения элементарной матрицы, в которой диагональный элемент (в нетривиальной строке элементарной матрицы) имеет абсолютное значение, равное 1 (т.е. либо +1, либо -1). Таким образом, диагональ единичной элементарной матрицы состоит только из положительных единиц +1, или только из отрицательных единиц -1, или из нескольких положительных единиц и из нескольких отрицательных единиц. Элементарная матрица изменяет только один канал из набора (вектора) дискретных значений каналов звуковой программы и единичная элементарная матрица также является обратимой без потерь вследствие единичных значений по диагонали. Также, для упрощения обсуждения в данном документе мы будем использовать термин единичная элементарная матрица для обозначения элементарной матрицы, нетривиальная строка которой имеет диагональный элемент, равный +1. Однако все ссылки на единичные элементарные матрицы в данном документе, включая формулу изобретения, должны охватывать более общий случай, при котором единичная элементарная матрица может иметь нетривиальную строку, диагональный элемент которой равняется +1 или -1.
Если  (что приводит к единичной элементарной матрице, имеющей диагональ, состоящую из положительных единиц) в вышеизложенном примере элементарной матрицы P, тогда видно, что обращение P является точно следующим:
.
В целом, следует признать, что обратная матрица единичной элементарной матрицы легко определяется посредством обращения (умножения на -1) каждого ее нетривиального коэффициента α, который не находится вдоль диагонали.
Если матрицы , применяющиеся в декодере 32, показанном на фиг. 1, являются единичными элементарными матрицами (имеющими единичные диагонали), последовательность матричных операций  в кодере 30 и в декодере 32 может быть реализована схемами с ограниченной точностью типа, показанного на фиг. 2A и 2B. На фиг. 2A показана традиционная схема кодера для выполнения матричных операций без потерь посредством элементарных матриц, реализованных с использованием арифметических операций с ограниченной точностью. На фиг. 2B показана традиционная схема декодера для выполнения матричных операций без потерь посредством элементарных матриц, реализованных с использованием арифметических операций с ограниченной точностью. Подробности типичных реализаций, показанных на фиг. 2A и на фиг. 2B, схемы (и ее вариаций) описаны в вышеизложенном патенте США № 6611212, выданном 26 августа 2003 г.
0
1
1
0
2
0
3
0
0
1
2
1
3
1
0
0
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
На фиг. 2A (на которой представлена схема для кодирования четырехканальной звуковой программы, содержащей каналы S1, S2, S3 и S4) первая элементарная матрица P(имеющая одну строку из четырех ненулевых коэффициентов α) применяется в отношении каждого дискретного значения канала S1 (для генерирования кодированного канала S1’) посредством микширования соответствующего дискретного значения канала S1 с соответствующими дискретными значениями (возникающими в то же время t) каналов S2, S3 и S4. Вторая элементарная матрица P (также имеющая одну строку из четырех ненулевых коэффициентов α) применяется в отношении каждого дискретного значения канала S2 (для генерирования соответствующего дискретного значения кодированного канала S2’) посредством микширования соответствующего дискретного значения канала S2 с соответствующими дискретными значениями каналов S1’, S3 и S4. Более конкретно, дискретное значение канала S2 умножается на обратное значение коэффициента α (идентифицированного как «coeff[1,2]») матрицы P, дискретное значение канала S3 умножается на обратное значение коэффициента α (идентифицированного как «coeff[1,3]») матрицы P и дискретное значение канала S4 умножается на обратное значение коэффициента α (идентифицированного как «coeff[1,4]») матрицы P, произведения суммируются, а затем квантуются и квантованная сумма затем вычитается из соответствующего дискретного значения канала S1. Подобным образом, дискретное значение канала S1 умножается на обратное значение коэффициента α (идентифицированного как «coeff[2,1]») матрицы P, дискретное значение канала S3 умножается на обратное значение коэффициента α (идентифицированного как «coeff[2,3]») матрицы P и дискретное значение канала S4 умножается на обратное значение коэффициента α (идентифицированного как «coeff[2,4]») матрицы P, произведения суммируются, а затем квантуются и квантованная сумма затем вычитается из соответствующего дискретного значения канала S2. На этапе Q1 квантования матрицы P осуществляется квантование выходного значения элемента суммирования, который суммирует результаты умножений (на ненулевые коэффициенты α матрицы P, которые, как правило, являются дробными значениями), для генерирования квантованного значения, которое вычитается из дискретного значения канала S1 для генерирования соответствующего дискретного значения кодированного канала S1’. На этапе Q2 квантования матрицы P осуществляется квантование выходного значения элемента суммирования, который суммирует результаты умножений (на ненулевые коэффициенты α матрицы P, которые, как правило, являются дробными значениями), для генерирования квантованного значения, которое вычитается из дискретного значения канала S2 для генерирования соответствующего дискретного значения кодированного канала S2’. В типичной реализации (например, для выполнения кодирования TrueHD) каждое дискретное значение каждого канала S1, S2, S3 и S4 содержит 24 бита (как указано на фиг. 2A) и выходное значение каждого элемента умножения содержит 38 битов (как также указано на фиг. 2A) и на каждом этапе Q1 и Q2 квантования выводится 24-битовое квантованное значение в ответ на каждое 38-битовое значение, которое вводится на каждом этапе.
0
1
-1
-1
Конечно, для кодирования каналов S3 и S4 две дополнительные элементарные матрицы могут быть каскадированы с двумя элементарными матрицами (Pи P), указанными на фиг. 2A.
1
1
0
0
0
1
2
1
3
1
1
0
2
0
3
0
1
1
0
0
-1
-1
На фиг. 2B (на которой представлена схема для декодирования четырехканальной кодированной программы, сгенерированной кодером, показанным на фиг. 2A) элементарная матрица P (имеющая одну строку из четырех ненулевых коэффициентов α и которая является обратной матрицей матрицы P) применяется в отношении каждого дискретного значения кодированного канала S2’ (для генерирования соответствующего дискретного значения декодированного канала S2) посредством микширования дискретных значений каналов S1’, S3 и S4 с соответствующим дискретным значением канала S2’. Вторая элементарная матрица P (также имеющая одну строку из четырех ненулевых коэффициентов α и которая является обратной матрицей матрицы P) применяется в отношении каждого дискретного значения кодированного канала S1’ (для генерирования соответствующего дискретного значения декодированного канала S1) посредством микширования дискретных значений каналов S2, S3 и S4 с соответствующим дискретным значением канала S1’. Более конкретно, дискретное значение канала S1’ умножается на коэффициент α (идентифицированный как «coeff[2,1]») матрицы P, дискретное значение канала S3 умножается на коэффициент α (идентифицированный как «coeff[2,3]») матрицы P и дискретное значение канала S4 умножается на коэффициент α (идентифицированный как «coeff[2,4]») матрицы P, произведения суммируются, а затем квантуются, и квантованная сумма затем прибавляется к соответствующему дискретному значению канала S1’. Подобным образом, дискретное значение канала S2’ умножается на коэффициент α (идентифицированный как «coeff[1,2]») матрицы P, дискретное значение канала S3 умножается на коэффициент α (идентифицированный как «coeff[1,3]») матрицы P и дискретное значение канала S4 умножается на коэффициент α (идентифицированный как «coeff[1,4]») матрицы P, произведения суммируются, а затем квантуются и квантованная сумма затем прибавляется к соответствующему дискретному значению канала S1’. На этапе Q2 квантования матрицы P осуществляется квантование выходного значения элемента суммирования, который суммирует результаты умножений (на ненулевые коэффициенты α матрицы P, которые, как правило, являются дробными значениями), для генерирования квантованного значения, которое прибавляется к дискретному значению канала S2’ для генерирования соответствующего дискретного значения декодированного канала S2. На этапе Q1 квантования матрицы P осуществляется квантование выходного значения элемента суммирования, который суммирует результаты умножений (на ненулевые коэффициенты α матрицы P, которые, как правило, являются дробными значениями), для генерирования квантованного значения, которое прибавляется к дискретному значению канала S1’ для генерирования соответствующего дискретного значения декодированного канала S1. В типичной реализации (например, для выполнения декодирования TrueHD) каждое дискретное значение каждого канала S1’, S2’, S3 и S4 содержит 24 бита (как указано на фиг. 2B) и выходное значение каждого элемента умножения содержит 38 битов (как также указано на фиг. 2B) и на каждом этапе Q1 и Q2 квантования выводится 24-битовое квантованное значение в ответ на каждое 38-битовое значение, которое вводится на каждом этапе.
0
1
Конечно, для декодирования каналов S3 и S4 две дополнительные элементарные матрицы могут быть каскадированы с двумя элементарными матрицами (Pи P), указанными на фиг. 2B.
Последовательность элементарных матриц, например последовательность элементарных матриц N×N, реализованных декодером, показанным на фиг. 1, применяющаяся в отношении вектора (N дискретных значений, каждое из которых является дискретным значением отличного канала первого набора из N каналов) может реализовать любое линейное преобразование N дискретных значений в новый набор из N дискретных значений (например, она может реализовать линейное преобразование, выполняющееся в момент времени t, посредством умножения дискретных значений N каналов звуковой программы на основе объекта на любую реализацию N×N матрицы A(t) уравнения (1) во время представления каналов в N сигналов, подаваемых на динамик, при этом преобразование достигается посредством управления одним каналом за раз). Таким образом, умножение набора из N дискретных значений аудиоданных на последовательность элементарных матриц N×N представляет общий набор сценариев, в которых набор из N дискретных значений преобразовывается в другой набор (из N дискретных значений) посредством линейных операций.
Снова ссылаясь на реализацию TrueHD декодера 32, показанного на фиг. 1, для поддержания однородности архитектуры декодера в TrueHD выходные матрицы подпотока ( на фиг. 1) понижающего микширования также реализуются в качестве элементарных матриц, несмотря на то, что они не должны быть обратимыми (или иметь единичную диагональ), поскольку они не связаны с достижением качества без потерь.
Входные и выходные элементарные матрицы, использующиеся в кодере и декодере TrueHD, зависят от каждой отдельной спецификации понижающего микширования, которая должна быть выполнена. Функцией декодера TrueHD является применение соответствующего каскада элементарных матриц к принятому кодированному битовому аудиопотоку. Таким образом, декодер TrueHD, показанный на фиг. 1, декодирует 8 каналов кодированного битового потока (поданного системой D) и генерирует 2-канальное понижающее микширование посредством применения каскада из двух выходных элементарных матриц  к поднабору каналов декодированного битового потока. Реализация TrueHD декодера 32, показанного на фиг. 1, также выполнена с возможностью декодирования 8 каналов кодированного битового потока (поданного системой D) для восстановления без потерь исходной 8-канальной программы посредством применения каскада из восьми выходных элементарных матриц  к каналам кодированного битового потока.
Декодер TrueHD не имеет исходного звука (который был подан на кодер) для проверки на соответствие для определения того, не имеет ли воспроизведение потерь (или иным образом по требованию кодера в случае понижающего микширования). Однако кодированный битовый поток содержит «контрольное слово» (или проверку на потери), которое сравнивается с подобным словом, полученным на декодере из воспроизведенного звука, для определения того, является ли воспроизведение достоверным.
Если звуковая программа на основе объекта (например, содержащая больше восьми каналов) была кодирована традиционным кодером TrueHD, кодер может сгенерировать подпотоки понижающего микширования, которые содержат представления, совместимые с устаревшими устройствами воспроизведения, (например, представления, которые могут быть декодированы до сигналов, подаваемых на динамик, с понижающим микшированием для воспроизведения посредством традиционных каналов 7.1 или каналов 5.1, или другой традиционной настройки динамиков) и верхний подпоток (указывающий на все каналы входной программы). Декодер TrueHD может без потерь восстановить исходную звуковую программу на основе объекта для представления системой воспроизведения. Каждая спецификация матрицы представления, использующаяся кодером в данном случае (т.е. для генерирования верхнего подпотока и каждого подпотока понижающего микширования), и, следовательно, каждая выходная матрица, определенная кодером, может являться изменяющейся во времени матрицей A(t) представления, которая линейно преобразовывает дискретные значения каналов программы (например, для генерирования понижающего микширования каналов 7.1 или каналов 5.1). Однако такая матрица A(t) будет, как правило, быстро изменяться во времени по мере перемещения объектов в сцене в пространстве и ограничения битовой скорости передачи данных и обработки традиционной системы TrueHD (или другой традиционной системы декодирования) будут, как правило, ограничивать систему, так что она будет по большей степени соответствовать кусочно-постоянному приближению к такой непрерывно (и быстро) изменяющейся спецификации матрицы (с более высокой скоростью обновления матрицы, достигающейся за счет увеличенной битовой скорости передачи данных для передачи кодированной программы). Для поддержания представления многоканальных звуковых программ на основе объекта (и других многоканальных звуковых программ) с сигналами, подаваемыми на динамик, указывающими на быстро изменяющееся микширование содержимого из каналов программы, авторы изобретения признали, что необходимо улучшить традиционные системы для соответствия интерполированным матричным операциям, в которых нечасто происходят обновления матрицы представления и параметрически указана необходимая траектория (т.е. необходимая последовательность микширований содержимого каналов программы) между обновлениями.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В классе вариантов осуществления изобретением является способ кодирования N-канальной звуковой программы (например, звуковой программы на основе объекта), при этом программа указана в интервале времени, интервал времени включает подынтервал от момента времени t1 до момента времени t2 и изменяющееся во времени микширование A(t) N кодированных каналов сигнала в M выходных каналов (например, каналов, которые соответствуют каналам динамика воспроизведения) было указано в интервале времени, где M меньше или равняется N, при этом указанный способ включает следующие этапы:
определение первого каскада элементарных матриц N×N, который при применении к дискретным значениям N кодированных каналов сигнала реализует первое микширование звукового содержимого N кодированных каналов сигнала в M выходных каналов, при этом первое микширование соответствует изменяющемуся во времени микшированию A(t) в том смысле, что первое микширование по меньшей мере по существу равняется A(t1);
определение значений интерполяции, которые вместе с первым каскадом элементарных матриц и функцией интерполяции, определенной в течение подынтервала, указывают на последовательность каскадов обновленных элементарных матриц N×N, так что каждый каскад обновленных элементарных матриц при применении к дискретным значениям N кодированных каналов сигнала реализует обновленное микширование, связанное с различным временем в подынтервале, N кодированных каналов сигнала в M выходных каналов, при этом каждое указанное обновленное микширование соответствует изменяющемуся во времени микшированию A(t) (предпочтительно, обновленное микширование, связанное с любым моментом времени t3 в подынтервале, по меньшей мере по существу равняется A(t3), но в некоторых вариантах осуществления может существовать ошибка между обновленным микшированием, связанным с по меньшей мере одним моментом времени в подынтервале, и значением A(t) в данный момент времени); и
генерирование кодированного битового потока, который указывает на кодированное звуковое содержимое, значения интерполяции и первый каскад элементарных матриц.
В некоторых вариантах осуществления способ включает этап генерирования кодированного звукового содержимого посредством выполнения матричных операций в отношении дискретных значений N каналов программы (например, в том числе посредством применения последовательности каскадов матриц к дискретным значениям, при этом каждый каскад матриц в последовательности является каскадом элементарных матриц, и последовательность каскадов матриц включает первый каскад обратных матриц, который является каскадом обратных матриц элементарных матриц первого каскада).
В некоторых вариантах осуществления каждая элементарная матрица является единичной элементарной матрицей. В некоторых вариантах осуществления, в которых N = M, способ также включает этап восстановления без потерь N каналов программы посредством обработки кодированного битового потока, в том числе посредством выполнения интерполяции для определения последовательности каскадов обновленных элементарных матриц N×N, из значений интерполяции, первого каскада элементарных матриц и функции интерполяции. Кодированный битовый поток может указывать на (т.е. может включать данные, указывающие на) функцию интерполяции или функция интерполяции может быть иным образом предоставлена на декодер.
В некоторых вариантах осуществления, в которых N = M, способ также включает следующие этапы: подачу кодированного битового потока на декодер, выполненный с возможностью реализации функции интерполяции и обработку кодированного битового потока в декодере для восстановления без потерь N каналов программы, в том числе посредством выполнения интерполяции для определения последовательности каскадов обновленных элементарных матриц N×N, из значений интерполяции, первого каскада элементарных матриц и функции интерполяции.
В некоторых вариантах осуществления программа является звуковой программой на основе объекта, включающей по меньшей мере один объектный канал и данные о положении, указывающие на траекторию по меньшей мере одного объекта. Изменяющееся во времени микширование A(t) может быть определено из данных о положении (или из данных, включающих данные о положении).
В некоторых вариантах осуществления первый каскад элементарных матриц является начальной элементарной матрицей, и значения интерполяции указывают на начальную дельта-матрицу для начальной элементарной матрицы.
2
В некоторых вариантах осуществления изменяющееся во времени понижающее микширование A(t) звукового содержимого или кодированного содержимого программы в M1 каналов динамика также было указано в интервале времени, при этом M1 является целым, которое меньше, чем M, и способ включает следующие этапы:
2
2
определение второго каскада элементарных матриц M1×M1, который при применении к дискретным значениям M1 каналов звукового содержимого или кодированного содержимого реализует понижающее микширование звукового содержимого программы в M1 каналов динамика, при этом понижающее микширование соответствует изменяющемуся во времени микшированию A(t) в том смысле, что понижающее микширование по меньшей мере по существу равняется A(t1);
2
2
2
определение дополнительных значений интерполяции, которые вместе со вторым каскадом элементарных матриц M1×M1 и второй функцией интерполяции, определенной в течение подынтервала, указывают на последовательность каскадов обновленных элементарных матриц M1×M1, так что каждый каскад обновленных элементарных матриц M1×M1 при применении к дискретным значениям M1 каналов звукового содержимого или кодированного содержимого реализует обновленное понижающее микширование, связанное с различным временем в подынтервале, звукового содержимого программы в M1 каналов динамика, при этом каждое указанное обновленное понижающее микширование соответствует изменяющемуся во времени микшированию A(t) и при этом кодированный битовый поток указывает на дополнительные значения интерполяции и второй каскад элементарных матриц M1×M1. Кодированный битовый поток может указывать на (т.е. может включать данные, указывающие на) вторую функцию интерполяции или вторая функция интерполяции может быть иным образом предоставлена на декодер. Изменяющееся во времени понижающее микширование A(t) является понижающим микшированием звукового содержимого или кодированного содержимого программы в том смысле, что оно является понижающим микшированием звукового содержимого исходной программы, или кодированного звукового содержимого кодированного битового потока, или частично декодированной версии кодированного звукового содержимого кодированного битового потока, или иным образом кодированного (например, частично декодированного) звука, указывающего на звуковое содержимое программы. Изменение во времени в спецификации A(t) понижающего микширования может происходить вследствие (по меньшей мере частично) повышения до или освобождения от защиты от усечения указанного понижающего микширования.
Во втором классе вариантов осуществления изобретением является способ восстановления M каналов многоканальной звуковой программы (например, звуковой программы на основе объекта), при этом программа указана в интервале времени, интервал времени включает подынтервал от момента времени t1 до момента времени t2 и изменяющееся во времени микширование A(t) N кодированных каналов сигнала в M выходных каналов было указано в интервале времени, при этом указанный способ включает следующие этапы:
получение кодированного битового потока, который указывает на кодированное звуковое содержимое, значения интерполяции и первый каскад элементарных матриц N×N; и
выполнение интерполяции для определения последовательности каскадов обновленных элементарных матриц N×N из значений интерполяции, первого каскада элементарных матриц и функции интерполяции в подынтервале, при этом
первый каскад элементарных матриц N×N при применении к дискретным значениям N кодированных каналов сигнала кодированного звукового содержимого реализует первое микширование звукового содержимого N кодированных каналов сигнала в M выходных каналов, при этом первое микширование соответствует изменяющемуся во времени микшированию A(t) в том смысле, что первое микширование по меньшей мере по существу равняется A(t1), и значения интерполяции вместе с первым каскадом элементарных матриц и функцией интерполяции указывают на последовательность каскадов обновленных элементарных матриц N×N, так что каждый каскад обновленных элементарных матриц при применении к дискретным значениям N кодированных каналов сигнала кодированного звукового содержимого реализует обновленное микширование, связанное с различным временем в подынтервале, N кодированных каналов сигнала в M выходных каналов, при этом каждое указанное обновленное микширование соответствует изменяющемуся во времени микшированию A(t) (предпочтительно, обновленное микширование, связанное с любым моментом времени t3 в подынтервале, по меньшей мере по существу равняется A(t3), но в некоторых вариантах осуществления может существовать ошибка между обновленным микшированием, связанным с по меньшей мере одним моментом времени в подынтервале, и значением A(t) в данный момент времени).
В некоторых вариантах осуществления кодированное звуковое содержимое было сгенерировано посредством выполнения матричных операций в отношении дискретных значений N каналов программы, в том числе посредством применения последовательности каскадов матриц к дискретным значениям, при этом каждый каскад матриц в последовательности является каскадом элементарных матриц, и последовательность каскадов матриц включает первый каскад обратных матриц, который является каскадом обратных матриц элементарных матриц первого каскада.
Каналы звуковой программы, которые восстановлены (например, восстановлены без потерь) в соответствии с данными вариантами осуществления из кодированного битового потока, могут являться понижающим микшированием звукового содержимого X-канальной входной звуковой программы (при этом X является произвольным целым и N меньше X), которая была сгенерирована из X-канальной входной звуковой программы посредством выполнения матричных операций в отношении X-канальной входной звуковой программы, следовательно, определяя кодированное звуковое содержимое кодированного битового потока.
В некоторых вариантах осуществления во втором классе каждая элементарная матрица является единичной элементарной матрицей.
2
В некоторых вариантах осуществления во втором классе изменяющееся во времени понижающее микширование A(t) N-канальной программы в M1 каналов динамика было указано в интервале времени и изменяющееся во времени понижающее микширование A2(t) звукового содержимого или кодированного содержимого программы в M каналов динамика было также указано в интервале времени.
Способ включает следующие этапы:
прием второго каскада элементарных матриц M1×M1 и второго набора значений интерполяции;
2
2
применение второго каскада элементарных матриц M1×M1 к дискретным значениям M1 каналов кодированного звукового содержимого для реализации понижающего микширования N-канальной программы в M1 каналов динамика, при этом понижающее микширование соответствует изменяющемуся во времени микшированию A(t) в том смысле, что понижающее микширование по меньшей мере по существу равняется A(t1);
применение второго набора значений интерполяции, второго каскада элементарных матриц M1×M1 и второй функции интерполяции, определенной в подынтервале, для получения последовательности каскадов обновленных элементарных матриц M1×M1; и
2
применение обновленных элементарных матриц M1×M1 к дискретным значениям M1 каналов кодированного содержимого для реализации по меньшей мере одного обновленного понижающего микширования N-канальной программы, связанной с различным временем в подынтервале, при этом каждое указанное обновленное понижающее микширование соответствует изменяющемуся во времени микшированию A(t).
В некоторых вариантах осуществления изобретением является способ представления многоканальной звуковой программы, включающий этапы предоставления набора начальных матриц (например, одной начальной матрицы или набора из по меньшей мере двух начальных матриц, соответствующего моменту времени во время звуковой программы) на декодер и выполнение интерполяции в отношении набора начальных матриц (который связан с моментом времени во время звуковой программы) для определения интерполированного набора матриц представления (одной интерполированной матрицы представления или набора из по меньшей мере двух интерполированных матриц представления, соответствующего более позднему моменту времени во время звуковой программы) для использования в каналах представления программы.
В некоторых вариантах осуществления начальная элементарная матрица и начальная дельта-матрица (или набор из начальных элементарных матриц и начальных дельта-матриц) подаются время от времени (например, нечасто) на декодер. Декодер обновляет каждую начальную элементарную матрицу (соответствующую моменту времени t1) посредством генерирования интерполированной элементарной матрицы (для более позднего момента времени t, чем t1) в соответствии с вариантом осуществления изобретения из начальной элементарной матрицы и соответствующей начальной дельта-матрицы и функции f(t) интерполяции. Данные, указывающие на функцию интерполяции, могут быть поданы вместе с начальными матрицами или функция интерполяции может быть предопределена (т.е. заранее известна, как кодеру, так и декодеру). В качестве альтернативы начальная элементарная матрица (или набор из начальных элементарных матриц) подается время от времени (например, нечасто) на декодер. Декодер обновляет каждую начальную элементарную матрицу (соответствующую моменту времени t1) посредством генерирования интерполированной элементарной матрицы (для более позднего момента времени t, чем t1) в соответствии с вариантом осуществления изобретения из начальной элементарной матрицы и функции f(t) интерполяции, т.е. необязательно использовать начальную дельта-матрицу, которая соответствует начальной элементарной матрице. Данные, указывающие на функцию интерполяции, могут быть поданы вместе с начальной элементарной матрицей (или матрицами) или функция может быть предопределена (т.е. заранее известна, как кодеру, так и декодеру).
В типичных вариантах осуществления каждая элементарная матрица является единичной элементарной матрицей. В данном случае, обратная матрица элементарной матрицы легко определяется посредством обращения (умножения на -1) каждого ее нетривиального коэффициента (каждого ее коэффициента α). Это позволяет более эффективное определение обратных матриц элементарных матриц (которые применяются кодером для кодирования битового потока) и обеспечивает использование обработки с ограниченной точностью (например, схем с ограниченной точностью) для реализации необходимых умножений матриц в кодере и декодере.
Аспекты изобретения включают систему или устройство (например, кодер или декодер), выполненное (например, запрограммированное) с возможностью реализации любого варианта осуществления способа изобретения, при этом система или устройство содержит буфер, в котором хранится (например, постоянно) по меньшей мере один кадр или другой сегмент кодированной звуковой программы, сгенерированной любым вариантом осуществления способа изобретения или на его этапах, и машиночитаемый носитель (например, диск), на котором хранится код (например, постоянно) для реализации любого варианта осуществления способа изобретения или его этапов. Например, система изобретения может являться или включать программируемый процессор общего назначения, процессор цифровой обработки сигналов или микропроцессор, запрограммированный с использованием программного обеспечения или программно-аппаратного обеспечения и/или иным образом выполненный с возможностью выполнения любого разнообразия операций в отношении данных, включая вариант осуществления способа изобретения или его этапы. Такой процессор общего назначения может являться или включать компьютерную систему, включающую устройство ввода, память и схему обработки, запрограммированную (и/или иным образом выполненную с возможностью) на выполнение варианта осуществления способа изобретения (или его этапов) в ответ на передаваемые на нее данные.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
На фиг. 1 показана блок-диаграмма традиционной системы, включающей кодер, подсистему подачи и декодер.
На фиг. 2A показана диаграмма традиционной схемы кодера для выполнения матричных операций без потерь посредством элементарных матриц, реализованных с использованием арифметических операций с ограниченной точностью.
На фиг. 2B показана диаграмма традиционной схемы декодера для выполнения матричных операций без потерь посредством элементарных матриц, реализованных с использованием арифметических операций с ограниченной точностью.
На фиг. 3 показана блок-диаграмма схемы, использующейся в варианте осуществления изобретения для применения элементарной матрицы 4×4 (реализованной с использованием арифметических операций с ограниченной точностью) к четырем каналам звуковой программы. Элементарная матрица является начальной элементарной матрицей, одна нетривиальная строка которой содержит элементы α0, α1, α2 и α3.
На фиг. 4 показана блок-диаграмма схемы, использующейся в варианте осуществления изобретения для применения элементарной матрицы 3×3 (реализованной с использованием арифметических операций с ограниченной точностью) к трем каналам звуковой программы. Элементарная матрица является интерполированной элементарной матрицей, сгенерированной из начальной элементарной матрицы Pk(t1), одна нетривиальная строка которой содержит элементы α0, α1 и α2, и начальной дельта-матрицы , нетривиальная строка которой содержит элементы δ0, δ1, …, δN-1, и функции f(t) интерполяции.
На фиг. 5 показана блок-диаграмма варианта осуществления системы изобретения, включающей вариант осуществления кодера изобретения, подсистему подачи и вариант осуществления декодера изобретения.
На фиг. 6 показана блок-диаграмма еще одного варианта осуществления системы изобретения, включающей вариант осуществления кодера изобретения, подсистему подачи и вариант осуществления декодера изобретения.
На фиг. 7 показан график суммы квадратичных ошибок между полученной спецификацией и действительной спецификацией в различные моменты времени t с использованием интерполированных элементарных матриц (кривая, обозначенная как «Интерполированные матричные операции») и кусочно-постоянных (не интерполированных) элементарных матриц (кривая, обозначенная как «Неинтерполированные матричные операции»).
Условные обозначения и терминология
Повсюду в данном раскрытии, включая формулу изобретения, выражение выполнения операции «в отношении» сигнала или данных (например, фильтрация, масштабирование, преобразование или применение коэффициента усиления к сигналам или данным) используется в широком смысле для обозначения выполнения операции непосредственно в отношении сигнала или данных или в отношении обработанной версии сигнала или данных (например, в отношении версии сигнала, который был подвергнут предварительной фильтрации или предварительной обработке перед выполнением операции в его отношении).
Повсюду в данном раскрытии, включая формулу изобретения, выражение «система» используется в широком смысле для обозначения устройства, системы или подсистемы. Например, подсистема, которая реализует декодер, может называться системой декодера, и система, включающая такую подсистему (например, система, которая генерирует Y выходных сигналов в ответ на ряд входных сигналов, в которой подсистема генерирует М входных сигналов, и остальные Y − M входные сигналы принимаются из внешнего источника), также может называться системой декодера.
Повсюду в данном раскрытии, включая формулу изобретения, термин «процессор» используется в широком смысле для обозначения системы или устройства, запрограммированного или иным образом выполненного (например, с использованием программного обеспечения или программно-аппаратного обеспечения) с возможностью выполнения операций в отношении данных (например, аудио или видео или других данных изображений). Примеры процессоров включают программируемую пользователем вентильную матрицу (или другую настраиваемую интегральную схему или набор микросхем), процессор цифровой обработки сигналов, запрограммированный и/или иным образом выполненный с возможностью выполнения конвейерной обработки в отношении аудио или других звуковых данных, программируемый процессор общего назначения или компьютер и программируемую микропроцессорную интегральную схему или набор микросхем.
Повсюду в данном раскрытии, включая формулу изобретения, выражение «метаданные» относится к отдельным и различным данным из соответствующих аудиоданных (звукового содержимого битового потока, который также включает метаданные). Метаданные связаны с аудиоданными и указывают по меньшей мере на один признак или характеристику аудиоданных (например, какой тип (типы) обработки уже был выполнен или должен быть выполнен в отношении аудиоданных, или траекторию объекта, указанного аудиоданными). Связь метаданных с аудиоданными является синхронной по времени. Таким образом, настоящие (принятые или обновленные совсем недавно) метаданные могут указывать, что соответствующие аудиоданные в данный момент имеют указанный признак и/или содержат результаты указанного типа обработки аудиоданных.
Повсюду в данном раскрытии, включая формулу изобретения, термин «соединяет» или «соединенный» используется для обозначения либо непосредственного, либо косвенного соединения. Таким образом, если первое устройство соединено со вторым устройством, данное соединение может быть осуществлено посредством непосредственного соединения или посредством косвенного соединения через другие устройства или соединения.
Повсюду в данном раскрытии, включая формулу изобретения, следующие выражения имеют следующие определения:
динамик и громкоговоритель используются в качестве синонимов для обозначения любого звукоизлучающего преобразователя. Данное определение включает громкоговорители, реализованные в качестве множества преобразователей (например, низкочастотного громкоговорителя и высокочастотного громкоговорителя);
сигнал, подаваемый на динамик: звуковой сигнал, который должен быть подан непосредственно на громкоговоритель, или звуковой сигнал, который должен быть последовательно подан на усилитель и громкоговоритель;
канал (или «звуковой канал»): монофонический звуковой сигнал. Такой сигнал может быть, как правило, представлен таким образом, чтобы быть эквивалентным подаче сигнала непосредственно на громкоговоритель в необходимом или номинальном положении. Необходимое положение может являться статическим, как обычно бывает в случае с физическими громкоговорителями, или динамическим;
звуковая программа: набор из одного или более звуковых каналов (по меньшей мере одного канала динамика и/или по меньшей мере одного объектного канала), а также факультативно связанные метаданные (например, метаданные, которые описывают необходимое представление звука в пространстве);
канал динамика (или «канал сигнала, подаваемого на динамик»): звуковой канал, который связан с указанным громкоговорителем (в необходимом или номинальном положении) или с указанной зоной динамика в пределах определенной конфигурации динамика. Канал динамика представлен таким образом, чтобы быть эквивалентным подаче звукового сигнала непосредственно на указанный громкоговоритель (в необходимом или номинальном положении) или на динамик в указанной зоне динамика;
объектный канал: звуковой канал, указывающий на звук, излучаемый источником звука (иногда называемый звуковым «объектом»). Как правило, объектный канал определяет параметрическое описание источника звука (например, метаданные, указывающие на параметрическое описание источника звука, включены в или предоставлены объектным каналом). Описание источника может определить звук, излучаемый источником (в зависимости от времени), кажущееся положение (например, трехмерные пространственные координаты) источника в зависимости от времени и факультативно по меньшей мере один дополнительный параметр (например, размер или ширину кажущегося источника), характеризующий источник; и
звуковая программа на основе объекта: звуковая программа, содержащая набор из одного или более объектных каналов (а также факультативно содержащая по меньшей мере один канал динамика), а также факультативно связанные метаданные (например, метаданные, указывающие на траекторию звукового объекта, который излучает звук, указанный объектным каналом, или метаданные, иным образом указывающие на необходимое представление звука в пространстве звука, указанного объектным каналом, или метаданные, указывающие на идентификацию по меньшей мере одного звукового объекта, который является источником звука, указанного объектным каналом).
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Примеры вариантов осуществления изобретения будут описаны со ссылкой на фиг. 3, 4, 5 и 6.
На фиг. 5 показана блок-диаграмма варианта осуществления системы изобретения обработки аудиоданных, которая включает кодер 40 (вариант осуществления кодера изобретения), подсистему 41 подачи (которая может быть идентична подсистеме 31 подачи, показанной на фиг. 1) и декодер 42 (вариант осуществления декодера изобретения), соединенные вместе, как показано. Несмотря на то что подсистема 42 в данном документе называется «декодером», следует понимать, что она может быть реализована в качестве системы воспроизведения, включающей подсистему декодирования (выполненную с возможностью синтаксического разбора и декодирования битового потока, указывающего на кодированную многоканальную звуковую программу) и другие подсистемы, выполненные с возможностью реализации представления и по меньшей мере некоторых этапов воспроизведения выходного сигнала подсистемы декодирования. Некоторыми вариантами осуществления изобретения являются декодеры, которые не выполнены с возможностью выполнения представления и/или воспроизведения (и которые, как правило, будут использованы вместе с отдельной системой воспроизведения и/или представления). Некоторыми вариантами осуществления изобретения являются системы воспроизведения (например, система воспроизведения, включающая подсистему декодирования и другие подсистемы, выполненные с возможностью реализации представления и по меньшей мере некоторых этапов воспроизведения выходного сигнала подсистемы декодирования).
В показанной на фиг. 5 системе кодер 40 выполнен с возможностью кодирования 8-канальной звуковой программы (например, традиционного набора сигналов 7.1, подаваемых на динамик), поскольку кодированный битовый поток включает два подпотока, и декодер 42 выполнен с возможностью декодирования кодированного битового потока для представления либо исходной 8-канальной программы (без потерь), либо 2-канального понижающего микширования исходной 8-канальной программы. Кодер 40 соединен и выполнен с возможностью генерирования кодированного битового потока и с возможностью передачи кодированного битового потока на систему 41 подачи.
Система 41 подачи соединена и выполнена с возможностью подачи (например, посредством сохранения и/или передачи) кодированного битового потока на декодер 42. В некоторых вариантах осуществления система 41 реализует подачу (например, передачу) кодированной многоканальной звуковой программы через систему вещания или сеть (например, сеть Интернет) на декодер 42. В некоторых вариантах осуществления система 41 сохраняет кодированную многоканальную звуковую программу на носитель данных (например, диск или набор дисков) и декодер 42 выполнен с возможностью считывания программы с носителя данных.
Блок, обозначенный как «InvChAssign1», в кодере 40 выполнен с возможностью выполнения перестановки каналов (эквивалентной умножению на матрицу перестановок) в отношении каналов входной программы. Затем переставленные каналы подвергаются кодированию на этапе 43, который выводит восемь кодированных каналов сигнала. Кодированные каналы сигнала могут (но необязательно) соответствовать каналам динамика воспроизведения. Кодированные каналы сигнала иногда называются «внутренними» каналами, поскольку декодер (и/или система представления), как правило, декодирует и представляет содержимое кодированных каналов сигнала для восстановления входного звука, так что кодированные каналы сигнала являются «внутренними» в отношении системы кодирования/декодирования. Кодирование, выполненное на этапе 43, эквивалентно умножению каждого набора дискретных значений переставленных каналов на матрицу кодирования (реализованную в качестве каскада умножений матриц, идентифицированного как.
2
2
2
Несмотря на то что n может равняться 7 в приведенном в качестве примера варианте осуществления, в варианте осуществления и в его вариациях входная звуковая программа содержит произвольное количество (N или X) каналов, при этом N (или X) является любым целым выше единицы и n, как показано на фиг. 5, может быть представлено как n = N-1 (или n = X-1 или другое значение). В данных альтернативных вариантах осуществления кодер выполнен с возможностью кодирования многоканальной звуковой программы, поскольку кодированный битовый поток включает некоторое количество подпотоков, и декодер выполнен с возможностью декодирования кодированного битового потока для представления либо исходной многоканальной программы (без потерь), либо одного или нескольких понижающих микширований исходной многоканальной программы. Например, на этапе кодирования (соответствующем этапу 43) такого альтернативного варианта осуществления может быть осуществлено применение каскада элементарных матриц N×N к дискретным значениям каналов программы для генерирования N кодированных каналов сигнала, которые могут быть преобразованы в первое микширование M выходных каналов, при этом первое микширование соответствует изменяющемуся во времени микшированию A(t), указанному в интервале, в том смысле, что первое микширование по меньшей мере по существу равняется A(t1), при этом t1 является моментом времени в интервале. Декодер может создать M выходных каналов посредством применения каскада элементарных матриц N×N, принятых в качестве части кодированного звукового содержимого. Кодер в таком альтернативном варианте осуществления может также сгенерировать второй каскад элементарных матриц M1×M1 (при этом M1 является целым, которое меньше N), который также включен в кодированное звуковое содержимое. Декодер может применить второй каскад к M1 кодированных каналов сигнала для реализации понижающего микширования N-канальной программы в M1 каналов динамика, при этом понижающее микширование соответствует изменяющемуся во времени микшированию A(t) в том смысле, что понижающее микширование по меньшей мере по существу равняется A(t1). Кодер в таком альтернативном варианте осуществления будет также генерировать значения интерполяции (в соответствии с любым вариантом осуществления настоящего изобретения) и включать значения интерполяции в кодированный битовый поток, выводимый из кодера, для использования декодером для декодирования и представления содержимого кодированного битового потока в соответствии с изменяющимся во времени микшированием A(t) и/или для декодирования и представления понижающего микширования содержимого кодированного битового потока в соответствии с изменяющимся во времени микшированием A(t).
Описание фиг. 5 будет иногда относиться к многоканальному сигналу, подаваемому на кодер изобретения, в качестве 8-канального входного сигнала для большей точности, но описание (с тривиальными вариациями, понятными специалистам в данной области техники) также применяется к общему случаю посредством замены ссылок на 8-канальный входной сигнал на ссылки на N-канальный входной сигнал, замены ссылок на каскады 8-канальных (или 2-канальных) элементарных матриц на ссылки на M-канальные (или M1-канальные) элементарные матрицы и замены ссылок на восстановление без потерь 8-канального входного сигнала на ссылки на восстановление без потерь M-канального звукового сигнала (при этом M-канальный звуковой сигнал был определен посредством выполнения матричных операций для применения изменяющегося во времени микширования A(t) к N-канальному входному звуковому сигналу для определения M кодированных каналов сигнала).
n
1
0
-1
-1
-1
Со ссылкой на этап 43 кодера, показанный на фиг. 5, каждая матрица P,…, P и P (и, следовательно, каскад, примененный на этапе 43) определяется в подсистеме 44 и обновляется время от времени (как правило, нечасто) в соответствии с указанным изменяющимся во времени микшированием N (где N = 8) каналов программы в N кодированных каналов сигнала, которые были указаны в интервале времени.
0
1
0
1
n
0
1
0
1
n
2
2
2
2
Подсистема 44 определения матрицы выполнена с возможностью генерирования данных, указывающих на коэффициенты двух наборов выходных матриц (по одному набору, соответствующему каждому из двух подпотоков кодированных каналов). Каждый набор выходных матриц обновляется время от времени, так что коэффициенты также обновляются время от времени. Один набор выходных матриц состоит из двух матриц P(t), P(t) представления, каждая из которых является элементарной матрицей (предпочтительно единичной элементарной матрицей) с размерностью 2×2 и предназначена для представления первого подпотока (подпотока понижающего микширования), содержащего два кодированных звуковых канала кодированного битового потока (для представления двухканального понижающего микширования восьмиканального входного звука). Другой набор выходных матриц состоит из восьми матриц P(t), P(t), …, P(t) представления, каждая из которых является элементарной матрицей (предпочтительно единичной элементарной матрицей) с размерностью 8×8 и предназначена для представления второго подпотока, содержащего все восемь кодированных звуковых каналов кодированного битового потока (для восстановления без потерь восьмиканальной входной звуковой программы). Для каждого момента времени t каскад матриц P(t), P(t) представления может быть интерпретирован в качестве матрицы представления для каналов первого подпотока, который представляет двухканальное понижающее микширование из двух кодированных каналов сигнала в первый подпоток, и, подобным образом, каскад матриц P(t), P(t), …, P(t),представления может быть интерпретирован в качестве матрицы представления для каналов второго подпотока.
Коэффициенты (каждой матрицы представления), которые выводятся из подсистемы 44 на подсистему 45 упаковки, являются метаданными, указывающими на относительный или абсолютный коэффициент усиления каждого канала, который должен быть включен в соответствующее микширование каналов программы. Коэффициенты каждой матрицы представления (для момента времени во время программы) представляют, какой вклад каждый из каналов микширования должен внести в микширование звукового содержимого (в соответствующий момент представленного микширования), указанного сигналом, подаваемым на динамик, для конкретного динамика системы воспроизведения.
Восемь кодированных каналов сигнала (выводимых на этапе 43 кодирования), коэффициенты выходной матрицы (сгенерированные подсистемой 44), а также, как правило, дополнительные данные передаются на подсистему 45 упаковки, которая компонует их в кодированный битовый поток, который затем передается на систему 41 подачи.
Кодированный битовый поток включает данные, указывающие на восемь кодированных звуковых каналов, два набора изменяющихся во времени выходных матриц (по одному набору, соответствующему каждому из двух подпотоков кодированных каналов), а также, как правило, дополнительные данные (например, метаданные о звуковом содержимом).
Во время работы кодер 40 (и альтернативные варианты осуществления кодера изобретения, например, кодер 100, показанный на фиг. 6) кодирует N-канальную звуковую программу, дискретные значения которой соответствуют интервалу времени, при этом интервал времени включает подынтервал от момента времени t1 до момента времени t2. Если изменяющееся во времени микширование A(t) N кодированных каналов сигнала в M выходных каналов было указано в интервале времени, тогда кодер выполняет следующие этапы:
0
1
n
определение первого каскада элементарных матриц N×N (например, матриц P(t1), P(t1), …, P(t1) для момента времени t1), который при применении к дискретным значениям N кодированных каналов сигнала реализует первое микширование звукового содержимого N кодированных каналов сигнала в M выходных каналов, при этом первое микширование соответствует изменяющемуся во времени микшированию A(t) в том смысле, что первое микширование по меньшей мере по существу равняется A(t1);
генерирование кодированного звукового содержимого (например, выходного сигнала на этапе 43 кодера 40 или выходного сигнала на этапе 103 кодера 100) посредством выполнения матричных операций в отношении дискретных значений N каналов программы, в том числе посредством применения последовательности каскадов матриц к дискретным значениям, при этом каждый каскад матриц в последовательности является каскадом элементарных матриц, и последовательность каскадов матриц включает первый каскад обратных матриц, который является каскадом обратных матриц элементарных матриц первого каскада;
определение значений интерполяции (например, значений интерполяции, включенных в выходной сигнал на этапе 44 кодера 40 или в выходной сигнал на этапе 103 кодера 100), которые вместе с первым каскадом элементарных матриц (например, включенным в выходной сигнал на этапе 44 или этапе 103) и функцией интерполяции, определенной в подынтервале, указывают на последовательность каскадов обновленных элементарных матриц N×N, так что каждый каскад обновленных элементарных матриц при применении к дискретным значениям N кодированных каналов сигнала реализует обновленное микширование, связанное с различным временем в подынтервале, N кодированных каналов сигнала в M выходных каналов, при этом каждое указанное обновленное микширование соответствует изменяющемуся во времени микшированию A(t). Предпочтительно, но необязательно (во всех вариантах осуществления), каждое обновленное микширование соответствует изменяющемуся во времени микшированию в том смысле, что обновленное микширование, связанное с любым моментом времени t3 в подынтервале, по меньшей мере по существу равняется A(t3); и
генерирование кодированного битового потока (например, выходного сигнала на этапе 45 кодера 40 или выходного сигнала на этапе 104 кодера 100), который указывает на кодированное звуковое содержимое, значения интерполяции и первый каскад элементарных матриц.
Со ссылкой на этап 44, показанный на фиг. 5, каждый набор выходных матриц (набор  или набор ) обновляется время от времени. Первый набор матриц , который выводится (в первый момент времени t1), является начальной матрицей (реализованной в качестве каскада единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений двух каналов кодированного выходного сигнала на этапе 43, соответствующем первому моменту времени). Первый набор матриц , который выводится (в первый момент времени t1), также является начальной матрицей (реализованной в качестве каскада единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений всех восьми каналов кодированного выходного сигнала на этапе 43, соответствующем первому моменту времени). Каждый обновленный набор матриц , который выводится на этапе 44, является обновленной начальной матрицей (реализованной в качестве каскада единичных элементарных матриц, который может также называться каскадом единичных начальных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено во время обновления во время программы (т.е. в отношении дискретных значений двух каналов кодированного выходного сигнала на этапе 43, соответствующем времени обновления). Каждый обновленный набор матриц , который выводится на этапе 43, также является обновленной начальной матрицей (реализованной в качестве каскада единичных элементарных матриц, который может также называться каскадом единичных начальных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено во время обновления во время программы (т.е. в отношении дискретных значений всех восьми каналов кодированного выходного сигнала на этапе 43, соответствующем первому моменту времени).
На выходном этапе 44 также выводятся значения интерполяции, которые (вместе с функцией интерполяции для каждой начальной матрицы) позволяют декодеру 42 генерировать интерполированные версии начальных матриц (соответствующих моментам времени после первого момента времени t1 и между временами обновления). Значения интерполяции (которые могут включать данные, указывающие на каждую функцию интерполяции) включены на этапе 45 в кодированный битовый поток, выводимый из кодера 40. Мы опишем примеры данных значений интерполяции далее (значения интерполяции могут включать дельта-матрицу для каждой начальной матрицы).
Со ссылкой на декодер 42, показанный на фиг. 5, подсистема 46 синтаксического разбора (декодера 42) выполнена с возможностью принятия (считывания или приема) кодированного битового потока от системы 41 подачи и с возможностью синтаксического разбора кодированного битового потока. Подсистема 46 выполнена с возможностью передачи подпотоков кодированного битового потока (включая «первый» подпоток, содержащий только два кодированных канала кодированного битового потока) и выходных матриц (), соответствующих первому подпотоку, на этапе 48 умножения матриц (для обработки, которая приводит к 2-канальному представлению понижающего микширования содержимого исходной 8-канальной входной программы). Подсистема 46 также выполнена с возможностью передачи подпотоков кодированного битового потока (при этом «второй» подпоток содержит все восемь кодированных каналов кодированного битового потока) и соответствующих выходных матриц () на этапе 47 умножения матриц для обработки, которая приводит к воспроизведению без потерь исходной 8-канальной программы.
Подсистема 46 синтаксического разбора (и подсистема 105 синтаксического разбора, показанная на фиг. 6) может включать (и/или реализовывать) дополнительные средства декодирования и кодирования без потерь (например, кодирование LPC, кодирование методом Хаффмана и так далее).
Этап 60 интерполяции соединен с возможностью приема каждой начальной матрицы для второго подпотока (т.е. первоначального набора элементарных матриц  для момента времени t1 и каждого обновленного набора элементарных матриц ), включенного в кодированный битовый поток, и значений интерполяции (также включенных в кодированный битовый поток) для генерирования интерполированных версий каждой начальной матрицы. Этап 60 соединен и выполнен с возможностью пропускания (на этап 47) каждой такой начальной матрицы и с возможностью генерирования (и передачи на этап 47) интерполированных версий каждой такой начальной матрицы (при этом каждая интерполированная версия соответствует моменту времени после первого момента времени t1 и до первого времени обновления начальной матрицы или между последовательными временами обновления начальной матрицы).
0
1
0
1
2
2
2
2
Этап 61 интерполяции соединен с возможностью приема каждой начальной матрицы для первого подпотока (т.е. первоначального набора элементарных матриц P и P для момента времени t1 и каждого обновленного набора элементарных матриц P и P), включенного в кодированный битовый поток, и значений интерполяции (также включенных в кодированный битовый поток) для генерирования интерполированных версий каждой такой начальной матрицы. Этап 61 соединен и выполнен с возможностью пропускания (на этап 48) каждой такой начальной матрицы и с возможностью генерирования (и передачи на этап 48) интерполированных версий каждой такой начальной матрицы (при этом каждая интерполированная версия соответствует моменту времени после первого момента времени t1 и до первого времени обновления начальной матрицы или между последовательными временами обновления начальной матрицы).
0
1
0
1
2
2
2
2
На этапе 48 выполняется умножение двух дискретных значений аудиоданных двух каналов (кодированного битового потока), которые соответствуют каналам первого подпотока, на совсем недавно обновленный каскад матриц P и P (например, каскад самых последних интерполированных версий матриц P и P, сгенерированных на этапе 61) и каждый полученный в результате набор из двух линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign0», для получения каждой пары дискретных значений необходимого 2-канального понижающего микширования 8 исходных звуковых каналов. Каскад матричных операций, выполняющихся в кодере 40 и декодере 42, эквивалентен применению спецификации матрицы понижающего микширования, которая преобразовывает 8 входных звуковых каналов в 2-канальное понижающее микширование.
На этапе 47 выполняется умножение каждого вектора восьми дискретных значений аудиоданных (по одному из каждого полного набора из восьми каналов кодированного битового потока) на совсем недавно обновленный каскад матриц (например, каскад самых последних интерполированных версий матриц , сгенерированных на этапе 60) и каждый полученный в результате набор из восьми линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком, обозначенным как «ChAssign1», для получения каждого набора из восьми дискретных значений восстановленной без потерь исходной 8-канальной программы. Для того чтобы выходной 8-канальный звук был точно таким же, как и входной 8-канальный звук (для достижения характеристики «без потерь» системы), матричные операции, выполняющиеся в кодере 40, должны быть точным (включая эффекты квантования) обращением матричных операций, выполняющихся в декодере 42 в отношении второго подпотока кодированного битового потока, (т.е. каждое умножение на этапе 47 декодера 42 на каскад матриц). Таким образом, на фиг. 5 матричные операции на этапе 43 кодера 40 идентифицируются в качестве каскада обратных матриц матриц в противоположной последовательности, применяющейся на этапе 47 декодера 42, а именно:  .
Таким образом, этап 47 (вместе с этапом перестановки «ChAssign1») является подсистемой умножения матриц, соединенной и выполненной с возможностью последовательного применения каждого каскада элементарных матриц, выводимых на этапе 60 интерполяции, к кодированному звуковому содержимому, извлеченному из кодированного битового потока, для восстановления без потерь N каналов по меньшей мере сегмента многоканальной звуковой программы, которая была кодирована кодером 40.
На этапе перестановки «ChAssign1» декодера 42 осуществляется применение к выходному сигналу этапа 47 обращения перестановки каналов, применяющейся кодером 40 (т.е. матрица перестановок, представленная на этапе «ChAssign1» декодера 42, является обратной матрицей матрицы, представленной элементом «InvChAssign1» кодера 40).
В вариациях подсистем 40 и 42 системы, показанной на фиг. 5, пропущен один или несколько элементов или включены дополнительные блоки обработки аудиоданных.
В вариациях описанного варианта осуществления декодера 42 декодер изобретения выполнен с возможностью выполнения восстановления без потерь N каналов кодированного звукового содержимого из кодированного битового потока, указывающего на N кодированных каналов сигнала, при этом N каналов звукового содержимого сами являются понижающим микшированием звукового содержимого X-канальной входной звуковой программы (где X является произвольным целым и N меньше, чем X), сгенерированной посредством выполнения матричных операций в отношении X-канальной входной звуковой программы для применения изменяющегося во времени микширования к X каналам входной звуковой программы, следовательно, определяя N каналов кодированного звукового содержимого кодированного битового потока. В данных вариациях декодер выполняет интерполяцию в отношении элементарных матриц N×N, обеспеченных (например, включенных в) битовым потоком.
В классе вариантов осуществления изобретением является способ представления многоканальной звуковой программы, в том числе посредством выполнения линейного преобразования (умножения матриц) в отношении дискретных значений каналов программы (например, для генерирования понижающего микширования содержимого программы). Линейное преобразование зависит от времени в том смысле, что линейное преобразование, которое должно быть выполнено в один момент времени во время программы (т.е. в отношении дискретных значений каналов, соответствующих данному моменту времени), отличается от линейного преобразования, которое должно быть выполнено в другой момент времени во время программы. В некоторых вариантах осуществления способ использует по меньшей мере одну начальную матрицу (которая может быть реализована в качестве каскада единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений каналов, соответствующих первому моменту времени), и реализует интерполяцию для определения по меньшей мере одной интерполированной версии начальной матрицы, которая определяет линейное преобразование, которое должно быть выполнено во второй момент времени во время программы. В типичных вариантах осуществления способ выполняется декодером (например, декодером 40, показанным на фиг. 5, или декодером 102, показанным на фиг. 6), который включен в или связан с системой воспроизведения. Как правило, декодер выполнен с возможностью выполнения восстановления без потерь звукового содержимого кодированного битового аудиопотока, указывающего на программу, и начальная матрица (и каждая интерполированная версия начальной матрицы) реализована в качестве каскада элементарных матриц (например, единичных элементарных матриц).
Как правило, обновления матрицы представления (обновления начальной матрицы) происходят нечасто (например, последовательность обновленных версий начальной матрицы включена в кодированный битовый аудиопоток, подаваемый на декодер, но существуют длительные интервалы времени между сегментами программы, соответствующей последовательным сегментам данных обновленных версий) и необходимая траектория представления (например, необходимая последовательность микширований содержимого каналов программы) между обновлениями начальной матрицы указана параметрически (например, метаданными, включенными в кодированный битовый аудиопоток, подаваемый на декодер).
j
k
j
j
k
j
k
j
Каждая начальная матрица (последовательности обновленных начальных матриц) будет обозначена в качестве A(t) или P(t), если она является элементарной матрицей, при этом t является моментом времени (в программе), соответствующим начальной матрице, (т.е. моментом времени, соответствующим «j»-й начальной матрице). Если начальная матрица реализована в качестве каскада элементарных матриц P(t), тогда индекс k указывает на положение в каскаде каждой элементарной матрицы. Как правило, «k»-я матрица P(t) в каскаде элементарных матриц применяется к «k»-му каналу.
Если линейное преобразование (например, спецификация понижающего микширования) A(t) быстро изменяется, тогда кодер (например, традиционный кодер) должен будет часто передавать обновленные начальные матрицы для достижения точного приближения .
Рассмотрим последовательность элементарных матриц , , , …, которые применяются к одному и тому же каналу k, но в различные моменты t1, t2, t3,…. времени. Вместо того чтобы отправлять обновленные элементарные матрицы в каждый из данных моментов времени, способ варианта осуществления изобретения отправляет в момент времени t1 (т.е. включает в кодированный битовый поток в положении, соответствующем моменту времени t1) начальную элементарную матрицу  и начальную дельта-матрицу , которая определяет скорость изменения коэффициентов матрицы. Например, начальная элементарная матрица и начальная дельта-матрица могут иметь следующий вид:
0
1
2
N-1
0
1
N-1
k
0
1
2
N-1
k
0
1
N-1
Поскольку  является элементарной матрицей, она идентична матрице тождественности с размерностью N×N за исключением одной (нетривиальной) строки (т.е. строки, содержащей элементы α, α, α, … α в примере). В примере матрица  содержит нули за исключением одной (нетривиальной) строки (т.е. строки, содержащей элементы δ, δ, …, δ в примере). Элемент α обозначает один из элементов α, α, α, … α, который появляется по диагонали , и элемент δ обозначает один из элементов δ, δ, …, δ, который появляется по диагонали .
Таким образом, элементарная матрица в момент t времени (наступающий после момента времени t1) интерполируется (например, на этапе 60 или 61 декодера 42 или на этапе 110, 111, 112 или 113 декодера 102) следующим образом:
,
где  является коэффициентом интерполяции для момента времени t и . Например, если необходима линейная интерполяция, функция  может иметь вид , где  является постоянной. Если интерполяция реализуется в декодере, декодер должен быть выполнен с возможностью понимания функции f(t). Например, метаданные, определяющие функцию f(t), могут быть поданы на декодер вместе с кодированным битовым аудиопотоком, который должен быть декодирован и представлен.
k
Несмотря на то что выше описан общий случай интерполяции элементарных матриц, в котором элемент α равняется 1,  является единичной элементарной матрицей, которая поддается обращению без потерь. Однако для поддержания качества без потерь в каждый момент времени нам также необходимо установить , чтобы элементарная матрица в каждый момент времени поддавалась обращению без потерь.
Следует отметить, что . Таким образом, вместо того, чтобы обновлять начальную элементарную матрицу в каждый момент t времени, эквивалентно могут быть вычислены два промежуточных набора каналов  и , и они могут быть объединены вместе с коэффициентом  интерполяции. Данный подход, как правило, является вычислительно менее дорогостоящим по сравнению с подходом обновления элементарной матрицы в каждый момент времени, при этом каждый коэффициент дельта должен быть умножен на коэффициент интерполяции.
r
Еще одним эквивалентным подходом является разделение  на целое  и дробное , а затем достижение необходимого применения интерполированной элементарной матрицы следующим образом:
.  (2)
Данный последний подход (с использованием уравнения (2)), следовательно, будет являться сочетанием двух подходов, обсужденных ранее.
k
k
r
В формате TrueHD значение звука, равное 0,833 мс (40 дискретным значениям при 48 кГц), определено в качестве блока доступа. Если дельта-матрица Δ определена в качестве скорости изменения элементарной матрицы P на блок доступа, и, если мы определяем , где  является длиной блока доступа, тогда  в уравнении (2) увеличивается на 1 с каждым блоком доступа и  является лишь функцией смещения дискретного значения в пределах блока доступа. Таким образом, дробное значение  необязательно должно быть вычислено и может быть просто получено из справочной таблицы, индексируемой по смещениям в пределах блока доступа. На каждом конце каждого блока доступа  обновляется посредством добавления . В целом,  необязательно должна соответствовать блоку доступа и вместо этого может являться любым фиксированным сегментом сигнала, например, она может являться блоком с длиной в 8 дискретных значений.
Еще одним упрощением, несмотря на приближение, будет являться полное игнорирование дробной части  и периодическое обновление . Это по существу приведет к кусочно-постоянному обновлению матрицы, но без необходимости частой передачи элементарных матриц.
0
1
2
3
На фиг. 3 показана блок-диаграмма схемы, использующейся в варианте осуществления изобретения для применения элементарной матрицы 4×4 (реализованной с использованием арифметических операций с ограниченной точностью) к четырем каналам звуковой программы. Элементарная матрица является начальной элементарной матрицей, одна нетривиальная строка которой содержит элементы α, α, α и α. Предполагается, что четыре такие элементарные матрицы, по одной для преобразования дискретных значений отличного из четырех каналов, будут каскадированы для преобразования дискретных значений всех четырех каналов. Данная схема может быть использована, если элементарные матрицы сначала обновляются посредством интерполяции, а затем обновленные элементарные матрицы применяются к аудиоданным.
k
0
1
2
0
1
2
На фиг. 4 показана блок-диаграмма схемы, использующейся в варианте осуществления изобретения для применения элементарной матрицы 3×3 (реализованной с использованием арифметических операций с ограниченной точностью) к трем каналам звуковой программы. Элементарная матрица является интерполированной элементарной матрицей, сгенерированной в соответствии с вариантом осуществления изобретения из начальной элементарной матрицы P(t1), одна нетривиальная строка которой содержит элементы α, α и α, и начальной дельта-матрицы , нетривиальная строка которой содержит элементы δ, δ и δ, и функции f(t) интерполяции. Таким образом, элементарная матрица в момент t времени (наступающий после момента времени t1) интерполируется следующим образом:
, где  является коэффициентом интерполяции для момента времени t (значением функции f(t) интерполяции в момент времени t), и . Предполагается, что три такие элементарные матрицы, по одной для преобразования дискретных значений отличного из трех каналов, будут каскадированы для преобразования дискретных значений всех трех каналов. Данная схема может быть использована, если начальная или частично обновленная элементарная матрица применяется к аудиоданным и дельта-матрица применяется к аудиоданным и они объединяются вместе с использованием коэффициента интерполяции.
0
1
2
3
На фиг. 3 схема выполнена с возможностью применения начальной элементарной матрицы к четырем каналам S1, S2, S3 и S4 звуковой программы (т.е. с возможностью умножения дискретных значений каналов на матрицу). Более конкретно, дискретное значение канала S1 умножается на коэффициент α (идентифицированный как «m_coeff[p,0]») матрицы, дискретное значение канала S2 умножается на коэффициент α (идентифицированный как «m_coeff[p,1]») матрицы, дискретное значение канала S3 умножается на коэффициент α (идентифицированный как «m_coeff[p,2]») матрицы и дискретное значение канала S4 умножается на коэффициент α (идентифицированный как «m_coeff[p,3]») матрицы. Произведения суммируются в элементе 10 суммирования и каждая сумма, выводимая из элемента 10, затем квантуется на этапе Qss квантования для генерирования квантованного значения, которое является преобразованной версией (включенной в канал S2’) дискретного значения канала S2. В типичной реализации каждое дискретное значение каждого канала S1, S2, S3 и S4 содержит 24 бита (как указано на фиг. 3) и выходное значение каждого элемента умножения содержит 38 битов (как также указано на фиг. 3) и на этапе Qss квантования выводится 24-битовое квантованное значение в ответ на каждое 38-битовое значение, которое вводится на этапе.
0
1
2
На фиг. 4 схема выполнена с возможностью применения интерполированной элементарной матрицы к трем каналам C1, C2 и C3 звуковой программы (т.е. с возможностью умножения дискретных значений каналов на матрицу). Более конкретно, дискретное значение канала C1 умножается на коэффициент α (идентифицированный как «m_coeff[p,0]») начальной элементарной матрицы, дискретное значение канала C2 умножается на коэффициент α (идентифицированный как «m_coeff[p,1]») начальной элементарной матрицы и дискретное значение канала S3 умножается на коэффициент α (идентифицированный как «m_coeff[p,2]») начальной элементарной матрицы. Произведения суммируются в элементе 12 суммирования и каждая сумма, выводимая из элемента 12, затем добавляется (на этапе 14) к соответствующему значению, выводимому на этапе 13 коэффициента интерполяции. Значение, выводимое на этапе 14, квантуется на этапе Qss квантования для генерирования квантованного значения, которое является преобразованной версией (включенной в канал C3’) дискретного значения канала C3.
0
1
2
Дискретное значение канала C1 умножается на коэффициент δ (идентифицированный как «delta_cf[p,0]») начальной дельта-матрицы, дискретное значение канала C2 умножается на коэффициент δ (идентифицированный как «delta_cf[p,1]») начальной дельта-матрицы и дискретное значение канала S3 умножается на коэффициент δ (идентифицированный как «delta_cf[p,2]») начальной дельта-матрицы. Произведения суммируются в элементе 11 суммирования и каждая сумма, выводимая из элемента 11, затем квантуется на этапе Qfine квантования для генерирования квантованного значения, которое затем умножается (на этапе 13 этапа коэффициента интерполяции) на текущее значение функции f(t) интерполяции.
В типичной реализации, показанной на фиг. 4, каждое дискретное значение каждого канала C1, C2 и C3 содержит 32 бита (как указано на фиг. 4) и выходное значение каждого элемента 11, 12 и 14 суммирования содержит 50 битов (как также указано на фиг. 4) и на каждом этапе Qfine и Qss квантования выводится 32-битовое квантованное значение в ответ на каждое 50-битовое значение, которое вводится на каждом этапе.
Например, вариация показанной на фиг. 4 схемы может преобразовывать вектор дискретных значений x звуковых каналов, где x = 2, 4, 8 или N каналам. Каскад из x данных вариаций показанной на фиг. 4 схемы может выполнять умножение матриц данных x каналов на начальную матрицу x × x (или интерполированную версию такой начальной матрицы). Например, такой каскад из x данных вариаций показанной на фиг. 4 схемы может реализовать этапы 60 и 47 декодера 42 (где x = 8), или этапы 61 и 48 декодера 42 (где x = 2), или этапы 113 и 109 декодера 102 (где x = N), или этапы 112 и 108 декодера 102 (где x = 8), или этапы 111 и 107 декодера 102 (где x = 6), или этапы 110 и 106 декодера 102 (где x = 2).
В показанном на фиг. 4 варианте осуществления начальная элементарная матрица и начальная дельта-матрица параллельно применяются к каждому набору (вектору) входных дискретных значений (при этом каждый такой вектор включает одно дискретное значение из каждого из входных каналов).
Со ссылкой на фиг. 6 далее описан вариант осуществления изобретения, в котором звуковая программа, которая должна быть декодирована, является N-канальной звуковой программой на основе объекта. Показанная на фиг. 6 система включает кодер 100 (вариант осуществления кодера изобретения), подсистему 31 подачи и декодер 102 (вариант осуществления декодера изобретения), соединенные вместе, как показано. Несмотря на то, что подсистема 102 в данном документе называется «декодером», следует понимать, что она может быть реализована в качестве системы воспроизведения, включающей подсистему декодирования (выполненную с возможностью синтаксического разбора и декодирования битового потока, указывающего на кодированную многоканальную звуковую программу) и другие подсистемы, выполненные с возможностью реализации представления и по меньшей мере некоторых этапов воспроизведения выходного сигнала подсистемы декодирования. Некоторыми вариантами осуществления изобретения являются декодеры, которые не выполнены с возможностью выполнения представления и/или воспроизведения (и которые, как правило, будут использованы вместе с отдельной системой воспроизведения и/или представления). Некоторыми вариантами осуществления изобретения являются системы воспроизведения (например, система воспроизведения, включающая подсистему декодирования и другие подсистемы, выполненные с возможностью реализации представления и по меньшей мере некоторых этапов воспроизведения выходного сигнала подсистемы декодирования).
В показанной на фиг. 6 системе кодер 100 выполнен с возможностью кодирования N-канальной звуковой программы на основе объекта в качестве кодированного битового потока, включающего четыре подпотока, и декодер 102 выполнен с возможностью декодирования кодированного битового потока для представления либо исходной N-канальной программы (без потерь), либо 8-канального понижающего микширования исходной N-канальной программы, либо 6-канального понижающего микширования исходной N-канальной программы, либо 2-канального понижающего микширования исходной N-канальной программы. Кодер 100 соединен и выполнен с возможностью генерирования кодированного битового потока и с возможностью передачи кодированного битового потока на систему 31 подачи.
Система 31 подачи соединена и выполнена с возможностью подачи (например, посредством сохранения и/или передачи) кодированного битового потока на декодер 102. В некоторых вариантах осуществления система 31 реализует подачу (например, передачу) кодированной многоканальной звуковой программы через систему вещания или сеть (например, сеть Интернет) на декодер 102. В некоторых вариантах осуществления система 31 сохраняет кодированную многоканальную звуковую программу на носитель данных (например, диск или набор дисков) и декодер 102 выполнен с возможностью считывания программы с носителя данных.
Блок, обозначенный как «InvChAssign3», в кодере 100 выполнен с возможностью выполнения перестановки каналов (эквивалентной умножению на матрицу перестановок) в отношении каналов входной программы. Затем переставленные каналы подвергаются кодированию на этапе 101, который выводит N кодированных каналов сигнала. Кодированные каналы сигнала могут (но необязательно) соответствовать каналам динамика воспроизведения. Кодированные каналы сигнала иногда называются «внутренними» каналами, поскольку декодер (и/или система представления), как правило, декодирует и представляет содержимое кодированных каналов сигнала для восстановления входного звука, так что кодированные каналы сигнала являются «внутренними» в отношении системы кодирования/декодирования. Кодирование, выполненное на этапе 101, эквивалентно умножению каждого набора дискретных значений переставленных каналов на матрицу кодирования (реализованную в качестве каскада умножений матриц, идентифицированного как .
n
1
0
-1
-1
-1
Каждая матрица P,…, P и P (и, следовательно, каскад, примененный на этапе 101) определяется в подсистеме 103 и обновляется время от времени (как правило, нечасто) в соответствии с указанным изменяющимся во времени микшированием N каналов программы в N кодированных каналов сигнала, которые были указаны в интервале времени.
В вариациях приведенного в качестве примера варианта осуществления, показанного на фиг. 6, входная звуковая программа содержит произвольное количество (N или X, где X больше, чем N) каналов. В данных вариациях N каналов многоканальной звуковой программы, которые указаны кодированным битовым потоком, выводимым из кодера, который может быть без потерь восстановлен декодером, могут являться N каналами звукового содержимого, которое было сгенерировано из X-канальной входной звуковой программы посредством выполнения матричных операций в отношении X-канальной входной звуковой программы для применения изменяющегося во времени микширования к X каналам входной звуковой программы, следовательно, определяя кодированное звуковое содержимое кодированного битового потока.
Подсистема 103 определения матрицы, показанная на фиг. 6, выполнена с возможностью генерирования данных, указывающих на коэффициенты четырех наборов выходных матриц (по одному набору, соответствующему каждому из четырех подпотоков кодированных каналов). Каждый набор выходных матриц обновляется время от времени, так что коэффициенты также обновляются время от времени.
0
1
0
1
2
3
4
5
0
1
7
2
2
6
6
6
6
6
6
8
8
8
Один набор выходных матриц состоит из двух матриц P(t), P(t) представления, каждая из которых является элементарной матрицей (предпочтительно единичной элементарной матрицей) с размерностью 2×2 и предназначена для представления первого подпотока (подпотока понижающего микширования), содержащего два кодированных звуковых канала кодированного битового потока (для представления двухканального понижающего микширования входного звука). Еще один набор выходных матриц может содержать вплоть до шести матриц P(t), P(t), P(t), P(t), P(t) и P(t) представления, каждая из которых является элементарной матрицей (предпочтительно единичной элементарной матрицей) с размерностью 6×6 и предназначена для представления второго подпотока (подпотока понижающего микширования), содержащего шесть кодированных звуковых каналов кодированного битового потока (для представления шестиканального понижающего микширования входного звука). Еще один набор выходных матриц содержит вплоть до восьми матриц P(t), P(t), …, P(t) представления, каждая из которых является элементарной матрицей (предпочтительно единичной элементарной матрицей) с размерностью 8×8 и предназначена для представления третьего подпотока (подпотока понижающего микширования), содержащего восемь кодированных звуковых каналов кодированного битового потока (для представления восьмиканального понижающего микширования входного звука).
0
1
n
0
1
0
1
5
0
1
7
0
1
n
2
2
6
6
6
8
8
8
Другой набор выходных матриц состоит из N матриц P(t), P(t), …, P(t) представления, каждая из которых является элементарной матрицей (предпочтительно единичной элементарной матрицей) с размерностью N×N и предназначена для представления четвертого подпотока, содержащего все кодированные звуковые каналы кодированного битового потока (для восстановления без потерь N-канальной входной звуковой программы). Для каждого момента времени t каскад матриц P(t), P(t) представления может быть интерпретирован в качестве матрицы представления для каналов первого подпотока, каскад матриц P(t), P(t), …, P(t) представления может быть также интерпретирован в качестве матрицы представления для каналов второго подпотока, каскад матриц P(t), P(t), …, P(t) представления может быть также интерпретирован в качестве матрицы представления для каналов третьего подпотока и каскад матриц P(t), P(t), …, P(t) представления эквивалентен матрице представления для каналов четвертого подпотока.
Коэффициенты (каждой матрицы представления), которые выводятся из подсистемы 103 на подсистему 104 упаковки, являются метаданными, указывающими на относительный или абсолютный коэффициент усиления каждого канала, который должен быть включен в соответствующее микширование каналов программы. Коэффициенты каждой матрицы представления (для момента времени во время программы) представляют, какой вклад каждый из каналов микширования должен внести в микширование звукового содержимого (в соответствующий момент представленного микширования), указанного сигналом, подаваемым на динамик, для конкретного динамика системы воспроизведения.
N кодированных каналов сигнала (выводимых на этапе 101 кодирования), коэффициенты выходной матрицы (сгенерированные подсистемой 103), а также, как правило, дополнительные данные (например, для включения в качестве метаданных в кодированный битовый поток) передаются на подсистему 104 упаковки, которая компонует их в кодированный битовый поток, который затем передается на систему 31 подачи.
Кодированный битовый поток включает данные, указывающие на N кодированных звуковых каналов, четыре набора изменяющихся во времени выходных матриц (по одному набору, соответствующему каждому из четырех подпотоков кодированных каналов), а также, как правило, дополнительные данные (например, метаданные о звуковом содержимом).
0
1
n
0
1
n
6
6
6
8
8
8
На этапе 103 кодера 100 осуществляется обновление каждого набора выходных матриц (например, набора  или набора ) время от времени. Первый набор матриц , который выводится (в первый момент времени t1), является начальной матрицей (реализованной в качестве каскада элементарных матриц, например, единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений двух каналов кодированного выходного сигнала на этапе 101, соответствующем первому моменту времени). Первый набор матриц P(t), P(t), …, P(t), который выводится (в момент времени t1), является начальной матрицей (реализованной в качестве каскада элементарных матриц, например, единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений шести каналов кодированного выходного сигнала на этапе 101, соответствующем первому моменту времени). Первый набор матриц P(t), P(t), …, P(t), который выводится (в момент времени t1), является начальной матрицей (реализованной в качестве каскада элементарных матриц, например, единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений восьми каналов кодированного выходного сигнала на этапе 101, соответствующем первому моменту времени). Первый набор матриц , который выводится (в момент времени t1), является начальной матрицей (реализованной в качестве каскада единичных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено в первый момент времени во время программы (т.е. в отношении дискретных значений всех каналов кодированного выходного сигнала на этапе 101, соответствующем первому моменту времени).
0
1
n
0
1
n
6
6
6
8
8
8
Каждый обновленный набор матриц , который выводится на этапе 103, является обновленной начальной матрицей (реализованной в качестве каскада элементарных матриц, который может также называться каскадом начальных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено во время обновления во время программы (т.е. в отношении дискретных значений двух каналов кодированного выходного сигнала на этапе 101, соответствующем времени обновления). Каждый обновленный набор матриц P(t), P(t), …, P(t), который выводится на этапе 103, является обновленной начальной матрицей (реализованной в качестве каскада элементарных матриц, который может также называться каскадом начальных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено во время обновления во время программы (т.е. в отношении дискретных значений шести каналов кодированного выходного сигнала на этапе 101, соответствующем времени обновления). Каждый обновленный набор матриц P(t), P(t), …, P(t), который выводится на этапе 103, является обновленной начальной матрицей (реализованной в качестве каскада элементарных матриц, который может также называться каскадом начальных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено во время обновления во время программы (т.е. в отношении дискретных значений двух каналов кодированного выходного сигнала на этапе 101, соответствующем времени обновления). Каждый обновленный набор матриц , который выводится на этапе 103, также является обновленной начальной матрицей (реализованной в качестве каскада единичных элементарных матриц, который может также называться каскадом единичных начальных элементарных матриц), которая определяет линейное преобразование, которое должно быть выполнено во время обновления во время программы (т.е. в отношении дискретных значений всех каналов кодированного выходного сигнала на этапе 101, соответствующем первому моменту времени).
Выходной этап 103 также выполнен с возможностью выведения значений интерполяции, которые (вместе с функцией интерполяции для каждой начальной матрицы) позволяют декодеру 102 генерировать интерполированные версии начальных матриц (соответствующих моментам времени после первого момента времени t1 и между временами обновления). Значения интерполяции (которые могут включать данные, указывающие на каждую функцию интерполяции) включены на этапе 104 в кодированный битовый поток, выводимый из кодера 100. Примеры данных значений интерполяции описаны в других местах в данном документе (значения интерполяции могут включать дельта-матрицу для каждой начальной матрицы).
0
1
n
0
1
n
6
6
6
8
8
8
Со ссылкой на декодер 102, показанный на фиг. 6, подсистема 105 синтаксического разбора выполнена с возможностью принятия (считывания или приема) кодированного битового потока от системы 31 подачи и с возможностью синтаксического разбора кодированного битового потока. Подсистема 105 выполнена с возможностью передачи первого подпотока, содержащего два кодированных канала кодированного битового потока, выходных матриц (), соответствующих четвертому (верхнему) подпотоку, и выходных матриц (), соответствующих первому подпотоку, на этапе 106 умножения матриц (для обработки, которая приводит к 2-канальному представлению понижающего микширования содержимого исходной N-канальной входной программы). Подсистема 105 выполнена с возможностью передачи второго подпотока кодированного битового потока, содержащего шесть кодированных каналов кодированного битового потока, и выходных матриц (P(t), P(t), …, P(t)), соответствующих второму подпотоку, на этапе 107 умножения матриц (для обработки, которая приводит к 6-канальному представлению понижающего микширования содержимого исходной N-канальной входной программы). Подсистема 105 выполнена с возможностью передачи третьего подпотока кодированного битового потока, содержащего восемь кодированных каналов кодированного битового потока, и выходных матриц (P(t), P(t), …, P(t)), соответствующих третьему подпотоку, на этапе 108 умножения матриц (для обработки, которая приводит к восьмиканальному представлению понижающего микширования содержимого исходной N-канальной входной программы). Подсистема 105 также выполнена с возможностью передачи четвертого (верхнего) подпотока кодированного битового потока (содержащего все кодированные каналы кодированного битового потока) и соответствующих выходных матриц () на этапе 109 умножения матриц для обработки, которая приводит к воспроизведению без потерь исходной N-канальной программы.
Этап 113 интерполяции соединен с возможностью приема каждой начальной матрицы для четвертого подпотока (т.е. первоначального набора элементарных матриц  для момента времени t1 и каждого обновленного набора элементарных матриц ), включенного в кодированный битовый поток, и значений интерполяции (также включенных в кодированный битовый поток) для генерирования интерполированных версий каждой начальной матрицы. Этап 113 соединен и выполнен с возможностью пропускания (на этап 109) каждой такой начальной матрицы и с возможностью генерирования (и передачи на этап 109) интерполированных версий каждой такой начальной матрицы (при этом каждая интерполированная версия соответствует моменту времени после первого момента времени t1 и до первого времени обновления начальной матрицы или между последовательными временами обновления начальной матрицы).
0
1
n
0
1
n
8
8
8
8
8
8
Этап 112 интерполяции соединен с возможностью приема каждой начальной матрицы для третьего подпотока (т.е. первоначального набора элементарных матриц P, P, …, P для момента времени t1 и каждого обновленного набора элементарных матриц P, P, …, P), включенного в кодированный битовый поток, и значений интерполяции (также включенных в кодированный битовый поток) для генерирования интерполированных версий каждой такой начальной матрицы. Этап 112 соединен и выполнен с возможностью пропускания (на этап 108) каждой такой начальной матрицы и с возможностью генерирования (и передачи на этап 108) интерполированных версий каждой такой начальной матрицы (при этом каждая интерполированная версия соответствует моменту времени после первого момента времени t1 и до первого времени обновления начальной матрицы или между последовательными временами обновления начальной матрицы).
0
1
n
0
1
n
6
6
6
6
6
6
Этап 111 интерполяции соединен с возможностью приема каждой начальной матрицы для второго подпотока (т.е. первоначального набора элементарных матриц P, P, …, P для момента времени t1 и каждого обновленного набора элементарных матриц P, P, …, P), включенного в кодированный битовый поток, и значений интерполяции (также включенных в кодированный битовый поток) для генерирования интерполированных версий каждой такой начальной матрицы. Этап 111 соединен и выполнен с возможностью пропускания (на этап 107) каждой такой начальной матрицы и с возможностью генерирования (и передачи на этап 107) интерполированных версий каждой такой начальной матрицы (при этом каждая интерполированная версия соответствует моменту времени после первого момента времени t1 и до первого времени обновления начальной матрицы или между последовательными временами обновления начальной матрицы).
0
1
0
1
2
2
2
2
Этап 110 интерполяции соединен с возможностью приема каждой начальной матрицы для первого подпотока (т.е. первоначального набора элементарных матриц P и P для момента времени t1 и каждого обновленного набора элементарных матриц P и P), включенного в кодированный битовый поток, и значений интерполяции (также включенных в кодированный битовый поток) для генерирования интерполированных версий каждой такой начальной матрицы. Этап 110 соединен и выполнен с возможностью пропускания (на этап 106) каждой такой начальной матрицы и с возможностью генерирования (и передачи на этап 106) интерполированных версий каждой такой начальной матрицы (при этом каждая интерполированная версия соответствует моменту времени после первого момента времени t1 и до первого времени обновления начальной матрицы или между последовательными временами обновления начальной матрицы).
0
1
0
1
2
2
2
2
На этапе 106 выполняется умножение каждого вектора двух дискретных значений аудиоданных двух кодированных каналов первого подпотока на совсем недавно обновленный каскад матриц P и P (например, каскад самых последних интерполированных версий матриц P и P, сгенерированных на этапе 110) и каждый полученный в результате набор из двух линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign0», для получения каждой пары дискретных значений необходимого 2-канального понижающего микширования N исходных звуковых каналов. Каскад матричных операций, выполняющихся в кодере 40 и декодере 102, эквивалентен применению спецификации матрицы понижающего микширования, которая преобразовывает N входных звуковых каналов в 2-канальное понижающее микширование.
0
n
0
n
6
6
6
6
На этапе 107 выполняется умножение каждого вектора шести дискретных значений аудиоданных шести кодированных каналов второго подпотока на совсем недавно обновленный каскад матриц P , …, P (например, каскад самых последних интерполированных версий матриц P , …, P, сгенерированных на этапе 111) и каждый полученный в результате набор из шести линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign1», для получения каждой пары дискретных значений необходимого 6-канального понижающего микширования N исходных звуковых каналов. Каскад матричных операций, выполняющихся в кодере 100 и декодере 102, эквивалентен применению спецификации матрицы понижающего микширования, которая преобразовывает N входных звуковых каналов в 6-канальное понижающее микширование.
0
n
0
n
8
8
8
8
На этапе 108 выполняется умножение каждого вектора восьми дискретных значений аудиоданных восьми кодированных каналов (третьего подпотока на совсем недавно обновленный каскад матриц P , …, P (например, каскад самых последних интерполированных версий матриц P , …, P, сгенерированных на этапе 112) и каждый полученный в результате набор из восьми линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign2», для получения каждой пары дискретных значений необходимого 8-канального понижающего микширования N исходных звуковых каналов. Каскад матричных операций, выполняющихся в кодере 100 и декодере 102, эквивалентен применению спецификации матрицы понижающего микширования, которая преобразовывает N входных звуковых каналов в 8-канальное понижающее микширование.
На этапе 109 выполняется умножение каждого вектора N дискретных значений аудиоданных (по одному из каждого полного набора из N кодированных каналов кодированного битового потока) на совсем недавно обновленный каскад матриц (например, каскад самых последних интерполированных версий матриц , сгенерированных на этапе 113) и каждый полученный в результате набор из N линейно преобразованных дискретных значений подвергается перестановке каналов (эквивалентной умножению на матрицу перестановок), представленной блоком под названием «ChAssign3», для получения каждого набора из N дискретных значений восстановленной без потерь исходной 8-канальной программы. Для того чтобы выходной N-канальный звук был точно таким же, как и входной N-канальный звук (для достижения характеристики «без потерь» системы), матричные операции, выполняющиеся в кодере 100, должны быть точным (включая эффекты квантования) обращением матричных операций, выполняющихся в декодере 102 в отношении четвертого подпотока кодированного битового потока, (т.е. каждое умножение на этапе 109 декодера 102 на каскад матриц). Таким образом, на фиг. 6 матричные операции на этапе 103 кодера 100 идентифицируются в качестве каскада обратных матриц матриц в противоположной последовательности, применяющейся на этапе 109 декодера 102, а именно:  .
В некоторых реализациях подсистема 105 синтаксического разбора выполнена с возможностью извлечения контрольного слова из кодированного битового потока и этап 109 выполнен с возможностью проверки того, были ли правильно восстановлены N каналов (по меньшей мере одного сегмента многоканальной звуковой программы), восстановленные на этапе 109, посредством сравнения второго контрольного слова, полученного (например, на этапе 109) из дискретных значений аудиоданных, сгенерированных на этапе 109, с контрольным словом, извлеченным из кодированного битового потока.
На этапе «ChAssign3» декодера 102 осуществляется применение к выходному сигналу этапа 109 обращения перестановки каналов, применяющейся кодером 100 (т.е. матрица перестановок, представленная на этапе «ChAssign3» декодера 102, является обратной матрицей матрицы, представленной элементом «InvChAssign3» кодера 100).
В вариациях подсистем 100 и 102 системы, показанной на фиг. 6, пропущен один или несколько элементов или включены дополнительные блоки обработки аудиоданных.
0
n
0
n
0
1
8
8
6
6
2
2
Коэффициенты P , …, P (или P, …, P, или P и P) матрицы представления, передаваемые на этап 108 (или 107, или 106) декодера 100, являются метаданными (например, метаданными о положении в пространстве) кодированного битового потока, которые указывают на (или могут быть обработаны вместе с другими данными для указания на) относительный или абсолютный коэффициент усиления каждого канала динамика, который должен быть включен в понижающее микширование каналов исходного N-канального содержимого, кодированного кодером 100.
И напротив, конфигурация системы динамика воспроизведения, которая должна быть использована для представления полного набора каналов звуковой программы на основе объекта (которая без потерь восстанавливается декодером 102), как правило, неизвестна в момент времени, когда кодером 100 генерируется кодированный битовый поток. N каналов, без потерь восстановленные декодером 102, могут быть обработаны (например, в системе представления, включенной в декодер 102 (но не показанной на фиг. 6) или соединенной с декодером 102) вместе с другими данными (например, данными, указывающими на конфигурацию конкретной системы динамика воспроизведения) для определения, какой вклад каждый канал программы должен внести в микширование звукового содержимого (в каждый момент представленного микширования), указанного сигналом, подаваемым на динамик, для конкретного динамика системы воспроизведения. Такая система представления может обрабатывать метаданные о траектории в пространстве в (или связанные с) каждом восстановленном без потерь объектном канале для определения сигналов, подаваемых на динамик, для динамиков конкретной системы динамика воспроизведения, которая должна быть использована для воспроизведения восстановленного без потерь содержимого.
В некоторых вариантах осуществления кодера изобретения кодер оснащен (или генерирует) динамически изменяющейся спецификацией , которая определяет, как преобразовать все каналы N-канальной звуковой программы (например, звуковой программы на основе объекта) в набор из N кодированных каналов, и по меньшей мере одной динамически изменяющейся спецификацией понижающего микширования, которая определяет каждое понижающее микширование содержимого N кодированных каналов в M1-канальное представление (где M1 меньше, чем N, например, M1 = 2, или M1 = 8, если N больше 8). В некоторых вариантах осуществления работой кодера является упаковка кодированного звука и данных, указывающих на каждую такую динамически изменяющуюся спецификацию, в кодированный битовый поток, имеющий предопределенный формат (например, битовый поток TrueHD). Например, это может быть выполнено таким образом, что устаревший декодер (например, устаревший декодер TrueHD) сможет восстановить по меньшей мере одно представление понижающего микширования (имеющее M1 каналов), тогда как усовершенствованный декодер может быть использован для восстановления (без потерь) исходной N-канальной звуковой программы. С учетом динамически изменяющихся спецификаций кодер может предположить, что декодер будет определять интерполированные элементарные матрицы  из интерполированных значений (например, информации о начальной элементарной матрице и начальной дельта-матрице), включенных в кодированный битовый поток, который должен быть подан на декодер. Затем декодер выполняет интерполяцию для определения интерполированных элементарных матриц, которые обращают операции кодера, которые производят кодированное звуковое содержимое кодированного битового потока (например, для восстановления без потерь содержимого, которое было кодировано, посредством его подвергания матричным операциям в кодере). Факультативно, кодер может выбирать элементарные матрицы для более низких подпотоков (т.е. подпотоков, указывающих на понижающие микширования содержимого верхнего N-канального подпотока) в качестве неинтерполированных элементарных матриц (и включать последовательность наборов из таких неинтерполированных элементарных матриц в кодированный битовый поток), при этом также предполагая, что декодер будет определять интерполированные элементарные матрицы () для восстановления без потерь содержимого верхнего (N-канального) подпотока из интерполированных значений (например, информации о начальной элементарной матрице и начальной дельта-матрице), включенных в кодированный битовый поток, который должен быть подан на декодер.
Например, кодер (например, на этапе 44 кодера 40 или на этапе 103 кодера 100) может быть выполнен с возможностью выбора начальной элементарной матрицы и начальной дельта-матрицы (для использования вместе с функцией f(t) интерполяции) посредством дискретизации спецификации  в различные моменты t1, t2, t3, … времени (которые могут быть расположены близко друг к другу), получая соответствующие начальные элементарные матрицы (например, как в традиционном кодере TrueHD), а затем с возможностью вычисления скорости изменения отдельных элементов в начальных элементарных матрицах для вычисления значений интерполяции (например, информации о «коэффициенте дельта», указывающей на последовательность начальных дельта-матриц). Первый набор начальных элементарных матриц будет являться элементарными матрицами, полученными из спецификации для первого из таких моментов  времени. Возможно, что поднабор элементарных матриц может вообще не изменяться с течением времени, в случае чего декодер будет отвечать на соответствующую информацию управления в кодированном битовом потоке посредством обнуления любой соответствующей информации о коэффициенте дельта (т.е. для установки скорости изменения такого поднабора элементарных матриц, равной нулю).
0
1
0
1
n
0
1
n
0
1
n
2
2
6
6
6
8
8
8
6
6
6
Вариации показанного на фиг. 6 варианта осуществления кодера и декодера изобретения могут пропускать интерполяцию для некоторых (т.е. по меньшей мере одного) из подпотоков кодированного битового потока. Например, этапы 110, 111 и 112 интерполяции могут быть пропущены и соответствующие матрицы P, P и P, P, …P и P, P, …P могут быть обновлены (в кодированном битовом потоке) с достаточной частотой, так что интерполяция между моментами времени, в которые они обновляются, не является необходимой. В качестве еще одного примера, если матрицы P, P, …P обновляются с достаточной частотой, так что интерполяция в моменты времени между обновлениями не является необходимой, этап 111 интерполяции не является необходимым и может быть пропущен. Таким образом, традиционный декодер (не выполненный с возможностью выполнения интерполяции в соответствии с изобретением) может представлять 6-канальное представление понижающего микширования в ответ на кодированный битовый поток.
Как отмечено выше, динамические спецификации (например, A(t)) матрицы представления могут являться не только следствием необходимости представления звуковых программ на основе объекта, но также возникать вследствие необходимости реализовать защиту от усечения. Интерполированные элементарные матрицы могут обеспечить более быстрое повышения до или освобождения от защиты от усечения понижающего микширования, а также понижение скорости передачи данных, необходимой для передачи матричных коэффициентов.
Далее описан пример работы реализации показанной на фиг. 6 системы. В данном случае, N-канальная входная программа является трехканальной звуковой программой на основе объекта, включающей канал C платформы и два объектных канала U и V. Необходимо, чтобы программа была кодирована для передачи через поток TrueHD, имеющий два подпотока, так что 2-канальное понижающее микширование (представление программы в двухканальной настройке динамика) может быть извлечено с использованием первого подпотока и исходная 3-канальная входная программа может быть восстановлена без потерь с использованием обоих подпотоков.
Пусть уравнение представления (или уравнение понижающего микширования) из входной программы в 2-канальное микширование имеет вид:
,
где первый столбец соответствует коэффициентам усиления канала платформы (центрального канала C), который равномерно подается в каналы L и R. Второй и третий столбцы соответственно соответствуют объектному каналу U и объектному каналу V. Первая строка соответствует каналу L 2-канального понижающего микширования и вторая строка соответствует каналу R. Два объекта движутся в направлении друг к другу со скоростью, определенной следующим образом:
Мы исследуем матрицы представления в трех различных моментах t1, t2 и t3 времени. В данном примере мы предположим, что t1 = 0, т.е. . Другими словами, в момент времени t1 объект U полностью подается в канал R и объект V полностью микшируется с понижением в канал L. Поскольку объекты движутся в направлении друг к другу, их вклад в отдаленный динамик увеличивается. Для дальнейшего расширения примера, допустим, что , где T является длиной блока доступа (как правило, 0,8333 мс или 40 дискретных значений при частоте дискретизации 48 кГц). Таким образом, в момент времени t = 40T два объекта находятся в центре сцены. Далее мы рассмотрим моменты времени t2 = 15T и t3 = 30T, так что:
,
.
2
Рассмотрим разложение предоставленной спецификации A(t) на входную и выходную элементарные матрицы. Для простоты предположим, что матрицы  являются матрицами тождественности и «chAssign0» (в декодере 102) является назначением канала тождественности, т.е. равным тривиальной перестановке (матрицы тождественности).
Мы видим, что:
.
2
Первые две строки вышеизложенного произведения точно являются спецификацией A(t1). Другими словами, элементарные матрицы , ,  и назначение канала, указанное как «InvChAssign1(t1)», вместе приводят к преобразованию входного канала C, объекта U и объекта V в три внутренних канала, первые два из которых точно являются необходимыми понижающими микшированиями канала L и канала R. Таким образом, вышеизложенное разложение  на элементарные матрицы , ,  и назначение канала, указанное как «InvChAssign1(t1)», является правильным выбором входных элементарных матриц, если выходные элементарные матрицы и назначение канала для двухканального представления были выбраны в качестве матриц тождественности. Следует отметить, что входные элементарные матрицы являются обратимыми без потерь для извлечения канала C, объекта U и объекта V декодером, который применяется ко всем трем внутренним каналам. Однако двухканальному декодеру будут необходимы только внутренние каналы 1 и 2, и применение выходных элементарных матриц  и «chAssign0», все из которых в данном случае являются матрицами тождественности.
Подобным образом, мы можем идентифицировать:
,где первые две строки идентичны , и
где первые две строки идентичны .
Устаревший кодер TrueHD (который не реализует настоящее изобретение) может выбрать передачу (обращение) элементарных матриц, предназначенных выше для моментов времени t1, t2 и t3, т.е. . В данном случае спецификация в любой момент времени t между моментами времени t1 и t2 аппроксимируется спецификацией в  и между моментами времени t2 и t3 аппроксимируется .
В приведенном в качестве примера варианте осуществления показанной на фиг. 6 системы элементарная матрица  в момент времени t = t1, или t = t2, или t = t3 применяется к одному и тому же каналу (каналу 2), т.е. нетривиальная строка во всех трех случаях является второй строкой. Случай подобен  и . Также, элемент «InvChAssign1» в каждый из моментов времени является одинаковым.
Таким образом, для реализации кодирования посредством приведенного в качестве примера варианта осуществления кодера 100, показанного на фиг. 6, мы можем вычислить следующие дельта-матрицы:
и
.
В отличие от устаревшего кодера TrueHD, кодер TrueHD с возможностью интерполированных матричных операций (приведенный в качестве примера вариант осуществления кодера 100, показанного на фиг. 6) может выбрать отправку начальных (элементарных и дельта) матриц .
Элементарные матрицы и дельта-матрицы в любой промежуточный момент времени получаются посредством интерполяции. Полученные уравнения понижающего микширования в заданный момент времени t между моментами времени t1 и t2 могут быть получены в виде первых двух строк произведения:
и
между моментами времени t2 и t3 в виде
.
В приведенном выше описании матрицы  фактически не передаются, а получаются в виде элементарных матриц последней точки интерполяции с дельта-матрицами .
2
Таким образом, нам известны полученные уравнения понижающего микширования в каждый момент времени «t» для обоих вышеизложенных сценариев. Таким образом, мы можем вычислить несоответствие между приближением в заданный момент времени «t» и действительной спецификацией для данного момента времени. На фиг. 7 показан график суммы квадратичных ошибок между полученной спецификацией и действительной спецификацией в различные моменты времени t с использованием интерполяции элементарных матриц (кривая, обозначенная как «Интерполированные матричные операции») и кусочно-постоянных (неинтерполированных) элементарных матриц (кривая, обозначенная как «Неинтерполированные матричные операции»). На фиг. 7 видно, что интерполированные матричные операции приводят к получению спецификации A(t) со значительно большей точностью по сравнению с неинтерполированными матричными операциями в диапазоне от 0 до 600 секунд (t1 – t2). Для получения такого же уровня искажения с использованием неинтерполированных матричных операций может быть необходимо отправить обновления матриц в различные моменты времени между моментами времени t1 и t2.
Неинтерполированные матричные операции могут привести к полученному понижающему микшированию, которое ближе к действительной спецификации в некоторые промежуточные моменты времени (например, между 600 секундой и 900 секундой в показанном на фиг. 7 примере), но ошибка в неинтерполированных матричных операциях постоянно увеличивается с уменьшением времени до следующего обновления матрицы, тогда как ошибка, связанная с интерполированными матричными операциями, уменьшается ближе к моментам времени обновления (в данном случае в момент времени t3 = 30*T = 1200 с). Ошибка в интерполированных матричных операциях может быть дополнительно снижена посредством отправки еще одного обновления коэффициента дельта между моментами времени t2 и t3.
Различные варианты осуществления изобретения реализуют один или несколько из следующих признаков:
1) преобразование одного набора звуковых каналов в равное количество других звуковых каналов посредством применения последовательности элементарных матриц (предпочтительно, единичных элементарных матриц), где каждая из по меньшей мере нескольких элементарных матриц является интерполированной элементарной матрицей, вычисленной в качестве линейного сочетания (определенного в соответствии с функцией интерполяции) начальной элементарной матрицы и начальной дельта-матрицы, применяющихся к одному и тому же звуковому каналу. Коэффициент линейного сочетания определен фракцией интерполяции (т.е. каждый коэффициент интерполированной элементарной матрицы является линейным сочетанием A + f(t)B, где A является коэффициентом начальной элементарной матрицы, B является соответствующим коэффициентом начальной дельта-матрицы и f(t) является значением функции интерполяции в момент времени t, связанный с интерполированной элементарной матрицей). В некоторых случаях преобразование выполняется в отношении кодированного звукового содержимого кодированного битового потока для реализации восстановления без потерь звукового содержимого, которое было кодировано для генерирования кодированного битового потока;
2) преобразование в соответствии с вышеизложенным признаком 1, в котором применение интерполированной элементарной матрицы достигается посредством отдельного применения начальной элементарной матрицы и начальной дельта-матрицы к звуковым каналам, которые должны быть преобразованы, и линейного сочетания полученных в результате дискретных значений аудиоданных (например, умножения матриц на начальную элементарную матрицу выполняются одновременно с умножениями матриц на начальную дельта-матрицу, как в случае показанной на фиг. 4 схемы);
3) преобразование в соответствии с вышеизложенным признаком 1, в котором коэффициент интерполяции сохраняется по существу постоянным в течение нескольких интервалов (например, коротких интервалов) дискретных значений кодированного битового потока и самая последняя начальная элементарная матрица обновляется (посредством интерполяции) только во время интервалов, во время которых изменяется коэффициент интерполяции (например, для снижения сложности обработки в декодере);
4) преобразование в соответствии с вышеизложенным признаком 1, в котором интерполированные элементарные матрицы являются единичными элементарными матрицами. В данном случае, умножение на каскад единичных элементарных матриц (в кодере) с последующим умножением (в декодере) на каскад их обратных матриц может быть реализовано без потерь посредством обработки с ограниченной точностью;
5) преобразование в соответствии с вышеизложенным признаком 1, в котором преобразование выполняется в аудио декодере, который извлекает кодированные звуковые каналы и начальные матрицы из кодированного битового потока, при этом декодер предпочтительно выполнен с возможностью проверки того, был ли правильно определен декодированный (после матричных операций) звук, посредством сравнивания контрольного слова, полученного из звука после матричных операций, с контрольным словом, извлеченным из кодированного битового потока;
6) преобразование в соответствии с вышеизложенным признаком 1, в котором преобразование выполняется в декодере системы кодирования звука без потерь, которая извлекает кодированные звуковые каналы и начальные матрицы из кодированного битового потока, при этом кодированные звуковые каналы были сгенерированы соответствующим кодером, который применяет обратные элементарные матрицы без потерь к входному звуку, следовательно, без потерь кодируя входной звук в битовый поток;
7) преобразование в соответствии с вышеизложенным признаком 1, в котором преобразование выполняется в декодере, который умножает полученные кодированные каналы на каскад элементарных матриц, и только поднабор элементарных матриц определяется посредством интерполяции (т.е. обновленные версии других элементарных матриц могут время от времени подаваться на декодер, но декодер не выполняет интерполяцию для их обновления);
8) преобразование в соответствии с вышеизложенным признаком 1, в котором начальные элементарные матрицы, начальные дельта-матрицы и функция интерполяции выбраны таким образом, что поднабор кодированных каналов, созданный кодером, может быть преобразован посредством матричных операций, выполняющихся (с использованием матриц и функции интерполяции) декодером для получения конкретных понижающих микширований исходного звука, кодированного кодером;
9) преобразование в соответствии с вышеизложенным признаком 8, в котором исходный звук является звуковой программой на основе объекта и конкретные понижающие микширования соответствуют представлению каналов программы в статическом расположении динамиков (например, стерео, или каналы 5.1, или каналы 7.1);
10) преобразование в соответствии с вышеизложенным признаком 9, в котором звуковые объекты, указанные программой, являются динамическими, так что спецификации понижающего микширования в отношении конкретного статического расположения динамиков изменяются мгновенно, при этом мгновенное изменение согласовывается посредством выполнения интерполированных матричных операций в отношении кодированных звуковых каналов для создания представления понижающего микширования;
11) преобразование в соответствии с вышеизложенным признаком 1, в котором декодер с возможностью интерполяции (выполненный с возможностью выполнения интерполяции в соответствии с вариантом осуществления изобретения) также способен декодировать подпотоки кодированного битового потока в соответствии с устаревшим синтаксисом, который не включает выполнение интерполяции, для определения любой интерполированной матрицы;
12) преобразование в соответствии с вышеизложенным признаком 1, в котором элементарные матрицы предназначены для использования межканальной корреляции для достижения лучшего сжатия; и
13) преобразование в соответствии с вышеизложенным признаком 1, в котором интерполированная матричная операция используется для получения динамических спецификаций понижающего микширования, предназначенных для защиты от усечения.
Учитывая, что матрицы понижающего микширования, сгенерированные с использованием интерполяции в соответствии с вариантом осуществления изобретения (для восстановления представлений понижающего микширования из кодированного битового потока), как правило, постоянно меняются, если исходный звук является звуковой программой на основе объекта, начальные элементарные матрицы, использующиеся (т.е. включенные в кодированный битовый поток) в типичных вариантах осуществления изобретения, как правило, должны часто обновляться для восстановления данных представлений понижающего микширования.
Если начальные элементарные матрицы часто обновляются для более точного соответствия постоянно изменяющейся спецификации матрицы, кодированный битовый поток, как правило, включает данные, указывающие на последовательность каскадов наборов начальных элементарных матриц , ,  и так далее. Это позволяет декодеру восстанавливать указанный каскад матриц в каждый из моментов t1, t2, t3, … времени обновления. Поскольку матрицы представления, указанные в системах для представления звуковых программ на основе объекта, как правило, постоянно изменяются во времени, каждая начальная элементарная матрица (в последовательности каскадов начальных элементарных матриц, включенных в кодированный битовый поток) может иметь такую же конфигурацию элементарной матрицы (по меньшей мере в интервале программы). Коэффициенты в элементарных матрицах могут сами изменяться во времени, но конфигурация матрицы не меняется (или не меняется так часто, как коэффициенты). Конфигурация матрицы для каждого каскада может быть определена данными параметрами в качестве:
1) количества элементарных матриц в каскаде,
2) порядка каналов, которыми они управляют,
3) порядка величины их коэффициентов,
4) разрешающей способности (в битах), необходимой для представления коэффициентов, и
5) и положений коэффициентов, которые тождественно равны нулю.
Параметры, которые указывают на такую конфигурацию элементарной матрицы, могут оставаться неизменными в течение интервала многих обновлений начальных матриц. Один или несколько таких параметров должны быть переданы через кодированный битовый поток на декодер, чтобы декодер работал необходимым образом. Поскольку данные параметры конфигурации могут не изменяться так же часто, как и сами обновления элементарных матриц, в некоторых вариантах осуществления синтаксис кодированного битового потока независимо определяет, были ли переданы параметры конфигурации матрицы совместно с обновлением коэффициентов матрицы набора начальных матриц. И напротив, в традиционном TrueHD обновления матриц кодирования (указанные кодированным битовым потоком) обязательно сопровождаются обновлениями конфигурации. В рассмотренных вариантах осуществления изобретения декодер сохраняет и использует последнюю полученную информацию о конфигурации матрицы, если обновление принимается только для коэффициентов матрицы (т.е. без обновления конфигурации матрицы).
Несмотря на то что предполагается, что интерполированные матричные операции, как правило, позволят низкую скорость обновления начальной матрицы, ожидается, что рассмотренные варианты осуществления (в которых обновление конфигурации матрицы может или не может сопровождать каждое обновление начальной матрицы) будут эффективно передавать информацию о конфигурации, а также снизят битовую скорость передачи данных, необходимую для обновления матриц представления. В рассмотренных вариантах осуществления параметры конфигурации могут включать параметры, относящиеся к каждой начальной элементарной матрице, и/или параметры, относящиеся к переданным дельта-матрицам.
Для минимизации общей битовой скорости передачи данных кодер может реализовать оптимальное отношение между обновлением конфигурации матрицы и затратой еще нескольких битов на обновления коэффициента матрицы, при этом сохраняя конфигурацию матрицы неизменной.
Интерполированные матричные операции могут быть получены посредством передачи информации об угловом коэффициенте для перемещения из одной элементарной матрицы для кодированного канала в другую, которая применяется к тому же каналу. Угловой коэффициент может быть передан в качестве скорости изменения коэффициентов матрицы на блок («AU») доступа. Если m1 и m2 являются коэффициентами элементарной матрицы для моментов времени, которые являются отдельными K блоками доступа, тогда угловой коэффициент для интерполяции из m1 в m2 может быть определен в качестве коэффициента дельта = (m2 – m1)/K.
Если коэффициенты m1 и m2 содержат биты, имеющие следующий формат: m1 = a.bcdefg и m2 = a.bcuvwx, где оба коэффициента определены конкретным количеством (которое может быть обозначено как «frac_bits») битов точности, тогда «коэффициент дельта» углового коэффициента будет указан значением в виде 0,0000mnop (при этом необходима большая точность и дополнительные ведущие нули вследствие спецификации коэффициентов дельта на основе принципа «на AU»). Дополнительная точность, необходимая для представления «коэффициента дельта» углового коэффициента, может быть определена как «delta_precision». Если вариант осуществления изобретения включает этап включения каждого значения коэффициента дельта непосредственно в кодированный битовый поток, тогда кодированный битовый поток должен будет включать значения, имеющие количество битов «B», которые удовлетворяют следующее выражение: B = frac_bits + delta_precision. Очевидно, что передача ведущих нулей после десятичного знака является неэффективной. Таким образом, в некоторых вариантах осуществления в кодированный битовый поток (который подается на декодер) кодируется нормированный коэффициент дельта (целое число), имеющий следующий вид: mnopqr, который представлен как «delta_bits» плюс один знаковый бит. Значения delta_bits и delta_precision могут быть переданы в кодированном битовом потоке в качестве части информации о конфигурации для дельта-матриц. В данных вариантах осуществления декодер выполнен с возможностью получения необходимого коэффициента дельта в данном случае в следующем виде:
- ( frac_bits + delta_precision)
коэффициент дельта = (нормированный коэффициент дельта в битовом потоке)*2.
Таким образом, в некоторых вариантах осуществления значения интерполяции, включенные в кодированный битовый поток, включают значения нормированного коэффициента дельта, имеющие Y битов точности (где Y = frac_bits), и значения точности. Значения нормированного коэффициента дельта указывают на нормированные версии значений коэффициента дельта, при этом значения коэффициента дельта указывают на скорости изменения коэффициентов элементарных матриц, каждый из коэффициентов элементарных матриц имеет Y битов точности, и значения точности указывают на увеличение точности (т.е. «delta_precision»), необходимой для представления значений коэффициента дельта, относительно точности, необходимой для представления коэффициентов элементарных матриц. Значения коэффициента дельта могут быть получены посредством масштабирования значений нормированного коэффициента дельта на коэффициент масштабирования, который зависит от разрешающей способности коэффициентов элементарных матриц и значений точности.
Варианты осуществления изобретения могут быть реализованы в аппаратном обеспечении, программно-аппаратном обеспечении или программном обеспечении или их сочетании (например, в качестве программируемой логической матрицы). Например, кодер 40 или 100, или декодер 42 или 102, или подсистемы 47, 48, 60 и 61 декодера 42, или подсистемы 110-113 и 106-109 декодера 102 могут быть реализованы в соответствующим образом запрограммированном (или иным образом выполненном) аппаратном обеспечении или программно-аппаратном обеспечении, например, в качестве запрограммированного процессора общего назначения, процессора цифровой обработки сигналов или микропроцессора. Если не указано иное, алгоритмы или процессы, включенные в качестве части изобретения, по существу не относятся к какому-либо конкретному компьютеру или другому устройству. В частности, различные машины общего назначения могут быть использованы вместе с программами, написанными в соответствии с идеями в данном документе, или удобнее может быть сконструировать более специализированное устройство (например, интегральные схемы) для выполнения необходимых этапов способа. Таким образом, изобретение может быть реализовано в одной или нескольких компьютерных программах, исполняющихся на одной или нескольких программируемых компьютерных системах (например, компьютерной системе, которая реализует кодер 40 или 100, или декодер 42 или 102, или подсистему 47, 48, 60 и/или 61 декодера 42, или подсистемы 110-113 и 106-109 декодера 102), каждая из которых включает по меньшей мере один процессор, по меньшей мере одну систему хранения данных (включая энергозависимую и энергонезависимую память и/или элементы запоминающего устройства), по меньшей мере одно устройство или порт ввода и по меньшей мере одно устройство или порт вывода. Программный код применяется к входным данным для выполнения функций, описанных в данном документе, и генерирования выходной информации. Выходная информация известным способом применяется к одному или более устройствам вывода.
Каждая такая программа может быть реализована на любом необходимом языке программирования (включая машинный язык, язык ассемблера, высокоуровневый процедурный язык, логический язык или объектно-ориентированный язык программирования) для установки связи с компьютерной системой. В любом случае язык может являться компилируемым или интерпретируемым языком.
Например, при реализации посредством последовательностей компьютерных программных команд, различные функции и этапы вариантов осуществления изобретения могут быть реализованы многопотоковыми последовательностями программных команд, запущенными на подходящем аппаратном обеспечении цифровой обработки сигналов, в случае чего различные устройства, этапы и функции вариантов осуществления могут соответствовать частям программных команд.
Каждая такая компьютерная программа предпочтительно сохраняется на или загружается на носители данных или запоминающее устройство (например, твердотельную память или носители, или магнитные или оптические носители), считываемое программируемым компьютером общего или специального назначения, для настройки и работы компьютера при чтении носителей данных или запоминающего устройства компьютерной системой для выполнения процедур, описанных в данном документе. Система изобретения может быть также реализована в качестве машиночитаемого носителя данных, оснащенного (т.е. содержащего) компьютерной программой, при этом оснащенный таким образом носитель данных вынуждает компьютерную систему работать указанным и предопределенным образом для выполнения функций, описанных в данном документе.
Несмотря на то что реализации были описаны в качестве примера и с точки зрения приведенных в качестве примера конкретных вариантов осуществления, следует понимать, что реализации изобретения не ограничены раскрытыми вариантами осуществления. Наоборот, они предназначаются для охвата различных модификаций и подобных схем, что должно быть очевидно специалистам в данной области техники. Таким образом, объем прилагаемой формулы изобретения должен соответствовать самому широкому толкованию, с тем чтобы он охватывал все такие модификации и подобные схемы.