СИСТЕМА И СПОСОБ ДЛЯ ЭФФЕКТИВНОЙ АДАПТАЦИИ МАСШТАБИРУЕМЫХ ПОТОКОВ Российский патент 2010 года по МПК H04N7/26 

Описание патента на изобретение RU2407217C2

ОБЛАСТЬ ТЕХНИКИ

[0001] Данное изобретение относится к кодированию, декодированию, хранению и передаче медиаданных. Более конкретно, данное изобретение относится к кодированию, декодированию, хранению и передаче масштабируемых медиаданных.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ

[0002] Мультимедийные приложения включают локальное воспроизведение, потоковую передачу или передачу по требованию, диалоговые сервисы, сервисы широкого вещания (broadcast)/многоадресного вещания (multicast). Технологии, используемые в мультимедийных приложениях, включают, например, кодирование, хранение и передачу медиаданных. Типы медиаданных включают речь, аудио, изображения, видео, графику и текст в реальном времени. Для различных технологий были разработаны различные стандарты.

[0003] Стандарты кодирования видео включают ITU-T (International Telecommunication Union - Telecommunication Standardization Sector, Международный союз электросвязи - сектор по стандартизации телекоммуникаций) Н.261, ISO (International Standardization Organization, Международная организация по стандартизации)/IEC (International Electrotechnical Commission, Международная электротехническая комиссия) MPEG (Motion Picture Experts Group, Экспертная группа по движущимся изображениям) - 1 Visual (визуальный), ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC (Advanced Video Coding, усовершенствованное видеокодирование)). Кроме того, разрабатываются новые стандарты кодирования видео. Например, в настоящий момент разрабатывается стандарт SVC (Scalable Video Coding, масштабируемое кодирование видео). Этот стандарт станет расширением масштабирования стандарта H.264/AVC. Также в процессе разработки находятся китайские стандарты кодирования видео.

[0004] Масштабируемое кодирование видео может давать масштабируемые битовые видеопотоки. Часть масштабируемого битового видеопотока можно выделить и декодировать с пониженным визуальным качеством воспроизведения. Масштабируемый битовый видеопоток содержит один немасштабируемый основной уровень и один или несколько улучшающих уровней. Улучшающий уровень может повышать временное разрешение (т.е. частоту кадров), пространственное разрешение, или просто качество видеоинформации, содержащейся в низшем уровне или его части. В некоторых случаях данные улучшающего уровня могут быть усечены после определенного положения и даже в произвольных позициях. Каждая позиция усечения может включать некоторые дополнительные данные, представляющие все более улучшенное визуальное качество. Такую масштабируемость называют FGS (fine-grained (granularity) scalability, масштабируемость мелкой детализации). В отличие от FGS, масштабируемость, предоставляемую уровнем улучшения, но не являющуюся масштабируемостью мелкой детализации, называют CGS (coarse-grained scalability, масштабируемость грубой детализации).

[0005] В текущей черновой версии стандарта SVC, структура масштабируемого уровня характеризуется тремя переменными - temporal_level ("временной уровень"), dependency_id ("идентификатор зависимости") и quality_level ("уровень качества"), которые указываются в битовом потоке или могут быть получены согласно стандарту. Параметр temporal_level используется для указания временной масштабируемости или частоты кадров. Уровень, состоящий из изображений с меньшим значением temporal_level, имеет меньшую частоту кадров, чем уровень, состоящий из изображений с большим значением temporal_level. Параметр dependency_id используется для указания иерархии зависимостей межуровневого кодирования. В любом временном положении изображение с меньшим значением dependency_id может быть использовано для межуровневого предсказания при кодировании изображения с большим значением dependency_id. Параметр quality_level используется для указания иерархии FGS-уровней. В любом временном положении и при одинаковых значениях dependency_id для межуровневого предсказания FGS-изображения со значением quality_level, равным QL, используется FGS-изображение со значением quality_level, равным QL-1, или изображение основного качества (то есть не FGS-изображение), если QL-1=0).

[0006] На фиг.1 показан пример временного сегмента масштабируемого видеопотока и указаны значения трех упомянутых выше переменных. Следует отметить, что временные значения являются относительными, то есть значение времени, равное 0, не обязательно соответствует времени первого изображения в последовательности отображения битового потока. Типичные предсказательные ссылочные зависимости этого примера показаны на фиг.2, где сплошные стрелки обозначают интер-предсказательные ссылочные зависимости в горизонтальном направлении, а пунктирные блочные стрелки - межуровневые предсказательные ссылочные зависимости. Элемент, на который показывает стрелка, использует в качестве предсказательной ссылки элемент, от которого начинается стрелка.

[0007] Здесь уровень определяется как набор изображений, имеющих одинаковые значения temporal_level, dependency_id и quality_level соответственно. Обычно для декодирования и воспроизведения улучшающего уровня должны быть доступны низшие уровни и основной уровень, поскольку они могли быть использованы, напрямую или косвенно, для межуровневого предсказания при кодировании улучшающего уровня. Например, на фиг.1 и 2, изображения с (t, Т, D, Q) равным (0, 0, 0, 0) и (8, 0, 0, 0) относятся к основному уровню, который может быть декодирован независимо от каких-либо улучшающих уровней. Изображение с (t, Т, D, Q) равным (4, 1, 0, 0) принадлежит к улучшающему уровню, удваивающему частоту кадров основного уровня; для декодирования этого уровня требуется наличие изображений основного уровня. Изображения с (t, Т, D, Q) равным (0, 0, 0, 1) и (8, 0, 0, 1) принадлежат к улучшающему уровню, повышающему качество и частоту кадров основного уровня путем FGS; для декодирования этого уровня тоже требуется наличие изображений основного уровня.

[0008] Изображение мгновенного обновления декодирования (IDR, instantaneous decoding refresh) определяется в стандарте H.264/AVC следующим образом. Это - кодированное изображение, в котором все слайсы являются слайсами типа I или SI и сразу после декодирования которого декодирующий процесс должен пометить все опорные изображения как "неиспользуемые как опорные". После декодирования IDR-изображения все следующие кодированные изображения в последовательности декодирования могут быть декодированы без интер-предсказания от изображений, декодированных до IDR изображения. Первое изображение каждой кодированной видеопоследовательности является IDR изображением.

[0009] Концепция IDR-изображения также используется в текущей черновой версии стандарта SVC, где вышеприведенное определение применимо к изображениям с одинаковыми значениями dependency_id и quality_level соответственно. Другими словами, IDR-изображение - это кодированное изображение, в котором декодирование IDR-изображения и всех последующих кодированных изображений в последовательности декодирования в этом же уровне (т.е. с такими же значениями dependency_id и quality_level, как у IDR-изображения) может быть выполнено без интер-предсказания от любого из изображений, находящихся перед IDR-изображением в последовательности декодирования в этом же уровне. Сразу после декодирования IDR-изображения декодирующий процесс должен пометить все опорные изображения в этом же уровне как "неиспользуемые как опорные". Следует отметить, что используемое здесь в контексте текущей черновой версии стандарта SVC выражение "в этом же уровне" означает, что декодированные изображения имеют такие же значения dependency_id и quality_level, как и IDR-изображение. Либо все изображения с одинаковым значением порядкового номера изображения (то есть с одинаковым временным положением), но разными значениями dependency_id или quality_level, кодируются как IDR-изображения, либо ни одно из изображений с данным порядковым номером изображения не кодируется как IDR-изображение. Другими словами, либо все изображения в блоке доступа (access unit) (включая все изображения с одинаковым порядковым номером изображения) являются IDR-изображениями, либо ни одно из изображений в блоке доступа не является IDR изображением.

