СИСТЕМА И СПОСОБ ДЛЯ СИГНАЛИЗАЦИИ ШИФРОВАНИЯ СЕГМЕНТА И ВЫРАБОТКИ КЛЮЧА ДЛЯ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ Российский патент 2016 года по МПК H04N21/2347 H04N21/845 

Описание патента на изобретение RU2575021C1

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ

[0001] Данная заявка испрашивает приоритет предварительной заявки США №61/638963, поданной 26 апреля 2012 г. под авторством Синь Ван (Xin Wang) и др., озаглавленной "System and Method for Signaling Segment Encryption and Key Derivation for Adaptive Streaming", которая полностью включается в этот документ посредством ссылки.

[0002] Поставщик или распространитель медиаконтента может доставлять различный медиаконтент абонентам или пользователям, используя разные схемы шифрования и/или кодирования, подходящие для разных устройств, например телевизоров, блокнотных компьютеров и мобильных телефонов. Поставщик медиаконтента может поддерживать множество медиакодеров и/или медиадекодеров (кодеков), медиапроигрывателей, частот кадров видео, пространственных разрешений, скоростей передачи битов, форматов видео или их сочетаний. Часть медиаконтента может быть преобразована из представления источника или исходного представления в различные другие представления, чтобы приспособиться к разным пользовательским устройствам.

[0003] Часть медиаконтента может содержать описание представления медиа (MPD) и множество сегментов. MPD может содержать элементы и атрибуты, запрограммированные для описания информации о медиаконтенте. При программировании на расширяемом языке разметки (XML) элемент может содержать три части, включающие в себя начальный тег, указанный с помощью <element name>, содержимое элемента и конечный тег, указанный с помощью </element name>. Кроме того, элемент может содержать один или несколько атрибутов и/или дочерних элементов. Атрибут может содержать название атрибута и значение атрибута. MPD может быть файлом или документом XML, описывающим медиаконтент, например его различные представления (заданные ниже), адреса универсальных указателей ресурса (URL) и другие характеристики. Например, медиаконтент может содержать несколько медиа компонентов (например, аудио, видео и текст), каждый из которых может обладать разными характеристиками, которые задаются в MPD. Каждый медиакомпонент содержит множество сегментов, содержащих части фактического медиаконтента, и сегменты могут храниться вместе в одном файле либо отдельно в нескольких файлах. Каждый сегмент может содержать предопределенный размер в байтах (например, 1000 байтов) или интервал времени воспроизведения (например, 2 или 5 секунд) медиаконтента. Сегмент может содержать минимальную, индивидуально адресуемую единицу данных; сущность, которую можно загрузить с использованием URL, объявляемых посредством MPD.

[0004] В зависимости от применения медиаконтент можно разделить на различные иерархии. Например, медиаконтент может содержать несколько периодов, где период является интервалом времени относительно длиннее сегмента. Например, телевизионную программу можно разделить на несколько 5-минутных программных периодов, которые разделяются несколькими 2-минутными рекламными периодами. Кроме того, период может содержать один или несколько наборов адаптации (AS). AS может предоставлять информацию об одном или нескольких медиакомпонентах и его/их различных кодированных представлениях. Представление может быть задано как одна кодированная версия полного объекта или подмножества его компонентов, например базовый формат медиафайлов от Международной организации по стандартизации (ISO) (ISO-BMFF), содержащий немультиплексированное видео на скорости 2,5 мегабит в секунду (Мбит/с) с разрешением 720 пикселей (р) по стандарту Улучшенного кодирования видео (AVC) и отдельные представления ISO-BMFF для аудио на скорости 96 килобит в секунду (Кбит/с) по стандарту Усовершенствованного аудиокодирования (ААС) Экспертной группы - 4 по движущимся изображениям (MPEG-4) на разных языках. Например, AS может содержать разные скорости передачи битов у видеокомпонента медиаконтента, тогда как другой AS может содержать разные скорости передачи битов у аудиокомпонента того же медиаконтента. Представление может быть кодированной альтернативой медиакомпонента, отличающейся от других представлений скоростью передачи битов, разрешением, количеством каналов или другими характеристиками либо их сочетаниями. Каждое представление содержит несколько сегментов, которые являются порциями медиаконтента во временной последовательности. Кроме того, могут использоваться подсегменты для предоставления возможности загрузки сегмента в нескольких частях, причем каждый подсегмент имеет определенную длительность и/или размер в байтах. Специалист в данной области техники предположит различные иерархии, которые могут использоваться для доставки медиаконтента.

[0005] В адаптивной потоковой передаче данных при доставке медиаконтента на пользовательское устройство пользовательское устройство может динамически выбирать подходящие сегменты на основе ряда факторов, например сетевых условий, возможности устройства и выбора пользователя. Адаптивная потоковая передача данных может включать в себя различные технологии или стандарты, реализованные или разрабатываемые, например Динамическую адаптивную потоковую передачу по протоколу передачи гипертекстовых файлов (HTTP) (DASH), реальную потоковую передачу по HTTP (HLS) или плавную потоковую передачу с помощью Информационных служб Интернета (IIS). Например, пользовательское устройство может выбрать сегмент с наивысшим возможным качеством (например, разрешением или скоростью передачи битов), который можно загрузить точно к воспроизведению, не вызывая событий остановки или повторной буферизации при воспроизведении. Таким образом, пользовательское устройство может плавно адаптировать свое воспроизведение медиаконтента к изменяющимся сетевым условиям. Чтобы предотвратить взлом, атаки и/или несанкционированный доступ к медиаконтенту, может понадобиться защитить сегменты медиаконтента посредством схем аутентификации, в этом документе называемых схемами шифрования или кодирования.

[0006] В методиках адаптивной потоковой передачи данных, например стандарте Экспертной группы по движущимся изображениям (MPEG)-DASH, сегменты можно шифровать или кодировать как часть схемы аутентификации, например, чтобы обеспечить модель видеопотока с оплатой за просмотр. Одним примером является схема аутентификации сегментов, заданная в проекте стандарта с номером ISO/IEC 23009-4, озаглавленном "Dynamic Adaptive Streaming over HTTP (DASH) - Part 4: Segment Encryption and Authentication" (ISO/IEC 23009-4), включенном в этот документ путем отсылки, где IEC означает Международную электротехническую комиссию (IEC). Кодирование всего потока MPEG может создать больше потоков, чем необходимо, потребовать сравнительно большей вычислительной мощности и/или внести запаздывание, и в результате некоторые протоколы кодируют лишь некоторые сегменты. Традиционные подходы использовали схемы с чередованием для выборочного кодирования сегментов, например кодирование четных сегментов и оставление некодированными нечетных сегментов. Несмотря на кодирование в объеме меньше полного потока этот подход все же может кодировать больше сегментов, чем необходимо. Традиционные подходы дополнительно опирались на подход одного алгоритма для кодирования потока, который может не позволять объединить контент из разных источников в единый поток MPEG, например развлекательный контент из первого источника и рекламные объявления из второго источника. Традиционные подходы дополнительно включали в себя векторы инициализации с информацией раскодирования или дешифрования потока, не обеспечивающей позднюю привязку векторов инициализации.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0007] В одном варианте осуществления раскрытие изобретения включает в себя устройство для декодирования медиапотока, где устройство содержит модуль памяти, процессорный модуль, соединенный с модулем памяти, где модуль памяти содержит инструкции, которые при исполнении процессором побуждают устройство выполнить следующее: принять медиапоток, содержащий сигнальную информацию (signaling information, служебную информацию) сегментов и множество сегментов, где множество сегментов содержит кодированные и некодированные сегменты, где сигнальная информация сегментов содержит идентификацию по меньшей мере двух групп сегментов, причем каждая содержит по меньшей мере один сегмент, идентифицировать по меньшей мере одну группу сегментов, используя сигнальную информацию сегментов в медиапотоке, идентифицировать по меньшей мере один алгоритм декодирования сегментов для по меньшей мере одной группы сегментов, идентифицировать по меньшей мере один ключ декодирования для по меньшей мере группы сегментов и декодировать каждый кодированный сегмент в по меньшей мере группе сегментов, используя по меньшей мере алгоритм декодирования сегментов и по меньшей мере один ключ декодирования.

