Характеристики режима индексной карты основных цветов для кодирования и декодирования видео и изображения

Иллюстрации

Показать все

Группа изобретений относится к технологиям кодирования/декодирования изображений. Техническим результатом является повышение эффективности кодирования/декодирования изображений. Предложен кодер для кодирования видео или изображений. Кодер выполнен с возможностью кодирования данных для блока видеокадра, используя кодирование внутри видеокадра, при этом кодирование использует таблицу основных цветов и индексную карту. Таблица основных цветов назначает одно или более индексных значений одному или более соответствующим основным цветам, при этом индексная карта включает в себя по меньшей мере одно из этих одного или более индексных значений. Индексная карта дополнительно включает в себя одно или более значений исключения, которые не представляют никакой из упомянутых одного или более соответствующих основных цветов в таблице основных цветов. 4 н. и 4 з.п. ф-лы, 27 ил.

Реферат

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

[001] Инженеры используют сжатие (также называемое кодирование источника или закодирование источника) для уменьшения скорости передачи битов (битрейта) цифрового видео. Сжатие уменьшает затраты на хранение и передачу видеоинформации посредством преобразования информации в вид с меньшей скоростью передачи битов. Возвращение в состояние до сжатия (также называемое декодированием) восстанавливает вариант исходной информации из сжатого вида. «Кодек» представляет собой систему кодера/декодера.

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

[003] В режиме индексной карты основных цветов (BCIM) видеокодер кодирует значения отсчетов, используя индексные значения, которые представляют основные цвета. Каждое из индексных значений ассоциируется с разным значением (основным цветом) из числа значений отсчетов. Например, если блок размером 8×8 имеет четыре разных значения из числа 64 значений отсчетов блока, кодер назначает четыре разных индексных значения для этих четырех основных цветов. Во время закодирования значения отсчетов заменяются соответствующими индексными значениями. Кодер кодирует и сигнализирует отображение индексных значений на основные цвета (таблицу основных цветов), а также данные для размещения индексных значений, представляющих значения отсчетов (индексную карту). Декодер принимает и декодирует отображение индексных значений на основные цвета. Используя это отображение, декодер заменяет индексные значения в индексной карте основными цветами для исходных значений отсчетов.

[004] Режим BCIM может быть полезен при закодировании некоторого «искусственно» созданного содержимого видео, такого как содержимое захвата экрана. Содержимое захвата экрана обычно включает в себя повторяющиеся структуры (например, графику, текстовые знаки), которые используют несколько отличающихся значений отсчетов по сравнению с обычным видео. Это предоставляет возможности для улучшения рабочих характеристик посредством BCIM.

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

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

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

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

[008] Вышеприведенные и другие задачи, признаки и преимущества изобретения станут более очевидными из последующего подробного описания, которое выполнено с ссылкой на прилагаемые фигуры.

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

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

[010] Фиг.2a и 2b представляют собой схемы примерных сетевых окружений, в которых могут быть реализованы некоторые описанные варианты осуществления.

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

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

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

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

[015] Фиг.7 представляет собой диаграмму, иллюстрирующую режим индексной карты основных цветов для блока в видеокадре.

[016] Фиг.8 и 9 представляют собой схемы, иллюстрирующие примерные последовательности процессов во время закодирования и декодирования соответственно, когда может использоваться одинаковая структура синтаксиса кодирования коэффициентов для сигнализации элементов индексной карты или коэффициентов преобразования.

[017] Фиг.10 и 11 представляют собой блок-схемы последовательности операций, иллюстрирующие обобщенные методы закодирования и декодирования соответственно, которые используют структуру синтаксиса кодирования коэффициентов, селективно представляющую элементы индексной карты или коэффициенты преобразования.

[018] Фиг.12 представляет собой блок-схему последовательности операций примерного метода декодирования, который использует структуру синтаксиса кодирования коэффициентов, которая селективно представляет элементы индексной карты или коэффициенты преобразования.

[019] Фиг.13 представляет собой диаграмму, иллюстрирующую отображение индексных значений на упакованные индексные значения и отображение упакованных индексных значений обратно на индексные значения.

[020] Фиг.14 и 15 представляют собой блок-схемы последовательности операций, иллюстрирующие обобщенные методы отображения индексных значений для основных цветов во время закодирования и декодирования соответственно.

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

[022] Фиг.18 представляет собой диаграмму, иллюстрирующую предсказание элемента индексной карты, используя операцию исключающего ИЛИ (XOR) во время закодирования, и соответствующее восстановление элемента, используя операцию XOR во время декодирования.

[023] Фиг.19 и 20 представляют собой блок-схемы последовательности операций, иллюстрирующие обобщенные методы предсказания элементов индексной карты во время закодирования и декодирования соответственно.

[024] Фиг.21a и 21b представляют собой диаграммы, иллюстрирующие обработку значений исключения и индексных значений для режима BCIM во время закодирования и декодирования соответственно.