[0010] Существующие стандарты форматов медиафайлов включают файловый формат ISO (ISO/IEC 14496-12), файловый формат MPEG-4 (ISO/IEC 14496-14), файловый формат AVC (ISO/IEC 14496-15) и файловый формат 3GPP (3rd Generation Partnership Project, Проект партнерства третьего поколения) (3GPP TS 26.244). В настоящее время ISO/IEC MPEG разрабатывает файловый формат SVC, описание которого можно найти в MPEG N7477, "Изучение верификационной модели файлового формата масштабируемого видеокодирования (SVC)" ("VM Study Text for Scalable Video Coding (SVC) File Format"), 73-я встреча ISO/IEC MPEG, Познань, Польша, июль 2005 г., который полностью включен сюда посредством ссылки.

[0011] Одним из преимуществ масштабируемого кодирования по сравнению с одноуровневым кодированием является то, что при масштабируемом кодировании один поток может удовлетворить различным требованиям к качеству, битовой скорости передачи, размеру дисплея и т.п., в то время как при одноуровневом кодировании необходимо использование нескольких потоков. Для использования нескольких потоков требуется больше места для хранения и, при одновременном вещании, большая ширина полосы передачи. В потоковых приложениях при изменении параметров передающей сети или получателей по сравнению с их предыдущим состоянием, например при изменении ширины полосы передачи, потоки требуется адаптировать. Адаптацию потоков могут осуществлять также шлюзы и другие способные распознавать медиаданные сетевые элементы (media-aware network elements, MANE). Адаптация потока может требоваться при "локальном" воспроизведении масштабируемого кодированного файла (то есть когда файл находится в том же устройстве, что и декодер, или в памяти, соединенной с декодирующим устройством быстрым каналом), если декодер использует вычислительные ресурсы совместно с какими-либо другими процессами. Например, если декодирование осуществляется в процессоре общего назначения, на котором выполняется многозадачная операционная система, в некоторые промежутки времени декодер может использовать всю вычислительную мощность процессора и выполнять декодирование всех масштабируемых уровней. Однако в другие промежутки времени ему может быть доступна лишь часть вычислительной мощности процессора, и он сможет декодировать лишь подмножество из доступных масштабируемых уровней. Адаптированный поток может иметь измененную битовую скорость, частоту кадров и/или видеоразрешение. При одноуровневом кодировании адаптация потока может выполняться путем переключения потоков или транскодирования. При единственном масштабируемом потоке адаптация потока может выполняться путем переключения уровней.

[0012] При масштабируемом кодировании переключение с высокого уровня на низкий может выполняться в любом месте. Однако для переключения с низкого уровня на высокий ситуация является иной, поскольку для декодирования изображения, на которое произошло переключение, обычно требуется наличие в этом же уровне некоторых из предшествующих изображений в последовательности декодирования.

[0013] Для текущей черновой версии стандарта SVC переключение с низкого уровня на высокий может осуществляться на IDR блоке доступа (в том числе на IDR-изображениях). Однако использование IDR блоков доступа приводит либо к ухудшению эффективности кодирования из-за частого кодирования IDR блоков доступа либо замедляет адаптацию потока. Обе эти проблемы тесно связаны с восприятием конечным пользователем. Также для обеспечения переключения с низкого уровня на высокий теоретически возможно использовать методы кодирования SP/SI изображений или постепенного обновления при декодировании (gradual decoding refresh). Однако эти методы были разработаны для одноуровневого кодирования. Поэтому для масштабируемого кодирования эти методы в настоящий момент не подходят. Более того, даже после расширения этих методов для использования в масштабируемом кодировании их применение приведет либо к дополнительным ограничениям на кодирование (что эквивалентно меньшей эффективности кодирования), либо к усложнению внедрения.

[0014] Следовательно, в масштабируемом кодировании видео существует потребность в поддержке простого и эффективного переключения с низкого уровня на высокий. Более того, существует также потребность в указании точек простого и эффективного переключения с низкого уровня на высокий на уровне файлового формата так, чтобы не требовалось разбора и анализа битового видеопотока для нахождения мест для переключения с низкого уровня на высокий, поскольку разбор и анализ потока могут потребовать сложных вычислений.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0015] Настоящее изобретение предлагает систему и способ указания точек переключения с низкого уровня на высокий на уровне файлового формата для эффективного переключения масштабируемых потоков в потоковых серверах и при локальном воспроизведении файлов. Настоящее изобретение также предлагает систему и способ указания точек переключения с низкого уровня на высокий в битовом видеопотоке, например, для обеспечения интеллектуальной пересылки масштабируемых уровней в способных распознавать медиаданные сетевых элементах или вычислительно масштабируемого декодирования в получателях потока.

[0016] Настоящее изобретение делает возможным простое и эффективное переключение с низкого уровня на высокий для адаптации масштабируемого потока. Данное изобретение устраняет необходимость в детальном разборе и анализе потоковым сервером битовых видеопотоков, что иначе потребовало бы существенных затрат вычислительных и внедренческих ресурсов. Данное изобретение может использоваться в практически любых приложениях с масштабируемыми медиаданными.

[0017] Эти и другие преимущества и отличительные признаки изобретения, а также его организация и способ работы станут понятными из следующего подробного описания и чертежей, где одинаковые элементы имеют одинаковые номера.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0018] На фиг.1 показан пример временного сегмента масштабируемого видеопотока и указаны значения трех переменных - temporal_level, dependency_id и quality_level.

[0019] На фиг.2 показана типичная предсказательная ссылочная зависимость для временного сегмента, показанного на фиг.1.

[0020] На фиг.3 показана обзорная схема системы, в которой может быть реализовано настоящее изобретение.

[0021] На фиг.4 показан перспективный вид электронного устройства, в котором могут быть реализованы принципы данного изобретения.

[0022] На фиг.5 показано схематическое представление электрической цепи устройства с фиг.4.

[0023] На фиг.6 проиллюстрирована обычная система потоковой передачи мультимедийных данных, в которой может быть применена иерархия масштабируемого кодирования настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

[0024] Со ссылкой на фиг.6 будет описана типичная система потоковой передачи мультимедийных данных, являющаяся одной из систем, в которой могут быть применены процедуры настоящего изобретения.

[0025] Система потоковой передачи мультимедийных данных обычно содержит один или более источников 100 мультимедиа, например видеокамеру и микрофон, или хранящиеся в памяти файлы видеоизображений или компьютерной графики. Исходные данные, полученные из разных источников 100 мультимедиа, комбинируется в мультимедиа файл в кодере 102, который также можно назвать блоком редактирования. Исходные данные, поступающие с одного или более источников 100 мультимедиа, сначала захватываются с помощью средств 104 захвата в составе кодера 102, которые обычно могут быть реализованы в виде различных интерфейсных карт, драйверного программного обеспечения или прикладного программного обеспечения, управляющего функциями карты. Например, видеоданные могут захватываться с помощью карты захвата видео и соответствующего программного обеспечения. На выход средств 104 захвата обычно поступает либо несжатый, либо слегка сжатый поток данных, например несжатые видеокадры формата YUV 4:2:0 или формата изображений motion-JPEG, если используется карта захвата видео.