[0008] В другом варианте осуществления раскрытие изобретения включает в себя устройство для отправки кодированного медиапотока, где устройство содержит модуль памяти, процессорный модуль, соединенный с модулем памяти, где модуль памяти содержит инструкции, которые при исполнении процессором побуждают устройство отправить медиапоток, содержащий множество кодированных и некодированных сегментов, и сигнальную информацию сегментов, содержащую информацию, достаточную для идентификации по меньшей мере двух групп сегментов, причем каждая содержит по меньшей мере один сегмент по меньшей мере одного алгоритма декодирования сегментов, по меньшей мере одного ключа декодирования и по меньшей мере одного вектора инициализации, где кодированные сегменты каждой из по меньшей мере двух групп сегментов можно декодировать с использованием по меньшей мере одного алгоритма декодирования, по меньшей мере одного ключа декодирования и по меньшей мере одного вектора инициализации.

[0009] В другом варианте осуществления раскрытие изобретения включает в себя способ для декодирования медиапотока, содержащий прием медиапотока, содержащего множество кодированных и некодированных сегментов, где медиапоток дополнительно содержит сигнальную информацию сегментов, достаточную для идентификации множества из по меньшей мере двух групп сегментов, причем каждая содержит по меньшей мере один сегмент, где никакая группа сегментов не содержит и кодированные, и некодированные сегменты, идентификации по меньшей мере одного алгоритма декодирования сегментов, идентификации по меньшей мере одного ключа декодирования для кодированных сегментов и декодирования кодированных сегментов, идентификацию по меньшей мере одной группы сегментов, содержащей кодированные сегменты, идентификацию по меньшей мере одного алгоритма декодирования сегментов, идентификацию по меньшей мере одного ключа декодирования и декодирование по меньшей мере одной группы сегментов, содержащей кодированные сегменты, с использованием по меньшей мере одного алгоритма декодирования сегментов и по меньшей мере одного ключа декодирования.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0010] Для более полного понимания данного раскрытия изобретения делается отсылка к нижеследующему краткому описанию применительно к прилагаемым чертежам и подробному описанию, где одинаковые номера ссылок представляют одинаковые части.

[0011] Фиг. 1 иллюстрирует вариант осуществления схемы потоковой передачи медиа.

[0012] Фиг. 2 схематическое представление варианта осуществления элемента сети.

[0013] Фиг. 3 - схематическое представление, иллюстрирующее вариант осуществления схемы для формирования сегментов и кодирования для защиты контента.

[0014] Фиг. 4 - схема протокола для передачи данных по варианту осуществления, описанному на фиг. 3.

[0015] Фиг. 5 - схематическое представление, иллюстрирующее вариант осуществления схемы для формирования сегментов и кодирования для защиты контента.

[0016] Фиг. 6 - схема протокола для передачи данных по варианту осуществления, описанному на фиг. 5.

ПОДРОБНОЕ ОПИСАНИЕ

[0017] Изначально следует понимать, что хотя ниже предоставляется пояснительная реализация одного или нескольких вариантов осуществления, раскрытые системы и/или способы могут быть реализованы с использованием любого количества методик, известных либо существующих в настоящее время. Раскрытие изобретения никоим образом не ограничивается пояснительными реализациями, чертежами и методиками, проиллюстрированными ниже, включая типовые исполнения и реализации, проиллюстрированные и описанные в этом документе, но может быть изменено в объеме прилагаемой формулы изобретения вместе с полным объемом ее эквивалентов.

[0018] В этом документе раскрываются системы и способы для гибких механизмов сигнализации для защиты контента в средах адаптивной потоковой передачи данных, например потоках MPEG-DASH. Например, раскрытие изобретения включает в себя новый подход для обеспечения поздней привязки векторов инициализации. Также раскрытие изобретения включает в себя новый подход для информирования клиента потоковой передачи о зашифрованных/кодированных или незашифрованных/некодированных сегментах в медиапотоке. Кроме того, раскрытие изобретения также включает в себя подход для использования нескольких алгоритмов шифрования/кодирования на медиапоток. Это раскрытие изобретения дополнительно включает в себя системы и способы для сигнализации гибким, эффективным и компактным способом, какие сегменты шифруются (и вообще кодируются), применительно к разработке стандарта MPEG-DASH.

[0019] Традиционные схемы шифрования и защиты сегментов могут задавать стандартные способы шифрования и отображения ключей, которые могут использоваться, когда нужна защита целых сегментов. Такие схемы могут работать, рассматривая сегмент как совокупность разрядов и применяя шифрование ко всему сегменту. Могут предоставляться определения для идентификации диапазонов зашифрованных сегментов и для задания связанного ключа (ключей) и векторов инициализации, необходимых в MPD DASH. Например, CD 23009-4 ISO/IEC, раздел 5.1.2.2, предоставляет следующую таблицу семантики:

Если не задано иное, термины, используемые в этом документе, можно задать с использованием семантики и определений из CD 23009-4 ISO/IEC.

[0020] В традиционных схемах, например заданных выше, шифрование сигнализируется с помощью и @startSegment и @endSegment (или их неявных значений). Вектор инициализации, если есть, сообщается в качестве атрибута @IV. Информация о ключе шифрования/дешифрования медиасегмента (сегментов) предоставляется в качестве атрибута @keyURL в элементе CryptoPeriod либо посредством атрибута @keyURLTemplate. Чтобы получить ключ контента, нужно запустить протокол HTTPS для каждого CryptoPeriod.

[0021] Такие традиционные схемы могут осуществлять шифрование над "диапазонами" или "порциями" последовательных сегментов, используя одну и ту же пару вектор инициализации (IV)/ключ на всех зашифрованных сегментах. Чтобы чередовать зашифрованные сегменты, например, шифруя только нечетные сегменты в представлении, может понадобиться несколько элементов CryptoPeriod, что увеличивает размер MPD и время запуска. Передача элементов IV и keyURL в MPD может еще больше увеличить размер MPD. Задание использования "жестко определенных" форматов шифрования сегментов, например формата файла Marlin, защищенного протокола реального времени и т.п., в стандартах может сделать традиционные схемы негибкими и не способными поддерживать форматы шифрования, использующие разные длины ключей или другие режимы.

[0022] Настоящее раскрытие изобретения представляет элементы, которые могут использоваться для расширения MPD и предоставления гибкости и механизмов сигнализации для защиты контента в средах адаптивной потоковой передачи данных, например потоках MPEG-DASH. Примерная семантика (дополнительно объясненная ниже), выражающая представленные системы и способы, включает в себя описанную в следующей таблице:

