УПРАВЛЕНИЕ МУЛЬТИМЕДИЙНЫМИ КОНТЕЙНЕРНЫМИ ФАЙЛАМИ
MULTIMEDIA CONTAINER FILE MANAGEMENT

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в целом относится к управлению данными мультимедиа и, в частности, к созданию и использованию мультимедийных контейнерных файлов, содержащих такое мультимедийное содержание.
УРОВЕНЬ ТЕХНИКИ
Предоставление данных мультимедиа клиентам через различные сети увеличилось многократно за последние несколько лет. Сегодня Интернет используется многочисленными пользователями для доступа и загрузки или потоковой передачи данных мультимедиа, например, в виде видеопотоков и аудиопотоков или файлов на медиасерверы.
В соответствии с этой возрастающей потребностью в предоставлении данных мультимедиа в проводных и беспроводных сетях связи продолжается работа по развитию серверов потоковых данных и загрузочных серверов, доступных в беспроводных сетях, для предоставления мультимедийного содержания по запросам клиентов. Существует общая тенденция к прозрачности и гибкости серверов потоковых данных/загрузочных серверов, что подразумевает, что серверы должны в основном состоять из множества "стандартных" блоков или программ, выполняющих различные функции управления данными мультимедиа. Затем осуществляется ввод мультимедийного содержания на вход этих функций вместе с инструкциями, как блоки/программы должны обрабатывать содержание. Это обеспечивает более гибкое предоставление данных мультимедиа по сравнению с использованием фиксированной, заранее заданной обработки данных мультимедиа в серверах.
Экспертная группа по вопросам движущегося изображения (MPEG) стандартизировала формат файлов, базовый формат мультимедийных файлов Международной организации по стандартизации (ISO) [1], который соответствует тенденции развития серверов потоковых данных и загрузочных серверов. Базовый формат мультимедийных файлов ISO определяет общий формат файла для хранения и передачи мультимедийных презентаций и служит базисом для многих более специализированных форматов файлов, например формата файлов усовершенствованного кодирования видео (AVC) [2], формата файлов масштабируемого видеокодирования (SVC) [3] и формата файлов мультиракурсного видеокодирования (MVC) [4].
В базовом формате мультимедийных файлов ISO дорожки могут группироваться в группы альтернатив. Дорожки, которые принадлежат одной и той же группе альтернатив, называют альтернативными дорожками, и они являются альтернативами друг другу. Они могут, например, представлять одно и то же содержание, но отличаться качеством, кодеком, языком и т.д. Только одна дорожка из каждой группы альтернатив должна обрабатываться за один раз во время мультимедийного сеанса, чтобы обеспечить целостность презентации.
В дополнение к группам альтернатив базовый формат мультимедийных файлов ISO также определяет группы переключения. Все дорожки в группе альтернатив являются кандидатами на выбор данных мультимедиа, но, возможно, не имеет смысла переключаться во время текущего мультимедийного сеанса между некоторыми из этих дорожек. Например, может быть позволено переключаться между видеодорожками с различными скоростями передачи данных, сохраняя при этом размер кадров, но не позволено переключаться между дорожками с разным размером кадров, различными видеокодеками или различными языками аудио. Различие между группами альтернатив и группами переключения состоит в том, что дорожки в одной и той же группе переключения являются кандидатами на переключение даже во время текущего мультимедийного сеанса, в то время как дорожки в одной и той же группе альтернатив, но в различных группах переключения, не должны переключаться во время текущего мультимедийного сеанса.
Организация на предшествующем уровне техники данных мультимедиа в дорожках и присвоение таких дорожек к различным группам альтернатив и переключения работает хорошо для большинства типов мультимедиа. Однако применительно к некоторым типам мультимедиа, например SVC и MVC [5], встречаются проблемы.
SVC является стандартизированным масштабируемым расширением к общепризнанному H.264/AVC стандарту видеокодирования [5]. SVC позволяет кодировать несколько представлений видео в одном битовом потоке. Каждое такое кодированное представление видео с определенным пространственным разрешением, качеством и частотой кадров обозначается как слой. Слои имеют иерархическую зависимость, где самый нижний слой обозначен как базовый слой (BL), а последующие слои обозначены как слои (ELs) улучшения.
MVC является расширением AVC/SVC стандарта, который предназначен для совместного кодирования множества ракурсов. Множество ракурсов в этом контексте представляют собой последовательности видеокадров, которые представляют один и тот же объект съемки, снятый различными камерами. Структура MVC ракурсов подобна структуре SVC слоев с той разницей, что MVC ракурсы обычно имеют одинаковое разрешение, качество и частоту кадров.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
При применении базового формата мультимедийных файлов ISO к кодированному SVC или MVC содержанию каждая дорожка будет содержать множество версий одного и того же содержания в виде множества слоев или ракурсов. Группы альтернатив и группы переключения, однако, специально разработаны для одной дорожки. Это означает, что во время текущего мультимедийного сеанса может иметь место переключение между различными слоями или ракурсами, определенными дорожкой, поскольку они будут, по сути, принадлежать одной и той же группе альтернатив и одной и той же группе переключения. Есть, тем не менее, ситуации, в которых крайне нежелательно динамически переключаться между слоями или ракурсами. Например, базовый слой может быть бесплатным и содержать рекламу, в то время как слой улучшения содержит оплаченную премиум версию без рекламы содержания. Поэтому неумышленное переключение с премиум версии содержания на бесплатное содержание нежелательно для пользователя, который оплатил отсутствие рекламы.
Таким образом, имеется потребность в решении проблемы применения понятия групп альтернатив и/или переключения к типам мультимедиа, которые несут множество версий одного и того же содержания, например SVC и MVC.
Общей задачей является обеспечение мультимедийного контейнерного файла, который может использоваться в мультимедийных сеансах.
Конкретной задачей является обеспечение такого мультимедийного контейнерного файла, который может использоваться для данных мультимедиа, содержащих множество частей данных мультимедиа, составляющих соответствующие подпотоки.
Эти и другие задачи решаются в вариантах воплощения, раскрытых в настоящем документе.
Кратко, мультимедийный контейнерный файл создается посредством организации данных мультимедиа, определенных мультимедийной дорожкой в мультимедийном контейнерном файле. Данные мультимедиа содержат части, которые составляют различные подпотоки с точки зрения того, что они относятся к различным версиям одного и того же мультимедийного содержания. Например, части данных мультимедиа могут относиться к различным слоям SVC данных или различным ракурсам MVC данных.
Информация о поддорожке предоставляется в мультимедийном контейнерном файле для каждой поддорожки, определенной мультимедийной дорожкой. Информация о поддорожке идентифицирует часть данных мультимедиа в мультимедийном контейнерном файле, которая принадлежит или определяется поддорожкой. По меньшей мере одной из поддорожек присваивается информация о выборе, которая включена в мультимедийный контейнерный файл. Информация о выборе определяет выборочную обработку части данных мультимедиа, определенной поддорожкой, по отношению к другим данным мультимедиа, организованным в мультимедийном контейнерном файле и относящимся к тому же содержанию, что и часть данных мультимедиа поддорожки.
Один аспект изобретения также касается сервера мультимедийного содержания, предназначенного для создания такого мультимедийного контейнерного файла. Сервер мультимедийного содержания содержит организатор данных для организации данных мультимедиа в мультимедийном контейнерном файле. Поставщик информации о поддорожке предоставляет информацию о поддорожке в мультимедийном контейнерном файле, а поставщик информации о выборе обеспечивает информацию о выборе в мультимедийном контейнерном файле.
Другой аспект определяет мультимедийный контейнерный файл, который содержит части данных мультимедиа, которые составляют соответствующие подпотоки. Мультимедийные дорожки включены в мультимедийный контейнерный файл для определения данных мультимедиа. Кроме того, мультимедийный контейнерный файл содержит информации о поддорожке, которая идентифицирует для каждой поддорожки, определенной в мультимедийной дорожке, часть данных мультимедиа, которая принадлежат поддорожке. Информация о выборе содержится в мультимедийном контейнерном файле по меньшей мере для одной поддорожки для определения выборочной обработки части данных мультимедиа, соответствующей поддорожке, по отношению к другим данным мультимедиа, организованным в мультимедийном контейнерном файле и относящимся к тому же информационному мультимедийному содержанию, что и часть данных мультимедиа.
Способ обработки данных мультимедиа согласно аспекту изобретения использует мультимедийный контейнерный файл посредством выбора при установлении мультимедийного сеанса поддорожки на основании идентификатора группы альтернатив, присвоенного поддорожке в виде информации о выборе. Данные мультимедиа, соответствующие выбранной поддорожке, извлекаются из мультимедийного контейнерного файла на основании информации о поддорожке, присвоенной выбранной поддорожке. Извлеченные данные мультимедиа компилируются в пакеты данных и передаются по меньшей мере на один терминал пользователя во время мультимедийного сеанса.
Другой аспект способа обработки данных мультимедиа состоит в переключении с текущей дорожки или поддорожки на другую поддорожку во время текущего мультимедийного сеанса. Переключение выполняется на основании идентификатора группы переключения, присвоенного поддорожке в виде информации о выборе и поэтому присутствующего в мультимедийном контейнерном файле. Информация о поддорожке, присвоенная выбранной поддорожке и включенная в мультимедийный контейнерный файл, используется для извлечения данных мультимедиа поддорожки и компилирования их в пакеты данных, которые отправляются по меньшей мере на один терминал пользователя для осуществления переключения данных мультимедиа, относящихся к одному и тому же содержанию, во время текущего мультимедийного сеанса.
Сервер обработки данных мультимедиа включает согласно аспекту изобретения поставщика контейнера для предоставления мультимедийного контейнерного файла. Селектор дорожки выбирает поддорожку, определенную в мультимедийном контейнерном файле, при установлении мультимедийного сеанса. Селектор дорожки использует идентификатор группы альтернатив из мультимедийного контейнерного файла, присвоенный поддорожке при процедуре отбора. Компилятор пакетов получает данные мультимедиа поддорожки из мультимедийного контейнерного файла и компилирует данные мультимедиа в пакеты данных на основании информации о поддорожке, связанной с поддорожкой. Передатчик передает пакеты данных по меньшей мере на один терминал пользователя во время мультимедийного сеанса.
Другой аспект сервера обработки данных обеспечивает переключение между потоками и подпотоками, относящимися к одному и тому же информационному мультимедийному содержанию, во время текущего мультимедийного сеанса. Поставщик контейнера обеспечивает мультимедийный контейнерный файл, в котором определена по меньшей мере одна поддорожка и который содержит соответствующий идентификатор группы переключения и информацию о поддорожке. Селектор дорожки использует идентификатор группы переключения для выбора поддорожки, относящейся к тому же информационному мультимедийному содержанию, что и текущая дорожка или поддорожка. Компилятор пакетов компилирует пакеты данных, несущие данные мультимедиа выбранной поддорожки, на основании информации о поддорожке. Пакеты данных передаются по меньшей мере на один терминал пользователя во время текущего мультимедийного сеанса для осуществления переключения потока данных мультимедиа или подпотока.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Изобретение наряду с его дальнейшими задачами и преимуществами может быть лучше всего понято с помощью последующего описания совместно с прилагаемыми чертежами, в которых:
фиг. 1 представляет собой блок-схему последовательности операций, которая изображает способ получения мультимедийного контейнерного файла согласно варианту воплощения;
фиг. 2 представляет собой схематическую иллюстрацию организации масштабируемых данных видеокодирования в виде различных слоев;
фиг. 3 представляет собой блок-схему последовательности операций, которая изображает вариант воплощения этапов предоставления информации на фиг. 1, применимый для масштабируемых данных видеокодирования;
фиг. 4 схематично изображает запись объекта съемки с использованием множества ракурсов изображения камеры;
фиг. 5 представляет собой схематическую иллюстрацию организации данных мультиракурсного видеокодирования в виде различных ракурсов;
фиг. 6 представляет собой блок-схему последовательности операций, которая изображает вариант воплощения этапов предоставления информации на фиг. 1, применимый для данных мультиракурсного видеокодирования;
фиг. 7 представляет собой блок-схему последовательности операций, которая изображает дополнительный этап способа создания на фиг. 1 согласно варианту воплощения;
фиг. 8 представляет собой схематическую иллюстрацию мультимедийного контейнерного файла согласно варианту воплощения;
фиг. 9 представляет собой общий вид сети связи, которая включает серверы, создающие и использующие мультимедийные контейнерные файлы согласно варианту воплощения;
фиг. 10 представляет собой блок-схему варианта воплощения сервера мультимедийного содержания;
фиг. 11 представляет собой блок-схему последовательности операций, которая изображает способ обработки данных мультимедиа согласно варианту воплощения;
фиг. 12 представляет собой блок-схему последовательности операций, которая изображает дополнительные этапы способа обработки данных мультимедиа на фиг. 11 согласно варианту воплощения;
фиг. 13 представляет собой блок-схему варианта воплощения сервера обработки данных мультимедиа.
ПОДРОБНОЕ ОПИСАНИЕ
Всюду на чертежах используются одни и те же номера ссылок для подобных или соответствующих элементов.
Настоящее изобретение в целом относится к управлению данными мультимедиа и, в частности, к созданию и использованию мультимедийных контейнерных файлов на медиасерверах, например серверах потоковых данных или загрузочных серверах, в сетях связи, включая сети связи, основанные на радио. Мультимедийный контейнерный файл включает в дополнение к информационному мультимедийному содержанию для передачи запрашивающему клиенту(ам) инструкции, используемые для выполнения обработки данных мультимедиа и передачи в медиасерверах. Эти инструкции содержат информацию о выборе, которая может использоваться медиасерверами для выбора мультимедийного содержания для мультимедийного сеанса, например для выбора мультимедийного содержания при установлении мультимедийного сеанса и/или переключении между потоками данных мультимедиа во время текущего мультимедийного сеанса.
Согласно настоящему изобретению под данными мультимедиа или информационным мультимедийным содержанием подразумеваются любые данные, которые могут быть предоставлены поставщиком информационных ресурсов или сервером клиенту для воспроизведения данных. Типичные примеры предпочтительных вариантов включают видеоданные и аудиоданные. Варианты воплощения в особенности полезны применительно к данным мультимедиа, содержащим множество различных частей данных, где каждая такая часть данных составляет соответствующий подпоток. Такие данные мультимедиа организованы в виде одной мультимедийной дорожки мультимедийного контейнерного файла, но содержат множество частей данных, например, слои в SVC или ракурсы в MVC. Организация данных мультимедиа в виде характерных для подпотоков частей данных мультимедиа приводит к проблемам при использовании методов предшествующего уровня техники, то есть идентификаторов группы альтернатив и группы переключения предшествующего уровня техники. Чтобы более ясно раскрыть преимущества вариантов воплощения, сначала следует краткое обсуждение ограничений методов предшествующего уровня техники.
Классы информационного SVC содержания
SVC позволяет кодирование множества представлений информационного видео-содержания в одном битовом потоке. Масштабируемость видеоданных может быть достигнута в смысле:
• временной масштабируемости - частота кадров может быть уменьшена посредством пропуска кадров.
• пространственной масштабируемости - слои кодируются при различных пространственных разрешениях. Предварительная подготовка данных более высоких разрешений может использовать данные более низкого разрешения.
• масштабируемости качества - слои кодируются при одном и том же пространственном разрешении, но с различным качеством. Масштабируемость качества также называется масштабируемостью отношения сигнал-шум (SNR) в области техники.
Кодированные данные 2 делятся на различные слои 4, 5, которые схематично изображены на фиг. 2. Слои 4, 5 имеют иерархическую зависимость, самый низкий слой обозначен как базовый слой 4, а последующие слои обозначены как слои 5 улучшения. Чертеж схематично изображает эти иерархические зависимости кодирования между слоями 4, 5 с точки зрения того, что (предсказанные или P) кадры слоя 5 улучшения кодируются по меньшей мере частично на основании (кадров с внутренним кодированием, или I/кадров с внутренним кодированием, или P/ кадров базового слоя 4.
SVC может использоваться для представления различных версий или классов одного и того же информационного видеосодержания, например оплаченную премиум версию против бесплатной версии. Разница между этими двумя версиями может быть с точки зрения качества, например высокое против низкого качества, разрешения, например высокая четкость (HD) против стандартной четкости (SD) или 1080p против 720p, рекламы, например отсутствие против наличия пространственных вставок рекламных объявлений и логотипов, и т.д.
Два класса содержания могут быть закодированы одной дорожкой SVC с бесплатной версией в базовом слое (BL) и премиум версией в слое (EL) улучшения. Однако синтаксис группы переключения предшествующего уровня техники не может использоваться для присвоения различных групп переключения в пределах одной дорожки:
Содержание
Слой
Идентификатор дорожки
Группа альтернатив
Группа переключения
Бесплатное SVC
BL
1
1
?
Премиум SVC
EL
Следовательно, нет никакой возможности предотвратить согласно предшествующему уровню техники непреднамеренное переключение между бесплатной версией и премиум версией. Это является, конечно, не приемлемым для пользователя, который заплатил дополнительно, чтобы избежать рекламы в видео.
MVC ракурсы
MVC совместно кодирует видеоданные, захваченные несколькими камерами 80-85 для объекта 86 съемки, как это показано на фиг. 4. Чертеж изображает три камеры 80-82, которые захватывают различные ракурсы левой стороны объекта 86 съемки, тогда как три других камеры 83-85 расположены для захвата различных ракурсов правой стороны объекта съемки. Межракурсные корреляции могут использоваться в совместном кодировании множества ракурсов, таким образом уменьшая скорость передачи данных по сравнению с раздельным кодированием разных ракурсов. Фиг. 5 изображает концепцию MVC данных 3, организованных в виде различных ракурсов 6-8. В таком случае один из ракурсов является основным ракурсом 6, тогда как другие ракурсы, обозначающие дополнительные ракурсы 7, 8, кодируются относительно основного ракурса 6 или других дополнительных ракурсов, как это схематично изображено на чертеже.
MVC данные имеют проблемы в предшествующем уровне техники, аналогичные таковым для SVC данных. Например, предположим случай, в котором видеоданные одной пары ракурсов левой стороны и правой стороны закодированы с помощью H.263, а другая левая и правая пара закодирована как данные MVC:
Содержание
Ракурс
Идентификатор дорожки
Группа альтернатив
Группа переключения
H.263 ракурс левой стороны
1
1
1
H.263 ракурс правой стороны
2
2
2
MVC ракурс левой стороны
1
3
?
?
MVC ракурс правой стороны
2
Согласно предшествующему уровню техники невозможно указать как альтернативы два кодирования левой стороны или два кодирования правой стороны, так как идентификаторы групп альтернатив и переключения присваиваются на уровне дорожек. В этом случае дорожка 3 должна фактически принадлежать и той же группе альтернатив, что и H.263 ракурс левой стороны, и той же группе альтернатив, что и H.263 ракурс правой стороны, так как дорожка содержит видеоданные ракурсов и левой и правой сторон.
На первый взгляд можно было бы попытаться решить эти проблемы предшествующего уровня техники посредством использования экстракторов. Экстракторы ссылаются на другие данные в пределах одного и того же мультимедийного контейнерного файла. Когда экстрактор обрабатывается средством чтения файлов, он заменяется данными мультимедиа, на которые он ссылается.
Одна дорожка для SVC потока
Содержание
Идентификатор дорожки
Группа альтернатив
Группа переключения
SVC BL+EL
1
1
1
Описанные выше проблемы существуют и в этом случае, так как возможно переключение между базовым слоем и слоем улучшения во время мультимедийного сеанса.
Одна дорожка для SVC потока - извлечь BL в другую дорожку
Содержание
Идентификатор дорожки
Группа альтернатив
Группа переключения
SVC BL+EL
1
1
1
SVC BL (экстракторы из дорожки 1)
2
1
2
Даже с различными группами переключения для двух дорожек можно переключаться между базовым слоем и слоем улучшения в дорожке 1.
Одна дорожка для AVC потока - извлечь BL в другую дорожку
Содержание
Идентификатор дорожки
Группа альтернатив
Группа переключения
SVC BL (AVC)
1
1
1
SVC BL (экстракторы из дорожки 1)+SVC EL
2
1
2
Даже с различными группами переключения для двух дорожек можно переключаться между базовым слоем и слоем улучшения в дорожке 2.
Таким образом, ни одна из вышеупомянутых очевидных модификаций предшествующего уровня техники не решает проблему управления переключением, например предотвращения переключения между базовым и слоями улучшения.
На сегодня на самом деле существует специальное решение для SVC, которое может предотвратить переключение на базовый слой. Признак layer_output_flag в информации о масштабируемости в сообщении вспомогательного индикатора (SEI) улучшения является кандидатом. layer_output_flag, равный 1, указывает, что результат декодирования для текущего представления масштабируемого слоя предназначен для вывода. layer_output_flag, равный 0, указывает, что результат декодирования для текущего представления масштабируемого слоя не предназначен для вывода.
Однако установка layer_output_flag равным 0 для базового слоя работает, только если базовый слой вообще не предназначен для вывода. Весь смысл наличия различных классов или версий содержания состоит в том, что все классы должны быть потенциальными кандидатами на вывод. Хотя после выбора одного из них переключение между ними должно быть управляемым, например оно может быть ограничено. Таким образом, использование layer_output_flag подобным образом не будет решать проблему предшествующего уровня техники, так как оно фактически ограничит доступность одного из слоев, тем самым теряя преимущество наличия различных слоев и классов мультимедийного содержания. Кроме того, layer_output_flag отсутствует в базовом формате мультимедийных файлов ISO, а вместо этого требует непрерывной проверки фактического битового потока, что затруднительно во время мультимедийного сеанса.
Таким образом, есть потребность в решении, которое позволит использовать группы альтернатив и переключения также для типов мультимедийного содержания, организованных в виде различных подпотоков, как, например, SVC и MVC данные, так как методы предшествующего уровня техники не могут использоваться для достижения такого решения.
Фиг. 1 представляет собой блок-схему последовательности операций для способа создания мультимедийного контейнерного файла согласно варианту воплощения. Этот мультимедийный контейнерный файл может рассматриваться как целый входной пакет, который может использоваться медиасервером во время мультимедийного сеанса для предоставления мультимедийного содержания и формирования данных мультимедиа в пригодные к передаче пакеты данных. Таким образом, мультимедийный контейнерный файл предпочтительно включает в себя, в дополнение к информационному мультимедийному содержанию как таковому, информацию и инструкции, необходимые медиасерверу для выполнения обработки и разрешения передачи мультимедийного содержания во время мультимедийного сеанса.
Способ начинается с необязательного этапа S1, где обеспечиваются данные мультимедиа, которые будут включены в мультимедийный контейнерный файл. Согласно вариантам воплощения данные мультимедиа содержат множество, то есть по меньшей мере две части данных, которые составляют соответствующие подпотоки мультимедийного содержания. Это множество частей данных мультимедиа могут рассматриваться как различные версии одного и того же мультимедийного содержания. Например, многослойные данные мультимедиа, такие как SVC, содержат много слоев, обычно в иерархическом порядке. При обработке только одного слоя, то есть базового слоя, или вдобавок при обработке слоя улучшения чаще всего создается одно и то же информационное мультимедийное содержание, но в различных классах или версиях, например, с точки зрения качества, разрешения и т.д. Тем не менее, фактическое информационное мультимедийное содержание, которое обеспечивается при обработке альтернативных слоев, в целом такое же, хотя оно может быть в виде различных версий. Аналогичная ситуация имеет место для MVC, где части данных мультимедиа относятся к различным ракурсам изображения камеры. Хотя SVC и MVC являются предпочтительными примерами данных мультимедиа, которые могут быть обеспечены на этапе S1, варианты воплощения этим не ограничиваются. Напротив, может использоваться любой другой тип данных мультимедиа, которые могут быть организованы в виде различных частей данных мультимедиа, например слоев или ракурсов, включая масштабируемые аудиоданные.
В изобретении предполагается, что даже при том что один слой или ракурс могут рассматриваться как одна часть данных мультимедиа, из-за взаимосвязей вследствие кодирования он может нуждаться в кодированных данных из другого слоя или ракурса, чтобы его можно было декодировать. Например, слои улучшения могут быть закодированы относительно базового слоя и/или другого слоя(ев) улучшения, и дополнительные ракурсы могут быть закодированы относительно основного ракурса и/или другого дополнительного слоя(ев). Таким образом, обработка слоя или ракурса с точки зрения обеспечения потока пакетов данных, которые можно декодировать, может требовать данных из других слоев или ракурсов.
Предоставление данных мультимедиа на этапе S1 может быть реализовано согласно различным вариантам воплощения. Данные мультимедиа могли быть созданы или собраны некоторым другим сервером или устройством в сети связи и переданы к серверу мультимедийного содержания, который создает мультимедийный контейнерный файл. В соответствии с другим вариантом воплощения изобретения сервер мультимедийного содержания может самостоятельно содержать оборудование для записи или генерации мультимедийного содержания, которое обеспечивает данные мультимедиа, которые будут включены в мультимедийный контейнерный файл.
На следующем этапе S2 данные мультимедиа, обеспеченные на этапе S1, организуются в мультимедийном контейнерном файле так, чтобы данные мультимедиа задавались мультимедийной дорожкой в мультимедийном контейнерном файле.
Данные мультимедиа, организованные в мультимедийном контейнерном файле на этапе S2, предпочтительно содержат в совокупности все информационное мультимедийное содержание, которое должно быть передано клиенту во время мультимедийного сеанса. Другими словами, мультимедийный контейнерный файл содержит данные мультимедиа для всей мультимедийной презентации, включая все требуемые слои или ракурсы. Таким образом, если информационное мультимедийное содержание содержит музыкальное видео, мультимедийный контейнерный файл предпочтительно содержит видеоданные и соответствующие аудиоданные.
Мультимедийная дорожка в мультимедийном контейнерном файле задает данные мультимедиа и соответствующее множество частей данных мультимедиа. Это означает, что мультимедийная дорожка содержит информацию, которую необходимо предоставить во время мультимедийного сеанса, демонстрации мультимедийного содержания. В предпочтительном варианте воплощения изобретения мультимедийная дорожка несет свою собственную информацию о временных и пространственных параметрах и обеспечивает полезную информацию, касающуюся данных мультимедиа, на которые она ссылается.
Мультимедийная дорожка включает согласно вариантам воплощения множество поддорожек, предпочтительно одну такую поддорожку на каждую часть данных мультимедиа. Таким образом, многослойные или многоракурсные данные мультимедиа могут иметь одну такую поддорожку на каждый слой (или группу слоев) или ракурс изображения камеры мультимедийного содержания.
Следующий этап S3 обеспечивает информацию о поддорожке в мультимедийном контейнерном файле. Эта информация о поддорожке идентифицирует часть данных мультимедиа, которая принадлежит определенной поддорожке. Обеспечение информации на этапе S3 и следующий этап S4 предпочтительно проводятся один раз для каждой поддорожки, что схематично изображено линией L1.
Этап S4 обеспечивает информацию о выборе в мультимедийном контейнерном файле для по меньшей мере одной из множества поддорожек. Информация о выборе задает выборочную обработку части данных мультимедиа, заданной поддорожкой, по отношению к другим данным мультимедиа, организованным в мультимедийном контейнерном файле. Таким образом, информация о выборе может использоваться медиасервером применительно к мультимедийному сеансу для выбора того, какую поддорожку и часть мультимедиа использовать в начале мультимедийного сеанса и/или между какой поддорожкой и мультимедийной частью можно или нельзя переключаться во время мультимедийного сеанса. Информация о выборе может использоваться аналогично идентификатору группы альтернатив и/или идентификатору группы переключения согласно предшествующему уровню техники. Однако в отличие от предшествующего уровня техники, где идентификатор группы альтернатив/переключения присваивается на уровне дорожки, что означает, что один и тот же идентификатор группы альтернатив/переключения применяется ко всем данным мультимедиа, заданным дорожкой, информация о выборе, которая обеспечивается на этапе S4, касается только поддорожки и части данных мультимедиа, заданной поддорожкой. Как следствие другая информация о выборе может быть присвоена и использоваться для других частей данных мультимедиа, все из которых организованы в виде одной мультимедийной дорожки.
Выборочная обработка части данных мультимедиа, к которой относится информация о выборе, предпочтительно находится во взаимосвязи с другими данными мультимедиа, имеющими отношение к тому же содержанию, что и эта часть данных мультимедиа. Другие данные мультимедиа, имеющие отношение к тому же содержанию, могут задаваться той же мультимедийной дорожкой, то есть являться другой поддорожкой в мультимедийной дорожке, или другой мультимедийной дорожкой, представленной в мультимедийном контейнерном файле. В первом случае другими данными мультимедиа могут быть одна или более других поддорожек, заданных одной и той же мультимедийной дорожкой и относящихся к другим SVC слоям или MVC ракурсам по сравнению с SVC слоем или MVC ракурсом текущей поддорожки и части мультимедиа. В последнем случае мультимедийный контейнерный файл содержит по меньшей мере две различные мультимедийные дорожки, относящиеся к одному и тому же содержанию. Например, одна мультимедийная дорожка может содержать множество поддорожек, задающих SVC слои или MVC ракурсы, тогда как по меньшей мере одна другая дорожка может быть закодирована без какой бы то ни было межракурсной или межслойной взаимосвязи, как, например, стандартные AVC (H.264) или H.263 данные.
Соответствующая информация о выборе может быть обеспечена для каждой поддорожки мультимедийной дорожки на этапе S4, который схематично изображен линией L1. В соответствии с другим вариантом воплощения изобретения только одной поддорожке или части множества поддорожек присваивают информацию о выборе. Тогда оставшаяся поддорожка(ки) может, как это описано в настоящем документе, наследовать идентификатор группы альтернатив и/или переключения, присваиваемый всей мультимедийной дорожке, задающей множество поддорожек.
Порядок этапов от S2 до S4 может быть изменен и вместо этого иметь произвольный последовательный или даже по меньшей мере частично параллельный порядок.
Способ на этом заканчивается.
Если мультимедийный контейнерный файл содержит множество мультимедийных дорожек, каждая из которых состоит из множества поддорожек, процедура выполнения этапов S1-S4 может быть проведена для каждой такой мультимедийной дорожки.
Создание мультимедийного контейнерного файла, описанное выше применительно к фиг. 1, предпочтительно проводится на создателе мультимедийного содержания или сервере, имеющем доступ к внутренним или внешним источникам мультимедийного содержания. Затем создаваемый мультимедийный контейнерный файл может быть представлен в виде информации на носителе данных, например памяти компьютера, или в виде физического сигнала, такого как электрический сигнал или радиосигнал, например, для передачи в локальной системе или для передачи по локальной или глобальной сети. В типичном варианте воплощения мультимедийный контейнерный файл обеспечивается в виде радиосигнала для медиасервера для использования в мультимедийном сеансе с различными клиентами.
В дальнейшем термин мультимедийный контейнерный файл будет использоваться в описании изобретения в значении, включающем и файлы данных для хранения на носителе данных и сигналы для передачи или распространения.
Фиг. 3 представляет собой блок-схему последовательности операций, которая изображает определенный вариант воплощения этапов S3 и S4 предоставления информации, применимый для SVC данных, изображенных на фиг. 2. Способ продолжает с этапа S2 фиг. 1. Следующий этап S10 предоставляет информацию о поддорожке, относящуюся к базовому слою 4 SVC данных 2. Эта информация определяет поддорожку базового слоя, чтобы позволить идентификацию части SVC данных, к которым относится поддорожка базового слоя. Следующий этап S11, соответственно, предоставляет информацию о поддорожке для каждого слоя 5 улучшения SVC данных 2 в мультимедийном контейнерном файле. Поддорожка, обеспеченная на этапе S11, таким образом, идентифицирует часть данных мультимедиа SVC данных 2, которая определяет конкретный слой 5 улучшения, к которому имеет отношение поддорожка.
Следующие два этапа S12 и S13 обеспечивают информацию о выборе для базового слоя и слоев улучшения. По меньшей мере один из этих этапов S12 и S13 проводится на уровне поддорожек. Например, поддорожке базового слоя может быть присвоена предназначенная ей информация о выборе и поддорожке слоя улучшения соответственно присвоена предназначенная ей информация о выборе. В соответствии с другим вариантом воплощения изобретения одной из поддорожек: либо поддорожке базового слоя, либо поддорожке слоя улучшения, присваивается заданная для этой поддорожки информация о выборе, в то время как другая поддорожка(ки) наследует информацию о выборе (идентификатор группы альтернатив/переключения) всей мультимедийной дорожки.
Порядок этапов от S10 до S13 может быть изменен и вместо этого иметь произвольный последовательный или даже по меньшей мере частично параллельный порядок.
Фиг. 6 представляет собой соответствующую конкретную реализацию этапов S3 и S4 предоставления информации фиг. 1 в случае MVC данных, изображенных на фиг. 5. Способ продолжается с этапа S2 фиг. 1. Следующий этап S20 предоставляет информацию о поддорожке, определяющую часть MVC данных 3 мультимедиа, которая задает основной ракурс 6. Следующий этап S21, соответственно, предоставляет информацию о поддорожке, определяющую часть(и) данных мультимедиа, имеющих отношение к дополнительному ракурсу(ам) 7, 8 MVC данных 3.
Информация о выборе присваивается поддорожкам, задающим основной ракурс и/или дополнительные ракурсы на этапе S22 и S23. Аналогично этапам S12 и S13 фиг. 3 этапы S22 и S23 могут предоставлять заданную информацию о выборе для поддорожек, задающих основной ракурс и дополнительные ракурсы, или только предоставлять такую заданную для поддорожки информацию о выборе для основного ракурса или одного или более дополнительного ракурса(ов). В последнем случае поддорожки, которым не присвоена заданная для поддорожек информация о выборе, могут наследовать такую информацию от мультимедийной дорожки, в которой они все заданы.
Порядок этапов от S12 до S23 может быть изменен и вместо этого иметь произвольный последовательный или даже по меньшей мере частично параллельный порядок.
Информация о выборе, которая присваивается на уровне поддорожек согласно вариантам воплощения, может предпочтительно задаваться для поддорожки идентификатором группы альтернатив. Тогда такой идентификатор группы альтернатив применим медиасервером при установлении мультимедийного сеанса, когда выбирается подпоток, который будет обрабатываться, например декодироваться, перекодироваться и/или организовываться в пакеты данных для передачи во время мультимедийного сеанса. Медиасервер не должен тогда одновременно использовать более чем одну мультимедийную альтернативу из каждой группы альтернатив, чтобы выдать полную презентацию независимо от того, задана ли группа альтернатив на уровне мультимедийных поддорожек или дорожек.
Варианты в группе альтернатив служат альтернативами друг другу, то есть они содержат одно и то же содержание, но могут отличаться качеством, разрешением, кодеком, языком звукового сопровождения, и т.д. Все варианты в группе альтернатив имеют один и тот же идентификатор группы альтернатив и являются кандидатами на выбор мультимедиа до начала мультимедийного сеанса.
В альтернативном варианте воплощения изобретения информация о выборе соответствует заданному для поддорожки идентификатору группы переключения, который применим при переключении между различными потоками (целыми мультимедийными дорожками) и/или поддорожками (частями данных мультимедиа, соответствующими поддорожке) во время текущего мультимедийного сеанса.
Варианты в группе переключения принадлежат одной и той же группе альтернатив. Варианты в одной и той же группе переключения имеют один и тот же идентификатор группы переключения и доступны для переключения во время мультимедийного сеанса в отличие от вариантов в различных группах переключения. Различные группы переключения могут рассматриваться как различные режимы воспроизведения, например, имеющими различный размер кадра, высокое против низкого качества, различные языки, и т.д. Варианты в группе переключения также представляют собой различные режимы воспроизведения, например, по качеству.
В определенном варианте воплощения информация о выборе, присвоенная на уровне поддорожки, содержит и идентификатор группы альтернатив и идентификатор группы переключения.
Примеры, которые обсуждались выше применительно к предшествующему уровню техники, теперь могут быть эффективно решены согласно вариантам воплощения, как это раскрыто в настоящем документе:
Классы информационного SVC содержания
Содержание
Слой
Идентификатор дорожки
Группа альтернатив
Группа переклю-чения
Группа альтернатив поддорожек
Группа переключения поддорожек
Бесплатный SVC
BL
1
0
0
1
1
Премиум SVC
EL
1
2
В этом случае мультимедийной дорожке, задающей часть данных базового слоя и часть данных слоя улучшения, присваиваются идентификаторы группы альтернатив и переключения согласно предопределенному значению, например 0, указывая, что мультимедийная дорожка содержит множество поддорожек и что идентификаторы группы альтернатив и переключения вместо этого присвоены каждой поддорожке.
Бесплатным и премиум SVC данным присваивается один и тот же идентификатор группы альтернатив поддорожки для указания, что они принадлежат одной и той же группе альтернатив и являются вариантами или опциями во время обработки мультимедиа данных. Таким образом, клиенты, заплатившие дополнительно за премиум версию содержания, должны получить пакеты данных, содержащие часть данных мультимедиа, относящуюся к слою улучшения и базовому слою, где последний может быть необходим для декодирования слоя улучшения. Другие не премиум-клиенты должны, тем не менее, просто получить данные базового слоя.
Двум поддорожкам присваиваются различные идентификаторы группы переключения поддорожки для указания, что во время мультимедийного сеанса запрещено переключение с подпотока, относящегося к премиум версии информационного SVC содержания, на подпоток с бесплатным информационным SVC содержанием и наоборот.
Заданная для поддорожки информация о выборе может также использоваться при постепенном снижении качества, когда доступны несколько слоев разного качества одного и того же мультимедийного содержания, чтобы обеспечить возможность адаптации скорости передачи данных. Однако если базовый слой содержит рекламу или имеет очень низкое качество, желательно проинструктировать медиасервер, что переключение должно происходить только выше некоторого порога во время неожиданной перегрузки или снижения скорости передачи данных. Вместо неумышленного включения рекламы для премиум-клиента может быть желательно, чтобы получатель скрывал потери пакетов данных. Такое решение может быть разработано и содержит:
Содержание
Слой
Идентификатор дорожки
Группа альтернатив
Группа переключения
Группа альтернатив поддорожки
Группа переклю-чения поддорожки
Бесплатное SVC
BL
1
0
0
1
1
Премиум SVC Q1
EL1
1
2
Премиум SVC Q2
EL2
1
2
Каждая из двух поддорожек, определяющих соответствующий слой (EL1 и EL2) улучшения, принадлежит одной и той же группе переключения, чтобы позволить переключение между этими двумя подпотоками, заданными поддорожками, во время текущего мультимедийного сеанса. Однако переключение не должно быть позволено между подпотоком, задающим базовый слой, и любым из подпотоков, задающих слои улучшения.
MVC ракурсы
Содержание
Ракурс
Идентификатор дорожки
Группа альтернатив
Группа переклю-чения
Группа альтернатив поддорожки
Группа переключения поддорожки
H.263 ракурс левой стороны
-
1
1
1
-
-
H.263 ракурс правой стороны
-
2
2
1
-
-
MVC ракурс левой стороны
1
3
0
0
1
2
MVC ракурс правой стороны
2
2
2
В этом примере есть две группы альтернатив: одна относится к ракурсу левой стороны объекта съемки и другая относится к ракурсу правой стороны объекта съемки. Обе группы альтернатив содержат полностью данные мультимедиа мультимедийной дорожки (H.263 дорожки 1 или 2) и MVC данные ракурса поддорожки (MVC поддорожки 1 или 2). В этом случае использовались различные кодеки для кодирования H.263 и MVC данных. Как следствие, переключение между кодированными H.263 данными и кодированными MVC данными нежелательно. Поэтому должны использоваться различные идентификаторы групп переключения для H.263 данных ракурса левой стороны и MVC данных ракурса левой стороны, принадлежащих одной и той же группа альтернатив. То же самое применимо для H.263 данных ракурса правой стороны и MVC данных ракурса правой стороны. Заметим, что так как группы переключения задаются локально в пределах группы альтернатив, те же самые индексы группы переключения могут использоваться повторно, как это было сделано выше. В соответствии с другим вариантом воплощения изобретения, идентификаторы групп переключения могли бы быть, например, 1, 3, 2, 4 вместо 1, 1, 2, 2.
Приведенный выше пример показывает, что варианты воплощения могут использоваться для обращения с разными ракурсами информационного MVC содержания, а также показывает, как установить взаимосвязь между альтернативами для типов (H.263) мультимедиа с одной дорожкой и многослойными типами (MVC) мультимедиа.
Другой пример, касающийся MVC, состоит в том, что файл может содержать много ракурсов, но только некоторые из них подходят для плавного переключения. Рассмотрим ситуацию, изображенную на фиг. 4 с двумя кластерами камер, например три камеры 80-82 слева и три камеры 83-86 справа от объекта 86. В таком случае плавное переключение возможно только в пределах каждого кластера для получения впечатления не фиксированной точки наблюдения. Эта ситуация может иметь решение согласно нижеследующему:
Содержание
Ракурс
Идентификатор дорожки
Группа альтернатив
Группа переключения
Группа альтернатив поддорожки
Группа переклю-чения поддорожки
MVC ракурс левой стороны
1
1
0
0
1
1
MVC ракурс левой стороны
2
1
1
MVC ракурс левой стороны
3
1
1
MVC ракурс правой стороны
4
1
2
MVC ракурс правой стороны
5
1
2
MVC ракурс правой стороны
6
1
2
Все ракурсы являются альтернативами при установлении мультимедийного сеанса, что обозначено посредством присвоения одного и того же идентификатора группы альтернатив всем поддорожкам. Однако переключение должно быть позволено только среди ракурсов левой стороны, соответствующих ракурсам правой стороны. Как следствие, всем поддорожкам ракурсов левой стороны присвоен один и тот же идентификатор группы переключения, то есть отличающийся от идентификатора группы переключения, присвоенного всем поддорожкам ракурса правой стороны.
Мультимедийной дорожке может быть присвоена так называемая информация о выборе дорожки, которая имеет предопределенное значение, указывающее, что мультимедийная дорожка содержит множество поддорожек. Эта информация о выборе дорожки содержит идентификатор группы альтернатив и/или идентификатор группы переключения, присваиваемый на уровне дорожки. В примерах выше предопределенное значение было нулем, чтобы таким образом сообщить о том, что идентификатор группы альтернатив/переключения, применимый ко всей мультимедийной дорожке, отсутствует, а вместо этого в мультимедийный контейнерный файл включены заданные для поддорожек идентификаторы группы альтернатив/переключения.
Медиасервер может тогда просто исследовать группу разрядов или поле идентификатора группы альтернатив/переключения в мультимедийном контейнерном файле для определения, должны ли использоваться заданные для поддорожки идентификаторы групп альтернатив/переключения для текущего мультимедийного содержания. В таком случае для базового формата мультимедийных файлов ISO поле выбора дорожки может отсутствовать или группа переключения установлена равной 0 и/или группа альтернатив в поле заголовка дорожки установлена равной 0.
В альтернативном подходе информация о выборе дорожки, например идентификаторы группы альтернатив и/или переключения, может быть присвоена на уровне дорожки мультимедийной дорожке, определяющей множество поддорожек. В таком случае заданная для поддорожки информация о выборе может быть присвоена одной или части множества поддорожек, тогда как у оставшихся поддорожек мультимедийной дорожки заданная для поддорожек информация о выборе отсутствует. Эти оставшиеся поддорожки вместо этого наследуют идентификатор(ы) группы альтернатив/переключения, присвоенный мультимедийной дорожке. В этой ситуации медиасервер, обрабатывающий конечный мультимедийный контейнерный файл, определяет, имеет ли мультимедийная дорожка какой-либо ненулевой идентификатор группы альтернатив/переключения, и, кроме того, занимается определением, обеспечены ли такие идентификаторы группы альтернатив/переключения для поддорожек. Если специально предназначенные идентификатор(ы) группы альтернатив/переключения присвоены поддорожке, то этот(эти) идентификатор(ы) используются для поддорожки вместо заданных для дорожки идентификаторов группы альтернатив/переключения.
Содержание
Ракурс
Идентификатор дорожки
Группа альтернатив
Группа переключения
Группа альтернатив поддорожки
Группа переклю-чения поддорожки
MVC ракурс левой стороны
1
1
1
0
-
1
MVC ракурс левой стороны
2
-
1
MVC ракурс левой стороны
3
-
1
MVC ракурс правой стороны
4
-
2
MVC ракурс правой стороны
5
-
2
MVC ракурс правой стороны
6
-
2
Этот пример схематично изображает использование идентификатора группы альтернатив на уровне мультимедийной дорожки, но идентификаторы группы переключения для каждой поддорожки, заданной мультимедийной дорожкой.
Содержание
Слой
Идентификатор дорожки
Группа альтернатив
Группа переключения
Группа альтернатив поддорожки
Группа переклю-чения поддорожки
Бесплатное SVC
BL
1
1
1
-
-
Премиум SVC Q1
EL1
1
2
Премиум SVC Q2
EL2
1
2
В этом примере поддорожка, задающая базовый слой, наследует идентификаторы группы альтернатив и переключения целой мультимедийной дорожки, тогда как у двух поддорожек, задающих различные слои улучшения, есть свои собственные присвоенные им идентификаторы группы альтернатив и переключения.
Фиг. 7 представляет собой блок-схему последовательности операций, которая изображает дополнительный, необязательный этап способа создания. Способ продолжается с этапа S3 на фиг. 1. Следующий этап S30 обеспечивает информацию о выборе дорожки для мультимедийной дорожки. Информация о выборе предпочтительно содержит идентификатор группы альтернатив и/или идентификатор группы переключения. Значение информации о выборе может быть предопределенным значением, таким как нуль, указывая, что никакие идентификаторы групп альтернатив/переключения не даны на уровне мультимедийной дорожки, но вместо этого каждой поддорожке присвоена соответствующая информация о выборе. Если имеется информация о выборе на уровне дорожки, то эта информация используется для всех поддорожек, заданных мультимедийной дорожкой, кроме тех случаев, когда поддорожке специально присвоена информация о выборе. Таким образом, информация о выборе, присвоенная на уровне поддорожки, имеет приоритет по сравнению с информацией о выборе дорожки, которая присваивается на уровне мультимедийной дорожки.
Способ затем переходит к этапу S4 фиг. 1.
Ниже будут более подробно описаны варианты воплощения со ссылкой на конкретную реализацию мультимедийного контейнерного файла при использовании базового формата мультимедийных файлов ISO [1]. Альтернативные форматы контейнерных файлов, которые могут использоваться, включают в себя MP4 формат файлов, 3GP формат файлов, AVC, SVC, MVC и QuickTime форматы.
Базовый формат мультимедийных файлов ISO предназначен для содержания синхронизированной мультимедиа информации для демонстрации в универсальном, расширяемом формате, который облегчает обмен, управление, редактирование и демонстрацию данных мультимедиа. Демонстрация может быть локальной для системы, содержащей презентацию, или может происходить через сеть или другой потоковый механизм доставки. Преимущество использования мультимедийного контейнерного файла в виде базового мультимедийного файла ISO состоит в том, что он спроектирован быть независимым от любого конкретного сетевого протокола, при этом обеспечивая их эффективную поддержку в целом.
Файловая структура базового формата мультимедийных файлов ISO является объектно-ориентированной, это означает, что контейнерный файл может быть очень просто разделен на составляющие объекты, и структура объектов зависит непосредственно от их типа. Мультимедийный контейнерный файл, который основан на базовом формате мультимедийных файлов ISO, задается множеством полей, которые являются объектно-ориентированными элементарными блоками, определяемыми соответствующим уникальным идентификатором.
На фиг. 8 показан вариант воплощения мультимедийного контейнерного файла 1, соответствующего базовому формату мультимедийных файлов ISO.
Мультимедийный контейнерный файл 1 предпочтительно содержит поле 10 фильма ('moov'), которое является полем контейнера, подполя которого задают метаданные для презентации.
Поле фильма
Определение:
Тип поля: 'moov'
Контейнер: Файл
Обязательный: Да
Количество: В точности одно
Метаданные для презентации сохраняются в одном поле 10 фильма, которое находится на верхнем уровне мультимедийного контейнерного файла 1. Обычно это поле 10 фильма близко к началу или концу мультимедийного контейнерного файла 1, хотя это не обязательно.
Синтаксис:
aligned(8) class MovieBox extends Box('moov') {
}
Поле 10 фильма содержит дорожки 12, 14, которые задают синхронизированную последовательность связанных порций данных мультимедиа в мультимедийном контейнерном файле 1.
Поле дорожки
Определение:
Тип поля: 'trak'
Контейнер: Поле Фильма ('moov')
Обязательный: Да
Количество: Одно или больше
Поле 12, 14 дорожек является контейнерным полем для одной дорожки презентации. Каждая дорожка 12, 14 несет свою собственную информацию о временных и пространственных параметрах. Поля 12, 14 дорожек используются для задания данных мультимедиа с точки зрения мультимедийных дорожек и для того, чтобы содержать информацию о пакетировании для доставки данных мультимедиа, например, при потоковой передаче, через так называемые подсказочные дорожки.
Синтаксис:
aligned (8) class TrackBox extends Box('trak) {
}
Фиг. 8 без ограничений изображает мультимедийный контейнерный файл 1, содержащий два поля 12, 14 дорожек. Это должно, однако, рассматриваться просто как показательный пример, поскольку мультимедийный контейнерный файл 1 может содержать одно или более таких полей 12, 14 дорожек. На чертеже поле 12 дорожки является мультимедийной дорожкой, которая задает данные мультимедиа, содержащие множество частей данных мультимедиа, как было описано ранее. Мультимедийная дорожка 12 будет, следовательно, содержать множество поддорожек, как это описывается в настоящем документе.
Поле 12 дорожки предпочтительно содержит поле 30 данных пользователя, которое содержат объекты, которые объявляют пользовательскую информацию о содержимом поля и его данных, то есть презентации или дорожке. Поэтому поле 30 данных пользователя может рассматриваться как контейнерное поле для информативных данных пользователя, которое форматировано в виде ряда полей с более конкретными типами полей, которые объявляют более точно их содержание.
Мультимедийный контейнерный файл 1 также содержит поле данных мультимедиа ('mdat'), которое содержит фактические данные мультимедиа для презентации.
Поле данных мультимедиа
Определение:
Тип поля: 'mdat'
Контейнер: Файл
Обязательный: Нет
Количество: Любое число
Поле 20 данных мультимедиа содержит данные мультимедиа. Например, при наличии видеодорожек 12, 14 это поле 20 будет содержать видеокадры.
Синтаксис:
aligned(8) class MediaDataBox extends Box('mdat') {
bit(8) data[];
}
Данные представляют фактические данные мультимедиа.
Поле данных пользователя
Определение:
Тип поля: 'udta'
Контейнер: Поле фильма ('moov') или поле дорожки ('trak')
Обязательный: Нет
Количество: Нуль или одно
Синтаксис:
aligned(8) class UserDataBox extends Box('udta') {
}
В соответствии с предшествующим обсуждением в настоящем документе все дорожки в группе альтернатив являются кандидатами на выбор мультимедиа содержания, это достигается посредством присвоения всех мультимедийных дорожек одной и той же группе альтернатив. Информация об идентификаторе группы альтернатив предоставляется в поле заголовка дорожки (не изображен), соответствующем полю 12 дорожки. Согласно базовому формату мультимедийных файлов ISO синтаксис для поля заголовка дорожки ('tkhd') представляется в следующем виде:
aligned(8) class TrackHeaderBox extends Fullbox('tkhd', version, flags) {
...
template int(16) altemate_group = 0;
...
}
Этот идентификатор группы альтернатив применим на уровне дорожки и поэтому применяется для всех данных мультимедиа, задающихся мультимедийной дорожкой 12, кроме тех случаев, когда у поддорожки мультимедийной дорожки 12 есть свой заданный для поддорожки идентификатор группы альтернатив. В предпочтительной реализации нулевое значение идентификатора группы альтернатив говорит о том, что мультимедийная дорожка содержит множество поддорожек, у которых могут быть их собственные группы альтернатив поддорожек. Если поле не равно 0, оно должно быть одинаковым для дорожек 12, которые содержат альтернативные друг другу данные, и различным для дорожек 12, принадлежащих к различным таковым группам. Тогда поддорожка, задающаяся дорожкой 12, может наследовать этот идентификатор группы альтернатив за исключением случаев, когда у нее есть свой собственный идентификатор группы альтернатив поддорожки.
Поле 30 данных пользователя в некоторых случаях содержит поле 40 выбора ('tsel') дорожки, которое используется для того, чтобы задать идентификатор группы переключения, применимый к мультимедийной дорожке 12.
Поле выбора дорожки
Определение:
Тип поля: 'tsel'
Контейнер: Поле данных пользователя ('udta')
Обязательный: Нет
Количество: Нуль или одно
Поле 40 выбора дорожки содержится в поле 30 данных пользователя дорожки 12, к которой оно относится.
Синтаксис:
aligned(8) class TrackSelectionBox extends FullBox('tsel', version = 0, 0) {
template int(32) switch_group = 0;
unsigned int(32) attribute_list[]; // до конца поля
}
Список атрибутов используется в качестве описания дорожек или критериев различения для дорожек в одной и той же группе альтернатив или переключения. Идентификатор группы переключения может быть нулем, в этом случае декодер может начать поиск групп выбора поддорожек в мультимедийном контейнерном файле. Ненулевое значение может быть наследовано любой поддорожкой, у которой нет ее собственного идентификатора группы переключения поддорожки.
Согласно вариантам воплощения поле 30 данных пользователя содержит, в случае если дорожка содержит поддорожки, так называемые поля 50 поддорожек ('strk'), которые определяют поддорожки в текущей дорожке.
Поле поддорожки
Определение:
Тип поля: 'strk'
Контейнер: Поле данных пользователя ('udta')
Обязательный: Нет
Количество: Нуль или больше
Поле 50 поддорожки содержит объекты, которые задают и предоставляют информацию о поддорожке в текущей мультимедийной дорожке 12.
Синтаксис:
aligned(8) class SubTrack extends Box('strk') {
}
Поле 50 поддорожки является контейнером, который содержит два поля: поле 60 информации о поддорожке ('stri') и поле 70 определения поддорожки ('strd').
Поле 60 информации о поддорожке содержит описание поддорожки. Это может быть, например, информация о том, к какой группе переключения и/или альтернатив принадлежит поддорожка и другие атрибуты поддорожки. В конкретном варианте воплощения номера группы альтернатив и переключения используются во всем мультимедийном контейнерном файле 1. Это означает, что один и тот же формат или нумерация идентификатора используется идентификаторами групп альтернатив/переключения дорожки и идентификаторами групп альтернатив/переключения поддорожки. Таким образом, группа альтернатив или переключения может содержать и дорожки и поддорожки.
Поле информации о поддорожке
Определение:
Тип поля: 'stri'
Контейнер: Поле поддорожки ('strk')
Обязательный: Да
Количество: Одно
Поле 60 информации о поддорожке содержит объекты, которые предоставляют информацию о поддорожке.
Синтаксис:
aligned(8) class SubTracklnformation extends Box('stri') {
}
Поле 70 определения поддорожки является контейнерным полем, которое содержит поля, которые определяют поддорожку. Поддорожка определяется как совокупность подмножеств фрагментов данных, определенных полями в поле определения поддорожки. Поля, задающие эти подмножества, могут быть определены в соответствующих стандартах форматов файлов, таких как SVC и MVC стандарты форматов файлов.
Поле определения поддорожки
Определение:
Тип поля: 'strd'
Контейнер: Поле поддорожки ('strk')
Обязательный: Да
Количество: Одно
Поле 70 определения поддорожки содержит объекты, которые предоставляют определение поддорожки.
Синтаксис:
aligned(8) class SubTrackDefinition extends Box('strd') {
}
В альтернативных реализациях мультимедийного контейнерного файла 1 предложенная структура может быть реализована без поля 60 информации о поддорожке и поля 70 определения поддорожки. В таком случае поля, имеющиеся в поле 60 информации о поддорожке и поле 70 определения поддорожки, могут вместо этого размещаться непосредственно в поле поддорожки 50. Однако структура с полем 60 информации о поддорожке и полем 70 определения поддорожки выгодна, поскольку из нее можно почерпнуть больше информации. Например, если синтаксический анализатор файла обнаруживает в поле 70 определения поддорожки поле, которое он не распознает, то он будет знать, что это поле, которое определяет поддорожку.
Аналогично стандарту базового формата мультимедийных файлов ISO поле 62 выбора поддорожки ('stsl') определяется и предпочтительно включается в поле 60 информации о поддорожке. Поле 62 выбора поддорожки содержит идентификатор группы переключения поддорожки, применимый для текущей группы переключения.
Поле выбора поддорожки
Определение:
Тип поля: 'stsl'
Контейнер: Поле информации о поддорожке ('stri')
Обязательный: Нет
Количество: Нуль или одно
Синтаксис:
aligned(8) class SubTrackSelectionBox extends Fullbox('stsl', version = 0, 0) {
template int(32) switch_group = 0;
unsigned int(32) attribute_list[]; // до конца поля
}
Switch_group является идентификатором группы переключения поддорожки и является целым числом, которое указывает группу или набор дорожек и/или поддорожек. Если поле равно 0, то есть значению по умолчанию, или если поле 62 выбора поддорожки отсутствует, то тогда нет никакой информации о том, может ли поддорожка использоваться для переключения во время воспроизведения или потоковой передачи. Дорожки/поддорожки, которые принадлежат одной и той же группе переключения, должны также принадлежать одной и той же группе альтернатив.
Attribute_list является списком параметров, которые должны использоваться в качестве описаний поддорожек или различающих критериев для дорожек/поддорожек в одной и той же группе альтернатив или переключения.
Примеры описательных параметров, которые могут использоваться, включают:
Название
Параметр
Описание
Временная масштабируемость
'tesc'
Поддорожка имеет масштабируемость по времени.
Масштабируемость отношения сигнала к шуму (SNR) мелкой зернистости
'fgsc'
Поддорожка имеет масштабируемость мелкой зернистости.
Масштабируемость отношения сигнала к шуму (SNR) крупной зернистости
'cgsc'
Поддорожка имеет масштабируемость крупной зернистости.
Пространственная масштабируемость
'spsc'
Поддорожка имеет пространственную масштабируемость.
Масштабируемость области интереса
'resc'
Поддорожка имеет масштабируемость области интереса.
Примеры различающих параметров, которые могут использоваться, включают:
Название
Параметр
Указатель
Скорость передачи данных
'bitr'
Полный размер фрагментов данных в поддорожке деленный на продолжительность в поле заголовка дорожки.
Частота кадров
'frar'
Число фрагментов данных в поддорожке деленное на продолжительность в поле заголовка дорожки.
Поле 64 выбора альтернатив поддорожки ('asts') используется для того, чтобы присвоить идентификаторы группы альтернатив. Это поле 64 является необязательным и, если одна и та же группа альтернатив применяется ко всем поддорожкам, нет никакой необходимости включать поле 64 выбора альтернатив поддорожки.
Поле выбора альтернатив поддорожки
Определение:
Тип поля: 'asts'
Контейнер: Поле информации о поддорожке ('stri')
Обязательный: Нет
Количество: Нуль или одно
aligned(8) class AlternateSubTrackSelectionBox extends FullBox('asts', version = 0, 0) {
template int(32) altemate_group = 0;
}
Altemate_group является идентификатором группы альтернатив поддорожки и представляет собой целое число, которое указывает группу или набор дорожек и/или поддорожек. Если это поле равно 0, то есть значению по умолчанию, или если поле 64 выбора альтернатив поддорожки отсутствует, то информация о возможных соотношениях с другими дорожкам/поддорожкам отсутствует.
Если это поле не равно 0, оно должно быть одинаковым для дорожек/поддорожек, которые содержат альтернативные друг другу данные и различные для дорожек/поддорожек, принадлежащих к различным таковым группам. В любой момент времени только одна дорожка/поддорожка в пределах группы альтернатив должна воспроизводиться или передаваться потоком.
Специальные поля 72, 74 определения поддорожки размещаются в поле 70 выбора определения поддорожки. Эти поля 72, 74 обычно задаются кодеком и определяют части дорожки, принадлежащие определенной поддорожке. Если присутствует более чем одно поле 70 определения поддорожки, совокупность определений поддорожки определяет поддорожку.
Ниже будут раскрыты различные варианты воплощения определения поддорожек применительно к SVC и MVC данным. Если используются другие кодеки для создания данных мультимедиа, которые могут быть организованы в поддорожки, то поля определения будут соответственно адаптированы для этих кодеков. Основное предназначение полей определения состоит в идентификации части(ей) мультимедийной дорожки, которые принадлежат поддорожке. Поэтому могут использоваться специфичные для кодека идентификаторы.
Варианты воплощения SVC
Поле слоя SVC поддорожки
Определение:
Тип поля: 'sstl'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class SVCSubTrackLayerBox extends FullBox('sstl') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(3) DependencyId;
unsigned int(4) QualityId;
unsigned int(3) TemporalId;
unsigned int(6) reserved;
}
}
Список триплетов идентификатор зависимости, идентификатор качества и временной идентификатор (DQT) определяют части мультимедийной дорожки, которые принадлежат поддорожке. Уникальная комбинация идентификатора зависимости, идентификатора качества и временных идентификаторов определяет SVC слой. Поэтому каждый DQT триплет, перечисленный в поле слоя поддорожки, определяет одну SVC рабочую точку. Совокупность различных значений DQT-триплета и, следовательно, и совокупность SVC слоев описывают поддорожку, определенную полем.
Item_count подсчитывает число DQT триплетов, перечисленных в этом поле, и идентификаторы зависимости/качества/временной идентификатор указывают значение идентификатора зависимости/качества/временного идентификатора блоков сетевого уровня абстракции (NAL).
Поле уровня SVC поддорожки
Определение:
Тип поля: 'stti'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class SubTrackTierBox extends FullBox('stti') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(16) tierId;
}
}
Совокупность идентификаторов уровня в этом поле описывает поддорожку, определенную полем. Уровень является в этом случае SVC уровнем. Как известно в области техники, уровень является набором слоев, который представляет рабочую точку в битовом потоке. Чтобы отобразить NAL блоки на уровень, могут использоваться группы фрагментов данных и группы отображения. Группы фрагментов данных обеспечивают разделение фрагментов данных между группами. Однако так как в одном фрагменте данных может быть несколько NAL блоков, то группы отображения могут использоваться для присвоения NAL блоков в одном фрагменте данных различным группам фрагментов данных. Уровень содержит одну или более таких групп фрагментов данных.
Item_Count подсчитывает число уровней, описанных в этом поле уровня поддорожки, а tierId дает идентификатор уровня(ей), который содержится в поддорожке.
Поле группы фрагментов данных SVC поддорожки
Определение:
Тип поля: 'stsg'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class SubTrackSampleGroupBox extends Fullbox('stsg') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(16) groupId;
}
}
В этом варианте воплощения группы фрагментов данных используются непосредственно вместо уровней для разделения дорожки на поддорожки. Группы фрагментов данных могут также использоваться совместно с группами отображения.
Item_count подсчитывает число групп фрагментов данных, описанных в этом поле уровня поддорожки, а groupId дает идентификатор записи о группе. Идентификаторы групп имеют произвольные значения, но они являются уникальными для групп фрагментов данных.
Приведенные выше варианты воплощения являются примерами того, как могут быть определены SVC поддорожки. Любой из этих вариантов воплощения может использоваться в мультимедийном контейнерном файле 1.
Возможно альтернативное решение для SVC данных при использовании уровней или экстракторов в мультимедийном контейнерном файле 1. Группирование уровней выполняется в формате SVC файла [3]. Чтобы сгруппировать уровни на основании содержания, добавляется новое поле группы переключения ('swgr') к основному определению уровня. В таком случае позволено переключение между уровнями, то есть наборами рабочих точек, которые принадлежат к одной и той же группе содержания. Переключение между уровнями, которые принадлежат различным группам содержания, запрещено. Это альтернативное решение не нуждается в определении поддорожек. Вместо этого оно модифицирует определение уровня. Недостаток этого решения состоит в том, что это менее универсально, чем использование поддорожек в явной форме.
Поле группы переключения
Определение:
Тип поля: 'swgr'
Контейнер: Масштабируемая запись о группе
Обязательный: Нет
Количество: Нуль или одно
Синтаксис:
aligned(8) class SwitchGroupBox extends Box('swgr') {
unsigned int(32) content_group = 0;
}
Content_group является целым числом, которое указывает группу или набор уровней, которые имеют одно и то же содержание. Если это поле равно 0 или поле группы переключения отсутствует, то дорожка принадлежит по умолчанию группе 0 содержания. Переключение может происходить между уровнями, которые принадлежат одной и той же группе содержания, и запрещено между уровнями, которые принадлежат различным группам. Группа содержания предпочтительно имеет только один элемент. Таким образом, content_group является в этом случае примером информацией о выборе, которая может быть присвоена поддорожкам согласно варианту воплощения.
Поле группы переключения является необязательным и присутствует в основном определении уровня. Поле группы переключения может быть добавлено к масштабируемой записи о группе согласно следующему примеру:
aligned(8) class ScalableGroupEntry extends VisualSampleGroupEntry('scif') {
unsigned int(8) groupId;
unsigned int(8) primary_groupId;
unsigned int(1) is_tier_IDR;
unsigned int(1) noInterLayerPredFlag;
unsigned int(1) useRefBasePicFlag;
unsigned int(1) storeBaseRepFlag;
unsigned int(1) is_tl_switching_point;
unsigned int(3) reservered = 0;
unsigned int(8) tl_switching_distance;
if (groupId == primary_groupId) // основное определение уровня
{
TierInfoBox(); // обязательный
SVCDependencyRangeBox(); // обязательный
SVCPriorityRangeBox(); // обязательный
TierBitRateBox(); // необязательный
RectRegionBox(); // необязательный
BufferingBox(); // необязательный
TierDependencyBox(); // необязательный
InitialParameterSetBox(); // необязательный
IroiInfoBox(); // необязательный
ProtectionSchemeInfoBox(); // необязательный
TranscodingInfoBox(); // необязательный
SwitchGroupBox(); // необязательный
}
}
Варианты воплощения MVC
Поле ракурса MVC поддорожки
Определение:
Тип поля: 'mstv'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class MVCSubTrackViewBox extends FullBox('mstv') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(10) ViewId;
unsigned int(3) TemporalId;
unsigned int(2) reserved;
}
}
Список пар идентификатора ракурса и временного идентификатора задает части дорожки, которые принадлежат поддорожке. Комбинация ракурса и временного идентификатора определяет MVC слой. Поэтому каждая такая пара идентификаторов, перечисленная в поле ракурса MVC поддорожки, определяет одну MVC рабочую точку. Совокупность различных пар значений идентификаторов и, следовательно, совокупность MVC ракурсов при определенном временном разрешении описывает поддорожку, определенную этим полем.
Item_count подсчитывает число пар идентификатора ракурса и временного идентификатора, перечисленных в поле, а идентификатор ракурса/временной идентификатор указывает значение идентификатора в MVC NAL заголовке блока.
В альтернативном варианте воплощения поле ракурса MVC поддорожки перечисляет только идентификатор ракурса без временного идентификатора. Тогда определение поддорожки включает в себя все MVC слои с указанным идентификатором ракурса
Поле уровня MVC поддорожки
Определение:
Тип поля: 'stti'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class SubTrackTierBox extends FullBox('stti') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(16) tierId;
}
}
Совокупность идентификаторов уровня в этом поле описывает поддорожку, определенную полем. Уровень является в этом случае MVC уровнем.
Item_count подсчитывает, число уровней, описанных в этом поле уровня поддорожки, а tierId дает идентификатор уровня(ней), который содержится в поддорожке.
Поле мультиракурсной группы MVC поддорожки
Определение:
Тип поля: 'stmg'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class MVCSubTRckMultiviewGroupBox extends FullBox('stmg') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(16) MultiviewGroupId;
}
}
Совокупность идентификаторов мультиракурсных групп в поле описывает поддорожку, определенную полем. Item_count подсчитывает число мультиракурсных групп, описанных в поле, а идентификатор мультиракурсной группы дает идентификатор(ы) мультиракурсной группы(групп), которая содержится в поддорожке. Идентификатор мультиракурсной группы предпочтительно является идентификатором мультиракурсной группы, определенной в формате MVC файлов.
Поле группы фрагментов данных MVC поддорожки
Определение:
Тип поля: 'stsg'
Контейнер: Поле определения поддорожки ('strd')
Обязательный: Нет
Количество: Нуль или больше
Синтаксис:
aligned(8) class SubTrackSampleGroupBox extends Fullbox('stsg') {
unsigned int(16) item_count;
for (i = 0; i < item_count; i++) {
unsigned int(16) groupId;
}
}
В этом варианте воплощения группы фрагментов данных используются непосредственно вместо уровней для разделения дорожки на поддорожки. Группы фрагментов данных могут также использоваться совместно с группами отображения.
Item_count подсчитывает число групп фрагментов данных, описанных в этом поле уровня поддорожки, а groupId дает идентификатор записи о группе. Идентификаторы группы имеют произвольные значения, но они являются уникальными для групп фрагментов данных.
Приведенные выше варианты воплощения являются примерами того, как могут быть определены MVC поддорожки. Любой из этих вариантов воплощения может использоваться в мультимедийном контейнерном файле 1.
Альтернативное решение для MVC данных возможно при использовании уровней или экстракторов в мультимедийном контейнерном файле 1. Группирование уровней выполняется в формате MVC файла. Чтобы сгруппировать уровни на основе содержания, добавляется новое поле группы переключения ('swgr') к основному определению уровня. В таком случае разрешено переключение между уровнями, то есть наборами рабочих точек, которые принадлежат одной и той же группе содержания. Переключение между уровнями, которые принадлежат различным группам содержания, запрещено. Это альтернативное решение не нуждается в определении поддорожек. Вместо этого оно модифицирует определение уровня. Недостаток этого решения состоит в том, что оно менее универсально, чем использование поддорожек в явной форме.
Поле группы переключения
Определение:
Тип поля: 'swgr'
Контейнер: Запись о мультиракурсной группе
Обязательный: Нет
Количество: Нуль или одно
Синтаксис:
aligned(8) class SwitchGroupBox extends Box('swgr') {
unsigned int(32) content_group = 0;
}
Content_group является целым числом, которое указывает группу или набор уровней, которые имеют одно и то же содержание. Если это поле равно 0 или поле группы переключения отсутствует, то дорожка принадлежит по умолчанию группе 0 содержания. Переключение может происходить между уровнями, которые принадлежат одной и той же группе содержания, но запрещено между уровнями, которые принадлежат различным группам. Группа содержания предпочтительно содержит только один элемент. Таким образом, conten_group является в этом случае примером информации о выборе, которая может быть присвоена поддорожкам согласно варианту воплощения.
Поле группы переключения является необязательным и присутствует в основном определении уровня. Поле группы переключения может быть добавлено к масштабируемой записи о группе согласно следующему примеру:
aligned(8) class MultiviewGroupEntry extends VisualSampleGroupEntry('scif') {
unsigned int(8) groupId;
unsigned int(8) primary_groupId;
unsigned int(4) reserved = 0;
unsigned int(1) is_tl_switching_point;
unsigned int(3) reservered = 0;
unsigned int(8) tl_switching_distance;
if (groupId == primary_groupId) // основное определение уровня
{
ViewIdentifierBox(); // обязательный
TierInfoBox(); // обязательный
TierDependencyBox(); // обязательный
SVCPriorityRangeBox(); // обязательный
TierBitRateBox(); // необязательный
BufferingBox(); // необязательный
InitialParameterSetBox(); // необязательный
ProtectionSchemeInfoBox(); // необязательный
ViewPriorityBox(); // необязательный
SwitchGroupBox(); // необязательный
}
}
Описанное выше устройство мультимедийного контейнерного файла в виде различных полей, определяющих данные мультимедиа, содержащих данные мультимедиа и идентифицирующих поддорожки и идентификаторы группы альтернатив/переключения, должно рассматриваться как конкретная реализация варианта воплощения. Другие организации данных мультимедиа и описательной информации (метаданных), упомянутые выше, могут альтернативно использоваться в других вариантах воплощения.
Фиг. 9 представляет собой схематический общий вид сети связи, который изображает стороны, создающие или использующие мультимедийный контейнерный файл 1. Сервер 100 мультимедийного содержания представляет поставщика или создателя информационных ресурсов, который получает или имеет доступ к данным мультимедиа и создает мультимедийный контейнерный файл 1. Копия этого мультимедийного контейнерного файла 1 отправляется на сервер 200 обработки данных мультимедиа, который использует мультимедийный контейнерный файл 1 в мультимедийном сеансе для компилирования пакетов данных, содержащих данные мультимедиа, которые передаются (групповая передача) различным клиентам 300, 310, 320, которые представлены на чертеже в виде мобильных терминалов. В одном варианте воплощения сеть связи может быть так называемой фирменной сетью, имеющей сетевого оператора. Примером такой сети связи является беспроводная основанная на радио сеть связи, оказывающая услуги связи мобильным телефонам.
На чертеже сервер 100 мультимедийного содержания и сервер 200 обработки данных мультимедиа были изображены как отдельные серверы, которые выгодно расположены в различных узлах сети связи, например, это базовые станции. В альтернативном подходе работа этих двух серверов 100, 200 может на самом деле концентрироваться в одном узле сети, в этом случае один и тот же сервер выполняет работу сервера 100 мультимедийного содержания и сервера 200 обработки данных мультимедиа.
Фиг. 10 представляет собой блок-схему сервера 100 мультимедийного содержания согласно варианту воплощения. Сервер 100 мультимедийного содержания содержит передатчик и приемник 110 или общий приемопередатчик (TX/RX). Приемник, в частности, предназначен для получения входного информационное мультимедийного содержания и для получения запросов на мультимедийные контейнерные файлы. Передатчик, соответственно, в частности, используется сервером 100 мультимедийного содержания при передаче таких мультимедийных контейнерных файлов на другие серверы в сети связи. Передатчик/приемник 110, изображенный на чертеже, имеет функциональность, требуемую для обеспечения передачи и приема данных, которая хорошо известна в области техники и включает, среди прочего, модулятор/демодулятор, кодер/декодер и т.д. В случае проводной передачи данных передатчик/приемник 110 может быть заменен на общий блок ввода и вывода (I/O), который выполняет аналогичные функции передачи/получения, что и передатчик/приемник 110.
Сервер 100 мультимедийного содержания содержит мультимедийного поставщика 160, который предназначен для предоставления данных мультимедиа, которые будут организованы в мультимедийный контейнерный файл. Мультимедийный поставщик 160 может получать фактические данные мультимедиа из удаленного, но присоединенного мультимедийного источника или механизма 400, 410, возможно, через передатчик 110. В соответствии с другим вариантом воплощения данные мультимедиа заранее обеспечиваются для сервера 100 мультимедийного содержания и сохраняются в хранилище 170 данных. Тогда мультимедийный поставщик 160 получает соответствующие данные мультимедиа из хранилища 170. В дополнительном варианте воплощения мультимедийный поставщик 160 фактически генерирует данные мультимедиа непосредственно и поэтому содержит оборудование для генерации и/или записи мультимедийных данных.
Данные мультимедиа от мультимедийного поставщика 160 отправляются организатору 120 данных, который организует данные мультимедиа в мультимедийный контейнерный файл, например в контейнер данных мультимедиа, изображенный на фиг. 8. Обеспеченные и организованные данные мультимедиа определяются мультимедийной дорожкой в мультимедийном контейнерном файле, как это было описано ранее, и содержат множество частей данных, задающие соответствующие подпотоки.
Поставщик 140 информации о поддорожке реализован в сервере 100 мультимедийного содержания для предоставления информации о поддорожке в мультимедийном контейнерном файле. Эта информация о поддорожке обеспечивает идентификацию части организованных данных мультимедиа, которая принадлежит определенной поддорожке мультимедийной дорожки. Таким образом, каждая из множества поддорожек, определенных мультимедийной дорожкой, содержит соответствующую информацию о поддорожке для идентификации соответствующей части данных мультимедиа, к которой относится поддорожка.
Сервер 100 мультимедийного содержания также содержит поставщика 130 информации о выборе, который предоставляет информацию о выборе по меньшей мере для одной поддорожки в мультимедийном контейнерном файле. Информация о выборе определяет выборочную обработку части данных мультимедиа, определенной этой по меньшей мере одной поддорожкой, по отношению к другим данным мультимедиа, организованным в мультимедийном контейнерном файле как это было описано ранее.
Поставщик 130 информации о выборе в некоторых случаях содержит поставщика 132 идентификатора группы альтернатив, который реализован для предоставления идентификатора группы альтернатив поддорожки по меньшей мере одной поддорожке в мультимедийном контейнерном файле. В таком случае этот идентификатор группы альтернатив применим к определенным поддорожкам, тогда как другие поддорожки, которые содержатся в той же мультимедийной дорожка, имеет собственные идентификаторы группы альтернатив или совместно используют или наследуют идентификатор группы альтернатив, который присвоен необязательным поставщиком 150 информацией о выборе дорожки всей мультимедийной дорожке целиком.
Дополнительный поставщик 134 идентификатора группы переключения поставщика 130 информации о выборе реализован для предоставления идентификатора группы переключения поддорожки по меньшей мере одной поддорожке в мультимедийном контейнерном файле. Поставщик 134 идентификатора группы переключения может присвоить соответствующие идентификаторы группы переключения всем поддорожкам мультимедийной дорожки или только их части. В последнем случае поддорожки, которым не присвоены идентификаторы групп переключения, предпочтительно используют идентификатор группы переключения, присвоенный поставщиком 150 информации о выборе дорожки всей мультимедийной дорожке целиком.
Ввод к поставщику 130 информации о выборе, используемого для определения значений информации о выборе, предпочтительно идентификаторов групп альтернатив и/или переключения, может идти от создателя содержания, который знает, какие поддорожки должны быть альтернативными другим поддорожкам/дорожкам в мультимедийном контейнерном файле и среди каких поддорожек/дорожек должно быть позволено или запрещено переключение. В соответствии с другим вариантом воплощения изобретения поставщик 130 информации о выборе может автоматически определять эти значения на основе информации предоставленных данных мультимедиа. Например, поставщик информации о выборе может быть предварительно сконфигурирован предотвращать переключение между обычной и премиум версиями содержания, между данными мультимедиа, закодированными различными кодеками, между данными мультимедиа с различными аудиоязыками, но, например, позволять переключаться между информационным содержанием, доступным в различном качестве.
Сервер 100 мультимедийного содержания выгодно подходит для обработки SVC и MVC данных. Поставщик 140 информации о поддорожке в этом случае предназначен для предоставления информации о поддорожке, определяющей части данных мультимедиа, которые должны быть организованы в виде различных поддорожек, соответствующих базовому и слоям улучшения или базовому и дополнительному ракурсам для содержания.
Поставщик 150 информации о выборе дорожки может присвоить информацию о выборе дорожки, например идентификатор группы альтернатив и/или переключения, которая применима ко всей мультимедийной дорожке и имеет предопределенное значение, например нуль, указывая, что мультимедийная дорожка содержит множество поддорожек как было описано ранее.
Блоки 110 - 160 сервера 100 мультимедийного содержания могут быть реализованы или обеспечены в виде программного обеспечения, аппаратных средств или их комбинации. В случае основанной на программном обеспечении реализации, компьютерный программный продукт, реализующий сервер 100 мультимедийного содержания, или его часть содержит программное обеспечение или компьютерную программу, которая работает на универсальном или специально приспособленном компьютере, процессоре или микропроцессор. Программное обеспечение содержит элементы кода компьютерной программы или части программного кода, изображенные на фиг. 10. Программа может быть сохранена полностью или частью на или в одном или более подходящих машиночитаемых носителях или средствах хранения данных, таких как магнитные диски, компакт-диски, предназначенные только для чтения (CD_ROM), DVD диски, USB память, жесткие диски, магнитооптическая память, в оперативной или кратковременной памяти, в постоянном запоминающем устройстве (ПЗУ; ROM) или флэш-памяти, в виде встроенного микропрограммного обеспечения или на сервере данных.
Все блоки 110 - 170 могут быть реализованы в сервере 100 мультимедийного содержания в одном узле сети системы связи. В соответствии с другим вариантом воплощения изобретения также возможна и находится в рамках изобретения распределенная реализация. В таком случае различные блоки 110-170 сервера 100 мультимедийного содержания могут быть расположены в различных узлах сети, но несмотря на это будут выполнять предназначенные действия как описано выше.
Фиг. 11 представляет собой блок-схему последовательности операций, которая изображает способ обработки данных мультимедиа согласно варианту воплощения с использованием мультимедийного контейнерного файла. В одном варианте воплощения обработка может проводиться сервером обработки данных мультимедиа в сети связи, который получает мультимедийный контейнерный файл от сервера мультимедийного содержания как изображено на фиг. 9.
Способ начинает с этапа S40, где обеспечивается мультимедийный контейнерный файл как это раскрыто в настоящем документе. Обеспечение файла на этапе S40 может быть проведено согласно различным вариантам воплощения. Например, мультимедийный контейнерный файл получают от сервера мультимедийного содержания по проводу или беспроводным образом соединенного с сервером обработки данных мультимедиа. В соответствии с другим вариантом воплощения изобретения мультимедийный контейнерный файл может быть получен заранее с удаленного сервера мультимедийного содержания и поэтому получен на этапе S40 из хранилища данных. В еще одном варианте воплощения мультимедийный контейнерный файл фактически создается на этапе S40, когда ранее упомянутый сервер мультимедийного содержания и сервер обработки данных мультимедиа организованы в единый медиасервер.
Следующий этап S41 выбирает поддорожку из множества поддорожек, определенных в мультимедийном контейнерном файле. Выбор поддорожки выполняется на основании идентификатора группы альтернатив, присвоенном поддорожке и представленном в мультимедийном контейнерном файле. Следовательно, в этом случае мультимедийный контейнерный файл определяет группу альтернатив, содержащую множество дорожек/поддорожек, которым присвоено одно и то же значение идентификатора группы альтернатив. Следовательно, поддорожки или поддорожка(ки) и дорожка(ки) составляют альтернативы для использования в мультимедийном сеансе. Этап выбора S41 проводится при установлении мультимедийного сеанса.
Следующий этап S42 извлекает часть данных мультимедиа из мультимедийного контейнерного файла, определенных поддорожкой. Это извлечение данных выполняется на основе информации о поддорожке, включенной в мультимедийный контейнерный файл и обеспечивающей идентификацию части данных мультимедиа, организованных в мультимедийном контейнерном файле, которая соответствует выбранной поддорожке. Полученные данные мультимедиа компилируются в пакеты данных на этапе S42 и передаются по меньшей мере на один терминал клиента или пользователя во время мультимедийного сеанса на этапе S43.
На этом способ завершается.
Фиг. 12 представляет собой блок-схему последовательности операций, которая изображает способ обработки данных мультимедиа согласно другому аспекту изобретения. В этом случае мультимедийный сеанс был уже начат и дорожка или поддорожка уже была выбрана при установлении мультимедийного сеанса. В этом случае способ продолжает с этапа S43 фиг. 11 и следующий этап S50 переключает поток в ходе текущего мультимедийного сеанса. Следовательно, этап S50 включает в себя выбор поддорожки, определенной в мультимедийном контейнерном файле, на основании идентификатора группы переключения, присвоенного поддорожке. Выбранная поддорожка принадлежит той же группе альтернатив, что и дорожка или поддорожка, которая была первоначально выбрана при установлении мультимедийного сеанса. Кроме того, выбранная поддорожка также имеет такое же значение идентификатора группы переключения, что и эта дорожка или поддорожка, и, таким образом, принадлежит той же группе переключения. Выбранная поддорожка предпочтительно относится к тому же содержанию, что и исходная дорожка или поддорожка, и может, например, относится к другому слою в случае SVC данных или другому ракурсу в случае MVC данных.
Переключение потоков на этапе S50 может запускаться согласно различным вариантам воплощения. Например, запрос или входной сигнал, исходящий от терминала пользователя, на который передаются пакеты данных, могут активировать критерий переключения. В соответствии с другим вариантом воплощения информация о качестве или мощности сигнала, оцененная сервером обработки данных мультимедиа и/или терминалом пользователя, может использоваться для запуска переключения потоков на этапе S50. Фактически согласно вариантам воплощения может использоваться любая процедура, известная в области техники, для запуска переключения между дорожками для переключения с одной поддорожку на другую поддорожку, с дорожки на поддорожку или с поддорожки на дорожку или, согласно предшествующему уровню техники, с одной дорожки на другую дорожку. Также может использоваться любая известная процедура для переключения с одного SVC слоя на другой слой или с одного MVC на другой ракурс.
Следующий этап S51 извлекает часть данных мультимедиа, соответствующую выбранной поддорожке из мультимедийного контейнерного файла. Это извлечение выполняется на основании информации о поддорожке, соответствующей выбранной поддорожке и включенной в мультимедийный контейнерный файл. Полученные данные мультимедиа также организуются в пакеты данных. Этот этап S51 выполняется подобно этапу S42 фиг. 11. Следующий этап S52 передает пакеты данных по меньшей мере на один терминал пользователя, участвующего в текущем мультимедийном сеансе. Способ на этом заканчивается.
Фиг. 13 представляет собой блок-схему, которая изображает вариант воплощения сервера 200 обработки данных мультимедиа. Сервер 200 обработки данных мультимедиа включает в себя передатчик/приемник 210, обеспечивающий возможность проводить связь с внешними модулями. Приемник 210, в частности, обеспечивает возможность получать мультимедийный контейнерный файл от сервера мультимедийного содержания за исключением случаев, когда мультимедийный контейнерный файл создается поставщиком 220 контейнера сервера 200 обработки данных мультимедиа. Передатчик 210, в частности, обеспечивает возможность передачи пакетов данных, несущих данные мультимедиа, полученные из мультимедийного контейнерного файла, на один или более терминал пользователя в мультимедийном сеансе.
Поставщик 220 контейнера обеспечивает мультимедийный контейнерный файл или из приемника 210 или из хранилища 250 данных, в котором ранее был сохранен мультимедийный контейнерный файл. В соответствии с другим вариантом воплощения поставщик 220 контейнера может на самом деле содержать функциональность сервера мультимедийного содержания, который обсуждался выше и изображен на фиг. 10, чтобы, таким образом, создавать мультимедийный контейнерный файл.
Селектор 230 дорожки сервера 200 обработки данных мультимедиа использует идентификаторы группы альтернатив, присвоенные дорожкам и поддорожкам в мультимедийном контейнерном файле, чтобы выбрать какую дорожку или поддорожку использовать при установлении мультимедийного сеанса. В предпочтительном варианте воплощения изобретения селектор 230 дорожки выбирает поддорожку среди множества поддорожек, относящихся к одному и тому же содержанию и определяемых в мультимедийном контейнерном файле, как это раскрыто выше. Селектор 230 дорожки начинает действовать в связи с установлением мультимедийного сеанса и, таким образом, выбирает начальную дорожку/поддорожку, с которой начинается мультимедийный сеанс.
Компилятор 240 пакетов получает данные мультимедиа, соответствующие дорожке/поддорожке, выбранной селектором 230 дорожки. В предпочтительном варианте воплощения когда поддорожка выбрана, информация о поддорожке, соответствующая выбранной поддорожке и содержащаяся в мультимедийном контейнерном файле, используется для идентификации части данных мультимедиа для получения в мультимедийном контейнерном файле. Данные мультимедиа организуются и компилируются в пакеты данных, которые передаются по меньшей мере к одному терминалу пользователя передатчиком 210.
В ходе текущего мультимедийного сеанса селектор 230 дорожки может переключать на другую поддорожку или дорожку, относящуюся к тому же содержанию, что и первоначальная поддорожка или дорожка. Селектор 230 дорожки выполняет такое переключение на основании идентификатора группы переключения, присвоенном дорожкам и поддорожкам в мультимедийном контейнерном файле, как это описано выше. Затем компилятор 240 пакетов получает данные мультимедиа, соответствующие недавно выбранной поддорожке или дорожке, и компилирует данные мультимедиа в пакеты данных, которые передаются передатчиком 210.
Блоки 210-240 сервера 200 обработки данных мультимедиа могут быть реализованы или обеспечены в виде программного обеспечения, аппаратных средств или их комбинации. В случае основанной на программном обеспечении реализации компьютерный программный продукт, реализующий сервер 200 обработки данных мультимедиа, или его часть содержит программное обеспечение или компьютерную программу, которая работает на универсальном или специально приспособленном компьютере, процессоре или микропроцессоре. Программное обеспечение содержит элементы кода компьютерной программы или части программного кода, изображенные на фиг. 13. Программа может быть сохранена полностью или частью на или в одном или более подходящих машиночитаемых носителях или средствах хранения данных, таких как магнитные диски, компакт-диски, предназначенные только для чтения (CD_ROM), DVD диски, USB память, жесткие диски, магнитооптическая память, в оперативной или кратковременной памяти, в ПЗУ или флэш-памяти, в виде встроенного микропрограммного обеспечения или на сервере данных.
Все блоки 210-250 могут быть реализованы в сервере 200 обработки данных мультимедиа в одном узле сети системы связи. В соответствии с другим вариантом воплощения изобретения также возможна и находится в рамках изобретения распределенная реализация. В таком случае различные блоки 210 - 250 сервера 200 обработки данных мультимедиа могут быть расположены в различных узлах сети, но несмотря на это будут выполнять предназначенные действия как описано выше.
Варианты воплощения, описанные выше, следует понимать как несколько наглядных примеров настоящего изобретения. Специалистами в области техники понятно, что различные модификации, комбинации и изменения могут быть внесены в варианты воплощения, не отступая от объема настоящего изобретения. В частности, различные решения для частей в различных вариантах воплощения могут комбинироваться в других конфигурациях, где это технически возможно. Объем настоящего изобретения, однако, определен в прилагаемой формуле изобретения.
ССЫЛКИ
1. ISO/IEC 14496-12:2008, Информационная технология - Кодирование аудиовизуальных объектов - Часть 12: Базовый формат мультимедийных файлов ISO.
2. ISO/IEC 14496-15:2004, Информационная технология - Кодирование аудиовизуальных объектов - Часть 15: Формат файла усовершенствованного кодирования видео (AVC).
3. ISO/IEC 14496-15:2004/Amd 2:2008, Информационная технология - Кодирование аудиовизуальных объектов - Часть 15: Формат файла усовершенствованного кодирования видео (AVC); Поправка 2: Поддержка масштабируемого видеокодирования (SVC) в формате файла.
4. ISO/IEC 14496-15:2004/FPDAmd 3, Информационная технология - Кодирование аудиовизуальных объектов - Часть 15: Формат файла усовершенствованного кодирования видео (AVC); Поправка 3: Поддержка мультиракурсного видеокодирования в формате файла.
5. ISO/IEC 14496-10:2009, Информационная технология - Кодирование аудиовизуальных объектов - Часть 10: Усовершенствованное кодирование видео