[0026] Редактор 106 соединяет различные медиапотоки вместе для синхронизации видео- и аудиопотоков для одновременного воспроизведения по потребности. Редактор 106 может также редактировать любой медиапоток, такой как видеопоток, например уменьшая вдвое частоту кадров или уменьшая пространственное разрешение. Эти отдельные, хотя и синхронизованные, медиапотоки сжимаются в компрессоре 108, где каждый медиапоток сжимается отдельно с использованием соответствующего компрессора для этого медиапотока. Например, видеокадры формата YUV 4:2:0 могут быть сжаты с применением рекомендации ITU-T H.263 или Н.264. Отдельные синхронизированные и сжатые медиапотоки обычно перемежаются в мультиплексоре 110, и на выходе кодера 102 получается единый, однородный битовый поток, который состоит из данных нескольких медиапотоков и может быть назван мультимедиа файлом. Следует отметить, что для формирования мультимедиа файла мультиплексирование нескольких медиапотоков в единый файл не обязательно, перемежение медиапотоков может осуществлять потоковый сервер непосредственно перед их передачей.

[0027] Мультимедиа файлы передаются в потоковый сервер 112, который таким образом способен выполнять потоковую передачу либо в реальном времени, либо в форме постепенной загрузки. При постепенной загрузке мультимедийные файлы сначала сохраняются в памяти сервера 112, откуда они потом могут по мере надобности извлекаться для передачи. При потоковой передаче в реальном времени редактор 102 передает непрерывный медиапоток мультимедиа файлов потоковому серверу 112, а сервер 112 пересылает поток напрямую клиенту 114. В качестве дополнительной возможности потоковая передача в реальном времени может также выполняться с сохранением мультимедиа файлов в доступной для сервера 112 памяти, откуда может осуществляться потоковая передача в реальном времени и по мере надобности запускаться непрерывный медиапоток мультимедиа файлов. В таком случае какое-либо контролирование потоковой передачи редактором 102 не обязательно. Потоковый сервер 112 осуществляет формирование потока мультимедиа данных в соответствии с доступной шириной полосы передачи или максимальной скоростью декодирования и воспроизведения клиентом 114, при этом потоковый сервер может регулировать битовую скорость медиапотока, например, пропуская при передаче В-кадры или регулируя количество масштабируемых уровней. Кроме того, потоковый сервер 112 может модифицировать поля заголовков мультиплексированного медиапотока для уменьшения их размера и формировать мультимедийные данные в пакеты, подходящие для передачи по используемой телекоммуникационной сети. Клиент 114 обычно может регулировать, в какой-то степени, работу сервера 112 с помощью подходящего протокола управления. Клиент 114 способен управлять сервером 112 по меньшей мере в такой степени, что для передачи клиенту может быть выбран желаемый мультимедиа файл, и, кроме того, клиент обычно способен останавливать и прерывать передачу мультимедиа файла.

[0028] Когда клиент 114 получает мультимедиа файл, этот файл сначала подается в демультиплексор 116, который разделяет составляющие файл медиапотоки. Затем отдельные сжатые медиапотоки подаются в декомпрессор 118, где каждый медиапоток декомпрессируется подходящим для этого конкретного медиапотока декомпрессором. Развернутые и реконструированные медиапотоки подаются в блок 120 воспроизведения, где медиапотоки воспроизводятся с надлежащей скоростью согласно их синхронизационным данным и подаются на средства 124 презентации. Реальные средства 124 презентации могут состоять, например, из дисплея компьютера или мобильной станции и акустических средств. В состав клиента 114 также обычно входит блок управления 122, которым конечный пользователь обычно может управлять через пользовательский интерфейс и который управляет как работой сервера, через вышеописанный протокол управления, так и работой блока 120 воспроизведения, на основе полученных от конечного пользователя инструкций.

[0029] Следует отметить, что передача мультимедиа файлов от потокового сервера 112 клиенту 114 происходит через телекоммуникационную сеть, при этом путь передачи обычно состоит из нескольких элементов телекоммуникационной сети. Поэтому возможно, что существует как минимум один элемент сети, который может осуществлять формирование трафика мультимедиа данных в соответствии с доступной шириной полосы передачи или максимальной скоростью декодирования и воспроизведения клиентом 114, по меньшей мере частично, таким образом, как описано выше для потокового сервера.

[0030] Настоящее изобретение предлагает систему и способ указания точек переключения с низкого уровня на высокий на уровне файлового формата для эффективного переключения масштабируемых потоков в потоковых серверах и при локальном воспроизведении файлов. Настоящее изобретение также предлагает систему и способ указания точек переключения с низкого уровня на высокий в битовом видеопотоке, например, для обеспечения интеллектуальной пересылки масштабируемых уровней в способных распознавать медиаданные сетевых элементах или вычислительно масштабируемого декодирования в получателях потока.

[0031] Для примера ниже описаны несколько вариантов осуществления настоящего изобретения. Однако следует отметить, что возможны также и другие варианты осуществления изобретения, например, получаемые комбинацией некоторых из описанных ниже вариантов.

[0032] Первый вариант указания точек переключения с низкого уровня на высокий в файловом формате включает использование точек переключения с низкого уровня на высокий как одного из типов информации о масштабировании. В этом варианте осуществления изобретения для указания точек переключения с низкого уровня на высокий для каждого уровня определен новый блок (box). Этот блок содержится в структуре данных, содержащей информацию о масштабировании для каждого масштабируемого уровня, например, в структуре ScalableLayerEntry() ("элемент таблицы с информацией о масштабируемом уровне"), определенной в черновой версии стандарта файлового формата SVC. Блок определяется следующим образом:

Тип блока: 'Iswp'

Контейнер: ScalableLayerEntry

Обязательный: Нет

Количество: Ноль или один

[0033] Этот блок обеспечивает компактное указание точек переключения с низкого уровня на высокий для отдельного уровня в составе потока. Таблица упорядочена строго в порядке возрастания номера сэмпла. Если для некоторого уровня блок точек переключения отсутствует, то для этого уровня не существует никаких других точек переключения с низкого уровня на высокий, кроме сэмплов синхронизации, указываемых в блоке сэмплов синхронизации, или сэмплов теневой синхронизации, указываемых в блоке сэмплов теневой синхронизации.

[0034] В этом примере, "entry_count" дает количество элементов в следующей таблице. Элемент "sample_number" дает номер сэмпла, для которого в следующей таблице указана информация о точках переключения с низкого уровня на высокий для текущего уровня. Элемент "entry_count2" дает количество элементов в следующей таблице.

[0035] Элемент "delta_layer_id" указывает более высокий уровень, на который поток может быть переключен с текущего уровня, либо более низкий уровень, с которого поток может быть переключен на текущий уровень, на текущем сэмпле с номером сэмпла, равным sample_number. Значение, большее или равное нулю, означает, что на текущем сэмпле поток может быть переключен с текущего уровня на высший уровень с идентификатором уровня, равным (layer_id+delta_layer_id+1). Значение, меньшее нуля, означает, что на текущем сэмпле поток может быть переключен с нижележащего уровня с идентификатором уровня, равным (layer_id+delta_layer_id) на текущий уровень. Значение layer_id для каждого уровня находится из структуры данных, содержащей информацию о масштабируемости для каждого масштабируемого уровня.

[0036] Второй вариант указания точек переключения с низкого уровня на высокий в файловом формате включает указание точек переключения с низкого уровня на высокий для всех уровней в специальном блоке. Этот блок определяется следующим образом:

Тип блока: 'Iswp' Контейнер: Sample Table Box ('stbl') ("блок таблицы сэмплов") Обязательный: Нет Количество: Ноль или один

[0037] Этот блок обеспечивает компактное указание точек переключения с низкого уровня на высокий для всех уровней в составе потока. Таблица упорядочена строго в порядке возрастания номера сэмпла. Если блок точек переключения с уровня на уровень отсутствует, то не существует никаких других точек переключения с низкого уровня на высокий, кроме сэмплов синхронизации, указываемых в блоке сэмплов синхронизации, или сэмплов теневой синхронизации, указываемых в блоке сэмплов теневой синхронизации.