[0023] Обращаясь сначала к атрибутам @segmentEncryptionFlag и @segmentEncryptionSignaling, атрибут @segmentEncryptionFlag можно ввести в элемент CryptoPeriod или любой элемент, который должен сигнализировать шифрование сегмента, например элемент ContentProtection в MPD DASH. Значение @segmentEncryptionFlag может представлять собой двоичную строку, например, которая кодирована в формате base64, шестнадцатеричном формате и т.п. Значение 0-1 у i-го разряда в этой строке сигнализирует, кодируется или шифруется i-й сегмент в CryptoPeriod, например, с использованием 0 для некодированного или незашифрованного и 1 для кодированного или зашифрованного. Например, значение АААА (шестнадцатеричное) = 1010 1010 1010 1010 (двоичное) может предоставить карту сегмента, указывающую, что нечетные сегменты 1, 3, 5, 7, 9, 11, 13, 15 шифруются, а четные сегменты 2, 4, 6, 8, 10, 12, 14 - нет, и значение 5ЕВ52 (шестнадцатеричное)=0101 1110 1011 0101 0010 (двоичное) может указывать, что сегменты 2, 4, 5, 6, 7, 9, 11, 12, 14, 16, 19 шифруются, а другие в сегментах с 1 по 20 - нет.

[0024] Атрибут @segmentEncryptionSignaling выполняет функцию, аналогичную @segmentEncryptionFlag, иным образом. Атрибут @segmentEncryptionSignaling может создавать отображение сегментов у зашифрованных сегментов с использованием положительных и отрицательных целых чисел в виде строки текста, чтобы сгруппировать зашифрованные и/или незашифрованные сегменты, и предоставлять дополнительную информацию. Например, если значением @segmentEncryptionSignaling является "3, -4, 3, 1", то это означает, что имеется одиннадцать сегментов, сегменты разделяются на четыре группы соседних сегментов, количествами соседних сегментов, заключенных в четыре группы, являются соответственно 3, -4, 3, 1, все сегменты во второй группе незашифрованы, все сегменты в оставшихся группах шифруются и сегменты в этих четырех группах упорядочены во времени в соответствии с порядком их соответствующих целых чисел.

[0025] Если общее количество разрядов при двоичном преобразовании числа @segmentEncryptionFlag или сегментов, изложенных в @segmentEncryptionSignaling, больше общего количества сегментов, охваченных в CryptoPeriod, то дополнительные разряды в строке можно игнорировать. Если общее количество разрядов при двоичном преобразовании числа @segmentEncryptionFlag меньше общего количества сегментов (например, когда период не ограничен), то по умолчанию все дополнительные сегменты (не сигнализированные с помощью разрядов) можно зашифровать. В частности, максимальное количество сегментов, чье шифрование можно сигнализировать с помощью шестнадцатеричного числа из n разрядов, может быть в 4 раза больше n. Это означает, что если имеется 100 зашифрованных или кодированных сегментов в CryptoPeriod, то шестнадцатеричного числа из 25 разрядов может быть достаточно для сигнализации того, шифруются ли они.

[0026] Значение @iterates может быть положительным числом, указывающим количество повторений атрибутов @segmentEncryptionFlag и/или @segmentEncryptionSignaling, необходимых для декодирования подходящих сегментов. Если отсутствует, то значением по умолчанию может быть только одно повторение. Таким образом, при необходимости карта сегмента выражается в более компактном виде для большого количества сегментов, например при @segmentEncryptionFlag = 1101 (двоичное) и @iterates=1000 (десятичное).

[0027] Атрибут @algorithm может указывать алгоритм, используемый для кодирования или шифрования сегментов, ассоциированных с атрибутом. Это может помочь в обеспечении кодирования одного потока с использованием нескольких алгоритмов.

[0028] Атрибуты @ivURL и @ivURLTemplate представляются для поддержки поздней привязки IV. Реализация атрибутов @ivURL и @ivURLTemplate может быть аналогична реализации поздней привязки ключей с использованием атрибутов @keyURLTemplate и @keyURL, содержащейся в традиционном подходе.

[0029] Элементы @keyLicenseURL и @keyLicenseURLTemplate представляются для поддержки транспортировки ключей в виде лицензии. Эти атрибуты могут задавать местоположение и формат для обращения к серверу лицензирования, чтобы получить объекты прав способом, аналогичным используемому в настоящее время в парадигмах управления цифровыми правами (DRM).

[0030] Специалисты в данной области техники признают, что не нужно иметь несколько элементов CryptoPeriod для нескольких групп сегментов. Только одного элемента ContentProtection с 3 атрибутами, например @segmentEncryptionSignaling, @ivURLTemplate и @keyURLTemplate, достаточно для предоставления всей необходимой информации о шифровании сегментов для Представления (Representation) или Набора адаптации (AdaptationSet).

[0031] Фиг. 1 иллюстрирует вариант осуществления схемы 100 потоковой передачи медиа, которую можно реализовать для доставки медиаконтента от сервера 120 HTTP к клиенту 110 потоковой передачи. Например, схема 100 потоковой передачи данных может быть DASH или другим типом схемы потоковой передачи данных. Клиент 110 потоковой передачи может быть автономным устройством, программой или приложением, реализованным в операционной системе пользовательского устройства, или веб-клиентом, доступ к которому осуществляется в веб-платформе. Медиаконтент, сохраненный на сервере 120 HTTP, может формироваться или готовиться блоком 130 подготовки потокового медиа. Блок 130 подготовки медиа может быть совмещен с сервером 120 HTTP или находиться где-либо еще (например, на сайте поставщика контента). Сервер 120 HTTP может быть частью сети поставщика контента или может быть узлом в сети распространения контента (CDN). Медиаконтент может формироваться, по меньшей мере частично, одним или несколькими поставщиками контента, а затем передаваться на узел CDN. Медиаконтент на сервере 120 HTTP может содержать MPD и множество сегментов. Отметим, что при желании MPD и сегменты могут храниться на разных серверах и извлекаться клиентом 110 потоковой передачи из разных серверов. К тому же сервер HTTP, описанный в этом документе, служит всего лишь в качестве примера сервера, и следует понимать, что варианты осуществления, раскрытые в этом документе, также можно реализовать на любом другом подходящем типе сервера.

[0032] В схеме 100 потоковой передачи данных клиент 110 потоковой передачи может отправить запрос медиаконтента к серверу 120 HTTP. В ответ сервер 120 HTTP может сначала использовать функцию 140 доставки MPD, чтобы доставить MPD клиенту 110 потоковой передачи. MPD может доставляться с использованием HTTP, защищенного HTTP (HTTPS), электронной почты, накопителя на универсальной последовательной шине (USB), широковещания или любого другого транспорта. С помощью анализа MPD клиент 110 потоковой передачи может узнать информацию о медиаконтенте, например расписание программы, доступность медиаконтента, типы медиа, разрешения, минимальные и максимальные полосы пропускания, наличие различных кодированных альтернатив мультимедийных компонентов, специальные возможности и необходимое DRM, местоположение каждого медиакомпонента в сети и другие характеристики медиаконтента и среды доставки. Используя эту информацию, клиент 110 потоковой передачи может выбрать подходящее кодированное представление или сочетание представлений и начать потоковую передачу медиаконтента путем выборки сегментов, используя запросы HTTP-Get. Сервер 120 HTTP может использовать функцию доставки сегмента для доставки сегментов клиенту 110 потоковой передачи. Отметим, что клиент 110 потоковой передачи может загружать сегменты с множества серверов HTTP, например, чтобы максимизировать использование полосы пропускания сети. Клиент 110 потоковой передачи может подходящим образом обрабатывать загруженное медиа, чтобы предоставить услугу потоковой передачи данных пользователю клиента 110 потоковой передачи. Хотя клиент 110 потоковой передачи может получать сегменты из местоположений, заданных URL, содержащимися в MPD, сегмент может храниться в кэше 150 HTTP (например, на сервере 120 HTTP или узле CDN) для повышения эффективности приема у клиента 110 потоковой передачи.

