СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ
METHOD AND APPARATUS FOR ENCODING/DECODING AN IMAGE

Область техники
[0001] Настоящее раскрытие относится к способу и устройству кодирования/декодирования изображения.
Предшествующий уровень техники
[0002] По мере обеспечения Интернетом и мобильными терминалами и развития информационных технологий и технологий связи, быстро возросло использование мультимедийных данных. Соответственно, значительно повысилась необходимость в повышении производительности и эффективности системы обработки изображений для выполнения разнообразных услуг или работ через предсказание изображения в системах всевозможных видов, но результаты исследований и разработок, которые могут отвечать этому запросу, не были достаточными.
[0003] Так, в способе и устройстве кодирования и декодирования изображения согласно традиционной технологии, требуется повысить производительность для обработки изображений, в особенности для кодирования изображения или декодирования изображения.
Раскрытие
Техническая проблема
[0004] Цель настоящего раскрытия состоит в обеспечении способа и устройства для выведения режима интра-предсказания в соответствии с цветовым компонентом.
[0005] Цель настоящего раскрытия состоит в обеспечении способа и устройства для конфигурирования опорного пиксела для интра-предсказания.
[0006] Цель настоящего раскрытия состоит в обеспечении способа и устройства кодирования/декодирования изображения для модифицирования интра-предсказания с произвольным пикселом.
Техническое решение
[0007] Способ и устройство кодирования/декодирования изображения в соответствии с настоящим раскрытием могут определять режим интра-предсказания целевого блока, генерировать блок предсказания целевого блока на основе режима интра-предсказания и модифицировать блок предсказания.
[0008] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, режим интра-предсказания целевого блока может определяться как режим в группе кандидатов режима предсказания в соответствии с информацией о состоянии целевого блока.
[0009] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, когда цветовой компонент целевого блока является компонентом яркости, может производиться обращение к группе кандидатов режима предсказания, состоящей из направленного режима и ненаправленного режима, и когда цветовой компонент целевого блока является компонентом цветности, может производиться обращение к группе кандидатов режима предсказания, в которой поддерживается по меньшей мере один из направленного режима, ненаправленного режима, цветового режима или режима копирования цвета.
[0010] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, группа кандидатов режима предсказания может классифицироваться на множество категорий с учетом максимального количества или приоритета режима предсказания, который может быть включен в каждую категорию.
[0011] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, группа кандидатов режима предсказания может классифицироваться на первую категорию, включающую в себя ненаправленный режим и направленный режим, и вторую категорию, включающую в себя режим копирования цвета.
[0012] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, может быть получена первая информация, описывающая любую одну из множества категорий, и может быть получена вторая информация, описывающая режим интра-предсказания целевого блока в категории в соответствии с первой информацией.
[0013] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, режим интра-предсказания целевого блока может определяться из описанной категории на основе первой информации и второй информации.
[0014] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, вторая информация может не получаться, когда только один режим предсказания включен в категорию в соответствии с первой информацией.
[0015] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, может быть дополнительно включено построение опорного пиксела, используемого для интра-предсказания, но опорный пиксел может принадлежать всем или части множества строк опорных пикселов, поддерживаемых в устройстве декодирования.
[0016] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, может быть дополнительно включено выполнение по меньшей мере одного из взвешенного фильтра или фильтра интерполяции для построенного опорного пиксела.
[0017] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, модифицирование блока предсказания может избирательно выполняться на основе предварительно определенной информации кодирования, и информация кодирования может включать в себя по меньшей мере одно из типа изображения, цветового компонента, информации о состоянии, режима кодирования, режима интра-предсказания, применяется ли интра-предсказание в единицах подблоков, или строки опорных пикселов.
Полезные результаты
[0018] В соответствии с настоящим раскрытием, режим интра-предсказания может быть выведен эффективным образом.
[0019] В соответствии с настоящим раскрытием, эффективность интра-предсказания может быть повышена путем избирательного использования строки опорных пикселов и предварительно определенной фильтрации.
[0020] В соответствии с настоящим раскрытием, точность интра-предсказания и производительность кодирования могут быть улучшены путем модифицирования блока предсказания.
Описание чертежей
[0021] Фиг. 1 является концептуальной диаграммой системы кодирования и декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[0022] Фиг. 2 является блок-схемой компонентов устройства кодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[0023] Фиг. 3 является блок-схемой компонентов устройства декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[0024] Фиг. 4 является примерной диаграммой, показывающей различные формы разбиения, которые могут быть получены в единице блочного разбиения настоящего раскрытия.
[0025] Фиг. 5 является примерной диаграммой, показывающей режим предсказания в интра-предсказании в соответствии с вариантом осуществления настоящего раскрытия.
[0026] Фиг. 6 является диаграммой расположения целевого блока и блока, смежного с ним, в соответствии с вариантом осуществления настоящего раскрытия.
[0027] Фиг. 7 является блок-схемой последовательности операций, показывающей способ модификации интра-предсказания в соответствии с вариантом осуществления настоящего раскрытия.
[0028] Фиг. 8 является диаграммой расположения пиксела целевого блока и смежного блока в соответствии с вариантом осуществления настоящего раскрытия.
[0029] Фиг. 9A и 9B являются примерными диаграммами способа модификации на основе множества строк опорных пикселов в соответствии с вариантом осуществления настоящего раскрытия.
[0030] Фиг. 10 является блок-схемой последовательности операций, показывающей способ модификации интра-предсказания в соответствии с вариантом осуществления настоящего раскрытия.
[0031] Фиг. 11A, 11B, 11C, 11D и 11E являются примерными диаграммами произвольного пиксела, используемого, чтобы модифицировать пиксел предсказания в соответствии с вариантом осуществления настоящего раскрытия.
[0032] Фиг. 12A, 12B, 12C, 12D, 12E и 12F являются примерными диаграммами, в которых модификация выполняется на основе произвольного пиксела в соответствии с вариантом осуществления настоящего раскрытия.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
[0033] Способ и устройство кодирования/декодирования изображения в соответствии с настоящим раскрытием могут определять режим интра-предсказания целевого блока, генерировать блок предсказания целевого блока на основе режима интра-предсказания и модифицировать блок предсказания.
[0034] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, режим интра-предсказания целевого блока может определяться как режим в группе кандидатов режима предсказания в соответствии с информацией о состоянии целевого блока.
[0035] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, когда цветовой компонент целевого блока является компонентом яркости, может производиться обращение к группе кандидатов режима предсказания, состоящей из направленного режима и ненаправленного режима, и когда цветовой компонент целевого блока является компонентом цветности, может производиться обращение к группе кандидатов режима предсказания, в которой поддерживается по меньшей мере один из направленного режима, ненаправленного режима, цветового режима или режима копирования цвета.
[0036] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, группа кандидатов режима предсказания может классифицироваться на множество категорий с учетом максимального количества или приоритета режимов предсказания, которые могут быть включены в каждую категорию.
[0037] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, группа кандидатов режима предсказания может классифицироваться на первую категорию, включающую в себя ненаправленный режим и направленный режим, и вторую категорию, включающую в себя режим копирования цвета.
[0038] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, может быть получена первая информация, описывающая любую одну из множества категорий, и может быть получена вторая информация, описывающая режим интра-предсказания целевого блока в категории в соответствии с первой информацией.
[0039] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, режим интра-предсказания целевого блока может определяться из описанной категории на основе первой информации и второй информации.
[0040] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, вторая информация может не получаться, когда только один режим предсказания включен в категорию в соответствии с первой информацией.
[0041] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, может быть дополнительно включено конфигурирование опорного пиксела, используемого для интра-предсказания, но опорный пиксел может принадлежать всем или части множества строк опорных пикселов, поддерживаемых в устройстве декодирования.
[0042] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, может быть дополнительно включено выполнение по меньшей мере одного из взвешенного фильтра или фильтра интерполяции для сконфигурированного опорного пиксела.
[0043] В способе и устройстве кодирования/декодирования изображения в соответствии с настоящим раскрытием, модифицирование блока предсказания может избирательно выполняться на основе предварительно определенной информации кодирования, и информация кодирования может включать в себя по меньшей мере одно из типа изображения, цветового компонента, информации о состоянии, режима кодирования, режима интра-предсказания, применяется ли интра-предсказание в единице подблока, или строки опорных пикселов.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ изобретения
[0044] Настоящее изобретение может изменяться и модифицироваться различным образом и может иллюстрироваться со ссылкой на различные варианты осуществления, некоторые из которых будут описаны и показаны на чертежах. Однако эти варианты осуществления не подразумевает ограничение настоящего изобретения, а должны пониматься как включающие все модификации, эквиваленты и замены, относящиеся к сущности и техническому объему настоящего изобретения. Одинаковые ссылочные позиции на чертежах обозначают одинаковые элементы.
[0045] Хотя термины, такие как "первый", "второй" и т.д. могут использоваться, чтобы описывать различные элементы, эти элементы не должны быть ограничены такими терминами. Эти термины используются только для различения одного элемента от других элементов. Например, первый элемент может называться вторым элементом, и второй элемент может называться первым элементом без отклонения от идей настоящего изобретения. Термин "и/или" включает в себя любую и все комбинации множества ассоциированных перечисленных предметов.
[0046] Должно быть понятно, что когда упоминается, что элемент "связан с" или "соединен с" другим элементом, этот элемент может быть непосредственно связан или соединен с другим элементом или промежуточными элементами. С другой стороны, когда упоминается, что элемент "непосредственно связан с" или "непосредственно соединен с" другим элементом, то не   существует никаких промежуточных элементов.
[0047] Термины, используемые в настоящем изобретении, предназначены только для описания конкретных вариантов осуществления, и не предназначены ограничивать настоящее изобретение. Как используется здесь, формы единственного числа предусматривают включение форм множественного числа, если контекст явно не указывает иное. Следует понимать, что термины "включать в себя" или "иметь", при использовании в настоящем описании, указывают на наличие упоминаемых признаков, количеств, этапов, операций, элементов и/или компонентов, но не препятствуют наличию или добавлению одного или более других признаков, количеств, этапов, операций, элементов, компонентов и/или их групп.
[0048] Если не определено иное, все термины, используемые здесь, включая технические или научные термины, означают то же самое, что обычно понимается специалистом в данной области техники, к которой относится настоящее раскрытие. Термины, которые являются обычно используемыми и определены в словаре, должны интерпретироваться как имеющие то же самое контекстное смысловое значение, как и в связанной технологии, и не должны интерпретироваться как идеальные или излишне формальные значения, если только это не определено явно в настоящем раскрытии.
[0049] Обычно, одно или несколько цветовых пространств могут быть сконфигурированы в соответствии с цветовым форматом изображения. Одна или более картинок с определенным размером или одна или более картинок с отличающимся размером могут быть сконфигурированы в соответствии с цветовым форматом. Например, в цветовой конфигурации YCbCr, могут поддерживаться цветовые форматы, такие как 4:4:4, 4:2:2, 4:2:0, монохромный (сконфигурированный только с Y) и т.д. В одном примере, для YCbCr 4:2:0, 1 компонент яркости (Y в этом примере) и 2 компонента цветности (Cb/Cr в этом примере) могут быть сконфигурированы, и в этом случае отношение конфигурации компонента цветности и компонента яркости может иметь аспектное (форматное) отношение 1:2. Например, для 4:4:4, оно может иметь одно и то же форматное отношение. При конфигурировании с одним или более цветовыми пространствами, как в примере выше, картинка может выполнять разбиение в каждое цветовое пространство.
[0050] Изображение может быть классифицировано на I, P, B и т.д. в соответствии с типом изображения (например, типом картинки, типом вырезки, типом группы мозаичных элементов, типом мозаичного элемента, типом кирпичика и т.д.); тип I изображения может означать изображение, которое самостоятельно кодируется без использования опорной картинки, тип Р изображения может означать изображение, которое кодируется с использованием опорной картинки, но позволяет осуществлять только прямое предсказание, и тип В изображения может означать изображение, которое кодируется с использованием опорной картинки и позволяет осуществлять прямое/обратное предсказание, но часть вышеуказанных типов может комбинироваться в соответствии с настройкой кодирования (комбинирование P и B), или может поддерживаться тип изображения другой конфигурации.
[0051] Различная закодированная/декодированная информация, генерируемая в настоящем раскрытии, может явно или неявно обрабатываться. В связи с этим, может быть понятно, что явная обработка генерирует закодированную/декодированную информацию в последовательности, вырезке, группе мозаичных элементов, мозаичном элементе, кирпичике, блоке, подблоке и т.д. для сохранения ее в битовом потоке и выполняет синтаксический анализ связанной информации в той же единице, что и в кодере, в декодере для восстановления ее в декодированную информацию. В этом случае, должно быть понятно, что неявная обработка обрабатывает закодированную/декодированную информацию в том же самом процессе, правиле и т.д. в кодере и декодере.
[0052] Фиг. 1 представляет собой концептуальную диаграмму системы кодирования и декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[0053] Со ссылкой на фиг. 1, устройство 105 кодирования и устройство 100 декодирования изображения могут представлять собой пользовательский терминал, такой как персональный компьютер (PC), ноутбук, персональный цифровой ассистент (PDA), портативный мультимедийный проигрыватель (PMP), портативная игровая станция (PSP), терминал беспроводной связи, смартфон или телевизор, или серверный терминал, такой как сервер приложений и сервер услуг, и могут включать в себя различные устройства, оснащенные устройством связи, таким как модем связи и т.д., для связи с различными устройствами или сетью проводной или беспроводной связи, память (120, 125) для хранения различных видов программ и данных для интер- или интра-предсказания для кодирования или декодирования изображения или процессор (110, 115) для задействования программы и управления путем ее исполнения и т.д.
[0054] Кроме того, изображение, закодированное в битовом потоке устройством 105 кодирования изображения, может передаваться на устройство 100 декодирования изображения в реальном времени или не в реальном времени через сеть проводной или беспроводной связи, такую как Интернет, сеть беспроводной связи малой дальности действия, беспроводную сеть Lan, сеть wibro или сеть мобильной радиосвязи и т.д., или через различные интерфейсы связи, такие как кабель или универсальная последовательная шина, и может декодироваться в устройстве 100 декодирования изображения и восстанавливаться в изображение и воспроизводиться. Кроме того, изображение, закодированное в битовом потоке устройством 105 кодирования изображения, может передаваться от устройства 105 кодирования изображения на устройство 100 декодирования изображения посредством компьютерно-читаемого носителя записи.
[0055] Вышеописанные устройство кодирования изображения и устройство декодирования изображения могут представлять собой отдельные устройства, но могут быть выполнены как одно устройство кодирования/декодирования изображения в соответствии с вариантом осуществления. В этом случае, некоторые компоненты устройства кодирования изображения могут быть реализованы так, чтобы включать в себя по меньшей мере ту же самую структуру или выполнять по меньшей мере ту же самую функцию, что и некоторые конфигурации устройства декодирования изображения, как по существу идентичный технический элемент.
[0056] Поэтому, в подробном описании технических элементов и их принципов функционирования, перекрывающееся объяснение соответствующих технических элементов будет опущено. Кроме того, поскольку устройство декодирования изображения соответствует вычислительному устройству, которое применяет способ кодирования изображения, выполняемый устройством кодирования изображения, для декодирования, в последующем описании в основном будет описываться устройство кодирования изображения.
[0057] Вычислительное устройство может включать в себя память, которая хранит программу или модуль программного обеспечения, воплощающий способ кодирования изображения и/или способ декодирования изображения, и процессор, который соединен с памятью, чтобы исполнять программу. В этом случае, устройство кодирования изображения может называться кодером, и устройство декодирования изображения может называться декодером, соответственно.
[0058] Фиг. 2 представляет собой блок-схему компонентов устройства кодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[0059] Со ссылкой на фиг. 2, устройство 20 кодирования изображения может включать в себя модуль (блок) 200 предсказания, модуль 205 вычитания, модуль 210 преобразования, модуль 215 квантования, модуль 220 деквантования и модуль 225 обратного преобразования, модуль 230 суммирования, модуль 235 фильтрации, буфер 240 кодированной картинки и модуль 245 энтропийного кодирования.
[0060] Модуль 200 предсказания может быть реализован с использованием модуля предсказания, модуля программного обеспечения и может генерировать блок предсказания в способе интра-предсказания или способе интер-предсказания для блока, который будет кодироваться. Модуль 200 предсказания может генерировать блок предсказания путем предсказания целевого блока, который кодируется в текущее время в изображении. Другими словами, модуль 200 предсказания может генерировать блок предсказания с предсказанным пиксельным значением каждого пиксела, сгенерированного путем предсказания пиксельного значения каждого пиксела в целевом блоке, который должен кодироваться в изображении в соответствии с интра-предсказанием или интер-предсказанием. Кроме того, модуль 200 предсказания может обеспечивать информацию кодирования модуля кодирования о режиме предсказания путем передачи информации, необходимой для генерации блока предсказания, подобной информации о режиме предсказания, таком как режим интра-предсказания или режим интер-предсказания, на модуль кодирования. В этом случае, модуль обработки, в котором выполняется предсказание, и модуль обработки, в котором определяются способ предсказания и конкретное содержимое, могут определяться в соответствии с настройкой кодирования. Например, способ предсказания, режим предсказания и тому подобное может определяться в модуле предсказания, и предсказание может выполняться в модуле преобразования.
[0061] В модуле интер-предсказания, это может разделяться на временное предсказание и пространственное предсказание на основе опорной картинки. Для временного предсказания, это может быть способ предсказания, обнаруживающий движение в картинке, которая по времени отличается от текущей картинки, и для пространственного предсказания, это может быть способ предсказания, обнаруживающий движение в текущей картинке (закодированной области, предварительно установленной области, смежной с целевым блоком), которая по времени является той же самой, что и текущая картинка. Это можно объединять и управлять списком опорных картинок или можно управлять путем разделения режима кодирования.
[0062] Дополнительно, в модуле интер-предсказания, это можно разделять на модель поступательного движения и модель непоступательного движения в соответствии со способом предсказания движения. Для модели поступательного движения, предсказание может выполняться с учетом только параллельного переноса, а для модели непоступательного движения, предсказание может выполняться с учетом движения, такого как вращение, дистанцирование, приближение/удаление и т.д., а также параллельного переноса. Когда предполагается однонаправленное предсказание, модель поступательного движения может требовать один вектор движения, а модель непоступательного движения может требовать одну или более информаций движения (например, один вектор движения+угол вращения/коэффициент масштабирования, более 2 векторов движения и т.д.; далее предполагается использовать более 2 векторов движения). Для модели непоступательного движения, каждый вектор движения может представлять собой информацию, применяемую к предварительно установленной позиции целевого блока, такой как левая-верхняя вершина, правая-верхняя вершина, левая-нижняя вершина и т.д. целевого блока, и может получать позицию области целевого блока, подлежащего предсказанию, посредством соответствующего вектора движения в единице пиксела или единице подблока (целое больше 2, такое как 4×4, 8×8). Для модуля интер-предсказания, некоторые процессы, описанные далее в соответствии с моделью движения, могут применяться совместно, и некоторые процессы могут применяться отдельно.
[0063] Модуль интер-предсказания может включать в себя модуль построения опорной картинки, модуль предсказания движения, модуль компенсации движения, модуль определения информации движения и модуль кодирования информации движения. Модуль построения опорной картинки может включать картинку, закодированную перед или после текущей картинки, в список (L0, L1) опорных картинок. Он может получать блок предсказания из опорной картинки, включенной в список опорных картинок, и она может быть включена в по меньшей мере один из списков опорных картинок, когда текущее изображение сконфигурировано с опорной картинкой в соответствии с настройкой кодирования.
[0064] В модуле интер-предсказания, модуль построения опорной картинки может включать в себя модуль интерполяции опорной картинки и может выполнять процесс интерполяции для десятичного пиксела в соответствии с точностью интерполяции. Например, 8-отводный фильтр интерполяции на основе DCT может применяться к компоненту яркости, и 4-отводный фильтр интерполяции на основе DCT может применяться к компоненту цветности.
[0065] В модуле интер-предсказания, модуль предсказания движения является процессом поиска блока с высокой корреляцией с целевым блоком, посредством опорной картинки, и может использовать различные способы, такие как алгоритм полного сопоставления блоков на основе поиска (FBMA), трехэтапный поиск (TSS) и т.д., и модуль компенсации движения является процессом получения блока предсказания посредством процесса предсказания движения.
[0066] В модуле интер-предсказания, модуль определения информации движения может выполнять процесс для выбора оптимальной информации движения целевого блока, и информация движения может кодироваться режимом кодирования информации движения, таким как режим пропуска, режим слияния и конкурентный режим. Режим может быть сконфигурирован путем комбинирования поддерживаемых режимов в соответствии с моделью движения, и режим пропуска (перенос), режим пропуска (не-перенос), режим слияния (перенос), режим слияния (не-перенос), конкурентный режим (перенос) и конкурентный режим (не-перенос) могут быть его примерами. В соответствии с настройкой кодирования, некоторые из режимов могут быть включены в группу кандидатов.
[0067] Режим кодирования информации движения может получать значение предсказания для информации движения (вектор движения, опорную картинку, направление предсказания и т.д.) целевого блока в по меньшей мере одном блоке кандидата, а когда поддерживаются два или более блока кандидата, может генерироваться информация выбора оптимального кандидата. В режиме пропуска (без остаточного сигнала) и режиме слияния (с остаточным сигналом) значение предсказания может использоваться в качестве информации движения целевого блока, а в конкурентном режиме может генерироваться информация разности между информацией движения целевого блока и значением предсказания.
[0068] Группа кандидатов для значения предсказания информации движения целевого блока может адаптивно и по-разному конфигурироваться в соответствии с режимом кодирования информации движения. Информация движения блока, пространственно смежного с целевым блоком (например, левый блок, верхний блок, левый-верхний блок, верхний-правый блок, левый-нижний блок и т.д.), может быть включена в группу кандидатов, информация движения блока, по времени смежного с целевым блоком (например, левый блок, правый блок, верхний блок, нижний блок, левый-верхний блок, правый-верхний блок, левый-нижний блок, правый-нижний блок и т.д., включая <центральный> блок в другом изображении, отвечающем или соответствующем целевому блоку), может быть включена в группу кандидатов, и смешанная информация движения пространственного кандидата и временного кандидата (например, информация, полученная усреднением, центральным значением и т.д. более 2 кандидатов через информацию движения блока, смежного по пространству, и информацию движения блока, смежного по времени. Информация движения может быть получена в единице целевого блока или в единице подблока для целевого блока) может быть включена в группу кандидатов.
[0069] Может существовать приоритет для конфигурирования группы кандидатов значения предсказания информации движения. Порядок, включенный в конфигурацию группы кандидатов значения предсказания, может определяться в соответствии с приоритетом, и группа кандидатов может быть сконфигурирована, когда достигается число групп кандидатов (определяется в соответствии с режимом кодирования информации движения) в соответствии с приоритетом. В этом случае приоритет может определяться в порядке информации движения пространственно смежного блока, информации движения смежного по времени блока и смешанной информации движения пространственного кандидата и временного кандидата, но также возможны модификации.
[0070] Например, среди пространственно смежных блоков, включение в группу кандидатов может осуществляться в порядке: левый - верхний - верхний-правый - нижний-левый - верхний-левый блок и т.д., и среди смежных по времени блоков, включение в группу кандидатов может осуществляться в порядке: нижний-правый - средний - правый - нижний блок и т.д.
[0071] Модуль 205 вычитания может генерировать остаточный блок путем вычитания блока предсказания из целевого блока. Другими словами, модуль 205 вычитания может генерировать остаточный блок, остаточный сигнал в форме блока, путем вычисления разности между пиксельным значением каждого пиксела целевого блока, подлежащего кодированию, и предсказанным пиксельным значением для каждого пиксела блока предсказания, сгенерированного в модуле предсказания. Кроме того, модуль 205 вычитания может генерировать остаточный блок в единице, отличной от блочной единицы, полученной в модуле блочного разбиения, описанном далее.
[0072] Модуль 210 преобразования может преобразовывать сигнал, принадлежащий пространственной области, в сигнал, принадлежащий частотной области, и сигнал, полученный в процессе преобразования, называется преобразованным коэффициентом. Например, блок преобразования, имеющий преобразованный коэффициент, может быть получен путем преобразования остаточного блока, имеющего остаточный сигнал, переданный от модуля вычитания, и входной сигнал определяется согласно настройке кодирования, что не ограничивается остаточным сигналом.
[0073] Модуль преобразования может преобразовывать остаточный блок с использованием способа преобразования, такого как преобразование Адамара, дискретное синусное преобразование (преобразование на основе DST), дискретное косинусное преобразование (преобразование на основе DCT) и т.д., и могут использоваться различные способы преобразования, улучшенные и модифицированные, без ограничения указанным.
[0074] По меньшей мере один из способов преобразования может поддерживаться, и по меньшей мере один детальный способ преобразования может поддерживаться в каждом способе преобразования. В этом случае, детальный способ преобразования может представлять собой способ преобразования, в котором некоторые базовые векторы конфигурируются различным образом в каждом способе преобразования.
[0075] Например, в случае DCT могут поддерживаться более 1 детальных способов преобразования от DCT-1 до DCT-8, и в случае DST могут поддерживаться более 1 детальных способов преобразования от DST-1 до DST-8. Группа кандидатов способа преобразования может быть сконфигурирована путем конфигурирования части детального способа преобразования. Например, DCT-2, DCT-8 и DST-7 могут быть сконфигурированы как группа кандидатов способа преобразования для выполнения преобразования.
[0076] Преобразование может выполняться в горизонтальном/ вертикальном направлении. Например, значение пиксела в пространственной области может преобразовываться в частотную область путем выполнения полного двумерного преобразования, одномерного преобразования в горизонтальном направлении с использованием способа преобразования DCT-2 и одномерного преобразования в вертикальном направлении с использованием способа преобразования DST-7.
[0077] Преобразование может выполняться с использованием одного фиксированного способа преобразования или адаптивного выбора способа преобразования в соответствии с настройкой кодирования. При этом в адаптивном случае, способ преобразования может выбираться с использованием явного или неявного способа. В явном случае, каждая информация выбора способа преобразования или информация выбора набора способов преобразования, применяемых в горизонтальном и вертикальном направлениях, может генерироваться в единице блока и т.д. В неявном случае, настройка кодирования может определяться в соответствии с типом (I/P/B) изображения, цветовым компонентом, размером/формой/ позицией блока, режимом интра-предсказания и т.д., и может выбираться предварительно определенный способ преобразования.
[0078] Кроме того, некоторые преобразования могут быть опущены в соответствии с настройкой кодирования. Иными словами, это означает, что одна или более горизонтальных/вертикальных единиц могут быть явно или неявно опущены.
[0079] Кроме того, модуль преобразования может передавать информацию, необходимую для генерации блока преобразования, на модуль кодирования, чтобы закодировать ее и сохранить информацию в битовом потоке и передать ее на декодер, и модуль декодирования декодера может синтаксически анализировать информацию, чтобы использовать ее в процессе обратного преобразования.
[0080] Модуль 215 квантования может квантовать входной сигнал, и в этом случае сигнал, полученный в процессе квантования, называется квантованным коэффициентом. Например, блок квантования с квантованным коэффициентом может быть получен путем квантования остаточного блока с остаточным преобразованным коэффициентом, переданным от модуля преобразования, и входной сигнал определяется в соответствии с настройкой кодирования, которая не ограничена остаточным коэффициентом преобразования.
[0081] Модуль квантования может квантовать преобразованный остаточный блок с использованием способа квантования, такого как равномерное пороговое квантование мертвой зоны, взвешенная матрица квантования и т.д., и могут использоваться различные способы квантования, улучшенные и модифицированные без ограничения указанным.
[0082] В соответствии с настройкой кодирования, процесс квантования может быть опущен. Например, процесс квантования (включая его обратный процесс) может быть опущен в соответствии с настройкой кодирования (например, параметр квантования 0, то есть, среда сжатия без потерь). В другом примере, если результат сжатия через квантование не достигается в соответствии с характеристиками изображения, то процесс квантования может быть опущен. В этом случае, область, в которой процесс квантования опущен среди блоков (M×N) квантования, может быть всей или частью областей (M/2×N/2, M×N/2, M/2×N и т.д.), и информация выбора пропуска квантования может определяться неявно или явно.
[0083] Модуль квантования может передавать информацию, необходимую для генерации блока квантования, на модуль кодирования, чтобы кодировать ее и сохранять информацию в битовом потоке и передавать ее на декодер, и модуль декодирования декодера может синтаксически анализировать переданную информацию, чтобы использовать ее в процессе деквантования.
[0084] Приведенный выше пример был описан в предположении, что остаточный блок преобразуется и квантуется посредством модуля преобразования и модуля квантования, но остаточный блок с преобразованным коэффициентом может генерироваться путем преобразования остаточного сигнала остаточного блока, и процесс квантования может не выполняться; только процесс квантования может выполняться без преобразования остаточного сигнала остаточного блока в преобразованный коэффициент; и могут не выполняться как процесс преобразования, так и процесс квантования, что может определяться согласно настройке кодирования.
[0085] Модуль 220 деквантования деквантует остаточный блок, квантованный модулем 215 квантования. Т.е. модуль 220 деквантования генерирует остаточный блок, имеющий частотный коэффициент, путем деквантования столбца квантованных частотных коэффициентов.
[0086] Модуль 225 обратного преобразования обратно преобразует остаточный блок, деквантованный модулем 220 деквантования. Иными словами, модуль 225 обратного преобразования генерирует остаточный блок, имеющий значение пиксела, путем обратного преобразования частотных коэффициентов деквантованного остаточного блока, то есть, восстановленный остаточный блок. В этом случае, модуль 225 обратного преобразования может выполнять обратное преобразование с использованием в обратном порядке способа преобразования, использованного в модуле 210 преобразования.
[0087] Сумматор 230 восстанавливает целевой блок путем суммирования блока предсказания, предсказанного в модуле 200 предсказания, и остаточного блока, восстановленного модулем 225 обратного преобразования. Восстановленный целевой блок может быть сохранен как опорная картинка (или опорный блок) в буфере 240 кодированной картинки и может использоваться как опорная картинка при кодировании следующего блока целевого блока, другого блока или другой картинки в будущем.
[0088] Модуль 235 фильтрации может включать в себя один или более процессов фильтра пост-обработки, таких как фильтр устранения блочности, адаптивное смещение выборки (SAO) и адаптивный контурный фильтр (ALF). Фильтр устранения блочности может удалять блочное искажение, которое генерируется на границе между блоками в восстановленной картинке. ALF может выполнять фильтрацию на основе значения, полученного путем сравнения восстановленного изображения после того, как блок отфильтрован фильтром устранения блочности, с исходным изображением. SAO может восстанавливать разность смещения с исходным изображением в пиксельной единице для остаточного блока, к которому применен фильтр устранения блочности. Такой фильтр пост-обработки может применяться к восстановленной картинке или блоку.
[0089] Буфер 240 кодированной картинки может хранить блок или картинку, восстановленную в модуле 235 фильтрации. Восстановленный блок или картинка, сохраненные в буфере 240 кодированной картинки, могут предоставляться на модуль 200 предсказания, который выполняет интра-предсказание или интер-предсказание.
[0090] Модуль 245 энтропийного кодирования сканирует сгенерированный столбец квантованных частотных коэффициентов в соответствии с различными способами сканирования, чтобы сгенерировать столбец квантованных коэффициентов, и кодирует и выводит его с использованием способа энтропийного кодирования и т.п. Диаграмма сканирования может быть установлена как одна из различных диаграмм, таких как зигзаг, диагональ, растр и т.д. Кроме того, могут генерироваться и выводиться в битовом потоке данные кодирования, включающие в себя информацию кодирования, переданную от каждого компонента.
[0091] Фиг. 3 представляет собой блок-схему компонентов устройства декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[0092] Со ссылкой на фиг. 3, устройство 30 декодирования изображения может быть сконфигурировано, чтобы включать в себя модуль 305 энтропийного декодирования, модуль 310 предсказания, модуль 315 деквантования, модуль 320 обратного преобразования, сумматор-вычитатель 325, фильтр 330 и буфер 335 декодированной картинки.
[0093] Кроме того, модуль 310 предсказания может включать в себя модуль интра-предсказания и модуль интер-предсказания.
[0094] Сначала, когда принимается битовый поток изображения, переданный от устройства 20 кодирования изображения, он может передаваться на модуль 305 энтропийного декодирования.
[0095] Модуль 305 энтропийного декодирования может декодировать данные декодирования, включая квантованные коэффициенты, путем декодирования битового потока и информации декодирования, передаваемой на каждый компонент.
[0096] Модуль 310 предсказания может генерировать блок предсказания на основе данных, переданных от модуля 305 энтропийного декодирования. В этом случае, на основе опорного изображения, сохраненного в буфере 335 декодированной картинки, может формироваться список опорных картинок с использованием способа конфигурации по умолчанию.
[0097] Модуль интер-предсказания может включать в себя модуль построения опорной картинки, модуль компенсации движения и модуль декодирования информации движения, и некоторые из них могут выполнять тот же самый процесс, что и кодер, а некоторые могут выполнять обратный процесс.
[0098] Модуль 315 деквантования может обратно квантовать квантованные коэффициенты преобразования, предоставленные из битового потока и декодированные модулем 305 энтропийного декодирования.
[0099] Модуль 320 обратного преобразования может генерировать остаточный блок путем применения обратного DCT, обратного целочисленного преобразования или аналогичных способов обратного преобразования к преобразованным коэффициентам.
[0100] В этом случае, модуль 315 деквантования и модуль 320 обратного преобразования могут быть воплощены различными путями, выполняя процесс, обратный процессу, выполняемому модулем 210 преобразования и модулем 215 квантования устройства 20 кодирования изображения, описанного выше. Например, могут использоваться обратное преобразование и тот же процесс, совместно используемые с модулем 210 преобразования и модулем 215 квантования, и процесс преобразования и деквантования может выполняться в обратном порядке с информацией о процессе преобразования и квантования в устройстве 20 кодирования изображения (например, размер преобразования, форма преобразования, тип квантования и т.д.).
[0101] Остаточный блок после процесса деквантования и обратного преобразования может суммироваться с блоком предсказания, выведенным модулем 310 предсказания, чтобы сгенерировать блок восстановленного изображения. Такое суммирование может выполняться модулем 325 сумматора-вычитателя.
[0102] Фильтр 330 может применять фильтр устранения блочности к блоку восстановленного изображения, чтобы удалить эффект блочности, если необходимо, и дополнительно использовать другие контурные фильтры перед и после процесса декодирования для улучшения качества изображения.
[0103] Восстановленные и отфильтрованные блоки изображения могут быть сохранены в буфере 335 декодированной картинки.
[0104] Хотя не показано на чертеже, модуль блочного разбиения может быть дополнительно включен в устройство кодирования/декодирования изображения.
[00105] Модуль блочного разбиения может производить разбиение на блоки с различными единицами и размерами. Базовая единица кодирования (или максимальная единица кодирования, единица дерева кодирования, CTU) может означать базовую (или начальную) единицу для предсказания, преобразования, квантования и т.д. в процессе кодирования изображения. В этом случае, базовая единица кодирования может конфигурироваться с одним базовым блоком кодирования яркости (или максимальным блоком кодирования, блоком дерева кодирования, CTB) и двумя базовыми блоками кодирования цветности в соответствии с цветовым форматом (в этом примере, YCbCr), и размер каждого блока может определяться в соответствии с цветовым форматом. И блок кодирования (CB) может быть получен в соответствии с процессом разбиения. Блок кодирования может пониматься как единица, которая не разбивается больше на блоки кодирования в соответствии с фиксированным пределом и может быть установлена как начальная единица для разбиения в более низкую единицу. В настоящем раскрытии, блок может пониматься как широкий термин, который включает в себя разнообразие форм, таких как треугольник, круг и т.д. без ограничения формой квадрата.
[00106] Следует понимать, что изложенное далее содержание нацелено на один цветовой компонент, но может изменяться и применяться к другому цветовому компоненту соразмерно отношению в соответствии с цветовым форматом (например, для YCbCr 4:2:0, форматное отношение компонента яркости и компонента цветности составляет 2:1). Кроме того, следует понимать, что может быть возможным блочное разбиение в зависимости от другого цветового компонента (например, в случае зависимости от результата блочного разбиения Y в Cb/Cr), но возможно независимое блочное разбиение каждого цветового компонента. Кроме того, может использоваться одна общая настройка блочного разбиения (с учетом пропорциональности отношению длин), но необходимо учитывать и понимать, что настройка разбиения отдельных блоков используется в соответствии с цветовым компонентом.
m
n
m
[00107] В модуле блочного разбиения, блок может быть описан как M×N, и максимальное значение и минимальное значение каждого блока может быть получено в диапазоне. Например, когда максимальное значение блока установлено как 256×256 и минимальное значение блока установлено как 4×4, может быть получен блок размером 2×2 (в этом примере, m и n являются целыми от 2 до 8), блок размером 2× (в этом примере, m и n являются целыми от 2 до 128) или блок размером m×n (в этом примере, m и n являются целыми от 4 до 256). В этом случае, m и n могут быть идентичными или неидентичными, и может генерироваться один или несколько диапазонов, где поддерживается блок, для максимального значения, минимального значения и т.д.
[00108] Например, может генерироваться информация о максимальном размере, минимальном размере и т.д. блока, и может генерироваться информация о максимальном размере, минимальном размере и т.д. блока в некоторых настройках разбиения. В этом случае, первое может представлять собой информацию диапазона для максимального и минимального размера, которая может генерироваться в изображении, а последнее может представлять собой информацию о максимальном и минимальном размере, которая может генерироваться в соответствии с некоторыми настройками разбиения. В этом случае, настройки разбиения могут определяться типом (I/P/B) изображения, цветовым компонентом (YCbCr и т.д.), типом блока (кодирования/предсказания/преобразования/квантования и т.д.), типом разбиения (индекс или тип), способом разбиения (QT, BT, TT и т.д. в древовидном способе, SI2, SI3, SI4 и т.д. в индексном способе) и т.д.
[00109] Кроме того, может существовать ограничение на форматное отношение (форму блока), которое может иметь блок, и может быть установлено условие граничного значения для этого. В этом случае, только блок ниже произвольного граничного значения (k) может поддерживаться, и k может определяться в соответствии с форматным отношением, таким как A/B (A является значением, большим или тем же самым, что и ширина или высота, B является оставшимся значением), и может представлять собой действительное число больше 1, такое как 1,5, 2, 3, 4 и т.д. Как в примере выше, может поддерживаться предельное условие для формы одного блока в изображении, или одно или более предельных условий могут поддерживаться в соответствии с настройкой разбиения.
[00110] Таким образом, поддерживается ли блочное разбиение, может определяться вышеупомянутым диапазоном и условием, описанной далее настройкой разбиения и т.д. Например, когда удовлетворяется условие для блока, что поддерживается кандидат (дочерний блок) в соответствии с разбиением блока (родительского блока), соответствующее разбиение может поддерживаться, в противном случае соответствующее разбиение не может поддерживаться.
[00111] Модуль блочного разбиения может быть настроен как связанный с каждым компонентом для устройства кодирования и устройства декодирования изображения, посредством которого могут определяться размер и форма блока. В этом случае, установленный блок может определяться по-разному в соответствии с компонентом, и блок предсказания для модуля предсказания, блок преобразования для модуля преобразования, блок квантования для модуля квантования и т.д. могут ему соответствовать. Но единица блока в соответствии с другим компонентом может дополнительно определяться без ограничения этим. Настоящее раскрытие главным образом описывает случай, в котором вход и выход являются прямоугольными в каждом компоненте, но вход/выход в других формах (например, прямоугольный треугольник и т.д.) могут быть возможными в некоторых компонентах.
[00112] Размер и форма исходного (или начального) блока в модуле блочного разбиения может определяться более высоким модулем. Исходный блок может разбиваться на меньший блок, и когда определены оптимальный размер и форма в соответствии с разбиением блока, этот блок может определяться как исходный блок в более низком модуле. В этом случае, более высокий модуль может быть блоком кодирования, а более низкая единица может быть блоком предсказания или блоком преобразования, но они не ограничены этим и могут модифицироваться различными способами. Как в примере выше, когда определен исходный блок в более низком модуле, процесс разбиения для нахождения оптимального размера и формы может выполняться подобно более высокому модулю.
[00113] Таким образом, модуль блочного разбиения может выполнять разбиение базового блока кодирования (или максимального блока кодирования) на по меньшей мере один блок кодирования, и блок кодирования может разбиваться на по меньшей мере один блок предсказания/блок преобразования/блок квантования. Дополнительно, блок предсказания может разбиваться на по меньшей мере один блок преобразования/блок квантования, и блок преобразования может разбиваться на по меньшей мере один блок квантования. В этом случае, некоторые блоки могут иметь зависимое (т.е. определенное более высоким модулем и более низким модулем) или независимое отношение с другим блоком. В примере, блок предсказания может быть более высоким модулем для блока преобразования или независимым от блока преобразования, и различные настройки отношений могут быть возможны в соответствии с типом блока.
[00114] В соответствии с настройкой кодирования, может определяться, комбинируются ли более высокий модуль и более низкий модуль. В этом случае, комбинация между модулями означает, что процесс кодирования в более низком модуле (например, модуле предсказания, модуле преобразования, модуле обратного преобразования и т.д.) выполняется посредством блока в более высоком модуле (размер и форма) без разбиения от более высокого модуля к более низкому модулю. Другими словами, это может означать, что процесс разбиения совместно используется во множестве модулей, и информация разбиения генерируется в одном из них (например, более высоком модуле).
[00115] В одном примере, (когда блок кодирования комбинируется с блоком предсказания и блоком преобразования), процесс предсказания, преобразования и обратного преобразования могут выполняться в блоке кодирования.
[00116] В одном примере, (когда блок кодирования комбинируется с блоком предсказания), процесс предсказания может выполняться в блоке кодирования, и процесс преобразования и обратного преобразования может выполняться в блоке преобразования, идентичном или меньшем, чем блок кодирования.
[00117] В одном примере, (когда блок кодирования комбинируется с блоком преобразования), процесс предсказания может выполняться в блоке предсказания, идентичном или меньшем, чем блок кодирования, и процесс преобразования и обратного преобразования может выполняться в блоке кодирования.
[00118] В одном примере, (когда блок предсказания комбинируется с блоком преобразования), процесс предсказания может выполняться в блоке предсказания, идентичном или меньшем, чем блок кодирования, и процесс преобразования и обратного преобразования может выполняться в блоке предсказания.
[00119] В одном примере, (когда комбинация не выполняется ни в каком блоке), процесс предсказания может выполняться в блоке предсказания, идентичном или меньшем, чем блок кодирования, и процесс преобразования и обратного преобразования может выполняться в блоке преобразования, идентичном или меньшем, чем блок кодирования.
[00120] Пример выше описывает различные случаи блока кодирования, предсказания и преобразования, но не ограничен ими.
[00121] Для комбинации между модулями, фиксированная настройка может поддерживаться в изображении, или адаптивная настройка может поддерживаться путем учета различных элементов кодирования. В этом случае, элементы кодирования могут включать в себя тип изображения, цветовой компонент, режим кодирования (интра/интер), настройку разбиения, размер/форму/положение блока, форматное отношение, связанную с предсказанием информацию (например, режим интра-предсказания, режим интер-предсказания и т.д.), связанную с преобразованием информацию (например, информацию выбора способа преобразования и т.д.), связанную с квантованием информацию (например, информацию выбора области квантования, информацию кодирования квантованного преобразованного коэффициента и т.д.) и т.д.
[00122] Как описано выше, когда найден блок с оптимальным размером и формой, для него может генерироваться информация режима (например, информация разбиение и т.д.). Информация режима может сохраняться в битовом потоке с информацией, сгенерированной в компоненте, которому принадлежит блок (например, связанная с предсказанием информация, связанная с преобразованием информация и т.д.), и передаваться на декодер, и может синтаксически анализироваться в том же самом модуле в декодере и использоваться в процессе декодирования изображения.
[00123] Далее, будет описан способ разбиения и для удобства объяснения, предполагается, что исходный блок имеет квадратную форму, но так как он может равным образом или аналогично применяться, даже когда исходный блок имеет прямоугольную форму, он не ограничен этим.
[00124] Модуль блочного разбиения может поддерживать различные виды разбиения. Например, он может поддерживать разбиение на основе дерева или разбиение на основе индекса, и другие способы могут поддерживаться. Разбиение на основе дерева может определять форму разбиения при помощи различных видов информации (например, следует ли выполнять разбиение, тип дерева, направление разбиения и т.д.), и разбиение на основе индекса может определять форму разбиения при помощи предварительно определенной индексной информации.
[00125] Фиг. 4 является примерной диаграммой, показывающей различные формы разбиения, которые могут быть получены в модуле блочного разбиения настоящего раскрытия.
[00126] В этом примере предполагается, что форму разбиения, подобную фиг. 4, получают выполнением одного разбиения (или процесса), но также можно получить множеством движений разбиения без ограничения. Кроме того, возможна дополнительная форма разбиения, не показанная на фиг. 4.
[00127] (Разбиение на основе дерева)
[00128] В разбиении на основе дерева настоящего раскрытия, могут поддерживаться квадродерево (QT), двоичное дерево (BT), троичное дерево (TT) и т.д.. Когда поддерживается способ одного дерева, это может называться разбиением с одним деревом, и когда поддерживаются способы более двух деревьев, это может называться разбиением с множеством деревьев.
[00129] QT означает способ (n), в котором блок разбивается на два соответственно (т.е., 4 разбиения) в горизонтальном и вертикальном направлении, BT означает способ (от b до g), в котором блок разбивается на два в горизонтальном или вертикальном направлении, и TT означает способ (от h до m), в котором блок разбивается на три в горизонтальном или вертикальном направлении.
[00130] В этом случае, QT может поддерживать способ (o, p) с 4 разбиениями путем ограничения направления разбиения одним из горизонтального направления и вертикального направления. Дополнительно, BT может поддерживать только способ (b, c) с однородным размером или только способ (от d до g) с неоднородным размером или может смешивать и поддерживать два способа. Дополнительно, TT может поддерживать только способ (h, j, k, m) с таким расположением, что разбиение скошено в конкретном направлении (1:1:2, 2:1:1 и т.д. слева направо или сверху вниз), или может поддерживать только способ (i, l) расположения в центре (1:2:1 и т.д.) или может смешивать и поддерживать два способа. Кроме того, также возможно поддерживать способ (q), в котором направление разбиения разбивается на четыре соответственно (т.е. 16 разделений) в горизонтальном направлении и вертикальном направлении.
[00131] И, среди способов дерева, возможно поддерживать способ (b, d, e, h, i, j, o) z-разбиения только в горизонтальном направлении разбиения или поддерживать способ (c, f, g, k, l, m, p) z-разбиения только в вертикальном направлении или смешивать и поддерживать два способа. В этом случае, z может быть целым больше 2, таким как 2, 3 и 4.
[00132] В настоящем раскрытии, описание приводится в предположении, что QT поддерживает n, BT поддерживает b и c, и TT поддерживает i и l.
[00133] В соответствии с настройкой кодирования, могут поддерживаться один или более способов разбиений дерева. Например, может поддерживаться QT, может поддерживаться QT/BT или может поддерживаться QT/BT/TT.
[00134] Пример выше представлен для случая, в котором базовым разбиением дерева является QT, а BT и TT включены в дополнительный способ разбиения в соответствии с тем, поддерживаются ли другие деревья, но могут быть возможны различные модификации. В этом случае, информация о том, поддерживаются ли другие деревья (bt_enabled_flag, tt_enabled_flag, bt_tt_enabled_flag и т.д. может иметь значение 0 или 1; где 0 - не поддерживается, и 1 - поддерживается), может неявно определяться в соответствии с настройкой кодирования или может явно определяться в единице последовательности, картинки, вырезки, группы мозаичных элементов, мозаичного элемента, кирпичика и т.д.
[00135] Информация о том, следует ли выполнять разбиение (tree_part_flag или qt_part_flag, bt_part_flag, tt_part_flag, bt_tt_part_flag; может иметь значение 0 или 1, где 0 - разбиение не выполняется, и 1 разбиение выполняется), может быть включена в информацию разбиения. Кроме того, в соответствии со способом (BT и TT) разбиения, может добавляться информация о направлении разбиения (dir_part_flag или bt_dir_part_flag, tt_dir_part_flag, bt_tt_dir_part_flag; может иметь значение 0 или 1, где 0 означает <ширина/горизонтальное>, и 1 означает <высота/ вертикальное>), которая может генерироваться, когда выполняется разбиение.
[00136] Когда поддерживается множество разбиений дерева, информация разбиения может конфигурироваться по-разному. Далее, описание приводится в предположении, что информация разбиения конфигурируется на одном уровне глубины (т.е., поддерживаемая глубина разбиения установлена больше 1, и возможно рекурсивное разбиение, но это для удобства объяснения).
[00137] В примере (1), подтвердить информацию, следует ли осуществлять разбиение. В этом случае, когда разбиение не выполняется, разбиение заканчивается.
[00138] Когда разбиение выполняется, подтвердить выбор информации о типе разбиения (например, tree_idx. Для 0 - QT, для 1 - BT и для 2 - TT). В этом случае, дополнительно подтвердить информацию о направлении разбиения в соответствии с выбранным типом разбиения и перейти к следующему этапу. (Если дополнительное разбиение возможно, так как глубина разбиения не достигла максимума, начать сначала, а если разбиение невозможно, разбиение завершается).
[00139] В примере (2), подтвердить информацию, выполняется ли разбиение некоторым способом дерева (QT), и перейти к следующему этапу. В случае, когда разбиение не выполняется, подтвердить информацию, выполняется ли разбиение некоторым способом дерева (BT). В случае, когда разбиение не выполняется, подтвердить информацию, выполняется ли разбиение некоторым способом дерева (TT). В случае, когда разбиение не выполняется, разбиение заканчивается.
[00140] Когда некоторый способ дерева (QT) выполняет разбиение, перейти к следующему этапу. Кроме того, когда некоторый способ дерева (BT) выполняет разбиение, подтвердить информацию о направлении разбиения и перейти к следующему этапу. Кроме того, когда некоторый способ разбиения дерева (TT) выполняет разбиение, проверить информацию о направлении разбиения и перейти к следующему этапу.
[00141] В примере (3), подтвердить информацию о выполнении разбиения некоторым способом дерева (QT). В случае, когда разбиение не выполняется, подтвердить информацию о том, выполняется ли разбиение некоторыми способами дерева (BT и TT). В случае, когда разбиение не выполняется, разбиение заканчивается.
[00142] Когда некоторый способ дерева (QT) выполняет разбиение, перейти к следующему этапу. Кроме того, когда некоторые способы дерева (BT и TT) выполняют разбиение, подтвердить информацию о направлении разбиения и перейти к следующему этапу.
[00143] Пример выше может быть случаем, в котором приоритет разбиения дерева существует (пример № 2 и 3) или не существует (пример № 1), но это может изменяться различным образом. Кроме того, в примере описан случай, когда разбиение на текущем этапе не связано с результатом разбиения на предыдущем этапе, но разбиение на текущем этапе также может устанавливаться в зависимости от результата разбиения на предыдущем этапе.
[00144] Например, в случае примеров № 1-3, когда разбиение некоторого способа дерева (QT) выполняется на предыдущем этапе, чтобы перейти на текущий этап, разбиение того же способа дерева (QT) может поддерживаться также на текущем этапе.
[00145] С другой стороны, когда разбиение некоторого способа дерева (QT) не выполняется на предыдущем этапе, а разбиение некоторых способов дерева (BT или TT) выполняется, чтобы перейти на текущий этап, разбиение некоторых способов дерева (BT и TT), за исключением разбиения некоторого способа дерева (QT), также может устанавливаться, чтобы поддерживаться на следующем этапе, включая текущий этап.
[00146] Вышеуказанный случай означает, что конфигурация дерева, поддерживаемая для блочного разбиения, может быть адаптивной, что означает, что вышеупомянутая конфигурация информации о разбиении также может быть настроена по-другому. (Предполагается, что пример, описанный ниже, является примером № 3.) Другими словами, в приведенном выше примере, когда разбиение некоторого способа дерева (QT) не выполняется на предыдущем этапе, процесс разбиения может выполняться на текущем этапе без учета некоторого способа дерева (QT). Кроме того, информация о разбиении по способу связанного дерева (например, информация о том, следует ли выполнять разбиение, информация о направлении разбиения и т.д. В этом примере <QT>, информация о том, следует ли выполнять разбиение), может быть удалена и настроена.
[00147] Вышеуказанный пример представляет собой случай для адаптивной конфигурации информации о разбиении в случае, когда разрешено блочное разбиение (например, размер блока находится в диапазоне между максимальным значением и минимальным значением, глубина разбиения каждого способа дерева не достигает максимальной глубины <допустимой глубины> и т.д.), и адаптивная конфигурация информации о разбиении возможна, даже если блочное разбиение ограничено (например, размер блока не находится в диапазоне между максимальным значением и минимальным значением, глубина разбиения каждого способа дерева достигает максимальной глубины и т.д.).
[00148] Как упомянуто выше, разбиение на основе дерева в настоящем раскрытии может выполняться рекурсивным способом. Например, когда флаг разбиения блока кодирования с глубиной разбиения k равен 0, кодирование блока кодирования выполняется в блоке кодирования, глубина разбиения которого равна k, а когда флаг разбиения блока кодирования с глубиной разбиения k равен 1, кодирование блока кодирования выполняется в N подблоках кодирования, глубина разбиения которых равна k+1, согласно способу разбиения (в этом случае N является целым числом больше 2, например 2, 3, 4).
[00149] Подблок кодирования может быть установлен как блок кодирования (k+1) и разбит на подблок кодирования (k+2) в вышеупомянутом процессе, и такой способ иерархического разбиения может быть определен в соответствии с настройкой разбиения, такой как диапазон разбиения, допустимая глубина разбиения и т.д.
[00150] В этом случае, структура битового потока для представления информации о разбиении может быть выбрана из одного или нескольких способов сканирования. Например, битовый поток для информации о разбиении может быть сконфигурирован на основе порядка глубины разбиения, или битовый поток для информации о разбиении может быть сконфигурирован на основе того, следует ли выполнять разбиение.
[00151] Например, если способ основан на порядке глубины разбиения, то это способ получения информации о разбиении на глубине следующего уровня после получения информации о разбиении на глубине текущего уровня на основе первого блока, а если он основан на том, следует ли выполнять разбиение, то это означает способ получения предпочтительно дополнительной информации о разбиении в блоке, разбитом на основе первого блока, и может рассматриваться другой дополнительный способ сканирования.
[00152] Размер максимального блока или минимального блока может иметь общую настройку независимо от типа дерева (или всех деревьев) или может иметь отдельную настройку в соответствии с каждым деревом или может иметь настройку, общую для более чем двух деревьев. В этом случае, размер максимального блока может быть установлен идентичным или меньшим, чем максимальный блок кодирования. Если размер максимального блока в соответствии с предварительно определенным первым деревом не идентичен максимальному блоку кодирования, разбиение выполняется неявно с использованием предварительно определенного способа второго дерева, пока не будет достигнут максимальный размер блока первого дерева.
[00153] Общая глубина разбиения может поддерживаться независимо от типа дерева, или отдельная глубина разбиения может поддерживаться в соответствии с каждым деревом, или может поддерживаться глубина разбиения, общая для более чем двух деревьев. В качестве альтернативы, глубина разбиения может поддерживаться для некоторых деревьев, и глубина разбиения может не поддерживаться для некоторых деревьев.
[00154] Может поддерживаться явный синтаксический элемент для информации настройки, и некоторая информация настройки может быть определена неявно.
[00155] (Основанное на индексе разбиение)
[00156] В основанном на индексе разбиении настоящего раскрытия могут поддерживаться способ CSI (индекс постоянного разбиения), способ VSI (индекс переменного разбиения) и т.д.
[00157] Способ CSI может быть способом, в котором k подблоков получают разбиением в предварительно определенном направлении, и k может быть целым числом больше 2, например 2, 3, 4. Более подробно, это может быть способ разбиения для конфигурации, в которой размер и форма подблока определены на основе значения k независимо от размера и формы блока. В этом случае, для предварительно определенного направления, одно или два или более направлений среди горизонтального направления, вертикального направления и диагонального направления (направление слева-сверху -> направо-вниз или направление слева-снизу -> направо-вверх и т.д.) можно комбинировать.
[00158] Основанный на индексе способ разбиения CSI настоящего раскрытия может включать кандидата, который разбит на z в одном направлении, горизонтальном или вертикальном. В этом случае z может быть целым числом больше 2, например 2, 3, 4, и одна из ширины или высоты каждого подблока может быть той же самой, а другая может быть той же или различной. Форматное отношение подблока может быть A1:A2:…:AZ и от A1 до AZ может быть целым числом больше 1, например 1, 2, 3.
[00159] Кроме того, может быть включен кандидат, который разбит на x и y соответственно в горизонтальном и вертикальном направлениях. В этом случае x и y могут быть целым числом больше 1, таким как 1, 2, 3, 4, но когда x и y равны 1 одновременно (поскольку a уже существует), это может быть ограничено. На фиг. 4 показан случай, в котором отношение ширины или высоты каждого подблока одинаково, но может быть включен кандидат, включающий другой случай.
[00160] Кроме того, может быть включен кандидат, который разбит на w в одном направлении из некоторого диагонального направления (направление слева-сверху -> направо-вниз) или некоторого диагонального направления (направление слева-снизу -> направо-вверх), и w может быть целым числом больше 2, например 2, 3.
[00161] Со ссылкой на фиг. 4, можно классифицировать на симметричную форму разбиения (b) и асимметричную форму разбиения (d, e) в соответствии с отношением длин каждого подблока, и можно классифицировать на форму разбиения (k, m), скошенную в определенном направлении, и форму разбиения (k), расположенную в центре. Форма разбиения может быть определена различными элементами кодирования, включая форму подблока и т.д., а также отношение длин подблока и поддерживаемая форма разбиения могут быть неявно или явно определены в соответствии с настройкой кодирования. Соответственно, группа кандидатов в основанном на индексе способе разбиения может быть определена на основе поддерживаемой формы разбиения.
[00162] С другой стороны, способ VSI может быть способом, в котором более одного подблока получают путем разбиения в предварительно определенном направлении, поскольку ширина (w) или высота (h) подблока является фиксированной, и w и h могут быть целым числом больше 1, например 1, 2, 4, 8 и т.д. Подробно, это может быть способ разбиения для конфигурации, в котором количество подблоков определяется на основе размера и формы блока и значения w или n.
[00163] Основанный на индексе способ разбиения VSI согласно настоящему раскрытию может включать кандидата разбиения путем фиксации одной из ширины или высоты подблока. В качестве альтернативы, он может включать кандидата разбиения путем фиксации ширины и высоты подблока. Поскольку ширина или высота подблока фиксированы, может разрешаться, но без ограничения, равномерное разбиение в горизонтальном или вертикальном направлении.
[00164] Когда размер блока перед разбиением составляет M×N, и ширина подблока фиксирована (w), или высота фиксирована (h), или ширина и высота фиксированы (w, h), количество получаемых подблоков может быть (M*N)/w, (M*N)/h, (M*N)/w/h, соответственно.
[00165] В соответствии с настройкой кодирования, может поддерживаться только способ CSI, может поддерживаться только способ VSI, или могут поддерживаться оба способа, и информация о поддерживаемом способе может быть определена неявно или явно.
[00166] Настоящее раскрытие описывается в предположении, что поддерживается способ CSI.
[00167] В соответствии с настройкой кодирования, группа кандидатов может конфигурироваться путем включения двух или более кандидатов среди индексных разбиений.
[00168] Например, может быть сконфигурирована группа кандидатов, такая как {a, b, c}, {a, b, c, n}, {a до g, n}, что может соответствовать случаю, когда форма блока, которая предсказывается, чтобы формироваться по существу на основе общих статистических характеристик, такая как форма блока, которая разбивается на два (2) в горизонтальном или вертикальном направлении или разбивается на два (2) в горизонтальном или вертикальном направлении, соответственно, сконфигурирована как группа кандидатов.
[00169] В качестве альтернативы, может быть сконфигурирована группа кандидатов, такая как {a, b}, {a, o}, {a, b, o} или {a, c}, {a, p}, {a, c, p}, которая включает кандидата, который разбит на два (2) и четыре (4) соответственно в горизонтальном и вертикальном направлениях. Это может соответствовать случаю, когда форма блока, которая предсказывается, чтобы разбиваться по существу в конкретном направлении, сконфигурирована как группа кандидатов.
[00170] В качестве альтернативы, может быть сконфигурирована группа кандидатов, такая как {a, o, p} или {a, n, q}, что может соответствовать случаю, когда форма блока, которая предсказывается, чтобы разбиваться по существу на меньший размер, чем блок перед разбиением, сконфигурирована как группа кандидатов.
[00171] В качестве альтернативы, может быть сконфигурирована группа кандидатов, такая как {a, r, s}, что может соответствовать случаю, когда неквадратная форма разбиения сконфигурирована как группа кандидатов в соответствии с выводом, что был получен оптимальный результат разбиения, который можно получить в прямоугольной форме другим способом (способом дерева) в блоке перед разбиением.
[00172] В вышеописанном примере, возможны различные конфигурации группы кандидатов, и более одной конфигурации группы кандидатов может поддерживаться с учетом разнообразия элементов кодирования.
[00173] Когда конфигурация группы кандидатов выполнена, возможны различные конфигурации информации о разбиении.
[00174] Например, информация выбора индекса может генерироваться в группе кандидатов, которая сконфигурирована путем включения не-разбитого кандидата (а) и разбитого кандидата (от b до s).
[00175] В качестве альтернативы, может генерироваться информация, показывающая, следует ли выполнять разбиение (является ли а формой разбиения или нет), и информация выбора индекса может генерироваться в группе кандидатов, которая сконфигурирована с кандидатом (от b до s), который разбивается при выполнении разбиения (если это не а).
[00176] Возможна различная конфигурация информации о разбиении, за исключением приведенного выше описания и за исключением информации, показывающей, следует ли выполнять разбиение, двоичный бит может быть назначен индексу каждого кандидата в группе кандидатов с помощью различных способов, таких как бинаризация фиксированной длины, бинаризация переменной длины и т.д. Когда количество групп кандидатов равно 2, 1 бит может быть назначен для информации выбора индекса, а когда количество групп кандидатов больше 3, 1 бит или более могут быть назначены информации выбора индекса.
[00177] В отличие от способа разбиения на основе дерева, способ разбиения на основе индекса может быть способом избирательного конфигурирования формы разбиения, которая предсказывается как в значительной степени генерируемая в группе кандидатов.
[00178] И, поскольку количество битов для отображения индексной информации может увеличиваться в соответствии с количеством поддерживаемых групп кандидатов, это может быть способ, подходящий для моно-иерархического разбиения (например, глубина разбиения ограничена до 0), а не иерархического разбиения на основе дерева (рекурсивное разбиение). Другими словами, это может быть способ, который поддерживает одно движение разбиения и который не может дополнительно выполнять разбиение подблока, полученного разбиением на основе индекса.
[00179] В этом случае, это может означать, что дополнительное разбиение в меньший блок того же типа невозможно (например, блок кодирования, полученный способом индексного разбиения, не может быть дополнительно разбит в блок кодирования), но дополнительное разбиение в блок другого типа также может быть установлено как невозможное (например, невозможно разбиение из блока кодирования не только в блок кодирования, но и в блок предсказания). Конечно, это не ограничивается приведенным выше примером, и возможны другие модификации.
[00180] Далее будет описан случай, в котором настройка блочного разбиения определяется на основе типа блока среди элементов кодирования.
[00181] Во-первых, блок кодирования может быть получен в процессе разбиения. В этом случае, для процесса разбиения может использоваться способ разбиения на основе дерева, и результат формы разбиения, такой как a(без разбиения), n(QT), b, c(BT), i, l(TT) и т.д. на фиг. 4, может быть получен в соответствии с типом дерева. В соответствии с настройкой кодирования, каждый тип дерева может комбинироваться по-разному, например, QT/QT+BT/QT+BT+TT и т.д.
[00182] В приведенном ниже примере показан процесс, в котором блок предсказания и блок преобразования окончательно разбиты на основе блока кодирования, полученного в процессе, и предполагается случай, в котором процесс предсказания, преобразования и обратного преобразования выполняется на основе каждого размера разбиения.
[00183] В примере (1), процесс предсказания может выполняться, когда блок предсказания установлен таким же, как размер блока кодирования, и процесс преобразования и обратного преобразования может выполняться, когда блок преобразования установлен таким же, как размер блока кодирования (или блока предсказания). Поскольку блок предсказания и блок преобразования установлены на основе блока кодирования, не имеется информации о разбиении, которая генерируется отдельно.
[00184] В примере (2), процесс предсказания может выполняться, когда блок предсказания установлен таким же, как размер блока кодирования. Для блока преобразования, блок преобразования может быть получен в процессе разбиения на основе блока кодирования (или блока предсказания), и процесс преобразования и обратного преобразования может выполняться на основе полученного размера.
[00185] В этом случае, способ разбиения на основе дерева может использоваться для процесса разбиения, и результат формы разбиения, такой как a(без разбиения), b, c(BT), i, l(TT), n(QT) и т.д. на фиг. 4, может быть получен в соответствии с типом дерева. В соответствии с настройкой кодирования, каждый тип дерева может комбинироваться по-разному, например, QT/BT/QT+BT/QT+BT+TT и т.д.
[00186] В этом случае, способ разбиения на основе индекса может использоваться для процесса разбиения, и результат формы разбиения, такой как a(без разбиения), b, c, d и т.д. на фиг. 4, может быть получен в соответствии с типом индекса. В соответствии с настройкой кодирования, возможны различные конфигурации групп кандидатов, такие как {a, b, c}, {a, b, c, d} и т.д.
[00187] В примере (3), для блока предсказания, блок предсказания может быть получен в процессе разбиения на основе блока кодирования, и процесс предсказания может выполняться на основе полученного размера. Блок преобразования может быть установлен таким же, как размер блока кодирования, для выполнения процесса преобразования и обратного преобразования. Этот пример может соответствовать случаю, когда блок предсказания и блок преобразования имеют взаимно независимое отношение.
[00188] В этом случае, способ разбиения на основе индекса может использоваться в процессе разбиения, и результат формы разбиения, такой как a(без разбиения), от b до g, n, r, s и т.д. на фиг. 4, может быть получен в соответствии с типом индекса. В соответствии с настройкой кодирования, могут быть возможны различные конфигурации групп кандидатов, такие как {a, b, c, n}, {a до g, n}, {a, r, s} и т.д.
[00189] В примере (4), для блока предсказания, блок предсказания может быть получен в процессе разбиения на основе блока кодирования, и процесс предсказания может выполняться на основе полученного размера. Блок преобразования может быть установлен таким же, как размер блока предсказания, для выполнения процесса преобразования и обратного преобразования. Этот пример может соответствовать случаю, когда блок преобразования установлен таким же, как размер полученного блока предсказания, или наоборот (например, блок предсказания установлен таким же, как размер блока преобразования).
[00190] В этом случае, в процессе разбиения можно использовать способ разбиения на основе дерева, и форма разбиения, такая как a(без разбиения), b, c(BT), n(QT) и т.д. на фиг. 4, может генерироваться в соответствии с типом дерева. В соответствии с настройкой кодирования, каждый тип дерева можно комбинировать по-разному, например QT/BT/QT+BT и т.д.
[00191] В этом случае, способ разбиения на основе индекса может использоваться в процессе разбиения, и форма разбиения, такая как a(без разбиения), b, c, n, o, p и т.д. на фиг. 4, может генерироваться в соответствии с типом индекса. В соответствии с настройкой кодирования, возможны различные конфигурации групп кандидатов, такие как {a, b}, {a, c}, {a, n}, {a, o}, {a, p}, {a, b, c}, {a, o, p}, {a, b, c, n}, {a, b, c, n, p} и т.д. Кроме того, группа кандидатов может конфигурироваться только способом VSI или комбинацией способа VSI со способом CSI среди способов разбиения на основе индексов.
[00192] В примере (5), для блока предсказания, блок предсказания может быть получен в процессе разбиения на основе блока кодирования, и процесс предсказания может быть выполнен на основе полученного размера. Кроме того, для блока преобразования, блок предсказания может быть получен в процессе разбиения на основе блока кодирования, и процесс преобразования и обратного преобразования может выполняться на основе полученного размера. Этот пример может соответствовать случаю, когда блок предсказания и блок преобразования разбиваются соответственно на основе блока кодирования.
[00193] В этом случае, способ разбиения на основе дерева и способ разбиения на основе индекса могут использоваться в процессе разбиения, и группа кандидатов может конфигурироваться так же или аналогично примеру № 4.
[00194] Хотя приведенный выше пример описывает некоторые случаи, которые могут генерироваться в соответствии с тем, является ли процесс разбиения для каждого типа блока совместно используемым, и т.д., он не ограничивается этим, и возможны примеры различных модификаций. Кроме того, настройка блочного разбиения может быть определена с учетом различных элементов кодирования, а также типа блока.
[00195] В этом случае, элемент кодирования может включать в себя тип изображения (I/P/B), цветовой компонент (YCbCr), размер/форму/положение блока, форматное отношение блока, тип блока (блок кодирования, блок предсказания, блок преобразования, блок квантования и т.д.), состояние разбиения, режим кодирования (интра/интер), информацию, относящуюся к предсказанию (режим интра-предсказания, режим интер-предсказания и т.д.), информацию, относящуюся к преобразованию (информацию о выборе способа преобразования и т.д.), информацию, относящуюся к квантованию (информацию о выборе области квантования, информацию о кодировании квантованных преобразованных коэффициентов) и т.д.
[00196] Фиг. 5 является примерной диаграммой, показывающей режим предсказания в интра-предсказании в соответствии с вариантом осуществления настоящего раскрытия.
[00197] Со ссылкой на фиг. 5, 95 режимов предсказания могут поддерживаться для интра-предсказания, и среди них 93 режима предсказания являются направленным режимом, и 2 режима предсказания являются ненаправленным режимом (DC, планарным). В этом случае, направленный режим может быть классифицирован посредством наклона (например, dy/dx) или угловой информации в градусах).
[00198] Ненаправленный режим может быть способом выполнения предсказания с помощью способа, такого как усреднение, интерполяция и т.д. опорного пиксела, смежного с блоком, и направленный режим может быть способом выполнения предсказания с помощью способа, такого как экстраполяция, интерполяция и т.д. опорного пиксела, смежного с блоком.
[00199] Направленный режим может иметь вертикальное (сверху -> вниз/снизу -> вверх), горизонтальное (слева -> направо/справа -> налево), диагональное A (слева-вверху -> направо-вниз/справа-внизу -> налево-вверх), диагональное B (справа-вверху -> налево-вниз/слева-внизу -> направо-вверх) направление и т.д.
[00200] В общем случае, когда кодирование выполняется с помощью растрового сканирования и т.д., может иметься блок, смежный слева, сверху, слева-сверху, справа-сверху, слева-снизу, и ненаправленной режим принимает его в качестве опорного пиксела или начальной точки или для предсказания, или может поддерживаться режим предсказания в вертикальном (сверху -> вниз), горизонтальном (слева -> направо), диагональном A (слева-вверху -> направо-вниз/справа-внизу -> налево-вверх), диагональном B (справа-вверху -> налево-вниз/слева-внизу -> направо-вверх) направлении. Когда поддерживается другое сканирование, кроме растрового, направленный режим может быть определен иначе.
[00201] Например, когда левый блок доступен, а правый блок недоступен, горизонтальный режим может выполнять предсказание путем экстраполяции в направлении (справа -> налево). В качестве альтернативы, когда доступны как левый блок, так и правый блок, предсказание может выполняться экстраполяцией в предварительно определенном направлении (слева -> направо или справа -> налево), или предсказание может выполняться путем интерполяции обоих блоков. В настоящем раскрытии, кодирование выполняется согласно растровому или z-порядку сканирования, и оно описывается в предположении, что опорный пиксел расположен в направлении налево, вверх, налево-вверх, направо-вверх, налево-вниз.
[00202] Кроме того, восстановленный блок другого цветового пространства, закодированный с использованием корреляции между цветовыми пространствами, может использоваться для предсказания целевого блока, и может быть включен поддерживающий его режим предсказания. Например, для компонента цветности, блок предсказания целевого блока может генерироваться с использованием восстановленного блока компонента яркости, соответствующего целевому блоку. Другими словами, блок предсказания может генерироваться на основе восстановленного блока с учетом корреляции между цветовыми пространствами и может быть включен в качестве режима интра-предсказания для компонента цветности.
[00203] Компонент цветности может иметь ту же группу кандидатов, что и группа кандидатов режима предсказания компонента яркости, или некоторые режимы среди групп кандидатов режима предсказания компонента яркости и дополнительный режим предсказания компонента цветности (режим цветового копирования, цветовой режим) могут быть включены в группу кандидатов режима предсказания. В этом случае, для режима цветового копирования, это может быть режим предсказания, связанный со способом получения данных для генерации блока предсказания из области, расположенной в другом цветовом пространстве, и для цветового режима, это может быть режим предсказания, связанный со способом получения режима предсказания из области, расположенной в другом цветовом пространстве. Для режима цветового копирования и цветового режима, могут поддерживаться m и n режимов (m, n - целые числа, например 0, 1, 2, 3 или более), соответственно.
[00204] Когда поддерживается 1 режим цветового копирования, способ получения предварительно определенных данных для генерации блока предсказания может быть определен заранее, и когда поддерживаются два или более режимов цветового копирования, способ получения данных для генерации блока предсказания может классифицироваться (например, позиция, к которой обращаются для получения корреляции и т.д. <1> слева, <2> сверху, <3> слева+верхняя область и т.д.) и поддерживаться.
[00205] Когда поддерживается 1 цветовой режим, предварительно определенная позиция для получения режима предсказания может быть определена заранее, и когда поддерживаются два или более цветовых режима, множество позиций (например, <1> в центре, <2> слева-сверху, < 3> справа-сверху, <4> слева-снизу, <5> справа-снизу и т.д. для соответствующего блока) для получения режима предсказания может поддерживаться.
[00206] Все или часть режимов предсказания, описанных в примере выше, могут быть включены в группу кандидатов режима предсказания компонента яркости или компонента цветности, и другие дополнительные режимы могут быть включены в группу кандидатов режима предсказания.
[00207] Режим предсказания может подразумевать всех кандидатов для поддерживаемого режима интра-предсказания, и группа кандидатов режима предсказания может быть сконфигурирована со всеми или частью из них. В этом случае группа кандидатов режима предсказания может быть сконфигурирована в соответствии с размером, формой (форматным отношением) и т.д. блока.
[00208] Например, количество групп кандидатов режима предсказания может быть определено в соответствии с размером блока. В этом случае, размер блока может быть классифицирован в один из более чем двух диапазонов, разделенных на основе одного или более предварительно определенных пороговых размеров (A×B, C×D и т.д.), и может быть определен как один из 11, 35, 67 и т.д., и может быть определено множество количеств групп кандидатов в соответствии с классифицированным диапазоном или тем, поддерживается ли режим цветового копирования, цветовой режим и т.д. и количество может быть определено. В этом случае пороговый размер может быть показан как ширина (W), высота (H), W×H и т.д., и W и H могут быть целыми числами больше 2, такими как 4, 8, 16, 32, 64 и т.д.
[00209] В качестве альтернативы, согласно форме блока (или форматному отношению блока), может быть определена конфигурация группы кандидатов режима предсказания. В этом случае, форматное отношение блока может быть классифицировано как один из двух или более диапазонов, разделенных на основе одного или более предварительно определенных пороговых значений, и в соответствии с классифицированным диапазоном может быть определена конфигурация группы кандидатов. В этом случае пороговое значение может отображаться как W/H (или H/W) и т.д. и может иметь целочисленное значение больше 1, например 1, 2, 4, 8, 16 и т.д. или десятичное значение между 0 и 1, например, 1, 1/2, 1/4, 1/8, 1/16 и т.д.
[00210] Интра-предсказание настоящего раскрытия предполагает случай, в котором 95 режимов предсказания, как на фиг. 5, может поддерживаться для направленного и ненаправленного режима, и может поддерживаться цветовой режим и режим цветового копирования. Кроме того, предполагается, что для группы кандидатов режима предсказания компонента яркости поддерживаются 67 направленных режимов и ненаправленных режимов, а для группы кандидатов режима предсказания компонента цветности поддерживаются всего 8, 4 направленных и ненаправленных режима, 1 цветовой режим и 3 режима цветового копирования, но без ограничения указанным. Предварительно определенный стандарт для конфигурации может присутствовать для выбора режима, включенного в группу кандидатов режима предсказания, за исключением предположения.
[00211] Далее показан пример конфигурации группы кандидатов режима предсказания в соответствии с форматным отношением блока.
[00212] Таблица 1
Отношение
Режим предсказания(вкл.)
Режим предсказания (искл.)
16
67 ~ 80
2 ~ 15
8
67 ~ 78
2 ~ 13
4
67 ~ 76
2 ~ 11
2
67 ~ 72
2 ~ 7
1
-
-
1/2
-6 ~ -1
61 ~ 66
1/4
-10 ~ -1
57 ~ 66
1/8
-12 ~ -1
55 ~ 66
1/16
-14 ~ -1
53 ~ 66
[00213] Таблица установлена на основе случая, в котором режим предсказания № 0 и 1 и режим предсказания № 2-66 включены в группу кандидатов режима предсказания, когда она имеет квадратную форму блока. С режимом предсказания, добавленным или исключенным из группы кандидатов режима предсказания (исключая ненаправленный режим) квадратного блока, когда он имеет прямоугольную форму блока, возможна конфигурация кандидата, показанная в таблице, которая может быть примером, установленным в предположении, что с точки зрения точности предсказания целесообразно более широко сконфигурировать режим предсказания в более длинном блоке, чем в более коротком, но возможно и наоборот.
[00214] Опорный пиксел, используемый для интра-предсказания, может быть сконфигурирован в модуле построения опорного пиксела. В этом случае опорным пикселом можно манипулировать во временной памяти (например, в массиве; первом, втором массиве и т.д.), он может генерироваться и удаляться в каждом процессе интра-предсказания, и размер временной памяти может определяться согласно конфигурации опорного пиксела.
[00215] Это описано в предположении, что левый, верхний, левый верхний, правый верхний и левый нижний блоки используются для интра-предсказания на основе целевого блока, но не ограничивается этим, и группа кандидатов блока другой конфигурации может использоваться для интра-предсказания.
[00216] Например, группа кандидатов соседнего блока для опорного пиксела может быть примером случая, в котором следует растровое или Z-сканирование, и в соответствии с поддерживаемым порядком сканирования некоторые из групп кандидатов могут удаляться или конфигурироваться путем включения другой группы кандидатов блока (например, дополнительная конфигурация с правым, нижним, правым нижним блоком и т.д.)
[00217] С другой стороны, пиксел, смежный с целевым блоком, может быть классифицирован по меньшей мере в один слой опорных пикселов, и он может быть классифицирован в ref_0, пиксел, наиболее близкий к целевому блоку {пикселы, для которых разность пиксельных значений с граничным пикселом целевого блока равна 1. p(-1, -1) ~ p(2m-1, -1), p(-1, 0) ~ p(-1, 2n-1)}, ref_1, следующий соседний пиксел {разность пиксельных значений с граничным пикселом целевого блока составляет 2. p(-2, -2) ~ p(2m, -2), p(-2, -1) ~ p(-2, 2n)}, ref_2, следующий соседний пиксел {разность пиксельных значений с граничным пикселом целевого блока составляет 3. p(-3, -3) ~ p(2m+1, -3), p(-3, -2) ~ p(-3, 2n+1)} и т.д. Другими словами, опорный пиксел может быть классифицирован во множество слоев опорных пикселов в соответствии с пиксельным расстоянием, смежным с граничным пикселом целевого блока.
[00218] Поддерживаемых здесь строк опорных пикселов может быть больше N, и N может быть целым числом, например 1, 2, 3, 4 или более. В этом случае, они обычно включаются в группу кандидатов строки опорных пикселов последовательно от самой ближней строки опорных пикселов до целевого блока, но без ограничения этим. Например, если N равно 3, группа кандидатов может быть последовательно сконфигурирована как <ref_0, ref_1, ref_2>, или группа кандидатов также может быть сконфигурирована путем исключения строки опорных пикселов, которая не является последовательной, как <ref_0, ref_1, ref_3>, <ref_0, ref_2, ref_3>, <ref_1, ref_2, ref_3> или самой близкий.
[00219] Предсказание может выполняться с использованием всех строк опорных пикселов в группе кандидатов или с использованием некоторых строк опорных пикселов (более одной).
[00220] Например, согласно настройке кодирования, одна из множества строк опорных пикселов может быть выбрана для выполнения интра-предсказания с использованием соответствующей строки опорных пикселов. Альтернативно, две или более из множества строк опорных пикселов могут быть выбраны для выполнения интра-предсказания с использованием соответствующей строки опорных пикселов (например, применяя средневзвешенное значение и т.д. к данным каждой строки опорных пикселов).
[00221] В этом случае, выбор строки опорных пикселов может быть определен неявно или явно. Например, для неявного случая, это означает, что он определяется в соответствии с настройкой кодирования, определенной более чем одной или двумя комбинациями среди таких элементов, как тип изображения, цветовой компонент, размер/форма/положение блока и т.д. Кроме того, для явного случая, это означает, что информация о выборе строки опорных пикселов может генерироваться в единице блока и т.д.
[00222] Настоящее раскрытие в основном описывает случай, в котором интра-предсказание выполняется с использованием самой близкой строки опорных пикселов. Но строка опорных пикселов, к которой обращаются для предсказания, может рассматриваться как один из основных элементов кодирования в настоящем раскрытии. Другими словами, настройка интра-предсказания может быть определена независимо от выбранной строки опорных пикселов, но для нее может быть определена настройка интра-предсказания.
[00223] Модуль построения опорного пиксела интра-предсказания в настоящем раскрытии может включать в себя модуль генерации опорного пиксела, модуль интерполяции опорного пиксела, модуль фильтрации опорного пиксела и т.д., и может быть сконфигурирован путем включения всех или части из конфигураций.
[00224] В модуле построения опорного пиксела, доступный опорный пиксел и недоступный опорный пиксел могут классифицироваться путем подтверждения доступности опорного пиксела. В этом случае, опорный пиксел считается недоступным, когда удовлетворяется по меньшей мере одно из следующих условий.
[00225] Например, он может быть расценен как недоступный, когда удовлетворяется по меньшей мере один из случая, в котором он расположен за пределами границы картинки, случая, в котором он не принадлежит той же единице разбиения, что и целевой блок (например, такой единице, как вырезка, мозаичный элемент и т.д., которые не могут ссылаться друг на друга. Но даже когда такие единицы, как вырезка, мозаичный элемент и т.д., могут ссылаться друг на друга, они исключаются, хотя они не являются той же самой единицей разбиения), и случая, в котором кодирование не завершено. Другими словами, он может считаться доступным, когда любое из этих условий не удовлетворяется.
[00226] Кроме того, использование опорного пиксела может ограничиваться настройкой кодирования. Например, хотя он расценен как доступный в некоторых условиях, использование опорного пиксела может быть ограничено в соответствии с тем, выполняется ли ограниченное интра-предсказание (например, constrained_intra_pred_flag). Ограниченное интра-предсказание может выполняться, чтобы запретить использовать в качестве опорного пиксела восстановленный блок, к которому обращаются из другого изображения, чтобы предотвратить распространение ошибки, вызванной внешними факторами, включая среду связи и т.д.
[00227] Когда ограниченное интра-предсказание деактивировано (например, для типа изображения I. Или типа изображения P или B, constrained_intra_pred_flag=0), все блоки кандидата опорного пиксела могут быть доступны.
[00228] В качестве альтернативы, когда ограниченное интра-предсказание активировано (например, для типа изображения P или B, constrained_intra_pred_flag=1), это предполагается при условии оценки, используется ли блок кандидата опорного пиксела в соответствии с режимом кодирования (Mode_Intra, Mode_InterD, Mode_InterC), но условия могут быть определены в соответствии с различными другими элементами кодирования.
[00229] В этом случае, Mode_Intra, Mode_Inter_D, Mode_Inter_C могут означать интра-предсказание, интер-предсказание, на которое ссылаются в другой картинке (сопоставление блоков и т.д.), и интер-предсказание, на которое ссылаются в текущей картинке, соответственно, и настройка, в которой в случае Mode_Intra ссылка возможна, а в случае Mode_Inter ссылка невозможна, может быть общей, но не ограничивается этим.
[00230] Когда опорный пиксел состоит из более чем одного блока, он может быть классифицирован в три случая, такие как <все доступны>, <некоторые доступны> и <все недоступны>, после проверки возможности опорного пиксела. В других случаях, за исключением случая <все доступны>, опорный пиксел в позиции недоступного блока кандидата может заполняться или генерироваться.
[00231] Когда блок кандидата опорного пиксела доступен, пиксел в соответствующей позиции может быть включен в память опорных пикселов целевого блока. В этом случае пиксельные данные могут быть скопированы как есть или могут быть включены в память опорных пикселов в процессе, таком как фильтрация опорных пикселов, интерполяция опорных пикселов и т.д. Кроме того, когда блок кандидата опорного пиксела недоступен, пиксел, полученный в процессе генерации опорного пиксела, может быть включен в память опорных пикселов целевого блока.
[00232] Далее показан пример, в котором опорный пиксел в позиции недоступного блока генерируется с использованием различных способов.
[00233] Например, опорный пиксел может генерироваться с использованием произвольного пиксельного значения. В этом случае, произвольным пиксельным значением может быть значение одного пиксела (например, минимальное значение, максимального значение, центральное значение и т.д. в диапазоне пиксельного значения), которое принадлежит диапазону пиксельного значения (например, диапазону пиксельного значения на основе битовой глубины или в соответствии с распределением пикселов в соответствующих изображениях). Конкретно, это может быть пример, который применяется, когда все блоки кандидата опорного пиксела недоступны.
[00234] Альтернативно, опорный пиксел может генерироваться из области, где кодируется изображение. Конкретно, опорный пиксел может генерироваться по меньшей мере из одного доступного блока, смежного с недоступным блоком. В этом случае может использоваться по меньшей мере один из способов, таких как экстраполяция, интерполяция, копирование и т.д.
[00235] Для вышеприведенного примера, опорный пиксел может иметь целью область, которая является смежной, центрированной вокруг целевого блока, и может учитываться включением области (области, получающей данные предсказания, или смежной с ней области), соответствующей целевому блоку в другом цветовом пространстве, к которому обращаются в некоторых режимах предсказания (например, в режиме цветового копирования и т.д.).
[00236] После того как конфигурация опорного пиксела завершена, может выполняться фильтрация опорного пиксела или интерполяция опорного пиксела. Например, может выполняться только фильтрация опорного пиксела, может выполняться только интерполяция опорного пиксела, или может выполняться как фильтрация опорного пиксела, так и интерполяция опорного пиксела. Фильтрация опорного пиксела может выполняться до или после интерполяции опорного пиксела и может также выполняться в комбинации с интерполяцией опорного пиксела одновременно.
[00237] Фильтрация опорного пиксела может представлять собой процесс, который выполняется для уменьшения остающейся деградации опорного пиксела. Фильтрация опорного пиксела может выполняться одним из множества фильтров, которые могут быть классифицированы путем настройки длины и коэффициента различных отводов фильтра, таких как [1, 2, 1]/4, [2, 3, 6, 3, 2]/16 и т.д. Кроме того, может выполняться множество фильтраций с изменением типа фильтра.
[00238] Выполняется ли фильтрация опорного пиксела, может быть определено явно, или выполняется ли фильтрация опорного пиксела, может быть определено неявно в соответствии с настройкой кодирования. В этом случае, настройка кодирования может быть определена на основе информации о состоянии (размер, форма, позиция блока и т.д.) целевого блока, типа изображения (I/P/B), цветового компонента (Y/Cb/Cr), информации о выборе строки опорных пикселов, применяется ли интра-предсказание в единице подблока, режима интра-предсказания и т.д.
[00239] Интерполяция опорного пиксела может не выполняться в режиме предсказания, который ссылается только на пиксел в целочисленной единице, и интерполяция опорного пиксела может выполняться в режиме предсказания, который ссылается на пиксел в десятичной единице.
[00240] Позиция пиксела (то есть, какая десятичная единица интерполируется), где выполняется интерполяция, может быть определена в соответствии с режимом предсказания (например, направление для режима предсказания, dy/dx и т.д.), позицией опорного пиксела и пиксела предсказания. В этом случае, один фильтр может применяться независимо от точности десятичной единицы, или один из множества фильтров (например, в предположении разделения фильтра, который использовал уравнение для определения коэффициента фильтра или длины отвода фильтра) может применяется путем выбора в десятичной единице.
[00241] Первое может быть примером, в котором пиксел в целочисленной единице используется как вход для интерполяции пиксела в десятичной единице, а второе может быть примером, в котором входной пиксел изменяется пошагово (например, для 1/2 единицы, используя целочисленный пиксел. Для 1/4 единицы, используя целочисленный и 1/2-единичный пиксел, и т.д.), но без ограничения этим, и описание в настоящем раскрытии приводится на основе первого варианта.
[00242] Фиксированная фильтрация или адаптивная фильтрация может выполняться для интерполяции опорного пиксела, что может определяться в соответствии с настройкой кодирования. В этом случае, настройка кодирования может быть определена на основе информации о состоянии целевого блока, типа изображения, цветового компонента, информации о выборе строки опорных пикселов, применяется ли интра-предсказание в единице подблока, режима интра-предсказания, и т.д.
[00243] Фиксированная фильтрация может выполнять интерполяцию опорного пиксела с использованием одного фильтра, и адаптивная фильтрация может выполнять интерполяцию опорного пиксела с использованием одного из множества фильтров.
[00244] В этом случае, для адаптивной фильтрации, один из множества фильтров может быть неявно или явно определен в соответствии с настройкой кодирования. В этом случае, тип фильтра может быть сконфигурирован после выбора более одного из 4-отводного фильтра DCT-IF, 4-отводного кубического фильтра, 4-отводного фильтра Гаусса, 6-отводного фильтра Винера, 8-отводного фильтра Калмана и т.д., и поддерживаемая группа кандидатов фильтра также может быть по-разному определена в соответствии с цветовым компонентом (например, некоторые типы фильтров являются одинаковыми или разными, и длина отвода фильтра является короткой или длинной и т.д.).
[00245] Блок предсказания может быть сгенерирован в соответствии с по меньшей мере одним режимом предсказания в модуле генерации блока предсказания, и опорный пиксел может использоваться на основе режима предсказания. В этом случае, опорный пиксел может использоваться для такого способа, как экстраполяция и т.д., в соответствии с режимом предсказания и может использоваться для такого способа, как интерполяция, DC или копирование и т.д.
[00246] Процесс выбора оптимального режима среди множества групп кандидатов режима предсказания выполняется в модуле определения режима предсказания. Как правило, оптимальный режим с точки зрения стоимости кодирования может быть определен с использованием искажения блока {например, искажения целевого блока и восстановленного блока, SAD (сумма абсолютных разностей), SSD (сумма квадратов разностей) и т.д.} и критерия скорости-искажения, который определяет количество сгенерированных битов согласно соответствующему режиму. Блок предсказания, сгенерированный на основе режима предсказания, определенного в процессе, может быть передан в модуль вычитания и модуль суммирования.
[00247] Режим предсказания, выбранный в модуле определения режима предсказания, может быть закодирован в модуле кодирования режима предсказания. В режиме предсказания, может быть закодирована группа кандидатов, индексная информация, соответствующая режиму предсказания, или режим предсказания может предсказываться, чтобы кодировать информацию о нем. Первый может быть способом, применяемым к компоненту яркости, а второй может быть способом, применяемым к компоненту цветности, но без ограничения этим.
[00248] Когда режим предсказания предсказывается и кодируется, он может классифицироваться во множество категорий (K, где K - целое число, например 2, 3, 4 или более) и управляться. Например, когда он классифицируется в 2 категории, одна категория может состоять из режима предсказания, который предсказывается, чтобы быть идентичным режиму предсказания целевого блока, а другая категория может состоять из предсказания, которое предсказывается, чтобы по всей вероятности быть неидентичным режиму предсказания. Другими словами, другая категория может состоять из режима предсказания, который не был выбран в качестве режима, который предсказывается, чтобы быть идентичным режиму предсказания целевого блока.
[00249] Вышеописанный пример представляет собой случай, когда режим предсказания классифицируется в 2 категории и может классифицироваться в большее количество категорий. Когда он классифицируется в 3 категории, первая категория может состоять из режима предсказания, который предсказываться, чтобы с высокой вероятностью быть идентичным режиму предсказания целевого блока; вторая категория может состоять из режима предсказания, который предсказывается, чтобы, вероятно, быть идентичным режиму предсказания целевого блока; и третья категория может состоять из режима предсказания, который предсказывается, чтобы маловероятно быть идентичным режиму предсказания целевого блока. Другими словами, вторая категория может состоять из режима предсказания, который предсказывается, чтобы быть идентичным режиму предсказания целевого блока среди режимов предсказания, которые не принадлежат к первой категории, а третья категория может состоять из режима предсказания, который не принадлежит первой и второй категории.
[00250] В другом примере для классификации категорий, они могут быть классифицированы в соответствии со способом предсказания. Например, они могут быть классифицированы на способ предсказания в соответствии с экстраполяцией, способ предсказания в соответствии с интерполяцией/усреднением, способ предсказания в соответствии с копированием и т.д. В этом случае, способ предсказания в соответствии с экстраполяцией может означать направленный режим, способ предсказания в соответствии с интерполяцией/усреднением может означать ненаправленный режим, способ предсказания в соответствии с копированием может быть классифицирован в режим цветового копирования, и возможны другие различные классификации. Поскольку цветовой режим выводит режим предсказания в другом цветовом пространстве, он может отличаться от направленного или ненаправленного режима, но для удобства объяснения предполагается, что он классифицируется в направленный/ненаправленный режим.
[00251] При классификации в 2 категории в соответствии со способом предсказания, первая категория может состоять из направленного/ненаправленного режима, а вторая категория может состоять из режима цветового копирования. Альтернативно, первая категория может состоять из направленного режима, а вторая категория может состоять из ненаправленного режима. Первое может применяться к интра-предсказанию компонента цветности, второе может применяться к интра-предсказанию компонента яркости. В описанной ниже части предполагается, что, когда включен режим цветового копирования, он может применяться к режиму интра-предсказания компонента цветности, но следует понимать, что даже когда режим цветового копирования не включен, он не применяется только к режиму интра-предсказания компонента яркости.
[00252] При классификации в три категории, первая категория может состоять из направленного режима, вторая категория может состоять из ненаправленного режима, а третья категория может состоять из режима цветового копирования. В качестве альтернативы, первая категория может состоять из предварительно определенного режима (например, вертикального, горизонтального, диагонального режима A и т.д.) среди направленных режимов, вторая категория может состоять из предварительно определенного режима (например, диагонального режима B и т.д.) среди направленных режимов, и третья категория может состоять из режима цветового копирования. В этом случае, диагональный режим A может состоять из диагонального режима, использующего только целочисленный пиксел в предсказании, а диагональный режим B может состоять из диагонального режима, использующего целочисленный пиксел и десятичный пиксел в предсказании, но не ограничивается этим.
[00253] Вышеприведенное описание является примером конфигурации категории, и ее можно классифицировать согласно различным предварительно определенным стандартам, не ограничиваясь ими. Кроме того, множество предварительно определенных стандартов может объединяться и применяться к конфигурации категории.
[00254] Когда режим предсказания классифицируется во множество категорий, может генерироваться информация о выборе того, в какой категории генерируется режим предсказания целевого блока, и информация о выборе кандидата в каждой категории. Когда кандидат в категории равен 1, информация о выборе кандидата может быть опущена. Можно сконфигурировать различные синтаксические элементы для выбора категории и выбора кандидата в категории. Далее предполагается случай, в котором поддерживаются 3 категории.
[00255] * Поддерживается один синтаксический элемент для выбора категории.
[00256] Значение синтаксического элемента, поддерживаемого для выбора категории в этом примере, может иметь значение от 0 до 2 (значение больше 1). В одном примере, для категорий с первой по третью, может быть возможна бинаризация, которой присвоены биты <0>, <10>, <11>. Другими словами, один синтаксический элемент для выбора категории может поддерживаться и может быть сконфигурирован в типе, при котором применяются присвоение индекса и бинаризация для каждой категории.
[00257] * Поддерживается множество синтаксических элементов при выборе категории.
[00258] Поддерживаемое значение синтаксического элемент для выбора категории в этом примере может иметь значение 0 или 1 (также значение больше 1).
[00259] В одном примере, для одного синтаксического элемента (первого синтаксического элемента), <0> может назначаться первой категории и второй категории, и <1> может назначаться третьей категории. В этом случае, когда синтаксический элемент имеет значение <0>, может поддерживаться другой синтаксический элемент (второй синтаксический элемент) для выбора подкатегории, который выбирает одну из первой категории и второй категории, и для соответствующего синтаксического элемента, < 0>, <1> могут назначаться первой категории и второй категории.
[00260] В одном примере, для одного синтаксического элемента (первого синтаксического элемента), <0> может назначаться первой категории, и <1> может назначаться второй категории и третьей категории. В этом случае, когда синтаксический элемент имеет значение <1>, другой синтаксический элемент (второй синтаксический элемент) для выбора подкатегории, который выбирает одну из второй категории и третьей категории, может поддерживаться, и для соответствующего синтаксического элемента, < 0>, <1> могут назначаться второй категории и третьей категории.
[00261] Вышеуказанный пример представляет собой пример конфигурации синтаксического элемента для выбора категории, и различные модификации и конфигурации могут быть возможны.
[00262] Вышеупомянутая каждая категория может включать в себя по меньшей мере один режим предсказания. Количество режимов предсказания в категории с первой по третью может быть a, b, c, и a может быть меньше или равно b и c, и b может быть меньше или равно c. В этом примере предполагается, что a - целое число от 1 до 5, b - целое число от 3 до 8, и c - число, вычитающее число a и b из числа групп кандидатов режима предсказания. Бинаризация переменной длины или бинаризация фиксированной длины, такая как усеченная бинаризация Райса, усеченная двоичная бинаризация, бинаризация экспоненциального кода Голомба (Exp-Golomb) k-го порядка и т.д., могут применяться к режиму предсказания, который принадлежит к этой категории.
[00263] В приведенном ниже примере, это описано в предположении, что конфигурация и настройка категории являются фиксированными, но адаптивная настройка может быть возможна в соответствии с различными элементами кодирования (например, количеством категорий, конфигурацией связанных флагов и т.д.). В этом случае, элементы кодирования могут быть определены на основе цветового компонента (яркости/цветности), информации о состоянии блока (например, размера, формы, форматного отношения, позиции блока и т.д.), типа изображения (I/P/B), применяется ли интра-предсказание в единице подблока, информации о выборе строки опорных пикселов и т.д. В одном примере, на основе информации кодирования, количество категорий может быть определено как одно из 2 или 3.
[00264] Далее будет описан пример, в котором режим предсказания классифицируется во множество категорий (3) на основе вероятности совпадения режима предсказания, и режим предсказания кодируется на основе информации о выборе категории и информации о выборе кандидата в категории. Но возможен пример, в котором стандарты для классификации категорий согласно способу предсказания комбинируются для конфигурации категорий. Кроме того, когда вторая категория из первой категории и второй категории исключена или объяснение по первой категории и второй категории интегрировано, можно вывести объяснение, сконфигурированное с двумя категориями, так что детальное объяснение для этого опущено.
[00265] Фиг. 6 является схемой расположения целевого блока и блока, смежного к нему, в соответствии с вариантом осуществления настоящего раскрытия.
[00266] Целевой блок может иметь высокую корреляцию с блоком, смежным с ним, и может не только выполнять предсказание с использованием смежного опорного пиксела, но и использовать режим предсказания смежного блока для предсказания режима предсказания целевого блока. Соответственно, режим предсказания блока, смежного с целевым блоком, может быть выбран в качестве кандидата, включенного в первую или вторую категорию. В этом случае все или часть режимов предсказания левого, верхнего, левого-верхнего, правого-верхнего и левого-нижнего блока для целевого блока могут рассматриваться как кандидат, включенный в (предыдущую) категорию. Например, могут рассматриваться (левый/верхний), (левый/верхний/правый-верхний), (левый/верхний/ левый-нижний), (левый/верхний/левый-верхний/правый-нижний/левый-верхний) и т.д.
[00267] Когда режим предсказания смежного блока рассматривается как кандидат, включенный в категорию, по меньшей мере один режим предсказания может быть выбран из блока в каждом направлении. Например, для левого блока может быть выбран один в L0-L3, а для верхнего блока может быть выбран один в U0-U3.
[00268] Подблок в конкретной позиции (например, левый блок L3, верхний блок U3) для выбора режима предсказания может быть определен путем рассмотрения случая, в котором смежный блок в предварительно определенном направлении (в этом примере левый, верхний блок) разбит на множество подблоков. Когда режим предсказания для блока в соответствующей позиции недоступен (например, когда соответствующий блок не закодирован, когда он находится в позиции, на которую нельзя ссылаться, когда режим кодирования <интра/интер> отличается и т.д.), режим предсказания не может быть выбран в блоке в соответствующем направлении.
[00269] В качестве альтернативы, может поддерживаться приоритет для выбора режима предсказания (подблока) (например, L3 -> L0 -> L1 -> L2 и т.д.), и, соответственно, режим предсказания доступного подблока с предыдущим приоритетом может быть выбран как режим предсказания в соответствующем направлении. Когда режим предсказания подблока во всех позициях недоступен, режим предсказания не может быть выбран в блоке в соответствующем направлении.
[00270] Может поддерживаться приоритет для включения режима предсказания, полученного из блока в каждом направлении в категории. Например, возможны такие настройки, как левый -> верхний -> правый-верхний -> левый-нижний -> левый-верхний, левый -> верхний -> левый-нижний -> правый-верхний -> левый-верхний, верхний -> левый -> левый-нижний -> правый-верхний -> левый-верхний и т.д., но без ограничения этим.
[00271] В группу кандидатов режима предсказания включено множество режимов предсказания, но среди них может быть много режимов предсказания, которые обычно генерируются. Например, край в вертикальном и горизонтальном направлениях может быть общей характеристикой изображения, и может быть обнаружено множество плоских областей, таких как фон. Соответственно, предварительно определенный режим предсказания, который предсказывается, чтобы по существу генерироваться, может быть выбран в качестве кандидата, включенного в первую или вторую категорию.
[00272] Режим ненаправленного предсказания планарный (№0), режим DC (№1) и горизонтальный (№18), вертикальный (№50) и диагональный режим (№2, №34, №66 и т.д.) может быть целью для кандидата предварительно установленного режима предсказания, который предсказывается, чтобы по существу генерироваться. Может поддерживаться приоритет для включения режима предсказания в категорию. Например, возможны такие настройки, как планарный -> DC -> вертикальный -> горизонтальный и т.д., но без ограничения.
[00273] Когда все или часть режимов предсказания смежного блока недоступны, он может быть заменен и заполнен более чем одним из предварительно установленных режимов предсказания (например, планарным, DC и т.д.)
[00274] В приведенном выше описании, режим предсказания соседнего блока целевого блока и предварительно установленный режим предсказания упоминаются как режим предсказания, который учитывается для конфигурации категории. Но когда существует много групп кандидатов режима предсказания, трудно эффективно предсказать режим предсказания целевого блока с вышеуказанной конфигурацией. В примере, когда разность генерируется на 1, 2 в направленном режиме (на основе режима предсказания на фиг. 5), предсказание может быть безуспешным при вышеуказанной конфигурации.
[00275] Для этого, режим предсказания, выведенный на основе режима предсказания смежного блока, и предварительно установленный режим предсказания, могут рассматриваться для конфигурирования группы кандидатов категории. В одном примере, режим предсказания с интервалом k, основанный на режиме предсказания (в этом примере, направленный режим), может рассматриваться как производный режим предсказания, и он может быть выбран в качестве кандидата, включенного в первую или вторую категорию. В этом случае k может быть целым числом, например 1, 2, 3, 4 или более.
[00276] В этом случае, когда предполагается, что режимом предсказания на основе режима предсказания смежного блока или предварительно установленным режимом предсказания является Z, может иметься приоритет для производного режима предсказания, такой как Z-1, Z+1, Z-2. В этом примере предполагается, что приоритет определяется в порядке абсолютного значения, такого как 1, 2 и за (одним абсолютным значением) <-> код следует <+> код, но без ограничения этим. Другими словами, это означает, что информация о расстоянии для заполнения производного режима предсказания может не начинаться с 1 (например, целого числа, такого как 4, 8, 12 и т.д.), и расстояние k режима предсказания, выведенного на основе режима предсказания смежного блока, и предварительно установленного режима предсказания, может быть идентичным или не идентичным.
[00277] Кроме того, когда предполагается, что режимом предсказания на основе режима предсказания смежного блока или предварительно установленным режимом предсказания является X, Y, может иметься приоритет для производного режима предсказания, такой как X-1, X+1, Y-1, Y+1 или X-1, Y-1, X+1, Y+1. В этом примере предполагается, что X имеет приоритет над Y, а также <-> код и <+> код чередуются друг с другом, или другой код (положительное число в этом примере) выводится после того, как один код (отрицательное число в этом примере) полностью выведен (на основе одного абсолютного значения), но без ограничения этим.
[00278] Кроме того, множество режимов (X, Y в этом примере) может использоваться как базовый режим для производного режима, или предварительно определенный режим из них (то есть один из X, Y) может использоваться как базовый режим. Он может быть классифицирован в соответствии с предварительно определенным стандартом и может быть определен на основе позиции полученного блока (например, режим любого конкретного блока между левым блоком и верхним блоком установлен как базовый режим), формы целевого блока (например, режим верхнего блока между левым блоком и верхним блоком в случае горизонтально длинной прямоугольной формы и режим левого блока в случае вертикально длинной прямоугольной формы установлен как базовый режим, или наоборот и т.д.) и информации о наклоне режима предсказания (например, режим с большим наклоном в конкретном направлении <влево или вправо, вверх или вниз> на основе вертикального или горизонтального режима установлен как базовый режим).
[00279] Таким образом, режим предсказания, выведенный на основе предварительно установленного режима предсказания, режим предсказания смежного блока и предшествующий режим предсказания могут быть включены в (предшествующую) категорию.
[00280] Каждая категория может включать в себя по меньшей мере один режим предсказания из предварительно установленного режима предсказания, режима предсказания соседнего блока и производного режима предсказания и для удобства пояснения упоминается как Group_A, Group_B и Group_C соответственно.
[00281] Например, Group_A может быть сконфигурирована в первой категории, Group_A, Group_B и Group_C могут быть сконфигурированы во второй категории, и другие режимы (в данном случае это может быть Group_C) могут быть сконфигурированы в третьей категории.
[00282] В качестве альтернативы, Group_B может быть сконфигурирована в первой категории, Group_A, Group_B и Group_C могут быть сконфигурированы во второй категории, и другие режимы могут быть сконфигурированы в третьей категории.
[00283] В качестве альтернативы, Group_A и Group_B могут быть сконфигурированы в первой категории, Group_A, Group_B и Group_C могут быть сконфигурированы во второй категории, и другие режимы могут быть сконфигурированы в третьей категории.
[00284] Вышеупомянутый пример является примером конфигурации режима согласно классификации категорий, и для Group_A и Group_B, включенных во множество категорий, можно понять, что другие режимы, не сконфигурированные в предшествующей категории, конфигурируются в последующей категории. Кроме того, без ограничения приведенным выше примером, возможна конфигурация режима путем различной классификации категорий.
[00285] Далее предполагается, что поддерживается приоритет режима предсказания для конфигурации категории, и когда режим конфигурируется в некоторых неподчиненных категориях (например, первой категории) в соответствии с приоритетом категории (например, в порядке 1-2-3 категории), остальные режимы конфигурируются в подчиненной категории (например, второй категории, третьей категории и т.д.).
[00286] В приведенном ниже примере предполагается, что поддерживается приоритет, такой как Planar (в предположении, что назначен индекс № 0) -> L -> A -> DC -> <L-1> -> <L+1> -> <A-1> -> <A+1> -> <L-2> -> <L+2> -> <A-2> -> <A+2> -> Ver -> Hor -> <Ver-4> -> <Ver+4> -> <Hor-4> -> <Hor+4> и т.д.
[00287] Например, когда количество режимов предсказания в первой категории равно 1, режим предсказания, принадлежащий Group_A, может быть Planar (индекс № 0), и по мере увеличения количества режимов предсказания Group_A может конфигурироваться с подчиненными режимами предсказания.
[00288] Кроме того, когда номер режима предсказания во второй категории равен 1, режим предсказания, принадлежащий Group_B, может быть из следующего режима предсказания (индекс № m+1) режима предсказания, окончательно сконфигурированного в первой категории (индекс № m), и по мере увеличения количества режимов предсказания Group_B может конфигурироваться с подчиненными режимами предсказания.
[00289] Вдобавок, для третьей категории, Group_C может конфигурироваться с оставшимися режимами предсказания из следующего режима предсказания (индекс № n+1) режима предсказания (индекс № n), окончательно сконфигурированного во второй категории.
[00290] Количество режимов предсказания в категории с первой по третью (в этом примере, когда групп кандидатов режима предсказания 67) может быть установлено различным образом, например (1, 5, 61), (2, 4, 61), (4, 8, 55) и т.д., и может быть определено на основании количества групп кандидатов режима предсказания.
[00291] В приведенном выше примере, предварительно установленный режим предсказания может быть режимом, который постоянно поддерживается независимо от среды кодирования, и производный режим предсказания может быть получен путем принятия режима предсказания, который уже существует в группе кандидатов, в качестве базового режима.
[00292] С другой стороны, может возникнуть случай, когда трудно получить режим предсказания смежного блока в соответствии с состоянием смежного блока (например, границей единицы разбиения, является ли она кодируемой или нет, режимом кодирования и т.д.). В этом случае состояние смежного блока может быть классифицировано на (1) случай, когда все смежные блоки недоступны, (2) случай, когда некоторые из смежных блоков недоступны, и (3) случай, когда доступны все смежные блоки, и пример приоритета может быть описан в предположении случая, когда доступны все смежные блоки.
[00293] Кроме того, режим предсказания смежного блока может быть получен из двух или более блоков, и пример приоритета может быть описан в предположении случая, когда режим предсказания каждого блока не перекрывается.
[00294] Кроме того, пример приоритета может быть описан в предположении случая, когда режим предсказания смежного блока не перекрывается с предварительно установленным режимом предсказания.
[00295] Приоритет для конфигурации категории может быть установлен адаптивно с учетом вышеуказанных элементов. Например, индекс, соответствующий режиму предсказания смежного блока, может быть удален из приоритета, и индекс режима, выведенного путем принятия режима предсказания смежного блока в качестве базового режима, также может быть удален. Это может обычно применяться как к случаю, в котором режим предсказания смежного блока является направленным режимом, так и к случаю, когда режим предсказания смежного блока является ненаправленным режимом.
[00296] Кроме того, когда режим предсказания смежного блока перекрывается, индекс, соответствующий другому режиму предсказания с перекрытием, и индекс производного режима могут быть удалены. В качестве альтернативы, может поддерживаться множество приоритетов с учетом элементов, и категория может быть сконфигурирована соответственно.
[00297] В интра-предсказании согласно настоящему раскрытию описывается, что некоторые из поддерживаемых режимов предсказания могут быть сконфигурированы как группа кандидатов режима предсказания. Это может означать, что каждый отдельный режим предсказания (например, направленный режим) может поддерживаться в соответствии с информацией о состоянии целевого блока (например, размером, формой блока и т.д.)
[00298] Для кодирования режима предсказания, объединение его в общую конфигурацию группы кандидатов режима предсказания может предшествовать кодированию. Например, объединение в конфигурацию группы кандидатов режима предсказания может быть в предварительно определенном диапазоне для кодирования режима предсказания, и на этой основе может выполняться кодирование режима предсказания. В этом случае предварительно определенный диапазон может быть сконфигурирован с режимом предсказания, соответствующим от № 0 до № 66 на фиг. 5, но без ограничения этим.
[00299] При объединении, может выполняться отображение в предварительно определенном диапазоне, и оно может выполняться на основе направления режима предсказания. В одном примере, для режима предсказания вне предварительно определенного диапазона, отображение (например, в случае, если направление края совпадает и т.д. Другими словами, включен случай, в котором начальная точка для предсказания и направление предсказания различаются, но направление края является тем же самым) может выполняться в режиме предсказания с характеристикой, аналогичной соответствующему режиму предсказания, и могут поддерживаться другие различные способы.
[00300] Относящаяся к предсказанию информация, сгенерированная в процессе, может передаваться в модуль кодирования и сохраняться в битовом потоке.
[00301] В вышеприведенном пояснении блок, в котором выполняется интра-предсказание, называется целевым блоком. В этом случае, целевой блок может быть установлен как множество единиц блока в соответствии с настройкой блока.
[00302] В примере, когда блок кодирования является той же единицей, что и блок предсказания и блок преобразования (то есть, когда блок кодирования непосредственно установлен как блок предсказания или блок преобразования), целевой блок интра-предсказания для установки области опорного пиксела, конфигурации опорного пиксела (фильтрации опорного пиксела/ интерполяции опорного пиксела), конфигурации группы кандидатов режима предсказания, производительности предсказания, кодирования режима предсказания кодирования и т.д. может быть выбран в качестве блока кодирования.
[00303] В примере, когда блок кодирования является единицей, которая может быть той же самой или не той же, как блок предсказания и блок преобразования (т.е. блок кодирования может быть разбит на два или более подблока <блоки предсказания или блоки преобразования>) целевой блок интра-предсказания может быть установлен как один из блока кодирования, блока предсказания и блока преобразования.
[00304] Например, блок кодирования может быть установлен как целевой блок для (кодирования режима предсказания, конфигурации группы кандидатов режима предсказания/конфигурации опорного пиксела) и т.д., и блок предсказания или блок преобразования может быть установлен как целевой блок для (настройки области опорного пиксела/производительности предсказания) и т.д.
[00305] В качестве альтернативы, блок кодирования может быть установлен как целевой блок для (кодирования режима предсказания/конфигурации группы кандидатов режима предсказания) и т.д., и блок предсказания или блок преобразования может быть установлен как целевой блок для (установки области опорного пиксела/конфигурации опорного пиксела/производительности предсказания) и т.д.
[00306] Таким образом, целевой блок может быть установлен как один из блока кодирования, блока предсказания и блока преобразования, и целевой блок детальной конфигурации может быть определен в соответствии с настройкой кодирования.
[00307] В способе декодирования изображения согласно варианту осуществления настоящего раскрытия, интра-предсказание может быть сконфигурировано следующим образом. Интра-предсказание в модуле предсказания может включать в себя декодирование режима предсказания, конфигурирование опорного пиксела и генерацию блока предсказания. Кроме того, устройство декодирования изображения может быть сконфигурировано, чтобы включать в себя модуль декодирования режима предсказания, модуль построения опорного пиксела и модуль генерации блока предсказания, которые воплощают декодирование режима предсказания, конфигурацию опорного пиксела и генерацию блока предсказания. Часть вышеупомянутых процессов может быть опущена или может быть добавлен другой процесс, и порядок может быть изменен по сравнению с порядком, указанным выше.
[00308] Поскольку модуль построения опорного пиксела и модуль генерации блока предсказания устройства декодирования изображения выполняют ту же функцию, что и конфигурация, соответствующая устройству кодирования изображения, подробное описание опущено, а модуль декодирования режима предсказания может выполняться инверсным образом с использованием способа, используемого в модуле кодирования режима предсказания.
[00309] Фиг. 7 является блок-схемой последовательности операций, показывающей способ модификации интра-предсказания в соответствии с вариантом осуществления настоящего раскрытия.
[00310] Со ссылкой на фиг. 7, режим интра-предсказания целевого блока может определяться (S700), и блок предсказания может генерироваться (S710) на основе режима интра-предсказания. Настройки модификации блока предсказания могут определяться (S720), и модификация блока предсказания может выполняться (S730).
[00311] Интра-предсказание целевого блока может быть выбрано в группе кандидатов режима предсказания, полученной на основе информации о состоянии целевого блока, и может быть определен один режим предсказания из них.
[00312] Компонент яркости может относиться к группе кандидатов режима предсказания, сконфигурированной с направленным режимом и ненаправленным режимом, а компонент цветности может относиться к группе кандидатов режима предсказания, в которой цветовой режим или режим цветового копирования поддерживается для направленного режима и ненаправленного режима.
[00313] В этом случае, может выполняться классификация в направленный режим/ненаправленный режим/режим цветового копирования в соответствии со способом предсказания, и каждый способ может использовать экстраполяцию, интерполяцию или усреднение, копирование, но без ограничения этим, и возможны другие модификации. В одном примере, в соответствии с настройкой области опорного пиксела, интерполяция (двунаправленное предсказание), а также экстраполяция может поддерживаться в направленном режиме.
[00314] Таким образом, согласно каждому способу предсказания, опорная область для интра-предсказания может быть установлена по-разному, и для экстраполяции по меньшей мере один из блоков в направлении налево, вверх, налево-вверх, направо-вверх и налево-вниз от целевого блока может быть установлен как опорная область, а для интерполяции по меньшей мере один из блоков в направлении направо, вниз и направо-вниз от целевого блока может быть установлен как опорная область, в дополнение к экстраполяции. В этом случае, когда смежная область не кодируется, она может быть выведена из одного или более пикселов в кодированной области и заполнена. Кроме того, для копирования, блок, соответствующий целевому блоку в другом цветовом пространстве, может быть установлен как опорная область.
[00315] На основе данных в опорной области и режима интра-предсказания, может генерироваться режим предсказания.
[00316] Модификация блока предсказания может выполняться для уменьшения характеристик прерывистой границы со смежным блоком в блоке предсказания, сгенерированном в соответствии с предварительно определенным режимом предсказания. Но модификация в соответствии с характеристикой изображения может вызвать обратный эффект, поэтому необходимо выполнить модификацию с учетом различных элементов кодирования.
[00317] Для поддержки модификации для блока предсказания, связанная информация может генерироваться явно или неявно. И даже если определено поддерживать модификацию в более высокой единице, такой как последовательность, картинка и т.д., настройка модификации целевого блока может быть определена на основе типа изображения, цветового компонента, информации о состоянии целевого блока, режима кодирования, режима интра-предсказания, применяется ли интра-предсказание в единице подблока, информации о выборе строки опорных пикселов и т.д. Кроме того, относящаяся к модификации информация настройки (например, флаг, указывающий, выполняется ли модификация в единице блока, весовая информация, применяемая в модификации, и т.д.) может явно генерироваться в более низкой единице (например, для вышеуказанной информации, в блоке, подблоке и т.д.) или в более высокой единице (например, для вышеуказанной информации, в последовательности, картинке, вырезке, мозаичном элементе и т.д.).
[00318] Настройка модификации может конфигурироваться путем включения того, выполняется ли модификация, количество, позиция, вес и т.д. опорного пиксела, используемого для модификации, и т.д. Хотя модификация выполняется, модификация может быть выполнена для всех или части пикселов в целевом блоке. Например, когда размер целевого блока равен m×n, модификация может выполняться для 1 до (m×n) пикселов.
[00319] В этом случае, то, применяется ли модификация (в единице пиксела) (когда модификация выполняется), количество (1 ~ 5), позиция, вес и т.д. опорных пикселов, используемых для модификации, и т.д. может устанавливаться на основе позиции пиксела в блоке, а также настройки модификации.
[00320] В этом случае, режим интра-предсказания, модификация которого поддерживается, может быть определен согласно тому, принадлежит ли он к предварительно определенной группе режимов предсказания. Например, группа режимов предсказания может быть сконфигурирована из планарного, DC, горизонтального, вертикального и диагонального режима (например, направленного направо-вверх режима, направленного направо-вниз режима, направленного налево-вниз режима и т.д., режима № 2, 34, 66 на фиг. 5) и режима цветового копирования. В качестве альтернативы, она может быть сконфигурирована путем дополнительного включения режима предсказания, выведенного из группы режимов предсказания (например, режим с интервалом k на основе направленного режима. В этом случае k является целым числом, абсолютное значение которого равно 1, 2, 3, 4 или более).
[00321] Целевой блок, для которого поддерживается модификация, может быть меньше или равен предварительно определенному первому пороговому размеру. В этом случае первый пороговый размер может означать максимальный размер, который может иметь целевой блок.
[00322] Кроме того, блок, для которого поддерживается модификация, может быть больше или равен предварительно определенному второму пороговому размеру. В этом случае второй пороговый размер может означать минимальный размер, который может иметь целевой блок.
[00323] В этом случае, первый пороговый размер и второй пороговый размер могут быть показаны как ширина (W), высота (H), W×H, W*H и т.д., и W и H могут быть целыми числами, такими как 4, 8, 16, 32 или больше. В этом случае, первый пороговый размер может быть больше или равен второму пороговому размеру.
[00324] Фиг. 8 является диаграммой расположения для пиксела целевого блока и смежного блока в соответствии с вариантом осуществления настоящего раскрытия.
[00325] Со ссылкой на фиг. 8, оно состоит из пиксела (a ~ p) в целевом блоке, пиксела (A ~ Q) в смежном блоке, который закодирован, и пиксела (aa ~ ii) в смежном блоке, который не закодирован. В этом случае, модификация может выполняться для пиксела в целевом блоке, и к пикселу в соседнем блоке может производиться обращение для модификации.
[00326] В этом случае, опорный пиксел в смежном блоке может быть одним из значений, которые получены после того, как процесс предварительной обработки опорного пиксела (например, фильтрации опорного пиксела) не выполнен или выполнен. Это может определяться в единице блока или единице пиксела.
[00327] Ниже представлено уравнение для получения модифицированного пиксела после применения модификации к пикселу предсказания.
[00328] Z = (z * w0) + (а * w1) + (b * w2) + (c * w3)
[00329] В этом случае z и Z означают пиксел предсказания и модифицированный пиксел, соответственно, от a до c означают опорный пиксел, используемый для модификации, и от w0 до w3 означают вес, применяемый для модификации. В соответствии с количеством опорных пикселов, используемых для модификации, могут быть определены опорный пиксел и вес. В этом случае, весу может быть присвоено значение с учетом нормализации путем включения 0.
[00330] В соответствии с режимом предсказания целевого блока, может определяться позиция и количество опорных пикселов.
[00331] Например, когда режимом предсказания целевого блока является планарный, DC, вертикальный, горизонтальный режим, a, b, c могут быть установлены как левый-верхний опорный пиксел вне целевого блока (например, <-1, - 1>), опорный пиксел сверху от целевого блока, отвечающий или соответствующий компоненту x целевого пиксела (например, <x, -1>), и опорный пиксел слева от целевого блока, отвечающий или соответствующий y компоненту целевого пиксела (например, <-1, y>).
[00332] В этом случае для планарного, DC режима, может назначаться вес w2 и w3, чтобы отражать градиент опорного пиксела сверху и слева от целевого блока. Это может быть примером (например, w1 равен 0) установки веса на основе того, насколько он изменяется от опорного пиксела, соответствующего компоненту х и y целевого пиксела.
[00333] В этом случае, для вертикального режима, вес с отрицательным кодом может быть устанавливаться в w0 и вес с положительным кодом (т.е., обратным кодом) может устанавливаться в w3, чтобы отражать градиент опорного пиксела, соответствующий направлению предсказания. Это может быть примером (например, w2 равен 0) установки веса на основе того, насколько опорный пиксел, соответствующий компоненту y целевого пиксела, изменяется от левого-верхнего опорного пиксела. Для горизонтального режима, соответствующее объяснение может быть получено в вертикальном режиме, так что подробное объяснение опущено.
[00334] В качестве альтернативы, когда режим предсказания целевого блока является диагональным режимом, a, b, c могут быть установлены как левый-верхний опорный пиксел вне целевого блока, опорный пиксел (например, <x+y+1, -1>), отвечающий или соответствующий начальной точке в направлении предсказания целевого блока, и опорный пиксел (например, <-1, x+y+1>), отвечающий или соответствующий стороне, противоположной начальной точке в направлении предсказания целевого блока. В этом случае, когда опорный пиксел не получен в целочисленной единице (т.е. когда требуется интерполяция в десятичной единице), он может быть установлен одним из способа, который получает его путем замены одним смежным опорным пикселом, или способа, который получает его путем интерполяции через опорный пиксел, смежный с обеими сторонами.
[00335] В этом случае, для диагонального режима в направлении направо-вверх может быть назначен вес w3, чтобы отражать градиент опорного пиксела, расположенного в начальной точке направления предсказания и расположенного на противоположной стороне. Это может быть примером (например, w1 и w2 равны 0) установки веса на основе того, насколько он изменяется от опорного пиксела в направлении предсказания целевого пиксела. Для диагонального режима в направлении налево-вниз соответствующее объяснение может быть получено из режима, поэтому подробное объяснение опущено.
[00336] Фиг. 9A и 9B являются примерными диаграммами способа модификации на основе множества строк опорных пикселов в соответствии с вариантом осуществления настоящего раскрытия.
[00337] Приведенный ниже пример может быть конфигурацией, которая может поддерживаться отдельно от конфигурации, в которой строка опорных пикселов, которая будет использоваться для интра-предсказания, выбирается в вышеупомянутом множестве строк опорных пикселов, и он будет описан на основе этого, но это также может быть применено к комбинированной конфигурации.
[00338] Фиг. 9A представляет пример модификации в горизонтальном или вертикальном режиме. Более подробно, это может быть пример случая, в котором опорный пиксел в двух или более строках опорных пикселов используется для модификации.
[00339] Когда режим предсказания целевого блока представляет собой вертикальный режим, точность модификации может быть улучшена путем установки дополнительно а* в качестве опорного пиксела. В качестве альтернативы, a** может быть получено путем применения веса, среднего для a и a*, чтобы применить его вышеприведенном уравнении модификации.
[00340] Так как блочное разбиение может не выполняться, чтобы иметь границу, которая точно разделяет характеристики изображения, это может быть по той же причине, что и использование опорного пиксела, смежного с целевым блоком, в качестве пиксела предсказания.
[00341] Когда режим предсказания целевого блока представляет собой горизонтальный режим, точность модификации может быть улучшена путем установки дополнительно b* в качестве опорного пиксела для b, и b** может быть получено путем применения веса, среднего для b и b*, чтобы применить его в вышеприведенном уравнении модификации.
[00342] Фиг. 9B представляет пример модификации в диагональном режиме. Более подробно, это может быть пример случая, в котором опорный пиксел в двух или более строках опорных пикселов используется для модификации.
[00343] Когда режим предсказания целевого блока является направлением налево-вниз, точность модификации может быть улучшена путем установки дополнительно а* в качестве опорного пиксела для а в начальной точке предсказания, или а** может быть получено путем применения веса, среднего для a и a*, чтобы применить в вышеприведенном уравнении модификации.
[00344] Кроме того, точность модификации может быть улучшена за счет установки дополнительно b* в качестве опорного пиксела для b в положении, противоположном начальной точке предсказания, или b** может быть получено путем применения веса, среднего для b и b*, чтобы применить его в вышеприведенном уравнении модификации.
[00345] Для диагонального режима, опорный пиксел получается на основе одного или более опорных пикселов в начальной точке предсказания или в позиции, противоположной начальной точке. В этом случае, опорный пиксел может быть выбран для пиксела в направлении режима предсказания.
[00346] В приведенном выше примере, когда опорный пиксел в нескольких строках опорных пикселов используется для модификации, необходимость поддержки может определяться на основе типа изображения, цветового компонента, информации о состоянии целевого блока, режима интра-предсказания, применяется ли режим интра-предсказания в единице подблока, информации о выборе строки опорных пикселов и т.д.
[00347] Фиг. 10 является блок-схемой последовательности операций, показывающей способ модификации интра-предсказания в соответствии с вариантом осуществления настоящего раскрытия.
[00348] Со ссылкой на фиг. 10, может быть получен произвольный пиксел для модификации целевого блока (S900), настройка модификации может быть определена на основе целевого блока и режима интра-предсказания (S910), и может быть выполнена модификация блока предсказания (S920).
[00349] Для модификации блока предсказания, блок, смежный с целевым блоком, может быть сконфигурирован скошенным в конкретном направлении (например, в направлении налево-вверх), что формируется порядком кодирования в соответствии со способом растрового сканирования или Z-сканирования.
[00350] В дополнение к выполнению предсказания и модификации для опорного пиксела, скошенного в конкретном направлении, точность предсказания может быть улучшена путем использования данных в области, где кодирование не завершено. Для этого может выполняться процесс получения произвольного пиксела. В этом случае, количество произвольных пикселов может быть целым числом, например 1, 2 или более.
[00351] Например, произвольный пиксел, используемый для модификации целевого блока, может быть определен среди пикселов от aa до ii на фиг. 8. Конкретно, пиксел, который принадлежит области, где кодирование еще не завершено, среди блоков, смежных с целевым блоком, может быть установлен как произвольный пиксел.
[00352] Альтернативно, он может быть определен среди пикселов от a до p на фиг. 8. Конкретно, поскольку целевой блок также принадлежит пикселу, который еще не закодирован, он может быть включен в целевой блок, выбранный как произвольный пиксел.
[00353] Фиг. 11A, 11B, 11C, 11D и 11E являются примерными диаграммами произвольного пиксела, используемого, чтобы модифицировать пиксел предсказания в соответствии с вариантом осуществления настоящего раскрытия.
[00354] На фиг. 11A, 11B, 11C, 11D и 11E показаны примерные диаграммы, на которых, для фиг. 11A, правый-нижний пиксел в целевом блоке, для фиг. 11B, правый-нижний пиксел вне целевого блока, для фиг. 11C, нижний и левый пикселы вне целевого блока, для фиг. 11D, нижний пиксел вне целевого блока, и для фиг. 11E, правый пиксел вне целевого блока определяются как произвольный пиксел (X, X1, X2).
[00355] В отношении того, выполняется ли модификация с использованием произвольного пиксела, соответствующая информация может быть сгенерирована явно или определена неявно. И даже если определено использовать произвольный пиксел в более высокой единице, такой как последовательность, картинка и т.д., настройка для произвольного пиксела может быть определена на основе типа изображения, цветового компонента, информации о состоянии целевого блока, режима кодирования, режима интра-предсказания, применяется ли интра-предсказание в единице подблока, информации о выборе строки опорных пикселов и т.д. Кроме того, информация настройки, относящаяся к произвольному пикселу (например, флаг для указания того, выполняется ли модификация с использованием произвольного пиксела в единице блока и т.д.), может быть явно сгенерирована.
[00356] Настройка произвольного пиксела может быть сконфигурирована путем включения того, используется ли произвольный пиксел (т.е., используется ли произвольный пиксел для модификации), количества, позиции и т.д. произвольного пиксела и т.д.
[00357] В этом случае, режим интра-предсказания, выполняющий модификацию с использованием произвольного пиксела, может быть определен в соответствии с тем, принадлежит ли он к предварительно определенной группе режимов предсказания. Например, среди планарного, DC, горизонтального, вертикального, диагонального режима (например, направленного направо-вверх режима, направленного направо-вниз режима, направленного налево-вниз режима и т.д., режима № 2, 34, 66 на фиг.5) и режима цветового копирования, может быть сконфигурирована группа предсказания. В качестве альтернативы, она может быть сконфигурирована путем дополнительного включения режима предсказания (например, режима с интервалом k на основе направленного режима; в этом случае k является целым числом, абсолютное значение которого равно 1, 2, 3, 4 или более), выведенного в группе режимов предсказания.
[00358] Целевой блок, модификация которого выполняется с использованием произвольного пиксела, может быть меньше или таким же, как предварительно определенный первый пороговый размер, и первый пороговый размер может означать максимальный размер, который может иметь целевой блок. В качестве альтернативы, он может быть больше или таким же, как предварительно определенный второй пороговый размер, и второй пороговый размер может означать минимальный размер, который может иметь целевой блок. В этом случае, размер порога может быть показан как ширина (W), высота (H), W×H, W*H и т.д., и W и H могут быть целыми числами, такими как 4, 8, 16, 32 или больше, и первый пороговый размер может быть больше или равен второму пороговому размеру.
[00359] Из приведенного выше объяснения можно понять, что настройка модификации, которая упоминается в предыдущем варианте осуществления, принадлежит более низкой конфигурации или комбинируется с ней, поэтому перекрывающееся объяснение опущено. В приведенном ниже примере предполагается, что произвольный пиксел установлен так, как показано на фиг. 11А.
[00360] Поскольку положение произвольного пиксела является областью, которая еще не закодирована, значение пиксела в соответствующей позиции может быть получено различными способами.
[00361] Например, данные о позиции произвольного пиксела могут быть явно закодированы. Значение пиксела в соответствующей позиции может кодироваться как есть (например, на основе битовой глубины), или может кодироваться значение, полученное предварительно определенным значением разбиения (например, квантование; квантованное значение используется для модификации).
[00362] Альтернативно, два или более значений кандидатов данных о позиции произвольного пиксела могут быть получены в кодированной области, смежной с целевым блоком, и могут быть закодированы путем конфигурирования индексной информации для этого. В примере, когда всего 2 кандидата поддерживаются как значение пиксела в позиции произвольного пиксела 67, значением первого кандидата, полученным в области, смежной с целевым блоком (например, верхней области), является 70, и значением второго кандидата, полученным в области, смежной с целевым блоком (например, в левой области), является 85, может кодироваться информация о выборе значения кандидата (например, выбрано первое значение кандидата; 1-битовый флаг). В этом случае, получение значения кандидата может упоминаться в примере ниже. Значение кандидата может поддерживаться таким, как целое число, например 2, 3, 4 или более.
[00363] Для примера выше, может быть случай, когда информация о данных в позиции произвольного пиксела явно кодируется, и данные в позиции произвольного пиксела могут быть получены неявно.
[00364] Например, это может быть получено из опорного пиксела в предварительно определенной позиции или опорного пиксела, отвечающего или соответствующего позиции произвольного пиксела. В качестве примера для предварительно определенной позиции, это может быть получено из опорного пиксела (А, Е, М на фиг. 8) в левой-верхней, верхней и левой позиции вне целевого блока, и опорный пиксел в (правой-верхней, левой-нижней) позиции может быть получен в этой позиции на основе ширины или высоты целевого блока (I, Q на фиг. 8).
[00365] Кроме того, в качестве примера для опорного пиксела, соответствующего позиции произвольного пиксела, это может быть получено из опорного пиксела соответственно компонентам x и y произвольного пиксела (например, <х, -1>, <- 1, y>, <x+y+1, -1>, <-1, x+y+1> и т.д.)
[00366] Значение данных одного опорного пиксела среди опорных пикселов в позиции может быть получено так же, как значение данных в позиции произвольного пиксела, или значение, выведенное на основе двух или более опорных пикселов, может быть получено как значение данных в позиции произвольного пиксела.
[00367] Например, опорный пиксел в предварительно установленной позиции среди множества опорных пикселов, используемых для позиции произвольного пиксела, может быть получен как значение данных в позиции произвольного пиксела. Альтернативно, значение, полученное в предварительно определенном процессе (например, максимальное значение, минимальное значение, центральное значение и т.д.) среди множества опорных пикселов, может быть получено как значение данных в позиции произвольного пиксела. Альтернативно, значение, полученное в предварительно определенном процессе (например, взвешенное среднее и т.д.) среди множества опорных пикселов, может быть получено как значение данных в позиции произвольного пиксела.
[00368] Далее описывается способ получения значения данных в позиции произвольного пиксела на основе множества опорных пикселов. Предполагается, что A, E, M на фиг. 8 используются в качестве опорного пиксела, и в приведенном ниже примере они упоминаются как х, y, z.
[00369] Таблица 2
Кандидат
0
1
2
3
4
5
6
Значениепиксела
x
y
Z
y+z-x
z+(y-x)/2
y+(z-x)/2
(y+z)/2
[00370] № 0-2 кандидатов в таблице означает случай, в котором опорный пиксел в предварительно определенной позиции получают как значение данных в позиции произвольного пиксела. № 3-6 кандидатов означают случай для получения данных в позиции произвольного пиксела отражением градиента целевого блока. Более подробно, это может соответствовать случаю, когда градиент целевого блока получают на основе опорного пиксела в предварительно установленной позиции.
[00371] Следует понимать, что данный пример может являться примером для уравнения, выведенного из множества пикселов в предположении, что целевой блок имеет квадратную форму, и может быть изменен и применен в соответствии с форматным отношением блока. Кроме того, значение данных в позиции произвольного пиксела может быть получено различными способами без ограничения данным примером.
[00372] Фиг. 12A, 12B, 12C, 12D, 12E и 12F представляют собой примерные диаграммы, в которых модификация выполняется на основе произвольного пиксела согласно варианту осуществления настоящего раскрытия.
[00373] Фиг. 12А представляет процесс интерполяции с произвольным пикселом и опорным пикселом, соответствующим верхнему блоку, и представляет процесс, в котором модификация выполняется с использованием опорного пиксела в направлении налево, направо, вверх, налево-вверх и направо-вверх от целевого блока, полученного из него.
[00374] Процесс может применяться, когда модификация выполняется отражением градиента опорного пиксела в направлении налево и направо, когда режим предсказания целевого блока представляет собой вертикальный режим. Это может отличаться от существующего случая, когда модификация выполняется на основе градиента опорного пиксела в направлении налево.
[00375] Фиг. 12C представляет процесс интерполяции с произвольным пикселом и опорным пикселом, соответствующим левому блоку, и представляет процесс, в котором модификация выполняется с использованием опорного пиксела в направлении вверх, вниз, налево, налево-вверх и налево-вниз от целевого блока, полученного из него.
[00376] Процесс может применяться, когда модификация выполняется отражением градиента опорного пиксела в направлении вверх и вниз, когда режим предсказания целевого блока представляет собой горизонтальный режим. Это может отличаться от существующего случая, когда модификация выполняется на основе градиента опорного пиксела в направлении вверх.
[00377] Фиг. 12E представляет процесс интерполяции с произвольным пикселом и опорным пикселом, соответствующим левому и верхнему блоку, и представляет процесс, где модификация выполняется с использованием опорного пиксела в направлении вверх, вниз, налево, направо, налево-вверх, направо-вверх, налево-вниз и направо-вниз от целевого блока, полученного из него.
[00378] Ниже представлено уравнение для получения модифицированного пиксела путем применения модификации к пикселу предсказания. В этом случае, опорный пиксел может быть сконфигурирован иначе, чем в предыдущем уравнении, в том смысле, что включается произвольный пиксел или опорный пиксел, полученный на основе произвольного пиксела.
[00379] Z = (z * w0) + (а * w1) + (b * w2) + (c * w3) + (d * w4) + (e * w5)
[00380] В этом случае z и Z означают пиксел предсказания и модифицированный пиксел, соответственно, a - e означают опорный пиксел, используемый для модификации, и w0 - w5 означают вес, применяемый для модификации. Соответственно количеству опорных пикселов, используемых для модификации, могут определяться опорный пиксел и вес. В этом случае весу может быть присвоено значение с учетом нормализации путем включения 0.
[00381] В соответствии с режимом предсказания целевого блока, могут быть определены позиция и количество опорных пикселов, и возможны различные случаи, подобные показанным на фиг. 12A, 12B, 12C, 12D, 12E и 12F. Поскольку другое объяснение настройки модификации может быть выведено частично относительно предыдущего уравнения, подробное объяснение опущено.
[00382] Случай, когда модификация выполняется в интра-предсказании, был описан в различных вариантах осуществления. Здесь был описан только случай, когда модификация выполняется после получения блока предсказания, но можно выполнить модификацию после отображения на процесс интра-предсказания (то есть, процесс генерации блока предсказания).
[00383] Кроме того, информация флага, генерируемая в процессе модификации, может кодироваться/декодироваться в конфигурации, отдельной от режима интра-предсказания, но возможна конфигурация, объединенная с режимом интра-предсказания или зависимая от него. Иными словами, следует понимать, что это не ограничивается дополнительной или последующей частью после процесса интра-предсказания.
[00384] Способы согласно настоящему раскрытию могут быть записаны на компьютерно-читаемый носитель после воплощения в форме программной инструкции, которая может выполняться различными компьютерными средствами. Компьютерно-читаемый носитель может включать в себя программную инструкцию, файл данных, структуру данных и т.д., отдельно или в комбинации. Программная инструкция, записанная на компьютерно-читаемом носителе, может быть специально разработана и сконфигурирована для настоящего раскрытия или может быть доступна после сообщения специалисту в области компьютерного программного обеспечения.
[00385] Пример компьютерно-читаемого носителя может включать в себя аппаратное устройство, такое как ROM, RAM, флэш-память и т.д., которое специально сконфигурировано для хранения и выполнения программной инструкции. Пример программной инструкции может включать в себя код языка высокого уровня, который может выполняться компьютером с интерпретатором и т.д. помимо кода машинного языка, который создается компилятором. Упомянутое аппаратное устройство может конфигурироваться, чтобы работать как по меньшей мере один программный модуль для выполнения способа согласно настоящему раскрытию, и наоборот.
[00386] Кроме того, вышеупомянутый способ или устройство могут быть реализованы после того, как все или часть таких конфигураций или функций объединены или разделены.
[00387] Хотя настоящее раскрытие было описано выше со ссылкой на желательный вариант осуществления, специалисту в соответствующей области техники должно быть понятно, что настоящее раскрытие может различным образом модифицироваться и изменяться в пределах диапазона, который не выходит за рамки концепции и области настоящего раскрытия, включенного в нижеследующую формулу изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[00388] Настоящее раскрытие может использоваться для кодирования/декодирования сигнала видео.