[025] Фиг.22 и 23 представляют собой блок-схемы последовательности операций, иллюстрирующие обобщенные методы закодирования и декодирования соответственно, используя индексные значения и значения исключения в режиме BCIM.

[026] Фиг.24 представляет собой блок-схему последовательности операций, иллюстрирующую примерный метод использования индексных значений и значений исключения в режиме BCIM.

ПОДРОБНОЕ ОПИСАНИЕ

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

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

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

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

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

[031] Фиг.1 иллюстрирует обобщенный пример подходящей вычислительной системы (100), в которой могут быть реализованы несколько из описанных нововведений. Предполагается, что вычислительная система (100) не предполагает никаких ограничений в отношение объема использования или функциональных возможностей, так как нововведения могут быть реализованы в многообразных вычислительных системах общего назначения или специального назначения.

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

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

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

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

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

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

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

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

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

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

II. Примерные сетевые окружения

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

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

[044] Инструментальное средство (210) передачи данных в реальном времени управляет закодированием посредством кодера (220). Фиг.3 изображает примерную систему (300) кодера, которая может быть включена в инструментальное средство (210) передачи данных в реальном времени. Альтернативно, инструментальное средство (210) передачи данных в реальном времени использует другую систему кодера. Инструментальное средство (210) передачи данных в реальном времени также управляет декодированием посредством декодера (270). Фиг.4 изображает примерную систему (400) декодера, которая может быть включена в инструментальное средство (210) передачи данных в реальном времени. Альтернативно, инструментальное средство (210) передачи данных в реальном времени использует другую систему декодера.

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

[046] Фиг.3 изображает примерную систему (300) кодера, которая может быть включена в инструментальное средство (212) закодирования. Альтернативно, инструментальное средство (212) закодирования использует другую систему кодера. Инструментальное средство (212) закодирования также может включать в себя логику контроллера на стороне сервера для управления соединениями с одним или несколькими инструментальными средствами (214) воспроизведения. Фиг.4 изображает примерную систему (400) декодера, которая может быть включена в инструментальное средство (214) воспроизведения. Альтернативно, инструментальное средство (214) воспроизведения использует другую систему декодера. Инструментальное средство (214) воспроизведения также может включать в себя логику контроллера на стороне клиента для управления соединениями с инструментальным средством (212) закодирования.

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

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

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

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

[050] Кодер (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) или другого формата.

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

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

[053] Как правило, 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 и т.д.

[054] Возвращаясь к фиг.3, кодер представляет блок с внутренним кодированием кадра (331) источника с точки зрения предсказания из других, раннее восстановленных значений отсчетов в кадре (331). Для внутреннего пространственного предсказания для блока, устройство оценки внутри видеокадра оценивает экстраполяцию соседних восстановленных значений отсчетов в блок. Устройство оценки внутреннего предсказания выводит информацию о предсказании (такую как режим (направление) предсказания для внутреннего пространственного предсказания), которая энтропийно кодируется. Предсказатель внутреннего предсказания применяет информацию о предсказании для определения значений внутреннего предсказания. Для режима BCIM кодер представляет блок с внутренним кодированием с индексными значениями для основных цветов из числа значений отсчетов блока, используя таблицу основных цветов для индексных значений и используя элементы индексной карты. Кодер также может представлять значения исключения в блоке режима BCIM без использования индексных значений, как описано ниже.

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

[056] В режимах не-BCIM кодер определяет разности (если они есть) между значениями предсказания блока (внутренние или внешние) и соответствующие исходные значения. Эти значения остатка предсказания дополнительно кодируются с использованием преобразования частоты, квантования и энтропийного закодирования. Например, кодер (340) устанавливает значения для параметра квантования (OP) для видеокадра, плитки, слайса и/или другого участка видео, и квантует коэффициенты преобразования соответствующим образом. В режиме BCIM кодер пропускает операции преобразования и квантования, за исключением некоторых операций квантования при обработке значений исключения.

[057] Энтропийный кодировщик кодера (340) сжимает квантованные значения коэффициентов преобразования, а также некоторую дополнительную информацию (например, информацию о векторе движения, значения QP, решения о режиме, варианты параметра). В частности, энтропийный кодировщик может сжимать данные для элементов индексной карты, используя структуру синтаксиса кодирования коэффициентов. Типовые методы энтропийного кодирования включают в себя экспоненциальное кодирование Голомба, арифметическое кодирование, дифференциальное кодирование, кодирование методом Хаффмана, кодирование длины серий, кодирование переменной длины в переменную длину (V2V), кодирование переменной длины в фиксированную длину (V2F), кодирование по алгоритму Лемпеля-Зива (LZ-кодирование), словарное кодирование, энтропийное кодирование разделения интервала вероятности (PIPE) и комбинации вышеупомянутых. Энтропийный кодировщик может использовать разные методы кодирования для разных видов информации и может выбирать из числа многочисленных кодовых таблиц в конкретном методе кодирования.

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

[059] Область (360) хранения временной памяти декод