[0033] Если нужна буферизация, то после подходящей буферизации для учета изменений пропускной способности сети клиент 110 потоковой передачи может продолжить загружать последующие сегменты, отслеживая при этом колебания полосы пропускания у сети. В зависимости от своих измерений клиент 110 потоковой передачи может адаптивно регулировать потоковую передачу данных по доступной полосе пропускания путем загрузки сегментов разных представлений (например, с меньшей или большей скоростью передачи битов), чтобы поддерживать достаточный буфер.

[0034] По меньшей мере некоторые из признаков/способов, описанных в раскрытии изобретения, можно реализовать в элементе сети. Например, признаки/способы из раскрытия изобретения можно реализовать с использованием аппаратных средств, микропрограммного обеспечения и/или программного обеспечения, установленного для выполнения на аппаратных средствах. Элемент сети может быть любым устройством, которое перемещает данные по сети, например коммутатором, маршрутизатором, мостом, сервером, клиентом и т.п. Фиг. 2 - схематическое представление варианта осуществления элемента 200 сети, который может быть любым устройством, которое перемещает и обрабатывает данные по сети. Например, элемент 200 сети может быть маршрутизатором контента или любым устройством либо маршрутизатором в контентно ориентированной сети (CCN)/сети именованных данных (NDN), внедряющей одну из описанных в этом документе схем. Элемент 200 сети может конфигурироваться для реализации или поддержки описанных выше стратегий адаптивного перенаправления.

[0035] Элемент 200 сети может содержать один или несколько нисходящих портов 210, соединенных с приемопередатчиком (Tx/Rx) 212, который может быть передатчиками, приемниками или их сочетаниями. Tx/Rx 212 может передавать и/или принимать кадры от других узлов посредством нисходящих портов 210. Аналогичным образом элемент 200 сети может содержать другой Tx/Rx 212, соединенный с множеством восходящих портов 230, где Tx/Rx 212 может передавать и/или принимать кадры от других узлов посредством восходящих портов 230. Процессор 225 может соединяться с Tx/Rx 212 и конфигурироваться для обработки кадров и/или определения, каким узлам отправлять кадры. Процессор 225 может содержать один или несколько многоядерных процессоров и/или модулей 222 памяти, которые могут функционировать в качестве хранилищ данных, буферов и т.п. Процессор 225 можно реализовать в виде обычного процессора, или он может быть частью одной или нескольких специализированных интегральных схем (ASIC) и/или цифровых процессоров сигналов (DSP). Нисходящие порты 210 и/или восходящие порты 230 могут содержать электрические и/или оптические компоненты передачи и/или приема. Элемент 200 сети может быть или не быть компонентом маршрутизации, который принимает маршрутные решения. Модули 222 памяти могут использоваться для размещения инструкций для осуществления системы и способов, описанных в этом документе, например, в виде клиента 110 потоковой передачи, в виде сервера 120 HTTP и т.п. Модуль 222 памяти может содержать блок 228 программируемой плоскости перенаправления контента, который можно реализовать в процессоре 225. В качестве альтернативы блок 228 плоскости перенаправления можно реализовать непосредственно в процессоре 225. Блок 228 программируемой плоскости перенаправления контента может конфигурироваться для реализации функций перенаправления и обработки контента, например, на прикладном уровне или уровне 3 (L3) в модели взаимодействия открытых систем (OSI), где контент может перенаправляться на основе названия или префикса контента и, возможно, другой связанной с контентом информации, которая отображает контент в сетевой трафик. Такая информация отображения может храниться в таблице 229 контента в модуле 222 памяти. Блок 228 программируемой плоскости перенаправления контента может интерпретировать пользовательские запросы контента и, соответственно, выбрать контент на основе, например, метаданных и/или названия контента из сети или других маршрутизаторов контента, и может сохранить контент, например временно, в модуле 222 памяти. Затем блок 228 программируемой плоскости перенаправления контента может перенаправить кэшированный контент пользователю. Блок 228 программируемой плоскости перенаправления контента можно реализовать с использованием программного обеспечения, аппаратных средств или того и другого, и он может работать выше уровня Интернет-протокола (IP), например канального уровня 2 (L2) или канального уровня 3 (L3), в модели OSI. Модуль 222 памяти может содержать кэш для временного хранения контента, например оперативную память (RAM). Более того, модуль 222 памяти может содержать долговременное хранилище для относительно большего хранения контента, например постоянную память (ROM). Например, кэш и долговременное хранилище могут включать в себя динамические оперативные запоминающие устройства (DRAM), твердотельные накопители (SSD), жесткие диски или их сочетания.

[0036] Подразумевается, что путем программирования и/или загрузки исполняемых инструкций в элемент 200 сети изменяется по меньшей мере одно из процессора 220, кэша и долговременного хранилища, частично превращая элемент 200 сети в конкретную машину или устройство, например многоядерную архитектуру перенаправления, обладающую новыми функциональными возможностями, предложенными настоящим раскрытием изобретения. В основе электротехники и разработки программного обеспечения лежит то, что функциональные возможности, которые можно реализовать путем загрузки исполняемого программного обеспечения в компьютер, можно преобразовать аппаратную реализацию с помощью общеизвестных проектных норм. Выбор между реализацией идеи в программном обеспечении против аппаратных средств обычно зависит от соображений стабильности исполнения и количеств блоков, которые будут созданы, а не каких-либо проблем, затрагиваемых при переводе из программной области в аппаратную область. Как правило, исполнение, которое все же подвержено частому изменению, может быть предпочтительно реализовать в программном обеспечении, поскольку повторная сборка при аппаратной реализации дороже, чем повторная сборка при разработке программного обеспечения. Как правило, исполнение, которое стабильно и будет производиться в большом объеме, может быть предпочтительно реализовать в аппаратных средствах, например в ASIC, поскольку для массового производства аппаратная реализация может быть дешевле, чем программная реализация. Часто исполнение может разрабатываться и тестироваться в форме программного обеспечения, а позднее преобразовываться с помощью общеизвестных проектных норм в эквивалентную аппаратную реализацию в специализированной интегральной схеме, которая аппаратно реализует инструкции программного обеспечения. Таким же образом, как машина, управляемая новой ASIC, является конкретной машиной или устройством, также и компьютер, который запрограммирован и/или в который загружены исполняемые инструкции, можно рассматривать как конкретную машину или устройство.

[0037] Фиг. 3 - схема, иллюстрирующая вариант осуществления схемы 300 для формирования сегментов и кодирования для защиты контента. Схему 300 можно реализовать с помощью сервера HTTP, например сервера 120 HTTP из фиг. 1, или с помощью поставщика медиаконтента, например, в виде элемента 200 сети из фиг. 2. Например, схема 300 может быть частью блока 228 плоскости перенаправления. Медиаконтент 302 можно разделить с помощью блока или модуля 304 сегментации на множество сегментов, например, в виде представлений 306 и/или 308 (вместе или в качестве альтернативы, 306/308). Как упоминалось ранее, для представления медиаконтента могут использоваться различные иерархии в зависимости от применения. Если используются подсегменты, то описанные в этом документе схемы могут применяться к подсегменту точно так же, как они применяются к сегменту.

