Сегментированные метаданные и индексы для потоковых мультимедийных данных
Иллюстрации
Показать всеИзобретение относится к области потоковых мультимедийных данных и организации таких данных с помощью метаданных и индексов. Технический результат заключается в облегчении доступа к желаемым секциям или сегментам потоковых данных. Такой результат достигается тем, что способ организации потоковых данных включает запись потоковых данных в файл, идентификацию метаданных, применимых к подмножеству потоковых данных, и формирование по меньшей мере одной группы из одного или более сэмплов потоковых данных, причем каждый сэмпл в группе имеет идентичный контент метаданных для типа метаданных. Файл может соответствовать базовому файловому формату ISO. Запись потоковых данных в файл может включать запись дорожки с указаниями о приеме. По меньшей мере одна группа может указываться в блоке описания группы сэмплов. Тип метаданных может указываться типом группирования и данными экземпляра группирования, причем тип группирования определяет семантику данных экземпляра группирования и контент метаданных. Контент метаданных может содержать полезную информацию метаданных и нуль или более расширений полезной информации метаданных, причем полезная информация метаданных включается в первую структуру, а нуль или более расширений полезной информации метаданных включаются во вторую структуру. 4 н. и 34 з.п. ф-лы, 11 ил.
Реферат
Область техники
[0001] Данное изобретение относится в общем к области потоковых мультимедийных данных и, более конкретно, к организации таких мультимедийных данных с помощью метаданных и/или индексов.
Предпосылки создания изобретения
[0002] Этот раздел предназначен для представления предпосылок создания изобретения или контекста к изобретению, которое изложено в формуле изобретения. Описание может включать концепции, которые могут быть осуществлены, но не обязательно те, которые были ранее задуманы или осуществлены. Поэтому, если не сказано иначе, содержание настоящего раздела не является изложением известного уровня техники для описания и формулы изобретения в данной заявке, и включение текста в настоящий раздел не следует рассматривать как описание известного уровня техники.
[0003] Формат файла-контейнера мультимедийной информации - важный элемент в цепочке производства, обработки, передачи и потребления мультимедийного контента. Есть существенные различия между форматом кодирования (иначе называемым форматом элементарного потока) и форматом файла-контейнера. Формат кодирования касается действия определенного алгоритма кодирования, который кодирует информацию контента в битовый поток. Формат файла-контейнера включает средства организации формируемого битового потока таким образом, чтобы он был доступен для локального декодирования и воспроизведения, передачи в виде файла или потоковой передачи; все это выполняется с использованием разнообразных архитектур хранения и транспортировки. Более того, файловый формат может облегчать обмен мультимедийной информацией и ее редактирование, а также запись в файл потоков, принимаемых в реальном времени.
[0004] Доступные стандарты форматов медиа-файлов включают базовый формат медиа-файлов ISO (ISO/IEC 14496-12) (ISO - International Standards Organization, Международная организация по стандартизации; IEC
International Electrotechnical Commission, Международная электротехническая комиссия), файловый формат MPEG-4 (ISO/IEC 14496-14, также известный как формат МР4) (MPEG - Moving Picture Experts Group, группа экспертов по кодированию движущихся изображений), файловый формат AVC (ISO/IEC 14496-15) (AVC - Advanced Video Coding, усовершенствованное кодирование видеосигналов) и файловый формат 3GPP (3GPP TS 26.244, известный также как формат 3GP) (3GPP - 3rd Generation Partnership Project, проект партнерства третьего поколения). В настоящее время в разработке находятся также другие форматы.
[0005] Желательно, чтобы такие файловые форматы медиа-информации допускали использование метаданных. Во многих применениях, таких как получение и хранение потоков медиа-информации, например, аудио- и видеопотоков, для облегчения организации и получения доступа к желаемым секциям или сегментам потоковых данных желательно, чтобы файловый формат допускал использование метаданных, которое является специфическим для сегментов контента потоковых данных.
Сущность изобретения
[0006] Один аспект данного изобретения касается способа организации потоковых данных. Способ включает запись потоковых данных в файл, идентификацию метаданных, применимых к подмножеству потоковых данных, и формирование по меньшей мере одной группы из одного или более сэмплов потоковых данных, причем каждый сэмпл в группе имеет идентичный контент метаданных для типа метаданных.
[0007] В одной форме осуществления в файле идентифицируется по меньшей мере одна группа.
[0008] В одной форме осуществления упомянутый файл соответствует базовому формату медиа-файлов ISO. Упомянутая запись потоковых данных в файл может включать запись дорожки (трека) с указаниями о приеме (reception hint track). По меньшей мере одна группа может указываться в блоке описания группы сэмплов.
[0009] В одной форме осуществления тип метаданных включает заголовки сегментов потоковых данных.
[0010] В одной форме осуществления группа включает сэмплы из двух или более дорожек. Способ может дополнительно включать идентификацию группы, содержащей сэмплы из двух или более дорожек, с помощью метаданных, связанных, со всеми связанными дорожками. Кроме того, способ может включать идентификацию группы, содержащей сэмплы из двух или более дорожек, с помощью метаданных, связанных с мастер-дорожкой.
[ОО11] В одной форме осуществления способ дополнительно включает создание дорожки синхронизированных метаданных для потоковых данных. В одной форме осуществления по меньшей мере одна группа из одного или более сэмплов потоковых данных указывается в блоке описания группы сэмплов для дорожки синхронизированных метаданных посредством связывания по меньшей мере одной группы из одного или более сэмплов потоковых данных с соответствующими сэмплами синхронизированных метаданных в дорожке синхронизированных метаданных.
[0012] В одной форме осуществления дорожка синхронизированных метаданных связывает синхронизирующие метаданные с одной или более временными шкалами. Дорожка синхронизированных метаданных может связывать синхронизирующие метаданные с двумя или более временными шкалами.
[0013] В другом аспекте изобретение касается компьютерной программы на машиночитаемом носителе. Компьютерная программа сконфигурирована для реализации способа, включающего запись потоковых данных в файл, идентификацию метаданных, применимых к подмножеству потоковых данных, и формирование по меньшей мере одной группы из одного или более сэмплов потоковых данных, причем каждый сэмпл в группе имеет идентичный контент метаданных для типа метаданных.
[0014] В другом аспекте изобретения приемник для приема потоковых данных содержит запоминающее устройство для записи потоковых данных в файл и процессор. Процессор служит для идентификации метаданных, применимых к подмножеству потоковых данных, и формирования по меньшей мере одной группы из одного или более сэмплов потоковых данных, причем каждый сэмпл в группе имеет идентичный контент метаданных для типа метаданных.
[0015] В различных формах осуществления изобретения тип метаданных может указываться типом группирования и данными экземпляра группирования, тип группирования определяет семантику данных экземпляра группирования и контента метаданных. Контент метаданных может включать полезную информацию метаданных и нуль или более расширений полезной информации метаданных, причем полезная информация метаданных включается в первую структуру, а нуль или более расширений полезной информации метаданных включаются во вторую структуру.
[0016] Эти и другие преимущества и функции изобретения вместе с его организацией и способом работы станут более очевидными из следующего подробного описания, приводимого вместе с чертежами, где аналогичные элементы имеют аналогичные номера позиций.
Краткое описание чертежей
[0017] Фиг.1 иллюстрирует графическое представление примера системы передачи мультимедийной информации, в которой могут быть реализованы формы осуществления данного изобретения.
[0018] Фиг.2 иллюстрирует пример блока в соответствии с базовым форматом медиа-файлов ISO.
[0019] Фиг.3А - пример блока, иллюстрирующий группирование сэмплов.
[0020] Фиг.3 В иллюстрирует пример блока, который содержит фрагмент movie, включающий блок SampleToGroup.
[0021] Фиг.4 иллюстрируют пример блока с сегментированными метаданными согласно типу группирования в соответствии с формой осуществления данного изобретения.
[0022] Фиг.5А - блок-схема, иллюстрирующая приводимый в качестве примера способ организации потоковых данных согласно форме осуществления данного изобретения.
[0023] Фиг.5 В - блок-схема, иллюстрирующая приводимый в качестве примера способ организации потоковых данных согласно другой форме осуществления данного изобретения.
[0024] Фиг.6 - блок-схема приводимого в качестве примера устройства для приема, хранения и организации потоковых данных согласно форме осуществления данного изобретения.
[0025] Фиг.7 - изображение упрощенной иерархии блоков, показывающее структуру вложенности для блока DVBSampleToGroup (DVB сэмпл в группу), когда ссылка на group_description_index (индекс описания группы) не делается.
[0026] Фиг.8 - иллюстрация примера файла, который содержит фрагмент movie, включающий блок DVBSampleToGroup.
[0027] Фиг.9 - иллюстрация упрощенной иерархии блоков, показывающая структуру вложенности для блоков DVBGroupinglnstance (экземпляр группирования DVB), DVBSampleGroupDescription (описание группы сэмплов DVB), DVBSampleToGroup и DVBSampleToGroupExtension (расширение блока DVB сэмпл в группу).
[0028] Фиг.10 - иллюстрация файла, содержащего две группы сэмплов согласно блоку DVBSampleToGroup для индекса временного кода.
Подробное описание различных форм осуществления [0029] Фиг.1 является графическим представлением общей системы передачи мультимедийной информации, в которой могут быть реализованы различные формы осуществления данного изобретения. Как показано на фиг.1, источник 100 данных подает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате, или в виде некоторой комбинации этих форматов. Кодер 110 кодирует исходный сигнал, формируя кодированный битовый поток медиа-информации. Следует отметить, что битовый поток, который необходимо декодировать, может приниматься непосредственно или опосредованно от удаленного устройства, фактически расположенного в сети любого типа. Более того, битовый поток может приниматься от локальных аппаратных или программных средств. Кодер 110 может быть приспособлен к кодированию более одного типа медиа-информации, такой как аудио и видео, или может потребоваться более одного кодера 110 для кодирования различных типов медиа-информации исходного сигнала. Кодер 110 может получать также синтетически созданный входной сигнал, такой как графика и текст, или он может быть способен создавать кодированные битовые потоки синтетической медиа-информации. Чтобы упростить описание, ниже рассматривается только обработка одного кодированного битового потока одного типа медиа-информации. Следует отметить, однако, что типичные широковещательные услуги в реальном времени включают несколько потоков (обычно по меньшей мере один поток аудио, видео и субтитров). Следует также заметить, что система может содержать много кодеров, но на фиг.1 представлен только один кодер 110, чтобы упростить описание без потери общности. Текст и примеры, содержащиеся здесь, могут конкретно описывать процесс кодирования, но специалистам в данной области техники будет понятно, что те же самые концепции и принципы применимы также к соответствующему процессу декодирования и наоборот.
[0030] Кодированный битовый поток медиа-данных передается в запоминающее устройство 120. Запоминающее устройство 120 может включать память большого объема любого типа, чтобы хранить кодированный битовый поток мультимедийных данных. Формат кодированного битового потока мультимедийных данных в запоминающем устройстве 120 может быть форматом самостоятельного элементарного битового потока, или же один или более кодированных битовых потоков мультимедийных данных могут инкапсулироваться в файл-контейнер. Некоторые системы работают "напрямую", то есть исключают запоминающее устройство и передают кодированный битовый поток мультимедийных данных из кодера 110 непосредственно в передатчик 130. Затем кодированный битовый поток мультимедийных данных по мере необходимости передается в передатчик 130, называемый также сервером. Формат, используемый при передаче, может быть форматом самостоятельного элементарного битового потока, форматом пакетного потока или же один или более кодированных битовых потоков мультимедийных данных могут инкапсулироваться в файл-контейнер. Кодер 110, запоминающее устройство 120 и передатчик 130 могут находиться в одном физическом устройстве, или они могут быть включены в отдельные устройства. Кодер 110 и передатчик 130 могут работать с контентом в реальном времени; в этом случае кодированный битовый поток мультимедийных данных обычно не хранится постоянно, а буферизируется в течение малых периодов времени в кодере 110 контента и/или в сервере 130, чтобы сглаживать изменения в битовой скорости передачи кодированных мультимедийных данных, в задержке обработки и в задержке передачи.
[0031] Сервер 130 передает кодированный битовый поток мультимедийных данных, используя стек протоколов связи. Стек может содержать, в качестве неограничивающих примеров, протокол передачи в режиме реального времени (Real-Time Transport Protocol, RTP), протокол пользовательских дейтаграмм (User Datagram Protocol, UDP) и протокол Интернета (Internet Protocol, IP). Когда стек протоколов связи ориентирован на пакетную передачу, сервер 130 инкапсулирует кодированный битовый поток мультимедийных данных в пакеты. Например, когда используется протокол RTP, сервер 130 инкапсулирует кодированный битовый поток мультимедийных данных в пакеты RTP согласно формату полезной информации RTP. Обычно каждый тип медиа-информации имеет заранее определенный формат полезной информации RTP. Снова следует отметить, что система может содержать более одного сервера 130, но ради простоты в дальнейшем описании рассматривается только один сервер 130.
[0032] Сервер 130 может быть подключен или не подключен к шлюзу 140 через сеть связи. Шлюз 140 может выполнять функции различного типа, такие как преобразование потока пакетов согласно одному стеку протоколов связи в другой стек протоколов связи, объединение и разветвление потоков данных, а также манипулирование потоком данных согласно возможностям нисходящей линии связи и/или приемника, таким как управление скоростью передачи данных пересылаемого потока согласно условиям нисходящей линии. Примеры шлюзов 140 включают блоки управления многоадресной связью (Multipoint Control Unit, MCU), шлюзы между видеотелефонией с коммутацией каналов и с пакетной коммутацией, услугу "нажми, чтобы говорить в сотовой сети" (Push-to-Talk over Cellular, PoC), инкапсуляторы IP в системах цифрового телевизионного вещания на портативные устройства (Digital Video Broadcasting-Handheld, DVB-H) или абонентские приставки, которые локально направляют широковещательные передачи в домашние беспроводные сети. Когда используется протокол RTP, шлюз 140 называется смесителем RTP или транслятором-преобразователем RTP и обычно действует как конечная точка соединения RTP.
[0033] Система содержит один или более приемников 150, обычно способных к приему, демодуляции и декапсуляции передаваемого сигнала в кодированный битовый поток медиа-информации. Кодированный битовый поток медиа-информации передается в записывающее запоминающее устройство 155. Записывающее запоминающее устройство 155 может включать память любого типа большого объема, чтобы хранить кодированный битовый поток медиа-информации. Записывающее запоминающее устройство 155 может, альтернативно или дополнительно, включать память для вычислений, такую как оперативная память. Формат кодированного битового потока медиа-информации в записывающем запоминающем устройстве 155 может быть форматом самостоятельного элементарного битового потока, или же один или более кодированных битовых потоков медиа-информации могут инкапсулироваться в файл-контейнер. Если имеется много кодированных битовых потоков медиа-информации, таких как аудиопоток и видеопоток, связанных друг с другом, обычно используется файл-контейнер, и приемник 150 содержит или присоединяется к формирователю файлов-контейнеров, создающему файлы-контейнеры из входных потоков. Некоторые системы работают "напрямую", то есть исключают записывающее запоминающее устройство 155 и передают кодированный битовый поток мультимедийных данных от приемника 150 непосредственно на декодер 160. В некоторых системах только самая последняя часть записываемого потока, например, самые последние 10 минут записываемого потока, сохраняется в записывающем запоминающем устройстве 155, в то время как любые ранее записанные данные удаляются из записывающего запоминающего устройства 155.
[0034] Кодированный битовый поток медиа-информации передается из записывающего запоминающего устройства 155 в декодер 160. Если имеется много кодированных битовых потоков медиа-информации, таких как аудиопоток и видеопоток, связанных друг с другом и инкапсулированных в файл-контейнер, синтаксический анализатор файла (не показанный на фиг.1) используется для выделения каждого кодированного битового потока медиа-информации из файла-контейнера. Записывающее запоминающее устройство 155 или декодер 160 может содержать синтаксический анализатор файла, или же синтаксический анализатор файла присоединяется к записывающему запоминающему устройству 155 или декодеру 160.
[0035] Битовый поток медиа-информации кодека обычно обрабатывается далее декодером 160, выходным сигналом которого является один или более несжатых потоков медиа-информации. Наконец, устройство 170 воспроизведения может воспроизводить несжатые потоки медиа-информации, например, с помощью динамика или дисплея. Приемник 150, записывающее запоминающее устройство 155, декодер 160, и устройство 170 воспроизведения могут размещаться в одном и том же физическом устройстве, или же они могут быть включены в отдельные устройства.
[0036] Организация цифрового телевизионного вещания (Digital Video Broadcasting, DVB) в настоящее время находится в процессе определения файлового формата DVB. Главной задачей определения файлового формата DVB является упрощение взаимодействия между реализациями технологий DVB при работе с контентом; такими реализациями являются, например, приставки согласно современным стандарту наземного цифрового телевизионного вещания (DVB-Terrestrial, DVB-T), стандарту для кабельных сетей (DVB-Cable, DVB-C) и стандарту для спутникового вещания (DVB-Satellite, DVB-S) и будущим стандартам DVB, телевизоры IP (на основе протокола Интернет) и мобильные телевизионные приемники согласно стандарту цифрового телевизионного вещания на портативные устройства (Digital Video Broadcasting-Handheld, DVB-H) и их будущее развитие. Файловый формат DVB позволит осуществлять обмен записанной (только для чтения) мультимедийной информацией между устройствами различных изготовителей, обмен контентом с использованием памяти большого объема на основе универсальной последовательной шины (Universal Serial Bus, USB) или аналогичных устройств для чтения - записи и совместный доступ по домашней сети к общему дисковому хранилищу, а также много других функциональных возможностей.
[0037] Файловый формат ISO является основой для большинства современных форматов файлов-контейнеров мультимедийной информации, называемых семейством файловых форматов ISO. Базовый файловый формат медиа-информации ISO может быть основой также и для разработки файлового формата DVB.
[0038] Обратимся теперь к фиг.2, на которой показана упрощенная структура основного блока 200 компоновки в базовом формате медиа-файлов ISO, называемого "блоком" (box). Каждый блок 200 имеет заголовок и полезную информацию. Заголовок блока указывает тип блока и размер блока в байтах. Многие из специфицируемых блоков получены из структуры "полного блока" (FullBox), которая включает номер версии и флаги в заголовке. Блок может содержать другие блоки, такие как блоки 210, 220, описанные ниже более подробно. Файловый формат ISO определяет, какие типы блоков разрешены в блоке определенного типа. Кроме того, некоторые блоки обязательно должны присутствовать в каждом файле, в то время как другие являются опциональными. В файле могут присутствовать более одного блока (справедливо для некоторых типов блоков). В связи с этим, формат медиа-файлов ISO определяет иерархическую структуру блоков.
[0039] Согласно семейству файловых форматов ISO, файл состоит из мультимедийных данных и метаданных, которые включены в отдельные блоки; блок 220 мультимедийных данных (mdat) и блок 210 movie (moov), соответственно. Блок movie ("фильм") может содержать одну или более дорожек, и каждая дорожка находится в одном блоке 212, 214 дорожки. Дорожка может быть одного из следующих типов: медиа-информации, указаний или синхронизированных метаданных. Дорожка медиа-информации относится к сэмплам, отформатированным согласно формату сжатия медиа-информации (и его инкапсуляции в базовый формат медиа-файлов ISO). Дорожка указаний (hint track) относится к сэмплам указаний, содержащим инструкции по построению пакетов для передачи по указанному протоколу связи. Инструкции могут содержать руководство для построения заголовка пакета и включать структуру полезной информации пакета. В структуре полезной информации пакета могут делаться ссылки на данные, находящиеся на других дорожках или в других элементах (например, ссылка может указывать, какой части данных на конкретной дорожке или в конкретном элементе дается команда на копирование в пакет в процессе построения пакета). Дорожка синхронизированных метаданных относится к сэмплам, описывающим мультимедийную информацию, и/или сэмплам с указаниями, на которые делается ссылка. Для представления одного типа медиа-информации обычно выбирается одна дорожка медиа-информации.
[0040] Базовый формат медиа-файлов ISO не ограничивает представление одним файлом, и оно может содержаться в нескольких файлах. Один файл содержит метаданные для всего представления. Этот файл может содержать также все мультимедийные данные, вследствие чего представление является независимым. Другие файлы, если они используются, не обязательно должны быть отформатированы в базовом файловом формате ISO; они используются для помещения в них мультимедийных данных и могут содержать также неиспользуемые мультимедийные данные или другую информацию. Базовый файловый формат ISO касается только структуры файла представления. Формат файлов мультимедийных данных ограничивается базовым файловым форматом ISO или производными от него форматами только в том, что мультимедийные данные в медиа-файлах должны быть отформатированы так, как определено в базовом файловом формате ISO или производных от него форматах.
[0041] Фрагменты movie могут использоваться при записи контента в файлы ISO, чтобы избежать потери данных, если записывающее приложение испытывает сбой, исчерпывается объем диска или происходит некоторый другой инцидент. Без фрагментов movie может произойти потеря данных, потому что файловый формат требует, чтобы все метаданные (блок Movie Box) были записаны в одну непрерывную область файла. Кроме того, при записи файла, объема памяти RAM может быть недостаточно для буферизации Movie Box для объема имеющегося запоминающего устройства, а повторное вычисление контентов Movie Box, когда movie закрыт, происходит слишком медленно. Более того, фрагменты movie могут обеспечивать возможность одновременной записи и воспроизведения файла с использованием обычного синтаксического анализатора файла ISO. Наконец, меньшая длительность начальной буферизации требуется для постепенной загрузки (например, одновременного приема и воспроизведения файла, когда используются фрагменты movie, и начальный блок Movie Box является меньшим по сравнению с файлом с тем же самым контентом медиа-информации, но структурированным без фрагментов movie).
[0042] Свойство фрагмента movie допускает разбиение метаданных, которые обычно будут находиться в блоке moov 210, на несколько частей, каждая из которых соответствует некоторому периоду времени для дорожки. Таким образом, свойство фрагмента movie допускает перемежение метаданных и мультимедийных данных файла. Следовательно, размер блока moov 210 может быть ограничен, и могут быть реализованы вышеупомянутые случаи использования.
[0043] Сэмплы медиа-информации для фрагментов movie находятся в блоке mdat 220, как обычно, если они в том же самом файле, что и блок moov. Однако для метаданных фрагментов movie предусмотрен блок moof. Он содержит информацию для определенного промежутка времени воспроизведения, которая ранее была бы в блоке moov 210. Блок moov 210 по-прежнему представляет правильное movie самостоятельно, но в дополнение он включает блок mvex, указывающий, что фрагменты movie будут следовать в том же самом файле. Фрагменты movie расширяют представление, которое связано с блоком moov, во времени.
[0044] Метаданные, которые могут быть включены в блок moot, ограничены подмножеством метаданных, которые могут быть включены в блок moov 210 и кодированы в некоторых случаях по-другому. Детали блоков, которые могут быть включены в блок moof, могут быть найдены из спецификаций базового формата медиа-файлов в международном стандарте ISO/IEC 14496-12, Second Edition, 2005-04-01, включающем изменения 1 и 2, который полностью включен в данное описание путем ссылки на соответствующий документ.
[0045] В дополнение к синхронизированным дорожкам, файлы ISO могут содержать любые несинхронизированные двоичные объекты в блоке meta, или "статичные" метаданные. Блок meta может находиться на верхнем уровне файла, в блоке movie и в блоке дорожки. Не более одного блока метаданных может находиться на каждом из уровней файла, movie или дорожки. Блок meta должен содержать блок 'hdir', указывающий структуру или формат контентов блока meta. Блок meta может содержать любое число двоичных элементов, на которые можно ссылаться, и каждый из них может быть связан с именем файла.
[0046] Чтобы поддерживать более одного блока meta на любом уровне иерархии (файла, movie или дорожки), в базовый файловый формат медиа-информации ISO был введен блок контейнера ('meco') блока meta. Блок контейнера блока meta может нести любое число дополнительных блоков meta на любом уровне иерархии (файла, movie или дорожки). Это позволяет, например, представлять те же самые метаданные в двух различных альтернативных системах метаданных. Блок взаимосвязи (mere) блока meta позволяет описать, как различные блоки meta относятся друг к другу (например, содержат ли те же самые метаданные, но описанные различными схемами, или один из них представляет супермножество другого).
[0047] Обратимся теперь к фиг.3А, 3В и 4, на которых показано использование группирования сэмплов в блоках. Группирование сэмплов в базовом файловом формате ISO и его производных, таких как файловый формат AVC и файловый формат масштабируемого кодирования видеоданных (Scalable Video Coding, SVC), представляет собой назначение каждого сэмпла в дорожку так, чтобы он был членом одной группы сэмплов, основанной на критерии группирования. Группа сэмплов при группировании сэмплов не имеет ограничения по непрерывности сэмпла и может содержать несмежные сэмплы. Так как может быть более одного группирования сэмплов для сэмплов в дорожке, каждое группирование сэмплов имеет поле типа для указания типа группирования. Группирования сэмплов представлены двумя связанными структурами данных: (1) блок SampleToGroup (блок sbgp) представляет назначение сэмплов в группы сэмплов; и (2) блок SampleGroupDescription (блок sgpd) включает элемент группы сэмплов для каждой группы сэмплов, описывающий свойства группы. Могут быть многочисленные экземпляры блоков SampleToGroup и SampleGroupDescription, основанные на различных критериях группирования. Их отличает поле типа, используемое для указания типа группирования, как показано на фиг.4.
[0048] Фиг.3А представляет упрощенную иерархию блоков, показывающую структуру вложенности для блоков групп сэмплов. Блоки групп сэмплов (SampleGroupDescription Box и SampleToGroup Box) находятся в блоке таблицы сэмплов (stbl), который включен в блоки медиа-информации (minf), медиа (mdia) и дорожки (trak) (в таком порядке) в блоке movie (moov).
[0049] Блоку SampleToGroup разрешается находиться во фрагменте movie. Следовательно, группирование сэмплов может выполняться фрагмент за фрагментом. Фиг.3 В иллюстрирует пример файла, содержащего фрагмент movie, включающий блок SampleToGroup. Как показано на фиг.4, блок SampleGroupDescription и блок SampleToGroup могут идентифицировать grouping_type (тип группирования) на основании индекса или типа метаданных.
[0050] Ключевая особенность файлового формата DVB известна как "дорожки с указаниями о приеме" (reception hint tracks), которые могут использоваться, когда один или более потоков пакетов данных записываются согласно файловому формату DVB. Дорожки с указаниями о приеме указывают, помимо прочего, порядок, синхронизацию приема и контенты принимаемых пакетов. Устройства воспроизведения для файлового формата DVB могут повторно создавать поток пакетов, который был принят, на основании дорожек с указаниями о приеме и обрабатывать повторно созданный поток пакетов так, будто он был недавно принят. Дорожки с указаниями о приеме имеют идентичную структуру, сравнимую с дорожками указаний для серверов, которые определены в базовом файловом формате ISO. Например, дорожки с указаниями о приеме могут быть связаны с дорожками элементарного потока (то есть дорожками медиа-информации), которые они несут, посредством ссылок на дорожки типа hint. Каждый протокол для передачи потоков медиа-информации имеет свой собственный формат сэмпла с указаниями о приеме.
[0051] Серверы, использующие дорожки с указаниями о приеме как указания для передачи принимаемых потоков, должны справляться с возможными ухудшениями принимаемых потоков, такими как колебания задержки передачи и потери пакетов, и гарантировать, что требования протоколов и форматов содержащихся данных удовлетворяются независимо от возможных ухудшений принимаемых потоков.
[0052] Форматы сэмпла дорожек с указаниями о приеме могут позволять выполнить построение пакетов перемещением данных из других дорожек посредством ссылки. Эти другие дорожки могут быть дорожками указаний или дорожками медиа-информации. Точная форма этих указателей определяется форматом сэмпла для протокола, но обычно они состоят из четырех частей информации: опорного индекса дорожки, номера сэмпла, смещения и длины. Некоторые из них могут быть неявными для конкретного протокола. Эти "указатели" всегда указывают на действительный источник данных. Если дорожка указаний сформирована "поверх" другой дорожки указаний, то вторая дорожка указаний должна иметь прямые ссылки на дорожку(-и) медиа-информации, используемую первой, причем данные из этих дорожек медиа-информации помещаются в поток.
[0053] Преобразование принимаемых потоков в дорожки медиа-информации позволяет существующим устройствам воспроизведения, соответствующим базовому файловому формату ISO, обрабатывать файлы DVB, если поддерживаются также форматы медиа-информации. Однако большинство стандартов кодирования медиа-информации определяют декодирование только свободных от ошибок потоков, и, следовательно, должно быть гарантировано, что контент в дорожках медиа-информации может быть правильно декодирован. Устройства воспроизведения для файлового формата DVB могут использовать дорожки с указаниями о приеме для обработки ухудшений, вызванных передачей, то есть, контент, который может быть неправильно декодирован, располагается только в дорожках с указаниями о приеме. Необходимости иметь дубликат правильных сэмплов медиа-информации и в дорожке медиа-информации, и в дорожке с указаниями о приеме можно избежать включением данных с дорожки медиа-информации посредством ссылки на дорожку с указаниями о приеме.
[0054] В настоящее время определены три типа дорожек с указаниями о приеме: дорожки с указаниями о приеме по протоколу передачи транспортного потока MPEG-2 (MPEG2-TS), протоколу передачи в реальном времени (RTP) и протоколу управления передачей в реальном времени (Real-time Transport Control Protocol, RTCP). Сэмплы дорожки с указаниями о приеме MPEG2-TS содержат пакеты MPEG2-TS или указания для составления пакетов MPEG2-TS на основе ссылок на дорожки медиа-информации. Транспортный поток MPEG-2 является мультиплексным потоком из элементарных потоков аудио и видеопрограмм и некоторой информации метаданных. Он может содержать также несколько аудиовизуальных программ. Дорожка с указаниями о приеме RTP представляет один поток RTP, обычно одного типа медиа-информации. Дорожка с указаниями о приеме RTCP может быть связана с дорожкой с указаниями о приеме RTP и представляет пакеты RTCP, принимаемые для связанного с ними потока RTP.
[0055] Протокол RTP используется для передачи непрерывных мультимедийных данных, таких как кодированные аудио- и видеопотоки в сети на основе протокола Интернет (IP). Протокол управления передачей в реальном времени (RTCP) образует пару с протоколом RTP, то есть, RTCP должен использоваться, чтобы всегда дополнять RTP, когда это позволяет сетевая и прикладная инфраструктура. RTP и RTCP обычно передаются по протоколу пользовательских дейтаграмм (UDP), который, в свою очередь, передается по протоколу Интернет (IP). Имеются две версии протокола IP: IPv4 и IPv6, отличающиеся помимо всего прочего числом адресуемых конечных точек. Протокол RTCP используется для того, чтобы контролировать качество услуг, предоставляемых сетью, и передавать информацию об участниках в продолжающемся сеансе связи. Протоколы RTP и RTCP предназначены для сеансов связи, которые располагаются в диапазоне от связи одного с одним до больших групп из тысяч оконечных точек многоадресного вещания. Чтобы управлять полной скоростью передачи данных, вызванной пакетами RTCP в многостороннем сеансе связи, интервал передачи пакетов RTCP, передаваемых одиночной оконечной точкой, должен быть пропорционален числу участников в сеансе связи. Каждый формат кодирования медиа-информации имеет специфический формат полезной информации RTP, который определяет, как мультимедийные данные структурируются в полезной информации пакета RTP.
[0056] Требования к метаданным для файлового формата DVB можно классифицировать по четырем группам, основанным на типе метаданных: 1) специфические для сэмпла синхронизирующие метаданные, такие как временные метки представления; 2) индексы; 3) сегментированные метаданные и 4) закладки пользователя (например, для любимых мест в контенте).
[0057] Для метаданных синхронизации, специфических для сэмпла, могут быть различные временные шкалы (timelines), чтобы указывать специфические для сэмпла синхронизирующие метаданные. Временные шкалы могут требоваться для охвата всей длительности записанных потоков. Временные шкалы могут приостанавливаться. Например, временная шкала А может быть создана на заключительной стадии монтажа фильма. Провайдер услуг или другой объект может вставить коммерческие передачи и предоставить временную шкалу для коммерческих радиопередач. Временная шкала А может быть приостановлена, в то время как коммерческие передачи будут продолжаться. Временные шкалы могут передаваться также непосредственно после контента. В одной форме осуществления изобретения сэмплы временной шкалы могут переноситься в элементарных потоках программы (Program Elementary Streams, PES) MPEG-2. Поток PES передает элементарный битовый поток аудио или видео, и, следовательно, временные шкалы точно синхронизируются с кадрами аудио и видео. В этой связи можно сослаться на техническую спецификацию ETSI TS 102 823 "Specification for the carriage of synchronized auxiliary data" ("Спецификация для передачи синхронизированных вспомогательных данных"), которая включена в данное описание путем ссылки на соответствующий источник.
[0058] Индексы могут включать, например, точки видеодоступа и поддержку режима спецэффектов (например, ускоренного просмотра вперед/назад, замедленного просмотра). Такие операции могут требовать, например, индикации самодекодируемых изображений, декодирования начальных точек и индикации опорных и неопорных изображений.
[0059] В случае сегментированных метаданных, услуги DVB могут быть описаны справочником услуг согласно определенной схеме метаданных, такой как справочник широковещательного контента (Broadcast Content Guide, BCG), "телевидение в любое время" (TV-AnyTime) или электронный справочник услуг (Electronic Service Guide, ESG) для системы передачи данных согласно протоколу IP (IP Datacasting, IPDC). Описание может применяться только к части потока. Следовательно, файл может иметь информацию нескольких описательных сегментов (например, описание конкретного сегмента программы, такое как "Отпуск на Корсике около Каржеза").
[0060] Кроме того, структуры метаданных и индексации файлового формата DVB должны быть расширяемыми, и должны поддерживаться определяемые пользователем индексы. Дополнительно, должен быть способ быстрого доступа к элементам в файле (например, через таблицы индексов). Более того, должна быть возможность сообщать о точности любого индекса. Например, индекс может быть совершенно точным, с точностью до ± указанного количества или только эвристическим предположением.
[0061] Были предложены различные методы выполнения индексации и реализации сегментированных метаданных. Такие методы включают, например, события сэмпла и свойства сэмпла. Механизм события сэмпла позволяет составлять список сэмплов, связанных с конкретными типом события и индексом описани