ПЕРЕДАЮЩЕЕ УСТРОЙСТВО, СПОСОБ ПЕРЕДАЧИ, ПРИЕМНОЕ УСТРОЙСТВО И СПОСОБ ПРИЕМА
TRANSMITTING DEVICE, TRANSMITTING METHOD, RECEIVER AND RECEIVING METHOD

Область техники, к которой относится изобретение
Настоящая технология относится к передающим устройствам, способам передачи, приемным устройствам и способам приема, и более конкретно, к передающему устройству, которое передает медиа для транспортировки, такое как видео, аудио и т.п., через RF канал связи или канал связи сети связи и т.п.
Уровень техники
MPEG2-TS традиционно используется в качестве транспортной структуры для широковещательной передачи, как описано в патентной литературе 1, например.
Перечень цитируемой литературы
Патентная литература
Патентная литература 1: JP 2011-217161А
Раскрытие изобретения
Техническая задача
Структура транспорта для медиа MPEG (ММТ) в последние годы стала привлекательной в качестве транспортной структуры для широковещания следующего поколения. Основной особенностью структуры ММТ является ее совместимость с сетями IP.
Задача настоящей технологии состоит в том, чтобы обеспечить надежную передачу информации о времени для получения времени декодирования и/или времени представления в приемник в транспортной структуре для широковещания следующего поколения.
Решение технической задачи
Концепцией настоящей технологии является передающее устройство, включающее в себя: блок генерирования транспортного потока, выполненный с возможностью генерирования транспортного потока, в котором первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с временным разделением; блок передачи транспортного потока, выполненный с возможностью передачи транспортного потока на приемник через заданный канал передачи; и блок вставки информации о времени, выполненный с возможностью вставки информации о времени, обеспечивающей получение приемником времени декодирования и/или времени представления в первом транспортном пакете или во втором транспортном пакете.
В настоящей технологии блок генерирования транспортного потока генерирует транспортный поток. В транспортном потоке первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с временным разделением. Например, первый транспортный пакет и второй транспортный пакет могут представлять собой пакеты ММТ. Блок передачи транспортного потока передает транспортный поток в приемник через заданный канал передачи. Например, заданный канал передачи может представлять собой RF канал передачи или канал передачи сети связи.
Блок вставки информации о времени вставляет информацию о времени, которая позволяет приемнику получать время декодирования и/или время представления в первом транспортном пакете или во втором транспортном пакете. Например, медиа для транспортировки, которое содержится в первом транспортном пакете, может включать в себя одно или более устройств доступа, и информация о времени, вставленная с помощью блока вставки информации о времени, может представлять собой информацию, которая позволяет получить время декодирования и/или время представления, которые соответствуют каждому из одного или более блоков доступа.
В этом случае информация о времени, вставленная с помощью блока вставки информации о времени, может иметь значение времени декодирования или времени представления, соответствующее начальному блоку доступа из одного или более блоков доступа, и значение смещения от времени декодирования до времени представления, каждое из которых соответствует каждому блоку доступа. Это использование значения смещения позволяет обеспечить эффективную доставку информации о времени. Кроме того, в этом случае информация о времени, вставленная с помощью блока вставки информации о времени, может представлять собой время представления или время представления и время декодирования, которые соответствуют каждому из одного или более блоков доступа. Эта доставка непосредственно времени представления или непосредственно времени представления и времени декодирования позволяет уменьшить нагрузку на обработку, выполняемую в приемнике.
В этом случае значение смещения может представлять собой значение относительного смещения, соответствующее абсолютному значению смещения, и информацию о преобразовании для преобразования значения относительного смещения в значение абсолютного смещения можно добавить в информацию о времени, вставленную с помощью блока вставки информации о времени. Это использование значения относительного смещения позволяет обеспечить эффективную доставку значения смещения в приемник. Например, блок вставки информации о времени позволяет вставить значение относительного смещения после кодирования переменной длины. Это использование кодирования переменной длины позволяет уменьшить пропускную способность передачи информации о времени.
Например, полезная нагрузка первого транспортного пакета может включать в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, и блок вставки информации о времени позволяет вставить информацию о времени в часть заголовка полезной нагрузки. Например, полезная нагрузка первого транспортного пакета может включать в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, причем в части тела полезной нагрузки полезные нагрузки фрагментов, каждые из которых содержат один или более блоков доступа, полученных путем фрагментирования медиа для транспортировки, можно обеспечить вместе с заголовками фрагментов, и блок вставки информации о времени позволяет вставить в заголовок фрагмента или в полезную нагрузку фрагмента информацию о времени соответствующего блока доступа. Например, полезная нагрузка второго транспортного пакета может включать в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, и блок вставки информации о времени позволяет вставить информацию о времени в часть тела полезной нагрузки.
Таким образом, в настоящей технологии информация о времени, которая позволяет приемнику получить время декодирования и время представления, вставляется в первый транспортный пакет или во второй транспортный пакет, и в транспортной структуре для широковещания следующего поколения информацию о времени для получения времени декодирования и/или времени представления можно надежным образом доставить в приемник.
Другая концепция настоящей технологии представляет собой приемное устройство, включающее в себя: блок приема транспортного потока, выполненный с возможностью приема транспортного потока, в котором первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с временным разделением, из передатчика через заданный канал передачи. Информация о времени для получения времени декодирования и/или времени представления вставляется в первый транспортный пакет или во второй транспортный пакет. Приемное устройство дополнительно включает в себя блок обработки медиа для транспортировки, выполненный с возможностью обработки медиа для транспортировки, извлеченного из транспортного потока с использованием времени декодирования и/или времени представления, которые получаются на основании информации о времени.
В настоящей технологии блок приема транспортного потока принимает транспортный поток из передатчика через заданный канал передачи. В транспортном потоке первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с временным разделением. Информация о времени для получения времени декодирования и/или времени представления вставляется в первый транспортный пакет или во второй транспортный пакет. Блок обработки медиа для транспортировки обрабатывает медиа для транспортировки, извлеченное из транспортного потока с использованием времени декодирования и/или времени представления, которые получают на основании информации о времени.
Например, медиа для транспортировки, которое содержится в первом транспортном пакете, может включать в себя одно или более устройств доступа, информация о времени может представлять собой значение времени декодирования или времени представления, соответствующее начальному блоку доступа одного или более блоков доступа, и значение относительного смещения, соответствующее значению абсолютного смещения от времени декодирования до времени представления, каждое из которых соответствует каждому блоку доступа, и приемное устройство может дополнительно включать в себя блок преобразования значения смещения, выполненный с возможностью преобразования значения относительного смещения в значение абсолютного смещения.
Таким образом, в настоящей технологии информация о времени для получения времени декодирования и/или времени представления вставляется в первый транспортный пакет или второй транспорт. Время декодирования и/или время представления можно получить на основании информации о времени, и можно надежным образом обработать транспортируемое медиа, извлеченное из транспортного потока.
Полезные эффекты изобретения
Согласно настоящей технологии в транспортной структуре для широковещания следующего поколения, информацию о времени для получения времени декодирования и/или времени представления можно надежным образом доставить в приемник. Следует отметить, что преимущества, описанные в данном документе, предназначены только для иллюстративных целей и не предназначены для ограничения, и возможны дополнительные преимущества.
Краткое описание чертежей
Фиг. 1 - блок-схема, показывающая примерную конфигурацию приемопередающей системы согласно варианту осуществления.
Фиг. 2 - схема, схематично показывающая конфигурацию полезной нагрузки ММТ.
Фиг. 3 - схема, показывающая примерную взаимосвязь соответствия между файлом ММТ и другую примерную взаимосвязь соответствия между файлом ММТ и фактически доставленными пакетами ММТ.
Фиг. 4 - схема, показывающая другую примерную взаимосвязь соответствия между файлом ММТ и фактически доставленными пакетами ММТ.
Фиг. 5 - схема, показывающая еще одну примерную взаимосвязь соответствия между файлом ММТ и фактически доставленными пакетами ММТ.
Фиг. 6 - схема, предназначенная для описания случая, где пакет ММТ, содержащий MFU, который является фрагментом, представляет собой транспортный пакет, и пакет ММТ представляет собой головной пакет (головную часть GOP) произвольного доступа.
Фиг. 7 - схема, предназначенная для описания случая, где пакет ММТ, содержащий MFU, который является фрагментом, представляет собой транспортный пакет, и пакет ММТ представляет собой неголовной пакет произвольного доступа.
Фиг. 8 - схема, предназначенная для описания случая, где пакет ММТ, содержащий MFU, который является фрагментом, представляет собой транспортный пакет, и пакет ММТ представляет собой головной пакет (головную часть GOP) произвольного доступа.
Фиг. 9 - схема, показывающая конфигурацию пакета ММТ в форме дерева.
Фиг. 10 - концептуальная схема устройства транспортировки пакетов передачи и устройства приема транспортных пакетов.
Фиг. 11 - схема, показывающая "сокращенный формат NTP".
Фиг. 12 - схема, предназначенная для описания информации о времени в случае, где медиаданные представляют собой видео, и начальное значение представляет собой время декодирования.
Фиг. 13 - схема, предназначенная для описания информации о времени в случае, где медиаданные представляют собой видео, и начальное значение представляет собой время.
Фиг. 14 - схема, предназначенная для описания информации о времени в случае, где медиаданные представляют собой аудио, и начальное значение представляет собой время декодирования.
Фиг. 15 - блок-схема, показывающая примерную конфигурацию блока декодирования/вывода.
Фиг. 16 - временная диаграмма, показывающая примерное управление синхронным воспроизведением AV в блоке управления.
Фиг. 17 - схема, предназначенная для описания случая, где пакет, который представляет собой фрагмент MFU, отбрасывается во время передачи пакета.
Фиг. 18 - схема, схематично иллюстрирующая примерный способ вставки информации о времени в пакет ММТ.
Фиг. 19 - схема, показывающая примерную конфигурацию пакета в случае, где вставлена информация о времени (временная метка), соответствующая каждому блоку доступа, чтобы уменьшить задержку передачи/приема.
Фиг. 20 - схема, показывающая примерную структуру всего пакета ММТ.
Фиг. 21 - схема, показывающая примерную структуру заголовка пакета ММТ (mmtp_header()).
Фиг. 22 - схема, показывающая примерную структуру заголовка полезной нагрузки ММТ (mmtp_payload_header()).
Фиг. 23 - схема, показывающая примерную структуру расширения заголовка полезной нагрузки ММТ (mmtp_payload_header_extension()).
Фиг. 24 - схема, показывающая семантику основной информации примерной структуры расширения заголовка полезной нагрузки ММТ.
Фиг. 25 - схема, показывающая другую примерную структуру расширения заголовка полезной нагрузки ММТ (mmtp_payload_header_extension()).
Фиг. 26 - схема, показывающая семантику основной информации другой примерной структуры расширения заголовка полезной нагрузки ММТ.
Фиг. 27 - схема, предназначенная для описания случая, где информации о времени передается в полезной нагрузке MPU для каждого блока доступа, который является фрагментом.
Фиг. 28 - схема, показывающая примерную структуру (синтаксис) MFU.
Фиг. 29 - схема, показывающая примерную структуру заголовка MFU (mfu_header()).
Фиг. 30 - схема, показывающая примерную структуру заголовка MFU (mfu_header()).
Фиг. 31 - схема, показывающая семантику основной информации примерной структуры заголовка MFU.
Фиг. 32 - схема, показывающая примерную структуру расширения заголовка MFU (mfu_header_extension()).
Фиг. 33 - схема, показывающая семантику основной информации примерной структуры расширения заголовка MFU.
Фиг. 34 - схема, показывающая примерную структуру заголовка MFU (mfu_header()) в случае, где информация о времени вставлена в полезную нагрузку MFU.
Фиг. 35 - схема, показывающая примерную структуру заголовка MFU (mfu_header()) в случае, где информация о времени вставлена в полезную нагрузку MFU.
Фиг. 36 - схема, показывающая семантику основной информации примерной структуры заголовка MFU в случае, где информация о времени вставлена в полезную нагрузку MFU.
Фиг. 37 - схема, показывающая примерную структуру полезной нагрузки MFU (mfu_payload()) и семантику основной информации.
Фиг. 38 - схема, показывающая другую примерную структуру заголовка MFU (mfu_header()) в случае, где информация о времени вставлена в полезную нагрузку MFU.
Фиг. 39 - схема, показывающая другую примерную структуру заголовка MFU (mfu_header()) в случае, где информация о времени вставлена в полезную нагрузку MFU.
Фиг. 40 - схема, показывающая семантику основной информации другой примерной структуры заголовка MFU в случае, где информация о времени вставлена в полезную нагрузку MFU.
Фиг. 41 - схема, показывающая примерную структуру полезной нагрузки MFU (mfu_payload()).
Фиг. 42 - схема, показывающая семантику основной информации примерной структуры полезной нагрузки MFU.
Фиг. 43 - схема, показывающая примерную структуру (синтаксис) сообщения временной метки.
Фиг. 44 - схема, показывающая примерную структуру (синтаксис) таблицы временных меток (timestamp_table()).
Фиг. 45 - схема, показывающая примерную структуру (синтаксис) сообщения доступа к пакету.
Фиг. 46 - схема, показывающая примерную взаимосвязь соответствия между временем декодирования D(n) и временем представления R(n) блока доступа AU(n).
Фиг. 47 - схема, показывающая примерную таблицу кода переменной длины для выполнения кодирования переменной длины в отношении временного ряда значений смещения.
Фиг. 48 - схема, показывающая, что при увеличении расстояния M переупорядочения увеличивается эффективность уменьшения пропускной способности вследствие кодирования переменной длины.
Осуществление изобретения
Описание вариантов осуществления
Ниже приводится описание вариантов осуществления (именуемых в дальнейшем "варианты осуществления"), предназначенных для выполнения настоящего изобретения. Следует отметить, что описание будет предоставлено в следующем порядке.
1. Варианты осуществления
2. Изменения
1. Варианты осуществления
Примерная конфигурация приемопередающей системы
На фиг. 1 показана примерная конфигурация приемопередающей системы 10 в качестве варианта осуществления. Приемопередающая система 10 включает в себя устройство 100 передачи транспортных пакетов и устройство 200 приема транспортных пакетов.
Передающее устройство 100 генерирует транспортные пакеты со структурой ММТ (смотри ISO/IEC CD 23008-1), то есть транспортный поток, содержащий пакеты ММТ, и передает транспортный поток в приемник через РЧ канал передачи или канал передачи сети связи. В транспортном потоке первый пакет ММТ, содержащий медиа для транспортировки, такой как видео или аудио, в полезной нагрузке, и второй пакет ММТ, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с временным разделением с использованием по меньшей мере размера фрагментированного пакета. В этом варианте осуществления информация о времени, которая позволяет приемнику получать время декодирования и время представления, вставляется в первый пакет ММТ или во второй пакет ММТ.
Приемное устройство 200 принимает вышеупомянутый транспортный поток из передатчика через RF канал передачи или канал передачи сети связи. Приемное устройство 200 обрабатывает медиа для транспортировки, извлеченное из транспортного потока с использованием времени декодирования и/или времени представления, которые получаются на основании информации о времени, для отображения изображения и вывода звука.
На фиг. 2 схематично показана конфигурация полезной нагрузки ММТ. На фиг. 2 пакет ММТ представляет собой логическую концепцию ММТ и означает материал для транспортировки. Пакет ММТ содержит объекты, которые представляют собой медиа, характеристики доставки объекта, сообщения, сопровождающие пакет (доступ к пакету), информацию о таблице пакетов ММТ (MPT packet table), информацию о составе и т.п. Информация о составе представляет собой информацию, которая используется для выполнения управления представлением медиа. В этом примере Asset 1 (Объект 1) представляет собой данные видео 1, Asset 2 (Объект 2) - данные аудио 1, и Asset 3 (Объект 3) - данные видео 2.
На фиг. 2 показана примерная конфигурация файла в случае, где пакет ММТ представляет собой фактически файл ММТ. Эта конфигурация файла имеет конфигурацию в основном почти такую же, как и конфигурация файла МР4. В головной части имеется поле "styp". За ним следует поле "sidx" в качестве информации о сегменте. За ним следует поле "mmpu", которое является уникальным для ММТ. За ним следует поле "moov" в качестве метаданных всего файла. За ним также следует поле "moof" и поле "mdat". Поле "mdat" содержит фактические данные, такие как видео, аудио, субтитры или тому подобное. Следует отметить, что когда поле "mdat" фрагментировано, для каждого фрагмента предусмотрено поле "moof".
При доставке пакета ММТ пакет ММТ доставляется в блоках блоков обработки медиа (MPU), как показано на фиг. 2. MPU, который начинается с точки произвольного доступа (RAP), содержит один или множество блоков доступа (AU). В частности, например, одна группа картинок (GOP) может образовывать один MPU. Этот MPU определен для каждого объекта. Таким образом, MPU видео, которое содержит только видеоданные, генерируется из видеообъекта, и MPU аудио, которое содержит только аудиоданные, генерируется из аудиообъекта.
Как показано на фиг. 2, MPU и сообщение образуют полезную нагрузку ММТ. Сообщение содержит информацию, такую как вышеупомянутая информация о составе и тому подобное. Блоки фрагментов ММТ (MFU) получаются путем деления MPU, то есть путем фрагментирования MPU. Например, в случае видео MFU можно установить таким образом, чтобы он соответствовал одному блоку NAL. Кроме того, например, когда для передачи используется канал передачи сети связи, MFU может включать в себя один или множество размеров MTU.
Как показано на фиг. 2, полезная нагрузка ММТ доставляется в пакетах ММТ. Пакет ММТ включает в себя заголовок пакета ММТ и полезную нагрузку пакета ММТ. Кроме того, полезная нагрузка пакета ММТ включает в себя заголовок полезной нагрузки ММТ и данные полезной нагрузки ММТ. MPU или сообщение вставляется в данные полезной нагрузки ММТ.
MFU, полученные путем фрагментирования MPU объектов, мультиплексируются с временным разделением, как показано на фиг. 2. MPU представляет собой блок с некоторым продолжительным периодом времени, например 15 кадров или 30 кадров. Если каждый MPU не фрагментирован и не выполнено мультиплексирование с временным разделением, аудиоданные нельзя передавать во время некоторого продолжительного периода времени при передаче данных видео. Таким образом, большая емкость буфера требуется для того, чтобы регулировать временную синхронизации, и, в дополнение, существует большая задержка при выводе изображения или звука. Такую проблему можно решить путем фрагментирования каждого MPU и выполнения мультиплексирования с временным разделением.
На фиг. 3, фиг. 4 и фиг. 5 показана примерная взаимосвязь соответствия между файлом ММТ и пакетами ММТ, которые фактически доставлены. Как описано выше, файл ММТ имеет поля, такие как "styp", "sidx", "mmpu", "moov", "moof", "mdat" и т.п.
Пакет ММТ включает в себя заголовок пакета ММТ (ММТ Hdr) и полезную нагрузку ММТ. Заголовок ММТ содержит ГО пакета (packet_id), порядковый номер пакета (packet_sequence_number), временную метку передачи (transmission_timestamp), приоритет передачи (transmission_priority), данные частного пользователя (private_user_data) и т.п.
ID пакета представляет собой идентификатор для идентификации видео или аудиообъекта, или управляющее сообщение. Порядковый номер пакета представляет собой число, показывающее порядок пакетов. Временная метка передачи представляет собой типовую отметку для передачи, то есть время, когда пакет ММТ выводится из передатчика.
Приоритет передачи представляет собой уровень приоритета, который является индикатором для определения того, какой пакет ММТ передается с приоритетом, когда полоса пропускания канала передачи становится узкой. Данные частного пользователя представляют собой данные, которые пользователь может вставлять конфиденциальным образом для некоторого широковещательного применения. Полезная нагрузка ММТ включает в себя заголовок полезной нагрузки ММТ (ММТ Pl_hdr) и данные полезной нагрузки ММТ. Заголовок полезной нагрузки ММТ может содержать расширение заголовка полезной нагрузки.
Заголовок полезной нагрузки ММТ содержит длину полезной нагрузки, тип полезной нагрузки, тип фрагмента (fragmentation_indicator), подсчет фрагментов (fragment_count), флаг информации об агрегации (aggregation_info_flag), флаг RAP (random_accessjpoint_flag) и т.п.
Кроме того, заголовок полезной нагрузки ММТ содержит смещение данных (data_offset), номер блока данных (numDU), смещение блока данных (DU_offset), номер полезной нагрузки (payload_sequence_number), флаг области расширения заголовка (header_extension_field_flag) и т.п.
Длина полезной нагрузки представляет собой информацию о размере всей полезной нагрузки. Тип полезной нагрузки представляет собой информацию, показывающую, представляет ли собой полезная нагрузка MPU или характер управления (сообщение). Одна полезная нагрузка может содержать данные вплоть до 64 кбайт. Тип фрагмента представляет собой информацию, показывающую, может или нет одна полезная нагрузка вмещать в себя полный MPU.
Например, если полный MPU вмещается, то вставляется "0". В ином случае, то есть, если MPU фрагментирован на предварительно определенное число MFU, то вставляется одно из "1", "2" и "3". Значение "1" показывает, что пакет ММТ содержит первый фрагмент. Значение "2" показывает, что пакет ММТ содержит промежуточный фрагмент, но не первый или последний фрагмент. Значение "3" показывает, что пакет ММТ содержит последний фрагмент.
Подсчет фрагментов представляет собой информацию о подсчете MFU. Флаг информации об агрегации представляет собой информацию о флаге, показывающую, содержит или нет полезная нагрузка множество MPU. Значение "0" показывает, что полезная нагрузка содержит только один MPU. Значение "1" показывает, что полезная нагрузка содержит множество MPU. Флаг RAP представляет собой информацию, показывающую, содержит или нет пакет ММТ точку произвольного доступа, то есть блок доступа, соответствующий картинке головной части GOP.
Смещение данных представляет собой информацию, показывающую размер от головной позиции полезной нагрузки до головной позиции данных полезной нагрузки, то есть размер заголовка полезной нагрузки. Номер блока данных показывает число блоков данных MPU, содержащихся в полезной нагрузке. Смещение блока данных представляет собой информацию о смещении относительно головной позиции данных полезной нагрузки в каждом блоке данных. Порядковый номер полезной нагрузки представляет собой порядковый номер полезной нагрузки пакета ММТ. Флаг области расширения заголовка представляет собой информацию о флаге, показывающую, присутствует или нет расширение заголовка полезной нагрузки.
На фиг. 3 показано примерное пакетирование ММТ. Метаданные каждого из полей "styp", "sidx", "mmpu", "moov" и "moof" файла ММТ вставляются в один блок данных MPU полезной нагрузки ММТ для генерирования пакета ММТ. В этом случае в заголовке полезной нагрузки ММТ "fragmentation_indicator" равняется "0", "fragment_count" равняется "0", "aggregation_info_flag" равняется "0", и "RAP flag" равняется "1".
Кроме того, в этом случае один MPU, который присутствует в "mdat" файла ММТ, вставляется в один блок данных MPU полезной нагрузки ММТ для генерирования пакета ММТ. В этом случае в заголовке полезной нагрузки ММТ "fragmentation_indicator" равняется "0", "fragment_count" равняется "0", "aggregation_info_flag" равняется "0", и "RAP_flag" равняется "1".
На фиг. 4 показан другой пример пакетирования ММТ. В этом случае, как и в примере, показанном на фиг. 3, метаданные каждого из полей "styp", "sidx", "mmpu" и "moov" файла ММТ вставляются в один блок данных MPU полезной нагрузки ММТ для генерирования пакета ММТ. Кроме того, в этом случае в нескольких (в этом примере в трех) блоках данных MPU полезной нагрузки ММТ, вставляются три MPU, которые присутствуют в "mdat" файла ММТ, для генерирования пакета ММТ. В этом случае в заголовке полезной нагрузки ММТ "fragmentation_indicator" равняется "0", "fragment_count" равняется "0", "aggregation_info_flag" равняется "1", "RAP_flag" равняется "1", "numDU" равняется "3", и присутствуют три смещения DU "DU offsets".
На фиг. 5 показан еще один пример пакетирования ММТ. В этом случае, как и в примере, показанном на фиг. 3, метаданные каждого из полей "styp", "sidx", "mmpu", "moov" и "moof" файла ММТ вставляются в один блок данных MPU полезной нагрузки ММТ, или выполняется предварительно определенное преобразование информации для генерирования пакета ММТ.
Кроме того, в этом случае один блок доступа (AU), который присутствует в "mdat" файла ММТ, а также заголовок MFU (MFU Hdr) вставляются в один блок данных MPU полезной нагрузки ММТ для генерирования пакета ММТ. В этом случае в заголовке полезной нагрузки ММТ "fragmentation_indicator" равняется "1", "fragment_count" равняется "N", который представляет собой значение количества MFU, "aggregation_info_flag" равняется одному из "1"-"3" в зависимости от MFU, который содержится в нем, и "RAP_flag" равняется "1" или "0". Следует отметить, что заголовок MFU содержит информацию, такую как порядковый номер (sequence_number) MFU.
На фиг. 6 и фиг. 8 показан случай, где пакет ММТ, содержащий MFU, полученный путем фрагментирования, представляет собой транспортный пакет, и пакет ММТ представляет собой головной пакет (головную часть GOP) произвольного доступа. В этом случае этот пакет ММТ доставляется вместе с пакетом ММТ, в который вставляются метаданные каждого из полей "styp", "sidx", "mmpu", "moov" и "moof" файла ММТ, или в котором выполняется предварительно определенное преобразование информации.
Например, область "mmpu" содержит информацию для определения того, являются или нет данные MFU данными реального времени. Эта информация об определении разрешает приемнику, в головной части произвольного доступа, определить, являются или нет данные MFU данными реального времени, например.
На фиг. 7 показан случай, где пакет ММТ, содержащий MFU, полученный путем фрагментирования, представляет собой транспортный пакет, и пакет ММТ представляет собой неголовной пакет произвольного доступа. В этом случае этот пакет ММТ доставляется как пакет ММТ, имеющий минимальную конфигурацию в отличие от вышеупомянутого головного пакета.
На фиг. 9 показана конфигурация пакета ММТ в форме дерева. Как описано выше, пакет ММТ включает в себя заголовок пакета ММТ, заголовок полезной нагрузки ММТ и полезную нагрузку ММТ. Полезная нагрузка ММТ содержит сообщение, блок обработки медиа (MPU), символ восстановления FEC и т.п. Передача их сигналов выполняется на основании типа полезной нагрузки (payload_type), которая содержится в заголовке полезной нагрузки ММТ.
Следует отметить, что различные содержания сообщения вставляются в сообщение в форме таблицы. Кроме того, MPU можно фрагментировать и разделить на блоки фрагментов ММТ (MFU). В этом случае заголовок MFU добавляется в головную часть каждого MFU. В полезной нагрузке ММТ присутствуют MPU, который относится к медиаданным, таким как видео или аудио, и помимо этого MPU, который относится к метаданным. Пакет ММТ, содержащий каждый MPU, можно идентифицировать с использованием ID пакета (Packet_ID), который присутствует в заголовке пакета ММТ.
Концепция передающего устройства и приемного устройства
На фиг. 10 показана концептуальная схема устройства 100 передачи транспортных пакетов и устройства 200 приема транспортных пакетов. Передающее устройство 100 включает в себя блок 101 генерирования объекта, кодер 102, блок 103 пакетирования транспорта, блок 104 генерирования синхронизирующих импульсов, блок 105 передачи IP и блок 106 передачи РЧ сигналов.
Блок 101 генерирования объекта генерирует видео- или аудиоданные в виде медиаданных. Блок 101 генерирования объекта может представлять собой запоминающее устройство для хранения данных, включающее в себя жесткий диск (HDD), полупроводниковую память или тому подобное, или, в качестве альтернативы, видеокамеру, микрофон или тому подобное. Кодер 102 выполняет процесс кодирования видео- или аудиоданных, которые вырабатываются с помощью блока 101 генерирования объекта, для генерирования данных передачи.
Блок 103 пакетирования транспорта генерирует пакет ММТ, содержащий медиаданные, в которых данные передачи, сгенерированные с помощью кодера 102, вставляются в полезную нагрузку в блоках MPU или в блоках MFU, которые представляют собой фрагменты блока MPU, и также генерирует вышеупомянутый пакет ММТ, содержащий метаданные, или вышеупомянутый пакет ММТ, содержащий сообщение. Блок 103 пакетирования транспорта, при генерировании пакета ММТ, вставляет информацию о времени, которая позволяет приемнику получать время декодирования (Decode_Timestamp) и время представления (Display_Timestamp) в пакете ММТ. Вставка информации о времени в пакет ММТ будет подробно описана ниже.
Блок 105 передачи IP при использовании канала передачи сети связи преобразует транспортный поток, включающий в себя пакеты ММТ, которые последовательно выводятся из блока 103 пакетирования транспорта в виде пакетов IP, и передает пакеты IP в приемник через канал передачи сети связи. Блок 106 передачи RF сигналов при использовании RF канала передачи выполняет RF модуляцию транспортного потока, включающего в себя пакеты ММТ, последовательно выводимые из блока 103 пакетирования транспорта через соответствующий уровень адаптации или тому подобное, и передает результирующий транспортный поток в приемник через РЧ канал передачи. В данном случае передающее устройство 100 добавляет временную метку передачи в данные передачи на основании сигнала системной временной синхронизации STC, выводимого из блока 104 генерирования синхронизирующих импульсов.
Приемное устройство 200 имеет блок 201 приема RF сигналов, блок 202 приема IP, блок воспроизведения синхронизирующего импульса 203, блок 204 распаковки транспорта и блок 205 декодирования/вывода.
Блок 201 приема RF сигналов принимает транспортный поток, который представляет собой последовательность пакетов ММТ, переданных от передатчика через RF канал передачи после анализа уровня адаптации, и выводит транспортный поток в блок 204 распаковки транспорта. Кроме того, блок 202 приема IP принимает транспортный поток, который представляет собой последовательность пакетов ММТ, переданных из передатчика через канал передачи сети связи, и выводит транспортный поток в блок 204 распаковки транспорта.
Блок 203 генерирования синхронизирующих импульсов генерирует и подает сигнал системной временной синхронизации STC в блок 204 распаковки транспорта или тому подобное. Блок 203 генерирования синхронизирующих импульсов устанавливает синхронизирующий импульс на основании значения временной метки передачи (значения NTP), добавленного в данные передачи. Альтернативно, блок 203 генерирования синхронизирующих импульсов устанавливает синхронизирующий импульс на основании значения временной метки (значения NTP), поданного с использованием пакета NTP. В этом случае блок 203 генерирования синхронизирующих импульсов исправляет сгенерированный сигнал системной временной синхронизации STC таким образом, чтобы различие между сгенерированным сигналом системной временной синхронизации STC и значением типовой отметки (значением NTP) находилось в пределах некоторого диапазона.
Когда NTP подается с использованием пакета NTP, полученного из сервера NTP или тому подобного вместо временной метки передачи заголовка пакета ММТ, формат NTP не ограничивается "сокращенным форматом NTP", показанным на фиг. 11. Хотя это и не показано, NTP может подаваться в виде 64-разрядного "формата временной метки NTP (32 разряда для целой части секунды + 32 разряда для дробной части секунды)" (смотри IETF RFC 5905). В этом случае в приемнике синхронизирующий импульс декодера устанавливается с использованием значения принятого NTP и сравнивается со значением временной метки медиа. В этом случае различие по точности между временной меткой представления или декодирования медиа и синхронизирующим импульсом учитывается в приемнике во время сравнения.
Блок 204 распаковки транспорта выполняет распаковку пакетов ММТ, последовательно подаваемых из блока 201 приема RF сигналов или блока 202 приема IP, для получения данных приема в качестве медиаданных и помимо этого метаданных или сообщения. Блок 205 декодирования/вывода декодирует данные приема, полученные с помощью блока 204 распаковки транспорта, для получения видео- или аудиоданных и выполняет отображение видео или вывод аудио на основании метаданных или сообщения.
В этом случае блок 205 декодирования/вывода получает время декодирования (Decode_Timestamp) и/или время представления (Display_Timestamp) для каждого блока доступа на основании информации о времени, извлеченный с помощью блока 204 распаковки транспорта, и управляет временной синхронизацией декодирования и временной синхронизацией представления, чтобы достичь синхронного воспроизведения видео и аудио. Это синхронное воспроизведение видео и аудио будет подробно описано ниже.
Далее будут кратко описаны работа передающего устройства 100 и работа приемного устройства 200, которые показаны на фиг. 10. Сначала будет описана работа передающего устройства 100. Видео- или аудиоданные, сгенерированные блоком 101 генерирования объекта, подаются в кодер 102. После этого кодер 102 выполняет процесс кодирования над видео- или аудиоданными для генерирования данных передачи (кодированных данных).
Данные передачи, сгенерированные кодером 102, подаются в блок 103 пакетирования транспорта. После этого блок 103 пакетирования транспорта генерирует пакет ММТ, содержащий медиаданные, в которых данные передачи вставлены в полезную нагрузку в блоки MPU или в блоки MFU, которые представляют собой фрагменты блока MPU и, кроме того, в вышеупомянутый пакет ММТ, содержащий метаданные, или в вышеупомянутый пакет ММТ, содержащий сообщение.
Транспортный поток, включающий в себя пакеты ММТ, последовательно сгенерированные блоком 103 пакетирования транспорта, подается в блок 105 передачи IP или в блок 106 передачи RF сигналов. Блок 105 передачи IP при использовании канала передачи сети связи преобразует транспортный поток в пакеты IP и передает пакеты IP в приемник через канал передачи сети связи. Кроме того, блок 106 передачи RF сигналов, при использовании RF канала передачи, выполняет RF модуляцию транспортного потока и передает результирующий транспортный поток в приемник через RF канал передачи. В этом случае временная метка передачи добавляется в данные передачи на основании сигнала системной временной синхронизации STC, который выводится из блока 104 генерирования синхронизирующих импульсов.
Далее будет описана работа приемного устройства 200. Транспортный поток, переданный из передатчика, принимается с помощью блока 201 приема RF сигналов или блока 202 приема IP таким образом, чтобы получался транспортный поток, содержащий последовательность пакетов ММТ. Этот транспортный поток подается в блок 204 распаковки транспорта. Блок 204 распаковки транспорта выполняет распаковку пакетов ММТ для получения данных приема в качестве медиаданных и помимо этого метаданных или сообщения, а также информации о времени или тому подобное. Эти части данных или информация подаются в блок 205 декодирования/вывода.
Блок 205 декодирования/вывода декодирует данные приема, полученные с помощью блока 204 распаковки транспорта, для получения видео- или аудиоданных и выполняет отображение видео или вывод аудио на основании метаданных или сообщения. В этом случае информация о времени, извлеченная из пакетов ММТ с помощью блока 204 распаковки транспорта, подается в блок 205 декодирования/вывода. После этого, на основании информации о времени, блок 205 декодирования/вывода получает время декодирования (Decode_Timestamp) и/или время представления (Display_Timestamp) каждого блока доступа и управляет временной синхронизацией декодирования и временной синхронизацией вывода, чтобы достичь одновременного воспроизведения видео и аудио.
Информация о времени, вставленная в пакет ММТ
Далее будет описана информация о времени, вставленная в пакет ММТ. Как описано выше, информация о времени представляет собой информацию, которая позволяет приемнику получать время декодирования (Decode_Timestamp) и/или время представления (Display_Timestamp). Медиаданные, которые содержатся в пакете ММТ, включают в себя один или более блоков доступа. Информация о времени, вставленная в пакет ММТ, представляет собой информацию о времени и/или информацию для получения времени представления, каждая из которых соответствует каждому одному или более блокам доступа.
Например, в первой технологии информация о времени, вставленная в пакет ММТ, содержит начальное значение, то есть значение времени декодирования или времени представления, соответствующее начальному блоку доступа из одного или более блоков доступа. Кроме того, информация о времени содержит значение смещения от времени декодирования до времени представления, каждое из которых соответствует каждому блоку доступа. Кроме того, например, во второй технологии, информация о времени, вставленная в пакет ММТ, содержит непосредственно время представления или непосредственно время представления и время декодирования.
Далее будет описана первая технология. Значение смещения представляет собой значение относительного смещения, соответствующее значению абсолютного смещения. Таким образом, информация о преобразовании для преобразования значения относительного смещения в значение абсолютного смещения добавляется в информацию о времени. Информация о преобразовании содержит "timestamp_type", "time tick", "au_rate_scale", "division_factor" и тому подобное.
Информация "timestamp_type" представляет собой информацию, показывающую, является ли начальное значение начальным значением времени декодирования или начальным значением времени представления. Информация "time tick" представляет собой информацию, показывающую, что синхронизирующий импульс используется для управления. Эта информация показывает, что управление всем этим осуществляется с использованием синхронизирующего импульса с частотой 90 кГц, например. Информация "au_rate_scale" представляет собой информацию о масштабе для вычисления производительности блоков доступа к видео или аудио. Следует отметить, что информация о преобразовании также содержит информацию о флаге "Asset_type", показывающую, являются ли медиаданные видео или аудио.
Например, в случае видео, если вышеупомянутый параметр отметки времени "time_tick" показывает частоту 90 кГц, параметр "au_rate_scale" имеет значение 1500, 1800, 3000, 3600 или тому подобное. Путем деления 90 кГц на соответствующие значения можно вычислить частоту видео 60 Гц, 50 Гц, 30 Гц, 25 Гц или тому подобное.
Кроме того, параметр "division_factor" представляет собой коэффициент деления, который служит для точной регулировки частоты. Например, в случае видео NTSC, коэффициент деления "division_factor" имеет значение, предназначенное для регулировки частоты 30 Гц или 29,94 Гц, то есть равное "1" или "1,001".
Далее будет описан случай, где медиаданные представляют собой видео, и начальное значение представляет собой время декодирования. На фиг.12 показана примерная взаимосвязь соответствия между моментами времени "DTS(n)" декодирования, значениями "DLT(n)" смещения и моментами времени "PTS(n)" представления, которые соответствуют нулевому-шестому блокам доступа (AU). В этом примере значение (dlt_time) смещения от начального значения времени декодирования до начального значения времени представления равняется "1", которое представляет собой значение относительного смещения.
В данном случае нулевой блок доступа представляет собой кадр I, начальный блок доступа - кадр Р, второй блок доступа - кадр В, третий блок доступа - кадр В, четвертый блок доступа - кадр Р, пятый блок доступа - кадр В, и шестой блок доступа - кадр В. Таким образом, выполняется переупорядочивание момента времени декодирования для того, чтобы получить моменты времени представления.
В этом случае информация о времени, вставленная и переданная в пакете ММТ, представляет собой параметр TS0 (в данном случае TS0=0), который равен начальному значению времени декодирования и значениям DLT(n) относительного смещения. Следует отметить, что на фиг. 12 "Time" (Время) показывает время для каждого блока доступа, использующего относительное значение.
Когда такая информация о времени передается в приемник, приемник может вычислить время декодирования и время представления каждого блока доступа с использованием информации о преобразовании следующим образом. В этом случае начальное значение TS0 представляет собой время DTS(0) декодирования начального блока доступа. Время смещения (dlt_time) относительно начального значения TS0 вычисляется из выражения (1), представленного ниже. Например, в качестве типичного примера, когда au_rate_scale=1500, и division_factor=1,001, dlt_time=1500*1,001.
Моменты времени DTS(n) декодирования последующих блоков доступа вычисляются путем прибавления значения, полученного в результате деления времени смещения (dlt_time) на "time_tick", непосредственно перед моментом времени DTS(n-1) декодирования, как показано ниже с помощью выражения (2). Следует отметить, что DTS(0)=TS0.
Кроме того, как показано ниже в выражении (3), время PTS(n) представления каждого блока доступа вычисляется путем прибавления значения, полученного в результате умножения значения смещения DLT(n) на "dlt_time/time_tick", к времени DTS(n) декодирования.
Далее будет описан случай, где медиаданные представляют собой видео, и начальное значение представляет собой время представления. На фиг. 13 показана примерная взаимосвязь соответствия между моментами времени "DTS(n)" декодирования, значениями "DLT(n)M" смещения и моментами времени "PTS(n)" представления, которые соответствуют нулевому-шестому блокам доступа (AU), которые аналогичны блокам доступа, показанным на фиг. 12. В этом примере значение (dlt_time) смещения от начального значения времени декодирования до начального значения времени представления равняется "1". Кроме того, в этом случае выполняется переупорядочивание моментов времени декодирования для того, чтобы получить моменты времени представления.
В этом случае информация о времени, вставленная и переданная в пакете ММТ, представляет собой параметр TS0 (в данном случае TS0=1), который представляет собой начальное значение времени представления, и значения DLT(n) относительного смещения. Следует отметить, что на фиг. 13 "Time" ("Время") показывает время для каждого блока доступа, использующего относительное значение.
В том случае, когда такая информация о времени передается в приемник, приемник может вычислить время декодирования и время представления каждого блока доступа с использованием информации о преобразовании следующим образом. В этом случае начальное значение TS0 представляет собой время PTS(0) представления начального блока доступа. Таким образом, как показано ниже в выражении (4), время DTS(0) декодирования начального блока доступа вычисляется путем вычитания из PTS(0) значения, полученного в результате умножения значения, полученного в результате деления времени смещения (то есть "dlt_time") на "time_tick", на значение смещения DLT(n).
В данном случае, как показано ниже в выражении (5), "dlt_time" вычисляется путем умножения "au_rate_scale" на "division_factor".
Моменты времени декодирования DTS(n) последующих блоков доступа вычисляются путем прибавления значения, полученного в результате деления времени смещения (dlt_time) на "time_tick", непосредственно перед моментом времени DTS(n-1), как показано в следующем выражении (6).
Кроме того, время PTS(n) представления каждого блока доступа вычисляется путем прибавления значения, полученного в результате умножения значения смещения DLT(n) на "dlt_time/time_tick", к времени DTS(n) декодирования, как показано в следующем выражении (7).
Далее будет описан случай, где медиаданные представляют собой аудио, и начальное значение представляет собой время декодирования. На фиг. 14 показана примерная взаимосвязь соответствия между моментами времени "DTS(n)" декодирования, значениями "DLT(n)M" смещения и моментами времени "PTS(n)" вывода аудио, которые соответствуют нулевому-шестому блокам доступа (AU). В этом примере, "dlt_time/time_tick" равняется "1".
Следует отметить, что блок доступа к аудио представляет собой набор из множества аудиовыборок. В данном случае, как показано ниже в выражении (8), "dlt_time" вычисляется путем умножения "au_rate_scale" на "division_factor". Например, в качестве типичного примера, когда аудио частота дискретизации равна 44,1 кГц, и схема аудиокодирования использует 1024 выборки в качестве одного блока доступа к аудио, au_rate_scale=2089,8, division_factor=1, и dltjime=2089,8*1.
В этом случае информация о времени, вставленная и переданная в пакете ММТ, представляет собой параметр TS0 (в данном случае TS0=0), который представляет собой начальное значение времени вывода аудио, и значения DLT(n) относительного смещения. Следует отметить, что на фиг. 14 "Time" ("Время") показывает время для каждого блока доступа с использованием относительного значения. В нормальном случае после декодирования информация о времени переносится в буфер непосредственно без переупорядочения, и поэтому DLT(n), показывающее разность между временем DTS(n) декодирования и временем PTS(n) вывода аудио, равняется "0".
Когда такая информация о времени передается в приемник, приемник может вычислить время декодирования и время вывода аудио каждого блока доступа с использованием информации о преобразовании следующим образом. В этом случае начальное значение TS0 представляет собой время PTS(0) вывода аудио начального блока доступа и также непосредственно время DTS(0) декодирования начального блока доступа.
Моменты времени декодирования DTS(n) и времени PTS(n) вывода аудио последующих блоков доступа вычисляются путем прибавления значения, полученного в результате деления времени смещения (dlt_time) на "time_tick", непосредственно перед моментом времени PTS(n-1) вывода аудио, как показано ниже в выражении (9). Следует отметить, что PTS(0)=TS0.
Примерная конфигурация блока декодирования/вывода приемного устройства
Далее будет описан блок 205 декодирования/вывода приемного устройства 200. На фиг. 15 показана примерная конфигурация блока 205 декодирования/вывода. Блок 205 декодирования/вывода имеет демультиплексор 301, видеодекодер 302, блок 303 отображения видео, аудиодекодер 304, блок 305 вывода аудио и блок 306 управления.
Демультиплексор 301 извлекает различный вид информации или данные из выходного сигнала блока 204 распаковки транспорта. В частности, демультиплексор 301 извлекает кодированные видеоданные каждого блока доступа к видео и также извлекает кодированные аудиоданные каждого блока доступа к аудио.
Кроме того, демультиплексор 301 извлекает информацию о времени для получения времени DTS(n) декодирования и времени PTS(n) представления (времени вывода аудио) каждого видео или блока доступа к аудио. Как описано выше, эта информация о времени содержит начальное значение TS0 и значения DLT(n) относительного смещения.
Кроме того, демультиплексор 301 извлекает различные виды информации (информация о преобразовании) для преобразования значения DLT(n) относительного смещения в значение абсолютного смещения. Как описано выше, эта информация о преобразовании содержит "timestamp_type", "time_tick", "au_rate_scale", "division_factor" и тому подобное.
Видеодекодер 302 выполняет декодирование кодированных видеоданных каждого блока доступа к видео, извлеченного демультиплексором 301, чтобы получить декодированные видеоданные каждого блока доступа. Блок 303 отображения видео выполняет отображение видео (отображение изображения) на основании декодированных видеоданных каждого блока доступа, полученного видеодекодером 302.
Аудиодекодер 304 выполняет декодирование кодированных аудиоданных каждого блока доступа, извлеченного демультиплексором 301, чтобы получить декодированные аудиоданные каждого блока доступа. Блок 305 вывода аудио выполняет вывод аудио (вывод звука) на основании декодированных аудиоданных каждого блока доступа, полученного аудиодекодером 304.
Блок 306 управления вычисляет время DTS(n) декодирования и время PTS(n) представления (время вывода аудио) каждого видео или блока доступа к аудио на основании информации о времени и информации о преобразовании, извлеченной демультиплексором 301. После этого блок 306 управления выполняет управление синхронным воспроизведением аудио или видео следующим образом.
В частности, блок 306 управления управляет временной синхронизацией декодирования и временной синхронизацией представления каждого блока доступа к видео на основании времени DTS(n) декодирования и времени PTS(n) представления каждого блока доступа. В этом случае блок 306 управления управляет видеодекодером 302 таким образом, чтобы видеодекодер 302 начинал декодирование каждого блока доступа при временной синхронизации тогда, когда сигнал системной временной синхронизации STC, выработанный блоком 203 генерирования синхронизирующих импульсов (смотри фиг. 7), показывает время DTS(n) декодирования. Кроме того, блок 306 управления управляет блоком 303 отображения видео таким образом, чтобы блок 303 отображения видео начинал выполнять отображение видео с использованием каждого блока доступа при временной синхронизации тогда, когда сигнал системной временной синхронизации STC показывает время PTS(n) представления.
Кроме того, блок 306 управления управляет временной синхронизацией декодирования и временной синхронизацией представления каждого блока доступа к аудио на основании времени DTS(n) декодирования и времени PTS(n) вывода аудио каждого блока доступа. В этом случае блок 306 управления управляет аудиодекодером 304 таким образом, чтобы аудиодекодер 304 начинал декодирование каждого блока доступа при временной синхронизации тогда, когда сигнал системной временной синхронизации STC показывает время DTS(n) декодирования. Кроме того, блок 306 управления управляет блоком 305 вывода аудио таким образом, чтобы блок 305 вывода аудио начинал вывод аудио с использованием каждого блока доступа при временной синхронизации тогда, когда сигнал системной временной синхронизации S ТС показывает время PTS(n) вывода аудио.
Работа блока 205 управления декодированием/выводом, показанного на фиг. 15, будет кратко описана ниже. Выходной сигнал из блока 204 распаковки транспорта подается в демультиплексор 301. Демультиплексор 301 извлекает кодированные видеоданные каждого блока доступа к видео и подает кодированные видеоданные в видеодекодер 302.
Видеодекодер 302 выполняет декодирование кодированных видеоданных каждого блока доступа к видео, чтобы получить декодированные видеоданные каждого блока доступа. Таким образом, декодированные видеоданные каждого блока доступа подаются в блок 303 отображения видео. Блок 303 отображения видео выполняет отображение видео (отображение изображения) на основании видеоданных каждого блока доступа.
Кроме того, демультиплексор 301 извлекает кодированные аудиоданные каждого блока доступа к аудио и подает кодированные аудиоданные в аудио декодер 304. Аудио декодер 304 выполняет декодирование кодированных аудиоданных каждого блока доступа к аудио, чтобы получить декодированные аудиоданные каждого блока доступа. Таким образом, декодированные аудиоданные каждого блока доступа подаются в блок 305 вывода аудио. Блок 305 вывода аудио выполняет вывод аудио (вывод звука) на основании аудиоданных каждого блока доступа.
Кроме того, демультиплексор 301 извлекает информацию о времени (начальное значение TS0 и значения DLT(n) относительного смещения) для получения времени DTS(n) декодирования и времени PTS(n) представления (времени вывода аудио) каждого видео или блока доступа к аудио. Более того, демультиплексор 301 извлекает различного вида информацию о преобразовании для преобразования значения DLT(n) относительного смещения в значение абсолютного смещения. Эти части информации о времени и информации о преобразовании подаются в блок 306 управления.
Блок 306 управления вычисляет время DTS(n) декодирования и время представления PTS(n) (время вывода аудио) каждого видео или блока доступа к аудио на основании информации о времени и информации о преобразовании. После этого блок 306 управления выполняет управление синхронным воспроизведением аудио или видео на основании времени DTS(n) декодирования и времени PTS(n) представления (времени вывода аудио).
В этом случае блок 306 управления управляет временной синхронизацией декодирования и временной синхронизацией представления каждого блока доступа к видео на основании времени DTS(n) декодирования и времени PTS(n) представления каждого блока доступа к видео. Кроме того, блок 306 управления управляет временной синхронизацией декодирования и временной синхронизацией вывода каждого блока доступа к аудио на основании времени DTS(n) декодирования и времени PTS(n) представления каждого блока доступа к аудио.
Следует отметить, что в вышеизложенном описании был описан случай, где информация о времени, вставленная в пакет ММТ, представляет собой первую технологию, то есть информация о времени представляет собой начальное значение времени декодирования или времени представления и значение смещения, соответствующее каждому блоку доступа. Хотя это и не описано подробно, может иметь место случай, где информация о времени, вставленная в пакет ММТ, представляет собой вторую технологию, то есть информация о времени представляет собой непосредственно время представления или непосредственно время представления и время декодирования каждого блока доступа. В этом случае блок 306 управления использует непосредственно эти значения времени.
На фиг. 16 представлена временная диаграмма, показывающая примерное управление синхронным воспроизведением AV в блоке 306 управления. На фиг. 16(a) показан сигнал системной временной синхронизации STC, сгенерированный блоком 203 генерирования синхронизирующих импульсов. Как описано выше, этот сигнал системной временной синхронизации STC устанавливается на основании временной метки передачи (значения NTP), переданного из передатчика, или значения временной метки (значения NTP), предусмотренного в пакете NTP.
Как показано на фиг. 16(b), каждый раз, когда сигнал системной временной синхронизации STC показывает время DTS(n) декодирования каждого блока доступа к видео, начинается декодирование каждого блока доступа к видео. После этого, как показано на фиг. 16(c), каждый раз, когда сигнал системной временной синхронизации STC показывает время PTS(n) представления каждого блока доступа к видео, начинается отображение видео (отображение изображения) каждого блока доступа к видео.
Как показано на фиг. 16(d), каждый раз, когда сигнал системной временной синхронизации STC показывает время DTS(n) декодирования каждого блока доступа к аудио, начинается декодирование каждого блока доступа к аудио, и начинается вывод аудио (вывод звука). На фиг. 16(e) показан вывод аудиовыборки.
Следует отметить, что, если пакет, который представляет собой фрагмент MFU, отбрасывается во время передачи, или определяется, что такой пакет не используется для представления в приемном устройстве 200, количество блоков доступа из таблицы временных меток, которая воспроизводится в приемнике, и количество блоков доступа, которые фактически приняты, имеют взаимосвязь, показанную на фиг. 17. Блоки доступа (AU) в качестве данных MFU, которые отобраны согласно порядковому номеру (sequence_number) из заголовка MFU, проверяются по таблице временных меток и передаются из буфера сжатия в декодер при временной синхронизации с DTS(n). Кроме того, блоки доступа передаются из буфера декодирования в процессе представления при временной синхронизации с PTS(n). Таким образом, определяется, следует или нет ссылаться на временную метку (Timestamp) по отношению к блоку доступа, который не был принят, или к блоку доступа, который был определен, но не должен быть представлен.
Способ генерирования информации о времени при преобразовании файла в транспортные пакеты
Когда состояние файла преобразуется в транспортные пакеты, информация о времени (информация о времени, которая позволяет приемнику получать время декодирования и/или время представления), которая должна вставляться в пакет ММТ, генерируется на основании информации, которая получается из файла ММТ, как описано ниже. Информация о времени, которая должна вставляться в пакет ММТ, генерируется из информации в файле с помощью блока 103 пакетирования транспорта.
Сначала будет описан случай, где информация "moov" используется для всего файла. В этом случае моменты времени декодирования и моменты времени представления всех выборок, которые содержатся в файле, обеспечиваются с использованием полей 'stts' и 'ctts' в поле "Moov". В этом случае время декодирования задано полем 'stts' (время декодирования для выборки). Кроме того, различие между временем декодирования и временем представления задано полем 'ctts' (время композиции для выборки). Кроме того, позиция выборки произвольного доступа показана в поле 'stss' (таблица выборок синхронизации).
Далее будет описан случай, где информация "moof" используется для каждого фрагмента. В этом случае время декодирования и время представления выборки для каждого фрагмента обеспечиваются с использованием поля 'trun' и 'tfra' в поле "Moof". В этом случае позиция смещения относительно позиции заголовка фрагмента и смещение между временем декодирования и временем представления выборки (число кадров в случае видео и число аудиовыборок в случае аудио) подаются с использованием поля 'trun' (запуск фрагмента записи). Кроме того, позиция произвольного доступа и время декодирования выборки предусмотрены с использованием поля 'tfra' (произвольный доступ к фрагменту записи). Кроме того, время представления известно из значения разности между временем декодирования и временем представления каждой выборки.
Позиция, в которой вставляется информация о времени
Далее будет описан способ вставки информации о времени. На фиг. 18 схематично показан способ вставки информации о времени в пакет ММТ. На фиг. 18(а) показан случай, где информация о времени передается в заголовке полезной нагрузки MPU. В этом случае, если полезная нагрузка MPU содержит множество блоков доступа (AU), информация о времени, соответствующая множеству блоков доступа, вставляется в расширение заголовка полезной нагрузки. С другой стороны, если в полезной нагрузке MPU предусмотрен один блок доступа, то информация о времени вставляется в расширение заголовка полезной нагрузки для каждого блока доступа.
На фиг. 18(b) показан случай, где информация о времени передается в полезной нагрузке MPU для каждого блока доступа (AU), который является фрагментом. В этом случае в MFU предусмотрен один блок доступа, и информация о времени вставляется в расширение заголовка MFU для каждого блока доступа. Альтернативно, информация о времени вставляется в полезную нагрузку MFU для каждого блока доступа. Кроме того, на фиг. 18(с) показан случай, где информация о времени передается в сообщении. В этом случае по меньшей мере одно сообщение, имеющее информацию о времени для медиа, связанную с использованием ID пакета (packet_id), представляющего интерес, доставляется в блоках точки произвольного доступа (RAP).
На фиг. 19 показана примерная конфигурация пакета в случае, где информация о времени (информация о времени, которая позволяет приемнику получать время декодирования и/или время представления) вставляется для каждого блока доступа с целью уменьшения задержки передачи/приема. На фиг. 19(а) показана примерная конфигурация пакета в случае, где информация о времени вставлена в заголовок полезной нагрузки ММТ. На фиг. 19(b) показана примерная конфигурация пакета в случае, где информация о времени вставлена в MFU. Более того, на фиг. 19(с) показана примерная конфигурация пакета в случае, где информация о времени вставлена в сообщение ММТ.
Следует отметить, что в каждой примерной конфигурации пакета, если пакет ММТ, имеющий блок доступа, представляющий интерес, является головным пакетом произвольного доступа, то есть пакетом точки произвольного доступа, то пакет ММТ доставляется вместе с пакетом ММТ, в который вставляются метаданные каждого из полей "styp", "sidx", "mmpu" и "moov" файла ММТ. С другой стороны, если этот пакет ММТ представляет собой неголовной пакет произвольного доступа, то есть пакет точки непроизвольного доступа, то пакет ММТ, в который вставляются вышеупомянутые метаданные, не доставляется.
Дополнительно будет описан случай, где информация о времени передается в заголовке полезной нагрузки MPU. На фиг. 20 показана примерная структура (синтаксис) всего пакета ММТ. Пакет ММТ (mmt пакет()) содержит заголовок пакета ММТ (mmtp_header()) и полезную нагрузку ММТ (mmtp_payload()). Более того, полезная нагрузка ММТ содержит заголовок полезной нагрузки ММТ (mmtp_payload_header()) и данные полезной нагрузки ММТ (mmtp_payload_data()).
На фиг. 21 показана примерная структура (синтаксис) заголовка пакета ММТ (mmtp_header()). Хотя это и не описано подробно, заголовок пакета ММТ содержит, как описано выше, ID пакета (packet_id), порядковый номер пакета (packet_sequence_number), временную метку передачи (transmission_timestamp), приоритет передачи (transmission Priority), данные частного пользователя (private user_data) и т.п.
На фиг. 22 показана примерная структура (синтаксис) заголовка полезной нагрузки ММТ (mmtp_payload_header()). Хотя это и не описано подробно, заголовок полезной нагрузки ММТ содержит, как описано выше, длину полезной нагрузки (payload_length), тип полезной нагрузки (payload_type), тип фрагмента (fragment_type), отсчет фрагментов (fragment_count), флаг с информацией об агрегации (aggregation_info_flag), флаг RAP (random_access_point_flag), смещение данных (data_offset), номер блока данных (numDU), смещение блока данных (DU_oifset), порядковый номер полезной нагрузки (payload_seq_number), флаг области расширения заголовка (header_extension_field_flag) и т.п.
Кроме того, когда флаг области расширения заголовка равен "1", заголовок полезной нагрузки ММТ дополнительно содержит расширение заголовка полезной нагрузки ММТ (mmtp_payload_header_extension()).
На фиг. 23 показана примерная структура (синтаксис) расширения заголовка полезной нагрузки ММТ (mmtp_payload_header_extension()). Эта примерная структура соответствует случаю, когда информации о времени передается в заголовке полезной нагрузки MPU. На фиг. 24 показана семантика основной информации в примерной структуре.
Параметр типа расширения заголовка полезной нагрузки "payload_header_extension_type", который имеет 16-разрядное поле, показывает тип расширения заголовка полезной нагрузки ММТ. Например, "0x0001" показывает, что предоставлена информация о времени (отметка типа) для обработки. Параметр длины расширения заголовка полезной нагрузки "payload_header_extension_length", который имеет 16-разрядное поле, показывает размер расширения заголовка полезной нагрузки ММТ. Параметр типа объекта "asset_type", который имеет 2-разрядное поле, показывает тип объекта. Например, "01" показывает видео, и "10" показывает аудио.
Параметр отметки времени "time_tick", который имеет 2-разрядное поле, показывает, что синхронизирующий импульс используется для управления. Значение "01" показывает значение синхронизирующих импульсов с точностью 90 кГц. Значение "10" показывает формат короткого времени NTP "NTP short time". Параметр масштаба частоты аудио и видео "au_rate_scale", который имеет 3-разрядное поле, показывает информацию о масштабе для вычисления уровня видео или блоки доступа к аудио.
Если типом объекта является видео, то "000" показывает значение 3750, и из этого значения можно вычислить частоту, которая будет равна 24 Гц. Кроме того, "001" показывает значение 3600, и из этого значения можно вычислить частоту, которая будет равна 25 Гц. Кроме того, "010" показывает значение 3000, и из этого значения можно вычислить частоту, которая будет равна 30 Гц.
Кроме того, "011" показывает значение 1800, и из этого значения можно вычислить частоту, которая будет равна 50 Гц. Кроме того, "100" показывает значение 1500, и из этого значения можно вычислить частоту, которая будет равна 60 Гц. Кроме того, "101" показывает значение 900, и из этого значения можно вычислить частоту, которая будет равна 100 Гц. Кроме того, "110" показывает значение 750, и из этого значения можно вычислить частоту, которая будет равна 120 Гц. Следует отметить, что значение "111" является резервным.
С другой стороны, если типом объекта является аудио, то "000" показывает значение 1920, и из этого значения можно вычислить частоту, которая будет равна 48 кГц * 1024. Кроме того, "001" показывает значение 2089,8, и из этого значения можно вычислить частоту, которая будет равна 44,1 кГц * 1024. Кроме того, "010" показывает значение 2880, и из этого значения можно вычислить частоту, которая будет равна 32 кГц * 1024. Следует отметить, что другие значения являются резервными.
Параметр "division_factor", который имеет 2-разрядное поле, представляет собой коэффициент деления, который предназначен для точной регулировки уровня. Если типом объекта является видео, то "00" показывает 1, и "01" показывает 1,001. Кроме того, если типом объекта является аудио, то "00" показывает 1, и "01 " показывает 2.
Параметр типа временной метки "timestamp_type", который имеет 1-разрядное поле, представляет собой информацию, показывающую, является ли начальное значение начальным значением времени декодирования или начальным значением времени представления. Значение "1" показывает время декодирования (decode_timestamp), и значение "0" показывает время представления (display_timestamp).
Временная метка для обработки "timestamp_for_processing", которая имеет 32-разрядное поле, показывает начальное значение. В этом случае, если значение "time_tick" равно "01", то временная метка устанавливается с точностью 90 кГц. Кроме того, если значение "time_tick" равно "10", то временная метка представляет собой короткую временную метку "NTP short timestamp", определенную в RFC5059.
Параметр "au_count_in_mpu", который имеет 10-разрядное поле, показывает число блоков доступа (AU), содержавшихся в MPU. Параметр "delta_sequence_type", который имеет 1-разрядное поле, показывает, является ли значение смещения кодом переменной длины или 8-разрядной фиксированной длиной. Значение " 1 " показывает код переменной длины, и "0" показывает 8-разрядную фиксированную длину. Следует отметить, что кодирование переменной длины значения смещения будет описано ниже.
Параметр "delta_fixed_length_code", который имеет 8-разрядное поле, представляет собой область, где вставляется значение смещения, имеющее 8-разрядную фиксированную длину. Параметр "delta_variable_length_code", который является областью переменной длины, представляет собой область, где значение смещения вставляется в виде кода переменной длины. Следует отметить, что "tralling_filler()M" используется для вставки 1-разрядной-7-разрядной последовательности нулей ("0") по отношению к накоплению "delta_variable_length_code" при необходимости для выравнивания байтов с размером расширения заголовка полезной нагрузки ММТ (mmtp__payload_header_extension()).
Следует отметить, что путем добавления в семантику, показанную на фиг. 24, в случае видео можно задать time_tick=60 Гц и au_rate_scale=1, и в случае аудио можно задать time_tick; 44,1 кГц и au_rate_scale=1.
Следует отметить, что выше проиллюстрирована примерная структура, соответствующая первой технологии, в которой время декодирования или время представления и значение смещения вставляются в расширение заголовка полезной нагрузки ММТ. Возможна и другая примерная структура, соответствующая второй технологии, в которой время представления или время представления и время декодирования вставляются в расширение заголовка полезной нагрузки ММТ.
В этом случае на фиг. 25 показана примерная структура (синтаксис) расширения заголовка полезной нагрузки ММТ (mmtp_payload_header_extension()). Эта примерная структура также соответствует случаю, где информация о времени передается в заголовке полезной нагрузки MPU. На фиг. 26 показана семантика основной информации в примерной структуре.
Параметр "payload_header_extension_type", который имеет 16-разрядное поле, показывает тип расширения заголовка полезной нагрузки ММТ. Например, "0×01" показывает, что временная метка представления (время представления) подается в формате короткого времени NTP. "0×02" показывает, что временная метка представления и временная метка декодирования (время декодирования) подаются в формате короткого времени NTP. "0×03" показывает, что временная метка представления подается с точностью 90 кГц. "0×04" показывает, что временная метка представления и временная метка декодирования подаются с точностью 90 кГц.
Параметр "payload_header_extension_length", который имеет 16-разрядное поле, показывает размер расширения заголовка полезной нагрузки ММТ. Параметр "presentation_timestamp", который имеет 32-разрядное поле, показывает значение временной метки представления (время представления). Параметр "decoding_timestampM", который имеет 32-разрядное поле, показывает значение временной метки декодирования (время декодирования).
Далее будет дополнительно описан случай, где информация о времени передается для каждого блока доступа (AU), который является фрагментом в полезной нагрузке MPU. В этом случае, например, как показано на фиг. 27, время представления (временная метка представления) PTS и значение смещения DLT вставляются и передаются в области расширения заголовка MFU (mfu_header_extension) для каждого блока доступа (AU). Хотя это и не показано, время декодирования (временная метка декодирования) DTS можно доставить вместо времени представления (временной метки представления) PTS.
На фиг. 28 показана примерная структура (синтаксис) MFU. MFU содержит заголовок MFU (mfu_header()) и медиаданные MFU (mfu_media_data()). На фиг. 29 и фиг. 30 показана примерная структура (синтаксис) заголовка MFU (mfu_header()). На фиг.31 показана семантика основной информации этой примерной структуры.
Параметр "sequence_number", который имеет 32-разрядное поле, представляет собой порядковый номер MFU в MPU. Параметр "trackref_index", который имеет 8-разрядное поле, представляет собой номер записи медиа. Параметр "sample_number", который имеет 32-разрядное поле, показывает порядковый номер выборки (блок доступа), которой принадлежит MFU в поле moof. Параметр "priority" ("приоритет"), который имеет 8-разрядное поле, показывает уровень приоритета MFU в MPU. Параметр "dependency_counter", который имеет 8-разрядное поле, показывает число MFU, от которого зависит декодирование в MFU.
Параметр "offset" ("смещение"), который имеет 16-разрядное поле, показывает смещение относительно поля mdat. Параметр "length" ("длина"), который имеет 32-разрядное поле, показывает размер MFU. Параметр "multiLayer_flag", который имеет 1-разрядное поле, показывает присутствие или отсутствие многоуровневой информации. Параметр "mfu_header_extension_flag", который имеет 1-разрядное поле, показывает присутствие или отсутствие расширения MFU (mfu_extension).
"Dependency_id", "depth_flag", "temporal_id", "quality_id", "priority_id", "view_id" и "layerjd" показывают ID, которые показывают различные зависимости между MFU. Параметр "item_ID" показывает ID файла. Если флаг расширения заголовка MFU (mfu_header_extension_flag) равняется "1", nj присутствует расширение заголовка MFU (mfu_header_extension()).
На фиг. 32 показана примерная структура (синтаксис) расширения заголовка MFU (mfu_header_extension()). На фиг. 33 показана семантика основной информации этой примерной структуры. Параметр "asset_type", который имеет 2-разрядное поле, показывает тип объекта. Например, "01" показывает видео, и "10" показывает аудио.
Параметр отметки времени "time_tick", который имеет 2-разрядное поле, показывает, что синхронизирующий импульс используется для управления. Значение "01" показывает, что управление всем этим осуществляется с использованием синхронизирующих импульсов с точностью 90 кГц. Значение "10" показывает "NTP short time" ("формат короткого времени NTP"). Параметр "au_rate_scale", который имеет 10-разрядное поле, показывает информацию о масштабе для вычисления частоты видео или блоков доступа к аудио.
Если типом объекта является видео, то "000" показывает значение 3750, и из этого значения можно вычислить частоту, которая будет равна 24 Гц. Кроме того, "001" показывает значение 3600, и из этого значения можно вычислить частоту, которая будет равна 25 Гц. Кроме того, "010" показывает значение 3000, и из этого значения можно вычислить частоту, которая будет равна 30 Гц.
Кроме того, "011" показывает значение 1800, и из этого значения можно вычислить частоту, которая будет равна 50 Гц. Кроме того, "100" показывает значение 1500, и из этого значения можно вычислить частоту, которая будет равна 60 Гц. Кроме того, "101" показывает значение 900, и из этого значения можно вычислить частоту, которая будет равна 100 Гц. Кроме того, "110" показывает значение 750, и из этого значения можно вычислить частоту, которая будет равна 120 Гц. Следует отметить, что "111" является резервным параметром.
С другой стороны, если типом объекта является аудио, то "000" показывает значение 1920, и из этого значения можно вычислить частоту, которая будет равна 48 кГц * 1024. Кроме того, "001" показывает значение 2089,8, и из этого значения можно вычислить частоту, которая будет равна 44,1 кГц * 1024. Кроме того, "010" показывает значение 2880, и из этого значения можно вычислить частоту, которая будет равна 32 кГц * 1024. Следует отметить, что другие параметры являются резервными.
Параметр "division_factor", который имеет 2-разрядное поле, представляет собой коэффициент деления, который служит для того, чтобы точно регулировать уровень. Если типом объекта является видео, то "00" показывает 1, и "01" показывает 1,001. Кроме того, если типом объекта является аудио, то "00" показывает 1, и "01" показывает 2.
Параметр временной метки для обработки "timestamp_for_processing", который имеет 32-разрядное поле, показывает время соответствующего блока доступа. В этом случае, если значение "time_tick" равно "01", то временная метка находится с точностью 90 кГц. Кроме того, если значение "time_tick" равно "10", то временная метка представляет собой короткую временную метку NTP "NTP short timestamp", определенную в RFC5059.
Параметр типа временной метки "timestamp_type", который имеет 1-разрядное поле, показывает, является ли время, указанное в вышеупомянутом поле "timestamp_for_processing", временем декодирования или временем представления. Значение "1" показывает, что время является временем декодирования (decode_timestamp), и значение "0" показывает, что время является временем представления (display_timestamp). Параметр "delta_fixed_length_code", который имеет 8-разрядное поле, является областью, где вставляется значение смещения, имеющее 8-разрядную фиксированную длину.
Следует отметить, что выше проиллюстрирована примерная структура, в которой информация о времени (например, время представления PTS или время декодирования DTS и значение смещения DLT) вставляются в расширение заголовка MFU. Возможна примерная структура, в которой информация о времени вставляется в полезную нагрузку MFU. В этом случае на фиг. 34 и фиг. 35 показана примерная структура (синтаксис) заголовка MFU (mfu_header()). На фиг. 36 показана семантика основной информации этой примерной структуры.
Параметр типа временной метки "timestamp_type", который имеет 2-разрядное поле, показывает, подается или нет временная метка в головную часть полезной нагрузки MPU. Значение "00" показывает, что временная метка не подается. В этом случае первый байт (1-й байт) полезной нагрузки MPU равен головному байту фрагментированной полезной нагрузки MPU. Значение "01" показывает, что временная метка представления подается в головную часть полезной нагрузки MPU. В этом случае головной байт фрагментированной полезной нагрузки MPU подается непосредственно после временной метки представления. Значение "10" показывает, что как временная метка декодирования, так и временная метка представления подаются в головную часть полезной нагрузки MFU. В этом случае головной байт фрагментированной полезной нагрузки MPU подается непосредственно после временных меток.
Параметр отметки времени "time_tick", который имеет 1-разрядное поле, показывает точность значения временной метки. Значение "0" показывает, что временная метка подается с точностью 90 ООО Гц. Значение " 1 " показывает, что временная метка имеет формат короткого времени NTP.
На фиг. 37 показана примерная структура (синтаксис) полезной нагрузки MFU (mfu_payload()) и семантика основной информации. Параметр "presentation_timestamp", который имеет 32-разрядное поле, показывает значение временной метки представления (время представления). Параметр "decoding_timestamp", который имеет 32-разрядное поле, показывает значение временной метки декодирования (время декодирования). Если "timestamp_type" в заголовке равняется "01" MFU, то параметр "presentation_timestamp", который имеет 32-разрядное поле, присутствует непосредственно перед данными полезной нагрузки (payload_data). Кроме того, если "timestamp_type" в заголовке MFU равняется "10", то параметр "presentation_timestamp", который имеет 32-разрядное поле, и параметр "decoding_timestamp", который имеет 32-разрядное поле, присутствуют непосредственно перед данными полезной нагрузки (payload_data).
На фиг. 38 и фиг. 39 показана другая примерная структура (синтаксис) заголовка MFU (mfu_header()) в случае, где информация о времени вставлена в полезную нагрузку MFU. На фиг. 40 показана семантика основной информации этой примерной структуры. Флаг заголовка полезной нагрузки "payload_header_flag", который представляет собой 1-разрядную информацию о флаге, показывает, присутствует или нет заголовок полезной нагрузки MFU в головной части полезной нагрузки MFU. Значение "0" показывает, что отсутствует заголовок полезной нагрузки MFU. В этом случае первый байт (1-й байт) полезной нагрузки MFU равен головному байту фрагментированной полезной нагрузки MPU. Значение "1" показывает, что присутствует заголовок полезной нагрузки MFU. В этом случае головной байт фрагментированной полезной нагрузки MPU подается непосредственно после заголовка полезной нагрузки MFU.
На фиг. 41 показана примерная структура (синтаксис) полезной нагрузки MFU (mfu_payload()). На фиг.42 показана семантика основной информации этой примерной структуры. Параметр "mfu_payload_header_type", который имеет 8-разрядное поле, показывает тип заголовка полезной нагрузки MFU. Например, "0×01" показывает, что временная метка представления (время представления) подается в формате короткого времени NTP. "0×02" показывает, что временная метка представления и временная метка декодирования (время декодирования) подаются в формате короткого времени NTP. "0×03" показывает, что временная метка представления подается с точностью 90 кГц. "0×04" показывает, что временная метка представления и временная метка декодирования подаются с точностью 90 кГц.
Параметр "mfu_payload_header_length", который имеет 8-разрядное поле, показывает размер заголовка полезной нагрузки MFU непосредственно после этого элемента по количеству байтов. Параметр "presentation_timestamp", который имеет 32-разрядное поле, показывает значение временной метки представления (время представления). Параметр "decoding_timestamp", который имеет 32-разрядное поле, показывает значение временной метки декодирования (время декодирования).
Далее будет дополнительно описан случай, где информация о времени передается в сообщении. На фиг. 43 показана примерная структура (синтаксис) сообщения временной метки. Сообщение временной метки представляет собой сообщение для предоставления информации о времени приемника для того, чтобы приемник мог получать время декодирования (decode_timestamp) и время представления (display_timestamp) каждого блока доступа (AU), содержащегося в MPU.
Сообщение временной метки содержит таблицу временных меток (timestamp_table()), в которой представлено содержание сообщения. На фиг. 44 показана примерная структура (синтаксис) таблицы временных меток (timestamp_table()). Хотя это и не описано подробно, таблица временных меток содержит информацию (информацию о времени, информацию о преобразовании), аналогичную вышеупомянутому расширению заголовка полезной нагрузки ММТ (mmtp_payload_header_extension()) (смотри фиг. 23 и фиг. 24).
Сообщение временной метки содержит ID пакета (packet_ID) и связано с ним на уровне объекта. В дополнение, сообщение временной метки дополнительно содержит информацию, такую как ID таблицы (table_id), версию, длину и тому подобное, согласно традиционной конфигурации таблицы. В данном случае ID таблицы или назначенная версия является уникальной для системы. Кроме того, длина показывает размер всей таблицы.
Таблица временных меток (timestamp_table) представляет собой сообщение, которое представляет собой набор сообщений. Таблицу временных меток можно доставить в полезной нагрузке сообщения (полезной нагрузке сообщения()) в сообщении доступа к пакету. На фиг. 45 показана примерная структура (синтаксис) сообщения доступа к пакету.
В этом случае, как показано на чертеже, сообщение доступа к пакету начинается с идентификатора сообщения "message_id", показывающего сообщение доступа к пакету в части заголовка, за которой следует "version" ("версия") и "length" ("длина"). После этого параметр "number_of_tables" показывает количество таблиц, и циклов существует столько же, сколько существует таблиц. Каждый цикл начинается с "table_id", за которым следует "table_version" и "table_length". Параметр "table_id" совпадает с "table_id" в таблице временных меток (timestamp_table). Параметр "table_length" содержит "timestamp_table" и показывает размер, включающий в себя другую "таблицу". После этого "timestamp_table" подается непосредственно в "message_payload".
Кодирование переменной длины значения смешения
Далее будет описано кодирование переменной длины значения смещения DLT(n). Как описано выше, для того чтобы приемник мог воспроизводить время декодирования и время представления каждого блока доступа (AU), значение смещения каждого блока доступа доставляется последовательным образом. Значение смещения является эффективным тогда, когда последовательность в порядке передачи (= порядок декодирования) переупорядочивается в порядке представления. На значение смещения в основном ссылаются для того, чтобы правильно выполнить переупорядочение картинки для видео и обеспечить синхронное представление.
На фиг. 46 показана примерная взаимосвязь соответствия между временем декодирования D(n) и временем представления R(n) блока доступа AU(n). В случае этого примера расстояние M=3 переупорядочения и следующие значения, которых столько же, сколько и блоков доступа, являются кодированными.
Значение смещения DLT D(0)→R(0)=+1
Значение смещения DLT D(1)→R(1)=+3
Значение смещения DLT D(2)→R(2)=0
Значение смещения DLT D(3)→R(3)=0
Таким образом, представление временного ряда значений смещения имеет следующий вид: DLT +1, +3, 0, 0, +3, 0, 0, 3… Этот вид зависит от расстояния M переупорядочения. При увеличении расстояния M переупорядочения доля вставляемых нулей ("0") увеличивается. В этом варианте осуществления таким образом обеспечивается эффективный размер кода в зависимости от вероятности возникновения 0, и кодирование переменной длины выполняется с целью согласования пропускной способности.
На фиг. 47 представлена примерная таблица кода переменной длины для выполнения кодирования переменной длины в отношении временного ряда значений смещения. Короткому слову, которое возникает с высокой вероятностью, присваивается "0", и длинному слову присваивается значение, которое возникает в блоках с расстоянием M переупорядочения. Такое кодирование переменной длины позволяет эффективно уменьшить пропускную способность временного ряда значений смещения.
Следует отметить, что доля картинок В увеличивается при увеличении расстояния M переупорядочения, и поэтому увеличивается вышеупомянутая эффективность уменьшения пропускной способности в результате кодирования переменной длины. Это показано на фиг. 48. Например, если расстояние M переупорядочения равняется 3, пропускная способность значений смещения четырех блоков доступа "IPBB" составляет 10 битов, и среднее число составляет 10/4 битов. В отличие от этого, например, если расстояние M переупорядочения равняется 6, пропускная способность значений смещения четырех блоков доступа "IPBBBBB" составляет 13 битов, и среднее число 13/7 битов.
Как описано выше, в приемопередающей системе 10, показанной на фиг. 1, информация о времени, которая позволяет приемнику получать время декодирования и/или время представления каждого блока доступа, вставлена в пакет ММТ, который передается из передающего устройства 100 в приемное устройство 200. Таким образом, например, информация о времени, которая позволяет приемнику получать время декодирования и/или время представления, может быть доставлена удовлетворительным образом.
Кроме того, в приемопередающей системе 10, показанный на фиг. 1, информация о времени, например, значение (начальное значение) времени декодирования или времени представления, соответствующее начальному блоку доступа из одного или более блоков доступа, и значение смещения от времени декодирования до времени представления, каждый из которых соответствует каждому блоку доступа. Кроме того, это значение смещения представляет собой значение относительного смещения, но не значение абсолютного смещения. Таким образом, можно эффективным образом доставлять информацию о времени.
Кроме того, в приемопередающей системе 10, показанной на фиг. 1, временной ряд смещений перед доставкой подвергается кодированию переменной длины. Таким образом, можно уменьшить пропускную способность информации о времени.
2. Изменения
Следует отметить, что в вышеупомянутых вариантах осуществления был описан способ, в котором информация о времени в файле включена в пакет ММТ. В качестве альтернативы, информация о времени в "moov" или "moof" может подаваться непосредственно в области в заголовке полезной нагрузки ММТ или MFU или в сообщении, которое обеспечивает аналогичное преимущество.
Кроме того, в вышеупомянутых вариантах осуществления настоящая технология применяется в приемопередающей системе 10, в которой транспортный поток, содержащий транспортные пакеты, имеющие структуру ММТ, то есть ММТ пакеты, доставляется через РЧ канал передачи или канал передачи сети связи. Настоящая технология, конечно, также аналогичным образом применима к приемопередающим системам, в которых аналогичный транспортный поток доставляется через RF канал передачи или канал передачи сети связи.
Кроме того, настоящую технологию можно также выполнить следующим образом.
(1) Передающее устройство, включающее в себя:
блок генерирования транспортного потока, выполненный с возможностью генерирования транспортного потока, в котором первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексированы с разделением по времени;
блок передачи транспортного потока, выполненный с возможностью передачи транспортного потока на приемник через заданный канал передачи; и
блок вставки информации о времени, выполненный с возможностью вставки информации о времени, обеспечивающей получение приемником времени декодирования и/или времени представления в первом транспортном пакете или во втором транспортном пакете.
(2) Передающее устройство по (1), в котором
медиа для транспортировки, содержащееся в первом транспортном пакете, включает в себя один или более блоков доступа, а
информация о времени, вставленная с помощью блока вставки информации о времени, представляет собой информацию, обеспечивающую получение времени декодирования и/или времени представления, соответствующие каждому из одного или более блоков доступа.
(3) Передающее устройство по (2), в котором
информация о времени, вставленная с помощью блока вставки информации о времени, имеет значение времени декодирования или времени представления, соответствующее начальному блоку доступа из одного или более блоков доступа, и значение смещения от времени декодирования до времени представления, каждое из которых соответствует каждому блоку доступа.
(4) Передающее устройство по (3), в котором
значение смещения представляет собой значение относительного смещения, соответствующее значению абсолютного смещения, а
информация о преобразовании для преобразования значения относительного смещения в значение абсолютного смещения добавляется в информацию о времени, вставленную с помощью блока вставки информации о времени.
(5) Передающее устройство по (4), в котором
блок вставки информации о времени выполнен с возможностью вставки значения относительного смещения после кодирования переменной длины.
(6) Передающее устройство по (2), в котором
информация о времени, вставленная с помощью блока вставки информации о времени, представляет собой время представления или время представления и время декодирования, соответствующие каждому из одного или более блоков доступа.
(7) Передающее устройство по любому из (1)-(6), в котором полезная нагрузка первого транспортного пакета включает в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, при этом
блок вставки информации о времени выполнен с возможностью вставки информации о времени в часть заголовка полезной нагрузки.
(8) Передающее устройство по любому из (1)-(6), в котором
полезная нагрузка первого транспортного пакета включает в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, при этом
в части тела полезной нагрузки полезные нагрузки фрагментов, каждая из которых содержит один или более блоков доступа, полученных посредством фрагментирования медиа для транспортировки, выполнены вместе с заголовками фрагментов, а
блок вставки информации о времени выполнен с возможностью вставки в заголовок фрагментов информации о времени соответствующего блока доступа.
(9) Передающее устройство по любому из (1)-(6), в котором
полезная нагрузка первого транспортного пакета включает в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, при этом
в части тела полезной нагрузки полезные нагрузки, каждая из которых содержит один или больше блоков доступа, полученных путем фрагментирования медиа для транспортировки, выполнены вместе с заголовками фрагментов, а
блок вставки информации о времени выполнен с возможностью вставки в полезную нагрузку фрагмента информации о времени соответствующего блока доступа.
(10) Передающее устройство по любому из (1)-(6), в котором
полезная нагрузка второго транспортного пакета включает в себя часть заголовка полезной нагрузки и часть тела полезной нагрузки, а
блок вставки информации о времени выполнен с возможностью вставки информации о времени в часть тела полезной нагрузки.
(11) Передающее устройство по любому из (1)-(10), в котором
заданный каналом передачи является RF канал передачи или канал передачи сети связи.
(12) Передающее устройство по любому из (1)-(11), в котором
первый транспортный пакет и второй транспортный пакет представляют собой пакеты ММТ.
(13) Способ передачи, включающий в себя:
этап генерирования транспортного потока, на котором генерируют транспортный поток, в котором первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с разделением по времени;
этап передачи транспортного потока, на котором передают транспортный поток в приемник через заданный канал передачи; и
этап вставки информации о времени, на котором вставляют информацию о времени, обеспечивающую получение приемником времени декодирования и/или времени представления в первом транспортном пакете или во втором транспортном пакете.
(14) Приемное устройство, включающее в себя:
блок приема транспортного потока, выполненный с возможностью приема транспортного потока, при этом первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексированы разделением по времени от передатчика через заданный канал передачи, причем
информация о времени для получения времени декодирования и/или времени представления вставлена в первый транспортный пакет или во второй транспортный пакет, а
приемное устройство дополнительно включает в себя блок обработки медиа для транспортировки, выполненный с возможностью обработки медиа для транспортировки, извлеченного из транспортного потока с использованием времени декодирования и/или времени представления, которые получаются на основании информации о времени.
(15) Приемное устройство по п. (14), в котором
медиа для транспортировки, содержащееся в первом транспортном пакете, включает в себя один или более блоков доступа, а
информация о времени представляет собой значение времени декодирования или времени представления, соответствующее начальному блоку доступа одного или более блоков доступа, и значение относительного смещения, соответствующее значению абсолютного смещения от времени декодирования до времени представления, каждое из которых соответствует каждому блоку доступа, при этом
приемное устройство дополнительно включает в себя блок преобразования значения смещения, выполненный с возможностью преобразования значения относительного смещения в значение абсолютного смещения.
(16) Способ приема, включающий в себя:
этап приема транспортного потока, на котором принимают транспортный поток, в котором первый транспортный пакет, содержащий медиа для транспортировки в полезной нагрузке, и второй транспортный пакет, содержащий информацию о медиа для транспортировки в полезной нагрузке, мультиплексируются с разделением по времени, от передатчика через заданный канал передачи, при этом
информация о времени для получения времени декодирования и/или времени представления вставляется в первый транспортный пакет или во второй транспортный пакет, причем
способ приема дополнительно включает в себя этап обработки медиа для транспортировки, на котором обрабатывают медиа для транспортировки, извлеченное из транспортного потока с использованием времени декодирования и/или времени представления, полученных на основании информации о времени.
Основная особенность настоящей технологии состоит в том, что значение времени декодирования или времени представления, соответствующее начальному блоку доступа из множества блоков доступа, и значение относительного смещения от времени декодирования до времени представления, каждое из которых соответствует каждому блоку доступа, вставляются в пакет ММТ, посредством чего информацию о времени можно доставлять эффективным образом (смотри фиг. 15 и фиг. 18).
Перечень ссылочных позиций
10
приемопередающая система
100
устройство для транспортировки пакетов передачи
101
блок генерирования объекта
102
кодер
103
блок пакетирования транспорта
104
блок генерирования синхронизирующих импульсов
105
блок передачи IP
106
блок передачи RF сигналов
200
устройство приема транспортных пакетов
201
блок приема RF сигналов
202
блок приема IP
203
блок генерирования синхронизирующих импульсов
204
блок распаковки транспорта
205
блок декодирования/вывода
301
демультиплексор
302
видеодекодер
303
блок отображения видео
304
аудиодекодер
305
блок вывода аудио
306
блок управления.