[0038] В этом варианте осуществления изобретения "entry_count" дает количество элементов в следующей таблице. Значение "sample_number" дает номер сэмпла, для которого информация о точках переключения с низкого уровня на высокий указана в следующей таблице. Значение "entry_count2" дает количество элементов в следующей таблице. Значение "layer_id" дает идентификатор уровня, для которого информация о точках переключения с низкого уровня на высокий указана в следующей таблице. Значение "entry_count3" дает количество элементов в следующей таблице.

[0039] Значение "delta_ayer_id" указывает высший уровень, на который поток может быть переключен с текущего уровня, либо низший уровень, с которого поток может быть переключен на текущий уровень, на текущем сэмпле с номером сэмпла, равным sample_number. Значение, большее или равное нулю, означает, что на текущем сэмпле поток может быть переключен с текущего уровня на высший уровень с идентификатором уровня, равным (layer_id+delta_layer_id+1). Значение, меньшее нуля, означает, что на текущем сэмпле поток может быть переключен с нижележащего уровня с идентификатором уровня, равным (layer_id+delta_layer_id) на текущий уровень. В этом конкретном варианте осуществления изобретения возможно также поместить цикл с sample_number внутрь цикла с layer_id, вместо показанного способа, где цикл с sample_number находится внутри цикла с layer_id.

[0040] Третий вариант указания точек переключения с низкого уровня на высокий в файловом формате включает использование точек переключения сигнальных треков. Этот вариант осуществления изобретения также может быть использован одновременно с любым из других вышеуказанных вариантов осуществления изобретения. Этот вариант осуществления изобретения применим к случаю, когда независимо декодируемые комбинации масштабируемых уровней комбинируются с формированием независимых треков, обычно путем использования ссылок. В основном формате медиафайлов ISO (ISO base media file format), медиаданные представлены в виде набора независимых от сети треков ("дорожек"), в то время как треки "подсказок" (hint track) содержат зависимую от сети информацию о пакетировании и ассоциируют медиасэмплы или их части с транспортными пакетами (путем ссылок из треков подсказок к медиатрекам). Трек экстрактора (extractor track) содержит ссылки на медиатрек так, что подмножество кодированных изображений SVC блока доступа формирует сэмпл в треке экстрактора. Следовательно, каждый трек экстрактора должен представлять различное подмножество масштабируемых уровней, и каждый трек экстрактора должен быть разрешимым без декодирования других треков экстрактора этого же медиатрека.

[0041] В этом конкретном варианте осуществления изобретения можно указать точки переключения между треками подсказок или треками экстрактора. Треки, содержащие или ссылающиеся на достаточное подмножество масштабируемых уровней, дающее возможность переключения на как минимум один из сэмплов указанной точки переключения в этом треке, соединены с этим треком трековой ссылкой типа 'tswf в контейнерном блоке трековых ссылок. Треки, для которых этот трек содержит достаточное подмножество масштабируемых уровней, дающее возможность переключения как минимум на один из сэмплов указанной точки переключения в них, соединены с этим треком трековой ссылкой типа 'tswt' в контейнерном блоке трековых ссылок.

Тип блока: 'tswd' Контейнер: Sample Table Box ('stbl') Обязательный: Нет Количество: Ноль или один

[0042] Этот блок обеспечивает компактное указание точек переключения с низкого уровня на высокий между треками подсказок или треками экстрактора. Таблица упорядочена строго в порядке возрастания номера сэмпла. Если блок точек переключения между треками отсутствует, то не существует никаких других точек переключения с низкого уровня на высокий, кроме сэмплов синхронизации, указываемых в блоке сэмплов синхронизации, или сэмплов теневой синхронизации, указываемых в блоке сэмплов теневой синхронизации.

[0043] В этом варианте "entry_count" дает количество элементов в следующей таблице. Значение "sample_number" дает номер сэмпла точки переключения. Значение "entry_count2" дает количество элементов в следующей таблице. Значение "src_track_id" указывает идентификатор трека, содержащего низший уровень, с которого поток может быть переключен на уровень, содержащийся в текущем треке. Значение "entry_count3" дает количество элементов в следующей таблице. Значение "dest_track_id" указывает идентификатор трека, содержащего высший уровень, на который поток может быть переключен с уровня, содержащегося в текущем треке.

[0044] Следует отметить, что возможны и другие определения синтаксиса. Например, можно опустить entry_count3 и соответствующий цикл для значений dest_track_id. Кроме того, если в трековой ссылке 'tswf' указан лишь один трек, цикла для значений src_track_id не требуется. Возможно также использовать синтаксис TrackSwitchingPointBox ("блок точек переключения треков") независимо, без трековых ссылок 'tswf и/или 'tswt'. Кроме того, указанную в медиатреке информацию с помощью первого или второго варианта возможно использовать снова для получения точек переключения с низкого уровня на высокий в треках подсказок или треках экстрактора, при этом идентификатор уровня указывается для каждого трека подсказок или трека экстрактора, например в заголовке трека или в сэмпловой строке таблицы.

[0045] Ниже приведено обсуждение различных вариантов указания точек переключения с низкого уровня на высокий в битовом потоке. Первый вариант включает использование нового типа блоков NAL (network abstraction layer unit, блок уровня сетевой абстракции) для указания того, что изображение, содержащее кодированные слайсы этого типа блоков NAL, является изображением EIDR (enhancement-layer instantaneous decoding refresh, мгновенное обновление декодирования уровня улучшения). EIDR-изображение - это кодированное изображение, для которого декодирование EIDR-изображения и всех последующих кодированных изображений в последовательности декодирования в этом же уровне (т.е. с такими же значениями temporal_level, dependency_id и quality_level, как у EIDR-изображения), может быть выполнено без интер-предсказания от любого из изображений, находящихся перед EIDR-изображением в последовательности декодирования в этом же уровне. Сразу после декодирования EIDR-изображения декодирующий процесс должен пометить все опорные изображения в этом же уровне как "неиспользуемые как опорные". У EIDR-изображения значения temporal_level, dependency_id и quality_level не могут быть одновременно равны нулю. Следует отметить, что используемое здесь в контексте текущей черновой версии стандарта SVC выражение "в этом же уровне" означает, что декодированные изображения имеют такие же значения temporal_level, dependency_id и quality_level, как и EIDR-изображение. Следует отметить, что здесь, в отличие от самой последней черновой версии стандарта SVC, в понятии "в этом же уровне" учитывается параметр temporal_level. Учет параметра temporal_level делает возможным переключение с низшего уровня с меньшей частотой кадров на высший уровень с большей частотой кадров. Кроме того, это повышает эффективность кодирования EIDR-изображения, поскольку опорные изображения с большими значениями temporal_level автоматически удаляются из списков опорных изображений, что уменьшает количество необходимых действий по переупорядочиванию списка опорных изображений, и значения идентификаторов опорных изображений становятся меньше, что повышает эффективность энтропийного кодирования.

[0046] По определению масштабируемого кодирования, низший уровень не может зависеть от высшего, поэтому EIDR-изображение не может быть предсказано из изображений в этом же уровне и высших уровнях, но может быть предсказано из изображений из более низких уровней, в том числе более низких по времени. Это дает возможность переключения с ближайшего низшего уровня на содержащий EIDR-изображение уровень в позиции EIDR-изображения. Например, можно определить новый тип блоков NAL, как показано в таблице 1. Новому типу блоков NAL присвоен номер 22, а значение типа блоков NAL с номером 20 изменено с "Кодированный слайс не-IDR-изображения в расширении масштабирования" на "Кодированный слайс не-IDR- и не-EIDR-изображения в расширении масштабирования".

