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

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к способу и устройству кодирования/декодирования видео.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] В последнее время, потребность в высококачественных изображениях с высоким разрешением, таких как изображения высокой четкости (HD) и сверхвысокой четкости (UHD) возрастает в различных областях применения, и соответственно обсуждаются высокоэффективные методы сжатия изображения.
[0003] Существуют различные технологии, такие как технология межкадрового (интер-)предсказания, которая предсказывает пиксельные значения, включенные в текущую картинку (изображение, кадр), из картинки перед или после текущей картинки с использованием технологии сжатия видео, технология внутрикадрового (интра-)предсказания, которая предсказывает пиксельные значения, включенные в текущую картинку, с использованием пиксельной информации в текущей картинке, технология энтропийного кодирования, которая распределяет короткий код значению с высокой частотой появления и длинный код значению с низкой частотой появления. Данные изображения могут эффективно сжиматься с использованием такой технологии сжатия изображения и передаваться или сохраняться.
РАСКРЫТИЕ
ТЕХНИЧЕСКАЯ ЗАДАЧА
[0004] Задачей настоящего изобретения для решения вышеуказанных проблем является предложить способ и устройство кодирования/декодирования изображения для выполнения интра-предсказания на основе доступности опорного пиксела.
[0005] Задачей настоящего изобретения является предложить способ и устройство интер-предсказания.
[0006] Задачей настоящего изобретения является предложить способ и устройство для компенсации движения в единицах подблоков.
[0007] Задачей настоящего изобретения является предложить способ и устройство для определения аффинного кандидата.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
[0008] Для решения вышеуказанной задачи, способ выполнения интра-предсказания в соответствии с вариантом осуществления настоящего изобретения может включать в себя этапы проверки области опорного пиксела, предназначенной для получения информации о корреляции, определения настройки обработки опорного пиксела на основе определения доступности области опорного пиксела и выполнения интра-предсказания в соответствии с определенной настройкой обработки опорного пиксела.
[0009] Способ и устройство кодирования/декодирования изображения в соответствии с настоящим изобретением может генерировать список кандидатов для предсказания информации движения текущего блока, выводить вектор контрольной точки текущего блока на основе списка кандидатов и индекса кандидата, выводить вектор движения текущего блока на основе вектора контрольной точки текущего блока и выполнять интер-предсказание на текущем блоке с использованием вектора движения.
[0010] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, список кандидатов может включать в себя множество аффинных кандидатов.
[0011] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, аффинный кандидат может включать в себя по меньшей мере одно из пространственного кандидата, временного кандидата или сконструированного кандидата.
[0012] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, вектор движения текущего блока может выводиться в единицах подблоков текущего блока.
[0013] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, пространственный кандидат может быть определен на основе того, расположена ли граница текущего блока на границе блока дерева кодирования (границе CTU).
[0014] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, сконструированный кандидат может быть определен на основе комбинации по меньшей мере двух из векторов контрольных точек, соответствующих углам текущего блока.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ
[0015] Характеристики кодирования могут быть улучшены с использованием способа выполнения интра-предсказания на основе доступности опорного пиксела согласно настоящему изобретению, как описано выше.
[0016] В соответствии с настоящим изобретением, характеристики кодирования/декодирования изображения могут быть улучшены за счет интер-предсказания на основе аффинной модели.
[0017] В соответствии с настоящим изобретением, точность предсказания может быть улучшена за счет интер-предсказания в единицах подблоков.
[0018] В соответствии с настоящим изобретением, характеристики кодирования/декодирования интер-предсказания могут быть улучшены за счет эффективного определения аффинного кандидата.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0019] Фиг. 1 представляет собой концептуальную диаграмму системы кодирования и декодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
[0020] Фиг. 2 представляет собой блок-схему устройства кодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
[0021] Фиг. 3 представляет собой блок-схему устройства декодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
[0022] Фиг. 4 представляет собой примерную диаграмму, иллюстрирующую режим интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0023] Фиг. 5 представляет собой концептуальную диаграмму, иллюстрирующую интра-предсказание для направленного режима и ненаправленного режима в соответствии с вариантом осуществления настоящего изобретения.
[0024] Фиг. 6 представляет собой концептуальную диаграмму, иллюстрирующую интра-предсказание относительно режима копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0025] Фиг. 7 представляет собой примерную диаграмму, иллюстрирующую соответствующий блок каждого цветового пространства и область, смежную с ним, в отношении режима копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0026] Фиг. 8 представляет собой примерную диаграмму настройки области для получения информации о корреляции в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0027] Фиг. 9 представляет собой примерную диаграмму для пояснения конфигурации опорного пиксела, используемого для интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0028] Фиг. 10 представляет собой концептуальную диаграмму, иллюстрирующую блок, смежный с целевым блоком для интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0029] Фиг. 11 представляет собой примерную диаграмму для пояснения доступности опорного пиксела в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0030] Фиг. 12 представляет собой примерную диаграмму для пояснения доступности опорного пиксела в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0031] Фиг. 13 представляет собой примерную диаграмму для пояснения доступности опорного пиксела в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0032] Фиг. 14 представляет собой блок-схему последовательности операций, иллюстрирующую способ интра-предсказания режима копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0033] Фиг. 15 представляет собой примерную диаграмму для пояснения предсказания в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0034] Фиг. 16 представляет собой примерную диаграмму для пояснения предсказания в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0035] Фиг. 17 представляет собой примерную диаграмму для пояснения предсказания в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0036] Фиг. 18 представляет собой блок-схему последовательности операций процесса выполнения коррекции в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения.
[0037] Фиг. 19 представляет собой примерную диаграмму для пояснения типа фильтра, применимого к целевому пикселу коррекции, в соответствии с примерным вариантом осуществления настоящего изобретения.
[0038] Фиг. 20 представляет собой примерную диаграмму для пояснения типа фильтра, применимого к целевому пикселу коррекции, в соответствии с вариантом осуществления настоящего изобретения.
[0039] Фиг. 21 иллюстрирует способ интер-предсказания в соответствии в соответствии с вариантом осуществления, к которому применимо настоящее изобретение.
[0040] Фиг. 22 представляет собой вариант осуществления, к которому применимо настоящее изобретение, и относится к способу вывода аффинного кандидата из пространственно/временного соседнего блока.
[0041] Фиг. 23 иллюстрирует способ вывода сконструированного кандидата на основе комбинации векторов движения пространственно/временных соседних блоков в варианте осуществления, к которому применимо настоящее изобретение.
Наилучший режим осуществления изобретения
[0042] Способ и устройство кодирования/декодирования изображения в соответствии с настоящим изобретением может включать в себя этапы проверки области опорного пиксела предназначенной для получения информации о корреляции, определения настройки обработки опорного пиксела на основе определения доступности области опорного пиксела и выполнение интра-предсказания в соответствии с определенной настройкой обработки опорного пиксела.
[0043] Способ и устройство кодирования/декодирования изображения в соответствии с настоящим изобретением может генерировать список кандидатов для предсказания информации движения текущего блока, выводить вектор контрольной точки текущего блока на основе списка кандидатов и индекса кандидата, выводить вектор движения текущего блока на основе вектора контрольной точки текущего блока и выполнять интер-предсказание на текущем блоке с использованием вектора движения.
[0044] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, список кандидатов может включать в себя множество аффинных кандидатов.
[0045] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, аффинный кандидат может включать в себя по меньшей мере одно из пространственного кандидата, временного кандидата или сконструированного кандидата.
[0046] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, вектор движения текущего блока может выводиться в единицах подблоков текущего блока.
[0047] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, пространственный кандидат может быть определен на основе того, расположена ли граница текущего блока на границе блока дерева кодирования (границе CTU).
[0048] В устройстве кодирования/декодирования изображения в соответствии с настоящим изобретением, сконструированный кандидат может быть определен на основе комбинации по меньшей мере двух из векторов контрольных точек, соответствующих углам текущего блока.
РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
[0049] Настоящее изобретение может применяться к различным изменениям и может иметь различные варианты осуществления, и конкретные варианты осуществления будут проиллюстрированы на чертежах и описаны детально. Однако это не подразумевает ограничение настоящего изобретения конкретными вариантами осуществления и должно пониматься как включающее все модификации, эквиваленты и замены, включенные в сущность и технологический объем настоящего изобретения.
[0050] Термины, такие как "первый", "второй", "A" и "B", могут использоваться, чтобы описывать различные компоненты, но компоненты не должны быть ограничены терминами. Термины используются только с целью проведения отличия одного компонента от других компонентов. Например, первый компонент может называться вторым компонентом без отклонения от объема настоящего изобретения, и аналогично, второй компонент может называться первым компонентом. Термин "и/или" включает в себя комбинацию множества связанных описанных предметов или любой один из множества связанных описанных предметов.
[0051] Когда говорится, что элемент "связан" или "соединен" с другим элементом, он может быть непосредственно связан или соединен с другими компонентами, но следует понимать, что могут существовать другие промежуточные компоненты. С другой стороны, когда говорится, что компонент "непосредственно связан" или "непосредственно соединен" с другим компонентом, следует понимать, что не существует другого промежуточного компонента.
[0052] Термины, используемые в настоящем изобретении, используются, чтобы только описывать конкретные варианты осуществления, и не предназначены ограничивать настоящее изобретение. Выражения в единственном числе включают в себя выражения во множественном числе, если контекст явно не указывает иное. В настоящем изобретении термины, такие как "включать в себя" или "иметь" предназначены, чтобы указывать, что имеются признаки, количества, этапы, операции, компоненты, части или их комбинации, описанные в спецификации, и следует понимать, что один или несколько других признаков или количеств, этапов, действий, компонентов, частей или их комбинаций не исключаются заранее.
[0053] Если не определено иное, все термины, используемые здесь, включая технические или научные термины, означают то же самое, что обычно понимается специалистом в данной области техники, к которой относится настоящее изобретение. Термины, такие как термины, определенные в обычно используемом словаре, должны интерпретироваться как согласующиеся со значениями в контексте связанных технологий, и не должны интерпретироваться как идеальные или излишне формальные значения, если только это не определено явно в настоящем изобретении.
[0054] Обычно, одно или несколько цветовых пространств могут быть сконфигурированы в соответствии с цветовым форматом изображения. Оно может состоять из одной или нескольких картинок, имеющих определенный размер, или одной или нескольких картинок, имеющих отличающийся размер в соответствии с цветовым форматом. Например, цветовые форматы, такие как 4:4:4, 4:2:2, 4:2:0 и монохромный (состоящий только из Y), могут поддерживаться в цветовой конфигурации YCbCr. Например, в случае YCbCr 4:2:0, он может состоять из одного компонента яркости (Y в этом примере, Y) и двух компонентов цветности (Cb/Cr в этом примере). Здесь, отношение состава компонента цветности и компонента яркости может иметь горизонтальное и вертикальное отношение 1:2. Например, в случае 4:4:4, он может иметь одно и то же аспектное отношение по горизонтали и вертикали. При конфигурировании как одно или несколько цветовых пространств, как в вышеприведенном примере, картинка может разделяться в каждое цветовое пространство.
[0055] Изображения могут быть классифицированы на I, P, B и т.д. в соответствии с типом изображения (например, типом картинки, типом слайса, типом фрагмента и т.д.). Здесь, тип изображения I может означать изображение, которое самостоятельно кодируется/декодируется без использования опорной картинки, тип изображения P может означать изображение, которое кодируется/декодируется с использованием опорной картинки, но позволяет осуществлять только прямое предсказание, и тип изображения B может означать изображение, которое позволяет осуществлять прямое/обратное предсказание путем выполнения кодирования/декодирования с использованием опорной картинки. Кроме того, в зависимости от настроек кодирования/декодирования, некоторые типы могут комбинироваться (комбинирование P и B), или могут поддерживаться типы изображения разных конфигураций.
[0056]
[0057] Фиг. 1 представляет собой концептуальную диаграмму системы кодирования и декодирования изображений в соответствии с вариантом осуществления настоящего изобретения.
[0058] Со ссылкой на фиг. 1, устройство 105 кодирования и устройство 100 декодирования изображения могут представлять собой персональный компьютер (PC), ноутбук, персональный цифровой ассистент (PDA), портативный мультимедийный проигрыватель (PMP), портативную игровую станцию (PSP), терминал беспроводной связи, пользовательский терминал, такой как смартфон или телевизор, или серверный терминал, такой как сервер приложений и сервер услуг, и могут включать в себя множество устройств, имеющих устройства связи, такие как модемы связи для связи с различными устройствами или проводной или беспроводной связи, память (120, 125) для хранения различных программ и данных для интер- или интра-предсказания для кодирования или декодирования изображения, процессор (110, 115) для вычисления и управления через исполнение программы или тому подобное.
[0059] Кроме того, изображение, закодированное как битовый поток устройством 105 кодирования изображения, может передаваться на устройство 100 декодирования изображения в реальном времени или не в реальном времени через Интернет, сеть беспроводной связи малой дальности действия, беспроводную сеть LAN, сеть WiBro или сеть мобильной связи или через различные интерфейсы связи, такие как кабель или универсальная последовательная шина (USB), и может декодироваться, восстанавливаться как изображение и воспроизводиться в устройстве 100 декодирования изображения. Кроме того, изображение, закодированное в битовом потоке устройством 105 кодирования изображения, может передаваться от устройства 105 кодирования изображения на устройство 100 декодирования изображения посредством считываемого компьютером носителя записи.
[0060] Вышеописанные устройство кодирования изображения и устройство декодирования изображения могут представлять собой отдельные устройства, но могут быть выполнены в одном устройстве кодирования/декодирования изображения в зависимости от реализации. В этом случае, некоторые компоненты устройства кодирования изображения могут быть реализованы так, чтобы включать в себя по меньшей мере ту же самую структуру или выполнять по меньшей мере те же самые функции, что и по существу те же самые технические элементы, что и некоторые компоненты устройства декодирования изображения.
[0061] Поэтому, в подробном описании следующих технических элементов и их принципа функционирования, повторное описание соответствующих технических элементов будет опущено. Кроме того, поскольку устройство декодирования изображения соответствует вычислительному устройству, которое применяет способ кодирования изображения, выполняемый устройством кодирования изображения, для декодирования, следующее описание будет фокусироваться на устройстве кодирования изображения.
[0062] Вычислительное устройство может включать в себя память, которая хранит программный модуль или модуль программного обеспечения, который реализует способ кодирования изображения и/или способ декодирования изображения, и процессор, который соединен с памятью и выполняет программу. Здесь, устройство кодирования изображения может называться кодером, и устройство декодирования изображения может называться декодером, соответственно.
[0063]
[0064] Фиг. 2 представляет собой блок-схему устройства кодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
[0065] Со ссылкой на фиг. 2, устройство 20 кодирования изображения может включать в себя модуль (блок) 200 предсказания, модуль 205 вычитания, модуль 210 преобразования, модуль 215 квантования, модуль 220 деквантования и модуль 225 обратного преобразования, модуль 230 суммирования, модуль 235 фильтрации, буфер 240 закодированной картинки и энтропийный кодер 245.
[0066] Модуль 200 предсказания может быть реализован с использованием модуля предсказания, который представляет собой модуль программного обеспечения и может генерировать блок предсказания с использованием способа интра-предсказания или способа интер-предсказания для блоков, подлежащих кодированию. Модуль 200 предсказания может генерировать блок предсказания путем предсказания текущего блока, подлежащего кодированию в текущее время в изображении. Другими словами, модуль 200 предсказания может генерировать блок предсказания, имеющий пиксельное значение предсказания (предсказанное пиксельное значение) каждого пиксела, сгенерированного путем предсказания пиксельного значения каждого пиксела текущего блока, подлежащего кодированию в изображении в соответствии с интра- или интер-предсказанием. Кроме того, модуль 200 предсказания может передавать информацию, необходимую для генерации блока предсказания, такую как информация о режиме предсказания, таком как режим интра-предсказания или режим интер-предсказания, на модуль кодирования, чтобы побудить модуль кодирования кодировать информацию о режиме предсказания. Здесь, блок обработки, для которого выполняется предсказание, и блок обработки, для которого определяются способ предсказания и конкретное содержимое, могут определяться в соответствии с настройками кодирования/декодирования. Например, способ предсказания, режим предсказания и тому подобное определяются в модуле предсказания, и предсказание может выполняться в модуле преобразования.
[0067] В модуле интер-предсказания, модель поступательного движения и модель не-поступательного движения (модель аффинного движения) могут разделяться в соответствии со способом предсказания движения. В случае модели поступательного движения, предсказание может выполняться с учетом только параллельного движения, а в случае модели не-поступательного движения, предсказание может выполняться с учетом движения, такого как вращение, построение перспективы и приближение/отдаление, а также параллельное движение. С учетом однонаправленного предсказания, один вектор движения может требоваться для модели поступательного движения, но один или несколько векторов движения могут требоваться для модели не-поступательного движения. В случае модели не-поступательного движения, каждый вектор движения может представлять собой информацию, применяемую к предварительно установленному положению текущего блока, такую как верхняя левая вершина и верхняя правая вершина текущего блока, и положение области, подлежащей предсказанию для текущего блока через соответствующий вектор движения, может быть получено в единицах пикселов или подблоков. В модуле интер-предсказания, некоторые процессы, описанные ниже, могут применяться совместно, а некоторые другие процессы могут применяться по отдельности в соответствии с моделью движения.
[0068] Модуль интер-предсказания может включать в себя модуль построения опорной картинки, модуль оценки движения, модуль компенсации движения, модуль определения информации движения и модуль кодирования информации движения. Модуль построения опорной картинки может включать картинки, закодированные перед или после текущей картинки, в списки L0 и L1 опорных картинок. Блок предсказания может быть получен из опорной картинки, включенной в список опорных картинок, и текущая картинка может также быть сконфигурирована как опорная картинка в соответствии с настройками кодирования и включена в по меньшей мере один из списков опорных картинок.
[0069] В модуле интер-предсказания, модуль построения опорной картинки может включать в себя модуль интерполяции опорной картинки и может выполнять процесс интерполяции для десятичной пиксельной единицы в соответствии с точностью интерполяции. Например, 8-отводный фильтр интерполяции на основе DCT может применяться к компоненту яркости, и 4-отводный фильтр интерполяции на основе DCT может применяться к компоненту цветности.
[0070] В модуле интер-предсказания, модуль оценки движения может соответствовать процессу поиска блока, имеющего высокую корреляцию с текущим блоком, посредством опорной картинки, и могут использоваться различные способы, такие как алгоритм полного сопоставления блоков на основе поиска (FBMA) и трехэтапный поиск (TSS). Кроме того, модуль компенсации движения соответствует процессу получения блока предсказания через процесс оценки движения.
[0071] В модуле интер-предсказания, модуль определения информации движения может выполнять процесс для выбора оптимальной информации движения текущего блока, и информация движения может быть закодирована посредством режима кодирования информации движения, такого как режим пропуска, режим слияния и конкурентный режим. Режим может быть сконфигурирован путем комбинирования поддерживаемого режима в соответствии с моделью движения, и режим пропуска (перенос), режим пропуска (иной, чем перенос), режим слияния (перенос), режим слияния (иной, чем перенос), конкурентный режим (перенос) и конкурентный режим (иной, чем перенос) могут быть его примерами. В зависимости от настроек кодирования, некоторые режимы могут быть включены в группу кандидатов.
[0072] Режим кодирования информации движения может получать значение предсказания информации движения (вектор движения, опорную картинку, направление предсказания и т.д.) текущего блока из по меньшей мере одного блока-кандидата, а когда поддерживаются два или более блока-кандидата, может возникать информация выбора оптимального кандидата. В режиме пропуска (без остаточного сигнала) и режиме слияния (с остаточным сигналом), значение предсказания может использоваться в качестве информации движения текущего блока, а в конкурентном режиме, может возникать информация разности между информацией движения текущего блока и значением предсказания.
[0073] Группа кандидатов для значения предсказания информации движения текущего блока может формироваться адаптивно и по-разному в соответствии с режимом кодирования информации движения. Информация движения блока (например, левого, верхнего, верхнего левого, верхнего правого, нижнего левого блока и т.д.), пространственно смежного с текущим блоком, может быть включена в группу кандидатов, и информация движения блока, смежного по времени с текущим блоком, может быть включена в группу кандидатов, и смешанная информация движения пространственного кандидата и временного кандидата может быть включена в группу кандидатов.
[0074] Смежный по времени блок может включать в себя блок в другом изображении, соответствующий текущему блоку, и может означать блок, расположенный в левом, правом, верхнем, нижнем, верхнем левом, верхнем правом, нижнем левом, нижнем правом блоке или т.п. блока. Смешанная информация движения может означать информацию, полученную как среднее, медиана и т.д. через информацию движения пространственно смежных блоков и информацию движения смежных по времени блоков.
[0075] Может существовать приоритетный порядок для построения группы кандидатов значения предсказания информации движения. Порядок, включенный в конфигурацию группы кандидатов значения предсказания, может определяться в соответствии с приоритетным порядком, и конфигурация группы кандидатов может быть завершена, когда некоторое число групп кандидатов (определенное в соответствии с режимом кодирования информации движения) заполнено в соответствии с приоритетным порядком. Здесь, приоритетный порядок может определяться в порядке информации движения пространственно смежных блоков, информации движения смежных по времени блоков и смешанной информации движения пространственных кандидатов и временных кандидатов, но также возможны другие модификации.
[0076] Например, среди пространственно смежных блоков, включение в группу кандидатов может осуществляться в порядке: левый - верхний - верхний правый - нижний левый - верхний левый блок и т.д., и среди смежных по времени блоков, включение в группу кандидатов может осуществляться в порядке: нижний правый - средний - правый - нижний блок и т.д.
[0077] Модуль 205 вычитания может генерировать остаточный блок путем вычитания блока предсказания из текущего блока. Другими словами, модуль 205 вычитания может генерировать остаточный блок, который представляет собой остаточный сигнал в форме блока, путем вычисления разности между пиксельным значением каждого пиксела текущего блока, подлежащего кодированию, и пиксельным значением предсказания каждого пиксела блока предсказания, сгенерированного посредством модуля предсказания. Кроме того, модуль 205 вычитания может генерировать остаточный блок в соответствии с единицей, отличной от блочной единицы, полученной посредством модуля деления блока, описанного далее.
[0078] Модуль 210 преобразования может преобразовывать сигнал, принадлежащий пространственной области, в сигнал, принадлежащий частотной области, и сигнал, полученный через процесс преобразования, называется коэффициентом преобразования (преобразованным коэффициентом). Например, остаточный блок, имеющий остаточный сигнал, принятый от модуля вычитания, может быть преобразован для получения блока преобразования, имеющего преобразованный коэффициент, и входной сигнал определяется в соответствии с настройками кодирования, что не ограничивается остаточным сигналом.
[0079] Модуль преобразования может преобразовывать остаточный блок с использованием методов преобразования, таких как преобразование Адамара, дискретное синусное преобразование (преобразование на основе DST) и дискретное косинусное преобразование (преобразование на основе DCT). Однако настоящее изобретение может не ограничиваться ими, и могут использоваться различные методы преобразования, которые улучшают и модифицируют его.
[0080] По меньшей мере один из методов преобразования может поддерживаться, и по меньшей мере один детальный метод преобразования может поддерживаться в каждом методе преобразования. В этом случае, детальный метод преобразования может представлять собой метод преобразования, в котором некоторые базовые векторы конфигурируются различным образом в каждом методе преобразования.
[0081] Например, в случае DCT, могут поддерживаться один или несколько детальных методов преобразования от DCT-I до DCT-VIII, и в случае DST, могут поддерживаться один или несколько детальных методов преобразования от DST-I до DST-VIII. Некоторые из детальных методов преобразования могут быть сконфигурированы, чтобы конфигурировать группу кандидатов для метода преобразования. Например, DCT-II, DCT-VIII и DST-VII могут быть сконфигурированы как группа кандидатов метода преобразования для выполнения преобразования.
[0082] Преобразование может выполняться в горизонтальном/ вертикальном направлении. Например, пиксельное значение в пространственной области может преобразовываться в частотную область путем выполнения полного двумерного преобразования, которое выполняет одномерное преобразование в горизонтальном направлении с использованием метода преобразования DCT-II и одномерное преобразование в вертикальном направлении с использованием метода преобразования DST-VIII.
[0083] Преобразование может выполняться с использованием одного фиксированного метода преобразования, или преобразование может выполняться путем адаптивного выбора метода преобразования в соответствии с настройками кодирования/декодирования. Здесь, в адаптивном случае, метод преобразования может выбираться с использованием явного или неявного способа. В явном случае, каждая информация выбора метода преобразования или информация выбора набора методов преобразования, применяемых в горизонтальном и вертикальном направлениях, может появляться в единице, такой как блок. В неявном случае, настройка кодирования может определяться в соответствии с типом (I/P/B) изображения, цветовым компонентом, размером блока, формой и режимом интра-предсказания, и предопределенный метод преобразования может выбираться соответственно.
[0084] Кроме того, возможно, что некоторые из преобразований опускаются в зависимости от настроек кодирования. Это означает, что одна или несколько горизонтальных/вертикальных единиц могут быть опущены, либо явно, либо неявно.
[0085] Кроме того, модуль преобразования может передавать информацию, необходимую для генерации блока преобразования, на модуль кодирования, чтобы закодировать ее, записать закодированную информацию в битовый поток и передать ее на декодер, и модуль декодирования декодера может синтаксически анализировать переданную информацию и использовать ее в процессе обратного преобразования.
[0086] Модуль 215 квантования может квантовать входной сигнал, и сигнал, полученный через процесс квантования, называется квантованным коэффициентом. Например, блок квантования, имеющий квантованный коэффициент, может быть получен путем квантования остаточного блока, имеющего остаточный преобразованный коэффициент, принятый от модуля преобразования, и входной сигнал определяется в соответствии с настройками кодирования, которые не ограничены остаточным коэффициентом преобразования.
[0087] Модуль квантования может квантовать преобразованный остаточный блок с использованием метода квантования, такого как равномерное пороговое квантование мертвой зоны, взвешенная матрица квантования и т.д., но может не ограничиваться ими, и могут использоваться различные методы квантования, которые улучшают и модифицируют его.
[0088] В зависимости от настроек кодирования, процесс квантования может опускаться. Например, процесс квантования (включая его обратный процесс) может опускаться в соответствии с настройками кодирования (например, параметр квантования составляет 0; то есть, среда сжатия без потерь). В качестве другого примера, если результат сжатия через квантование не достигается в соответствии с характеристиками изображения, то процесс квантования может быть опущен. В этом случае, область, в которой процесс квантования опущен среди блоков (M×N) квантования, может представлять собой всю область или частичную область (M/2×N/2, M×N/2, M/2×N и т.д.), и информация выбора пропуска квантования может определяться неявно или явно.
[0089] Модуль квантования может передавать информацию, необходимую для генерирования блока квантования, на модуль кодирования, чтобы кодировать ее, записывать закодированную информацию в битовый поток и передавать ее на декодер, и модуль декодирования декодера может синтаксически анализировать переданную информацию и использовать ее в процессе деквантования.
[0090] Хотя приведенный выше пример был описан в предположении, что остаточный блок преобразуется и квантуется посредством модуля преобразования и модуля квантования, остаточный блок, имеющий коэффициенты преобразования, может генерироваться путем преобразования остаточного сигнала остаточного блока, и процесс квантования может не выполняться. Кроме того, можно не только выполнять процесс квантования без преобразования остаточного сигнала в коэффициент преобразования, но также не выполнять процесс преобразования и квантования. Это может определяться в соответствии с настройкой кодера.
[0091] Модуль 220 деквантования обратно квантует остаточный блок, квантованный модулем 215 квантования. То есть, модуль 220 деквантования обратно квантует последовательность частотных коэффициентов квантования, чтобы сгенерировать остаточный блок, имеющий частотный коэффициент.
[0092] Модуль 225 обратного преобразования обратно преобразует остаточный блок, квантованный модулем 220 деквантования. То есть модуль 225 обратного преобразования обратно преобразует частотные коэффициенты обратно квантованного остаточного блока, чтобы сгенерировать остаточный блок, имеющий пиксельное значение, то есть восстановленный остаточный блок. Здесь, модуль 225 обратного преобразования может выполнять обратное преобразование с использованием способа преобразования, используемого модулем 210 преобразования, в обратном порядке.
[0093] Сумматор 230 восстанавливает текущий блок путем суммирования блока предсказания, предсказанного модулем 200 предсказания, и остаточного блока, восстановленного модулем 225 обратного преобразования. Восстановленный текущий блок хранится как опорная картинка (или опорный блок) в буфере 240 закодированной картинки и может использоваться как опорная картинка при кодировании следующего блока, другого блока или другой картинки в будущем.
[0094] Модуль 235 фильтрации может включать в себя один или несколько процессов фильтров пост-обработки, таких как фильтр деблокирования (устранения блочности), адаптивное к выборке смещение (SAO) и адаптивный контурный фильтр (ALF). Фильтр устранения блочности может удалять искажение блоков, вызванное границей между блоками в восстановленной картинке. ALF может выполнять фильтрацию на основе значения, полученного путем сравнения восстановленного изображения после того, как блок отфильтрован фильтром устранения блочности, с исходным изображением. SAO может восстанавливать разность смещения из исходного изображения в единице пиксела для остаточного блока, к которому применяется фильтр устранения блочности. Эти фильтры пост-обработки могут применяться к восстановленной картинке или блоку.
[0095] Буфер 240 закодированной картинки может хранить блоки или картинки, восстановленные посредством модуля 235 фильтрации. Восстановленный блок или картинка, хранящиеся в буфере 240 закодированной картинки, могут предоставляться на модуль 200 предсказания, который выполняет интра-предсказание или интер-предсказание.
[0096] Модуль 245 энтропийного кодирования сканирует сгенерированную последовательность частотных коэффициентов квантования в соответствии с различными способами сканирования, чтобы сгенерировать последовательность коэффициентов квантования, и выводит ее путем кодирования с использованием метода энтропийного кодирования и тому подобного. Диаграмма сканирования может быть установлена в одну из различных диаграмм, таких как зигзаг, диагональ и растр. Кроме того, можно сгенерировать и вывести закодированные данные, включающие в себя информацию кодирования, переданную от каждого компонента, в битовом потоке.
[0097]
[0098] Фиг. 3 представляет собой блок-схему устройства декодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
[0099] Со ссылкой на фиг. 3, устройство 30 декодирования изображения может быть сконфигурировано, чтобы включать в себя модуль 305 энтропийного декодирования, модуль 310 предсказания, модуль 315 деквантования, модуль 320 обратного преобразования, сумматор/вычитатель 325, фильтр 330 и буфер 335 декодированной картинки.
[0100] Кроме того, модуль 310 предсказания может включать в себя модуль интра-предсказания и модуль интер-предсказания.
[0101] Сначала, когда принимается битовый поток изображения, переданный от устройства 20 кодирования изображения, он может доставляться на модуль 305 энтропийного декодирования.
[0102] Модуль 305 энтропийного декодирования может декодировать битовый поток и декодировать данные декодирования, включая коэффициенты квантования и информацию декодирования, передаваемые на каждый компонент.
[0103] Модуль 310 предсказания может генерировать блок предсказания на основе данных, переданных от модуля 305 энтропийного декодирования. Здесь, на основе опорного изображения, хранящегося в буфере 335 декодированной картинки, может формироваться список опорных картинок с использованием метода конфигурации по умолчанию.
[0104] Модуль интер-предсказания может включать в себя модуль построения опорной картинки, модуль компенсации движения и модуль декодирования информации движения, и некоторые из них могут выполнять тот же самый процесс, что и кодер, а некоторые могут выполнять обратный процесс.
[0105] Модуль 315 деквантования может обратно квантовать квантованные коэффициенты преобразования, предоставленные из битового потока и декодированные модулем 305 энтропийного декодирования.
[0106] Модуль 320 обратного преобразования может генерировать остаточный блок путем применения обратного DCT, обратного целочисленного преобразования или аналогичных методов обратного преобразования к коэффициентам преобразования.
[0107] В этом случае, модуль 315 деквантования и модуль 320 обратного преобразования могут выполнять процессы, обратные процессам, выполненным модулем 210 преобразования и модулем 215 квантования устройства 20 кодирования изображения, описанного выше, и могут быть реализованы различными способами. Например, могут использоваться тот же процесс и обратное преобразование, которые используются совместно с модулем 210 преобразования и модулем 215 квантования, и информация о преобразовании и процессе квантования (например, размер преобразования и форма преобразования, тип квантования и т.д.) от устройства 20 кодирования изображения могут использоваться, чтобы выполнять обратным образом процессы преобразования и квантования.
[0108] Остаточный блок, являющийся результатом процессов деквантования и обратного преобразования, может суммироваться с блоком предсказания, выведенным модулем 310 предсказания, чтобы сгенерировать блок восстановленного изображения. Суммирование может выполняться модулем 325 сумматора/вычитателя.
[0109] Фильтр 330 может применять фильтр устранения блочности, чтобы удалить эффект блочности, если необходимо, для блока восстановленного изображения, и дополнительные контурные фильтры могут также использоваться перед и после процесса декодирования для улучшения качества видео.
[0110] Восстановленные и отфильтрованные блоки изображения могут храниться в буфере 335 декодированной картинки.
[0111] Хотя не показано на чертеже, устройство кодирования/декодирования картинки может дополнительно включать в себя модуль разделения картинки и модуль разделения блока.
[0112] Модуль разделения картинки может разделять (или разбивать) картинку на по меньшей мере одну единицу обработки, такую как цветовое пространство (например, YCbCr, RGB, XYZ или тому подобное), фрагмент, слайс или базовая единица кодирования (или максимальная единица кодирования) или тому подобное. Модуль разделения блока может делить базовую единицу кодирования на по меньшей мере одну единицу обработки (например, единицы кодирования, предсказания, преобразования, квантования, энтропии и контурной фильтрации).
[0113] Базовая единица кодирования может быть получена путем разделения картинок в горизонтальном и вертикальном направлениях с регулярными интервалами. На основе этого, может выполняться разбиение фрагментов, слайсов или тому подобного, но без ограничения этим. Единица разделения, такая как фрагмент и слайс, может состоять из целого кратного базового блока кодирования, но исключение может возникать в единице разделения, расположенной на границе изображения. Поэтому может происходить регулировка размера базового блока кодирования.
[0114] Например, картинка может разделяться на единицы разделения после разбиения как базовая единица кодирования, или картинка может разделяться на базовые единицы кодирования после разбиения как единица разделения. В настоящем изобретении, предполагается, что порядок разбиения и разделения каждой единицы является первым, но может не ограничиваться этим, и последний также возможен в зависимости от настроек кодирования/декодирования. В последнем случае, размер базовой единицы кодирования может преобразовываться в адаптивный случай в соответствии с единицей разделения (фрагментом и т.д.). То есть, это означает, что может поддерживаться базовый блок кодирования, имеющий различный размер для каждой единицы разделения.
[0115] В настоящем изобретении, случай, в котором картинка разбивается на базовую единицу кодирования, установлен как базовая настройка, и ниже будет описан пример. Настройка по умолчанию может означать, что картинка не разделяется на фрагменты или слайса, или картинка представляет собой один фрагмент или один слайс. Однако, как описано выше, когда каждая единица разделения (фрагмент, слайс и т.д.) сначала разбивается и разделяется на базовые единицы кодирования на основе полученных единиц (т.е. каждая единица разделения не является целым кратным базовой единицы кодирования и т.д.), следует понимать, что различные варианты осуществления, описанные ниже, могут применяться точно так же или изменяться.
[0116] В случае слайса среди единиц разделения, он может состоять из пачки из по меньшей мере одного последовательного блока в соответствии со схемой сканирования, и в случае фрагмента, он может состоять из пачки пространственно смежных блоков в прямоугольной форме, и может быть сконфигурирован путем определения других дополнительных поддерживаемых единиц. Слайс и фрагмент могут представлять собой единицу разделения, поддерживаемую с целью параллельной обработки и т.д., и поэтому ссылка между единицами разделения может быть ограничена (то есть, ссылка невозможна).
[0117] В случае слайса, информация о начальном положении последовательных блоков может генерироваться как информация разделения для каждой единицы. В случае фрагмента, может генерироваться информация о линиях разделения горизонтального и вертикального направлений или информация положения (верхнее-левое, верхнее-правое, нижнее-левое, нижнее-правое положение) фрагмента.
[0118] В этом случае, слайс и фрагмент могут разделяться на множество единиц в соответствии с настройками кодирования/ декодирования.
[0119] Например, некоторые единицы <A> могут представлять собой единицы, включающие в себя информацию настроек, которая влияет на процесс кодирования/декодирования (то есть, включают в себя заголовки фрагментов или заголовки слайсов), и некоторые единицы <B> могут представлять собой единицы, не включающие в себя информацию настроек. Альтернативно, некоторые единицы <A> могут представлять собой единицы, которые не могут ссылаться на другие единицы в процессе кодирования/декодирования, и некоторые единицы <B> могут представлять собой единицы, которые могут ссылаться на другие единицы. Кроме того, некоторые единицы <A> могут иметь вертикальное отношение, включающее в себя другие единицы <B>, или некоторые единицы <A> могут иметь эквивалентное отношение с другими единицами <B>.
[0120] Здесь, A и B могут представлять собой слайс и фрагмент (или фрагменты и слайсы). Альтернативно, A и B могут состоять из одного из слайсов и фрагментов. Например, A может представлять собой <тип 1> слайса/фрагмента, и B может представлять собой <тип 2> слайса/фрагмента.
[0121] Здесь, тип 1 и тип 2 могут, каждый, представлять собой один слайс или фрагмент. Альтернативно, тип 1 (включая тип 2) может представлять собой множество слайсов или фрагментов (набор слайсов или набор фрагментов), и тип 2 может представлять собой один слайс или фрагмент.
[0122] Как описано выше, настоящее изобретение описано в предположении, что картинка состоит из одного слайса или фрагмента, но когда возникают две или более единицы разделения, описание выше может применяться и пониматься в вариантах осуществления, описанных ниже. Кроме того, A и B являются примерами характеристик, которые может иметь единица, и также возможны примеры, в которых A и B каждого примера смешаны.
[0123] Тем временем, она может разделяться на блоки разных размеров посредством модуля разделения блока. Здесь, блоки могут состоять из одного или нескольких блоков в соответствии с цветовым форматом (например, один блок яркости и два блока цветности и т.д.), и размер блока может определяться в соответствии с цветовым форматом. Далее, для удобства описания, описание будет основываться на блоке соответственно одному компоненту цвета (компоненту яркости).
[0124] Следует понимать, что содержания, описанные ниже, нацелены на один компонент цвета, но могут применяться к другим компонентам цвета пропорционально отношению (например, в случае YCbCr 4:2:0, отношение горизонтальной длины к вертикальной длине компонента яркости и компонента цветности составляет 2:1) в соответствии с цветовым форматом. Кроме того, хотя возможно выполнить разделение блока, зависимое от других компонентов цвета (например, в зависимости от результата разделения блока Y в Cb/Cr), следует понимать, что независимое разделение блока может быть возможным для каждого компонента цвета. Кроме того, хотя может использоваться одна общая настройка разделения блока (с учетом пропорции к отношению длины), необходимо учитывать и понимать, что настройки разделения отдельного блока используются в соответствии с компонентами цвета.
[0125] Блок может иметь переменный размер, такой как M×N (M и N являются целыми, такими как 4, 8, 16, 32, 64 и 128), и может представлять собой единицу (блок кодирования) для выполнения кодирования. Подробно, он может представлять собой единицу, которая является основой для предсказания, преобразования, квантования и энтропийного кодирования и обычно называется блоком в настоящем изобретении. Здесь, блок означает не только квадратный блок, но может пониматься как широкий термин, включающий в себя различные типы областей, такие как треугольник и круг, и настоящее изобретение будет главным образом описано для случая квадрата.
[0126] Модуль разделения блока может быть настроен в отношении каждого компонента устройства кодирования и устройства декодирования изображения, и размер и форма блока могут определяться посредством этого процесса. Здесь, настраиваемый блок может определяться по-разному в соответствии с компонентом, и блок предсказания в единице предсказания, блок преобразования в единице преобразования и блок квантования в единице квантования могут соответствовать этому. Однако настоящее изобретение может не ограничиваться этим, и единица блока может дополнительно определяться в соответствии с другими компонентами. В настоящем изобретении предполагается, что вход и выход представлены блоками (т.е. прямоугольниками) в каждом компоненте, но в некоторых компонентах возможны вход/выход других форм (например, квадрат, треугольник и т.д.).
[0127] Размер и форма исходного (или начального) блока единицы разделения блока могут определяться из более высокой единицы. Например, в случае блока кодирования, базовый блок кодирования может представлять собой исходный блок, и в случае блока предсказания, блок кодирования может представлять собой исходный блок. Кроме того, в случае блока преобразования, блок кодирования или блок предсказания могут представлять собой исходный блок, и это может определяться в соответствии с настройками кодирования/декодирования.
[0128] Например, если режим кодирования является интра-режимом, блок предсказания может представлять собой более высокую единицу блока преобразования, а если режим кодирования является интер-режимом, блок предсказания может представлять собой единицу, независимую от блока преобразования. Исходный блок, который является начальной единицей разделения, может разделяться на блоки малого размера, и если оптимальный размер и форма определены в соответствии с разделением блока, блок может определяться как исходный блок более низкой единицы. Исходный блок, который представляет собой начальную единицу разделения, может рассматриваться как исходный блок более высокой единицы. Здесь, более высокая единица может представлять собой блок кодирования, и более низкая единица может представлять собой блок предсказания или блок преобразования, но не ограничивается этим. Когда исходный блок более низкой единицы определяется так, как в примере выше, может выполняться процесс разделения для нахождения оптимального размера и формы блока как более высокой единицы.
[0129] Подытоживая сказанное, модуль разделения блока может разделять базовую единицу кодирования (или максимальную единицу кодирования) на по меньшей мере одну единицу кодирования (или более низкую единицу кодирования). Кроме того, единица кодирования может разделяться на по меньшей мере одну единицу предсказания и может разделяться на по меньшей мере одну единицу преобразования. Единица кодирования может разделяться на по меньшей мере один блок кодирования, блок кодирования может разделяться на по меньшей мере один блок предсказания и разделяться на по меньшей мере один блок преобразования. Единица предсказания может разделяться на по меньшей мере один блок предсказания, и единица преобразования может разделяться на по меньшей мере один блок преобразования.
[0130] В этом случае, некоторые блоки могут комбинироваться с другими блоками, чтобы выполнять один процесс разделения. Например, когда блок кодирования и блок преобразования комбинируются как одна единица, выполняется процесс разделения, чтобы получить оптимальные размер и форму блока, которые могут быть не только оптимальным размером и формой блока кодирования, но также оптимальным размером и формой блока преобразования. Альтернативно, блок кодирования и блок преобразования могут комбинироваться в одну единицу, блок предсказания и блок преобразования могут комбинироваться в одну единицу, и блок кодирования, блок предсказания и блок преобразования могут комбинироваться в одну единицу. Кроме того, возможны комбинации других блоков. Однако комбинация не применяется совместно в изображении (картинке, слайсе, фрагменте и т.д.), но может адаптивно определяться в соответствии с подробными условиями в единицах блоков (например, тип изображения, режим кодирования, размер/форма блока, информация режима предсказания и т.д.).
[0131] Как описано выше, когда оптимальный размер и форма блока найдены, может генерироваться информация режима (например, информация разделения и т.д.). Информация режима может храниться в битовом потоке вместе с информацией (например, относящейся к предсказанию информацией, относящейся к преобразованию информацией и т.д.), сгенерированной компонентом, которому принадлежит блок, и переданной на декодер, и может синтаксически анализироваться в модуле того же уровня в декодере и использоваться в процессе декодирования изображения.
[0132] Далее будет описан способ разделения, и, для удобства описания, предполагается, что исходный блок имеет форму квадрата. Однако исходный блок может применяться тем же самым или аналогичным образом даже в форме треугольника, но не ограничен этим.
[0133] Могут поддерживаться различные способы для разделения блока, но настоящее изобретение будет фокусироваться на разделении на основе дерева, и может поддерживаться по меньшей мере одно разделение дерева. В этом случае, могут поддерживаться квадродерево (QT), двоичное дерево (BT), троичное дерево (TT) и тому подобное. Когда поддерживается один способ на основе дерева, это может называться разделением на основе одного дерева, и когда поддерживаются два или более способа на основе дерева, это может называться способом на основе множества деревьев.
[0134] Разделение на основе квадродерева означает, что блок разделяется на два в горизонтальном и вертикальном направлении соответственно, разделение на основе двоичного дерева означает, что блок разделяется на два либо в горизонтальном, либо в вертикальном направлении, и разделение на основе троичного дерева означает, что блок разделяется на три либо в горизонтальном, либо в вертикальном направлении.
[0135] В настоящем изобретении, если блок перед разделением представляет собой M×N, предполагается, что блок разделяется на четыре M/2×N/2 в случае разделения на основе квадродерева, блок разделяется на M/2×N или M×N/2 в случае разделения на основе двоичного дерева, и блок разделяется на M/4×N/M/2×N/M/4×N или M×N/4/M×N/2/M×N/4 в случае разделения на основе троичного дерева. Однако результат разделения не ограничен вышеприведенным случаем, и могут быть возможны примеры различных модификаций.
[0136] В зависимости от настроек кодирования/ декодирования, может поддерживаться один или несколько способов разделения на основе дерева. Например, может поддерживаться разделение на основе квадродерева, могут поддерживаться разделение на основе квадродерева и разделение на основе двоичного дерева, могут поддерживаться разделение на основе квадродерева и разделение на основе троичного дерева, или могут поддерживаться разделение на основе квадродерева, разделение на основе двоичного дерева и разделение на основе троичного дерева.
[0137] Вышеописанный пример представляет собой пример случая, где базовым способом разделения является квадродерево, и разделение на основе двоичного дерева и разделение на основе троичного дерева включены в дополнительные режимы разделения в зависимости от того, поддерживаются ли другие деревья, но возможны различные модификации. Здесь, информация о том, поддерживаются ли другие деревья (bt_enabled_flag, tt_enabled_flag, bt_tt_enabled_flag и т.д. может иметь значение 0 или 1; если 0: не поддерживается, и если 1: поддерживается), может определяться неявно в соответствии с настройками кодирования/декодирования или может определяться явно в единице последовательности, картинки, слайса, фрагмента или т.п.
[0138] Информация разделения может включать в себя информацию о том, следует ли разделять (tree_part_flag или qt_part_flag, bt_part_flag, tt_part_flag, bt_tt_part_flag может иметь значение 0 или 1; и если 0: не разделяется, а если 1: разделяется). Кроме того, информация о направлении разделения (dir_part_flag или bt_dir_part_flag, tt_dir_part_flag, bt_tt_dir_part_flag может иметь значение 0 или 1; если 0: <горизонтальное>, а если 1: <вертикальное>) может добавляться в соответствии со способом разделения (на основе двоичного дерева, троичного дерева), которая может представлять собой информацию, которая может генерироваться, когда разделение выполняется.
[0139] Когда поддерживается множество разделений на основе дерева, возможны различные конфигурации информации разделения. Дальнейшее будет описано в предположении примера того, как информация разделения конфигурируется на одном уровне глубины (т.е. рекурсивное разделение может быть возможным, поскольку поддерживаемая глубина разделения установлена в один или более, но для удобства пояснения).
[0140] В качестве примера (1), проверяется информация о том, следует ли проводить разделение. Здесь, если разделение не выполняется, разделение заканчивается.
[0141] Если разделение выполняется, проверяется информация разделения для типа разделения (например, tree_idx; если 0: QT, если 1: BT, если 2: TT). В этом случае, информация направления разделения дополнительно проверяется в соответствии с выбранным типом разделения, и процесс переходит к следующему этапу (если дополнительное разделение возможно по некоторым причинам, например, когда глубина разделения не достигла максимального значения и т.д., разделение перезапускается, а если разделение невозможно, разделение заканчивается.)
[0142] В качестве примера (2), проверяется информация о том, следует ли проводить разделение для некоторых способов на основе дерева (QT), и процесс переходит к следующему этапу. Здесь, если разделение не выполняется, проверяется информация о том, следует ли проводить разделение для некоторых способов на основе дерева (BT). Здесь, если разделение не выполняется, проверяется информация о том, следует ли проводить разделение для некоторых способов на основе дерева (TT). Здесь, если разделение не выполняется, процесс разделения заканчивается.
[0143] Если выполняется разделение некоторым способом на основе дерева (QT), процесс переходит к следующему этапу. Кроме того, если выполняется разделение некоторым из способов на основе дерева (BT), проверяется информация направления разделения, и процесс переходит к следующему этапу. Кроме того, если разделение некоторым из способов на основе дерева (TT) выполняется, проверяется информация направления разделения, и процесс переходит к следующему этапу.
[0144] В качестве примера (3), проверяется информация о том, следует ли проводить разделение для некоторых способов на основе дерева (QT). Здесь, если разделение не выполняется, проверяется информация о том, следует ли проводить разделение для некоторых способов на основе дерева (BT и TT). Здесь, если разделение не выполняется, процесс разделения заканчивается.
[0145] Если разделение некоторым из способов на основе дерева (QT) выполняется, процесс переходит к следующему этапу. Кроме того, если разделение некоторым из способов на основе дерева (BT и TT) выполняется, проверяется информация направления разделения, и процесс переходит к следующему этапу.
[0146] Вышеописанный пример может представлять собой случай, где приоритет разделения на основе дерева существует (примеры 2 и 3) или не существует (пример 1), но могут быть возможны примеры различных модификаций. Кроме того, в вышеописанном примере, разделение текущей стадии представляет собой пример для пояснения случая, который не относится к результату разделения предыдущей стадии, но также возможно установить разделение текущей стадии в зависимости от результата разделения предыдущей стадии.
[0147] Например, в случае примеров 1-3, если разделение некоторых способов на основе дерева (QT) выполняется на предыдущем этапе и процесс проходит к текущему этапу, разделение теми же самыми способами на основе дерева (QT) может поддерживаться на текущем этапе.
[0148] С другой стороны, если разделение некоторыми способами на основе дерева (QT) не выполняется на предыдущем этапе, а разделение другими способами на основе дерева (BT или TT) выполняется и процесс проходит к текущему этапу, то также возможно, что разделения некоторыми способами на основе дерева (BT и TT), за исключением разделений некоторыми способами на основе дерева (QT), поддерживаются на последующих этапах, включая текущий этап.
[0149] В вышеописанном случае, это означает, что конфигурации на основе дерева, поддерживаемые для разделения блока, могут быть адаптивными, и таким образом, вышеописанные конфигурации информации разделения могут также конфигурироваться по-разному (предполагая, что пример, который будет описан далее, является третьим примером). То есть в вышеописанном примере, если разделение некоторыми способами на основе дерева (QT) не было выполнено на предыдущем этапе, процесс разделения может выполняться без учета некоторых способов на основе дерева (QT) в текущей стадии. Кроме того, оно может конфигурироваться путем удаления информации разделения касательно связанных способов на основе дерева (например, информации о том, следует ли выполнять разделение, информации о направлении разделения и т.д., в этом примере <QT>, информации о том, следует ли выполнять разделение).
[0150] Вышеописанный пример предназначен для адаптивной конфигурации информации разделения для случая, где разделение блока разрешено (например, размер блока находится в диапазоне между максимальным и минимальным значениями, глубина разделения каждого способа на основе дерева не достигает максимальной глубины <разрешенной глубины> и т.д.), и может быть возможной адаптивная конфигурация информации разделения, даже когда разделение блока ограничено (например, размер блока не находится в диапазоне между максимальным и минимальным значениями, глубина разделения каждого способа на основе дерева достигает максимальной глубины и т.д.).
[0151] Как уже упомянуто, разделение на основе дерева в настоящем изобретении может выполняться с использованием рекурсивного способа. Например, когда флаг разделения блока кодирования, имеющего глубину k разделения, представляет собой 0, кодирование блока кодирования выполняется в блоке кодирования, имеющем глубину k разделения, а когда флаг разделения блока кодирования, имеющего глубину k разделения, представляет собой 1, кодирование блока кодирования выполняется в N подблоках кодирования, имеющих глубину разделения k+1, в соответствии со способом разделения (причем N представляет собой целое число 2 или больше, такое как 2, 3, 4).
[0152] Подблок кодирования может быть установлен снова как блок кодирования (k+1) и разбит на подблоки кодирования (k+2) посредством вышеописанного процесса, и такой способ иерархического разделения может определяться в соответствии с настройками разделения, такими как диапазон разделения и разрешенная глубина разделения.
[0153] Здесь, структура битового потока для представления информации разделения может выбираться из одного или нескольких способов сканирования. Например, битовый поток информации разделения может быть сконфигурирован на основе порядка глубины разделения, или битовый поток информации разделения может быть сформирован на основе того, выполняется ли разделение.
[0154] Например, в случае критерия порядка глубины разделения, он означает способ получения информации разделения на глубине текущего уровня на основе исходного блока и получения информации разделения на глубине следующего уровня. Кроме того, в случае критерия, выполняется ли разделение, он означает способ предпочтительного получения дополнительной информации разделения в блоке, разделенном на основе исходного блока, и могут рассматриваться другие дополнительные способы сканирования. В настоящем изобретении предполагается, что битовый поток информации разделения конфигурируется на основе того, выполняется ли разделение.
[0155] Как описано выше, были описаны различные случаи разделения блока, и может поддерживаться фиксированная или адаптивная настройка для разделения блока.
[0156] Здесь, настройка, относящаяся к разделению блока, может явно включать в себя связанную информацию в единице, такой как последовательность, картинка, слайс и фрагмент. Альтернативно, настройка разделения блока может определяться неявно в соответствии с настройками кодирования/декодирования, причем настройки кодирования/декодирования могут быть сконфигурированы в соответствии с одним или комбинацией двух или более различных элементов кодирования/декодирования, таких как тип (I/P/B) изображения, компонент цвета, тип разделения и глубина разделения.
[0157]
[0158] В способе кодирования изображения в соответствии с вариантом осуществления настоящего изобретения, интра-предсказание может конфигурироваться, как описано далее. Интра-предсказание единицы предсказания может содержать построение опорного пиксела, генерацию блока предсказания, определение режима предсказания и кодирование режима предсказания. Кроме того, устройство кодирования изображения может быть сконфигурировано, чтобы содержать модуль конфигурации опорного пиксела, модуль генерации блока предсказания и модуль кодирования режима предсказания, которые реализуют этап конфигурации опорного пиксела, этап генерации блока предсказания, этап определения режима предсказания и этап кодирования режима предсказания. Некоторые из вышеописанных процессов могут быть опущены, или другие процессы могут быть добавлены. Кроме того, возможны изменения в порядке, отличном от порядка, описанного выше.
[0159] Фиг. 4 представляет собой примерную диаграмму, иллюстрирующую режим интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0160] Со ссылкой на фиг. 4, поясняется, что 67 режимов предсказания сконфигурированы в качестве группы кандидатов режима предсказания для интра-предсказания, и 65 из них являются направленными режимами и 2 из них являются ненаправленными режимами (DC, планарный). Однако можно не ограничиваться этим, и возможны различные конфигурации. Здесь, направленный режим может разбиваться на информацию наклона (например, dy/dx) или угла (градусы). Кроме того, все или часть режимов предсказания могут быть включены в группу кандидатов режима предсказания компонента яркости или компонента цветности, и другие дополнительные режимы могут быть включены в группу кандидатов режима предсказания.
[0161] В настоящем изобретении, направление направленного режима может означать прямую линию, и искривленный направленный режим может также быть сконфигурирован в качестве режима предсказания. Кроме того, в случае ненаправленного режима, он может включать в себя режим DC для получения блока предсказания со средним (или взвешенным средним и т.д.) пикселов смежных соседних блоков (например, левый, верхний, верхний левый, верхний правый и нижний левый блоки) текущего блока, и планарный режим для получения блока предсказания через линейную интерполяцию пикселов соседних блоков и т.д.
[0162] Здесь, в режиме DC, опорный пиксел, используемый для генерации блока предсказания, может быть получен из блоков, сгруппированных в различных комбинациях, таких как левый, верхний, левый+верхний, левый+нижний левый, верхний+верхний правый, левый+верхний+нижний левый+верхний правый и т.д. Кроме того, положение блока, в котором получен опорный пиксел, может определяться в соответствии с настройками кодирования/декодирования, определенными типом изображения, компонентом цвета, размером/формой/положением блока и т.п.
[0163] Здесь, в планарном режиме, пиксел, используемый для генерации блока предсказания, может быть получен в области, составленной из опорного пиксела (например, левый, верхний, верхний левый, верхний правый, нижний левый или т.п.), и области, не составленной из опорного пиксела (например, правый, нижний, нижний правый и т.д.). В случае области, не составленной из опорного пиксела (то есть она не закодирована), он может быть получен неявно путем использования одного или нескольких пикселов (например, копия как есть, взвешенное среднее и т.д.) в области, составленной из опорного пиксела, или информация о по меньшей мере одном пикселе в области, не составленной из опорного пиксела, может генерироваться явно. Поэтому, блок предсказания может генерироваться с использованием области, составленной из опорного пиксела, и области, не составленной из опорного пиксела, как описано выше.
[0164] Фиг. 5 представляет собой концептуальную диаграмму, иллюстрирующую интра-предсказание для направленного режима и ненаправленного режима в соответствии с вариантом осуществления настоящего изобретения.
[0165] Со ссылкой на фиг. 5A, проиллюстрировано интра-предсказание в соответствии с режимами в вертикальном (5a), горизонтальном (5b) и диагональном (5c-5e) направлениях. Со ссылкой на фиг. 5B, проиллюстрировано интра-предсказание в соответствии с режимом DC. Со ссылкой на фиг. 5C, проиллюстрировано интра-предсказание в соответствии с планарным режимом.
[0166] В дополнение к описанию выше, может быть включен дополнительный ненаправленный режим. В настоящем изобретении, описаны главным образом линейные направленные режимы и ненаправленные режимы режима DC и планарного режима, но изменение до других случаев может также применяться.
[0167] Фиг. 4 может представлять собой режимы предсказания, которые постоянно поддерживаются независимо от размера блока. Кроме того, режимы предсказания, поддерживаемые в соответствии с размером блока, могут отличаться от фиг. 4.
[0168] Например, число групп кандидатов режима предсказания может быть адаптивным (например, угол между режимами предсказания является одинаково отстоящим, но угол установлен по-разному. Число направленных режимов составляет 9, 17, 33, 65, 129 и т.д.), или число групп кандидатов режима предсказания может быть фиксированным, но может иметь разные конфигурации (например, угол направленного режима, ненаправленный тип и т.д.).
[0169] Кроме того, фиг. 4 может представлять собой режимы предсказания, которые постоянно поддерживаются независимо от типа блока. Кроме того, режимы предсказания, поддерживаемые в соответствии с типом блока, могут отличаться от фиг. 4.
[0170] Например, число групп кандидатов режима предсказания может быть адаптивным (например, устанавливать число режимов предсказания, выводимое из горизонтального или вертикального направления в зависимости от горизонтального/вертикального отношения блока, большим или меньшим), или число групп кандидатов режима предсказания может быть фиксированным, но может иметь разные конфигурации (например, устанавливать режимы предсказания, выведенные из горизонтального или вертикального направления в зависимости от горизонтального/вертикального отношения блока более конкретно).
[0171] Альтернативно, режимы предсказания более длинной длины блока могут поддерживать большее число, и режимы предсказания более короткой длины блока могут поддерживать меньшее число. В случае длинного блока, интервал режима предсказания может поддерживать режим, расположенный на правой стороне от режима 66 (например, режим, имеющий угол +45 градусов или больше на основе 50-го режима, то есть, режим, имеющий такой номер, как от 67 до 80), или режим, расположенный с левой стороны от режима 2 (например, режим, имеющий угол -45 градусов или больше на основе 18-го режима, то есть, режим, имеющий такой номер, как от -1 до -14) на фиг. 4. Это может определяться в соответствии с отношением горизонтальной длины к вертикальной длине блока, и наоборот.
[0172] В настоящем изобретении, главным образом описан режим предсказания как случай, где режим предсказания представляет собой постоянно поддерживаемый режим предсказания (независимо от любого элемента кодирования/декодирования) как показано на фиг. 4, но также можно установить адаптивно поддерживаемый режим предсказания в соответствии с настройками кодирования.
[0173] Кроме того, при классифицировании режимов предсказания, горизонтальный и вертикальный режимы (режимы 18 и 50) и некоторые диагональные режимы (диагональный вверх вправо <2>, диагональный вниз вправо <34>, диагональный вниз влево <66> и т.д.) могут быть стандартными, и это может быть способом классификации, выполняемым на основе некоторой направленности (или угла 45 градусов, 90 градусов и т.д.).
[0174] Кроме того, некоторые режимы (режимы 2 и 66), расположенные на обоих концах направленного режима, могут быть режимом, который является основой для классификации режима предсказания, который является примером, возможным, когда режим интра-предсказания сконфигурирован, как проиллюстрировано на фиг. 4. То есть, когда конфигурация режима предсказания является адаптивной, также возможен пример, в котором опорный режим изменяется. Например, режим 2 может быть заменен режимом, имеющим номер больше или меньше, чем 2 (-2, -1, 3, 4 и т.д.), или режим 66 может быть заменен режимом, имеющим номер меньше или больше, чем 66 (64, 66, 67, 68 и т.д.).
[0175] Кроме того, дополнительный режим предсказания для компонентов цвета может быть включен в группу кандидатов режима предсказания. Последующее описывает режим копирования цвета и цветовой режим в качестве примеров режима предсказания.
[0176]
[0177] (Режим копирования цвета)
[0178] Может поддерживаться режим предсказания, относящийся к способу получения данных для генерации блока предсказания из областей, расположенных в разных цветовых пространствах.
[0179] Например, примером этого может быть режим предсказания для способа получения данных для генерации блока предсказания в другом цветовом пространстве с использованием корреляции между цветовыми пространствами.
[0180] Фиг. 6 представляет собой концептуальную диаграмму, иллюстрирующую интра-предсказание касательно режима копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Со ссылкой на фиг. 6, текущий блок C текущего цветового пространства M может выполнять предсказание с использованием данных соответствующей области D другого цветового пространства N в одно и то же время t.
[0181] В этом случае, корреляция между цветовыми пространствами может относиться к корреляции между Y и Cb, Y и Cr, и Cb и Cr, когда YCbCr берется в качестве примера. То есть, в случае компонента цветности (Cb или Cr), восстановленный блок компонента Y яркости, соответствующего текущему блоку, может использоваться как блок предсказания текущего блока (цветность по отношению к яркости является настройкой по умолчанию примера, описанного далее). Альтернативно, восстановленный блок некоторого компонента цветности (Cb или Cr), соответствующего текущему блоку некоторого компонента цветности (Cr или Cb), может использоваться как блок предсказания текущего блока.
[0182] Здесь, в некоторых цветовых форматах (например, YCbCr 4:4:4 и т.д.), область, соответствующая текущему блоку, может иметь то же самое абсолютное положение в каждом изображении. Альтернативно, в некоторых цветовых форматах (например, YCbCr 4:2:0 и т.д.), относительные положения в каждом изображении могут быть одними и теми же. Соответствующее положение может определяться в соответствии с отношением горизонтальной длины к вертикальной длине в соответствии с цветовым форматом, и соответствующие пикселы в цветовом пространстве, отличные от пикселов текущего изображения, могут быть получены путем умножения или разделения каждого компонента координат текущего пиксела на отношение горизонтальной длины к вертикальной длине в соответствии с цветовым форматом.
[0183] Для удобства описания, описание главным образом будет сфокусировано на случае некоторых цветовых форматов (4:4:4), но следует понимать, что местоположение соответствующей области другого цветового пространства может определяться в соответствии с отношением горизонтальной длины к вертикальной длине в соответствии с цветовым форматом.
[0184] В режиме копирования цвета, восстановленный блок другого цветового пространства может использоваться как блок предсказания, или блок, полученный с учетом корреляции между цветовыми пространствами, может использоваться как блок предсказания. Блок, полученный с учетом корреляции между цветовыми пространствами, означает блок, который может быть получен путем выполнения коррекции на существующем блоке. Конкретно, в формуле {P=a*R+b}, a и b означают значения, используемые для коррекции, и R и P означают значения, полученные в разных цветовых пространствах, и значения предсказания текущего цветового пространства, соответственно. Здесь, P означает блок, полученный с учетом корреляции между цветовыми пространствами.
[0185] В этом примере предполагается, что данные, полученные с использованием корреляции между цветовыми пространствами, используются как значение предсказания текущего блока, но также возможно, что данные используются в качестве значения коррекции, применяемого к значению предсказания существующего блока. То есть значение предсказания текущего блока может корректироваться с использованием остаточного значения другого цветового пространства.
[0186] В настоящем изобретении, предполагается допущение первого случая, но настоящее изобретение может не ограничиваться этим, и применимо то же самое или измененное применение к случаю, когда данные используются в качестве значения коррекции.
[0187] В режиме копирования цвета, следует ли поддерживать явно или неявно, может определяться в соответствии с настройками кодирования/декодирования. Здесь, настройки кодирования/ декодирования могут определяться в соответствии с одним или комбинацией из двух или более из типа изображения, компонента цвета, положения/размера/формы блока и отношения ширины/длины блока. Кроме того, в явном случае, связанная информация может быть включена в единицу последовательности, картинки, слайса или фрагмента. Кроме того, в зависимости от настроек кодирования/декодирования, поддерживается ли режим копирования цвета, может определяться неявно в некоторых случаях, и связанная информация может быть явно сгенерирована в некоторых случаях.
[0188] В режиме копирования цвета, информация корреляции (a, b и т.д.) между цветовыми пространствами может быть явно сгенерирована или неявно получена в соответствии с настройками кодирования/декодирования.
[0189] В этом случае, область, подлежащая сравнению (или ссылке), чтобы получить информацию корреляции, может представлять собой текущий блок (C на фиг. 6) и соответствующую область (D на фиг. 6) другого цветового пространства. Альтернативно, она может представлять собой смежную область (левый, верхний, верхний левый, верхний правый, нижний левый блоки и т.д. для C на фиг. 6) текущего блока и смежную область (левый, верхний, верхний левый, верхний правый, нижний левый блоки и т.д. для D на фиг. 6) соответствующей области другого цветового пространства.
[0190] В описании выше, в первом случае, поскольку информация корреляции должна быть получена непосредственно с использованием данных блока, соответствующего текущему блоку, она может соответствовать примеру явно относящейся к обработке информации. То есть, это может быть случай, в котором информация корреляции должна генерироваться, поскольку данные текущего блока еще не были закодированы. В последнем случае, поскольку информация корреляции может быть получена косвенно с использованием данных смежной области блока, соответствующего смежной области текущего блока, это может соответствовать примеру неявно относящейся к обработке информации.
[0191] Подытоживая сказанное, в первом случае, информацию корреляции получают путем сравнения текущего блока и соответствующего блока, а в последнем случае, информацию корреляции получают путем сравнения областей, смежных с текущим блоком и соответствующим блоком, соответственно. Кроме того, данные, полученные путем применения информации корреляции к соответствующему блоку, могут использоваться как пиксел предсказания текущего блока.
[0192] Здесь, в первом случае, информация корреляции может кодироваться, как есть, или информация корреляции, полученная путем сравнения смежных областей, может использоваться как значение предсказания, чтобы закодировать информацию о разности. Информация корреляции может представлять собой информацию, которая может возникать, когда режим копирования цвета выбран в качестве режима предсказания.
[0193] Здесь, последний случай может пониматься в качестве примера предполагаемого случая, когда не имеется дополнительно сгенерированной информация за исключением того, что режим копирования цвета выбирается в качестве оптимального режима в группе кандидатов режима предсказания. То есть, это может быть примером, возможным при конфигурации, в которой поддерживается одна информация корреляции.
[0194] В настройке, в которой поддерживается две или более информации корреляции, информация выбора для информации корреляции может требоваться в дополнение к режиму копирования цвета, выбранному в качестве оптимального режима. Как в вышеописанном примере, конфигурация, в которой явный случай и неявный случай смешаны, также возможна в соответствии с настройками кодирования/декодирования.
[0195] В настоящем изобретении, описание будет фокусироваться на случае, где информацию корреляции получают косвенно, и полученная информация корреляции может составлять N или больше (N представляет собой целое число 1 или больше, такое как 1, 2, 3). Информация настройки о числе информации корреляции может быть включена в единицу, такую как последовательность, картинка, слайс, фрагмент и т.п. Следует понимать, что в некоторых из примеров, описанных ниже, когда поддерживается k или больше информации корреляции, это может иметь то же самое смысловое значение, что и когда поддерживается k или больше режимов копирования цвета.
[0196]
[0197] Фиг. 7 представляет собой примерную диаграмму, иллюстрирующую соответствующий блок каждого цветового пространства и область, смежную с ним, в отношении режима копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Со ссылкой на фиг. 7, показан пример соответствия от пиксела к пикселу (p и q) в текущем цветовом пространстве (M) и другом цветовом пространстве (N), и это может пониматься как пример, где это может возникать в некоторых цветовых форматах (4:2:0). Кроме того, могут быть подтверждены соответствующее отношение (7a) для получения информация корреляции и соответствующее отношение (7b) для применения значения предсказания.
[0198] Далее продолжается описание, относящееся к получению информации корреляции в режиме копирования цвета. Чтобы получить информацию корреляции, пиксельные значения пикселов в предопределенной области (все или часть областей, смежных с каждым из текущего блока и блока, соответствующего текущему блоку) каждого цветового пространства могут сравниваться (или использоваться) (т.е. выполняется процесс сравнения пиксельных значений 1:1). В этом случае, пиксельное значение, подлежащее сравнению, может быть получено на основе соответствующего положения пиксела в каждом цветовом пространстве. Пиксельное значение может быть значением, выведенным из по меньшей мере одного пиксела в каждом цветовом пространстве.
[0199] Например, в некоторых цветовых форматах (4:4:4), пиксельное значение одного пиксела в пространстве цветности и пиксельное значение одного пиксела в пространстве яркости могут использоваться как пиксельные значения, соответствующие процессу получения информации корреляции. Альтернативно, в некоторых цветовых форматах (4:2:0), пиксельное значение одного пиксела в пространстве цветности и пиксельное значение, выведенное из одного или нескольких пикселов в пространстве яркости (то есть полученное через процесс суб-дискретизации), могут использоваться как пиксельные значения, соответствующие процессу получения информации корреляции.
[0200] Конкретно, в первом случае, p[x, y] пространства цветности может сравниваться с q[x, y] пространства яркости. В этом случае, в качестве пиксельного значения, может использоваться значение яркости (светлоты) одного пиксела как оно есть. В последнем случае, p[x, y] в пространстве цветности может сравниваться с q[2x, 2y], q[2x, 2y+1], q[2x+1, 2y], q[2x+1, 2y+1] и т.д. в пространстве яркости.
[0201] Здесь, поскольку сравнение пиксельного значения 1:1 должно выполняться, в случае пространства яркости, один из множества пикселов может использоваться в качестве значения для сравнения пиксельного значения пиксела цветности. То есть, значение яркости одного пиксела среди множества пикселов используется как есть. Альтернативно, одно пиксельное значение может быть выведено из двух или более пикселов (k, где k является целым числом 2 или больше, таким как 2, 4, 6 и т.д.) среди множества пикселов и использоваться в качестве значения, подлежащего сравнению. То есть, взвешенное среднее (веса могут распределяться равномерно или неравномерно по каждому пикселу) может применяться к двум или более пикселам.
[0202] Когда имеется множество соответствующих пикселов, как в примере выше, пиксельное значение предопределенного пиксела или пиксельное значение, выведенное из двух или более пикселов, может использоваться в качестве значения, подлежащего сравнению. В этом случае один из двух способов для выведения пиксельного значения, подлежащего сравнению, в каждом цветовом пространстве в соответствии с настройками кодирования/ декодирования может использоваться отдельно или в комбинации.
[0203] Дальнейшее может представлять собой описание в предположении, что пиксельное значение одного пиксела используется для сравнения в текущем цветовом пространстве, и один или несколько пикселов в других цветовых пространствах могут использоваться, чтобы выводить пиксельное значение. Например, положим, что цветовой формат представляет собой YCbCr 4:2:0, текущее цветовое пространство является пространством цветности, и другое цветовое пространство является пространством яркости. Способ для выведения пиксельного значения будет описан, фокусируясь на разных цветовых пространствах.
[0204] Например, оно может определяться в соответствии с формой блока (отношение горизонтальной длины к вертикальной длине). В качестве подробного примера, p[x, y] пространства цветности, смежного с более длинной стороной текущего блока (или блока, подлежащего предсказанию), может сравниваться с q[2x, 2y] пространства яркости, и p[x, y] пространства цветности, смежного с более короткой стороной, может сравниваться со средним из q[2x, 2y] и q[2x+1, 2y] в пространстве яркости.
[0205] В этом случае, адаптивные настройки, такие как описанные выше, могут применяться к некоторым типам блока (прямоугольного) независимо от отношения горизонтальной длины к вертикальной длине или могут применяться, только когда отношение горизонтальной длины к вертикальной длине больше или равно величине, равной/большей, чем определенное отношение (k:1 или 1:k; где k составляет 2 или больше, например 2:1, 4:1 и т.д.).
m
n
[0206] Например, это может определяться в соответствии с размером блока. В качестве подробного примера, когда размер текущего блока больше или равен величине, равной/большей, чем определенный размер (M×N; например, 2×2, где m и n являются целыми числами, большими или равными 1, такими как от 2 до 6), p[x, y] пространства цветности может сравниваться с q[2x+1, 2y] пространства яркости, и когда он меньше или равен величине, равной/меньшей, чем определенный размер, p[x, y] пространства цветности может сравниваться со средним q[2x, 2y], q[2x, 2y+1] пространства яркости.
1
1
2
2
[0207] Здесь, могут быть представлены одно или несколько граничных значений для сравнения размера, или возможны адаптивные настройки, такие как два или больше (M×N, M×N и т.д.).
[0208] Примеры, приведенные выше, представляют собой некоторые случаи, которые могут рассматриваться с точки зрения количества вычислений, и возможны примеры различных модификаций, включая случаи, противоположные примерам, приведенным выше.
[0209] Например, это может определяться в соответствии с положением блока. В качестве подробного примера, когда текущий блок расположен внутри предварительно установленной области (в предположении наибольшего блока кодирования в этом примере), p[x, y] пространства цветности может сравниваться со средним q[2x, 2y], q[2x+1, 2y], q[2x, 2y+1], q[2x+1, 2y+1] пространства яркости, а при расположении на границе предварительно установленной области (в предположении верхней левой границы в этом примере), p[x, y] пространства цветности может сравниваться с q[2x+1, 2y+1] пространства яркости. Предварительно установленная область может означать область, установленную на основе слайса, фрагмента, блока или тому подобного. Конкретно, она может быть получена на основе целого кратного слайса, фрагмента и максимального блока кодирования/предсказания/ преобразования.
[0210] В качестве другого примера, когда текущий блок расположен на некоторой границе области (в предположении верхней границы в этом примере), P[x, y] пространства цветности, смежного с некоторой границей (верхней), может сравниваться с q[2x+1, 2y+1] пространства яркости, и P[x, y] пространства цветности, смежного с внутренностью (левой) области, может сравниваться со средним q[2x, 2y], q[2x+1, 2y], q[2x, 2y+1], q[2x+1, 2y+1].
[0211] Примеры, приведенные выше, представляют собой некоторые случаи, которые могут рассматриваться с точки зрения памяти, и возможны примеры различных модификаций, включая случаи, противоположные примерам, приведенным выше.
[0212] Посредством вышеописанных примеров были описаны различные случаи выведения пиксельного значения, сравниваемого в каждом цветовом пространстве. Как в примере, приведенном выше, настройка выведения пиксельного значения для получения информации корреляции может определяться с учетом различных элементов кодирования/декодирования, а также размера/формы/ положения блока.
[0213] посредством вышеописанного примера был описан случай, где одна или две строки опорных пикселов блока, соответствующего текущему блоку, используются соответственно как область, подлежащая сравнению для получения информации корреляции. То есть, в случае YCbCr 4:4:4, одна строка опорных пикселов используется соответственно, а в других форматах, в некоторых цветовых пространствах, это означает случай, в котором две строки опорных пикселов используются как в некоторых цветовых пространствах <цвет N> на фиг. 7. Кроме того, это может не ограничиваться изложенным, и возможны примеры различных модификаций.
[0214] Последующее будет описано, фокусируясь на строке опорных пикселов в текущем цветовом пространстве, и следует понимать, что в других цветовых пространствах строка опорных пикселов может определяться в соответствии с цветовым форматом. Например, может использоваться то же самое число строк опорных пикселов, или может использоваться двойное число строк опорных пикселов.
[0215] В режиме копирования цвета согласно настоящему изобретению, k строк опорных пикселов (где k является целым числом 1 или больше, таким как 1 и 2) могут использоваться (или сравниваться) для получения информации корреляции. Кроме того, k строк опорных пикселов могут использоваться фиксировано или адаптивно. Далее будут описаны различные примеры настройки количества строк опорных пикселов.
[0216] Например, оно может определяться в соответствии с формой блока (отношением горизонтальной длины к вертикальной длине). В качестве подробного примера, могут использоваться две строки опорных пикселов, смежных с более длинной стороной текущего блока, и может использоваться одна строка опорных пикселов, смежная с более короткой стороной текущего блока.
[0217] В этом случае, описанное выше может применяться к некоторым типам блока (прямоугольному) независимо от отношения горизонтальной длины к вертикальной длине или может применяться, только когда отношение горизонтальной/вертикальной длины больше или равно определенному отношению (k:1 или 1:k; где k представляет собой 2 или больше, например, 2:1, 4:1 и т.д.). Кроме того, существуют два или более граничных значений для отношения горизонтальной длины к вертикальной длине; в случае 2:1 или 1:2 используются две строки опорных пикселов, смежных с более длинной стороной (или более короткой стороной), а в случае 4:1 или 1:4 возможно расширение, такое как использование трех строк опорных пикселов, смежных с более длинной стороной (или более короткой стороной).
[0218] В примере, приведенном выше, в соответствии с отношением горизонтальной длины к вертикальной длине, более длинная сторона (или более короткая сторона) использует s строк опорных пикселов, и более короткая сторона (или более длинная сторона) использует t строк опорных пикселов. В таком случае, это может быть примером для случая, где s больше или равно t (т.е. s и t являются целыми числами больше или равными 1).
m
n
[0219] Например, это может определяться в соответствии с размером блока. В качестве подробного примера, две строки опорных пикселов могут использоваться, когда размер текущего блока больше или равен величине, равной/большей, чем определенный размер (M×N; например, 2×2, где m и n являются целыми числами, большими или равными 1, такими как от 2 до 6), и одна строка опорных пикселов может использоваться, когда размер меньше или равен величине, равной/меньшей, чем предопределенный размер.
1
1
2
2
[0220] Здесь, одно граничное значение для сравнения размера может существовать как в примере выше, или возможны адаптивные настройки, такие как два или больше (M×N, M×N и т.д.).
[0221] Например, это может определяться в соответствии с положением блока. В качестве подробного примера, две строки опорных пикселов могут использоваться, когда текущий блок расположен внутри предварительно установленной области (выводимой из предыдущего описания, относящегося к получению информации корреляции, в предположении наибольшего блока кодирования в этом примере), и одна строка опорных пикселов может использоваться при расположении на границе предварительно установленной области (в предположении верхней левой границы в этом примере).
[0222] В качестве другого примера, когда текущий блок расположен на некоторой границе области (в предположении верхней границы в этом примере), может использоваться одна строка опорных пикселов, смежная с некоторой границей (верхней), и могут использоваться две строки опорных пикселов, смежных с внутренностью (левой) области.
[0223] Примеры, приведенные выше, представляют собой некоторые случаи, которые могут рассматриваться с точки зрения точности и памяти информации корреляции, и возможны примеры различных модификаций, включая случаи, противоположные примерам, приведенным выше.
[0224] Посредством вышеописанных примеров были описаны различные случаи настройки строк опорных пикселов, используемых, чтобы получать информацию корреляции в каждом цветовом пространстве. Как в примере, приведенном выше, настройка строки опорных пикселов для получения информации корреляции может определяться с учетом различных элементов кодирования/ декодирования, а также размера/формы/положения блока.
[0225] Далее описан другой случай для области, подлежащей сравнению (или ссылке), для получения информации корреляции. Пикселы, смежные с положениями левого, верхнего, верхнего левого, верхнего правого, нижнего левого или т.п., смежного с текущим блоком в текущем цветовом пространстве, могут быть целевыми для области, подлежащей сравнению.
[0226] В этом случае, область, подлежащая сравнению, может быть установлена с включением всех блоков в левом, верхнем, верхнем левом, верхнем правом и нижнем левом положениях. Альтернативно, область опорных пикселов может быть сконфигурирована посредством комбинации блоков в некоторых местоположениях. Например, область, подлежащая сравнению, может быть сконфигурирована посредством комбинации смежных блоков, таких как левый/верхний/левый+верхний/левый+верхний+верхний левый/левый+нижний левый/верхний+верхний правый/левый+верхний левый+нижний левый/верхний+верхний левый+верхний правый/левый+верхний+верхний правый/левый+верхний+нижний левый блок.
[0227] Фиг. 8 представляет собой примерную диаграмму настройки области для получения информации корреляции в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Фиг. 8A-8E могут соответствовать вышеописанным примерам (левый+верхний, верхний+правый-верхний, левый+нижний-левый, левый+верхний+верхний-правый, левый+верхний+нижний-левый), и блок в некоторых положениях может разделяться на подблоки, и некоторые из них могут быть установлены в качестве области для получения информации корреляции (фиг. 8F и 8G). То есть, область для получения информации корреляции может быть установлена как один или несколько подблоков, расположенных в некоторых направлениях. Альтернативно, область для получения информации корреляции может быть установлена как один или несколько блоков, расположенных в некоторых направлениях (a), и один или несколько подблоков, расположенных в некоторых направлениях (b) (где a и b означают разные направления). Кроме того, область для получения информации корреляции может быть установлена путем использования непоследовательных блоков (фиг. 8H и 8I).
[0228] Подытоживая сказанное, область, подлежащая сравнению для получения информации корреляции, может быть сконфигурирована как предопределенная область. Альтернативно, она может быть сконфигурирована в различных комбинациях некоторых областей. То есть, область, подлежащая сравнению, может постоянно или адаптивно конфигурироваться в соответствии с настройками кодирования/декодирования.
[0229] Далее на различных примерах будет рассмотрено, смежные области какого направления конфигурируются как опорные области текущего блока в текущем цветовом пространстве. Здесь предполагается, что, в соответствующем блоке другого цветового пространства, определение того, смежные области какого направления конфигурируются как опорные области, осуществляется в соответствии с конфигурацией опорной области текущего блока цвета. Кроме того, предполагается, что базовая опорная область состоит из левого и верхнего блоков.
[0230] Например, это может определяться в соответствии с формой блока (отношением горизонтальной/вертикальной длины). В качестве подробного примера, если текущий блок является длинным по горизонтали, левый, верхний и верхний правый блоки могут быть установлены как опорные области, и если текущий блок является длинным по вертикали, левый, верхний и нижний левый блоки могут быть установлены как опорные области.
[0231] В этом случае, описанное выше может применяться к некоторыми формам блока (прямоугольным) независимо от отношения горизонтальной/вертикальной длины или может применяться, только когда отношение горизонтальной/вертикальной длины больше или равно величине, равной/большей, чем определенное отношение (k:1 или 1:k; где k равно 2 или больше, например 2:1, 4:1 и т.д.). Кроме того, имеется два или более граничных значений для отношения горизонтальной/вертикальной длины, в случае 2:1 (или 1:2), левый, верхний и верхний правый (или левый, верхний и нижний левый) блоки установлены как опорные области, и в случае 4:1 (или 1:4), расширение, такое как верхний и верхний правый (или левый и нижний левый) блоки, может быть установлено как опорные области.
m
n
[0232] Например, оно может определяться в соответствии с размером блока. В качестве подробного примера, когда размер текущего блока больше или равен/больше, чем определенный размер (M×N; например, 2×2, где m и n являются целыми числами, большими или равными 1, такими как от 2 до 6), левый и верхний блоки могут быть установлены как опорные области, и когда размер текущего блока меньше или равен величине, равной/меньшей, чем определенный размер, левый, верхний и верхний левый блоки могут быть установлены как опорные области.
1
1
2
2
[0233] В этом случае, может быть представлено одно граничное значение для сравнения размера, или возможны адаптивные настройки, такие как два или больше (M×N, M×N и т.д.).
[0234] Например, это может определяться в соответствии с положением блока. В качестве подробного примера, когда текущий блок расположен внутри предварительно установленной области (выводимой из предыдущего описания, относящегося к получению информации корреляции, в предположении наибольшего блока кодирования в этом примере), левый, верхний, верхний левый, верхний правый и нижний левый блоки установлены как опорные области, и когда текущий блок расположен на границе (в предположении верхней левой границы в этом примере) предварительно установленной области, левый и верхний блоки установлены как опорные области.
[0235] В качестве другого примера, когда текущий блок расположен на некоторой границе (в предположении верхней границы в этом примере) области, за исключением блоков, смежных с некоторой границей (верхней границей), левый и нижний левый блоки, смежные с областью, могут быть установлены как опорные области. То есть левый и нижний левый блоки могут быть установлены как опорные области.
[0236] Примеры, приведенные выше, представляют собой некоторые случаи, которые могут рассматриваться с точки зрения количества вычислений, памяти и тому подобного, и возможны примеры различных модификаций, включая случаи, противоположные примерам, приведенным выше.
[0237] Посредством вышеописанных примеры, были описаны различные случаи настройки опорных областей, используемых, чтобы получать информацию корреляции в каждом цветовом пространстве. Как в примере, приведенном выше, настройка опорной области для получения информации корреляции может определяться с учетом различных элементов кодирования/декодирования, а также размера/формы/местоположения блока.
[0238] Кроме того, область, подлежащая сравнению, может представлять собой пиксел, смежный с текущим блоком в текущем цветовом пространстве. Здесь, все из опорных пикселов могут использоваться, чтобы получать информацию корреляции, или могут использоваться некоторые из них.
[0239] Например, когда текущий блок (на основе цвета M на фиг. 7) представляет собой блок, имеющий диапазон пикселов от (a, b) до (a+7, b+7) (т.е. 8×8), предполагается, что область, подлежащая сравнению (поскольку соответствующий блок может быть пояснен в соответствии с цветовым форматом, он опускается), представляет собой одну строку опорных пикселов левого и верхнего блоков текущего блока.
[0240] В этом случае, все пикселы в диапазоне от (a, b-1) до (a+7, b-1) и от (a-1, b) до (a-1, b+7) могут быть включены в область, подлежащую сравнению. Альтернативно, (a, b-1), (a+2, b-1), (a+4, b-1), (a+6, b-1) и (a-1, b), (a-1, b+2), (a-1, b+4), (a-1, b+6), которые представляют собой некоторые пикселы в вышеуказанном диапазоне, могут быть включены. Альтернативно, (a, b-1), (a+4, b-1) и (a-1, b), (a-1, b+4), которые представляют собой некоторые пикселы в вышеуказанном диапазоне, могут быть включены.
[0241] Пример, приведенный выше, может применяться с целью уменьшения количества вычислений, требуемых для получения корреляции. Различные элементы кодирования/декодирования, такие как размер/форма/положение блока, могут рассматриваться в настройке дискретизации опорного пиксела сравниваемой области для получения информации корреляции вместе со многими примерами, уже описанными выше. Кроме того, могут быть выведены примеры связанных применений из предыдущего примера, и поэтому подробное описание опускается.
[0242] Посредством различных примеров, описанных выше, были исследованы различные элементы (выведение соответствующего пиксельного значения, количества строк опорных пикселов, настройки направления опорной области, выборки опорных пикселов и т.д.), влияющие на получение информации корреляции. Возможен ряд различных случаев, в которых вышеописанные примеры отдельно или в комбинации влияют на получение информации корреляции.
[0243] Описание выше может пониматься как предварительно установленный процесс для получения одной информации корреляции. Кроме того, как уже упомянуто, одна или несколько информаций корреляции могут поддерживаться в соответствии с настройками кодирования/декодирования. В этом случае, две или более информации корреляции могут поддерживаться путем помещения двух или более предварительно установленных настроек (то есть комбинации элементов, влияющих на получение информации корреляции).
[0244] Подытоживая сказанное, информация параметра на основе информации корреляции может выводиться из смежной области текущего блока и смежной области соответствующего блока. То есть, по меньшей мере один параметр (например, <a1, b1>, <a2, b2>, <a3, b3> и т.д.) может генерироваться на основе информации корреляции и может использоваться в качестве значения, которое умножается или суммируется с пикселом восстановленного блока в другом цветовом пространстве.
[0245]
[0246] Далее продолжается описание линейной модели, применяемой в режиме копирования цвета. Предсказание на основе следующей линейной модели может выполняться путем применения параметров, полученных посредством вышеописанного процесса.
[0247]
[0248] В уравнении выше, pred_sample_C означает пиксельное значение предсказания текущего блока в текущем цветовом пространстве, и rec_sample_D означает восстановленное пиксельное значение соответствующего блока в другом цветовом пространстве. a и b могут быть получены путем минимизации ошибки регрессии между смежной областью текущего блока и смежной областью соответствующего блока и могут вычисляться посредством следующего уравнения.
[0249]
[0250] В уравнении выше, D(n) означает смежную область соответствующего блока, C(n) означает смежную область текущего блока, и N означает значение (в этом примере предполагается, что оно в два раза больше минимального значения горизонтальной или вертикальной длины), установленное на основе горизонтальной или вертикальной длины текущего блока.
[0251] Кроме того, могут использоваться различные способы, такие как модель прямой линии (уравнение прямой линии), для получения информации корреляции на основе минимального и максимального значений смежных областей каждого цветового пространства. В этом случае, в качестве модели для получения информации корреляции может использоваться одна предварительно установленная модель или может выбираться одна из множества моделей. Здесь, значение выбора одной из множества моделей означает, что информация модели может рассматриваться как элементы кодирования/декодирования для информации параметра на основе информации корреляции. То есть, когда поддерживаются множество параметров, это может означать, что остальные относящиеся к информации корреляции настройки могут быть классифицированы на различную информацию параметра в соответствии с различными моделями для получения корреляции, даже хотя они являются одинаковыми.
[0252] В некоторых цветовых форматах (если не 4:4:4), один пиксел текущего блока может соответствовать одному или нескольким (2, 4 и т.д.) пикселам соответствующего блока. Например, в случае 4:2:0, p[x, y] в пространстве цветности может соответствовать q[2x, 2y], q[2x, 2y+1], q[2x+1, 2y], q[2x+1, 2y+1] и т.д. в пространстве яркости.
[0253] Чтобы получить одно пиксельное значение предсказания, одно пиксельное значение может выводиться из пиксельного значения (или значения предсказания) предопределенного пиксела или двух или более пикселов среди соответствующего множества пикселов (7b). То есть, чтобы получить одно предсказанное пиксельное значение, можно получить восстановленное значение перед применением информации корреляции к соответствующему одному или нескольким пикселам в другом цветовом пространстве. В зависимости от настроек кодирования/декодирования, возможны различные случаи, и их подробное описание будет опущено, поскольку связанное описание может выводиться из раздела о выведении соответствующего пиксельного значения для получения информации корреляции (7a). Однако 7a и 7b могут иметь одни и те же или разные настройки.
[0254]
[0255] (Цветовой режим)
[0256] Может поддерживаться режим предсказания, относящийся к способу получения режима предсказания для генерации блока предсказания из областей, расположенных в других цветовых пространствах.
[0257] Например, примером может служить режим предсказания для способа получения режима предсказания для генерации блока предсказания в другом цветовом пространстве с использованием корреляции между цветовыми пространствами. То есть цветовой режим может представлять собой режим, который адаптивно определяется в соответствии с режимом предсказания блока, соответствующего другому цветовому пространству, путем использования существующих направлений предсказания и способов, вместо того, чтобы иметь какое-либо конкретное направление предсказания или способ предсказания.
[0258] В этом случае, возможно, что различные цветовые режимы получают в соответствии с настройкой разделения блока.
[0259] Например, в настройке (т.е. когда разделение блока компонента яркости явно определено), в которой разделение блока для некоторых компонентов цвета (цветности) неявно определяется в соответствии с результатом разделения блока для некоторых компонентов цвета (яркости), один блок некоторых компонентов цвета (цветности) может соответствовать одному блоку некоторых цветовых пространств (яркости). Поэтому (в предположении 4:4:4, для других форматов, объяснение этого примера может выводиться в зависимости от отношения горизонтальной длины к вертикальной длине), если текущий блок (цветности) имеет диапазон пикселов от (a, b) до (a+m, b+n), даже если он указывает на какое-либо положение пиксела в диапазоне пикселов от (a, b) до (a+m, b+n) соответствующего блока (яркости), поскольку он указывает на один блок, один режим предсказания может быть получен в блоке, включающем в себя соответствующий пиксел.
[0260] Альтернативно, в случае, где разделение отдельного блока поддерживается в соответствии с каждым компонентом цвета (т.е. разделение блока каждого цветового пространства явно определено), один блок некоторых компонентов цвета (цветности) может соответствовать одному или нескольким блокам некоторых цветовых пространств (яркости). Поэтому, даже если текущий блок (цветности) имеет тот же самый диапазон пикселов, что и вышеописанный пример, соответствующий блок (яркости) может состоять из одного или нескольких блоков в соответствии с результатом разделения блока. Поэтому, разные режимы предсказания (т.е. один или несколько режимов) могут быть получены из соответствующих блоков, указанных соответствующими пикселами в соответствии с положением пикселов в диапазоне пикселов текущего блока.
[0261] Если один цветовой режим поддерживается группами кандидатов режима интра-предсказания для компонентов цветности, может быть установлено, где следует получать режим предсказания из соответствующего блока.
[0262] Например, режим предсказания может быть получен в местоположении центра - верхнего левого - верхнего правого - нижнего левого - нижнего правого и т.д. соответствующего блока. То есть, если режим предсказания получен в вышеописанном порядке, но соответствующий блок недоступен (например, режим кодирования является интер-режимом, и т.д.), может быть получен режим предсказания положения, соответствующего следующему порядку. Альтернативно, может быть получен режим предсказания, имеющий высокую частоту (в два или более раз) в блоках в местоположении.
[0263] Альтернативно, при поддержке множества цветовых режимов, можно установить, где следует получать режим предсказания в соответствии с приоритетом. Альтернативно, возможна комбинация, в которой некоторые режимы предсказания получают в соответствии с приоритетом, и получают некоторые режимы предсказания, имеющие высокие частоты в блоках в местоположении. Здесь, приоритет является примером, и возможны примеры различных модификаций.
[0264] Цветовой режим и режим копирования цвета могут быть режимами предсказания, которые могут поддерживаться для компонентов цветности. Например, группа кандидатов режима предсказания для компонентов цветности может быть сконфигурирована с включением горизонтального, вертикального, DC, планарного, диагонального режима и т.д. Альтернативно, группа кандидатов режима интра-предсказания может быть сконфигурирована с включением цветового режима и режима копирования цвета.
[0265] То есть конфигурация может представлять собой направленный+ненаправленный+цветовой режим или направленный+ненаправленный+режим копирования цвета или направленный+ненаправленный+цветовой режим+режим копирования цвета. Кроме того, режим для дополнительных компонентов цветности может включаться и конфигурироваться.
[0266] То, следует ли поддерживать цветовой режим и режим копирования цвета, может определяться в соответствии с настройками кодирования/декодирования, неявная или явная обработка может быть возможна в этом случае. Альтернативно, возможна смешанная конфигурации явной+неявной обработки. Она включает в себя подробные настройки, относящиеся к цветовому режиму и режиму копирования цвета (например, число поддерживаемых режимов и т.д.), так что возможна неявная или явная обработка.
[0267] Например, связанная информация может быть явно включена в единицу последовательности, картинки, слайса, фрагмента, блока или тому подобное или может определяться неявно в соответствии с различными элементами кодирования/ декодирования (например, тип изображения, местоположение блока, размер блока, форма блока, отношение ширины/длины блока и т.д.). Альтернативно, в зависимости от элементов кодирования/ декодирования, некоторые условия могут определяться неявно, или связанная информация может явно генерироваться при некоторых условиях.
[0268]
[0269] Фиг. 9 представляет собой примерную диаграмму для пояснения конфигурации опорного пиксела, используемой для интра-предсказания в соответствии с вариантом осуществления настоящего изобретения. Размер и форма (M×N) блока предсказания могут быть получены посредством модуля разделения блока.
[0270] Информация диапазона блока, определенная как размер минимального блока и максимального блока для интра-предсказания, может включать в себя связанную информацию в единице, такой как последовательность, картинка, слайс, фрагмент и т.д. В общем, горизонтальная и вертикальная длины специфицированы (например, 32×32, 64×64 и т.д.), так что информация размера может быть установлена, но информация размера может также быть установлена в форме произведения горизонтальной и вертикальной длин. Например, когда произведение горизонтали и вертикали составляет 64, минимальный размер блока может соответствовать 4×16, 8×8, 16×4 или тому подобного.
[0271] Кроме того, путем специфицирования горизонтальной и вертикальной длин, информация размера настройки или информация размера настройки в виде произведения могут смешиваться и использоваться. Например, для максимального размера блока, если произведение горизонтальной и вертикальной длин составляет 4096 и максимальное значение одной из двух длин составляет 64, 64×64 может соответствовать максимальному размеру блока.
[0272] Как в примере выше, в дополнение к информации размера минимального блока и максимального блока, информация разделения блока смешивается, чтобы в конечном счете определять размер и форму блока предсказания. В настоящем изобретении, блок предсказания должен иметь произведение горизонтальной и вертикальной длин, большей или равной s (например, s является кратным 2, таким как 16, 32), и одной из горизонтальной/вертикальной длин, большей или равной k (например, k составляет 4, 8 и т.д.). Кроме того, горизонтальная и вертикальная длины блока могут определяться при настройке, равной или меньшей, чем v и w (например, v и w являются кратными 2, такими как 16, 32, 64 и т.д.), соответственно. Кроме того, это может не ограничиваться вышеизложенным, и возможны различные настройки диапазона блока.
[0273] Интра-предсказание обычно может выполняться в единице блока предсказания, но может выполняться в единице блока кодирования, блоке преобразования или тому подобном в соответствии с настройкой модуля разделения блока. После проверки информации блока, единица конфигурации опорного пиксела может конфигурировать опорный пиксел, используемый для предсказания текущего блока. В этом случае, опорным пикселом можно манипулировать с помощью временной памяти (например, массива; 1-го, 2-го массива и т.д.), он может генерироваться и удаляться для каждого процесса интра-предсказания блока, и размер временной памяти может определяться в соответствии с конфигурацией опорного пиксела.
[0274] Этот пример описывается в предположении, что левый, верхний, верхний левый, верхний правый и нижний левый блоки используются для предсказания текущего блока, но может не ограничиваться этим, и группа кандидатов блока, имеющая другую конфигурацию, может использоваться для предсказания текущего блока. Например, группа кандидатов соседних блоков для опорного пиксела может представлять собой пример следования растру или Z-сканированию, и некоторые из группы кандидатов могут удаляться в соответствии с порядком сканирования или могут конфигурироваться, включая других кандидатов блока (например, правый, нижний, нижний правый блоки и т.д.).
[0275] Кроме того, если поддерживается некоторый режим предсказания (режим копирования цвета), некоторые области различных цветовых пространств могут использоваться для предсказания текущего блока, и это может также рассматриваться как опорный пиксел. Существующими опорными пикселами (пространственно смежными областями текущего блока) и дополнительными опорными пикселами можно манипулировать вместе или по отдельности (например, опорный пиксел A и опорный пиксел B; то есть память опорного пиксела может именоваться отдельно, как если бы временная память использовалась отдельно).
[0276] Например, временная память базового опорного пиксела может иметь размер <2 × blk_width+2 × blk_height+1> (на основе одной строки опорных пикселов), и временная память дополнительного опорного пиксела может иметь размер <blk_width × blk_height> (когда 4:4:4) (blk_width/2 × blk_height/2 требуется, когда 4:2:0). Размер временной памяти является одним примером и не ограничен этим.
[0277] Кроме того, им можно манипулировать как опорным пикселом, включающим смежные области текущего блока, подлежащего сравнению (или ссылке), чтобы получить информацию корреляции, и соответствующий блок. То есть дополнительными опорными пикселами можно манипулировать в соответствии с режимом копирования цвета.
[0278] Подытоживая сказанное, смежная область текущего блока может быть включена как опорный пиксел для интра-предсказания текущего блока, и соответствующий блок другого цветового пространства и его смежная область могут быть включены как опорный пиксел в соответствии с режимом предсказания.
[0279] Фиг. 10 представляет собой концептуальную диаграмму, иллюстрирующую блок, смежный с целевым блоком для интра-предсказания, в соответствии с вариантом осуществления настоящего изобретения. Подробно, левая сторона на фиг. 10 показывает блок, смежный с текущим блоком в текущем цветовом пространстве, и правая сторона показывает соответствующий блок в другом цветовом пространстве. Для удобства описания, последующее описание будет делаться в предположении, что блок, смежный с текущим блоком в текущем цветовом пространстве, является базовой конфигурацией опорного пиксела.
[0280] Как проиллюстрировано на фиг. 9, опорные пикселы, используемые для предсказания текущего блока, могут быть сконфигурированы как смежные пикселы (ref_L, Ref_T, Ref_TL, Ref_TR, Ref_BL на фиг. 9) левого, верхнего, верхнего левого, верхнего правого и нижнего левого блоков. В этом случае, опорный пиксел обычно состоит из пикселов соседнего блока, ближайшего к текущему блоку (a на фиг. 9 как строка опорных пикселов), но другие пикселы (b на фиг. 9 и пикселы на других внешних строках) могут также быть сконфигурированы в опорном пикселе.
[0281] Пикселы, смежные с текущим блоком, могут классифицироваться на по меньшей мере одну строку опорных пикселов, и пиксел, ближайший к текущему блоку, может классифицироваться в 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)}. То есть он может классифицироваться как строка опорных пикселов в соответствии с расстоянием пиксела, смежного с граничным пикселом текущего блока.
[0282] Здесь, число поддерживаемых строк опорных пикселов может составлять N или больше, и N может представлять собой целое число 1 или больше, такое как от 1 до 5. В этом случае, оно обычно включается в группу кандидатов строки опорных пикселов последовательно от строки опорных пикселов, ближайшей к текущему блоку, но не ограничивается этим. Например, группы кандидатов могут последовательно конфигурироваться как <ref_0, ref_1, ref_2>, когда N составляет 3, или также возможно, что группа кандидатов сконфигурирована с конфигурацией, которая исключает ближайшие строки опорных пикселов, или непоследовательной конфигурацией, такой как <ref_0, ref_1, ref_3>, <ref_0, ref_2, ref_3>, <ref_1, ref_2, ref_3>.
[0283] Предсказание может выполняться с использованием всех строк опорных пикселов в группе кандидатов, или предсказание может выполняться с использованием некоторых строк опорных пикселов (одной или нескольких).
[0284] Например, одна из множества строк опорных пикселов может выбираться в соответствии с настройками кодирования/ декодирования, и интра-предсказание может выполняться с использованием строки опорных пикселов. Альтернативно, две или более из множества строк опорных пикселов могут выбираться для использования соответствующей строки опорных пикселов (например, взвешенное среднее применяется к данным каждой строки опорных пикселов) для выполнения интра-предсказания.
[0285] Здесь, выбор строки опорных пикселов может определяться неявно или явно. Например, в неявном случае, это означает, что она определяется в соответствии с настройками кодирования/декодирования, определенными в соответствии с одним или комбинацией двух или более элементов, таких как тип изображения, компонент цвета и размер/форма/положение блока. Кроме того, явный случай означает, что информация выбора строки опорных пикселов может генерироваться в единице, такой как блок.
[0286] Хотя настоящее изобретение главным образом описывает случай, в котором интра-предсказание выполняется с использованием ближайшей строки опорных пикселов, следует понимать, что различные варианты осуществления, описанные ниже, могут быть применимы к тому же самому или аналогичному применению, когда используются множество строк опорных пикселов.
[0287] Модуль конфигурации опорного пиксела интра-предсказания настоящего изобретения может включать в себя модуль генерации опорного пиксела, модуль интерполяции опорного пиксела и модуль фильтрации опорного пиксела и может включать в себя все или часть из вышеописанной конфигурации.
[0288] Доступный опорный пиксел и недоступный опорный пиксел могут классифицироваться путем проверки доступности опорного пиксела в модуле конфигурации опорного пиксела. Здесь, определяется, что опорный пиксел является недоступным, когда по меньшей мере одно из следующих условий удовлетворено. Разумеется, доступность опорного пиксела может определяться на основе дополнительных условий, не упомянутых в примерах, которые будут описаны далее, но в настоящем изобретении предполагается, что оно ограничено условиями в примерах, которые будут описаны далее.
[0289] Например, если любой из случаев ниже удовлетворяется, он (опорный пиксел) может определяться как недоступный: если располагается вне границы картинки, если не принадлежит той же единице разделения (например, единицам, которые не могут ссылаться друг на друга, таким как слайсы и фрагменты; однако, если единица, такая как слайс или фрагмент, имеет характеристики, которые могут ссылаться друг на друга, делается исключение, даже если единица не является той же самой единицей разделения), что и текущий блок, и если кодирование/ декодирование не завершено. То есть, когда ни одно из условий выше не удовлетворяется, он может определяться как доступный.
[0290] Кроме того, возможно ограничить использование опорного пиксела на основе настроек кодирования/декодирования. Например, использование опорного пиксела может быть ограничено в соответствии с тем, выполняется ли ограниченное интра-предсказание (например, constrained_intra_pred_flag), даже если он определен для использования в соответствии с условиями выше. Ограниченное интра-предсказание может выполняться, когда устойчивое к ошибкам кодирование/декодирование выполняется на внешнем факторе, таком как коммуникационная среда, или когда блок, на который ссылаются и который восстановлен из другого изображения, запрещен для использования в качестве опорного пиксела.
[0291] Когда отсутствует возможность ограниченного интра-предсказания (например, тип картинки I или constrained_intra_pred_flag=0 в типе картинки P или B), блок кандидатов опорного пиксела может быть доступным (однако, когда удовлетворены приведенные выше условия, например, расположение внутри границы картинки).
[0292] Альтернативно, когда ограниченное интра-предсказание активировано (например, constrained_intra_pred_flag установлен в 1 в типе картинки P или B), может быть определено, следует ли использовать блок кандидата опорного пиксела в соответствии с режимом кодирования (интра- или интер-режимом). В общем, оно может использоваться в интра-режиме и не может использоваться в интер-режиме. В примере выше, предполагается, необходимость использования определяется в соответствии с режимом кодирования, но необходимость использования может определяться в соответствии с различными другими факторами кодирования/декодирования.
[0293] Поскольку опорный пиксел состоит из одного или нескольких блоков, когда доступность опорного пиксела подтверждена и классифицирована, он может классифицироваться на три случая: <все доступны для использования>, <некоторые доступны для использования> и <не все доступны для использования>. Во всех случаях, отличных от случая <все доступны для использования>, опорный пиксел в положении недоступного блока кандидата может заполняться или генерироваться (A). Альтернативно, опорный пиксел в положении недоступного блока кандидата не может использоваться в процессе предсказания, и кодирование/декодирование режима предсказания может выполняться с исключением режима предсказания, в котором предсказание выполняется из опорного пиксела в положении (B).
[0294] Когда блок кандидата опорного пиксела доступен, пиксел в соответствующем положении может быть включен в память опорного пиксела текущего блока. В этом случае, данные пиксела могут копироваться без изменений или могут быть включены в память опорного пиксела посредством таких процессов, как фильтрация опорного пиксела и интерполяция опорного пиксела.
[0295] Когда блок кандидата опорного пиксела недоступен, он может обрабатываться при настройке A или B обработки опорного пиксела. Пример обработки, когда блок кандидата опорного пиксела недоступен, в соответствии с каждой настройкой, будет описан ниже.
[0296] (A) Когда блок кандидата опорного пиксела недоступен, пиксел в соответствующем местоположении, полученном через процесс генерации опорного пиксела, может быть включен в память опорного пиксела текущего блока.
[0297] Далее описывается способ генерации опорного пиксела в недоступном положении в качестве примера процесса генерации опорного пиксела.
[0298] Например, опорный пиксел может генерироваться с использованием произвольного пиксельного значения. Здесь, произвольное пиксельное значение означает одно пиксельное значение (например, минимальное значение, максимальное значение, медиану и т.д. диапазона пиксельного значения), принадлежащее диапазону значений пиксела (например, диапазону значений пиксела на основе битовой глубины или диапазону значений пиксела в соответствии с распределением пикселов на изображении). Подробно, пример может применяться, когда все блоки кандидата опорного пиксела недоступны, но не ограничен этим, и может применяться, даже когда только некоторые из блоков кандидата опорного пиксела недоступны.
[0299] Альтернативно, опорный пиксел может генерироваться из области, в которой кодирование/декодирование изображения было завершено. Подробно, опорный пиксел может генерироваться на основе по меньшей мере одного доступного блока (или доступного опорного пиксела), смежного с недоступным блоком. В этом случае, может использоваться по меньшей мере одно из экстраполяции, интерполяции и копирования.
[0300] (B) Когда блок кандидата опорного пиксела недоступен, использование режима предсказания с использованием пиксела в соответствующем местоположении может быть ограничено. Например, на фиг. 9, когда опорный пиксел в местоположении TR недоступен, может быть разрешено использование режимов 51-66 (фиг. 4), которые выполняют предсказание с использованием пиксела в соответствующем местоположении, ограничено, и использование режимов 2-50 (вертикальный режим), которые выполняют предсказание с использованием опорных пикселов в положениях T, TL, L и BL, а не опорного пиксела в местоположении TR (в этом примере описан только направленный режим).
[0301] В качестве другого примера, когда опорные пикселы во всех местоположениях недоступны, может отсутствовать разрешенный режим предсказания. В этом случае, блок предсказания может генерироваться с использованием произвольного пиксельного значения, как в некоторых конфигурациях настройки A, и предварительно установленный режим предсказания (например, режим DC и т.д.) для ссылки в процессе кодирования/декодирования режима предсказания следующего блока может быть установлен как режим предсказания соответствующего блока. То есть процесс кодирования/декодирования режима предсказания может неявно опускаться.
[0302] Пример, приведенный выше, относится к случаю, ассоциированному с процессом кодирования/декодирования режима предсказания. Модуль кодирования/декодирования режима предсказания настоящего изобретения будет описан далее в предположении, что поддерживается настройка A. Если поддерживается настройка B, частичная конфигурация модуля кодирования/декодирования режима предсказания может изменяться. Поскольку выше был описан случай, где опорные пикселы во всех положениях недоступны, далее будет описан случай, где опорные пикселы в некоторых положениях недоступны.
[0303] Например, положим, что режим предсказания соседнего блока включен в группу кандидатов MPM. Когда режим предсказания соседнего блока является режимом предсказания с использованием опорного пиксела в положении блока, которое недоступно для текущего блока, может добавляться процесс исключения соответствующего режима из группы кандидата MPM. То есть процесс проверки недоступного режима может добавляться к процессу проверки избыточности, который будет описан далее, в модуле кодирования/декодирования режима предсказания. Здесь, недоступный режим может назначаться различными определениями, но в этом примере, предполагается, что он представляет собой режим предсказания с использованием опорного пиксела в недоступном положении блока. Поэтому, процесс конфигурации группы кандидатов MPM режима предсказания выполняется в соответствии с приоритетом, но следует ли включать в группу кандидата MPM, может определяться через процесс проверки избыточности и/или процесс проверки недоступного режима. Здесь, если режим предсказания текущего приоритета не проходит процесс проверки, режим предсказания следующего приоритета может быть кандидатом в процессе конфигурации группы кандидатов MPM.
[0304] Альтернативно, предполагается, что когда опорные пикселы положений TR, T и TL на фиг. 9 недоступны, использование режимов 19-66, которые выполняют предсказание с использованием пикселов в этих положениях, ограничено. В этом случае, режимы 2-18, которые выполняют предсказание с использованием опорных пикселов в положениях L и BL, могут представлять собой доступные режимы предсказания. В этом случае, в предположении, что число кандидатов MPM, включенных в группу кандидатов MPM, составляет 6, число кандидатов не-MPM, включенных в группу кандидатов не-MPM, может составлять 12. В этом случае, поддержание числа 6 кандидатов MPM (большое число по сравнению со всеми режимами) может быть неэффективным. Например, когда использование режима предсказания ограничено вследствие недоступных опорных пикселов, настройки энтропийного кодирования/декодирования, такие как регулировка числа кандидатов MPM (например, p->q, p>q) и бинаризация (например, бинаризация A переменной длины -> бинаризация B переменной длины и т.д.), могут изменяться. То есть, может поддерживаться адаптивное кодирование/декодирования режима предсказания, и подробное его описание будет опущено.
[0305] Кроме того, поскольку, в группе кандидатов не-MPM, точно так же может не существовать возможности появления режима предсказания, в котором использование ограничено опорным пикселом, который недоступен, может не требоваться включать соответствующий режим в группу кандидатов. Это означает, что в настройке энтропийного кодирования/декодирования, такой как регулировка числа кандидатов не-MPM (например, s->t, s>t) и бинаризация (например, бинаризация фиксированной длины -> бинаризация переменной длины и т.д.), может поддерживаться адаптивное кодирование/декодирование режима предсказания подобно группе кандидатов MPM.
[0306] На приведенном выше примере были описаны различные примеры обработки, когда опорный пиксел недоступен. Это может возникать в случае режима копирования цвета, а также общего режима предсказания.
[0307] Затем, когда поддерживается режим копирования цвета, выполняется классификация, на основе доступности опорного пиксела, на доступный опорный пиксел и недоступный опорный пиксел, и будут описаны примеры ее различной обработки.
[0308]
[0309] Фиг. 11 представляет собой примерную диаграмму для пояснения доступности опорного пиксела в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Фиг. 11 предполагает случай, где левый и верхний блоки текущего блока (текущее цветовое пространство) и соответствующий блок (отличающееся цветовое пространство) относятся к области, используемой для получения информации корреляции, и случай частичного цветового формата (YCbCr 4:4:4).
[0310] Уже было упомянуто, что доступность опорного пиксела может определяться на основе положения текущего блока (например, расположен ли он вне границы картинки и т.д.). Фиг. 11 показывает различные примеры доступности опорного пиксела на основе положения текущего блока.
[0311] На фиг. 11, доступность опорного пиксела текущего блока означает тот же самый случай (результат), что и соответствующий блок. Однако, предполагается, что он делится на ту же самую единицу разделения (фрагмент, слайс и т.д.), что и текущее цветовое пространство, в отличающемся цветовом пространстве (однако, необходимо учитывать отношение компонентов цветового формата).
[0312] Фиг. 11A показывает случай, где все опорные пикселы доступны, фиг. 11B и фиг. 11C показывают случай, где некоторые опорные пикселы доступны (верхний блок и левый блок, соответственно), и фиг. 11D показывает случай, где все опорные пикселы недоступны.
[0313] За исключением фиг. 11A, поскольку по меньшей мере один опорный пиксел недоступен, для него требуется обработка. В соответствии с настройкой A обработки опорного пиксела, процесс заполнения недоступной области может выполняться через процесс генерации опорного пиксела. В этом случае, опорный пиксел текущего блока может обрабатываться через вышеописанный процесс генерации опорного пиксела (общее интра-предсказание).
[0314] Опорный пиксел соответствующего блока может обрабатываться точно так же или отлично от текущего блока. Например, если опорный пиксел в положении L2 (см. фиг. 10) среди опорных пикселов текущего блока недоступен, он может генерироваться через произвольное пиксельное значение или через доступный опорный пиксел. Конкретно, доступный опорный пиксел может быть расположен в левом/правом или верхнем/нижнем направлении (L1, L3 и т.д. в этом примере) недоступного опорного пиксела или на той же самой строке опорных пикселов (R3 и т.д. в этом примере).
[0315] С другой стороны, опорный пиксел соответствующего блока может также генерироваться через произвольное пиксельное значение или через доступный опорный пиксел. Однако местоположение доступного опорного пиксела может быть тем же самым или отличным от текущего блока. Подробно, доступный опорный пиксел может быть расположен в различных направлениях, таких как верхнее-левое, верхнее-правое, нижнее-левое и нижнее-правое, а также левое/правое/верхнее/нижнее направления недоступного опорного пиксела. Поскольку кодирование/ декодирование текущего блока еще не завершено, пикселы от a до p на фиг. 10 не принадлежат доступным опорным пикселам. Однако, поскольку кодирование/декодирование соответствующего блока было завершено, пикселы от aa до pp на фиг. 10 могут также принадлежать доступным опорным пикселам. Поэтому, опорный пиксел в недоступном положении может генерироваться с использованием различных способов, таких как интерполяция, экстраполяция, копирование или фильтрация доступных опорных пикселов.
[0316] Посредством вышеописанного процесса, опорный пиксел в недоступном местоположении, таком как от b до d на фиг. 11, может генерироваться и включаться в память опорного пиксела, и опорный пиксел в соответствующем местоположении может использоваться, чтобы получать информацию корреляции, как показано на фиг. 11A.
[0317]
[0318] Далее продолжается описание случая в соответствии с настройкой обработки B опорного пиксела. Можно ограничить использование опорных пикселов в недоступных положениях. Кроме того, можно ограничить использование режима предсказания, в котором предсказание выполняется из опорного пиксела в недоступном положении (применяется адаптивное кодирование/ декодирование режима предсказания и т.д.). Или возможна другая обработка.
[0319] Сначала будет описан случай ограничения использования опорного пиксела в недоступном положении. Как показано на фиг. 11A, левый и верхний блоки каждого из текущего блока и соответствующего блока используются, чтобы получать информацию корреляции, но фиг. 11B и 11C соответствуют случаям, в которых некоторые опорные пикселы недоступны. В этом случае, недоступный опорный пиксел не используется, и информация корреляции может быть получена с использованием доступного опорного пиксела. С другой стороны, может потребоваться учесть случай, где имеется недостаточно данных для получения информации корреляции.
[0320] Например, когда левый (N) и верхний (M) блоки текущего блока (M×N) представляют собой область для получения информации корреляции и число доступных опорных пикселов больше или равно k (0<k<=(M+N)), опорные пикселы могут использоваться в процессе получения информации корреляции. Если число доступных опорных пикселов меньше или равно k, опорные пикселы не могут использоваться в процессе получения информации корреляции.
[0321] Или, когда число доступных опорных пикселов в левом блоке больше или равно p (0<p<=N) и число доступных опорных пикселов в верхнем блоке больше или равно q (0<q<=M), опорные пикселы могут использоваться в процессе получения информации корреляции. Если число доступных опорных пикселов в левом блоке меньше или равно p или число доступных опорных пикселов в верхнем блоке меньше или равно q, опорные пикселы не могут использоваться в процессе получения информации корреляции.
[0322] Первый случай может представлять собой классификацию в соответствии с условием граничного значения во всей области для получения информации корреляции. Последний случай может представлять собой классификацию в соответствии с условием граничного значения в некоторой (частичной) области для получения информации корреляции. В последнем случае, это может быть примером классификации соседней области для получения информации корреляции на левое, верхнее, верхнее-левое, верхнее-правое и нижнее-левое положения, но может применяться при классификации на основе различных разделений соседней области (например, классификация на левое и верхнее положения; в этом случае, верхний+верхний-правый блоки классифицируются как верхние*, и левый+нижний-левый блоки классифицируются как левые*).
[0323] В последнем случае, настройка граничного значения может быть одной и той же или разной для каждой области. Например, когда все опорные пикселы (N) доступны в левом блоке, опорный пиксел может использоваться в процессе получения информации корреляции, и когда по меньшей мере один опорный пиксел доступен в верхнем блоке (т.е. некоторые опорные пикселы доступны), опорный пиксел может использоваться в процессе получения информации корреляции.
[0324] Кроме того, в вышеописанном примере, одни и те же или разные настройки могут поддерживаться в зависимости от режима копирования цвета (например, когда поддерживаются фиг. 8A-8C). Связанные настройки могут определяться по-разному в соответствии с другими настройками кодирования/декодирования (например, тип изображения, размер, форма, местоположение блока, тип разделения блока и т.д.).
[0325] Когда процесс получения информации корреляции не выполняется (то есть даже один опорный пиксел не используется в процессе получения информации корреляции), информация корреляции может быть получена неявно. Например, в уравнении режима копирования цвета, a и b могут быть установлены в 1 и 0, соответственно (т.е. данные соответствующего блока используются в качестве значения предсказания текущего блока, как есть). Альтернативно, может использоваться информация корреляции блока, который был закодирован/декодирован в режиме копирования цвета, или предварительно установленная информация корреляции.
[0326] Альтернативно, значение предсказания текущего блока может заполняться произвольным значением (например, битовой глубиной или минимальным значением, медианным значением, максимальным значением и т.д. диапазона пиксельных значений). То есть, это может быть случай, аналогичный способу, выполняемому, когда все опорные пикселы недоступны в общем интра-предсказании.
[0327] Случай, где информация корреляции, как в вышеописанном примере, получена неявно, или случай, где значение предсказания заполняется произвольным значением, может быть примером, применимым к случаю, как показано на фиг. 11D. То есть это так, поскольку даже один опорный пиксел не используется в процессе получения информации корреляции.
[0328] Далее описывается случай ограничения использования режима предсказания, в котором предсказание выполняется из опорного пиксела в недоступном местоположении.
[0329]
[0330] Фиг. 12 представляет собой примерную диаграмму для пояснения доступности опорного пиксела в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. В примере, который будет описан далее, предполагается, что левый, верхний, верхний-правый и нижний-левый блоки текущего блока и соответствующего блока представляют собой область, используемую, чтобы получать информацию корреляции. Кроме того, поддерживаются три режима копирования цвета (режим_A, режим_B и режим_C), и предполагается, что каждый режим получает информацию корреляции из левого+верхнего, верхнего+верхнего-правого и левого+нижнего-левого блоков каждого блока.
[0331] Со ссылкой на фиг. 12, фиг. 12A показывает случай, где текущий блок расположен внутри изображения (картинки, слайса, фрагмента и т.д.), и фиг. 12B показывает случай, где текущий блок расположен на левой границе изображения. Фиг. 12C показывает случай, где текущий блок расположен на верхней границе изображения, и фиг. 12D показывает случай, где текущий блок расположен на верхней и левой границах изображения. То есть, предполагается, что доступность опорного пиксела определяется на основе положения текущего блока.
[0332] Со ссылкой на фиг. 12, режим_ A, режим_B и режим_C могут поддерживаться на фиг. 12A, режим_B может поддерживаться на фиг. 12B, режим_C может поддерживаться на фиг. 12C, и никакой режим не может поддерживаться на фиг. 12D. То есть, если даже один опорный пиксел, используемый для получения информации корреляции, недоступен, соответствующий режим не может поддерживаться.
[0333] Например, при построении группы кандидатов режима интра-предсказания для компонента цветности, могут быть включены направленный и ненаправленный режим, цветовой режим и режим копирования цвета. В этом случае, предполагается, что все 7 режимов предсказания включены в группу кандидатов с 4 режимами предсказания, такими как DC, планарный, вертикальный, горизонтальный и диагональный режимы, 1 цветовой режим и 3 режима копирования цвета.
[0334] Как в вышеописанном примере, режим копирования цвета, в котором информацию корреляции получают из недоступного опорного пиксела, может быть исключен. На фиг. 12C, группа кандидатов для компонента цветности может создаваться с остальными шестью режимами предсказания за исключением режима_c. То есть число кандидатов режимов предсказания может регулироваться от m до n (m>n, n представляет собой целое число, большее или равное 1). Может потребоваться изменить энтропийное кодирование/декодирование, такое как настройка индекса и бинаризации режима предсказания и т.д.
[0335] На фиг. 12D, режим_A, режим_B и режим_C могут исключаться, и всего четыре кандидата могут создаваться с остальными режимами предсказания, такими как направленные и ненаправленные режимы и цветовой режим.
[0336] Как в вышеописанном примере, группа кандидатов режима интра-предсказания может создаваться путем ограничения использования режима предсказания на основе недоступного опорного пиксела.
[0337] Когда настройка обработки B опорного пиксела применяется, как в вышеописанном примере, могут поддерживаться различные способы обработки. В зависимости от настройки кодирования/декодирования, обработка опорного пиксела и интра-предсказание могут выполняться неявно или явно на основе одного способа обработки.
[0338] В вышеописанном примере, доступность опорного пиксела в смежной области определяется на основе положения текущего блока. То есть, текущий блок и соответствующий блок имеют одно и то же положение на изображении (картинке, слайсе, фрагменте, максимальном блоке кодирования и т.д.), и таким образом, если конкретный блок (текущий блок или соответствующий блок) является смежным с границей изображения, соответствующий блок также расположен на границе изображения. Поэтому формируется тот же самый результат, когда доступность опорного пиксела определяется на основе положения каждого блока.
[0339] Кроме того, в качестве критерия для определения вероятности опорного пиксела, выше было описано ограниченное интра-предсказание и т.д. Вероятность опорного пиксела в смежной области текущего блока и соответствующего блока может быть не одной и той же.
[0340]
[0341] Фиг. 13 представляет собой примерную диаграмму для пояснения доступности опорного пиксела в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. В примере, который будет описан далее, предполагается, что левый и верхний блоки текущего блока и соответствующего блока являются областями, используемыми для получения информации корреляции. То есть это может быть описанием режима_A на фиг. 12, и предполагается, что, в других режимах копирования цвета, следующие описания могут применяться тем же самым или аналогичным образом.
[0342] Со ссылкой на фиг. 13, он может разделяться на случай, где все смежные области обоих блоков (текущего блока и соответствующего блока) доступны (i), случай, где только некоторые из них доступны (ii), и случай, где все недоступны (iii). Здесь, случай, где только некоторые доступны (ii), может разделяться на случай, где общая доступная область существует в обоих блоках (ii-1), и случай, где общая доступная область не существует в обоих блоках (ii-2). Здесь, случай, где общая доступная область существует в обоих блоках (ii-1), может разделяться на случай, где область идеально совпадает в обоих блоках (ii-1-1), и случай, где область только частично совпадает (ii-1-2).
[0343] Со ссылкой на фиг. 13, в классификации, i и iii соответствуют a и f на фиг. 13, ii-2 соответствует d и e на фиг. 13, и ii-1-1 соответствует с на фиг. 13, и ii-1-2 соответствует b на фиг. 13. Здесь, по сравнению со случаем определения возможности опорного пиксела на основе положения текущего блока (или соответствующего блока), ii-2 и ii-1-2 могут быть случаями, которые необходимо рассмотреть заново.
[0344] Процесс может быть включен в этап определения возможности опорного пиксела в режиме копирования цвета. В соответствии с результатом определения, может определяться настройка интра-предсказания режима копирования цвета, включающая в себя обработку на опорном пикселе. Пример обработки опорного пиксела и интра-предсказания на основе доступности каждой смежной области текущего блока и соответствующего блока будет описан ниже.
[0345]
[0346] В случае настройки обработки опорного пиксела, опорный пиксел в недоступном положении может заполняться различными способами, описанными выше. Однако подробные настройки могут устанавливаться по-разному в соответствии с классификацией в соответствии с доступностью смежных областей обоих блоков. Далее описываются случаи ii-2 и ii-1-2, а описание других случаев может дублироваться вышеизложенным описанием настоящего изобретения, поэтому их подробное описание будет опущено.
[0347] Например, фиг. 13D (ii-2) может представлять собой случай, в котором отсутствует общая доступная область в текущем блоке и соответствующем блоке. Кроме того, фиг. 13B (ii-1-2) может представлять собой случай, в котором доступные смежные области в текущем блоке и соответствующем блоке частично перекрываются. В этом случае, процесс заполнения данных в смежной области недоступного положения (например, заполнение из доступной области) может использоваться в процессе получения информации корреляции.
[0348] Альтернативно, фиг. 13E (ii-2) может представлять собой случай, в котором вся смежная область текущего блока или соответствующего блока недоступна. То есть, один из двух блоков не имеет данных для использования в процессе получения информации корреляции, и область может заполняться различными данными.
[0349] Здесь, область может заполняться с использованием произвольного значения, и могут использоваться минимальное значение, медианное значение, максимальное значение и т.д. на основе диапазона значений пиксела (или битовой глубины) изображения.
[0350] Здесь, область может заполняться таким способом, как копирование из доступной смежной области другого цветового пространства. В этом случае, поскольку смежные области обоих блоков имеют одни и те же характеристики изображения (т.е. одни и те же данные) из-за вышеописанного процесса, может быть получена предварительно установленная информация корреляции. Например, в уравнении, связанном с корреляцией, a установлено в 1 и b установлено в 0. Это соответствует случаю, где данные соответствующего блока копируются как значение предсказания текущего блока, и может быть установлена другая различная информация корреляции.
[0351] В случае настройки обработки B опорного пиксела, использование опорного пиксела в недоступном положении или использование соответствующего режима копирования цвета может быть ограничено посредством различных способов, описанных выше. Однако подробные настройки могут устанавливаться по-разному в соответствии с классификацией доступности. Далее описываются случаи ii-2 и ii-1-2, а описание других случаев может дублироваться вышеизложенным описанием настоящего изобретения, поэтому их подробное описание будет опущено.
[0352] Например, фиг. 13D и 13E (ii-2) могут представлять собой случай, в котором отсутствует общая доступная область в текущем блоке и соответствующем блоке. Поскольку нет перекрывающейся области в обоих блоках, которую можно сравнить для получения информации корреляции, использование соответствующего режима копирования цвета может быть ограничено. Альтернативно, значение предсказания текущего блока может заполняться произвольным значением или тому подобным. То есть, это может означать, что процесс получения информация корреляции не выполняется.
[0353] Альтернативно, фиг. 13B (ii-1-2) может представлять собой случай, в котором доступные смежные области в текущем блоке и соответствующем блоке частично перекрываются. Поэтому можно выполнить процесс получения информации корреляции даже только в некоторых из доступных смежных областей.
[0354] Фиг. 14 представляет собой блок-схему последовательности операций, иллюстрирующую способ интра-предсказания режима копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Со ссылкой на фиг. 14, может проверяться область опорных пикселов, назначенная для получения информации корреляции (S1400). Далее, настройка обработки для опорного пиксела может определяться на основе определения доступности назначенной области опорных пикселов (S1410). Кроме того, интра-предсказание может выполняться в соответствии с определенной настройкой обработки для опорного пиксела (S1420). Здесь, блок предсказания в соответствии с режимом копирования цвета может генерироваться путем получения информации корреляции на основе данных доступной области опорных пикселов в соответствии с настройкой обработки опорного пиксела, или может генерироваться блок предсказания, заполненный произвольным значением.
[0355] Подытоживая сказанное, когда режим копирования цвета поддерживается для интра-предсказания компонента цветности, может проверяться сравнение области для получения информации корреляции, назначенной режимом копирования цвета. В отличие от общего режима интра-предсказания, режим копирования цвета может проверять не только смежную область текущего блока (в особенности, область, используемую для сравнения информации корреляции), но также доступность опорных пикселов соответствующего блока. Обработка опорного пиксела и интра-предсказание в соответствии с различными примерами, описанными выше, могут выполняться в соответствии с предварительно установленной настройкой обработки опорного пиксела или множеством настроек обработки опорного пиксела и доступности опорного пиксела.
[0356] Здесь, настройка обработки опорного пиксела может неявно определяться в соответствии с типом изображения, компонентом цвета, размером/положением/формой блока, отношением горизонтальной/вертикальной длины блока, режимом кодирования и режимом интра-предсказания (например, диапазон, положение, число пикселов и т.д. области, подлежащей сравнению для получения информации корреляции режима копирования цвета), или ограниченная настройка интра-предсказания или связанная информация могут явно генерироваться в таких единицах, как последовательность, картинка, слайс, фрагмент и т.д. В этом случае, настройка обработки опорного пиксела может определяться ограниченной информацией состояния текущего блока (или текущего изображения) или информацией состояния соответствующего блока (или изображения другого цвета) или может определяться путем комбинации множества информаций состояния.
[0357] Хотя настройки A и B обработки опорного пиксела были описаны отдельно через пример выше, две настройки могут использоваться по отдельности или в комбинации, и это может также определяться на основе информации состояния или явной информации.
[0358]
[0359] После того, как построение опорного пиксела завершено в модуле интерполяции опорного пиксела, опорный пиксел в десятичной единице может генерироваться посредством линейной интерполяции опорного пиксела. Альтернативно, процесс интерполяции опорного пиксела может выполняться после процесса фильтрации опорного пиксела, описанного ниже.
[0360] В этом случае, процесс интерполяции не может выполняться в случае горизонтального, вертикального, некоторых диагональных режимов (например, режимов с разницей 45 градусов по вертикали/горизонтали, таких как диагональный верхний правый, диагональный нижний правый, диагональный нижний левый режим, соответственно режиму 2, 34 и 66 на фиг. 4), ненаправленного режима, режима копирования цвета и т.д., и процесс интерполяции может выполняться в других режимах (других диагональных режимах).
[0361] Положение пиксела (т.е. какая десятичная единица интерполируется; это определяется от 1/2 до 1/64 и т.д.), где интерполяция выполняется, может определяться в соответствии с режимом предсказания (например, направленностью режима предсказания, dy/dx и т.д.) и положениями опорного пиксела и пиксела предсказания. В этом случае, один фильтр (например, предположим фильтр с тем же самым уравнением, используемым для определения коэффициентов фильтра или длины отводов фильтра; однако, предполагается, что только коэффициенты регулируются в соответствии с точностью <например, 1/32, 7/32, 19/32> десятичной единицы) может применяться независимо от точности десятичной единицы, или один из множества фильтров (например, предположим фильтр с соответствующим уравнением, используемым для определения коэффициентов фильтра или длины отводов фильтра) может выбираться и применяться в соответствии с десятичной единицей.
[0362] Первый случай может быть примером использования пиксела целочисленной единицы в качестве входного для интерполяции пиксела десятичной единицы, а последний случай может быть примером других входных пикселов поэтапно (например, в случае 1/2 единицы, используются целочисленные пикселы; в случае 1/4 единицы, используются целочисленные пикселы и пикселы 1/2 единицы и т.д.), но не ограничен этим, и в настоящем изобретении, главным образом, будет описан первый случай.
[0363] Для интерполяции опорного пиксела, может выполняться фиксированная фильтрация или адаптивная фильтрация, и это может определяться в соответствии с настройками кодирования/ декодирования (например, одно или комбинация двух или более из типа изображения, компонента цвета, положения/размера/формы блока, отношения ширины/высоты блока, режима предсказания и т.д.).
[0364] Фиксированная фильтрация может выполнять интерполяцию опорного пиксела с использованием одного фильтра, а адаптивная фильтрация может выполнять интерполяцию опорного пиксела с использованием одного из множества фильтров.
[0365] Здесь, в случае адаптивной фильтрации, один из множества фильтров может определяться неявно или явно в соответствии с настройками кодирования/декодирования. Здесь, тип фильтра может состоять из 4-отводного DCT-IF фильтра, 4-отводного кубического фильтра, 4-отводного гауссова фильтра, 6-отводного винеровского фильтра и 8-отводного калмановского фильтра. Кроме того, также можно определить разные группы кандидатов фильтра, поддерживаемые в соответствии с компонентами цвета (например, некоторые типы фильтров являются одними и теми же или разными, и длина отводов фильтра является короткой или длинной, и т.д.).
[0366] Модуль фильтрации опорного пиксела может выполнять фильтрацию на опорном пикселе с целью улучшения точности предсказания путем уменьшения остающегося ухудшения посредством процесса кодирования/декодирования. Фильтр, используемый в этом случае, может представлять собой фильтр нижних частот, но не ограничен этим. То, применяется ли фильтрация, может определяться в соответствии с настройками кодирования/ декодирования (которые могут выводиться из описания выше). Кроме того, когда фильтрация применяется, может применяться фиксированная фильтрация или адаптивная фильтрация.
[0367] Фиксированная фильтрация означает, что фильтрация опорного пиксела не выполняется или фильтрация опорного пиксела применяется с использованием одного фильтра. Адаптивная фильтрация означает, что то, применяется ли фильтрация, определяется в соответствии с настройками кодирования/ декодирования, и если существуют два или более поддерживаемых типа фильтра, может выбираться один из них.
[0368] В этом случае, множество фильтров, классифицированных различными коэффициентами фильтра, таких как 3-отводный фильтр, такой как [1, 2, 1]/4, 5-отводный тип фильтра, такой как [2, 3, 6, 3, 2]/16 и т.д., длины отводов фильтра и тому подобное, могут поддерживаться в качестве типа фильтра.
[0369] Модуль интерполяции опорного пиксела и модуль фильтрации опорного пиксела, введенные на этапе построения опорного пиксела, могут быть необходимыми компонентами для улучшения точности предсказания. Два процесса могут выполняться независимо, но также может быть возможной конфигурация, в которой два процесса смешаны (то есть обрабатываются как одна фильтрация).
[0370]
[0371] Модуль генерации блока предсказания может генерировать блок предсказания в соответствии с по меньшей мере одним режимом предсказания и использовать опорный пиксел на основе режима предсказания. В этом случае, в зависимости от режима предсказания, опорный пиксел может использоваться в способе (направленном режиме), таком как экстраполяция, и может использоваться в способе (ненаправленном режиме), таком как интерполяция, среднее (DC) или копия.
[0372] Далее описываются опорные пикселы, используемые в соответствии с режимом предсказания.
[0373] В случае направленного режима, опорные пикселы нижнего левого и левого блоков (Ref_BL, Ref_L на фиг. 10) могут использоваться для режимов между горизонтальным и некоторыми диагональными режимами (диагональный вверх вправо) (режимы 2-17 на фиг. 4), опорные пикселы левого блока могут использоваться для горизонтального режима, опорные пикселы левого, верхнего левого и верхнего блоков (Ref_L, Ref_TL, Ref_T на фиг. 10) могут использоваться для режимов между горизонтальным и вертикальным режимами (режимы 19-49 на фиг. 4), опорные пикселы верхнего блока (Ref_L на фиг. 10) могут использоваться для вертикального режима, и опорные пикселы верхнего и верхнего правого блоков (Ref_T, Ref_TR на фиг. 10) могут использоваться для режимов между вертикальным и некоторыми диагональными режимами (диагональный вниз влево) (режимы 51-66 на фиг. 4).
[0374] Кроме того, в случае ненаправленного режима, могут использоваться опорные пикселы, расположенные в одном или нескольких блоках из нижнего левого, левого, верхнего левого, верхнего и верхнего правого блоков (Ref_BL, Ref_L, Ref_TL, Ref_T, Ref_TR на фиг. 10). Например, он может использоваться для интра-предсказания в форме различных комбинаций опорных пикселов, таких как левый, верхний, левый+верхний, левый+верхний+верхний левый, левый+верхний+верхний левый+верхний правый и нижний левый и т.д., и это может определяться в соответствии с ненаправленным режимом (DC, планарный и т.д.). В примере, который будет описан далее, предполагается, что левый+верхний блоки используются в режиме DC, и левый+верхний+нижний левый+верхний правый блоки используются для предсказания в качестве опорного пиксела в планарном режиме.
[0375] Кроме того, в случае режима копирования цвета, восстановленный блок (Ref_C на фиг. 10) другого цветового пространства может использоваться в качестве опорного пиксела. В примере, описанном далее, будет описан случай, где блок, соответствующий текущему блоку, используется для предсказания в качестве опорных пикселов.
[0376] В этом случае, опорные пикселы, используемые для интра-предсказания, могут быть классифицированы на множество категорий (или единиц). Например, опорные пикселы, используемые для интра-предсказания, могут быть классифицированы на одну или несколько категорий, такие как первый опорный пиксел и второй опорный пиксел. Для удобства пояснения, выполняется деление на первый опорный пиксел и второй опорный пиксел, но может быть понятно, что другой дополнительный опорный пиксел также поддерживается.
[0377] Здесь, первый опорный пиксел может представлять собой пиксел, используемый непосредственно для генерации значений предсказания текущего блока, а второй опорный пиксел может представлять собой пиксел, используемый косвенно для генерации значений предсказания текущего блока. Альтернативно, первый опорный пиксел может представлять собой пиксел, используемый, чтобы генерировать значения предсказания всех пикселов в текущем блоке, и второй опорный пиксел может представлять собой пиксел, используемый, чтобы генерировать значения предсказания некоторых пикселов в текущем блоке. Альтернативно, первый опорный пиксел может представлять собой пиксел, используемый, чтобы генерировать первое значение предсказания текущего блока, и второй опорный пиксел может представлять собой пиксел, используемый, чтобы генерировать второе значение предсказания текущего блока. Альтернативно, первый опорный пиксел может представлять собой пиксел, позиционируемый на основе начальной точки (или начала координат) направления предсказания текущего блока, а второй опорный пиксел может представлять собой пиксел, позиционируемый независимо от направления предсказания текущего блока.
[0378] Как описано выше, выполнение предсказания с использованием второго опорного пиксела может называться процессом блока предсказания (или коррекции). То есть модуль коррекции блока предсказания может добавляться к модулю генерации блока предсказания настоящего изобретения.
[0379] В этом случае, опорные пикселы, используемые в модуле генерации блока предсказания и модуле коррекции блока предсказания, не ограничены первым и вторым опорными пикселами в каждой конфигурации. То есть модуль генерации блока предсказания может выполнять предсказание с использованием первого опорного пиксела или с использованием первого опорного пиксела и второго опорного пиксела. И модуль коррекции блока предсказания может выполнять предсказание (или коррекцию) с использованием второго опорного пиксела или с использованием первого опорного пиксела и второго опорного пиксела. В настоящем изобретении, для удобства описания, необходимо иметь в виду, что оно поясняется путем разделения на множество пикселов.
[0380] В интра-предсказании настоящего изобретения, можно не только выполнять предсказание с использованием первого опорного пиксела, но также выполнять предсказание (т.е. коррекцию выполнения) с использованием второго опорного пиксела, который может определяться в соответствии с настройкой кодирования/декодирования. Сначала, информация о том, поддерживается ли второй опорный пиксел (т.е. поддерживается ли коррекция значения предсказания), может генерироваться в единицах, таких как последовательность, картинка, слайс, фрагмент и т.д. Также, даже если определяется, что второй опорный пиксел явно или неявно поддерживается, то, поддерживается ли он для всех блоков или для некоторых блоков, и подробные настройки, относящиеся ко второму опорному пикселу в поддерживаемом блоке (см. дальнейшее описание для связанного содержания), и т.д., может определяться на основе настройки кодирования/декодирования, определенной в соответствии с типом изображения, компонентом цвета, размером/формой/положением блока, отношением горизонтальной/вертикальной длины блока, режимом кодирования, режимом интра-предсказания, ограниченной настройкой интра-предсказания и т.д. Альтернативно, связанная информация настроек может явно определяться в единицах, таких как последовательность, картинка, слайс, фрагмент и т.д.
[0381] Здесь, число первых и вторых опорных пикселов, используемых для значения предсказания одного пиксела, может составлять m и n, соответственно, и m и n имеют отношение числа пикселов (1:1), (1:2 или больше), (2 или больше:1), (2 или больше: 2 или больше). Оно может определяться в соответствии с режимом предсказания, размером/формой/положением текущего блока, положением пиксела и т.д. То есть, m может представлять собой целое число 1 или больше, такое как 1, 2, 3 и т.д., и n может представлять собой целое число 1 или больше, такое как 1, 2, 3, 4, 5, 8 и т.д.
[0382] Когда веса, применяемые к первому и второму опорным пикселам (в предположении, что один каждый пиксел используется в этом примере), составляют p и q, p может быть больше или равно q, и p может иметь положительное значение. q может иметь положительное или отрицательное значение.
[0383] Далее будет описан случай, где блок предсказания генерируется с использованием первого опорного пиксела, и второй опорный пиксел дополнительно используется вместе, чтобы выполнять предсказание.
[0384] Например, (см. фиг. 10) в режиме с диагональным вверх вправо направлением, предсказание может выполняться с использованием блоков <Ref_BL+Ref_L> или блоков <Ref_BL+Ref_L+Ref_T+Ref_TR>. Также, в горизонтальном режиме, предсказание может выполняться с использованием блока Ref_L или блоков <Ref_L+Ref_T+Ref_TL>. Кроме того, в режиме с диагональным вниз вправо направлением, предсказание может выполняться с использованием блоков <Ref_TL+Ref_T+Ref_L> или блоков <Ref_TL+Ref_T+Ref_L+Ref_TR+Ref_BL>. Дополнительно, в вертикальном режиме, предсказание может выполняться с использованием блока Ref_T или блоков <Ref_T+Ref_L+Ref_TL>. Также, в режиме с диагональным вниз влево направлением, предсказание может выполняться с использованием блоков <Ref_TR+Ref_T> или блоков <Ref_TR+Ref_T+Ref_L+Ref_BL>.
[0385] В качестве другого примера, режим DC может выполнять предсказание с использованием блоков <Ref_T+Ref_L> или блоков <Ref_T+Ref_L+Ref_TL+Ref_TR+Ref_BL>. Кроме того, в планарном режиме, предсказание может выполняться с использованием блоков <Ref_T+Ref_L+Ref_TR+Ref_BL> или блоков <Ref_T+Ref_L+Ref_TR+Ref_BL+Ref_TL>.
[0386] Кроме того, режим копирования цвета может выполнять предсказание с использованием блока Ref_C или блоков <Ref_C + (Ref_T или Ref_L или Ref_TL или Ref_TR или Ref_BL)>. Альтернативно, предсказание может выполняться с использованием блоков <Ref_C + (Def_T или Def_B или Def_L или Def_R или Def_TL или Def_TR или Def_BL или Def_BR)>. Здесь, Def не показан на фиг. 10, но представляет собой термин, используемый, чтобы ссылаться на блок, смежный с Ref_C (блок, соответствующий текущему блоку), и Def_T до Def_BR могут представлять собой смежные блоки в верхнем, нижнем, левом, правом, верхнем-левом, верхнем-правом, нижнем-левом, нижнем-правом направлениях. То есть, в режиме копирования цвета, предсказание может выполняться с использованием блока Ref_C, опорного пиксела, смежного с текущим блоком, или опорного пиксела, смежного с Ref_C (соответствующим блоком).
[0387] Примеры, приведенные выше, показывают некоторые примеры выполнения предсказания с использованием первого опорного пиксела или выполнения предсказания с использованием первого опорного пиксела и второго опорного пиксела, но не ограничены этим, и могут быть возможны различные примеры модификаций.
[0388] Генерация или коррекция блока предсказания с использованием множества опорных пикселов может выполняться с целью компенсации недостатка существующего режима предсказания.
[0389] Например, в случае направленного режима, он может представлять собой режим, поддерживаемый с целью повышения точности предсказания путем предположения, что существует край в конкретном направлении текущего блока. Однако, так как только опорные пикселы, расположенные в начальной точке направления предсказания, не могут точно отражать изменение в блоке, точность предсказания может снижаться. Альтернативно, в случае режима копирования цвета, подразумевается выполнять предсказание путем отражения информации корреляции из изображений другого цвета в это же самое время, но ухудшение на границе блока в изображении другого цвета может быть отражено, поэтому точность предсказания может снизиться. Чтобы решить отмеченную выше проблему, второй опорный пиксел может дополнительно использоваться, чтобы улучшать точность предсказания.
[0390] Далее будет описан случай выполнения предсказания с использованием множества опорных пикселов в режиме копирования цвета. Элементы, не описанные на чертежах примеров, которые будут описаны далее, могут быть получены со ссылкой на фиг. 10. Здесь, предполагается, что процесс получения информации корреляции в режиме копирования цвета может выполняться в предыдущем процессе или в дальнейшем процессе, и объяснение фокусируется на концептуальной части. Кроме того, интра-предсказание в режиме копирования цвета, который будет описан далее, может применяться точно так же или аналогично другому режиму интра-предсказания, за исключением получения значения предсказания из другого цветового пространства.
[0391] Фиг. 15 представляет собой примерную диаграмму для пояснения предсказания в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Со ссылкой на фиг. 15, блок предсказания может генерироваться с использованием опорного пиксела соответствующего блока в режиме копирования цвета.
[0392] Подробно, информация корреляции может быть получена из смежной области (назначенной режимом копирования цвета) каждого из текущего блока и соответствующего блока (p1). Кроме того, блок предсказания (pred_t) может быть получен путем получения данных из соответствующего блока (p2) и применения ранее полученной информации корреляции (p3). Это может компенсироваться (p4) блоком предсказания (pred_f) текущего блока.
[0393] Поскольку вышеуказанный пример может быть выведен из связанного описания в вышеописанном режиме копирования цвета, подробное описание будет опущено.
[0394] Фиг. 16 представляет собой примерную диаграмму для пояснения предсказания в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Со ссылкой на фиг. 16, в режиме копирования цвета, блок предсказания может генерироваться и корректироваться с использованием соответствующего блока и опорного пиксела, смежного с ним.
[0395] Подробно, информация корреляции может быть получена из смежной области каждого из текущего блока и соответствующего блока (p1). Кроме того, коррекция может выполняться на данных соответствующего блока. В этом случае, коррекция может быть ограничена внутри соответствующего блока (d5), или может быть ограничена границей блока, смежной с соответствующим блоком (d1 до d9 за исключением d5), или может выполняться по внутренней и внешней границе соответствующего блока (d1 до d9). То есть, данные соответствующего блока и смежной области соответствующего блока могут использоваться для коррекции. В этом случае, внешняя граница, на которой выполняется коррекция, может представлять собой одно или несколько (все могут быть включены) из верхнего, нижнего, левого, правого, верхнего-левого, верхнего-правого, нижнего-левого или нижнего-правого направлений (d1 до d9, соответственно, за исключением d5).
[0396] Кроме того, блок предсказания (pred_t) может быть получен путем получения данных (p2) через процесс коррекции соответствующего блока и применения ранее полученной информации корреляции (p3). Это может компенсироваться (p4) блоком предсказания (pred_f) текущего блока.
[0397] Фиг. 17 представляет собой примерную диаграмму для пояснения предсказания в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Со ссылкой на фиг. 17, в режиме копирования цвета, блок предсказания может генерироваться и корректироваться с использованием опорных пикселов, смежных с соответствующим блоком и текущим блоком.
[0398] Подробно, информация корреляции может быть получена из смежной области каждого из текущего блока и соответствующего блока (p1). Кроме того, блок предсказания (pred_t) может быть получен путем получения данных из соответствующего блока (p2) и применения ранее полученной информации корреляции (p3). Это может компенсироваться первым блоком предсказания текущего блока (p4), и коррекция может выполняться на первом блоке предсказания (называемом блоком предсказания). В этом случае, коррекция может быть ограничена внутри блока предсказания (c5), или может быть ограничена границей блока, смежной с блоком предсказания (c1 до c6 за исключением c5), или может выполняться по внутренней и внешней границе блока предсказания (c1 до c6). То есть данные блока предсказания (то есть данные на основе соответствующего блока; здесь, используется выражение ‘на основе’, поскольку применяется информация корреляции) и данные, смежные с блоком предсказания (данные в области, смежной с текущим блоком), могут использоваться для коррекции. В этом случае, внешняя граница, на которой выполняется коррекция, может представлять собой одно или несколько (все могут быть включены) из верхнего, левого, верхнего-левого, верхнего-правого и нижнего-левого направлений (каждое c1 до c6, но за исключением c5).
[0399] Данные, полученные через процесс коррекции блока предсказания, могут компенсироваться (p5) (вторичным или конечным) блоком предсказания (pred_f) текущего блока.
[0400] Фиг. 18 представляет собой блок-схему последовательности операций процесса выполнения коррекции в режиме копирования цвета в соответствии с вариантом осуществления настоящего изобретения. Подробно, показан процесс выполнения коррекции путем выбора одного из процессов коррекции, описанных со ссылкой на фиг. 16 и 17.
[0401] Со ссылкой на фиг. 18, информация корреляции может быть получена из смежной области текущего блока и соответствующего блока (S1800). Кроме того, данные соответствующего блока могут быть получены (S1810). Последующее описание предполагает, что неявно или явно определено, что выполняется коррекция блока предсказания. Можно проверить, следует ли выполнять коррекцию блока предсказания в текущем цветовом пространстве или коррекцию блока предсказания в другом цветовом пространстве (S1820).
[0402] Если блок предсказания корректируется в текущем цветовом пространстве, блок предсказания может генерироваться путем применения информации корреляции к данным соответствующего блока (S1830). Это может быть тем же самым, что и процесс общего режима копирования цвета. Кроме того, блок предсказания может корректироваться с использованием области, смежной с текущим блоком (S1840). В этом случае, могут использоваться не только смежная область текущего блока, но также полученные данные внутри блока предсказания.
[0403] Если блок предсказания корректируется в другом цветовом пространстве, соответствующий блок может корректироваться с использованием смежной области соответствующего блока (S1850). В этом случае, могут использоваться не только смежная область соответствующего блока, но также данные внутри соответствующего блока. Кроме того, блок предсказания может генерироваться путем применения информации корреляции к скорректированному соответствующему блоку (S1860).
[0404] Данные, полученные посредством вышеописанного процесса, могут компенсироваться блоком предсказания текущего блока (S1870).
[0405] Примеры применения на фиг. 16 и 17 не являются несовместимыми вследствие классификации в соответствии с цветовым пространством в вышеприведенном примере. То есть, может быть возможным сочетать примеры применения согласно фиг. 16 и 17. Например, блок предсказания текущего блока может быть получен посредством процесса коррекции соответствующего блока, как показано на фиг. 16, и конечный блок предсказания может быть получен посредством процесса коррекции полученного блока предсказания, как показано на фиг. 17.
[0406] Выполнение коррекции в интра-предсказании согласно настоящему изобретению может означать применение фильтрации к пикселу, подлежащему коррекции, и другим пикселам (смежным пикселам в этом примере). В этом случае, фильтрация может выполняться в соответствии с одной предварительно установленной настройкой фильтрации или одной из множества настроек фильтрации. Здесь, настройка фильтрации может представлять собой содержимое, включенное в подробную настройку, относящуюся ко второму опорному пикселу, описанному выше.
[0407] Настройка фильтрации включает в себя то, применяется ли фильтрация или нет, и может включать в себя тип фильтра, коэффициент фильтра, положение пиксела, используемого для фильтра, и тому подобное. Здесь, единица, к которой применяется настройка фильтрации, может представлять собой блок или единицу пиксела. Здесь, настройка кодирования/декодирования может определяться в соответствии с типом изображения, компонентом цвета, цветовым форматом (т.е. отношением состава между компонентами цвета), режимом кодирования (интра-/интер-), размером/формой/положением блока, отношением ширины/вертикальной длины блока, положением пиксела в блоке, режимом интра-предсказания, ограниченным интра-предсказанием и тому подобным, и может использоваться для настройки фильтрации. Здесь, блок описан в предположении текущего блока, но может пониматься как термин, включающий в себя блок, смежный с текущим блоком, или блок, смежный с соответствующим блоком в режиме копирования цвета. Другими словами, это означает, что информация статуса текущего блока и других блоков может использоваться в качестве входных переменных для настроек фильтрации. Кроме того, информация о настройках фильтрации может быть явно включена в единицы, такие как последовательность, картинка, слайс, фрагмент и блок.
[0408] Далее описывается тип фильтра среди настройки фильтрации. Фильтрация может применяться (т.е. одномерная) к смежным пикселам целевого пиксела коррекции на одной из горизонтальной, вертикальной или диагональной строк. Альтернативно, фильтрация может применяться (т.е. двумерная) к пространственно смежным пикселам целевого пиксела коррекции в левом, правом, верхнем, нижнем, верхнем-левом, верхнем-правом, нижнем-левом и нижнем-правом направлениях. Другими словами, фильтрация может применяться к пикселам, смежным с целевым пикселом коррекции в пределах M×N. В примере, который будет описан далее, предполагается, что M и N составляют 3 или меньше, но M или N могут иметь значение больше 3. В общем, смежные пикселы могут иметь симметричную форму или ассиметричную форму вокруг целевого пиксела коррекции.
[0409] Фиг. 19 представляет собой примерную диаграмму для пояснения типа фильтра, применяемого к целевому пикселу коррекции в соответствии с примерным вариантом осуществления настоящего изобретения. Подробно, показан пример случая, в котором фильтр применяется симметрично вокруг целевого пиксела коррекции (жирная линия на чертеже).
[0410] Со ссылкой на фиг. 19, фиг. 19A и 19B обозначают 3-отводный фильтр в горизонтальном и вертикальном направлениях. Кроме того, фиг. 19C и 19D обозначают 3-отводный фильтр в диагональном направлении (углы с отклонением на -45 и +45 градусов относительно вертикальной строки). Кроме того, фиг. 19E и 19F обозначают 5-отводный фильтр, имеющий форму (+) или (x). Кроме того, фиг. 19G обозначает квадратный 9-отводный фильтр.
[0411] В качестве примера применения фильтрации, фиг. 19A-19G могут применяться к внутренней или внешней области (или границе) блока.
[0412] В качестве другого примера, фиг. 19E-19G могут применяться внутри блока. Альтернативно, фиг. 19A-19D могут применяться к границе блока. Подробно, фиг. 19A может применяться на левой границе блока, и фиг. 19B может применяться на верхней границе блока. Фиг. 19C может применяться на верхней-левой границе блока, и фиг. 19D может применяться на верхней-правой и нижней-левой границах блока.
[0413] Примеры выше представляют собой некоторые случаи выбора фильтра на основе положения целевого пиксела коррекции, но не ограничены этим и могут быть возможными различные примеры применения, включая противоположный случай.
[0414] Фиг. 20 представляет собой примерную диаграмму для пояснения типа фильтра, применяемого к целевому пикселу коррекции в соответствии с вариантом осуществления настоящего изобретения. Подробно, показан пример случая, в котором фильтр применяется ассиметрично вокруг целевого пиксела коррекции.
[0415] Со ссылкой на фиг. 20, фиг. 20A и 20B обозначают 2-отводный фильтр, использующий только левый пиксел и верхний пиксел, соответственно, и фиг. 20C обозначает 3-отводный фильтр, использующий левый и верхний пикселы. Фиг. 20D-20F обозначают 4-отводный фильтр в верхнем-левом направлении, верхнем направлении и левом направлении, соответственно. Фиг. 20G-20J обозначают 6-отводный фильтр в верхнем, левом и правом направлениях, верхнем, левом и нижнем направлениях, нижнем, левом и правом направлениях и верхнем, нижнем и правом направлениях, соответственно.
[0416] В качестве примера применения фильтрации, фиг. 20A-20J могут применяться к внутренней или внешней области блока.
[0417] В качестве другого примера, фиг. 20G-20J могут применяться внутри блока. Альтернативно, фиг. 20A-20F могут применяться к границе блока. Подробно, фиг. 20A-20F могут применяться на левой границе блока, и фиг. 20B-20E могут применяться на верхней границе блока. Фиг. 20C-20D могут применяться на верхней-левой границе блока.
[0418] Примеры выше представляют собой некоторые случаи выбора фильтра на основе положения целевого пиксела коррекции, но не ограничены этим, и возможны различные примеры применения, включая противоположный случай.
[0419] Коэффициенты фильтра на фиг. 19 и 20 могут устанавливаться по-разному. Например, в случае 2-отводного фильтра, могут применяться веса с отношением 1:1 или 1:3 (где 1 и 3 являются весами для целевого пиксела коррекции). В случае 3-отводного фильтра, могут применяться веса с отношением 1:1:2 (где 2 является весом для целевого пиксела коррекции). В случае 4-отводного фильтра, могут применяться веса с отношением 1:1:1:5 или 1:1:2:4 (где 4 и 5 являются весами для целевого пиксела коррекции). В случае 5-отводного фильтра, могут применяться веса с отношением 1:1:1:1:4 (где 4 является весом для целевого пиксела коррекции). В случае 6-отводного фильтра, могут применяться веса с отношением 1:1:1:1:2:2 (где 2 является весом для целевого пиксела коррекции). В случае 9-отводного фильтра, могут применяться веса с отношением 1:1:1:1:1:1:1:1:8 или 1:1:1:1:2:2:2:2:4 (здесь, 8 и 4 является весом для целевого пиксела коррекции). В примере выше, пиксел, к которому применяется наибольший вес среди остальных весов за исключением веса для целевого пиксела коррекции, может быть пикселом, который имеет короткое расстояние до целевого пиксела коррекции (смежным с вертикальным или горизонтальным направлением), или пикселом, расположенным в центре, таким как целевой пиксел коррекции в симметричной структуре. Примеры выше представляют собой только некоторые случаи касательно настройки веса, но не ограничены ими, и возможны различные примеры модификаций.
[0420] Фильтр, используемый для коррекции, может неявно определяться в соответствии с настройкой кодирования/ декодирования или может быть явно включен в единицы, такие как последовательность, картинка, слайс или фрагмент. Здесь, описание для определения настройки кодирования/декодирования может выводиться из вышеописанных различных примеров настоящего изобретения.
[0421] В этом случае информация, указывающая, поддерживается ли множество фильтров, может генерироваться в модуле. Если множество фильтров не поддерживается, то может использоваться предварительно установленный фильтр, а если поддерживается множество фильтров, то может дополнительно генерироваться информация выбора фильтра. В этом случае, фильтр, показанный на фиг. 19 и 20, или другие фильтры, могут быть включены в группу кандидатов.
[0422] Далее предполагается, что коррекция выполняется в другом цветовом пространстве, как показано на фиг. 16, и с этой целью, делается ссылка на фиг. 10 (т.е. целевым блоком коррекции является Ref_C). В примере, который будет описан далее, предполагается, что фильтр, используемый для блока, определяется посредством предыдущего процесса, и фильтр применяется ко всем или большинству пикселов блока.
[0423] Групповой фильтр поддерживается на основе информации состояния области, смежной с целевым блоком коррекции, но адаптивный фильтр на основе положения целевого пиксела коррекции может также поддерживаться.
[0424] Например, 5-отводный фильтр (фиг. 19E) может применяться к aa до pp Ref_C вокруг целевого пиксела коррекции. В этом случае, один и тот же фильтр может применяться независимо от положения целевого пиксела коррекции. Кроме того, область, смежная с блоком, на котором выполняется коррекция, может не иметь ограничений на применение фильтрации.
[0425] Альтернативно, 5-отводный фильтр может применяться к ff, gg, jj и kk Ref_C (т.е. внутри блока) вокруг целевого пиксела коррекции, и фильтрация может применяться для других пикселов (границы блока) на основе состояния смежного блока. Подробно, когда определено, что пиксел недоступен, например, левый блок Ref_C расположен вне картинки или режим кодирования представляет собой интер-режим (т.е. когда ограниченная настройка интра-предсказания активирована), фильтр в вертикальном направлении (например, фиг. 19B) может применяться к aa, ee, ii и mm Ref_C. Альтернативно, когда верхний блок Ref_C недоступен, фильтр в горизонтальном направлении (например, фиг. 19A) может применяться к aa до dd Ref_C. Доступность пиксела может определяться, как описано в разделе для определения доступности опорного пиксела согласно настоящему изобретению.
[0426] Групповой фильтр поддерживается на основе режима интра-предсказания, но адаптивный фильтр на основе положения целевого пиксела коррекции может также поддерживаться.
[0427] Например, в режиме получения информации корреляции из левого и верхнего блоков среди режимов копирования цвета, 9-отводный фильтр (фиг. 19G) может применяться к aa до pp Ref_C. В этом случае, один и тот же фильтр может применяться независимо от положения целевого пиксела коррекции.
[0428] Альтернативно, в режиме получения информации корреляции из левого и нижнего-левого блоков среди режимов копирования цвета, 9-отводный фильтр может применяться к ee до pp Ref_C, и фильтрация может применяться для других пикселов (верхней границы) на основе настройки режима предсказания. В этом примере, поскольку информацию корреляции получают из левого и нижнего-левого блоков, можно оценить, что корреляция с верхним блоком будет низкой. Поэтому, фильтр в нижнем, левом и правом направлениях (например, фиг. 20I) может применяться к aa до dd Ref_C.
[0429]
[0430] В настоящем изобретении, главным образом описан режим копирования цвета некоторых цветовых форматов (4:4:4). В зависимости от цветового формата, могут существовать отличия в подробных конфигурациях, относящихся к коррекции. В этом примере, предполагается, что коррекция выполняется в другом цветовом пространстве.
[0431] В режиме копирования цвета, информацию корреляции и значения предсказания получают непосредственно из соответствующего пиксела, поскольку один пиксел текущего цветового пространства соответствует одному пикселу другого цветового пространства в некоторых цветовых форматах (4:4:4).
[0432] С другой стороны, в некоторых цветовых форматах (4:2:0), один пиксел текущего цветового пространства соответствует одному или нескольким пикселам (четырем в этом примере) другого цветового пространства. Если выбирается один предварительно установленный пиксел, и связанные данные не получены из пиксела, может потребоваться процесс суб-дискретизации для получения связанных данных из множества соответствующих пикселов.
[0433] Далее описывается процесс предсказания и коррекции в режиме копирования цвета в соответствии с каждым цветовым форматом. В примере, который будет описан далее, предполагается, что процесс суб-дискретизации выполняется для некоторых форматов (4:2:0). Кроме того, блоки, соответствующие текущему блоку, называются блоками A и B, соответственно.
[0434]
[0435] <1> Интра-предсказание в формате 4:4:4
[0436] <1-1> Получение пиксельного значения в смежной области блока A
[0437] <1-2> Получение пиксельного значения, соответствующего пикселу <1-1>, из смежной области блока B
[0438] <1-3> Получение информации корреляции на основе пиксельного значения смежной области в каждом цветовом пространстве
[0439] <1-4> Извлечение пиксела блока B и пиксела, смежного с ним
[0440] <1-5> Коррекция блока B путем применения фильтрации к пикселам <1-4>
[0441] <1-6> Получение пиксельного значения блока B (M×N), соответствующего пикселу блока A (M×N)
[0442] <1-7> Генерация пиксела предсказания путем применения информации корреляции к значению пиксела <1-6>
[0443]
[0444] <2> Интра-предсказание в формате 4:2:0 (1)
[0445] <2-1> Получение пиксельного значения в смежной области блока A
[0446] <2-2> Извлечение пиксела, соответствующего пикселу <2-1>, и пиксела, смежного с ним, из смежной области блока B
[0447] <2-3> Применение суб-дискретизации к пикселу <2-2>, чтобы получить пиксельное значение, соответствующее пикселу <2-1> в смежной области блока B
[0448] <2-4> Получение информации корреляции на основе пиксельного значения смежной области в каждом цветовом пространстве
[0449] <2-5> Извлечение пиксела блока B и пиксела, смежного с ним
[0450] <2-6> Коррекция блока B путем применения фильтрации к пикселу <2-5>
[0451] <2-7> Извлечение пиксела блока B (2M×2N), соответствующего пикселу блока A (M×N), и пиксела, смежного с ним
[0452] <2-8> Применение суб-дискретизации к пикселу <2-7>, чтобы получить пиксельное значение блока B
[0453] <2-9> Генерация пиксела предсказания путем применения информации корреляции к значению пиксела <2-8>
[0454]
[0455] Со ссылкой на процессы <1> и <2>, в <1>, одна фильтрация применяется в <1-5>, в то время как в <2>, множество фильтраций применяется в <2-6> и <2-8>. <2-6> может быть процессом для коррекции данных используемых, чтобы получать пиксел предсказания, и <2-8> может быть процессом суб-дискретизации для получения пиксела предсказания, и фильтр в каждом процессе также конфигурируется по-разному. Разумеется, результат кодирования может улучшаться вследствие каждого процесса, но могут возникать эффекты избыточной фильтрации. Кроме того, повышение сложности вследствие повышения числа фильтраций может быть неподходящим для некоторых профилей. Поэтому, в некоторых цветовых форматах, может потребоваться поддерживать фильтрацию, которая интегрирует их.
[0456]
[0457] <3> Интра-предсказание в формате 4:2:0 (2)
[0458] <3-1> Получение пиксельного значения в смежной области блока A
[0459] <3-2> Извлечение пиксела, соответствующего пикселу <3-1>, и пиксела, смежного с ним, из смежной области блока B
[0460] <3-3> Применение суб-дискретизации к пикселам <3-2>, чтобы получить пиксельное значение, соответствующее пикселу <3-1> в смежной области блока B
[0461] <3-4> Получение информации корреляции на основе пиксельного значения смежной области в каждом цветовом пространстве
[0462] <3-5> Извлечение пиксела блока B и пикселов, смежных с ним
[0463] <3-6> Коррекция блока B путем применения фильтрации к пикселу <3-5>
[0464] <3-7> Получение пиксельного значения блока B (2M×2N), соответствующего пикселу блока A (M×N)
[0465] <3-8> Генерация пиксела предсказания путем применения информации корреляции к значению пиксела <3-7>
[0466]
[0467] <4> Интра-предсказание в формате 4:2:0 (3)
[0468] <4-1> Получение пиксельного значения в смежной области блока A
[0469] <4-2> Извлечение пиксела, соответствующего пикселу <4-1>, и пиксела, смежного с ним, из смежной области блока B
[0470] <4-3> Применение суб-дискретизации к пикселам <4-2>, чтобы получить пиксельное значение, соответствующее пикселу <4-1> в смежной области блока B
[0471] <4-4> Получение информации корреляции на основе пиксельного значения смежной области в каждом цветовом пространстве
[0472] <4-5> Извлечение пиксела блока B (2M×2N), соответствующего пикселу блока A (M×N), и пикселов, смежных с ним
[0473] <4-6> Применение суб-дискретизации к пикселам <4-5>, чтобы получить пиксельное значение блока B
[0474] <4-7> Генерация пиксела предсказания путем применения информации корреляции к значению пиксела <4-6>
[0475]
[0476] Со ссылкой на процесс <3>, процесс суб-дискретизации блока B опускается, и информация корреляции применяется к одному пикселу в предварительно установленном положении. Вместо этого, поскольку выполняется процесс коррекции, может возникать эффект устранения недостатков в процессе суб-дискретизации.
[0477] С другой стороны, со ссылкой на процесс <4>, процесс коррекции опускается и выполняется процесс суб-дискретизации блока B. Вместо этого можно использовать фильтр, который может формировать эффекты коррекции во время процесса суб-дискретизации. Хотя процесс коррекции может быть модифицирован до конфигурации, включенной в суб-дискретизацию, вышеописанная настройка в процессе коррекции может применяться, как есть. То есть, информация выбора фильтра для суб-дискретизации может явно определяться в модуле верхнего уровня или может неявно определяться в соответствии с настройками кодирования/ декодирования. Также явно или неявно может определяться, следует ли выполнить суб-дискретизацию с использованием только данных блока B, или следует ли выполнить суб-дискретизацию путем использования данных блока B и данных в одном или нескольких из левого, правого, верхнего, нижнего, верхнего-левого, верхнего-правого, нижнего-левого и нижнего-правого направлений.
[0478]
[0479] Модуль определения режима предсказания выполняет процесс для выбора оптимального режима среди множества групп кандидатов режимов предсказания. В общем, можно определить оптимальный режим с точки зрения затрат кодирования с использованием метода скорости/искажения, который учитывает искажение блока {например, искажение текущего блока и восстановленного блока. SAD (сумма абсолютной разности), SSD (сумма квадратов разности) и т.д.} и количество битов, сгенерированных в соответствии с соответствующим режимом. Блок предсказания, сгенерированный на основе режима предсказания, определенного посредством вышеописанного процесса, может передаваться на модуль вычитания и модуль суммирования.
[0480] Чтобы определить оптимальный режим предсказания, может производиться поиск во всех режимах предсказания, существующих в группах кандидатов режима предсказания, или оптимальный режим предсказания может выбираться посредством другого процесса принятия решения с целью уменьшения количества вычислений/сложности. Например, на первом этапе, некоторые режимы, имеющие хороший результат с учетом ухудшения качества изображения, выбираются для всех кандидатов режима интра-предсказания, и на втором этапе, оптимальный режим предсказания может выбираться с учетом не только ухудшения качества изображения, но также количества битов, сгенерированных для режима, выбранного на первом этапе. В дополнение к вышеуказанным способам, могут применяться различные способы уменьшения количества вычислений/сложности.
[0481] Кроме того, модуль определения режима предсказания может представлять собой конфигурацию, обычно включенную только в кодер, но может также представлять собой конфигурацию, включенную в декодер в соответствии с настройками кодирования/декодирования. Например, в последнем случае, где сопоставление шаблонов включено в качестве способа предсказания или способа выведения режима интра-предсказания в смежной области текущего блока, используется способ неявного получения режима предсказания в декодере.
[0482] Модуль кодирования режима предсказания может кодировать режим предсказания, выбранный посредством модуля определения режима предсказания. В группе кандидатов режима предсказания, может быть закодирована информация индекса, соответствующая режиму предсказания, или информация о режиме предсказания может быть закодирована путем предсказания режима предсказания. Первое может представлять собой способ, применяемый к компоненту яркости, а последнее может представлять собой способ, применяемый к компоненту цветности, но не ограничивается этим.
[0483] Когда режим предсказания предсказан и закодирован, значение предсказания (или информация предсказания) режима предсказания может упоминаться как наиболее вероятный режим (MPM). MPM может быть сконфигурирован в одном режиме предсказания или может быть сконфигурирован во множестве режимов предсказания, и число MPM (k, где k представляет собой целое число большее или равное 1, такое как 2, 3, 6) может определяться в соответствии с числом групп кандидатов режима предсказания. Когда MPM сконфигурирован с множеством режимов предсказания, он может упоминаться как группа кандидатов MPM.
[0484] MPM является принципом, поддерживаемым для эффективного кодирования режима предсказания. В действительности, группа кандидатов может быть сконфигурирована как режим предсказания, имеющий высокую вероятность генерирования в качестве режима предсказания текущего блока.
[0485] Например, группа кандидатов MPM может быть сконфигурирована с предварительно установленным режимом предсказания (или статистически частыми режимами предсказания; DC, планарным, вертикальным, горизонтальным и некоторыми диагональными режимами и т.д.), режимом предсказания смежных блоков (левого, верхнего, верхнего левого, верхнего правого, нижнего левого блоков и т.д.) и тому подобное. В этом случае, режим предсказания смежных блоков может быть получен из L0 до L3 (левый блок), T0 до T3 (верхний блок), TL (верхний левый блок), R0 до R3 (верхний правый блок) и B0 до B3 (нижний левый блок) на фиг. 10.
[0486] Если группа кандидатов MPM может быть сконфигурирована из двух или более положений подблока (например, L0, L2 и т.д.) в смежном блоке (например, левом блоке), режим предсказания соответствующего блока может быть сконфигурирован в группе кандидатов в соответствии с предопределенным приоритетом (например, L0-L1-L2 и т.д.). Альтернативно, если группа кандидатов MPM не может быть сконфигурирована из двух или более положений подблока, режим предсказания подблока, соответствующего предопределенному положению (например, L0 и т.д.), может быть сконфигурирован в группе кандидатов. Конкретно, среди смежных блоков, режим предсказания положений L3, T3, TL, R0 и B0 может выбираться как режим предсказания смежного блока и включаться в группу кандидатов MPM. Описание выше представляет собой случай, в котором режим предсказания смежного блока сконфигурирован в группе кандидатов, но не ограничен этим. В примере, описанном ниже, предполагается, что режим предсказания предопределенного положения сконфигурирован в группе кандидатов.
[0487] Кроме того, когда один или несколько режимов предсказания сконфигурированы как группа кандидатов MPM, режим, выведенный из одного или нескольких включенных режимов предсказания, может также быть дополнительно сконфигурирован как группа кандидатов MPM. Конкретно, когда режим k (направленный режим) включен в группу кандидатов MPM, режим, выводимый из данного режима (режим, имеющий интервал +a, -b на основе k; где a и b являются целыми числами, равными или большими, чем 1, такими как 1, 2, 3) может быть дополнительно включен в группу кандидатов MPM.
[0488] Может существовать приоритет для конфигурирования группы кандидатов MPM, и группа кандидатов MPM может быть сконфигурирована в порядке: режим предсказания соседнего блока - предварительно установленный режим предсказания - выведенный режим предсказания, и тому подобное. Процесс построения группы кандидатов MPM может завершаться путем заполнения максимального числа кандидатов MPM в соответствии с приоритетом. В случае совпадения с ранее включенным режимом предсказания в вышеописанном процессе, режим предсказания не может быть сконфигурирован в группе кандидатов и может включать в себя процесс проверки на избыточность, в котором порядок передается следующему по приоритету кандидату.
[0489] Последующее описание предполагает, что группа кандидатов MPM состоит из шести режимов предсказания.
[0490] Например, группа кандидатов может быть сконфигурирована в порядке L - T - TL - TR - BL - планарный - DC - вертикальный - горизонтальный - диагональный режим. Может иметь место случай, в котором режим предсказания смежного блока конфигурируется предпочтительно в группе кандидатов, и предопределенный режим предсказания конфигурируется дополнительно.
[0491] Альтернативно, группа кандидатов может быть сконфигурирована в порядке L - T - планарный - DC - <L+1> - <L-1> - <T+1> - <T-1> - вертикальный - горизонтальный - диагональный режим. Может иметь место случай, в котором некоторые режимы предсказания смежных блоков и некоторый предопределенный режим предсказания конфигурируются предпочтительно, и режим, выводимый из предположения, что будет возникать режим предсказания в направлении, аналогичном режиму предсказания смежного блока, и некоторые из предварительно установленных режимов предсказания конфигурируются дополнительно.
[0492] Примеры, приведенные выше, представляют собой некоторые случаи касательно конфигурации группы кандидатов MPM, не ограничиваясь ими, и возможны примеры различных модификаций.
[0493] Группа кандидатов MPM может использовать бинаризацию, такую как унарная бинаризация и усеченная бинаризация Райса, на основе индекса в группе кандидатов. То есть, бит режима может быть выражен путем распределения короткого бита кандидату, имеющему малый индекс, и длинного бита кандидату, имеющему большой индекс.
[0494] Режимы, не включенные в группу кандидатов MPM, могут классифицироваться как группа кандидатов не-MPM. Кроме того, группа кандидатов не-MPM может классифицироваться на две или более группы кандидатов в соответствии с настройками кодирования/декодирования.
[0495] Далее предполагается, что 67 режимов, включая направленный режим и ненаправленный режим, существуют в группе кандидатов режима предсказания, и поддерживаются 6 кандидатов MPM, и 61 режим предсказания сконфигурированы в группе кандидатов не-MPM.
[0496] Когда группа кандидатов не-MPM сконфигурирована как одна, поскольку остается режим предсказания, который не включен в процесс конфигурации группы кандидатов MPM, дополнительный процесс конфигурации группы кандидатов не требуется. Поэтому на основе индекса в группе кандидатов не-MPM может использоваться бинаризация, такая как бинаризация фиксированной длины и усеченная унарная бинаризация.
[0497] В предположении, что группа кандидатов не-MPM состоит из двух или более групп кандидатов, в этом примере, группа кандидатов не-MPM классифицируется на не-MPM_ A (далее, группа кандидатов А) и не-MPM_B (далее, группа кандидатов В). Предполагается, что группа кандидатов A (p, равно или больше, чем число групп кандидатов MPM) составляет группу кандидатов с режимом предсказания, который возникнет более вероятно как режим предсказания текущего блока, чем группа кандидатов В (q, равно или больше, чем число групп кандидатов А). В этом случае, может добавляться процесс конфигурирования группы кандидатов А.
[0498] Например, некоторые режимы предсказания (например, режим 2, 4, 6 и т.д.), имеющие равные интервалы среди направленных режимов, или предопределенный режим предсказания (например, режим, выведенный из режима предсказания, включенного в группу кандидатов MPM, и т.д.), могут быть сконфигурированы в группе кандидатов А. Остальные режимы предсказания через конфигурацию группы кандидатов MPM и конфигурацию группы кандидатов A могут состоять из группы кандидатов B, и дополнительный процесс конфигурации группы кандидатов не требуется. Бинаризация, такая как бинаризация фиксированной длины и усеченная унарная бинаризация, может использоваться на основе индекса в группах кандидатов A и B.
[0499] Примеры, приведенные выше, представляют собой некоторые случаи, в которых сконфигурированы две или более группы кандидатов не-MPM, и не ограничиваются этим, и возможны примеры различных модификаций.
[0500] Далее описан процесс для предсказания и кодирования режима предсказания.
[0501] Может проверяться информация (mpm_flag) о том, совпадает ли режим предсказания текущего блока с MPM (или некоторыми режимами в группе кандидатов MPM).
[0502] Когда он совпадает с MPM, информация (mpm_idx) индекса MPM может дополнительно подтверждаться в соответствии с конфигурацией (1 или 2 или больше) MPM. После этого процесс кодирования текущего блока завершается.
[0503] Когда он не совпадает с MPM, если группа кандидатов не-MPM сконфигурирована как одна, может проверяться информация (remaining_idx) индекса не-MPM. После этого процесс кодирования текущего блока завершается.
[0504] Если группы кандидатов не-MPM сконфигурированы во множестве (две в этом примере), то может проверяться информация (non_mpm_flag) о том, совпадает ли режим предсказания текущего блока с некоторыми режимами предсказания в группе кандидатов A.
[0505] Если он совпадает с группой кандидатов A, то может проверяться информация (non_mpm_А_idx) индекса группы кандидатов A, и если он не совпадает с группой кандидатов A, то может проверяться информация (remaining_idx) индекса группы кандидатов B.
[0506] Когда конфигурация группы кандидатов режима предсказания является фиксированной, режим предсказания, поддерживаемый текущим блоком, режим предсказания, поддерживаемый смежным блоком, и предварительно установленный режим предсказания могут использовать один и тот же числовой индекс предсказания.
[0507] Между тем, когда конфигурация группы кандидатов режима предсказания является адаптивной, режим предсказания, поддерживаемый текущим блоком, режим предсказания, поддерживаемый смежным блоком, и предварительно установленный режим предсказания могут использовать один и тот же числовой индекс предсказания или разные числовые индексы предсказания. См. фиг. 4 для следующего описания.
[0508] В процессе кодирования режима предсказания, может выполняться процесс унифицирования (или регулировки) группы кандидатов режима предсказания для конфигурирования группы кандидатов MPM. Например, режим предсказания текущего блока может быть одним из групп кандидатов режима предсказания с 5 по 61 режим, и режим предсказания смежного блока может быть одним из групп кандидатов режима предсказания с 2 по 66 режим. В этом случае, некоторые режимы предсказания смежного блока (режим 66) могут представлять собой режим, который не поддерживается для режима предсказания текущего блока, поэтому может выполняться процесс его унифицирования в процессе кодирования режима предсказания. То есть это может быть процесс, который не требуется, когда поддерживается конфигурация фиксированной группы кандидатов режима интра-предсказания, и может быть процесс, требуемый, когда поддерживается конфигурация адаптивной группы кандидатов режима интра-предсказания, и его подробное описание будет опущено.
[0509] В отличие от способа с использованием MPM, кодирование может выполняться путем назначения индекса режиму предсказания, принадлежащему группе кандидатов режима предсказания.
[0510] Например, если индекс назначается режиму предсказания в соответствии с предопределенным приоритетом и выбирается режим предсказания текущего блока, способ кодирования индекса соответствует ему. Это означает, что группа кандидатов режима предсказания сконфигурирована фиксированным образом, и фиксированный индекс распределяется режиму предсказания.
[0511] Альтернативно, когда группа кандидатов режима предсказания сконфигурирована адаптивно, способ распределения фиксированного индекса может быть неподходящим. По этой причине, индекс распределяется режиму предсказания в соответствии с адаптивным приоритетом, и когда выбран режим предсказания текущего блока, может применяться способ кодирования соответствующего индекса. Это позволяет эффективно кодировать режим предсказания путем изменения индекса, назначенного режиму предсказания, вследствие адаптивной конфигурации группы кандидатов режима предсказания. То есть адаптивный приоритет может обеспечивать назначение кандидату, который, вероятно, будет выбран в качестве режима предсказания текущего блока, индекса, в котором встречается короткий бит режима.
[0512] В дальнейшем, предполагается, что поддерживаются 8 режимов предсказания, включая предварительно установленный режим предсказания (направленный режим и ненаправленный режим) в группе кандидатов режима предсказания, режим копирования цвета и цветовой режим (компонент цветности).
[0513] Например, предполагается, что поддерживаются четыре предварительно установленных режима предсказания среди планарного, DC, горизонтального, вертикального и диагонального режимов (диагональный вниз влево в этом примере), и поддерживаются один цветовой режим (C) и три режима копирования цвета (CP1, CP2, CP3). Базовый порядок индексов, распределенных режиму предсказания, может задаваться как предварительно установленный режим предсказания - режим копирования цвета - цветовой режим и тому подобное.
[0514] В этом случае направленный режим, ненаправленный режим и режим копирования цвета, которые являются предварительно установленными режимами предсказания, можно легко классифицировать на режимы предсказания, в которых проводится различие между способами предсказания. Однако в случае цветового режима он может быть направленным режимом или ненаправленным режимом, и может существовать возможность перекрытия с предварительно установленным режимом предсказания. Например, когда цветовой режим является вертикальным режимом, может возникать случай, в котором вертикальный режим, который представляет собой один из предварительно установленных режимов предсказания, перекрывается.
[0515] В случае адаптивной регулировки числа групп кандидатов режима предсказания в соответствии с настройками кодирования/декодирования, число групп кандидатов может регулироваться (8->7), когда возникает случай перекрытия. Альтернативно, если число групп кандидатов режима предсказания сохраняется фиксированным, когда возникает случай перекрытия, индекс может распределяться путем суммирования и с учетом других кандидатов, что будет описано далее в предположении этой настройки. Кроме того, адаптивная группа кандидатов режима предсказания может представлять собой поддерживаемую конфигурацию, даже когда включен переменный режим, такой как цветовой режим. Поэтому, когда выполняется адаптивное распределение индекса, это может рассматриваться в качестве примера конфигурации адаптивной группы кандидатов режима предсказания.
[0516] Далее описывается случай, когда адаптивное распределение индекса выполняется в соответствии с цветовым режимом. Предполагается, что базовый индекс распределяется в порядке: планарный(0) - вертикальный(1) - горизонтальный(2) - DC(3) - CP1(4) - CP2(5) - CP3(6) - C(7). Кроме того, предполагается, что распределение индекса выполняется в порядке, приведенном выше, когда цветовой режим не совпадает с предварительно установленным режимом предсказания.
[0517] Например, когда цветовой режим совпадает с одним из предварительно установленных режимов предсказания (планарный, вертикальный, горизонтальный, DC режим), заполняется режим предсказания, совпадающий с индексом 7 цветового режима. Индекс совпадающего режима предсказания (один из 0 до 3) заполняется предварительно установленным режимом предсказания (диагональный вниз влево). Конкретно, когда цветовой режим представляет собой горизонтальный режим, может выполняться распределение индекса, такое как планарный(0) - вертикальный(1) - диагональный вниз влево(2) - DC(3) - CP1(4) - CP2(5) - CP3(6) - горизонтальный(7).
[0518] Альтернативно, когда цветовой режим совпадает с одним из предварительно установленных режимов предсказания, заполняется режим предсказания, совпадающий с индексом 0. Затем, предварительно установленный режим предсказания (диагональный вниз влево) заполняется в индексе 7 цветового режима. В этом случае, если заполненный режим предсказания не является существующим индексом 0 (то есть не планарный режим), конфигурация существующего индекса может регулироваться. Конкретно, когда цветовой режим является режимом DC, может выполняться распределение индекса, такое как DC(0) - планарный(1) - вертикальный(2) - горизонтальный(3) - CP1(4) - CP2(5) - CP3(6) - диагональный вниз влево(7).
[0519] Примеры, приведенные выше, представляют собой некоторые случаи адаптивного распределения индекса и не ограничены ими, и возможны примеры различных модификаций. Кроме того, на основе индекса в группе кандидатов, могут использоваться бинаризация с фиксированной длиной, унарная бинаризация, усеченная унарная бинаризация и усеченная бинаризация Райса.
[0520] Далее будет описан другой пример выполнения кодирования путем назначения индекса режиму предсказания, принадлежащему группе кандидатов режима предсказания.
[0521] Например, способ классификации на множество групп кандидатов режима предсказания путем разделения на режим предсказания, способ предсказания, и т.д., и кодирование путем назначения индекса режиму предсказания, принадлежащему группе кандидатов для кодирования, соответствует этому. В этом случае, кодирование информации выбора группы кандидатов может предшествовать кодированию индекса. В качестве примера, направленный режим, ненаправленный режим и цветовой режим, которые представляют собой режимы предсказания для выполнения предсказания в одном и том же цветовом пространстве, могут принадлежать одной группе кандидатов (далее, группе кандидатов S), и режим копирования цвета, который представляет собой режим предсказания для выполнения предсказания в другом цветовом пространстве, может принадлежать одной группе кандидатов (далее, группе кандидатов D).
[0522] Дальнейшее описание предполагает, что девять режимов предсказания, включая предварительно установленный режим предсказания, режим копирования цвета и цветовой режим, поддерживаются в группе кандидатов режима предсказания (компоненте цветности).
[0523] Например, предполагается, что четыре предварительно установленных режима предсказания поддерживаются среди планарного, DC, горизонтального, вертикального и диагонального режимов, и поддерживаются один цветовой режим (C) и четыре режима копирования цвета (CP1, CP2, CP3, CP4). Группа кандидатов S может иметь пять кандидатов, состоящих из предварительно установленного режима предсказания и цветового режима, и группа кандидатов D может иметь четыре кандидата, состоящие из режима копирования цвета.
[0524] Группа кандидатов S представляет собой пример адаптивно сконфигурированной группы кандидатов режима предсказания, и пример адаптивного распределения индекса был описан выше, поэтому его подробное описание будет опущено. Поскольку группа кандидатов D представляет собой пример фиксировано сконфигурированной группы кандидатов режима предсказания, может использоваться способ фиксированного распределения индекса. Например, может выполняться распределение индекса, такое как CP1(0) - CP2(1) - CP3(2) - CP4(3).
[0525] На основе индекса в группе кандидатов, может использоваться бинаризация, такая как бинаризация фиксированной длины, унарная бинаризация, усеченная унарная бинаризация и усеченная бинаризация Райса. Кроме того, примеры различных модификаций возможны без ограничения примерами, приведенными выше.
[0526] Относящаяся к предсказанию информация, сгенерированная посредством модуля кодирования режима предсказания, может передаваться в модуль кодирования и включаться в битовый поток.
[0527] В способе декодирования изображения в соответствии с вариантом осуществления настоящего изобретения, интра-предсказание может быть сконфигурировано, как описано далее. Интра-предсказание модуля предсказания может включать в себя этап декодирования режима предсказания, этап построения опорного пиксела и этап генерации блока предсказания. Кроме того, устройство декодирования изображения может быть сконфигурировано, чтобы включать в себя модуль декодирования режима предсказания, модуль конфигурации опорного пиксела и модуль генерации блока предсказания, которые реализуют этап декодирования режима предсказания, этап конфигурации опорного пиксела и этап генерации блока предсказания. Некоторые из вышеописанных процессов могут быть опущены, или другие процессы могут быть добавлены, и это может изменяться в порядке ином, чем порядок, описанный выше.
[0528] Поскольку модуль построения опорного пиксела и модуль генерации блока предсказания устройства декодирования изображения выполняют ту же самую роль, что и соответствующие конфигурации устройства кодирования изображения, подробные описания опущены. Модуль декодирования режима предсказания может выполняться с использованием способа, используемого модулем кодирования режима предсказания, в обратном порядке.
[0529]
[0530] Фиг. 21 иллюстрирует способ интер-предсказания в соответствии с вариантом осуществления, к которому применяется настоящее изобретение.
[0531] Со ссылкой на фиг. 21, может генерироваться список кандидатов для предсказания информации движения текущего блока (S2100).
[0532] Список кандидатов может включать в себя один или несколько кандидатов на основе аффинной модели (далее упоминаемых как аффинный кандидат). Аффинный кандидат может означать кандидата, имеющего вектор контрольной точки. Вектор контрольной точки означает вектор движения контрольной точки для аффинной модели и может определяться для углового положения блока (например, по меньшей мере одно из верхнего левого угла, верхнего правого угла, нижнего левого угла или нижнего правого угла).
[0533] Аффинный кандидат может включать в себя по меньшей мере одно из пространственного кандидата, временного кандидата или сконструированного кандидата. Здесь, пространственный кандидат может выводиться из вектора соседнего блока, пространственно смежного с текущим блоком, и временной кандидат может выводиться из вектора соседнего блока, смежного по времени с текущим блоком. Здесь, соседний блок может означать блок, закодированный при помощи аффинной модели. Вектор может означать вектор движения или вектор контрольной точки.
[0534] Способ выведения пространственного/временного кандидата на основе вектора пространственного/временного соседнего блока будет описан подробно со ссылкой на фиг. 22.
[0535] Между тем сконструированный кандидат может выводиться на основе комбинации между векторами движения пространственных/временных соседних блоков текущего блока, что будет описано подробно со ссылкой на фиг. 23.
[0536] Множество аффинных кандидатов, описанных выше, могут быть упорядочены в списке кандидатов на основе предопределенного приоритета. Например, множество аффинных кандидатов могут быть упорядочены в списке кандидатов в порядке: пространственный кандидат, временной кандидат и сконструированный кандидат. Альтернативно, множество аффинных кандидатов могут быть упорядочены в списке кандидатов в порядке: временной кандидат, пространственный кандидат и сконструированный кандидат. Однако настоящее изобретение не ограничено этим, и временной кандидат может быть расположен после сконструированного кандидата. Альтернативно, некоторые из сконструированных кандидатов могут быть расположены перед пространственным кандидатом, и остальные могут быть расположены после пространственного кандидата.
[0537] Вектор контрольной точки текущего блока может выводиться на основе списка кандидатов и индекса кандидата (S2110).
[0538] Индекс кандидата может означать индекс, который закодирован, чтобы выводить вектор контрольной точки текущего блока. Индекс кандидата может специфицировать любой один из множества аффинных кандидатов, включенных в список кандидатов. Вектор контрольной точки текущего блока может выводиться с использованием вектора контрольной точки аффинного кандидата, специфицированного индексом кандидата.
[0539] Например, предполагается, что тип аффинной модели текущего блока является 4-параметрическим (т.е. определено, что текущий блок использует два вектора контрольной точки). В этом случае, когда аффинный кандидат, специфицированный индексом кандидата, имеет три вектора контрольной точки, только два вектора контрольной точки (например, векторы контрольной точки с Idx, равным 0 и 1) выбираются среди трех векторов контрольной точки, они могут быть установлены как векторы контрольной точки текущего блока. Альтернативно, три вектора контрольной точки специфицированных аффинных кандидатов могут быть установлены как векторы контрольной точки текущего блока. В этом случае, тип аффинной модели текущего блока может обновляться до 6-параметрического.
[0540] С другой стороны, предполагается, что тип аффинной модели текущего блока является 6-параметрическим (т.е. определено, что текущий блок использует 3 вектора контрольной точки). В этом случае, когда аффинный кандидат, специфицированный индексом кандидата, имеет два вектора контрольной точки, генерируется один дополнительный вектор контрольной точки, и два вектора контрольной точки аффинного кандидата и дополнительный вектор контрольной точки могут быть установлены как векторы контрольной точки текущего блока. Дополнительный вектор контрольной точки может выводиться на основе по меньшей мере одного из двух векторов контрольной точки аффинного кандидата, размера текущего/соседнего блока или информации положения текущего/соседнего блока. Альтернативно, два вектора контрольной точки специфицированного аффинного кандидата могут быть установлены как векторы контрольной точки текущего блока. В этом случае, тип аффинной модели текущего блока может обновляться до 4-параметрического.
[0541] Вектор движения текущего блока может выводиться на основе векторов контрольной точки текущего блока (S2120).
[0542] Вектор движения может выводиться в единицах подблоков текущего блока. Здесь, подблок N×M может быть прямоугольником (N>M или N<M) или квадратом (N=M). Значения N и M могут составлять 4, 8, 16, 32 или больше. Размер/форма подблока могут быть фиксированным размером/формой, предопределенными в устройстве декодирования.
[0543] Альтернативно, размер/форма подблока могут выводиться переменным образом на основе атрибута вышеописанного блока. Например, если размер текущего блока больше или равен предопределенному пороговому размеру, текущий блок может разделяться на единицы первого подблока (например, 8×8, 16×16), в противном случае, текущий блок может разделяться на единицы второго подблока (например, 4×4). Альтернативно, информация о размере/форме подблока может кодироваться и сигнализироваться устройством кодирования.
[0544] Интер-предсказание может выполняться на текущем блоке с использованием выведенного вектора движения (S2130).
[0545] Конкретно, опорный блок может быть специфицирован с использованием вектора движения текущего блока. Опорный блок может быть специфицирован для каждого подблока текущего блока. Опорный блок каждого подблока может принадлежать одной опорной картинке. То есть подблоки, принадлежащие текущему блоку, могут совместно использовать одну опорную картинку. Альтернативно, индекс опорной картинки может устанавливаться независимо для каждого подблока текущего блока.
[0546] Специфицированный опорный блок может быть установлен как блок предсказания текущего блока. Вышеописанный вариант осуществления может применяться тем же самым/аналогичным образом не только к режиму слияния, но также общему интер-режиму (например, режиму AMVP). Вышеописанный вариант осуществления может выполняться, только когда размер текущего блока больше или равен предопределенному пороговому размеру. Здесь, пороговый размер может составлять 8×8, 8×16, 16×8, 16×16 или больше.
[0547]
[0548] Фиг. 22 представляет собой вариант осуществления, к которому применяется настоящее изобретение, и относится к способу выведения аффинного кандидата из пространственного/временного соседнего блока.
[0549] Для удобства пояснения, в этом варианте осуществления, будет описан способ выведения аффинного кандидата из пространственного соседнего блока.
[0550] Со ссылкой на фиг. 5, ширина и высота текущего блока 2200 представляют собой cbW и cbH, соответственно, и положение текущего блока представляет собой (xCb, yCb). Ширина и высота пространственного соседнего блока 2210 представляют собой nbW и nbH, соответственно, и положение пространственного соседнего блока представляет собой (xNb, yNb). Фиг. 22 иллюстрирует верхний левый блок текущего блока как пространственный соседний блок, но не ограничивается этим. То есть пространственный соседний блок может включать в себя по меньшей мере одно из левого блока, нижнего левого блока, верхнего правого блока, верхнего блока или верхнего левого блока текущего блока.
[0551] Пространственный кандидат может иметь n векторов контрольной точки (cpMV). Здесь, значение n может представлять собой целое число 1, 2, 3 или больше. Значение n может определяться на основе по меньшей мере одного из информации о том, следует ли выполнять декодирование в единицах подблоков, информации о том, закодирован или нет блок при помощи аффинной модели, или информации о типе аффинной модели (4-параметрический или 6-параметрический).
[0552] Информация может кодироваться и сигнализироваться от устройства кодирования. Альтернативно, вся или некоторая из информации может выводиться, в устройстве декодирования, на основе атрибута блока. Здесь, блок может означать текущий блок или пространственный/временной соседний блок текущего блока. Атрибут может означать размер, форму, положение, тип разделения, интер-режим, параметр, относящийся к остаточному коэффициенту, и тому подобное. Интер-режим является режимом, предопределенным в устройстве декодирования, и может означать режим слияния, режим пропуска, режим AMVP, аффинную модель, режим интер-/интра- комбинации, опорный режим текущей картинки и тому подобное. Альтернативно, значение n может выводиться, в устройстве декодирования, на основе вышеописанного атрибута блока.
[0553] В этом варианте осуществления, n векторов контрольной точки могут быть выражены как первый вектор контрольной точки (cpMV[0]), второй вектор контрольной точки (cpMV[1]), третий вектор контрольной точки (cpMV[2]), … n-й вектор контрольной точки (cpMV[n-1]). Например, первый вектор контрольной точки (cpMV[0]), второй вектор контрольной точки (cpMV[1]), третий вектор контрольной точки (cpMV[2]) и четвертый вектор контрольной точки (cpMV[3]) могут представлять собой векторы, соответствующие верхней левой выборке, верхней правой выборке, нижней левой выборке и нижней правой выборке, соответственно. Здесь, предполагается, что пространственные кандидаты имеют три вектора контрольной точки, и три вектора контрольной точки могут быть произвольными векторами контрольной точки, выбранными из первого по n-й векторы контрольной точки. Однако настоящее изобретение не ограничено этим, и пространственный кандидат может иметь два вектора контрольной точки, и два вектора контрольной точки могут быть произвольными векторами контрольной точки, выбранными из первого по n-й векторы контрольной точки.
[0554] Между тем в зависимости от того, является ли граница 2220, показанная на фиг. 22, границей CTU, вектор контрольной точки пространственного кандидата может выводиться по-разному.
[0555]
1. В случае, когда граница (2220) текущего блока не расположена на границе CTU
[0556]
[0557] Первый вектор контрольной точки может выводиться на основе по меньшей мере одного из первого вектора контрольной точки пространственного соседнего блока, предопределенного значения разности, информации (xCb, yCb)текущего блока или информации положения (xNb, yNb) пространственного соседнего блока.
[0558] Число значений разности может быть 1, 2, 3 или больше. Число значений разности может определяться переменным образом на основе вышеописанных атрибутов блока или может представлять собой фиксированное значение, предопределенное в устройстве декодирования. Значение разности может определяться как значение разности между одним из множества векторов контрольной точки и другим. Например, значение разности может включать в себя по меньшей мере одно из первого значения разности между вторым вектором контрольной точки и первым вектором контрольной точки, второе значение разности между третьим вектором контрольной точки и первым вектором контрольной точки, третье значение разности между четвертым вектором контрольной точки и третьим вектором контрольной точки или четвертое значение разности между четвертым вектором контрольной точки и вторым вектором контрольной точки.
[0559] Например, первый вектор контрольной точки может выводиться, как в Уравнении 1 ниже.
[0560] [Уравнение 1]
[0561] cpMvLX[0][0] = (mvScaleHor+dHorX * (xCb - xNb) + dHorY *(yCb - yNb))
[0562] cpMvLX[0][1] = (mvScaleVer+dVerX * (xCb - xNb) + dVerY * (yCb - yNb))
[0563] В Уравнении 1, переменные mvScaleHor и mvScaleVer могут означать первый вектор контрольной точки пространственного соседнего блока или значение, выведенное путем применения операции сдвига на k к первому вектору контрольной точки. Здесь, k может представлять собой целое число 1, 2, 3, 4, 5, 6, 7, 8, 9 или больше. Переменные dHorX и dVerX соответствуют компонентам x и y первого значения разности между вторым вектором контрольной точки и первым вектором контрольной точки, соответственно. Переменные dHorY и dVerY соответствуют компонентам x и y второго значения разности между третьим вектором контрольной точки и первым векторов контрольной точки, соответственно. Вышеописанная переменная может выводиться, как в Уравнении 2 ниже.
[0564] [Уравнение 2]
[0565] mvScaleHor=CpMvLX[xNb][yNb][0][0] << 7
[0566] mvScaleVer=CpMvLX[xNb][yNb][0][1] << 7
[0567] dHorX = (CpMvLX[xNb+nNbW - 1][yNb][1][0] - CpMvLX[xNb][yNb][0][0]) << (7 - log2NbW)
[0568] dVerX = (CpMvLX[xNb+nNbW - 1][yNb][1][1] - CpMvLX[xNb][yNb][0][1]) << (7 - log2NbW)
[0569] dHorY = (CpMvLX[xNb][yNb+nNbH - 1][2][0] - CpMvLX[xNb][yNb][2][0]) << (7 - log2NbH)
[0570] dVerY = (CpMvLX[xNb][yNb+nNbH - 1][2][1] - CpMvLX[xNb][yNb][2][1]) << (7 - log2NbH)
[0571] Второй вектор контрольной точки может выводиться на основе по меньшей мере одного из первого вектора контрольной точки пространственного соседнего блока, предопределенного значения разности, информации положения (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации положения пространственного соседнего блока (xNb, yNb). Здесь, размер блока может означать размер текущего блока и/или пространственного соседнего блока. Значение разности является таким, как описано в разделе, относящемся к первому вектору контрольной точки, и его подробное описание будет опущено. Однако, диапазон и/или число значений разности, используемых в процессе выведения второго вектора контрольной точки, могут отличаться от первого вектора контрольной точки.
[0572] Например, второй вектор контрольной точки может выводиться, как в Уравнении 3 ниже.
[0573] [Уравнение 3]
[0574] cpMvLX[1][0] = (mvScaleHor+dHorX * (xCb+cbWidth - xNb) + dHorY * (yCb - yNb))
[0575] cpMvLX[1][1] = (mvScaleVer+dVerX * (xCb+cbWidth - xNb) + dVerY * (yCb - yNb))
[0576] В Уравнении 3, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в Уравнении 1, и их подробные описания будут опущены.
[0577] Третий вектор контрольной точки может выводиться на основе по меньшей мере одного из первого вектора контрольной точки пространственного соседнего блока, предопределенного значения разности, информации положения текущего блока (xCb, yCb), размера блока (ширины или высоты) или информации положения пространственного соседнего блока (xNb, yNb). Здесь, размер блока может означать размер текущего блока и/или пространственного соседнего блока. Значение разности является таким, как описано в разделе, относящимся к первому вектору контрольной точки, и его подробное описание будет опущено. Однако, диапазон и/или число значений разности, используемых в процессе выведения третьего вектора контрольной точки, могут отличаться от первого вектора контрольной точки или второго вектора контрольной точки.
[0578] Например, третий вектор контрольной точки может выводиться, как в Уравнении 4 ниже.
[0579] [Уравнение 4]
[0580] cpMvLX[2][0] = (mvScaleHor+dHorX * (xCb - xNb) + dHorY * (yCb+cbHeight - yNb))
[0581] cpMvLX[2][1] = (mvScaleVer+dVerX * (xCb - xNb) + dVerY * (yCb+cbHeight - yNb))
[0582] В Уравнении 4, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в Уравнении 1, и их подробные описания будут опущены. Между тем, через вышеописанный процесс, может выводиться n-ый вектор контрольной точки пространственного кандидата.
[0583]
2. В случае, когда граница (2220) текущего блока расположена на границе CTU
[0584]
[0585] Первый вектор контрольной точки может выводиться на основе по меньшей мере одного из вектора движения (MV) пространственного соседнего блока, предопределенного значения разности, информации положения (xCb, yCb) текущего блока или информации (xNb, yNb) положения пространственного соседнего блока.
[0586] Вектор движения может представлять собой вектор движения подблока, расположенного внизу пространственного соседнего блока. Подблок может быть расположен в крайнем левом, центральном или крайнем правом среди множества подблоков, расположенных внизу пространственного соседнего блока. Альтернативно, вектор движения может означать среднее значение, максимальное значение или минимальное значение векторов движения подблоков.
[0587] Число значений разности может составлять 1, 2, 3 или больше. Число значений разности может определяться переменным образом на основе вышеописанных атрибутов блока или может быть фиксированным значением, предопределенным в устройстве декодирования. Значение разности может определяться как значение разности между одним из множества векторов движения, хранящихся в единице подблока в пространственном соседнем блоке, и другим. Например, значение разности может означать значение разности между вектором движения нижнего правого подблока пространственного соседнего блока и вектором движения нижнего левого подблока пространственного соседнего блока.
[0588] Например, первый вектор контрольной точки может выводиться, как в Уравнении 5 ниже.
[0589] [Уравнение 5]
[0590] cpMvLX[0][0] = (mvScaleHor+dHorX * (xCb - xNb) + dHorY * (yCb - yNb))
[0591] cpMvLX[0][1] = (mvScaleVer+dVerX * (xCb - xNb) + dVerY * (yCb - yNb))
[0592] В Уравнении 5, переменные mvScaleHor и mvScaleVer могут означать вектор (MV) движения пространственного соседнего блока, описанный выше, или значение, выведенное путем применения операции сдвига на k к вектору движения. Здесь, k может представлять собой целое число 1, 2, 3, 4, 5, 6, 7, 8, 9 или больше.
[0593] Переменные dHorX и dVerX соответствуют компонентам x и y предопределенного значения разности, соответственно. Здесь, значение разности означает значение разности между вектором движения нижнего правого подблока и вектором движения нижнего левого подблока в пространственном соседнем блоке. Переменные dHorY и dVerY могут выводиться на основе переменных dHorX и dVerX. Вышеописанная переменная может выводиться, как в Уравнении 6 ниже.
[0594] [Уравнение 6]
[0595] mvScaleHor=MvLX[xNb][yNb+nNbH - 1][0] << 7
[0596] mvScaleVer=MvLX[xNb][yNb+nNbH - 1][1] << 7
[0597] dHorX = (MvLX[xNb+nNbW - 1][yNb+nNbH - 1][0] - MvLX[xNb][yNb+nNbH - 1][0]) << (7 - log2NbW)
[0598] dVerX = (MvLX[xNb+nNbW - 1][yNb+nNbH - 1][1] - MvLX[xNb][yNb+nNbH - 1][1]) << (7 - log2NbW)
[0599] dHorY = -dVerX
[0600] dVerY=dHorX
[0601] Второй вектор контрольной точки может выводиться на основе по меньшей мере одного из вектора движения (MV) пространственного соседнего блока, предопределенного значения разности, информации положения (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации положения пространственного соседнего блока (xNb, yNb). Здесь, размер блока может означать размер текущего блока и/или пространственного соседнего блока. Вектор движения и значение разности являются такими, как описано в разделе, относящемся к первому вектору контрольной точки, и их подробное описание будет опущено. Однако, положение вектора движения, диапазон и/или число значений разности, которые используются в процессе выведения второго вектора контрольной точки, могут отличаться от первого вектора контрольной точки.
[0602] Например, второй вектор контрольной точки может выводиться, как в Уравнении 7 ниже.
[0603] [Уравнение 7]
[0604] cpMvLX[1][0] = (mvScaleHor+dHorX * (xCb+cbWidth - xNb) + dHorY * (yCb - yNb))
[0605] cpMvLX[1][1] = (mvScaleVer+dVerX * (xCb+cbWidth - xNb) + dVerY * (yCb - yNb))
[0606] В Уравнении 7, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в Уравнении 5, и их подробные описания будут опущены.
[0607] Третий вектор контрольной точки может выводиться на основе по меньшей мере одного из вектора движения (MV) пространственного соседнего блока, предопределенного значения разности, информации местоположения (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации местоположения пространственного соседнего блока (xNb, yNb). Здесь, размер блока может означать размер текущего блока и/или пространственного соседнего блока. Вектор движения и значение разности являются такими, как описано в первом векторе контрольной точки, и их подробное описание будет опущено. Однако положение вектора движения, диапазон и/или число значений разности, используемых в процессе выведения третьего вектора контрольной точки, могут отличаться от первого вектора контрольной точки или второго вектора контрольной точки.
[0608] Например, третий вектор контрольной точки может выводиться, как в Уравнении 8 ниже.
[0609] [Уравнение 8]
[0610] cpMvLX[2][0] = (mvScaleHor+dHorX * (xCb - xNb) + dHorY * (yCb+cbHeight - yNb))
[0611] cpMvLX[2][1] = (mvScaleVer+dVerX * (xCb - xNb) + dVerY * (yCb+cbHeight - yNb))
[0612] В Уравнении 8, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в Уравнении 5, и их подробные описания будут опущены. Между тем через вышеописанный процесс может выводиться n-й вектор контрольной точки пространственного кандидата.
[0613] Вышеописанный процесс выведения аффинного кандидата может выполняться для каждого предопределенного пространственного соседнего блока. Предопределенный пространственный соседний блок может включать в себя по меньшей мере одно из левого блока, нижнего левого блока, верхнего правого блока, верхнего блока или верхнего левого блока текущего блока.
[0614] Альтернативно, процесс выведения аффинного кандидата может выполняться для каждой группы пространственного соседних блоков. Здесь, пространственные соседние блоки могут классифицироваться на первую группу, включающую в себя левый блок и нижний левый блок, и вторую группу, включающую в себя верхний правый блок, верхний блок и верхний левый блок.
[0615] Например, один аффинный кандидат может выводиться из пространственных соседних блоков, принадлежащих первой группе. Выведение может выполняться, на основе предопределенного приоритета, пока не будет найден доступный аффинный кандидат. Приоритет может быть в порядке: левый блок -> нижний левый блок, или обратном порядке.
[0616] Аналогично, один аффинный кандидат может выводиться из пространственных соседних блоков, принадлежащих второй группе. Выведение может выполняться, на основе предопределенного приоритета, пока не будет найден доступный аффинный кандидат. Приоритет может быть в порядке: верхний правый блок -> верхний блок -> верхний левый блок, или обратном порядке.
[0617] Вышеописанный вариант осуществления может применяться тем же самым/аналогичным образом к временному соседнему блоку. Здесь, временной соседний блок принадлежит картинке, отличающейся от текущего блока, но может представлять собой блок в том же самом положении, что и текущий блок. Блок в том же самом местоположении может представлять собой блок, включающий в себя положение верхней левой выборки текущего блока, центральное положение или положение выборки, смежной с нижней правой выборкой текущего блока.
[0618] Альтернативно, временной соседний блок может означать блок в положении, сдвинутом на предопределенный вектор несоответствия от блока в том же самом положении. Здесь, вектор несоответствия может определяться на основе вектора движения любого одного из вышеописанных пространственных соседних блоков текущего блока.
[0619]
[0620] Фиг. 23 иллюстрирует способ выведения сконструированного кандидата на основе комбинации векторов движения пространственных/временных соседних блоков в варианте осуществления, к которому применяется настоящее изобретение.
[0621] Сконструированный кандидат настоящего изобретения может выводиться на основе комбинации по меньшей мере двух векторов контрольной точки, соответствующих углам текущего блока (далее называемых векторами (cpMVCorner[n]) контрольной точки). Здесь, n может составлять 0, 1, 2 или 3.
[0622] Вектор контрольной точки может выводиться на основе вектора движения пространственного и/или временного соседнего блока. Здесь, пространственный соседний блок может включать в себя по меньшей мере один из первого соседнего блока (C, D или E), смежного с верхней левой выборкой текущего блока, второго соседнего блока (F или G), смежного с верхней правой выборкой текущего блока, или третьего соседнего блока (A или B), смежного с нижней левой выборкой текущего блока. Временный соседний блок может представлять собой блок, принадлежащий картинке, отличающейся от текущего блока, и может означать четвертый соседний блок (Col), смежный с нижней правой выборкой текущего блока.
[0623] Первый соседний блок может означать соседний блок сверху слева (D), сверху (E) или слева (C) от текущего блока. Может определяться, доступны ли векторы движения соседних блоков C, D и E, в соответствии с предопределенным приоритетом, и вектор контрольной точки может определяться с использованием доступного вектора движения соседнего блока. Определение доступности может выполняться, пока не будет найден соседний блок, имеющий доступный вектор движения. Здесь, приоритет может быть в порядке D->E->C. Однако он не ограничен этим и может быть в порядке D->C->E, C->D->E или E->D->C.
[0624] Второй соседний блок может означать соседний блок сверху (F) или сверху справа (G) от текущего блока. Аналогично, может определяться, доступны ли векторы движения соседних блоков F и G, в соответствии с предопределенным приоритетом, и вектор контрольной точки может определяться с использованием доступных векторов движения соседнего блока. Определение доступности может выполняться, пока не будет найден соседний блок, имеющий доступный вектор движения. Здесь, приоритет может быть в порядке F->G или в порядке G->F.
[0625] Третий соседний блок может означать соседний блок слева (B) или внизу слева (A) от текущего блока. Аналогично, может определяться, доступны ли векторы движения соседних блоков, в соответствии с предопределенным приоритетом, и вектор контрольной точки может определяться с использованием доступного вектора движения соседнего блока. Определение доступности может выполняться, пока не будет найден соседний блок, имеющий доступный вектор движения. Здесь, приоритет может быть в порядке A->B или в порядке B->A.
[0626] Например, первый вектор (cpMVCorner[0]) контрольной точки может быть установлен как вектор движения первого соседнего блока, и второй вектор (cpMVCorner[1]) контрольной точки может быть установлен как вектор движения второго соседнего блока. Кроме того, третий вектор cpMVCorner[2] контрольной точки может быть установлен как вектор движения третьего соседнего блока. Четвертый вектор cpMVCorner[3] контрольной точки может быть установлен как вектор движения четвертого соседнего блока.
[0627] Альтернативно, любой один из первого по четвертый векторы контрольной точки может выводиться на основе другого. Например, второй вектор контрольной точки может выводиться путем применения предопределенного вектора смещения к первому вектору контрольной точки. Вектор смещения может представлять собой вектор разности между третьим вектором контрольной точки и первым вектором контрольной точки или может выводиться путем применения предопределенного коэффициента масштабирования к вектору разности. Коэффициент масштабирования может определяться на основе по меньшей мере одного из ширины или высоты текущего блока и/или соседнего блока.
[0628] Посредством комбинации по меньшей мере двух из первого по четвертый векторы контрольной точки, описанных выше, могут определяться K сконструированных кандидатов (ConstK) в соответствии с настоящим изобретением. Значение K может представлять собой целое число 1, 2, 3, 4, 5, 6, 7 или больше. Значение K может выводиться на основе информации, сигнализированной устройством кодирования, или может представлять собой значение, предопределенное в устройстве декодирования. Информация может включать в себя информацию, указывающую максимальное число сконструированных кандидатов, включенных в список кандидатов.
[0629] Конкретно, первый сконструированный кандидат (Const1) может выводиться путем комбинации с первого по третий векторы контрольной точки. Например, первый сконструированный кандидат (Const1) может иметь векторы контрольной точки, как показано в Таблице 1 ниже. Между тем, только когда информация опорной картинки первого соседнего блока является той же самой, что и информация опорной картинки второго и третьего соседних блоков, векторы контрольной точки могут конструироваться, как показано в Таблице 1. Здесь, информация опорной картинки может означать индекс опорной картинки, указывающий положение опорной картинки в списке опорных картинок или значение порядкового счета картинки (POC), указывающее порядок вывода.
[0630] Таблица 1
Idx
Вектор контрольной точки
0
cpMvCorner[0]
1
cpMvCorner[1]
2
cpMvCorner[2]
[0631] Второй сконструированный кандидат (Const2) может выводиться путем комбинации первого, второго и четвертого векторов контрольной точки. Например, второй сконструированный кандидат (Const2) может иметь векторы контрольной точки, как показано в Таблице 2 ниже. Между тем, только когда информация опорной картинки первого соседнего блока является той же самой, что и информация опорной картинки второго и четвертого соседних блоков, векторы контрольной точки могут конструироваться, как показано в Таблице 2. Здесь, информация опорной картинки является такой, как описано выше.
[0632] Таблица 2
Idx
Вектор контрольной точки
0
cpMvCorner[0]
1
cpMvCorner[1]
2
cpMvCorner[3] + cpMvCorner[1] - cpMvCorner[0]
[0633] Третий сконструированный кандидат (Const3) может выводиться путем комбинации первого, третьего и четвертого векторов контрольной точки. Например, третий сконструированный кандидат (Const3) может иметь векторы контрольной точки, как показано в Таблице 3 ниже. Между тем, только когда информация опорной картинки первого соседнего блока является той же самой, что и информация опорной картинки третьего и четвертого соседних блоков, векторы контрольной точки могут конструироваться, как показано в Таблице 2. Здесь, информация опорной картинки является такой, как описано выше.
[0634] Таблица 3
Idx
Вектор контрольной точки
0
cpMvCorner[0]
1
cpMvCorner[3] + cpMvCorner[0] - cpMvCorner[2]
2
cpMvCorner[2]
[0635] Четвертый сконструированный кандидат (Const4) может выводиться путем комбинации второго, третьего и четвертого векторов контрольной точки. Например, четвертый сконструированный кандидат (Const4) может иметь векторы контрольной точки, как показано в Таблице 4 ниже. Между тем, только когда информация опорной картинки второго соседнего блока является той же самой, что и информация опорной картинки третьего и четвертого соседних блоков, векторы контрольной точки могут конструироваться, как показано в Таблице 4. Здесь, информация опорной картинки является такой, как описано выше.
[0636] Таблица 4
Idx
Вектор контрольной точки
0
cpMvCorner[1] + cpMvCorner[2] - cpMvCorner[3]
1
cpMvCorner[1]
2
cpMvCorner[2]
[0637] Пятый сконструированный кандидат (Const5) может выводиться путем комбинации первого и второго векторов контрольной точки. Например, пятый сконструированный кандидат (Const5) может иметь векторы контрольной точки, как показано в Таблице 5 ниже. Между тем только когда информация опорной картинки первого соседнего блока является той же самой, что и информация опорной картинки второго соседнего блока, вектор контрольной точки может конструироваться, как показано в Таблице 5. Здесь, информация опорной картинки является такой, как описано выше.
[0638] Таблица 5
Idx
Вектор контрольной точки
1
cpMvCorner[ 0 ]
2
cpMvCorner[ 1 ]
[0639] Шестой сконструированный кандидат (Const6) может выводиться путем комбинации первого и третьего векторов контрольной точки. Например, шестой сконструированный кандидат (Const6) может иметь векторы контрольной точки, как показано в Таблице 6 ниже. Между тем, только когда информация опорной картинки первого соседнего блока является той же самой, что и информация опорной картинки третьего соседнего блока, вектор контрольной точки может конструироваться, как показано в Таблице 6. Здесь, информация опорной картинки является такой, как описано выше.
[0640] Таблица 6
Idx
Вектор контрольной точки
1
cpMvCorner[0]
2
cpMvCorner[1]
[0641] В Таблице 6, cpMvCorner[1] может представлять собой второй вектор контрольной точки, выведенный на основе первого и третьего векторов контрольной точки. Второй вектор контрольной точки может выводиться на основе по меньшей мере одного из первого вектора контрольной точки, предопределенного значения разности или размера текущего/соседнего блока. Например, второй вектор контрольной точки может выводиться, как в Уравнении 9 ниже.
[0642] [Уравнение 9]
[0643] cpMvCorner[1][0] = (cpMvCorner[0][0] << 7) + ((cpMvCorner[2][1] - сpMvCorner[0][1]) << (7+Log2(cbHeight/cbWidth)))
[0644] cpMvCorner[1][1] = (cpMvCorner[0][1] << 7) + ((cpMvCorner[2][0] - cpMvCorner[0][0]) << (7+Log2(cbHeight/cbWidth)))
[0645] Все из вышеописанных с первого по шестой сконструированных кандидатов могут быть включены в список кандидатов, или только некоторые из них могут быть включены в список кандидатов.
[0646]
[0647] Способы в соответствии с настоящим изобретением могут быть реализованы в виде программных инструкций, которые могут исполняться посредством различных компьютерных средств и записываться в считываемый компьютером носитель. Считываемый компьютером носитель может включать в себя программные инструкции, файлы данных, структуры данных или тому подобное по отдельности или в комбинации. Программные инструкции, записанные на считываемом компьютером носителе, могут специально проектироваться и конфигурироваться для настоящего изобретения или могут быть известными и используемыми специалистом в компьютерном программном обеспечении.
[0648] Примеры считываемого компьютером носителя могут включать в себя аппаратные устройства, специально сконфигурированные, чтобы хранить и исполнять программные инструкции, такие как ROM, RAM, флэш-память и тому подобное. Примеры программных инструкций могут включать в себя коды на машинном языке, такие как коды, сформированные компилятором, а также коды на языке высокого уровня, которые могут исполняться компьютером с использованием интерпретатора и тому подобного. Вышеописанное аппаратное устройство может быть сконфигурировано, чтобы работать с по меньшей мере одним модулем программного обеспечения, чтобы выполнять операцию настоящего изобретения, и наоборот.
[0649] Кроме того, вышеописанный способ или устройство могут быть реализованы путем комбинации всех или части их конфигурации или функции или могут быть реализованы по отдельности.
[0650] Хотя приведенное выше описано со ссылкой на предпочтительные варианты осуществления настоящего изобретения, специалистам в данной области техники будет понятно, что различные модификации и изменения могут осуществляться в настоящем изобретении без отклонения от сущности и объема изобретения, как изложено в формуле изобретения ниже.
Промышленная применимость
[0651] Настоящее изобретение может использоваться в способе и устройстве кодирования/декодирования изображения.