СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ВИДЕОСИГНАЛА
METHOD AND DEVICE FOR VIDEO SIGNAL PROCESSING

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к способу и устройству обработки видеосигнала.
Уровень техники
[0002] В последнее время в различных областях возросли потребности в изображениях высокого разрешения и высокого качества, например, в изображениях высокой четкости (англ. high definition (HD)) и сверхвысокой четкости (англ. ultra-high definition (UHD)). Однако, чем выше разрешение и качество изображения, тем больше количество данных по сравнению с данными обычного изображения. Поэтому возрастают затраты на передачу и хранение данных изображений при их передаче посредством таких традиционных физических сред, как проводные или беспроводные широкополосные сети, или их хранении на традиционном носителе. Решить проблемы, возникающие в связи с увеличением разрешения и качества данных изображений, позволяют высокоэффективные способы кодирования/декодирования изображений.
[0003] Технология сжатия изображений включает в себя разнообразные способы, в том числе: способ межкадрового предсказания значения пикселя, входящего в состав текущего изображения, по изображению, предшествующему текущему изображению или следующему за ним; способ внутрикадрового предсказания значения пикселя, входящего в состав текущего изображения, на основе информации о пикселях в текущем изображении; способ энтропийного кодирования, состоящий в присвоении короткого кода значению с высокой частотой появления и присвоении длинного кода значению с низкой частотой появления; и т.п. Указанная технология сжатия изображений позволяет эффективно сжимать видеоданные, а также передавать и хранить их.
[0004] С ростом потребностей в изображениях высокого разрешения также возросли потребности в части содержимого стереографических изображений - новой услуги передачи изображений. В настоящее время обсуждается способ сжатия видеоизображений для эффективного создания содержимого стереографического изображения с высоким разрешением и сверхвысоким разрешением.
Раскрытие сущности изобретения
Техническая задача
[0005] Настоящее изобретение направлено на создание способа и устройства для эффективного выполнения внутрикадрового предсказания в отношении целевого блока кодирования/декодирования при кодировании/декодировании видеосигнала.
[0006] Настоящее изобретение направлено на создание способа и устройства для выполнения внутрикадрового предсказания в широкоугольном режиме внутрикадрового предсказания при кодировании/декодировании видеосигнала.
[0007] Настоящее изобретение направлено на создание способа и устройства для выполнения внутрикадрового предсказания с применением правых и нижних опорных отсчетов при кодировании/декодировании видеосигнала.
[0008] Настоящее изобретение направлено на создание способа и устройства для выполнения внутрикадрового предсказания с учетом как прямого направления, так и обратного направления режима внутрикадрового предсказания при кодировании/декодировании видеосигнала.
[0009] Технические задачи, которые можно решить с помощью настоящего изобретения, не ограничены вышеуказанной задачей, при этом после ознакомления с нижеследующим описанием средним специалистам в области техники настоящего изобретения станут ясны и другие, не указанные здесь, технические задачи.
Техническое решение
[0010] Предложенные способ и устройство декодирования видеосигнала позволяют определять режим внутрикадрового предсказания текущего блока и преобразовывать режим внутрикадрового предсказания в широкоугольный режим внутрикадрового предсказания, если значение режима внутрикадрового предсказания не больше порогового значения, а тип текущего блока является неквадратным с шириной больше высоты. В этом случае, угол широкоугольного режима внутрикадрового предсказания больше 135 градусов.
[0011] Предложенные способ и устройство кодирования видеосигнала позволяют определять режим внутрикадрового предсказания текущего блока и преобразовывать режим внутрикадрового предсказания в широкоугольный режим внутрикадрового предсказания, если значение режима внутрикадрового предсказания не больше порогового значения, а тип текущего блока является неквадратным с шириной больше высоты. В этом случае угол широкоугольного режима внутрикадрового предсказания больше 135 градусов.
[0012] В способе и устройстве кодирования/декодирования видеосигнала согласно настоящему изобретению пороговое значение можно определять на основании соотношения ширины и высоты текущего блока.
[0013] В способе и устройстве кодирования/декодирования видеосигнала согласно настоящему изобретению широкоугольный режим внутрикадрового предсказания можно определять путем прибавления заранее заданного значения к значению режима внутрикадрового предсказания, при этом заранее заданное значение может представлять собой число режимов направленного внутрикадрового предсказания.
[0014] В способе и устройстве кодирования/декодирования видеосигнала согласно настоящему изобретению число широкоугольных режимов внутрикадрового предсказания, пригодных для текущего блока, можно определять на основании соотношения ширины и высоты текущего блока.
[0015] В способе и устройстве кодирования/декодирования видеосигнала согласно настоящему изобретению, в случае применения способа множественного внутрикадрового предсказания к текущему блоку, возможно применение неширокоугольного режима внутрикадрового предсказания к первому субблоку текущего блока и применение широкоугольного режима внутрикадрового предсказания ко второму субблоку.
[0016] В способе и устройстве кодирования/декодирования видеосигнала согласно настоящему изобретению отсчет, расположенный у границы первого субблока, можно преобразовать в значение, вычисленное фильтром сглаживания.
[0017] В способе и устройстве кодирования/декодирования видеосигнала согласно настоящему изобретению фильтрацию посредством фильтра сглаживания можно выполнять на основе первого отсчета, соседнего отсчету, расположенному у границы первого субблока, и отсчету, входящему в первый субблок, и второго отсчета, соседнего отсчету, входящему во второй субблок.
[0018] Кратко раскрытые выше признаки представляют собой примеры аспектов настоящего изобретения, осуществление которого раскрыто ниже, не ограничивающие объем настоящего изобретения.
Полезные эффекты
[0019] Настоящее изобретение позволяет эффективно выполнять внутрикадровое предсказание для целевого блока кодирования/декодирования.
[0020] Настоящее изобретение обеспечивает преимущество, состоящее в возможности повышения эффективности внутрикадрового предсказания за счет применения широкоугольного режима внутрикадрового предсказания.
[0021] Настоящее изобретение обеспечивает преимущество, состоящее в возможности повышения эффективности внутрикадрового предсказания за счет применения правых и нижних опорных отсчетов.
[0022] Настоящее изобретение обеспечивает преимущество, состоящее в возможности повышения эффективности внутрикадрового предсказания за счет учета и прямого направления, и обратного направления режима внутрикадрового предсказания.
[0023] Эффекты, которые может обеспечить настоящее изобретение, могут не быть ограничены вышеуказанными, при этом после ознакомления с нижеследующим описанием средним специалистам в области техники настоящего изобретения станут ясны и другие, не указанные здесь, эффекты.
Краткое описание чертежей
[0024] ФИГ. 1 - блок-схема, иллюстрирующая устройство кодирования видеоинформации по одному из вариантов осуществления настоящего изобретения.
[0025] ФИГ. 2 - блок-схема, иллюстрирующая устройство декодирования видеоинформации по одному из вариантов осуществления настоящего изобретения.
[0026] ФИГ. 3 - схема, иллюстрирующая потенциальный режим разбиения с возможностью применения к блоку кодирования в случае кодирования блока кодирования путем межкадрового предсказания.
[0027] ФИГ. 4 изображает пример иерархического разбиения блока кодирования на основе древовидной структуры в качестве варианта применения настоящего изобретения.
[0028] ФИГ. 5 - схема, иллюстрирующая форму сегмента, при которой разрешено разбиение на основе двоичного дерева, в качестве варианта применения настоящего изобретения.
[0029] ФИГ. 6 иллюстрирует форму разбиения на основе троичного дерева.
[0030] ФИГ. 7 - схема, иллюстрирующая пример, в котором разрешена только конкретная форма разбиения на основе двоичного дерева.
[0031] ФИГ. 8 - схема для раскрытия примера, в котором информацию, относящуюся к разрешенному количеству раз разбиения на основе двоичного дерева, кодируют/декодируют по одному из вариантов осуществления настоящего изобретения.
[0032] ФИГ. 9 - схема, иллюстрирующая типы заранее заданных режимов внутрикадрового предсказания для устройства кодирования/декодирования изображения по одному из вариантов осуществления настоящего изобретения.
[0033] ФИГ. 10 - схема, иллюстрирующая пригодные режимы внутрикадрового предсказания в рамках расширенного внутрикадрового режима.
[0034] ФИГ. 11 - схема, иллюстрирующая режимы внутрикадрового предсказания, включающие в себя широкоугольные режимы внутрикадрового предсказания.
[0035] ФИГ. 12 - схема, иллюстрирующая один из аспектов применения широкоугольного режима внутрикадрового предсказания в зависимости от формы текущего блока.
[0036] ФИГ. 13 - блок-схема, вкратце иллюстрирующая способ внутрикадрового предсказания по одному из вариантов осуществления настоящего изобретения.
[0037] ФИГ. 14 - схема, иллюстрирующая потенциальные ряды опорных отсчетов.
[0038] ФИГ. 15 - схема, иллюстрирующая способ преобразования предсказанного отсчета текущего блока на основе информации о разности между соседними отсчетами по одному из вариантов осуществления настоящего изобретения.
[0039] ФИГ. 16 и 17 - схема, иллюстрирующая одномерную группу опорных отсчетов, в которой опорные отсчеты переупорядочены в ряду.
[0040] ФИГ. 18 - схема, иллюстрирующая пример получения правого опорного отсчета или нижнего опорного отсчета с применением множества опорных отсчетов.
[0041] ФИГ. 19 и 20 - схемы для разъяснения того, как определяют правый опорный отсчет и нижний опорный отсчет для неквадратного блока по одному из вариантов осуществления настоящего изобретения.
[0042] ФИГ. 21 - схема для разъяснения примера получения второго опорного отсчета с применением первого опорного отсчета.
[0043] ФИГ. 22 - схема, иллюстрирующая пример получения правого опорного отсчета и нижнего опорного отсчета путем применения временного предсказанного отсчета, полученного на основе режима планировщика.
[0044] ФИГ. 23 - схема, иллюстрирующая опорные отсчеты, образующие одномерную группу опорных отсчетов.
[0045] ФИГ. 24 и 25 - схемы, иллюстрирующие положения первого опорного целевого отсчета и второго опорного целевого отсчета.
[0046] ФИГ. 26 - схема, иллюстрирующая пример получения предсказанного отсчета на основе операции взвешенной суммы первого опорного целевого отсчета и второго опорного целевого отсчета.
[0047] ФИГ. 27 - схема, иллюстрирующая область применения двунаправленного внутрикадрового предсказания.
[0048] ФИГ. 28 - схема, идентифицирующая и указывающая режим направленного предсказания, в котором разрешено двунаправленное внутрикадровое предсказание.
[0049] ФИГ. 29 - блок-схема, иллюстрирующая процесс принятия решения о применении режима двунаправленного внутрикадрового предсказания по настоящему изобретению.
[0050] ФИГ. 30 иллюстрирует вариант осуществления, в котором применяют способ множественного внутрикадрового предсказания.
[0051] ФИГ. 31 - схема, иллюстрирующая пример, в котором применяют фильтр сглаживания.
Осуществление изобретения
[0052] Разнообразные изменения могут быть внесены в настоящее изобретение, несколько вариантов осуществления которого будут раскрыты ниже на примерах чертежей и подробно описаны. При этом настоящее изобретение не ограничено данными примерами осуществления, которые можно рассматривать как включающие в себя все изменения, эквивалентные решения или замены в отношении технического замысла и технического объема настоящего изобретения. Аналогичные номера позиций обозначают аналогичные элементы на чертежах.
[0053] Такие слова как «первый», «второй» и т.п. в тексте описания могут служить для описания различных компонентов, однако их не следует толковать как ограничивающие эти компоненты. Эти слова служат только для проведения различия между одним компонентом и другими компонентами. Например, «первый» компонент может быть назван «вторым» компонентом без отступления от объема настоящего изобретения, при этом «второй» компонент может, аналогичным образом, быть назван «первым» компонентом. Выражение «и/или» означает наличие комбинации множества единиц или любой из множества единиц.
[0054] Если в настоящем раскрытии сказано, что элемент «связан» или «соединен» с другим элементом, это может означать не только то, что этот элемент непосредственно связан или соединен с таким другим элементом, но и то, что между ними может быть еще один элемент. Если сказано, что элемент «непосредственно связан» или «непосредственно соединен» с другим элементом, это значит, что между ними отсутствуют какой-либо другой элемент.
[0055] Термины в тексте настоящего описания служат исключительно для раскрытия частных вариантов осуществления и не предназначены для ограничения настоящего изобретения. Выражение в единственном числе включает в себя значение множественного числа, если иное явно не следует из контекста. Следует понимать, что в настоящем описании такие термины, как «включающий в себя», «имеющий» и т.п. служат для указания наличия признаков, количеств, этапов, действий, элементов, частей или их комбинаций, раскрытых в описании, но не исключают возможности наличия или добавления одного или нескольких других признаков, количеств, этапов, действий, элементов, частей или их комбинаций.
[0056] Далее будут подробно раскрыты предпочтительные варианты осуществления настоящего изобретения на примерах прилагаемых чертежей. Далее по тексту одни и те же составные части на чертежах обозначены одними и теми же номерами позиций, при этом одни и те же элементы не будут раскрываться повторно.
[0057]
[0058] ФИГ. 1 - блок-схема, иллюстрирующая устройство кодирования видеоинформации по одному из вариантов осуществления настоящего изобретения.
[0059] Устройство 100 кодирования видеоинформации на ФИГ. 1 может включать в себя: модуль 110 разбиения изображения, модули 120 и 125 предсказания, модуль 130 преобразования, модуль 135 квантования, модуль 160 переупорядочивания, модуль 165 энтропийного кодирования, модуль 140 обратного квантования, модуль 145 обратного преобразования, модуль 150 фильтрации и запоминающее устройство 155.
[0060] Составные части на ФИГ. 1 изображены по отдельности, чтобы представить их характерные функции, отличные друг от друга, в устройстве кодирования видеоинформации. Однако это не означает, что каждая составная часть выполнена в виде составной единицы обособленного аппаратного или программного средства. Иными словами, каждая составная часть условно включает в себя каждую из перечисленных составных частей. То есть по меньшей мере две составные части каждой составной части могут быть объединены с образованием одной составной части или одна составная часть может быть поделена на множество составных частей для выполнения каждой функции. Варианты осуществления, в которых каждая составная часть является объединенной или одна составная часть является поделенной, также входят в объем настоящего изобретения, если это не является отступлением от его сущности.
[0061] Кроме того, некоторые составляющие могут быть не обязательными составляющими, выполняющими основные функции по настоящему изобретению, а выборочными составляющими, только улучшающими показатели работы. Настоящее изобретение можно реализовать посредством только обязательных составных частей для реализации сущности настоящего изобретения, исключив составляющие, служащие для улучшения показателей работы. Структура, включающая в себя только обязательные составляющие и не включающая в себя выборочные составляющие, служащие только для улучшения показателей работы, также входит в объем настоящего изобретения.
[0062] Модуль 110 разбиения изображения выполнен с возможностью разбиения входного изображения на одну или несколько единиц обработки. В данном случае, единица обработки может представлять собой единицу предсказания (ЕП, англ. prediction unit (PU)), единицу преобразования (ЕПр, англ. transform unit (TU)) или единицу кодирования (ЕК, англ. coding unit (CU)). Модуль 110 разбиения изображения выполнен с возможностью разбиения одного изображения на комбинации нескольких единиц кодирования, единиц предсказания и единиц преобразования и с возможностью кодирования изображения путем выбора одной комбинации единиц кодирования, единиц предсказания и единиц преобразования по заранее заданному критерию (например, функции стоимости).
[0063] Например, одно изображение можно разбить на несколько единиц кодирования. Разбиение изображения на единицы кодирования можно осуществлять посредством рекурсивно-древовидной структуры, например, квадродревовидной структуры. Единицу кодирования, разбиваемую на другие единицы кодирования, с одним изображением или наибольшую единицу кодирования в качестве корня можно разбить посредством дочерних узлов, соответствующих числу разбитых единиц кодирования. Единица кодирования, не разбиваемая далее при достижении заранее определенного предела, служит в качестве листового узла. То есть, если для одной единицы кодирования возможно только квадратное разбиение, одну единицу кодирования можно разбить не более чем на четыре другие единицы кодирования.
[0064] Далее по тексту описания варианта осуществления настоящего изобретения «единица кодирования» может означать единицу выполнения кодирования или единицу выполнения декодирования.
[0065] Единица предсказания может представлять собой один из сегментов квадратной или прямоугольной структуры с одинаковым размером отдельной единицы кодирования или один из сегментов, полученный в результате разбиения таким образом, чтобы отдельные единицы кодирования имели разную форму / размер.
[0066] Если единица предсказания для внутрикадрового предсказания сгенерирована на основе единицы кодирования, а единица кодирования не является наименьшей единицей кодирования, внутрикадровое предсказание можно осуществлять без разбиения единицы кодирования на несколько единиц предсказания NxN.
[0067] В число модулей 120 и 125 предсказания могут входить модуль 120 межкадрового предсказания, осуществляющий межкадровое предсказание, и модуль 125 внутрикадрового предсказания, осуществляющий внутрикадровое предсказание. Можно определить то, какое предсказание - межкадровое или внутрикадровое - следует выполнить в отношении данной единицы предсказания, а также детальную информацию (например, режим внутрикадрового предсказания, вектор движения, опорное изображение и т.п.) в зависимости от способа предсказания. В данном случае единица обработки для предсказания может быть отлична от единицы обработки, для которой определяют способ предсказания и детальное содержание. Например, способ предсказания, режим предсказания и т.п. можно определять для единицы предсказания, а предсказание выполнять в отношении единицы преобразования. Остаточное значение (остаточный блок), представляющее собой разность между сгенерированным блоком предсказания и исходным блоком, можно ввести в модуль 130 преобразования. Кроме того, информацию о режиме предсказания, информацию о векторе движения и т.п., используемую для предсказания, можно закодировать с остаточным значением посредством модуля 165 энтропийного кодирования и передать в устройство декодирования видеоинформации. При применении того или иного режима кодирования, передачу в устройство декодирования видеоинформации можно осуществлять, кодируя исходный блок как таковой, без генерирования блока предсказания посредством модулей 120 и 125 предсказания.
[0068] Модуль 120 межкадрового предсказания выполнен с возможностью предсказания единицы предсказания на основе информации о по меньшей мере изображении, предшествующем текущему изображению или следующем за ним, или, в некоторых случаях, на основе информации о некоторых закодированных областях в текущем изображении. Модуль 120 межкадрового предсказания может включать в себя модуль интерполяции опорного изображения, модуль предсказания движения и модуль компенсации движения.
[0069] Модуль интерполяции опорного изображения выполнен с возможностью приема информации опорного изображения из запоминающего устройства 155 и генерирования информации о целочисленном пикселе или пикселе меньше целочисленного из опорного изображения. В случае пикселей яркости, возможно применение 8-отводного интерполяционного фильтра на основе дискретного косинусного преобразования (ДКП, англ. discrete cosine transform (DCT)) с разными коэффициентами фильтра для генерирования информации о целочисленном пикселе или пикселе меньше целочисленного в единицах, составляющих 1/4 пикселя. В случае сигналов цветности, возможно применение 4-отводного интерполяционного фильтра на основе ДКП с другим коэффициентом фильтра для генерирования информации о целочисленном пикселе или пикселе меньше целочисленного в единицах, составляющих 1/8 пикселя.
[0070] Модуль предсказания движения выполнен с возможностью предсказания движения на основе опорного изображения, интерполированного модулем интерполяции опорного изображения. Возможно применение различных способов вычисления вектора движения, например, алгоритма сопоставления блоков с полным поиском (англ. full search-based block matching algorithm (FBMA)), трехступенчатого поиска (англ. three step search (TSS)), алгоритма нового трехступенчатого поиска (англ. new three-step search algorithm (NTS)) и т.п. Вектор движения может иметь значение вектора движения в единицах, составляющих 1/2 пикселя или 1/4 пикселя в зависимости от интерполированного пикселя. Модуль предсказания движения выполнен с возможностью предсказания для текущей единицы предсказания путем изменения способа предсказания движения. Возможно применение различных способов предсказания движения, например, способа пропуска, способа слияния, способа AMVP (улучшенного предсказания вектора движения), способа внутриблокового копирования и т.п.
[0071] Модуль 125 внутрикадрового предсказания выполнен с возможностью генерирования единицы предсказания на основе опорной информации о пикселях по соседству с текущим блоком, т.е. информации о пикселях в текущем изображении. Если соседний блок текущей единицы предсказания является блоком-объектом межкадрового предсказания, в связи с чем опорный пиксель является пикселем-объектом межкадрового предсказания, опорный пиксель, входящий в состав блока-объекта межкадрового предсказания, можно заменить опорной информацией о пикселях соседнего блока-объекта внутрикадрового предсказания. То есть, если опорный пиксель непригоден, по меньшей мере один опорный пиксель из пригодных опорных пикселей можно использовать вместо информации о непригодном опорном пикселе.
[0072] В число режимов внутрикадрового предсказания могут входить режим направленного предсказания с применением опорной информации о пикселях в зависимости от направления предсказания и режим ненаправленного предсказания без применения информации о направлении при выполнении предсказания. Режим для предсказания яркостной информации может быть отличен от режима для предсказания цветностной информации, при этом для предсказания цветностной информации можно использовать информацию режима внутрикадрового предсказания, применяемую для предсказания яркостной информации или предсказанную информацию сигнала яркости.
[0073] Если при выполнении внутрикадрового предсказания размер единицы предсказания тождествен размеру единицы преобразования, внутрикадровое предсказание в отношении единицы предсказания можно выполнять на основе пикселей, расположенных слева, слева сверху и сверху от единицы предсказания. При этом, если при выполнении внутрикадрового предсказания размер единицы предсказания отличен от размера единицы преобразования, внутрикадровое предсказание можно выполнять с применением опорного пикселя на основе единицы преобразования. Кроме того, внутрикадровое предсказание с разбиением NxN можно применять только в отношении наименьшей единицы кодирования.
[0074] Согласно способу внутрикадрового предсказания, блок предсказания можно сгенерировать после применения фильтра адаптивного внутреннего сглаживания (ABC, англ. Adaptive Intra Smoothing (AIS)) к опорному пикселю в зависимости от режимов предсказания. К опорному пикселю можно применять фильтры ABC разных типов. Для выполнения способа внутрикадрового предсказания, режим внутрикадрового предсказания текущей единицы предсказания можно предсказывать по режиму внутрикадрового предсказания единицы предсказания по соседству с текущей единицей предсказания. При предсказании режима предсказания текущей единицы предсказания путем применения информации о режиме, предсказанной по соседней единице предсказания, если режим внутрикадрового предсказания текущей единицы предсказания является тем же, что и режим внутрикадрового предсказания соседней единицы предсказания, для передачи информации, указывающей, что режимы предсказания текущей единицы предсказания и соседней единицы предсказания одинаковы, можно использовать заранее определенную сигнальную информацию. Если режим предсказания текущей единицы предсказания отличен от режима предсказания соседней единицы предсказания, можно выполнить энтропийное кодирование для кодирования информации о режиме предсказания текущего блока.
[0075] Кроме того, можно сгенерировать остаточный блок, включающий в себя информацию об остаточном значении, представляющем собой разность между единицей предсказания - объектом предсказания и исходным блоком единицы предсказания, на основе единиц предсказания, сгенерированных модулями 120 и 125 предсказания. Сгенерированный остаточный блок можно ввести в модуль 130 преобразования.
[0076] Модуль 130 преобразования выполнен с возможностью преобразования остаточного блока, включающего в себя информацию об остаточном значении, представляющем собой разность между исходным блоком и единицей предсказания, сгенерированной модулями 120 и 125 предсказания, путем применения способа преобразования, например, дискретного косинусного преобразования (ДКП), дискретного синусного преобразования (ДСП, англ. discrete sine transform (DST)) и преобразования Карунена - Лоэва (ПКЛ, англ. Karhunen - Loeve transform (KLT)). To, какой из способов - ДКП, ДСП или ПКЛ - применить для преобразования остаточного блока, можно определять на основании информации о режиме внутрикадрового предсказания единицы предсказания, применяемой для генерирования остаточного блока.
[0077] Модуль 135 квантования выполнен с возможностью квантования значений, преобразованных в частотную область модулем 130 преобразования. Возможно применение разных коэффициентов квантования в зависимости от блока или важности изображения. Значения, вычисленные модулем 135 квантования, можно вводить в модуль 140 обратного квантования и модуль 160 переупорядочивания.
[0078] Модуль 160 переупорядочивания выполнен с возможностью переупорядочивания коэффициентов квантованных остаточных значений.
[0079] Модуль 160 переупорядочивания выполнен с возможностью видоизменения коэффициента в форме двумерного блока в коэффициент в форме одномерного вектора способом считывания коэффициентов. Например, модуль 160 переупорядочивания выполнен с возможностью считывания в диапазоне от коэффициента прямого кодирования (англ. DC - Direct coding) до коэффициента в высокочастотной области способом зигзагообразного считывания для видоизменения коэффициентов в форму одномерных векторов. В зависимости от размера единицы преобразования и режима внутрикадрового предсказания, вместо зигзагообразного считывания возможно считывание в вертикальном направлении, при котором коэффициенты в форме двумерных блоков считывают в направлении столбца, или считывания в горизонтальном направлении, при котором коэффициенты в форме двумерных блоков считывают в направлении строки. Таким образом, способ считывания -зигзагообразное считывание, считывание в вертикальном направлении или считывание в горизонтальном направлении - для применения можно определять на основании размера единицы преобразования и режима внутрикадрового предсказания.
[0080] Модуль 165 энтропийного кодирования выполнен с возможностью выполнения энтропийного кодирования на основе значений, вычисленных модулем 160 переупорядочивания. При энтропийном кодировании возможно применение различных способов кодирования, например, экспоненциального кодирования Голомба, контекстно-зависимого адаптивного кодирования с переменной длиной кодового слова (англ. context-adaptive variable length coding (CAVLC)) и контекстно-зависимого двоичного арифметического кодирования (англ. context-adaptive binary arithmetic coding (CABAC)).
[0081] Модуль 165 энтропийного кодирования выполнен с возможностью кодирования разнообразной информации, например, информации о коэффициенте остаточного значения и информации о типе блока единицы кодирования, информации о режиме предсказания, информации о единице разбиения, информации о единице предсказания, информации о единице преобразования, информации о векторе движения, информация об опорном кадре, информации об интерполяции блока, информации о фильтрации и т.п. от модуля 160 переупорядочивания и модулей 120 и 125 предсказания.
[0082] Модуль 165 энтропийного кодирования выполнен с возможностью энтропийного кодирования коэффициентов единицы кодирования, введенных из модуля 160 переупорядочивания.
[0083] Модуль 140 обратного квантования выполнен с возможностью обратного квантования значений, квантованных модулем 135 квантования, а модуль 145 обратного преобразования - с возможностью обратного преобразования значений, преобразованных модулем 130 преобразования. Остаточное значение, сгенерированное модулем 140 обратного квантования и модулем 145 обратного преобразования, можно скомбинировать с единицей предсказания, предсказанной модулем оценки движения, модулем компенсации движения и модулем внутрикадрового предсказания модулей 120 и 125 предсказания, с возможностью генерирования восстановленного блока.
[0084] Модуль 150 фильтрации может включать в себя по меньшей мере одно из следующего: фильтр удаления блочности, узел коррекции смещения и адаптивный контурный фильтр (АКФ, англ. adaptive loop filter (ALF)).
[0085] Фильтр удаления блочности выполнен с возможностью устранений видимой блочности структуры ТВ-изображения, обусловленной наличием границ между блоками в восстановленном изображении. Основанием для определения того, нужно ли выполнить удаление блочности, т.е. нужно ли применить фильтр удаления блочности к текущему блоку, могут служить пиксели, входящие в несколько строк или столбцов в блоке. Применение фильтра удаления блочности к блоку может включать в себя применение строгого фильтра или нестрогого фильтра в зависимости от нужной строгости фильтрации для удаления блочности. Кроме того, при применении фильтра удаления блочности, обработка горизонтальной фильтрации и вертикальной фильтрации может происходить параллельно.
[0086] Модуль коррекции смещения выполнен с возможностью коррекции смещения относительно исходного изображения в единицах пикселя в изображении, подвергаемом процессу удаления блочности. Для выполнения коррекции смещения на конкретном изображении можно применить способ, при котором применяют смещение с учетом информации о краях каждого пикселя, или способ, при котором пиксели изображения разбивают на заранее определенное число областей, определяют область для выполнения смещения и применяют смещение к указанной определенной области.
[0087] Адаптивную контурную фильтрацию (АКФ) можно выполнять на основе значения, определенного путем сравнения отфильтрованного восстановленного изображения и исходного изображения. Пиксели, входящие в состав изображения, можно поделить на заранее определенные группы, определить фильтр для применения к каждой из групп и выполнить фильтрацию индивидуально для каждой группы. Передача информации о том, нужно ли применить АКФ, и сигнала яркости может происходить посредством единицы кодирования (ЕК). Форма и коэффициент фильтра для АКФ могут быть разными для каждого блока. Кроме того, возможно применение фильтра для АКФ одной и той же формы (постоянной формы) независимо от назначения целевого блока.
[0088] Запоминающее устройство 155 выполнено с возможностью хранения восстановленного блока или изображения, вычисленного посредством модуля 150 фильтрации. Сохраненный восстановленный блок или изображение могут быть введены в модули 120 и 125 предсказания при выполнении межкадрового предсказания.
[0089]
[0090] ФИГ. 2 - блок-схема, иллюстрирующая устройство декодирования видеоинформации по одному из вариантов осуществления настоящего изобретения.
[0091] Устройство 200 декодирования видеоинформации на ФИГ. 2 может включать в себя: модуль 210 энтропийного декодирования, модуль 215 переупорядочивания, модуль 220 обратного квантования, модуль 225 обратного преобразования, модули 230 и 235 предсказания, модуль 240 фильтрации и запоминающее устройство 245.
[0092] Когда происходит ввод битового видеопотока от устройства кодирования видеоинформации, процесс декодирования входного битового потока может быть обратен тому, что происходит в устройстве кодирования видеоинформации.
[0093] Модуль 210 энтропийного декодирования выполнен с возможностью осуществления процесса энтропийного декодирования, обратного процессу энтропийного кодирования модулем энтропийного кодирования устройства кодирования видеоинформации. Например, возможно применение таких способов, как экспоненциальное кодирование Голомба, контекстно-зависимое адаптивное кодирование с переменной длиной кодового слова (CAVLC) и контекстно-зависимое двоичное арифметическое кодирование (CABAC), в соответствии со способами, выполняемыми устройством кодирования видеоинформации.
[0094] Модуль 210 энтропийного декодирования выполнен с возможностью декодирования информации, относящейся к внутрикадровому предсказанию и межкадровому предсказанию, выполняемым устройством кодирования видеоинформации.
[0095] Модуль 215 переупорядочивания выполнен с возможностью переупорядочивания битового потока, энтропийно декодированного модулем 210 энтропийного декодирования, в зависимости от способа переупорядочивания, применяемого в устройстве кодирования видеоинформации. Модуль переупорядочивания выполнен с возможностью восстановления и переупорядочивания коэффициентов в форме одномерных векторов в коэффициенты в форме двумерных блоков. Модуль 215 переупорядочивания выполнен с возможностью приема информации, относящейся к считыванию коэффициентов, выполненному в устройстве кодирования видеоинформации, и переупорядочивания способом, состоящим в считывании указанных коэффициентов в порядке, обратном порядку считывания, выполняемого в устройстве кодирования видеоинформации.
[0096] Модуль 220 обратного квантования выполнен с возможностью обратного квантования на основе параметра квантования, полученного от устройства кодирования видеоинформации, и переупорядоченных коэффициентов блока.
[0097] Модуль 225 обратного преобразования выполнен с возможностью обратного преобразования, т.е. обратного ДКП, обратного ДСП и обратного ПКЛ - процессов, обратных процессам преобразования, т.е. ДКП, ДСП и ПКЛ, выполняемым модулем преобразования в отношении результата квантования устройством кодирования видеоинформации. Обратное преобразование можно выполнять на основе единицы преобразования, определенной устройством кодирования видеоинформации. Модуль 225 обратного преобразования устройства декодирования видеоинформации может выборочно выполнять схемы преобразования (например, ДКП, ДСП и ПКЛ) с учетом множества сведений, например, способа предсказания, размера текущего блока, направления предсказания и т.п.
[0098] Модули 230 и 235 предсказания выполнены с возможностью генерирования блока предсказания на основе информации о генерировании блока предсказания, полученной от модуля 210 энтропийного декодирования и информации о ранее декодированном блоке или изображении, полученной из запоминающего устройства 245.
[0099] Аналогично работе устройства кодирования видеоинформации, раскрытой выше, если при выполнении внутрикадрового предсказания размер единицы предсказания тождествен размеру единицы преобразования, внутрикадровое предсказание в отношении единицы предсказания можно выполнять на основе пикселей, расположенных слева, слева сверху и сверху от единицы предсказания. Если при выполнении внутрикадрового предсказания размер единицы предсказания отличен от размера единицы преобразования, внутрикадровое предсказание можно выполнять с применением опорного пикселя на основе единицы преобразования. Кроме того, внутрикадровое предсказание с разбиением NxN можно применять только в отношении наименьшей единицы кодирования.
[00100] Модули 230 и 235 предсказания могут включать в себя модуль определения единицы предсказания, модуль межкадрового предсказания и модуль внутрикадрового предсказания. Модуль определения единицы предсказания выполнен с возможностью приема разнообразной информации, например, информации о единице предсказания, информации о режиме предсказания способа внутрикадрового предсказания, информации о предсказании движения способа межкадрового предсказания и т.п. от модуля 210 энтропийного декодирования, с возможностью деления текущей единицы кодирования на единицы предсказания и определения того, какое именно предсказание - межкадровое или внутрикадровое - выполняют в отношении единицы предсказания. Применении информации, нужной для межкадрового предсказания текущей единицы предсказания, принятой от устройства кодирования видеоинформации, обеспечивает возможность выполнения межкадрового предсказания модулем 230 межкадрового предсказания в отношении текущей единицы предсказания на основе информации по меньшей мере одного из изображений - предшествующего текущему изображению, содержащему текущую единицу предсказания, или следующего за ним. В качестве альтернативы, межкадровое предсказание можно выполнять на основе информации некоторых заранее восстановленных областей в текущем изображении, содержащем текущую единицу предсказания.
[00101] Для выполнения межкадрового предсказания можно определять, какой из режимов - режим пропуска, режим слияния, режим улучшенного предсказания вектора движения (AMVP) или режим внутриблокового копирования - используется для единицы кодирования в качестве способа предсказания движения единицы предсказания, входящей в состав единицы кодирования.
[00102] Модуль 235 внутрикадрового предсказания выполнен с возможностью генерирования блока предсказания на основе информации о пикселях в текущем изображении. Если единица предсказания представляет собой единицу предсказания - объект внутрикадрового предсказания, внутрикадровое предсказание можно выполнять на основе информации о режиме внутрикадрового предсказания единицы предсказания, принятой от устройства кодирования видеоинформации. Модуль 235 внутрикадрового предсказания может включать в себя фильтр адаптивного внутреннего сглаживания (ABC), модуль интерполяции опорного пикселя и фильтр прямого кодирования. Фильтр ABC осуществляет фильтрацию в отношении опорного пикселя текущего блока, при этом определять то, нужно ли применить данный фильтр, можно в зависимости от режима предсказания текущей единицы предсказания. Фильтрацию с ABC в отношении опорного пикселя текущего блока можно выполнять путем применения информации о режиме предсказания единицы предсказания и фильтре ABC, принятой от устройства кодирования видеоинформации. Если режим предсказания текущего блока представляет собой режим без применения фильтра ABC, фильтр ABC можно не применять.
[00103] Если режим предсказания единицы предсказания представляет собой режим предсказания, в котором внутрикадровое предсказание осуществляют на основе значения пикселя, определенного путем интерполяции опорного пикселя, модуль интерполяции опорного пикселя может интерполировать опорный пиксель для генерирования опорного пикселя в виде целочисленного пикселя или пикселя меньше целочисленного. Если режим предсказания текущей единицы предсказания представляет собой режим предсказания, в котором блок предсказания генерируют без интерполяции опорного пикселя, опорный пиксель можно не интерполировать. Фильтр прямого кодирования выполнен с возможностью генерирования блока предсказания путем фильтрации, если режим предсказания текущего блока представляет собой режим прямого кодирования.
[00104] Восстановленный блок или изображение можно ввести в модуль 240 фильтрации. Модуль 240 фильтрации может включать в себя фильтр удаления блочности, модуль коррекции смещения и АКФ.
[00105] Информацию о том, применяется ли фильтр удаления блочности к соответствующему блоку или изображению, и информацию о том, какой фильтр - строгий или нестрогий - применяется в случае применения фильтра удаления блочности, можно получить от устройства кодирования видеоинформации. Фильтр удаления блочности устройства декодирования видеоинформации выполнен с возможностью получения информации о фильтре удаления блочности от устройства кодирования видеоинформации и фильтрации для удаления блочности в отношении соответствующего блока.
[00106] Модуль коррекции смещения выполнен с возможностью коррекции смещения в отношении восстановленного изображения на основе информации от типе коррекции смещения и значении смещения, примененных к изображению при кодировании.
[00107] АКФ можно применять к единице кодирования на основе информации о том, нужно ли применять АКФ, информации о коэффициенте АКФ и т.п., полученной от устройства кодирования видеоинформации. Информация об АКФ может быть предоставлена в составе особого набора параметров.
[00108] Запоминающее устройство 245 выполнено с возможностью хранения восстановленного изображения или блока для применения в качестве опорного изображения или блока и предоставления восстановленного изображения в модуль вывода.
[00109] Как сказано выше, в описании варианта осуществления настоящего изобретения термин «единица кодирования» для удобства раскрытия обозначает единицу для кодирования, которая, при этом, также может служить единицей для выполнения декодирования.
[00110] Кроме того, текущий блок может представлять собой целевой блок, подлежащий кодированию/декодированию. Текущий блок также может представлять собой блок дерева кодирования (или единицу дерева кодирования), блок кодирования (или единицу кодирования), блок преобразования (или единицу преобразования), блок предсказания (или единицу предсказания) или нечто подобное в зависимости от этапа кодирования/декодирования. В настоящем описании слово «единица» может означать базовую единицу для выполнения конкретного процесса кодирования/декодирования, а «блок» может означать массив отсчетов заранее определенного размера. Если особо не указано иное, слова «блок» и «единица» могут употребляться в одинаковом значении. В приведенном ниже примере можно понять, что «блок кодирования» и «единица кодирования» имеют одинаковое значение.
[00111]
[00112] Кодирование/декодирование одного изображения можно осуществлять путем деления на базовые блоки квадратной или неквадратной формы. В этом случае базовый блок может именоваться «единица дерева кодирования». Единицу дерева кодирования можно охарактеризовать как единицу кодирования наибольшего размера, разрешенного в пределах последовательности или сектора. Информацию о том, имеет ли единица дерева кодирования квадратную форму или неквадратную форму, или информацию о размере единицы дерева кодирования можно сообщать посредством набора параметров последовательности, набора параметров изображения или заголовка сектора. Единицу дерева кодирования можно поделить на сегменты меньшего размера. В этом случае, если глубину разбиения в результате деления единицы дерева кодирования принимают равной 1, то глубину разбиения в результате деления сегмента с глубиной 1 можно принять равной 2. То есть глубину сегмента, сгенерированного путем деления сегмента с глубиной k в единице дерева кодирования, можно определить как k+1.
[00113] Сегмент произвольного размера, сгенерированный путем деления единицы дерева кодирования, можно охарактеризовать как «единицу кодирования». Единицу кодирования можно рекурсивно делить или делить на базовые единицы для выполнения предсказания, квантования, преобразования или внутриконтурной фильтрации и т.п. Например, сегмент произвольного размера, сгенерированный путем деления единицы кодирования, можно охарактеризовать как единицу кодирования, или единицу преобразования, или единицу предсказания, представляющую собой базовую единицу для выполнения предсказания, квантования, преобразования или внутриконтурной фильтрации и т.п.
[00114] В качестве альтернативы, блок предсказания того же размера, что и блок кодирования, или меньшего размера, чем блок кодирования, можно определять путем разбиения блока кодирования для предсказания. Для разбиения блока кодирования для предсказания можно указать любой из потенциальных режимов разбиения (Part_mode), форма которого соответствует форме разбиения блока кодирования. Информацию для определения индекса разбиения, указывающего любой из потенциальных режимов разбиения, можно сообщать в битовом потоке. В качестве альтернативы, индекс разбиения блока кодирования можно определять на основе по меньшей мере одного из следующего: размера, формы или режима кодирования блока кодирования. Размер или форму блока предсказания можно определять на основе режима разбиения, указанного индексом разбиения. В число потенциальных режимов разбиения могут входить те, что имеют асимметричную форму разбиения (например, nLx2N, nRx2N, 2NxnU, 2NxnD). Число и тип асимметричных потенциальных режимов разбиения, пригодных для блока кодирования, можно определять на основе по меньшей мере одного из следующего: размера, формы или режима кодирования блока кодирования.
[00115] ФИГ. 3-схема, иллюстрирующая потенциальный режим разбиения с возможностью применения к блоку кодирования в случае кодирования блока кодирования путем межкадрового предсказания.
[00116] В случае кодирования блока кодирования путем межкадрового предсказания, к блоку кодирования можно применить любой из 8 потенциальных режимов разбиения на ФИГ. З.
[00117] При этом, в случае кодирования блока кодирования путем внутрикадрового предсказания, к блоку кодирования можно применить только разбиение на квадраты. Иными словами, в случае кодирования блока кодирования путем внутрикадрового предсказания, к блоку кодирования можно применить режим разбиения PART_2Nx2N или PART_NxN.
[00118] PART_NxN можно применять, если блок кодирования имеет минимальный размер. В данном случае минимальный размер блока кодирования может быть заранее задан в кодере и в декодере. В качестве альтернативы, информацию о минимальном размере блока кодирования можно сообщать в битовом потоке. В одном примере минимальный размер блока кодирования можно сообщить в заголовке сектора. Следовательно, может быть определен разный минимальный размер блока кодирования для каждого сектора.
[00119] В другом примере потенциальный режим разбиения, пригодный для блока кодирования, можно определять по-разному в зависимости от по меньшей мере размера или формы блока кодирования. В одном примере число или тип потенциальных режимов разбиения, пригодных для блока кодирования, можно определять по-разному в зависимости от по меньшей мере размера или формы блока кодирования.
[00120] В качестве альтернативы, тип или число потенциальных режимов асимметричного разбиения, пригодных для блока кодирования, можно определять на основании размера или формы блока кодирования. Число или тип потенциальных режимов асимметричного разбиения, пригодных для блока кодирования, можно определять по-разному в зависимости от по меньшей мере размера или формы блока кодирования. В одном примере, если блок кодирования имеет неквадратную форму, при которой ширина больше высоты, то по меньшей мере один из следующих: PART_2NxN, PART_2NxnU или PART_2NxnD не может быть потенциальным режимом разбиения блока кодирования. Если блок кодирования имеет неквадратную форму, при которой высота больше ширины, по меньшей мере один из следующих: PART_Nx2N, PART_nLx2N, PART_nRx2N не может быть потенциальным режимом разбиения блока кодирования.
[00121] Обычно размер блока предсказания может составлять от 4×4 до 64×64. При этом, в случае кодирования блока кодирования путем межкадрового предсказания, размер блока предсказания можно ограничить так, чтобы он не составлял 4×4, для уменьшения ширины полосы пропускания запоминающего устройства при выполнении компенсации движения.
[00122] Блок кодирования можно рекурсивно разбивать в соответствии с режимом разбиения. Иными словами, в соответствии с режимом разбиения, определенном индексом разбиения, блок кодирования можно разбить, а каждый сегмент, сгенерированный путем разбиения блока кодирования, можно задать в качестве блока кодирования.
[00123] Далее будет подробнее раскрыт способ разбиения единицы кодирования. В нижеследующем примере выражение «единица кодирования» может означать единицу дерева кодирования или единицу кодирования, входящую в состав единицы дерева кодирования. Кроме того, «сегмент», сгенерированный путем разбиения блока кодирования, может означать «блок кодирования». Раскрытый ниже способ разбиения можно применять, если блок кодирования разбивают на множество блоков предсказания или блоков преобразования.
[00124] Единицу кодирования можно разбить по меньшей мере одной линией. В этом случае угол линии, разбивающей единицу кодирования, может составлять значение в диапазоне от 0 до 360 градусов. Например, угол горизонтальной линии может составлять 0 градусов, угол вертикальной линии может составлять 90 градусов, угол диагональной линии в направлении вправо вверх может составлять 45 градусов, а угол диагональной линии в направлении влево вверх - 135 градусов.
[00125] Если единица кодирования разбита множеством линий, все линии множества могут проходить под одним и тем же углом. В качестве альтернативы, угол по меньшей мере одной из линий множества может быть отличен от углов других линий. В качестве альтернативы, для множества линий, разбивающих единицу дерева кодирования или единицу кодирования, может быть заранее задана разность углов (например, 90 градусов).
[00126] Информацию о линии, разбивающей единицу кодирования, можно определять по режиму разбиения. В качестве альтернативы, информацию о по меньшей мере одном из следующего: числе, направлении, угле или положении линии в блоке можно закодировать.
[00127] Для удобства раскрытия, в нижеследующем примере принято, что единица кодирования разбита на множество единиц кодирования по меньшей мере вертикальной линией или горизонтальной линией.
[00128] Число вертикальных линий или горизонтальных линий, разбивающих единицу кодирования, может составлять по меньшей мере одну или более. В одном примере единицу кодирования можно разбить на 2 сегмента посредством одной вертикальной линии или одной горизонтальной линии. В качестве альтернативы, единицу кодирования можно разбить на 3 сегмента посредством двух вертикальных линий или двух горизонтальных линий. В качестве альтернативы, единицу кодирования можно разбить на 4 сегмента, шириной и высотой, равными половине единицы кодирования, посредством одной вертикальной линии или одной горизонтальной линии.
[00129] В случае разбиения единицы кодирования на множество сегментов посредством по меньшей мере одной вертикальной линии или по меньшей мере одной горизонтальной линии, размер сегментов может быть единообразным. В качестве альтернативы, размер одного сегмента может быть отличен от размеров других сегментов, либо размеры всех сегментов могут быть отличны друг от друга. В одном примере, в случае разбиения единицы кодирования двумя горизонтальными линиями или двумя вертикальными линиями, единицу кодирования можно разбить на 3 сегмента. В этом случае соотношение ширины или высоты 3 сегментов может составлять n:2n:n, 2n:n:n или n:n:2n.
[00130] В нижеследующих примерах разбиение блока кодирования на 4 сегмента именуется «разбиение на основе квадродерева». При этом разбиение блока кодирования на 2 сегмента именуется «разбиение на основе двоичного дерева». Разбиение блока кодирования на 3 сегмента именуется «разбиение на основе троичного дерева».
[00131] На раскрытом ниже чертеже показано, что единица кодирования разбита одной вертикальной линией и/или одной горизонтальной линией, однако далее будет также раскрыто, что разбиение единицы кодирования на большее число сегментов посредством большего числа вертикальных линий и/или большего числа горизонтальных линий, чем показано, или разбиение единицы кодирования на меньшее число сегментов, чем показано, также входит в объем настоящего изобретения.
[00132] ФИГ. 4 изображает пример иерархического разбиения блока кодирования на основе древовидной структуры в качестве варианта применения настоящего изобретения.
[00133] Входной видеосигнал декодируют в заранее определенной единице блока, при этом базовая единица для декодирования входного видеосигнала именуется «блок кодирования». Блок кодирования может представлять собой единицу выполнения внутри-/межкадрового предсказания, преобразования и квантования. Кроме того, режим предсказания (например, режим внутрикадрового предсказания или режим межкадрового предсказания) можно определять в единице блока кодирования, при этом для блоков предсказания, входящих в блок кодирования, возможно применение одного и того же определенного режима предсказания. Блок кодирования может представлять собой квадратный или неквадратный блок произвольного размера в диапазоне от 8×8 до 64×64, либо квадратный или неквадратный блок размером 128×128, 256×256 или более.
[00134] В частности, иерархическое разбиение блока кодирования можно осуществлять по меньшей мере одним из следующих способов: разбиения на основе квадродерева, на основе двоичного дерева или на основе троичного дерева. Разбиение на основе квадродерева может означать способ, при котором блок кодирования 2Nx2N разбивают на четыре блока кодирования NxN. Разбиение на основе двоичного дерева может означать способ, при котором один блок кодирования разбивают на два блока кодирования. Разбиение на основе троичного дерева может означать способ, при котором один блок кодирования разбивают на три блока кодирования. Даже в случае разбиения на основе троичного или двоичного дерева, на большей глубине может существовать квадратный блок кодирования.
[00135] Сегменты, генерируемые путем разбиения на основе двоичного дерева, могут быть симметричными или асимметричными. Кроме того, блок кодирования, разбитый на основе двоичного дерева, может представлять собой квадратный блок или неквадратный блок (например, прямоугольник).
[00136] ФИГ. 5 - схема, иллюстрирующая форму разбиения блока кодирования на основе двоичного дерева. Форма разбиения блока кодирования на основе двоичного дерева может быть симметричного типа, например, 2NxN (единица кодирования, неквадратная в горизонтальном направлении) или Nx2N (единица кодирования, неквадратная в вертикальном направлении) и т.п., или асимметричного типа, например, nLx2N, nRx2N, 2NxnU или 2NxnD и т.п. Только один из типов - симметричный или асимметричный - может быть разрешен в качестве формы разбиения блока кодирования.
[00137] Форма разбиения на основе троичного дерева может включать в себя по меньшей мере одну из следующих форм: форму разбиение блока кодирования на 2 вертикальные линии или форму разбиения блока кодирования на 2 горизонтальные линии. 3 неквадратных сегмента можно сгенерировать путем разбиения на основе троичного дерева.
[00138] ФИГ. 6 иллюстрирует форму разбиения на основе троичного дерева.
[00139] Форма разбиения на основе троичного дерева может представлять собой форму разбиения блока кодирования 2-мя горизонтальными линиями или форму разбиения блока кодирования 2-мя вертикальными линиями. Соотношение ширины или высоты сегментов, сгенерированных путем разбиения блока кодирования, может составлять n:2n:n, 2n:n:n или n:n:2n.
[00140] Положение сегмента с наибольшей из 3 сегментов шириной или высотой может быть заранее задано в кодере и декодере. В качестве альтернативы, информацию, указывающую сегмент с наибольшей из 3 сегментов шириной или высотой, можно сообщать посредством битового потока.
[00141] Разрешенными формами разбиения для единицы кодирования могут быть только квадратная и неквадратная симметричная формы. В этом случае разбиение единицы кодирования на квадратные сегменты может соответствовать разбиению ЕК на основе квадродерева, а разбиение единицы кодирования на неквадратные сегменты симметричной формы может соответствовать разбиению на основе двоичного дерева. Разбиение единицы дерева кодирования на квадратные сегменты и неквадратные сегменты симметричной формы может соответствовать разбиению ЕК на основе квадродерева и двоичного дерева (КДДД, англ. QTBT).
[00142] Разбиение на основе двоичного дерева или троичного дерева можно осуществлять для блока кодирования, в котором не выполняют дальнейшее разбиение на основе квадродерева. Блок кодирования, сгенерированный путем разбиения на основе двоичного дерева или троичного дерева, можно разбить на более мелкие блоки кодирования. В этом случае может не быть разрешено применение по меньшей мере одного из следующего: разбиения на основе квадродерева, разбиения на основе троичного дерева или разбиения на основе двоичного дерева к блоку кодирования. В качестве альтернативы, для блока кодирования может не быть разрешено разбиение на основе двоичного дерева в заранее определенном направлении или разбиение на основе троичного дерева в заранее определенном направлении. В одном примере может не быть разрешено разбиение на основе квадродерева и разбиение на основе троичного дерева для блока кодирования, сгенерированного путем разбиения на основе двоичного дерева или троичного дерева. Для такого блока кодирования может быть разрешено только разбиение на основе двоичного дерева.
[00143] В качестве альтернативы, только наибольший из 3 блоков кодирования, сгенерированных путем разбиения на основе троичного дерева, можно разбить на более мелкие блоки кодирования. В качестве альтернативы, разбиение на основе двоичного дерева или разбиение на основе троичного дерева могут быть разрешены только для наибольшего из 3 блоков кодирования, сгенерированных путем разбиения на основе троичного дерева.
[00144] Форму разбиения сегмента более низкой глубины можно определять в зависимости от формы разбиения сегмента более высокой глубины. В одном примере, в случае разбиения верхнего сегмента и нижнего сегмента на основе двоичного дерева, для сегмента более низкой глубины может быть разрешено только разбиение на основе двоичного дерева в той же форме, что и разбиение сегмента более высокой глубины на основе двоичного дерева. Например, если форма разбиения сегмента более высокой глубины на основе двоичного дерева представляет собой 2NxN, для сегмента более низкой глубины также может быть задана форма разбиения на основе двоичного дерева 2NxN. В качестве альтернативы, если форма разбиения сегмента более высокой глубины на основе двоичного дерева представляет собой Nx2N, для сегмента более низкой глубины также может быть задана форма разбиения Nx2N.
[00145] В качестве альтернативы, может не быть разрешено разбиение на основе двоичного дерева в том же направлении разбиения, что и для сегмента более высокой глубины, или разбиения на основе троичного дерева в том же направлении разбиения, что и для сегмента более высокой глубины, для наибольшего из сегментов, сгенерированных путем разбиения на основе троичного дерева.
[00146] В качестве альтернативы, форму разбиения сегмента более низкой глубины можно определять с учетом формы разбиения сегмента более высокой глубины и формы разбиения соседнего сегмента более низкой глубины. А именно, если разбиение сегмента более высокой глубины осуществляют на основе двоичного дерева, форму разбиения сегмента более низкой глубины можно определять так, чтобы не был получен тот же результат, что и в результате разбиения сегмента более высокой глубины на основе квадродерева. В одном примере, если форма разбиения сегмента более высокой глубины представляет собой 2NxN, а форма разбиения соседнего сегмента более низкой глубины представляет собой Nx2N, нельзя задать форму разбиения текущего сегмента более низкой глубины в виде Nx2N. Это обусловлено тем, что, если форма разбиения текущего сегмента более низкой глубины представляет собой Nx2N, то будет получен тот же результат, что и в результате разбиения сегмента более высокой глубины на основе квадродерева формы NxN. Если форма разбиения сегмента более высокой глубины представляет собой Nx2N, а форма разбиения соседнего сегмента более низкой глубины - 2NxN, нельзя задать форму разбиения текущего сегмента более низкой глубины в виде 2NxN. Иными словами, если форма разбиения сегмента более высокой глубины на основе двоичного дерева отлична от формы разбиения соседнего сегмента более низкой глубины на основе двоичного дерева, можно задать форму разбиения текущего сегмента более низкой глубины на основе двоичного дерева такой же, как форма разбиения сегмента более высокой глубины на основе двоичного дерева.
[00147] В качестве альтернативы, можно задать форму разбиения сегмента более низкой глубины на основе двоичного дерева, отличную от формы разбиения сегмента более высокой глубины на основе двоичного дерева.
[00148] Допустимую форму разбиения на основе двоичного дерева можно определять в единице последовательности, секторе или единице кодирования. В одном примере допустимая форма разбиения на основе двоичного дерева для единицы дерева кодирования могут быть ограничены формами 2NxN или Nx2N. Допустимая форма разбиения может быть заранее задана в кодере или в декодере. В качестве альтернативы, информацию о допустимой форме разбиения или недопустимой форме разбиения можно закодировать и сообщить в битовом потоке.
[00149] ФИГ. 7 - схема, иллюстрирующая пример, в котором разрешена только конкретная форма разбиения на основе двоичного дерева.
[00150] Схема (а) на ФИГ. 7 представляет пример, в котором разрешена только форма Nx2N разбиения на основе двоичного дерева, а схема (b) на ФИГ. 7 - пример, в котором разрешена только форма 2NxN разбиения на основе двоичного дерева.
[00151] Различные формы разбиения могут быть представлены посредством информация о разбиении на основе квадродерева, информации о разбиении на основе двоичного дерева или информации о разбиении на основе троичного дерева. Информация о разбиении на основе квадродерева может включать в себя по меньшей мере одно из следующего: информацию, указывающую то, выполняют ли разбиение на основе квадродерева, или информацию о размере/глубине блока кодирования, в котором разрешено разбиение на основе квадродерева. Информация о разбиении на основе двоичного дерева может включать в себя по меньшей мере одно из следующего: информацию, указывающую то, выполняют ли разбиение на основе двоичного дерева, информацию о направлении разбиения на основе двоичного дерева - вертикальном или горизонтальном, информацию о размере/глубине блока кодирования, в котором разрешено разбиение на основе двоичного дерева, или информацию о размере/глубине блока кодирования, в котором разбиение на основе двоичного дерева не разрешено. Информация о разбиении на основе троичного дерева может включать в себя по меньшей мере одно из следующего: информацию, указывающую то, выполняют ли разбиение на основе троичного дерева, информацию о направлении разбиения на основе троичного дерева - вертикальном или горизонтальном, информацию о размере/глубине блока кодирования, в котором разбиение на основе троичного дерева разрешено, или информацию о размере/глубине блока кодирования, в котором разбиение на основе троичного дерева не разрешено. Информация о размере блока кодирования может включать в себя по меньшей мере одно минимальное или максимальное значение ширины, высоты, произведения ширины и высоты или соотношения ширины и высоты блока кодирования.
[00152] В одном примере, если ширина или высота блока кодирования меньше минимального размера, при котором разрешено разбиение на основе двоичного дерева, или если глубина разбиения блока кодирования больше разрешенной максимальной глубины разбиения на основе двоичного дерева, разбиение на основе двоичного дерева может не быть разрешено для этого блока кодирования.
[00153] В одном примере, если ширина или высота блока кодирования меньше минимального размера, при котором разрешено разбиение на основе троичного дерева, или если глубина разбиения блока кодирования больше разрешенной максимальной глубины разбиения на основе троичного дерева, разбиение на основе троичного дерева может не быть разрешено для этого блока кодирования.
[00154] Информацию об условии, при котором разрешено разбиение на основе двоичного дерева или троичного дерева, можно сообщать в битовом потоке. Информацию можно закодировать в единице последовательности, изображении или фрагменте. «Фрагмент» может означать по меньшей мере одно из следующего: сектор, группу плиток, плитку, визуальную конструкцию, блок кодирования, блок предсказания или блок преобразования.
[00155] В одном примере синтаксическую конструкцию max_mtt_depth_idx_minus1', представляющую разрешенную максимальную глубину разбиения на основе двоичного дерева/троичного дерева, можно кодировать/декодировать в битовом потоке. В данном случае, max_mtt_depth_idx_minus1+1 может указывать разрешенную максимальную глубину разбиения на основе двоичного дерева/троичного дерева.
[00156] В одном примере по меньшей мере одно из следующего: разрешенное число раз разбиения на основе двоичного дерева/троичного дерева, разрешенную максимальную глубину разбиения на основе двоичного дерева/троичного дерева или разрешенное число глубин разбиения на основе двоичного дерева/троичного дерева можно сообщать на уровне последовательности или сектора. Следовательно, по меньшей мере одно из следующего: разрешенное число раз разбиения на основе двоичного дерева/троичного дерева, разрешенная максимальная глубина разбиения на основе двоичного дерева/троичного дерева или разрешенное число глубин разбиения на основе двоичного дерева/троичного дерева могут быть разными для первого сектора и второго сектора. В одном примере, несмотря на то, что для первого сектора может быть разрешена только одна глубина разбиения на основе двоичного дерева/троичного дерева, для второго сектора могут быть разрешены две глубины разбиения на основе двоичного дерева/троичного дерева.
[00157] В примере на ФИГ. 8 показано, что разбиение на основе двоичного дерева выполняют для единицы кодирования с глубиной 2 и единицы кодирования с глубиной 3. Следовательно, по меньшей мере одно из следующего: информацию, представляющую число раз (2 раза) разбиения на основе двоичного дерева в единице дерева кодирования, информацию, представляющую максимальную глубину (глубина 3) сегмента, сгенерированного путем разбиения на основе двоичного дерева в единице дерева кодирования, или информацию, представляющую число глубин (2 глубины, глубина 2 и глубина 3) разбиения на основе двоичного дерева, применяемых в единице дерева кодирования, можно закодировать/декодировать в битовом потоке.
[00158] В качестве альтернативы, разрешенное число раз разбиения на основе двоичного дерева/троичного дерева, разрешенная глубина разбиения на основе двоичного дерева/троичного дерева или разрешенное число глубин разбиения на основе двоичного дерева/троичного дерева могут быть заранее заданы в кодере и декодере. В качестве альтернативы, разрешенное число раз разбиения на основе двоичного дерева/троичного дерева, разрешенную глубину разбиения на основе двоичного дерева/троичного дерева или разрешенное число глубин разбиения на основе двоичного дерева/троичного дерева можно определять на основе по меньшей мере одно из следующего: индекса последовательности или сектора или размера/формы единицы кодирования. В одном примере для первого сектора можно разрешить одну глубину разбиения на основе двоичного дерева/троичного дерева, а для второго сектора можно разрешить две глубины разбиения на основе двоичного дерева/троичного дерева.
[00159] В другом примере по меньшей мере одно из следующего: разрешенное число раз разбиения на основе двоичного дерева, разрешенную глубину разбиения на основе двоичного дерева или разрешенное число глубин разбиения на основе двоичного дерева можно задавать по-разному в соответствии с временным идентификатором уровня (TemporalID) сектора или изображения. В данном случае временной идентификатор уровня (TemporalID) служит для идентификации каждого из множества слоев в изображении, имеющем по меньшей мере одну или несколько возможностей масштабирования по виду, в пространстве, во времени или по качеству.
[00160] На ФИГ. 4 показано, что первый блок 300 кодирования с глубиной k разбиения (глубиной дробления) можно разбить на несколько вторых блоков кодирования на основе квадродерева. Например, вторые блоки 310-340 кодирования могут представлять собой квадратный блок с шириной и высотой, составляющими половину ширины и высоты первого блока кодирования, при этом глубина разбиения второго блока кодирования может возрасти до k+1.
[00161] Второй блок 310 кодирования с глубиной k+1 разбиения можно разбить на несколько третьих блоков кодирования с глубиной k+2 разбиения. Разбиение второго блока 310 кодирования можно выполнить путем выборочного применения квадродерева или двоичного дерева в зависимости от способа разбиения. В этом случае способ разбиения можно определять на основе по меньшей мере одного из следующего: информации, указывающей разбиение на основе квадродерева, или информации, указывающей разбиение на основе двоичного дерева.
[00162] Если второй блок 310 кодирования разбивают на основе квадродерева, второй блок 310 кодирования можно разбить на четыре третьих блока 310а кодирования с шириной и высотой, составляющими половину ширины и высоты второго блока кодирования, при этом глубина разбиения третьего блока 310а кодирования может возрасти до k+2. При этом, если второй блок 310 кодирования разбивают на основе двоичного дерева, второй блок 310 кодирования можно разбить на два третьих блока кодирования. В этом случае каждый из двух третьих блоков кодирования может представлять собой неквадратный блок с шириной или высотой, составляющей половину ширины или высоты, соответственно, второго блока кодирования, при этом глубина разбиения может возрасти до k+2. Второй блок кодирования можно охарактеризовать как неквадратный блок в горизонтальном или в вертикальном направлении в соответствии с направлением разбиения, при этом направление разбиения можно определять на основе информации о том, как выполняют разбиение на основе двоичного дерева: в вертикальном направлении или в горизонтальном направлении.
[00163] Второй блок 310 кодирования можно принять в качестве листового блока кодирования, дальнейшее разбиение которого на основе квадродерева или двоичного дерева не выполняют, и в этом случае соответствующий блок кодирования может служить в качестве блока предсказания или блока преобразования.
[00164] Как и в случае разбиения второго блока 310 кодирования, третий блок 310а кодирования можно принять в качестве листового блока кодирования, либо разбить его далее на основе квадродерева или двоичного дерева.
[00165] При этом третий блок 310b кодирования, разбитый на основе двоичного дерева, можно разбить далее на блоки 310b-2 кодирования в вертикальном направлении или блоки 310b-3 кодирования в горизонтальном направлении на основе двоичного дерева, при этом глубина разбиения соответствующего блока кодирования может возрасти до k+3. В качестве альтернативы, третий блок 310b кодирования можно принять в качестве листового блока 310b-1 кодирования, дальнейшее разбиение которого на основе двоичного дерева не выполняют, и в этом случае соответствующий блок 310b-1 кодирования может служить в качестве блока предсказания или блока преобразования. При этом раскрытый выше процесс разбиения можно выполнять ограниченно на основе по меньшей мере одного из следующего: информации о размере/глубине блока кодирования, при которых разрешено разбиение на основе квадродерева, информации о размере/глубине блока кодирования, при которых разрешено разбиение на основе двоичного дерева или информации о размере/глубине блока кодирования, при которых разбиение на основе двоичного дерева не разрешено.
[00166] Число потенциальных размеров блока кодирования может быть ограничено заранее определенным числом, либо размер блока кодирования в заранее определенной единице может иметь фиксированное значение. В одном примере размер блока кодирования в последовательности или изображении может быть ограничен любым из следующих: 256×256, 128×128 или 32×32. Информацию, представляющую размер блока кодирования в последовательности или изображении, можно сообщать в заголовке последовательности или заголовке изображения.
[00167] Результатом разбиения на основе квадродерева и двоичного дерева может быть единица кодирования квадратной или прямоугольной формы произвольного размера.
[00168] На ФИГ. 4 показано, что первый блок 300 кодирования с глубиной k разбиения (глубиной дробления) можно разбить на несколько вторых блоков кодирования на основе квадродерева. Например, вторые блоки 310-340 кодирования могут представлять собой квадратный блок с шириной и высотой, составляющими половину ширины и высоты первого блока кодирования, при этом глубина разбиения второго блока кодирования может возрасти до k+1.
[00169] Второй блок 310 кодирования с глубиной k+1 разбиения можно разбить на несколько третьих блоков кодирования с глубиной k+2 разбиения. Разбиение второго блока 310 кодирования можно выполнить путем выборочного применения квадродерева или двоичного дерева в зависимости от способа разбиения. В этом случае способ разбиения можно определять на основе по меньшей мере одного из следующего: информации, указывающей разбиение на основе квадродерева, или информации, указывающей разбиение на основе двоичного дерева.
[00170] Если второй блок 310 кодирования разбивают на основе квадродерева, второй блок 310 кодирования можно разбить на четыре третьих блоков 310а кодирования с шириной и высотой, составляющими половину ширины и высоты второго блока кодирования, при этом глубина разбиения третьего блока 310а кодирования может возрасти до k+2. При этом, в случае разбиения второго блока 310 кодирования на основе двоичного дерева, второй блок 310 кодирования можно разбить на два третьих блока кодирования. В этом случае каждый их двух третьих блоков кодирования может представлять собой неквадратный блок с шириной или высотой, составляющей половину ширины или высоты, соответственно, второго блока кодирования, при этом глубина разбиения может возрасти до k+2. Второй блок кодирования можно охарактеризовать как неквадратный блок в горизонтальном или вертикальном направлении в соответствии с направлением разбиения, при этом направление разбиения можно определять на основе информации о том, как выполняют разбиение на основе двоичного дерева: в вертикальном направлении или в горизонтальном направлении.
[00171] Второй блок 310 кодирования можно принять в качестве листового блока кодирования, дальнейшее разбиение которого на основе квадродерева или двоичного дерева не выполняют, и в этом случае соответствующий блок кодирования может служить в качестве блока предсказания или блока преобразования.
[00172] Как и в случае разбиения второго блока 310 кодирования, третий блок 310а кодирования можно принять в качестве листового блока кодирования, либо разбить его далее на основе квадродерева или двоичного дерева.
[00173] При этом третий блок 310b кодирования, разбитый на основе двоичного дерева, можно разбить далее на блоки 310b-2 кодирования в вертикальном направлении или блоки 310b-3 кодирования в горизонтальном направлении на основе двоичного дерева, при этом глубина разбиения соответствующего блока кодирования может возрасти до k+3. В качестве альтернативы, третий блок 310b кодирования можно принять в качестве листового блока 310b-1 кодирования, дальнейшее разбиение которого на основе двоичного дерева не выполняют, и в этом случае соответствующий блок 310b-1 кодирования может служить в качестве блока предсказания или блока преобразования. При этом раскрытый выше процесс разбиения можно выполнять ограниченно на основе по меньшей мере одно из следующего: информации о размере/глубине блока кодирования, при которых разрешено разбиение на основе квадродерева, информации о размере/глубине блока кодирования, при которых разрешено разбиение на основе двоичного дерева, или информации о размере/глубине блока кодирования, при которых разбиение на основе двоичного дерева не разрешено.
[00174] Число потенциальных размеров блока кодирования может быть ограничено заранее определенным числом, либо размер блока кодирования в заранее определенной единице может иметь фиксированное значение. В одном примере размер блока кодирования в последовательности или изображении может быть ограничен любым из следующих: 256×256, 128×128 или 32×32. Информацию, представляющую размер блока кодирования в последовательности или изображении, можно сообщать в заголовке последовательности или заголовке изображения.
[00175] Результатом разбиения на основе квадродерева и двоичного дерева может быть единица кодирования квадратной или прямоугольной формы произвольного размера.
[00176] Применение пропуска преобразования для единицы кодирования, сгенерированной путем разбиения на основе двоичного дерева или разбиения на основе троичного дерева, может не быть разрешено. В качестве альтернативы, можно задать применение пропуска преобразования к по меньшей мере одному из следующего: вертикальное направление или горизонтальное направление в неквадратной единице кодирования. В одном примере, в случае применения пропуска преобразования к горизонтальному направлению, в горизонтальном направлении выполняют только масштабирование без преобразования / обратного преобразования, а преобразование / обратное преобразование способом ДКП или ДСП выполняют в вертикальном направлении. Если пропуск преобразования применяют к вертикальному направлению, в вертикальном направлении выполняют только масштабирование без преобразования / обратного преобразования, а преобразование / обратное преобразование способом ДКП или ДСП выполняют в горизонтальном направлении.
[00177] Информацию о пропуске обратного преобразования для горизонтального направления или информацию о пропуске обратного преобразования для вертикального направления можно сообщать в битовом потоке. В одном примере информация о пропуске обратного преобразования для горизонтального направления может представлять собой 1-битовый флаг 'hor_transform_skip_flag', а информация о пропуске обратного преобразования для вертикального направления может представлять собой 1-битовый флаг 'ver_transform_skip_flag'.
[00178] Кодер может определять то, нужно ли кодировать 'hor_transform_skip_flag' или 'ver_transform_skip_flag', по размеру и/или форме текущего блока. В одном примере, если форма текущего блока представляет собой Nx2N, можно закодировать hor_transform_skip_flag, а кодирование ver_transform_skip_flag можно опустить. Если форма текущего блока представляет собой 2NxN, можно закодировать ver_transform_skip_flag, а hor_transform_skip_flag можно опустить.
[00179] В качестве альтернативы, по размеру и/или форме текущего блока можно определять, выполняют ли пропуск преобразования для горизонтального направления или пропуск преобразования для вертикального направления. В одном примере, если форма текущего блока представляет собой Nx2N, возможно применение пропуска преобразования к горизонтальному направлению и выполнение преобразования / обратного преобразования для вертикального направления. Если форма текущего блока представляет собой 2NxN, возможно применение пропуска преобразования к вертикальному направлению и выполнение преобразования / обратного преобразования для горизонтального направления. Преобразование / обратное преобразование можно выполнять на основе по меньшей мере одного из следующих способов: ДКП или ДСП.
[00180] Сгенерированный в результате разбиения на основе квадродерева, двоичного дерева или троичного дерева блок кодирования, дальнейшее разбиение которого не выполняют, может служить в качестве блока предсказания или блока преобразования. Иными словами, блок кодирования, сгенерированный путем разбиения на основе квадродерева или разбиения на основе двоичного дерева, может служить в качестве блока предсказания или блока преобразования. В одном примере предсказанное изображение можно сгенерировать в единице блока кодирования, при этом остаточный сигнал - разность между исходным изображением и предсказанным изображением - можно преобразовать в единице блока кодирования. Чтобы сгенерировать предсказанное изображение в единице блока кодирования, можно определить информацию о движении на основе блока кодирования или определить режим внутрикадрового предсказания на основе блока кодирования. Следовательно, для кодирования блока кодирования можно применить по меньшей мере одно из следующего: режим пропуска, внутрикадровое предсказание или межкадровое предсказание.
[00181] В качестве альтернативы, для множества блоков кодирования, сгенерированных путем разбиения блока кодирования, можно задать совместное применение по меньшей мере одного из следующего: информации о движении, кандидата на слияние, опорного отсчета, ряда опорных отсчетов или режима внутрикадрового предсказания. В одном примере, в случае разбиения блока кодирования на основе троичного дерева, для сегментов, сгенерированных путем разбиения блока кодирования, возможно совместное применение по меньшей мере одного из следующего: информации о движении, кандидата на слияние, опорного отсчета, ряда опорных отсчетов или режима внутрикадрового предсказания в соответствии с размером или формой блока кодирования. В качестве альтернативы, можно задать совместное применение указанной информации только для части множества блоков кодирования, а для остальных блоков кодирования можно задать отсутствие совместного применения указанной информации.
[00182] В другом примере возможно применение блока предсказания или блока преобразования, меньшего, чем блок кодирования, путем разбиения блока кодирования.
[00183] Далее будет подробно раскрыт способ выполнения внутрикадрового предсказания для блока кодирования, или блока предсказания, или блока преобразования, сгенерированного путем разбиения блока кодирования.
[00184] ФИГ. 9 - схема, иллюстрирующая типы заранее заданных режимов внутрикадрового предсказания для устройства кодирования/декодирования изображения по одному из вариантов осуществления настоящего изобретения.
[00185] Устройство кодирования/декодирования видеоинформации может выполнять внутрикадровое предсказание с применением одного из заранее заданных режимов внутрикадрового предсказания. В число заранее заданных режимов внутрикадрового предсказания для внутрикадрового предсказания могут входить режимы ненаправленного предсказания (например, планарный режим, режим прямого кодирования) и 33 режима направленного предсказания.
[00186] В качестве альтернативы, можно задать более 33 режимов направленного предсказания для повышения точности внутрикадрового предсказания. То есть можно задать M расширенных режимов направленного предсказания путем дополнительного подразделения угла режима направленного предсказания (М>33). Режим направленного предсказания, отличный от существующих 33 режимов направленного предсказания, можно получить на основе по меньшей мере одного из существующих 33 режимов направленного предсказания.
[00187] Таким образом, можно задать режимы внутрикадрового предсказания числом более 35 режимов внутрикадрового предсказания на ФИГ. 9. Если число пригодных режимов внутрикадрового предсказания больше 35 на ФИГ. 9, такой режим может именоваться «расширенный внутрикадровый режим».
[00188] ФИГ. 10 - схема, иллюстрирующая пригодные режимы внутрикадрового предсказания в рамках расширенного внутрикадрового режима. В рамках расширенного внутрикадрового режима, в составе пригодных режимов внутрикадрового предсказания можно настроить 2 режима ненаправленного предсказания и 65 расширенных режимов направленного предсказания.
[00189] Число пригодных режимов внутрикадрового предсказания можно задать равным для яркостной составляющей и цветностной составляющей. В качестве альтернативы, число пригодных режимов внутрикадрового предсказания для каждой цветовой компоненты может быть разным. Например, для яркостной составляющей можно выбрать и применить любой из 67 режимов внутрикадрового предсказания, а для цветностной составляющей можно выбрать и применить любой из 35 режимов внутрикадрового предсказания.
[00190] В качестве альтернативы, число пригодных режимов внутрикадрового предсказания может быть разным в зависимости от формата цветности. Например, в формате 4:2:0 в качестве пригодных можно принять 67 режимов внутрикадрового предсказания для яркостной составляющей и 35 режимов внутрикадрового предсказания для цветностной составляющей. В формате 4:4:4, как для яркостной составляющей, так и для цветностной составляющей в качестве пригодных можно принять 67 режимов внутрикадрового предсказания.
[00191] В качестве альтернативы, число пригодных режимов внутрикадрового предсказания может быть разным в зависимости от размера и/или формы блока. В частности, можно определить, что число пригодных режимов внутрикадрового предсказания составляет 35 или 67 в зависимости от размера и/или формы ЕП, ЕПр или ЕК. Например, если размер ЕК, ЕПр или ЕП меньше, чем 64×64, или если ЕК, ЕПр или ЕП представляет собой асимметричный сегмент, число пригодных режимов внутрикадрового предсказания может составлять 35. При этом, если размер ЕК, ЕПр или ЕП составляет не меньше 64×64 или если ЕК, ЕПр или ЕП представляет собой симметричный сегмент, можно задать число пригодных режимов внутрикадрового предсказания равным 67.
[00192] В качестве альтернативы, для сегмента Intra_2Nx2N число пригодных режимов направленного внутрикадрового предсказания можно задать равным 65. При этом, для сегментов Intra_NxN число пригодных режимов направленного внутрикадрового предсказания можно задать равным 33.
[00193] Применение или неприменение расширенного внутрикадрового режима можно определять на основе по меньшей мере одного из следующего: размера, формы или цветовой компоненты блока. В этом случае, информацию, указывающую размер или форму блока, к которому применяют расширенный внутрикадровый режим, можно сообщать посредством битового потока. Информацию можно сообщать на уровня последовательности, изображения или сектора. Таким образом, размер блока, к которому применяют расширенный внутрикадровый режим, может быть разным для каждой последовательности, изображения или сектора. Например, в первом секторе можно задать применение расширенного внутрикадрового режима к блоку размером более 64×64 (например, ЕК, ЕПр или ЕП), а во втором секторе можно задать применение расширенного внутрикадрового режима к блоку размером более 32×32.
[00194] Информацию, указывающую размер блока, к которому применяют расширенный внутрикадровый режим, можно получить путем вычитания заранее определенного значения после взятия логарифма из размера опорного блока. Например, 'log2_extended_intra_mode_size_minus4', полученное путем вычитания целого числа 4 из значения, полученного путем взятия логарифма, из размера опорного блока, можно закодировать. Например, значение log2_extended_intra_mode_size_minus4, составляющее 0, указывает на то, что расширенный внутрикадровый режим применяют к блоку размером не меньше 16×16 или к блоку размером больше 16×16, а значение log2_extended_intra_mode_size_minus4, составляющее 1, может указывать на то, что расширенный внутрикадровый режим применяют к блоку размером не меньше 32×32 или блоку размером больше 32×32.
[00195] Как раскрыто выше, число пригодных режимов внутрикадрового предсказания можно определять на основе по меньшей мере одного из следующего: цветностной составляющей, формата цветности, размера или формы блока. Внутрикадровое предсказание для текущего блока можно выполнять на основе по меньшей мере одного из пригодных режимов внутрикадрового предсказания.
[00196] Кроме того, число потенциальных режимов внутрикадрового предсказания (например, число наиболее вероятных режимов (НВР, англ. Most Probable Mode (МРМ)) для определения режима внутрикадрового предсказания текущего блока, подлежащего кодированию/декодированию, также можно определять на основании меньшей мере одного из следующего: цветовой компоненты, формата цветности, размера или формы блока. Кроме того, также возможно применение числа режимов внутрикадрового предсказания, большего, чем на ФИГ. 8. Например, путем дополнительного подразделения режимов направленного предсказания на ФИГ. 8, также возможно применение 129 режимов направленного предсказания и 2 режимов ненаправленного предсказания. Решение о применении числа режимов внутрикадрового предсказания, большего, чем на ФИГ. 8, можно принимать с учетом по меньшей мере одного из следующего: цветовой компоненты, компоненты формата цветности, размер или формы блока, как в раскрытом выше примере.
[00197]
[00198] Если угол режима горизонтального предсказания составляет 0 градусов, а угол режима вертикального предсказания составляет 90 градусов, угол режимов направленного предсказания на ФИГ. 9 и 10 составляет от -45 градусов до 135 градусов. То есть, в целом, можно выполнять внутрикадровое предсказание в режиме направленного внутрикадрового предсказания в указанном диапазоне углов. При этом, если угол, образованный объектом между текущим блоком и соседним блоком, находится за пределом диапазона углов, возможно ухудшение точности внутрикадрового предсказания. Таким образом, если текущий блок квадратный, внутрикадровое предсказание выполняют в режиме направленного предсказания от -45 градусов до 135 градусов, при этом, если текущий блок неквадратный, можно разрешить выполнение внутрикадрового предсказания в режиме внутрикадрового предсказания, не входящего в указанный диапазон углов. Режим направленного предсказания за пределами диапазона от -45 градусов до 135 градусов может именоваться «широкоугольный режим внутрикадрового предсказания». Кроме того, внутрикадровое предсказание в широкоугольном режиме внутрикадрового предсказания может именоваться «широкоугольное внутрикадровое предсказание».
[00199] ФИГ. 11 - схема, иллюстрирующая режимы внутрикадрового предсказания, включающие в себя широкоугольные режимы внутрикадрового предсказания. В примере на ФИГ. 11 возможно задание широкоугольных режимов внутрикадрового предсказания в диапазоне от -45 градусов до -90 градусов (индексы режима внутрикадрового предсказания с -1 до -14) или широкоугольных режимов внутрикадрового предсказания в диапазоне от 135 градусов до 180 градусов (индексы режима внутрикадрового предсказания с 67 по 80).
[00200] Возможно задание числа широкоугольных режимов внутрикадрового предсказания, меньшего, чем показано, или числа широкоугольных режимов внутрикадрового предсказания, большего, чем показано. Например, возможно задание только широкоугольных режимов внутрикадрового предсказания от -45 градусов до -67 градусов и широкоугольных режимов внутрикадрового предсказания от 135 градусов до 157 градусов.
[00201] В качестве альтернативы, диапазон пригодных широкоугольных режимов внутрикадрового предсказания можно определять на основе размера или формы текущего блока. Например, если текущий блок имеет форму Nx2N или 2NxN, возможно применение широкоугольных режимов внутрикадрового предсказания от -45 градусов до -55 градусов или широкоугольных режимов внутрикадрового предсказания от 135 градусов до 145 градусов. При этом, если текущий блок имеет форму NxkN или kNxN (в данном случае, k - это целое число не меньше 4), возможно применение широкоугольных режимов внутрикадрового предсказания от -45 градусов до -67 градусов или широкоугольных режимов внутрикадрового предсказания от 135 градусов до 157 градусов.
[00202] Широкоугольные режимы внутрикадрового предсказания с углом меньше -45 градусов могут быть пригодны, если текущий блок неквадратный, с высотой меньше ширины, при этом широкоугольные режимы внутрикадрового предсказания с углом больше 135 градусов могут быть пригодны, если текущий блок неквадратный, с шириной больше высоты.
[00203] ФИГ. 12 - схема, иллюстрирующая один из аспектов применения широкоугольного режима внутрикадрового предсказания в зависимости от формы текущего блока.
[00204] В примере на ФИГ. 12 (а), если текущий блок имеет неквадратную форму с высотой больше ширины, можно выполнять внутрикадровое предсказание в широкоугольном режиме внутрикадрового предсказания с углом больше 135 градусов.
[00205] При этом, в примере на ФИГ. 12 (b), если текущий блок имеет неквадратную форму с шириной больше высоты, можно выполнять внутрикадровое предсказание в широкоугольном режиме внутрикадрового предсказания с углом меньше -45 градусов.
[00206] Решение о разрешении широкоугольного внутрикадрового предсказания можно принимать на основе заранее определенной информации кодирования. Информация кодирования может включать в себя по меньшей мере одно из следующего: размер, форму или тип дробления текущего блока. Например, широкоугольное внутрикадровое предсказание можно разрешить, если размер текущего блока больше порогового значения или если размер текущего блока меньше порогового значения. Пороговое значение может представлять собой максимальный размер или минимальный размер, для которого разрешено широкоугольное внутрикадровое предсказание. Пороговое значение может быть заранее задано кодером и декодером. В качестве альтернативы, информацию для определения порогового значения можно сообщать посредством битового потока.
[00207] В другом примере широкоугольное внутрикадровое предсказание можно разрешить, если тип дробления вышестоящего узла представляет собой первый тип, и можно не разрешить, если тип дробления представляет собой второй тип. Первый тип включает в себя по меньшей мере одно из следующего: разбиение на основе квадродерева, разбиение на основе двоичного дерева или разбиение на основе троичного дерева, а второй тип представляет собой тип разбиения, не являющийся первым типом.
[00208] В другом примере широкоугольное внутрикадровое предсказание можно разрешить только в том случае, если соотношение высоты и ширины текущего блока не меньше первого порога или не больше второго порога. Первое пороговое значение и второе пороговое значение могут представлять собой максимальный размер или минимальный размер, при которых допустимо широкоугольное внутрикадровое предсказание. Первое пороговое значение и второе пороговое значение могут быть заранее заданы кодером и декодером. В качестве альтернативы, информацию для определения первого порогового значения и второго порогового значения можно сообщать посредством битового потока.
[00209] В другом примере, информацию, указывающую то, разрешено ли широкоугольное внутрикадровое предсказание, можно сообщать посредством битового потока.
[00210] Далее, на примерах описанных ниже чертежей будут раскрыты способ определения режима внутрикадрового предсказания текущего блока, подлежащего кодированию/декодированию и способ выполнения внутрикадрового предсказания с применением определенного режима внутрикадрового предсказания.
[00211]
[00212] Далее, на примерах описанных ниже чертежей будут раскрыты способ определения режима внутрикадрового предсказания текущего блока, подлежащего кодированию/декодированию, и способ выполнения внутрикадрового предсказания с применением определенного режима внутрикадрового предсказания.
[00213] ФИГ. 13 - блок-схема, вкратце иллюстрирующая способ внутрикадрового предсказания по одному из вариантов осуществления настоящего изобретения.
[00214] Сначала можно определить индекс ряда опорных отсчетов текущего блока (S1110). По индексу ряда опорных отсчетов можно определить ряд опорных отсчетов для выполнения внутрикадрового предсказания текущего блока. Для выполнения внутрикадрового предсказания текущего блока можно применить по меньшей мере один ряд опорных отсчетов, указанный индексом ряда опорных отсчетов, из множества рядов опорных отсчетов.
[00215] ФИГ. 14 - схема, иллюстрирующая потенциальные ряды опорных отсчетов.
[00216] N-ный ряд опорных отсчетов может включать в себя верхний опорный отсчет с координатой у, меньше на N, чем у самой верхней строки текущего блока, и левый опорный отсчет с координатой х, меньше на N, чем у крайнего левого столбца текущего блока. В данном случае N-ный ряд опорных отсчетов обозначает ряд опорных отсчетов с индексом N-1 в примере на ФИГ. 14. N-ный ряд опорных отсчетов может включать в себя верхние опорные отсчеты с P(-N, -N) по P(2W+N-1, -N) и левые опорные отсчеты с P(-N, -N) по Р(-N, 2H+N-1). Например, ряд 1 опорных отсчетов может включать в себя верхние опорные отсчеты с Р(-2, -2) по P(2W+1, -2) и левые опорные отсчеты с Р(-2, -2) по Р(-2, 2Н+1).
[00217] Число рядов опорных отсчетов с возможностью применения в качестве потенциальных рядов опорных отсчетов может составлять 1, 2, 3, 4 или более. В примере на ФИГ. 14, ряд 0 опорных отсчетов, ряд 1 опорных отсчетов и ряд 3 опорных отсчетов можно применять в качестве потенциальных рядов опорных отсчетов.
[00218] Число рядов опорных отсчетов или местоположение рядов опорных отсчетов с возможностью применения в качестве потенциальных рядов опорных отсчетов можно определять на основе по меньшей мере одного из следующего: размера, формы, режима внутрикадрового предсказания или местоположения текущего блока. Например, если текущий блок примыкает к границе ЕДК или границе плитки, число потенциальных рядов опорных отсчетов может составлять 1 (например, ряд 0 опорных отсчетов). Если текущий блок не примыкает к границе ЕДК или границе плитки, число потенциальных рядов опорных отсчетов может составлять 3 (например, ряд 0 опорных отсчетов, ряд 1 опорных отсчетов, ряд 3 опорных отсчетов). Например, если режим внутрикадрового предсказания текущего блока находится в пределах первого диапазона, ряд 0 опорных отсчетов, ряд 1 опорных отсчетов и ряд 3 опорных отсчетов можно применять в качестве потенциальных рядов опорных отсчетов. Если режим внутрикадрового предсказания текущего блока находится в пределах второго диапазона, ряд 0 опорных отсчетов, ряд 2 опорных отсчетов и ряд 2 опорных отсчетов можно применять в качестве потенциальных рядов опорных отсчетов.
[00219] Информацию, указывающую по меньшей мере один из потенциальных рядов опорных отсчетов можно сообщать посредством битового потока. Если число пригодных потенциальных рядов опорных отсчетов составляет 1, кодирование информации об индексе можно не выполнять. Если информация об индексе не закодирована, можно считать, что выбран ряд 0 опорных отсчетов, примыкающих к текущему блоку.
[00220] В качестве альтернативы, можно выбрать по меньшей мере один из потенциальных рядов опорных отсчетов на основе по меньшей мере одного из следующего: размера, формы, местоположения или режима внутрикадрового предсказания текущего блока. Например, если по меньшей мере одно из следующего: ширина, высота и размер текущего блока меньше заранее заданного значения, можно выбрать ряд 0 опорных отсчетов. Например, если текущий блок расположен на верхней границе ЕДК или плитки, можно выбрать ряд 0 опорных отсчетов.
[00221] В качестве альтернативы, ряд опорных отсчетов можно выбрать в зависимости от того, поделен ли текущий блок на субблоки. Например, если текущий блок поделен на субблоки, можно выбрать ряд 0 опорных отсчетов.
[00222] В качестве альтернативы, если текущий блок поделен на множество субблоков, ряд опорных отсчетов можно определять для каждого субблока. В качестве альтернативы, все субблоки можно задать так, чтобы они имели один и тот же индекс ряда опорных отсчетов.
[00223] Если текущий блок поделен на множество субблоков, внутрикадровое предсказание можно выполнять в единицах субблоков.
[00224] Для текущего блока можно выбрать несколько рядов опорных отсчетов. Решение о выполнении внутрикадрового предсказания с применением множества рядов опорных отсчетов можно принимать адаптивно в зависимости от размера, формы или режима внутрикадрового предсказания текущего блока. Например, если режимом внутрикадрового предсказания текущего блока является режим ненаправленного предсказания или заранее заданный режим направленного внутрикадрового предсказания, можно не применять несколько рядов опорных отсчетов. Заранее заданный режим направленного внутрикадрового предсказания может представлять собой по меньшей мере один из следующих: режим вертикального внутрикадрового предсказания, режим горизонтального внутрикадрового предсказания и режим диагонального внутрикадрового предсказания.
[00225] Множество рядов опорных отсчетов может включать в себя ряд опорных отсчетов, выбранный по информации об индексе, и ряд опорных отсчетов, полученный путем прибавления или вычитания заранее заданного значения к индексу ряда опорных отсчетов или из него. В данном случае заранее заданное значение может составлять 1 или 2.
[00226] В качестве альтернативы, множество информаций об индексе можно сообщать посредством битового потока. Каждая из множества информаций об индексе указывает отличный от других ряд опорных отсчетов.
[00227] Предсказанный отсчет можно получить на основе по меньшей мере одного из следующего: операции взвешенной суммы, операции усреднения, операции минимального значения или операции максимального значения множества опорных отсчетов. В данном случае индекс ряда опорных отсчетов, включающего в себя по меньшей мере один из множества опорных отсчетов, может быть отличен от индекса ряда опорных отсчетов, включающего в себя остальные отсчеты.
[00228] Далее можно определить режим внутрикадрового предсказания текущего блока (S1220).
[00229] Для определения режима внутрикадрового предсказания текущего блока можно определить потенциальный наиболее вероятный режим (НВР) на основе режима внутрикадрового предсказания соседнего блока, примыкающего к текущему блоку. В данном случае соседний блок может представлять собой по меньшей мере один из блоков, примыкающих к верху, низу, левой стороне, правой стороне или углу текущего блока. Например, потенциальный НВР можно определить на основе режима внутрикадрового предсказания верхнего соседнего блока и режима внутрикадрового предсказания левого соседнего блока. Верхний соседний блок может включать в себя верхний соседний отсчет в заранее заданном местоположении, у которого значение координаты у меньше, чем у самой верхней строки текущего блока. Заранее заданным положением может быть (0, -1), (W/2, -1), (W-1, -1) или (W, -1). (0, 0) обозначает положение верхнего левого отсчета, входящего в текущий блок, a W обозначает ширину текущего блока. Левый соседний блок может включать в себя левый соседний отсчет в заранее заданном положении, у которого значение координаты x меньше, чем у крайнего левого столбца текущего блока. Заранее заданным положением может быть (-1, 0), (-1, Н/2), (-1, Н-1) или (-1, H). H представляет высоту текущего блока. В случае кодирования соседнего блока в режиме межкадрового предсказания, в число потенциальных НВР можно включить НВР с применением режима внутрикадрового предсказания соседнего блока или режим внутрикадрового предсказания совмещенного блока текущего блока.
[00230] Число потенциальных НВР (наиболее вероятных режимов), входящих в список потенциальных режимов, может составлять 3, 4, 5, 6 или более. Максимальное число потенциальных НВР может представлять собой фиксированное значение, заранее определенное в кодере/декодере изображений. В качестве альтернативы, максимальное число потенциальных НВР можно определять по атрибуту текущего блока. Атрибут может представлять собой по меньшей мере одно из следующего: местоположение/размер/форму текущего блока, число/тип режимов внутрикадрового предсказания с возможностью применения для текущего блока, цветовой тип текущего блока (яркостной/цветностный), формат цветности текущего блока или то, поделен ли текущий блок на множество субблоков. В качестве альтернативы, информацию, указывающую максимальное число потенциальные НВР, можно сообщать посредством битового потока. Информацию, указывающую максимальное число, можно сообщать на уровне по меньшей мере одного из следующего: последовательности, изображения, сектора или блока.
[00231] В качестве потенциального НВР можно задать режим внутрикадрового предсказания соседнего блока, режим направленного внутрикадрового предсказания, схожий с режимом соседнего блока, или режим по умолчанию. Режим направленного внутрикадрового предсказания, схожий с режимом соседнего блока, можно определить путем прибавления или вычитания заранее заданного значения к значению режима внутрикадрового предсказания соседнего блока или из него. Заранее заданное значение может представлять собой целое число 1, 2 или более. Заранее заданное значение можно определять адаптивно согласно числу пригодных режимов внутрикадрового предсказания. Например, если число пригодных режимов внутрикадрового предсказания составляет 35, заранее заданное значение может составлять 1, а если число пригодных режимов внутрикадрового предсказания составляет 67, заранее заданное значение может составлять 2. Более того, если число пригодных режимов внутрикадрового предсказания составляет 131, заранее заданное значение может составлять 4. Если режимом внутрикадрового предсказания первого соседнего блока и режимом внутрикадрового предсказания второго соседнего блока являются режимы направленного предсказания, схожий режим направленного внутрикадрового предсказания можно определить на основе максимального значения режима внутрикадрового предсказания первого соседнего блока и режима внутрикадрового предсказания второго соседнего блока. В число режимов по умолчанию могут входить по меньшей мере один из следующих: режим прямого кодирования, планарный режим, режим горизонтального предсказания, режим вертикального предсказания, режим предсказания по диагонали вверх вправо, а режим предсказания по диагонали вниз влево или режим предсказания по диагонали вверх влево. Если число потенциальных НВР, входящих в список потенциальных НВР, меньше максимального числа, в список потенциальных НВР можно включить режим по умолчанию, отличный от потенциальных НВР, ранее включенных в список потенциальных НВР. Число, тип или приоритет режимов по умолчанию могут быть разными в зависимости от по меньшей мере одного из следующего: индекса ряда опорных отсчетов текущего блока, того, применяют ли к текущему блоку методику внутрикадрового предсказания в единицах субблоков, или типа разбиения текущего блока.
[00232] Индекс потенциального НВР можно определять согласно заранее заданному порядку. Например, если режим внутрикадрового предсказания левого соседнего блока и режим внутрикадрового предсказания верхнего соседнего блока отличны друг от друга, значение индекса режима внутрикадрового предсказания левого соседнего блока может быть меньше, чем у верхнего соседнего блока.
[00233] В качестве альтернативы, индекс потенциального НВР можно определять согласно размеру/типу текущего блока. Например, если текущий блок имеет неквадратную форму с высотой больше ширины, значение индекса режима внутрикадрового предсказания верхнего соседнего блока может быть меньше, чем у левого соседнего блока. Если текущий блок имеет неквадратную форму с шириной больше высоты, значение индекса режима внутрикадрового предсказания левого соседнего блока может быть меньше, чем у верхнего соседнего блока.
[00234] В качестве альтернативы, в качестве потенциальных НВР можно применять только N заранее заданных режимов внутрикадрового предсказания. Если режим внутрикадрового предсказания соседнего блока отличен от заранее заданных N режимов внутрикадрового предсказания, режим внутрикадрового предсказания соседнего блока преобразуют в один из заранее заданных N режимов внутрикадрового предсказания, при этом преобразованный режим внутрикадрового предсказания можно задать в качестве потенциального НВР. Для преобразования режима внутрикадрового предсказания можно применить заранее заданную таблицу или операцию масштабирования на основе заранее определенного значения. В данном случае заранее заданная таблица может устанавливать связь между режимами внутрикадрового предсказания для преобразования.
[00235] Например, если режимом кодирования соседнего блока является нерасширенный внутрикадровый режим (т.е., число пригодных режимов внутрикадрового предсказания составляет 35), а режимом кодирования текущего блока - расширенный внутрикадровый режим (т.е., число пригодных режимов внутрикадрового предсказания составляет 67), индекс режима внутрикадрового предсказания соседнего блока можно преобразовать в индекс режима внутрикадрового предсказания в рамках расширенного внутрикадрового режима. Например, если режим внутрикадрового предсказания левого соседнего блока имеет индекс 10 (горизонтальный режим), его можно преобразовать в индекс 18, соответствующий горизонтальному режиму в рамках расширенного внутрикадрового режима.
[00236] В качестве альтернативы, если режимом кодирования соседнего блока является расширенный внутрикадровый режим, а режимом кодирования текущего блока - нерасширенный внутрикадровый режим, то индекс режима внутрикадрового предсказания соседнего блока можно преобразовать в индекс режима внутрикадрового предсказания в рамках нерасширенного внутрикадрового режима. Например, если режим внутрикадрового предсказания верхнего соседнего блока имеет индекс 50 (вертикальный режим), его можно преобразовать в индекс 26, соответствующий вертикальному режиму в рамках нерасширенного внутрикадрового режима.
[00237] Если индекс ряда опорных отсчетов, выбранный на этапе S1110, не меньше заранее заданного значения, список потенциальных режимов можно задать так, чтобы он не включал в себя режим прямого кодирования и/или режим планировщика. Заранее заданное значение может представлять собой целое число не меньше 1.
[00238] Если текущий блок поделен на множество субблоков, текущий список потенциальных режимов можно задать так, чтобы он не включал в себя режим прямого кодирования и/или режим планировщика. В список потенциальных режимов также можно включить режим по умолчанию. В этом случае число или тип режимов по умолчанию могут быть разными в зависимости от типа разбиения текущего блока.
[00239] Информацию, указывающую то, входит ли в список потенциальных режимов потенциальный НВР, являющийся тем же, что и режим внутрикадрового предсказания текущего блока, можно сообщать посредством битового потока. Например, посредством битового потока можно сообщать флаг НВР. Значение флага НВР, составляющее 0, указывает на то, что в список потенциальных режимов не входит потенциальный НВР, являющийся тем же, что и режим внутрикадрового предсказания текущего блока. Значение флага НВР, составляющее 1, указывает на то, что в список потенциальных режимов входит потенциальный НВР, являющийся тем же, что и режим внутрикадрового предсказания текущего блока.
[00240] Если флаг НВР указывает на то, что потенциальный НВР, являющийся тем же самым, что и режим внутрикадрового предсказания текущего блока, существует, информацию об индексе, указывающую один из потенциальных НВР, входящих в список потенциальных режимов, можно сообщить посредством битового потока. Потенциальный НВР, указанный информацией об индексе, можно задать в качестве режима внутрикадрового предсказания текущего блока. В случае отсутствия кодирования/сообщения флага НВР, можно определить, что потенциальный НВР, идентичный режиму внутрикадрового предсказания текущего блока, входит в список потенциальных режимов.
[00241] При этом, если флаг НВР указывает на то, что потенциальный НВР, являющийся тем же, что и режим внутрикадрового предсказания текущего блока, не существует, посредством битового потока можно сообщить информацию об остальных режимах. Информация об остальных режимах служит для указания одного из остальных режимов внутрикадрового предсказания, за исключением потенциальных НВР, входящих в список потенциальных режимов. По информации об остальных режимах можно определить режим внутрикадрового предсказания текущего блока. Если флаг НВР указывает на то, что потенциальный НВР, являющийся тем же, что и режим внутрикадрового предсказания текущего блока, не существует, потенциальные НВР можно переупорядочить в восходящем порядке. После этого значение режима, указанное информацией об остальных режимах, можно последовательно сравнивать с переупорядоченными потенциальными НВР для определения режима внутрикадрового предсказания текущего блока. Например, если значение режима, указанное информацией об остальных режимах, не больше значения переупорядоченного потенциального НВР, к значению режима можно прибавить 1. Если потенциальный НВР со значением меньше обновленного значения режима отсутствует, режим с обновленным значением режима можно определить в качестве режима внутрикадрового предсказания текущего блока.
[00242] Если индекс ряда опорных отсчетов, выбранный на этапе S1110, не меньше заранее заданного значения, кодирование флага НВР можно не выполнять. Таким образом, если индекс ряда опорных отсчетов не меньше заранее заданного значения, режим внутрикадрового предсказания текущего блока можно задать в качестве потенциального НВР, указываемого информацией об индексе.
[00243] Как раскрыто выше, если индекс ряда опорных отсчетов не меньше заранее заданного значения, список потенциальных режимов можно задать так, чтобы он не включал в себя режим прямого кодирования и/или режим планировщика. Таким образом, если индекс ряда опорных отсчетов не меньше заранее заданного значения, режим прямого кодирования и/или режим планировщика могут не быть пригодны для текущего блока.
[00244] Информацию, указывающую то, является ли режим внутрикадрового предсказания текущего блока режимом по умолчанию, можно сообщать посредством битового потока. Режим по умолчанию может представлять собой по меньшей мере один из следующих: режим прямого кодирования, планарный режим, горизонтальный режим, вертикальный режим или диагональный режим. Например, флаг режима по умолчанию, указывающий, является ли режим внутрикадрового предсказания текущего блока тем же, что и режим по умолчанию, можно сообщать посредством битового потока. Флаг режима по умолчанию может представлять собой по меньшей мере один из следующих: флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока планарным режимом, флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока режимом прямого кодирования, флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока вертикальным режимом, флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока горизонтальным режимом, или флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока диагональным режимом.
[00245] Например, is_planar_not_flag можно сообщать посредством битового потока. Значение флага, составляющее 0, указывает на то, что режим внутрикадрового предсказания текущего блока является планарным режимом. Значение флага, составляющее 1, указывает на то, что режим внутрикадрового предсказания текущего блока не является планарным режимом.
[00246] Флаг режима по умолчанию можно сообщать, если флаг НВР указывает на то, что потенциальный НВР, являющийся тем же, что и режим внутрикадрового предсказания текущего блока, существует. Если флаг режима по умолчанию указывает на то, что режим внутрикадрового предсказания текущего блока не является режимом по умолчанию, потенциальный НВР, указанный информацией об индексе, можно задать в качестве режима внутрикадрового предсказания текущего блока.
[00247] Если индекс режима внутрикадрового предсказания текущего блока не больше первого порогового значения, при этом текущий блок имеет неквадратную форму с шириной больше высоты, режим внутрикадрового предсказания можно преобразовать в широкоугольный режим внутрикадрового предсказания. В данном случае первое пороговое значение можно определять на основе формы текущего блока. Например, первое пороговое значение можно получить путем прибавления соотношения ширины и высоты к заранее заданному индексу. Таким образом, чем больше соотношение ширины и высоты текущего блока, тем больше может быть число пригодных широкоугольных режимов внутрикадрового предсказания. Заранее заданный индекс может составлять 8. Если вышеуказанное условие выполнено, режим внутрикадрового предсказания можно преобразовать в широкоугольный режим внутрикадрового предсказания путем прибавления заранее заданного значения к индексу режима внутрикадрового предсказания. Угол полученного в результате преобразования широкоугольного режима внутрикадрового предсказания может быть больше 135 градусов. Заранее заданное значение может представлять собой число режимов направленного предсказания за вычетом широкоугольных режимов внутрикадрового предсказания. Например, согласно примеру на ФИГ. 9, заранее заданное значение может составлять 33, а согласно примеру на ФИГ. 10, заранее заданное значение может составлять 65.
[00248] Если индекс режима внутрикадрового предсказания текущего блока не меньше второго порогового значения, а текущий блок имеет неквадратную форму с высотой больше ширины, режим внутрикадрового предсказания можно преобразовать в широкоугольный режим внутрикадрового предсказания. В данном случае второе пороговое значение можно определять на основе формы текущего блока. Например, второе пороговое значение можно получить путем вычитания соотношения высоты и ширины из заранее заданного индекса. Таким образом, чем больше соотношение высоты и ширины текущего блока, тем больше может быть число пригодных широкоугольных режимов внутрикадрового предсказания. Заранее заданный индекс может составлять 60. Если вышеуказанное условие выполнено, режим внутрикадрового предсказания можно преобразовать в широкоугольный режим внутрикадрового предсказания путем вычитания заранее заданного значения из индекса режима внутрикадрового предсказания. Угол полученного в результате преобразования широкоугольного режима внутрикадрового предсказания может быть меньше -45 градусов. Заранее заданное значение может представлять собой число режимов внутрикадрового предсказания за вычетом широкоугольного режима внутрикадрового предсказания. Например, согласно примеру на ФИГ. 9, заранее заданное значение может составлять 35, а согласно примеру на ФИГ. 10, заранее заданное значение может составлять 67.
[00249] Если текущий блок поделен на множество субблоков, возможно применение одного и того же режима внутрикадрового предсказания текущего блока для множество субблоков. В качестве альтернативы, режим внутрикадрового предсказания можно определять для каждого субблока. Например, возможно кодирование/декодирование информации и/или оставшегося режима для каждого субблока. В качестве альтернативы, информацию, указывающую то, является ли режим внутрикадрового предсказания субблока тем же, что и для субблока, в отношении которого было выполнено предыдущее кодирование/декодирование, можно сообщать посредством битового потока. В качестве альтернативы, режим внутрикадрового предсказания текущего субблока можно определить путем прибавления/вычитания поправки к значению / из значения режима внутрикадрового предсказания субблока, в отношении которого было выполнено предыдущее кодирование/декодирование.
[00250] Если текущий блок поделен на множество субблоков, кодирование флага НВР можно не выполнять. Таким образом, если текущий блок поделен на множество субблоков, режим внутрикадрового предсказания текущего блока можно задать в качестве потенциального НВР, указываемого информацией об индексе.
[00251] Возможно применение одного и того же режима внутрикадрового предсказания текущего блока для множества субблоков.
[00252] Режимы внутрикадрового предсказания яркостной составляющей и цветностной составляющей можно определять независимо друг от друга. В качестве альтернативы, режим внутрикадрового предсказания цветностной составляющей можно определять на основании режима внутрикадрового предсказания яркостной составляющей.
[00253] В частности, режим внутрикадрового предсказания цветностной составляющей можно определять на основе режима внутрикадрового предсказания яркостной составляющей, как раскрыто в нижеследующей Таблице 1.
[00254]
[00255] В Таблице 1 intra_chroma_pred_mode - это информация, сообщаемая для указания режима внутрикадрового предсказания цветностной составляющей, a Intra PredModeY указывает режим внутрикадрового предсказания яркостной составляющей.
[00256]
[00257] Далее можно получить опорный отсчет для текущего блока (S1130). Например, если на этапе S1110 был выбран N-ный ряд опорных отсчетов, можно получить верхние опорные отсчеты с P(-N, -N) по P(2W+N-1, -N) и левые опорные отсчеты с P(-N, -N) по P(-N, 2H+N-1).
[00258] Опорный отсчет можно получить на основе восстановленного отсчета, кодированного/декодированного прежде текущего блока. Восстановленный отсчет может означать состояние до применения внутриконтурного фильтра или после применения внутри контурно го фильтра.
[00259] К опорным отсчетам можно применить заранее определенный внутренний фильтр. Фильтрация опорных отсчетов посредством внутреннего фильтра может именоваться «сглаживание опорных отсчетов». Внутренний фильтр может включать в себя по меньшей мере один из следующих: первый внутренний фильтр с возможностью применения в горизонтальном направлении или второй внутренний фильтр с возможностью применения в вертикальном направлении. Первый внутренний фильтр или второй внутренний фильтр можно применять выборочно в зависимости от положения опорного отсчета. В качестве альтернативы, можно неоднократно применять два внутренних фильтра к одному опорному отсчету. По меньшей мере один из коэффициентов фильтра первого внутреннего фильтра или второго внутреннего фильтра может составлять (1, 2, 1), но не ограничен указанными значениями.
[00260] Фильтрацию можно выполнять адаптивно в зависимости от меньшей мере одного из следующего: режима внутрикадрового предсказания текущего блока или размера блока преобразования для текущего блока. Например, если режимом внутрикадрового предсказания текущего блока является режим прямого кодирования, вертикальный режим или горизонтальный режим, фильтрацию можно не выполнять. Если размер блока преобразования составляет N×M, фильтрацию можно не выполнять. В данном случае N и M могут представлять собой одинаковые или разные значения, либо значения 4, 8, 16 или более. Например, если размер блока преобразования составляет 4×4, фильтрацию можно не выполнять. В качестве альтернативы, решение о выполнении фильтрации можно принимать в зависимости от результата сравнения заранее заданного порога и разности значений режима внутрикадрового предсказания текущего блока и вертикального режима (или горизонтального режима). Например, если разность значений режима внутрикадрового предсказания текущего блока и вертикального режима больше порога, можно выполнить фильтрацию. Порог можно задать для каждого размера блока преобразования, как указано в Таблице 2.
[00261]
[00262] В качестве внутреннего фильтра можно определить один из множества потенциальных внутренних фильтров, предварительно заданных в устройстве кодирования/декодирования видеоинформации. Для этого можно сообщить отдельный индекс, указывающий внутренний фильтр текущего блока из множества потенциальных внутренних фильтров. В качестве альтернативы, внутренний фильтр можно определять на основе по меньшей мере одного из следующего: размера / формы текущего блока, размера / формы блока преобразования, информации о строгости фильтра или разброса окружающих отсчетов.
[00263] Далее можно выполнить внутрикадровое предсказание с применением режима внутрикадрового предсказания текущего блока и опорного отсчета (S1140).
[00264] Предсказанный отсчет можно получить путем применения режима внутрикадрового предсказания и опорного отсчета текущего блока. В случае выбора нескольких рядов опорных отсчетов, предсказанные отсчеты можно получить на основе операции взвешенной суммы или операции усреднения опорных отсчетов, относящихся к разным рядам опорных отсчетов. Например, предсказанный отсчет можно получить на основе операции взвешенной суммы первого опорного отсчета, относящегося к первому ряду опорных отсчетов, и второго опорного отсчета, относящегося ко второму ряду опорных отсчетов. В этом случае, веса для применения к первому опорному отсчету и второму опорному отсчету могут иметь одинаковое значение. В качестве альтернативы, вес для применения к каждому опорному отсчету можно определять на основе расстояния между целевым предсказываемым отсчетом и опорным отсчетом. Например, в случае первого опорного отсчета и второго опорного отсчета, значение веса для применения к опорному отсчету, расположенному на близком расстоянии до целевого предсказываемого отсчета, может быть больше значения веса для применения к другому из этих опорных отсчетов.
[00265] При этом, в случае внутрикадрового предсказания, возможно применение граничного отсчета соседнего блока, в связи с чем возможно ухудшение качества предсказанного изображения. Поэтому можно выполнить процесс коррекции в отношении предсказанного отсчета, сгенерированного в результате раскрытого выше процесса предсказания, который будет подробно раскрыт ниже на примере ФИГ. 15. При этом, процесс коррекции можно применять не только к внутрикадрово предсказанному отсчету, но и к межкадрово предсказанному отсчету или восстановленному отсчету.
[00266]
[00267] ФИГ. 15 - схема, иллюстрирующая способ коррекции предсказанного отсчета текущего блока на основе информации о разности между соседними отсчетами по одному из вариантов осуществления настоящего изобретения.
[00268] Предсказанный отсчет текущего блока можно корректировать на основе информации о разности множества соседних отсчетов для текущего блока. Коррекцию можно выполнять в отношении всех предсказанных отсчетов в текущем блоке или в отношении предсказанных отсчетов в заранее определенных частичных областях. Частичные области могут представлять собой одну строку/столбец или множество строк/столбцов, заранее заданных в качестве областей для коррекции в устройстве кодирования/декодирования видеоинформации. Например, коррекцию можно выполнять в отношении одной строки/столбца, расположенного у границы текущего блока, или в отношении множества строк/столбцов от границы текущего блока. В качестве альтернативы, частичные области можно определять переменно в зависимости от по меньшей мере одного из следующего: размера/формы текущего блока или режима внутрикадрового предсказания.
[00269] Соседние отсчеты могут относиться к соседним блокам, расположенным сверху или слева от текущего блока или у его верхнего левого угла. Число соседних отсчетов для коррекции может составлять два, три, четыре или более. Положения соседних отсчетов можно определять переменно в зависимости от положения предсказанного отсчета, являющегося целью коррекции в текущем блоке. В качестве альтернативы, положения некоторых соседних отсчетов могут быть фиксированными независимо от положения предсказанного отсчета, являющегося целью коррекции, при этом положения остальных соседних отсчетов могут быть переменными в зависимости от положения предсказанного отсчета, являющегося целью коррекции.
[00270] Информация о разности между соседними отсчетами может представлять собой отсчет разности между соседними отсчетами или значение, полученное путем масштабирования отсчета разности на заранее определенное постоянное значение (например, один, два, три и т.п.). В данном случае заранее определенное постоянное значение можно определять с учетом положения предсказанного отсчета, являющегося целью коррекции, положения столбца или строки, содержащей предсказанный отсчет, являющийся целью коррекции, положения предсказанного отсчета в пределах столбца, строки и т.п.
[00271] Например, если режимом внутрикадрового предсказания текущего блока является вертикальный режим, можно применить отсчеты разности между верхним левым соседним отсчетом р(-1, -1) и соседними отсчетами p(-1, у), примыкающими к левой границе текущего блока, для получения конечного предсказанного отсчета согласно Уравнению 1.
[00272] [Уравнение 1]
P'(0,y)= P(0,y)+((p(-1,у)-р(-1,-1))>>1fory=0…N-1
[00273] Например, если режимом внутрикадрового предсказания текущего блока является горизонтальный режим, можно применить отсчеты разности между верхним левым соседним отсчетом р(-1, -1) и соседними отсчетами р(х, -1), примыкающими к верхней границе текущего блока, для получения конечного предсказанного отсчета согласно Уравнению 1.
[00274] [Уравнение 2]
P'(x,0)=p(x,0)+((p(x,-1)-р(-1,-1))>>1forx=0…N-1
[00275] Например, если режимом внутрикадрового предсказания текущего блока является вертикальный режим, можно применить отсчеты разности между верхним левым соседним отсчетом р(-1, -1) и соседними отсчетами p (-1, у), примыкающими к левой границе текущего блока, для получения конечного предсказанного отсчета согласно Уравнению 2. В данном случае отсчет разности можно прибавить к предсказанному отсчету или масштабировать отсчет разности на заранее определенное постоянное значение, а затем прибавить к предсказанному отсчету. Заранее определенное постоянное значение, применяемое при масштабировании, можно определять по-разному в зависимости от столбца и/или строки. Например, предсказанный отсчет можно корректировать согласно Уравнению 3 и Уравнению 4.
[00276] [Уравнение 3]
P'(0,y)= P(0,y)+((p(-1,у)-р(-1,-1))>>1fory=0…N-1
[00277] [Уравнение 4]
P'(1,y)= P(1,y)+((p(-1,у)-р(-1,-1))>>2fory=0…N-1
[00278] Например, если режимом внутрикадрового предсказания текущего блока является горизонтальный режим, можно применить отсчеты разности между верхним левым соседним отсчетом р(-1, -1) и соседними отсчетами р(х, -1), примыкающими к левой границе текущего блока, для получения конечного предсказанного отсчета. Это осуществляют, как раскрыто выше в отношении горизонтального режима. Например, предсказанные отсчеты можно корректировать согласно Уравнениям 5 и 6.
[00279] [Уравнение 5]
P'(x,0)=p(x,0)+((p(x,-1)-р(-1,-1))>>1forx=0…N-1
[00280] [Уравнение 6]
P'(x,1)=p(x,1)+((p(x,-1)-р(-1,-1))>>2forx=0…N-1
[00281] Если режимом внутрикадрового предсказания текущего блока является режим направленного предсказания, внутрикадровое предсказание текущего блока можно выполнять в зависимости от направленности режима направленного предсказания. Например, в Таблице 3 указан параметр внутрикадрового направления intraPredAng от Режима 2 к Режиму 34, являющемуся режимом направленного внутрикадрового предсказания, проиллюстрированным на ФИГ. 9.
[00282]
[00283] В Таблице 3 в качестве примера раскрыты 33 режима направленного внутрикадрового предсказания, при этом можно задать большее или меньшее число режимов направленного внутрикадрового предсказания. Параметр внутрикадрового направления для текущего блока можно определять по поисковой таблице, устанавливающей связь для преобразования между режимом направленного внутрикадрового предсказания и параметром внутрикадрового направления. В качестве альтернативы, параметр внутрикадрового направления для текущего блока можно определять на основе информации, сообщенной посредством битового потока.
[00284] Внутрикадровое предсказание текущего блока можно выполнять с применением по меньшей мере одного из следующего: левого опорного отсчета или верхнего опорного отсчета в зависимости от направленности режима направленного внутрикадрового предсказания. В данном случае верхний опорный отсчет может представлять собой опорный отсчет (например, с (-1, -1) по (2W-1, -1)) с координатой по оси у меньше, чем у целевого предсказываемого отсчета (х, 0), входящего в верхнюю строку в текущем блоке, а левый опорный отсчет может представлять собой опорный отсчет (например, с (-1, -1) по (-1, 2Н-1)) с координатами по оси x меньше, чем у целевого предсказываемого отсчета (0, у), входящего в крайний левый столбец в текущем блоке.
[00285] В зависимости от направленности режима внутрикадрового предсказания, опорные отсчеты текущего блока могут быть упорядочены в одном измерении. В частности, если нужно применить и верхний опорный отсчет, и левый опорный отсчет для внутрикадрового предсказания текущего блока, предполагают, что они упорядочены в ряд в вертикальном или горизонтальном направлении, при этом можно выбрать опорные отсчеты каждого целевого предсказываемого отсчета.
[00286] Например, если параметр внутрикадрового направления отрицательный (например, режим внутрикадрового предсказания, соответствующий Режимам от 11 до 25 в Таблице 3), верхние опорные отсчеты и левые опорные отсчеты можно переупорядочить в горизонтальном или вертикальном направлении с образованием одномерной группы P_ref_1D опорных отсчетов.
[00287] ФИГ. 16 и 17 - схема, иллюстрирующая одномерную группу опорных отсчетов, в которой опорные отсчеты переупорядочены в ряду.
[00288] Решение о переупорядочивании опорных отсчетов в вертикальном направлении или в горизонтальном направлении можно принимать на основе направленности режима внутрикадрового предсказания. Например, если режим внутрикадрового предсказания обращен влево (например, индекс режима внутрикадрового предсказания составляет от 11 до 18 в примере на ФИГ. 9), как в примере на ФИГ. 16, верхние опорные отсчеты текущего блока можно повернуть против часовой стрелки для генерации одномерной группы опорных отсчетов, в которой левые опорные отсчеты и верхние опорные отсчеты упорядочены в вертикальном направлении.
[00289] При этом, если режим внутрикадрового предсказания обращен вверх (например, индекс режима внутрикадрового предсказания составляет от 19 до 25 в примере на ФИГ. 9), как в примере на ФИГ. 17, левые опорные отсчеты текущего блока можно повернуть по часовой стрелке для генерации одномерной группы опорных отсчетов, в которой левые опорные отсчеты и верхние опорные отсчеты упорядочены в горизонтальном направлении.
[00290] Если параметр внутрикадрового направления текущего блока не является отрицательным, внутрикадровое предсказание для текущего блока можно выполнять с применением только левых опорных отсчетов или верхних опорных отсчетов. Таким образом, для режимов внутрикадрового предсказания, в которых параметр внутрикадрового направления не является отрицательным, одномерную группу опорных отсчетов можно построить с применением только левых опорных отсчетов или верхних опорных отсчетов.
fact
[00291] На основе параметра внутрикадрового направления можно получить индекс iIdx определения опорного отсчета для указания по меньшей мере одного опорного отсчета для предсказания целевого предсказываемого отсчета. Кроме того, на основе параметра внутрикадрового направления можно получить связанный с весом параметр i для определения веса для применения к каждому опорному отсчету. Например, Уравнения 7 иллюстрируют примеры получения индекса определения опорного отсчета и связанного с весом параметра.
[00292] [Уравнение 7]
ang
iIdx=(y+1)*(P/32)
ang
[00293] ifact=[(y+1)*(P]31
fact
[00294] Согласно Уравнению 7, iIdx и i определяют переменно в зависимости от тангенса угла наклона режима направленного внутрикадрового предсказания. В этом случае, опорный отсчет, указанный индексом iIdx, может соответствовать целочисленному пэлу.
[00295] На основе индекса определения опорного отсчета можно указать по меньшей мере один опорный отсчет для каждого предсказанного отсчета. Например, на основе индекса определения опорного отсчета можно указать положение опорного отсчета в одномерной группе опорных отсчетов для предсказания целевого предсказываемого отсчета в текущем блоке. На основе опорного отсчета в указанном положении, можно сгенерировать предсказанное изображение (т.е., предсказанный отсчет) для целевого предсказываемого отсчета.
[00296]
[00297] Предсказанное изображение для целевого предсказываемого отсчета можно сгенерировать на основе одного или множества опорных отсчетов в зависимости от режима внутрикадрового предсказания текущего блока.
[00298] Например, если виртуальная угловая линия, проходящая от целевого предсказываемого отсчета, пересекает положение целочисленного пэла (т.е., опорный отсчет у целочисленного положения) в одномерной группе опорных отсчетов, предсказанное изображение для целевого предсказываемого отсчета можно сгенерировать путем копирования опорного отсчета у положения целочисленного пэла или масштабирования опорного отсчета с учетом местоположения опорного отсчета у положения целочисленного пэла относительно целевого предсказываемого отсчета. Виртуальная угловая линия может представлять собой линию, проходящую в одном направлении или в обоих направления вдоль угла режима внутрикадрового предсказания текущего блока или тангенса угла наклона режима внутрикадрового предсказания. Например, нижеследующее Уравнение 8 представляет пример генерирования предсказанного изображения Р(х, у) для целевого предсказываемого отсчета у положения (х, у) путем копирования опорного отсчета P_ref_1D(x+iIdx+1), указанного режимом внутрикадрового предсказания текущего блока.
[00299] [Уравнение 8]
P(x,y)=P_ref_1D(x+iIdx+1)
[00300] При этом, если виртуальная угловая линия, проходящая от целевого предсказываемого отсчета, не пересекает положение целочисленного пэла, предсказанное изображение для целевого предсказываемого отсчета можно получить с применением множества опорных отсчетов. Предсказанное изображение для целевого предсказываемого отсчета можно сгенерировать путем линейного интерполирования опорного отсчета, примыкающего к положению, где проходит виртуальная угловая линия, и по меньшей мере одного соседнего опорного отсчета, примыкающего к указанному опорному отсчету. В качестве альтернативы, предсказанное изображение для целевого предсказываемого отсчета можно получить путем интерполирования на основе отводного фильтра указанного опорного отсчета и указанного по меньшей мере одного соседнего опорного отсчета. Число отводов интерполяционного фильтра может представлять собой натуральное число не меньше 2. В частности, в зависимости от числа опорных отсчетов, подлежащих интерполированию, число отводов отводного фильтра может представлять собой целое число 2, 3, 4, 5, 6 или более.
[00301] Например, если виртуальная угловая линия, проходящая от целевого предсказываемого отсчета, проходит между двумя положениями целочисленных пэлов, предсказанное изображение для целевого предсказываемого отсчета можно сгенерировать путем применения по меньшей мере одного из следующего: опорных отсчетов у обоих положений, где проходит виртуальная угловая линия, или опорных отсчетов у этих двух положений целочисленных пэлов и по меньшей мере одного соседнего опорного отсчета. В данном случае соседний опорный отсчет может представлять собой по меньшей мере один из опорных отсчетов, примыкающих клевой/правой стороне или верху/низу опорного отсчета. Например, Уравнение 9 представляет пример генерирования предсказанного отсчета Р(х, у) для целевого предсказываемого отсчета путем интерполирования двух или более опорных отсчетов.
[00302] [Уравнение 9]
fact
fact
P(x,у)=(32-i)/32 *P_ref_1D(x+iIdx+1)+i/32*P_r ef_1D(x+iIdx+2)
fact
[00303] Коэффициент интерполяционного фильтра можно определять на основе связанного с весом параметра i. Например, коэффициент интерполяционного фильтра можно определять на основе расстояния между дробным пэлом и целочисленным пэлом (т.е., целочисленным положением каждого опорного отсчета), расположенным на угловой линии.
[00304] Нижеследующее Уравнение 10 иллюстрирует случай, в котором число отводов отводного фильтра составляет 4.
[00305] [Уравнение 10]
Р(х,у)-f(0)*P_ref_1D(x+iIdx-1)+f(1)*P_ref_1D(x+iIdx)+f(2)*P_ref_1D(x-iIdx+1)-f(3)*P_ref_1D(x+iIdx-2)
[00306] Как и в примере, представленном в Уравнении 10, предсказанное изображение для целевого предсказываемого отсчета можно получить путем интерполирования множества последовательных опорных отсчетов. В этом случае, если по меньшей мере один из N последовательных опорных отсчетов не входит в одномерную группу опорных отсчетов, значение опорного отсчета можно заменить заранее заданным значением или значением соседнего опорного отсчета. Например, если отсчет у положения (x+iIdx-1) не входит в одномерную группу опорных отсчетов, значение опорного отсчета у этого положения можно заменить заранее заданным значением или значением примыкающего опорного отсчета (например, P_ref_1D(x+iIdx)). В качестве альтернативы, если отсчет у положения (x+iIdx+2) не входит в одномерную группу опорных отсчетов, значение опорного отсчета у этого положения можно заменить заранее заданным значением, заранее вычисленным значением или значением примыкающего опорного отсчета (например, P_ref(x+iIdx+1)). В данном случае заранее заданное значение может представлять собой целое число, в том числе 0. Заранее вычисленное значение может представлять собой значение, определяемое по глубине в битах. В качестве альтернативы, заранее заданное значение можно вычислить на основе среднего значения, минимального значения или максимального значения по меньшей мере одного опорного отсчета.
[00307] Форма многоотводного фильтра может быть прямой. Например, возможно применение многоотводного фильтра прямой формы с применением множества последовательных опорных отсчетов в горизонтальном или вертикальном направлении. В качестве альтернативы, форма многоотводного фильтра может быть многоугольной, например, квадратной или крестообразной. Например, возможно применение крестообразного многоотводного фильтра с применением опорного отсчета и опорных отсчетов, примыкающих ко всем его четырем сторонам. Форму многоотводного фильтра можно определять переменно в зависимости от размера, формы или режима внутрикадрового предсказания текущего блока.
[00308] Генерирование предсказанного отсчета путем интерполирования опорного отсчета с учетом направленности внутрикадрового предсказания согласно Уравнениям 8-10 может именоваться «методика интерполяции для внутрикадрового предсказания отсчета».
[00309] При применении методики интерполяции для внутрикадрового предсказания отсчета, отводный фильтр с большим числом отводов не обязательно гарантирует повышение точности предсказания. Например, если текущий блок представляет собой асимметричную единицу кодирования, высота или ширина которой значительно больше ширины или высоты соответственно, например, размером 2×16, или блок малого размера, например, 4×4, применение отводного фильтра с 4 или более отводами может привести к чрезмерному сглаживанию предсказанного изображения. Таким образом, тип отводного фильтра можно определять адаптивно в зависимости от размера, формы или режима внутрикадрового предсказания текущего блока. В данном случае тип отводного фильтра можно задавать по как минимум одному из следующих параметров: числу отводов, коэффициентам фильтра, строгости фильтра (строгий/нестрогий), направление фильтрации или тип фильтра. Число отводов фильтра или коэффициент фильтра можно определять переменно в зависимости от строгости фильтра. Кроме того, в зависимости от типа отводного фильтра можно определять направление применения отводного фильтра, например, для интерполяции по горизонтали, по вертикали или по горизонтали и вертикали. Направление применения отводного фильтра можно задавать переменно в единицах рядов (строк или столбцов) или отсчетов в текущем блоке.
[00310] В частности, тип отводного фильтра для применения можно определять на основе ширины или высоты текущего блока. Например, если по меньшей мере одно из следующего: ширина или высота текущего блока меньше заранее заданного значения, можно выполнить методику интерполяции для внутрикадрового предсказания отсчета путем применения 2-отводного фильтра, а не 4-отводного фильтра. При этом, если ни ширина, ни высота текущего блока не меньше заранее определенного значения, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением 4-отводного фильтра. В данном случае заранее заданное значение может составлять, например, 4, 8 или 16.
[00311] В качестве альтернативы, тип отводного фильтра для применения можно определять на основании того, являются ли ширина и высота текущего блока одинаковыми. Например, если значения ширины и высоты текущего блока отличны друг от друга, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением 2-отводного фильтра, а не 4-отводного фильтра. При этом, если ширина и высота текущего блока имеют одинаковое значение, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением 4-отводного фильтра.
[00312] В качестве альтернативы, тип отводного фильтра для применения можно определять на основании соотношения ширины и высоты текущего блока. Например, если соотношение ширины (w) и высоты (h) текущего блока (т.е., w/h или h/w) меньше заранее заданного порога, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением 2-отводного фильтра, а не 4-отводного фильтра. При этом, если соотношение ширины и высоты текущего блока не меньше заранее заданного порогового значения, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением 4-отводного фильтра.
[00313] В качестве альтернативы, тип отводного фильтра можно определять на основании режима внутрикадрового предсказания, формы или размера текущего блока. Например, если текущий блок представляет собой единицу кодирования типа 2×16, а режимом внутрикадрового предсказания текущего блока является режим внутрикадрового предсказания, относящийся к горизонтальному диапазону, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением отводного фильтра с числом n отводов. При этом, если текущий блок представляет собой единицу кодирования типа 2×16, а режимом внутрикадрового предсказания текущего блока является режим внутрикадрового предсказания, относящийся к диапазону вертикального направления, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением отводного фильтра с числом m отводов.
[00314] При этом, если текущий блок представляет собой единицу кодирования типа 16×2, а режимом внутрикадрового предсказания текущего блока является режим внутрикадрового предсказания, относящийся к диапазону горизонтального направления, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением отводного фильтра с числом n отводов. При этом, если текущий блок представляет собой единицу кодирования типа 16×2, а режимом внутрикадрового предсказания текущего блока является режим внутрикадрового предсказания, относящийся к диапазону вертикального направления, методику интерполяции для внутрикадрового предсказания отсчета можно выполнять с применением отводного фильтра с числом m отводов.
[00315] В данном случае «горизонтальный диапазон» может означать заранее определенный диапазон, включающий в себя режим внутрикадрового предсказания в горизонтальном направлении, а «вертикальный диапазон» - заранее определенный диапазон, включающий в себя режим внутрикадрового предсказания в вертикальном направлении. Например, из 35 режимов внутрикадрового предсказания, диапазон горизонтального направления может включать в себя режим внутрикадрового предсказания с 11 по 18, а диапазон вертикального направления может включать в себя режим внутрикадрового предсказания с 19 по 27.
[00316] Кроме того, n и m представляют собой постоянные больше 0, при этом значения n и m могут быть отличны друг от друга. В качестве альтернативы, можно задать одинаковое значение n и m, при этом можно задать разные значения по меньшей мере одного из следующего: коэффициентов фильтра или степеней фильтрации n-отводного фильтра и m-отводного фильтра.
[00317] Если внутрикадровое предсказание выполняют на основе режима направленного предсказания или режима прямого кодирования, возможно ухудшение качества изображения у границы блока. При этом выполнение внутрикадрового предсказания на основе планарного режима обеспечивает преимущество, состоящее в относительно небольшом ухудшении качества изображения у границы блока по сравнению с этими режимами предсказания.
[00318] Внутрикадровое предсказание на основе планарного режима позволяет получить предсказанное изображение путем взвешенного предсказания первого предсказанного изображения в горизонтальном направлении и второго предсказанного изображения в вертикальном направлении.
[00319] В данном случае первое предсказанное изображение можно сгенерировать на основе опорных отсчетов, расположенных в горизонтальном направлении относительно целевого предсказываемого отсчета. Например, первое предсказанное изображение можно сгенерировать на основе взвешенной суммы опорных отсчетов, расположенных в горизонтальном направлении относительно целевого предсказываемого отсчета. В этом случае, вес для применения к каждому опорному отсчету можно определять на основе по меньшей мере одного из следующего: расстояния до целевого предсказываемого отсчета или размера текущего блока. В число опорных отсчетов, расположенных в горизонтальном направлении относительно целевого предсказываемого отсчета, могут входить левый опорный отсчет с той же координатой у, что и у целевого предсказываемого отсчета, и правый опорный отсчет с той же координатой у, что и у целевого предсказываемого отсчета. Правый опорный отсчет можно получить на основе верхнего опорного отсчета текущего блока. Например, правый опорный отсчет можно получить путем копирования значения верхнего опорного отсчета, расположенного в том же вертикальном ряду, что и правый опорный отсчет. В качестве альтернативы, правый опорный отсчет можно получить в виде взвешенной суммы или среднего значения множества верхних опорных отсчетов. В данном случае верхний опорный отсчет, расположенный в том же вертикальном ряду, что и правый опорный отсчет, может представлять собой опорный отсчет, примыкающий к верхнему правому углу текущего блока. Опорный отсчет, примыкающий к верхнему правому углу, может иметь ту же координату х, что и правый опорный отсчет. В качестве альтернативы, положение верхнего опорного отсчета для получения правого опорного отсчета можно определять переменно в зависимости от формы, размера текущего блока или положения целевого предсказываемого отсчета.
[00320] Второе предсказанное изображение можно сгенерировать на основе опорных отсчетов, расположенных в вертикальном направлении относительно целевого предсказываемого отсчета. Например, второе предсказанное изображение можно сгенерировать на основе взвешенной суммы опорных отсчетов, расположенных в вертикальном направлении относительно целевого предсказываемого отсчета. В этом случае, вес для применения к каждому опорному отсчету можно определять в зависимости от расстояния до целевого предсказываемого отсчета или размера текущего блока. В число опорных отсчетов, расположенных в вертикальном направлении относительно целевого предсказываемого отсчета, может входить верхний опорный отсчет в том же вертикальном ряду, что и целевой предсказываемый отсчет, с той же координатой х, что и целевой предсказываемый отсчет, и нижний опорный отсчет в том же вертикальном ряду, что и целевой предсказываемый отсчет, с той же координатой х, что и целевой предсказываемый отсчет. Нижний опорный отсчет можно получить на основе левого опорного отсчета текущего блока. Например, нижний опорный отсчет можно получить путем копирования значения левого опорного отсчета, расположенного в том же горизонтальном ряду, что и нижний опорный отсчет. В качестве альтернативы, нижний опорный отсчет можно получить в виде взвешенной суммы или среднего значения множества левых опорных отсчетов. В данном случае левый опорный отсчет, расположенный в том же горизонтальном ряду, что и нижний опорный отсчет, может представлять собой опорный отсчет, примыкающий к нижнему левому углу текущего блока. Опорный отсчет, примыкающий к нижнему левому углу, может иметь ту же координату у, что и нижний опорный отсчет. В качестве альтернативы, положение верхнего опорного отсчета для получения нижнего опорного отсчета можно определять переменно в зависимости от формы, размера текущего блока или положения целевого предсказываемого отсчета.
[00321] В качестве альтернативы, по меньшей мере один из следующих: правый опорный отсчет и нижний опорный отсчет можно получить с применением и левого опорного отсчета, и верхнего опорного отсчета.
[00322] Например, взвешенную сумму или среднее значение верхнего опорного отсчета и левого опорного отсчета текущего блока можно определять как значение по меньшей мере одного из следующего: правого опорного отсчета или нижнего опорного отсчета.
[00323] В качестве альтернативы, нижний левый опорный отсчет и верхний правый опорный отсчет можно применить для получения нижнего правого опорного отсчета, примыкающего к нижнему правому углу текущего блока, после чего полученный нижний правый опорный отсчет можно применить для получения правого опорного отсчета и нижнего опорного отсчета. Нижний правый опорный отсчет можно получить на основе взвешенной суммы или среднего значения верхнего правого опорного отсчета и левого опорного отсчета текущего блока. В этом случае, веса для применения к верхнему правому опорному отсчету и левому опорному отсчету могут иметь одинаковое значение, или их можно определить в зависимости от ширины / высоты текущего блока.
[00324] Когда нижний правый опорный отсчет будет определен, правый опорный отсчет можно будет получить путем интерполирования нижнего правого опорного отсчета и верхнего правого опорного отсчета, а нижний опорный отсчет можно будет получить путем интерполирования нижнего правого опорного отсчета и нижнего левого опорного отсчета. В этом случае, коэффициенты интерполяционного фильтра можно определять на основании размера текущего блока, формы текущего блока, расстояние до нижнего правого опорного отсчета, расстояния до верхнего правого опорного отсчета или расстояния до нижнего левого опорного отсчета.
[00325] Для получения правого опорного отсчета или левого опорного отсчета можно применить опорный отсчет в фиксированном положении или опорный отсчет, адаптивно выбираемый в зависимости от положения целевого предсказываемого отсчета. Например, правый опорный отсчет можно получить путем применения верхнего правого опорного отсчета независимо от положения целевого предсказываемого отсчета или путем применения левого опорного отсчета, выбранного в зависимости от положения целевого предсказываемого отсчета (например, опорного отсчета с той же координатой по оси у, что и у целевого предсказываемого отсчета), или верхнего опорного отсчета, выбранного в зависимости от положения целевого предсказываемого отсчета (например, опорного отсчета с той же координатой по оси х, что и у целевого предсказываемого отсчета). В качестве альтернативы, нижний опорный отсчет можно получить, применив нижний левый опорный отсчет независимо от положения целевого предсказываемого отсчета или применив левый опорный отсчет, выбранный в зависимости от положения целевого предсказываемого отсчета (например, опорного отсчета с той же координатой по оси у, что и у целевого предсказываемого отсчета), или верхний опорный отсчет, выбранный в зависимости от положения целевого предсказываемого отсчета (например, опорного отсчета с той же координатой по оси х, что и у целевого предсказываемого отсчета).
[00326] ФИГ. 18 - схема, иллюстрирующая пример получения правого опорного отсчета или нижнего опорного отсчета с применением множества опорных отсчетов. Предположим, что текущий блок представляет собой блок размером WxH.
[00327] В примере на ФИГ. 18 (а), сначала, на основе взвешенной суммы или среднего значения верхнего правого опорного отсчета P(W, -1) и нижнего левого отсчета Р(-1, Н) текущего блока, можно сгенерировать нижние правые опорные отсчеты P(W, H). В этом случае, веса для применения к верхнему правому опорному отсчету и левому опорному отсчету можно задать одинаковыми или определить в зависимости от ширины W и высоты H текущего блока. Например, если текущий блок неквадратный, вес для применения к верхнему правому опорному отсчету можно определить в виде W/(W+H), а вес для применения к нижнему левому опорному отсчету можно определить в виде H/(W+H).
[00328] Кроме того, можно сгенерировать правый опорный отсчет P(W, у) для целевого предсказываемого отсчета (х, у) на основе нижнего правого опорного отсчета P(W, H) и верхнего правого опорного отсчета P(W, -1). Например, правый предсказанный отсчет P(W, у) можно вычислить в виде взвешенной суммы или среднего значения нижнего правого опорного отсчета P(W, H) и верхнего правого опорного отсчета P(W, -1). Кроме того, можно сгенерировать нижний опорный отсчет Р(х, Н) для целевого предсказываемого отсчета (х, у) на основе нижнего правого опорного отсчета P(W, H) и нижнего левого опорного отсчета Р(-1, Н). Например, нижний опорный отсчет Р(х, Н) можно вычислить в виде взвешенной суммы или среднего значения нижнего правого опорного отсчета P(W, H) и левого опорного отсчета Р(-1, Н).
[00329] В примере на ФИГ. 18 (b), когда будут сгенерированы правый опорный отсчет и нижний опорный отсчет, можно сгенерировать первый предсказанный отсчет Рп(х, у) и второй предсказанный отсчет Pv(x, у) целевого предсказываемого отсчета путем применения сгенерированных таким образом опорных отсчетов. В этом случае первый предсказанный отсчет Ph(x, у) можно сгенерировать на основе взвешенной суммы левого опорного отсчета Р(-1, у) и правого опорного отсчета P(W, у), а второй предсказанный отсчет Pv(x, у) можно сгенерировать на основе взвешенной суммы верхнего опорного отсчета Р(х, -1) и нижнего опорного отсчета Р(х, Н).
[00330] ФИГ. 19 и 20 - схемы для разъяснения того, как определяют правый опорный отсчет и нижний опорный отсчет для неквадратного блока по одному из вариантов осуществления настоящего изобретения.
[00331] В примере на ФИГ. 19, если текущий блок представляет собой неквадратный блок (N/2)×N, правый опорный отсчет можно получить на основе верхнего правого опорного отсчета P(N/2, -1), а нижний опорный отсчет можно получить на основе нижнего левого опорного отсчета Р(-1, N).
[00332] В качестве альтернативы, правый опорный отсчет или нижний опорный отсчет можно получить на основе по меньшей мере одного из следующего: взвешенной суммы, среднего, минимального или максимального значения верхнего правого опорного отсчета P(N/2, -1) и нижнего левого опорного отсчета Р(-1, N). Например, правый опорный отсчет можно получить на основе взвешенной суммы или среднего значения P(N/2, -1) и Р(-1, N) или путем интерполирования нижнего правого опорного отсчета и верхнего правого опорного отсчета после получения нижнего правого опорного отсчета P(N/2, N) на основе P(N/2, -1) и Р(-1, N). В качестве альтернативы, нижний опорный отсчет можно получить на основе взвешенной суммы или среднего значения P(N/2, -1) и Р(-1, N) или путем интерполирования нижнего правого опорного отсчета и нижнего левого опорного отсчета после получения нижнего правого опорного отсчета P(N/2, N) на основе P(N / 2, -1) и Р(-1, N).
[00333] При этом, если, как в примере на ФИГ. 20, текущий блок представляет собой неквадратный блок Nx(N/2), правый опорный отсчет можно получить на основе верхнего правого опорного отсчета P(N, -1), а нижний опорный отсчет можно получить на основе нижнего левого опорного отсчета Р(-1, N/2).
[00334] В качестве альтернативы, правый опорный отсчет или нижний опорный отсчет можно получить на основе по меньшей мере одного из следующего: взвешенной суммы, среднего, минимального или максимального значения верхнего левого опорного отсчета P(N, -1) и нижнего левого опорного отсчета Р(-1, N/2). Например, правый опорный отсчет можно получить на основе взвешенной суммы или среднего значения P(N, -1) и Р(-1, N/2) или путем интерполирования нижнего правого опорного отсчета и верхнего правого опорного отсчета после получения нижнего правого опорного отсчета P(N, N/2) на основе P(N, -1) и Р(-1, N/2). В качестве альтернативы, нижний опорный отсчет можно получить на основе взвешенной суммы или среднего значения P(N, -1) и P (-1, N/2) или путем интерполирования нижнего правого опорного отсчета и нижнего левого опорного отсчета после получения нижнего правого опорного отсчета P(N, N/2) на основе P (N, -1) и P (-1, N/2).
[00335] В примере, раскрытом на ФИГ. 18 - 20, нижний опорный отсчет можно получить на основе по меньшей мере одного из следующего: нижнего левого опорного отсчета текущего блока, расположенного в том же горизонтальном ряду, что и нижний опорный отсчет, или верхнего правого опорного отсчета текущего блока, расположенного в том же вертикальном ряду, что и правый опорный отсчет, а правый опорный отсчет можно получить на основе по меньшей мере одного из следующего: верхнего правого опорного отсчета текущего блока, расположенного в том же вертикальном ряду, что и правый опорный отсчет, или нижнего левого опорного отсчета текущего блока, расположенного в том же горизонтальном ряду, что и нижний опорный отсчет. В отличие от раскрытого примера, правый опорный отсчет или левый опорный отсчет можно получить на основе по меньшей мере одного из следующего: верхнего центрального опорного отсчета или левого центрального опорного отсчета. Например, после получения нижнего центрального отсчета на основе верхнего центрального отсчета и нижнего левого опорного отсчета, можно сгенерировать нижние отсчеты путем интерполяции или экстраполяции нижнего центрального отсчета и нижнего левого отсчета. Кроме того, после получения правого центрального отсчета путем применения левого центрального отсчета и правого верхнего отсчета, можно сгенерировать нижние отсчеты путем интерполяции или экстраполяции правого центрального отсчета и верхнего правого отсчета.
[00336] Местоположение опорных отсчетов для генерации первого предсказанного изображения и второго предсказанного изображения можно определять по-разному в зависимости от размера или формы текущего блока. Например, в зависимости от размера или формы текущего блока, положение верхнего опорного отсчета или левого опорного отсчета для получения правого опорного отсчета или нижнего опорного отсчета можно определять по-разному.
[00337] Например, если текущий блок представляет собой квадратный блок размером NxN, правый опорный отсчет можно получить на основе верхнего правого опорного отсчета P(N, -1), а нижний опорный отсчет можно получить на основе нижнего левого опорного отсчета Р(-1, N). В качестве альтернативы, если текущий блок представляет собой квадратный блок размером NxN, правый опорный отсчет и нижний опорный отсчет можно получить на основе по меньшей мере одного из следующего: взвешенной суммы, среднего, минимального или максимального значения верхнего правого опорного отсчета P(N, -1) и нижнего левого опорного отсчета Р(-1, N).
[00338] При этом, если текущий блок представляет собой неквадратный блок размером Nx2/N, нижний центральный опорный отсчет P(N/2, N/2) можно получить на основе верхнего центрального опорного отсчета P(N/2, -1) и нижнего левого опорного отсчета Р(-1, N / 2), а затем можно получить нижние опорные отсчеты на основе полученного таким образом нижнего центрального опорного отсчета. Например, нижние опорные отсчеты можно получать путем интерполяции или экстраполяции нижнего центрального опорного отсчета и нижнего левого опорного отсчета. В качестве альтернативы, если текущий блок представляет собой неквадратный блок размером N/2xN, правые центральные опорные отсчеты P(N/2, N/2) можно получить на основе верхнего правого опорного отсчета P(N/2, -1) и левого центрального опорного отсчета Р(-1, N/2), а затем можно получить правые опорные отсчеты на основе полученного таким образом правого центрального опорного отсчета. Например, правые опорные отсчеты можно получать путем интерполяции или экстраполяции правого центрального опорного отсчета и верхнего правого опорного отсчета.
[00339] Первое предсказанное изображение можно вычислить на основе взвешенного предсказания опорных отсчетов, расположенных в том же горизонтальном ряду, что и целевой предсказываемый отсчет. Кроме того, можно вычислить второе предсказанное изображение на основе взвешенного предсказания опорных отсчетов, расположенных в том же вертикальном ряду, что и целевой предсказываемый отсчет.
[00340] В дополнение к раскрытому выше примеру, первое предсказанное изображение или второе предсказанное изображение можно сгенерировать, применив среднее значение, минимальное значение или максимальное значение опорных отсчетов.
[00341] В зависимости от того, входит ли целевой предсказываемый отсчет в заранее определенную область текущего блока, размер или форму и т.п.текущего блока, а также способ получения опорного отсчета, можно задавать по-разному, либо по-разному можно задавать способ получения первого предсказанного изображения или второго предсказанного изображения. В частности, в зависимости от положения целевого предсказываемого отсчета, по-разному определяют число опорных отсчетов или положение опорного отсчета для получения правого или нижнего опорного отсчета, либо по-разному можно задавать вес или число опорных отсчетов для получения первого предсказанного изображения или второго предсказанного изображения.
[00342] Например, правый опорный отсчет для генерирования первого предсказанного изображения целевых предсказываемых отсчетов, входящих в заранее определенную область, можно получить с применением только верхнего опорного отсчета, а правый опорный отсчет для генерирования первого предсказанного изображения целевых предсказываемых отсчетов за пределами заранее определенной области можно получить на основе взвешенной суммы или среднего значения верхнего опорного отсчета и левого опорного отсчета.
[00343] Например, если, как в примере на ФИГ. 19, текущий блок представляет собой неквадратный блок, чья высота больше ширины, правый опорный отсчет целевого предсказываемого отсчета у положения (х, у) в заранее определенной области в текущем блоке можно получить на основе P(N/2, -1). Например, правый опорный отсчет целевого предсказываемого отсчета в заранее определенной области можно сгенерировать путем копирования значения опорного отсчета P(N/2, -1). При этом правый опорный отсчет целевого предсказываемого отсчета у положения (х ', у') за пределами заранее определенной области в текущем блоке можно получить на основе взвешенной суммы или среднего значения P(N/2, -1) и P (-1, N). Например, правый опорный отсчет целевого предсказываемого отсчета за пределами заранее определенной области можно сгенерировать путем интерполяции нижнего правого опорного отсчета P(N/2, N), полученного на основе P(N/2, -1) и Р(-1, N), и верхнего правого опорного отсчета P (N/2, -1).
[00344] В качестве альтернативы, если, как в примере на ФИГ. 20, текущий блок представляет собой неквадратный блок, чья ширина больше высоты, нижний опорный отсчет целевого предсказываемого отсчета у положения (х, у) в заранее определенной области в текущем блоке можно получить на основе Р(-1, N/2). Например, нижний опорный отсчет целевого предсказываемого отсчета в заранее определенной области можно сгенерировать путем копирования значения опорного отсчета Р(-1, N/2). При этом нижний опорный отсчет целевого предсказываемого отсчета у положения (х', у') за пределами заранее определенной области в текущем блоке можно получить на основе взвешенной суммы или среднего значения P(N, -1) и P (-1, N/2). Например, нижний опорный отсчет целевого предсказываемого отсчета за пределами заранее определенной области можно сгенерировать путем интерполяции нижнего правого опорного отсчета P(N, N / 2), полученного на основе P(N, -1) и Р(-1, N/2), и нижнего левого опорного отсчета P (-1, N/2).
[00345] В другом примере первое предсказанное изображение или второе предсказанное изображение для целевых предсказываемых отсчетов в заранее определенной области можно сгенерировать на основе взвешенной суммы опорных отсчетов, при этом первое предсказанное изображение или второе предсказанное изображение для целевых предсказываемых отсчетов за пределами заранее определенной области можно сгенерировать, применив среднее значение, минимальное значение или максимальное значение опорных отсчетов, либо с применением только одного из опорных отсчетов, имеющего заранее заданное положение. Например, если, как в примере на ФИГ. 19, текущий блок представляет собой неквадратный блок, чья высота больше ширины, первое предсказанное изображение для целевого предсказываемого отсчета у положения (х, у) в заранее определенной области в текущем блоке можно сгенерировать с применением только одного из следующих: правого опорного отсчета P(N/2, у), полученного на основе P (N/2, -1), или левого опорного отсчета у положения Р(-1, у). При этом, первое предсказанное изображение для целевого предсказываемого отсчета у положения (x', у') за пределами заранее определенной области можно сгенерировать на основе взвешенной суммы или среднего значения правых опорных отсчетов P(N/2, у'), полученных на основе P(N/2, -1), и опорного отсчета у положения Р(-1, у').
[00346] В качестве альтернативы, если, как в примере на ФИГ. 20, текущий блок представляет собой неквадратный блок, чья ширина больше высоты, второе предсказанное изображение для целевого предсказываемого отсчета у положения (х, у) в заранее определенной области в текущем блоке можно сгенерировать с применением только одного из следующих: нижнего опорного отсчета Р(х, N/2), полученного на основе Р(-1, N/2), или верхнего опорного отсчета у положения Р(х, -1). При этом второе предсказанное изображение для целевого предсказываемого отсчета у положения (х\ у') за пределами заранее определенной области можно сгенерировать на основе взвешенной суммы или среднего значения нижних опорных отсчетов P (x', N/2), полученных на основе Р(-1, N/2), и опорного отсчета у положения P (-1, у').
[00347] В раскрытом выше варианте осуществления, заранее определенная область может представлять собой по меньшей мере один ряд отсчетов, примыкающих к границе текущего блока, или одну из остальных областей за исключением этого ряда отсчетов. В данном случае граница текущего блока может представлять собой по меньшей мере одну из следующих: левую границу, правую границу, верхнюю границу или нижнюю границу. Кроме того, число или местоположение границ для образования заранее определенной области можно задавать по-разному в зависимости от формы текущего блока. В качестве альтернативы, заранее определенная область может представлять собой блок, примыкающий к одному углу текущего блока. В этом случае, размер и форму заранее определенной области можно определять на основе по меньшей мере одного из следующего: размера или формы текущего блока.
[00348] В планарном режиме конечное предсказанное изображение можно получить на основе взвешенной суммы, среднего, минимального или максимального значения первого предсказанного изображения и второго предсказанного изображения.
v
[00349] Например, Уравнение 11 иллюстрирует пример генерирования конечного предсказанного изображения P на основе взвешенной суммы первого предсказанного изображения Ph и второго предсказанного изображения P.
[00350] [Уравнение 11]
h
v
Р(х,у)=(w*P(x,y)+(1-w) *P(x,y)+N)>>(log2(N)+1)
[00351] В Уравнении 11, вес w предсказания может быть разным в зависимости от формы, размера текущего блока или положения целевого предсказываемого отсчета.
[00352] Например, вес w предсказания можно получить на основе ширины текущего блока, высоты текущего блока, соотношения ширины и высоты и т.п. Если текущий блок представляет собой неквадратный блок, чья ширина больше высоты, w можно задать так, чтобы более высокий вес применяли к первому предсказанному изображению. При этом, если текущий блок представляет собой неквадратный блок, чья высота больше ширины, w можно задать так, чтобы более высокий вес применяли ко второму предсказанному изображению.
[00353] Например, если текущий блок является квадратным, значение веса w предсказания может составлять 1/2. При этом, если текущий блок представляет собой неквадратный блок (например, (N/2) xN), чья высота больше ширины, вес w предсказания можно принять равным 1/4. Кроме того, если текущий блок представляет собой неквадратный блок (например, Nx(N/2)), чья ширина больше высоты, вес w предсказания можно принять равным 3/4.
[00354]
[00355] Помимо планарного режима, внутрикадровое предсказание на основе режима прямого кодирования или режима направленного внутрикадрового предсказания также можно выполнять путем применения опорных отсчетов, не являющихся левыми опорными отсчетами и/или верхними опорными отсчетами. В нижеследующем варианте левый опорный отсчет и верхний опорный отсчет будут именоваться «первый опорный отсчет», а опорные отсчеты, не являющиеся левым опорным отсчетом и верхним опорным отсчетом, будут именоваться «второй опорный отсчет». Например, второй опорный отсчет может включать в себя правый опорный отсчет и/или нижний опорный отсчет текущего блока. В данном случае «нижние опорные отсчеты» могут означать опорные отсчеты с координатой по оси у больше, чем у целевого предсказываемого отсчета нижней строки в текущем блоке, а «правые опорные отсчеты» могут означать опорные отсчеты с координатой по оси x больше, чем у целевого предсказываемого отсчета крайнего правого столбца в текущем блоке.
[00356] Решение о выполнении внутрикадрового предсказания с применением второго опорного отсчета можно принимать в зависимости от по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока, или положения целевого предсказываемого отсчета. Например, решение о выполнении внутрикадрового предсказания с применением второго опорного отсчета можно принимать в зависимости от того, является ли режим внутрикадрового предсказания текущего блока вертикальным режимом, горизонтальным режимом или диагональным режимом. В качестве альтернативы, внутрикадровое предсказание для целевого предсказываемого отсчета в заранее определенной области в текущем блоке выполняют путем применения второго опорного отсчета, а внутрикадровое предсказание для целевого предсказываемого отсчета за пределами заранее определенной области в текущем блоке выполняют путем применения первого опорного отсчета.
[00357] В качестве альтернативы, информацию, указывающую то, применяется ли второй опорный отсчет, можно сообщать посредством битового потока. Информация может представлять собой 1-битовый флаг, индекс, служащий для определения режима внутрикадрового предсказания текущего блока и т.п.
[00358] В качестве альтернативы, решение о применении второго опорного отсчета можно принимать в зависимости от того, применяется ли второй опорный отсчет в соседнем блоке текущего блока.
[00359] Второй опорный отсчет можно сгенерировать на основе первого опорного отсчета. Например, второй опорные отсчеты можно сконфигурировать путем изменения порядка первых опорных отсчетов, или же вторые опорные отсчеты можно получить с применением первого опорного отсчета у конкретного положения.
[00360] ФИГ. 21 - схема для разъяснения примера получения второго опорного отсчета с применением первого опорного отсчета.
[00361] Сначала можно получить нижний правый опорный отсчет P(W, H) на основе верхнего правого опорного отсчета r(W, -1) и нижнего левого опорного отсчета r(-1, Н) текущего блока. А именно, нижний правый опорный отсчет можно получить на основе взвешенной суммы или среднего значения верхнего правого опорного отсчета и нижнего левого опорного отсчета. Уравнение 12 представляет пример получения нижнего правого опорного отсчета.
[00362] [Уравнение 12]
[00363] Согласно Уравнению 12, нижний правый опорный отсчет можно вычислить на основе взвешенной суммы верхнего правого опорного отсчета и нижнего левого опорного отсчета. В этом случае, вес для применения к верхнему правому опорному отсчету и нижнему левому опорному отсчету можно определять на основании ширины и высоты текущего блока. Например, если текущий блок является квадратным, к верхнему правому опорному отсчету и нижнему левому опорному отсчету применяют одинаковый вес. При этом, если текущий блок неквадратный, возможно применение разных весов к верхнему правому опорному отсчету и нижнему левому опорному отсчету. При этом способ задания веса раскрыт в Уравнении 12 исключительно в качестве неограничивающего примера осуществления настоящего изобретения. С дополнением к примеру, раскрытому в Уравнении 12, вес можно определять на основе по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока, пригодности опорного отсчета, пригодности соседнего блока, того, является ли режимом кодирования соседнего блока режим внутрикадрового предсказания, или режима внутрикадрового предсказания соседнего блока.
[00364] Правый опорный отсчет можно получить на основе верхнего правого опорного отсчета и нижнего правого опорного отсчета. Например, правый опорный отсчет можно получить путем интерполирования верхнего правого опорного отсчета и нижнего правого опорного отсчета. Уравнение 13 представляет пример получения правого опорного отсчета.
[00365] [Уравнение 13]
[00366] Согласно Уравнению 13, правый опорный отсчет Pr(W, у) (где у - целое число от 0 до высоты ЕК (cu_height)) можно получить путем взвешенного предсказания верхнего правого опорного отсчета r(W, -1) и нижнего правого опорного отсчета P(W, H). В этом случае, вес для применения к верхнему правому опорному отсчету и нижнему правому опорному отсчету можно определять на основе по меньшей мере одного из следующего: ширины, высоты текущего блока или положения правого опорного отсчета. В примере в Уравнении 13, вес (Н-1-у)/Н применяют к верхнему правому опорному отсчету, а вес (у+1)/Н применяют к нижнему правому опорному отсчету. При этом способ задания веса раскрыт в Уравнении 13 исключительно в качестве неограничивающего примера осуществления настоящего изобретения. С дополнением к примеру в Уравнении 13, вес можно определять на основе по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока, пригодности опорного отсчета, пригодности соседнего блока, того, является ли режимом кодирования соседнего блока режим внутрикадрового предсказания, или режима внутрикадрового предсказания соседнего блока.
[00367] Нижний опорный отсчет можно получить на основе нижнего левого опорного отсчета и нижнего правого опорного отсчета. Например, нижний опорный отсчет можно получить путем интерполирования нижнего левого опорного отсчета и нижнего правого опорного отсчета. Уравнение 14 представляет пример получения нижнего опорного отсчета.
[00368] [Уравнение 14]
[00369] Согласно Уравнению 14, нижний опорный отсчет Pb(x, Н) (где x -целое число от 0 до ширины ЕК (cu_width)) можно получить путем взвешенного предсказания нижнего левого опорного отсчета r(-1, Н) и нижнего правого опорного отсчета P(W, H). В этом случае вес для применения к нижнему левому опорному отсчету и нижнему правому опорному отсчету можно определять на основе по меньшей мере одного из следующего: ширины, высоты текущего блока или положения нижнего опорного отсчета. В примере в Уравнении 14 вес (W-1-x)/W применяют к нижнему левому опорному отсчету, а вес (х+1)/Н применяют к нижнему правому опорному отсчету. При этом способ задания веса раскрыт в Уравнении 14 исключительно в качестве неограничивающего примера осуществления настоящего изобретения. В дополнение к примеру в Уравнении 14, вес можно определять на основе по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока, пригодности опорного отсчета, пригодности соседнего блока, того, является ли режимом кодирования соседнего блока режим внутрикадрового предсказания, или режима внутрикадрового предсказания соседнего блока.
[00370] Если текущий блок неквадратный, правый опорный отсчет и нижний опорный отсчет можно получить, как раскрыто выше на примере ФИГ. 19 и 20.
[00371] Как в раскрытом выше примере, второй опорный отсчет, например, правый опорный отсчет и нижний опорный отсчет, можно получить с применением первых опорных отсчетов фиксированного положения, например, верхнего правого опорного отсчета и нижнего левого опорного отсчета. В отличие от раскрытого выше примера, второй опорный отсчет можно получить с применением первого опорного отсчета у положения, отличного от верхнего правого опорного отсчета и/или верхнего левого опорного отсчета. Например, правый опорный отсчет и нижний опорный отсчет можно получить путем применения первого опорного отсчета, например, верхнего центрального опорного отсчета текущего блока или левого центрального отсчета текущего блока.
[00372] В качестве альтернативы, первый опорный отсчет для получения второго опорного отсчета можно определять на основании режима внутрикадрового предсказания текущего блока. Например, правый опорный отсчет и/или нижний опорный отсчет можно получить на основе левого опорного отсчета и/или верхнего опорного отсчета, определенных в соответствии с направленностью режима внутрикадрового предсказания текущего блока.
[00373] В качестве альтернативы, второй опорный отсчет можно определять с применением множества левых опорных отсчетов и/или множества верхних опорных отсчетов. Например, по меньшей мере один из следующих: правый опорный отсчет, нижний опорный отсчет или правый нижний опорный отсчет можно сгенерировать на основе взвешенной суммы, среднего значения, максимального или минимального значения множества левых опорных отсчетов, или взвешенной суммы, среднего значения, максимального или минимального значения множества верхних опорных отсчетов.
[00374] В качестве альтернативы, второй опорный отсчет можно сгенерировать путем копирования первого опорного отсчета. В этом случае, положение первого опорного отсчета для генерации второго опорного отсчета может быть фиксированным, или его можно адаптивно определять на основании размера, формы или режима внутрикадрового предсказания текущего блока, или положения второго опорного отсчета.
[00375] Несмотря на то, что в раскрытом выше примере показано W нижних опорных отсчетов и H правых опорных отсчетов, можно получить большее число нижних опорных отсчетов и/или правых опорных отсчетов. Например, нижние опорные отсчеты можно получать вплоть до того же вертикального ряда, где расположен крайний правый верхний опорный отсчет r(2W-1, -1), или правые опорные отсчеты можно получать вплоть до того же горизонтального ряда, где расположен самый нижний левый опорный отсчет r(-1, 2Н-1).
[00376] В этом случае, нижний опорный отсчет с координатой x больше W можно сгенерировать путем экстраполирования нижнего левого опорного отсчета, а нижний правый опорный отсчет можно сгенерировать путем интерполирования нижнего правого опорного отсчета P (W, H) и крайнего правого нижнего опорного отсчета P(2W-1, H). Крайний правый нижний опорный отсчет можно сгенерировать путем копирования крайнего правого верхнего опорного отсчета r(2W-1, -1) или путем операции взвешенной суммы крайнего правого верхнего опорного отсчета и нижнего левого опорного отсчета. Правый опорный отсчет с координатой у больше H можно сгенерировать путем экстраполирования верхнего правого опорного отсчета и нижнего правого опорного отсчета или путем интерполяции нижних правых опорных отсчетов P(W, H) и самого нижнего из правых опорных отсчетов P (W, 2Н-1). В этом случае, самый нижний правый опорный отсчет можно сгенерировать путем копирования самого нижнего левого опорного отсчета r(-1, 2Н-1) или путем операции взвешенной суммы самого нижнего левого опорного отсчета и верхнего левого опорного отсчета.
[00377] На основе первых опорных отсчетов и заранее определенного режима внутрикадрового предсказания можно выполнить внутрикадровое предсказание в отношении текущего блока, а вторые опорные отсчеты можно получить на основе предсказанных отсчетов, сгенерированных в результате внутрикадрового предсказания. В данном случае вторые опорные отсчеты можно получить на основе отсчета, предсказанного в результате выполнения внутрикадрового предсказания, или восстановленного отсчета на основе предсказанного отсчета. Восстановленное значение может представлять собой значение до применения внутриконтурного фильтра или значение после применения внутриконтурного фильтра.
[00378] Предсказанный отсчет применяют только для получения вторых опорных отсчетов, при этом его можно не применять в качестве действительного предсказанного отсчета текущего блока. То есть, даже в случае выполнения внутрикадрового предсказания на основе заранее определенного режима внутрикадрового предсказания для получения вторых опорных отсчетов, действительное предсказание текущего блока можно получить путем повторного применения того же самого заранее определенного режима внутрикадрового предсказания или отличного от него режима внутрикадрового предсказания.
[00379] В качестве альтернативы, конечный предсказанный отсчет текущего блока можно получить на основе предсказанного отсчета, полученного на основе заранее определенного режима внутрикадрового предсказания, и дополнительного предсказанного отсчета, полученного на основе режима предсказания, отличного от заранее определенного режима внутрикадрового предсказания. Конечный предсказанный отсчет можно получить на основе операции взвешенной суммы или операции усреднения предсказанного отсчета и дополнительного предсказанного отсчета.
[00380] В раскрытом ниже варианте предсказанный отсчет для получения вторых опорных отсчетов будет именоваться «временный предсказанный отсчет».
[00381] Заранее определенный режим внутрикадрового предсказания для получения временного предсказанного отсчета может представлять собой по меньшей мере один из следующих: планарный режим, режим прямого кодирования, горизонтальный режим, вертикальный режим и диагональный режим.
[00382] ФИГ. 22 - схема, иллюстрирующая пример получения правого опорного отсчета и нижнего опорного отсчета путем применения временного предсказанного отсчета, полученного на основе режима планировщика.
[00383] Временный предсказанный отсчет для текущего блока можно получить на основе режима планировщика. В частности, временный предсказанный отсчет для целевого предсказываемого отсчета можно сгенерировать путем применения первого предсказанного отсчета и второго предсказанного отсчета для целевого предсказываемого отсчета. Первый предсказанный отсчет можно получить, применив опорный отсчет, расположенный в горизонтальном направлении относительно целевого предсказываемого отсчета. Например, первый предсказанный отсчет можно сгенерировать на основе операции взвешенной суммы левого опорного отсчета с той же координатой у, что и у целевого предсказываемого отсчета, и опорного отсчета, примыкающего к верхнему правому углу. Второй предсказанный отсчет можно получить, применив опорный отсчет, расположенный в вертикальном направлении относительно целевого предсказываемого отсчета. Например, второй предсказанный отсчет можно сгенерировать на основе операции взвешенной суммы верхнего опорного отсчета с той же координатой х, что и у целевого предсказываемого отсчета, и опорного отсчета, примыкающего к нижнему левому углу.
[00384] Второй опорный отсчет можно сгенерировать путем копирования временного предсказанного отсчета, примыкающего ко второму опорному отсчету. Например, правый опорный отсчет можно сгенерировать путем копирования временного предсказанного отсчета, расположенного у правой границы текущего блока, а нижний опорный отсчет можно сгенерировать путем копирования временного предсказанного отсчета, расположенного у нижней границы текущего блока.
[00385] В качестве альтернативы, второй опорный отсчет можно получить путем прибавления поправки к временному предсказанному отсчету, примыкающему ко второму опорному отсчету. Например, правый опорный отсчет можно получить путем прибавления поправки к временному предсказанному отсчету, расположенному у правой границы текущего блока, а нижний опорный отсчет можно получить путем прибавления поправки к временному предсказанному отсчету, расположенному у нижней границы текущего блока. Поправка может представлять собой значение разности между временным предсказанным отсчетом и соседним ему временным предсказанным отсчетом.
[00386] В качестве альтернативы, второй опорный отсчет можно сгенерировать на основе интерполяции множества временных предсказанных отсчетов, либо операции взвешенной суммы или операции усреднения множества временных предсказанных отсчетов. Например, правый опорный отсчет можно сгенерировать на основе операции взвешенной суммы или операции усреднения временных предсказанных отсчетов, расположенных у правой границы текущего блока, и соседнего им временного предсказанного отсчета. Нижний опорный отсчет можно сгенерировать путем интерполирования временного предсказанного отсчета, расположенного у нижней границы текущего блока, и соседнего ему временного предсказанного отсчета, либо на основе операции взвешенной суммы или операции усреднения этих временных предсказанных отсчетов.
[00387] В качестве альтернативы, второй опорный отсчет можно получить на основе операции взвешенной суммы или операции усреднения соседних опорных отсчетов. Например, правый опорный отсчет, примыкающий к правой границе текущего блока, можно получить путем копирования временного опорного отсчета, расположенного у правой границы текущего блока, а нижний граничный отсчет, примыкающий к нижней границе текущего блока, можно получить путем копирования временного опорного отсчета, расположенного у нижней границы текущего блока. В этом случае, опорный отсчет (например, P(W, H)), примыкающий к нижнему правому углу текущего блока, можно получить на основе операции взвешенной суммы или операции усреднения соседнего правого опорного отсчета (например, P(W, Н-1)) и соседнего нижнего опорного отсчета (например, P(W-1, H)).
[00388] Заранее определенный режим внутрикадрового предсказания для получения временного предсказанного отсчета может быть заранее задан в кодере и в декодере. В качестве альтернативы, информацию для определения заранее определенного режима внутрикадрового предсказания можно сообщать посредством битового потока. В качестве альтернативы, заранее определенный режим внутрикадрового предсказания можно определять на основе режима внутрикадрового предсказания, применяемого для получения действительного предсказанного отсчета.
[00389] Первые опорные отсчеты можно упорядочить в одном измерении для генерации первой одномерной группы опорных отсчетов, а вторые опорные отсчеты можно упорядочить в одном измерении для генерации второй одномерной группы опорных отсчетов. Первую одномерную группу опорных отсчетов можно сконфигурировать только из первых опорных отсчетов, а вторую одномерную группу опорных отсчетов можно сконфигурировать только из вторых опорных отсчетов. В качестве альтернативы, первую одномерную группу опорных отсчетов можно сконфигурировать так, чтобы она содержала не только первые опорные отсчеты, но и по меньше мере один или более вторых опорных отсчетов, а вторую одномерную группу опорных отсчетов можно сконфигурировать так, чтобы она содержала не только вторые опорные отсчеты, но и по меньшей мере один или более первых опорных отсчетов.
[00390] ФИГ. 23 - схема, иллюстрирующая опорные отсчеты, образующие одномерную группу опорных отсчетов.
[00391] В примере на ФИГ. 23 (а) первая одномерная группа опорных отсчетов может состоять из левых опорных отсчетов и верхних опорных отсчетов текущего блока.
[00392] При этом в примере на ФИГ. 23(b) вторую одномерную группу опорных отсчетов можно сконфигурировать так, чтобы она дополнительно содержала не только правые опорные отсчеты и нижние опорные отсчеты текущего блока, но и некоторые левые опорные отсчеты и некоторые верхние опорные отсчеты.
[00393] Таким образом, нижний левый опорный отсчет r(-1, Н) и левые опорные отсчеты с координатой по оси у больше, чем у нижнего левого опорного отсчета из числа левых опорных отсчетов, может входить и в первую одномерную группу опорных отсчетов, и во вторую одномерную группу опорных отсчетов. Кроме того, верхние опорные отсчеты r(W, -1) и верхние опорные отсчеты с координатой по оси x больше, чем у верхнего правого опорного отсчета из числа верхних опорных отсчетов, могут входить и в первую одномерную группу опорных отсчетов, и во вторую одномерную группу опорных отсчетов.
[00394] В качестве альтернативы, в зависимости от по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока, часть первых опорных отсчетов может входить только в первую одномерную группу опорных отсчетов, либо часть первых опорных отсчетов может входить только во вторую одномерную группу опорных отсчетов. Помимо конфигурации одномерной группы опорных отсчетов, порядок упорядочивания опорных отсчетов, образующих одномерную группу опорных отсчетов, также можно определять переменно в зависимости от по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока.
[00395] Для удобства раскрытия, в нижеследующем варианте осуществления группа опорных отсчетов, включающая в себя левые опорные отсчеты и верхние опорные отсчеты текущего блока, будет именоваться «первая группа опорных отсчетов» (например, «первая одномерная группа опорных отсчетов»), а группа опорных отсчетов, включающая в себя правые опорные отсчеты и нижние опорные отсчеты текущего блока, будет именоваться «вторая группа опорных отсчетов» (например, «вторая одномерная группа опорных отсчетов»). Например, первую группу опорных отсчетов и вторую группу опорных отсчетов можно классифицировать в зависимости от того, входят ли в них правые опорные отсчеты и нижние опорные отсчеты. Кроме того, для выполнения внутрикадрового предсказания целевого предсказываемого отсчета, опорный отсчет, выбранный из первой группы опорных отсчетов, будет именоваться «первый опорный целевой отсчет», а опорный отсчет, выбранный из второй группы опорных отсчетов, будет именоваться «второй опорный целевой отсчет».
[00396] Внутрикадровое предсказание текущего блока можно выполнять с применением по меньшей мере одного из следующего: первой группы опорных отсчетов или второй группы опорных отсчетов. Например, предсказанное значение целевого предсказываемого отсчета в текущем блоке можно получить на основе по меньшей мере одного из следующих: первого опорного целевого отсчета, выбранного из первой группы опорных отсчетов, или второго опорного целевого отсчета, выбранного из второй группы опорных отсчетов. В этом случае, первый опорный целевой отсчет и/или второй опорный отсчет можно определить в зависимости от по меньшей мере одного из следующего: формы, размера или режима внутрикадрового предсказания текущего блока. Например, если режим внутрикадрового предсказания текущего блока определен, первый опорный целевой отсчет для целевого предсказываемого отсчета можно указать в соответствии с направлением определенного режима внутрикадрового предсказания, а вторые опорные целевые отсчеты для целевого предсказываемого отсчета можно указать в соответствии с обратным направлением режима внутрикадрового предсказания. В качестве альтернативы, первый опорный целевой отсчет и второй опорный целевой отсчет можно указывать в соответствии с направлением определенного режима внутрикадрового предсказания.
[00397] ФИГ. 24 и 25 - схемы, иллюстрирующие положения первого опорного целевого отсчета и второго опорного целевого отсчета.
[00398] ФИГ. 24 изображает пример, в котором опорный отсчет, расположенный в направлении, указанном в соответствии с режимом внутрикадрового предсказания текущего блока, определяют в качестве первого опорного целевого отсчета, а опорный отсчет, расположенный в направлении, противоположном указанному, определяют в качестве второго опорного целевого отсчета.
[00399] Если направлением режима внутрикадрового предсказания текущего блока является направление по диагонали вверх вправо, опорный отсчет, расположенный в направлении по диагонали вверх вправо относительно целевого предсказываемого отсчета, из числа опорных отсчетов, входящих в первую группу опорных отсчетов, можно определить в качестве первого опорного целевого отсчета. Кроме того, опорный отсчет, расположенный в направлении, противоположном направлению по диагонали вверх вправо (т.е., в направлении по диагонали вниз влево), из числа опорных отсчетов, входящих во вторую группу опорных отсчетов, можно определить в качестве второго опорного целевого отсчета.
[00400] ФИГ. 25 изображает пример, в котором опорные отсчеты, расположенные в направлении указанном внутрикадрово предсказанным отсчетом текущего блока, определяют в качестве первого опорного целевого отсчета и второго опорного целевого отсчета соответственно.
[00401] Если режим внутрикадрового предсказания текущего блока указывает направление вверх вправо, опорный отсчет, расположенный в направлении вверх вправо относительно целевого предсказываемого отсчета, из числа опорных отсчетов, входящих в первую группу опорных отсчетов, можно определить в качестве первого опорного целевого отсчета, а опорные отсчеты, расположенные в направлении вверх вправо относительно целевого предсказываемого отсчета, из числа опорных отсчетов, входящих во вторую группу опорных отсчетов, можно определить в качестве второго опорного целевого отсчета. На ФИГ. 25(a) показано, что верхний опорный отсчет выбран в качестве первого опорного целевого отсчета, а правый опорный отсчет выбран в качестве второго опорного целевого отсчета.
[00402] Если режим внутрикадрового предсказания текущего блока указывает направление вниз влево, опорный отсчет, расположенный в направлении вниз влево относительно целевого предсказываемого отсчета, из числа опорных отсчетов, входящих в первую группу опорных отсчетов, определяют в качестве первого опорного целевого отсчета, а опорный отсчет, расположенный в направлении вниз влево относительно целевого предсказываемого отсчета, из числа опорных отсчетов, входящих во вторую группу опорных отсчетов, можно определить в качестве второго опорного целевого отсчета. На ФИГ. 25(b) показано, что левый опорный отсчет выбран в качестве первого опорного целевого отсчета, а нижний опорный отсчет выбран в качестве второго опорного целевого отсчета.
[00403] В качестве альтернативы, положение второго опорного целевого отсчета можно определять на основе положения первого опорного целевого отсчета, или положение первого опорного целевого отсчета можно определять на основе положения второго опорного целевого отсчета. Например, второй опорный целевой отсчет с той же координатой x или той же координатой у можно выбрать в качестве первого опорного целевого отсчета, либо можно выбрать второй опорный целевой отсчет, положение которого было получено путем прибавления поправки к координате x или координате у первого опорного целевого отсчета. В данном случае поправка может иметь фиксированное значение, либо ее можно адаптивно определять на основании размера, формы или режима внутрикадрового предсказания текущего блока.
[00404] В качестве альтернативы, положение первого опорного целевого отсчета и/или второго опорного целевого отсчета можно определять на основе положения целевого предсказываемого отсчета. Например, можно выбрать первый опорный целевой отсчет и/или второй опорный целевой отсчет с той же координатой x или той же координатой у, что и у целевого предсказываемого отсчета, либо можно выбрать первый опорный целевой отсчет и/или второй опорный целевой отсчет, положение которого было получено путем прибавления поправки к координате x или координате у целевого предсказываемого отсчета. В данном случае поправка может иметь фиксированное значение, либо ее можно адаптивно определять на основании размера, формы или режима внутрикадрового предсказания текущего блока.
[00405] Предсказанное значение целевого предсказываемого отсчета можно сгенерировать на основе по меньшей мере одного из следующих: первого предсказанного изображения на основе первого опорного целевого отсчета или второго предсказанного изображения на основе второго опорного целевого отсчета. В этом случае, первое предсказанное изображение можно сгенерировать, как раскрыто выше с помощью Уравнений с 8 по 10.
[00406] Второе предсказанное изображение можно сгенерировать путем интерполирования или копирования второго опорного целевого отсчета, указанного в соответствии с тангенсом угла наклона режима внутрикадрового предсказания текущего блока. Например, Уравнение 15 - схема, иллюстрирующая пример получения второго предсказанного изображения путем копирования второго опорного целевого отсчета.
[00407] [Уравнение 15]
2
P(x,y)=P_2nd_1D(x+iIdx+1+f)
[00408] В Уравнении 15, Р2(х, у) представляет второе предсказанное изображение, a P_2nd_1D (x+iIdx+1+f) представляет второй опорный целевой отсчет.
[00409] Если тангенс угла наклона режима внутрикадрового предсказания текущего блока нельзя выразить посредством только одного второго опорного целевого отсчета, можно сгенерировать второе предсказанное изображение путем интерполирования множества вторых опорных целевых отсчетов. В частности, если воображаемая угловая линия, соответствующая тангенсу угла наклона и/или углу режима внутрикадрового предсказания, не пересекает целочисленный пэл (т.е., опорный отсчет целочисленного положения), второе предсказанное изображение можно получить путем интерполирования вторых опорных отсчетов, примыкающих к левой и правой сторонам или к верху и низу угловой линии. Например, Уравнение 16 иллюстрирует пример получения второго предсказанного изображения путем интерполирования вторых опорных отсчетов.
[00410] [Уравнение 16]
fact
[00411] Коэффициент интерполяционного фильтра можно определять на основе связанного с весом параметра i. Например, коэффициент интерполяционного фильтра можно определять на основе расстояния между дробным пэлом и целочисленным пэлом (т.е., целочисленным положением каждого опорного отсчета) на угловой линии.
[00412] Уравнение 16 иллюстрирует применение интерполяционного фильтра, число отводов которого составляет 2, при этом вместо него можно применить интерполяционный фильтр с числом отводов больше 2.
[00413] Конечное предсказанное изображение целевого предсказываемого отсчета можно получить на основе по меньшей мере одного из следующих: первого предсказанного изображения или второго предсказанного изображения. Например, первое предсказанное изображение можно определить в качестве конечного предсказанного изображения целевого предсказываемого отсчета, или второе предсказанное изображение можно определить в качестве конечного предсказанного изображения целевого предсказываемого отсчета. В качестве альтернативы, конечное предсказанное изображение целевого предсказываемого отсчета можно определять на основе взвешенной суммы или среднего значения первого предсказанного изображения и второго предсказанного изображения.
[00414] ФИГ. 26 - схема, иллюстрирующая пример получения предсказанного отсчета на основе операции взвешенной суммы первого опорного целевого отсчета и второго опорного целевого отсчета.
[00415] Предсказанное значение целевого предсказываемого отсчета можно получить на основе операции взвешенной суммы первого предсказанного изображения и второго предсказанного изображения. Иными словами, предсказанное значение можно получить на основе операции взвешенной суммы первого опорного целевого отсчета и второго опорного целевого отсчета.
[00416] Уравнение 17 описывает пример получения конечного предсказанного отсчета на основе операции взвешенной суммы первого предсказанного изображения и второго предсказанного изображения.
[00417] [Уравнение 17]
1
2
Р(х, у)=w(x, у)×P(x, у)+(1-w(x,y))×Р(х, у)
[00418] В Уравнении 17, Р1(х, у) представляет первое предсказанное изображение или первый опорный целевой отсчет, а Р2(х, у) представляет второе предсказанное изображение или второй опорный целевой отсчет. Кроме того, w(x, у) представляет вес для применения к первому предсказанному изображению.
[00419] Вес для применения к каждому из целевых предсказываемых отсчетов можно определять на основе положения целевого предсказываемого отсчета. Например, нижеследующее Уравнение 18 описывает пример определения веса w.
[00420] [Уравнение 18]
w=(x+y)/N
[00421] В Уравнении 18, x представляет координату целевого предсказываемого отсчета по оси х, а у представляет координату целевого предсказываемого отсчета по оси у. N обозначает L1-норму между первым опорным целевым отсчетом и вторым опорным целевым отсчетом. Например, если первый опорный целевой отсчет имеет координату (х0, у0), а второй опорный целевой отсчет - координату (х1, у1), можно определить N |х0-х1|+|у0-у1|.
[00422] В качестве альтернативы, веса, присваиваемые первому предсказанному изображению и второму предсказанному изображению, можно определять на основании по меньшей мере одного из следующего: местоположения целевого предсказываемого отсчета, либо размера, формы или режима внутрикадрового предсказания текущего блока. Например, Уравнение 19 описывает пример, в котором веса определяют на основании размера текущего блока и положения целевого предсказываемого отсчета.
[00423] [Уравнение 19]
[00424] В Уравнении 19, W и H представляют ширину и высоту текущего блока соответственно, а (х, у) представляет координату целевого предсказываемого отсчета.
[00425] В примере Уравнения 19, чем целевой предсказываемый отсчет ближе к верхнему левому углу текущего блока, тем больше может быть вес для применения к первому предсказанному изображению. Кроме того, чем целевой предсказываемый отсчет ближе к нижнему правому углу текущего блока, тем больше может быть вес для применения ко второму предсказанному изображению.
[00426] В качестве альтернативы, вес можно получить на основе соседнего блока текущего блока. В данном случае соседний блок текущего блока может представлять собой по меньшей мере один из следующих: верхний соседний блок, левый соседний блок или соседний блок, примыкающий к углу текущего блока (например, верхний левый соседний блок, верхний правый соседний блок или нижний левый соседний блок).
[00427] В качестве альтернативы, информацию для определения веса можно сообщать посредством битового потока. Информация может указывать значение веса для применения к первому предсказанному изображению или второму предсказанному изображению или значение веса разности между текущим блоком и соседним блоком.
[00428] В качестве альтернативы, первое предсказанное изображение можно задать в качестве конечного предсказанного изображения в первой области текущего блока, а второе предсказанное изображение можно задать в качестве конечного предсказанного изображения во второй области текущего блока. Первую область и вторую область можно сгенерировать путем деления текущего блока надвое вертикальной линией, горизонтальной линией или диагональной линией. Например, первая область и вторая область могут представлять собой прямоугольные или треугольные сегменты, сгенерированные путем деления текущего блока. Предсказанное значение положения, примыкающего к границе между первой областью и второй областью, можно получить путем взвешенного предсказания первого предсказанного изображения и второго предсказанного изображения. В этом случае, веса для применения к первому предсказанному изображению и второму предсказанному изображению можно определять на основе по меньшей мере одного из следующего: положения целевого предсказываемого отсчета, размера, формы или режима внутрикадрового предсказания текущего блока.
[00429] Как в раскрытом выше примере, получение конечного предсказанного изображения на основе множества предсказанных изображений может именоваться «двунаправленное внутрикадровое предсказание» (или «двойное внутрикадровое предсказание»).
[00430] Двойное внутрикадровое предсказание можно применять только для части областей в текущем блоке. В этом случае область применения двойного внутрикадрового предсказания может быть предварительно задана в кодере и в декодере. Например, двойное внутрикадровое предсказание можно применять к блоку заранее определенного размера (например, 4×4), примыкающему к нижнему правому углу текущего блока. В качестве альтернативы, область применения двойного внутрикадрового предсказания можно определять адаптивно в зависимости от размера, формы или режима внутрикадрового предсказания текущего блока. В качестве альтернативы, информацию для определения области применения двойного внутрикадрового предсказания (например, информацию, указывающую размер или местоположения этого участка) можно сообщать посредством битового потока.
[00431] ФИГ. 28 - схема, иллюстрирующая область применения двунаправленного внутрикадрового предсказания.
[00432] Конечный предсказанный отсчет в области применения двунаправленного внутрикадрового предсказания можно получить путем взвешенного предсказания первого предсказанного изображения и второго предсказанного изображения. При этом первое предсказанное изображение или второе предсказанное изображение можно определить в качестве конечного предсказанного отсчета в области, где двунаправленное внутрикадровое предсказание не применяют.
[00433] Форма области применения двунаправленного внутрикадрового предсказания может быть прямоугольной или треугольной.
[00434] В раскрытом выше примере было сказано, что двунаправленное внутрикадровое предсказание выполняют с применением первого опорного целевого отсчета, выбранного из первой группы отсчетов, и второго опорного целевого отсчета, выбранного из второй группы отсчетов. В отличие от раскрытого примера, также можно выбрать множество опорных отсчетов из первой группы отсчетов для выполнения двунаправленного внутрикадрового предсказания или выбрать множество опорных отсчетов из второй группы отсчетов для выполнения двунаправленного внутрикадрового предсказания. Например, если направлением режима внутрикадрового предсказания текущего блока является направление по диагонали вверх вправо или направление по диагонали вниз влево, двунаправленное внутрикадровое предсказание можно выполнять путем выбора верхнего опорного отсчета и левого опорного отсчета из первой группы отсчетов. То есть, конечный предсказанный отсчет текущего блока можно получить путем взвешенного предсказания первого опорного изображения, полученного на основе верхнего опорного отсчета, и второго опорного изображения, полученного на основе нижнего опорного отсчета.
[00435] В качестве альтернативы, в зависимости от режима внутрикадрового предсказания, двунаправленное внутрикадровое предсказание можно выполнять путем выбора правого опорного отсчета и нижнего опорного отсчета из второй группы отсчетов.
[00436] Двунаправленное внутрикадровое предсказание можно задать в качестве независимого режима внутрикадрового предсказания. Например, можно задать всего 2N+2 режима внутрикадрового предсказания путем здания N режимов направленного предсказания и N режимов двунаправленного внутрикадрового предсказания, соответствующих N режимам направленного предсказания. Например, добавив режим двунаправленного внутрикадрового предсказания к режиму внутрикадрового предсказания, проиллюстрированному на ФИГ. 9, всего можно задать 68 режимов внутрикадрового предсказания (то есть, два режима ненаправленного внутрикадрового предсказания, 33 режима направленного внутрикадрового предсказания и 33 режима двунаправленного внутрикадрового предсказания). Разумеется, также возможно применение режимов направленного внутрикадрового предсказания числом больше или меньше 33 или режимов двунаправленного внутрикадрового предсказания числом больше или меньше 33.
[00437] В качестве альтернативы, после определения режима внутрикадрового предсказания текущего блока, можно определить, нужно ли применить данный определенный режим внутрикадрового предсказания для перехода к режиму двунаправленного предсказания. Например, когда режим внутрикадрового предсказания текущего блока будет определен, можно декодировать информацию о том, нужно ли применить данный определенный режим внутрикадрового предсказания в качестве режима двунаправленного внутрикадрового предсказания. В качестве неограничивающего примера, информация может представлять собой 1-битовый флаг (например, bi_intra_flag. Значение 0 флага bi_intra_flag указывает на выполнение направленного внутрикадрового предсказания, а значение 1 флага bi_intra_flag указывает на выполнение двунаправленного внутрикадрового предсказания. То есть, если значение bi_intra_flag составляет 0, первое предсказанное изображение определяют в качестве конечного предсказанного отсчета текущего блока, а если значение bi_intra_flag составляет 1, в качестве конечного предсказанного отсчета текущего блока можно определить взвешенное предсказание первого предсказанного изображения и второго предсказанного изображения.
[00438] В качестве альтернативы, в зависимости от того, был ли применен режим двунаправленного внутрикадрового предсказания в отношении соседнего блока, примыкающего к текущему блоку, можно определить то, применяется ли режим двунаправленного внутрикадрового предсказания в отношении текущего блока. Например, если режим внутрикадрового предсказания текущего блока является тем же, что и потенциальный режим (т.е., потенциальный НВР), полученный на основе режима внутрикадрового предсказания соседнего блока, то, нужно ли применить режим двунаправленного внутрикадрового предсказания для текущего блока, можно определить так же, как было определено то, был ли применен режим двунаправленного внутрикадрового предсказания в соседнем блоке.
[00439] В качестве альтернативы, решение о выполнении двунаправленного внутрикадрового предсказания можно принимать в зависимости от размера и/или формы текущего блока. Например, двунаправленное внутрикадровое предсказание разрешено только для блока размером не меньше 32×32. Таким образом, двунаправленное внутрикадровое предсказание можно не применять, если размер текущего блока меньше 32×32, при этом двунаправленное внутрикадровое предсказание можно применять, если размер текущего блока составляет 32×32.
[00440] В другом примере, двунаправленное внутрикадровое предсказание может быть разрешено только для квадратного блока или двунаправленное внутрикадровое предсказание может быть разрешено только для не квадратного блока.
[00441] В качестве альтернативы, двунаправленное внутрикадровое предсказание можно применять только для части режимов направленного внутрикадрового предсказания. Например, ФИГ. 26 представляет собой пример идентификации и указания режима направленного предсказания, в котором разрешено двунаправленное внутрикадровое предсказание. В примере на ФИГ. 26 двунаправленное внутрикадровое предсказание разрешено только для части режимов внутрикадрового предсказания от горизонтального направления до вертикального направления. В этом случае, двунаправленное внутрикадровое предсказание можно выполнять по умолчанию, если выбран режим внутрикадрового предсказания в этом диапазоне, либо решение о выполнении режима двунаправленного внутрикадрового предсказания можно принимать на основе по меньшей мере одного из следующего: информации, преобразованной посредством битового потока, размера или формы текущего блока, если выбран режим внутрикадрового предсказания в указанном диапазоне.
[00442] Пример режима внутрикадрового предсказания, в котором разрешено двунаправленное внутрикадровое предсказание, на ФИГ. 26 не является ограничивающим. Режим внутрикадрового предсказания, в котором разрешено двунаправленное внутрикадровое предсказание, может быть заранее задан в кодере и в декодере, или его можно адаптивно определять на основании размера и/или формы текущего блока. В качестве альтернативы, информацию для определения режима внутрикадрового предсказания, в котором разрешено двунаправленное внутрикадровое предсказание, можно сообщать посредством битового потока.
[00443] ФИГ. 29 - блок-схема, иллюстрирующая процесс принятия решения о применении режима двунаправленного внутрикадрового предсказания по настоящему изобретению.
[00444] Сначала можно определить, является ли режим внутрикадрового предсказания текущего блока ненаправленным режимом (S2710). Ненаправленный режим может представлять собой по меньшей мере один из следующих: планарный или прямого кодирования.
[00445] Информацию, указывающую то, является ли режим внутрикадрового предсказания текущего блока ненаправленным режимом, можно сообщать посредством битового потока. Например, по меньшей мере одно из следующего: флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока ненаправленным режимом, флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока планарным режимом, или флаг, указывающий, является ли режим внутрикадрового предсказания текущего блока режимом прямого кодирования, можно сообщать посредством битового потока.
[00446] В качестве альтернативы, режим внутрикадрового предсказания текущего блока можно определять на основе потенциального НВР или остаточной информации о режиме.
[00447] Если режим внутрикадрового предсказания текущего блока является ненаправленным режимом, двунаправленное внутрикадровое предсказание не применяют к текущему блоку (S2720).
[00448] Если режим внутрикадрового предсказания текущего блока не является ненаправленным режимом, можно принять решение о применении двунаправленного внутрикадрового предсказания к текущему блоку (S2730). Решение о применении двунаправленного внутрикадрового предсказания к текущему блоку можно принимать на основе информации, преобразованной из битового потока, формы текущего блока, размера текущего блока или режима внутрикадрового предсказания текущего блока.
[00449] Например, решение о применении двунаправленного внутрикадрового предсказания к текущему блоку можно принять на основе флага (например, bi_pred_flag), преобразованного из битового потока. Значение 0 флага bi_pred_flag указывает на неприменение двунаправленного внутрикадрового предсказания к текущему блоку, а значение 1 флага bi_pred_flag указывает на применение двунаправленного внутрикадрового предсказания к текущему блоку. В качестве альтернативы, решение о применении двунаправленного внутрикадрового предсказания к текущему блоку можно принимать в зависимости от того, является ли режим внутрикадрового предсказания текущего блока режимом направленного предсказания с применением двунаправленного внутрикадрового предсказания.
[00450] Для выполнения однонаправленного или двунаправленного внутрикадрового предсказания можно получить опорный отсчет текущего блока. Опорные отсчеты могут представлять собой первые опорные отсчеты, примыкающие к левой стороне и верху текущего блока, и вторые опорные отсчеты, примыкающие к правой стороне и низу. Вторые опорные отсчеты можно получать только в случае применения двунаправленного внутрикадрового предсказания к текущему блоку.
[00451] В случае неприменения двунаправленного внутрикадрового предсказания к текущему блоку, можно выполнить однонаправленное внутрикадровое предсказание согласно режиму внутрикадрового предсказания текущего блока (S2740). При однонаправленном внутрикадровом предсказании, предсказанный отсчет можно получить на основе по меньшей мере одного из первых опорных отсчетов.
[00452] В случае применения двунаправленного внутрикадрового предсказания к текущему блоку, двунаправленное внутрикадровое предсказание можно выполнять согласно режиму внутрикадрового предсказания текущего блока (S2750). При двунаправленном внутрикадровом предсказании, предсказанный отсчет можно получить на основе первого предсказанного изображения, полученного на основе по меньшей мере одного из первых опорных целевых отсчетов, и второго предсказанного изображения, полученного на основе по меньшей мере одного из вторых опорных целевых отсчетов. Первые опорные целевые отсчеты и вторые базовые опорные отсчеты можно определять на основании направленности режима внутрикадрового предсказания или в зависимости от размера, формы текущего блока или местоположения другого опорного целевого отсчета. Когда первое предсказанное изображение и второе предсказанное изображение будут получены, можно будет получить предсказанный отсчет путем взвешенного предсказания первого предсказанного изображения и второго предсказанного изображения.
[00453]
[00454] В другом примере, после деления текущего блока на множество областей, внутрикадровое предсказание можно выполнять в отношении каждой из полученных в результате деления областей. Например, для первой области, входящей в текущий блок, внутрикадровое предсказание можно выполнять с применением опорных отсчетов, входящих в первую группу опорных отсчетов. При этом, для второй области, входящей в текущий блок, внутрикадровое предсказание можно выполнять с применением опорных отсчетов, полученных на основе предсказанного значения или восстановленного значения первой области, опорных отсчетов, входящих в первую группу опорных отсчетов, или опорных отсчетов, входящих во вторую группу опорных отсчетов.
[00455] В этом случае, первый режим внутрикадрового предсказания, применяемый к первой области, и второй режим внутрикадрового предсказания, применяемый ко второй области, могут быть одинаковыми или отличными друг от друга. Например, любой режим внутрикадрового предсказания - первый или второй - может быть заранее задан кодером и декодером. Например, любой режим внутрикадрового предсказания - первый или второй - может представлять собой планарный режим, режим прямого кодирования, горизонтальный режим, вертикальный режим или диагональный режим. В качестве альтернативы, любой режим внутрикадрового предсказания - первый или второй - можно определять переменно в зависимости от по меньшей мере одного из следующего: размера, формы или типа разбиения текущего блока. Например, если ширина текущего блока больше высоты, в качестве любого из режимов внутрикадрового предсказания - первого или второго - можно определить вертикальный режим. При этом, если высота текущего блока больше ширины, в качестве любого из режимов внутрикадрового предсказания - первого или второго - можно определить горизонтальный режим. Если ширина и высота текущего блока одинаковы, в качестве любого из режимов внутрикадрового предсказания - первого или второго - можно определить планарный режим или режим прямого кодирования.
[00456] Другой из режимов внутрикадрового предсказания - первый или второй - соответственно можно определить по способу получения на основе потенциального НВР.
[00457] Каждая из областей - первая и вторая - может включать в себя по меньшей мере один отсчет, входящий в текущий блок. Например, первая область может включать в себя по меньшей мере одно из следующего: n столбцов в направлении влево (или вправо) текущего блока или m строк в направлении вверх (или вниз) текущего блока. Значения n и m могут представлять собой целое число: 1, 2 или более. В качестве альтернативы, n и m можно определять на основе по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока. Вторая область может представлять собой остальную область, не являющуюся первой областью, или частичную область этой остальной области.
[00458]
[00459] Один блок кодирования можно поделить на множество субблоков, при этом внутрикадровое предсказание можно выполнять в отношении любого из субблоков. Раскрытый выше способ внутрикадрового предсказания может именоваться «способ множественного внутрикадрового предсказания».
[00460] Субблоки, сгенерированные путем деления одного блока кодирования, могут иметь форму NxM. В данном случае, N и M - это целые числа не меньше 1, при этом N и M могут быть одинаковыми или отличными друг от друга. Число субблоков или размер субблоков, входящих в блок кодирования, можно определять на основе по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока.
[00461] Один режим внутрикадрового предсказания можно применять к множеству субблоков. В этом случае, внутрикадровое предсказание для первого субблока можно выполнять на основе опорных отсчетов, примыкающих к первому субблоку, а внутрикадровое предсказание для второго субблока можно выполнять на основе опорных отсчетов, примыкающих ко второму субблоку. Если первый субблок расположен слева или сверху от второго субблока, по меньшей мере один из опорных отсчетов второго субблока можно получить на основе восстановленного отсчета первого субблока.
[00462] В качестве альтернативы, к каждому субблоку можно применять отличный от других режим внутрикадрового предсказания или отличный от других режим направленного внутрикадрового предсказания. В этом случае, если режимом внутрикадрового предсказания первого субблока является ненаправленный режим, для второго субблока также может быть задан режим внутрикадрового предсказания, являющийся ненаправленным режимом. Например, в случае применения режима прямого кодирования к первому субблоку, ко второму субблоку можно применить планарный режим. В качестве альтернативы, режим внутрикадрового предсказания для применения ко второму субблоку можно получить на основе режима внутрикадрового предсказания, применяемого к первому субблоку. Например, режим внутрикадрового предсказания для применения ко второму субблоку можно получить путем прибавления или вычитания поправки из значения режима внутрикадрового предсказания, применяемого к первому субблоку. Поправку можно определять на основе по меньшей мере одного из следующего: размера текущего блока, формы текущего блока или режима внутрикадрового предсказания первого субблока. В качестве альтернативы, информацию для определения поправки можно сообщать посредством битового потока. В качестве альтернативы, режим внутрикадрового предсказания второго субблока можно задать так, чтобы его угол был обратен углу режима внутрикадрового предсказания, применяемого к первому субблоку, либо так, чтобы он представлял собой режим внутрикадрового предсказания с заранее определенной разностью между его углом и углом режима внутрикадрового предсказания, применяемого к первому субблоку.
[00463] В качестве альтернативы, режим внутрикадрового предсказания второго субблока можно получить на основе режима внутрикадрового предсказания первого субблока с применением заранее заданной таблицы преобразования. Таблица преобразования может устанавливать отношение соответствия между режимами внутрикадрового предсказания. Таблица преобразования может быть заранее задана в кодере и в декодере.
[00464] В качестве альтернативы, информацию для определения режима внутрикадрового предсказания первого субблока и информацию для определения режима внутрикадрового предсказания второго субблока можно сообщать независимо друг от друга.
[00465] В качестве альтернативы, возможно применение неширокоугольного режима внутрикадрового предсказания к первому субблоку и широкоугольного режима внутрикадрового предсказания ко второму субблоку. Решение о применении широкоугольного режима внутрикадрового предсказания к субблоку можно принимать в зависимости от размера или формы текущего блока. Неширокоугольный режим внутрикадрового предсказания может представлять собой режим внутрикадрового предсказания с заранее заданным углом или режим внутрикадрового предсказания с заранее заданным значением разности его угла (или индекса) и угла (или индекса) широкоугольного режима внутрикадрового предсказания.
[00466] ФИГ. 30 иллюстрирует вариант осуществления, в котором применяют способ множественного внутрикадрового предсказания.
[00467] После деления неквадратного блока кодирования на множество субблоков, возможно применение неширокоугольного режима внутрикадрового предсказания к первому субблоку и широкоугольного режима внутрикадрового предсказания ко второму субблоку.
[00468] В данном случае первый субблок и второй субблок можно определять согласно порядку считывания блоков.
[00469] В отличие от проиллюстрированного примера, возможно применение широкоугольного режима внутрикадрового предсказания к первому субблоку и неширокоугольного режима внутрикадрового предсказания ко второму субблоку.
[00470] Решение о применении способа множественного внутрикадрового предсказания можно принимать на основе размера или формы текущего блока. Например, если текущий блок представляет собой неквадратный тип, для него можно задать применение способов множественного внутрикадрового предсказания. В качестве альтернативы, информацию о применении способов множественного внутрикадрового предсказания можно сообщать посредством битового потока. Например, синтаксическую конструкцию isMultiplelntra_flag, указывающую применение или неприменение способа множественного внутрикадрового предсказания, можно сообщать посредством заголовка последовательности, заголовка изображения, заголовка сектора или заголовка блока. Например, значение 1 конструкции isMultiplelntra_flag может означать применение способа множественного внутрикадрового предсказания ко всем неквадратным единицам кодирования. При этом значение 0 конструкции isMultiplelntra_flag может означать неприменение способа множественного внутрикадрового предсказания ко всем неквадратным единицам кодирования.
[00471] В качестве альтернативы, решение о применении способа множественного внутрикадрового предсказания можно принимать на основе информации кодирования. Информация кодирования может включать в себя по меньшей мере одно из следующего: размер, форму или тип дробления текущего блока. Например, если размер текущего блока больше порогового значения или если размер текущего блока меньше порогового значения, способ множественного внутрикадрового предсказания можно применять. Пороговое значение может представлять собой максимальный размер или минимальный размер блока, при котором разрешен способ множественного внутрикадрового предсказания. Пороговое значение может быть заранее задано кодером и декодером. В качестве альтернативы, информацию для определения порогового значения можно сообщать посредством битового потока. В другом примере, если типом дробления вышестоящего узла является первый тип, способ множественного внутрикадрового предсказания может быть разрешен, а если типом дробления вышестоящего узла является второй тип, способ множественного внутрикадрового предсказания может не быть разрешен. Первый тип включает в себя по меньшей мере одно из следующего: разбиение на основе квадродерева, разбиение на основе двоичного дерева или разбиение на основе троичного дерева, а второй тип представляет собой тип дробления, не являющийся первым типом.
[00472] Если режимы внутрикадрового предсказания, применяемые к каждому из субблоков, отличны друг от друга, у границы субблоков можно применять фильтр сглаживания.
[00473] ФИГ. 31 - схема, иллюстрирующая пример, в котором применяют фильтр сглаживания.
[00474] Фильтр сглаживания можно применять к отсчетам, расположенным у границы между первым субблоком и вторым субблоком. В этом случае, отсчет, к которому применяют фильтр сглаживания, может представлять собой предсказанный отсчет или восстановленный отсчет, восстановленный на основе предсказанного отсчета. Отсчеты, расположенные у границы первого субблока, можно преобразовывать с применением значения фильтрации на основе n отсчетов, входящих в первый субблок, и m отсчетов, входящих во второй субблок. Кроме того, отсчеты, расположенные у границы второго субблока, можно преобразовывать в значение фильтрации на основе n отсчетов, входящих во второй субблок, и m отсчетов, входящих в первый субблок. В данном случае n и m могут представлять собой целые числа 1, 2 или более.
[00475] В примере на ФИГ. 31 (а) отсчет q, расположенный у границы первого субблока, можно преобразовать в значение, вычисленное путем применения фильтра сглаживания к отсчету q, отсчету р, расположенному слева от отсчета q, и отсчету r, расположенному справа от отсчета q. В данном случае отсчет q и отсчет p входят в первый субблок, а отсчет r входит во второй субблок.
[00476] В примере на ФИГ. 31 (b) отсчет r, расположенный у границы второго субблока, можно преобразовать в значение, вычисленное путем применения фильтра сглаживания к отсчету r, отсчету q, расположенному слева от отсчета r, и отсчету s, расположенному справа от отсчета r. В данном случае отсчет q входит в первый субблок, а отсчеты r и s входят во второй субблок.
[00477] Коэффициент фильтра сглаживания может составлять {1, 2, 1}.
[00478] На ФИГ. 31 проиллюстрировано, что фильтр сглаживания применяют только к отсчетам, расположенным у границы между первым субблоком и вторым субблоком, однако настоящее изобретение не ограничено этим. Фильтр сглаживания можно применять к отсчетам, расположенным от границы первого субблока и второго субблок до k-го ряда (столбца или строки). В данном случае k может представлять собой целое число 1, 2 или более. Число рядов, к которым применяют фильтр сглаживания, можно определять на основе по меньшей мере одного из следующего: размера, формы или режима внутрикадрового предсказания текущего блока.
[00479] Отсчеты, применяемые в фильтре сглаживания, можно упорядочить ряд в горизонтальном направлении или вертикальном направлении. Например, в примере на ФИГ. 31, если субблоки упорядочены в ряд в горизонтальном направлении, фильтрацию можно выполнять с применением отсчетов, упорядоченных в ряд в горизонтальном направлении. При этом, если субблоки упорядочены в ряд в вертикальном направлении, фильтрацию можно выполнять с применением отсчетов, упорядоченных в ряд в вертикальном направлении.
[00480] В качестве альтернативы, положения отсчетов, применяемых в фильтре сглаживания, можно определять на основании режима внутрикадрового предсказания. Например, если направлением режима внутрикадрового предсказания первого субблока является диагональное направление, фильтрацию можно выполнять с применением отсчетов, расположенных у границы первого субблока, и отсчетов, расположенных в направлении по диагонали относительно этих отсчетов.
[00481] Фильтр сглаживания можно применять к субблокам последовательно. Например, после применения фильтра сглаживания к границе первого субблока, фильтр сглаживания можно применить к границе второго субблока. В качестве альтернативы, фильтр сглаживания можно применять к множеству субблоков параллельно или независимо друг от друга.
[00482]
[00483] Применение вариантов осуществления, раскрытых выше для процесса декодирования или процесса кодирования, к процессу кодирования или к процессу декодирования соответственно входит в объем настоящего изобретения. Изменение заранее определенного порядка раскрытия вариантов осуществления на другой порядок также входит в объем настоящего изобретения.
[00484]
[00485] Несмотря на то, что варианты осуществления были раскрыты выше на примерах ряда этапов или принципиальных схем, они не предназначены для ограничения порядка временной последовательности по настоящему изобретению, при этом их можно выполнять одновременно или в каком-либо другом порядке. Кроме того, каждый из компонентов (например, единиц, модулей и т.п.) в составе блок-схемы раскрытого выше варианта осуществления может быть реализован в виде аппаратного устройства или программного средства, при этом множество компонентов можно скомбинировать с образованием аппаратного устройства или программного средства. Раскрытые выше варианты осуществления могут быть реализованы в виде программных инструкций с возможностью их исполнения посредством разнообразных электронно-вычислительных компонентов и записи в машиночитаемом носителе записей. Машиночитаемый носитель может включать в себя программную инструкцию, файл данных, структуру данных и т.п., либо по-отдельности, либо в комбинации. В число машиночитаемых носителей входят магнитные носители записей, например, жесткие диски, гибкие диски и магнитные ленты; оптические носители данных, например, постоянные запоминающие устройства на компакт-дисках (англ. compact disk read-only memory (CD-ROM)) или постоянные запоминающие устройства на универсальных цифровых дисках (англ. digital versatile disk read-only memory (DVD-ROM)); магнитооптические носители, например, гибкие магнитооптические диски; и аппаратные устройства, например, постоянное запоминающее устройство (ПЗУ, англ. read-only memory (ROM)), оперативное запоминающее устройство (ОЗУ, англ. random-access memory (RAM)) и флеш-память, конструктивно выполненные с возможностью хранения и реализации указанной программной инструкции. Аппаратные устройства могут быть выполнены с возможностью управления ими посредством одного или нескольких программных модулей или наоборот для реализации процессов по настоящему изобретению.
Промышленная применимость
Настоящее изобретение может найти применение в электронном устройстве, выполненном с возможностью кодирования/декодирования изображения.