ПЕРЕКОДИРОВКА МЕТАДАННЫХ
METADATA CONVERSION

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Эта заявка заявляет приоритет предварительной заявки на патент США №61/754893, поданной 21 января 2013 г., которая ссылкой полностью включается в настоящий документ.
ОБЛАСТЬ ТЕХНИЧЕСКОГО ПРИМЕНЕНИЯ
Настоящий документ относится к перекодировке метаданных. В частности, настоящий документ относится к способу и системе для перекодировки метаданных с пониженной вычислительной сложностью.
ПРЕДПОСЫЛКИ
В настоящее время в употреблении находятся различные одноканальные и/или многоканальные системы представления звука, такие, как многоканальные системы представления звука 5.1, 7.1 или 9.1. Эти системы представления звука делают возможным, например, генерирование окружающего звука, исходящего, соответственно, из 5+1, 7+1 или 9+1 местоположений громкоговорителей. Для эффективной передачи или для эффективного хранения соответствующих одноканальных или многоканальных звуковых сигналов используют такие системы аудиокодеков (кодер/декодер), как Dolby Digital (DD) или Dolby Digital Plus (DD+).
Может существовать значительная установленная база устройств представления звука, выполненных с возможностью декодирования звуковых сигналов, которые были закодированы с использованием конкретной системы аудиокодека (например, Dolby Digital). Эту конкретную систему аудиокодека можно именовать, например, вторым аудиокодеком. С другой стороны, развитие систем аудиокодеков может приводить к обновленной системе аудиокодека (например, Dolby Digital Plus), которую можно именовать, например, первой системой аудиокодека. Эта обновленная система аудиокодека может предусматривать дополнительные характерные признаки (например, увеличенное количество каналов) и/или повышенное качество кодирования. Таким образом, поставщики содержимого могут быть склонны к доставке ими содержимого в соответствии с обновленной системой аудиокодека.
Тем не менее пользователь, имеющий устройство представления звука с декодером второй системы аудиокодека, должен по-прежнему иметь возможность представлять звуковое содержимое, которое было закодировано в соответствии с первой системой аудиокодека. Этого можно достичь посредством так называемого преобразователя кода, или конвертора, выполненного с возможностью преобразования звукового содержимого, закодированного в соответствии с первой системой аудиокодека, в модифицированное звуковое содержимое, закодированное в соответствии со второй системой аудиокодека.
Дальнейшая потребность в перекодировке может возникать на всем протяжении цепочки распространения звукового содержимого. Звуковое содержимое может быть закодировано поставщиком содержимого с использованием аудиокодека, хорошо подходящего для изготовления и трансляции звукового содержимого (например, аудиокодека Dolby Е). Звуковое содержимое может распространяться с использованием этого аудиокодека, ориентированного на производство, и звуковое содержимое может быть перекодировано в соответствии со вторым аудиокодеком (таким, как кодек без потерь Dolby TrueHD, или таким, как кодек Dolby Digital Plus или Dolby Digital).
Звуковое содержимое, как правило, ассоциировано с метаданными, которые закодированы в битовом потоке, представляющем это звуковое содержимое. Обычно звуковое содержимое разбивают на последовательность кадров, где каждый кадр звукового содержимого содержит предварительно определенное количество дискретных значений (например, 1024 дискретных значений). Кадр из последовательности кадров может быть ассоциирован с соответствующим контейнером, или кадром, метаданных. Этот контейнер метаданных может служить признаком информации, описывающей кадр звукового содержимого, с которым ассоциирован этот контейнер. Одним из примеров такой информации, описывающей кадр, могут быть данные громкости, относящиеся к некоторым или ко всем дискретным значениям кадра. В качестве альтернативы или в дополнение, контейнер метаданных можно использовать для передачи вспомогательных данных, которые могут не быть непосредственно ассоциированными с соответствующим кадром звукового содержимого. Такие вспомогательные данные могут, например, быть использованы для снабжения декодера системы аудиокодека обновлением программно-аппаратного обеспечения.
В дополнение к перекодировке звукового содержимого от первой системы аудиокодека ко второй системе аудиокодека, преобразователю кода, как правило, также необходимо перекодировать эти ассоциированные метаданные. Для того чтобы уменьшать себестоимость преобразователей кода/конверторов (реализуемых, например, в телевизионных приставках), вычислительная сложность преобразования между первой системой аудиокодека и второй системой аудиокодека должна быть относительно низкой. Это также может иметь место при перекодировке метаданных. В настоящем документе описываются способы и системы для перекодировки, делающие возможной перекодировку метаданных с пониженной вычислительной сложностью.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии с одной из особенностей описывается преобразователь кода, выполненный с возможностью перекодировки входящего битового потока в исходящий битовый поток. Указанный входящий битовый поток может содержать входящий кадр содержимого и ассоциированный входящий кадр метаданных. Этот ассоциированный входящий кадр метаданных может содержаться во входящем битовом потоке как непосредственно следующий или непосредственно предшествующий входящему кадру содержимого. По существу, термин «ассоциированный» может указывать временную взаимосвязь между кадром содержимого и кадром метаданных (например, этот термин может указывать, что кадр содержимого непосредственно предшествует кадру метаданных или наоборот). Следует отметить, что в некоторых вариантах осуществления ассоциированный входящий кадр метаданных может содержаться внутри входящего кадра содержимого. Кадр содержимого, как правило, содержит первый элемент (например, поле синхронизации) и последний элемент (например, поле исправления ошибок, такое, как поле CRC). Ассоциированный кадр метаданных может быть расположен в одном из полей кадра содержимого, расположенном после первого элемента кадра содержимого и перед последним элементом кадра содержимого (например, в поле вспомогательных данных кадра содержимого).
Кадр метаданных также может представлять собой так называемый кадр развития. Как правило, входящий битовый поток содержит последовательность входящих кадров содержимого и ассоциированную последовательность входящих кадров метаданных. Входящие кадры метаданных, как правило, чередуются с входящими кадрами содержимого так, чтобы за отдельным входящим кадром содержимого непосредственно следовал ассоциированный с ним кадр метаданных. Аналогично входящему битовому потоку (также именуемому кодированным входящим битовым потоком), исходящий битовый поток (или кодированный исходящий битовый поток) может содержать исходящий кадр содержимого и ассоциированный исходящий кадр метаданных. В частности, исходящий битовый поток может содержать последовательность исходящих кадров содержимого и последовательность исходящих кадров метаданных, которые чередуются.
Кадры содержимого могут служить признаками сигнала, кодированного в соответствии с конкретной схемой кодека. В частности, входящий кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека, а исходящий кадр содержимого может служить признаком сигнала, кодированного в соответствии со второй системой кодека. Первая и вторая системы аудиокодеков могут быть одинаковыми (и в этом случае преобразователь кода может быть выполнен с возможностью преобразования битовой скорости передачи данных), или первая и вторая системы аудиокодеков могут отличаться (и в этом случае преобразователь кода может быть выполнен с возможностью обеспечения преобразования кодека). Сигнал может включать звуковой сигнал. Примерами первой и второй систем кодеков являются Dolby Е, Dolby Digital Plus, Dolby Digital, Dolby TrueHD, Dolby Pulse, AAC (Перспективное звуковое кодирование) и/или НЕ-ААС (высокоэффективный ААС). В случае различных первой и второй систем аудиокодеков, преобразователь кода может быть выполнен с возможностью перекодировки содержимого сигнала из первой системы кодека во вторую систему кодека. В качестве альтернативы или в дополнение, битовая скорость передачи данных исходящего битового потока может отличаться от битовой скорости передачи данных входящего битового потока, и преобразователь кода может быть выполнен с возможностью выполнения перекодировки содержимого кодированного сигнала от первой битовой скорости передачи данных ко второй (отличающейся) битовой скорости передачи данных.
Сигнал, как правило, представлен как последовательность кадров, содержащая предварительно определенное количество дискретных значений сигнала (например, 512 или 1024 дискретных значений сигнала). Как таковой, входящий кадр содержимого может служить признаком некоторых или всех дискретных значений из кадра сигнала. Исходящий кадр содержимого может служить признаком некоторых или всех дискретных значений того же самого кадра сигнала. Как таковой, преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра содержимого, служащего признаком, по меньшей мере, некоторых дискретных значений из соответствующего входящего кадра содержимого.
Для перекодировки входящего битового потока в исходящий битовый поток преобразователь кода может содержать декодер, выполненный с возможностью декодирования входящего битового потока в соответствии с первой системой кодека. В результате декодирования декодер может создавать для каждого кадра содержимого набор дискретных значений РСМ. Кроме того, декодер может быть выполнен с возможностью извлечения метаданных из кадров метаданных. Декодированный входящий битовый поток (например, наборы дискретных значений РСМ и извлеченные метаданные) может быть доставлен в кодер, выполненный с возможностью кодирования сигнала в соответствии со второй системой кодека, посредством чего создается исходящий битовый поток. Как таковой, преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра содержимого из входящего кадра содержимого с использованием декодера первой системы кодека и кодера второй системы кодека. Преобразователь кода может содержать так называемый преобразователь кода, связанный с РСМ, где декодер передает дискретные значения РСМ в кодер преобразователя кода. Как таковой, преобразователь кода, описываемый в настоящем документе, может содержать характерные признаки, описываемые в контексте преобразователя кода, связанного с РСМ.
Следует отметить, что кадр содержимого также может служить признаком метаданных в соответствии с лежащей в его основе системой кодека. Иными словами, кадр содержимого может содержать метаданные, связанные с сигналом, заключенные в кадре содержимого, причем эти метаданные, заключенные в кадре содержимого, определяются лежащей в его основе системой кодека (т.е. первой или второй системой кодека). В отличие от этого, кадры метаданных допускают передачу дополнительных метаданных (в дополнение к метаданным, заданным системами кодеков). Примерами таких метаданных являются параметры громкости или dialnorm, или такие вспомогательные данные, как обновления аппаратно-программного обеспечения для декодера в цепочке распространения звукового содержимого.
Кадры метаданных могут следовать предварительно определенному синтаксису.
В частности, входящий кадр метаданных и исходящий кадр метаданных могут следовать общему синтаксису. Синтаксис для кадров метаданных может позволять кадру метаданных содержать нуль, один или несколько блоков метаданных. Каждый блок метаданных может содержать метаданные отдельного типа.
Как таковой, кадр метаданных может иметь переменный размер, зависящий от количества метаданных и/или количества блоков метаданных, введенных в состав кадра метаданных. Каждый блок метаданных может служить признаком (или может его содержать) соответствующего описателя, служащего признаком одного или нескольких свойств метаданных, заключенных в соответствующем блоке метаданных. В частности, описатель может описывать свойства, служащие признаком того, каким образом можно или следует управлять метаданными из блока. Как таковой, описатель блока может быть использован преобразователем кода для перекодировки блока (блоков), заключенного во входящем кадре метаданных, вычислительно эффективным образом.
Для перекодировки кадра метаданных преобразователь кода может быть выполнен с возможностью идентификации входящего блока метаданных из входящего кадра метаданных. Входящий блок можно идентифицировать, используя идентификатор блока. Например, с использованием идентификатора блока может быть идентифицирован каждый блок метаданных. Кроме того, кадр метаданных может содержать особый идентификатор блока, служащий признаком того, что этот кадр метаданных не содержит какие-либо дальнейшие блоки (именуется, например, конечным идентификатором). Конечный идентификатор может быть использован преобразователем кода для определения того, что кадр метаданных не содержит какие-либо дальнейшие блоки метаданных.
Как было указано выше, входящий блок метаданных может быть связан с описателем, именуемым входящим описателем. Входящий описатель может служить признаком одного или нескольких свойств метаданных, заключенных во входящем блоке метаданных. Этот описатель может быть вписан в поле данных блока метаданных. Одним из примеров свойств, заключенных в описателе, является параметр отметки времени, служащий признаком одного из дискретных значений сигнала. В частности, параметр отметки времени может указывать, что метаданные данного входящего блока ассоциированы с дискретным значением сигнала (например, подлежат применению к нему), что идентифицируется параметром отметки времени. Параметр отметки времени может идентифицировать дискретное значение путем указания положения дискретного значения в кадре содержимого относительно конца или относительно начала этого кадра содержимого. Одним из дальнейших примеров является параметр длительности, служащий признаком количества дискретных значений сигнала. Параметр длительности может указывать, что метаданные входящего блока ассоциированы с количеством дискретных значений сигнала, указываемым параметром длительности (начиная от дискретного значения, указываемого параметром отметки времени). В частности, параметр длительности может указывать, что метаданные подлежат применению к некоторому количеству дискретных значений, следующих за дискретным значением, указываемым параметром отметки времени, причем это количество дискретных значений указывается параметром длительности. Параметры отметки времени и/или длительности можно использовать, например, для указания того, для каких дискретных значений сигнала, закодированного в ассоциированном входящем кадре содержимого, могут быть применимы метаданные (например, значение громкости) входящего блока. Для примера, входящий кадр метаданных может содержать ряд входящих блоков, служащих признаками разных значений громкости для разных групп дискретных значений сигнала, закодированного во входящем кадре содержимого.
Другим примером свойства, указываемого (например, заключенного) в описателе, является параметр перекодировки, служащий признаком того, следует ли перекодировать входящий блок в исходящий битовый поток. Для примера, параметр перекодировки можно использовать для указания того, что метаданные, заключенные во входящем блоке, применимы только к первой системе кодека. Таким образом, преобразователь кода может быть выполнен с возможностью отбрасывания метаданных, заключенных во входящем блоке, если исходящий битовый поток кодируется в соответствии со второй системой кодека, отличающейся от первой системы кодека.
Одним из дальнейших примеров свойства, заключенного в описателе, является параметр дупликации, служащий признаком того, следует ли включать метаданные входящего блока в каждый исходящий кадр метаданных, генерируемый из входящего кадра метаданных. Аналогичным образом, в качестве свойства, служащего признаком того, следует ли преобразователю кода отвергать метаданные из входящего блока, если исходящий кадр метаданных генерируется из ряда входящих кадров метаданных, можно использовать параметр дедупликации. Параметры дупликации и/или дедупликации могут быть использованы преобразователем кода в ситуациях, когда кадрирование входящего и исходящего битовых потоков отличается.
Одним из дальнейших примеров свойства является параметр приоритета, служащий признаком важности метаданных из входящего блока относительно одного или нескольких других входящих блоков метаданных. Параметр приоритета может быть использован преобразователем кода в ситуациях, когда в исходящий битовый поток можно вставить лишь ограниченное количество метаданных по сравнению с входящим битовым потоком. Другим примером свойства является параметр ассоциации, служащий признаком того, можно ли вставить метаданные из входящего блока в более поздний исходящий кадр метаданных, следующий за исходящим кадром метаданных. Как таковой, параметр ассоциации обеспечивает преобразователь кода дополнительной гибкостью в процессе перекодировки, так как преобразователь кода может эффективным образом принимать решение о том, какие входящие блоки могут быть задержаны, и о том, какие входящие блоки придется сохранить в ассоциации с ассоциированными кадрами содержимого.
Другим примером свойства является параметр обработки РСМ, служащий признаком того, следует ли преобразователю кода отвергнуть входящий блок при условии модификации данных, заключенных во входящем кадре содержимого. В частности, параметр обработки РСМ может указывать преобразователю кода, что метаданные из входящего блока следует включить в исходящий кадр метаданных, даже если данные из входящего кадра содержимого (например, дискретные значения сигнала, заключенные во входящем кадре содержимого) были модифицированы. Это может иметь место, например, тогда, когда входящий блок содержит такую полезную нагрузку, как двоичные данные, или такую, как дополнительный битовый поток, не относящийся к данным, заключенным во входящем кадре содержимого. Параметр обработки РСМ является особенно значимым для так называемых преобразователей кода, связанных с РСМ.
Предпочтительный входящий описатель содержит, по меньшей мере, указатель того, заключен ли в этом описателе параметр отметки времени и/или параметр длительности. Кроме того, предпочтительный входящий описатель содержит параметры дупликации и дедупликации.
Преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из входящего кадра метаданных на основе входящего описателя. В частности, преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из входящего кадра метаданных только на основе одного или нескольких свойств, указываемых входящим описателем. В еще более частном случае, преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из входящего кадра метаданных без анализа метаданных, заключенных во входящем блоке. Таким образом, преобразователь кода может выполнять перекодировку метаданных, заключенных в кадре метаданных, исключительно на основе описателей блоков метаданных, без необходимости в анализе и/или интерпретации метаданных, переносимых блоками метаданных. В результате это приводит к преобразователю кода, обладающему значительно пониженной вычислительной сложностью.
Преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из входящего кадра метаданных путем копирования метаданных из одного или нескольких входящих блоков входящего кадра метаданных в соответствующий один или несколько исходящих блоков. Указанный один или несколько исходящих блоков могут быть вставлены в исходящий кадр метаданных. Копирование и вставка могут подвергаться действию одного или нескольких свойств, указанных входящим описателем (описателями) из одного или нескольких входящих блоков. Для примера, параметр ассоциации может указывать преобразователю кода, что конкретный входящий блок следует вставить в исходящий кадр метаданных. С другой стороны, этот параметр преобразователя кода может указывать преобразователю кода, что данный конкретный входящий блок следует отбросить, если вторая система кодека отличается от первой системы кодека.
Преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных путем генерирования исходящего описателя исходящего блока на основе входящего описателя из входящего блока. В частности, этот исходящий описатель может содержать или может служить признаком некоторых или всех свойств, указываемых входящим описателем. Некоторые или все свойства входящего описателя можно скопировать в исходящий описатель. С другой стороны, преобразователь кода может быть выполнен с возможностью модификации одного или нескольких свойств, указываемых входящим описателем, для генерирования исходящего описателя, при этом исходящий описатель служит признаком одного или нескольких модифицированных свойств. Для примера, входящий описатель может служить признаком параметра отметки времени. Этот параметр отметки времени может быть модифицирован преобразователем кода так, чтобы модифицированный параметр отметки времени указывал то же дискретное значение сигнала, что и исходный параметр отметки времени, даже если преобразователь кода мог выполнить изменение кадрирования исходящего битового потока по отношению к входящему битовому потоку.
Как было указано выше, одно или несколько свойств входящего описателя могут содержать параметр отметки времени, служащий признаком дискретного значения сигнала, с которым ассоциированы метаданные входящего блока. Параметр отметки времени во входящем описателе, как правило, указывает дискретное значение сигнала относительно входящего кадра содержимого. Преобразователь кода может быть выполнен с возможностью генерирования исходящего блока из входящего блока. Кроме того, преобразователь кода может быть выполнен с возможностью генерирования исходящего описателя исходящего блока путем модификации параметра отметки времени из входящего описателя так, чтобы соответствующий параметр отметки времени исходящего описателя указывал дискретное значение сигнала относительно исходящего кадра содержимого (который может иметь иное кадрирование, чем входящий кадр содержимого). Таким образом, преобразователь кода может быть выполнен с возможностью обеспечения того, что одно или несколько свойств, указываемых входящим описателем, оставались имеющими силу даже тогда, когда входящий битовый поток был подвергнут изменению кадрирования.
Преобразователь кода может быть выполнен с возможностью вставки исходящего блока (генерируемого из входящего блока входящего кадра метаданных) в более поздний исходящий кадр метаданных. Для примера, параметр ассоциации входящего описателя может указывать преобразователю кода, что входящий блок может быть задержан. Преобразователь кода может выбрать вставку метаданных в более поздний исходящий кадр метаданных (например, по причине ограниченной битовой скорости передачи данных во втором битовом потоке). Этот более поздний исходящий кадр метаданных может быть ассоциирован с более поздним исходящим кадром содержимого, не содержащим дискретное значение сигнала, указываемое параметром отметки времени из входящего блока. Для того чтобы обеспечить то, чтобы параметр отметки времени исходящего блока тем не менее идентифицировал верное дискретное значение сигнала, преобразователь кода может быть выполнен с возможностью генерирования исходящего описателя исходящего блока путем модификации параметра отметки времени во входящем блоке так, чтобы параметр отметки времени исходящего описателя указывал дискретное значение сигнала относительно более позднего исходящего кадра содержимого. Для примера, модифицированный параметр отметки времени может указывать номер дискретного значения, превышающий количество дискретных значений более позднего кадра содержимого, посредством этого указывая, что это дискретное значение сигнала лежит за пределами этого более позднего кадра содержимого.
Как было указано выше, одно или несколько свойств входящего описателя может включать параметр дупликации, служащий признаком того, следует ли включать метаданные соответствующего входящего блока в каждый исходящий кадр метаданных, генерируемый из этого входящего кадра метаданных. Преобразователь кода может быть выполнен с возможностью генерирования ряда исходящих кадров метаданных из входящего кадра метаданных с учетом параметра дупликации. В частности, преобразователь кода может быть выполнен с возможностью определения того, что параметр дупликации указывает, что метаданные из входящего блока следует включить в каждый исходящий кадр метаданных, генерируемый из этого входящего кадра метаданных. В таком случае, преобразователь кода может быть выполнен с возможностью вставки входящего блока и каждого кадра из ряда исходящих кадров метаданных. В частности, преобразователь кода может быть выполнен с возможностью генерирования исходящего блока из входящего блока для каждого кадра из ряда исходящих кадров метаданных. В дополнение к генерированию ряда исходящих кадров метаданных, преобразователь кода может быть выполнен с возможностью генерирования ряда исходящих кадров содержимого из входящего кадра содержимого, причем этот ряд исходящих кадров содержимого может быть, соответственно, ассоциирован с рядом исходящих кадров метаданных.
Параметр дупликации может содержать флаг, который можно установить для указания того, что метаданные во входящем блоке следует включить в каждый исходящий кадр метаданных, генерируемый из входящего кадра метаданных, или наоборот (т.е. флаг может быть установлен, чтобы вместо этого указывать противоположное).
Как было указано выше, одно или несколько свойств входящего описателя может включать параметр дедупликации, служащий признаком того, могут ли метаданные из входящего блока быть отвергнуты преобразователем кода, если исходящий кадр метаданных генерируется из ряда входящих кадров метаданных. Преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из ряда входящих кадров метаданных входящего битового потока с учетом параметра дедупликации. В частности, ряд входящих кадров метаданных может содержать ряд входящих блоков метаданных, при этом каждый входящий блок является ассоциированным с соответствующим параметром дедупликации, указывающим, что метаданные из этого входящего блока могут быть отвергнуты преобразователем кода. Преобразователь кода может быть выполнен с возможностью отвергать метаданные из ряда входящих блоков для всего ряда входящих кадров метаданных, кроме одного (например, для всех входящих кадров метаданных, кроме первого кадра) при генерировании исходящего кадра метаданных. В дополнение к генерированию исходящего кадра метаданных из ряда входящих кадров метаданных, преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра содержимого из ряда входящих кадров содержимого, при этом этот ряд входящих кадров содержимого, соответственно, ассоциирован с рядом входящих кадров метаданных.
Параметр дедупликации может содержать флаг, который можно установить для указания того, что метаданные из входящего блока могут быть (или должны быть) отвергнуты преобразователем кода, если исходящий кадр метаданных генерируется из ряда входящих кадров метаданных, или наоборот (т.е. флаг может быть установлен для указания вместо этого противоположного).
Как было указано выше, одно или несколько свойств входящего описателя может содержать параметр приоритета, служащий признаком относительной важности метаданных из входящего блока относительно одного или нескольких других входящих блоков метаданных. Входящий кадр метаданных, принятый преобразователем кода, может содержать ряд входящих блоков с описателями, указывающими разные значения параметра приоритета. Преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из ряда входящих блоков в соответствии с параметрами приоритета из ряда входящих блоков. В частности, преобразователь кода может, в первую очередь, выбирать входящий блок (блоки), имеющий наивысший относительный приоритет, и вставлять входящие блоки с менее высоким приоритетом, только если для исходящего битового потока доступна достаточная битовая скорость передачи данных.
Ряд входящих блоков может быть ассоциирован с инкрементными параметрами приоритета, указывающими инкрементные приоритеты. Ряд входящих блоков может содержать инкрементные метаданные так, чтобы метаданные из входящего блока, имеющего наивысший относительный приоритет в ряду входящих блоков, предусматривали метаданные пониженного качества (т.е. предусматривали метаданные с качеством, которое понижено в сравнении с высококачественными метаданными, предусматриваемыми объединенными метаданными). Входящий блок со следующим, менее высоким приоритетом может предусматривать повышение качества метаданных, и т.д. до тех пор, пока при объединении полного ряда входящих блоков не будут предусматриваться метаданные наивысшего качества. Преобразователь кода может быть выполнен с возможностью генерирования исходящего кадра метаданных на основе, по меньшей мере, одного или нескольких блоков из ряда входящих блоков, посредством чего делается возможным масштабируемое ухудшение качества метаданных, заключенных в исходящем кадре метаданных. Степень ухудшения может быть основана, например, на доступной битовой скорости передачи данных исходящего битового потока.
Как было указано выше, одно или несколько свойств входящего описателя может содержать параметр ассоциации, служащий признаком того, могут ли метаданные из входящего блока быть вставлены в более поздний исходящий кадр метаданных, следующий за данным исходящим кадром метаданных. Преобразователь кода может быть выполнен с возможностью вставки метаданных из входящего блока в исходящий кадр метаданных на основе параметра ассоциации и/или на основе ограничений, накладываемых битовой скоростью передачи данных на исходящий битовый поток. В частности, преобразователь кода может быть выполнен с возможностью вставки метаданных из входящего блока в более поздний исходящий кадр метаданных, следующий за указанным исходящим кадром метаданных, если параметр ассоциации указывает, что метаданные из входящего блока можно задерживать.
В соответствии с одной из дальнейших особенностей, описывается способ перекодировки входящего битового потока, содержащего входящий кадр содержимого и ассоциированный входящий кадр метаданных, в исходящий битовый поток. Этот исходящий битовый поток может содержать исходящий кадр содержимого и/или ассоциированный исходящий кадр метаданных. Указанный входящий кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека, и исходящий кадр содержимого может служить признаком сигнала, кодированного в соответствии со второй системой кодека. Как было указано выше, первая и вторая системы кодеков могут быть одинаковыми или могут быть разными. Способ может включать идентификацию входящего блока метаданных из входящего кадра метаданных. Этот входящий блок метаданных может быть ассоциирован с входящим описателем, служащим признаком одного или нескольких свойств метаданных, заключенных во входящем блоке метаданных. Кроме того, данный способ может включать генерирование исходящего кадра метаданных из входящего кадра метаданных на основе входящего описателя. Иными словами, исходящий кадр метаданных можно определить, принимая во внимание входящий описатель, как правило, без необходимости в дальнейшем анализе метаданных, заключенных во входящем кадре метаданных.
В соответствии с другой особенностью, описывается кодированный битовый поток, содержащий кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека. Указанный кадр метаданных может содержать блок метаданных, а этот блок метаданных может быть ассоциирован (или может его содержать) с описателем, служащим признаком одного или нескольких свойств метаданных, заключенных в этом блоке метаданных.
В соответствии с одной из дальнейших особенностей, описывается кодер, выполненный с возможностью генерирования кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с одной из систем кодеков. Кодер может быть выполнен с возможностью генерирования блока метаданных. Кроме того, кодер может быть выполнен с возможностью определения описателя, ассоциированного с этим блоком метаданных. Указанный описатель может служить признаком одного или нескольких свойств метаданных, заключенных в этом блоке метаданных. Кроме того, кодер может быть выполнен с возможностью вставки этого блока метаданных в кадр метаданных. Следует отметить, что характерные признаки, описываемые в настоящем документе в контексте преобразователя кода, также применимы и к соответствующему кодеру.
В частности, указанное одно или несколько свойств могут включать параметр отметки времени, служащий признаком одного из дискретных значений сигнала, с которым ассоциированы метаданные, заключенные в этом блоке метаданных. Это дискретное значение сигнала может быть заключено в кадре содержимого. Кодер также может быть выполнен с возможностью вставки этого блока в более поздний кадр метаданных, причем этот более поздний кадр метаданных ассоциирован с более поздним кадром содержимого, не содержащим указанное дискретное значение сигнала. Кроме того, кодер может быть выполнен с возможностью генерирования описателя этого блока метаданных так, чтобы параметр отметки времени указывал дискретное значение сигнала относительно более позднего кадра содержимого. Таким образом, кодер может быть выполнен с возможностью задержки передачи метаданных и для соответственной модификации параметра отметки времени, посредством чего сглаживается битовая скорость передачи данных битового потока, генерируемого кодером.
В соответствии с одной из особенностей, описывается соответствующий декодер. Этот декодер может содержать любой из относящихся к декодеру характерных признаков, описываемых в настоящем документе. Декодер может быть выполнен с возможностью декодирования кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Как было описано выше, указанный кадр содержимого служит признаком сигнала, кодированного в соответствии с первой системой кодека. Указанный кадр метаданных может содержать блок метаданных, причем этот блок метаданных ассоциирован (или его содержит) с описателем, служащим признаком одного или нескольких свойств метаданных, заключенных в указанном блоке метаданных. Декодер может быть выполнен с возможностью декодирования кодированного сигнала, заключенного в кадре содержимого. В частности, для декодирования кодированного сигнала декодер может содержать декодер первой системы кодека. Как результат, декодер может быть выполнен с возможностью создания дискретных значений РСМ кодированного сигнала.
Кроме того, указанный декодер может быть выполнен с возможностью идентификации блока метаданных из кадра метаданных и извлечения описателя из этого блока метаданных. В дополнение, декодер может быть выполнен с возможностью обработки метаданных, заключенных в блоке метаданных, в зависимости от одного или нескольких свойств, указываемых описателем. Указанное одно или несколько свойств могут соответствовать одному или нескольким свойствам, описываемым в настоящем документе. Декодер может быть выполнен с возможностью ассоциации конкретного свойства метаданных с соответствующей обработкой метаданных. Для примера, описатель может служить признаком параметра отметки времени, посредством этого информируя декодер о том, что метаданные из данного блока метаданных следует применять к конкретному дискретному значению сигнала. Как таковой, декодер может быть выполнен с возможностью применения метаданных к дискретному значению, указываемому параметром отметки времени. В качестве другого примера, описатель может служить признаком параметра ассоциации. Если этот параметр ассоциации указывает, что данный блок метаданных не связан с данным кадром содержимого, декодер может быть выполнен с возможностью передачи метаданных, заключенных в данном блоке метаданных, в другой модуль обработки (который имеет дело, например, с вспомогательными данными, заключенными этом блоке метаданных).
В соответствии с одной из дальнейших особенностей, описывается способ декодирования кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека. Указанный кадр метаданных может содержать блок метаданных, причем этот блок метаданных может быть ассоциирован с описателем, служащим признаком одного или нескольких свойств метаданных, заключенных в этом блоке метаданных. Способ может включать декодирование кодированного сигнала, заключенного в указанном кадре содержимого. Кроме того, способ может включать идентификацию блока метаданных из кадра метаданных и извлечение описателя из этого блока метаданных. В дополнение, способ может включать обработку метаданных, заключенных в блоке метаданных, на основе одного или нескольких свойств, указываемых описателем.
В соответствии с другой особенностью, описывается способ генерирования кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с одной из систем кодеков. Способ может включать генерирование блока метаданных. Кроме того, способ может включать определение описателя, ассоциированного с этим блоком метаданных, причем этот описатель служит признаком одного или нескольких свойств метаданных, заключенных в указанном блоке метаданных. В дополнение, способ может включать вставку блока метаданных в кадр метаданных.
В соответствии с одной из дальнейших особенностей, описывается кодер, выполненный с возможностью генерирования кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека. Кодер может быть выполнен с возможностью генерирования блока метаданных. В одном из предпочтительных вариантов осуществления этот блок метаданных содержит описатель, описываемый в настоящее документе. Этот описатель может служить признаком одного или нескольких свойств метаданных, заключенных в указанном блоке метаданных.
Указанный кодер может быть выполнен с возможностью вставки блока метаданных в кадр метаданных. Кроме того, этот кодер может быть выполнен с возможностью выбора криптографического ключа из ряда предварительно определенных криптографических ключей. Этот ряд предварительно определенных криптографических ключей может быть выполнен так, чтобы он обеспечивал разные уровни доверия. В частности, указанный ряд предварительно определенных криптографических ключей может содержать криптографический ключ с высоким уровнем защиты, известный только разработчику кодера (или соответствующего декодера, или соответствующего преобразователя кода, содержащего декодер и кодер). Кроме того, ряд предварительно определенных криптографических ключей может содержать криптографический ключ с умеренным уровнем защиты, известный оператору кодера (или соответствующего декодера, или соответствующего преобразователя кода, содержащего декодер и кодер).
Указанный кодер может быть выполнен с возможностью генерирования криптографической величины на основе, по меньшей мере, кадра содержимого, ассоциированного кадра метаданных и выбранного криптографического ключа. В частности, для генерирования криптографической величины кодер может быть выполнен с возможностью вычисления величины HMAC-MD5 или величины HMAC-SHA256 (защищенный алгоритм хэширования, определенный техническими условиями федерального стандарта по обработке информации FIPS PUB 180-2). В дополнение, для получения криптографической величины кодер может быть выполнен с возможностью усечения величины HMAC-MD5 или HMAC-SHA256. Путем усечения величины НМАС можно уменьшить накладные затраты, требуемые для криптографической величины. Кодер может быть выполнен с возможностью вставки сгенерированной криптографической величины в кадр метаданных, посредством этого обеспечивая то, что сторона, не имеющая полномочий, не сможет модифицировать кадр содержимого и/или кадр метаданных без того, чтобы это было обнаружено.
Использование разных криптографических ключей, предусматривающих разные уровни доверия, обеспечивает то, что соответствующий декодер (или преобразователь кода, содержащий декодер) может проверять, был ли принятый битовый поток модифицирован, и если да, то какая из сторон модифицировала этот битовый поток. Для примера, кодер мог изначально генерировать битовый поток с использованием криптографического ключа с высоким уровнем защиты. Промежуточная сторона могла модифицировать этот битовый поток и могла использовать для генерирования модифицированной криптографической величины криптографический ключ с умеренным уровнем защиты. Таким образом, декодер является осведомленным о том, что принятый битовый поток был модифицирован стороной, имеющей доступ к криптографическому ключу с умеренным уровнем защиты. Следует отметить, что ряд предварительно определенных криптографических ключей может содержать более двух уровней доверия, и, таким образом, декодер снабжается большим количеством подробностей в отношении достоверности принятого битового потока.
Указанный кодер может быть выполнен с возможностью вставки выбранного криптографического ключа в кадр метаданных, посредством этого позволяя декодеру легко проверять, был ли модифицирован принятый битовый поток. С другой стороны, декодер может быть выполнен с возможностью проверки аутентичности принятого битового потока с использованием всего ряда предварительно определенных криптографических ключей без необходимости в указании выбранного криптографического ключа, подлежавшего вставке в кадр метаданных.
Указанный кодер может быть выполнен с возможностью генерирования ряда последовательных кадров содержимого и ассоциированных кадров метаданных для кодированного битового потока. Кроме того, кодер может быть выполнен с возможностью генерирования криптографической величины на основе единственного кадра содержимого и ассоциированного с ним кадра метаданных и на основе выбранного криптографического ключа. Криптографическая величина кадра может быть вставлена в ассоциированный кадр метаданных и может быть использована соответствующим декодером (или преобразователем кода) для проверки аутентичности отдельного кадра содержимого/метаданных. Кроме того, кодер может быть выполнен с возможностью генерирования хронологической криптографической величины на основе, по меньшей мере, некоторых кадров из ряда последовательных кадров содержимого и ассоциированных с ними кадров метаданных и на основе выбранной криптографической величины. Эта хронологическая криптографическая величина может быть вставлена в ряд последовательных кадров метаданных и может быть использована соответствующим декодером (или преобразователем кода) для проверки последовательного порядка в ряду последовательных кадров содержимого и кадров метаданных.
В соответствии с одной из дальнейших особенностей, описывается способ генерирования кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека. Способ также может включать генерирование блока метаданных и вставку этого блока метаданных в кадр метаданных. Кроме того, способ может включать выбор криптографического ключа из ряда предварительно определенных криптографических ключей, причем этот ряд предварительно определенных криптографических ключей предусматривает разные уровни доверия. В дополнение, способ может включать генерирование криптографической величины, по меньшей мере, на основе кадра содержимого, ассоциированного кадра метаданных и на основе выбранного криптографического ключа. Эту сгенерированную криптографическую величину затем можно вставить в кадр метаданных.
В соответствии с одной из дальнейших особенностей, описывается соответствующий декодер. Этот декодер может быть выполнен с возможностью приема кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кодированный битовый поток может иметь одно или несколько из свойств, описываемых в настоящем документе. В частности, указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека (например, системой кодека, излагаемой в настоящем документе). Декодер может быть выполнен с возможностью извлечения криптографической величины из кадра метаданных. Эта криптографическая величина могла быть вставлена в этот кадр метаданных соответствующим кодером так, как это описывается в настоящем документе. В частности, эта криптографическая величина могла быть определена с использованием одного из ряда предварительно определенных криптографических ключей. Как было описано выше, этот ряд предварительно определенных криптографических ключей может предусматривать разные уровни доверия. Для примера, этот ряд криптографических ключей может содержать криптографический ключ с высоким уровнем защиты и криптографический ключ с умеренным уровнем защиты.
Указанный декодер может быть выполнен с возможностью определения криптографического ключа из ряда предварительно определенных криптографических ключей. В частности, декодер может быть выполнен с возможностью определения криптографического ключа путем извлечения этого криптографического ключа из кадра метаданных (например, из особого поля кадра метаданных). Кроме того, декодер может быть выполнен с возможностью генерирования проверочной криптографической величины на основе, по меньшей мере, принятого кадра содержимого, принятого ассоциированного кадра метаданных и принятого криптографического ключа. В дополнение, декодер может быть выполнен с возможностью сравнения извлеченной криптографической величины и проверочной криптографической величины с целью определения того, может ли заслуживать доверия принятый кодированный битовый поток. Для примера, если принятая криптографическая величина и проверочная криптографическая величина совпадают, то декодер может определять, что принятый кодированный битовый поток может заслуживать доверия. Кроме того, криптографический ключ, использованный для генерирования проверочной криптографической величины, может указывать декодеру уровень доверия, ассоциированный с принятым кодированным битовым потоком. Для примера, криптографический ключ с высоким уровнем защиты может указывать более высокий уровень доверия, чем криптографический ключ с умеренным уровнем защиты.
Указанный декодер может быть выполнен с возможностью определения того, какой ключ из ряда предварительно определенных криптографических ключей был использован для генерирования извлеченной криптографической величины. Как было указано выше, криптографический ключ, который был использован для генерирования извлеченной криптографической величины, может предусматривать указатель уровня доверия для принятого кодированного битового потока. В частности, декодер может быть выполнен с возможностью генерирования ряда проверочных криптографических величин, соответственно, для ряда предварительно определенных криптографических ключей. Кроме того, декодер может быть выполнен с возможностью сравнения каждой величины из ряда проверочных криптографических величин с извлеченной криптографической величиной. В дополнение, декодер может быть выполнен с возможностью определения того, что один ключ из ряда предварительно определенных криптографических ключей был использован для генерирования извлеченной криптографической величины, если сравнение показывает, что одна величина из ряда проверочных криптографических величин совпадает с извлеченной криптографической величиной.
В соответствии с одной из дальнейших особенностей, описывается способ определения уровня доверия принятого кодированного битового потока, содержащего кадр содержимого и ассоциированный кадр метаданных. Указанный кадр содержимого может служить признаком сигнала, кодированного в соответствии с первой системой кодека. Способ может включать извлечение криптографической величины из указанного кадра метаданных. Кроме того, способ может включать определение криптографического ключа из ряда предварительно определенных криптографических ключей, причем этот ряд предварительно определенных криптографических ключей предусматривает разные уровни доверия. В дополнение, способ может включать генерирование проверочной криптографической величины на основе, по меньшей мере, кадра содержимого, ассоциированного кадра метаданных и определенного криптографического ключа. Способ может быть продолжен сравнением извлеченной криптографической величины и проверочной криптографической величины с целью определения уровня доверия для принятого кодированного битового потока, причем этот уровень доверия может указываться определенным криптографическим ключом.
В соответствии с другой особенностью, описывается преобразователь кода, выполненный с возможностью перекодировки входящего битового потока, содержащего входящий кадр содержимого и ассоциированный входящий кадр метаданных, в исходящий битовый поток. Этот преобразователь кода может содержать любой из относящихся к преобразователю кода характерных признаков, описываемых в настоящем документе. Как было описано выше, входящий битовый поток может служить признаком набора дискретных значений сигнала, например служить признаком дискретных значений из кадра сигнала. Преобразователь кода может содержать декодер (для декодирования принятого входящего битового потока) и кодер (для повторного кодирования декодированного входящего битового потока с целью создания перекодированного исходящего битового потока). Преобразователь кода может содержать преобразователь кода, связанный с РСМ.
Декодер указанного преобразователя кода может быть выполнен с возможностью преобразования входящего кадра содержимого в набор декодированных дискретных значений РСМ сигнала. Кроме того, этот декодер может быть выполнен с возможностью извлечения метаданных из входящего кадра метаданных. Как таковой, декодер может быть выполнен с возможностью преобразования входящего битового потока в последовательность декодированных дискретных значений РСМ и ассоциированные метаданные. Эта последовательность декодированных дискретных значений РСМ и ассоциированных метаданных может быть использована кодером преобразователя кода для генерирования исходящего битового потока (в соответствии со второй системой кодека). Декодер может быть выполнен с возможностью генерирования сигнатурной величины для указанного набора декодированных дискретных значений РСМ и извлеченных метаданных с использованием криптографического ключа декодера. Указанную сигнатурную величину можно генерировать, используя хэш-функцию FIMAC-MD5 или FIMAC-SFIA256. Для создания сигнатурной величины результирующее значение может быть усечено. Таким образом, декодер может быть выполнен с возможностью создания сигнатурной величины, посредством этого позволяя кодеру проверять, были ли декодированные дискретные значения РСМ и/или метаданные модифицированы неуполномоченным субъектом (не имеющим доступа к криптографическому ключу декодера) между декодером и кодером преобразователя кода.
Указанный кодер преобразователя кода может быть выполнен с возможностью приема набора дискретных значений РСМ и ассоциированных метаданных. Принимаемый набор дискретных значений РСМ, как правило, соответствует набору декодированных дискретных значений РСМ, создаваемому декодером, а принимаемые метаданные, как правило, соответствуют извлеченным метаданным из декодера. Однако дискретные значения РСМ и/или метаданные могли быть модифицированы так, что принятый набор дискретных значений РСМ и/или принятые метаданные могут отличаться от набора декодированных дискретных значений РСМ и/или от извлеченных метаданных.
Кодер может быть выполнен с возможностью приема сигнатурной величины. Эта принимаемая сигнатурная величина может соответствовать сигнатурной величине, генерируемой декодером. С другой стороны, принятая сигнатурная величина может отличаться от сигнатурной величины, генерируемой декодером (например, если она была модифицирована неуполномоченным субъектом при модификации дискретных значений РСМ и/или метаданных). Кодер может быть выполнен с возможностью проверки того, является ли принятая сигнатурная величина достоверной для принятого набора дискретных значений РСМ и ассоциированных метаданных, с использованием криптографического ключа кодера. Кроме того, кодер может быть выполнен с возможностью генерирования исходящего кадра содержимого исходящего битового потока из принятого набора дискретных значений РСМ и генерирования ассоциированного исходящего кадра метаданных исходящего битового потока из принятых метаданных, если принятая сигнатура является достоверной. С другой стороны, кодер может быть выполнен с возможностью предотвращения вставки принятых метаданных в исходящий битовый поток, если принятая сигнатура не является достоверной. Таким образом, кодер преобразователя кода может быть выполнен с возможностью предотвращения вставки кадров метаданных в исходящий битовый поток, если метаданные или дискретные значения РСМ были модифицированы неуполномоченным субъектом.
Следует отметить, что декодер и кодер, используемые в преобразователе кода, как правило, предоставляются разработчиком соответствующей системы аудиокодека. Таким образом, функциональные возможности кодера и декодера могут контролироваться разработчиком, посредством чего обеспечивается высокое качество звукового содержимого и ассоциированных метаданных. С другой стороны, дискретные значения РСМ и/или метаданные между декодером и кодером могут быть модифицированы неуполномоченным субъектом, что, таким образом, представляет риск того, что качество звукового содержимого и/или метаданных будет понижено. Предусматривая декодер, генерирующий сигнатурные величины, и предусматривая кодер, проверяющий сигнатурные величины, можно обеспечить то, что несанкционированная модификация дискретных значений РСМ и/или метаданных может быть обнаружена.
Кодер может быть выполнен с возможностью использования криптографического ключа декодера в качестве криптографического ключа кодера.
Таким образом, обеспечивается то, что кодер может проверять, соответствуют ли принятые дискретные значения РСМ и метаданные дискретным значениям РСМ и метаданным, предоставленным соответствующим декодером.
Указанный преобразователь кода также может содержать ступень обработки РСМ для модификации набора декодированных значений РСМ и/или извлеченных метаданных, посредством чего получается набор вторых дискретных значений РСМ и ассоциированные вторые метаданные. Это набор вторых дискретных значений РСМ может соответствовать набору декодированных дискретных значений РСМ или набору модифицированных дискретных значений РСМ. Аналогичным образом, вторые метаданные могут соответствовать извлеченным метаданным или модифицированным извлеченным метаданным. Кроме того, ступень обработки РСМ может быть выполнена с возможностью передачи набора вторых дискретных значений РСМ и ассоциированных вторых метаданных в кодер. Кодер может быть выполнен с возможностью обнаружения с использованием принятой сигнатурной величины и криптографического ключа кодера того, что декодированные дискретные значения РСМ и/или извлеченные метаданные были модифицированы ступенью обработки РСМ. Иными словами, кодер может быть выполнен с возможностью обнаружения того, что вторые дискретные значения РСМ (принятые кодером) и вторые метаданные (принятые кодером) не соответствуют декодированным дискретным значениям РСМ и извлеченным метаданным (предоставленным декодером).
Преобразователь кода также может содержать модуль повторного подписания, выполненный с возможностью определения обновленной сигнатурной величины для набора вторых дискретных значений РСМ и ассоциированных вторых метаданных с использованием криптографического ключа повторного подписания. Кроме того, модуль повторного подписания может быть выполнен с возможностью передачи обновленной сигнатурной величины в кодер. Криптографический ключ повторного подписания может отличаться от криптографического ключа декодера. Кодер может быть выполнен с возможностью использования криптографического ключа повторного подписания в качестве криптографического ключа кодера. Таким образом, кодер может быть выполнен с возможностью обнаружения того, что дискретные значения РСМ и/или ассоциированные метаданные были модифицированы уполномоченной ступенью обработки РСМ. Аналогично криптографическим величинам, описываемым в настоящем документе, криптографические ключи для сигнатурных величин можно выбирать из ряда предварительно определенных криптографических ключей. Для примера, криптографический ключ декодера может представлять собой криптографический ключ с высоким уровнем защиты, в то время как криптографический ключ повторного подписания может представлять собой криптографический ключ с умеренным уровнем защиты, посредством чего обеспечиваются разные уровни доверия для дискретных значений РСМ и/или ассоциированных метаданных, принимаемых кодером преобразователя кода.
Кодер преобразователя кода может содержать ступень обработки РСМ, выполненную с возможностью модификации набора принятых дискретных значений РСМ и/или принятых метаданных. Указанный набор принятых дискретных значений РСМ может соответствовать набору декодированных дискретных значений РСМ или набору вторых дискретных значений РСМ. Аналогичным образом, принятые метаданные могут соответствовать извлеченным метаданным или вторым метаданным. Кодер может быть выполнен с возможностью генерирования исходящего кадра содержимого и/или исходящего кадра метаданных на основе модифицированного набора принятых дискретных значений РСМ и/или модифицированных принятых метаданных, которые были модифицированы ступенью обработки РСМ кодера. Снабжая кодер преобразователя кода ступенью РСМ, можно обеспечить то, что в преобразователе кода цепочка доверия будет сохраняться (так как обработка РСМ выполняется в кодере, представляемом разработчиком кодера).
Как было указано выше, преобразователь кода, связанный с РСМ, может содержать любой из характерных признаков, описываемых в настоящем документе. В частности, декодер преобразователя кода может быть выполнен с возможностью идентификации входящего блока метаданных из входящего кадра метаданных. Как описывается в настоящем документе, входящий блок метаданных может быть ассоциирован с входящим описателем, служащим признаком одного или нескольких свойств метаданных, заключенных во входящем блоке метаданных. Указанное одно или несколько свойств могут представлять собой любое одно или несколько из свойств, описываемых в настоящем документе. Кодер преобразователя кода может быть выполнен с возможностью генерирования исходящего кадра метаданных из входящего кадра метаданных, по меньшей мере, на основе входящего описателя.
В частности, указанные одно или несколько свойств могут содержать параметр обработки РСМ, служащий признаком того, следует ли кодеру отвергать метаданные из входящего блока при условии модификации набора дискретных значений РСМ и/или извлеченных метаданных. В таких случаях, кодер преобразователя кода может быть выполнен с возможностью включения или невключения входящего блока в исходящий кадр метаданных на основе значения параметра обработки РСМ. В частности, кодер может быть выполнен с возможностью включения метаданных из входящего блока в исходящий кадр метаданных, если параметр обработки РСМ указывает, что метаданные из входящего блока не следует отвергать, даже если набор дискретных значений РСМ и/или извлеченные метаданные были модифицированы. Это может быть полезно, например, в ситуации, когда метаданные, содержащиеся во входящем блоке, не зависят от набора дискретных значений РСМ (как, например, в случае вспомогательных данных или двоичных данных).
Ступень обработки РСМ преобразователя кода может быть выполнена с возможностью предоставления кодеру преобразователя кода указателя одного или нескольких условий обработки РСМ. Это одно или несколько условий обработки РСМ могут указывать, каким образом набор дискретных значений РСМ и/или извлеченные метаданные были обработаны ступенью обработки РСМ. Для примера, одно или несколько условий обработки РСМ могут включать одно или несколько следующих условий: преобразование частоты дискретизации набора дискретных значений РСМ, микширование дискретных значений РСМ с системным звуком, модификация извлеченных метаданных, модификация конфигурации каналов набора дискретных значений РСМ (в случае звукового сигнала), регулировка уровня громкости набора дискретных значений РСМ. Тогда кодер можно выполнить с возможностью генерирования исходящего кадра метаданных из входящего кадра метаданных также и на основе одного или нескольких указанных условий обработки РСМ. В частности, кодер можно выполнить с возможностью принятия решения о том, включать или не включать входящий блок в исходящий кадр метаданных, на основе значения параметра обработки РСМ и на основе одного или нескольких условий обработки РСМ. В частности, параметр обработки РСМ может указывать, каким образом следует обрабатывать входящий блок при условии одного или нескольких условий обработки РСМ.
В соответствии с одной из дальнейших особенностей, описывается способ перекодировки входящего битового потока, содержащего входящий кадр содержимого и ассоциированный входящий кадр метаданных, в исходящий битовый поток. Входящий битовый поток может служить признаком набора дискретных значений сигнала. Способ может включать преобразование входящего кадра содержимого в декодере в набор декодированных дискретных значений РСМ сигнала. Кроме того, способ может включать извлечение декодером метаданных из входящего кадра метаданных. Кроме того, с использованием криптографического ключа может генерироваться сигнатурная величина для набора декодированных дискретных значений РСМ и извлеченных метаданных. Указанный набор декодированных дискретных значений РСМ, извлеченные метаданные и сгенерированная сигнатурная величина могут быть переданы в соответствующий кодер. В дополнение, способ может включать прием кодером набора дискретных значений РСМ и ассоциированных метаданных, а также прием сигнатурной величины. Способ может быть продолжен определением того, достоверна ли принятая сигнатурная величина для принятого набора дискретных значений РСМ и ассоциированных метаданных, с использованием криптографического ключа кодера. Затем, если принятая сигнатура достоверна, из принятого набора дискретных значений РСМ и ассоциированного исходящего кадра метаданных исходящего битового потока может быть сгенерирован исходящий кадр содержимого исходящего битового потока.
В соответствии с дальнейшими особенностями, вышеупомянутые декодер и кодер преобразователя кода, связанного с РСМ, описываются как автономные. Декодер и/или кодер может содержать любой один или несколько описываемых в настоящем документе характерных признаков, относящихся, соответственно, к декодеру и/или кодеру. Декодер и/или кодер может быть использован в преобразователе кода (как описано выше). В качестве альтернативы или в дополнение, декодер и/или кодер может быть использован автономно. Таким образом, в соответствии с одной из дальнейших особенностей, описывается декодер, выполненный с возможностью декодирования входящего битового потока, содержащего входящий кадр содержимого и ассоциированный входящий кадр метаданных. Указанный входящий битовый поток может служить признаком набора дискретных значений сигнала. Декодер может быть выполнен с возможностью преобразования входящего кадра содержимого в набор декодированных дискретных значений РСМ сигнала. Кроме того, декодер может быть выполнен с возможностью извлечения метаданных из входящего кадра метаданных. В дополнение, декодер может быть выполнен с возможностью генерирования сигнатурной величины для указанного набора дискретных значений РСМ и для извлеченных метаданных с использованием криптографического ключа. Как таковой, указанный набор декодированных дискретных значений РСМ и ассоциированные извлеченные метаданные могут быть защищены с использованием сигнатурной величины. Сторона, принимающая набор декодированных дискретных значений РСМ и ассоциированные извлеченные метаданные, может использовать эту сигнатурную величину для проверки того, был ли набор декодированных дискретных значений РСМ и/или ассоциированные извлеченные метаданные модифицированы несанкционированным образом.
Принимающей стороной может быть кодер, выполненный с возможностью повторного кодирования набора декодированных дискретных значений РСМ и ассоциированных извлеченных метаданных в исходящий битовый поток. Таким образом, декодер может быть выполнен с возможностью отправки набора декодированных дискретных значений РСМ, извлеченных метаданных и сгенерированной сигнатурной величины кодеру для повторного кодирования.
В соответствии с другой особенностью, описывается кодер, выполненный с возможностью кодирования исходящего битового потока, содержащего исходящий кадр содержимого и ассоциированный исходящий кадр метаданных. Этот кодер может быть выполнен с возможностью приема набора дискретных значений РСМ и ассоциированных метаданных и с возможностью приема сигнатурной величины для набора дискретных значений РСМ и ассоциированных метаданных. Принятый набор дискретных значений РСМ может соответствовать вышеупомянутому набору декодированных дискретных значений РСМ (или может быть из него получен). Аналогичным образом, принимаемый набор ассоциированных метаданных может соответствовать вышеупомянутому набору извлеченных метаданных (или может быть из него получен). Принятая сигнатурная величина могла быть определена (например, в декодере) с использованием вышеупомянутого набора декодированных дискретных значений РСМ и извлеченных метаданных.
Кодер может быть выполнен с возможностью проверки того, является ли принятая сигнатурная величина достоверной для принятого набора дискретных значений РСМ и ассоциированных метаданных, с использованием криптографического ключа кодера. Кроме того, кодер может быть выполнен с возможностью генерирования исходящего кадра содержимого исходящего битового потока из принятого набора дискретных значений РСМ и для генерирования ассоциированного исходящего кадра метаданных исходящего битового потока из принятых метаданных, если принятая сигнатура является достоверной.
В соответствии с другой особенностью, описывается способ декодирования входящего битового потока, содержащего входящий кадр содержимого и ассоциированный входящий кадр метаданных. Указанный входящий битовый поток может служить признаком набора дискретных значений сигнала. Этот способ может включать преобразование входящего кадра содержимого в набор декодированных дискретных значений РСМ сигнала и извлечение метаданных из входящего кадра метаданных. Кроме того, способ может включать генерирование сигнатурной величины для набора декодированных дискретных значений РСМ и извлеченных метаданных с использованием криптографического ключа декодера. В дополнение, способ может включать предоставление набора декодированных дискретных значений РСМ, извлеченных метаданных и сгенерированной сигнатурной величины кодеру для повторного кодирования.
В соответствии с одной из дальнейших особенностей, описывается способ кодирования битового потока, содержащего исходящий кадр содержимого и ассоциированный исходящий кадр метаданных. Этот способ может включать прием набора дискретных значений РСМ и ассоциированных метаданных и прием сигнатурной величины для этого набора дискретных значений РСМ и ассоциированных метаданных. Кроме того, способ может включать проверку того, является ли принятая сигнатурная величина достоверной для принятого набора дискретных значений РСМ и ассоциированных метаданных, с использованием криптографического ключа кодера. Способ может быть продолжен генерированием исходящего кадра содержимого исходящего битового потока из принятого набора дискретных значений РСМ и генерированием ассоциированного исходящего кадра метаданных исходящего битового потока из принятых метаданных, если принятая сигнатура является достоверной.
В соответствии с одной из дальнейших особенностей, описывается программа, реализованная программно. Эта программа, реализованная программно, может быть приспособлена для исполнения на процессоре и для выполнения этапов способов, описываемых в настоящем документе, при осуществлении на процессоре.
В соответствии с одной из дальнейших особенностей, описывается носитель данных. Этот носитель данных может содержать программу, реализованную программно, приспособленную для исполнения на процессоре и для выполнения этапов способов, описываемых в настоящем документе, при осуществлении на процессоре.
В соответствии с одной из дальнейших особенностей, описывается компьютерный программный продукт. Эта компьютерная программа может содержать исполняемые команды для выполнения этапов способов, описываемых в настоящем документе, при исполнении на компьютере.
Следует отметить, что способы и системы, в том числе предпочтительные варианты их осуществления, описываемые в настоящей патентной заявке, можно использовать автономно или в сочетании с другими способами и системами, раскрываемыми в данном документе. Кроме того, все особенности способов и систем, описываемых в настоящей патентной заявке, могут произвольно сочетаться. В частности, могут произвольным образом сочетаться друг с другом характерные признаки формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ФИГУР
Изобретение разъясняется ниже иллюстративным образом со ссылкой на сопроводительные графические материалы, где:
Фиг. 1а показывает блок-схему одного из примеров цепочки распространения звукового содержимого, содержащей преобразователь кода;
Фиг. 1b показывает один из примеров структуры кадра метаданных;
Фиг. 2а и 2b показывают примеры свойства отметки времени, используемого в кадре метаданных;
Фиг. 3а и 3b показывают примеры свойства дедупликации, используемого в кадре метаданных;
Фиг. 4а и 4b показывают примеры свойства дупликации, используемого в кадре метаданных; и
Фиг. 5а-5d и Фиг. 6 показывают примеры преобразователей кода, связанных с РСМ.
ПОДРОБНОЕ ОПИСАНИЕ
Как было описано в разделе предпосылок, звуковое содержимое, как правило, ассоциировано с метаданными и закодировано в совместный битовый поток, содержащий последовательность кодированных кадров содержимого и ассоциированную последовательность контейнеров метаданных (также именуемых кадрами метаданных). Фиг. 1 показывает блок-схему одного из примеров системы 100 распространения для звукового содержимого. Способы и системы, описываемые в настоящем документе, описываются в контексте звукового содержимого. Однако следует отметить, что эти способы и системы применимы и к содержимому других типов, такому, как видеосодержимое. В более общих выражениях, способы и системы, описываемые в настоящем документе, применимы к такому мультимедийному содержимому, как звук и/или видеоизображение, причем это мультимедийное содержимое ассоциировано с метаданными.
Система 100 распространения содержит кодер 101, выполненный с возможностью кодирования звукового содержимого и создания кодированного битового потока 110 (также именуемого первым кодированным битовым потоком 110 или входящим кодированным битовым потоком 110). Первый кодированный битовый поток 110, как правило, содержит последовательность кодированных кадров 111 содержимого, при этом кодированный кадр содержимого 111 может быть ассоциирован с соответствующим кадром 112 метаданных. Кодер 101 выполнен с возможностью создания первого кодированного битового потока 110, который является кодированным в соответствии с первой системой аудиокодека. Эта первая система аудиокодека может, например, представлять собой одну из следующих систем: Dolby Е, Dolby Digital Plus, Dolby Digital, Dolby True HD, Dolby Pulse, AAC и/или HE-AAC. Кадры 111 содержимого могут представлять собой или могут содержать предварительно определенное количество дискретных значений звукового содержимого, например, 1536, 1024 или 512 дискретных значений звукового содержимого.
Первый кодированный битовый поток 110 доставляется в преобразователь кода 103 через передающую среду или посредством носителя данных 102. Преобразователь кода 103 выполнен с возможностью перекодировки, или преобразования, первого кодированного битового потока 110 во второй кодированный битовый поток 120 (также именуемый исходящим битовым потоком 120), причем этот второй кодированный битовый поток 120 является кодированным в соответствии со второй системой аудиокодека. Вторая система аудиокодека может отличаться от первой системы аудиокодека. С другой стороны, вторая система аудиокодека может быть такой же, как первая система аудиокодека, но использовать другую конфигурацию, например, другую битовую скорость передачи данных, другую частоту кадров и/или другую конфигурацию каналов. Вторая система аудиокодека может, например, представлять собой одну из следующих систем: Dolby Е, Dolby Digital Plus, Dolby Digital, Dolby True HD, Dolby Pulse, AAC и/или HE-AAC. Аналогично первому кодированному битовому потоку 110, второй кодированный битовый поток 120 содержит последовательность кадров 121 содержимого и соответствующую последовательность кадров 122 метаданных. Кадры 121 содержимого из второго кодированного битового потока 120 могут иметь размер кадра, отличающийся от размера кадра для кадров 111 содержимого первого кодированного битового потока 110. Второй кодированный битовый поток 120 может доставляться в декодер 104 для представления звукового содержимого.
Кадры 112, 122 метаданных могут иметь предварительно определенную структуру. Иными словами, кадры 112, 122 метаданных могут следовать предварительно определенному синтаксису, проиллюстрированному в Таблице 1. Синтаксис кадра развития может быть использован, например, в контексте стандартизованных систем кодеков мультимедийного содержимого, таких, как система Digital Video Broadcast (DVB) и/или система кодека Moving Picture Expert Group (MPEG). Следует отметить, что синтаксис кадра метаданных, показанный в Таблице 1 и следующих таблицах, является лишь одним из примеров. Возможны разнообразные модификации этого синтаксиса. В частности, синтаксис, показанный в настоящем документе, может быть расширен дополнительными полями, например, предусматривающими дополнительные функциональные возможности.
Семантика параметров кадра развития, показанного в Таблице 1, может быть следующей:
- key_id может представлять собой идентификатор криптографического ключа, используемого для хэширования (т.е. используемого для вычисления protection_bits поля protection()).
- payload_id может представлять собой идентификатор следующей полезной нагрузки приложения; payload_id END="0000b" может иметь то значение, что в этом кадре evo_frame() дальнейшая полезная нагрузка не содержится.
- payload_size может указывать количество битов в следующем поле полезной нагрузки.
Синтаксис кадра развития задает кадр 112, 122 метаданных, который может содержать ряд блоков метаданных, при этом блок метаданных также именуется полезной нагрузкой. Как таковой, кадр 112, 122 метаданных может содержать нуль, один или несколько блоков метаданных, при этом каждый блок метаданных служит признаком отдельного типа и/или отдельной особенности метаданных. Примерами типов метаданных являются:
- описательные метаданные, которые описывают конкретные особенности кадра 111 содержимого, с которым ассоциирован этот кадр 112 метаданных (например, информацию темпа и/или гармоническую информацию);
- несвязанные метаданные, содержащие вспомогательные данные, которые непосредственно не связаны с кадром 111 содержимого (такие, как обновления программно-аппаратного обеспечения для целевого декодера кодированного звукового содержимого);
- управляющие метаданные, которые могут быть использованы для управления представлением одного или нескольких дискретных значений кадра 111 содержимого, с которым ассоциирован этот кадр 112 метаданных (например, значения громкости для одного или нескольких дискретных значений кадра 111 содержимого).
Как таковой, кадр 112 метаданных предусматривает гибкую структуру, которую при необходимости можно расширять посредством дополнительных блоков метаданных, для того чтобы описывать дополнительные характеристики кодированного звукового содержимого, или для того чтобы передавать в битовом потоке 110 дополнительные вспомогательные данные. В случае если наряду с кадром 111 содержимого не нужно передавать никакие метаданные, кадр 112 метаданных может не содержать ни одного блока метаданных, что может быть указано в синтаксисе кадра развития согласно Таблице 1 посредством идентификатора payload_id, соответствующего предварительно определенному ID (идентификатору) «END».
В настоящем документе предлагается добавление в блок метаданных описателя, причем этот описатель описывает одну или несколько характеристик, или свойств метаданных, заключенных в ассоциированном блоке метаданных. Этот описатель именуется в синтаксисе кадра развития, показанного в Таблице 1, «payload_config()». Указанный описатель можно использовать в преобразователе кода для выполнения эффективной перекодировки блока метаданных без необходимости в анализе метаданных, заключенных в ассоциированном блоке метаданных. В результате этого можно значительно понизить вычислительную сложность перекодировки метаданных.
Иными словами, настоящий документ описывает способы перекодировки блоков метаданных (также именуемых полезной нагрузкой) в кадре 112 метаданных (например, в кадре развития, показанном в Таблице 1) из одного кодированного битового потока в другой битовый поток. Операции перекодировки могут направляться специальными полями в каждой полезной нагрузке (например, полем «payload_config()» блока метаданных, показанным в Таблице 1). Операции перекодировки можно затем задать так, чтобы отдельные полезные нагрузки можно было соответственно перекодировать из одного кодированного потока в другой кодированный поток без необходимости в извлечении или интерпретации сущности лежащих в их основе параметров метаданных из блока метаданных (т.е. без необходимости в извлечении или интерпретации сущности лежащих в их основе полезных нагрузок).
Фиг. 1b показывает один из примеров структуры кадра 130 метаданных (например, кадра 112 метаданных). Кадр 130 метаданных может содержать заголовок 131 кадра, служащий признаком общей информации в отношении структуры кадра 130 метаданных и ассоциации этого кадра 130 метаданных с кадром 111 содержимого битового потока 110. Заголовок 131 кадра может содержать некоторые или все поля кадра развития по Таблице 1, не относящиеся к полезным нагрузкам этого кадра. Кроме того, кадр 130 метаданных может содержать один или несколько блоков 140 метаданных (также именуемых полезной нагрузкой 140 метаданных). Блок 140 метаданных может содержать заголовок 141 блока, служащий признаком размера блока 140 метаданных (именуемого в Таблице 1 payload_size). Кроме того, блок 140 метаданных может содержать описатель 142 (именуемый в Таблице 1 полем payload_config()), причем этот описатель 142 может служить признаком типа метаданных и/или одного или нескольких свойств метаданных, заключенных в поле 143 данных (т.е. в показанном в Таблице 1 поле payload()) блока 140 метаданных.
Один из примеров описателя 142 блока 140 метаданных для кадра развития, т.е. один из примеров поля «payload_config()», показан в Таблице 2. Видно, что описатель 142 может содержать или может служить признаком одного или нескольких свойств метаданных, заключенных в блоке 140. В примере по Таблице 2 этими свойствами являются:
- параметр отметки времени (timestamp), служащий признаком дискретного значения звукового содержимого, к которому применимы метаданные из блока 140. Отметка времени может указывать дискретное значение, заключенное в кадре 111 содержимого, ассоциированном с кадром 112 метаданных блока 140. В качестве альтернативы или в дополнение, отметка времени может быть выполнена так, чтобы она принимала достаточно большие значения для указания дискретного значения, заключенного в кадре содержимого, следующем за кадром 111 содержимого, ассоциированным с кадром 112 метаданных блока 140.
- параметр длительности (duration), служащий признаком количества дискретных значений (начиная от дискретного значения, указанного отметкой времени), к которым применимы метаданные из блока 140.
- флаг перекодировки (именуемый в Таблице 2 флагом «don′t transcode»), предусматривающий команду преобразователю кода о том, перекодировать ли блок 140 метаданных. Если установлен флаг «don′t transcode», преобразователь кода может просто игнорировать или удалять блок 140 метаданных при перекодировке входящего битового потока 110. Это может быть полезно в случае метаданных, являющихся значимыми только для первой системы кодека входящего битового потока 110 и не имеющих смысла для любой другой системы кодека, в которую может быть перекодирован битовый поток 110 (как, например, происходит в случае циклического контроля по избыточности (CRC), генерируемого для данных, заключенных во входящем битовом потоке 110; CRC, как правило, имеет смысл только тогда, когда кодированные данные не модифицируют, и поэтому отсутствует потребность в перекодировке CRC). В более общих выражениях, флаг перекодировки можно использовать для идентификации метаданных, которые являются полезными только в ходе процесса декодирования входящего битового потока в преобразователе кода (и поэтому не требуются для последующего процесса повторного кодирования с целью генерирования исходящего битового потока).
- флаг дупликации (duplicate), предусматривающий команду преобразователю кода о том, следует ли дублировать метаданные, заключенные в блоке 140, когда размер кадра 111 содержимого перед перекодировкой и после перекодировки отличается.
- флаг дедупликации (de-duplicate), предусматривающий команду преобразователю кода о том, удалять ли дубликаты метаданных, заключенные в блоке 140, когда размер кадра 111 содержимого перед перекодировкой и после перекодировки отличается.
- параметр приоритета (priority), предусматривающий указатель относительной важности метаданных, заключенных в блоке 140. Преобразователь кода может использовать параметр приоритета для выбора одного или нескольких блоков 140 из кадра 130 метаданных, например, если допустимая битовая скорость передачи данных перекодированного второго битового потока 120 понижена относительно битовой скорости передачи данных первого битового потока 110.
- флаг ассоциации (именуемый в Таблице 2 флагом «now_or_never»), предусматривающий указатель для преобразователя кода о том, ассоциированы ли метаданные, заключенные в блоке 140, с соответствующим кадром 111 содержимого. Таким образом, если флаг «now_or_never» установлен, преобразователь кода осведомлен о том, что метаданные, заключенные в блоке 140, следует либо немедленно перекодировать, либо отбросить (так как флаг «now_or_never» указывает, что декодер не может использовать метаданные, если эти метаданные задержаны).
Иными словами, семантика параметров свойств описателя 142, показанных в Таблице 2, может быть следующей:
- параметр отметки времени (timestamp) указывает смещение в дискретных значениях от начала кадра 111 содержимого, к которому принадлежит рассматриваемая полезная нагрузка 143;
- параметр длительности (duration) указывает время в дискретных значениях, в течение которого рассматриваемая полезная нагрузка 143 остается достоверной;
- флаг dont_transcode сигнализирует о том, должна ли рассматриваемая полезная нагрузка 143 быть отвергнута при перекодировке (флаг = 1), или перекодировка может происходить (флаг = 0);
- флаг дупликации (duplicate) - при установке на 1 - сигнализирует о том, что рассматриваемую полезную нагрузку 143 необходимо повторить в ходе перекодировки так, чтобы она появлялась в перекодированных блоках 140 между отметками времени timestamp и timestamp + duration. Флаг дупликации может быть установлен, например, для данных громкости для указания того, что кадры имеют одинаковую норму dialnorm. В более общих выражениях, флаг дупликации может быть установлен для метаданных, не обладающих понятием времени. Флаг дупликации, как правило, не установлен для данных, которые сами по себе поддерживают концепцию времени, таких, как, например, битовый поток кодека. Иными словами, метаданные, являющиеся внутренне синхронизированными, могут не снабжаться установленным флагом дупликации и/или дедупликации, при этом термин «внутренне синхронизированный» означает, что значимой является только точная последовательность блоков метаданных, т.е. повторение или дедупликация может сделать эти метаданные недостоверными. Одним из примеров метаданных, являющихся внутренне синхронизированными, является отличающийся битовый поток (отличающийся от содержимого, заключенного в кадрах содержимого), встроенный в последовательность блоков метаданных из последовательности кадров метаданных.
Полезную нагрузку такого битового потока никогда не следует повторять или дедуплицировать. Иначе говоря, этот битовый поток не мог бы быть повторен по частям или частично прерван. Другим примером внутренне синхронизированных данных являются двоичные данные, такие, как исполняемая программа. Если такие двоичные данные передаются в нескольких блоках метаданных нескольких кадров метаданных, то дупликация или дедупликация блоков метаданных может сделать значение этих двоичных данных недостоверным.
- флаг дедупликации (de-duplicate): флаг дедупликации может обеспечивать то, что в ходе перекодировки каждый блок метаданных с конкретным идентификатором id в одном и том же исходящем кадре метаданных после первого из них, содержащего этот флаг установленным на единицу, может быть удален. Флаг дедупликации может быть установлен, например, для данных громкости, таких, как норма dialnorm, которые необязательно должны присутствовать несколько раз в каждом исходящем кадре 122 метаданных.
- флаг «now_or_never» указывает, что полезную нагрузку нельзя задерживать при перекодировке.
- параметр обработки РСМ, именуемый в Таблице 2 параметром «tight_coupling». Параметр обработки РСМ можно, например, использовать в контексте описываемого ниже преобразователя кода, связанного с РСМ, для того чтобы информировать преобразователь кода, связанный с РСМ, о том, каким образом обращаться с метаданными из конкретного кадра метаданных, ассоциированного с конкретным кадром содержимого, в случае модификации дискретных значений сигнала, заключенных в этом кадре содержимого. Функция параметра обработки РСМ будет более подробно описана ниже при описании функций преобразователя кода, связанного с РСМ.
Таблица 3 показывает синтаксис одного из примеров поля 143 данных из блока 140 метаданных.
Как описано выше, синтаксис битового потока для переноса метаданных (т.е. кадра 130 метаданных, содержащего блок 140 метаданных) может определять общие свойства метаданных (например, содержащиеся в описателе 142, т.е. в поле payload_config(), показанном в Таблице 2). Эти свойства допускают простое копирование метаданных из одного, входящего (т.е. первого) битового потока 110 в исходящий (т.е. второй) битовый поток 120, даже если первый кодек (использованный для кодирования входящего битового потока 110) и второй кодек (используемый для кодирования исходящего битового потока 120) используют разное кадрирование. Способ, которым осуществляется копирование метаданных, направляется свойствами, заключенными в описателе 142. Единственным, что, возможно, необходимо изменить в ходе процесса перекодировки, могут быть сами эти свойства. Однако модификация свойств, заключенных в описателе 142, не требует знания фактического значения метаданных, заключенных в поле данных 143 блока 140.
Ниже будут более подробно описаны примеры свойств, показанных в Таблице 2. В частности, будет описано, каким образом преобразователь кода 103 может использовать одно или несколько свойств, указываемых описателем 142, для выполнения эффективной перекодировки метаданных, заключенных в блоке 140 метаданных.
Фиг. 2а и 2b иллюстрируют использование параметра отметки времени, заключенного в описателе 142 блока 140 метаданных. На Фиг. 2а проиллюстрировано, каким образом параметр 201 отметки времени может быть обновлен преобразователем кода 103 при перекодировке метаданных из первого битового потока 110 во второй битовый поток 120. В иллюстрируемом примере параметр 201 отметки времени указывает положение конкретного дискретного значения 202 относительно конца ассоциированного кадра 111 содержимого (т.е. относительно самого последнего дискретного значения). Как таковой, параметр 201 отметки времени служит признаком «задержки» дискретного значения 202 относительно самого последнего дискретного значения в кадре 111 содержимого. В иллюстрируемом примере по Фиг. 2 кадры 121 содержимого второго битового потока 120 имеют другой, в частности больший, размер, чем кадры 111 содержимого из первого битового потока 110. В результате этого указанное конкретное дискретное значение 202 может быть расположено в другом относительном положении в кадре 121 содержимого второго битового потока 120 по сравнению с относительным положением в кадре 111 содержимого первого битового потока 110. В частности, это конкретное дискретное значение 202 может проявлять разную «задержку» по отношению к самому последнему дискретному значению, заключенному в исходящем кадре 111 содержимого. В результате этого параметр 201 отметки времени, заключенный в кадре 112 метаданных первого битового потока 110, может нуждаться в модификации при вставке в кадр 122 метаданных второго битового потока 120, что, таким образом, приводит к перекодированному параметру 203 отметки времени.
Фиг. 2b иллюстрирует возможность перемещения блоков 140 метаданных в битовом потоке 110, 120. Это может быть полезно для сглаживания битовой скорости передачи данных битового потока 120 после перекодировки. Для примера, метаданные из конкретного блока 140 метаданных в кадре 112 метаданных могут быть ассоциированы с конкретным дискретным значением 202 в кадре 111 содержимого (указываемом параметром 211 отметки времени). Как было описано выше, местоположение этого конкретного дискретного значения 202 может быть указано относительно последнего, т.е. самого нового, дискретного значения входящего кадра 111 содержимого. Если то, что метаданные из этого конкретного блока 140, поступают непосредственно после кадра 121 содержимого, содержащего дискретное значение 202 (что может быть указано флагом ассоциации (именуемым в Таблице 2 флагом «now-or-never»)), является несущественным, то данный конкретный блок 140 может быть перемещен преобразователем кода в кадр 222 метаданных кадра 221 содержимого, следующего за кадром 121 содержимого, содержащим дискретное значение 202. Преобразователь кода 103 может обновить параметр 213 отметки времени так, чтобы он указывал верное дискретное значение 202.
В частности, параметр 213 отметки времени может указывать положение дискретного значения 202 относительно последнего, т.е. самого нового, дискретного значения исходящего кадра 221 содержимого, с которым ассоциирован исходящий кадр 222 метаданных, содержащий параметр 213 отметки времени. С этой целью параметр 213 отметки времени может принимать значения, превышающие количество дискретных значений, заключенных в кадре 221 содержимого. Аналогичным образом, параметр 213 отметки времени может быть выполнен так, чтобы он принимал отрицательные значения. Эти отрицательные значения можно было бы использовать для указания дискретного значения 202, заключенного в будущем кадре содержимого, т.е. в кадре содержимого, следующем за кадром 221 содержимого, ассоциированным с кадром 222 метаданных, содержащим параметр 213 отметки времени. Действуя таким образом, метаданные можно передавать перед одним или несколькими дискретными значениями, с которыми они ассоциированы (например, теми, к которым они должны быть применены).
Как таковой, параметр 211 отметки времени (возможно, в сочетании с флагом ассоциации) позволяет преобразователю кода 103 передавать метаданные, связанные с отметкой 211 времени в последующем или предыдущем кадре 222 метаданных и корректировать отметку 213 времени так, чтобы она относилась к тому же дискретному значению 202 РСМ (даже если после перекодировки дискретное значение 202 не содержится в кадре 221 содержимого, ассоциированном с кадром 222 метаданных, содержащим данный конкретный блок 140). В результате этого преобразователь кода 103 обеспечивается некоторой гибкостью при сглаживании битовой скорости передачи данных второго битового потока 120.
Следует отметить, что - аналогично преобразователю кода 103 - кодер 101 может быть выполнен с возможностью включения метаданных для дискретного значения в последующий кадр метаданных. Как таковой, кодер 101 может быть выполнен с возможностью генерирования отметки времени 213, указывающей на дискретное значение 202, заключенное в кадре 121 содержимого, не являющемся кадром содержимого, с которым ассоциирован кадр метаданных, содержащий отметку времени 213.
Фиг. 3а и 3b иллюстрируют возможные случаи использования флага дедупликации, указываемого описателем 142 блока 140 метаданных. В иллюстрируемых случаях кадры 121 содержимого второго битового потока 120 представляют большее количество дискретных значений (т.е. имеют больший размер кадра), чем кадры 111 содержимого первого битового потока 110. Если размеры кадров отличаются, могут возникать ситуации, в которых единственный кадр 121 содержимого второго битового потока 120 содержит дискретные значения из более чем одного кадра 111 содержимого первого битового потока 110. В таких случаях, блоки 140 метаданных могут быть доступны для более чем одного кадра 112 метаданных, ассоциированного более чем с одним кадром 111 содержимого первого битового потока 110. Преобразователь кода 103 вынужден принимать решение о том, какие из блоков 140 метаданных следует включать в единственный кадр 122 метаданных единственного кадра 121 содержимого второго битового потока 120. Флаг дедупликации конкретного блока 140 может указывать преобразователю кода 103, что конкретный блок 140 необязательно должен быть вставлен в кадр 122 метаданных второго битового потока 120, если блоки 140 метаданных из ряда кадров 112 метаданных первого битового потока 110 подлежат слиянию. Таким образом, преобразователь кода 103 может быть выполнен с возможностью отбрасывания или игнорирования блоков 140 метаданных дополнительных кадров 112 метаданных, для которых установлен флаг дедупликации.
Это проиллюстрировано на Фиг. 3а, где исходящий кадр 121 содержимого (т.е. кадр 121 содержимого исходящего битового потока 120) содержит дискретные значения входящих кадров 111, 311 содержимого (т.е. кадров 111, 311 содержимого входящего битового потока 110). Преобразователю кода 103 приходится принимать решение о том, какие из блоков 140 входящий кадров 112, 312 метаданных (т.е. из кадров 112, 312 метаданных входящего битового потока 110) следует включить в исходящий кадр 122 метаданных (т.е. в кадр 122 метаданных исходящего битового потока 120), ассоциированный с исходящим кадром 121 содержимого. В иллюстрируемом примере по Фиг. 3а предполагается, что флаг дедупликации установлен, по меньшей мере, для одного или нескольких блоков 140 входящего кадра 312 метаданных. Как таковой, преобразователь кода 103 может быть выполнен с возможностью отбрасывания блоков 140 входящего кадра 312 метаданных.
Следует отметить, что также может быть установлен флаг дедупликации одного или нескольких блоков 140 входящего кадра 112 метаданных. Преобразователь кода 103 может быть выполнен с возможностью отбрасывания только блоков 140 второго (или дальнейшего) кадра 312 метаданных, использованного для построения кадра 122 метаданных. Иными словами, преобразователь кода 103 может быть выполнен с возможностью учета флага дедупликации только в том случае, если для генерирования исходящего кадра 122 метаданных следует учитывать более одного входящего кадра 112 метаданных. Как таковой, влаг дедупликации можно использовать для предотвращения «дубликатов» определенного типа из блока 140 метаданных, в то же время по-прежнему обеспечивая включение, по меньшей мере, одного блока 140 метаданных определенного типа.
Фиг. 3b иллюстрирует один из иллюстративных случаев, в которых флаг дедупликации не установлен. В этом случае преобразователь кода 103 может быть выполнен с возможностью учета блоков 140 из ряда входящих кадров 112, 312 метаданных при построении кадра 122 метаданных. В частности, преобразователь кода 103 может быть выполнен с возможностью вставки блока 140 из входящего кадра 312 метаданных в исходящий кадр 122 метаданных, если флаг дедупликации не установлен (даже в ситуациях, когда исходящий кадр 122 метаданных генерируется из ряда входящих кадров 112, 312 метаданных).
Флаг дедупликации можно использовать, например, для идентификации блоков 140 метаданных, которые были вставлены в ряд последовательных кадров 112, 312 данных (например, в каждый кадр 112, 312 метаданных битового потока 110). Как таковой, флаг дедупликации позволяет преобразователю кода 103 легко идентифицировать блоки 140 метаданных, которые можно отвергнуть (без необходимости в анализе метаданных, хранящихся в поле 143 данных блока 140 метаданных). Как результат, вычислительная сложность перекодировки метаданных понижается. С другой стороны, флаг дедупликации, не являющийся установленным, указывает, что соответствующий блок 140 метаданных не следует отбрасывать. Это можно использовать для вспомогательных данных с целью обеспечения того, что вспомогательные данные не будут отброшены, даже если ряд входящих кадров 112, 312 метаданных перекодируют в единый исходящий кадр 122 метаданных.
Фиг. 4а и 4b иллюстрируют один из примеров использования флага дупликации, указанного в описателе 142 блока 140 метаданных. В иллюстрируемом случае входящий кадр 111 содержимого содержит большее количество дискретных значений (т.е. имеет больший размер кадра), чем исходящий кадр 121 содержимого. Если размеры кадров отличаются, могут возникать ситуации, когда дискретные значения из единственного входящего кадра 111 содержимого заключены более чем в одном исходящем кадре 121, 131 содержимого. Как следствие, преобразователь кода 103 принимает единственный входящий кадр 112 метаданных и вынужден принимать решение о том, какой из ряда исходящих кадров 122, 322 метаданных поместить в конкретный блок 140 метаданных. Флаг дупликации можно использовать для указания преобразователю кода 130 того, следует ли дублировать конкретный блок 140 из входящего кадра 112 метаданных. Установив флаг дупликации, можно указать, что метаданные, заключенные в блоке 140, следует включить в каждый кадр 122, 322 метаданных, как показано на Фиг. 4а. С другой стороны, снятие флага дупликации указывает, что блок 140 метаданных следует передавать только один раз. Тогда преобразователь кода 103 вставляет блок 140 из входящего кадра 112 метаданных только в один единственный кадр из ряда исходящих кадров 122, 322 метаданных (как проиллюстрировано на Фиг. 4b).
Как было описано выше, описатель 142 блока 140 метаданных может служить признаком флага ассоциации (именуемого в Таблице 2 флагом «now_or_never»). Флаг ассоциации может указывать, что метаданные, заключенные в блоке 140, могут быть задержаны без оказания влияния на содержимое, заключенное в ассоциированном кадре содержимого. Как таковой, синтаксис описателя 142 может позволять преобразователю кода 103 задерживать метаданные на произвольное количество времени, если это - единственное свойство указанных метаданных. Это можно указать путем установки флага now_or_never на 0. Флаг ассоциации позволяет преобразователю кода 103 передавать метаданные, заключенные в блоке 140, например, тогда, когда лежащий в основе аудиокодек может «позволить себе» передачу этих метаданных, например, тогда, когда кадры содержимого содержат тишину. Одним из примеров метаданных, которые могут быть задержаны, являются вспомогательные данные или двоичные данные, такие, как обновление программно-аппаратного обеспечения, не нуждающееся в передаче наряду с конкретным кадром 121 содержимого.
Как было описано в контексте Таблицы 2, описатель 142 блока 140 метаданных может служить признаком или может содержать свойство приоритета, или параметр приоритета. Параметр приоритета может указывать относительную важность метаданных из конкретного блока 140 (например, по отношению к важности других блоков 140). Преобразователь кода 103 может принять решение о перекодировке определенного количества блоков 140 метаданных и может отвергать все остальные блоки в кадре 112 метаданных. Этого может требовать, например, перекодировка из входящего битового потока 110 с более высокой битовой скоростью передачи данных в исходящий поток 120 с менее высокой битовой скоростью передачи данных. Параметр приоритета может позволять преобразователю кода 103 выбирать те блоки 140 из входящего кадра 112 метаданных, которые обладают относительно более высокими приоритетами, и отвергать (или задерживать) те блоки 140, которые обладают менее высокими приоритетами.
Приложения и/или кодеры 101 могут предусматривать в одном кадре 112 метаданных несколько наборов метаданных, каждый из которых имеет отличающийся приоритет. Указанные несколько наборов метаданных могут быть ассоциированы с разным качеством метаданных. Приоритет метаданных более высокого качества может быть ниже приоритета метаданных менее высокого качества. Таким образом, преобразователь кода 103 может быть выполнен с возможностью ухудшения качества метаданных посредством учета параметра приоритета. Для примера, если приоритеты установлены таким образом, что возможно масштабирование, т.е. каждый набор метаданных может быть применен, если переданы все наборы метаданных одного и того же приложения с более высоким приоритетом, то преобразователь кода может постепенно ухудшать качество метаданных без необходимости в знании значения этих метаданных. В частности, несколько наборов метаданных могут содержать инкрементные метаданные, т.е. каждый набор метаданных может добавлять некоторое качество к набору метаданных со следующим по уровню приоритетом. Тогда наивысшее качество метаданных можно обеспечить путем объединения всех наборов метаданных (от высшего приоритета к низшему приоритету). Таким образом, входящий кадр 112 метаданных может содержать ряд блоков 140 инкрементных метаданных, при этом блок 140 метаданных с наивысшим приоритетом содержит версию метаданных с минимально допустимым качеством, и при этом блоки 140 с последовательно уменьшающимся приоритетом содержат инкрементные версии метаданных, позволяющие с определенным шагом повышать качество метаданных. Таким образом, преобразователь 103 кода может принимать решение о качестве метаданных, включаемых во второй битовый поток 120, учитывая параметры приоритета ряда блоков 140 инкрементных метаданных.
Как указано в примере синтаксиса кадра 112 метаданных, показанном в Таблице 1, кадр 130 метаданных может содержать поле защиты (protection). Это поле защиты можно использовать, для того чтобы позволить декодеру 104 проверять, было ли содержимое кадра 130 метаданных и/или содержимое ассоциированного кадра содержимого изменено, и, таким образом, может ли оно быть недостоверным. Иными словами, поле защиты может позволить декодеру 104 проверять, заслуживают ли доверия метаданные, заключенные в кадре 130 метаданных и/или заключенные в ассоциированном кадре содержимого. Таблица 4 показывает пример синтаксиса поля защиты кадра 130 метаданных. Это поле защиты может быть заключено в заголовке 131 кадра 130 метаданных.
Семантика поля защиты может быть следующей:
- protection_bits_frame может содержать усеченную полезную нагрузку защиты текущего кадра (содержащего кадр содержимого и/или ассоциированный кадр метаданных).
- protection_bits_history может содержать усеченную полезную нагрузку защиты текущего кадра и кадра (кадров) перед текущим кадром (содержащего кадр содержимого и/или ассоциированный кадр метаданных). Один из примеров схемы организации защиты последовательности кадров описан в международной патентной заявке WO №2011/015369, содержимое которой включается ссылкой.
Как таковое, поле защиты может содержать одну или несколько криптографических величин. Одна из криптографических величин может быть сгенерирована на основе метаданных, заключенных в текущем кадре метаданных (содержащем это поле защиты) и/или на основе кадра содержимого, ассоциированного с этим текущим кадром метаданных. Таким образом, можно гарантировать то, что конкретный кадр метаданных и/или ассоциированный кадр содержимого не являются модифицированными. Вторая из этих криптографических величин может быть сгенерирована на основе метаданных, заключенных в текущем кадре метаданных и в одном или нескольких предыдущих кадрах метаданных (а также на основе соответствующих кадров содержимого). Таким образом, можно гарантировать то, что последовательности кадров содержимого и/или кадров метаданных не являются модифицированными.
Криптографическую величину можно определить в кодере 101 путем применения односторонней функции к группе из одного или нескольких кадров 112, 312 метаданных и/или ассоциированных кадров 111, 311 содержимого. В частности, криптографическую величину можно генерировать, используя значение ключа и криптографическую хэш-функцию (так называемую одностороннюю функцию). В частности, криптографическую величину можно генерировать путем вычисления величины HMAC-MD5 (хэш-кода аутентификации сообщений) для данных, заключенных в одном или нескольких кадрах 112, 312 метаданных, и для данных, заключенных в одном или нескольких ассоциированных кадрах 111, 311 содержимого. Кроме того, генерирование криптографической величины может включать усечение величины HMAC-MD5, например, усечение до 16, 24, 32, 48, 64 или 128 битов. Это усечение может быть полезно в виду уменьшения необходимых накладных затрат для криптографической величины в кодированном битовом потоке 110, содержащем кадры 112, 312 метаданных. Следует отметить, что вместо MD5 можно использовать и другие хэш-функции, такие, как SHA-1 или SHA-256. Кроме того, следует отметить, что кодер 101 может быть выполнен с возможностью передачи нулевых битов криптографической величины, т.е. для того, чтобы не передавать криптографическую величину, например, в ситуации, когда не требуется какая-либо защита метаданных.
Более подробно, криптографическую величину для одного или нескольких кадров 111, 311 содержимого и для одного или нескольких кадров 112, 312 метаданных можно определить, используя криптографическую хэш-функцию Н(.) и «секретный» ключ K (также именуемый криптографическим ключом), которые, как правило, справа заполнены дополнительными нулями до размера блока хэш-функции Н(.), для определения хэш-кода аутентификации сообщений (НМАС) для одного или нескольких кадров 111, 311 содержимого и для одного или нескольких кадров 112, 312 метаданных. Пусть условный знак || обозначает сцепление, условный знак ⊕ обозначает исключающее ИЛИ, а внешнее заполнение opad=0x5c5c5c…5c5c и внутреннее заполнение ipad=0x363636…3636 являются постоянными длины размера блока хэш-функции Н(.), тогда величину НМАС одного или нескольких кадров 111, 311 содержимого и одного или нескольких кадров 112, 312 метаданных можно записать как
НМАС(m)=Н((K⊕opad)||Н((K⊕ipad)||m)),
где m - объединенная битовая последовательность одного или нескольких кадров 111, 311 содержимого и одного или нескольких кадров 112, 312 метаданных. Размер блока, используемый хэш-функциями MD5 или SHA-1, или SHA-256, как правило, составляет 512 битов. Размер вывода операции НМАС является таким же, как размер лежащей в ее основе хэш-функции, т.е. 128 битов - в случае MD5, или 160 битов - в случае SHA-1.
Таким образом, поле защиты может содержать, по меньшей мере, две криптографические величины:
- криптографическую величину кадра (именуемую в Таблице 4 «protection_bits_frame»), которая служит признаком аутентичности отдельного кадра 111 содержимого и ассоциированного с ним кадра 112 метаданных. Эту криптографическую величину кадра можно использовать для идентификации того, были ли изменены данные отдельного кадра 111 содержимого и ассоциированного с ним кадра 112 метаданных. Криптографическую величину кадра можно определить с использованием сообщения m, содержащего битовую последовательность отдельного кадра 111 содержимого и ассоциированного с ним кадра 112 метаданных (или полезной нагрузки, заключенной в указанном кадре 111 содержимого и ассоциированном с ним кадре 112 метаданных).
- хронологическую криптографическую величину (именуемую в Таблице 4 «protection_bits_history»), которая служит признаком аутентичности последовательности из, по меньшей мере, двух кадров 111, 311 содержимого и ассоциированных с ними двух кадров 112, 312 метаданных. Эту хронологическую криптографическую величину можно использовать для идентификации, по меньшей мере, двух кадров 111, 311 содержимого и ассоциированных с ними кадров 112, 312 метаданных, которые были изменены. Хронологическую криптографическую величину можно определить, используя сообщение m, содержащее битовую последовательность, по меньшей мере, двух кадров 111, 311 содержимого и ассоциированных с ними, по меньшей мере, двух кадров 112, 312 метаданных (или заключенную в них полезную нагрузку).
Как было описано выше, криптографические величины определяют, используя криптографический ключ K, который, как правило, известен кодеру 101 и декодеру 104. В настоящем документе предлагается сделать возможными несколько уровней доверия, допуская использование разных криптографических ключей K, предусматривающих разные уровни доверия. Для примера, можно предусмотреть два уровня ключей, заслуживающих доверия:
1
- криптографический ключ K с высоким уровнем защиты, который нельзя раскрывать каким-либо сторонам вне субъекта, предоставляющего компоненты 101, 103, 104 на протяжении цепочки 100 распространения. Таким субъектом может быть поставщик систем кодеков, используемых на протяжении цепочки 100 распространения (например, Dolby Laboratories). В частности, таким субъектом может быть поставщик кодеров и декодеров, используемых на протяжении цепочки 100 распространения. Сохраняя криптографический ключ с высоким уровнем защиты нераскрытым, можно гарантировать, что декодер 104, представляющий звуковой сигнал, содержащийся в принятом битовом потоке 120, будет уверен, что метаданные, содержащиеся в кадрах 122, 322 метаданных принимаемого битового потока 120, являются аутентичными и не были несанкционированным образом модифицированы на протяжении цепочки 100 распространения.
2
2
1
- криптографический ключ K с умеренным уровнем защиты, который можно раскрывать другим сторонам, например, сторонам, эксплуатирующим некоторые из компонентов 101, 103, 104 на протяжении цепочки 100 распространения (например, лицензиатам поставщика систем кодеков). Если декодер 104 принимает битовый поток 120, который был защищен с использованием криптографического ключа K с умеренным уровнем защиты, декодеру 104 будет известно, что битовый поток 120 содержит метаданные (в кадрах 122, 322 метаданных), которые были затронуты в соответствии с некоторой политикой оператора цепочки 100 распространения, которая может отличаться от политики поставщика систем кодеков (владеющего криптографическим ключом K с высоким уровнем защиты).
Указатель криптографического ключа K, использованного кодером 101, может быть доставлен в кадре 130 метаданных (например, в заголовке 131 кадра 130 метаданных). Это проиллюстрировано в Таблице 1, где показан параметр key_id. Параметр key_id может содержать индекс к предварительно определенному количеству криптографических ключей, посредством этого позволяя декодеру 104 определять криптографический ключ K, который был использован для определения одной или нескольких криптографических величин, причем эта одна или несколько криптографических величин могут быть заключены в поле protection() кадра 130 метаданных, как показано в Таблице 4. Тогда декодер 104 может использовать идентифицированный криптографический ключ для определения одной или нескольких криптографических величин таким же образом, как это осуществляется соответствующим кодером 101. Криптографические величины, определенные декодером 104, могут именоваться проверочными криптографическими величинами. Эти проверочные криптографические величины затем сравниваются с криптографическими величинами, хранящимися в кадре 103 метаданных. В случае совпадения, подтверждается, что данный отдельный кадр и/или последовательность кадров не была модифицирована. С другой стороны, в случае несовпадения, подтверждается, что данный отдельный кадр и/или последовательность кадров была модифицирована.
В качестве альтернативы или в дополнение, для создания указателя криптографического ключа в кадре 130 метаданных декодер 104 может быть выполнен с возможностью определения ряда наборов проверочных криптографических величин с использованием ряда предварительно определенных криптографических ключей, известных декодеру 104. Если один из наборов проверочных криптографических величин совпадает с криптографическими величинами, заключенными в кадре 130 метаданных, декодер 104 узнает, какой криптографический ключ был использован, и что данный отдельный кадр и/или последовательность кадров не была модифицирована. С другой стороны, несовпадение всех наборов проверочных криптографических величин указывает на то, что данный отдельный кадр и/или последовательность кадров была модифицирована.
Наличие возможности обнаружения того, какой ключ был использован для защиты битового потока 110, 120 в декодерах 104 и преобразователях кода 103, позволяет приложениям принимать более тонкие решения о том, что следует делать с данными с различной степенью доверия. Решения должны отличаться в зависимости от выбранного криптографического ключа. В частности, может быть обнаружен криптографический ключ с высоким уровнем защиты, может быть обнаружен криптографический ключ с умеренным уровнем защиты, и может не быть обнаружен ни один достоверный ключ, и проверка безопасности может быть не пройдена.
Таким образом, в сравнении с решением, использующим единственный криптографический ключ, где можно принять лишь двоичное решение о том, являются ли данные заслуживающими доверия, при использовании ряда различных криптографических ключей (закрепленных за различными уровнями доверия) можно создать уровни степени доверия.
Как описано в контексте Фиг. 1, цепочка 100 распространения звукового содержимого может содержать преобразователь кода 103, выполненный с возможностью преобразования входящего битового потока 110 в исходящий битовый поток 120. Перекодировка, выполняемая преобразователе кода 103, может относиться к перекодировке из первой системы аудиокодека во вторую, возможно, отличающуюся систему аудиокодека. В качестве альтернативы или в дополнение, перекодировка может относиться к изменению битовой скорости передачи данных исходящего битового потока 120 относительно битовой скорости передачи данных входящего битового потока 110.
Преобразователь кода 103 может содержать декодер для декодирования входящего битового потока 110 в звуковой сигнал РСМ (с импульсно-кодовой модуляцией). Кроме того, преобразователь кода 103 может содержать кодер для кодирования звукового сигнала РСМ в исходящий битовый поток 120. Такой преобразователь кода 103 может именоваться преобразователем кода, «связанным с РСМ», так как один или несколько декодеров (для декодирования одного или нескольких входящих битовых потоков 110) связаны с одним или несколькими кодерами (для кодирования одного или нескольких исходящих битовых потоков 120) посредством линейной модуляции РСМ.
Преобразователь кода 103 может представлять собой так называемый профессиональный преобразователь кода, который представляет собой устройство, используемое такими профессиональными поставщиками содержимого, как вещательные компании. Как было описано выше, преобразователь кода 103 может быть выполнен с возможностью приема входящего битового потока 110 в первом формате (например, Dolby Е) и перекодировки этого входящего битового потока 110 в другой формат (например, Dolby Digital Plus). Такие преобразователи кода 103, как правило, объединяют несколько декодеров (для декодирования входящего битового потока 110) и один или несколько кодеров (для кодирования исходящего битового потока 120).
Преобразователь кода, связанный с РСМ, может содержать одну или несколько ступеней обработки между декодером и кодером. Одним из примеров такой обработки РСМ является регулировка уровня громкости.
Другими примерами обработки РСМ являются: преобразование частоты дискретизации, понижающее микширование каналов и/или повышающее микширование каналов.
Такие преобразователи кода 103, связанные с РСМ, бросают вызов в отношении вышеописанных проблем аутентичности, защиты и доверия. Как было описано выше, входящий битовый поток 110 может содержать кадры 112, 312 метаданных, защищенные с использованием одной или нескольких криптографических величин (заключенных, например, в поле защиты кадров 112, 312 метаданных, как показано в Таблицах 1 и 4). Преобразователь кода 103, связанный с РСМ, позволяет пользователю модифицировать данные РСМ, полученные из кадров 111, 311 содержимого, посредством чего возможна потеря достоверности метаданными, заключенными в ассоциированных кадрах 112, 312 метаданных, посредством чего возможна компрометация степени доверия к этим метаданным.
В настоящем документе описывается способ и система для обеспечения степени доверия к метаданным в преобразователе кода 103. В частности, описываемый способ и система делают возможным сохранение степени доверия к метаданным, заключенным в кадрах 112, 312 метаданных, даже при использовании преобразователя кода 103, связанного с РСМ.
Фиг. 5а-5d, соответственно, показывают пример преобразователей кода 503, 513, 523, 533, связанных с РСМ. Эти преобразователи кода содержат декодер 504, выполненный с возможностью преобразования входящего битового потока 110 (содержащего последовательность кадров 111 содержимого и последовательность ассоциированных кадров 112 метаданных), соответственно, в данные РСМ и метаданные. Декодер 504 может быть выполнен с возможностью проверки правильности входящего битового потока 110 с использованием вышеописанной схемы защиты. С этой целью декодер 504 может быть осведомлен о некоторых или всех предварительно определенных криптографических ключах.
Как правило, декодер 504 предусматривает незащищенный набор данных РСМ и метаданные (например, на покадровой основе). Иными словами, декодер 504, как правило, декодирует каждый кадр 111 содержимого и ассоциированный кадр 112 метаданных и создает соответствующий набор данных РСМ и метаданные без защиты. Как таковой, декодер 504 предусматривает последовательность наборов данных РСМ м метаданные из соответствующей последовательности кадров 111 содержимого и кадров 112 метаданных. Эту последовательность наборов данных РСМ и метаданные можно модифицировать посредством преобразователя кода, а затем передать в кодер 501, выполненный с возможностью преобразования последовательности (возможно, модифицированных) наборов данных РСМ и метаданных в исходящий битовый поток 120. В этом контексте, кодер 501, как правило, не способен проверить, была ли эта последовательность (возможно, модифицированных) наборов данных РСМ и метаданных модифицирована воспринимаемым образом. Иными словами, кодер 501 может не выполнять проверку степени доверия к последовательности (возможно, модифицированных) наборов данных РСМ и метаданных.
В настоящем документе предлагается позволить декодеру 504 создавать одну или несколько сигнатурных величин на основе одного или нескольких наборов данных РСМ и метаданных, посредством этого делая возможной защиту связи РСМ между декодером 504 и кодером 501. Эти сигнатурные величины можно определять аналогично вышеописанным криптографическим величинам. Однако сигнатурные величины могут использовать сообщение m, содержащее один или несколько наборов данных РСМ и метаданные (в отличие от одного или нескольких кадров содержимого и ассоциированных кадров метаданных). В частности, декодер 504 может быть выполнен с возможностью определения:
- сигнатурной величины кадра на основе индивидуального набора данных РСМ и ассоциированных метаданных; и
- хронологической сигнатурной величины на основе двух или большего количества последовательных наборов данных РСМ и ассоциированных метаданных.
Иными словами, в пределах области РСМ преобразователя кода 503, связанного с РСМ (т.е. между декодером 504 и кодером 501), степень доверия к содержимому может быть «защищена» с использованием одной или нескольких сигнатур (также именуемых сигнатурными величинами). Декодер 504 может быть выполнен с возможностью выработки одной или нескольких сигнатурных величин в качестве вывода. Эту одну или несколько сигнатурных величин можно вычислить по сумме данных РСМ, обычных метаданных (взятых из кадра содержимого) и дополнительных метаданных (взятых из ассоциированного кадра метаданных), вырабатываемой декодером 504. Таким образом, для каждого кадра входящего битового потока 110 на основе декодированных наборов данных РСМ и метаданных можно определить одну или несколько сигнатурных величин. Эта одна или несколько сигнатурных величин могут быть использованы соответствующим кодером 501 для выполнения проверки того, были ли модифицированы принятый набор данных РСМ и метаданные, и являются ли они заслуживающими доверия.
Кодер 501 принимает одну или несколько сигнатурных величин в качестве ввода наряду с данными РСМ, обычными метаданными и дополнительными метаданными. Кодер 501 может затем проверять сигнатурные величины в сравнении с другими вводами (т.е. в сравнении с принятым набором (наборами) данных РСМ и метаданными). Если другие вводы были модифицированы/подверглись несанкционированному вмешательству, проверка сигнатур завершится неудачно, и кодер предпримет соответствующее действие. Проверку одной или нескольких сигнатурных величин можно выполнить в кодере 501 путем определения проверочных сигнатурных величин на основе принятого одного или нескольких наборов данных РСМ и метаданных (аналогично тому, как это описано для криптографических величин).
1
2
Таким образом, можно сохранять степень доверия к декодированным данным РСМ (и ассоциированным метаданным) в преобразователе кода 103, связанном с РСМ, позволяя декодеру 504 определять одну или несколько сигнатурных величин на основе декодированных данных РСМ и ассоциированных метаданных, и позволяя соответствующему кодеру 501 проверять аутентичность подлежащих кодированию данных РСМ (и ассоциированных метаданных) на основе одной или нескольких сигнатурных величин. Определение одной или нескольких сигнатурных величин и их проверку можно выполнять на основе единственного или на основе нескольких вышеописанных сглаженных криптографических ключей K и K, причем этот один или несколько криптографических ключей могут быть известны только декодеру 504 и кодеру 501, и, как правило, они не известны субъекту, выполняющему обработку РСМ на связи между декодером 504 и кодером 501.
Использование одной или нескольких сигнатурных величин позволяет реализовать различные варианты использования, проиллюстрированные на Фиг. 5а-5d. Фиг. 5а иллюстрирует преобразователь кода 503, где между декодером 504 и кодером 501 обработка РСМ не выполняется. Как следствие, защищенные данные 510 (содержащие один или несколько наборов данных РСМ и ассоциированные метаданные, а также одну или несколько ассоциированных сигнатур) не модифицируются, и цепочка доверия в преобразователе кода 503 сохраняется. Как результат, преобразователь кода по Фиг. 5а выполнен с возможностью приема входящего битового потока 110, содержащего защищенную и заслуживающую доверия последовательность входящих кадров 111 содержимого и ассоциированных входящих кадров 112 метаданных (также именуемых кадрами развития), и для создания исходящего битового потока 120, содержащего защищенную и заслуживающую доверия последовательность исходящих кадров 121 содержимого и ассоциированных исходящих кадров 122 метаданных. Это обеспечивается посредством защиты декодированных данных РСМ, обычных метаданных и дополнительных метаданных (также именуемых метаданными развития) с использованием одной или нескольких сигнатур. Кодер 501 проверяет эту одну или несколько сигнатур и передает кадры 122 дополнительных метаданных в исходящий битовый поток 120. Вариант использования, показанный на Фиг. 5а, может быть применим, например, для перекодировки битового потока от первой битовой скорости передачи данных ко второй битовой скорости передачи данных.
Фиг. 5b показывает преобразователь кода 513, связанный с РСМ, где цепочка доверия разорвана не заслуживающей доверия ступенью 505 обработки РСМ. Эта ступень обработки РСМ принимает защищенные данные 510 и модифицирует эти данные 510. Ступень 505 обработки РСМ является «не заслуживающей доверия» из-за того, что ступень 505 обработки РСМ не осведомлена о криптографическом ключе K, используемом декодером 504. Как следствие, модифицированные данные 511 содержат один или несколько наборов модифицированных данных РСМ и ассоциированных метаданных, а также одну или несколько недостоверных сигнатур.
Кодер 501 выполнен с возможностью определения недостоверности сигнатур и может быть выполнен с возможностью предпринимать соответствующее действие. В частности, кодер 501 может быть выполнен с возможностью отбрасывания дополнительных метаданных из входящих кадров 112 метаданных, посредством чего создается исходящий битовый поток 120, содержащий только последовательность кадров 121 содержимого, но не содержащий ассоциированные кадры 122 метаданных. Таким образом, обеспечивается то, что преобразователь кода 513 не пересылает не заслуживающие доверия метаданные. Кроме того, по причине того, что битовый поток 120 не содержит кадры 122 метаданных, этот битовый поток 120 не содержит вышеупомянутые криптографические величины (из полей защиты кадров 122 метаданных). Таким образом, битовый поток 120 может быть идентифицирован декодером 104 как не заслуживающий доверия.
Как было указано выше, кодер 501 может быть выполнен с возможностью отбрасывания дополнительных метаданных из входящих кадров 112 метаданных, если одна или несколько сигнатурных величин не являются достоверными.
Как было описано в контексте Таблицы 2, блоки 140 метаданных входящего кадра 112 метаданных могут служить признаками соответствующих описателей 142, описывающих одно или несколько свойств соответствующих блоков 140 метаданных. Одним из этих свойств может быть параметр обработки РСМ (именуемый в Таблице 2 параметром tight_coupling). Кодер 501 может быть выполнен с возможностью использования параметра обработки РСМ блока 142 метаданных для принятия решения о том, включать ли метаданные, заключенные в блоке 142 метаданных, в исходящий битовый поток. В частности, параметр обработки РСМ может указывать кодеру 501 включить метаданные из блока 140 входящего кадра 112 метаданных в исходящий битовый поток 120, даже если дискретные значения РСМ из ассоциированного кадра 111 содержимого были модифицированы.
Таблица 5 показывает семантику параметра обработки РСМ (т.е. параметра tight_coupling по Таблице 2). В иллюстрируемом примере значение «0» параметра обработки РСМ указывает, что полезную нагрузку 143 (т.е. метаданные) из блока 140 метаданных следует включать в исходящий битовый поток 120 только в том случае, если не происходит обработка РСМ, например, только в том случае, если кодером 501 была проверена одна или несколько сигнатурных величин. С другой стороны, значение «3» параметра обработки РСМ может указывать, что полезную нагрузку 143 блока 140 следует всегда включать в исходящий битовый поток 120, даже если дискретные значения РСМ были модифицированы, например, даже если одна или несколько сигнатурных величин не были проверены. Кроме того, параметр обработки РСМ может принимать значения, указывающие промежуточные ситуации, т.е. параметр обработки РСМ может принимать значения, указывающие условия обработки РСМ, которым должна удовлетворять полезная нагрузка 143, для того чтобы она была включена в исходящий битовый поток 120, или указывающие условия обработки РСМ, в случае которых полезная нагрузка 143 не включается в исходящий битовый поток 120.
Ступень 505 обработки РСМ может быть выполнена с возможностью информирования кодера 501 об обработке, которая была выполнена на дискретных значениях РСМ на ступени 505 обработки РСМ. Иными словами, ступень 505 обработки РСМ может быть выполнена с возможностью информирования кодера 501 об условиях обработки РСМ (например, о преобразовании частоты дискретизации дискретных значений РСМ, включении системного звука в дискретные значения РСМ, модификации метаданных, модификации конфигурации каналов (например, модификации монофонического сигнала в стереофонический сигнал или понижающем микшировании многоканального сигнала 5.1 в стереофонический сигнал), регулировке уровня громкости и т.д.). Таким образом, кодер 501 может быть выполнен с возможностью приема указателей условий обработки РСМ со ступени 505 обработки РСМ. Кроме того, кодер 501 может быть выполнен с возможностью обработки метаданных из блока 140 метаданных на основе принятых условий обработки РСМ и на основе значения параметра обработки РСМ (например, в соответствии с семантикой по Таблице 5).
2
2
2
1
Фиг. 5с иллюстрирует случай преобразователя кода 523, связанного с РСМ, выполненного с возможностью выполнения заслуживающей доверия обработки РСМ. Этого можно достичь путем сочетания ступени 506 обработки РСМ с дополнительной ступенью 507 повторного подписания. Для этой цели заслуживающая доверия сторона может быть снабжена одним или несколькими криптографическими ключами, посредством чего делается возможным повторное подписание модифицированных данных 511 заслуживающей доверия стороной. Для примера, заслуживающая доверия сторона может быть снабжена криптографическим ключом K с умеренным уровнем защиты. Как результат, модифицированные данные 511 могут быть повторно подписаны (т.е. на основе модифицированных данных 511 с использованием криптографического ключа K с умеренным уровнем защиты может быть определена одна или несколько сигнатурных величин), посредством чего создаются модифицированные защищенные данные 512 (содержащие последовательность наборов модифицированных данных РСМ и ассоциированных метаданных, а также одна или несколько новых сигнатур). Кодер 501 может быть выполнен с возможностью проверки этой новой сигнатуры и генерирования заслуживающего доверия исходящего битового потока 120, содержащего последовательность кадров 121 содержимого и ассоциированную последовательность кадров 122 метаданных. Кроме того, кодер 501 может быть выполнен с возможностью определения того, что цепочка доверия была разорвана, и того, что была создана новая цепочка доверия, поскольку ступенью 507 повторного подписания мог быть использован иной криптографический ключ (например, криптографический ключ K с умеренным уровнем защиты), чем криптографический ключ, использованный декодером 504 (которым мог быть использован криптографический ключ K с высоким уровнем защиты).
Фиг. 5d показывает блок-схему преобразователя кода 533, связанного с РСМ, со ступенью 509 обработки РСМ, заключенной в кодере 501. В частности, преобразователь кода 533 выполнен с возможностью сохранения цепочки доверия путем обеспечения того, что обработка РСМ выполняется субъектом (например, кодером 501), осведомленным о криптографическом ключе, использованном декодером 504 для определения одной или нескольких сигнатурных величин. Кодер 501 выполнен с возможностью проверки одной или нескольких сигнатур обработанных данных 510. Ступень 508 внутренней обработки РСМ может затем модифицировать принятые наборы данных РСМ и ассоциированные метаданные. Кроме того, кодер 501 может содержать модуль 509 обновления метаданных, выполненный с возможностью обновления кадров метаданных при условии модификаций, выполненных на ступени 508 обработки РСМ. В частности, модуль 509 обновления метаданных может быть выполнен с возможностью определения обновленных криптографических величин на основе перекодированных кадров 121 содержимого и кадров 122 метаданных. Обновленные криптографические величины можно затем включать в кадры 122 метаданных для сообщения декодеру 104.
Фиг. 6 предоставляет другое представление преобразователей кода 503, 513, 523 и 533, соответственно.
В настоящем документе были описаны способы и системы для перекодировки метаданных. Эти способы и системы допускают перекодировку метаданных с пониженной вычислительной сложностью. В частности, предлагается создание описателей для блоков метаданных, таким образом, позволяющих преобразователю данных перекодировать метаданные только на основе этих описателей без необходимости в анализе фактических метаданных, заключенных в блоке метаданных. Действуя таким образом, можно значительно понизить сложность преобразователя данных. Кроме того, настоящее изобретение предусматривает способы и системы для защиты кадров метаданных и для защиты данных РСМ в преобразователе кода, связанном с РСМ. Как результат, можно обеспечить то, что приемник метаданных преобразователя данных будет снабжаться указателем степени доверия принятых метаданных.
Способы и системы, описанные в настоящем документе, могут быть реализованы как программное обеспечение, программно-аппаратное обеспечение и/или аппаратное обеспечение. Некоторые компоненты могут быть реализованы, например, как программное обеспечение, запускаемое на процессоре цифровой обработки сигналов или микропроцессоре. Другие компоненты могут быть реализованы, например, как аппаратное обеспечение или как интегральные микросхемы специального назначения. Сигналы, встречающиеся в описанных способах и системах, могут храниться на таких носителях, как память с произвольным доступом или оптические носители данных. Они могут быть переданы по сетям, таким, как радиосети, спутниковые сети, беспроводные сети или проводные сети, например, Интернет. Типичными устройствами, использующими способы и системы, описанные в настоящем документе, являются переносные электронные устройства или другая бытовая аппаратура, используемая для хранения и/или представления звуковых сигналов.