Таблица 1 nal_unit_type Содержание блока NAL и синтаксическая структура RBSP С 0 Не определено 1 Кодированный слайс не-IDR-изображения slice_layer_without_partitioning_rbsp() 2, 3, 4 2 Данные кодированного слайса, сегмент А slice_data_partition_a_layer_rbsp() 2 3 Данные кодированного слайса, сегмент В slice_data_partition_b_layer_rbsp() 3 4 Данные кодированного слайса, сегмент С slice_data_partition_c_layer_rbsp() 4 5 Кодированный слайс IDR-изображения slice_layer_without_partitioning_rbsp() 2, 3 6 SEI (supplemental enhancement information, дополнительная улучшающая информация) sei_rbsp() 5 7 Набор параметров последовательности seq_parameter_set_rbsp() 0 8 Набор параметров изображения pic_parameter_set_rbsp() 1 9 Ограничитель блока доступа access_unit_delimiter_rbsp() 6 10 Конец последовательности end_of_seq_rbsp0 7 11 Конец потока end_of_stream_rbsp() 8 12 Данные-заполнитель filler_data_rbsp() 9 13 Расширение набора параметров последовательности seq_parameter_set_extension_rbsp() 10 14…18 Зарезервировано 19 Кодированный слайс вспомогательного кодированного изображения без сегментирования slice_layer_without_partitioning_rbsp() 2, 3, 4 20 Кодированный слайс не-IDR- и He-EIDR-изображения в расширении масштабирования slice_layer_in_scalable_extension_rbsp() 2, 3, 4 21 Кодированный слайс IDR-изображения в расширении масштабирования slice_layer_in_scalable_extension_rbsp() 2, 3 22 Кодированный слайс EIDR-изображения в расширении масштабирования slice_layer_in_scalable_extension_rbsp() 2, 3, 4 23 Зарезервировано 24…31 Не определено

[0047] Этот вариант применим к масштабируемым уровням, кодированным с применением расширения масштабирования с указанием temporal_level, dependency_id и quality_level. Для обеспечения временной масштабируемости можно также использовать собственно стандарт H.264/AVC и указывать точки переключения с помощью SEI-сообщений подпоследовательности (sub-sequence information SEI messages). Однако в этом случае temporal_level не указывается и поэтому, согласно текущей черновой версии стандарта SVC, считается равным нулю для всех временно масштабируемых уровней. Для обеспечения эффективного переключения с низкого уровня на высокий между временными уровнями без нарушения совместимости потока с H.264/AVC используется новое SEI-сообщение, указывающее на то, что изображение является EIDR-изображением. Однако при использовании SEI-сообщения не действует функциональность управления ссылками EIDR-изображения, то есть EIDR-изображение, на которое указывает SEI-сообщение, может быть использовано для переключения с низкого уровня на высокий, но при этом декодирующий процесс не обязан пометить все опорные изображения в этом же уровне как "неиспользуемые как опорные". Так происходит потому, что SEI-сообщения не являются обязательными для соответствующих стандарту декодеров. SEI-сообщение определяется следующим образом:

Синтаксис SEI-сообщения EIDR-изображения

eidr_pic(payloadSize) { Дескриптор temporal_layer_num ue(v) }

[0048] Семантика SEI-сообщения EIDR-изображения. Семантика SEI-сообщения EIDR-изображения определяется следующим образом: SEI-сообщение EIDR-изображения, если имеется, ассоциируется с кодированным изображением, для которого temporal_level, dependency_id и quality_level отсутствуют в битовом потоке и, следовательно, полагаются равными нулю. Целевое изображение также ассоциируется с SEI-сообщением подпоследовательности, в котором указывается sub_seq_layer_num ("номер уровня подпоследовательности") для обозначения иерархии временной масштабируемости. Наличие SEI-сообщения EIDR-изображения означает, что целевое изображение является EIDR-изображением, в котором декодирование изображения и всех последующих кодированных изображений в последовательности декодирования в этом же уровне (т.е. с temporal_level, dependency_id и quality_level равными 0 и с таким же значением sub_seq_layer_num, что и у EIDR-изображения) могут быть декодированы без интер-предсказания от какого-либо из изображений в этом же уровне, предшествующих EIDR-изображению в последовательности декодирования.

[0049] Параметр "temporal_layer__num" ("номер временного уровня") имеет такую же семантику, как и синтаксический элемент sub_seq_layer_num в SEI-сообщении подпоследовательности. Его значение совпадает со значением sub_seq_layer_num в SEI-сообщении подпоследовательности, ассоциированном с этим же целевым изображением. Возможно также исключить синтаксический элемент temporal_layer_num из синтаксиса SEI-сообщения. Однако в этом случае для того, чтобы узнать, какому из временно масштабируемых уровней принадлежит EIDR-изображение, потребуется разбор информационного SEI-сообщения подпоследовательности.

[0050] Второй альтернативный вариант осуществления изобретения для указания точек переключения с низкого уровня на высокий в битовом потоке включает изменение определения IDR-изображения и ослабление ограничения на кодирование IDR-изображений. В этом варианте понятие IDR изменено следующим образом. Если хоть одно из значений temporal_level, dependency_id или quality_level не равно нулю, IDR-изображение - это кодированное изображение, в котором декодирование IDR-изображения и всех последующих кодированных изображений в последовательности декодирования в этом же уровне (т.е. с такими же значениями temporal_level, dependency_id и quality_level, как у IDR-изображения) может быть выполнено без интер-предсказания от любого из изображений, находящихся перед IDR-изображением в последовательности декодирования в этом же уровне. Кроме того, сразу после декодирования такого IDR-изображения декодирующий процесс должен пометить все опорные изображения в этом же уровне как "неиспользуемые как опорные". Если же значения temporal_level, dependency_id и quality_level все равны нулю, то IDR-изображение - это кодированное изображение, в котором декодирование IDR-изображения и всех последующих кодированных изображений в последовательности декодирования может быть выполнено без интер-предсказания от любого из изображений, находящихся перед IDR-изображением в последовательности декодирования. Сразу после декодирования такого IDR-изображения декодирующий процесс должен пометить все опорные изображения в этом же уровне как "неиспользуемые как опорные".

[0051] Ограничение на кодирование IDR-изображений (то, что либо все изображения в блоке доступа являются IDR-изображениями, либо ни одно из изображений в блоке доступа не является IDR-изображением) ослаблено следующим образом. Если изображение с temporal_level, dependency_id и quality_level одновременно равными нулю является IDR-изображением, то все другие изображения в этом же блоке доступа являются IDR-изображениями. Благодаря такому ослаблению ограничения на кодирование IDR-изображений становится возможным иметь IDR-изображения в улучшающих уровнях в блоке доступа, в котором изображение основного уровня не является IDR-изображением. В этом втором варианте, если какая-либо из переменных temporal_level, dependency_id или quality_level не равна нулю, определение IDR-изображения совпадает с определением EIDR-изображения в описанном выше первом способе указания точек переключения с низкого уровня на высокий в битовом потоке. Соответственно, сохраняются все преимущества EIDR-изображения. Кодирование IDR-изображения описанным здесь способом дает возможность переключения с ближайшего низшего уровня на содержащий IDR-изображение уровень в позиции IDR-изображения.

[0052] Этот конкретный способ применим к масштабируемым уровням, кодированным с применением масштабируемого расширения с указанием temporal_level, dependency_id и quality_level. Для обеспечения эффективного переключения с низкого уровня на высокий между временными уровнями с использованием собственно стандарта H.264/AVC можно применить такой же способ, как в варианте 1.