[0038] Каждое представление 306/308 может содержать множество сегментов, например сегмент 310 и/или 312 инициализации (IS) и по меньшей мере один медиасегмент 318 и/или 320 (MS). Например, как показано на фиг. 3, представление 306 содержит один IS 310 и m MS 318. Аналогичным образом представление 308 содержит один IS 312 и k MS 320. Каждое представление 306/308 может содержать равное или разное количество всех сегментов. Например, на фиг. 3 представление 306 содержит m MS 318, тогда как представление 308 содержит k MS 320, где k и m могут быть одинаковыми или разными. К тому же модуль 326 сигнализации шифрования сегмента может создать сигнализацию шифрования сегмента, описанную в этом документе, и отправить сигнализацию шифрования сегмента элементу 324 ContentProtection и системе 322 защиты.

[0039] Система 322 защиты может обрабатывать представления 306 и 308 как совместимые с DASH, например, путем применения определенной системы защиты контента. Система 322 защиты может определить, какие MS 318 и/или 320 требуют кодирования, и может создать подходящий @segmentEncryptionSignaling, чтобы применить его для сигнализации шифрования сегмента/отображения сегментов. Система 322 защиты может координироваться со сторонним сервером лицензирования для получения URL сервера лицензирования и может координироваться со сторонним сервером IV для получения ivURL. Схема 300 может наполнить поток MPD элементом ContentProtection на этапе 324 и может создать и привязать атрибут @segmentEncryptionSignaling, атрибут @ivURLTemplate, атрибут @keyURLTemplate и атрибут @LicenseServerURL. Система 322 защиты может кодировать или шифровать MS 318 и/или 320 заранее установленным способом, используя один или несколько заранее выбранных алгоритмов, чтобы создать представления 328 и 330.

Представления 328 и 330 могут содержать IS 332 и 334 и кодированные MS 336 и 338. Если применяется несколько алгоритмов или нестандартные алгоритмы, то один или несколько атрибутов @algorithm можно наполнить и привязать к потоку MPD.

[0040] В некоторых вариантах осуществления сигнальная информация сегментов, изменяющаяся либо не изменяющаяся во времени, помещается в отдельные от медиа потоки. Например, это может выполняться путем присвоения потоку идентификатора пакета (PID) и назначения его частью программы, например, в транспортном потоке MPEG-2. В качестве альтернативы информацию можно поместить в индексный сегмент, который остается незашифрованным или некодированным. Еще одним вариантом является помещение информации в файл MPD. В этом третьем случае любые не изменяющиеся во времени части можно поместить в те элементы или атрибуты MPD, которые не ассоциируются повторно с отдельными сегментами.

[0041] Фиг. 4 - схема протокола для передачи данных по варианту осуществления, описанному на фиг. 3. Фиг. 4 содержит клиент 402 DASH, сконфигурированный для поддержки схемы 300 защиты контента, например клиент 110 из фиг. 1, веб-сервер 404, сконфигурированный для исполнения схемы 300, например сервер 120 HTTP из фиг. 1, и сервер 406 лицензирования, например элемент 200 сети из фиг. 2. На этапе 408 клиент 402 может сделать HTTP-запрос MPD к веб-серверу 404. На этапе 410 веб-сервер 404 может отправить клиенту 402 HTTP-отклик для MPD, например, включающий в себя IS 332 и 334 из фиг. 3. Клиент 402 может провести подходящий выбор и/или конфигурирование декодирования в соответствии со статистикой ресурсов, сетевой средой или условиями, возможностью устройства, выбором пользователя и т.п. На этапе 412 клиент 4 02 может проанализировать MPD, чтобы интерпретировать информацию, содержащуюся в MPD, и на этапе 414 клиент 402 может реализовать процесс 414 объекта прав. В частности, на этапе 416 клиент 402 может запросить объект прав у сервера 406 лицензирования, используя URL в @keyLicenseURL, и на этапе 418 сервер 406 лицензирования может ответить клиенту 402 запрошенной лицензией и/или объектом прав. На этапе 420 клиент 402 может запросить IV у сервера 406 лицензирования, используя URL в @ivURL. На этапе 422 сервер 406 лицензирования может ответить клиенту 402 запрошенными данными IV. Используя данные @keyLicenseURLTemplate и @ivURLTemplate, клиент 402 может получить пару IV/ключ, необходимую для декодирования релевантного сегмента (сегментов). Хотя лицензия и IV передаются от одного и того же сервера 406 лицензирования, специалист в данной области техники признает, что в альтернативных вариантах осуществления лицензии и IV могут храниться на разных серверах и передаваться от разных серверов. На этапе 424 клиент 402 может отправить HTTP-запрос сегментов к веб-серверу 404. На этапе 426 веб-сервер 404 может отправить клиенту 402 HTTP-отклик для сегментов, содержащий кодированные медиасегменты, например MS 336 и/или 338 из фиг. 3. Хотя MPD и сегменты передаются от одного и того же веб-сервера 404, специалист в данной области техники признает, что в альтернативных вариантах осуществления MPD, описывающее медиаконтент, и сегменты медиаконтента могут храниться на разных серверах и передаваться от разных серверов. Например, MPD может передаваться от распространителя контента, тогда как сегменты могут передаваться от стороннего узла доставки контента (CDN). Клиент 402 может дешифровать зашифрованное медиа путем применения подходящей пары IV/ключ в алгоритме дешифрования в соответствии с информацией @segmentEncryptionSignaling. На этапе 428 клиент 402 может начать последовательность воспроизведения, чтобы предоставить медиапоток пользователю (не изображен) клиента 402. На этапе 430 клиент 402 может обновить статистику ресурсов, и на этапе 432 клиент 402 может адаптивно выбрать сегменты в соответствии с обновленной статистикой. При необходимости поддержания потока данных клиент 402 может возобновить один или несколько этапов с 408 по 426, пока не завершится потоковая передача данных. В частности, упомянутое выше упорядочение этапов является всего лишь пояснительным, и специалисты в данной области техники признают, что некоторые этапы могут совершаться одновременно либо в другом порядке.

[0042] Фиг. 5 - схема, иллюстрирующая вариант осуществления схемы 500 для формирования сегментов и кодирования для защиты контента. Если не указано иное, то перечисленные на фиг. 5 компоненты могут быть практически аналогичными компонентам из фиг. 3. Схему 500 можно реализовать с помощью сервера HTTP, например сервера 120 HTTP из фиг. 1, или с помощью поставщика медиаконтента, например, в виде элемента 200 сети из фиг. 2. Например, схема 500 может быть частью блока 228 плоскости перенаправления из фиг. 2. Медиаконтент 502 можно разделить с помощью блока или модуля 504 сегментации на множество сегментов, например, в виде представлений 506 и/или 508 (вместе или в качестве альтернативы, 506/508). Как упоминалось ранее, для представления медиаконтента могут использоваться различные иерархии в зависимости от применения. Если используются подсегменты, то описанные в этом документе схемы могут применяться к подсегменту точно так же, как они применяются к сегменту.

[0043] Каждое представление 506/508 может содержать множество сегментов, например IS 510 и/или 512, индексный сегмент 514 и/или 516 и по меньшей мере один MS 518 и/или 520. Например, как показано на фиг. 5, представление 506 содержит один IS 510, один индексный сегмент 514 и m MS 518. Аналогичным образом представление 508 содержит один IS 512, один индексный сегмент 516 и k MS 520. Каждое представление 506/508 может содержать равное или разное количество всех сегментов. Например, на фиг. 5 представление 506 содержит m MS 518, тогда как представление 508 содержит k MS 520, где k и m могут быть одинаковыми или разными.

