ОБЛАСТЬ ТЕХНИКИ
[0001] Изобретение в общем касается форматов мультимедийных файлов. Более конкретно, настоящее изобретение касается связывания сэмплов синхронизированных метаданных с сэмплами медиаданных и/или сэмплами указаний для того, чтобы организовать медиаданные и/или мультимедиа-данные.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[0002] Этот раздел предназначен для представления предпосылок создания изобретения или контекста изобретения, которое изложено в формуле изобретения. Описание здесь может включать концепции, которые могли бы быть осуществлены, но не обязательно те, которые были ранее задуманы или осуществлены. Поэтому, если здесь не указано иное, описанное в этом разделе не является описанием известного уровня техники для описания и формулы изобретения и не признается таковым из-за включения в этот раздел.
[0003] Формат файла-контейнера мультимедийной информации - важный элемент в цепочке производства, обработки, передачи и потребления мультимедийного контента. Формат кодирования (т.е. формат элементарного потока) касается действия определенного алгоритма кодирования, который кодирует информацию контента в битовый поток. Формат файла-контейнера включает средства организации формируемого битового потока таким образом, чтобы он был доступен для локального декодирования и воспроизведения, передачи в виде файла или потоковой передачи; все это выполняется с использованием разнообразных архитектур хранения и транспортировки. Кроме того, файловый формат может облегчать обмен мультимедийной информацией и ее редактирование, а также запись в файл потоков, принимаемых в реальном времени. Таким образом, есть существенные различия между форматом кодирования и форматом файла-контейнера.
[0004] Иерархия форматов файлов мультимедиа показана в целом позицией 100 на фиг.1. Элементарный потоковый формат 110 представляет единственный независимый поток. Аудиофайлы типа .amr и .аас создают согласно элементарному потоковому формату. Формат 120 файла-контейнера - это формат, который может содержать аудио- и видеопотоки в единственном файле. Пример семейства форматов 120 файла-контейнера основан на базовом формате медиафайлов Международной организации по стандартизации (ISO). Непосредственно ниже формата 120 файла-контейнера в иерархии 100 показан формат 130 мультиплексирования. Формат 130 мультиплексирования обычно менее гибок и более плотно упакован, чем аудио/видеофайл, созданный согласно формату 120 файла-контейнера. Файлы, созданные согласно формату 130 мультиплексирования, обычно используются только для целей воспроизведения. Поток программы MPEG-2 - это пример потока, созданного согласно формату 130 мультиплексирования. Формат 140 языка презентации используется для целей типа размещения, взаимодействия, синхронизации аудио/видео и дискретных медиаданных и т.д. Синхронизированный язык интегрирования мультимедиа (SMIL) и масштабируемая видеографика (SVG), оба установленные Консорциумом всемирной сети (W3C), является примерами формата 140 языка презентации. Формат 150 файла презентации характерен наличием всех частей презентации в одном и том же файле. Примеры объектов, созданных согласно формату файла презентации, - файлы PowerPoint и файлы, соответствующие расширенному профилю презентации формата файла 3GP.
[0005] Имеющиеся стандарты формата медиафайла и файла-контейнера включают базовый формат медиафайлов ISO (ISO/IEC 14496-12), формат файла MPEG-4 (ISO/IEC 14496-14, также известный как формат MP4), формат файла расширенного видеокодирования (AVC) (ISO/IEC 14496-15) и формат файла 3GPP (3GPP TS 26.244, также известный как 3GP формат). Есть также проект в группе MPEG по разработке формата файла масштабируемого видеокодирования (SVC), который станет поправкой к формату файла расширенного видеокодирования (AVC). В параллельной разработке группа MPEG определяет формат дорожки указаний (hint track) для доставки файла однонаправленной передачей (FLUTE) и сессии асинхронного многоуровневого кодирования (ALC), которые станут поправкой к базовому формату медиафайлов ISO.
[0006] Организация цифрового видеовещания (DVB) находится в настоящее время в процессе определения формата файла DVB. Главная цель определения формата файла DVB - облегчить обмен контентом между реализациями технологий DVB, таких как абонентские приставки согласно существующим стандартам (DVT-T, DVB-C, DVB-S) и будущим стандартам DVB, телевизионные приемники по протоколу Интернет (IP) и подвижные телевизионные приемники согласно стандарту телевещания для переносных устройств (DVB-H) и его будущей эволюции. Формат файла DVB позволит обеспечить обмен записанными медиаданными (только для чтения) между устройствами от различных изготовителей, обмен контентом с использованием USB-памяти большой емкости или подобных устройств для чтения-записи, и распределенный доступ к общей памяти на диске в домашней сети, также как другие функциональные возможности. Базовый формат медиафайлов ISO - в настоящее время самый сильный кандидат на основу для разработки формата файла DVB. Формат файла ISO - это базис для получения всех вышеупомянутых форматов файла-контейнера (исключая сам формат файла ISO). Эти форматы файла (включая сам формат файла ISO) называются семейством форматов файла ISO.
[0007] Основной "строительный" блок в базовом формате медиафайлов ISO называется "бокс" (box). Каждый бокс включает заголовок и полезную нагрузку. Заголовок бокса указывает тип бокса и размер бокса в байтах. Бокс может включать другие боксы, и формат файла ISO определяет, какие типы бокса разрешены внутри бокса некоторого типа. Кроме того, некоторые боксы обязательно присутствуют в каждом файле, в то время как другие боксы являются опциональными. Кроме того, для некоторых типов боксов в файле может присутствовать больше чем один бокс. Поэтому базовый формат медиафайлов ISO по существу определяет иерархическую структуру боксов.
[0008] Фиг.2 показывает упрощенную структуру файла согласно базовому формату медиафайлов ISO. Согласно семейству форматов файлов ISO, файл 200 включает медиаданные и метаданные, которые включены в отдельные боксы: бокс медиаданных (mdat) 210 и бокс фильма (moov) 220 соответственно. Для файла, чтобы он был рабочим, должны присутствовать оба из этих боксов. Бокс 210 медиаданных содержит видео- и аудиокадры, которые могут чередоваться и быть упорядочены по времени. Бокс 220 фильма может содержать одну или более дорожек, и каждая дорожка находится в одном боксе 240 дорожки. Дорожка может быть одного из следующих типов: дорожка медиаданных (media), дорожка указаний (hint) или синхронизированные метаданные (timed metadata). Дорожка медиаданных относится к сэмплам, отформатированным согласно формату сжатия медиаданных (и его инкапсуляции в базовый формат медиафайлов ISO). Дорожка указаний относится к сэмплам указаний, содержащим команды по созданию пакетов для передачи по заданному протоколу связи. Команды могут содержать руководство по построению заголовка пакета и полезной нагрузки пакета. При построении полезной нагрузки пакета, на данные, находящиеся в других дорожках или элементах, можно сослаться (например, ссылка может указывать, какая часть данных конкретной дорожки или элемента должна быть скопирована в пакет в процессе построения пакета). Дорожка синхронизированных метаданных относится к сэмплам, описывающим сэмплы медиаданных и/или указаний, на которые делается ссылка. Для представления одного типа медиаданных обычно выбирают одну дорожку.
[0009] Дополнительно, сэмплы дорожки неявно связаны с номерами сэмплов, которые увеличиваются на 1 в указанном порядке декодирования сэмплов. Следовательно, первый сэмпл дорожки может быть связан с номером сэмпла "1". Следует отметить, что такое допущение влияет на некоторые формулы, но специалисту понятно, как соответствующим образом изменить такие формулы для других "начальных смещений" номеров сэмплов, например, для начала с номера сэмпла "0".
[0010] Следует отметить, что базовый формат медиафайлов ISO не ограничен представлением, которое содержится только в одном файле. Фактически, представление может содержаться в нескольких файлах. В этом сценарии один файл содержит метаданные для целого представления. Этот файл может также содержать все медиаданные, и тогда представление является автономным. Другие файлы, если они используются, не обязаны быть отформатированными согласно базовому формату медиафайлов ISO. Другие файлы используются для размещения медиаданных, и они могут также содержать неиспользуемые медиаданные или другую информацию. Базовый формат медиафайлов ISO касается только структуры файла, содержащего метаданные. Формат файлов медиаданных ограничен базовым форматом медифайлов ISO или его производными только в том, что медиаданные в медиафайлах должны быть отформатированы так, как определено в базовом формате медиафайлов ISO или производных форматах.
[0011] Фрагменты фильма могут использоваться при записи контента в файл ISO, чтобы избежать потери данных, если записывающее приложение испытывает сбой, или заканчивается диск, или случается некоторый другой инцидент. Без использования фрагментов фильма может произойти потеря данных, потому что формат файла требует, чтобы все метаданные (Movie Box, бокс фильма) были записаны в одной непрерывной области файла. Кроме того, при записи файла объема оперативной памяти может быть недостаточно, чтобы буферизовать бокс фильма, а повторное вычисление содержания бокса фильма, когда фильм закрыт, выполняется слишком медленно. Кроме того, фрагменты фильма могут допускать одновременную запись и воспроизведение файла с использованием обычного синтаксического анализатора файлов ISO. Наконец, меньшая продолжительность начальной буферизации требуется для прогрессивной загрузки (например, одновременного приема и воспроизведения файла, когда используются фрагменты фильма, и начальный бокс фильма является меньшим по сравнению с файлом с тем же самым медиаконтентом, но структурированным без фрагментов фильма).
[0012] Особенность фрагмента фильма допускает разбивание метаданных, которые обычно находятся в боксе 220 moov, на множество частей, каждая из которых соответствует некоторому периоду времени для дорожки. Таким образом, эта особенность фрагмента фильма допускает чередование метаданных и медиаданных файла. Следовательно, размер бокса 220 moov может быть ограничен, и случаи использования, упомянутые выше, могут быть реализованы.
[0013] Сэмплы медиаданных для фрагментов фильма находятся в боксе 210 mdat, как обычно, если они находятся в том же самом файле, что и бокс moov. Для метаданных фрагментов фильма, однако, предусмотрен бокс moof. Он включает информацию для некоторой продолжительности времени воспроизведения, которая ранее находилась бы в боксе 220 moov. Бокс 220 moov все еще самостоятельно представляет корректный фильм, но, кроме того, он включает бокс mvex, указывающий, что фрагменты фильма будут следовать в том же самом файле. Фрагменты фильма расширяют представление, которое связано с боксом moov, во времени.
[0014] Метаданные, которые могут быть включены в бокс moof, ограничены подмножеством метаданных, которые могут быть включены в бокс 220 moov, и кодированы по-другому в некоторых случаях.
[0015] В дополнение к синхронизированным дорожкам, файлы ISO могут содержать любые несинхронизиронные двоичные объекты в метабоксе, или "статических" метаданных. Метабокс может находиться на верхнем уровне файла, в пределах бокса фильма и в пределах бокса дорожки. Не более одного метабокса может появиться на каждом уровне файла, уровне фильма или уровне дорожки. Метабокс обязан содержать бокс "hdlr", указывающий структуру или формат содержания метабокса. Метабокс может содержать любое число двоичных элементов, на которые могут делаться ссылки и каждый из которых может быть связан с именем файла.
[0016] Чтобы поддерживать больше чем один метабокс на любом уровне иерархии (файл, фильм или дорожка), в базовом формате медиафайлов ISO введен бокс контейнера метабоксов ("meco"). Бокс контейнера метабоксов может нести любое число дополнительных метабоксов на любом уровне иерархии (файл, фильм или дорожка). Это позволяет, например, одним и тем же метаданным быть представленными в двух различных альтернативных системах метаданных. Бокс связи метабоксов ("mere") дает возможность описать, как различные метабоксы связаны друг с другом (например, содержат ли они точно те же самые метаданные, но описанные с использованием различных схем, или один из них представляет надмножество другого).
[0017] Что касается фиг.3 и 4, на них проиллюстрировано использование группировки сэмплов в боксы. Группировка сэмплов в базовом формате медиафайлов ISO и его производных, таких как формат файла AVC и формат файла SVC, является назначением каждого сэмпла дорожки членом одной группы сэмплов на основе критерия группировки. Группа сэплов при группировке сэмплов не ограничена непрерывными сэмплами и может содержать несмежные сэмплы. Может быть больше чем одна группировка сэмплов для сэмплов дорожки, и каждая группировка сэмплов имеет поле типа, чтобы указать тип группировки. Группировки сэмплов представлены двумя связанными структурами данных: (1) бокс SampleToGroup (бокс sbgp) представляет назначение сэмплов в группы сэмплов; и (2) бокс SampleGroupDescription (бокс sgpd) содержит запись для каждой группы сэмплов, описывающую свойства группы. Могут существовать множество экземпляров боксов SampleToGroup и SampleGroupDescription, основанных на различных критериях группировки. Их различают по полю типа, используемому для указания типа группировки.
[0018] Фиг.3 показывает упрощенную иерархию боксов, указывающую структуру вложений для боксов групп сэмплов. Боксы групп сэмплов (бокс SampleGroupDescription и бокс SampleToGroup) находятся внутри бокса таблицы сэмплов (stbl), который включен в боксы информации о медиаданных (minf), медиаданных (mdia) и дорожки (в указанном порядке) внутри бокса фильма (moov).
[0019] Боксу SampleToGroup разрешено находиться во фрагменте фильма. Следовательно, группировка сэмплов может быть сделана фрагмент за фрагментом. Фиг.4 поясняет пример файла, содержащего фрагмент фильма, включающий бокс SampleToGroup.
[0020] Формат файла DVB предназначен для обмена (как описано выше), чтобы гарантировать функциональную совместимость между совместимыми устройствами DVB. Он не обязательно является форматом внутреннего хранения для устройств DVB. Формат файла DVB допускает перемещение записанных (доступных только для чтения) медиаданных между устройствами различных изготовителей и, помимо прочего, допускает распределенный доступ к общей памяти на диске в домашней сети.
[0021] Ключевая особенность формата файла DVB известна как дорожки с указаниями о приеме (reception hint track), которые могут использоваться, когда один или более потоков пакетов данных записывают согласно формату файла DVB. Дорожки с указаниями о приеме указывают, помимо прочего, порядок, время приема и содержание принятых пакетов. Плееры для формата файла DVB могут воссоздавать поток пакетов, который был принят, на основании дорожки с указаниями о приеме и обрабатывать воссозданный поток пакетов, как будто он был только что принят. Дорожки с указаниями о приеме имеют структуру, идентичную дорожкам указаний (hint tracks) для серверов, как определено в базовом формате медиафайлов ISO. Например, дорожки с указаниями о приеме могут быть связаны с дорожками элементарных потоков (то есть дорожками медиаданных), которые они несут, посредством ссылок на дорожки типа "указание". Каждый протокол для передачи потоков медиаданных имеет собственный формат сэмпла указаний о приеме.
[0022] Серверы, использующие дорожки с указаниями о приеме как указания для того, чтобы передавать принятые потоки, должны обрабатывать потенциальные деградации принятых потоков, такие как флуктуации задержки передачи сигналов и потерю пакетов, и гарантировать, что ограничения протоколов и форматов данных соблюдаются независимо от потенциальных деградаций принятых потоков.
[0023] Форматы сэмплов дорожек с указаниями о приеме могут давать возможность построения пакетов путем извлечения данных из других дорожек посредством ссылки. Эти другие дорожки могут быть дорожками указаний или дорожками медиаданных. Точная форма этих указателей определена типовым форматом для протокола, но в общем они состоят из четырех частей информации: ссылочный индекс дорожки, номер сэмпла, смещение и длина. Некоторые из них могут быть представлены неявно для конкретного протокола. Эти "указатели" всегда направляют к фактическому источнику данных. Если дорожка указаний сформирована "над" другой дорожкой указаний, то вторая дорожка указаний должна иметь прямые ссылки на дорожку (дорожки) медиаданных, использованную первой, где данные этих дорожек медиаданных помещены в поток.
[0024] Преобразование принятых потоков в дорожки медиаданных позволяет существующим плеерам, совместимым с базовым форматом медиафайлов ISO, обрабатывать файлы DVB, если форматы медиаданных также поддерживаются ими. Однако большинство стандартов кодирования медиаданных определяет только декодирование свободных от ошибок потоков, и, следовательно, должно быть обеспечено, чтобы содержание дорожек медиаданных могло быть правильно декодировано. Плееры для формата файла DVB могут использовать дорожки с указаниями о приеме для того, чтобы обрабатывать деградации, вызванные передачей, то есть содержание, которое не может быть правильно декодировано, расположено только в пределах дорожек с указаниями о приеме. Необходимости иметь дубликаты правильных сэмплов медиаданных и в дорожке медиаданных, и в дорожке с указаниями о приеме можно избежать путем включения данных дорожки медиаданных в дорожку с указаниями о приеме путем ссылки.
[0025] В настоящее время определены два типа дорожек с указаниями о приеме: дорожки с указаниями о приеме транспортного потока MPEG-2 (MPEG2-TS) и дорожки с указаниями о приеме по протоколу передачи в реальном времени (RTP). Сэмплы дорожки с указаниями о приеме MPEG2-TS содержат пакеты MPEG2-TS или указания для составления пакетов MPEG2-TS на основе ссылок на дорожки медиаданных. Транспортный поток MPEG-2 является мультиплексным потоком из элементарных аудио- и видеопотоков программы и некоторой информации метаданных. Он может содержать также несколько аудиовизуальных программ. Дорожка с указаниями о приеме RTP представляет один поток RTP, обычно одного типа медиаданных.
[0026] Протокол RTP используется для передачи непрерывных медиаданных, таких как кодированные аудио- и видеопотоки в сети на основе протокола Интернет (IP). Протокол управления передачей в реальном времени (RTCP) образует пару с протоколом RTP, то есть RTCP должен использоваться, чтобы всегда дополнять RTP, когда это позволяет сетевая и прикладная инфраструктура. RTP и RTCP обычно передаются по протоколу пользовательских дейтаграмм (UDP), который в свою очередь передается по протоколу Интернета (IP). Имеются две версии протокола IP: IPv4 и IPv6, отличающиеся, помимо всего прочего, числом адресуемых конечных точек.
Протокол RTCP используется для того, чтобы контролировать качество услуг, предоставляемых сетью, и передавать информацию об участниках в продолжающемся сеансе связи. Протоколы RTP и RTCP предназначены для сеансов связи, которые находятся в диапазоне от связи один-с-одним до больших групп из тысяч оконечных точек многоадресного вещания. Чтобы управлять полной скоростью передачи данных, вызванной пакетами RTCP в многостороннем сеансе связи, интервал передачи пакетов RTCP, передаваемых одиночной оконечной точкой, должен быть пропорционален числу участников сеанса связи. Каждый формат кодирования медиаданных имеет специфический формат полезной нагрузки RTP, который определяет, как мультимедийные данные структурируются в полезной нагрузке пакета RTP.
[0027] Требования к метаданным для файлового формата DVB можно классифицировать по четырем группам, основанным на типе метаданных: 1) специфические для сэмпла метаданные синхронизации, такие как метки времени представления; 2) индексы; 3) сегментированные метаданные и 4) закладки пользователя (например, для любимых мест в контенте).
[0028] Пример специфических для сэмпла метаданных синхронизации - метки времени представления. Могут существовать различные временные шкалы (timelines), чтобы указывать специфические для сэмпла метаданные синхронизации. Временные шкалы не обязательно охватывают всю длительность записанных потоков, и временные шкалы могут иметь паузы. Например, временная шкала А может быть создана на заключительной стадии монтажа фильма. Позже провайдер услуг может вставить рекламу и предоставить временную шкалу для этой рекламы. В результате временная шкала А может быть приостановлена, пока продолжается реклама. Временные шкалы могут передаваться также после самого контента. В одном из способов сэмплы временной шкалы могут переноситься в элементарных потоках программы (Program Elementary Streams, PES) MPEG-2. Поток PES передает элементарный битовый аудио- или видеопоток, и, следовательно, временные шкалы точно синхронизируются с аудио- и видеокадрами.
[0029] Индексы могут включать, например, точки доступа к видеоданным и поддержку режима спецэффектов (например, ускоренного просмотра вперед/назад, замедленного просмотра). Такие операции могут требовать, например, индикации самодекодируемых изображений, декодирования начальных точек и индикации опорных и неопорных изображений.
[0030] В случае сегментированных метаданных, услуги DVB могут быть описаны согласно определенной схеме метаданных в справочнике услуг, таком как справочник широковещательного контента (Broadcast Content Guide, BCG), "телевидение в любое время" (TV-AnyTime) или электронный справочник услуг (Electronic Service Guide, ESG) для системы вещательной передачи данных согласно протоколу IP (IP Datacasting, IPDC). Описание может применяться только к части потока. Следовательно, файл может иметь информацию нескольких описательных сегментов (например, описание конкретного сегмента программы, такое как "Отпуск на Корсике около Каржеза").
[0031] Кроме того, структуры метаданных и индексации файлового формата DVB должны быть расширяемыми, и должны поддерживаться определяемые пользователем индексы.
[0032] Были предложены различные способы выполнения индексации и реализации сегментированных метаданных, которые включают, например, синхронизированные дорожки метаданных, группы сэмплов, таблицу индексов DVB, виртуальные дорожки медиаданных, а также события сэмплов и свойства сэмплов. При использовании синхронизированных дорожек метаданных создают одну или более синхронизированную дорожку метаданных. Дорожка может содержать индексы конкретного типа или может содержать индексы любого типа. Другими словами, типовой формат допускает мультиплексирование различных типов индексов. Дорожка может также содержать индексы одной программы (например, многопрограммного транспортного потока) или многих программ. Далее, дорожка может содержать индексы одного типа медиаданных или многих типов медиаданных.
[0033] При использовании групп сэмплов, один тип группировки сэмплов может быть выделен для каждого типа индекса, при этом такое же число индексов описания групп сэмплов включено в бокс описания группы сэмплов (Sample Group Description Box), когда имеются различные значения для конкретного типа индекса. Подход с использованием групп сэмплов используется, чтобы связать сэмплы со значениями индексов. Подход с использованием групп сэмплов может использоваться вместе с синхронизированными дорожками метаданных.
[0034] При использовании таблицы индексов DVB (DVBIndexTable), бокс DVBIndexTable вводят в бокс таблицы сэмплов. Бокс DVBIndexTable содержит список записей, в котором каждая запись связана с сэмплом дорожки с указаниями о приеме посредством ее номера сэмпла. Каждая запись далее содержит информацию о точности индекса, о том, какой программы многопрограммного транспортного потока MPEG2 она касается, какой временной метке она соответствует, и значение (значения) индекса (индексов).
[0035] Что касается виртуальных дорожек медиаданных, было предложено, чтобы виртуальные дорожки медиаданных были составлены из дорожек с указаниями о приеме путем ссылки на данные сэмплов дорожек с указаниями о приеме. Следовательно, механизмы индексации для дорожек медиаданных, такие как бокс сэмплов синхронизации, могут косвенно использоваться для принятых медиаданных.
[0036] Наконец, что касается событий сэмплов и свойств сэмплов, было предложено преодолеть два недостатка, присущих группам сэмплов (когда они используются для индексирования). Сначала бокс Sample to Group (сэмпл - в группу) использует кодирование длин серий, чтобы связать сэмплы с индексами описания группы. Другими словами, предоставляется число последовательных сэмплов, отображаемых на один и тот же индекс описания группы. Таким образом, чтобы разрешить индексы описания группы в терминах абсолютных номеров сэмплов, вычисляется кумулятивная сумма числа последовательных сэмплов. Такое вычисление может быть тяжелым для некоторых реализаций. Поэтому предложенная техника использует абсолютные номера сэмплов в боксах Sample to Event и Sample to Property (которые соответствуют боксу Sample to Group), а не кодирование длин серий. Во-вторых, бокс Sample Group Description находится в боксе фильма. Следовательно, либо значения индексов должны быть известны в начале записи (что возможно не для всех типов индексов), либо бокс фильма должен постоянно модифицироваться в течение записи, чтобы реагировать на новые значения индексов. Модифицирование бокса фильма, следовательно, может требовать перемещения других боксов (такого как бокс mdat) в пределах файла, что может быть медленной файловой операцией. Предложенный бокс Sample to Property включает поле значения свойства, которое фактически несет значение индекса и может находиться в каждом фрагменте фильма. Следовательно, первоначальный бокс фильма не должен быть модифицирован из-за новых значений индексов.
[0037] Различные способы могут использоваться, чтобы соединить сэмплы с различных дорожек, то есть ассоциировать сэмплы различных дорожек друг с другом в соответствии с базовым форматом медиафайлов ISO и его производными. Первый способ, называемый "общая шкала времени воспроизведения", используют, когда дорожки медиаданных синхронизированы согласно меткам времени композиции сэмплов медиаданных, которые считают находящимися на одной и той же шкале времени. Другими словами, сэмплы фактически не связаны друг с другом, а только представлены синхронно.
[0038] Альтернативно, способ, называемый "то же самое время декодирования", может использоваться, когда дорожка синхронизированных метаданных содержит ссылку на дорожку медиаданных или дорожку указаний, которую она описывает. Сэмпл синхронизированных метаданных обычно связывается с сэмплом медиаданных посредством времени декодирования, то есть соответствующие сэмплы имеют одинаковую метку времени декодирования, указанную боксом "Время декодирования для сэмпла" (Decoding Time to Sample) (обеих дорожек).
[0039] Еще один способ связывания сэмплов с различных дорожек называется "тот же самый номер сэмпла" и обеспечивает возможность ассоциирования сэмпла синхронизированных метаданных с сэмплом медиаданных путем включения номера сэмпла медиаданных в сэмпл синхронизированных метаданных. Подобный механизм доступен как один из конструкторов пакета для дорожек указаний протокола RTP. Другой пример - формат файла SVC, который включает механизм экстрактора, подобный включению данных сэмплов в сэмплы указаний путем ссылки.
[0040] Кроме того, может использоваться способ, называемый "время декодирования + смещение номера сэмпла, специфичное для сэмпла", где одна дорожка SVC может включать данные путем ссылки, использующей механизм экстрактора, с другой дорожки SVC. Например, одна дорожка SVC содержит основной уровень масштабируемого потока битов, который может быть включен путем ссылки в другую дорожку SVC. Сэмпл (называемый здесь сэмплом места назначения), содержащий экстрактор, сначала связывают посредством его времени декодирования с сэмплом в дорожке, на которую делается ссылка, имеющим номер сэмпла, называемый номером сэмпла источника-кандидата. Тогда смещение номера сэмпла, содержащееся в сэмпле места назначения, добавляют к номеру сэмпла источника-кандидата, чтобы получить связанный номер сэмпла.
[0041] Вообще желательны простые процессы для механизма индексации формата файла DVB. Однако характерная особенность механизма индексации должна соединять индекс и сэмпл с указаниями о приеме (или, в некоторых случаях, сэмпл медиаданных). Следовательно, также желательно не иметь никакого ряда операций, такого как повторяющееся суммирование, для получения конкретного индекса из сэмпла с указаниями о приеме.
[0042] В соответствии с общим способом шкалы времени воспроизведения, описанным выше, связывание сэмплов различных дорожек возможно только после того, как боксы Decoding Time to Sample и Composition Time to Sample будут проанализированы в обеих дорожках. Бокс Decoding Time to Sample кодирован дифференциально, то есть вместо того, чтобы указывать абсолютную временную метку декодирования для каждого сэмпла, предоставляется продолжительность каждого сэмпла. Следовательно, чтобы получить временную метку декодирования для конкретного сэмпла, все продолжительности предшествующих сэмплов нужно суммировать, что является сложным вычислением. Кроме того, временные метки композиции являются непригодными для сэмплов синхронизированных метаданных, поскольку они предоставляются редко, если вообще имеются.
[0043] Способ "то же самое время декодирования" требует синтаксического анализа боксов Decoding Time to Sample обеих дорожек, что является вычислительно сложным, как объяснено выше. Аналогично, способ "тот же самый номер сэмпла" также приводит к сложным операциям редактирования, потому что всякий раз, когда сэмплы вставляют или удаляют с дорожки медиаданных, номера сэмплов, включенные в синхронизированную дорожку метаданных, должны быть перезаписаны. Другими словами, все сэмплы синхронизированных метаданных после точки редактирования должны быть просмотрены, и их содержание должно быть отредактировано. Кроме того, способ "время декодирования+смещение номера сэмпла", подобно способу времени декодирования, требует синтаксического анализа боксов Decoding Time to Sample обеих дорожек, что является вычислительно сложным.
[0044] Следует отметить, что операции редактирования файла могут быть реализованы посредством боксов списков редактирования. Боксы списков редактирования определяют, как шкала времени композиции медиаданных преобразуется в шкалу времени воспроизведения, и допускают разбиение шкалы времени медиаданных на разделы и отображение этих разделов на временные слайсы шкалы времени воспроизведения. Следовательно, списки редактирования позволяют исключить сэмплы медиаданных из воспроизведения, изменить порядок разделов медиаданных при воспроизведении и изменить скорость воспроизведения разделов медиаданных.
Однако боксы списков редактирования не поддерживаются всеми плеерами, потому что, например, гибкость функций, обеспечиваемая боксами списков редактирования, вызывает сложности при реализации плеера. Кроме того, использование боксов списков редактирования не дает возможность освобождать пространство памяти, использованное для непроигрываемых сэмплов медиаданных или для описания непроигрываемых сэмплов медиаданных в боксах moov и moof. Поэтому обычные редакторы файлов вообще не используют боксы списков редактирования, а изменяют файлы другими способами.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0045] Различные системы и способы организации медиаданных и/или мультимедиаданных предлагаются в соответствии с различными вариантами осуществления изобретения. Первый и второй сэмпл сохраняют в файле, при этом первый и второй сэмпл могут быть включены (посредством ссылки), например, в дорожку медиаданных или дорожку указаний. Первый сэмпл связан с первой частью данных, и второй сэмпл связан со второй частью данных, при этом первая и вторая части данных представляют части дорожек указаний или медиаданных. Первый номер сэмпла связан с первым сэмплом, и второй номер сэмпла связан со вторым сэмплом, при этом первый и второй номера сэмплов содержатся, например, в сэмпле синхронизированных метаданных и представлены относительно дорожек указаний и/или медиаданных. Смещение номера сэмпла включено в файл, и первый базовый номер сэмпла, связанный с первой частью данных, также включен в файл. Смещение номера сэмпла применимо к множеству сэмплов синхронизированных метаданных. Следует отметить, что первый номер сэмпла должен быть выводимым из смещения номера сэмпла и первого базового номера сэмпла. В одном способе получения первого номера сэмпла из смещения номера сэмпла и первого базового номера сэмпла смещение номера сэмпла добавляют к первому базовому номеру сэмпла, чтобы получить первый номер сэмпла, то есть фактический первый номер сэмпла в пределах дорожки указаний или медиаданных. Дополнительно, второй базовый номер сэмпла, связанный со второй частью данных, включают в файл, при этом второй номер сэмпла должен быть выводимым из смещения номера сэмпла и второго базового номера сэмпла тем же самым способом, как описанный в отношении первого базового номера сэмпла.
[0046] Поскольку используется смещение номера сэмпла, как описано выше, номера сэмплов в сэмплах синхронизированных метаданных не должны быть перезаписаны после вставки или перемещения сэмплов. Следовательно, различные варианты осуществления изобретения могут, например, упростить операции редактирования, особенно в отношении операции удаления начала записи, которая может быть наиболее часто используемой функцией среди применяемых операций редактирования.
[0047] Эти и другие преимущества и признаки изобретения вместе с его организацией и способом работы станут более очевидными из следующего подробного описания, приводимого вместе с чертежами, где аналогичные элементы имеют аналогичные номера позиций.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0048] Фиг.1 - описание иерархии форматов мультимедиафайлов;
[0049] Фиг.2 поясняет пример бокса в соответствии с базовым форматом медиафайлов ISO;
[0050] Фиг.3 - пример бокса, иллюстрирующий группировку сэмплов;
[0051] Фиг.4 поясняет пример бокса, содержащего фрагмент фильма, включая бокс SampleToGroup;
[0052] Фиг.5 - графическое представление примера системы мультимедийной связи, в которой могут использоваться различные варианты осуществления изобретения;
[0053] Фиг.6 - блок-схема, иллюстрирующая способ организации медиаданных и/или мультимедиаданных в соответствии с различными вариантами осуществления изобретения;
[0054] Фиг.7 - блок-схема, иллюстрирующая способ доступа к медиаданным в соответствии с различными вариантами осуществления изобретения;
[0055] Фиг.8 - блок-схема, иллюстрирующая способ декодирования медиаданных и доступа к индексам в соответствии с различными вариантами осуществления изобретения;
[0056] Фиг.9 - вид в перспективе электронного устройства, которое может использоваться в различных вариантах осуществления изобретения; и
[0057] Фиг.10 - схематическое представление схем, которые могут быть включены в электронное устройство, показанное на фиг.9.
ПОДРОБНОЕ ОПИСАНИЕ РАЗЛИЧНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
[0058] Фиг.5 - графическое представление обобщенной мультимедийной системы связи, в которой могут быть использованы различные варианты осуществления настоящего изобретения. Как показано на фиг.1, источник 500 данных подает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате, или в виде некоторой комбинации этих форматов. Кодер 510 кодирует исходный сигнал, формируя кодированный битовый поток медиаданных. Следует отметить, что битовый поток, который необходимо декодировать, может приниматься непосредственно или опосредованно от удаленного устройства, фактически расположенного в сети любого типа. Кроме того, битовый поток может приниматься от локальных аппаратных или программных средств. Кодер 510 может быть приспособлен для кодирования более одного типа медиаданных, таких как аудио- и видеоданные, или может потребоваться более одного кодера 510 для кодирования различных типов медиаданных исходного сигнала. Кодер 510 может получать также синтетически созданный входной сигнал, такой как графика и текст, или он может быть способен создавать кодированные битовые потоки синтетических медиаданных. Чтобы упростить описание, ниже рассматривается только обработка одного кодированного битового потока одного типа медиаданных. Следует отметить, однако, что обычные широковещательные услуги в реальном времени включают несколько потоков (обычно по меньшей мере один поток аудиоданных, видеоданных и субтитров). Следует также заметить, что система может содержать много кодеров, но на фиг.5 представлен только один кодер 510, чтобы упростить описание без потери общности. Текст и примеры, содержащиеся здесь, могут конкретно описывать процесс кодирования, но специалистам в данной области техники будет понятно, что те же самые концепции и принципы применимы также к соответствующему процессу декодирования и наоборот.
[0059] Кодированный битовый поток медиаданных передается в запоминающее устройство 520. Запоминающее устройство 520 может включать память большого объема любого типа, чтобы хранить кодированный битовый поток медиаданных. Формат кодированного битового потока медиаданных в запоминающем устройстве 520 может быть форматом самостоятельного элементарного битового потока, или же один или более кодированных битовых потоков медиаданных могут инкапсулироваться в файл-контейнер. Некоторые системы работают "напрямую", то есть исключают запоминающее устройство и передают кодированный битовый поток медиаданных из кодера 510 непосредственно в передатчик 530. Затем кодированный битовый поток медиаданных по мере необходимости передается в передатчик 530, называемый также сервером. Формат, используемый при передаче, может быть форматом самостоятельного элементарного битового потока, форматом пакетного потока или же один или более кодированных битовых потоков медиаданных могут инкапсулироваться в файл-контейнер. Кодер 510, запоминающее устройство 520 и передатчик 530 могут находиться в одном физическом устройстве, или они могут быть включены в отдельные устройства. Кодер 510 и передатчик 530 могут работать с контентом в реальном времени; в этом случае кодированный битовый поток медиаданных обычно не хранится постоянно, а буферизируется в течение малых периодов времени в кодере 510 контента и/или в сервере 530, чтобы сглаживать изменения в битовой скорости передачи кодированных медиаданных, в задержке обработки и в задержке передачи.
[0060] Сервер 530 передает кодированный битовый поток медиаданных, используя стек протоколов связи. Стек может содержать, в качестве неограничивающих примеров, протокол передачи в режиме реального времени (Real-Time Transport Protocol, RTP), протокол пользовательских дейтаграмм (User Datagram Protocol, UDP) и протокол Интернета (Internet Protocol, IP). Когда стек протоколов связи ориентирован на пакетную передачу, сервер 530 инкапсулирует кодированный битовый поток медиаданных в пакеты. Например, когда используется протокол RTP, сервер 530 инкапсулирует кодированный битовый поток медиаданных в пакеты RTP согласно формату полезной нагрузки RTP. Обычно каждый тип медиаданных имеет заранее заданный формат полезной нагрузки RTP. Снова следует отметить, что система может содержать более одного сервера 530, но ради простоты в дальнейшем описании рассматривается только один сервер 530.
[0061] Сервер 530 может быть подключен или не подключен к шлюзу 540 через сеть связи. Шлюз 540 может выполнять функции различного типа, такие как преобразование потока пакетов согласно одному стеку протоколов связи в другой стек протоколов связи, объединение и разветвление потоков данных, а также манипулирование потоком данных согласно возможностям нисходящей линии связи и/или приемника, таким как управление скоростью передачи данных пересылаемого потока согласно условиям нисходящей линии. Примеры шлюзов 540 включают блоки управления многоадресной связью (Multipoint Control Unit, MCU), шлюзы между видеотелефонией с коммутацией каналов и с пакетной коммутацией, услугу "нажми, чтобы говорить в сотовой сети" (Push-to-Talk over Cellular, PoC), инкапсуляторы IP в системах цифрового телевизионного вещания на портативные устройства (Digital Video Broadcasting-Handheld, DVB-H) или абонентские приставки, которые локально направляют широковещательные передачи в домашние беспроводные сети. Когда используется протокол RTP, шлюз 540 называется смесителем RTP или транслятором RTP и обычно действует как конечная точка соединения RTP.
[0062] Система содержит один или более приемников 550, обычно способных к приему, демодуляции и декапсуляции передаваемого сигнала в кодированный битовый поток медиаданных. Кодированный битовый поток медиаданных передается в записывающее запоминающее устройство 555. Записывающее запоминающее устройство 555 может включать память любого типа большого объема, чтобы хранить кодированный битовый поток медиаданных. Записывающее запоминающее устройство 555 может, альтернативно или дополнительно, включать память для вычислений, такую как оперативная память. Формат кодированного битового потока медиаданных в записывающем запоминающем устройстве 555 может быть форматом самостоятельного элементарного битового потока, или же один или более кодированных битовых потоков медиаданных могут инкапсулироваться в файл-контейнер. Если имеется много кодированных битовых потоков медиаданных, таких как аудиопоток и видеопоток, связанных друг с другом, обычно используется файл-контейнер, и приемник 550 содержит формирователь файлов-контейнеров или присоединяется к формирователю файлов-контейнеров, создающему файлы-контейнеры из входных потоков. Некоторые системы работают "напрямую", то есть исключают записывающее запоминающее устройство 555 и передают кодированный битовый поток медиаданных от приемника 550 непосредственно в декодер 560. В некоторых системах только самая последняя часть записываемого потока, например, самые последние 10 минут записываемого потока, сохраняется в записывающем запоминающем устройстве 555, в то время как любые ранее записанные данные удаляются из записывающего запоминающего устройства 555.
[0063] Кодированный битовый поток медиаданных передается из записывающего запоминающего устройства 555 в декодер 560. Если имеется много кодированных битовых потоков медиаданных, таких как аудиопоток и видеопоток, связанных друг с другом и инкапсулированных в файл-контейнер, синтаксический анализатор файла (не показан) используется для выделения каждого кодированного битового потока медиаданных из файла-контейнера. Записывающее запоминающее устройство 555 или декодер 560 может содержать синтаксический анализатор файла, или же синтаксический анализатор файла присоединяется к записывающему запоминающему устройству 555 или декодеру 560.
[0064] Битовый поток медиаданных кодека обычно обрабатывается далее декодером 560, выходным сигналом которого является один или более несжатых потоков медиаданных. Наконец, рендерер 570 может воспроизводить несжатые потоки медиаданных, например, с помощью динамика или дисплея. Приемник 550, записывающее запоминающее устройство 555, декодер 560 и рендерер 570 могут размещаться в одном и том же физическом устройстве или же они могут быть включены в отдельные устройства.
[0065] Различные варианты осуществления изобретения обеспечивают системы и способы для использования номеров сэмплов, чтобы связать сэмплы синхронизированных метаданных с сэмплами указаний или медиаданных. Другими словами, сэмпл синхронизированных метаданных может быть связан с сэмплами медиаданных или указаний, поскольку номер сэмпла, содержащийся в сэмпле синхронизированных медиаданных, предоставляется относительно соответствующей дорожки медиаданных или указаний. Дополнительно, смещение номера сэмпла, применимое к сценариям, где существует множество сэмплов синхронизированных метаданных, может быть добавлено к предоставляемому номеру сэмпла, чтобы получить фактический номер сэмпла в пределах дорожки указаний или медиаданных. Поскольку используется смещение номера сэмпла, как описано выше, номера сэмплов в сэмплах синхронизированных метаданных не должны быть перезаписаны после вставки или перемещения сэмплов. Следовательно, различные варианты осуществления изобретения могут, например, упростить операции редактирования, особенно в отношении операции удаления начала записи, которая может быть наиболее часто используемой функцией среди применяемых операций редактирования.
[0066] Следует отметить, что представленные ниже синтаксис и семантика для обеспечения возможности связывания синхронизированных метаданных с сэмплами медиаданных и/или указаний, и использование смещений номера сэмпла описаны в контексте формата файла DVB, а также других механизмов индексации для формата файла DVB. Однако различные варианты осуществления изобретения не ограничены синтаксисом и семантикой, описанными здесь, и применимы к другим форматам файлов. То есть, различные варианты осуществления изобретения могут быть применены в различных системах и способах, чтобы обеспечить ассоциацию любых двух "сэмплов", где "сэмпл" связан со шкалой времени или порядком последовательности относительно других сэмплов.
[0067] Дорожка синхронизированных метаданных в соответствии с различными вариантами осуществления изобретения использует следующую запись сэмпла:
[0068] IndexSampleEntry указывает типы индексов, которые могут присутствовать в сэмплах, связанных с этой конкретной записью сэмпла. Номер программы (program number) идентифицирует программу в пределах транспортного потока MPEG-2. Если счетчик записи (entry count) равен 0, то любые индексы могут быть включены в сэмплы, связанные с этой записью. Если счетчик записи больше чем 0, то дается цикл значений index_type_4cc, и каждое значение index_type_4cc указывает код с четырьмя символами для бокса, который может присутствовать в сэмплах, связанных с этой записью. Если имеется много дорожек синхронизированных метаданных для дорожки с указаниями о приеме, то значения index_type_4cc могут использоваться, чтобы обнаружить дорожку, содержащую желаемые индексы. Далее, смещение номера сэмпла (sample_number_offset) определяет смещение, которое будет добавлено к номеру сэмпла в связанных сэмплах синхронизированных метаданных, чтобы получить номер сэмпла дорожки, на которую делается ссылка. Следует отметить, что иные механизмы, чем запись, описанная выше, возможны для того, чтобы связать смещение номера сэмпла с множеством сэмплов. Например, в бокс таблицы сэмплов (Sample Table) может быть введен новый бокс, содержащий смещение номера сэмпла. Смещение номера сэмпла в новом боксе применяется ко всем сэмплам, на который ссылается соответствующий бокс Фильма или бокс фрагмента фильма. Альтернативно, в бокс заголовка дорожки и бокс заголовка фрагмента дорожки может быть включен новый бокс, содержащий смещение номера сэмпла для сэмплов, на которые ссылается бокс дорожки или бокс фрагмента дорожки соответственно.
[0069] Пример формата сэмпла для дорожки синхронизированных метаданных, содержащей индексы и сегментированные метаданные, дается ниже:
Сэмпл в дорожке с указаниями о приеме, связанной с данными индексами, имеет номер сэмпла, равный sample_number + sample_number_offset (номер сэмпла + смещение номера сэмпла). IndexSample содержит нуль или более боксов индексов, где код с четырьмя символами для включенных боксов индексов находится среди указанных ассоциированной записью сэмпла.
[0070] Примеры боксов индексов, которые могут использоваться в различных вариантах осуществления изобретения, даны ниже:
[0071] Следующие значения определены для точности времени и точности сэмпла: 0×0: точный, 0×1: неопределенный, 0×2: эвристика, 0×3: зарезервирован (не обеспечивается никакого максимума), 0×4 - 0×7: конкретный для приложения (не обеспечивается никакого максимума), 0×8: максимальная установленная неточность, 0×9: зарезервирован (обеспечивается максимальная неточность), 0×А - 0×F: конкретный для приложения (обеспечивается максимальная неточность).
[0072] Маска видеособытия video_event_mask - это битовая маска, указывающая видеособытие или события, которые начинаются в указанном сэмпле, согласно таблице 1, приведенной ниже.
Длительность видеособытия video_event_length указывает число сэмплов (транспортных пакетов), которые составляют это видеоизображение, включая текущий пакет. Значение "0" должно использоваться, чтобы означать "неизвестно".
[0073] Дополнительно, бокс сэмплов синхронизации может также нести индексы для событий типа 0×01.
Флаг разрыва PCR (PCR_discontinuity_flag) - поле, которое должно быть установлено на "1", если имеется разрыв опорного сигнала синхронизации программы (PCR, program clock reference) в связанном событии PCR. Иначе, оно должно быть установлено на "0".
[0074] Значение PCR (PCR_Value): значение 27 МГц, извлеченное из сигнала PCR, которое индексировано, то есть согласно уравнению (2-1) в Международном стандарте ISO/IEC 13818-1.
[0075] Полярность относится к полярности связанного события, согласно таблице 2, представленной ниже:
[0076] Значения таблицы 2 указывают новые применяемые значения полярности, где сэмпл синхронизированных метаданных соответствует первому сэмплу указаний о приеме с этой новой полярностью. Следует отметить, однако, что индекс изменения полярности должен считаться имеющим место только тогда, когда полярность потока пакетов изменяется для данного идентификатора PID, а не когда она изменяется между пакетами различных идентификаторов PID.
[0077] С полярностью, определенной так, как будет указано ниже, данные ca_event_data указывают байты, которые включают пакет, несущий событие условного доступа (Conditional Access, CA). Часто, хотя и не всегда, это будет сообщение управления доступом (Entitlement Control Message, ECM). Данные ca_event_data продолжаются до конца блока. Длина ca_event_data может быть определена из длины блока.
[0078] Еще один бокс индексов, касающийся шкал времени, представлен ниже:
Идентификатор timeline_id - это идентификатор шкалы времени. Поле tick_format является полем, определяющим формат, который принимает поле absolute_ticks. Поле absolute_ticks - это временной код, кодируемый так, как указано полем tick_format.
[0079] Бокс индексов, связанный с обновлениями раздела, является следующим:
Идентификатор table_id - это идентификатор таблицы обновления версии раздела, который индексируется. Расширение table_id_extension - это расширение (или номер программы для таблицы структуры программы (Program Map Table, PMT)), или идентификатор транспортного потока transport_stream_id для таблицы ассоциаций программ (Program Association Table, PAT) из обновления версии раздела, который индексируется. Section_no - это номер раздела, к которому это обновление применяется. Section_data является полем, которое может отсутствовать. Однако, если оно присутствует, оно содержит данные раздела новой версии. Данные раздела должны продолжаться до конца бокса, и длина section_data может быть определена из длины бокса.
[0080] Еще один бокс индексов, который может использоваться в соответствии с различными вариантами осуществления изобретения, определен ниже:
Running_status - это поле, указывающее состояние ID, на который ссылается поле ID_Table_index (например, ID находится в состоянии работы или приостановки). Значение этого поля определяется в таблице 105 в документе ETSI TS 102 323. ID_Table_jndex является индексом в DVBIDTableBox, указывающим ID, который применяется в этом месте с указанным состоянием running_status.
[0081] Другая таблица индексов для использования с различными вариантами осуществления изобретения приведена ниже, где ID_count - число идентификаторов, которые следуют в таблице DVBIDTable, и ID - идентификатор в формате унифицированного идентификатора ресурса (Uniform Resource Identifier, URI).
[0082] Следует отметить, что другие примеры боксов индексов (которые не были ранее предложены в отношении формата файла DVB) определяются следующим образом:
Sdp_text - строка с нулевым символом в конце, содержащая описание протокола SDP, которое является действительным, начиная с указанного сэмпла.
[0083] Следующий бокс индексов касается обновлений ключей и сообщений о ключах:
Сообщение о ключе key_message содержит криптографический ключ, который используется для дешифрования полезных нагрузок пакетов, начиная со связанного с ним сэмпла указаний о приеме.
[0084] Бокс индексов ошибок может быть определен следующим образом:
[0085] Ошибка заголовка пакета packet_payload_error - это значение ошибки, где значение 0×0 указывает, что заголовок пакета не содержит никаких ошибок. Значение 0×1 указывает, что заголовок пакета может содержать или не содержать ошибки. Значение 0×2 указывает, что заголовок пакета содержит ошибки. Значение 0×3 зарезервировано. Ошибка полезной нагрузки пакета packet_payload_error - это другое значение ошибки, где значение 0×0 указывает, что полезная нагрузка пакета не содержит никаких ошибок. Значение 0×1 указывает, что полезная нагрузка пакета может содержать или не содержать ошибки. Значение 0×2 указывает, что полезная нагрузка пакета содержит ошибки. Значение 0×3 зарезервировано. Промежуток в последовательности пакетов packet_sequence_gap указывает порядок следования, где значение 0×0 указывает, что пакет непосредственно следует за предыдущим пакетом в дорожке с указаниями о приеме в порядке передачи. Значение 0×1 указывает, что пакет может непосредственно следовать или не следовать за предыдущим пакетом в дорожке с указаниями о приеме в порядке передачи. Значение 0×2 указывает, что пакет непосредственно не следует за предыдущим пакетом в дорожке с указаниями о приеме в порядке передачи, например, что имеется по меньшей мере один пропущенный пакет, предшествующий этому пакету. Значение 0×3 зарезервировано.
[0086] Когда создаются дорожки синхронизированных метаданных для индексов или сегментированных метаданных, следующие действия могут выполняться в отношении формирования файла.
[0087] Сначала одна дорожка синхронизированных метаданных может быть создана для программно-специфичных индексов и метаданных транспортного потока MPEG 2 с единственной программой. Программно-специфичные индексы и метаданные могут применяться одинаково к аудио- и видеопотокам программы и к любым другим потенциальным компонентам программы, таким как потоки субтитров.
[0088] Во-вторых, одна дорожка синхронизированных метаданных на программу может быть создана для программно-специфичных индексов и метаданных многопрограммного транспортного потока MPEG 2. Другими словами, дорожка синхронизированных метаданных может содержать метаданные только одной программы. В результате, программа может быть идентифицирована ее значением номера программы, которое является 16-разрядным уникальным идентификатором для программ в транспортном потоке MPEG-2, используемым, например, в таблицах PAT и РМТ транспортного потока MPEG-2. Параметр номера программы может быть включен, например, в структуру записи сэмпла для дорожек синхронизированных метаданных, связанных с дорожками с указаниями о приеме MPEG2-TS.
[0089] В-третьих, одна дорожка синхронизированных метаданных может быть создана для программно-специфичных индексов каждого элементарного потока программы MPEG2-TS. Программно-специфичные индексы применяются только к конкретному типу медиаданных. Например, они могут быть указаниями опорных и неопорных кадров видеоданных или указаниями уровня временной масштабируемости видеоданных.
[0090] В-четвертых, одна дорожка синхронизированных метаданных может быть создана для программно-специфичных индексов для потока RTP.
[0091] В-пятых, одна дорожка синхронизированных метаданных может быть создана для программно-специфичных индексов множества потоков RTP. Дорожка синхронизированных метаданных связывается с дорожками с указаниями о приеме протокола RTP с использованием ссылок дорожки. Альтернативно, дорожка синхронизированных метаданных может быть связана с "мастер-дорожкой" с указаниями о приеме с помощью ссылки дорожки, а другие связанные дорожки с указаниями о приеме указаны посредством TrackRelationBox, как описано выше.
[0092] Наконец, хотя одна программно-специфичная дорожка синхронизированных метаданных и одна программно-специфичная дорожка синхронизированных метаданных на элементарный поток медиаданных часто предпочтительны, более чем одна дорожка синхронизированных метаданных также может быть создана. Например, если альтернативная шкала времени для программы предоставляется после самой программы, то более практично с точки зрения конфигурации файла создать новую дорожку синхронизированных метаданных для предоставляемой шкалы времени. Приемник может также создать "мультиплексную" дорожку синхронизированных метаданных, включающую много типов индексов, и "специализированные" дорожки синхронизированных метаданных, каждая из которых включает один тип индекса. Вместо того чтобы создавать отдельные сэмплы для "специализированной" дорожки синхронизированных метаданных, приемник может создать боксы в боксе таблицы сэмплов "специализированной" дорожки синхронизированных метаданных таким образом, чтобы сэмплы "специализированных" дорожек синхронизированных метаданных являлись фактически подмножествами сэмплов "мультиплексной" дорожки синхронизированных метаданных. Другими словами, на одни и те же части данных сэмплов ссылаются множество раз из различных дорожек синхронизированных метаданных.
[0093] Дополнительно, приемник может работать следующим образом в ответ на каждый принятый пакет. Во-первых, принятый пакет может быть преобразован в сэмпл указаний о приеме в боксе mdat. Во-вторых, могут быть получены индексы и сегментированные метаданные, где связанный сэмпл или сэмплы метаданных, если таковые имеются, могут быть записаны в бокс mdat (непосредственно после соответствующего сэмпла указаний о приеме). В-третьих, боксы могут быть модифицированы в пределах заголовка дорожки с указаниями о приеме. В-четвертых, боксы могут быть модифицированы в пределах заголовка дорожки синхронизированных метаданных. Наконец, если память, зарезервированная для заголовка дорожки, почти полностью занята (и не может быть динамически перераспределена), может быть начат новый фрагмент фильма.
[0094] Следует отметить, что приемник с большим объемом буферной памяти может упорядочивать несколько сэмплов метаданных и сэмплов указаний о приеме в непрерывных чанках (chanks) памяти и, следовательно, реализовывать экономию в отношении пространства памяти, требуемого для сэмпла в боксе чанка и боксе смещения чанка.
[0095] Должно также быть отмечено, что индексы и сегментированные метаданные могут иметь следующие характеристики, когда это касается сэмплов с указаниями о приеме, которые связаны с ними: (1) Индекс может указывать, что характеристика является действительной по направлению вперед от связанного с индексом сэмпла с указаниями о приеме, обычно до следующего индекса того же самого типа. Например, индекс может указывать изменение полярности скремблирования транспортного потока MPEG 2; (2) Индекс может указывать характеристику единственного сэмпла с указаниями о приеме или события, которое синхронизировано с сэмплом с указаниями о приеме. Закладка - это пример такого индекса; (3) Индекс может указывать характеристику потока между связанным с ним сэмплом с указаниями о приеме и предыдущим сэмплом с указаниями о приеме. Индикация пропущенных пакетов - пример такого индекса; (4) Индекс может указывать характеристику кодированного сэмпла медиаданных. Следует отметить, что дорожки синхронизированных метаданных, описанные здесь, связаны с сэмплами с указаниями о приеме, а сэмплы с указаниями о приеме обычно не содержат точно один сэмпл медиаданных, и данные для одного сэмпла медиаданных могут находиться в смежных сэмплах с указаниями о приеме (например, потому что элементарные аудио- и видеопотоки мультиплексированы в транспортный поток MPEG-2). Следовательно, есть по меньшей мере две возможности относительно того, как сэмплы медиаданных могут быть индексированы, например, индекс может быть связан только с первым сэмплом с указаниями о приеме, содержащим данные для сэмпла медиаданных, или индекс может быть связан со всеми сэмплами с указаниями о приеме, содержащими данные для сэмпла медиаданных.
[0096] Как будет описано ниже, различные варианты осуществления изобретения могут использоваться, чтобы упростить операции редактирования, включая, но не ограничиваясь этим, удаление начала записи, удаление раздела в середине записи, конкатенацию (соединение) двух записей и вставку раздела сэмплов в середину записи.
[0097] Конечный пользователь может захотеть удалить начало записи, например, потому что запланированная на заданное время запись может неточно соответствовать фактическому начальному времени желаемой программы, и следовательно, начало записи содержит предыдущую программу. Далее номер последнего сэмпла с указаниями о приеме, который будет удален, обозначен как S2.
[0098] Сэмплы дорожки с указаниями о приеме удаляются от начала до S2 включительно. Удаление сэмплов с дорожки может включать следующие операции, но не ограничено ими. Например, перезапись бокса заголовка фильма (особенно его синтаксических элементов времени модификации и продолжительности) может быть выполнена как перезапись его бокса заголовка дорожки (особенно его синтаксических элементов времени модификации и продолжительности) и перезапись бокса заголовка медиаданных (особенно его синтаксических элементов времени модификации и продолжительности). Дополнительно, удаление начала записи может включать перезапись бокса времени декодирования для сэмпла (Decoding Time to Sample) (и, аналогично, бокса время композиции для сэмпла (Composition Time to Sample), если он существует) таким образом, чтобы информация об удаленных сэмплах была удалена из бокса. Может быть также включена перезапись бокса размера сэмпла или компактного бокса размера сэмпла, какой бы из них не присутствовал, таким образом, чтобы информация об удаленных сэмплах была удалена из бокса.
[0099] Другие операции могут включать перезапись бокса Sample to Chunk (сэмпл для чанка) так, чтобы этот бокс не ссылался на информацию об удаленных сэмплах. Еще одна операция, которая может быть выполнена, - это перезапись бокса Sample to Chunk так, чтобы чанки, которые содержат только сэмплы, которые удалены, не были включены в бокс, в то время как другие значения смещения участков памяти были записаны так, чтобы на удаленные сэмплы не было ссылки. Кроме того, возможна перезапись бокса Sync Sample и бокса Shadow Sync Sample, если он существует, таким образом, чтобы на указанные сэмплы синхронизации, которые находятся среди удаленных, больше не было ссылок в боксах, как и перезапись боксов заголовка фрагмента дорожки (Track Fragment Header) и боксов запуска фрагмента дорожки (Track Fragment Run), если таковые имеются, таким образом, чтобы на удаленные сэмплы не было ссылок. Следует отметить, что не все боксы, которые должны быть обновлены, были описаны выше. Следовательно, подобные операции могут быть необходимы также для дополнительных боксов.
[0100] Другие операции могут включать перезапись боксов в пределах бокса moov или бокса moof, что может привести к меньшим размерам боксов в байтах, чем было до этого. Следовательно, освобожденное пространство в файле может быть заменено боксом свободного пространства, или же файл может быть сжат таким образом, чтобы боксы были перемещены в пределах файла. Также перемещение боксов, особенно бокса mdat, может вызвать перезапись смещений байтов относительно позиции на уровне файла (то есть смещений байтов, отсчитываемых от начала файла). Такие смещения байтов используются, например, в боксе Chunk Offset (смещение чанка).
[0101] Кроме того, удаленные сэмплы дорожки могут быть "физически удалены", то есть данные в боксе mdat могут быть реорганизованы так, чтобы удаленные сэмплы больше не присутствовали в боксе mdat. Точно так же как описано выше, тогда должны быть перезаписаны смещения байтов от начала файла. Альтернативно, пространство удаленных сэмплов может не быть освобождено, но вместо этого на удаленные сэмплы больше не будет ссылок из любого бокса в боксе moov и/или moof.
[0102] Если имеется более чем одна связанная дорожка с указаниями о приеме (например, аудио- и видеодорожка с указаниями о приеме протокола RTP), сэмплы с обеих дорожек с указаниями о приеме удаляют согласно значениям времени композиции (временным меткам RTP). Сэмплы, которые будут удалены с дорожки синхронизированных метаданных, находят, проходя сэмплы синхронизированных метаданных до номера сэмпла + смещение номера сэмпла >S2. Сэмплы от начала дорожки синхронизированных метаданных до последнего сэмпла, имеющего номер сэмпла + смещение номера сэмпла <=S2, также удаляют с дорожки синхронизированных метаданных. Удаление сэмплов с дорожки синхронизированных метаданных подобно удалению сэмплов с дорожки, которое было описано выше. Смещение номера сэмпла в записи сэмпла для дорожки синхронизированных метаданных устанавливают равным prev_sample_number_offset + (S1-S2-1), где prev_sample_number_offset (предыдущее смещение номера сэмпла) равно смещению номера сэмпла, которое ранее применялось к синхронизированным метаданным после удаленного раздела, и S1 - номер первого сэмпла. Остальные сэмплы синхронизированных метаданных не требуется перезаписывать. Если была более чем одна запись сэмпла в боксе описания сэмплов, то значение смещения номера сэмпла во всех записях сэмплов изменяется так, как описано выше.
[0103] В отношении удаления разделов из середины записи, например, в ответ на автоматическое обнаружение и удаление рекламы, в следующем описании S1 и S2 - это номер первого и последнего сэмплов с указаниями о приеме соответственно. Сэмплы дорожки с указаниями о приеме удаляют тем же самым способом или по существу аналогично тому, как было описано выше относительно удаления начала записи.
[0104] Первый сэмпл, который будет удален с дорожки синхронизированных метаданных, - это первый сэмпл, для которого номер сэмпла + смещение номера сэмпла >=S1. Последний сэмпл, который будет удален с дорожки синхронизированных метаданных, - это последний сэмпл, для которого номер сэмпла + смещение номера сэмпла <=S2. Дополнительно, создается новая запись сэмпла для бокса описания сэмпла дорожки синхронизированных метаданных. Новая запись описывает формат сэмпла для сэмплов после удаленного раздела. Чанки, которые следуют за удаленным разделом, связаны с новой записью посредством бокса Sample to Chunk (сэмпл для чанка). Смещение номера сэмпла в новой записи сэмпла для дорожки синхронизированных метаданных устанавливают равным prev_sample_number_offset + (S1-S2-1), где prev_sample_number_offset (предыдущее смещение номера сэмпла) определено так, как описано выше. Если имелась более чем одна запись, которая первоначально описывала оба сэмпла перед удаленным разделом и после удаленного раздела, то новую запись сэмпла создают для каждого из них, и значение смещения номера сэмпла во всех записях получают так, как описано выше.
[0105] Что касается связывания двух записей, две записи могут быть соединены в одну, например, чтобы объединить эпизоды одного и того же фильма или ряда в один файл, где вставка сэмплов в дорожку может включать, но не ограничена этим, следующие операции: (1) Перезапись бокса заголовка фильма (особенно его синтаксических элементов времени модификации и продолжительности); (2) Перезапись бокса заголовка дорожки (особенно его синтаксических элементов времени модификации и продолжительности); (3) Перезапись бокса заголовка медиаданных (особенно его синтаксических элементов времени модификации и продолжительности); (4) Перезапись бокса Decoding Time to Sample (и, аналогично, бокса Composition Time to Sample, если он существует), чтобы включить в него вставленные сэмплы; (5) Перезапись бокса размера сэмпла или компактного размера сэмпла, какой бы из них не присутствовал, чтобы включить в него вставленные сэмплы; (6) Перезапись бокса Sample to Chunk так, чтобы включить в него вставленные сэмплы; (7) Перезапись бокса смещения чанка, чтобы включить в него вставленные сэмплы, где вставленные сэмплы в общем содержатся в чанках, которые являются отдельными от чанков, первоначально представленных в файле; (8) Перезапись бокса Sync Sample и бокса Shadow Sync Sample, если они существуют, чтобы включить в них вставленные сэмплы; и (9) Перезапись боксов заголовка фрагмента дорожки и запуска фрагмента дорожки, если таковые имеются, чтобы включить в них вставленные сэмплы, при этом следует отметить, что если раздел, вставленный в файл, находится на границе фрагмента, то есть включен не в середину фрагмента, вставка может быть выполнена путем включения в файл нового фрагмента или фрагментов. Должно быть также отмечено, что не все боксы, которые должны быть обновлены, были описаны выше. Следовательно, подобные операции могут быть необходимы также для дополнительных боксов.
[0106] Дополнительно, конкатенация может включать перезапись боксов в пределах бокса moov или бокса moof, что может привести к большим размерам боксов в байтах, чем было ранее. Если нет никаких боксов свободного пространства, чтобы выделить увеличенное пространство памяти, то последовательные боксы в файле могут быть перемещены. Перемещение боксов, особенно бокса mdat, может вызвать перезапись смещений байтов относительно позиции на уровне файла (то есть смещений байтов, подсчитанных от начала файла) там, где такие смещения байтов используются, например, в боксе смещения чанка.
[0107] Все дорожки второго файла на шкале времени вставляют в конце соответствующих дорожек первого файла с использованием процедуры, описанной выше. Две записи сэмпла включают в бокс описания сэмпла для дорожки синхронизированных метаданных составного файла. Первая запись соответствует первоначальному файлу, находящемуся первым на шкале времени. Первая запись остается неизмененной. Вторая запись соответствует первоначальному файлу, находящемуся последним на шкале времени. Во второй записи значение смещения номера сэмпла устанавливается на предыдущее смещение номера сэмпла + число сэмплов на дорожке с указаниями о приеме первого файла, а в остальном вторая запись остается неизмененной. Если первоначальные файлы содержали более чем одну запись сэмпла для дорожек синхронизированных метаданных, то все эти записи сэмплов включают в бокс описания сэмплов составного файла, и все записи сэмплов второго файла изменяют так, как описано выше.
[0108] Как отмечено выше, вставка раздела сэмплов в середину записи - это еще одна операция редактирования, которая может быть упрощена с использованием различных вариантов осуществления изобретения. В такой операции, описанной ниже, номера сэмплов указаний о приеме, непосредственно предшествующих вставленным сэмплам и следующих за ними, обозначены как S1 и S2 соответственно, а номера первого и последнего сэмплов указаний о приеме, которые будут вставлены в первоначальный файл, - S3 и S4 соответственно. Сэмплы вставляют в дорожку с указаниями о приеме по существу аналогично тому, как уже было описано выше. Сэмплы, соответствующие S1 и S2, определяют из дорожки синхронизированных метаданных, как описано выше в отношении процессов, связанных с удалением раздела из середины записи. Сэмплы синхронизированных метаданных, соответствующие вставленным сэмплам, вставляют в дорожку синхронизированных метаданных так же, как описано выше, и запись или записи сэмплов, которые первоначально использовались для синхронизированных метаданных вставленных сэмплов, включают в файл. Значение смещения номера сэмпла в этих записях устанавливают на prev_sample_number_offset - S3+S1+1. Вторую копию записи или записей сэмплов создают для записей сэмплов, которые первоначально использовались для синхронизированных метаданных, как перед сэмплом S2, так и для или после сэмпла S2. Значение смещения номера сэмпла для записей сэмплов, описывающих сэмплы, начинающиеся с S2, устанавливают на prev_sample_number_offset + S4-S3+1.
[0109] Как сказано выше, различные варианты осуществления изобретения, представленные здесь, описаны в контексте механизма индексации, основанном на дорожке синхронизированных метаданных для формата файла DVB, но могут применяться более широко следующим образом. Различные варианты осуществления изобретения применимы к другим предложениям по индексации для формата файла DVB, которые используют номера сэмплов, чтобы синхронизировать индексы с сэмплами указаний о приеме, например, к боксу DVBIndexTable, а также событиям сэмплов и свойствам сэмплов. Смещение номера сэмпла может переноситься в боксе DVBIndexTable.
[0110] Если необходимо иметь более чем одно значение смещения номера сэмпла, применимое к индексам в пределах бокса DVBIndexTable, например, если точка вставки или вырезания при редактировании находится в середине индексов в боксе DVBIndexTable, то различные способы, включающие следующие, но не ограниченные ими, могут быть использованы. Во-первых, фрагменты фильма могут быть размещены так, чтобы соответствовать точкам вставки или вырезания, таким образом, чтобы только одно значение смещения номера сэмпла для бокса DVBIndexTable было необходимо для каждого фрагмента фильма. Во-вторых, более чем один бокс DVBIndexTable может появиться в пределах бокса moov или в пределах любого бокса moof. Каждый из этих боксов DVBIndexTable несет индексы, которые соответствуют неперекрывающимся разделам сэмплов указаний о приеме, и каждый бокс DVBIndexTable содержит одно значение смещения номера сэмпла. В-третьих, более чем одно значение смещения номера сэмпла может присутствовать в боксе DVBIndexTable, и каждое значение смещения номера сэмпла может быть применимо к одному или более индексам, которые указаны с этим значением смещения номера сэмпла.
[0111] Поскольку имеется один бокс Sample to Event (сэмпл для события) или Sample to Property (сэмпл для свойства) для каждого типа индекса, значения номера сэмпла обычно модифицируются во всех этих боксах после операций редактирования. Чтобы избежать этого модифицирования, новый бокс Referenced Sample Number Offset (опорное смещение номера сэмпла), включаемый в бокс таблицы сэмплов или бокс фрагмента дорожки, может быть определен следующим образом:
[0112] Последний номер сэмпла last_sample_number и смещение номера сэмпла sample_number_offset для записи i могут быть установлены равными last_sample_number[i] и sample_number_offset[i] соответственно. Значение last_sample_number [0] может быть установлено равным 0. При обращении к сэмплам в связанных дорожках с указаниями о приеме, значение sample_number_offset [m] должно быть добавлено ко всем тем значениям номеров сэмпла в любом боксе Sample to Event и любом боксе Sample to Property, которые удовлетворяют неравенству last_sample_number[m-1]<sample number <= last_sample_number[m]. Если значение sample_number_offset [n] равно заранее заданной константе, например 2^31-1, то события и свойства, связанные с номерами сэмплов в диапазоне от last_sample_number[n-1]+1 до last_sample_number[n] включительно, недействительны. Такой процесс может использоваться, чтобы отметить индексы, соответствующие удаленным сэмплам, как недействительные, не перезаписывая боксы Sample to Event и Sample to Property.
[0113] Следует отметить, что различные варианты осуществления изобретения также применимы к индексам, которые описывают другие типы дорожек, кроме дорожек с указаниями о приеме. Например, различные варианты осуществления изобретения применимы к индексам, описывающим дорожки медиаданных, виртуальные дорожки медиаданных, дорожки указаний сервера и дорожки синхронизированных метаданных. Кроме того, следует отметить, что устройства и/или системы, в которых различные варианты осуществления изобретения могут быть применены/осуществлены, не обязательно включают запись принятых потоков данных.
[0114] Различные варианты осуществления изобретения также применимы к другим типам метаданных синхронизации, помимо индексов DVB и сегментированных метаданных, а также к другим типам зависимостей, чем те, которые включают сэмплы метаданных, описывающие другие типы сэмплов. То есть различные варианты осуществления изобретения применимы к любой зависимости, где две части данных о местоположении в различных упорядоченных последовательностях частей данных связаны друг с другом.
[0115] Дополнительно, различные варианты осуществления изобретения применимы к другим типам способов ассоциирования, чем те, которые включают номер сэмпла. Например, если сэмпл синхронизированных метаданных был связан с сэмплом дорожки с указаниями о приеме путем включения метки (абсолютного) времени декодирования сэмпла с указаниями о приеме в сэмпл синхронизированных метаданных, то структуры, представленные здесь, могут быть модифицированы так, чтобы содержать смещение времени декодирования, а не смещение номера сэмпла. Точно так же, если адрес байта относительно начала файла или любой различимой точки в файле, например, начала бокса mdat, используется для ассоциации сэмпла синхронизированных метаданных с сэмплом с указаниями о приеме, то структуры, представленные здесь, могут быть модифицированы так, чтобы содержать смещение адреса байта, а не смещение номера сэмпла.
[0116] Фиг.6 - блок-схема алгоритма, иллюстрирующая пример способа организации медиаданных и/или мультимедиаданных в соответствии с различными вариантами осуществления изобретения. В блоке 600 первый и второй сэмпл сохраняют в файле, при этом первый и второй сэмпл могут относиться, например, к дорожке медиаданных или дорожке с указаниями о приеме. Первый сэмпл связан с первой частью данных, а второй сэмпл связан со второй частью данных, где первая и вторая части данных представляют части дорожек указаний или медиаданных. Следует отметить, что первая часть данных и вторая часть данных не идентичны. Другими словами, метаданные (то есть первая и вторая части данных) не являются "статическими". В блоке 610 первый номер сэмпла связывают с первым сэмплом, а в блоке 620 второй номер сэмпла связывают со вторым сэмплом, при этом первый и второй номера сэмплов содержатся, например, в сэмпле синхронизированных метаданных и связаны с дорожками указаний и/или медиаданных. Смещение номера сэмпла включают в файл в блоке 630. В блоке 640 первый базовый номер сэмпла, связанный с первой частью данных, включают в файл. Следует отметить, что первый номер сэмпла должен быть выводимым из смещения номера сэмпла и первого базового номера сэмпла. Следовательно, как описано выше, смещение номера сэмпла, применимое к множеству сэмплов синхронизированных метаданных, может быть добавлено к первому базовому номеру сэмпла, чтобы получить первый номер сэмпла, то есть фактический первый номер сэмпла в пределах дорожки указаний или медиаданных. В блоке 650 второй базовый номер сэмпла, связанный со второй частью данных, включают в файл, причем второй номер сэмпла должен быть выводимым из смещения номера сэмпла и второго базового номера сэмпла аналогично тому, как описано в отношении первого базового номера сэмпла.
[0117] Индексы могут использоваться для непоследовательного доступа к медиаданным, сохраненным как дорожки медиаданных или дорожки с указаниями о приеме. Например, воспроизведение файла может быть начато с сэмпла, связанного с некоторым значением индекса. На фиг.7 показан пример блок-схемы алгоритма способа доступа к медиаданным в соответствии с различными вариантами осуществления изобретения. В блоке 700 смещение номера сэмпла получают из файла. В блоке 710 первую часть данных идентифицируют из файла, при этом первая часть данных содержит, например, желаемое значение индекса для непоследовательного доступа к дорожке медиаданных или дорожке указаний. В блоке 720 первый базовый номер сэмпла получают из файла. Обычно место хранения первого базового номера сэмпла связано с местом хранения первой части данных. Например, первый базовый номер сэмпла и первая часть данных могут быть сохранены рядом друг с другом, формируя сэмпл синхронизированных метаданных. В блоке 730 первый номер сэмпла получают из смещения номера сэмпла и первого базового номера сэмпла. В блоке 740 местоположение первого сэмпла в пределах файла получают на основании информации, представленной в дорожке медиаданных или дорожке указаний, и первого номера сэмпла. Получение местоположения может потребовать следующих шагов. Во-первых, анализируя информацию в боксе Sample to Chunk, определяют, на основе номера сэмпла, номер чанка, в котором сэмпл находится. Во-вторых, бокс смещения чанка Chunk Offset указывает байтовое смещение относительно начала файла для чанка. В-третьих, бокс размера сэмпла Sample Size указывает байтовое смещение сэмпла относительно начала чанка на основании номера сэмпла. Если сэмпл находится во фрагменте фильма, бокс заголовка фрагмента дорожки Track Fragment Header и бокс запуска фрагмента дорожки Track Fragment Run содержат подобную информацию. В блоке 750 доступ к первому сэмплу получают на основании местоположения сэмпла в пределах файла.
[0118] Индексы могут также быть необходимыми или полезными при декодировании и воспроизведении файла. Например, декодирование файла может требовать сообщений о ключах, включенных как индексы в дорожку синхронизированных метаданных. Эти сообщения необходимы, чтобы расшифровать поток, сохраненный на дорожке с указаниями о приеме. На фиг.8 показана блок-схема примера способа декодирования медиаданных и доступа к индексам в соответствии с различными вариантами осуществления изобретения. В блоке 800 смещение номера сэмпла получают из файла. В блоке 810 получают первый сэмпл с дорожки медиаданных или дорожки указаний. Первый сэмпл связан с первым номером сэмпла, основанным на номере предшествующего сэмпла, если он имеется. Если никакой сэмпл не предшествует первому сэмплу, то первый номер сэмпла устанавливают на заранее заданное значение. В блоке 820 первую часть данных получают из файла. В блоке 830 первый базовый номер сэмпла получают из файла. Обычно место хранения первого базового номера сэмпла связано с местом хранения первой части данных. Например, первый базовый номер сэмпла и первая часть данных могут храниться рядом и формировать сэмпл синхронизированных метаданных. В блоке 840 первый ссылочный номер сэмпла получают из смещения номера сэмпла и первого базового номера сэмпла. В блоке 850 сравнивают первый номер сэмпла и первый ссылочный номер сэмпла. Если первый номер сэмпла и первый ссылочный номер сэмпла одинаковые, то первая часть данных используется, чтобы обработать первый сэмпл, в блоке 860. Обработка первого сэмпла может включать, например, расшифровку или декодирование с контролем ошибок. Шаги 810-860 могут быть повторены для последовательных сэмплов и частей данных.
[0119] Устройства связи в соответствии с различными вариантами осуществления настоящего изобретения могут осуществлять связь с использованием различных технологий передачи, включая, но не ограничиваясь этим, технологию множественного доступа с кодовым разделением каналов (CDMA), глобальную систему подвижной связи (GSM), универсальную систему подвижной связи (UMTS), многостанционный доступ с временным разделением каналов (TDMA), многостанционный доступ с частотным разделением каналов (FDMA), протокол управления передачей/протокол Интернета (TCP/IP), службу обмена короткими сообщениями (SMS), службу передачи мультимедийных сообщений (MMS), электронную почту, службу мгновенной передачи сообщений (IMS), Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь с использованием различных сред, включая в качестве неограничивающих примеров радио, инфракрасное излучение, лазер, кабельное соединение и т.п.
[0120] На фиг.9 и 10 показано одно типичное электронное устройство 12, в котором может быть осуществлено настоящее изобретение. Следует понимать, однако, что настоящее изобретение не ограничивается одним конкретным типом электронного устройства 12. Электронное устройство 12 на фиг.9 и 10 включает корпус 30, дисплей 32 в виде жидкокристаллического дисплея, клавиатуру 34, микрофон 36, динамик 38, батарею 40, инфракрасный порт 42, антенну 44, смарт-карту 46 в виде карты UICC в соответствии с одним вариантом осуществления изобретения, картридер 48, схему радиоинтерфейса 52, схему кодека 54, контроллер 56 и память 58. Конкретные схемы и элементы широко известны в данной области техники, например, в ряду мобильных телефонов фирмы Nokia.
[0121] Различные варианты осуществления изобретения описываются в данной заявке как общие шаги способа и процессы, которые могут быть реализованы в одном варианте осуществления посредством программного компьютерного продукта на машиночитаемом носителе, включающем исполняемые компьютером команды, такие как программный код, исполняемый компьютерами в сетевой среде. Обычно программные модули включают подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые способны выполнять конкретные задачи или реализовывать специальные абстрактные типы данных. Исполняемые компьютером команды, связанные структуры данных и программные модули представляют собой примеры программного кода для осуществления раскрытых здесь шагов способов. Конкретная последовательность таких исполняемых команд или связанных структур данных представляет собой примеры соответствующих действий для реализации функций, описанных в таких шагах или процессах.
[0122] Программные и Web-реализации различных форм осуществления изобретения могут быть осуществлены с использованием стандартных методов программирования на базе управляемой правилами логики и другой логики, обеспечивающей операции или процессы поиска в базах данных, операции или процессы корреляции, операции или процессы сравнения и операции или процессы принятия решения. Следует отметить, что термины "компонент" и "модуль", которые используются в данном описании и в приведенной ниже формуле изобретения, применяются с целью охватить варианты реализаций, использующих одну или более строк программного кода, и/или варианты аппаратных реализаций, и/или оборудование для приема данных, вводимых вручную.
[0123] Различные варианты осуществления изобретения могут быть осуществлены в программном обеспечении, аппаратных средствах, прикладной логике или комбинации программного обеспечения, аппаратной и прикладной логики. Программное обеспечение, прикладная логика и/или аппаратные средства могут находиться в наборе микросхем, в подвижном устройстве, в настольном компьютере, портативном компьютере или на сервере. Прикладная логика, программное обеспечение или система команд предпочтительно хранятся на любом из различных известных машиночитаемых носителей. В контексте этого документа, "машиночитаемый носитель" может быть любой средой или средством, которое может содержать, сохранять, сообщать, распространять или переносить команды для использования системой выполнения команд, аппаратурой или устройством или в связи с ними.
[0124] Вышеизложенное описание вариантов осуществления изобретения приведено с целью иллюстрации. Оно не является исчерпывающим и не ограничивает варианты осуществления изобретения точной формулировкой, возможны модификации и разновидности в свете вышеприведенных идей или в результате применения на практике различных вариантов осуществления изобретения. Рассмотренные варианты осуществления были выбраны и описаны с целью объяснения принципов и сущности различных вариантов осуществления настоящего изобретения, а также его практического применения, чтобы специалист в данной области техники мог применять настоящее изобретение в различных вариантах осуществления и с различными модификациями в соответствии с конкретным применением. Особенности вариантов осуществления изобретения, описанных здесь, могут комбинироваться во все возможные комбинации способов, устройств, модулей, систем и компьютерных программных продуктов.
Изобретение относится к области форматов мультимедийных файлов. Техническим результатом является упрощение операции редактирования, особенно в отношении операции удаления начала записи, которая может быть наиболее часто используемой функцией среди применяемых операций редактирования. Раскрыты системы и способы для того, чтобы использовать номера сэмплов для связывания сэмплов синхронизированных метаданных с сэмплами медиаданных или указаний. Сэмпл синхронизированных метаданных может быть ассоциирован с сэмплами медиаданных или указаний, так как номер сэмпла, содержащийся в сэмпле синхронизированных метаданных, представлен относительно соответствующей дорожки медиаданных или указаний. Дополнительно, в сценариях с множеством сэмплов синхронизированных метаданных, смещение номера сэмпла может быть добавлено к предоставляемому номеру сэмпла, чтобы получить фактический номер сэмпла в пределах дорожки медиаданных или указаний. 12 н. и 23 з.п. ф-лы, 2 табл., 10 ил.
1. Способ организации медиаданных и/или мультимедиаданных по меньшей мере в одном файле, включающий
сохранение первого сэмпла, первой части данных, второго сэмпла и второй части данных по меньшей мере в одном файле, причем упомянутые медиаданные и/или мультимедиаданные включают упомянутые первый и второй сэмплы, при этом первая часть данных ассоциирована с первым сэмплом, а вторая часть данных ассоциирована со вторым сэмплом;
ассоциирование первого номера сэмпла с первым сэмплом;
ассоциирование второго номера сэмпла со вторым сэмплом;
включение смещения номера сэмпла в упомянутый по меньшей мере один файл;
включение первого базового номера сэмпла, ассоциированного с первой частью данных, в упомянутый по меньшей мере один файл, причем первый номер сэмпла является выводимым из смещения номера сэмпла и первого базового номера сэмпла; и
включение второго базового номера сэмпла, ассоциированного со второй частью данных, в упомянутый по меньшей мере один файл, причем второй номер сэмпла является выводимым из смещения номера сэмпла и второго базового номера сэмпла.
2. Способ по п.1, в котором каждый из первого и второго сэмплов ссылается на упорядоченную последовательность частей данных, включенных в дорожку медиаданных и/или дорожку указаний, и упомянутая упорядоченная последовательность включает упомянутые первую и вторую части данных.
3. Способ по п.1, в котором первая и вторая части данных не идентичны.
4. Способ по п.1, в котором по меньшей мере один из первого и второго номеров сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла, которое выполняют путем удаления начальной части упомянутых медиаданных и/или мультимедиаданных, при этом удаление начальной части включает удаление по меньшей мере одного из первого и второго сэмплов путем перезаписи бокса базового формата медиафайлов ISO (ISO) и/или путем фактического удаления по меньшей мере одного из первого и второго сэмплов.
5. Способ по п.1, в котором по меньшей мере один из первого и второго номеров сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем удаления средней части упомянутых медиаданных и/или мультимедиаданных, при этом удаление средней части включает удаление по меньшей мере одного из первого и второго сэмплов путем перезаписи бокса базового формата медиафайлов ISO и/или путем фактического удаления по меньшей мере одного из первого и второго сэмплов.
6. Способ по п.1, в котором по меньшей мере один из первого и второго номеров сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем соединения двух экземпляров упомянутых медиаданных и/или мультимедиаданных, при этом соединение включает перезапись и/или перемещение бокса базового формата медиафайла ISO.
7. Способ по п.1, в котором по меньшей мере один из первого и второго номеров сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем вставки раздела сэмплов в упомянутые медиаданные и/или мультимедиаданные.
8. Машиночитаемый носитель, включающий компьютерный код, конфигурированный для осуществления процессов по любому из пп.1-7 при выполнении этого кода в устройстве обработки данных.
9. Устройство для организации медиаданных и/или мультимедиаданных по меньшей мере в одном файле, содержащее
средства для сохранения первого сэмпла, первой части данных, второго сэмпла и второй части данных по меньшей мере в одном файле, причем упомянутые медиаданные и/или мультимедиаданные включают упомянутые первый и второй сэмплы, при этом первая часть данных ассоциирована с первым сэмплом, а вторая часть данных ассоциирована со вторым сэмплом;
средства для ассоциирования первого номера сэмпла с первым сэмплом;
средства для ассоциирования второго номера сэмпла со вторым сэмплом;
средства для включения смещения номера сэмпла в упомянутый по меньшей мере один файл;
средства для включения первого базового номера сэмпла, ассоциированного с первой частью данных, в упомянутый по меньшей мере один файл, причем первый номер сэмпла является выводимым из смещения номера сэмпла и первого базового номера сэмпла; и
средства для включения второго базового номера сэмпла, ассоциированного со второй частью данных, в упомянутый по меньшей мере один файл, причем второй номер сэмпла является выводимым из смещения номера сэмпла и второго базового номера сэмпла.
10. Устройство по п.9, в котором каждый из первого и второго сэмплов ссылается на упорядоченную последовательность частей данных, включенных в дорожку медиаданных и/или дорожку указаний, и упомянутая упорядоченная последовательность включает упомянутые первую и вторую части данных.
11. Устройство по п.9, в котором первая и вторая части данных неидентичны.
12. Устройство по п.9, в котором по меньшей мере один из первого и второго номеров сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем удаления начальной части упомянутых медиаданных и/или мультимедиаданных, при этом удаление начальной части включает удаление по меньшей мере одного из первого и второго сэмплов путем перезаписи бокса базового формата медиафайлов ISO и/или фактического удаления по меньшей мере одного из первого и второго сэмплов.
13. Устройство по п.9, в котором по меньшей мере один из первого и второго номера сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем удаления средней части упомянутых медиаданных и/или мультимедиаданных, при этом удаление средней части включает удаление по меньшей мере одного из первого и второго сэмплов путем перезаписи бокса базового формата медиафайлов ISO и/или фактического удаления по меньшей мере одного из первого и второго сэмплов.
14. Устройство по п.9, в котором по меньшей мере один из первого и второго номера сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем соединения двух экземпляров упомянутых медиаданных и/или мультимедиаданных, при этом соединение включает перезапись и/или перемещение бокса базового формата медиафайлов ISO.
15. Устройство по п.9, в котором по меньшей мере один из первого и второго номеров сэмпла пригоден для использования при редактировании упомянутого по меньшей мере одного файла путем вставки раздела сэмплов в упомянутые медиаданные и/или мультимедиа-данные.
16. Способ редактирования медиаданных и/или мультимедиаданных, содержащий
прием по меньшей мере одного файла, представляющего медиаданные и/или мультимедиаданные;
получение фактического номера сэмпла внутри дорожки медиаданных и/или дорожки указаний, ассоциированного со смещением номера сэмпла и номером сэмпла синхронизированных метаданных относительно дорожки медиаданных и/или дорожки указаний; и
выполнение операций редактирования упомянутых медиаданных и/или мультимедиаданных на базе упомянутого фактического номера сэмпла.
17. Способ по п.16, в котором выполнение операций редактирования включает по меньшей мере одно из следующего: удаление начальной части медиаданных и/или мультимедиаданных, удаление средней части медиаданных и/или мультимедиа-данных, соединение двух экземпляров медиаданных и/или мультимедиаданных, вставку раздела сэмплов в медиаданные и/или мультимедиаданные.
18. Машиночитаемый носитель, включающий компьютерный код, конфигурированный для осуществления процессов по любому из пп.16-17 при выполнении этого кода в устройстве обработки данных.
19. Устройство для редактирования медиаданных и/или мультимедиаданных, содержащее
средства для приема по меньшей мере одного файла, представляющего медиаданные и/или мультимедиаданные;
средства для получения фактического номера сэмпла внутри дорожки медиаданных и/или дорожки указаний, ассоциированного со смещением номера сэмпла и номером сэмпла синхронизированных метаданных относительно дорожки медиаданных и/или дорожки указаний; и
средства для выполнения операций редактирования упомянутых медиаданных и/или мультимедиаданных на базе упомянутого фактического номера сэмпла.
20. Устройство по п.19, также содержащее средства для удаления начальной части упомянутых медиаданных и/или мультимедиаданных.
21. Устройство по п.19, также содержащее средства для удаления средней части упомянутых медиаданных и/или мультимедиаданных.
22. Устройство по п.19, также содержащее средства для соединения двух экземпляров упомянутых медиаданных и/или мультимедиаданных.
23. Устройство по п.19, также содержащее средства для вставки раздела сэмплов в упомянутые медиаданные и/или мультимедиаданные.
24. Способ доступа к медиаданным и/или мультимедиаданным из по меньшей мере одного файла, в котором имеется первый сэмпл и первая часть данных, причем упомянутые медиаданные и/или мультимедиаданные включают упомянутый первый сэмпл, а первая часть данных включает первый базовый номер сэмпла и данные, характеризующие первый сэмпл, при этом способ включает
прием желаемого значения для данных, характеризующих сэмпл;
анализ первой части данных; и
при условии, что данные, характеризующие первый сэмпл, соответствуют упомянутому желаемому значению для данных, характеризующих сэмпл:
извлечение первого базового номера сэмпла;
извлечение смещения номера сэмпла из упомянутого по меньшей мере одного файла;
получение первого номера сэмпла на основе первого базового номера сэмпла и смещения номера сэмпла;
обнаружение первого сэмпла в пределах упомянутого по меньшей мере одного файла на базе первого номера сэмпла; и
доступ к первому сэмплу.
25. Способ по п.24, в котором упомянутое желаемое значение включает желаемое значение индекса.
26. Способ по п.25, в котором доступ к первому сэмплу включает непоследовательный доступ к дорожке медиаданных и/или дорожке указаний на основе желаемого значения индекса.
27. Машиночитаемый носитель, включающий компьютерный код, конфигурированный для осуществления процессов по любому из пп.24-26 при выполнении этого кода в устройстве обработки данных.
28. Устройство для доступа к медиаданным и/или мультимедиаданным из по меньшей мере одного файла, содержащее
средства для приема желаемого значения для данных, характеризующих сэмпл;
средства для анализа первой части данных, которая имеется по меньшей мере в одном файле, содержащем медиаданные и/или мультимедиаданные, к которым осуществляют доступ, вместе с первым сэмплом, причем первая часть данных включает первый базовый номер сэмпла и данные, характеризующие первый сэмпл; и
средства для того, чтобы при условии, что данные, характеризующие первый сэмпл, соответствуют упомянутому желаемому значению для данных, характеризующих сэмпл:
извлекать первый базовый номер сэмпла;
извлекать смещение номера сэмпла из по меньшей мере одного файла;
получать первый номер сэмпла на основе первого базового номера сэмпла и смещения номера сэмпла;
обнаруживать первый сэмпл в пределах упомянутого по меньшей мере одного файла на базе первого номера сэмпла; и
осуществлять доступ к первому сэмплу.
29. Устройство по п.28, в котором упомянутое желаемое значение включает желаемое значение индекса.
30. Устройство по п.28, в котором доступ к первому сэмплу включает непоследовательный доступ к дорожке медиаданных и/или дорожке указаний на основе желаемого значения индекса.
31. Способ доступа к данным, характеризующим медиаданные и/или мультимедиаданные из по меньшей мере одного файла, в котором имеется первый сэмпл и первая часть данных, причем упомянутые медиаданные и/или мультимедиаданные включают упомянутый первый сэмпл, и первая часть данных включает первый базовый номер сэмпла, при этом способ включает
анализ первого сэмпла;
получение первого номера сэмпла на базе заранее заданной схемы нумерации и порядка сэмплов, включающих первый сэмпл; извлечение первого базового номера сэмпла;
извлечение смещения номера сэмпла из упомянутого по меньшей мере одного файла;
получение первого ссылочного номера сэмпла на основе первого базового номера сэмпла и смещения номера сэмпла; и
при условии, что первый номер сэмпла соответствует первому ссылочному номеру сэмпла, анализ первой части данных и обработку первого сэмпла на основе первой части данных.
32. Способ по п.31, в котором первый сэмпл ссылается на упорядоченную последовательность частей данных, включенных в дорожку медиаданных и/или дорожку указаний, и упомянутая упорядоченная последовательность включает упомянутую первую часть данных.
33. Машиночитаемый носитель, включающий компьютерный код, конфигурированный для осуществления процессов по любому из пп.31-32 при выполнении этого кода в устройстве обработки данных.
34. Устройство для доступа к данным, характеризующим медиаданные и/или мультимедиаданные из по меньшей мере одного файла, содержащее
средства для анализа первого сэмпла, при этом первый сэмпл и первая часть данных присутствуют по меньшей мере в одном файле, к которому осуществляют доступ для получения данных, характеризующих медиаданные и/или мультимедиаданные, причем упомянутые медиаданные и/или мультимедиаданные включают упомянутый первый сэмпл, и первая часть данных включает первый базовый номер сэмпла;
средства для получения первого номера сэмпла на базе заранее заданной схемы нумерации и порядка сэмплов, включающих первый сэмпл;
средства для извлечения первого базового номера сэмпла;
средства для извлечения смещения номера сэмпла из упомянутого по меньшей мере одного файла;
средства для получения первого ссылочного номера сэмпла на основе первого базового номера сэмпла и смещения номера сэмпла; и
средства для того, чтобы при условии, что первый номер сэмпла соответствует первому ссылочному номеру сэмпла, анализировать первую часть данных и обрабатывать первый сэмпл на основе первой части данных.
35. Устройство по п.34, в котором первый сэмпл ссылается на упорядоченную последовательность частей данных, включенных в дорожку медиаданных и/или дорожку указаний, и упомянутая упорядоченная последовательность включает упомянутую первую часть данных.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
RU 98112401 A, 10.03.2000 | |||
US 5513306 A, 30.04.1996 | |||
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Авторы
Даты
2013-05-10—Публикация
2008-10-29—Подача