Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений

Иллюстрации

Показать все

Изобретение относится к области кодирования/декодирования видео. Технический результат – обеспечение эффективного сжатия данных в контексте показателя искажения в зависимости от скорости передачи, посредством использования отфильтрованных значений отсчетов для внутреннего предсказания с блочным копированием. Реализуемый в вычислительном устройстве способ выполнения петлевой деблокинг-фильтрации через границу между блоками содержит этапы, на которых: восстанавливают первый и второй блоки картинки, где картинка включает в себя по меньшей мере некоторые блоки, закодированные с использованием внутреннего предсказания с блочным копированием, и выполняют петлевую деблокинг-фильтрацию через границу между первым и вторым блоками, причем первый и второй блоки закодированы с использованием внутреннего предсказания с блочным копированием, при этом выполнение петлевой деблокинг-фильтрации включает в себя настройку петлевой деблокинг-фильтрации, по меньшей мере отчасти, на основе значений блочных векторов (BV), определенных для первого и второго блоков соответственно. 3 н. и 17 з.п. ф-лы, 25 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

Инженеры используют сжатие (также называемое кодированием источника или закодированием источника) для уменьшения битрейта цифрового видео. Сжатие снижает затраты на хранение и передачу видеоинформации путем преобразования этой информации в форму с меньшим битрейтом. Распаковка (также называемая декодированием) восстанавливает версию исходной информации из сжатой формы. Система кодера/декодера представляет собой так называемый «кодек». В последнее двадцатилетие были приняты различные стандарты кодеков для видео, в том числе стандарты ITU-T H.261, H262 (MPEG-2 или ISO/IEC 13818-2), H.263 и H.264 (MPEG-4 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). В настоящее время разрабатываются расширения к стандарту HEVC (например, для масштабируемого видеокодирования/видеодекодирования для кодирования/декодирования видео с более высоким качеством в контексте глубины отсчета в битах или частоты дискретизации цветности, либо для многоракурсного кодирования/декодирования. Стандарт видеокодека, как правило, определяет опции для синтаксиса кодированного видеопотока, детализации параметров в битовом потоке при использовании конкретных функциональных возможностей при кодировании и декодировании. Во многих случаях стандарт видеокодека также обеспечивает детали, касающиеся операций декодирования, которые должен выполнять декодер для достижения подходящих результатов при декодировании. Помимо стандартов кодека различные патентованные форматы кодека определяют другие опции для синтаксиса кодированного битового потока видео и соответствующие операции декодирования.

Внутреннее блочное копирование (BC) представляет режим предсказания, рассматриваемый для расширений стандарта HEVC. Для режима внутреннего предсказания с ВС значения отсчетов текущего блока кадра предсказываются с использованием ранее восстановленных значений отсчетов в том же кадре. Блочный вектор (BV) указывает смещение от текущего блока до области кадра, которая включает в себя ранее восстановленные значения отсчетов, использованные для предсказания. Вектор BV передается в качестве сигнализации в битовом потоке. Внутреннее предсказание с ВС является формой предсказания внутри кадра, то есть, при внутреннем предсказании с ВС для блока кадра не используются какие-либо значения отсчетов, отличные от значений отсчетов в этом же кадре.

Как в настоящее время определено в стандарте HEVC и реализовано в некотором эталонном программном обеспечении для стандарта HEVC, режим внутреннего предсказания с блочным копированием имеет ряд проблем. Например, режим внутреннего предсказания с BC нельзя эффективно интегрировать с различными отличительными признаками стандарта HEVC, такими как опции для частотных преобразований/обратных частотных преобразований, петлевая фильтрация по устранению блочности в видео (деблокинг-фильтрация) и ограниченное внутреннее предсказание. Процесс выбора значений BV эффективно не ограничивается, а закодирование значений BV не эффективно, если иметь в виду использование битрейта.

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

В данном разделе подробно описываются нововведения в режиме внутреннего предсказания с блочным копированием (BC). Например, некоторые из предложенных нововведений обеспечивают пути для более эффективного выбора значений блочного вектора («BV»). Другие нововведения обеспечивают пути для более эффективного закодирования/декодирования значений BV. Ряд других нововведений указывают, каким образом следует выполнять петлевую деблокинг-фильтрацию, когда блок имеет режим внутреннего предсказания с BC, или указывают, каким образом следует выполнять внутреннее предсказание с BC, когда разрешено ограниченное внутреннее предсказание. Эти нововведения могут повысить эффективность внутреннего предсказания с BC в плане показателя искажений в зависимости от скорости и/или эффективность вычислений для закодирования и декодирования.

Упомянутые нововведения для режима внутреннего предсказания с BC можно реализовать как часть способа, как часть вычислительного устройства, адаптированного для выполнения этого способа, или как часть материального считываемого компьютером носителя (среды), на котором сохранены исполняемые компьютером команды, которые инициируют выполнение вычислительным устройством упомянутого способа. Эти разного рода нововведения можно использовать по отдельности или в комбинациях.

Вышеописанные и другие цели, признаки и преимущества изобретения станут более очевидными при ознакомлении с последующим подробным описанием, которое сопровождается ссылками на прилагаемые чертежи.

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

Фиг. 1 – схема примерной вычислительной системы, в которой могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;

Фигуры 2а и 2b – схемы примерных сетевых сред, в которых могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;

Фиг. 3 – схема примерной системы кодера, вместе с которой могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;

Фиг. 4 – схема примерной системы декодера, вместе с которой могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;

Фигуры 5а и 5b – схемы, иллюстрирующие примерный видеокодер, вместе с которым могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;

Фиг. 6 – схема, иллюстрирующая примерный видеодекодер, вместе с которым могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;

Фиг. 7 – схема, иллюстрирующая внутреннее предсказание с BC для одного блока кадра;

Фиг. 8 – схема, иллюстрирующая примерные ограничения на область поиска значений BV;

Фиг. 9 – блок-схема, иллюстрирующая обобщенный способ закодирования с внутренним режимом предсказания с BC с наложенным одним или несколькими ограничениями на выбор значений BV;

Фиг. 10 – схема, иллюстрирующая примерный порядок z сканирования для блоков кадра;

Фигуры 11а и 11b – схемы, иллюстрирующие области с невосстановленными значениями отсчетов, подлежащими замене заполняемыми значениями;

Фиг. 12 – блок-схема, иллюстрирующая обобщенный способ использования режима внутреннего предсказания с BC во время закодирования или декодирования, когда может быть разрешено ограниченное внутреннее предсказание;

Фиг. 13 – схема, иллюстрирующая примерные ограничения на допустимые значения BV, когда разрешено ограниченное внутреннее предсказание;

Фиг. 14 – таблица, иллюстрирующая примерный подход к разблокированию режима внутреннего предсказания с BC, когда разрешено ограниченное внутреннее предсказание;

Фигуры 15а и 15b – схемы, иллюстрирующие примерные диапазоны значений BV, обладающих свойствами, которые можно использовать при закодировании;

Фигуры 16 и 17 – блок-схемы, иллюстрирующие обобщенные способы закодирования и декодирования значений BV соответственно;

Фигуры 18 и 19 – блок-схемы, иллюстрирующие обобщенные способы закодирования и декодирования соответственно с использованием режима внутреннего предсказания с BC и альтернативных прямых (или обратных) частотных преобразований;

Фиг. 20 – схема, иллюстрирующая примерные правила для изменения подхода к петлевой деблокинг-фильтрации в зависимости от режимов предсказания блоков;

Фиг. 21 - блок-схема, иллюстрирующая обобщенный способ петлевой деблокинг-фильтрации во время закодирования или декодирования для блоков, имеющих режим внутреннего предсказания с BC.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

В подробном описании представлены нововведения при использовании режима внутреннего предсказания с блочным копированием (BC) во время закодирования и/или декодирования. В частности, в подробном описании представлены нововведения при выборе значений блочного вектора (BV), закодировании/декодировании значений BV, интеграции режима внутреннего предсказания с ВС с ограниченным внутренним предсказанием, выборе прямых и обратных частотных преобразований в случае использования режима внутреннего предсказания с ВС, и петлевой деблокинг-фильтрации через границу блоков с режимом внутреннего предсказания с ВС.

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

Некоторые из описанных здесь нововведений проиллюстрированы со ссылками на синтаксические элементы и операции, специфичные для стандарта HEVC. Например, показана ссылка на предварительную версию JCTVC-N1005 стандарта HEVC «High Efficiency Video Coding (HEVC) Range Extensions Text Specification: Draft 4,» JCTVC N1005, July 2013. Описанные здесь нововведения также можно реализовать для других стандартов или форматов.

В более общем случае возможно использование различных альтернатив для описанных здесь примеров. Например, некоторые из описанных здесь способов можно изменить, изменив порядок описанных действий способа путем разделения на части, повторения или отбрасывания некоторых действий способа и т.д. Различные аспекты раскрытой здесь технологии можно использовать в сочетании или по отдельности. В разных вариантах осуществления используется одно или несколько из описанных здесь нововведений. Некоторые из писанных здесь нововведений направлены на решение одной или нескольких проблем, отмеченных в разделе «Уровень техники». Как правило, один предложенный способ/одно средство не решают всех указанных проблем.

I. Примерные вычислительные системы

На фиг. 1 показан обобщенный пример подходящей вычислительной системы (100), в которой можно реализовать несколько из описанных здесь нововведений. Здесь не предполагается, что вычислительная система (100) накладывает какое-либо ограничение на объем использования и функциональные возможности, так что эти нововведения могут быть реализованы в различных вычислительных системах общего назначения или специализированных вычислительных системах.

Обратимся к фиг. 1, где вычислительная система (100) включает в себя один или несколько обрабатывающих блоков (110, 115) и память (120, 125). Обрабатывающие блоки (110, 115) выполняют исполняемые компьютером программы. Обрабатывающий блок может представлять собой центральный обрабатывающий блок (CPU) общего назначения, процессор в прикладной специализированной интегральной схеме (ASIC) или процессор любого другого типа. В многопроцессорной системе для повышения производительности исполняемые компьютером команды выполняются множеством обрабатывающих блоков. Например, на фиг. 1 показан центральный управляющий блок (110), а также блок графической обработки или сопроцессорный блок (115). Материальная память (120, 125) может представлять собой энергозависимую память (например, регистры, кэш-память, RAM), энергонезависимую память (например, ROM, EEPROM, флэш-память и т.д.) или некоторую комбинацию из двух указанных устройств, доступных обрабатывающему блоку (блокам). В памяти (120, 125) хранится программное обеспечение (180), реализующее одно или несколько нововведений для режима внутреннего ВС предсказания, в виде считываемых компьютером программ, подходящим для выполнения обрабатывающим блоком (блоками).

Вычислительная система может иметь дополнительные функциональные возможности. Например, вычислительная система (100) включает в себя хранилище (140), одно или несколько устройств (150) ввода, одно или несколько устройств (160) вывода и одно или несколько коммуникационных соединений (170). Компоненты вычислительной системы (100) соединены между собой механизмом межсоединения (не показан), таким как шина, контроллер или сеть. Как правило, программное обеспечение операционной системы (не показано) обеспечивает операционную среду для других программных средств, реализуемых в вычислительной системе (100), и координирует операции, выполняемые компонентами вычислительной системы (100).

Материальное хранилище данных (40) может быть съемным или несъемным и может включать в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD или любой другой носитель, который можно использовать для хранения информации, которая может быть доступна в вычислительной системе (100). Хранилище (140) обеспечивает хранение команд для программного обеспечения (180), используя одну или несколько операций для режима внутреннего предсказания с ВС.

Устройство (устройства) (150) ввода могут представлять собой устройство сенсорного ввода, такое как клавиатура, мышь, перо или шаровой манипулятор, устройство ввода голоса, сканирующее устройство или иное устройство, обеспечивающее ввод в вычислительную систему (100). Для видео устройством (устройствами) (150) ввода может быть камера, видеокарта, карта селектора TV программ или аналогичное устройство, которое получает видео в аналоговой или цифровой форме, либо CD-ROM или CD-RW, которые считывают отсчеты видео в вычислительную систему (100). Устройство (устройства) (160) вывода может представлять собой дисплей, принтер, динамик, устройство записи на CD или какое-либо другое устройство, которое обеспечивает вывод из вычислительной системы (100).

Коммуникационное соединение (соединения) (170) предоставляет возможность связи через среду связи с другим вычислительным объектом. Коммуникационная среда переносит информацию, такую как исполняемые компьютером команды, ввод или вывод видео или иные данные в сигнале, модулированном данными. Сигналом, модулированным данными, является сигнал, имеющий одну или несколько характеристик, установленных или измененных таким образом, чтобы обеспечить закодирование информации в указанном сигнале. Например, но не как ограничение, коммуникационная среда может использовать электрическую, оптическую, радиочастотную (RF) или иную несущую.

Упомянутые нововведения можно описать в общем контексте считываемых компьютером сред. Считываемые компьютером среды представляют собой любые доступные материальные среды, к которым можно обращаться в данной вычислительной среде. Например, но не как ограничение, при использовании вычислительной системы (100) считываемый компьютером среды включают в себя память (120, 125), хранилище (140) и любые комбинации из них.

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

Термины «система» и «устройство» используются здесь как взаимозаменяемые. Если из контекста в явном виде не следует иное, ни один из этих терминов не накладывает какое-либо ограничение на тип вычислительной системы или вычислительного устройства. В общем случае вычислительная система или вычислительное устройство может быть локальным или распределенным и может включать в себя любую комбинацию специализированных аппаратных средств и/или аппаратных средств общего назначения с программным обеспечением, реализующим описанные здесь функциональные возможности.

Раскрытые здесь способы также можно реализовать с использованием специализированных аппаратных вычислительных средств, сконфигурированных для выполнения любого из раскрытых здесь способов. Например, раскрытые способы можно реализовать с помощью интегральной схемы (например, ASIC (такой как блок обработки цифровых сигналов (DSP), блок обработки графики (GPU) или программируемое логическое устройство (PLD), такое как вентильная матрица, программируемая пользователем (FPGA)), специально спроектированная или сконфигурированная для реализации любого из раскрытых здесь способов.

Для представления в данном подробном описании используются термины типа «определяет» и «использует» для описания компьютерных операций в вычислительной системе. Эти термины являются абстракциями высокого уровня для операций, выполняемых компьютером, и их не следует путать с действиями, выполняемыми человеком. Реальные вычислительные операции, соответствующие этим терминам, зависят от конкретной реализации.

II. Примерные сетевые среды

На фигурах 2а и 2b показаны примерные сетевые среды (201, 202), которые включают в себя видеокодеры (220) и видеодекодеры (270). Кодеры (220) и декодеры (270) соединены через сеть (250), использующую соответствующий коммуникационный протокол. Сеть (250) может включать в себя Интернет или другую компьютерную сеть.

В сетевой среде (201), показанной на фиг. 2а, каждое средство связи в режиме реального времени (RTC) включает в себя кодер (220) и декодер (270) для двунаправленного обмена. Данный кодер (220) может создавать выходные данные, совместимые с вариантом или расширением стандарта HEVC, стандарта SMPTE 421M, стандарта ISO-IEC 14496-10 (также называемого H.264 или AVC), другого стандарта или патентованного формата, с соответствующим декодером (270), получающим кодированные данные от кодера (220). Упомянутая двунаправленная связь может быть частью видеоконференции, видеотелефонного звонка или другого сценария двусторонней связи. Хотя сетевая среда (201) на фиг. 2а включает в себя два средства (210) связи в режиме реального времени, сетевая среда (201) может вместо этого включать в себя три или более средства (210) связи в режиме реального времени, которые являются участниками многосторонней связи.

Средство (210) связи в режиме реального времени организует закодирование, выполняемое кодером (220). На фиг.3 показана примерная система (300) кодера, которая может быть включена в средство (210) связи в режиме реального времени. В качестве альтернативы, в средстве (210) связи в режиме реального времени может быть использована другая система кодера. Средство (210) связи в режиме реального времени также организует декодирование, выполняемое декодером (270). На фиг.4 показана примерная система (400) декодера, которая может быть включена в средство (210) связи в режиме реального времени. В качестве альтернативы, в средстве (210) связи в режиме реального времени может быть использована другая система декодера.

В сетевой среде (202), показанной на фиг. 2b, средство закодирования (212) включает в себя кодер (220), выполняющий закодирование видео для доставки на множество средств (214) воспроизведения, которые включают в себя декодеры (270). Однонаправленная связь может быть обеспечена для системы видеонаблюдения, системы текущего контроля с использованием веб-камеры, презентации в режиме телеконференции с использованием удаленных настольных компьютеров или для другого сценария, в котором видео кодируют и посылают из одного места в одно или несколько других мест. Хотя сетевая среда (202) на фиг. 2b включает в себя два средства (214) воспроизведения, сетевая среда (202) может включать в себя больше или меньше средств (214) воспроизведения. Обычно средство (214) воспроизведения осуществляет связь со средством (212) закодирования для определения потока видео для его приема средством (214) воспроизведения. Средство 214 воспроизведения принимает указанный поток, выполняет буферизацию полученных кодированных данных за соответствующий период и приступает к декодированию и воспроизведению.

На фиг. 3 показана примерная система (300) кодера, которая может входить в состав средства (212) закодирования. В качестве альтернативы, в средстве (212) закодирования может использоваться другая система кодера. Средство (212) закодирования также может включать в себя логический блок контроллера на стороне сервера для организации соединений с одним или несколькими средствами (214) воспроизведения. На фиг. 4 показана примерная система (400) декодера, которая может быть включена в средство (214) воспроизведения. В качестве альтернативы в средстве (214) воспроизведения может использоваться другая система декодера. Средство (214) воспроизведения также может включать в себя логический блок контроллера на стороне клиента для организации соединений со средством 212 закодирования.

III. Примерные системы кодера

На фиг. 3 представлена блок-схема примерной системы (300) кодера, вместе с которой можно реализовать некоторые описанные здесь варианты осуществления изобретения. Система (300) кодера может представлять собой средство кодирования общего назначения, способное работать в любом из множества режимов закодирования, таких как режим закодирования с малой задержкой для связи в реальном времени, режим транскодирования и режим регулярного закодирования для воспроизведения медиа из файла или потока, либо может представлять собой специализированное средство закодирования, адаптированное к одному указанному режиму закодирования. Система (300) кодера может быть реализована в виде модуля операционной системы, в виде части библиотеки приложений или в виде автономного приложения. Система (300) кодера принимает в целом последовательность исходных видеокадров (311) от источника (310) видео и создает закодированные данные в качестве выхода в канал (390). Закодированные данные, выведенные в указанный канал, могут включать в себя контент, закодированный с использованием режима внутреннего предсказания с ВС.

Источником (310) видео может быть камера, карта селектора каналов, запоминающая среда или иной источник цифрового видео. Источник (310) видео создает последовательность видеокадров с частотой кадров, например, 30 кадров в секунду Используемый здесь термин «кадр» обычно относится к исходным, кодированным или восстановленным данным изображения. Для прогрессивного видео кадром является прогрессивный видеокадр. Для чересстрочного видео в примерных вариантах осуществления чересстрочный видеокадр является построчным перед закодированием. В качестве альтернативы кодируются два комплементарных чересстрочных видеополя в качестве чересстрочного видеокадра или отдельные поля. Помимо указания на прогрессивный видеокадр термин «frame» (кадр), или «picture» (картинка), может указывать на одно непарное видеополе, комплементарную пару видеополей, плоскость видеообъекта, которая представляет видеообъект в данный момент времени, или интересующая область в более крупном изображении. Плоскость или область видеообъекта может являться частью более крупного изображения, которое включает в себя множество объектов или областей сцены.

Поступающий исходный кадр (311) запоминается в зоне (320) хранения временной памяти исходных кадров, которая включает в себя множество зон (321, 322 …, 32n) хранения буферов кадров. Буфер (321, 322, и т.д.) запоминает исходный кадр в зоне (320) хранения исходных кадров. После запоминания одного или нескольких исходных кадров (311) в буферах (321, 322, и т.д.) кадров селектор (330) кадров периодически выбирает отдельный исходный кадр из зоны 320) хранения исходных кадров. Порядок отбора кадров селектором (330) кадров для ввода в кодер (340) может отличаться от порядка, в котором эти кадры создаются источником (310) видео, например, кадр может по порядку идти впереди для облегчения обратного временного предсказания. Перед кодером (340) система (300) кодера может включать в себя процессор предварительной обработки (не показан), выполняющий предварительную обработку (например, фильтрацию) выбранного кадра (331) перед закодированием. Эта предварительная обработка может также включать в себя преобразование цветового пространства в первичные и вторичные компоненты для закодирования. Как правило, перед закодированием видео преобразуют в цветовое пространства, например, YUV, в котором значения отсчетов компоненты яркости (Y) представляют значения яркости или интенсивности, а значения отсчетов компонент цветности (UV) представляют цветоразностные значения. Значения отсчетов цветности могут быть подвергнуты субдискретизации для обеспечения более низкой частоты дискретизации цветности (например, для формата 4:2:0 YUV), либо значения отсчетов цветности могут иметь такое же разрешение, как значения отсчетов яркости (например, для формата 4:4:4 YUV). Либо видео может быть закодировано в другом формате (например, формат 4:4:4 RGB).

Кодер (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 (например, Н.261, Н.262, Н.263, Н.264) или другой формат.

Кодер (340) может разделить кадр на множество плиток одинакового размера или разных размеров. Например, кодер (340) разделить кадр вдоль строк и столбцов плиток, что вместе с границами кадра определяет горизонтальные и вертикальные границы плиток в кадре, где каждая плитка представляет собой прямоугольную область. Плитки часто используют для улучшения опций для параллельной обработки. Кадр также можно сформировать в виде одного или нескольких слайсов, где один слайс может представлять весь кадр или область кадра. Слайс можно будет декодировать независимо от других слайсов в кадре, что повышает устойчивость к ошибкам. Контент слайса или плитки дополнительно разделяется на блоки или другие наборы отсчетов в целях закодирования и декодирования.

Что касается синтаксиса согласно стандарту HEVC, кодер расщепляет контент кадра (или слайса, или плитки) на единицы кодировочного дерева. Единица кодировочного дерева (CTU) включает в себя значения отсчетов яркости, сформированных в виде блока кодировочного дерева яркости (CTB), и соответствующие значения отсчетов цветности, сформированных в виде двух CTB цветности. Размер CTU (и ее CTB) выбирается кодером и может, например, составлять 64×64, 32×32 или 16×16 значений отсчетов. Единица CTU включает в себя одну или несколько единиц кодирования. Единица кодирования (CU) содержит блок кодирования (CB) яркости и два соответствующих CB цветности. Например, CTU с одним CTB яркости размером 64×64 и двумя CTB цветности (в формате 4:4:4 YUV) размером 64×64 может быть разделена на четыре CU, где каждая CU включает в себя один CB яркости размером 32×32 и два CB цветности размером 32×32, причем каждую CU можно разделить дополнительно на более мелкие CU. Либо, как в другом примере, CTU c одним CTB яркости размером 64×64 и двумя CTB цветности размером 32×32 (в формате 4:2:0 YUV) можно разделить на четыре CU, где каждая CU включает в себя CB яркости 32×32 и два CB цветности 16×16, при этом каждую CU можно дополнительно разделить на более мелкие CU. Минимальный допустимый размер CU (например, 8×8, 16×16) может быть передан в битовом потоке в качестве сигнализации.

Обычно CU имеет режим предсказания, например, внешнего (интер) или внутреннего (интра). CU включает в себя один или несколько блоков предсказания в целях сигнализации о предсказании (например, подробности режима предсказания, значения смещения и т.д.) и/или обработки предсказания. Единица предсказания (PU) содержит блок предсказания яркости (PB) и два PB цветности. Для CU, полученной посредством внутреннего предсказания PU имеет тот же размер, что и CU, если CU не имеет минимальный размер (например, 8×8). В этом случае CU можно разделить на четыре более мелких PU (например, каждая размером 4×4, если минимальный размер CU составляет 8×8) или PU может иметь минимальный размер CU, как указано синтаксическим элементом для данной CU. Единица CU также имеет один или несколько блоков преобразования в целях избыточного кодирования/декодирования, где единица преобразования (TU) имеет блок преобразования (TB) и два TB цветности. Единица PU в CU, полученной с использованием внутреннего предсказания, может содержать одну TU (равную по размеру единице PU) или несколько TU. Используемый здесь термин «блок» может указывать на CB, PB, TB или другой набор значений отсчетов в зависимости от контекста. Кодер решает, каким образом разделить видео на единицы CTU, CU, PU, TU и т.д.

Обратимся к фиг. 3, где кодер представляет полученный путем внутреннего кодирования блок исходного кадра (331) в контексте предсказания исходя из других, ранее восстановленных значений отсчетов в кадре (331). В случае внутреннего предсказания с ВС средство оценки внутреннего предсказания оценивает смещение блока по отношению к другим, ранее восстановленным значениям отсчетов. Опорная область внутреннего предсказания представляет собой область отсчетов в кадре, которые используют для создания значений BC предсказания для блока. Что касается внутреннего пространственного предсказания для блока, то средство оценки внутреннего предсказания оценивает результат экстраполяции соседних восстановленных значений отсчетов в данном блоке. Средство оценки внутреннего предсказания выводит информацию о предсказании (например, значения блочного вектора (BV) для внутреннего предсказания с ВС и режим (направление) предсказания для внутреннего пространственного предсказания), которая подвергаются энтропийному кодированию. Средство внутреннего предсказания использует упомянутую информацию о предсказаниях для определения значений внутреннего предсказания.

Кодер (340) представляет кодированный, с использованием внешнего предсказания, блок исходного кадра (331) в контексте предсказания на основе опорных кадров. Средство оценки движения оценивает движение блока относительно одного или нескольких опорных кадров (369). При использовании множества опорных кадров это множество опорных кадров может быть взято из разных временных направлений или одного и того же временного направления. Опорная область предсказания с компенсацией движения является областью отсчетов в опорном кадре (кадрах), которые используют для создания значений предсказания с компенсацией движения для блока отсчетов текущего кадра. Средство оценки движения выводит информацию о движении, такую как информация о векторе движения, которая кодируется с использованием энтропийного кодирования. Компенсатор движения использует векторы движения для опорных кадров (369), чтобы определить значения предсказания с компенсацией движения.

Кодер определяет различия (если это имеет место) между значениями предсказания (внутреннего или внешнего) блока и соответствующими исходными значениями. Эти значения остатков предсказания дополнительно кодируют, используя частотное преобразование, квантование и энтропийное закодирование. Например, кодер (340) устанавливает значения для параметра квантования (QP) для кадра, плитки, слайса и/или другой части видео и квантует коэффициенты преобразования соответствующим образом. Энтропийный кодировщик кодера (340) выполняет сжатие квантованных значений коэффициентов преобразования, а также некоторой вспомогательной информации (например, информация о векторе движения, значения BV, значения QP, принятые решения о режиме, выбранные параметры). Типовые приемы энтропийного кодирования включают в себя экспоненциальное кодирование Голомба, арифметическое кодирование, дифференциальное кодирование, кодирование Хаффмана, кодирование длин серий, кодирование с преобразованием «переменная длина слова-переменная длина слова» (V2V), кодирование с преобразованием «переменная длина слова-фиксированная длина слова» (V2F), LZ кодирование, словарное кодирование, энтропийное кодирование с разделением интервала вероятности (PIPE) и комбинации вышеуказанных способов кодирования. Энтропийный кодировщик может использовать разные приемы кодирования для информации разного рода и может выбирать конкретный способ кодирования из множества кодовых таблиц.

Кодированные кадры (341) и информация (342) о MMCO/RPS обрабатываются эмулятором (350) обработки декодирования. Эмулятор (350) обработки декодирования реализует некоторые из функциональных возможностей декодера, например, декодирование задач для восстановления опорных кадров. Эмулятор (350) обработки декодирования использует информацию (342) о MMCO/RPS для определения того, требуется ли восстановление и запоминание данного кодированного кадра (341) для использования в качестве опорного кадра при межкадровом предсказании последующих кадров, подлежащих закодированию. Если информация (342) о MMCO/RPS указывает, что кодированный кадр (341) необходимо запомнить, то эмулятор 350 процесса декодирования моделирует процесс декодирования, который будет реализован декодером, принимающим кодированный кадр (341) и создающим соответствующий декодированный кадр (351). Действуя таким образом, при использовании кодером (340) декодированного кадра (кадров) (369), который был запомнен в зоне (360) хранения декодированных кадров, эмулятор (350) процесса декодирования также использует декодированный кадр (кадры) (369) из зоны (360) хранения как часть процесса декодирования.

Зона (360) временного хранения декодированных кадров включает в себя множество зон (361, 362, …, 36n) хранения буферов кадров. Эмулятор (350) процесса декодирования использует информацию (342) о MMCO/RPS для управления контентом зоны (360) хранения, чтобы идентифицировать буферы (361, 362, и т.д.) кадров с кадрами, которые больше не нужны кодеру (340) для использования в качестве опорных кадров. После моделирования процесса декодирования эмулятор (350) процесса декодирования запоминает вновь декодированный кадр (351) в буфере (361, 362 и т.д.) кадра, который был идентифицирован указанным образом.

Кодированные кадры (341) и информация (342) о MMCO/RPS буферизируются в зоне (370) временно кодированных данных. Кодированные данные, собранные в зоне (370) кодированных данных, содержат в качестве части синтаксиса элементарно кодированного битового видеопотока, закодированные данные для одного или нескольких кадров. Кодированные данные, собранные в зоне (370) кодированных данных, также могут включать в себя метаданные для медиа, относящиеся к кодированным видеоданным (например, в виде одного или нескольких параметров в одном или нескольких сообщений с дополнительной расширяющей информацией (SEI) или в сообщениях с информацией о годности видео (VUI)).

Агрегированные данные (371) из зоны (370) временно кодированных данных обрабатываются канальным кодером (380). Канальный кодер (380) может пакетировать агрегированные данные для передачи в виде потока медиа (например, в соответствии с форматом мультиплексирования потока медиа, таким как ISO/IEC 13818-1), и в этом случае канальный кодер (380) может добавить синтаксические элементы как часть синтаксиса потока передачи медиа. Либо канальный кодер (380) может сформировать агрегированные данные для хранения в виде файла (например, согласно формату контейнера медиа, такому как ISO/IEC 14496-12), и в этом случае канальный кодер (380) может добавить синтаксические элементы как части синтаксиса файла хранения медиа. Либо, в более общем случае, канальный кодер (380) может реализовать один или несколько протоколов мультиплексирования медиасистем или транспортных протоколов, и в этом случае канальный кодер (380) может добавить синтаксические элементы как части синтаксиса указанного протокола (протоколов). Канальный кодер (380) обеспечивает вывод в канал (390), который представляет хранилище, коммуникационное соединение или другой канал для указанного вывода.

IV.