[0044] Система 522 защиты может обрабатывать представления 506 и 508 как совместимые с DASH, например, путем применения определенной системы защиты контента. Система 522 защиты может определить, какие MS 518 и/или 520 требуют кодирования, и может создать подходящий @segmentEncryptionFlag, чтобы применить его для сигнализации шифрования сегмента или отображения сегментов. Система 522 защиты может координироваться со сторонним сервером лицензирования для получения URL сервера лицензирования, может наполнить MPD элементом ContentProtection на этапе 524 и может создать и привязать @segmentEncryptionFlag на этапе 526. Схема 500 может наполнить поток MPD элементом ContentProtection на этапе 324 и может создать и привязать атрибут @segmentEncryptionFlag, атрибут @iv, атрибут @keyURLTemplate и атрибут @LicenseServerURL. Система 522 защиты может кодировать или шифровать MS 518 и/или 520 заранее установленным способом, используя один или несколько заранее выбранных алгоритмов, чтобы создать представления 528 и 530. Представления 528 и 530 могут содержать IS 532 и 534, индексные сегменты 540 и 542 и кодированные MS 536 и 538. Если применяется несколько алгоритмов или нестандартные алгоритмы, то один или несколько атрибутов Salgorithm можно наполнить и привязать к потоку MPD.

[0045] В некоторых вариантах осуществления не изменяющаяся во времени информация о защите контента (TI-CPI), например алгоритм шифрования и режим работы шифрования, или изменяющаяся во времени информация о защите контента (TV-CPI), например ключ шифрования и вектор инициализации, могут добавляться в поток, например в связанный с зашифрованным медиасегментом IS 532 и/или 534 либо в индексные сегменты 540 и/или 542, как указано на фиг. 5.

[0046] Фиг. 6 - схема протокола для передачи данных по варианту осуществления, описанному на фиг. 5. Фиг. 6 содержит клиент 402 DASH, сконфигурированный для поддержки схемы 500 защиты контента, веб-сервер 404, сконфигурированный для исполнения схемы 500, и сервер 406 лицензирования. На этапе 508 клиент 402 может сделать HTTP-запрос MPD к веб-серверу 404. На этапе 510 веб-сервер 404 может отправить клиенту 402 НТТР-отклик для MPD, например, который может включать в себя IS 532 и 534 и индексные сегменты 540 и 542 из фиг. 5. Клиент 402 может провести подходящий выбор и/или конфигурирование декодирования в соответствии со статистикой ресурсов, сетевой средой или условиями, возможностью устройства, выбором пользователя и т.п. На этапе 512 клиент 402 может проанализировать MPD, чтобы интерпретировать информацию, содержащуюся в MPD, и на этапе 514 клиент 402 может реализовать процесс 514 объекта прав. В частности, на этапе 516 клиент 402 может запросить объект прав у сервера 406 лицензирования, используя URL в @keyLicenseURL, и на этапе 518 сервер 406 лицензирования может ответить клиенту 402 запрошенной лицензией и/или объектом прав. Используя @keyLicenseURLTemplate, клиент 402 может получить лицензию и/или ключ для пары IV/ключ, необходимой для декодирования релевантного сегмента (сегментов) IV, и в других вариантах осуществления ключ шифрования сегмента можно получить из индексного сегмента. На этапе 524 клиент 402 может отправить HTTP-запрос сегментов к веб-серверу 404. На этапе 526 веб-сервер 404 может отправить клиенту 402 HTTP-отклик для сегментов, содержащий кодированные медиасегменты, например MS 536 и/или 538 из фиг. 5. Хотя MPD и сегменты передаются от одного и того же веб-сервера 404, специалист в данной области техники признает, что в альтернативных вариантах осуществления MPD, описывающее медиаконтент, и сегменты медиаконтента могут храниться на разных серверах и передаваться от разных серверов. Например, MPD может передаваться от распространителя контента, тогда как сегменты могут передаваться от стороннего узла доставки контента (CDN). Клиент 402 может дешифровать зашифрованное медиа путем применения подходящей пары IV/ключ в алгоритме дешифрования в соответствии с информацией @segmentEncryptionFlag на этапе 527. На этапе 528 клиент 402 может начать последовательность воспроизведения, чтобы предоставить медиапоток пользователю (не изображен) клиента 402. На этапе 530 клиент 402 может обновить статистику ресурсов, и на этапе 532 клиент 402 может адаптивно выбрать сегменты в соответствии с обновленной статистикой. При необходимости поддержания потока данных клиент 402 может возобновить один или несколько этапов с 508 по 526, пока не завершится потоковая передача данных. В частности, упомянутое выше упорядочение этапов является всего лишь пояснительным, и специалисты в данной области техники признают, что некоторые этапы могут совершаться одновременно либо в другом порядке.

[0047] Раскрывается по меньшей мере один вариант осуществления, и вариации, сочетания и/или модификации варианта (вариантов) осуществления и/или признаков варианта (вариантов) осуществления, выполненные средним специалистом в данной области техники, входят в объем раскрытия изобретения. Альтернативные варианты осуществления, которые получаются в результате объединения, интеграции и/или исключения признаков варианта (вариантов) осуществления, также входят в объем раскрытия изобретения. Там, где области числовых значений или ограничения точно установлены, такие точные области или ограничения следует понимать как включающие в себя повторяющиеся области или ограничения одинаковой величины, входящие в точно установленные области или ограничения (например, примерно от 1 до примерно 10 включает в себя 2, 3, 4 и т.п.; больше 0,10 включает в себя 0,11, 0,12, 0,13 и т.п.). Например, всякий раз, когда раскрывается область числовых значений с нижним пределом R1 и верхним пределом Ru, раскрывается конкретно любое число, входящее в эту область. В частности, раскрываются следующие числа в диапазоне: R=R1+k·(Ru-R1), где k - переменная, меняющаяся от 1 процента до 100 процентов с приращением в 1 процент, то есть k равно 1 проценту, 2 процентам, 3 процентам, 4 процентам, 5 процентам, 50 процентам, 51 проценту, 52 процентам, 95 процентам, 96 процентам, 97 процентам, 98 процентам, 99 процентам или 100 процентам. Кроме того, также раскрывается любая область числовых значений, заданная двумя числами R, которые заданы выше. Использование термина "примерно" означает ±10% от последующего числа, если не указано иное. Использование термина "при желании" по отношению к любому элементу пункта формулы изобретения означает, что элемент является необходимым или, в качестве альтернативы, что элемент не является необходимым, причем оба варианта входят в объем пункта формулы изобретения. Использование более широких терминов, таких как "содержит", "включает в себя" и "имеющий", следует понимать как предоставление поддержки для более узких терминов, таких как "состоящий из", "состоящий главным образом из" и "состоит в основном из". Все описанные здесь документы включаются в этот документ путем отсылки.

[0048] Хотя в настоящем раскрытии изобретения предоставлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы можно было бы реализовать во многих других характерных формах без отклонения от сущности или объема настоящего раскрытия изобретения. Настоящие примеры должны рассматриваться как пояснительные, а не ограничивающие, и изобретение не должно ограничиваться приведенными в этом документе подробностями. Например, различные элементы или компоненты могут объединяться или встраиваться в другую систему, либо некоторые признаки могут пропускаться или не реализовываться.

[0049] К тому же методики, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как обособленные или отдельные, могут объединяться или интегрироваться с другими системами, модулями, методиками или способами без отклонения от объема настоящего раскрытия изобретения. Другие элементы, показанные или рассмотренные как соединенные или непосредственно соединенные либо взаимодействующие друг с другом, могут соединяться опосредованно или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент электрически либо механически, или иным образом. Другие примеры изменений, замен и правок очевидны специалисту в данной области техники и могли бы производиться без отклонения от сущности и объема, раскрытых в этом документе.

