Система и способ предоставления указаний о выводе кадров при видеокодировании
SYSTEM AND METHOD OF PROVIDING INSTRUCTIONS ON OUTPUTTING FRAMES DURING VIDEO CODING

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к видеокодированию. Более конкретно, настоящее изобретение относится к использованию декодированных кадров в целях, отличных от вывода.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[0002] В данном разделе изложены предпосылки или контекст изобретения, изложенного в формуле. Приведенное здесь описание может включать принципы, которые могли быть предложены, но не обязательно уже предлагались ранее. Поэтому все, что описано в данном разделе, если не будет сказано иначе, не является описанием известного уровня техники. [0003] Стандарты кодирования видео включают ITU-T Η.261, ISO/IEC MPEG-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). Помимо этого в настоящее время ведутся работы по разработке новых стандартов кодирования видео. Одним таким разрабатываемым стандартом является стандарт кодирования масштабируемого видео (SVC - scalable video coding), который станет масштабируемым расширением для H.264/AVC. Другим стандартом, находящимся в процессе разработки, является стандарт мультивидео-кодирования (MVC - multivideo coding standard), который также является расширением H.264/AVC. Еще одна такая работа включает разработку китайских стандартов видеокодирования.
[0004] Проект SVC описан в документе JVT-T201, "Joint Draft 7 of SVC Amendment," 20th JVT Meeting, Klagenfurt, Austria, July 2006, доступном no адресу http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T201.zip. Проект MVC описан в документе JVT-T208, "Joint Multiview Video Model (JMVM) 1.0", 20th JVT Meeting, Klagenfurt, Austria, July 2006, доступном по адресу http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T208.zip. Оба этих документа включены в данное описание путем ссылки.
[0005] При масштабируемом кодировании видео (SVC - scalable video coding) видеосигнал может быть кодирован с получением базового уровня и одного или более улучшающего уровней, составленных по принципу пирамиды. Улучшающий уровень улучшает временную разрешающую способность (т.е. частоту кадров), пространственную разрешающую способность или качество видеоконтента, представленного другим уровнем или частью другого уровня. Каждый уровень вместе с зависимыми от него уровнями является одним представлением видеосигнала при конкретной пространственной разрешающей способности, временном разрешении и уровне качества. Масштабируемый уровень с зависимыми от него уровнями именуются в тексте как «изображение масштабируемого уровня». Для представления оригинального сигнала с определенной точностью может быть извлечена и декодирована часть масштабируемого битового потока, соответствующая представлению масштабируемого уровня.
[0006] В некоторых случаях данные в улучшающем уровне могут быть отброшены после конкретного места или в произвольных позициях, где каждая позиция отбрасывания может включать дополнительные данные, отображающие видео с более хорошим качеством. Такая масштабируемость известна как мелкозернистая масштабируемость (FGS, fine-grained (granularity) scalability). В отличие от FGS, масштабируемость, обеспеченная улучшающими уровнями, которые не могут быть отброшены, именуется крупнозернистой масштабируемостью (CGS, coarse-grained (granularity) scalability). CGS в совокупности включает масштабируемость традиционного качества (SNR) и пространственную масштабируемость.
[0007] Команда Joint Video Team (JVT) вела процесс разработки стандарта SVC как расширения стандарта Н.264/Продвинутого кодирования видеосигнала (AVC - Advanced Video Coding). Для предоставления временной масштабируемости SVC использует тот же механизм, что и H.264/AVC. В стандарте AVC сигнализация временной информации о масштабируемости осуществляется посредством использования сообщений с дополнительной информацией об улучшении (SEI - supplemental enhancement information), относящихся к субпоследовательности.
[0008] SVC использует механизм межуровневого предсказания, в котором конкретная информация может быть предсказана из уровней, отличных от текущего реконструируемого уровня или следующего нижележащего уровня. Информацию, которая может быть предсказана путем межуровневого предсказания, включает внутренние данные о текстуре, движении и остаточные данные. Межуровневое предсказание движения включает предсказание режима кодирования блока, информацию заголовка и т.д., где информация о движении из нижележащего уровня может использоваться для предсказания вышележащего уровня. В случае внутреннего кодирования возможно предсказание из окружающих или совместно расположенных макроблоков нижележащих уровней. Эти технологии предсказания не используют информацию о движении и поэтому называются технологиями внутреннего предсказания. Помимо этого, остаточные данные из нижележащих уровней могут также использоваться для предсказания текущего уровня.
[0009] Элементарной единицей для выходных данных кодера SVC и входных данных декодера SVC является блок уровня сетевой абстракции (NAL - Network Abstraction Layer). Последовательность блоков NAL, сформированная кодером, именуется потоком блоков NAL. Для передачи в пакетно-ориентированных сетях или хранения в структурированных файлах блоки NAL обычно инкапсулируются в пакеты или подобные конструкции. В средах передачи или хранения данных, не предусматривающих структуры кадрирования, формат байтового потока, который подобен структуре начального битового потока с кодовой основой, показан в Приложении В стандарта H.264/AVC. Формат байтового потока отделяет блоки NAL друг от друга, прикрепляя стартовый код перед каждым блоком NAL.
[0010] Блок NAL с дополнительной информацией об улучшении (SEI - Supplemental Enhancement Information) содержит одно или более сообщений SEI, которые не требуются для декодирования выходных изображений, но принимают участие в связанных процессах, таких как синхронизация выходных кадров по времени, визуализация, обнаружение ошибок, маскирование ошибок и резервирование ресурсов. Около 20 сообщений SEI определены в стандарте H.264/AVC, а другие определены в стандарте SVC. Сообщения SEI с пользовательскими данными позволяют организациям и компаниям адаптировать сообщения SEI для их собственного использования. Стандарты H.264/AVC и SVC содержат синтаксис и семантику для указанных сообщений SEI, но не задают процесс обработки сообщений получателем. Поэтому для соответствия стандарту H.264/AVC или SVC требуются кодеры, создающие сообщения SEI. Декодеры, соответствующие стандарту H.264/AVC или SVC, не требуются для обработки сообщений SEI с целью обеспечения соответствия выходных команд. Одной из причин включения синтаксиса и семантики сообщений SEI в H.264/AVC и SVC является обеспечение идентичной интерпретации дополнительной информации и следующего из этого взаимодействия для таких системы как цифровое телевидение (DVB - Digital Video Broadcasting specifications). Необходимо, чтобы характеристики системы могли требовать использования конкретных сообщений SEI как на кодирующем, так и на декодирующем конце, и процесс обработки сообщений SEI получателем может быть задан для приложения в технических условиях на систему.
[0011] В стандартах H.264/AVC и SVC параметры кодирования, которые остаются неизменными на протяжении последовательности кодированных видеокадров, включены в набор параметров последовательности кадров. Кроме параметров, необходимых для процесса декодирования, набор параметров для последовательности кадров опционально может содержать информацию об использовании видео (VUI - video usability information), которая включает параметры, важные для буферизации, синхронизации вывода кадров по времени, визуализации и резервирования ресурсов. Имеется две оговоренные структуры для передачи наборов параметров для последовательности кадров: 1) блоки NAL с наборами параметров последовательности кадров, содержащими все данные для кадров H.264/AVC в последовательности; 2) расширение набора параметров последовательности кадров для SVC. Набор параметров кадра содержит такие параметры, которые должны оставаться неизменными в некоторых кодированных кадрах. Часто меняющиеся данные уровня кадров повторяются в каждом заголовке слайса, а наборы параметров кадра передают оставшиеся параметры уровня кадров. Синтаксис H.264/AVC допускает много вариантов наборов параметров последовательности кадров и наборов параметров кадра, и каждый вариант распознается при помощи уникального идентификатора. Каждый заголовок слайса включает идентификатор набора параметров кадра, который активен для декодирования содержащего слайс кадра, а каждый набор параметров кадра содержит идентификатор активного набора параметров последовательности кадров. Поэтому передача наборов параметров для кадра и для последовательности кадров не должна точно синхронизироваться с передачей слайсов. Вместо этого достаточно, чтобы активный набор параметров для кадра и для последовательности кадров принимались в любой момент перед получением ссылки на них, что позволяет обеспечить передачу наборов параметров при помощи более надежного механизма передачи по сравнению с протоколами, используемыми для данных о слайсах. Например, для сеансов H.264/AVC по протоколу реального времени (RTP - Real-Time Protocol) наборы параметров могут быть включены в описание сеанса как параметр MIME. Везде, где возможно, рекомендуется использование внеполосного механизма передачи. Если наборы параметров передаются в основной полосе, для увеличения ошибкоустойчивости они могут повторяться.
[0012] При мультипроекционном кодировании последовательности кадров с разных камер, каждая из которых соответствует разным проекциям, кодируются в один битовый поток. После декодирования для отображения конкретной проекции декодированные кадры, принадлежащие этой проекции, реконструируются и показываются. Также возможно, чтобы реконструировалось и отображалось более одной проекции. Мультипроекционное кодирование видеосигнала имеет множество вариантов применения, включая видео/телевидение со свободной точкой обзора, трехмерное телевидение и системы наблюдения.
[0013] В стандартах H.264/AVC, SVC или MVC блоки NAL, содержащие кодированные слайсы или разделы данных о слайсах, именуются блоками NAL уровня кодирования видеосигнала (VCL - Video Coding Layer). Другие блоки NAL не являются блоками VCL NAL. Все блоки NAL, принадлежащие определенному моменту времени, формируют блок доступа.
[0014] Кодирование с наложением основано на независимом кодировании исходных последовательностей кадров монтажного перехода и динамическом формировании плавного перехода. При кодировании с наложением реконструированные кадры из двух сцен, именуемые здесь кадрами-компонентами, для обеспечения эффективной компенсации движения во время перехода хранятся в мультикадровом буфере. Монтажный переход с плавным переходом составляется из кадров-компонент только в целях отображения. Наложение кадров-компонент выполняется таким образом, чтобы верхний кадр был частично прозрачным. Нижний кадр именуется здесь исходным кадром. Плавный переход определяется как операция фильтрации между исходным и верхним кадром.
[0015] Имеется множество вариантов применения, в которых требуется декодирование кодированного опорного кадра и хранение получившегося декодированного опорного кадра, но при этом необходимо предотвратить вывод или отображение декодированного кадра. В одной такой ситуации используется кодирование масштабируемого битового потока, в котором базовый уровень используется для предсказания улучшающего уровня, детализующего качество, и улучшающего уровня пространственной детализации. В данном случае базовый уровень не представляет исходный несжатый кадр в достаточном для отображения качестве. Улучшающий уровень, детализующий качество, не предсказывается из улучшающего уровня пространственной детализации, и наоборот. В зависимости от возможностей декодера для декодирования могут быть предоставлены только базовый уровень и улучшающий уровень, детализирующий качество, или базовый уровень и улучшающий уровень пространственной детализации. В этом случае для декодирования не выгодно предоставлять оба улучшающих уровня. Сигнализация о том, что базовый уровень не кодирован полностью для отображения, предотвратит декодирование одного только базового уровня, а также предотвратит обрезание битового потока сетевыми элементами с поддержкой мультимедиа (MANE - media-aware network elements), при котором он будет содержать только базовый уровень.
[0016] Другая ситуация, когда может потребоваться декодирование и хранение кодированного кадра в качестве опорного кадра, и при этом необходимо предотвратить вывод или отображение декодированного кадра, включает вариант множества улучшающих уровней. В этом случае полезно представить два улучшающих уровня А и В, где А основывается на базовом уровне, а В основывается на А. Уровни А или В могут являться уровнями качественного улучшения или уровнями пространственного улучшения. Качество базового уровня недостаточно высоко для показа, и оба уровня А и В могут предоставить приемлемое качество отображения. Поэтому идеальным вариантом является переключение при необходимости между уровнями А и В, например, при изменении пропускной способности соединения с сетью. Подобно описанному выше варианту, сигнализация о том, что базовый уровень не кодирован в достаточной для отображения степени, предотвратит декодирование одного только базового уровня, а также предотвратит такое обрезание битового потока сетевыми элементами с поддержкой мультимедиа (MANE - media-aware network elements), при котором он будет содержать только базовый уровень.
[0017] В третьей подобной ситуации используется синтез в декодере выходного кадра на основании не выводимых кадров. Один пример относится к кодированию с наложением, которое было предложено для кодирования плавных монтажных переходов. Другой пример включает вставку логотипа вещательной компании. В таких случаях телевизионная программа или подобный контент кодируется независимо от логотипа. Логотип кодируется как независимое изображение со связанной информацией о прозрачности (например, альфа-плоскость). Вещательная компания может требовать показа логотипа. Следовательно, наложение логотипа поверх кадров «главного» контента является нормативной частью стандарта декодирования видео. Выводятся только наложенные кадры, в то время как сами кадры «главного» контента и изображение логотипа помечаются как не отправляемые на вывод.
[0018] В настоящее время такая концепция, согласно которой указывается, что кадры должны быть декодированы, но не должны выводиться, ограничена особыми случаями использования. В одном таком случае используются команды "замораживания" кадра, указанные в сообщениях SEI стандартов Н.263 и H.264/AVC. Эти сообщения SEI управляют процессом отображения декодирующего устройства. Сообщения SEI не влияют на данные, выводимые декодером. Функция запроса замораживания всего кадра сообщает, что содержимое всего показанного видеокадра должно сохраняться неизменным до иного уведомления -запроса на снятие замораживания кадра или истечения времени. Запрос на замораживание части кадра аналогичен запросу на замораживание всего изображения, но касается только его указанной прямоугольной области.
[0019] В другом подобном случае использования сохраняется и обновляется фоновый кадр. Фоновый кадр может использоваться как основа для предсказания, но он сам никогда не выводится. Когда появляется первый промежуточный кадр или кадр смены плана, все фоновое изображение перекрывается этим кадром. Фоновый кадр обновляется блок за блоком, если блок имеет нулевой вектор движения и кодирован с лучшей дискретизацией, чем соответствующий блок фонового кадра.
[0020] Другая ситуация, в которой предусмотрена такая индикация, включает использование флага no_output_of_prior_pics_flag стандарта H.264/AVC. Этот флаг присутствует в кадрах мгновенного обновления декодирования (IDR - Instantaneous Decoding Refresh). При установке значения флага 1 кадры, предшествующие кадру IDR в порядке декодирования и хранящиеся в буфере декодированных кадров во время декодирования кадра IDR, не выводятся.
[0021] Еще одна ситуация, в которой предусмотрена такая индикация, включает использование флага layer_base_flag стандарта SVC. Этот флаг используется для индикации того, что кадр декодирован и хранится как базовое изображение кадра FGS и используется как основа для предсказания более поздних кадров FGS. Декодированное базовое изображение не выводится до тех пор, пока не будут приняты улучшающие кадры FGS. В ранних версиях стандарта SVC для индикации того, что кадр декодирован и хранится как базовое изображение, и что предыдущее базовое изображение использовалось как основа для предсказания этого кадра, использовали флаг key_pic_flag, равный 1, и флаг quality_level, превышающий 0.
[0022] Наконец, бывают особые случаи использования, когда кадр не выводится в случае приема соответствующего перекрывающего кадра. Кодирование наложением основано на независимом кодировании исходных последовательностей кадров монтажного перехода и динамическом формировании плавного перехода. Если принят перекрывающий кадр того же момента времени, то кадр первой сцены декодируется, но не выводится. Перекрывающий кадр содержит кодированное изображение кадра второй сцены и параметры для формирования заданной операции между декодированными кадрами первой и второй сцены. Декодер выполняет операцию и выводит только результирующее изображение операции, при этом кадр первой сцены и кадр второй сцены остаются в буфере декодированных кадров как основа для предсказания. Данная система подробно описана в патентной заявке США №2003/0142751, поданной 22 января 2003 и включенной в данный документ путем ссылки.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0023] Настоящее изобретение предусматривает использование в масштабируемом кодированном двоичном видеопотоке одного или более элементов сигнализации, таких как элементы синтаксиса. В различных вариантах осуществления настоящего изобретения один или более элементов сигнализации, таких как элементы синтаксиса в кодированном двоичном видеопотоке, используются для индикации: 1) пригоден ли (и/или желателен ли по иным соображениям) кадр для вывода, когда соответствующий кодированный кадр предназначен для использования вместе с другим кодированным кадром с целью формирования другого декодированного кадра; 2) пригоден ли (и/или желателен ли по иным соображениям) определенный набор кадров, такой как масштабируемый уровень, для вывода (при этом набор кадров может быть явно просигнализирован или получен неявно), когда соответствующие кодированные кадры предназначены для использования вместе с другим набором кодированных кадров, таких как масштабируемый улучшающий уровень, с целью формирования другого набора кадров; 3) пригодна ли (и/или желательна ли по иным соображениям) определенная часть кадра для вывода, когда соответствующая часть кодированного кадра предназначена для использования вместе с другим кодированным кадром с целью формирования другого декодированного изображения. Например, базовый уровень и уровень улучшения его качества могут включать две группы слайсов, одна из которых содержит область интереса, а другая - фон. В соответствии с различными вариантами изобретения можно сигнализировать, что фон кадра базового уровня достаточно хорош (и/или желателен по иным соображениям) для вывода, в то время как область интереса требует соответствующей группы слайсов улучшающего уровня для отображения с достаточным качеством. Элемент сигнализации может являться частью кодированного кадра или блока доступа, с которым он связан, или же может находиться в отдельной от кодированного кадра или блока доступа синтаксической структуре, такой как набор параметров последовательности кадров. Различные варианты настоящего изобретения также могут быть использованы для вставки логотипов в сжатый битовый поток без необходимости перекодировки всей последовательности кадров.
[0024] Помимо этого различные варианты осуществления настоящего изобретения включают использование кодера, который кодирует описанный выше элемент сигнализации в битовый поток. Кодер может быть реализован таким образом, чтобы работать в соответствии с любым из ранее рассмотренных вариантов использования. Также различные варианты изобретения включают использование декодера, который использует элемент сигнализации для принятия решения - нужно ли выводить кадр, набор кадров или часть кадра.
[0025] Кроме этого различные варианты настоящего изобретения включают использование устройства обработки данных, которое на входе получает битовый поток, включающий описанный здесь элемент сигнализации, а на выходе выдает подмножество битовых потоков. Подмножество содержит по меньшей мере один кадр, который указан как предназначенный для вывода в соответствии с элементом сигнализации. Работа устройства обработки данных может быть настроена для формирования на выходе определенной минимальной частоты кадров, и в этом случае подмножество содержит кадры, указанные как предназначенные для вывода по меньшей мере с минимальным выходным битрейтом в соответствии с представленным элементом сигнализации.
[0026] Необходимо заметить, что различные варианты реализации настоящего изобретения применимы для кодирования мультипроекционного видео в ситуациях, когда создатель битового потока хочет отображать по меньшей мере несколько видов разных планов. Например, битовый поток может быть создан только для стереоскопического отображения, и отображение только одного из видов будет недостаточным для достижения художественного замысла. В случаях, подобных этому, вывод декодером только одного вида может быть запрещен при помощи вариантов данного изобретения.
[0027] Эти и другие преимущества и особенности изобретения, а также организация и принцип работы, станут понятны из нижеследующего подробного описания с приложенными чертежами, где на нескольких чертежах, описанных ниже, одинаковые элементы имеют одинаковые номера.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0028] Фиг. 1 - общая схема системы, в рамках которой может быть реализовано настоящее изобретение;
[0029] Фиг. 2 - вид в перспективе мобильного устройства, которое может быть использовано для осуществления настоящего изобретения;
[0030] Фиг. 3 - схематическое представление схемы мобильного устройства, изображенного на фиг. 2; и
[0031] Фиг. 4 - изображение базового уровня и улучшающего уровня, содержащего логотип.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
[0032] На фиг. 1 изображена типичная мультимедийная система связи. Как показано на фиг. 1, источник 100 данных выдает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате, или же в любой комбинации этих форматов. Кодер 110 кодирует исходный сигнал в кодированный мультимедийный битовый поток. Кодер 110 может иметь возможность кодирования более одного типа мультимедиа, например аудио и видео, или же для кодирования разных типов мультимедиа-данных в исходном сигнале может потребоваться более одного кодера 110. Кодер 110 также может получать искусственно созданные входные данные, такие как графику или текст, или иметь возможность формирования кодированных битовых потоков искусственных мультимедиа-данных. Далее для упрощения описания будет рассматриваться обработка только одного кодированного мультимедийного битового потока для одного типа мультимедиа. Однако необходимо заметить, что обычно вещательные службы, работающие в режиме реального времени, содержат несколько потоков (обычно по меньшей мере один аудио, видео и текстовый субтитровый поток). Также необходимо заметить, что система может содержать много кодеров, но далее для упрощения описания без потери общности будет рассматриваться только один кодер 110.
[0033] Кодированный мультимедийный битовый поток передается в запоминающее устройство 120. Запоминающее устройство 120 может иметь любой тип массовой памяти для хранения кодированного мультимедийного битового потока. Формат кодированного мультимедийного битового потока в запоминающем устройстве 120 может быть элементарным независимым битовым потоком, или же один или более кодированных мультимедийных битовых потоков могут быть инкапсулированы в файл-контейнер. Некоторые системы работают в режиме реального времени, т.е. без сохранения передают кодированный мультимедийный битовый поток от кодера 110 непосредственно в передатчик 130. Затем кодированный мультимедийный битовый поток передается в передатчик 130, также называемый сервером. Формат, используемый при передаче, может быть элементарным независимым битовым потоком, или же один или более кодированных мультимедийных битовых потоков могут быть инкапсулированы в файл-контейнер. Кодер 110, запоминающее устройство 120 и передатчик 130 могут размещаться в одном физическом устройстве или могут быть включены в раздельные устройства. Кодер 110 и передатчик 130 могут работать с контентом в режиме реального времени, в этом случае кодированный мультимедийный битовый поток не хранится постоянно, а буферизуется небольшими интервалами времени в кодирере 110 контента и/или отправителе 130 для сглаживания изменений в задержке обработки, задержке передачи и битрейте кодированного мультимедиа.
[0034] Передатчик 130 отправляет кодированный мультимедийный битовый поток при помощи стека протоколов связи. Стек может включать транспортный протокол реального времени (RTP - Real-Time Transport Protocol), протокол пользовательских дейтаграмм (UDP - User Datagram Protocol) и Интернет-протокол (IP - Internet Protocol), но не ограничивается ими. Когда стек протоколов связи является пакетно-ориентированным, передатчик 130 инкапсулирует кодированный мультимедийный битовый поток в пакеты. Например, когда используется RTP, передатчик 130 инкапсулирует кодированный мультимедийный битовый поток в пакеты RTP в соответствии с форматом полезной нагрузки RTP. Обычно каждый тип мультимедиа имеет специальный формат полезной нагрузки RTP. Снова необходимо заметить, что система может содержать более одного передатчика 130, но ради простоты в дальнейшем описании будет рассматриваться только один передатчик 130.
[0035] Передатчик 130 может быть соединен или не соединен со шлюзом 140 через сеть связи. Шлюз 140 может выполнять различные функции, такие как преобразование потока пакетов, соответствующего одному стеку протоколов связи, в другой стек протоколов связи, объединение и разделение потоков данных и управление потоком данных в соответствии с возможностями нисходящей линии связи и/или приемника, например, управление скоростью передачи перенаправленного потока в соответствии с доминирующими условиями сети нисходящей связи. Примеры шлюзов 140 включают устройства управления многоточечными конференциями (MCU - multipoint conference control unit), шлюзы между видеотелефонией с канальной и пакетной коммутацией, серверы связи «нажми и говори» по сотовой сети (РоС - Push-to-talk over Cellular), инкапсуляторы IP в системах цифрового телевидения для портативных устройств (DVB-Η - digital video broadcasting-handheld) или приставки, которые пересылают вещательные передачи локально в домашнюю беспроводную сеть. Когда используется RTP, шлюз 140 называется микшером RTP и работает как конечная точка соединения RTP.
[0036] Система включает один или более приемников 150, обычно имеющих возможности приема, демодуляции и декапсуляции сигнала, переданного в кодированном мультимедийном битовом потоке. Кодированный мультимедийный битовый поток обычно далее обрабатывается декодером 160, на выходе которого выдается один или более несжатых мультимедийных потоков. Необходимо заметить, что декодируемый битовый поток может быть принят от удаленного устройства, расположенного практически в любой сети. Также битовый поток может быть принят от локального аппаратного или программного обеспечения. В заключение, рендерер 170 может воспроизводить несжатые мультимедийные потоки при помощи, например, динамика или экрана. Приемник 150, декодер 160 и рендерер 170 могут размещаться в одном физическом устройстве или в раздельных устройствах.
[0037] С точки зрения скорости передачи, сложности декодирования и размера изображения масштабируемость является желательным свойством для разнородных и подверженных ошибкам сред. Это свойство желательно для противодействия ограничениям, таким как ограничения скорости передачи, разрешение экрана, пропускная способность сети и вычислительная мощность приемного устройства.
[0038] Необходимо понимать, что хотя текст и примеры, содержащиеся здесь, могут на конкретном примере описывать процесс кодирования, специалисты поймут, что те же идеи и принципы могут также быть применены к соответствующему процессу декодирования, и наоборот. Необходимо заметить, что декодируемый битовый поток может быть принят от удаленного устройства, расположенного практически в любой сети. Также битовый поток может быть принят от локального аппаратного или программного обеспечения.
[0039] Устройства связи в настоящем изобретении могут осуществлять связь при помощи различных технологий передачи, включая, но не ограничиваясь этим, многостанционный доступ с кодовым разделением каналов (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), e-mail, служба мгновенного обмена сообщениями (IMS - Instant Messaging Service), Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь через различные среды, включая, но не ограничиваясь этим, радио, инфракрасное, лазерное, кабельное соединение и т.п.
[0040] На фиг. 2 и 3 показан пример мобильного устройства 12, в котором может быть реализовано настоящее изобретение. Однако необходимо понимать, что настоящее изобретение не должно ограничиваться определенным типом мобильного устройства 12 или другого электронного устройства. Некоторые или все особенности, изображенные на фиг. 5 и 6, могут быть объединены в любом или во всех устройствах, которые могут использоваться в системе, показанной на фиг. 1.
[0041] Мобильное устройство 12 на фиг. 2 и 3 содержит корпус 30, экран 32 в виде жидкокристаллического дисплея, клавиатуру 34, микрофон 36, наушники 38, батарею 40, инфракрасный порт 42, антенну 44, смарт-карту 46 в форме UICC в соответствии с вариантом осуществления изобретения, устройство 48 считывания карт, схему 52 радиоинтерфейса, схему кодека 54, контроллер 56 и память 58. Все типы отдельных схем и элементов хорошо известны в технике, например, в линейке мобильных устройств Nokia.
[0042] Настоящее изобретение предполагает использование в масштабируемом кодированном двоичном видеопотоке элементов сигнализации, таких как элементы синтаксиса. В различных вариантах осуществления настоящего изобретения элемент сигнализации, такой как элемент синтаксиса в кодированном двоичном видеопотоке, используется для индикации: 1) пригоден ли (и/или желателен ли) кадр для вывода, когда соответствующий кодированный кадр предназначен для использования вместе с другим кодированным кадром с целью формирования другого декодированного кадра; 2) пригоден ли (и/или желателен ли) определенный набор кадров, такой как масштабируемый уровень, для вывода (при этом набор кадров может быть явно просигнализирован или неявно извлечен), когда соответствующие кодированные кадры предназначены для использования вместе с другим набором кодированных кадров, таких как масштабируемый улучшающий уровень, с целью формирования другого набора кадров; 3) пригодна ли (и/или желательна ли) определенная часть кадра для вывода, когда соответствующая часть кодированного кадра предназначена для использования вместе с другим кодированным кадром с целью формирования другого декодированного изображения. Например, базовый уровень и уровень улучшения его качества могут включать две группы слайсов, одна из которых содержит область интереса, а другая - фон. В соответствии с различными вариантами изобретения можно сигнализировать, что фон кадра базового уровня достаточно хорош (и/или желателен) для вывода, в то время как область интереса требует соответствующей группы слайсов улучшающего уровня для отображения с достаточным качеством. Элемент сигнализации может являться частью кодированного кадра или блоком доступа, с которым он связан, или же может находиться в отдельной от кодированного кадра или блока доступа синтаксической структуре, такой как набор параметров последовательности кадров.
[0043] В соответствии с вариантами осуществления настоящего изобретения кодер 110 изображенного на фиг. 1 типа может кодировать описанный выше элемент сигнализации в битовый поток. Кодер 110 может быть сконфигурирован для работы в соответствии с любым из ранее рассмотренных вариантов использования. Подобным же образом декодер 160 может использовать элемент сигнализации для принятия решения - нужно ли выводить кадр, набор кадров или часть кадра.
[0044] Кроме этого в других вариантах настоящего изобретения устройство обработки данных сконфигурировано таким образом, чтобы на входе получать битовый поток, включающий описанный здесь элемент сигнализации, а на выходе выдавать подмножество битовых потоков. Устройство обработки данных может являться, например, передатчиком 130, таким как потоковый сервер, или шлюзом 140, таким как микшер RTP. Такое подмножество битового потока содержит по меньшей мере один кадр, который обозначен как предназначенный для вывода в соответствии с элементом сигнализации. В различных вариантах реализации работа устройства обработки данных может быть настроена для формирования на выходе определенного максимального выходного битрейта, и в этом случае подмножество содержит кадры, обозначенные как предназначенные для вывода в соответствии с элементом сигнализации, без превышения максимального выходного битрейта.
[0045] Элемент сигнализации, указывающий, нужно ли выводить определенный кадр, может быть включен, например, в заголовок блока NAL, заголовок слайса или в сообщение с дополнительной информацией об улучшении (SEI - supplemental enhancement information), связанное с кадром или блоком доступа. Сообщение SEI содержит дополнительную информацию, которая может быть вставлена в битовый поток для расширения вариантов использования видео в различных целях. В следующей синтаксической таблице представлены модификации расширения SVC заголовка блока NAL, как указано в черновой версии стандарта SVC стандарта JVT-T201, с изменениями, отражающими реализацию различных вариантов настоящего изобретения. Некоторый синтаксис может быть удален, что отмечено зачеркиванием.
[0047] Семантика флага output_flag не задана для не-VCL блоков NAL. Когда флаг output flag в блоке VCL NAL равен 0, он указывает, что декодированный кадр, соответствующий блоку VCL NAL, не должен выводиться. Когда флаг output_flag в блоке VCL NAL равен 1, он указывает, что декодированный кадр, соответствующий блоку VCL NAL, должен отправляться на вывод.
[0048] Элемент сигнализации, показывающий, должна ли выводиться группа кадров, таких как кадры определенного масштабируемого уровня, может быть включен, например, в набор параметров для последовательности кадров или в сообщение SEI с информацией о масштабируемости, определяемое стандартом SVC. В следующей синтаксической таблице представлена модификация расширения SVC для набора параметров последовательности кадров, определенного стандартом JVT-T201, которая показывает, какие масштабируемые уровни не должны выводиться.
[0049] Синтаксис num_not_output_layers указывает количество не выводимых масштабируемых уровней. Кадры, для которых dependency_id равен dependency_id[i], a quality_level равен quality_level[i], не выводятся.
[0050] Элемент сигнализации, указывающий, нужно ли выводить определенную часть кадра, может быть включен, например, в сообщение SEI, заголовок блока NAL или заголовок слайса. Следующее сообщение SEI указывает, какая группа слайсов изображения не должна выводиться или отображаться. Сообщение SEI может быть заключено в масштабируемом вложенном сообщении SEI (JVT-T073), которое указывает кодированный масштабируемый кадр в блоке доступа, к которому относится сообщение SEI.
[0051] Флаг num_slice_groups_in_set указывает количество групп слайсов, которые не должны выводиться и вместо этого должны заменяться объединенными декодированными данными из предыдущего кадра, в котором объединенные декодированные данные не относятся к этому сообщению. Флаг slice_group_id[i] указывает номер не выводимой группы слайсов.
[0052] В случае вставки логотипа возможна реализация различных вариантов настоящего изобретения для вставки логотипа в сжатый битовый поток без перекодировки всей последовательности видеокадров. Примером, в котором необходимо такое действие, является ситуация, когда владелец контента, такой как киностудия, предоставляет сжатую версию контента провайдеру услуг. Сжатая версия кодируется для получения определенных битрейта и размера изображения, подходящих для услуги. Например, битрейт и размер изображения могут быть выбраны в соответствии с классами встроенного приемника-декодера (IRD - integrated receiver-decoder), заданными в определенной спецификации цифрового видеовещания (DVB - digital video broadcasting). Следовательно, владелец контента имеет полный контроль над качеством предоставляемого видео, так как провайдер услуг не должен перекодировать контент. Однако провайдеру услуг может потребоваться добавить в поток свой логотип.
[0053] Одна система и способ решения вышеуказанной проблемы изображены на фиг. 4 и в общих чертах описаны далее. Как показано на фиг. 4, базовый уровень 400 (т.е. первый кодированный кадр) битового потока остается неизменным. Улучшающий уровень 410 (т.е. второй кодированный кадр) кодируется таким образом, чтобы область, закрытая логотипом 420, кодировалась как один или более слайсов. Пространственное разрешение улучшающего уровня может отличаться от пространственного разрешение базового уровня. Если в используемом профиле разрешено более одной группы слайсов, то можно закрыть логотип 420 в одной группе слайсов, а также, следовательно, в одном слайсе. Затем логотип 420 примешивается поверх декодированной или несжатой области, и слайсы, содержащие логотип, перекодируются в улучшающий уровень 410. Флаг "skip slice" в заголовках оставшихся слайсов улучшающего уровня устанавливается равным 1. Флаг "skip slice", равный 1, указывает, что для слайса не отправлено никакой информации кроме заголовка слайса, и в этом случае все макроблоки реконструируются при помощи информации совмещенных макроблоков в базовом уровне, используемых для межуровневого предсказания. Для того чтобы сделать копирование контента без логотипа недопустимым, декодеры не должны выводить декодированные кадры базового уровня, даже если улучшающий уровень 410 не присутствует. Такой частный вариант использования может быть реализован посредством установки значения флага output_flag во всех блоках NAL базового уровня 400 равным нулю. В сообщении SEI с информацией о масштабируемости значение флага layer_output_flag[i] для базового уровня устанавливается равным 0.
[0054] Настоящее изобретение описано в основном контексте этапов, которые могут быть реализованы в одном варианте осуществления изобретения в виде компьютерной программы, включающей выполняемые компьютером инструкции, такие как программный код, выполняемый компьютерами в сетевых средах. Как правило, программа включает подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют отдельные задачи или реализуют отдельные абстрактные типы данных. Выполняемые компьютером инструкции, связанные структуры данных и программные модули представляют примеры программного кода для выполнения шагов способа, описанного здесь. Отдельная последовательность таких выполняемых инструкций или связанных структур данных представляет примеры соответствующих действий для реализации функций, описанных в этих шагах.
[0055] Программные и сетевые варианты реализации настоящего изобретения могут быть выполнены при помощи стандартной технологии программирования с логикой, основанной на правилах, и другой логикой для выполнения различных шагов поиска в базе данных, шагов корреляции, шагов сравнения и шагов принятия решения. Также необходимо заметить, что слова «компонент» и «модуль», используемые здесь и в формуле, охватывают варианты реализации, осуществленные при помощи одной или более строк программного кода, и/или аппаратные варианты реализации и/или оборудование для приема вводимых вручную данных.
[0056] Предшествующее описание вариантов реализации настоящего изобретения было представлено в целях иллюстрации и описания. Оно не является исчерпывающим и не предназначено для ограничения настоящего изобретения описанными вариантами, и поэтому в свете вышеизложенных идей или исходя из практического использования настоящего изобретения могут быть выполнены различные модификации и изменения. Варианты реализации были выбраны и описаны для того, чтобы объяснить принципы и варианты практического применения настоящего изобретения и обеспечить специалистам возможность использовать его в различных вариантах и с различными модификациями, подходящими для предполагаемого частного случая использования.