УСТРОЙСТВО И СПОСОБ ДЛЯ ХРАНЕНИЯ И ЧТЕНИЯ ФАЙЛА, ИМЕЮЩЕГО ХРАНИЛИЩЕ МЕДИА ДАННЫХ И ХРАНИЛИЩЕ МЕТАДАННЫХ
APPARATUS AND METHOD FOR STORING AND READING FILE, HAVING MEDIA DATA STORAGE AND METADATA STORAGE

Изобретение имеет отношение к хранению, передаче, приему и воспроизведению медиа данных, в особенности к хранению медиа данных или воспроизведению из файла, имеющего контейнер (хранилище) медиа данных и контейнер метаданных, как, например, файл, основанный на ISO (Международная организация по Стандартизации) базовом медиа формате файла.
Различные электронные устройства позволяют получать и предоставлять медиа потоки данных. Такие медиа потоки данных могут, например, быть получены из цифровой видео широковещательной сети, которая распространяет медиа потоки в соответствии с, например, Стандартом DVB-H (Цифровое Мобильное Видео- и Телевещание) или Стандартом DVB-T (Цифровое Наземное ТВ-вещание).
Стандарт DVB-T использует модульный MPEG-2 (MPEG Экспертная Группа по Кинематографии) транспортный поток, содержащий элементарные видео и аудио потоки MPEG-2 согласно международному стандартному ISO/IEC 13818 (IEC Международная Электротехническая Комиссия). Транспортный поток MPEG-2, являющийся мультиплексным, используется во многих современных системах теле- и радиовещания. Это - мультиплексный поток одной или нескольких медиа программ. обычно аудио и видео, но также и других данных. Транспортные потоки MPEG-2 делят общий тактовый генератор на программу и используют медиа образцы с временной меткой (Блоки Доступа, AUs) во всех медиа потоках в пределах программы. Это делает возможной синхронизацию передающих и принимающих тактовых генераторов и синхронное озвучивание аудио и видео потоков.
Для стандарта DVB-H элементарные аудио и видео потоки инкапсулированы в RTP (Транспортный Протокол в Реальном Времени), UDP (Пользовательский Дейтаграммный Протокол), IP (Интернет-Протокол) и МРЕ (Многопротокольная инкапсуляция) для IP преобразования типов данных. RTP используется для эффективной поставки мультимедийных данных по IP сетям в реальном времени. Мультиплексирование обычно осуществляется привязыванием различных сетевых портов к каждому конкретному медиа потоку, например один сетевой порт для видео и другой для аудио.
Обслуживание потока определяется как ряд синхронизированных медиа потоков, поставленных способом, ограниченным во времени или неограниченным, для непосредственного потребления во время приема. Каждый потоковый сеанс может включать аудио, видео и/или медиа данные в реальном времени, такие как синхронизированный текст. Пользовательские медиа данные, получаемые для кино посредством мобильного телевидения, например, могут просматривать кино и/или записывать его в файл. Обычно с этой целью полученные пакеты данных полученного медиа потока депакетируются, чтобы хранить необработанные медиа данные в файле. Таким образом, полученные пакеты RTP или пакеты MPEG-2 должны сначала депакетироваться, чтобы получить свою полезную информацию в форме образцов медиа данных, таких как сжатое видеоизображение или аудио изображение. Затем, после депакетирования полученные образцы медиа данных воспроизводятся или хранятся в файле. Полученные медиа образцы обычно сжимаются форматами подобными H.264/AVC (AVC = Расширенное Видео Кодирование) видео формату и/или MPEG-4 EH-AACV2 (EH-AACV2 = Высокоэффективное Расширенное Аудио Кодирование - версия 2) аудио формату. Когда образцы медиа данных, имеющие такие видео и/или аудио форматы, должны храниться, они могут быть сохранены в так называемом 3GP формате файла, также известном как 3GPP (Партнерский Проект 3-его Поколения) формат файла, или в МР4 (MPEG-4) формате файла. И 3GP, и МР4 получены из ISO базового медиа формата файла, который определен в ISO/IEC международном стандарте 14496-12:2005 «Техника кодирования информации аудио-визуальных объектов - часть 12:ISO базовый медиа формат файла». Файл этого фюрмата включает медиа данные и метаданные. Чтобы такой файл работал, должны присутствовать и те, и другие данные. Медиа данные хранятся в контейнере медиа данных (mdat), связанном с файлом, а метаданные хранятся в контейнере метаданных (moov) файла. Традиционно, контейнер медиа данных включает фактические медиа образцы. То есть он может включать, например, перемежающиеся, упорядоченные по времени видео и/или аудио изображения. Таким образом, каждое из медиа данных имеет свою собственную дорожку метаданных (trak) в контейнере метаданных moov, которая описывает свойства медиа информационного наполнения. Дополнительные контейнеры (также называемые блоками) в контейнере метаданных moov могут включать информацию о свойствах файла, содержании файла и т.д.
Недавно, так называемые хинтинговые (хинтовые) дорожки приема для файлов, основанные на ISO базовом медиа формате файла, были определены международными группами стандартизации. Эти хинтинговые дорожки приема могут использоваться для хранения мультиплексных и/или пакетизированных потоков, таких как, например, полученный транспортный поток MPEG-2 или пакеты RTP. Хинтинговые дорожки приема могут использоваться для хранения со стороны клиента и воспроизведения полученных пакетов данных, которые также обозначены как образцы данных в дальнейшем в этой спецификации. Таким образом, полученные MPEG-2 TS или RTP пакеты одного потока непосредственно хранятся на хинтинговых дорожках приема. таких как, например, заранее вычисленные образцы или конструкторы. То есть в случае хинтинговых дорожек приема пакеты данных хранятся как образцы в контейнере медиа данных файла, основанного на ISO базовом формате файла. Воспроизведение с хинтинговых дорожек приема может быть осуществлено посредством эмулирования нормального приема потока и чтения сохраненных пакетов данных с хинтинговых дорожек приема, поскольку они были получены через IP.
ISO/IEC Международный стандарт 14496-12:2005 «Техника кодирования информации аудио-визуальных объектов - часть 12:ISO базовый медиа формат файла» определяет группировку образцов, как назначение каждого образца на дорожке, членом одной группы образцов, основанной на критерии группировки. Поскольку может быть больше, чем одна группировка образцов для образцов на дорожке, каждая группировка образцов имеет типовое поле, чтобы указывать тип группировки.
Группы образцов определяются на двух стадиях. Во-первых, тип группировки определяется в блоке описания группы образцов (sgpd). На второй стадии это описание присваивается образам в блоке определения образца в группе (sbgp). Механизм группировки образцов расширяем и в настоящее время используется для AVC- и SVC-особых расширений и патентованных расширений.
Неполное описание синтаксиса приведено ниже:
абстрактный класс Ввод описания группировки образцов {
//частные данные
}
Здесь дана упрощенная версия Блока описания группировки образцов. В ISO формате файла существуют специализированные версии, зависящие от типа обработчика.
выровненный (8) класс Блока описания группировки образцов расширяет Полный блок ("sgpd") {
целое без знака (32) тип группировки;
целое без знака (32) входной отсчет;
для (i=1; i<=входной отсчет; i++) {
Ввод описания группировки образцов ();
}
В одном примере могут быть определены множественные группы блока, и каждый образец должен быть членом одной группы. Синтаксис блока определения образца в группе предоставлен.
выровненный (8) класс блока определения образца в группе расширяет Полный Блок ("sbgp") {
целое без знака (32) тип группировки;
целое без знака (32) входной отсчет;
для (i=1; i<=входной отсчет: i++) {
целое без знака (32) отсчет образцов;
целое без знака (32) индекс описания группы.
Следующий абстрактный пример иллюстрирует то, как работают группы образцов.
Предположим, что должен быть описан «цвет» каждого образца. Для полного набора образцов все образцы одного и того же цвета группируются вместе.
Во-первых, следует определить, какие цвета могут встретиться. Для каждого цвета определяется «Ввод описания группы образцов». Определяется значение для «цвета» типа группировки, и все вводы описания цвета сохраняются в Блоке описания группы образцов для цвета типа группировки.
Во-вторых, блок определения образца в группе для «цвета» типа группировки описывает, какой образец имеет какой цвет. Это делается при помощи дифференциального способа: каждый ввод списка описывает, сколько последовательных образцов имеет тот же самый цвет. Это обеспечивает очень компактное хранение для редкого изменения цветов, например, сначала большое число образцов имеет цвет 1, потом многие образцы имеют цвет 2 и так далее.
Для трех цветов и файла из 50 образцов таблицы, основанные на выше описанном синтаксисе, могли бы выглядеть так:
Блок описания группы образцов ("sgpd"){
тип группировки="colr";
ввод отсчета=3; //=число вводов описания группы образцов
//список трех вводов описания группы образцов:
"Черный"
"Белый"
"Красный"
Блок определения образца в группе ("sbgp") {
тип группировки="colr";
ввод отсчета=5; //=число вводов следующего списка
//список для всех 50 образцов:
(3, 1)//=первые 3 образца файла - черные
(10, 3)//=следующие 10 образцов файла - красные
(8, 2)//=следующие 8 образцов файла - белые
(20, 3)//=следующие 20 образцов файла - белые
(9, 1)//=последние 9 образцов файла - черные
Как описано выше, группы образцов хорошо подходят для классификации образцов по различным категориям, но они не очень хорошо подходят, когда связанные события или свойства индивидуальных образцов должны быть описаны в файле. Главная причина этого - тот факт, что группы образцов всегда описывают полный набор образцов, и образцы, которые не принадлежат к статье-группе, должны быть членом статьи-группы - «не принадлежащие ни к какой группе». Другая причина - медленный поиск группы образцов, к которой принадлежит образец.
Событие или свойство должны пониматься как индекс для единственного образца или относительно небольшого количества образцов. Событие или свойство, имеющее место на проиндексированном образце, могут влиять на произвольное число следующих образцов, например, точки с произвольной выборкой могут рассматриваться как события.
Пример событий, сравнимых с вышеупомянутым примером «изменение цвета». Если не сам цвет, то изменение цвета на другой должно быть проиндексировано; группы образцов подходят не очень хорошо, потому что базовый индекс «группы образцов» должен также включать нежелательную информацию «нет никакого изменения цвета». Особенно в случае частых изменений это может привести к возникновению неэффективной таблицы индексов. Парсинг (синтаксический разбор) событий около конца файла становится сложной операцией, потому что все отсчеты образцов (также те из «несобытийной» группы образцов) должны суммироваться.
Для трюковых режимов (например, быстрая перемотка вперед, поиск в файле и т.д.) самая близкая точка с произвольной выборкой к желательной точке входа должна быть эффективно идентифицирована. Поэтому таблица образцов, к которой применяется это событие, должна быть проверена на правильность точки входа. Точки с произвольной выборкой могут существовать на многих уровнях, так, например, прежде всего конфигурация видео декодера необходима в файле, затем ближайшая 1 - структура (способ внутрикадрового кодирования [сжатия] видеоданных с учетом избыточности внутри кадра) видеодорожки и, наконец, точка входа мультиплексного уровня (например, RAT - технология удаленного (дистанционного) доступа к объектам - в случае MPEG-2 TS).
Дополнительная проблема состоит в том, что группы образцов не позволяют осуществить соединение образца с многократными описаниями группы. Это усложняет наложение событий и не дает компактное представление, если группы образцов используются для разрешения проблемы индексации.
Следовательно, цель данного изобретения - обеспечение концепции эффективного соединения событий или свойств, связанных с образцом данных в файле, имеющем контейнер медиа данных и контейнер метаданных, учитывая эффективный поиск указанного образца.
Эта цель достигается при помощи устройства для записи файла по п.1, способа записи файла по п.17, устройства для считывания файла по п.19 и способа считывания файла по п.26.
Для достижения вышеупомянутой цели осуществления данного изобретения также обеспечивают компьютерные программы для реализации способов изобретения.
Данное изобретение основано на открытии о том, что событие или свойство, связанные с определенным образцом или с определенным числом последующих образцов, могут быть предоставлены путем сохранения информации о свойствах вместе со связанным номером образца в контейнере метаданных файла, основанного на ISO базовом медиа формате файла. В определенном осуществлении информация о свойствах имеет отношение к ошибкам или связана с определенным образцом или последовательностью образцов. С целью сохранения связанных с ошибкой метаданных предназначенные для этого контейнеры или блоки предоставлены в контейнере метаданных ("moov") файла. Таким образом, информация об ошибке, которая должна быть сохранена, определяется на двух стадиях. Во-первых, тип ошибки определяется в блоке описания свойств образца ("spdb"). Во-вторых, описание типа ошибки приписано определенным образцам в блоке определения свойств образца ("stpb").
Согласно предпочтительному осуществлению данного изобретения блоки метаданных, связанных со свойствами или ошибками spdb, stpb, составлены блоком таблицы образцов ("stbl"), включающих индексацию времени и данных образцов на дорожке. Используя таблицы, состоящие из блока таблицы образцов stbl, можно определить размещение образцов во времени, определить их тип, размер, контейнер (в части медиа данных файла) и смещение в этот контейнер.
Посредством осуществления данного изобретения можно эффективно определять ошибочные образцы или образцы по соседству с ошибочными образцами. Например, ошибочный образец может быть искаженным образцом или недостающим образцом, который либо не был сохранен в контейнере медиа данных, либо был потерян во время предыдущей передачи образцов данных от передатчика на приемник до сохранения их в файле.
Согласно осуществлению данного изобретения образцы являются пакетами данных, такими как RTP или пакеты данных транспортного потока MPEG-2, полученные во время потоковой сессии или уже сохраненные в контейнере медиа данных файла, основанного на ISO базовом формате медиа файла как в случае хинтинговых дорожек приема.
Согласно осуществлению данного изобретения информация об ошибке, сохраненная в контейнере метаданных (moov), включает качественную информацию об ошибке, такую как тип ошибки, и связанный номер образца ошибочного образца данных. Дополнительно, информация об ошибке может далее включать количественную информацию об ошибке, такую как, например, детальное описание ошибки.
Чтобы создать файл, осуществления данного изобретения предлагают устройство для создания файла, имеющего контейнер медиа данных и контейнер метаданных; устройство включает провайдер информации об ошибке для предоставления информации об ошибке, связанной с образцом данных; и записывающее устройство для хранения информации об ошибке вместе с номером образца, связанного с образцом данных в контейнере метаданных.
Далее, осуществления данного изобретения предлагают устройство для считывания файла с контейнером медиа данных, хранящим образцы медиа данных, и с контейнером метаданных, хранящим информацию об ошибке, связанную с сохраненными образцами данных; устройство включает анализатор для парсинга (синтаксического анализа) контейнера метаданных, чтобы найти информацию об ошибке, связанную с образцом данных, подлежащим обработке, и процессор для определения специальной меры погрешности или операции в случае, если связанная информация об ошибке указывает на то, что образец данных, подлежащий обработке, ошибочен.
Например, специальная мера погрешности может быть маскировкой ошибки или показателем меры погрешности. Маскировка ошибки может быть выполнена, чтобы скрыть ошибочный образец данных или пакеты данных от пользователя, например, во время воспроизведения сохраненных образцов данных или пакетов. Например, при повторном воспроизведении аудио потерянная или искаженная аудио структура может быть заменена специальными способами маскировки, известными в этой области техники. То же самое справедливо для потерянных или искаженных видео структур.
Далее, сохраненная информация об ошибке может использоваться, чтобы однозначно идентифицировать все ошибочно полученные образцы данных после того, как полная передача образцов данных получена и сохранена в файле. Осуществления данного изобретения предлагают устройство для чтения и парсинга контейнера метаданных, чтобы идентифицировать ошибочные образцы данных, сохраненные в контейнере медиа данных и запросить и получить новые копии этих ошибочных образцов данных из сервера данных, например, потоковый сервер, в операции в нереальном времени. Ошибочные образцы данных заменяются в файле недавно полученными безошибочными образцами данных, чтобы преобразовать сохраненный файл, содержащий ошибки, в безошибочный файл.
Осуществления данного изобретения предлагают компактное представление ошибок. Номера образцов могут использоваться для быстрого поиска таблицы. Это может быть особенно полезно для длинных файлов, таких как, например, запись полных кинофильмов. При помощи непосредственного отнесения информации об ошибке к номерам образцов депакетизатор или декодер может быть «предупрежден» или проинформирован до осуществления попытки обработать пакет ошибочных данных или образец данных, так чтобы можно было предусмотреть соответствующие контрмеры.
Дальнейшие цели и особенности данного изобретения станут очевидными из следующего детального описания, которое рассматривается совместно с сопровождающими рисунками, в которых:
Фиг.1А показывает схематическую блок-схему устройства для создания файла, имеющего контейнер медиа данных и контейнер метаданных согласно осуществлению данного изобретения;
Фиг.1B показывает схематическую блок-схему устройства для создания файла, имеющего контейнер медиа данных и контейнер метаданных согласно дальнейшему осуществлению данного изобретения;
Фиг.1С показывает схематическую блок-схему устройства для создания файла, имеющего контейнер медиа данных и контейнер метаданных согласно следующему дальнейшему осуществлению данного изобретения;
Фиг.2 показывает схематическую структуру блока таблицы образцов согласно осуществлению данного изобретения;
Фиг.3 показывает блок-схему способа создания указанного файла согласно осуществлению данного изобретения; и
Фиг.4 показывает схематическую блок-схему устройства для чтения файла, имеющего контейнер медиа данных и контейнер метаданных согласно осуществлению данного изобретения.
Следующее описание формулирует специфические детали, такие как отдельные осуществления, процедуры, методы и т.д. в целях объяснения и во избежание ограничения. Но квалифицированный в этой области специалист оценит то, что другие осуществления могут использоваться отдельно от этих специфических деталей. Например, хотя следующее описание облегчается при использовании неограниченных примерных применений для различных осуществлений, технология может применяться к любому типу систем. В некоторых случаях детальные описания хорошо известных методов, интерфейсов, схем и устройств опускаются, чтобы не осложнять описание ненужными деталями. Кроме того, индивидуальные блоки показаны на некоторых рисунках. Специалисты, квалифицированные в этой области, оценят то, что функции этих блоков могут быть осуществлены при использовании индивидуальных схем аппаратных средств, использующих программы и данные совместно с соответственно запрограммированным цифровым микропроцессором или компьютером общего назначения, применяющим определенную интегральную схемотехнику (ASIC), и/или использующим один или несколько процессоров цифрового сигнала (DSPs).
Фиг.1А показывает примерную блок-схему устройства 10 для создания файла 12, имеющего контейнер медиа данных 14 и контейнер метаданных 16.
Устройство 10 включает провайдер информации об ошибке 18 для предоставления информации об ошибке 19, связанной с вводом образца данных 20 в провайдер информации об ошибке 18. Далее, устройство 10 включает записывающее устройство 22 для сохранения информации об ошибке 19 вместе с номером образца 21, связанного с образцом данных 20 в контейнере метаданных 14 файла 12.
Согласно осуществлению данного изобретения провайдер информации об ошибке 18 приспособлен для анализирования последовательности образцов данных 20, чтобы предоставить информацию об ошибке 19, связанную с недостающими образцами данных в анализируемой последовательности образцов данных. Это может быть полезно для идентификации образцов, которые были, например, потеряны во время потокового сеанса. В случае обнаружения недостающего образца данных записывающее устройство 22 может хранить информацию об ошибке 19, указывающую на недостающий образец данных вместе с номером образца 21 существующего образца данных рядом с или по соседству с недостающим образцом данных или пакетом. Другими словами, так как записывающее устройство 22 не может сохранять номер образца, не существующего из-за потери, оно может соединять информацию об ошибке, связанную с потерянным образцом, с соседним образцом данных, который не был потерян. Иллюстрирующие примеры будут даны ниже.
Дополнительно или альтернативно, провайдер информации об ошибке 18 может быть приспособлен для обнаружения того, содержит ли. по крайней мере, часть образца данных 20 искаженную информацию. Например, из-за определенных эффектов, например, таких как затухание канала или дополнительный шум во время передачи образцов данных от отправителя на приемник; информация, переносимая образцами данных, может быть повреждена или искажена, так что полученная версия образца данных больше не будет соответствовать переданной версии образца данных. В этом случае способы исправления ошибки или маскировки ошибки могут, например, быть применены в конце приема.
Фиг.1B показывает устройство 10 согласно дальнейшему осуществлению данного изобретения.
В осуществлении, показанном на Фиг.1B, образцы данных 20-1, 20-2, 20-3 уже сохранены в контейнере медиа данных 16 (mdat) файла 12, основанного на ISO базовом формате медиа файла. Как правило, образцы 20-1, 20-2, 20-3 в блоке медиа данных 16 сгруппированы в так называемые участки памяти. Участки памяти могут иметь различные размеры, и образцы на участке памяти могут иметь различные размеры. В случае Фиг.1B провайдер информации об ошибке 18 приспособлен для анализирования сохраненных образцов данных 20-1, 20-2, 20-3 в контейнере медиа данных 16, чтобы обнаружить пропущенные, искаженные или вообще ошибочные образцы данных. В случае, если образцы данных 20-1, 20-2, 20-3 являются пакетами данных, такими как, например, RTP пакеты или пакеты данных транспортного потока MPEG-2, пакеты данных обычно включают порядковые номера, указывающие порядок передачи. Провайдер информации об ошибке 18 может проверять порядковые номера сохраненных образцов данных 20-1, 20-2, 20-3 и таким образом обнаруживать недостающие порядковые номера. Дополнительно, сохраненная последовательность или участки памяти образцов данных 20-1, 20-2, 20-3 могут быть проанализированы, чтобы найти искаженные образцы.
Дальнейшее осуществление устройства 10 в принципе показано на Фиг.1С.
Это осуществление включает приемник 24 для получения образцов потоковых данных 20-1, 20-2, 20-3, которые могут быть сырыми образцами медиа данных или пакетами данных, включающими пакетизированные образцы медиа данных. Выход приемника 24 соединен с входом провайдера информации об ошибке 18. таким образом, что это позволяет проверять полученные образцы данных 20-1, 20-2, 20-3, чтобы обнаружить отсутствующий или искаженный образец данных и обеспечить соответствующую качественную и, дополнительно, количественную информацию об ошибке. В примере, данном на Фиг.1С, записывающее устройство 22 приспособлено, чтобы сохранять полученные образцы данных 20 на участках памяти контейнера медиа данных 16 файла 12 и связывать номер образца 21 с каждым из сохраненных образцов данных.
Согласно осуществлениям данного изобретения предоставленная информация об ошибке 19 хранится в подблоке блока таблицы образцов (stbl), состоящем из контейнера метаданных 14 (moov); блок таблицы образцов (stbl) позволяет осуществить индексацию от хронометража образцов данных 20-1, 20-2, 20-3 до связанных с ними номеров образцов 21-1, 21-2, 21-3 на участках памяти. Это будет проиллюстрировано далее более детально со ссылкой на Фиг.2.
Фиг.2 показывает блок таблицы образцов stbl 50 файла, основанного на ISO базовом формате медиа файла, включающего - помимо обычных ссылочных подблоков медиа данных, таких как, например, блок описания образца (stsd), блок размера образца (stsz), блок образца для участка памяти (stsc) и блок смещения участка памяти (stco), подблоки изобретения 52 и 54. Блок описания образца (stsd) необходим, потому что он содержит поле опорного индекса данных, которое указывает, какой опорный блок данных используется, чтобы восстановить образцы в контейнере медиа данных (mdat). Без описания образца было бы невозможно определить, где сохранены образцы. Синхронизированная таблица образцов (stss) является дополнительной. Если синхронизированная таблица образцов (stss) не присутствует, все образцы - синхронизированные образцы. В дополнение к обычным подблокам, известным специалистам, квалифицированным в этой области, блок таблицы образцов stbl 50 включает два дополнительных подблока 52 и 54, связанные с информацией об ошибке 19, предоставляемой провайдером информации об ошибке 18. В дальнейшем подблок 52 должен быть примерно обозначен как блок описания свойств образцов spdb, где подблок 54 будет примерно обозначен как блок определения соответствия свойств образца stpb. Согласно осуществлениям данного изобретения свойство образца является показателем того, что образец связан с ошибкой или, что сам образец ошибочен.
Блок определения соответствия свойств образца stpb 54 устанавливает соответствие образца его свойствам, то есть ошибки согласно осуществлениям. Свойства могут быть сложены, то есть множественные свойства того же самого типа свойств (ошибка) могут относиться к одному образцу. Значение определенного свойства (длина свойства) является неустановленным и зависит от свойства. Программа считывания файла, которая не распознает тип собственности, может не учитывать весь блок stpb 54.
Блок описания свойств образца spdb 52 описывает свойства одного типа свойств. Ввод описания свойств образца специально не определяется и может быть патентованным. Считывающее устройство может анализировать блок spdb 52 только, если оно распознает тип свойства или не будет учитывать ни блок определения соответствия свойств образца stpb 54, ни блок описания свойств образца spdb 52 этого типа свойства. Примерный синтаксис свойств образца может выглядеть так:
выровненный (8) класс Блока определения соответствия свойств образца расширяет полный блок ("stpb") {
целое без знака (32) тип свойства;
целое без знака (32) входной отсчет;
для (i=1; i<=входной отсчет; i++) {
целое без знака (32) индекс описания свойства;
целое без знака (32) отсчет образца;
для (j=1; j<=отсчет образца; j++) {
целое без знака (32) номер образца;
целое без знака (длина свойства) значение;
}
}
выровненный (8) класс Блока описания свойств образца расширяет полный блок ("spdb") {
целое без знака (32) тип свойства;
целое без знака (32) входной отсчет;
для (i=1; i<=входной отсчет; i++) {
Ввод описания свойств образца ();
}
}
Согласно осуществлениям ошибки могут быть проиндексированы, то есть ошибки передачи могут быть отмечены на хинтинговой дорожке приема. По этой причине могут быть определены два различных класса ошибок:
a) потерянные пакеты
b) искаженные пакеты
Следовательно, согласно примерной спецификации, приведенной выше, ввод описания свойств образца может быть определен для каждого из них согласно
классу блока описания свойств образца {
целое без знака (32) тип свойства='errr';
целое без знака (32) входной отсчет=2;
{//входной отсчет=2=>2 входа
Ввод потерянного пакета ():
Ввод искаженного пакета ();
}
}.
Вводы описания свойств образца могут быть определены как:
класс ввода потерянного пакета расширяет ввод описания свойств образца {
целое без знака (32) размер=36; //4+4+2+26
целое без знака (32) тип описания = «потерянный»;
целое без знака (16) длина свойства = 32; // значение содержит число ранее последовательно потерянных пакетов
целое без знака (8) подробное описание = «потерянные пакеты передачи»;}
класс ввода искаженных пакетов расширяет ввод описания свойств образца { целое без знака (32) размер 41;//4+4+2+31
целое без знака (32) тип описания = 'crpt';
целое без знака (16) длина свойства = 0;
целое без знака (8) подробное описание = «искаженные пакеты передачи»;}
Здесь, ввод потерянных пакетов соответствует первой качественной информации об ошибке и используется, чтобы запустить прогон первого индекса описания свойств в блоке определения соответствия свойств образца stpb 54. Ввод искаженного пакета соответствует второй качественной информации об ошибке и запускает прогон второго индекса описания свойств.
Если у нас есть, например, передача пакетов [1, n], при n=1000, в которой имели место ошибки передачи, указанные пакеты 310-367 были потеряны, и пакеты 34 и 177 были искажены, вводы блока определения соответствия свойств могут быть:
класс блока определения соответствия свойств образца {
целое без знака (32) тип свойства 'errr';
целое без знака (32) входной отсчет='2';
{//входной отсчет=2=>2 входа
{
индекс описания свойств=1; //=>потерянные пакеты
отсчет образцов=1; //только один образец содержит
информацию относительно потерянных пакетов
{
{310, 58}
}
}
{
индекс описания свойств=2; //=>искаженные пакеты
отсчет образцов=2; //два образца были искажены
{
{34, ""}
{177,""}
}
}
}
}
Если каждый полученный пакет производит образец, а пакеты 310-367 были потеряны, то образцы 1-309 содержат пакеты 1-309. Образцы 310-942 содержат пакеты 378-1000.
В примере, приведенном выше, для индекса описания свойств со значением 1 следующий полученный после потери пакет содержит ошибочное указание или информацию. Величина свойства образца, то есть количественная информация об ошибке, является числом ранее последовательно потерянных пакетов, следовательно, 58.
Искаженные пакеты были отмечены как таковые прогоном для индекса описания свойств=2. Следовательно, образцы 34 и 177 были отмечены как искаженные. Так как значение длины свойства равно нолю для этого индекса описания свойств, никакое значение ему не приписывается.
Теперь обратимся к фиг.3, способ вывода файла 12, основанного на ISO базовом формате медиа файла, будет получен в итоге.
На первом этапе S1 провайдер информации об ошибке 18 анализирует образец данных или пакет данных 20, чтобы определить информацию об ошибке 19, связанную с проанализированным образцом 20. В случае получения ошибки информация об ошибке обнаруживается в связи с указанным образцом, информация об ошибке 19 сохраняется вместе со связанным с ней номером образца 21 ошибочного образца данных в контейнере метаданных 14 на этапе S2. Этап S2 включает хранение блока описания свойств образца 52 и блока определения соответствия свойств образца 54 в таблице образцов stbl 50 контейнера метаданных moov 14 файла 12.
Если образец данных 20 получен, например, в случае приема образцов потоковых данных, каждый из полученных образцов данных связан к тому же с номером образца 21. Далее, каждый из полученных образцов данных может быть сохранен на участках памяти контейнера медиа данных 16 на дополнительном этапе S3.
Можно видеть, что этап S2 и дополнительный этап S3 могут быть по существу выполнены параллельно, то есть информация об ошибке 19 и номер образца 21 сохраняются в контейнере медиа данных 14, а образец данных в то же самое время сохраняется в контейнере медиа данных 16.
Как было объяснено ранее, образцы могут быть пакетами данных, такими как RTP или пакеты данных транспортного потока MPEG-2, поскольку это тот случай, когда сохраняются хинтинговые дорожки приема, как было объяснено во вводной части этой спецификации.
После того, как образцы были сохранены в контейнере медиа данных 16, а информация об ошибке сохранена в контейнере метаданных 14 файла 12, основанного на ISO базовом формате медиа файла, сохраненная информация об ошибке может быть использована, например, во время воспроизведения образцов. С этой целью осуществления данного изобретения обеспечивают устройство 60 для чтения файла 12 с контейнером медиа данных 16 и с контейнером метаданных 14, как примерно показано на Фиг.4.
Устройство 60 включает анализатор 62 для парсинга или анализа контейнера метаданных 14, чтобы найти информацию об ошибке 19, связанную с образцом данных 20, подлежащим обработке. Процессор 64 может обеспечить определенную меру погрешности в случае, если связанная информация об ошибке 19 указывает, что образец данных 20, подлежащий обработке, ошибочен.
Чтобы быть более определенным, анализатор 62 может анализировать блок описания свойств образца 52 и блок определения соответствия свойств образца 54 в таблице образцов stbl 50 контейнера метаданных moov 14 файла 12. Таким образом, он может искать номера образцов 21 и связанную с ними качественную информацию об ошибке 19, например, их индекс описания свойств, если обратиться к спецификации, использовавшейся выше. Дополнительно, анализатор 62 может извлекать количественную информацию об ошибке, например, сколько пакетов данных было потеряно до или после пакета, имеющего связанный с ним номер образца.
Согласно осуществлениям данного изобретения процессор 64 приспособлен для выполнения меры маскировки погрешности в качестве определенной меры погрешности в ответ на обнаруженную информацию об ошибке. Например, если образец данных, подлежащий обработке, искажен или потерян, процессор 64 может синтезировать образец, выполняя своего рода спектральную интерполяцию между спектральными величинами соседних существующих образцов данных. Это может быть сделано, например, если образец данных связан со звуковой или видео структурой.
В случае искаженного образца или пакета данных процессор 64 может также быть приспособлен, чтобы начать своего рода исправление ошибки, например, используя средства декодирования канала.
В дальнейшем осуществлении процессор 64 может также указать ошибку расположенному ниже устройству или пользовательскому интерфейсу, передавая сообщение о качественной и количественной информации об ошибке, упомянутой прежде.
Далее, сохраненная информация об ошибке 19 в контейнере метаданных 14 может использоваться, чтобы однозначно идентифицировать ошибочно полученные образцы данных после того, как полная передача образцов данных была получена и сохранена в файле 12. По этой причине анализатор 62 может анализировать сохраненную информацию об ошибке 19 в контейнере метаданных 14, чтобы идентифицировать ошибочные образцы данных, сохраненные в контейнере медиа данных 16. Процессор 64 может затребовать и получить новые копии или версии идентифицированных ошибочных образцов данных из сервера контент-провайдера, например потоковый сервер при операции в нереальном времени. То есть не требуется никакого протокола в реальном времени для повторной передачи идентифицированных образцов данных, которые могут быть одиночными ошибочными видео структурами, например. Ошибочные образцы данных могут тогда быть заменены в файле 12 запрошенными и недавно полученными безошибочными образцами данных, чтобы преобразовать сохраненный файл 12, содержащий ошибки, в безошибочный файл.
Устройство 60 может получить внешний запрос, который создает отзывы в форме информации об ошибке для, например:
- получения ответа, состоящего из информации об ошибке, которая относится к конкретному затребованному образцу,
- получения ответа с самым близким номером образца, к которому относится конкретно затребованная ошибка (например, потерянные образцы).
Описанные события или свойства образца в форме информации об ошибке полезны для, например, индексов хинтинговых дорожек приема.
Осуществления данного изобретения предлагают преимущество, состоящее в том, что ошибки, связанные с образцами, могут быть описаны расширяемым способом. Многократные соответствующие ошибки могут быть сгруппированы в один тип ошибок. Количественная информация об ошибке не ограничена, поскольку она верна, например, для числа вводов описания группы образцов.
Далее, предоставлен простой и эффективный путь, позволяющий показать местоположение возникновения ошибки в файле. Это может быть полезно для исправления погрешности, маскировки погрешности и/или индикации погрешности при повторном воспроизведении содержания данных, сохраненных в контейнере медиа данных файла.
В зависимости от обстоятельств способы изобретения могут быть осуществлены в аппаратных средствах или программном обеспечении. Они могут быть осуществлены на цифровом носителе данных, таком как диск, компакт-диск или DVD, при помощи электронно считываемых управляющих сигналов, которые могут объединяться с программируемой компьютерной системой таким образом, что способ осуществляется. В общем, изобретение, таким образом, также состоит в компьютерном программном продукте с управляющей программой, сохраненном на машиночитаемом носителе для реализации способов изобретения, когда компьютерный программный продукт запущен на компьютере. Другими словами, изобретение может, таким образом, быть реализовано как компьютерная программа с управляющей программой для реализации способа, когда компьютерная программа запущена на компьютере.
В то время как это изобретение было описано в терминах нескольких предпочтительных осуществлений, существуют изменения, перестановки и эквиваленты, которые находятся в рамках этого изобретения. Нужно также отметить, что существует много альтернативных способов реализации способов и структур данного изобретения. Поэтому подразумевается, что прилагающаяся патентная формула будет интерпретирована как включающая все такие изменения, перестановки и эквиваленты, которые находятся в пределах реальной сущности и объема изобретения.