Похожие патенты RU2575021C1

название год авторы номер документа
СПОСОБ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ ДАННЫХ С УПРАВЛЕНИЕМ СООБЩЕНИЯМИ АКТИВНОЙ ДОСТАВКИ 2017
  • Фабле Юэнн
  • Белльссор Ромен
  • Маз Фредерик
  • Уэдраого Наэль
  • Денуаль Франк
  • Рюэллан Эрве
RU2659041C1
СПОСОБ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ ДАННЫХ С УПРАВЛЕНИЕМ СООБЩЕНИЯМИ АКТИВНОЙ ДОСТАВКИ 2018
  • Фабле, Юэнн
  • Белльссор, Ромен
  • Маз, Фредерик
  • Уэдраого, Наэль
  • Денуаль, Франк
  • Рюэллан, Эрве
RU2683595C1
РЕЖИМЫ БЫСТРОГО ДОСТУПА К ПРОИЗВОЛЬНОЙ ТОЧКЕ ДЛЯ СЕТЕВОЙ ПОТОКОВОЙ ПЕРЕДАЧИ КОДИРОВАННЫХ ВИДЕОДАННЫХ 2011
  • Чэнь Ин
  • Штокхаммер Томас
  • Уотсон Марк
RU2571375C2
СПОСОБ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ ДАННЫХ С УПРАВЛЕНИЕМ СООБЩЕНИЯМИ АКТИВНОЙ ДОСТАВКИ 2014
  • Фабле Юэнн
  • Белльссор Ромен
  • Маз Фредерик
  • Уэдраого Наэль
  • Денуаль Франк
  • Рюэллан Эрве
RU2625328C1
Способ и устройство для управляемого выбора точки наблюдения и ориентации аудиовизуального контента 2017
  • Ханнуксела Миска
  • Афлаки Бени Пайман
RU2728904C1
ОБНОВЛЕНИЕ ФАЙЛА МАНИФЕСТА ДЛЯ СЕТЕВОЙ ПОТОКОВОЙ ПЕРЕДАЧИ КОДИРОВАННЫХ ВИДЕОДАННЫХ 2011
  • Чэнь Ин
  • Штокхаммер Томас
  • Уотсон Марк
RU2558615C2
УЛУЧШЕНИЕ КАЧЕСТВА ВИДЕО 2015
  • Хассан Йомна
  • Рехан Мохамед
  • Ойман Озгур
RU2658642C1
СПОСОБЫ, УСТРОЙСТВА И КОМПЬЮТЕРНЫЕ ПРОГРАММЫ ДЛЯ УЛУЧШЕНИЯ ОТОБРАЖЕНИЯ ВИЗУАЛИЗАЦИИ ВО ВРЕМЯ ПОТОКОВОЙ ПЕРЕДАЧИ СПЛАНИРОВАННЫХ ПО ВРЕМЕНИ МУЛЬТИМЕДИЙНЫХ ДАННЫХ 2017
  • Денуаль, Франк
  • Маз, Фредерик
  • Таке, Джонатан
  • Уэдраого, Наэль
  • Конколато, Сириль
  • Ле Февр, Жан
RU2724318C1
Устройство и способ для кодирования и декодирования видео 2018
  • Ханнуксела Миска
  • Аминлоу Алиреза
RU2741507C1
СИСТЕМА УЛУЧШЕННОЙ ПОТОКОВОЙ ПЕРЕДАЧИ БЛОКОВ ПО ЗАПРОСУ ДЛЯ ОБРАБОТКИ ПОТОКОВОЙ ПЕРЕДАЧИ С МАЛОЙ ЗАДЕРЖКОЙ 2013
  • Луби Майкл Дж.
  • Уотсон Марк
  • Вичизано Лоренцо
  • Пакзад Паям
  • Ван Бинь
  • Чен Ин
  • Штокхаммер Томас
  • Борран Джабер Мохаммад
RU2629001C2

Иллюстрации к изобретению RU 2 575 021 C1

Реферат патента 2016 года СИСТЕМА И СПОСОБ ДЛЯ СИГНАЛИЗАЦИИ ШИФРОВАНИЯ СЕГМЕНТА И ВЫРАБОТКИ КЛЮЧА ДЛЯ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ

Изобретение относится к системам распространения медиаконтента абонентам, используя разные схемы шифрования и/или кодирования для разных устройств, например телевизоров, блокнотных компьютеров и мобильных телефонов. Техническим результатом является представление гибких механизмов сигнализации для защиты контента в средах адаптивной потоковой передачи данных, например MPEG-DASH, и включает в себя новый подход для обеспечения поздней привязки векторов инициализации. Предложено устройство для декодирования медиапотока, выполненного с возможностью принять медиапоток, содержащий сигнальную информацию сегментов и множество сегментов, где множество сегментов содержит кодированные и некодированные сегменты, при этом сигнальная информация сегментов содержит идентификацию по меньшей мере двух групп сегментов, причем каждая содержит по меньшей мере один сегмент, идентифицировать по меньшей мере одну группу сегментов, используя сигнальную информацию сегментов в медиапотоке, идентифицировать по меньшей мере один алгоритм декодирования сегментов для по меньшей мере одной группы сегментов, идентифицировать по меньшей мере один ключ декодирования для по меньшей мере группы сегментов и декодировать каждый кодированный сегмент в по меньшей мере группе сегментов, используя по меньшей мере алгоритм декодирования сегментов и по меньшей мере один ключ декодирования. 3 н. и 17 з.п. ф-лы, 6 ил., 2 табл.

Формула изобретения RU 2 575 021 C1

1. Устройство для декодирования медиапотока, при этом устройство содержит:
модуль памяти;
процессорный модуль, соединенный с модулем памяти, при этом модуль памяти содержит инструкции, которые при исполнении процессором побуждают устройство выполнять следующее:
прием медиапотока, содержащего множество сегментов, при этом упомянутое множество сегментов содержит закодированные и незакодированные сегменты;
получение служебной информации сегмента, которая содержит идентификацию по меньшей мере двух групп сегментов, каждая из которых содержит по меньшей мере один сегмент;
идентификацию по меньшей мере одной группы сегментов, используя служебную информацию сегмента;
идентификацию по меньшей мере одного алгоритма декодирования сегмента для упомянутой по меньшей мере одной группы сегментов;
идентификацию по меньшей мере одного ключа декодирования для упомянутой по меньшей мере одной группы сегментов; и
декодирование каждого закодированного сегмента в упомянутой по меньшей мере одной группе сегментов, используя упомянутый по меньшей мере один алгоритм декодирования сегмента и упомянутый по меньшей мере один ключ декодирования.

2. Устройство по п. 1, в котором служебная информация сегмента содержится в файле описания представления мультимедиа (MPD).

3. Устройство по п. 1, в котором служебная информация сегмента содержит либо:
строку положительных и отрицательных чисел, при этом положительное число n указывает группу сегментов из n соседних закодированных сегментов и при этом отрицательное число -m указывает группу сегментов из m незакодированных сегментов; либо
строку данных, которая в двоичном коде с помощью единицы указывает сегменты, которые закодированы, а с помощью нуля указывает сегменты, которые не закодированы.

