ПЕРЕДАЧА СООБЩЕНИЙ ДОПОЛНИТЕЛЬНОЙ РАСШИРЕННОЙ ИНФОРМАЦИИ В ФОРМАТЕ ПОЛЕЗНОЙ НАГРУЗКИ ТРАНСПОРТНОГО ПРОТОКОЛА РЕАЛЬНОГО ВРЕМЕНИ
TRANSMITTING SUPPLEMENTAL ENHANCEMENT INFORMATION MESSAGES IN REAL-TIME TRANSPORT PROTOCOL PAYLOAD FORMAT

Область техники, к которой относится изобретение
[0001] Настоящее изобретение в целом относится к масштабируемому кодированию видеосигналов. Более конкретно, настоящее изобретение касается повышения устойчивости к ошибкам в стандартах Н.264/усовершенствованного кодирования видеосигналов (AVC) и масштабируемого кодирования видеоданных (SVC).
Предпосылки создания изобретения
[0002] Этот раздел предназначен для представления предпосылок создания изобретения или контекста изобретения, которое изложено в формуле изобретения. Описанное здесь может включать концепции, которые могут быть осуществлены, но не обязательно те, которые были ранее задуманы или осуществлены. Поэтому, если здесь не указано иное, описанное в этом разделе не является описанием известного уровня техники.
[0003] Стандарты кодирования видеосигналов включают стандарты сектора стандартизации электросвязи Международного союза электросвязи (ITU-T) ITU-T H.261, группы экспертов по кодированию подвижных изображений (MPEG) Международной организации по стандартизации/ Международной электротехнической комиссии (ISO/IEC) ISO/IEC MPEG-1 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC). Кроме того, в настоящее время ведутся исследовательские работы в отношении разработки новых стандартов кодирования видеосигналов. Одним из таких стандартов, находящимся в процессе разработки, является стандарт SVC, который станет масштабируемым расширением для H.264/AVC. Другим разрабатываемым стандартом является стандарт многоракурсного кодирования (Multi-view Video Coding - MVC), который также является расширением для H.264/AVC. Еще одна такая исследовательская работа включает разработку стандартов кодирования видеосигналов в Китае.
st
st
[0004] Самый последний проект SVC описан в документе объединенной группы специалистов (JVT) JVT-U201, “Joint Draft 8 of SVC Amendment”, 21 JVT meeting, HangZhou, China, Oct. 2006, доступном no адресу ftp3.itu.ch/av-arch/jvt-site/2006_10_Hangzhou/JVT-U201.zip. Самый последний проект MVC описывается в документе JVT-U209, “Joint Draft 1.0 on Multiview Video Coding”, 21 JVT meeting, HangZhou, China, Oct. 2006, доступном по адресу ftp3.itu.ch/av-arch/jvt-site/2006_10_Hangzhou/JVT-U209.zip. Оба эти документа полностью включены в данное описание путем ссылки на соответствующие источники.
[0005] Масштабируемая мультимедийная информация обычно упорядочивается по иерархическим уровням данных. Базовый уровень содержит индивидуальное представление кодированного мультимедийного потока, такого как видеопоследовательность. Уровни расширения содержат данные улучшения относительно предыдущих уровней в иерархии уровней. Качество декодированного мультимедийного потока прогрессивно улучшается, когда уровни расширения добавляются к базовому уровню. Уровень расширения улучшает временную разрешающую способность (то есть частоту кадров), пространственную разрешающую способность или просто качество контента видеоданных, представленного другим уровнем или его частью. Каждый уровень вместе со всеми его зависимыми уровнями является представлением видеосигнала с определенной пространственной разрешающей способностью, временной разрешающей способностью и уровнем качества. Поэтому термин “масштабируемое представление уровня” используется здесь, чтобы описать масштабируемый уровень вместе со всеми его зависимыми уровнями. Часть масштабируемого битового потока, соответствующая масштабируемому представлению уровня, может быть извлечена и декодирована, чтобы произвести представление исходного сигнала с определенной точностью воспроизведения.
[0006] Концепция уровня кодирования видеосигналов (VCL) и уровня сетевой абстракции (NAL) унаследована от усовершенствованного кодирования видеосигналов (AVC). Уровень VCL содержит функциональные возможности обработки сигналов кодека - механизмы, такие как преобразование, квантование, предсказание с компенсацией движения, фильтр с петлей обратной связи, межуровневое предсказание.
Кодированное изображение базового уровня или уровня расширения состоит из одного или нескольких слайсов. Уровень NAL инкапсулирует каждый слайс, формируемый уровнем VCL, в один или несколько блоков NAL. Блок NAL содержит заголовок блока NAL и полезную нагрузку блока NAL. Заголовок блока NAL содержит тип блока NAL, указывающий, содержит ли блок NAL кодированную секцию, разбиение данных кодированной секции, набор параметров последовательности или изображения и т.д. Поток блоков NAL представляет собой конкатенацию ряда блоков NAL. Кодированный битовый поток согласно стандарту H.264/AVC или его расширениям, например, SVC, является или потоком блоков NAL, или потоком байтов с приписыванием префикса кода запуска к каждому блоку NAL в потоке блоков NAL.
[0007] Каждый уровень кодирования SVC формируется блоками NAL, представляющими биты кодированного видеосигнала уровня. Поток транспортного протокола реального времени (RTP), транспортирующий только один уровень, будет транспортировать блоки NAL, принадлежащие только этому уровню. Поток RTP, несущий полный масштабируемый битовый поток видеосигнала, будет транспортировать блоки NAL базового уровня и одного или нескольких уровней расширения. Стандарт SVC определяет порядок декодирования этих блоков NAL.
[0008] В некоторых случаях данные на уровне расширения могут быть усечены после некоторого места или в произвольных позициях, где каждая позиция усечения может включать дополнительные данные, представляющие все более и более улучшенное визуальное качество. В случаях, когда позиции усечения расположены близко, масштабируемость называют “мелкозернистой масштабируемостью” (FGS, fine grained (granular) scalability). В отличие от FGS масштабируемость, обеспечиваемая теми уровнями расширения, которые могут быть усечены только в определенных грубых позициях, называется “крупнозернистой масштабируемостью” (CGS, coarse-grained (granularity) scalability).
[0009] Согласно стандарту кодирования видеосигналов H.264/AVC блок доступа включает одно первичное изображение. В некоторых системах обнаружение границ блока доступа может быть упрощено вставкой разделителя блока доступа блока NAL в битовый поток. В стандарте SVC блок доступа может содержать несколько первичных кодированных изображений, но не более одного изображения на каждую уникальную комбинацию dependencyjevel, temporaljevel и qualityjevel (уровня зависимости, временного уровня и уровня качества).
[0010] Битовый поток кодированного видеосигнала может содержать дополнительную информацию, расширяющую использование видеосигнала для широкого многообразия задач. Например, дополнительная расширенная информация (SEI, supplemental enhancement information) и информация, предназначенная для удобства использования видео (VUI, video usability information), как определено в H264/AVC, обеспечивают такие функциональные возможности. Стандарт H.264/AVC и его расширения включают поддержку сигнализации SEI посредством сообщений SEI. Сообщения SEI не требуются процессу декодирования, чтобы генерировать правильные значения отсчетов для выходных изображений. Они полезны для других целей, например, для повышения устойчивости к ошибкам и воспроизведения. Стандарт H.264/AVC содержит синтаксис и семантику для специфицированных сообщений SEI, но никакой процесс обработки сообщений у получателя не определен. Следовательно, кодерам требуется соблюдать стандарт H.264/AVC, когда они создают сообщения SEI, а декодеры, соответствующие стандарту H.264/AVC, не требуются, чтобы обрабатывать сообщения SEI для соответствия порядку вывода. Одна из причин включения синтаксиса и семантики сообщений SEI в стандарт H.264/AVC заключается в том, чтобы позволить спецификациям систем, таким как спецификации мультимедиа 3GPP и спецификации консорциума цифрового телевизионного вещания (DVB), идентично интерпретировать дополнительную информацию и, следовательно, взаимодействовать. Предполагается, что спецификации систем могут требовать использования специальных сообщений SEI и на стороне кодировании, и на стороне декодировании, и процесс обработки сообщений SEI у получателя может быть определен для приложения в спецификации системы.
[0011] Кодирование SVG использует механизм, подобный тому, который используется в H.264/AVC для обеспечения иерархической временной масштабируемости. При кодировании SVC некоторый набор опорных и неопорных изображений может быть исключен из кодированного битового потока без воздействия на декодирование остающегося битового потока. Иерархическая временная масштабируемость требует многочисленных опорных изображений для компенсации движения, то есть имеется буфер опорных изображений, содержащий многочисленные декодированные изображения, из которых кодер может выбирать опорное изображение для интер-предсказания. В стандарте H.264/AVC компоненты, называемые подпоследовательностями, делают возможной иерархическую временную масштабируемость, в которой каждый уровень расширения содержит подпоследовательности, и каждая подпоследовательность содержит ряд опорных и/или неопорных изображений. Подпоследовательность содержит также ряд взаимозависимых изображений, которые могут размещаться без создания помех для любой другой подпоследовательности на любом более низком уровне подпоследовательностей. Уровни подпоследовательностей иерархически размещены на основе их зависимости друг от друга. Поэтому, когда подпоследовательность располагается на самом высоком уровне расширения, остающийся битовый поток остается правильным. В стандарте H.264/AVC сигнализация информации о временной масштабируемости выполняется с использованием сообщений дополнительной расширенной информации (SEI), связанных с подпоследовательностями. В стандарте SVC иерархия временных уровней указывается в заголовке блоков уровня сетевой абстракции (NAL).
[0012] Кроме того, кодирование SVC использует механизм межуровневого предсказания, посредством которого некоторая информация может быть предсказана из уровней, отличных от текущего восстановленного уровня или следующего нижнего уровня. Информация, которая может предсказываться межуровневым предсказанием, включает внутреннюю текстуру, движение и остаточные данные. Межуровневое предсказание движения включает также предсказание режима блочного кодирования, информацию заголовка и т.д., причем информация о движении из нижнего уровня может использоваться для предсказания более высокого уровня. В стандарте SVC возможно также использование интра-кодирования, то есть предсказания на основании окружающих макроблоков или расположенных в том же месте макроблоков нижних уровней. Такие методы предсказания не используют информацию о движении и, следовательно, называются методами интра-предсказания. Кроме того, остаточные данные из нижних уровней также могут использоваться для предсказания текущего уровня.
[0013] Кодирование SVC, как описано выше, включает кодирование “базового уровня” с некоторым минимальным качеством, а также кодирование расширенной информации (“информации улучшения”), которая увеличивает качество до максимального уровня. Базовый уровень потоков SVC обычно совместим с усовершенствованным кодированием видеосигналов (AVC). Другими словами, декодеры AVC могут декодировать базовый уровень потока SVC и игнорировать специфические для SVC данные. Эта возможность была реализована специфицированием тех типов блоков NAL кодированного слайса, которые являются специфическими для SVC, как зарезервированных для будущего использования в стандарте AVC; они должны игнорироваться согласно спецификации AVC.
[0014] Изображение мгновенного обновления декодирования (1DR) согласно H.264/AVC содержит только слайсы с интра-кодированием и заставляет помечать все опорные изображения за исключением текущего изображения как “не используемые в качестве опорных”. Кодированная видеопоследовательность определена как последовательность последовательных блоков доступа в порядке декодировании от блока доступа IDR, включительно, до следующего блока доступа IDR, исключая его, или до конца битового потока в зависимости от того, что из них появляется ранее. Группа изображений (GOP) в стандарте H.264/AVC относится к ряду изображений, который является непрерывным в порядке декодирования, начиная с изображения, кодированного интра-кодированием, и заканчивая первым изображением (не включая его) следующей GOP или кодированной видеопоследовательности в порядке декодирования. Все изображения в пределах GOP после изображения с интра-кодированием в порядке вывода могут быть правильно декодированы, независимо от того, были ли декодированы любые предыдущие изображения. Открытая группа GOP - такая группа изображений, в которой изображения, предшествующие начальному изображению с интра-кодированием в порядке вывода, могут не быть правильно декодируемыми. Декодер H.264/AVC может распознавать изображение с интра-кодированием, начинающее открытую группу GOP, на основании сообщения SEI о точке восстановления в битовом потоке H.264/AVC. Изображение, начинающее открытую группу GOP, называется здесь изображением открытого обновления декодирования (ODR). Закрытая группа GOP - такая группа изображений, в которой все изображения могут быть правильно декодированы. В стандарте H.264/AVC закрытая группа GOP начинается с блока доступа IDR.
[0015] Кодированные изображения могут быть представлены индексом tl0_pic_idx. Индекс tl0_pic_idx указывает блоки NAL в битовом потоке SVC с одним и тем же значением dependency_id и quality_level в одном блоке доступа, где temporal_level равен нулю. Для изображения IDR с temporal_level, равным нулю, значение tl0_pic_idx равно нулю или любому значению в диапазоне от 0 до N-1, включительно, где N - положительное целое число. Для любого другого изображения с temporal_level, равным нулю, значение tl0_pic_idx равно (tl0_pic_idx_0+1)%N, где tl0_pic_idx_0 -значение tl0_pic_idx предыдущего изображения с temporal_level, равным нулю, а % обозначает “по модулю”. В текущей спецификации SVC tl0_pic_idx включен в заголовок блока NAL как условное поле. Приемник или сетевой элемент, поддерживающий мультимедиа (MANE), может исследовать значения tl0_pic_idx, чтобы определить, принял ли он все ключевые изображения (то есть изображения с временным уровнем, равным 0). Если случается потеря данных для ключевого изображения, то тогда может быть послан сигнал обратной связи для информирования кодера, который в свою очередь может предпринимать некоторые действия по исправлению, например, повторно передавая потерянное ключевое изображение.
[0016] Формат полезной нагрузки RTP для H.264/AVC определен в документе по технической политике (запросе комментариев) (RFC) 3984 (доступном по адресу www.rfc-editor.org/rfc/rfc3984.txt), а проект формата полезной нагрузки RTP для SVC специфицирован в документе комитета по инженерным проблемам Интернет (IETF) Internet-Draft draft-ietf-avt-rtp-svc-00 (доступном по адресу tools.ietf.org/id/draft-ietf-avt-rtp-svc-00.txt).
[0017] Документ RFC 3984 специфицирует несколько режимов пакетирования, одним из которых является режим с перемежением. Если используется пакетирование с перемежением, то блоки NAL из нескольких блоков доступа могут пакетироваться в одни пакеты RTP. Документ RFC 3984 специфицирует также концепцию номера порядка декодирования (DON), который указывает порядки декодирования блоков NAL, транспортируемых в потоке RTP.
[0018] В проекте формата полезной нагрузки RTP для SVC специфицируется новый тип блока NAL, называемый блоком NAL с информацией о масштабируемости контента полезной нагрузки (PACSI). Блок NAL PACSI, если он представлен, является первым блоком NAL в объединенном (агрегированном) пакете, и он не представлен в пакетах других типов. Блок NAL PACSI указывает характеристики масштабируемости, которые являются общими для всех оставшихся блоков NAL в полезной нагрузке, таким образом упрощая для элемента MANE принятие решения переслать/обработать/отбросить объединенной пакет. Передатчики могут создавать блоки NAL PACSI, а приемники могут игнорировать их или использовать как подсказки, чтобы сделать возможной эффективную обработку объединенного пакета. Когда первый объединенный блок объединенного пакета содержит блок NAL PACSI, имеется по меньшей мере один дополнительный объединенный блок, присутствующий в том же самом пакете. Поля заголовка RTP устанавливаются согласно остающимся блокам NAL в объединенном пакете. Когда блок NAL PACSI включается в многовременной объединенный пакет, номер порядка декодирования для блока NAL PACSI устанавливается так, чтобы указать, что блок NAL PACSI является первым блоком NAL в порядке декодирования среди блоков NAL в объединенном пакете или что блок NAL PACSI имеет идентичный номер порядка декодирования с первым блоком NAL в порядке декодирования среди остающихся блоков NAL в объединенном пакете. Структура блока NAL PACSI является той же самой, что и у четырехбайтового заголовка блока NAL SVC (где бит Е равен 0), описанного ниже.
Сущность изобретения
[0019] Различные формы осуществления настоящего изобретения предлагают способ модификации мер повышения устойчивости к ошибкам с помощью передачи индексов изображений с временным уровнем 0, таких как tl0_pic_idx, в сообщении SEI вместо опционального включения их в заголовок блока NAL. Кроме того, предусмотрен механизм, обеспечивающий повторение любых сообщений SEI в пакетах протокола передачи в реальном времени (RTP). Предоставление возможности такого повторения любых сообщений SEI облегчает обнаружение потерянных изображений временного уровня 0 на основании любого принятого пакета.
[0020] Передача tl0_pic_idx в сообщении SEI приводит к такому же прямому и устойчивому обнаружению потерь данных, как и в случае, когда tl0_pic_idx передается в заголовке блока NAL. Кроме того, не требуются никакие изменения в заголовке блока NAL или заголовке секции, и не изменяются семантики tl0_pic_idx. Кроме того, реализация мер повышения устойчивости к ошибкам, таких как описанные здесь, не влияет на специфицированный процесс декодирования H.264/AVG или его текущие расширения.
[0021] Различные формы осуществления изобретения предусматривают способ, компьютерный программный продукт и устройство для пакетирования кодированного битового потока, представляющего видеопоследовательность. Это пакетирование включает пакетирование по меньшей мере части кодированной видеопоследовательности в первый пакет, причем первый пакет содержит информацию, суммирующую контент по меньшей мере части кодированной видеопоследовательности, и предоставление в первом пакете дополнительной расширенной информации, связанной с указанной по меньшей мере частью кодированной видеопоследовательности. Формы осуществления изобретения предусматривают также способ, компьютерный программный продукт и устройство для депакетирования кодированного видеосигнала, которое включает депакетирование по меньшей мере части кодированной видеопоследовательности из первого пакета, причем первый пакет содержит информацию, суммирующую контент по меньшей мере части кодированной видеопоследовательности. Кроме того, из первого пакета получается дополнительная расширенная информация, связанная с указанной по меньшей мере частью кодированной видеопоследовательности.
[0022] Различные формы осуществления предусматривают способ, компьютерный программный продукт и устройство для пакетирования битового потока с временным масштабированием, представляющего последовательность изображений; способ включает пакетирование по меньшей мере части последовательности изображений в первый пакет, причем первый пакет содержит первую информацию, суммирующую контент по меньшей мере части кодированной последовательности изображений, и предоставление в первом пакете второй информации, указывающей порядок декодирования изображений на самом низком временном уровне в иерархии временных уровней. Другие формы осуществления изобретения предусматривают способ, компьютерный программный продукт и устройство для депакетирования кодированного видеосигнала, которое включает депакетирование из первого пакета по меньшей мере части кодированной последовательности изображений, причем первый пакет содержит первую информацию, суммирующую контент по меньшей мере части кодированной последовательности изображений. Дополнительно, из первого пакета получается вторая информация, указывающая порядок декодирования изображения на самом низком временном уровне в иерархии временных уровней.
[0023] Эти и другие преимущества и особенности изобретения вместе с его структурой и способом работы станут очевидными из нижеследующего подробного описания, приводимого вместе с прилагаемыми чертежами, на которых аналогичные элементы имеют аналогичные номера позиций.
Краткое описание чертежей
[0024] На фиг.1 показана обобщенная мультимедийная система связи, предназначенная для использования с настоящим изобретением.
[0025] На фиг.2 показан перспективный вид мобильного телефона, который может использоваться при реализации настоящего изобретения.
[0026] На фиг.3 схематически представлены телефонные схемы мобильного телефона фиг.2.
[0027] Фиг.4 представляет собой иллюстрацию примера битового потока с временным масштабированием.
Подробное описание различных форм осуществления изобретения
[0028] На фиг.1 показана мультимедийная система связи общего типа для использования с настоящим изобретением. Как показано на фиг.1, источник 100 данных подает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате или в виде некоторой комбинации этих форматов. Кодер 110 кодирует исходный сигнал, формируя кодированный битовый поток мультимедийных данных. Кодер 110 может быть способен кодировать более одного вида мультимедиа, например аудио и видео, или может требоваться более одного кодера 110, чтобы кодировать различные виды мультимедийной информации исходного сигнала. Кодер 110 может получать также синтетически созданный входной сигнал, такой как графика и текст, или он может быть способен создавать кодированные битовые потоки синтетических мультимедийных данных. Ниже, чтобы упростить описание, рассматривается обработка только одного кодированного битового потока мультимедийных данных одного вида мультимедийной информации. Следует заметить, однако, что типичные широковещательные услуги в реальном времени включают несколько потоков (обычно по меньшей мере по одному потоку данных аудио, видео и текстовых субтитров). Следует также заметить, что система может содержать несколько кодеров, но далее рассматривается только один кодер 110, чтобы упростить описание без потери общности.
[0029] Должно быть понятно, что, хотя текст и примеры, содержащиеся здесь, могут конкретно описывать процесс кодирования, специалистам в данной области техники понятно, что те же самые концепции и принципы применимы также к соответствующему процессу декодирования и наоборот.
[0030] Кодированный битовый поток мультимедийных данных передается в запоминающее устройство 120. Запоминающее устройство 120 может быть выполнено в виде памяти большого объема любого типа, чтобы хранить кодированный битовый поток мультимедийных данных. Формат кодированного битового потока мультимедийных данных в запоминающем устройстве 120 может быть форматом элементарного самостоятельного битового потока, или же один или несколько кодированных битовых потоков мультимедийных данных могут инкапсулироваться в файл контейнера. Некоторые системы работают “напрямую”, то есть без запоминающего устройства передают кодированный битовый поток мультимедийных данных из кодера 110 непосредственно в передатчик 130. Затем кодированный битовый поток мультимедийных данных по мере необходимости передается в передатчик 130, называемый также сервером. Формат, используемый при передаче, может быть форматом элементарного самостоятельного битового потока, форматом пакетного потока или же один или несколько кодированных битовых потоков мультимедийных данных могут инкапсулироваться в файл контейнера. Кодер 110, запоминающее устройство 120 и передатчик 130 могут находиться в одном физическом устройстве, или они могут быть включены в отдельные устройства. Кодер 110 и передатчик 130 могут работать с “живым” контентом в реальном времени; в этом случае кодированный битовый поток мультимедийных данных обычно не хранится постоянно, а буферизируется в течение малых периодов времени в кодере 110 контента и/или в передатчике 130, чтобы сгладить изменения в задержке обработки, задержке передачи и скорости передачи кодированных мультимедийных данных.
[0031] Передатчик 130 передает кодированный битовый поток мультимедийных данных, используя стек протоколов связи. Стек может включать в качестве не ограничивающих изобретение примеров протокол передачи в режиме реального времени (RTP), протокол пользовательских дейтаграмм (UDP) и протоколы Интернета (IP). Когда стек протоколов связи ориентирован на пакетную передачу, передатчик 130 инкапсулирует кодированный битовый поток мультимедийных данных в пакеты. Например, когда используется протокол RTP, передатчик 130 инкапсулирует кодированный битовый поток мультимедийных данных в пакеты RTP согласно формату полезной нагрузки RTP. Обычно каждый вид мультимедийной информации имеет специализированный формат полезной нагрузки RTP. Снова следует отметить, что система может содержать более одного передатчика 130, но для простоты в дальнейшем описании рассматривается только один передатчик 130.
[0032] Передатчик 130 может быть подключен или не подключен к шлюзу 140 через сеть связи. Шлюз 140 может выполнять функции различного вида, такие как преобразование потока пакетов согласно одному стеку протоколов связи в другой стек протоколов связи, объединение и разветвление потоков данных, а также манипулирование потоком данных согласно возможностям нисходящей линии связи и/или приемника, таким как управление скоростью передачи данных пересылаемого потока согласно преобладающим условиям нисходящих линий сети связи. Примеры шлюзов 140 включают модули управления многосторонними конференциями (MCU), шлюзы между видеотелефонией с коммутацией каналов и с пакетной коммутацией, услугу полудуплексной голосовой связи Push-to-Talk (“Нажми и говори”) с помощью сотовой сети (РоС), инкапсуляторы IP в системах цифрового телевизионного вещания на карманные мобильные устройства (DVB-H) или абонентские приставки, которые локально пересылают широковещательные передачи на домашние беспроводные сети. Когда используется протокол RTP, шлюз 140 называется микшером RTP и действует как конечная точка соединения RTP.
[0033] Система содержит один или несколько приемников 150, обычно способных к приему, демодуляции и деинкапсуляции переданных сигналов в кодированный битовый поток мультимедийных данных. Кодированный битовый поток мультимедийных данных далее обычно обрабатывается декодером 160, выходной сигнал которого представляет собой один или несколько несжатых потоков мультимедийных данных. Наконец, устройство 170 воспроизведения может воспроизводить несжатые потоки мультимедийных данных, например, с помощью громкоговорителя или дисплея. Приемник 150, декодер 160 и воспроизводящее устройство 170 могут находиться в одном физическом устройстве, или они могут быть включены в отдельные устройства. Следует отметить, что битовый поток, который будет декодироваться, может приниматься от удаленного устройства, расположенного в сети фактически любого типа. Кроме того, битовый поток может приниматься от местных аппаратных или программных средств.
[0034] Масштабируемость с точки зрения скорости передачи данных, сложности декодирования и размера изображения является желательным свойством для передачи в гетерогенной и подверженной ошибкам среде. Это свойство желательно для того, чтобы противодействовать ограничениям, таким как ограничения на скорость передачи данных, разрешающую способность дисплея, пропускную способность сети и вычислительную мощность приемного устройства.
[0035] Устройства связи согласно настоящему изобретению могут осуществлять связь с использованием различных технологий передачи, включая в качестве не ограничивающих изобретение примеров множественный доступ с кодовым разделением каналов (CDMA), глобальную систему подвижной связи (GSM), универсальную систему подвижной связи (UMTS), многостанционный доступ с временным разделением каналов (TDMA), многостанционный доступ с частотным разделением каналов (FDMA), протокол управления передачей/протокол Интернет (TCP/IP), службу обмена короткими сообщениями (SMS), службу передачи мультимедийных сообщений (MMS), электронную почту, службу мгновенной передачи сообщений (IMS), Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь с использованием различных сред, включая в качестве примеров радио, инфракрасное излучение, лазер, кабельное соединение и т.п.
[0036] На фиг.2 и 3 показано типичное мобильное устройство 12, в котором может быть осуществлено настоящее изобретение. Должно быть понятно, однако, что настоящее изобретение не ограничено одним конкретным типом мобильного устройства 12 или другого электронного устройства. Некоторые или все средства, изображенные на фиг.2 и 3, могут быть включены в некоторые или все устройства, представленные на фиг 1.
[0037] Мобильное устройство 12 на фиг.2 и 3 содержит корпус 30, дисплей 32 в виде индикатора на жидких кристаллах, клавиатуру 34, микрофон 36, телефонный капсюль 38, батарею 40, инфракрасный порт 42, антенну 44, смарт-карту 46 в виде универсальной микропроцессорной карты 3-го поколения (UICC) согласно одной из форм осуществления изобретения, устройство 48 считывания с карты, схему 52 радиоинтерфейса, схему 54 кодека, контроллер 56 и запоминающее устройство 58. Все отдельные цепи и элементы представляют собой устройства хорошо известного в данной области техники типа, например, по номенклатуре мобильных телефонов фирмы Nokia.
[0038] На фиг.4 показан пример битового потока с четырьмя временными уровнями, а также значениями tl0_pic_idx для каждого изображения. Временной уровень, равный 0, является самым низким временным уровнем в иерархии уровней. Согласно семантике tl0_pic_idx, если изображение имеет временной уровень, равный 0, то tl0_pic_idx является индексом temporal-level-0 самого изображения. Поэтому значения tl0_pic_idx для изображений со счетчиком последовательности изображения (РОС, picture order count), равные 0, 8 и 16, равняются 0, 1 и 2 соответственно. Если изображение имеет временной уровень больше чем 0, то tl0_pic_idx является индексом temporal-level-0 предыдущего изображения в порядке декодирования с временным уровнем, равным 0. Следовательно, все значения tl0_pic_idx для изображений со счетчиком РОС, равным от 1 до 7, равны 1, потому что для них предыдущим изображением в порядке декодирования с временным уровнем, равным 0, является изображение со счетчиком РОС, равным 8, и все значения tl0_pic_idx для изображений со счетчиком РОС, равным от 9 до 15, равны 2, потому что для них предыдущим изображением в порядке декодирования с временным уровнем, равным 0, является изображение со счетчиком РОС, равным 16.
[0039] Различные формы осуществления настоящего изобретения обеспечивают способ модификации мер повышения устойчивости к ошибкам путем передачи индексов изображений с временным уровнем 0, таких как tl0_pic_idx, в сообщении SEI, вместо опционального включения их в заголовок блока NAL. Кроме того, предусмотрен механизм, позволяющий обеспечить повторение любых сообщений SEI в пакетах протокола передачи в реальном времени (RTP). Такое повторение любых сообщений SEI облегчает обнаружение потерянных изображений с временным уровнем 0 на основе любого принятого пакета.
[0040] Поле, в котором представлен индекс t10_pic_idx, может быть включено в новое сообщение SEI, которое может быть связано с каждым кодированным изображением с уровнем temporal_level, равным нулю или какому-либо значению. Новое сообщение SEI может быть названо, например, сообщением SEI для индекса изображения tl0, и может быть определено следующим образом:
tl0_picture_idx(payloadSize){
C
Descriptor
tl0 pic_idx
5
u(8)
}
[0041] Передача tl0_picjdx в новом сообщении SEI приводит к такому же прямому и устойчивому обнаружению потери изображения с временным уровнем 0, как и в случае, когда tl0_pic_idx передается в заголовке блока NAL. Кроме того, не требуются никакие изменения в заголовке блока NAL или заголовке секции и не изменяются семантики tl0_pic_idx. Кроме того, реализация мер повышения устойчивости к ошибкам, таких как описанные здесь, не влияет на специфицированный процесс декодирования H.264/AVC или текущие расширения. Фактически, средства повышения устойчивости к ошибкам, подобные tl0_pic_idx, такие как сообщение SEI информации о подпоследовательности, которое также включает счетчик кадров, ранее включались в сообщения SEI в отличие от синтаксических структур высокого уровня, таких как заголовок блока NAL и заголовок секции. Следовательно, такой способ передачи индексов изображений с временным уровнем 0 соответствует другим обычным средствам повышения устойчивости к ошибкам стандарта H.264/AVC.
[0042] Кроме того, возможно модифицировать блок NAL с информацией о масштабируемости контента полезной нагрузки (PACSI) так, чтобы включить в него новое сообщение SEI. В настоящее время блок NAL PACSI, если он присутствует, является первым блоком NAL в пакете и содержит заголовок блока NAL SVC, суммирующий контент пакета. Полезная нагрузка блока NAL PACSI пуста. Тип блока NAL для блока NAL PACSI выбирается среди тех значений, которые не определены в спецификации SVC и в спецификации полезной нагрузки RTP H.264/AVC, что дает в результате блок NAL PACSI, который игнорируется декодерами H.264/AVC или SVC и приемниками RTP H.264/AVC.
[0043] Предполагая, что блоки NAL SEI допускаются в полезной нагрузке блока NAL PACSI, любой блок NAL SEI в полезной нагрузке блока NAL PACSI может использоваться, чтобы повторить блок NAL SEI блока доступа первого блока NAL, следующего за блоком NAL PACSI, но не вложенного в него. Кроме того, блок NAL PACSI может включать сообщения SEI с повторением метки опорного изображения, а также другие блоки NAL, которые могут появляться перед первым блоком NAL VCL в блоке доступа. Это позволяет обнаружить назначения долговременного индекса изображения предшествующих изображений временного уровня 0 в порядке декодировании. Следует отметить, что некоторые дополнительные затраты скорости передачи данных в результате передачи tl0_pic_idx в новом сообщении SEI являются незначительными.
[0044] Когда используется режим пакетирования с перемежением, блок NAL PACSI может содержать только сообщения SEI для первого блока NAL полезной нагрузки RTP, как описано выше. Однако согласно другой форме осуществления настоящего изобретения, блок NAL PACSI не инкапсулирует новые сообщения SEI как таковые, а инкапсулирует пары блоков NAL SEI в дополнение к номерам порядка декодирования (DON) или разностям DON любых других идентификаторов изображений, или любых других идентификаторов блока NAL в полезной нагрузки RTP, таких как порядковые номера блоков NAL в полезной нагрузке.
[0045] Согласно еще одной форме осуществления настоящего изобретения в спецификации полезной нагрузки RTP может быть определен новый тип блока NAL, который может быть назван перемежаемым PACSI (IPACSI, interleaved PACSI). Этот блок NAL может быть вставлен перед любым блоком NAL AVC/SVC в полезной нагрузке RTP. Кроме того, полезная нагрузка IPACSI может содержать повторение блоков NAL SEI для того блока доступа, которому принадлежит блок NAL AVC/SVC.
[0046] Необходимо отметить, что различные формы осуществления настоящего изобретения не связывают dependency_id и/или quality_level с сообщением SEI tl0_pic_idx, потому что сообщение SEI tl0_pic_idx может использоваться в масштабируемом вложении SEI, когда dependency_id>0 или quality_level>0. Следовательно, возможно несколько использований для масштабируемого вложения SEI, хотя процессы синтаксического анализа в сетевом элементе обеспечения мультимедиа (MANE) станут немного более сложными. Альтернативно, цикл может быть реализован в самом сообщении SEI tl0_pic_idx для различных значений dependency_id и quality_level.
[0047] Следует отметить, что существуют другие проблемы, связанные с tl0_pic_idx, помимо представленных здесь. Например, когда изображение временного уровня 1 использует два или более изображения временного уровня 0 в качестве опорных для предсказания, индекс tl0_pic_idx может не быть надежным показателем того, что изображение временного уровня 1 может быть декодировано. Поэтому могут быть использованы другие подходы для решения проблем, связанных с tl0_pic_idx. Например, использование различных долговременных индексов в последующих изображениях с temporal-level-0 делает менее вероятным, что на изображение, которому назначен конкретный долговременный индекс, будут неправильно ссылаться. Дополнительно, заключения об опорных изображениях, которые фактически используются, включая долговременные, могут быть сделаны на основании заголовка слайса, когда используются команды, переупорядочивающие список опорных изображений. В качестве еще одного варианта могут использоваться сообщения SEI подпоследовательности, в которых номера уровней подпоследовательности и идентификаторы подпоследовательностей могут использоваться разумно, чтобы сделать заключение, на каких уровнях подпоследовательности возникли потери данных. В некоторых структурах предсказания кратковременные опорные изображения могут использоваться вместо долговременных опорных изображений. В еще одном варианте “транспортный” уровень может быть основой для подхода к проблеме tl0_pic_idx, например, путем использования общих пакетов отрицательного подтверждения (NACK) профиля аудиовизуальной обратной связи (AVPF) RTP, причем пакеты NACK могут передаваться во всех случаях, когда обнаруживается возможная потеря изображения временного уровня 0.
[0048] Настоящее изобретение описано в общем контексте шагов способа, которые могут быть реализованы в одной форме осуществления программным продуктом, включающим выполняемые компьютером команды, такие как код программы, выполняемый компьютерами в сетевых средах. Машиночитаемый носитель может быть выполнен в виде съемных и несъемных запоминающих устройств, включая, в качестве примеров постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), компакт-диски (CD), цифровой универсальный диск (DVD) и т.д. Вообще, программные модули включают подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Исполняемые машинные команды, связанные структуры данных и программные модули представляют собой примеры программного кода для выполнения шагов способов, раскрытых здесь. Конкретная последовательность таких исполняемых команд или связанных структур данных представляет примеры соответствующих действий для реализации функций, описанных на таких шагах.
[0049] Программные и Web-реализации различных форм осуществления изобретения могут быть выполнены стандартными методами программирования с логикой на основе правил и другой логики для выполнения различных шагов или процессов поиска в базе данных, шагов или процессов корреляции, шагов или процессов сравнения и шагов или процессов решения. Следует отметить, что слова “компонент” и “модуль”, которые используется здесь и в формуле изобретения, предназначены для охвата реализаций, использующих одну или несколько строк программного кода, и/или аппаратных реализаций и/или оборудования для приема данных, вводимых вручную.
[0050] Вышеприведенное описание предпочтительных форм осуществления изобретения было представлено с целью иллюстрации и описания. Оно не является исчерпывающим и не ограничивает изобретение раскрытой формой; модификации возможны в свете вышеприведенных идей или могут быть получены в результате практического применения изобретения. Формы осуществления, рассмотренные здесь, были выбраны и описаны с целью объяснения принципов и характера различных форм осуществления настоящего изобретения и его практического применения, чтобы позволить специалистам в данной области техники использовать настоящее изобретение в различных формах осуществления и с различными модификациями, которые подходят для конкретного использования. Особенности форм осуществления изобретения, описанные здесь, могут объединяться во всевозможные комбинации способов, устройств, модулей, систем и компьютерных программных продуктов.