УПРАВЛЯЮЩИЕ ДАННЫЕ ДЛЯ НАБОРА МОЗАИЧНЫХ ФРАГМЕНТОВ С ОГРАНИЧЕНИЯМИ ДВИЖЕНИЯ
MOTION-CONSTRAINED CONTROL DATA FOR TILE SET

Уровень техники
[001] Специалисты используют сжатие (также называемое "кодированием источника") для того, чтобы уменьшать скорость передачи битов цифрового видео. Сжатие снижает затраты на хранение и передачу видеоинформации посредством преобразования информации в форму с более низкой скоростью передачи битов. Распаковка (также называемая "декодированием") восстанавливает версию исходной информации из сжатой формы. "Кодек" представляет собой систему кодера/декодера.
[002] За последние два десятилетия приспособлены различные стандарты видеокодеков, включающие в себя стандарты ITU-T H.261, H.262 (MPEG-2 или ISO/IEC 13818-2), H.263 и H.264 (AVC или ISO/IEC 14496-10), стандарты MPEG-1 (ISO/IEC 11172-2) и MPEG-4 Visual (ISO/IEC 14496-2) и стандарт SMPTE 421M. Позднее, утвержден HEVC-стандарт (ITU-T H.265 или ISO/IEC 23008-2). Стандарт видеокодеков типично задает варианты для синтаксиса кодированного потока видеобитов, детализируя параметры в потоке битов, когда конкретные признаки используются при кодировании и декодировании. Во многих случаях, стандарт видеокодеков также предоставляет подробную информацию касательно операций декодирования, которые должен выполнять декодер для того, чтобы достигать надлежащих результатов декодирования. Помимо стандартов кодеков, различные собственные форматы кодеков задают другие варианты для синтаксиса кодированного потока видеобитов и соответствующих операций декодирования.
[003] В версии от января 2013 HEVC-стандарта (см. документ Bross и др. "High Efficiency Video Coding (HEVC) Text Specification Draft 8", JCTVC-L1003_v34, январь 2013 года), изображение может быть сегментировано на несколько мозаичных фрагментов, которые представляют собой прямоугольные области. Когда элемент tiles_enabled_flag синтаксиса равен 1, изображение имеет структуру мозаичных фрагментов. Мозаичные фрагменты задают горизонтальные и вертикальные границы в изображении и организованы в изображении согласно столбцам мозаичных фрагментов и строкам мозаичных фрагментов. Когда используются мозаичные фрагменты, синтаксис HEVC-потока битов и процессы HEVC-декодирования структурированы таким образом, чтобы исключать зависимости при внутрикадровом предсказании на границах мозаичных фрагментов в идентичном изображении и исключать зависимости при энтропийном декодировании на границах мозаичных фрагментов в идентичном изображении. Тем не менее, зависимости при межкадровом предсказании не ограничены относительно границ мозаичных фрагментов согласно версии от января 2013 HEVC-стандарта.
Сущность изобретения
[004] В общих словах, подробное описание представляет новшества в передаче служебных сигналов и использовании управляющих данных для набора мозаичных фрагментов с ограничениями движения (MCTS). Например, новшества поддерживают передачу служебных сигналов и использование управляющих данных для того, чтобы указывать то, что процессы межкадрового предсказания в рамках одного или более указанных наборов мозаичных фрагментов, ограничены таким образом, что они ссылаются только на области в соответствующем наборе мозаичных фрагментов в других изображениях. Это может упрощать кодирование, декодирование и отображение интересующих областей, транскодирование для того, чтобы ограничивать кодированные данные выбранным набором мозаичных фрагментов, устойчивость к потерям и параллелизм при кодировании и/или декодировании.
[005] Согласно одному аспекту новшеств, описанных в данном документе, видеокодер или другое инструментальное средство кодирует несколько изображений для того, чтобы формировать кодированные данные, причем каждое из изображений сегментировано на несколько мозаичных фрагментов. Например, инструментальное средство определяет то, должны или нет ограничиваться зависимости при межкадровом предсказании на конкретных границах для набора мозаичных фрагментов, и если да, ограничивает оценку движения во время кодирования таким образом, что зависимости при межкадровом предсказании на конкретных границах не допускаются для набора мозаичных фрагментов. В некоторых реализациях, конкретные границы представляют собой границы идентичного набора мозаичных фрагментов для каждого изображения, но в других реализациях, конкретные границы могут представлять собой границы другого набора мозаичных фрагментов либо другой области или областей, используемых для межкадрового предсказания. Инструментальное средство выводит кодированные данные вместе с управляющими данными, которые указывают то, что зависимости при межкадровом предсказании на конкретных границах ограничены для данного набора мозаичных фрагментов одного или более мозаичных фрагментов из нескольких мозаичных фрагментов. Ограничение зависимостей при межкадровом предсказании для нескольких наборов мозаичных фрагментов может упрощать использование параллельной обработки при кодировании и также может помогать предоставлять функциональность декодирования интересующих областей или функциональность постепенного обновления при декодировании.
[006] Согласно другому аспекту новшеств, описанных в данном документе, видеодекодер или другое инструментальное средство принимает кодированные данные для нескольких изображений, причем каждое из нескольких изображений сегментировано на несколько мозаичных фрагментов. Инструментальное средство также принимает управляющие данные, которые указывают то, что зависимости при межкадровом предсказании на конкретных границах ограничены для данного набора мозаичных фрагментов одного или более мозаичных фрагментов из нескольких мозаичных фрагментов. Инструментальное средство затем обрабатывает кодированные данные, например, декодирует данный набор мозаичных фрагментов в качестве интересующей области в изображениях без декодирования частей изображений за пределами данного набора мозаичных фрагментов. Альтернативно, в качестве части обработки кодированных данных инструментальное средство транскодирует кодированные данные, удаляет кодированные данные для частей изображений за пределами данного набора мозаичных фрагментов и организует кодированные данные для данного набора мозаичных фрагментов в качестве нового потока битов. Альтернативно, в качестве части обработки кодированных данных, при обнаружении потерь, по меньшей мере, некоторых кодированных данных, отличных от данного набора мозаичных фрагментов, декодер декодирует данный набор мозаичных фрагментов в качестве части восстановления потерь. Кроме того, ограничение зависимостей при межкадровом предсказании для нескольких наборов мозаичных фрагментов может упрощать использование параллельной обработки при декодировании.
[007] В примерных реализациях, данный набор мозаичных фрагментов параметризован в управляющих данных в качестве одного или более прямоугольников из мозаичных фрагментов, включающих в себя один или более мозаичных фрагментов из набора мозаичных фрагментов. Например, для данного прямоугольника из мозаичных фрагментов в наборе мозаичных фрагментов, управляющие данные включают в себя элементы синтаксиса, которые идентифицируют два угла прямоугольника из мозаичных фрагментов (к примеру, левый верхний угол прямоугольника из мозаичных фрагментов и правый нижний угол прямоугольника из мозаичных фрагментов). Управляющие данные также могут включать в себя идентификатор набора мозаичных фрагментов, параметр количества, который указывает количество прямоугольников из мозаичных фрагментов в наборе мозаичных фрагментов, и для каждого из прямоугольников из мозаичных фрагментов в наборе мозаичных фрагментов, элементы синтаксиса, которые указывают местоположение прямоугольника из мозаичных фрагментов.
[008] В примерных реализациях, несколько изображений идентично сегментированы, чтобы формировать мозаичные фрагменты в каждом из изображений. Типично, данный набор мозаичных фрагментов является идентичным для каждого из изображений. Тем не менее, в некоторых случаях, наборы мозаичных фрагментов могут отличаться, по меньшей мере, между некоторыми изображениями. Альтернативно, различные изображения могут быть сегментированы на мозаичные фрагменты по-разному.
[009] В примерных реализациях, управляющие данные представляют собой сообщение с дополнительной улучшающей информацией (SEI), которое указывает то, что зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов ограничены для набора мозаичных фрагментов. Одно SEI-сообщение направлено на зависимости при межкадровом предсказании для одного набора мозаичных фрагментов, и различные SEI-сообщения могут быть направлены на различные наборы мозаичных фрагментов. Альтернативно, одно SEI-сообщение направлено на зависимости при межкадровом предсказании для каждого из нескольких наборов мозаичных фрагментов. Альтернативно, вместо SEI-сообщений управляющие данные могут представлять собой флаг, значение которого указывает то, ограничены или нет зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов для набора мозаичных фрагментов. Альтернативно, управляющие данные могут принимать некоторую другую форму.
[010] Передача служебных сигналов и использование управляющих MCTS-данных могут быть реализованы в качестве части способа, в качестве части вычислительного устройства, адаптированного с возможностью осуществлять способ, или в качестве части материальных машиночитаемых носителей, сохраняющих машиноисполняемые инструкции для предписания вычислительному устройству осуществлять способ.
[011] Вышеприведенные и другие цели, признаки и преимущества изобретения должны становиться более очевидными из нижеприведенного подробного описания, которое приводится со ссылками на прилагаемые чертежи.
Краткое описание чертежей
[012] Фиг. 1 является схемой примерной вычислительной системы, в которой могут реализовываться некоторые описанные варианты осуществления.
[013] Фиг. 2A и 2B являются схемами примерных сетевых окружений, в которых могут реализовываться некоторые описанные варианты осуществления.
[014] Фиг. 3 является схемой примерной системы кодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления.
[015] Фиг. 4 является схемой примерной системы декодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления.
[016] Фиг. 5A и 5B являются схемами, иллюстрирующими примерный видеокодер, в сочетании с которым могут реализовываться некоторые описанные варианты осуществления.
[017] Фиг. 6 является схемой, иллюстрирующей примерный видеодекодер, в сочетании с которым могут реализовываться некоторые описанные варианты осуществления.
[018] Фиг. 7A-7G являются схемами, иллюстрирующими примеры кадров, сегментированных на мозаичные фрагменты, которые могут быть организованы в наборы мозаичных фрагментов.
[019] Фиг. 8 является схемой, иллюстрирующей оценку движения и предсказание с компенсацией движения для единицы предсказания набора мозаичных фрагментов без ограничений движения на границах наборов мозаичных фрагментов.
[020] Фиг. 9 является схемой, иллюстрирующей оценку движения и предсказание с компенсацией движения для единицы предсказания набора мозаичных фрагментов с ограничениями движения на границах наборов мозаичных фрагментов.
[021] Фиг. 10 является схемой, иллюстрирующей пример параллельного кодирования и параллельного декодирования для изображений с MCTS.
[022] Фиг. 11 является схемой, иллюстрирующей пример декодирования интересующих областей для изображений с MCTS.
[023] Фиг. 12 является схемой, иллюстрирующей пример транскодирования для изображений с MCTS.
[024] Фиг. 13 является схемой, иллюстрирующей пример функциональности постепенного обновления при декодировании для изображений с MCTS.
[025] Фиг. 14A-14C являются таблицами, иллюстрирующими синтаксис SEI-сообщений для MCTS в примерных реализациях.
[026] Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей обобщенную технологию для передачи в служебных сигналах управляющих MCTS-данных.
[027] Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей примерную технологию для кодирования с избирательным использованием MCTS.
[028] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей обобщенную технологию для обработки кодированных данных, передаваемых в служебных сигналах вместе с управляющими MCTS-данными.
Осуществление изобретения
[029] Подробное описание представляет подходы к передаче служебных сигналов и/или использованию управляющих данных для набора мозаичных фрагментов с ограничениями движения (MCTS). В частности, подробное описание представляет новшества для передачи служебных сигналов и использования управляющих данных, которые указывают то, что процессы межкадрового предсказания в указанном наборе мозаичных фрагментов ограничены таким образом, что они ссылаются только на области в идентичном наборе мозаичных фрагментов в других изображениях. В различных примерах, представлены синтаксис и семантика сообщения с дополнительной улучшающей информацией (SEI) для управляющих MCTS-данных. Управляющие MCTS-данные могут упрощать масштабируемость сложности для декодирования и отображения интересующих областей, транскодирования для того, чтобы ограничивать кодированные данные выбранным набором мозаичных фрагментов, устойчивости к потерям и параллельного кодирования и/или декодирования.
[030] Хотя операции, описанные в данном документе, находятся в местах, описанных как выполняемые посредством кодера (например, видеокодера), декодера (например, видеодекодера) или инструментального средства транскодирования (например, видеотранскодера), во многих случаях операции альтернативно могут выполняться посредством другого типа инструментального средства обработки мультимедиа (например, видеопроцессора для повышающей дискретизации, видеопроцессора для понижающей дискретизации).
[031] Некоторые новшества, описанные в данном документе, проиллюстрированы в отношении элементов синтаксиса и операций, конкретных для HEVC-стандарта. Например, следует обратиться к JCTVC-L1003 на основе предварительной версии HEVC-стандарта, "High Efficiency Video Coding (HEVC) Text Specification Draft 8", JCTVC-L1003_v34, январь 2013 года, раскрытие сущности которого настоящим содержится по ссылке. Новшества, описанные в данном документе, также могут реализовываться для других стандартов или форматов.
[032] Если обобщать, возможны различные альтернативы примерам, описанным в данном документе. Например, некоторые способы, описанные в данном документе, могут быть изменены посредством изменения упорядочения описанных этапов способа, посредством разбиения, повторения или опускания определенных этапов способа и т.д. Различные аспекты раскрытой технологии могут использоваться в комбинации или отдельно. Различные варианты осуществления используют одно или более описанных новшеств. Некоторые новшества, описанные в данном документе, разрешают одну или более проблем, отмеченных в разделе "Уровень техники". Типично, данная технология/инструментальное средство не разрешает все такие проблемы.
Примерные вычислительные системы
[033] Фиг. 1 иллюстрирует обобщенный пример подходящей вычислительной системы (100), в которой могут реализовываться несколько из описанных новшеств. Вычислительная система (100) не имеет намерение накладывать какие-либо ограничения в отношении объема использования или функциональности, поскольку новшества могут реализовываться во множестве вычислительных систем общего назначения или специального назначения.
[034] Со ссылкой на фиг. 1, вычислительная система (100) включает в себя один или более процессоров (110, 115) и запоминающее устройство (120, 125). Процессоры (110, 115) выполняют машиноисполняемые инструкции. Процессор может представлять собой центральный процессор (CPU) общего назначения, процессор в специализированной интегральной схеме (ASIC) либо любой другой тип процессора. В многопроцессорной системе, несколько процессоров выполняют машиноисполняемые инструкции, с тем, чтобы повышать вычислительную мощность. Например, фиг. 1 показывает центральный процессор (110), а также графический процессор или сопроцессор (115). Материальное запоминающее устройство (120, 125) может представлять собой энергозависимое запоминающее устройство (например, регистры, кэш, RAM), энергонезависимое запоминающее устройство (например, ROM, EEPROM, флэш-память и т.д.) или некоторую комбинацию вышеозначенного, доступную посредством процессора(ов). Запоминающее устройство (120, 125) сохраняет программное обеспечение (180), реализующее одно или более новшеств для передачи служебных сигналов и/или использования управляющих MCTS-данных, в форме машиноисполняемых инструкций, подходящих для выполнения посредством процессора(ов).
[035] Вычислительная система может иметь дополнительные признаки. Например, вычислительная система (100) включает в себя устройство (140) хранения, устройства (150) ввода, одно или более устройств (160) вывода и одно или более соединений (170) связи. Механизм межкомпонентного соединения (не показан), такой как шина, контроллер или сеть, соединяет между собой компоненты вычислительной системы (100). Типично, программное обеспечение операционной системы (не показано) предоставляет операционное окружение для другого программного обеспечения, выполняемого в вычислительной системе (100), и координирует действия компонентов вычислительной системы (100).
[036] Материальное устройство (140) данных хранения может быть съемным или стационарным и включает в себя в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD или любой другой носитель, который может быть использован для того, чтобы сохранять информацию, и к которому можно осуществлять доступ в пределах вычислительной системы (100). Устройство (140) хранения данных сохраняет инструкции для программного обеспечения (180), реализующего одно или более новшеств для передачи служебных сигналов и/или использования управляющих MCTS-данных.
[037] Устройство (150) ввода может представлять собой устройство сенсорного ввода, такое как клавиатура, мышь, перо или шаровой манипулятор, устройство голосового ввода, устройство сканирования или другое устройство, которое предоставляет ввод в вычислительную систему (100). Для видео, устройство (150) ввода может представлять собой камеру, видеокарту, карту ТВ-тюнера или аналогичное устройство, которое принимает видеоввод в аналоговой или цифровой форме, либо CD-ROM или CD-RW, который считывает видеовыборки в вычислительную систему (100). Устройство (160) вывода может представлять собой дисплей, принтер, динамик, устройство записи CD-RW или другое устройство, которое предоставляет вывод из вычислительной системы (100).
[038] Соединения (170) связи обеспечивают связь по среде связи с другим вычислительным объектом. Среда связи передает такую информацию, как машиноисполняемые инструкции, аудио- или видеоввод или вывод либо другие данные, в модулированном сигнале данных. Модулированный сигнал данных представляет собой сигнал, который имеет одну или более характеристик, заданных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи могут использовать электрическую, оптическую, RF- или другую несущую.
[039] Новшества могут быть описаны в общем контексте машиночитаемых носителей. Машиночитаемые носители представляют собой любые доступные материальные носители, к которым можно осуществлять доступ в вычислительном окружении. В качестве примера, а не ограничения, в вычислительной системе (100) машиночитаемые носители включают в себя запоминающее устройство (120, 125), устройство (140) хранения данных и комбинации любых вышеозначенных элементов.
[040] Новшества могут быть описаны в общем контексте машиноисполняемых инструкций, таких как машиноисполняемые инструкции, включенные в программные модули, выполняемые в вычислительной системе для целевого реального или виртуального процессора. В общем, программные модули включают в себя процедуры, программы, библиотеки, объекты, классы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Функциональность программных модулей может быть комбинирована или разделена между программными модулями, как требуется в различных вариантах осуществления. Машиноисполняемые инструкции для программных модулей могут выполняться в локальной или распределенной вычислительной системе.
[041] Термины "система" и "устройство" используются взаимозаменяемо в данном документе. Если контекст явно не указывает иное, ни один из терминов не подразумевает ограничения на тип вычислительной системы или вычислительного устройства. В общем, вычислительная система или вычислительное устройство могут быть локальными или распределенными и могут включать в себя любую комбинацию аппаратных средств специального назначения и/или аппаратных средств общего назначения с программным обеспечением, реализующим функциональность, описанную в данном документе.
[042] Раскрытые способы также могут реализовываться с использованием специализированных вычислительных аппаратных средств, выполненных с возможностью осуществлять любой из раскрытых способов. Например, раскрытые способы могут реализовываться посредством интегральной схемы (например, ASIC (такой как процессор цифровых сигналов (DSP) на ASIC, графический процессор (GPU) или программируемое логическое устройство (PLD), такое как программируемая пользователем вентильная матрица (FPGA)) специально сконструированной или выполненной с возможностью реализовывать любой из раскрытых способов.
[043] Для целей представления, подробное описание использует такие термины, как "определять" и "использовать", для того чтобы описывать компьютерные операции в вычислительной системе. Эти термины являются высокоуровневыми абстракциями для операций, выполняемых компьютером, и не должны путаться с действиями, выполняемыми человеком. Фактические компьютерные операции, соответствующие этим терминам, различаются в зависимости от реализации.
II. Примерные сетевые окружения
[044] Фиг. 2A и 2B показывают примерные сетевые окружения (201, 202), которые включают в себя видеокодеры (220) и видеодекодеры (270). Кодеры (220) и декодеры (270) соединены по сети (250) с использованием надлежащего протокола связи. Сеть (250) может включать в себя Интернет или другую компьютерную сеть.
[045] В сетевом окружении (201), показанном на фиг. 2A, каждое инструментальное средство (210) для обмена данными в реальном времени (RTC) включает в себя и кодер (220) и декодер (270) для двунаправленной связи. Данный кодер (220) может формировать вывод, совместимый с HEVC-стандартом, стандартом SMPTE 421M, стандартом ISO-IEC 14496-10 (также известным как H.264 или AVC), другим стандартом или собственным форматом, причем соответствующий декодер (270) принимает кодированные данные из кодера (220). Двунаправленная связь может быть частью видеоконференции, видеотелефонного вызова или другого сценария двусторонней связи. Хотя сетевое окружение (201) на фиг. 2A включает в себя два инструментальных средства (210) для обмена данными в реальном времени, сетевое окружение (201) вместо этого может включать в себя три или более инструментальных средства (210) для обмена данными в реальном времени, которые участвуют в многосторонней связи.
[046] Инструментальное средство (210) для обмена данными в реальном времени управляет кодированием посредством кодера (220). Фиг. 3 показывает примерную систему (300) кодера, которая может быть включена в инструментальное средство (210) для обмена данными в реальном времени. Альтернативно, инструментальное средство (210) для обмена данными в реальном времени использует другую систему кодера. Инструментальное средство (210) для обмена данными в реальном времени также управляет декодированием посредством декодера (270). Фиг. 4 показывает примерную систему (400) декодера, которая может быть включена в инструментальное средство (210) для обмена данными в реальном времени. Альтернативно, инструментальное средство (210) для обмена данными в реальном времени использует другую систему декодера.
[047] В сетевом окружении (202), показанном на фиг. 2B, инструментальное средство (212) кодирования включает в себя кодер (220), который кодирует видео для доставки в несколько инструментальных средствах (214) воспроизведения, которые включают в себя декодеры (270). Однонаправленная связь может предоставляться для системы видеонаблюдения, системы мониторинга на основе веб-камер, представления конференц-связи с использованием удаленного рабочего стола или другого сценария, в котором видео кодируется и отправляется из одного местоположения в одно или более других местоположений. Хотя сетевое окружение (202) на фиг. 2b включает в себя два инструментальных средства (214) воспроизведения, сетевое окружение (202) может включать в себя больше или меньше инструментальных средств (214) воспроизведения. В общем, инструментальное средство (214) воспроизведения обменивается данными с инструментальным средством (212) кодирования, чтобы определять поток видео для приема посредством инструментального средства (214) воспроизведения. Инструментальное средство (214) воспроизведения принимает поток, буферизует принятые кодированные данные в течение надлежащего периода и начинает декодирование и воспроизведение.
[048] Фиг. 3 показывает примерную систему (300) кодера, которая может быть включена в инструментальное средство (212) кодирования. Альтернативно, инструментальное средство (212) кодирования использует другую систему кодера. Инструментальное средство (212) кодирования также может включать в себя серверную логику контроллера для управления соединениями с одним или более инструментальных средств (214) воспроизведения. Фиг. 4 показывает примерную систему (400) декодера, которая может быть включена в инструментальное средство (214) воспроизведения. Альтернативно, инструментальное средство (214) воспроизведения использует другую систему декодера. Инструментальное средство (214) воспроизведения также может включать в себя клиентскую логику контроллера для управления соединениями с инструментальным средством (212) кодирования.
III. Примерные системы кодера
[049] Фиг. 3 является блок-схемой примерной системы (300) кодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления. Система (300) кодера может представлять собой инструментальное средство кодирования общего назначения, допускающее работу в любом из нескольких режимов кодирования, таких как режим кодирования с низкой задержкой для обмена данными в реальном времени, режим транскодирования и режим регулярного кодирования для воспроизведения мультимедиа из файла или потока, либо она может представлять собой инструментальное средство кодирования специального назначения, адаптированное для одного такого режима кодирования. Система (300) кодера может быть реализована в качестве модуля операционной системы, в качестве части библиотеки приложений или в качестве автономного приложения. В целом, система (300) кодера принимает последовательность исходных видеокадров (311) из видеоисточника (310) и формирует кодированные данные в качестве вывода в канал (390). Вывод кодированных данных в канал может включать в себя управляющие MCTS-данные (например, SEI-сообщения для MCTS).
[050] Видеоисточник (310) может представлять собой камеру, карту тюнера, носители хранения данных или другой цифровой видеоисточник. Видеоисточник (310) формирует последовательность видеокадров на частоте кадров, например, 30 кадров в секунду. При использовании в данном документе, термин "кадр", в общем, означает исходные, кодированные или восстановленные данные изображений. Для построчного видео, кадр представляет собой построчный видеокадр. Для чересстрочного видео, в примерных вариантах осуществления, чересстрочная развертка чересстрочного видеокадра устраняется до кодирования. Альтернативно, два комплементарных чересстрочных видеополя кодированы как чересстрочный видеокадр или отдельные поля. Кроме указания построчного видеокадра, термин "кадр" или "изображение" может указывать одно неспаренное видеополе, комплементарную пару видеополей, плоскость видеообъектов, которая представляет видеообъект в данное время, или интересующую область в большем изображении. Плоскость или область видеообъектов может быть частью большего изображения, которое включает в себя несколько объектов или областей сцены.
[051] Поступающий исходный кадр (311) сохраняется во временной области (320) хранения запоминающего устройства исходных кадров, которая включает в себя несколько областей (321, 322, …, 32n) хранения буфера кадров. Буфер (321, 322 и т.д.) кадров хранит один исходный кадр в области (320) хранения исходных кадров. После того, как один или более исходных кадров (311) сохранены в буферах (321, 322 и т.д.) кадров, модуль (330) выбора кадров периодически выбирает отдельный исходный кадр из области (320) хранения исходных кадров. Порядок, в котором кадры выбираются посредством модуля (330) выбора кадров для ввода в кодер (340), может отличаться от порядка, в котором кадры формируются посредством видеоисточника (310), например, кадр может находиться впереди в порядке, чтобы упрощать временно обратное предсказание. До кодера (340), система (300) кодера может включать в себя препроцессор (не показан), который выполняет предварительную обработку (например, фильтрацию) выбранного кадра (331) перед кодированием. Предварительная обработка также может включать в себя преобразование цветового пространства в первичные и вторичные компоненты для кодирования.
[052] Кодер (340) кодирует выбранный кадр (331), чтобы формировать кодированный кадр (341), а также формирует сигналы (342) операции управления запоминающим устройством (MMCO) или информацию (RPS) наборов опорных изображений. Если текущий кадр не является первым кадром, который кодирован, при выполнении своего процесса кодирования, кодер (340) может использовать один или более ранее кодированных/декодированных кадров (369), которые сохранены во временной области (360) хранения запоминающего устройства декодированных кадров. Такие сохраненные декодированные кадры (369) используются в качестве опорных кадров для межкадрового предсказания контента текущего исходного кадра (331). Обычно, кодер (340) включает в себя несколько модулей кодирования, которые выполняют задачи кодирования, такие как сегментация на мозаичные фрагменты, оценка и компенсация движения, преобразования частоты, квантование и энтропийное кодирование. Точные операции, выполняемые посредством кодера (340), могут варьироваться в зависимости от формата сжатия. Формат выводимых кодированных данных может представлять собой HEVC-формат, формат Windows Media Video, VC-1-формат, MPEG-x-формат (например, MPEG-1, MPEG-2 или MPEG-4), формат H.26x (например, H.261, H.262, H.263, H.264) или другой формат.
[053] Кодер (340) может сегментировать кадр на несколько мозаичных фрагментов идентичного размера или различных размеров. Например, кодер (340) разбивает кадр вдоль строк мозаичных фрагментов и столбцов мозаичных фрагментов, которые, с помощью границ кадров, задают горизонтальные и вертикальные границы мозаичных фрагментов в кадре, причем каждый мозаичный фрагмент представляет собой прямоугольную область. Кодер (340) затем может группировать мозаичные фрагменты в один или более наборов мозаичных фрагментов, причем набор мозаичных фрагментов представляет собой группу из одного или более мозаичных фрагментов. Мозаичный фрагмент(ы) в наборе мозаичных фрагментов могут быть смежными в кадре. Альтернативно, набор мозаичных фрагментов может включать в себя мозаичные фрагменты, которые не являются смежными в кадре. Типично, набор(ы) мозаичных фрагментов, заданный для кадра, представляет собой идентичный набор(ы) мозаичных фрагментов, как задано для других кадров в последовательности кадров (например, для группы кадров, для всей последовательности).
[054] Кодер (340) представляет взаимно кодированный прогнозный кадр с точки зрения предсказания из опорных кадров. Модуль оценки движения оценивает движение блоков или другие наборы выборок исходного кадра (331) относительно одного или более опорных кадров (369). Когда используются несколько опорных кадров, несколько опорных кадров могут исходить из различных временных направлений или идентичного временного направления. В качестве части оценки движения, кодер (340) может ограничивать векторы движения для блоков в наборе мозаичных фрагментов текущего кадра таким образом, что опорные области предсказания с компенсацией движения попадают в идентичный набор мозаичных фрагментов в опорном кадре(ах). Опорная область предсказания с компенсацией движения представляет собой область выборок в опорном кадре(ах), которые используются для того, чтобы формировать значения предсказания с компенсацией движения для единицы предсказания (например, блока) выборок текущего кадра. Предсказание с компенсацией движения может заключать в себе такие процессы, как интерполяция по дробным позициям, которые применяют фильтрацию к выборкам немного больших областей в опорном кадре(ах), по сравнению с размером единицы предсказания. Другими словами, опорная область предсказания с компенсацией движения, используемая для того, чтобы вычислять значения предсказания с компенсацией движения для единицы предсказания текущего кадра, может иметь размер, больший единицы предсказания, вследствие использования интерполяционных фильтров, поддержка которых расширяется за пределы границ номинального размера единицы предсказания. Использование такого MCTS может упрощать функциональность для декодирования интересующих областей для набора мозаичных фрагментов, транскодирования и параллельного декодирования. Модуль оценки движения выводит информацию движения, такую информацию вектора движения, которая энтропийно кодирована. Модуль компенсации движения применяет векторы движения к опорным кадрам (369), чтобы определять значения предсказания с компенсацией движения.
[055] Кодер определяет разности (если таковые имеются) между значениями предсказания с компенсацией движения блока и соответствующими исходными значениями. Эти остаточные прогнозные значения дополнительно кодируются с использованием преобразования частоты, квантования и энтропийного кодирования. Например, кодер (340) задает значения для параметра квантования (QP) для изображения, мозаичного фрагмента, серии последовательных макроблоков и/или другой части видео и квантует коэффициенты преобразования соответствующим образом. Аналогично, для внутреннего предсказания, кодер (340) может определять внутренние прогнозные значения для блока, определять остаточные прогнозные значения и кодировать остаточные прогнозные значения (с помощью преобразования частоты, квантования и энтропийного кодирования). В частности, энтропийный кодер кодера (340) сжимает значения квантованных коэффициентов преобразования, а также определенную вспомогательную информацию (например, информацию вектора движения, QP-значения, решения по выбору режима, варианты выбора параметров). Типичные технологии энтропийного кодирования включают в себя кодирование экспоненциальным кодом Голомба, арифметическое кодирование, дифференциальное кодирование, кодирование методом Хаффмана, кодирование по длинам серий, кодирование переменно-переменной длины (V2V), кодирование переменно-фиксированной длины (V2F), LZ-кодирование, словарное кодирование, энтропийное кодирование на основе сегментации на интервалы вероятности (PIPE) и комбинации вышеуказанного. Энтропийный кодер может использовать различные технологии кодирования для различных видов информации и может выбирать из числа нескольких кодовых таблиц в рамках конкретной технологии кодирования.
[056] Кодированные кадры (341) и MMCO/RPS-информация (342) обрабатываются посредством эмулятора (350) процесса декодирования. Эмулятор (350) процесса декодирования реализует часть функциональности декодера, например, декодирует задачи для того, чтобы восстанавливать опорные кадры, которые используются посредством кодера (340) при оценке и компенсации движения. Эмулятор (350) процесса декодирования использует MMCO/RPS-информацию (342), чтобы определять то, должен или нет восстанавливаться и сохраняться данный кодированный кадр (341) для использования в качестве опорного кадра при межкадровом предсказании последующих кадров, которые должны кодироваться. Если MMCO/RPS-информация (342) указывает то, что кодированный кадр (341) должен сохраняться, эмулятор (350) процесса декодирования моделирует процесс декодирования, который должен осуществляться посредством декодера, который принимает кодированный кадр (341) и формирует соответствующий декодированный кадр (351). При этом, когда кодер (340) использует декодированный кадр(ы) (369), которые сохранены в области (360) хранения декодированных кадров, эмулятор (350) процесса декодирования также использует декодированный кадр(ы) (369) из области (360) хранения в качестве части процесса декодирования.
[057] Временная область (360) хранения запоминающего устройства декодированных кадров включает в себя несколько областей (361, 362, …, 36n) хранения буфера кадров. Эмулятор (350) процесса декодирования использует MMCO/RPS-информацию (342) для того, чтобы управлять контентом области (360) хранения, чтобы идентифицировать любые буферы (361, 362 и т.д.) кадров с кадрами, которые более не требуются посредством кодера (340) для использования в качестве опорных кадров. После моделирования процесса декодирования эмулятор (350) процесса декодирования сохраняет заново декодированный кадр (351) в буфере (361, 362 и т.д.) кадров, который идентифицирован таким образом.
[058] Кодированные кадры (341) и MMCO/RPS-информация (342) буферизованы во временной области (370) кодированных данных. Кодированные данные, которые агрегированы в области (370) кодированных данных, содержат, в качестве части синтаксиса элементарного кодированного потока видеобитов, кодированных данных для одного или более изображений. Кодированные данные, которые агрегированы в области (370) кодированных данных, также могут включать в себя мультимедийные метаданные, связанные с кодированными видеоданными (например, в качестве одного или более параметров в одном или более SEI-сообщений или сообщений с информацией применимости видео (VUI)). Такие мультимедийные метаданные могут включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные (например, SEI-сообщения для MCTS).
[059] Агрегированные данные (371) из временной области (370) кодированных данных обрабатываются посредством канального кодера (380). Канальный кодер (380) может пакетировать агрегированные данные для передачи в качестве мультимедийного потока (например, согласно мультимедийному формату контейнера, такому как ISO/IEC 14496-12), в этом случае канальный кодер (380) может добавлять элементы синтаксиса в качестве части синтаксиса потока передачи мультимедиа. Такой синтаксис может включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные. Альтернативно, канальный кодер (380) может организовывать агрегированные данные для хранения в качестве файла (например, согласно мультимедийному формату контейнера, такому как ISO/IEC 14496-12), в этом случае канальный кодер (380) может добавлять элементы синтаксиса в качестве части синтаксиса файла хранения мультимедиа. Такой синтаксис может включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные. Альтернативно, если обобщать, канальный кодер (380) может реализовывать один или более протоколов мультиплексирования или транспортных протоколов мультимедийной системы, в этом случае канальный кодер (380) может добавлять элементы синтаксиса в качестве части синтаксиса протокола(ов). С другой стороны, такой синтаксис может включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные. Канальный кодер (380) предоставляет вывод в канал (390), который представляет устройство хранения, соединение связи или другой канал для вывода.
IV. Примерная система декодера
[060] Фиг. 4 является блок-схемой примерной системы (400) декодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления. Система (400) декодера может представлять собой инструментальное средство декодирования общего назначения, допускающее работу в любом из нескольких режимов декодирования, таких как режим декодирования с низкой задержкой для обмена данными в реальном времени и режим регулярного декодирования для воспроизведения мультимедиа из файла или потока, либо она может представлять собой инструментальное средство декодирования специального назначения, адаптированное для одного такого режима декодирования. Система (400) декодера может быть реализована в качестве модуля операционной системы, в качестве части библиотеки приложений или в качестве автономного приложения. В целом, система (400) декодера принимает кодированные данные из канала (410) и формирует восстановленные кадры в качестве вывода для назначения (490) вывода. Кодированные данные могут включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные.
[061] Система (400) декодера включает в себя канал (410), который может представлять устройство хранения данных, соединение связи или другой канал для кодированных данных в качестве ввода. Канал (410) формирует кодированные данные, которые канально кодированы. Канальный декодер (420) может обрабатывать кодированные данные. Например, канальный декодер (420) депакетизирует данные, которые агрегированы для передачи в качестве мультимедийного потока (например, согласно мультимедийному формату контейнера, такому как ISO/IEC 14496-12), в этом случае канальный декодер (420), может синтаксически анализировать элементы синтаксиса, добавленные как часть синтаксиса потока передачи мультимедиа. Такой синтаксис может включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные. Альтернативно, канальный декодер (420) разделяет кодированные видеоданные, которые агрегированы для хранения в качестве файла (например, согласно мультимедийному формату контейнера, такому как ISO/IEC 14496-12), в этом случае канальный декодер (420) может синтаксически анализировать элементы синтаксиса, добавленные как часть синтаксиса файла хранения мультимедиа. Такой синтаксис может включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные. Альтернативно, если обобщать, канальный декодер (420) может реализовывать один или более протоколов демультиплексирования или транспортных протоколов мультимедийной системы, в этом случае канальный декодер (420) может синтаксически анализировать элементы синтаксиса, добавленные как часть синтаксиса протокола(ов). С другой стороны, такой синтаксис может включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные.
[062] Кодированные данные (421), которые выводятся из канального декодера (420), сохраняются во временной области (430) кодированных данных до тех пор, пока достаточное количество таких данных не будет принято. Кодированные данные (421) включают в себя кодированные кадры (431) и MMCO/RPS-информацию (432). Кодированные данные (421) в области (430) кодированных данных содержат, в качестве части синтаксиса элементарного кодированного потока видеобитов, кодированные данные для одного или более изображений. Кодированные данные (421) в области (430) кодированных данных также могут включать в себя мультимедийные метаданные, связанные с кодированными видеоданными (например, в качестве одного или более параметров в одном или более SEI-сообщений или VUI-сообщений). Такие мультимедийные метаданные могут включать в себя элементы синтаксиса, которые указывают управляющие MCTS-данные (например, в качестве части SEI-сообщений).
[063] В общем, область (430) кодированных данных временно сохраняет кодированные данные (421) до тех пор, пока такие кодированные данные (421) не будут использоваться посредством декодера (450). В этот момент, кодированные данные для кодированного кадра (431) и MMCO/RPS-информации (432) передаются из области (430) кодированных данных в декодер (450). По мере того, как продолжается декодирование, новые кодированные данные добавляются в область (430) кодированных данных, и самые старые кодированные данные, остающиеся в области (430) кодированных данных, передаются в декодер (450).
[064] Декодер (450) периодически декодирует кодированный кадр (431), чтобы формировать соответствующий декодированный кадр (451). Надлежащим образом, при выполнении своего процесса декодирования, декодер (450) может использовать один или более ранее декодированных кадров (469) в качестве опорных кадров для межкадрового предсказания. Декодер (450) считывает такие ранее декодированные кадры (469) из временной области (460) хранения запоминающего устройства декодированных кадров. Обычно, декодер (450) включает в себя несколько модулей декодирования, которые выполняют задачи декодирования, такие как энтропийное декодирование, обратное квантование, обратные преобразования частоты, компенсацию движения и объединение мозаичных фрагментов. Точные операции, выполняемые посредством декодера (450), могут варьироваться в зависимости от формата сжатия.
[065] Например, декодер (450) принимает кодированные данные для сжатого кадра или последовательности кадров и формирует вывод, включающий в себя декодированный кадр (451). В декодере (450) буфер принимает кодированные данные для сжатого кадра и в подходящее время делает принятые кодированные данные доступными для энтропийного декодера. Энтропийный декодер энтропийно декодирует энтропийно кодированные квантованные данные, а также энтропийно кодированную вспомогательную информацию, типично применяя инверсию энтропийного кодирования, выполняемого в кодере. Модуль компенсации движения применяет информацию движения к одному или более опорных кадров, чтобы формировать предсказания с компенсацией движения субблоков и/или блоков (в общем, блоков) восстанавливаемого кадра. Модуль внутреннего предсказания может пространственно прогнозировать выборочные значения текущего блока из соседних ранее восстановленных выборочных значений. Декодер (450) также восстанавливает остатки предсказания. Обратный квантователь обратно квантует энтропийно декодированные данные. Например, декодер (450) задает значения для QP для изображения, мозаичного фрагмента, серии последовательных макроблоков и/или другой части видео на основе элементов синтаксиса в потоке битов и обратно квантует коэффициенты преобразования соответствующим образом. Обратный преобразователь частоты преобразует квантованные данные частотной области в информацию пространственной области. Для прогнозного кадра декодер (450) комбинирует восстановленные остатки предсказания с предсказаниями с компенсацией движения, чтобы формировать восстановленный кадр. Декодер (450) аналогично может комбинировать остатки предсказания с пространственным предсказанием из внутреннего предсказания. Контур компенсации движения в видеодекодере (450) включает в себя адаптивный фильтр удаления блочности, чтобы сглаживать неоднородности через строки и/или столбцы границ блоков в декодированном кадре (451).
[066] Декодер (450) может использовать управляющие MCTS-данные различными способами, в зависимости от реализации. Например, декодер (450) может использовать управляющие MCTS-данные при решении параллельно декодировать различные наборы мозаичных фрагментов. Альтернативно, декодер (450) может использовать управляющие MCTS-данные при решении декодировать только выбранный набор мозаичных фрагментов для отображения в качестве интересующей области без декодирования частей кадров за пределами набора мозаичных фрагментов.
[067] Временная область (460) хранения запоминающего устройства декодированных кадров включает в себя несколько областей (461, 462, …, 46n) хранения буфера кадров. Область (460) хранения декодированных кадров является примером буфера декодированных изображений. Декодер (450) использует MMCO/RPS-информацию (432), чтобы идентифицировать буфер (461, 462 и т.д.) кадров, в котором он может сохранять декодированный кадр (451). Декодер (450) сохраняет декодированный кадр (451) в этом буфере кадров.
[068] Модуль (480) упорядочения вывода использует MMCO/RPS-информацию (432), чтобы идентифицировать то, когда следующий кадр, который должен формироваться в порядке вывода, доступен в области (460) хранения декодированных кадров. Когда следующий кадр (481), который должен формироваться в порядке вывода, доступен в области (460) хранения декодированных кадров, он считывается посредством модуля (480) упорядочения вывода и выводится в назначение (490) вывода (например, на дисплей). В общем, порядок, в котором кадры выводятся из области (460) хранения декодированных кадров посредством модуля (480) упорядочения вывода, может отличаться от порядка, в котором кадры декодируются посредством декодера (450).
V. Примерные видеокодеры
[069] Фиг. 5A и 5B являются блок-схемой обобщенного видеокодера (500), в сочетании с которым могут реализовываться некоторые описанные варианты осуществления. Кодер (500) принимает последовательность видеоизображений, включающую в себя текущее изображение в качестве входного видеосигнала (505), и формирует кодированные данные в кодированном потоке (595) видеобитов в качестве вывода.
[070] Кодер (500) является блочным и использует формат блока, который зависит от реализации. Блоки дополнительно могут подразделяться на различных стадиях, например, на стадиях преобразовании частоты и энтропийного кодирования. Например, изображение может быть разделено на блоки 64×64, блоки 32×32 или блоки 16×16, которые, в свою очередь, могут быть разделены на меньшие блоки и субблоки пиксельных значений для кодирования и декодирования.
[071] Кодер (500) сжимает изображения с использованием внутрикадрового кодирования и/или межкадрового кодирования. Многие компоненты кодера (500) используются как для внутрикадрового кодирования, так и для межкадрового кодирования. Точные операции, выполняемые посредством этих компонентов, могут варьироваться в зависимости от типа сжимаемой информации.
[072] Модуль (510) мозаичного размещения необязательно сегментирует изображение на несколько мозаичных фрагментов идентичного размера или различных размеров. Например, модуль (510) мозаичного размещения разбивает изображение вдоль строк мозаичных фрагментов и столбцов мозаичных фрагментов, которые, с помощью границ изображения, задают горизонтальные и вертикальные границы мозаичных фрагментов в изображении, причем каждый мозаичный фрагмент представляет собой прямоугольную область. Модуль (510) мозаичного размещения затем может группировать мозаичные фрагменты в один или более наборов мозаичных фрагментов, причем набор мозаичных фрагментов представляет собой группу из одного или более мозаичных фрагментов. Мозаичный фрагмент(ы) в наборе мозаичных фрагментов могут быть смежными в изображении. Альтернативно, набор мозаичных фрагментов может включать в себя мозаичные фрагменты, которые не являются смежными в изображении. Типично, набор(ы) мозаичных фрагментов, заданный для изображения, представляет собой идентичный набор(ы) мозаичных фрагментов, как задано для других изображений в последовательности изображений (например, для группы изображений, для всей последовательности).
[073] Общий контроллер (520) кодирования принимает изображения для входного видеосигнала (505), а также обратную связь (не показана) из различных модулей кодера (500). В целом, общий контроллер (520) кодирования предоставляет управляющие сигналы (не показаны) в другие модули (к примеру, в модуль (510) мозаичного размещения, преобразователь (530)/модуль масштабирования/квантователь, модуль (535) масштабирования/обратный преобразователь, модуль (540) внутрикадровой оценки, модуль (550) оценки движения и переключатель внутреннего/взаимного режима), чтобы задавать и изменять параметры кодирования во время кодирования. Общий контроллер (520) кодирования также может оценивать промежуточные результаты во время кодирования, например, выполняя анализ искажения в зависимости от скорости передачи. Общий контроллер (520) кодирования формирует общие управляющие данные (522), которые указывают решения, принимаемые во время кодирования, так что соответствующий декодер может принимать согласованные решения. Общие управляющие данные (522) предоставляются в модуль (590) форматирования заголовков/энтропийный кодер. Общий контроллер (520) кодирования может определять то, следует или нет использовать MCTS во время кодирования.
[074] Если текущее изображение прогнозируется с использованием межкадрового предсказания, модуль (550) оценки движения оценивает движение блоков, субблоков или других наборов пиксельных значений текущего изображения входного видеосигнала (505) относительно одного или более опорных изображений. Буфер (570) декодированных изображений буферизует одно или более восстановленных ранее кодированных изображений для использования в качестве опорных изображений. Когда используются несколько опорных изображений, несколько опорных изображений могут исходить из различных временных направлений или идентичного временного направления. Для MCTS текущего изображения, в качестве части оценки движения, модуль (550) оценки движения может ограничивать векторы движения для блоков в наборе мозаичных фрагментов таким образом, что области, к которым обращаются процессы предсказания с компенсацией движения, попадают в идентичный набор мозаичных фрагментов в опорном изображении(ях).
[075] Модуль (550) оценки движения формирует в качестве вспомогательной информации данные (552) движения, такие как данные вектора движения и данные выбора опорных изображений. Данные (552) движения предоставляются в модуль (590) форматирования заголовков/энтропийный кодер, а также в модуль (555) компенсации движения.
[076] Модуль (555) компенсации движения применяет векторы движения к восстановленному опорному изображению(ям) из буфера (570) декодированных изображений. Модуль (555) компенсации движения формирует предсказания с компенсацией движения для текущего изображения.
[077] В отдельном тракте в кодере (500), модуль (540) внутрикадровой оценки определяет то, как выполнять внутрикадровое предсказание для блоков, субблоков или других наборов пиксельных значений текущего изображения входного видеосигнала (505). Текущее изображение может быть полностью или частично кодировано с использованием внутрикадрового кодирования. С использованием значений восстановления (538) текущего изображения, модуль (540) внутрикадровой оценки определяет то, как пространственно прогнозировать пиксельные значения текущего блока, субблока и т.д. текущего изображения из соседних ранее восстановленных пиксельных значений текущего изображения. Модуль (540) оценки внутреннего предсказания формирует в качестве вспомогательной информации данные (542) внутреннего предсказания, такие как данные режима предсказания. Данные (542) внутреннего предсказания предоставляются в модуль (590) форматирования заголовков/энтропийный кодер, а также в модуль (545) внутрикадрового предсказания. Согласно данным режима предсказания, модуль (545) внутрикадрового предсказания пространственно прогнозирует пиксельные значения текущего блока или субблока текущего изображения из соседних ранее восстановленных пиксельных значений текущего изображения.
[078] Переключатель внутреннего/взаимного режима выбирает значения предсказания с компенсацией движения или внутрикадрового предсказания для использования в качестве предсказания (558) для данного блока, субблока или другого набора пиксельных значений. Разность (если таковая имеется) между субблоком, блоком и т.д. предсказания (558) и соответствующей частью исходного текущего изображения входного видеосигнала (505) составляет остаток (518) для субблока, блока и т.д. Во время восстановления текущего изображения, восстановленные остаточные значения комбинированы с предсказанием (558), чтобы формировать восстановление (538) исходного контента из видеосигнала (505). Тем не менее, при сжатии с потерями некоторая информация по-прежнему теряется из видеосигнала (505).
[079] В преобразователе (530)/модуле масштабирования/квантователе, преобразователь частоты преобразует видеоинформацию пространственной области в данные частотной области (т.е. спектрально преобразует). Для кодирования видео на основе блоков преобразователь частоты применяет дискретное косинусное преобразование, его целочисленную аппроксимацию или другой тип прямого блочного преобразования в блоки или субблоки данных остатков предсказания (или данных пиксельных значений, если предсказание (558) равно нулю), формируя блоки/субблоки коэффициентов преобразования частоты. Модуль масштабирования/квантователь затем масштабирует и квантует коэффициенты преобразования. Например, квантователь применяет неравномерное скалярное квантование к данным частотной области с размером шага, который варьируется на покадровой основе, на основе мозаичных фрагментов, на основе серий последовательных макроблоков, на поблочной основе или на другой основе. Данные (532) квантованных коэффициентов преобразования предоставляются в модуль (590) форматирования заголовков/энтропийный кодер.
[080] В модуле (535) масштабирования/обратном преобразователе, модуль масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование для квантованных коэффициентов преобразования. Обратный преобразователь частоты выполняет обратное преобразование частоты, формируя блоки/субблоки восстановленных остатков предсказания или пиксельных значений. Кодер (500) комбинирует восстановленные остатки со значениями предсказания (558) (например, значениями предсказания с компенсацией движения, значениями внутрикадрового предсказания), чтобы формировать восстановление (538).
[081] Для внутрикадрового предсказания значения восстановления (538) могут быть возвращены в модуль (540) внутрикадровой оценки и модуль (545) внутрикадрового предсказания. Для межкадрового предсказания дополнительно могут фильтроваться значения восстановления (538). Контроллер (560) фильтрации определяет то, как выполнять фильтрацию для удаления блочности и фильтрацию на основе дискретизированного адаптивного смещения (SAO) для значений восстановления (538) для данного изображения видеосигнала (505). Контроллер (560) фильтрации формирует управляющие данные (562) фильтрации, которые предоставляются в модуль (590) форматирования заголовков/энтропийный кодер и модуль (565) объединения/фильтр.
[082] В модуле (565) объединения/фильтре, кодер (500) объединяет контент из различных мозаичных фрагментов в восстановленную версию изображения. Кодер (500) избирательно выполняет фильтрацию для удаления блочности и SAO-фильтрацию согласно управляющим данным (562) фильтрации, с тем, чтобы адаптивно сглаживать неоднородности на границах в кадрах. Границы мозаичных фрагментов могут избирательно фильтроваться или не фильтроваться вообще, в зависимости от настроек кодера (500). Буфер (570) декодированных изображений буферизует восстановленное текущее изображение для использования в последующем предсказании с компенсацией движения.
[083] Модуль (590) форматирования заголовков/энтропийный кодер форматирует и/или энтропийно кодирует общие управляющие данные (522), данные (532) квантованных коэффициентов преобразования, данные (542) внутреннего предсказания, данные (552) движения и управляющие данные (562) фильтрации. Например, модуль (590) форматирования заголовков/энтропийный кодер использует контекстно-адаптивное двоичное арифметическое кодирование для энтропийного кодирования различных элементов синтаксиса. Модуль (590) форматирования заголовков/энтропийный кодер предоставляет кодированные данные в кодированном потоке (595) видеобитов. Формат кодированного потока (595) видеобитов может представлять собой HEVC-формат, формат Windows Media Video, VC-1-формат, MPEG-x-формат (например, MPEG-1, MPEG-2 или MPEG-4), формат H.26x (например, H.261, H.262, H.263, H.264) или другой формат.
[084] В зависимости от реализации и требуемого типа сжатия, модули кодера могут добавляться, опускаться, разбиваться на несколько модулей, комбинироваться с другими модулями и/или заменяться аналогичными модулями. В альтернативных вариантах осуществления, кодеры с различными модулями и/или другими конфигурациями модулей выполняют одну или более описанных технологий. Конкретные варианты осуществления кодеров типично используют вариацию или дополненную версию кодера (500). Взаимосвязи, показанные между модулями в кодере (500), указывают общие потоки информации в кодере; другие взаимосвязи не показаны для простоты.
VI. Примерные видеодекодеры
[085] Фиг. 6 является блок-схемой обобщенного декодера (600), в сочетании с которым могут реализовываться несколько описанных вариантов осуществления. Декодер (600) принимает кодированные данные в кодированном потоке (605) видеобитов и формирует вывод, включающий в себя изображения для восстановленного видео (695). Формат кодированного потока (605) видеобитов может представлять собой HEVC-формат, формат Windows Media Video, VC-1-формат, MPEG-x-формат (например, MPEG-1, MPEG-2 или MPEG-4), формат H.26x (например, H.261, H.262, H.263, H.264) или другой формат.
[086] Декодер (600) является блочным и использует формат блока, который зависит от реализации. Например, изображение может быть разделено на блоки 64×64, блоки 32×32 или блоки 16×16, которые, в свою очередь, могут быть разделены на меньшие блоки и субблоки пиксельных значений для декодирования.
[087] Декодер (600) распаковывает изображения с использованием внутрикадрового декодирования и/или межкадрового декодирования. Многие компоненты декодера (600) используются как для внутрикадрового декодирования, так и для межкадрового декодирования. Точные операции, выполняемые посредством этих компонентов, могут варьироваться в зависимости от типа распаковываемой информации.
[088] Буфер принимает кодированные данные в кодированном потоке (605) видеобитов и делает принятые кодированные данные доступными для синтаксического анализатора (610)/энтропийного декодера. Синтаксический анализатор (610)/энтропийный декодер энтропийно декодирует энтропийно кодированные данные, типично применяет инверсию энтропийного кодирования, выполняемого в кодере (500) (например, выполняет контекстно-адаптивное двоичное арифметическое декодирование). В качестве результата синтаксического анализа и энтропийного декодирования, синтаксический анализатор (610)/энтропийный декодер формирует общие управляющие данные (622), данные (632) квантованных коэффициентов преобразования, данные (642) внутреннего предсказания, данные (652) движения и управляющие данные (662) фильтрации.
[089] Общий контроллер (620) декодирования принимает общие управляющие данные (622) и предоставляет управляющие сигналы (не показаны) в другие модули (к примеру, в модуль (635) масштабирования/обратный преобразователь, модуль (645) внутрикадрового предсказания, модуль (655) компенсации движения и переключатель внутреннего/взаимного режима), чтобы задавать и изменять параметры декодирования во время декодирования. На основе управляющих MCTS-данных общий контроллер (620) декодирования может определять то, как использовать преимущество MCTS во время декодирования (например, для декодирования интересующих областей для выбранного набора мозаичных фрагментов, для параллельного декодирования различных наборов мозаичных фрагментов).
[090] Если текущее изображение прогнозируется с использованием межкадрового предсказания, модуль (655) компенсации движения принимает данные (652) движения, такие как данные вектора движения и данные выбора опорных изображений. Модуль (655) компенсации движения применяет векторы движения к восстановленному опорному изображению(ям) из буфера (670) декодированных изображений. Модуль (655) компенсации движения формирует предсказания с компенсацией движения для субблоков и/или блоков текущего изображения. Буфер (670) декодированных изображений сохраняет одно или более ранее восстановленных изображений для использования в качестве опорных изображений.
[091] В отдельном тракте в декодере (600), модуль (645) внутреннего предсказания принимает данные (642) внутреннего предсказания, к примеру, данные режима предсказания. С использованием значений восстановления (638) текущего изображения, согласно данным режима предсказания, модуль (645) внутрикадрового предсказания пространственно прогнозирует пиксельные значения текущего блока или субблока текущего изображения из соседних ранее восстановленных пиксельных значений текущего изображения.
[092] Переключатель внутреннего/взаимного режима выбирает значения предсказания с компенсацией движения или внутрикадрового предсказания для использования в качестве предсказания (658) для данного блока, субблока или другого набора пиксельных значений. Декодер (600) комбинирует предсказание (658) с восстановленными остаточными значениями, чтобы формировать восстановление (638) контента из видеосигнала.
[093] Чтобы восстанавливать остаток, модуль (635) масштабирования/обратный преобразователь принимает и обрабатывает данные (632) квантованных коэффициентов преобразования. В модуле (635) масштабирования/обратном преобразователе, модуль масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование для квантованных коэффициентов преобразования. Обратный преобразователь частоты выполняет обратное преобразование частоты, формируя блоки/субблоки восстановленных остатков предсказания или пиксельных значений. Например, обратный преобразователь частоты применяет обратное блочное преобразование к коэффициентам преобразования частоты, формируя данные пиксельных значений или данные остатков предсказания. Обратное преобразование частоты может представлять собой обратное дискретное косинусное преобразование, его целочисленную аппроксимацию или другой тип обратного преобразования частоты.
[094] Для внутрикадрового предсказания значения восстановления (638) могут быть возвращены в модуль (645) внутрикадрового предсказания. Для межкадрового предсказания дополнительно могут фильтроваться значения восстановления (638). В модуле (665) объединения/фильтре, декодер (600) объединяет контент из различных мозаичных фрагментов в восстановленную версию изображения. Декодер (600) избирательно выполняет фильтрацию для удаления блочности и SAO-фильтрацию согласно управляющим данным (662) фильтрации и правилам для адаптации фильтра, с тем чтобы адаптивно сглаживать неоднородности на границах в кадрах. Границы мозаичных фрагментов могут избирательно фильтроваться или не фильтроваться вообще, в зависимости от настроек декодера (600). Буфер (570) декодированных изображений буферизует восстановленное текущее изображение для использования в последующем предсказании с компенсацией движения.
[095] Декодер (600) также может включать в себя фильтр удаления блочности при постобработке. Фильтр удаления блочности постобработки необязательно сглаживает неоднородности в восстановленных изображениях. Другая фильтрация (к примеру, фильтрация для подавления периодически повторяющихся помех) также может применяться как часть фильтрации при постобработке.
[096] В зависимости от реализации и требуемого типа распаковки, модули декодера могут добавляться, опускаться, разбиваться на несколько модулей, комбинироваться с другими модулями и/или заменяться аналогичными модулями. В альтернативных вариантах осуществления, декодеры с различными модулями и/или другими конфигурациями модулей выполняют одну или более описанных технологий. Конкретные варианты осуществления декодеров типично используют вариацию или дополненную версию декодера (600). Взаимосвязи, показанные между модулями в декодере (600), указывают общие потоки информации в декодере; другие взаимосвязи не показаны для простоты.
VII. Передача в служебных сигналах и использование управляющих данных для наборов мозаичных фрагментов с ограничениями движения.
[097] Этот раздел представляет различные новшества для передачи служебных сигналов и использования управляющих данных для набора мозаичных фрагментов с ограничениями движения (MCTS). В общем, управляющие MCTS-данные указывают то, что процессы межкадрового предсказания в рамках одного или более указанных наборов мозаичных фрагментов (MCTS) ограничены таким образом, что они ссылаются только на конкретные области (например, области в соответствующем наборе мозаичных фрагментов в других изображениях). Новшества могут предоставлять возможность декодеру корректно декодировать указанный MCTS в изображениях кодированной видеопоследовательности без необходимости декодировать весь контент каждого изображения. Посредством предоставления явного индикатора относительно того, когда зависимости при межкадровом предсказании в кодированном видео ограничены на конкретных границах (например, на границах наборов мозаичных фрагментов), управляющие MCTS-данные могут упрощать масштабируемость сложности для декодирования и отображения интересующих областей, предоставлять простое транскодирование, предоставлять повышенную устойчивость к потерям и обеспечивать улучшенный параллелизм декодера.
[098] Различные примеры предоставляются для управляющих MCTS-данных, передаваемых в служебных сигналах в сообщениях с дополнительной улучшающей информацией (SEI) согласно версии HEVC-стандарта. Такие SEI-сообщения с управляющими MCTS-данными могут легко быть включены в HEVC-формат.
A. Примерные мозаичные фрагменты и наборы мозаичных фрагментов
[099] В общем, мозаичные фрагменты представляют собой прямоугольные области изображения. Мозаичные фрагменты размещаются в изображении согласно столбцам мозаичных фрагментов и строкам мозаичных фрагментов. Таким образом, мозаичные фрагменты задают горизонтальные и вертикальные границы в изображении. Мозаичные фрагменты в изображении могут иметь одинаковый размер, или мозаичные фрагменты в изображении могут варьироваться по размеру.
[0100] В версии от января 2013 HEVC-стандарта, например, изображение может быть сегментировано на несколько мозаичных фрагментов. Элемент tiles_enabled_flag синтаксиса передается в служебных сигналах в наборе параметров изображения (PPS). Когда tiles_enabled_flag равен 1, изображение сегментировано на мозаичные фрагменты, и число столбцов мозаичных фрагментов, число строк мозаичных фрагментов и информация размера передаются в служебных сигналах. Информация размера может указывать одинаковый размер для всех мозаичных фрагментов, или конкретный размер может передаваться в служебных сигналах в расчете на мозаичный фрагмент. См. документ Bross и др. "High Efficiency Video Coding (HEVC) Text Specification Draft 8", JCTVC-L1003_v34, январь 2013 года.
[0101] В общем, мозаичный фрагмент кодируется независимо от других мозаичных фрагментов для некоторых процессов кодирования. Согласно версии от января 2013 HEVC-стандарта, когда используются мозаичные фрагменты, синтаксис HEVC-потока битов и процессы HEVC-декодирования структурированы таким образом, чтобы исключать (1) зависимости при внутрикадровом предсказании на границах мозаичных фрагментов в идентичном изображении и (2) зависимости при энтропийном кодировании/декодировании на границах мозаичных фрагментов в идентичном изображении. Контурная фильтрация избирательно отключена на границах мозаичных фрагментов, но разрешается в некоторых случаях. Тем не менее, зависимости при межкадровом предсказании не ограничены относительно границ мозаичных фрагментов. Единица предсказания в мозаичном фрагменте может ссылаться на области в опорном изображении, которые находятся за пределами пространственных границ совместно размещенного мозаичного фрагмента в опорном изображении. Таким образом, для мозаичных фрагментов в версии от января 2013 HEVC-стандарта, независимая взаимосвязь не требуется для мозаичных фрагментов относительно других мозаичных фрагментов в других изображениях, которые используются в качестве ссылок для межкадрового предсказания.
[0102] Набор мозаичных фрагментов представляет собой компоновку одного или более мозаичных фрагментов в изображении. Набор мозаичных фрагментов может указываться в качестве одного или более диапазонов мозаичных фрагментов в изображении. Как пояснено в следующем разделе, набор мозаичных фрагментов с ограничениями движения (MCTS) представляет собой набор мозаичных фрагментов, для которого зависимости при межкадровом предсказании ограничены областями в наборе мозаичных фрагментов для каждого изображения. В простых случаях, изображения в последовательности имеют идентичную конфигурацию наборов мозаичных фрагментов, так что набор мозаичных фрагментов в текущем изображении имеет совместно размещенный набор мозаичных фрагментов в своем опорном изображении(ях).
[0103] Фиг. 7A показывает кадр (701), сегментированный на 16 мозаичных фрагментов одинакового размера. Количество мозаичных фрагментов зависит от реализации и может иметь некоторое другое значение (например, 9, 20 или 25 мозаичных фрагментов). На фиг. 7B-7G, мозаичные фрагменты группируются в наборы мозаичных фрагментов по-разному.
[0104] Набор мозаичных фрагментов может включать в себя несколько мозаичных фрагментов. Например, фиг. 7B показывает кадр (702), в котором четыре мозаичных фрагмента в центре кадра (702) организованы в качестве одного набора мозаичных фрагментов – набора A мозаичных фрагментов. Альтернативно, набор мозаичных фрагментов может включать в себя один мозаичный фрагмент. В крайнем случае, каждый мозаичный фрагмент в изображении может задаваться как собственный набор мозаичных фрагментов (например, 16 наборов мозаичных фрагментов для 16 мозаичных фрагментов, соответственно, кадра на фиг. 7A).
[0105] Количество мозаичных фрагментов в наборе мозаичных фрагментов и конфигурация мозаичных фрагментов в наборе мозаичных фрагментов могут указываться произвольно из доступных мозаичных фрагментов. Например, фиг. 7C показывает кадр (703), в котором шесть мозаичных фрагментов кадра (703) организованы в качестве одного набора мозаичных фрагментов – набора A мозаичных фрагментов. Оставшиеся мозаичные фрагменты не находятся ни в одном из наборов мозаичных фрагментов. Данный мозаичный фрагмент кадра может выделяться набору мозаичных фрагментов или опускаться из наборов мозаичных фрагментов.
[0106] Фиг. 7D показывает кадр (704), в котором все 16 мозаичных фрагментов выделяются наборам мозаичных фрагментов. Набор A мозаичных фрагментов включает в себя четыре мозаичных фрагмента в центре кадра (704), и набор B мозаичных фрагментов включает в себя оставшиеся 12 мозаичных фрагментов, которые окружают мозаичные фрагменты набора A мозаичных фрагментов в кадре (704).
[0107] На фиг. 7B-7D, мозаичные фрагменты данного набора мозаичных фрагментов являются смежными, но мозаичные фрагменты в наборе мозаичных фрагментов необязательно должны быть смежными. Например, фиг. 7E показывает кадр (705), в котором 8 мозаичных фрагментов выделяются набору A мозаичных фрагментов, и 8 мозаичных фрагментов выделяются набору B мозаичных фрагментов. 8 мозаичных фрагментов набора B мозаичных фрагментов разделяются на две области на противоположных сторонах набора A мозаичных фрагментов в кадре (705).
[0108] Во многих случаях, набор мозаичных фрагментов включает в себя один или более мозаичных фрагментов в центре кадра, аналогично фиг. 7B-7E. Эта конфигурация мозаичных фрагментов может быть полезной для декодирования интересующих областей (например, когда намеченная фокусная точка находится в центре или когда идентифицированная область содержит голову говорящего для видеоконференц-связи). Конфигурация, показанная на фиг. 7B и 7D, предлагает дополнительное преимущество в том, что соотношение сторон является неизменным между центральным набором мозаичных фрагментов (набором A мозаичных фрагментов) и кадром.
[0109] С другой стороны, фиг. 7F показывает кадр (706), в котором мозаичные фрагменты выделяются четырем наборам A, B, C и D мозаичных фрагментов, покрывающим весь кадр (706). Каждый набор мозаичных фрагментов имеет четыре мозаичных фрагмента. Эта конфигурация наборов мозаичных фрагментов может упрощать параллельное кодирование и декодирование. В частности, для MCTS, оценка движения (во время кодирования) и компенсация движения (во время кодирования или декодирования) могут выполняться параллельно для наборов A, B, C и D мозаичных фрагментов.
[0110] На фиг. 7B-7F, мозаичный фрагмент является частью самое большее одного набора мозаичных фрагментов. Тем не менее, в некоторых реализациях, мозаичный фрагмент может быть частью нескольких наборов мозаичных фрагментов. Фиг. 7G показывает три различных вида кадра (707), в котором некоторые мозаичные фрагменты являются частью нескольких наборов мозаичных фрагментов, некоторые мозаичные фрагменты являются частью одного набора мозаичных фрагментов, и некоторые мозаичные фрагменты не являются частью ни одного набора мозаичных фрагментов. В кадре (707), показанном на фиг. 7G, мозаичные фрагменты в верхней строке мозаичных фрагментов являются частью набора A мозаичных фрагментов, набора B мозаичных фрагментов (который перекрывает набор A мозаичных фрагментов), и набора C мозаичных фрагментов (который перекрывает набор A мозаичных фрагментов и набор B мозаичных фрагментов). Мозаичные фрагменты во второй строке являются частью набора B мозаичных фрагментов и набора C мозаичных фрагментов. Мозаичные фрагменты в третьей строке являются частью набора C мозаичных фрагментов, и мозаичные фрагменты в четвертой строке не являются частью ни одного набора мозаичных фрагментов. Такая конфигурация мозаичных фрагментов может упрощать такую функциональность, как постепенное обновление при декодировании, когда набор мозаичных фрагментов, используемый для кодирования и декодирования данного изображения, может изменяться для каждого изображения в последовательности, либо когда разрешается изменение размера, формы и/или местоположения областей с возможностью обращения для наборов мозаичных фрагментов для каждого изображения в последовательности.
B. Общие сведения по набору мозаичных фрагментов с ограничениями движения
[0111] Набор мозаичных фрагментов с ограничениями движения (MCTS) представляет собой набор мозаичных фрагментов, для которого зависимости при межкадровом предсказании ограничены конкретной областью или областями. Во многих случаях, конкретные области находятся в идентичном наборе мозаичных фрагментов для каждого изображения. Тем не менее, в других случаях, конкретные области находятся в другом наборе мозаичных фрагментов или в некоторой другой области или областях опорных изображений, которые используются для межкадрового предсказания. В общем, можно выполнять компенсацию движения для данного MCTS независимо от декодирования других наборов мозаичных фрагментов или областей за пределами MCTS. Это является возможным, поскольку межкадровое предсказание ограничивается таким образом, что оно не обращается к областям за пределами MCTS в опорных изображениях (т.е. за пределами совместно размещенного набора мозаичных фрагментов в опорных изображениях).
[0112] Кодирование для MCTS может реализовываться посредством ограничений на поиск векторов движения во время оценки движения. Диапазон поиска для вектора движения ограничен посредством границ наборов мозаичных фрагментов.
[0113] Фиг. 8 показывает оценку движения и предсказание с компенсацией движения для единицы предсказания набора мозаичных фрагментов без ограничений движения на границах наборов мозаичных фрагментов. Текущий кадр (820) включает в себя набор A (822) мозаичных фрагментов с единицей (824) предсказания, которая представляет собой блок или субблок выборок. Вектор (826) движения для единицы (824) предсказания ассоциирован с областью (814) в опорном кадре (810), который используется для того, чтобы формировать значения предсказания с компенсацией движения для единицы (824) предсказания. Область (814) находится частично в совместно размещенном наборе A (812) мозаичных фрагментов в опорном кадре (810) и частично за пределами набора A (812) мозаичных фрагментов в опорном кадре (810). Набор A мозаичных фрагментов не представляет собой MCTS, так что отсутствует ограничение в отношении процессов межкадрового предсказания для единиц предсказания в наборе A мозаичных фрагментов, ссылающемся на местоположения значений выборок за пределами набора A мозаичных фрагментов. Как результат, корректное декодирование единицы (824) предсказания текущего кадра (820) зависит от восстановления значений за пределами набора A (812) мозаичных фрагментов в опорном кадре (810).
[0114] Напротив, фиг. 9 показывает оценку движения и предсказание с компенсацией движения для единицы предсказания набора мозаичных фрагментов с ограничениями движения на границах наборов мозаичных фрагментов. Текущий кадр (920) включает в себя набор A (922) мозаичных фрагментов с единицей (924) предсказания, которая представляет собой блок или субблок выборок. Вектор (926) движения для единицы (924) предсказания ассоциирован с областью (914) в опорном кадре (910), который используется для того, чтобы формировать значения предсказания с компенсацией движения для единицы (924) предсказания. Даже если область частично или полностью за пределами набора A мозаичных фрагментов (912) может обеспечивать лучшее предсказание для единицы (924) предсказания, вследствие ограничений на диапазон оценки движения, кодер использует область (914), которая находится полностью в совместно размещенном наборе A мозаичных фрагментов (912) в опорном кадре (910). Набор A мозаичных фрагментов представляет собой MCTS, так что процессы межкадрового предсказания для единицы предсказания в наборе A мозаичных фрагментов не могут ссылаться на местоположения значений выборок за пределами набора A мозаичных фрагментов. Как результат, корректное декодирование единицы (924) предсказания текущего кадра (920) не зависит от восстановления значений за пределами набора A мозаичных фрагментов (912) в опорном кадре (910).
[0115] Таким образом, при помощи MCTS, зависимости при межкадровом предсказании ограничены на границах наборов мозаичных фрагментов. Тем не менее, движение по-прежнему разрешается на границах мозаичных фрагментов в наборе мозаичных фрагментов. Ограничения в отношении зависимостей при внутрикадровом предсказании и зависимостей от арифметического кодирования для мозаичных фрагментов по-прежнему применяются. Когда операции фильтрации (например, для фильтрации для удаления блочности) выполняются на границах мозаичных фрагментов, может оказываться влияние на некоторые границы наборов мозаичных фрагментов. Как результат, выборочные значения опорного кадра, используемого во время кодирования, могут не совпадать точно с выборочными значениями опорного кадра, используемого во время декодирования. В частности, если только MCTS декодируется во время декодирования, выборочные значения на границах наборов мозаичных фрагментов MCTS могут отличаться в опорном кадре, поскольку контурная фильтрация на таких границах наборов мозаичных фрагментов не выполняется. Это может иметь незначительный отрицательный эффект на качество декодирования только для MCTS по сравнению с декодированием полных изображений.
[0116] Декодирование для MCTS не заключает в себе изменения процессов базового декодирования. Тем не менее, декодер может использовать управляющие MCTS-данные, чтобы решать то, как параллелизовать декодирование для отдельных наборов мозаичных фрагментов для различных частей изображений, либо решать выполнять ROI-декодирование, как пояснено ниже.
C. Примерные варианты использования MCTS и управляющих MCTS-данных
[0117] В этом разделе описываются различные варианты использования MCTS и управляющих MCTS-данных, включающие в себя параллельное кодирование и декодирование, декодирование и отображение интересующих областей, упрощенное восстановление потерь и транскодирование. Управляющие MCTS-данные могут предоставлять полезную функциональность для регулярного кодирования/декодирования видео, и они также могут рассматриваться в качестве расширения масштабируемости для масштабируемости сложности.
1. Параллельное кодирование и/или параллельное декодирование
[0118] Кодер может кодировать отдельные MCTS параллельно для множества операций кодирования. Кодер сегментирует свои процессы кодирования конкретным для области способом для областей, заданных посредством наборов мозаичных фрагментов. С использованием управляющих MCTS-данных соответствующий декодер может декодировать отдельные MCTS параллельно для множества операций декодирования. Декодер сегментирует свои процессы декодирования конкретным для области способом для областей, заданных посредством наборов мозаичных фрагментов. В частности, для компенсации движения для данного набора мозаичных фрагментов, кодер (или декодер) не должен осуществлять доступ к выборочным значениям опорных изображений для областей за пределами данного набора мозаичных фрагментов. Таким образом, различные MCTS могут кодироваться или декодироваться параллельно без необходимости ожидать восстановления всех опорных изображений.
[0119] Фиг. 10 показывает пример (1000) параллельного кодирования и параллельного декодирования для изображений с MCTS. На фиг. 10, кодер (1010) принимает входной видеосигнал (1005), мозаично размещает его как четыре набора A, B, C и D мозаичных фрагментов (как показано на фиг 7F) и параллельно кодирует соответствующие наборы мозаичных фрагментов. (Некоторые процессы кодирования кодера (1010), например, контурная фильтрация, не выполняются параллельно для различных наборов мозаичных фрагментов.) Кодер (1010) формирует кодированный поток (1015) видеобитов с кодированными данными для наборов A, B, C и D мозаичных фрагментов. Кодированный поток (1015) видеобитов также включает в себя управляющие MCTS-данные.
[0120] Кодированный поток (1015) видеобитов передается по сети (1020) в декодер (1030). С использованием управляющих MCTS-данных для того, чтобы идентифицировать возможность параллельного декодирования, декодер (1030) параллельно декодирует соответствующие наборы мозаичных фрагментов, объединяет восстановленный контент для наборов мозаичных фрагментов и формирует восстановленное видео (1035). (Некоторые процессы декодирования декодера (1030), например, контурная фильтрация, не выполняются параллельно для различных наборов мозаичных фрагментов.)
[0121] Хотя фиг. 10 показывает как параллельное кодирование, так и параллельное декодирование, альтернативно, реализуется только параллельное кодирование, либо реализуется только параллельное декодирование. Кроме того, хотя фиг. 10 показывает кодирование и декодирование, при котором число экземпляров параллельных процессов совпадает с числом наборов мозаичных фрагментов (т.е. 4), альтернативно, число экземпляров параллельных процессов меньше числа наборов мозаичных фрагментов.
2. ROI-декодирование
[0122] Когда межкадровое предсказание по границам наборов мозаичных фрагментов ограничивается, набор мозаичных фрагментов может декодироваться и отображаться независимо для декодирования и отображения интересующих областей (ROI). Декодер может использовать управляющие MCTS-данные для ROI-декодирования и отображения одного или более выбранных наборов мозаичных фрагментов. В этом случае, только поднабор мозаичных фрагментов, указываемых посредством набора(ов) мозаичных фрагментов, вместо всех изображений декодируется и отображается. Например, декодер декодирует только поднабор кодированного потока видеобитов, который содержит кодированные данные для выбранного набора(ов) мозаичных фрагментов, вместо декодирования кодированных данных для готовых изображений.
[0123] Фиг. 11 показывает пример (1100) ROI-декодирования для изображений с MCTS. На фиг. 11, кодер (1110) принимает входной видеосигнал (1105), мозаично размещает его таким образом, что он включает в себя набор A мозаичных фрагментов (как показано на фиг 7b), и кодирует видео. Кодер (1110) кодирует набор A мозаичных фрагментов в качестве MCTS. Кодер (1110) формирует кодированный поток (1115) видеобитов с кодированными данными для всего изображения, включающий в себя набор A мозаичных фрагментов в качестве MCTS. Кодированный поток (1115) видеобитов также включает в себя управляющие MCTS-данные.
[0124] Кодированный поток (1115) видеобитов передается по сети (1120) в декодер (1130). С использованием управляющих MCTS-данных для того, чтобы идентифицировать возможность ROI-декодирования, декодер (1130) декодирует кодированные данные для набора A мозаичных фрагментов и формирует восстановленное видео (1135) для набора A мозаичных фрагментов.
[0125] ROI-декодирование, в частности, полезно, когда выбранный набор мозаичных фрагментов для ROI-декодирования представляет собой одну прямоугольную область, которая может представлять собой один мозаичный фрагмент или смежную прямоугольную область мозаичных фрагментов, как показано на фиг 7B или 7D. Например, одна прямоугольная область может декодироваться для отображения на небольшом устройстве отображения. Альтернативно, одна прямоугольная область может декодироваться для отображения в качестве окна отображения "картинка-в-картинке". Альтернативно, одна прямоугольная область может декодироваться для отображения как часть составного объекта с небольшими областями, созданными из других потоков битов (например, для многосторонней конференции).
[0126] Кроме того, в сценариях с ограниченной полосой пропускания, таких как обмен данными в реальном времени, передача служебных сигналов и использование MCTS предоставляют новую размерность ROI-масштабирования с различными скоростями передачи битов при потоковой передаче для различных разрешений декодирования/отображения. Это может быть полезно для сценариев, в которых видеоконтент доставляется в различные устройства через гетерогенные каналы. Например, поток битов может быть организован в качестве MCTS, сконфигурированных в качестве одной или более концентрических "кольцевых" областей вокруг центрального MCTS, так что (a) центральный MCTS предоставляет самую низкую скорость передачи битов и размер изображения, (b) центральный MCTS плюс первая концентрическая кольцевая область предоставляют более высокую скорость передачи битов и размер изображения, (c) центральный MCTS плюс первые две концентрических кольцевых области предоставляют еще более высокую скорость передачи битов и размер изображения и т.д. Альтернативно, MCTS могут быть организованы для комбинации другими способами.
[0127] Управляющие MCTS-данные, указывающие одну или более областей для ROI-декодирования, могут использоваться в сочетании с метаданными сканирования с панорамированием. Например, SEI-сообщения для сканирования с панорамированием предоставляют возможность указания прямоугольников для ROI-отображения. В случае MCTS SEI-сообщений, управляющих ROI-декодированием, SEI-сообщения для сканирования с панорамированием дополнительно могут предоставлять ROI-отображение.
3. Транскодирование
[0128] В некоторых случаях, транскодер выполняет простые операции транскодирования с низкой задержкой, чтобы извлекать кодированные данные для одного или более выбранных наборов мозаичных фрагментов из кодированного потока видеобитов для видео, имеющего больший размер изображения, формируя новый кодированный поток видеобитов для видео, имеющего меньший размер изображения. Например, для HEVC-транскодирования, когда MCTS представляет собой прямоугольную область, транскодер может формировать новый кодированный поток видеобитов для MCTS посредством модификации только высокоуровневых элементов синтаксиса без необходимости полностью декодировать и повторно кодировать данные нижнего уровня (к примеру, данные на уровне единицы дерева кодирования и ниже).
[0129] Фиг. 12 показывает пример (1200) транскодирования для изображений с MCTS. На фиг. 12, кодер (1210) принимает входной видеосигнал (1205), мозаично размещает его таким образом, что он включает в себя набор A мозаичных фрагментов (как показано на фиг 7B), и кодирует видео. Кодер (1210) кодирует набор A мозаичных фрагментов в качестве MCTS. Кодер (1210) формирует кодированный поток (1215) видеобитов с кодированными данными для всего изображения, включающий в себя набор A мозаичных фрагментов в качестве MCTS. Кодированный поток (1215) видеобитов также включает в себя управляющие MCTS-данные.
[0130] Кодированный поток (1215) видеобитов передается по сети (1220) в транскодер (1230). С использованием управляющих MCTS-данных для того, чтобы идентифицировать возможность транскодирования, транскодер (1230) отбрасывает кодированные данные для областей изображения за пределами набора A мозаичных фрагментов и формирует кодированный поток (1235) видеобитов с кодированными данными только для набора A мозаичных фрагментов.
[0131] В HEVC-реализациях, даже когда MCTS не является прямоугольным или является прямоугольным, но не транскодирован, в некоторых случаях, поднабор потока битов, необходимого для декодирования MCTS, может извлекаться до отправки данных в декодер, который допускает управление таким поднабором потоков MCTS-битов.
4. Устойчивость к потерям и восстановление
[0132] Передача служебных сигналов и использование управляющих MCTS-данных также может повышать устойчивость к потерям данных и восстановление после потерь данных. Посредством предоставления в декодер явного индикатора относительно взаимосвязей зависимости для каждой области в декодированных изображениях, декодер может иметь возможность завершать декодирование некоторых областей (наборов мозаичных фрагментов), когда кодированные данные для других областей (наборов мозаичных фрагментов) повреждены или потеряны в ином смысле.
5. Постепенное обновление при декодировании
[0133] Кодер может реализовывать функциональность постепенного обновления при декодировании с использованием управляющих MCTS-данных в некоторых реализациях. Например, когда мозаичный фрагмент может быть частью нескольких наборов мозаичных фрагментов (аналогично примеру по фиг. 7G), верхняя строка мозаичных фрагментов может задавать один MCTS, при этом две верхних строки мозаичных фрагментов задают второй MCTS, три верхних строки мозаичных фрагментов задают третий MCTS, и т.д. Кодер может использовать такие MCTS для функциональности постепенного обновления при декодировании.
[0134] Фиг. 13 показывает пример (1300) постепенной функциональности декодера с MCTS. Для одного изображения (1301) в последовательности (изображения 30 на фиг. 13), кодер обновляет область для MCTS A. Кодер кодирует верхнюю строку мозаичных фрагментов (которая должна кодироваться как MCTS A в последующем кадре) с использованием внутрикадрового кодирования. Кодирование других строк мозаичных фрагментов изображения (1301) не ограничивается.
[0135] Для следующего изображения (1302) в последовательности (изображения 31 на фиг. 13), кодер обновляет область для MCTS B с использованием межкадрового предсказания с зависимостями от областей в MCTS A и внутрикадрового кодирования. Кодер кодирует верхнюю строку мозаичных фрагментов в качестве MCTS. Этот MCTS (в качестве MCTS A) может кодироваться с использованием межкадрового предсказания относительно совместно размещенного набора мозаичных фрагментов в предыдущем изображении (верхней строки мозаичных фрагментов в изображении 30). Кодер кодирует вторую строку мозаичных фрагментов в изображении (1302) с использованием внутрикадрового кодирования. Кодирование других строк мозаичных фрагментов изображения (1302) не ограничивается.
[0136] Для следующего изображения (1303) в последовательности (изображения 32 на фиг. 13), кодер обновляет область для MCTS C с использованием межкадрового предсказания с зависимостями от областей в MCTS B и внутрикадрового кодирования. Кодер кодирует две верхние строки мозаичных фрагментов в качестве MCTS. Этот MCTS (MCTS B) может кодироваться с использованием межкадрового предсказания относительно совместно размещенного набора мозаичных фрагментов в предыдущем изображении (двух верхних строк мозаичных фрагментов в изображении 31). Кодер кодирует третью строку мозаичных фрагментов в изображении (1303) с использованием внутрикадрового кодирования. Кодирование другой строки мозаичных фрагментов изображения (1303) не ограничивается.
[0137] Для последнего изображения (1304) в последовательности (изображения 33 на фиг. 13), кодер обновляет изображение с использованием межкадрового предсказания с зависимостями от областей в MCTS C и внутрикадрового кодирования. Кодер кодирует три верхние строки мозаичных фрагментов в качестве MCTS. Этот MCTS (MCTS C) может кодироваться с использованием межкадрового предсказания относительно совместно размещенного набора мозаичных фрагментов в предыдущем изображении (трех верхних строк мозаичных фрагментов в изображении 32). Кодер кодирует последнюю строку мозаичных фрагментов в изображении (1304) с использованием внутрикадрового кодирования. В этот момент, строки мозаичных фрагментов в изображениях постепенно обновлены.
[0138] Альтернативно, кодер может реализовывать функциональность постепенного обновления при декодировании посредством предоставления возможности кодирования областей, заштрихованных серым на фиг. 13 (внутрикадровых кодированных областей), с использованием либо внутрикадрового кодирования, либо межкадрового кодирования относительно "подчиненной" несоответствующей области в опорном изображении, которая обновлена. Кодер может определять между внутрикадровым кодированием и таким межкадровым кодированием на поблочной основе. Например, для заштрихованной области в третьем изображении (1303), блоки могут кодироваться с использованием внутрикадрового кодирования или межкадрового кодирования относительно области второго изображения (1302), которая только что обновлена (двух верхних строк мозаичных фрагментов). Эта дополнительная гибкость позволяет повышать производительность сжатия.
[0139] Фиг. 13 показывает частный случай более общего сценария, в котором взаимосвязь динамически изменяется для каждого изображения между (a) областью или областями, к которым обращаются в опорных изображениях, и (b) областью или областями текущего изображения, которые зависят от них. В таком сценарии, разрешается изменение размера, формы и/или местоположения областей с возможностью обращения для наборов мозаичных фрагментов для каждого изображения в последовательности.
[0140] Один способ реализовывать такие динамические изменения состоит в том, чтобы передавать в служебных сигналах управляющие MCTS-данные в расчете на изображение. Управляющие MCTS-данные для изображения могут идентифицировать MCTS, который является активным для кодирования и декодирования для этого изображения, причем зависимости при межкадровом предсказании ограничены таким образом, что они попадают в совместно размещенный набор мозаичных фрагментов в любом опорном изображении, которое используется для идентифицированного MCTS. Например, если MCTS B идентифицирован для текущего изображения, то зависимости при межкадровом предсказании ограничены таким образом, что они попадают в область MCTS B в любом опорном изображении (даже если MCTS B не идентифицирован для этого опорного изображения).
[0141] Когда управляющие MCTS-данные могут передаваться в служебных сигналах в расчете на изображение, один подход заключается в том, чтобы явно указывать мозаичные фрагменты в идентифицированном MCTS для этого изображения. Другой подход заключается в том, чтобы использовать общий набор MCTS для всех изображений кодированной видеопоследовательности (или группы изображений), затем идентифицировать активный MCTS для изображения с использованием значения идентификатора в общем наборе MCTS. Например, общий набор MCTS включает в себя четыре, пять или шесть (возможно перекрывающихся) MCTS, и управляющие MCTS-данные для данного изображения идентифицируют MCTS 2 в качестве активного MCTS для кодирования и декодирования для этого изображения.
[0142] Другой способ реализовывать такие динамические изменения состоит в том, чтобы передавать в служебных сигналах управляющие MCTS-данные в расчете на изображение, которые идентифицируют активный MCTS для изображения и также идентифицируют одну или более опорных областей набора мозаичных фрагментов опорных изображений. Например, управляющие MCTS-данные идентифицируют MCTS для данного текущего изображения и идентифицируют опорную область набора мозаичных фрагментов в опорном изображении. Для текущего изображения различные опорные области набора мозаичных фрагментов могут быть идентифицированы в различных опорных изображениях. Идентифицированная опорная область набора мозаичных фрагментов может совместно размещаться с идентифицированным MCTS для текущего изображения (как предполагается во многих примерах, описанных в данном документе), или она может иметь другой размер, форму или местоположение. Для текущего изображения опорная область (области) набора мозаичных фрагментов может быть явно передана в служебных сигналах (в качестве прямоугольника мозаичных фрагментов или в качестве произвольной области) или идентифицирована посредством значения идентификатора из общего набора MCTS, которые применяются для соответствующих опорных изображений. Например, опорное изображение может быть ассоциировано с одним или более MCTS, заданных, когда это опорное изображение кодировано, и последующие изображения (в порядке кодирования) могут указывать опорные области набора мозаичных фрагментов в опорном изображении посредством значений идентификатора одного или более MCTS, которые ранее заданы для опорного изображения.
D. Примерная передача служебных сигналов управляющих MCTS-данных
[0143] В этом разделе описываются примеры синтаксиса и семантики для управляющих MCTS-данных.
1. Первый примерный синтаксис и семантика для MCTS SEI-сообщений
[0144] Фиг. 14A показывает синтаксис (1401) для MCTS SEI-сообщения в одной примерной реализации. На фиг. 14A, SEI-сообщение motion_constrained_tile_set включает в себя различные элементы синтаксиса, кодированные с использованием целочисленного кодирования экспоненциальным кодом Голомба нулевого порядка без знака с помощью левого бита сначала (ue(v)), а также некоторые элементы синтаксиса, передаваемые в служебных сигналах в качестве флагов. Синтаксис (1401) MCTS SEI-сообщения является согласованным с HEVC-стандартом, и этот раздел включает в себя ссылки на различные элементы синтаксиса, заданные в HEVC-стандарте.
[0145] Для MCTS SEI-сообщения, показанного на фиг. 14A, область применения MCTS SEI-сообщения представляет собой полную кодированную видеопоследовательность. Когда MCTS SEI-сообщение присутствует в любой единице доступа кодированной видеопоследовательности, оно присутствует для первой единицы доступа кодированной видеопоследовательности в порядке декодирования. MCTS SEI-сообщение также может присутствовать для других единиц доступа кодированной видеопоследовательности.
[0146] MCTS SEI-сообщение не присутствует для кодированной видеопоследовательности, если tiles_enabled_flag равен 0 для какого-либо набора параметров изображения (PPS), который является активным в кодированной видеопоследовательности. В этом случае (tiles_enabled_flag равен 0), мозаичные фрагменты не активируются, по меньшей мере, для некоторых изображений. Даже когда мозаичные фрагменты активируются для изображений кодированной видеопоследовательности, изображения в кодированной видеопоследовательности должны быть сегментированы на мозаичные фрагменты идентично. Иными словами, MCTS SEI-сообщение не присутствует для кодированной видеопоследовательности, если каждый PPS, который является активным для кодированной видеопоследовательности, не имеет идентичные значения для элементов num_tile_columns_minus1, num_tile_rows_minus1, uniform_spacing_flag, column_width_minus1[i] и row_height_minus1[i] синтаксиса, которые указывают то, как изображения сегментированы на мозаичные фрагменты. Это ограничение является аналогичным ограничению, ассоциированному с tiles_fixed_structure_flag, равным 1. (Если tiles_fixed_structure_flag, который передается в служебных сигналах в информации применимости видео, равен 1, то все PPS, активные для кодированной видеопоследовательности, имеют идентичное число столбцов мозаичных фрагментов, идентичное число строк мозаичных фрагментов и идентичную информацию размера; если равен 0, то они могут варьироваться в различных PPS.)
[0147] MCTS SEI-сообщение идентифицирует набор мозаичных фрагментов, MCTS. Присутствие MCTS SEI-сообщения указывает то, что межкадровое предсказание ограничивается таким образом, что выборочные значения за пределами идентифицированного MCTS и выборочные значения в дробной позиции выборки, которая извлекается с использованием одного или более выборочных значений за пределами идентифицированного MCTS, не используются для взаимного предсказания каких-либо выборок в идентифицированном MCTS. Элементы синтаксиса, которые идентифицируют MCTS, задаются следующим образом.
[0148] Элемент num_tile_rects_in_set_minus1 синтаксиса, с добавлением 1, указывает число прямоугольных областей мозаичных фрагментов (примеров прямоугольников из мозаичных фрагментов) в идентифицированном MCTS. Значение num_tile_rects_in_set_minus1 находится в диапазоне от 0 до (num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)-1, включительно.
[0149] Элементы left_tile_column[i] и top_tile_row[i] синтаксиса идентифицируют столбец мозаичных фрагментов и строку мозаичных фрагментов, соответственно, левого верхнего мозаичного фрагмента в прямоугольной области (примере прямоугольника из мозаичных фрагментов) MCTS. Элемент синтаксиса width_in_tile_columns_minus1[i], с добавлением 1, указывает ширину прямоугольной области (примера прямоугольника из мозаичных фрагментов) MCTS в единицах столбцов мозаичных фрагментов. Значение width_in_tile_columns_minus1[i] находится в диапазоне от 0 до num_tile_columns_minus1-left_tile_column[i], включительно. Элемент height_in_tile_rows_minus1[i] синтаксиса, с добавлением 1, указывает высоту прямоугольной области (примера прямоугольника из мозаичных фрагментов) MCTS в единицах строк мозаичных фрагментов. Значение height_in_tile_rows_minus1[i] находится в диапазоне от 0 до num_tile_rows_minus1-top_tile_column[i], включительно.
[0150] Таким образом, MCTS является комбинацией одной или более прямоугольных областей (примеров прямоугольников из мозаичных фрагментов) мозаичных фрагментов, идентифицированных в MCTS SEI-сообщении.
[0151] На фиг. 14A, MCTS SEI-сообщение включает в себя другой элемент синтаксиса, который может использоваться посредством декодера, чтобы оценивать, может или нет оказываться негативное влияние на качество при декодировании только для MCTS. Когда элемент exact_sample_value_match_flag синтаксиса равен 0 в кодированной видеопоследовательности, когда (a) блоки дерева кодирования, которые находятся за пределами MCTS, не декодируются, и (b) границы MCTS трактуются в качестве границ изображения в целях процесса декодирования, значение каждой выборки в идентифицированном MCTS не может быть точно идентичным значению идентичной выборки, когда все блоки дерева кодирования изображения декодируются. С другой стороны, когда exact_sample_value_match_flag равен 1 в кодированной видеопоследовательности, когда (a) блоки дерева кодирования, которые не принадлежат MCTS, не декодируются, и (b) границы MCTS трактуются в качестве границ изображения в целях процесса декодирования, значение каждой выборки в MCTS является точно идентичным значению выборки, которое должно получаться, когда все блоки дерева кодирования всех изображений в кодированной видеопоследовательности декодируются. Задание exact_sample_value_match_flag равным 1 может быть возможным с определенными комбинациями значений для элементов loop_filter_across_tiles_enabled_flag, pps_loop_filter_across_slices_enabled_flag, pps_deblocking_filter_disabled_flag, slice_loop_filter_across_slices_enabled_flag, slice_deblocking_filter_disabled_flag, sample_adaptive_offset_enabled_flag, slice_sao_luma_flag и slice_sao_chroma_flag синтаксиса.
[0152] На фиг. 14A, MCTS SEI-сообщение включает в себя другие элементы синтаксиса, которые могут использоваться для ROI-отображения в сочетании с ROI-декодированием. Когда pan_scan_rect_flag равен 0, элемент mcts_psr_id не присутствует в MCTS SEI-сообщении. Когда pan_scan_rect_flag равен 1, mcts_psr_id присутствует. Элемент mcts_psr_id синтаксиса указывает то, что идентифицированный MCTS покрывает, по меньшей мере, прямоугольник сканирования с панорамированием с pan_scan_rect_id, равным mcts_psr_id в кодированной видеопоследовательности. Когда pan_scan_rect_flag равен 1, по меньшей мере, один прямоугольник сканирования с панорамированием с pan_scan_rect_id, равным mcts_psr_id, присутствует в кодированной видеопоследовательности.
[0153] Для синтаксиса (1401) MCTS SEI-сообщения, показанного на фиг. 14A, несколько MCTS SEI-сообщений могут быть ассоциированы с кодированной видеопоследовательностью, причем каждое из них идентифицирует MCTS. Следовательно, несколько различных MCTS могут быть активными в кодированной видеопоследовательности.
2. Второй примерный синтаксис и семантика для MCTS SEI-сообщений
[0154] Фиг. 14B показывает синтаксис (1402) для MCTS SEI-сообщения в другой примерной реализации. Как показано на фиг. 14A, SEI-сообщение motion_constrained_tile_group_set включает в себя различные элементы синтаксиса, кодированные с использованием ue(v)-кодирования, а также некоторые элементы синтаксиса, передаваемые в служебных сигналах в качестве флагов. Синтаксис (1402) MCTS SEI-сообщения является согласованным с HEVC-стандартом, и этот раздел включает в себя ссылки на различные элементы синтаксиса, заданные в HEVC-стандарте.
[0155] Для присутствия MCTS SEI-сообщения, показанного на фиг. 14B, tiles_enabled_flag равен 1 для всех активных PPS в кодированной видеопоследовательности (указывает то, что изображения имеют мозаичные фрагменты), и tiles_fixed_structure_flag равен 1 в кодированной видеопоследовательности. Это указывает то, что все PPS, активные для кодированной видеопоследовательности, указывают идентичное число столбцов мозаичных фрагментов, идентичное число строк мозаичных фрагментов и идентичную информацию размера для изображений в кодированной видеопоследовательности.
[0156] Когда присутствует, MCTS SEI-сообщение возникает только в том случае, если оно ассоциировано с первым первичным изображением кодированной видеопоследовательности, изображением на основе доступа к нерабочей ссылке (BLA) или изображением на основе мгновенного обновления при декодировании (IDR). Целевой набор изображений для MCTS SEI-сообщения содержит все последовательные первичные кодированные изображения в порядке декодирования начиная с ассоциированного первого первичного кодированного изображения (включительно) и завершая (a) следующим первичным кодированным (исключительно) BLA- или IDR-изображением или (b) самым последним первичным кодированным изображением в кодированной видеопоследовательности (включительно) в порядке декодирования, когда нет следующего первичного кодированного BLA- или IDR-изображения.
[0157] MCTS SEI-сообщение идентифицирует набор мозаичных фрагментов, MCTS, который представляет собой совокупность одного или более мозаичных фрагментов. Группа (пример прямоугольника из мозаичных фрагментов) из одного или более мозаичных фрагментов для MCTS идентифицирована посредством элементов top_left[i] и bottom_right[i] синтаксиса. Когда separate_colour_plane_flag равен 1, термин "первичные кодированные изображения" представляет части соответствующих первичных кодированных изображений, которые соответствуют NAL-единицам, имеющим идентичный colour_plane_id. MCTS SEI-сообщение указывает то, что для каждого изображения в целевом наборе изображений межкадровое предсказание ограничивается следующим образом. Выборочные значения за пределами MCTS и выборочные значения в дробной позиции выборки, которая извлекается с использованием одного или более выборочных значений за пределами MCTS, не используются для межкадрового предсказания выборок в MCTS.
[0158] MCTS является комбинацией одной или более прямоугольных областей мозаичных фрагментов (групп мозаичных фрагментов, которые являются примерами прямоугольников из мозаичных фрагментов), идентифицированных в MCTS SEI-сообщении. Элемент num_tile_groups_in_set_minus1, с добавлением 1, указывает число групп мозаичных фрагментов (примеров прямоугольников из мозаичных фрагментов) в MCTS. Разрешенный диапазон num_tile_groups_in_set_minus1 составляет от 0 до (num_tile_columns_minus1+1) × (num_tile_rows_minus1+1)-1, включительно.
[0159] Элементы top_left[i] и bottom_right[i] синтаксиса указывают левый верхний угол и правый нижний угол, соответственно, группы мозаичных фрагментов (примера прямоугольника из мозаичных фрагментов) с ограниченным межкадровым предсказанием, в единицах блоков дерева кодирования. Значения top_left[i] и bottom_right[i] являются позициями единиц групп мозаичных фрагментов при растровом сканировании изображения. Для каждого прямоугольника i, значения top_left[i] и bottom_right[i] придерживаются следующих ограничений:
top_left[i] меньше или равен bottom_right[i];
bottom_right[i] меньше PicSizeInCtbsY;
(top_left[i]% PicWidthInCtbsY) меньше или равен значению (bottom_right[i]% PicWidthInCtbsY); и
прямоугольник, указываемый посредством top_left[i] и bottom_right[i], содержит один или более полных мозаичных фрагментов.
[0160] На фиг. 14B, MCTS SEI-сообщение включает в себя другие элементы синтаксиса, которые могут использоваться для ROI-отображения в сочетании с ROI-декодированием. Когда элемент pan_scan_rect_flag синтаксиса равен 0, pan_scan_rect_id не присутствует. Когда pan_scan_rect_flag равен 1, pan_scan_rect_id присутствует. Элемент pan_scan_rect_id синтаксиса указывает то, что указанный MCTS покрывает, по меньшей мере, прямоугольник сканирования с панорамированием, идентифицированный посредством pan_scan_rect_id в целевом наборе изображений.
[0161] Для синтаксиса (1402) MCTS SEI-сообщения, показанного на фиг. 14B, несколько MCTS SEI-сообщений могут быть ассоциированы с идентичным целевым набором изображений. Следовательно, несколько различных MCTS могут быть активными в целевом наборе изображений.
3. Третий примерный синтаксис и семантика для MCTS SEI-сообщений
[0162] Фиг. 14C показывает синтаксис (1403) для MCTS SEI-сообщения в другой примерной реализации. Присутствие MCTS SEI-сообщения указывает то, что процесс взаимного предсказания ограничивается таким образом, что выборочные значения за пределами каждого идентифицированного набора мозаичных фрагментов и выборочные значения в дробной позиции выборки, которая извлекается с использованием одного или более выборочных значений за пределами идентифицированного набора мозаичных фрагментов, не используются для взаимного предсказания каких-либо выборок в идентифицированном наборе мозаичных фрагментов. За исключением того что, указано в этом разделе, синтаксис (1403) MCTS SEI-сообщения, показанного на фиг. 14C, является идентичным синтаксису (1401) MCTS SEI-сообщения, показанного на фиг. 14A.
[0163] Когда несколько MCTS SEI-сообщений присутствует в единицах доступа кодированной видеопоследовательности, они должны содержать идентичный контент. Число MCTS SEI-сообщений в каждой единице доступа не должно превышать 5.
[0164] Num_sets_in_message_minus1, с добавлением 1, указывает число MCTS, идентифицированных в SEI-сообщении. Значение num_sets_in_message_minus1 находится в диапазоне от 0 до 255, включительно.
32
31
31
32
31
32
[0165] Элемент mcts_id[i] синтаксиса содержит идентификационный номер, который может использоваться для того, чтобы идентифицировать назначение i-ого идентифицированного набора мозаичных фрагментов. Например, элемент mcts_id[i] синтаксиса может использоваться для того, чтобы идентифицировать область, которая должна извлекаться из кодированной видеопоследовательности для конкретной цели. Значение mcts_id[i] должно быть в диапазоне от 0 до 2-2, включительно. Значения mcts_id[i] от 0 до 255 и от 512 до 2-1 могут использоваться так, как определено посредством варианта применения. Значения mcts_id[i] от 256 до 511 и от 2 до 2-2 зарезервированы для будущего использования. Декодеры, сталкивающиеся со значением mcts_id[i] в диапазоне 256-511 или в диапазоне от 2 до 2-2, игнорируют его (удаляют его из потока битов и отбрасывают).
[0166] Оставшиеся элементы num_tile_rects_in_set_minus1[i], left_tile_column[i][j], top_tile_row[i][j], width_in_tile_columns_minus1[i][j], height_in_tile_rows_minus1[i][j], exact_sample_value_match_flag[i], pan_scan_rect_flag[i] и mcts_psr_id[i] синтаксиса, в общем, имеют смысл, поясненный в отношении синтаксиса (1401) примерного MCTS SEI-сообщения по фиг. 14A. Тем не менее, для каждого элемента синтаксиса, переменная i счетчика циклов указывает значение элемента синтаксиса для i-ого MCTS, указываемого в MCTS SEI-сообщении, и переменная j счетчика циклов указывает значение для j-того прямоугольника из мозаичных фрагментов в данном MCTS. Альтернативно, вместо использования left_tile_column[i][j], top_tile_row[i][j], width_in_tile_columns_minus1[i][j] и height_in_tile_rows_minus1[i][j], два элемента синтаксиса для данного прямоугольника из мозаичных фрагментов могут идентифицировать позицию мозаичного фрагмента для левого верхнего мозаичного фрагмента в прямоугольнике из мозаичных фрагментов и позицию мозаичного фрагмента для правого нижнего мозаичного фрагмента в прямоугольнике из мозаичных фрагментов, соответственно, в порядке растрового сканирования мозаичных фрагментов.
4. Альтернативный синтаксис и семантика для управляющих MCTS-данных
[0167] В двух предыдущих разделах, одно MCTS SEI-сообщение указывает один MCTS и идентифицирует мозаичный фрагмент(ы) в этом MCTS. Для этого подхода, может быть предусмотрено несколько SEI-сообщений для управляющих MCTS-данных, когда имеется несколько MCTS для одной кодированной видеопоследовательности, причем каждое MCTS SEI-сообщение указывает различный MCTS в идентичной кодированной видеопоследовательности.
[0168] Альтернативно, одно MCTS SEI-сообщение может указывать несколько MCTS. Например, внешний цикл в синтаксисе MCTS SEI-сообщения выполняется с помощью итераций для соответствующих MCTS. Для данного MCTS, синтаксис и семантика могут соответствовать примеру одного из двух предыдущих разделов, чтобы идентифицировать области (прямоугольники из мозаичных фрагментов) мозаичных фрагментов для MCTS, ассоциированного прямоугольника сканирования с панорамированием и т.д.
[0169] В двух предыдущих разделах, MCTS SEI-сообщение подразумевает, что идентифицированный набор мозаичных фрагментов представляет собой MCTS. Альтернативно, MCTS SEI-сообщение может разлагать изображение на несколько наборов мозаичных фрагментов, и флаг в расчете на набор мозаичных фрагментов в MCTS SEI-сообщении указывает то, представляет собой набор мозаичных фрагментов MCTS или не MCTS.
[0170] В двух предыдущих разделах, область применения MCTS SEI-сообщения может представлять собой кодированную видеопоследовательность (аналогично примеру по фиг. 14A) или возможно группу изображений между одним BLA- или IDR-изображением (включительно) и другим BLA- или IDR-изображением (аналогично примеру по фиг. 14B). Альтернативно, MCTS SEI-сообщение может передаваться в служебных сигналах в расчете на изображение или иметь некоторую другую область применения.
[0171] В двух предыдущих разделах, изображения, на которые оказывает влияние MCTS SEI-сообщение, имеют идентичную конфигурацию наборов мозаичных фрагментов, так что наборы мозаичных фрагментов и мозаичные фрагменты не изменяются для каждого изображения в кодированной видеопоследовательности (или группе изображений). Альтернативно, размер, форма и/или местоположение областей с возможностью обращения для MCTS могут изменяться для каждого изображения в кодированной видеопоследовательности (или группе изображений).
[0172] В двух предыдущих разделах, управляющие MCTS-данные представляют собой SEI-сообщение. Альтернативно, управляющие MCTS-данные могут представлять собой некоторую другую форму метаданных или элемента синтаксиса элементарного потока видеобитов, который указывает то, что зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов ограничены для данного набора мозаичных фрагментов.
F. Технологии для передачи служебных сигналов и использования управляющих MCTS-данных
[0173] Фиг. 15 показывает обобщенную технологию (1500) для передачи в служебных сигналах управляющих MCTS-данных. Видеокодер, такой как видеокодер, описанный выше со ссылкой на фиг. 3 или 5, или другое инструментальное средство выполняет технологию (1500).
[0174] Инструментальное средство кодирует (1510) несколько изображений для того, чтобы формировать кодированные данные. Каждое из нескольких изображений сегментировано на несколько мозаичных фрагментов. Например, каждое из нескольких изображений сегментировано на строки мозаичных фрагментов и столбцы мозаичных фрагментов, которые задают несколько мозаичных фрагментов для изображения, и каждый из нескольких мозаичных фрагментов представляет собой прямоугольную область. В примерных реализациях, каждое из нескольких изображений идентично сегментировано, чтобы формировать несколько мозаичных фрагментов в каждом из нескольких изображений. Альтернативно, различные изображения могут быть сегментированы на мозаичные фрагменты по-разному.
[0175] Инструментальное средство выводит (1520) кодированные данные вместе с управляющими данными, которые указывают то, что зависимости при межкадровом предсказании на конкретных границах (например, границы наборов мозаичных фрагментов) ограничены для данного набора мозаичных фрагментов (MCTS) из одного или более мозаичных фрагментов из нескольких мозаичных фрагментов. Управляющие данные могут включать в себя один или более элементов синтаксиса, которые идентифицируют то, какой из нескольких мозаичных фрагментов находится в данном MCTS.
[0176] В примерных реализациях, данный набор мозаичных фрагментов параметризован в управляющих данных в качестве одного или более прямоугольников из мозаичных фрагментов, включающих в себя один или более мозаичных фрагментов из набора мозаичных фрагментов. Например, для данного прямоугольника из мозаичных фрагментов в наборе мозаичных фрагментов, управляющие данные включают в себя элементы синтаксиса, которые идентифицируют два угла прямоугольника из мозаичных фрагментов (к примеру, левый верхний угол прямоугольника из мозаичных фрагментов и правый нижний угол прямоугольника из мозаичных фрагментов). Управляющие данные также могут включать в себя идентификатор набора мозаичных фрагментов, параметр количества, который указывает количество прямоугольников из мозаичных фрагментов в наборе мозаичных фрагментов, и для каждого прямоугольника из мозаичных фрагментов в наборе мозаичных фрагментов, элементы синтаксиса, которые указывают местоположение прямоугольника из мозаичных фрагментов (например, позицию, ширину и высоту прямоугольника из мозаичных фрагментов).
[0177] Если обобщать, элемент(ы) синтаксиса может включать в себя параметр количества, который указывает количество областей мозаичных фрагментов в данном MCTS, причем каждая из областей мозаичных фрагментов покрывает один или более мозаичных фрагментов из нескольких мозаичных фрагментов. Элемент(ы) синтаксиса также может включать в себя, для каждой из областей мозаичных фрагментов в данном наборе мозаичных фрагментов, один или более параметров местоположения, которые указывают местоположение области мозаичных фрагментов (например, позицию, ширину и высоту области мозаичных фрагментов).
[0178] Управляющие данные могут включать в себя другие элементы синтаксиса. Например, управляющие данные включают в себя флаг, который указывает то, (a) точно совпадают или нет выборки, восстановленные для данного MCTS, если части нескольких изображений за пределами данного MCTS не декодируются, (b) с выборками, восстановленными для данного MCTS, если части нескольких изображений за пределами данного MCTS декодируются. Альтернативно, управляющие данные включают в себя идентификатор прямоугольника сканирования с панорамированием, охватываемого данным MCTS.
[0179] В примерных реализациях, управляющие данные представляют собой SEI-сообщение для одного MCTS, указывающее то, что зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов ограничены для данного MCTS. В этом случае, управляющие данные могут включать в себя различное SEI-сообщение для каждого данного MCTS и одного или более других MCTS. Альтернативно, управляющие данные представляют собой одно SEI-сообщение для нескольких MCTS, включающих в себя данный MCTS и один или более других MCTS. Альтернативно, управляющие данные могут представлять собой флаг, значение которого указывает то, ограничены или нет зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов для данного набора мозаичных фрагментов. Альтернативно, управляющие данные могут принимать некоторую другую форму.
[0180] В примерных реализациях, данный набор мозаичных фрагментов является идентичным для каждого из нескольких изображений. Альтернативно, данный набор мозаичных фрагментов отличается, по меньшей мере, между некоторыми несколькими изображениями.
[0181] Управляющие данные также могут указывать то, что зависимости при межкадровом предсказании на конкретных границах ограничены для каждого из одного или более других наборов мозаичных фрагментов из нескольких мозаичных фрагментов. Это может иметь место, например, когда кодирование (1510) использует параллельную обработку, по меньшей мере, для некоторых стадий кодирования для данного MCTS и одного или более других MCTS.
[0182] Инструментальное средство может повторять технологию (1500) на основе единиц (например, на основе последовательностей, на основе групп). Для простоты, фиг. 15 не показывает то, как технология (1500) работает в сочетании с другими процессами кодирования.
[0183] Фиг. 16 показывает примерную технологию (1600) для кодирования с избирательным использованием MCTS. Видеокодер, такой как видеокодер, описанный выше со ссылкой на фиг. 3 или 5, или другое инструментальное средство выполняет технологию (1600).
[0184] Инструментальное средство сегментирует (1610) текущее изображение на мозаичные фрагменты для кодирования. Инструментальное средство определяет (1620), следует или нет ограничивать движение для данного набора из одного или более мозаичных фрагментов. Если да, инструментальное средство кодирует (1630) мозаичный фрагмент(ы) MCTS с ограничениями движения на границах наборов мозаичных фрагментов, ограничивая оценку движения во время кодирования таким образом, что зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов не допускаются для MCTS. Инструментальное средство выводит (1640) кодированные данные вместе с управляющими данными, которые указывают то, что зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов ограничены для набора мозаичных фрагментов. Иначе (движение не ограничено для мозаичных фрагментов), инструментальное средство кодирует (1650) мозаичный фрагмент(ы) без ограничений движения на границах наборов мозаичных фрагментов и выводит (1660) кодированные данные. Инструментальное средство проверяет (1670) то, следует или нет продолжать кодирование для каких-либо других мозаичных фрагментов в изображении, и если да, определять (1620) то, следует или нет кодировать один или более оставшихся мозаичных фрагментов в качестве MCTS. После кодирования текущего изображения, инструментальное средство определяет (1680), следует или нет продолжать со следующим изображением в последовательности.
[0185] Фиг. 17 показывает обобщенную технологию (1700) для обработки кодированных данных, передаваемых в служебных сигналах вместе с управляющими MCTS-данными. Видеодекодер, такой как видеодекодер, описанный выше со ссылкой на фиг. 4 или 6, или другое инструментальное средство выполняет технологию (1700).
[0186] Инструментальное средство принимает (1710) кодированные данные для нескольких изображений. Каждое из нескольких изображений сегментировано на несколько мозаичных фрагментов. Например, каждое из нескольких изображений сегментировано на строки мозаичных фрагментов и столбцы мозаичных фрагментов, которые задают несколько мозаичных фрагментов для изображения, и каждый из нескольких мозаичных фрагментов представляет собой прямоугольную область. В примерных реализациях, каждое из нескольких изображений идентично сегментировано, чтобы формировать несколько мозаичных фрагментов в каждом из нескольких изображений. Альтернативно, различные изображения могут быть сегментированы на мозаичные фрагменты по-разному.
[0187] Инструментальное средство также принимает (1720) управляющие данные, которые указывают то, что зависимости при межкадровом предсказании на конкретных границах (например, границы наборов мозаичных фрагментов) ограничены для данного набора мозаичных фрагментов (MCTS) из одного или более мозаичных фрагментов из нескольких мозаичных фрагментов. Управляющие данные могут включать в себя один или более элементов синтаксиса, которые идентифицируют то, какой из нескольких мозаичных фрагментов находится в данном MCTS.
[0188] В примерных реализациях, данный набор мозаичных фрагментов параметризован в управляющих данных в качестве одного или более прямоугольников из мозаичных фрагментов, включающих в себя один или более мозаичных фрагментов из набора мозаичных фрагментов. Например, для данного прямоугольника из мозаичных фрагментов в наборе мозаичных фрагментов, управляющие данные включают в себя элементы синтаксиса, которые идентифицируют два угла прямоугольника из мозаичных фрагментов (к примеру, левый верхний угол прямоугольника из мозаичных фрагментов и правый нижний угол прямоугольника из мозаичных фрагментов). Управляющие данные также могут включать в себя идентификатор набора мозаичных фрагментов, параметр количества, который указывает количество прямоугольников из мозаичных фрагментов в наборе мозаичных фрагментов и для каждого из прямоугольников из мозаичных фрагментов в наборе мозаичных фрагментов, элементы синтаксиса, которые указывают местоположение прямоугольника из мозаичных фрагментов (например, позицию, ширину и высоту прямоугольника из мозаичных фрагментов).
[0189] Если обобщать, элемент(ы) синтаксиса может включать в себя параметр количества, который указывает количество областей мозаичного мозаичных фрагментов в данном MCTS, причем каждая из областей мозаичных фрагментов покрывает один или более мозаичных фрагментов из нескольких мозаичных фрагментов. Элемент(ы) синтаксиса также может включать в себя, для каждой из областей мозаичных фрагментов в данном наборе мозаичных фрагментов, один или более параметров местоположения, которые указывают местоположение области мозаичных фрагментов (например, позицию, ширину и высоту области мозаичных фрагментов).
[0190] Управляющие данные могут включать в себя другие элементы синтаксиса. Например, управляющие данные включают в себя флаг, который указывает то, (a) точно совпадают или нет выборки, восстановленные для данного MCTS, если части нескольких изображений за пределами данного MCTS не декодируются, (b) с выборками, восстановленными для данного MCTS, если части нескольких изображений за пределами данного MCTS декодируются. Альтернативно, управляющие данные включают в себя идентификатор прямоугольника сканирования с панорамированием, охватываемого данным MCTS.
[0191] В примерных реализациях, управляющие данные представляют собой SEI-сообщение для одного MCTS, указывающее то, что зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов ограничены для данного MCTS. В этом случае, управляющие данные могут включать в себя различное SEI-сообщение для каждого данного MCTS и одного или более других MCTS. Альтернативно, управляющие данные представляют собой одно SEI-сообщение для нескольких MCTS, включающих в себя данный MCTS и один или более других MCTS. Альтернативно, управляющие данные могут представлять собой флаг, значение которого указывает то, ограничены или нет зависимости при межкадровом предсказании на границах наборов мозаичных фрагментов для данного набора мозаичных фрагментов. Альтернативно, управляющие данные могут принимать некоторую другую форму.
[0192] В примерных реализациях, данный набор мозаичных фрагментов является идентичным для каждого из нескольких изображений. Альтернативно, данный набор мозаичных фрагментов отличается, по меньшей мере, между некоторыми несколькими изображениями.
[0193] Инструментальное средство обрабатывает (1730) кодированные данные. Например, в качестве части обработки кодированных данных, инструментальное средство декодирует данный MCTS в качестве интересующей области в нескольких изображениях без декодирования частей нескольких изображений за пределами данного MCTS. Альтернативно, в качестве части обработки кодированных данных инструментальное средство транскодирует кодированные данные посредством удаления кодированных данных для частей нескольких изображений за пределами данного MCTS и организации кодированных данных для данного MCTS в качестве нового потока битов. Управляющие данные также могут указывать то, что зависимости при межкадровом предсказании на конкретных границах ограничены для каждого из одного или более других MCTS. В этом случае, обработка кодированных данных может включать в себя декодирование, которое использует параллельную обработку, по меньшей мере, для некоторых стадий декодирования для данного MCTS и одного или более других MCTS.
[0194] Инструментальное средство может повторять технологию (1700) на основе единиц (например, на основе последовательностей, на основе групп). Для простоты, фиг. 17 не показывает то, как технология (1700) работает в сочетании с другими процессами декодирования.
[0195] В свете множества возможных вариантов осуществления, к которым могут быть применены принципы изобретения, следует признавать, что проиллюстрированные варианты осуществления являются предпочтительными примерами изобретения и не должны восприниматься как ограничивающие объем изобретения. Вместо этого, объем изобретения задается посредством прилагаемой формулы изобретения. Следовательно, изобретение заявляется в качестве формулы изобретения в пределах объема и сущности этой формулы.