Управляющие данные для набора мозаичных фрагментов с ограничениями движения

Иллюстрации

Показать все

Изобретение относится к области передачи служебных сигналов, а более конкретно к обработке кодированных данных. Технический результат – упрощение обработки изображений посредством использования управляющих данных. Система для обработки кодированных данных реализует систему кодера, выполненную с возможностью осуществления операций, содержащих: кодирование множества изображений для формирования кодированных данных, причем каждое из этого множества изображений сегментировано на множество мозаичных фрагментов; и вывод кодированных данных вместе с управляющими данными, которые указывают, что зависимости при межкадровом предсказании на конкретных границах ограничены для конкретного набора мозаичных фрагментов, причем данный конкретный набор мозаичных фрагментов параметризован в управляющих данных в виде одной или более областей мозаичных фрагментов, охватывающих эти один или более мозаичных фрагментов, при этом управляющие данные включают параметр количества, указывающий количество мозаичных фрагментов в наборе мозаичных фрагментов, и элементы синтаксиса, которые указывают местоположение области мозаичных фрагментов во множестве изображений. 6 н. и 30 з.п. ф-лы, 27 ил.

Реферат

Уровень техники

[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), чтобы определять то, должен или нет восстанавливаться и сохраняться