[0053] Третий альтернативный вариант указания точек переключения с низкого уровня на высокий в битовом потоке включает ослабление ограничения на кодирование IDR-изображений и использование SEI-сообщений для временно масштабируемых уровней. В этом варианте определение IDR-изображения оставлено без изменений, но ограничение на кодирование IDR-изображений ослаблено следующим образом.

[0054] Если изображение с temporal_level, dependency_id и quality_level одновременно равными нулю является IDR-изображением, то все другие изображения в этом же блоке доступа являются IDR-изображениями. Такое ослабление дает возможность кодирования IDR-изображений, для которых переключение с низкого уровня на высокий может осуществляться между уровнями с отличающимися значениями dependency_id или quality_level. Однако поскольку определение IDR-изображения оставлено без изменений, то есть temporal_level не включен в определение масштабируемого уровня, для временных уровней проблема переключения с низкого уровня на высокий остается нерешенной.

[0055] Для решения проблемы переключения с низкого уровня на высокий для временных уровней, закодированных в соответствии либо с расширением масштабирования, либо собственно стандартом H.264/AVC, применяется SEI-сообщение EIDR-изображения, подобное описанному в первом варианте выше, для указания того, что ассоциированное с SEI-сообщением целевое изображение является EIDR-изображением, которое может использоваться для переключения с низкого уровня на высокий. Однако указываемое SEI-сообщением EIDR-изображение не имеет функциональности управления ссылками, поскольку SEI-сообщения являются необязательными для соответствующих стандарту декодеров.

[0056] Синтаксис SEI-сообщения является таким же, как в первом варианте указания точек переключения с низкого уровня на высокий в битовом потоке. Если целевое изображение кодировано с использованием собственно стандарта H.264/AVC, семантика тоже остается такой же. Если целевое изображение кодировано с применением расширения масштабирования, семантика изменяется следующим образом.

[0057] Наличие SEI-сообщения EIDR-изображения означает, что целевое изображение является EIDR-изображением, для которого декодирование изображения и всех последующих кодированных изображений в последовательности декодирования в этом же уровне (т.е. с такими же значениями temporal_level, dependency_id и quality_level, как у EIDR-изображения) может быть выполнено без интер-предсказания от какого-либо из изображений в этом же уровне, предшествующих EIDR-изображению в последовательности декодирования. Элемент "temporal_layer_num" указывает значение temporal_level EIDR-изображения. Если EIDR-изображение кодировано с применением расширения масштабирования, синтаксический элемент temporal_layer_num можно исключить из синтаксиса SEI-сообщения.

[0058] Четвертый вариант указания точек переключения с низкого уровня на высокий в битовом потоке включает использование SEI-сообщений для всех масштабируемых уровней. В этом варианте применяется подобное определенному в третьем варианте SEI-сообщение EIDR-изображения, указывающее, что ассоциированное с этим SEI-сообщением целевое изображение является EIDR-изображением, которое может использоваться для переключения с низкого уровня на высокий. Однако в этом конкретном варианте осуществления изобретения SEI-сообщение также используется для решения проблемы переключения с низкого уровня на высокий для уровней с отличающимися значениями dependency_id или quality_level.

[0059] На фиг.3 показана система 10, в которой может быть применено настоящее изобретение, состоящая из нескольких устройств связи, способных обмениваться информацией по сети. Система 10 может состоять из любой комбинации проводных или беспроводных сетей, в том числе мобильной телефонной сети, локальной вычислительной сети (ЛВС), персональной сети Bluetooth, ЛВС Ethernet, ЛВС кольцевой структуры с передачей маркера (token ring), глобальной сети (wide area network), Интернета и т.п. Система 10 может включать как проводные, так и беспроводные устройства связи.

[0060] Например, показанная на фиг.3 система 10 состоит из мобильной телефонной сети 11 и Интернета 28. Подключение к Интернету 28 может осуществляться, в частности, через беспроводные соединения большого радиуса действия, беспроводные соединения малого радиуса действия, а также через различные проводные соединения - в частности, телефонные линии, кабельные линии, линии энергопитания и т.п.

[0061] В числе устройств связи системы 10 могут быть, в частности, мобильный телефон 12, комбинация 16 PDA (personal data assistant, карманный персональный компьютер) и мобильного телефона, PDA 16, IMD (integrated messaging device, устройство интегрированного обмена сообщениями) 18, настольный компьютер 20, портативный компьютер типа ноутбука 22. Устройства связи могут быть как стационарными, так и мобильными, например переносимыми передвигающимся человеком. Устройства связи могут быть также установлены в каком-либо виде транспорта - в частности, в автомобиле, грузовике, такси, автобусе, на судне, в самолете, велосипеде, мотоцикле и т.п. Все или некоторые из устройств связи могут посылать и принимать вызовы и сообщения и обмениваться информацией с провайдерами услуг через беспроводное соединение 25 с базовой станцией 24. Базовая станция 24 может быть соединена с сетевым сервером 26, обеспечивающим связь между мобильной телефонной сетью 11 и Интернетом 28. Система 10 может включать дополнительные устройства связи и устройства связи различных типов.

[0062] Устройства связи могут обмениваться информацией с помощью различных технологий - в частности, таких как CDMA (Code Division Multiple Access, множественный доступ с кодовым разделением), GSM (Global System for Mobile Communications, глобальная система мобильной связи), UMTS (Universal Mobile Telecommunications System, универсальная система мобильных телекоммуникаций), TDMA (Time Division Multiple Access, множественный доступ с временным разделением каналов), FDMA (Frequency Division Multiple Access, множественный доступ с частотным разделением каналов), TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол Интернет), SMS (Short Messaging Service, обмен краткими сообщениями сервис), MMS (Multimedia Messaging Service, обмен мультимедиа сообщениями), электронная почта, IMS (Instant Messaging Service, обмен мгновенными сообщениями), Bluetooth, IEEE 802.11 и т.п. Устройство связи может обмениваться информацией с использованием различных сред - в том числе радио, инфракрасных, лазерных, кабельных соединений и т.п.

[0063] На фиг.4 и 5 показан типичный пример мобильного телефона 12, в котором может быть реализовано настоящее изобретение. Однако следует понимать, что настоящее изобретение не ограничивается одним конкретным типом мобильного телефона 12 или другого электронного устройства. В состав показанного на фиг.4 и 5 мобильного телефона 12 входят корпус 30, дисплей 32 в виде жидкокристаллического дисплея, клавиатура 34, микрофон 36, динамик 38, батарея 40, инфракрасный порт 42, антенна 44, смарт-карта 46 в виде UICC (universal integrated circuit card, универсальной карты на интегральных микросхемах) согласно одному из вариантов осуществления изобретения, устройство 48 считывания с карт, электронные схемы 52 радиоинтерфейса, электронные схемы 54 кодека, контроллер 56 и память 58. Используются отдельные электрические цепи и элементы, хорошо известные в данной области техники, например, применяемые в мобильных телефонах компании Нокиа (Nokia).

[0064] Настоящее изобретение описано в общем контексте шагов способа, которые в одном из вариантов осуществления могут быть реализованы в виде компьютерной программы, включающей исполняемые компьютером инструкции, такие как программный код, исполняемый компьютерами в сетевых средах.

[0065] В общем, программные модули включают стандартные подпрограммы, программы, объекты, компоненты, структуры данных и т.п., выполняющие конкретные задачи или реализующие конкретные абстрактные типы данных. Исполняемые компьютером инструкции, ассоциированные структуры данных и программные модули представляют собой примеры программного кода для исполнения шагов описанных здесь способов. Конкретные последовательности этих исполняемых инструкций или ассоциированных структур данных представляют собой примеры соответствующих действий для реализации функций, описанных в этих шагах.