4. Устройство по п. 1, в котором идентификация по меньшей мере одной группы сегментов содержит идентификацию первой группы сегментов и второй группы сегментов, а идентификация упомянутого по меньшей мере одного алгоритма декодирования содержит идентификацию первого алгоритма декодирования сегмента для упомянутой первой группы сегментов и второго алгоритма декодирования сегмента для упомянутой второй группы сегментов, при этом упомянутые первый и второй алгоритмы декодирования сегмента отличаются.

5. Устройство по п. 1, в котором идентификация по меньшей мере одной группы сегментов содержит идентификацию первой группы сегментов и второй группы сегментов, а идентификация упомянутого по меньшей мере одного ключа декодирования содержит идентификацию первого ключа декодирования для упомянутой первой группы сегментов и второго ключа декодирования для упомянутой второй группы сегментов, при этом упомянутые первый и второй ключи декодирования отличаются.

6. Устройство по п. 1, дополнительно содержащее идентификацию по меньшей мере одного вектора инициализации для упомянутой по меньшей мере одной группы сегментов, при этом этап декодирования дополнительно использует упомянутый по меньшей мере один вектор инициализации.

7. Устройство по п. 6, в котором медиапоток дополнительно содержит шаблон вектора инициализации и в котором шаблон вектора инициализации задает шаблон для формирования вектора инициализации.

8. Устройство для отправки закодированного медиапотока, при этом устройство содержит:
модуль памяти;
процессорный модуль, соединенный с модулем памяти, при этом модуль памяти содержит инструкции, которые при исполнении процессором побуждают устройство
отправлять медиапоток, содержащий множество закодированных и незакодированных сегментов; и
отправлять служебную информацию сегмента, содержащую: информацию, достаточную для идентификации:
по меньшей мере двух групп сегментов, каждая из которых содержит по меньшей мере один сегмент;
по меньшей мере одного алгоритма декодирования сегмента; и
по меньшей мере одного ключа декодирования; и
по меньшей мере одного вектора инициализации, при этом закодированные сегменты каждой из упомянутых по меньшей мере двух групп сегментов могут быть декодированы с использованием упомянутого по меньшей мере одного алгоритма декодирования, упомянутого по меньшей мере одного ключа декодирования и упомянутого по меньшей мере одного вектора инициализации.

9. Устройство по п. 8, в котором информация, достаточная для идентификации по меньшей мере одного вектора инициализации, содержит унифицированный указатель ресурса (URL).

10. Устройство по п. 8, в котором информация, достаточная для идентификации по меньшей мере одного вектора инициализации, дополнительно содержит шаблон вектора инициализации для формирования вектора инициализации и достаточна для обеспечения возможности координации с третьей стороной для формирования вектора инициализации.

11. Устройство по п. 8, в котором информация, достаточная для идентификации по меньшей мере двух групп сегментов, достаточна для идентификации по меньшей мере двух групп сегментов, содержащих закодированные сегменты, при этом информация, достаточная для идентификации по меньшей мере одного ключа декодирования, достаточна для идентификации по меньшей мере двух ключей декодирования для декодирования упомянутого множества закодированных сегментов и при этом каждый ключ декодирования ассоциирован с одной группой сегментов, содержащей закодированные сегменты.

12. Устройство по п. 11, в котором информация, достаточная для идентификации по меньшей мере двух групп сегментов, достаточна для идентификации по меньшей мере двух групп сегментов, содержащих закодированные сегменты, при этом информация, достаточная для идентификации по меньшей мере одного алгоритма декодирования сегмента, достаточна для идентификации по меньшей мере двух алгоритмов декодирования сегмента и при этом каждый алгоритм декодирования сегмента ассоциирован с одной группой сегментов, содержащей закодированные сегменты.

13. Устройство по п. 8, в котором информация, достаточная для идентификации по меньшей мере двух групп сегментов, содержит либо:
строку положительных и отрицательных чисел, при этом положительное число n указывает группу сегментов из n соседних сегментов, которые закодированы, и при этом отрицательное число -m указывает группу сегментов из m сегментов, которые не закодированы; либо
строку данных, которая в двоичном коде с помощью единицы указывает закодированные сегменты, а с помощью нуля указывает незакодированные сегменты.

14. Устройство по п. 8, в котором служебная информация сегмента содержится в файле описания представления мультимедиа (MPD).

15. Способ для декодирования медиапотока, содержащий этапы, на которых:
принимают медиапоток, содержащий множество закодированных и незакодированных сегментов;
получают служебную информацию сегмента, содержащую информацию для:
идентификации множества из по меньшей мере двух групп сегментов, каждая из которых содержит по меньшей мере один сегмент, при этом никакая группа сегментов не содержит и закодированные, и незакодированные сегменты;
идентификации по меньшей мере одного алгоритма декодирования сегмента;
идентификации по меньшей мере одного ключа декодирования для закодированных сегментов; и
декодирования закодированных сегментов;
идентифицируют по меньшей мере одну группу сегментов, содержащую закодированные сегменты;
идентифицируют по меньшей мере один алгоритм декодирования сегмента;
идентифицируют по меньшей мере один ключ декодирования; и
декодируют упомянутую по меньшей мере одну группу сегментов, содержащую закодированные сегменты, используя упомянутый по меньшей мере один алгоритм декодирования сегмента и упомянутый по меньшей мере один ключ декодирования.

16. Способ по п. 15, в котором служебная информация сегмента дополнительно содержит информацию, достаточную для запроса вектора инициализации у третьей стороны, при этом способ дополнительно содержит этапы, на которых:
запрашивают вектор инициализации у третьей стороны;
принимают вектор инициализации; и
привязывают вектор инициализации,
и при этом этап, на котором декодируют группу закодированных сегментов, дополнительно содержит использование вектора инициализации.

17. Способ по п. 16, в котором служебная информация сегмента дополнительно содержит шаблон вектора инициализации, задающий шаблон для формирования вектора инициализации.

18. Способ по п. 15, в котором медиапоток дополнительно содержит информацию, достаточную для идентификации второго алгоритма декодирования сегмента, и при этом способ дополнительно содержит этапы, на которых:
идентифицируют упомянутый второй алгоритм декодирования сегмента;
идентифицируют вторую группу сегментов, содержащую закодированные сегменты; и
декодируют упомянутую вторую группу сегментов, используя упомянутый второй алгоритм декодирования сегмента.

19. Способ по п. 15, в котором служебная информация сегмента содержит строку положительных и отрицательных чисел, при этом положительное число n указывает группу сегментов из n соседних закодированных сегментов и при этом отрицательное число -m указывает группу сегментов из m незакодированных сегментов.

20. Способ по п. 15, в котором служебная информация сегмента содержится в файле описания представления мультимедиа (MPD).

Документы, цитированные в отчете о поиске Патент 2016 года RU2575021C1

WO 2012021543 A1, 2012-02-16
US 2004049688 A1, 2004-03-11
WO 2012012575 A1, 2012-01-26
СПОСОБ ПЕРЕДАЧИ ЦИФРОВЫХ УСЛУГ ПО СЕТИ И УСТРОЙСТВО, ОСУЩЕСТВЛЯЮЩЕЕ СПОСОБ 2005
  • Шэфер Ральф
  • Матз Ив
RU2353069C2
Сортировка 1929
  • Соков А.Я.
  • Степанов Б.В.
SU23009A1
Печь для непрерывного получения сернистого натрия 1921
  • Настюков А.М.
  • Настюков К.И.
SU1A1
Электрический выключатель для включения на определенное время освещения 1928
  • Игумнов С.Н.
SU12329A1
WD of format independent segment

RU 2 575 021 C1

Авторы

Ван Син

Лю Юнлян

Чжан Шаобо

Даты

2016-02-10Публикация

2013-04-26Подача