[0066] Программные и сетевые реализации настоящего изобретения могут быть выполнены с помощью стандартных методов программирования с основанной на правилах логикой и другой логикой для реализации различных шагов поиска в базах данных, шагов корреляции, шагов сравнения и шагов принятия решений. Следует также отметить, что используемые здесь и в формуле изобретения слова "компонент" и "модуль" охватывают реализации, использующие одну или более строк программного кода, и/или реализации в виде аппаратного обеспечения и/или оборудование ручного ввода.

[0067] Вышеприведенное описание вариантов осуществления настоящего изобретения было представлено с целью иллюстрации и описания. Оно не является исчерпывающим и не ограничивает настоящее изобретение точной описанной здесь формой и допускает модификации и вариации в свете вышеизложенного и в свете практического опыта осуществления настоящего изобретения. Вышеприведенные варианты осуществления изобретения были выбраны и описаны с целью объяснения принципов настоящего изобретения и его практического применения для того, чтобы специалист в данной области техники мог использовать настоящее изобретение в таких вариантах осуществления и с такими модификациями, какие подходят для конкретного рассматриваемого применения.

Похожие патенты RU2407217C2

название год авторы номер документа
ПЕРЕДАЧА СООБЩЕНИЙ ДОПОЛНИТЕЛЬНОЙ РАСШИРЕННОЙ ИНФОРМАЦИИ В ФОРМАТЕ ПОЛЕЗНОЙ НАГРУЗКИ ТРАНСПОРТНОГО ПРОТОКОЛА РЕАЛЬНОГО ВРЕМЕНИ 2008
  • Ханнуксела Миска
  • Ванг Йе-Куи
RU2430483C2
Межуровневое предсказание для масштабируемого кодирования и декодирования видеоинформации 2015
  • Ханнуксела Миска Матиас
RU2746934C2
Устройство, способ и компьютерная программа для кодирования и декодирования видеоинформации 2014
  • Лайнема Яни
  • Ханнуксела Миска
  • Угур Кемал
  • Маламал Вадакитал Винод Кумар
RU2639958C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОДАННЫХ 2015
  • Ханнуксела Миска
RU2653299C2
Устройство, способ и компьютерная программа для кодирования и декодирования видеоинформации 2015
  • Ханнуксела Миска
RU2725656C2
РАЗМЕЩЕНИЕ ФРАГМЕНТОВ СУБТРЕКА ДЛЯ ПОТОКОВОЙ ПЕРЕДАЧИ ВИДЕОДАННЫХ 2011
  • Чэнь Ин
  • Карчевич Марта
RU2541155C2
СТРУКТУРЫ ФОРМАТА ФАЙЛА МНОГОУРОВНЕВОГО ВИДЕО 2014
  • Ван Е-Куй
  • Чен Ин
  • Рамасубрамониан Адарш Кришнан
  • Хендри Фну
RU2678517C2
КОДИРОВАНИЕ, ХРАНЕНИЕ И ПЕРЕДАЧА ИНФОРМАЦИИ О МАСШТАБИРУЕМОСТИ 2006
  • Ванг Йе-Куи
  • Ханнуксела Миска
RU2377736C2
ГИПОТЕТИЧЕСКИЙ ЭТАЛОННЫЙ ДЕКОДЕР ДЛЯ МАСШТАБИРУЕМОГО ВИДЕОКОДИРОВАНИЯ 2007
  • Чжу Лихуа
  • Ло Цзянькон
  • Инь Пэн
  • Гомила Кристина
RU2518904C2
Устройство и способ для кодирования и декодирования видео 2018
  • Ханнуксела Миска
  • Аминлоу Алиреза
RU2741507C1

Иллюстрации к изобретению RU 2 407 217 C2

Реферат патента 2010 года СИСТЕМА И СПОСОБ ДЛЯ ЭФФЕКТИВНОЙ АДАПТАЦИИ МАСШТАБИРУЕМЫХ ПОТОКОВ

Изобретение относится к кодированию, декодированию, хранению и передаче масштабируемых видеоданных. Техническим результатом является обеспечение простого и эффективного переключения с низкого уровня на высокий для адаптации масштабируемого потока без необходимости в детальном разборе и анализе потоковым сервером битовых видеопотоков и снижение тем самым вычислительных и внедренческих ресурсов. Указанный технический результат достигается тем, что предложены система и способ для указания точек переключения с низкого уровня на высокий на уровне файлового формата для эффективного переключения масштабируемых потоков в потоковых серверах и при локальном воспроизведении файлов. Также настоящее изобретение предлагает систему и способ для указания точек переключения с низкого уровня на высокий в битовом видеопотоке, например, для обеспечения интеллектуальной пересылки масштабируемых уровней в сетевых элементах, способных распознавать медиаданные, или вычислительно масштабируемого декодирования в получателях потока. 9 н. и 7 з.п. ф-лы, 6 ил., 2 табл.

Формула изобретения RU 2 407 217 C2

1. Способ кодирования последовательности изображений в последовательность блоков доступа, включающий: кодирование первого изображения из последовательности изображений в первый блок доступа из упомянутой последовательности блоков доступа, при этом первый блок доступа содержит интеркодированную первую часть более низкого уровня и интракодированную первую часть более высокого уровня, пометку по меньшей мере одного декодированного опорного изображения, декодируемого из блоков доступа, предшествующих первому блоку доступа в последовательности декодирования, как "используемое как опорное", и включение в последовательность блоков доступа индикации для того, чтобы первая часть более высокого уровня пометила упомянутое по меньшей мере одно декодированное опорное изображение как "неиспользуемое как опорное".

2. Способ по п.1, в котором первая часть более высокого уровня является более высоким пространственным уровнем или более высоким уровнем качества грубой детализации.

3. Способ по п.1 или 2, который включает включение в последовательность блоков доступа индикации для того, чтобы первая часть более высокого уровня пометила как "неиспользуемые как опорные" все декодированные опорные изображения, помеченные как "используемые как опорные".

4. Способ по п.1 или 2, который включает генерирование заголовка блока сетевой абстракции (NAL) для по меньшей мере одного блока NAL для интракодированной части более высокого уровня так, чтобы он содержал упомянутую индикацию.

5. Способ декодирования последовательности блоков доступа с получением последовательности декодированных изображений, причем последовательность блоков доступа включает первый блок доступа, который содержит интеркодированную первую часть более низкого уровня и интракодированную первую часть более высокого уровня, при этом упомянутый способ включает: декодирование по меньшей мере одного блока доступа, предшествующего первому блоку доступа в последовательности декодирования, с получением по меньшей мере одного декодированного опорного изображения, пометку этого по меньшей мере одного декодированного опорного изображения как "используемое как опорное", декодирование первого блока доступа, включающего первую часть более высокого уровня, с получением первого декодированного опорного изображения, обнаружение индикации, связанной с первой частью более высокого уровня, и пометку упомянутого по меньшей мере одного декодированного опорного изображения как "неиспользуемое как опорное" в ответ на обнаружение упомянутой индикации.

6. Электронное устройство для кодирования последовательности изображений в последовательность блоков доступа, включающее: процессор и блок памяти, функционально подключенный к процессору и включающий компьютерную программу, включающую: программный код для кодирования первого изображения из последовательности изображений в первый блок доступа из упомянутой последовательности блоков доступа, при этом первый блок доступа содержит интеркодированную первую часть более низкого уровня и интракодированную первую часть более высокого уровня, программный код для пометки по меньшей мере одного декодированного опорного изображения, декодируемого из блоков доступа, предшествующих первому блоку доступа в последовательности декодирования, как "используемое как опорное", и программный код для включения в последовательность блоков доступа индикации для того, чтобы первая часть более высокого уровня пометила упомянутое по меньшей мере одно декодированное опорное изображение как "неиспользуемое как опорное".

7. Электронное устройство по п.6, в котором первая часть более высокого уровня является более высоким пространственным уровнем или более высоким уровнем качества грубой детализации.

8. Электронное устройство по п.6 или 7, которое включает программный код для включения в последовательность блоков доступа индикации для того, чтобы первая часть более высокого уровня пометила как "неиспользуемые как опорные" все декодированные опорные изображения, помеченные как "используемые как опорные".

9. Электронное устройство по п.6 или 7, которое включает программный код для генерирования заголовка блока сетевой абстракции (NAL) для по меньшей мере одного блока NAL для интракодированной части более высокого уровня так, чтобы он содержал упомянутую индикацию.

10. Электронное устройство для декодирования последовательности блоков доступа с получением последовательности декодированных изображений, причем последовательность блоков доступа включает первый блок доступа, который содержит интеркодированную первую часть более низкого уровня и интракодированную первую часть более высокого уровня, при этом упомянутое электронное устройство включает: процессор и блок памяти, функционально подключенный к процессору и включающий компьютерную программу, включающую: программный код для декодирования по меньшей мере одного блока доступа, предшествующего первому блоку доступа в последовательности декодирования, с получением по меньшей мере одного декодированного опорного изображения, программный код для пометки этого по меньшей мере одного декодированного опорного изображения как "используемое как опорное", программный код для декодирования первого блока доступа, включающего первую часть более высокого уровня, с получением первого декодированного опорного изображения, программный код для обнаружения индикации, связанной с первой частью более высокого уровня, и программный код для пометки упомянутого по меньшей мере одного декодированного опорного изображения как "неиспользуемое как опорное" в ответ на обнаружение упомянутой индикации.

11. Способ кодирования последовательности изображений в последовательность блоков доступа, в котором: первая подпоследовательность блоков доступа в последовательности блоков доступа находится на первом временном уровне, вторая подпоследовательность блоков доступа в последовательности блоков доступа находится на втором временном уровне, первая подпоследовательность блоков доступа может быть декодирована независимо от второй подпоследовательности блоков доступа, вторая подпоследовательность блоков доступа зависит от первой подпоследовательности блоков доступа, при этом способ включает включение индикации точки переключения от первого временного уровня ко второму временному уровню в последовательность блоков доступа, при этом индикация точки переключения указывает, что вторая подпоследовательность блоков доступа может быть декодирована, начиная с этой точки переключения, без необходимости декодировать блоки доступа во второй подпоследовательности блоков доступа до этой точки переключения в последовательности декодирования.

12. Способ включения последовательности блоков доступа по меньшей мере в один файл, при этом: первая подпоследовательность блоков доступа в последовательности блоков доступа находится на первом временном уровне, вторая подпоследовательность блоков доступа в последовательности блоков доступа находится на втором временном уровне, первая подпоследовательность блоков доступа может быть декодирована независимо от второй подпоследовательности блоков доступа, вторая подпоследовательность блоков доступа зависит от первой подпоследовательности блоков доступа, при этом способ включает включение в упомянутый по меньшей мере один файл индикации точки переключения от первого временного уровня ко второму временному уровню, при этом индикация точки переключения указывает, что вторая подпоследовательность блоков доступа может быть декодирована, начиная с этой точки переключения, без необходимости декодировать блоки доступа во второй подпоследовательности блоков доступа до этой точки переключения в последовательности декодирования.

13. Способ по п.11 или 12, который включает задание сообщения дополнительной улучшающей информации (SEI), в которое включена индикация точки переключения.

14. Электронное устройство для кодирования последовательности изображений в последовательность блоков доступа, в котором: первая подпоследовательность блоков доступа в последовательности блоков доступа находится на первом временном уровне, вторая подпоследовательность блоков доступа в последовательности блоков доступа находится на втором временном уровне, первая подпоследовательность блоков доступа может быть декодирована независимо от второй подпоследовательности блоков доступа, вторая подпоследовательность блоков доступа зависит от первой подпоследовательности блоков доступа, при этом электронное устройство включает процессор и блок памяти, функционально подключенный к процессору и включающий компьютерную программу, включающую программный код для включения индикации точки переключения от первого временного уровня ко второму временному уровню в последовательность блоков доступа, при этом индикация точки переключения указывает, что вторая подпоследовательность блоков доступа может быть декодирована, начиная с этой точки переключения, без необходимости декодировать блоки доступа во второй подпоследовательности блоков доступа до этой точки переключения в последовательности декодирования.

15. Электронное устройство для включения последовательности блоков доступа по меньшей мере в один файл, при этом: первая подпоследовательность блоков доступа в последовательности блоков доступа находится на первом временном уровне, вторая подпоследовательность блоков доступа в последовательности блоков доступа находится на втором временном уровне, первая подпоследовательность блоков доступа может быть декодирована независимо от второй подпоследовательности блоков доступа, вторая подпоследовательность блоков доступа зависит от первой подпоследовательности блоков доступа, при этом электронное устройство включает процессор и блок памяти, функционально подключенный к процессору и включающий компьютерную программу, включающую программный код для включения в упомянутый по меньшей мере один файл индикации точки переключения от первого временного уровня ко второму временному уровню, при этом индикация точки переключения указывает, что вторая подпоследовательность блоков доступа может быть декодирована, начиная с этой точки переключения, без необходимости декодировать блоки доступа во второй подпоследовательности блоков доступа до этой точки переключения в последовательности декодирования.

16. Элемент системы потоковой передачи, предназначенный для обеспечения возможности переключения с низкого уровня на высокий в битовом видеопотоке и включающий: первый блок для приема битового видеопотока, содержащего последовательность блоков доступа, при этом первая подпоследовательность блоков доступа в последовательности блоков доступа находится на первом временном уровне, вторая подпоследовательность блоков доступа в последовательности блоков доступа находится на втором временном уровне, первая подпоследовательность блоков доступа может быть декодирована независимо от второй подпоследовательности блоков доступа, а вторая подпоследовательность блоков доступа зависит от первой подпоследовательности блоков доступа; второй блок для идентификации индикации точки переключения от первого временного уровня ко второму временному уровню по меньшей мере в один файл, при этом индикация точки переключения указывает, что вторая подпоследовательность блоков доступа может быть декодирована, начиная с этой точки переключения, без необходимости декодировать блоки доступа во второй подпоследовательности блоков доступа до этой точки переключения в последовательности декодирования; и третий блок для переключения от передачи подмножества масштабируемых уровней на большее подмножество масштабируемых уровней в точке переключения с низкого уровня на высокий.

Документы, цитированные в отчете о поиске Патент 2010 года RU2407217C2

Proposal for SVC File Format Specification, ISO/IEC/JTC1/SC29/WG11, MPEG2005/M12345, July 2005, Poznan, Poland
US 2004006575 A1, 08.01.2004
US 2005021814 A1, 27.01.2005
WO 03058978 A1, 17.07.2003
СПОСОБ НИЗКОШУМОВОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ 1997
  • Йю Хаопинг
  • Макнили Девид Ловелл
  • Бейерс Билли Весли Мл.
RU2201654C2
US 5988863 A, 23.11.1999
XIAOYAN SUN et al
Seamless switching of scalable video bitstreams for efficient streaming, ISCAS

RU 2 407 217 C2

Авторы

Ванг Йе-Куй

Ханнуксела Миска

Даты

2010-12-20Публикация

2006-10-11Подача