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

Уровень техники
Область техники, к которой относится изобретение
[1] Настоящее раскрытие относится к технологии кодирования изображения, а более конкретно, к способу и устройству декодирования изображения для выполнения интра-предсказания посредством извлечения списка потенциально подходящих вариантов режимов интра-предсказания из множества типов интра-предсказания в системе кодирования изображения.
Описание предшествующего уровня техники
[2] В последнее время, спрос на высококачественные изображения высокого разрешения, к примеру, изображения высокой четкости (HD) и изображения сверхвысокой четкости (UHD), растет в различных областях техники. Поскольку данные изображений имеют высокое разрешение и высокое качество, объем информации или битов, которые должны передаваться, увеличивается относительно унаследованных данных изображений. Следовательно, когда данные изображений передаются с использованием такой среды, как традиционная проводная/беспроводная широкополосная линия, или данные изображений хранятся с использованием существующего носителя хранения данных, затраты на передачу и затраты на хранение для них увеличиваются.
[3] Соответственно, существует потребность в высокоэффективной технологии сжатия изображений для эффективной передачи, сохранения и воспроизведения информации высококачественных изображений высокого разрешения.
Сущность изобретения
[4] Цель настоящего раскрытия заключается в том, чтобы предоставлять способ и устройство для повышения эффективности кодирования изображения.
[5] Другая цель настоящего раскрытия заключается в том, чтобы предоставлять способ и устройство для повышения эффективности интра-предсказания.
[6] Еще одна другая цель настоящего раскрытия заключается в том, чтобы предоставлять способ и устройство для применения идентичного процесса построения к типам интра-предсказания при построении списка потенциально подходящих вариантов режимов интра-предсказания для извлечения режима интра-предсказания.
[7] Еще одна другая цель настоящего раскрытия заключается в том, чтобы предоставлять способ и устройство для извлечения опорного дискретного отсчета, используемой в режиме DC-интра-предсказания, с учетом индекса опорной линии.
[8] Согласно варианту осуществления настоящего раскрытия, предоставляется способ декодирования изображения, осуществляемый посредством устройства декодирования. Способ включает в себя прием информации изображений, включающей в себя связанную с предсказанием информацию для текущего блока, и формирование восстановленного дискретного отсчета текущего блока на основе информации изображений.
[9] Согласно другому варианту осуществления настоящего раскрытия, предоставляется устройство декодирования, выполняющее декодирование изображений. Устройство декодирования включает в себя энтропийный декодер, выполненный с возможностью принимать информацию изображений, включающую в себя связанную с предсказанием информацию, для текущего блока, и модуль предсказания, выполненный с возможностью формировать восстановленный дискретный отсчет текущего блока на основе информации изображений.
[10] Согласно другому варианту осуществления настоящего раскрытия, предоставляется способ кодирования изображения, осуществляемый посредством устройства кодирования. Способ включает в себя формирование восстановленного дискретного отсчета текущего блока, формирование связанной с предсказанием информации для текущего блока и кодирование информации изображений, включающей в себя связанную с предсказанием информацию.
[11] Согласно другому варианту осуществления настоящего раскрытия, предоставляется устройство кодирования изображения. Устройство кодирования включает в себя модуль предсказания, выполненный с возможностью формировать восстановленный дискретный отсчет текущего блока, и энтропийный кодер, выполненный с возможностью формировать связанную с предсказанием информацию для текущего блока, кодировать информацию изображений, включающую в себя связанную с предсказанием информацию.
Преимущества изобретения
[12] Согласно настоящему раскрытию, можно повышать полную эффективность сжатия изображений/видео.
[13] Согласно настоящему раскрытию, можно уменьшать сложность аппаратной и программной реализации с использованием унифицированного процесса построения списков режимов интра-предсказания для типов интра-предсказания.
[14] Согласно настоящему раскрытию, можно повышать эффективность кодирования с интра-предсказанием посредством уменьшения зависимости от типов интра-предсказания с использованием унифицированного процесса построения списков режимов интра-предсказания для типов интра-предсказания.
[15] Согласно настоящему раскрытию, можно повышать эффективность кодирования интра-предсказания посредством извлечения опорного дискретного отсчета, используемой, когда MRL применяется, и режим интра-предсказания извлекается в качестве режима DC-интра-предсказания на основе индекса опорного кадра.
[16] Согласно настоящему раскрытию, можно повышать эффективность кодирования интра-предсказания посредством извлечения опорного дискретного отсчета, используемой, когда MRL применяется, и режим интра-предсказания извлекается в качестве режима DC-интра-предсказания на основе индекса опорного кадра и форме текущего блока.
[17] Согласно настоящему раскрытию, можно повышать эффективность кодирования интра-предсказания посредством извлечения опорного дискретного отсчета, используемой, когда MRL применяется, и режим интра-предсказания извлекается в качестве режима планарного интра-предсказания на основе индекса опорного кадра.
Краткое описание чертежей
[18] Фиг. 1 кратко иллюстрирует пример устройства кодирования видео/изображений, к которому являются применимыми варианты осуществления настоящего раскрытия.
[19] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию устройства кодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего раскрытия.
[20] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию устройства декодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего раскрытия.
[21] Фиг. 4 схематично показывает иерархическую структуру для кодированного изображения/видео.
[22] Фиг. 5 схематично показывает контекстно-адаптивное двоичное арифметическое кодирование (CABAC) для кодирования синтаксического элемента.
[23] Фиг. 6 иллюстрирует пример способа кодирования видео/изображений на основе интра-предсказания.
[24] Фиг. 7 иллюстрирует пример способа декодирования видео/изображений на основе интра-предсказания.
[25] Фиг. 8 схематично показывает процедуру интра-предсказания.
[26] Фиг. 9 иллюстрирует направленные интра-режимы в 65 направлениях предсказания.
[27] Фиг. 10 иллюстрирует несколько опорных линий, которые могут использоваться в MRL.
[28] Фиг. 11 иллюстрирует пример, в котором блок, к которому применяется ISP, сегментируется на субблоки на основе размеров блоков.
[29] Фиг. 12 иллюстрирует пример извлечения MPM-списка согласно применяемому интра-предсказанию.
[30] Фиг. 13 иллюстрирует пример построения MPM-списка текущего блока и извлечения режима интра-предсказания согласно настоящему варианту осуществления.
[31] Фиг. 14 иллюстрирует пример кодирования на основе интра-предсказания согласно настоящему варианту осуществления.
[32] Фиг. 15 иллюстрирует пример кодирования на основе интра-предсказания согласно настоящему варианту осуществления.
[33] Фиг. 16 иллюстрирует пример кодирования на основе интра-предсказания согласно настоящему варианту осуществления.
[34] Фиг. 17 иллюстрирует опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания.
[35] Фиг. 18 иллюстрирует опорный дискретный отсчет, используемую, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания.
[36] Фиг. 19 иллюстрирует опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания.
[37] Фиг. 20 иллюстрирует опорный дискретный отсчет, используемую, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания.
[38] Фиг. 21 схематично иллюстрирует способ кодирования изображения, осуществляемый посредством устройства кодирования согласно настоящему раскрытию.
[39] Фиг. 22 схематично иллюстрирует устройство кодирования, которое осуществляет способ кодирования изображения согласно настоящему раскрытию.
[40] Фиг. 23 схематично иллюстрирует способ декодирования изображения, осуществляемый посредством устройства декодирования согласно настоящему раскрытию.
[41] Фиг. 24 схематично иллюстрирует устройство декодирования, которое осуществляет способ декодирования изображения согласно настоящему раскрытию.
[42] Фиг. 25 иллюстрирует структурную схему системы потоковой передачи контента, к которой применяется настоящее раскрытие.
Подробное описание вариантов осуществления
[43] Настоящее раскрытие может модифицироваться в различных формах, и его конкретные варианты осуществления описываются и иллюстрируются на чертежах. Тем не менее, эти варианты осуществления не предназначены для ограничения раскрытия. Термины, используемые в нижеприведенном описании, используются для того, чтобы просто описывать конкретные варианты осуществления, но не имеют намерение ограничивать раскрытие. Выражение единственного числа включает в себя выражение множественного числа до этих пор, до этих пор, до тех пор, пока они четко трактуются по-разному. Такие термины, как "включать в себя" и "иметь", предназначены для того, чтобы указывать то, что существуют признаки, числа, этапы, операции, элементы, компоненты либо комбинации вышеозначенного, используемые в нижеприведенном описании, и в силу этого следует понимать, что не исключается возможность наличия или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов либо комбинаций вышеозначенного.
[44] Между тем, элементы на чертежах, описанных в раскрытии, нарисованы независимо для удобства для пояснения различных конкретных функций и не означают то, что элементы осуществляются посредством независимых аппаратных средств или независимого программного обеспечения. Например, два или более элементов из элементов могут объединяться, чтобы формировать один элемент, либо один элемент может сегментироваться на несколько элементов. Варианты осуществления, в которых элементы объединяются и/или сегментируются, принадлежат раскрытию.
[45] Настоящее раскрытие относится к кодированию видео/изображений. Например, способы/варианты осуществления, раскрытые в настоящем раскрытии, могут применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC). Кроме того, способы/варианты осуществления, раскрытые в настоящем раскрытии, могут применяться к способу, раскрытому в стандарте EVC (фундаментального кодирования видео), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, (H.267 или (H.268 и т.д.).
[46] Настоящее раскрытие представляет различные варианты осуществления кодирования видео/изображений, и варианты осуществления могут выполняться в комбинации между собой, если не указано иное.
[47] Далее подробно описываются примерные варианты осуществления настоящего раскрытия со ссылкой на прилагаемые чертежи. Помимо этого, аналогичные ссылки с номерами используются для того, чтобы указывать аналогичные элементы на всех чертежах, и идентичные описания аналогичных элементов опускаются.
[48] Фиг. 1 кратко иллюстрирует пример устройства кодирования видео/изображений, к которому являются применимыми варианты осуществления настоящего раскрытия.
[49] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое устройство (исходное устройство) и второе устройство (приемное устройство). Исходное устройство может доставлять кодированную информацию или данные видео/изображений в форме файла или потоковой передачи в приемное устройство через цифровой носитель хранения данных или сеть.
[50] Исходное устройство может включать в себя видеоисточник, устройство кодирования и передатчик. Приемное устройство может включать в себя приемник, устройство декодирования и модуль рендеринга. Устройство кодирования может называться "устройством кодирования видео/изображений", и устройство декодирования может называться "устройством декодирования видео/изображений". Передатчик может включаться в устройство кодирования. Приемник может включаться в устройство декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[51] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[52] Устройство кодирования может кодировать входное видео/изображение. Устройство кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[53] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в устройство декодирования.
[54] Устройство декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и предсказание, соответствующих работе устройства кодирования.
[55] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[56] В настоящем раскрытии, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу (единичный элемент), представляющую одно изображение в конкретной временной зоне, и срез/плитка представляет собой единицу, составляющую часть кадра при кодировании. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез может включать в себя целое число полных плиток или целое число последовательных законченных CTU-строк в плитке кадра, который может быть исключительно содержащимся в одной NAL-единице.
[57] Между тем, кадр может разделяться на два или более субкадров. Субкадр может представлять собой прямоугольную область одного или более срезов в кадре.
[58] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "дискретный отсчет" может использоваться в качестве термина, соответствующего пикселу. Дискретный отсчет, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
[59] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя дискретные отсчеты (или массивы дискретных отсчетов) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[60] В настоящем описании изобретения, "A или B" может означать "только A", "только B" или "как A, так и B". Другими словами, "A или B" может истолковываться в качестве "A и/или B" в настоящем описании изобретения. Например, "A, B или C" может означать "только A", "только B", "только C" или "любая комбинация A, B и C" в настоящем описании изобретения.
[61] Наклонная черта (/) или запятая (запятая), используемая в настоящем описании изобретения, может означать "и/или". Например, "A/B" может означать "A и/или B". Соответственно, "A/B" может означать "только A", "только B" либо "как A, так и B". Например, "A, B, C" может означать "A, B или C".
[62] В настоящем описании изобретения, "по меньшей мере, одно из A и B" может означать "только A", "только B" или "как A, так и B". Дополнительно, "по меньшей мере, одно из A или B" или "по меньшей мере, одно из A и/или B" может истолковываться в качестве "по меньшей мере, одно из A и B" в настоящем описании изобретения.
[63] Более того, "по меньшей мере, одно из A, B и C" может означать "только A", "только B", "только C" либо "любая комбинация A, B и C" в настоящем описании изобретения. Помимо этого, "по меньшей мере, одно из A, B или C" или "по меньшей мере, одно из A, B и/или C" может означать "по меньшей мере, одно из A, B и C".
[64] Кроме того, круглая скобка, используемая в настоящем описании изобретения, может означать, "например". В частности, в случае "предсказания (интра-предсказания (внутрикадрового предсказания))", оно может представлять то, что "интра-предсказание" предлагается в качестве примера "предсказания". Другими словами, "предсказание" в настоящем описании изобретения не ограничено "интра-предсказанием", и "интра-предсказание" может предлагаться в качестве примера "предсказания". Дополнительно, в случае "предсказания (т.е. интра-предсказания)", оно также может представлять то, что "интра-предсказание" предлагается в качестве примера "предсказания".
[65] Технические признаки, отдельно описанные на одном чертеже, могут реализовываться отдельно или одновременно в настоящем описании изобретения.
[66] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию устройства кодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего раскрытия. В дальнейшем в этом документе, устройство кодирования может включать в себя устройство кодирования изображения и/или устройство кодирования видео. Кроме того, способ/устройство кодирования изображения может включать в себя способ/устройство кодирования видео. Альтернативно, способ/устройство кодирования видео может включать в себя способ/устройство кодирования изображения.
[67] Ссылаясь на фиг. 2, устройство 200 кодирования включает в себя модуль 210 сегментации изображений, модуль 220 предсказания, остаточный процессор 230 и энтропийный кодер 240, сумматор 250, фильтр 260 и запоминающее устройство 270. Модуль 220 предсказания может включать в себя модуль 221 интер-предсказания и модуль 222 интра-предсказания. Остаточный процессор 230 может включать в себя преобразователь 232, квантователь 233, деквантователь 234 и обратный преобразователь 235. Остаточный процессор 230 дополнительно может включать в себя вычитатель 231. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Модуль 210 сегментации изображений, модуль 220 предсказания, остаточный процессор 230, энтропийный кодер 240, сумматор 250 и фильтр 260 могут быть сконфигурированы, по меньшей мере, посредством одного аппаратного компонента (например, набора микросхем или процессора кодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 270 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 270 в качестве внутреннего/внешнего компонента.
[68] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в устройство 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру предсказания, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, единица предсказания и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Единица предсказания может представлять собой единицу выборочного предсказания, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[69] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор дискретных отсчетов или коэффициентов преобразования, состоящих из M столбцов и N строк. Дискретный отсчет, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Дискретный отсчет может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.
[70] В устройстве 200 кодирования, сигнал предсказания (предсказанный блок, массив дискретных отсчетов предсказания), выводимый из модуля 221 интер-предсказания или модуля 222 интра-предсказания, вычитается из сигнала входного изображения (исходного блока, массива исходных дискретных отсчетов), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных дискретных отсчетов), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания сигнала предсказания (предсказанного блока, массива дискретных отсчетов предсказания) из сигнала входного изображения (исходного блока, массива исходных дискретных отсчетов) в кодере 200 может называться "вычитателем 231". Модуль предсказания может выполнять предсказание для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать предсказанный блок, включающий в себя дискретные отсчеты предсказания для текущего блока. Модуль предсказания может определять то, применяется интра-предсказание или интер-предсказание, на основе текущего блока или CU. Как описано ниже в описании каждого режима предсказания, модуль предсказания может формировать различную информацию, связанную с предсказанием, к примеру, информацию режима предсказания, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно предсказания может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.
[71] Модуль 222 интра-предсказания может предсказывать текущий блок посредством ссылки на дискретные отсчеты в текущем кадре. Дискретные отсчеты для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму предсказания. При интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного предсказания или 65 режимов направленного предсказания согласно степени детальности направления предсказания. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного предсказания может использоваться в зависимости от настройки. Модуль 222 интра-предсказания может определять режим предсказания, применяемый к текущему блоку, посредством использования режима предсказания, применяемого к соседнему блоку.
[72] Модуль 221 интер-предсказания может извлекать предсказанный блок для текущего блока на основе опорного блока (массива опорных дискретных отсчетов), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме интер-предсказания (межкадрового предсказания), информация движения может предсказываться в единицах блоков, субблоков или дискретных отсчетов на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, бипредсказание и т.д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 интер-предсказания может конфигурировать список потенциально подходящих вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой потенциально подходящий вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, модуль 221 интер-предсказания может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима предсказания векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.
[73] Модуль 220 предсказания может формировать сигнал предсказания на основе различных способов предсказания, описанных ниже. Например, модуль предсказания может не только применять интра-предсказание или интер-предсказание для того, чтобы предсказывать один блок, но также и одновременно применять как интра-предсказание, так и интер-предсказание. Это может называться "объединенным интер- и интра-предсказанием (CIIP)". Помимо этого, модуль предсказания может быть основан на режиме предсказания на основе внутриблочного копирования (IBC) либо на палитровом режиме для предсказания блока. Режим IBC-предсказания или палитровый режим может использоваться для кодирования изображения/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет предсказание в текущем кадре, но может выполняться аналогично интер-предсказанию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий интер-предсказания, описанных в настоящем раскрытии. Палитровый режим может рассматриваться как пример интра-кодирования или интра-предсказания. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[74] Сигнал предсказания, сформированный посредством модуля предсказания (включающего в себя модуль 221 интер-предсказания и/или модуль 222 интра-предсказания), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе сигнала предсказания, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[75] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для видео/восстановления изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или храниться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В настоящем раскрытии, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из устройства кодирования в устройство декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может храниться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), хранящий сигнал, могут включаться в качестве внутреннего/внешнего элемента устройства 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.
[76] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать сигнал предсказания. Например, остаточный сигнал (остаточный блок или остаточные дискретные отсчеты) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с сигналом предсказания, выводимым из модуля 221 интер-предсказания или модуля 222 интра-предсказания, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных дискретных отсчетов). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, предсказанный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для интер-предсказания следующего кадра посредством фильтрации, как описано ниже.
[77] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.
[78] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и хранить модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[79] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 интер-предсказания. Когда интер-предсказание применяется посредством устройства кодирования, рассогласование предсказания между устройством 200 кодирования и устройством декодирования может исключаться, и эффективность кодирования может повышаться.
[80] DPB запоминающего устройства 270 может хранить модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 интер-предсказания. Запоминающее устройство 270 может хранить информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 интер-предсказания и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может хранить восстановленные дискретные отсчеты восстановленных блоков в текущем кадре и может передавать восстановленные дискретные отсчеты в модуль 222 интра-предсказания.
[81] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию устройства декодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего раскрытия. В дальнейшем в этом документе, устройство декодирования может включать в себя устройство декодирования изображения и/или устройство декодирования видео. Кроме того, способ/устройство декодирования изображения может включать в себя способ/устройство декодирования видео. Альтернативно, способ/устройство декодирования видео может включать в себя способ/устройство декодирования изображения.
[82] Ссылаясь на фиг. 3, устройство 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 предсказания, сумматор 340, фильтр 350, запоминающее устройство 360. Модуль 330 предсказания может включать в себя модуль 331 интер-предсказания и модуль 332 интра-предсказания. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 322. Энтропийный декодер 310, остаточный процессор 320, модуль 330 предсказания, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[83] Когда поток битов, включающий в себя информацию видео/изображений, вводится, устройство 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в устройстве кодирования по фиг. 2. Например, устройство 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Устройство 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в устройстве кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством устройства 300 декодирования, может воспроизводиться посредством устройства воспроизведения.
[84] Устройство 300 декодирования может принимать сигнал, выводимый из устройства кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через энтропийный декодер 310. Например, энтропийный декодер 310 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Устройство декодирования дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные далее в настоящем раскрытии, могут декодироваться, могут декодировать процедуру декодирования и получаться из потока битов. Например, энтропийный декодер 310 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования целевого блока декодирования или информации символа/элемента разрешения, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством предсказания вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с предсказанием, из информации, декодированной посредством энтропийного декодера 310, может предоставляться в модуль предсказания (модуль 332 интер-предсказания и модуль 331 интра-предсказания), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 310, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в остаточный процессор 320. Остаточный процессор 320 может извлекать остаточный сигнал (остаточный блок, остаточные дискретные отсчеты, массив остаточных дискретных отсчетов). Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 310, может предоставляться в фильтр 350. Между тем, приемник (не показан) для приема сигнала, выводимого из устройства кодирования, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента устройства 300 декодирования, либо приемник может представлять собой компонент энтропийного декодера 310. Между тем, устройство декодирования согласно этому документу может называться "устройством декодирования видео/изображений/кадров", и устройство декодирования может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер дискретных отсчетов видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 310, и выборочный декодер может включать в себя, по меньшей мере, одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, запоминающего устройства 360, модуля 332 интер-предсказания и модуля 331 интра-предсказания.
[85] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в устройстве кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[86] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных дискретных отсчетов).
[87] Модуль 230 предсказания может выполнять предсказание для текущего блока и может формировать предсказанный блок, включающий в себя дискретные отсчеты предсказания для текущего блока. Модуль предсказания может определять то, применяется интра-предсказание или интер-предсказание к текущему блоку, на основе информации относительно предсказания, выводимой из энтропийного декодера 310, и может определять конкретный режим интра-/интер-предсказания.
[88] Модуль 320 предсказания может формировать сигнал предсказания на основе различных способов предсказания, описанных ниже. Например, модуль предсказания может не только применять интра-предсказание или интер-предсказание для того, чтобы предсказывать один блок, но также и одновременно применять интра-предсказание и интер-предсказание. Это может называться "объединенным интер- и интра-предсказанием (CIIP)". Помимо этого, модуль предсказания может быть основан на режиме предсказания на основе внутриблочного копирования (IBC) либо на палитровом режиме для предсказания блока. Режим IBC-предсказания или палитровый режим может использоваться для кодирования изображения/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет предсказание в текущем кадре, но может выполняться аналогично интер-предсказанию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий интер-предсказания, описанных в настоящем раскрытии. Палитровый режим может рассматриваться как пример интра-кодирования или интра-предсказания. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[89] Модуль 331 интра-предсказания может предсказывать текущий блок посредством ссылки на дискретные отсчеты в текущем кадре. Дискретные отсчеты для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму предсказания. При интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 интра-предсказания может определять режим предсказания, применяемый к текущему блоку, посредством использования режима предсказания, применяемого к соседнему блоку.
[90] Модуль 332 интер-предсказания может извлекать предсказанный блок для текущего блока на основе опорного блока (массива опорных дискретных отсчетов), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блоков, субблоков или дискретных отсчетов на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, бипредсказание и т.д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 332 интер-предсказания может конфигурировать список потенциально подходящих вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора потенциально подходящих вариантов. Интер-предсказание может выполняться на основе различных режимов предсказания, и информация относительно предсказания может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.
[91] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных дискретных отсчетов) посредством суммирования полученного остаточного сигнала с сигналом предсказания (предсказанным блоком, массивом предсказанных дискретных отсчетов), выводимым из модуля предсказания (включающего в себя модуль 332 интер-предсказания и/или модуль 331 интра-предсказания). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, предсказанный блок может использоваться в качестве восстановленного блока.
[92] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для интер-предсказания следующего кадра.
[93] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.
[94] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и хранить модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[95] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 интер-предсказания. Запоминающее устройство 360 может хранить информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 интер-предсказания, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может хранить восстановленные дискретные отсчеты восстановленных блоков в текущем кадре и передавать восстановленные дискретные отсчеты в модуль 331 интра-предсказания.
[96] В настоящем раскрытии, варианты осуществления, описанные в фильтре 260, модуле 221 интер-предсказания и модуле 222 интра-предсказания устройства 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 интер-предсказания и модулю 331 интра-предсказания устройства 300 декодирования. То же также может применяться к модулю 332 и модулю 331 интра-предсказания.
[97] Фиг. 4 схематично показывает иерархическую структуру для кодированного изображения/видео.
[98] Ссылаясь на фиг. 4, кодированное изображение/видео разделяется на слой кодирования видео (VCL), который выполняет обработку декодирования изображения/видео, и на себя, подсистему, которая передает и хранит кодированную информацию, и слой абстрагирования от сети (NAL), который существует между этими VCL и подсистемой и отвечает за функции сетевой адаптации.
[99] В VCL, могут формироваться VCL-данные, включающие в себя сжатые видеоданные (данные срезов), либо может формироваться сообщение с дополнительной улучшающей информацией (SEI), дополнительно необходимое для процесса декодирования видео, или набор параметров, включающий в себя такую информацию, как набор параметров кадра (PPS), набор параметров последовательности (SPS), набор параметров видео (VPS).
[100] В NAL, NAL-единица может формироваться посредством добавления информации заголовка (заголовка NAL-единицы) в первичную байтовую последовательность данных (RBSP), сформированную в VCL. В этом случае, RBSP означает данные срезов, набор параметров, SEI-сообщение и т.д., сформированные в VCL. Заголовок NAL-единицы может включать в себя информацию типа NAL-единиц, указываемую согласно RBSP-данным, включенным в соответствующую NAL-единицу.
[101] Как показано на чертеже, NAL-единица может разделяться на VCL NAL-единицу и не-VCL NAL-единицу согласно RBSP, сформированной в VCL. VCL NAL-единица может означать NAL-единицу, включающую в себя информацию относительно изображения (данные срезов), не-VCL NAL-единица может означать NAL-единицу, включающую в себя информацию (набор параметров или SEI-сообщение), необходимую для декодирования изображения.
[102] Вышеописанные VCL NAL-единица и не-VCL NAL-единица могут передаваться через сеть посредством присоединения информации заголовка согласно стандарту данных подсистемы. Например, NAL-единица может преобразовываться в форму данных предварительно определенного стандарта, такого как H.266/VVC-формат файлов, транспортный протокол реального времени (RTP), транспортный поток (TS), и передаваемый через различные сети.
[103] Как описано выше, в NAL-единице, тип NAL-единицы может указываться согласно структуре RBSP-данных, включенной в соответствующую NAL-единицу, и информация относительно этого типа NAL-единицы может храниться и передаваться в служебных сигналах в заголовке NAL-единицы.
[104] Например, NAL-единица может классифицироваться на тип VCL NAL-единицы и тип не-VCL NAL-единицы согласно тому, включает или нет NAL-единица в себя информацию (данные срезов) относительно изображения. Тип VCL NAL-единицы может классифицироваться согласно свойствам и типам кадров, включенных в VCL NAL-единицу, и тип не-VCL NAL-единицы может классифицироваться согласно типу набора параметров.
[105] Ниже приводится пример типа NAL-единицы, указываемого согласно типу набора параметров, включенного в тип не-VCL NAL-единицы.
[106] - NAL-единица набора параметров адаптации (APS): тип для NAL-единицы, содержащей APS
[107] - NAL-единица набора параметров декодирования (DPS): тип для NAL-единицы, содержащей DPS
[108] - NAL-единица набора параметров видео (VPS): тип для NAL-единицы, содержащей VPS
[109] - NAL-единица набора параметров последовательности (SPS): тип для NAL-единицы, содержащей SPS
[110] - NAL-единица PPS (набора параметров кадра): тип для NAL-единицы, содержащей PPS
[111] - NAL-единица заголовка кадра (PH): тип для NAL-единицы, содержащей PH
[112] Вышеописанные типы NAL-единиц могут иметь синтаксическую информацию для типа NAL-единицы, и синтаксическая информация может храниться и передаваться в служебных сигналах в заголовке NAL-единицы. Например, синтаксическая информация может быть nal_unit_type, и типы NAL-единиц могут указываться посредством значения nal_unit_type.
[113] Между тем, как описано выше, один кадр может включать в себя множество срезов, и один срез может включать в себя заголовок среза и данные срезов. В этом случае, один заголовок кадра дополнительно может добавляться для множества срезов (для заголовка среза и набора данных срезов) в одном кадре. Заголовок кадра (синтаксис заголовков кадра) может включать в себя информацию/параметры, обычно применимую к кадру. В настоящем раскрытии, срез может смешиваться или заменяться группой плиток. Кроме того, в настоящем раскрытии, заголовок среза может смешиваться или заменяться заголовком группы типа.
[114] Заголовок среза (синтаксис заголовков срезов) может включать в себя информацию/параметры, обычно применимые к срезу. APS (APS-синтаксис) или PPS (PPS-синтаксис) могут включать в себя информацию/параметры, обычно применимые к одному или нескольким срезам или кадрам. SPS (SPS-cинтаксис) может включать в себя информацию/параметры, обычно применимые к одной или нескольким последовательностям. VPS (VPS-синтаксис) может включать в себя информацию/параметры, обычно применимые к нескольким слоям. DPS (DPS-синтаксис) может включать в себя информацию/параметры, обычно применимые ко всему видео. DPS может включать в себя информацию/параметры, связанную с конкатенацией кодированной видеопоследовательности (CVS). В настоящем раскрытии, высокоуровневый синтаксис (HLS) может включать в себя, по меньшей мере, одно из APS-синтаксиса, PPS-синтаксиса, SPS-cинтаксиса, VPS-синтаксиса, DPS-синтаксиса, синтаксиса заголовков кадра и синтаксиса заголовков срезов.
[115] В настоящем раскрытии, информация изображений/видео, кодируемая посредством устройства кодирования и передаваемая в служебных сигналах в форме потока битов в устройство декодирования, может включать в себя не только связанную с сегментацией кадров информацию, информацию интра-/интер-предсказания, остаточную информацию, информация внутриконтурной фильтрации и т.д., но также и информация, включенная в заголовок среза, информация, включенная в заголовок кадра, информация, включенная в APS, информация, включенная в PPS, информация, включенная в SPS, информация, включенная в VPS и/или информацию, включенную в DPS. Помимо этого, информация изображений/видео дополнительно может включать в себя информацию заголовка NAL-единицы.
[116] Кроме того, как описано выше, устройство кодирования может выполнять различные способы кодирования экспоненциальный код Голомба, такой как, например, контекстно-адаптивное кодирование переменной длины (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Помимо этого, устройство декодирования может декодировать информацию в потоке битов на основе способа кодирования, к примеру, кодирование экспоненциальным кодом Голомба, CAVLC или CABAC и выводить значение синтаксического элемента, требуемого для восстановления изображений и квантованного значения коэффициента преобразования, связанного с остатком.
[117] Например, вышеописанные способы кодирования могут осуществляться так, как описано ниже.
[118] Фиг. 5 схематично показывает контекстно-адаптивное двоичное арифметическое кодирование (CABAC) для кодирования синтаксического элемента. Например, в процессе CABAC-кодирования, когда входной сигнал представляет собой синтаксический элемент вместо двоичного значения, устройство кодирования может преобразовывать входной сигнал в двоичное значение посредством преобразования в двоичную форму значения входного сигнала. Помимо этого, когда входной сигнал уже представляет собой двоичное значение (т.е. когда значение входного сигнала представляет собой двоичное значение), преобразование в двоичную форму может не выполняться и может обходиться. Здесь, каждое двоичное число 0 или 1, составляющее двоичное значение, может называться "элементом разрешения". Например, если двоичная строка после преобразования в двоичную форму представляет собой 110, каждое из 1, 1 и 0 называется "одним элементом разрешения". Элемент(ы) разрешения для одного синтаксического элемента может указывать значение синтаксического элемента.
[119] После этого, преобразованные в двоичную форму элементы разрешения синтаксического элемента могут вводиться в механизм регулярного кодирования или механизм обходного кодирования. Механизм регулярного кодирования устройства кодирования может выделять контекстную модель, отражающую значение вероятности в соответствующий элемент разрешения, и может кодировать соответствующий элемент разрешения на основе выделяемой контекстной модели. Механизм регулярного кодирования устройства кодирования может обновлять контекстную модель для соответствующего элемента разрешения после кодирования для каждого элемента разрешения. Кодированный элемент разрешения, как описано выше, может называться "контекстно-кодированным элементом разрешения".
[120] Между тем, когда преобразованные в двоичную форму элементы разрешения синтаксического элемента вводятся в механизм обходного кодирования, они могут кодироваться следующим образом. Например, механизм обходного кодирования устройства кодирования опускает процедуру оценки вероятности относительно входного элемента разрешения и процедуру обновления вероятностной модели, применяемые к элементу разрешения после кодирования. Когда обходное кодирование применяется, устройство кодирования может кодировать входной элемент разрешения посредством применения равномерного распределения вероятностей вместо выделения контекстной модели, за счет этого повышая скорость кодирования. Кодированный элемент разрешения, как описано выше, может называться "обходным элементом разрешения".
[121] Энтропийное декодирование может представлять процесс выполнения идентичного процесса с вышеописанным энтропийным кодированием в обратном порядке.
[122] Например, когда синтаксический элемент декодируется на основе контекстной модели, устройство декодирования может принимать элемент разрешения, соответствующий синтаксическому элементу, через поток битов, может определять контекстную модель с использованием синтаксического элемента и информации декодирования целевого блока декодирования или соседних блоков либо информации символов/элементов разрешения, декодированных на предыдущем этапе, может извлекать значение синтаксического элемента посредством предсказания вероятности возникновения принимаемого элемента разрешения согласно определенной контекстной модели и выполнения арифметического декодирования элемента разрешения. После этого, контекстная модель следующего декодированного элемента разрешения может обновляться с определенной контекстной моделью.
[123] Кроме того, например, когда выполняется обходное декодирование синтаксического элемента, устройство декодирования может принимать элемент разрешения, соответствующий синтаксическому элементу, через поток битов, и может декодировать входной элемент разрешения посредством применения равномерного распределения вероятностей. В этом случае, устройство декодирования может опускать процедуру для извлечения контекстной модели синтаксического элемента и процедуру для обновления контекстной модели, применяемые к элементу разрешения после декодирования.
[124] Между тем, когда кодирование видео выполняется, как описано выше, предсказание выполняется для того, чтобы повышать эффективность сжатия. Соответственно, может формироваться предсказанный блок, включающий в себя дискретные отсчеты предсказания для текущего блока, который представляет собой целевой блок кодирования. Например, когда вышеуказанное интра-предсказание выполняется, корреляция между дискретными отсчетами может использоваться, и разность между исходным блоком и предсказанным блоком, т.е. остатком, может получаться. Вышеуказанное преобразование и квантование может применяться к остатку, чтобы удалять пространственную избыточность. В частности, способ кодирования и способ декодирования с использованием интра-предсказания могут заключаться в следующем.
[125] Фиг. 6 иллюстрирует пример способа кодирования видео/изображений на основе интра-предсказания.
[126] Ссылаясь на фиг. 6, устройство кодирования выполняет интра-предсказание для текущего блока (S600). Устройство кодирования извлекает режим/тип интра-предсказания для текущего блока, извлекает соседние опорные дискретные отсчеты текущего блока, формирует дискретные отсчеты предсказания в текущем блоке на основе режима/типа интра-предсказания и соседних опорных дискретных отсчетов. Здесь, процедуры определения режима/типа интра-предсказания, извлечения соседних опорных дискретных отсчетов и формирования дискретных отсчетов предсказания могут выполняться одновременно, или одна процедура может выполняться перед другой процедурой. Устройство кодирования может определять режим/тип, применяемый к текущему блоку, из множества режимов/типов интра-предсказания. Устройство кодирования может сравнивать RD-затраты для режима/типов интра-предсказания и определять оптимальный режим интра-предсказания/тип для текущего блока.
[127] Между тем, устройство кодирования может выполнять процедуру фильтрации дискретных отсчетов предсказания. Фильтрация дискретных отсчетов предсказания может называться "постфильтрацией". Некоторые или все дискретные отсчеты предсказания могут фильтроваться посредством процедуры фильтрации дискретных отсчетов предсказания. В некоторых случаях, процедура фильтрации дискретных отсчетов предсказания может опускаться.
[128] Устройство кодирования формирует остаточные дискретные отсчеты для текущего блока на основе (фильтрованных) дискретных отсчетов предсказания (S610). Устройство кодирования может сравнивать дискретные отсчеты предсказания в исходных дискретных отсчетах текущего блока на основе фазы и извлекать остаточные дискретные отсчеты.
[129] Устройство кодирования может кодировать информацию изображений, включающую в себя информацию относительно интра-предсказания (информацию предсказания) и остаточную информацию относительно остаточных дискретных отсчетов (S620). Информация предсказания может включать в себя информацию режима интра-предсказания и информацию типа интра-предсказания. Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Выходной поток битов может передаваться в устройство декодирования через носитель хранения данных или сеть.
[130] Остаточная информация может включать в себя синтаксис остаточного кодирования, который описывается ниже. Устройство кодирования может преобразовывать/квантовать остаточные дискретные отсчеты, с тем чтобы извлекать квантованные коэффициенты преобразования. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования.
[131] Между тем, как описано выше, устройство кодирования изображения может формировать восстановленный кадр (включающий в себя восстановленные дискретные отсчеты и восстановленный блок). С этой целью, устройство кодирования может извлекать (модифицированные) остаточные дискретные отсчеты посредством выполнения обратного преобразования/обратного квантования для квантованных коэффициентов преобразования снова. Причина выполнения обратного преобразования/обратного квантования снова после преобразования/квантования остаточных дискретных отсчетов таким способом состоит в том, чтобы извлекать идентичные остаточные дискретные отсчеты в качестве остаточных дискретных отсчетов, извлекаемых в устройстве декодирования, как описано выше. Устройство кодирования может формировать восстановленный блок, включающий в себя восстановленные дискретные отсчеты для текущего блока, на основе дискретных отсчетов предсказания и (модифицированных) остаточных дискретных отсчетов. Восстановленный кадр для текущего кадра может формироваться на основе восстановленного блока. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[132] Фиг. 7 иллюстрирует пример способа декодирования видео/изображений на основе интра-предсказания.
[133] Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования.
[134] Информация предсказания и остаточная информация могут получаться из потока битов. Остаточные дискретные отсчеты для текущего блока могут извлекаться на основе остаточной информации. В частности, коэффициенты преобразования могут извлекаться посредством выполнения обратного квантования на основе квантованных коэффициентов преобразования, извлекаемых на основе остаточной информации, остаточные дискретные отсчеты для текущего блока могут извлекаться посредством выполнения обратного преобразования для коэффициентов преобразования.
[135] В частности, устройство декодирования может извлекать режим/тип интра-предсказания для текущего блока на основе принимаемой информации предсказания (информации режима/типа интра-предсказания) (S700). Устройство декодирования может извлекать соседние опорные дискретные отсчеты текущего блока. Устройство декодирования может формировать дискретные отсчеты предсказания в текущем блоке на основе режима/типа интра-предсказания и соседних опорных дискретных отсчетов. В этом случае, устройство декодирования изображения может выполнять процедуру фильтрации дискретных отсчетов предсказания. Фильтрация предсказывающих дискретных отсчетов может называться "постфильтрацией". Некоторые или все дискретные отсчеты предсказания могут фильтроваться посредством процедуры фильтрации дискретных отсчетов предсказания. В некоторых случаях, процедура фильтрации дискретных отсчетов предсказания может опускаться.
[136] Устройство декодирования формирует остаточные дискретные отсчеты для текущего блока на основе принимаемой остаточной информации (S730). Устройство декодирования может формировать восстановленные дискретные отсчеты для текущего блока на основе дискретных отсчетов предсказания и остаточных дискретных отсчетов и может извлекать восстановленный блок, включающий в себя восстановленные дискретные отсчеты (S740). Восстановленный кадр для текущего кадра может формироваться на основе восстановленного блока. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[137] Информация режима интра-предсказания может включать в себя, например, информацию флага (например, intra_luma_mpm_flag), указывающую то, применяется либо нет наиболее вероятный режим (MPM) или оставшийся режим к текущему блоку, и когда MPM применяется к текущему блоку, информация режима предсказания дополнительно может включать в себя информацию индекса (например, intra_luma_mpm_idx), указывающую один из потенциально подходящих вариантов режимов интра-предсказания (потенциально подходящих MPM-вариантов). Потенциально подходящие варианты режимов интра-предсказания (потенциально подходящие MPM-варианты) могут строиться из списка потенциально подходящих MPM-вариантов или MPM-списка. Помимо этого, когда MPM не применяется к текущему блоку, информация режима интра-предсказания включает в себя информацию оставшихся режимов (например, intra_luma_mpm_remainder), указывающую один из оставшихся режимов интра-предсказания, за исключением потенциально подходящих вариантов режимов интра-предсказания (потенциально подходящих MPM-вариантов). Устройство декодирования может определять режим интра-предсказания текущего блока на основе информации режима интра-предсказания.
[138] Кроме того, информация типа интра-предсказания может реализовываться в различных формах. Например, информация типа интра-предсказания может включать в себя информацию индекса типа интра-предсказания, указывающую один из типов интра-предсказания. В качестве другого примера, информация типа интра-предсказания может включать в себя, по меньшей мере, одно из информации опорной выборочной линии (например, intra_luma_ref_idx), представляющей то, применяется или нет MRL к текущему блоку, и если применяется, то, какая опорная выборочная линия используется, информации ISP-флага, представляющей то, применяется или нет ISP к текущему блоку (например, intra_subpartitions_mode_flag), информации ISP-типа, указывающей тип разбиения субсегментов, когда ISP применяется (например, intra_subpartitions_split_flag), информации флага, представляющей то, применяется или нет PDCP, либо информации флага, представляющей то, применяется или нет LIP. Кроме того, информация типа интра-предсказания может включать в себя MIP-флаг, представляющий то, применяется или нет матричное интра-предсказание (MIP) к текущему блоку.
[139] Информация режима интра-предсказания и/или информация типа интра-предсказания могут кодироваться/декодироваться через способ кодирования, описанный в настоящем раскрытии. Например, информация режима интра-предсказания и/или информация типа интра-предсказания могут кодироваться/декодироваться посредством энтропийного кодирования (например, CABAC, CAVLC).
[140] Фиг. 8 схематично показывает процедуру интра-предсказания.
[141] Ссылаясь на фиг. 8, как описано выше, процедура интра-предсказания может включать в себя этап определения режима/типа интра-предсказания, этап извлечения соседних опорных дискретных отсчетов и этапа выполнения интра-предсказания (формирования дискретного отсчета предсказания). Процедура интер-предсказания может выполняться посредством устройства кодирования и устройства декодирования, как описано выше. В настоящем раскрытии, устройство кодирования может включать в себя устройство кодирования и/или устройство декодирования.
[142] Ссылаясь на фиг. 8, устройство кодирования определяет режим/тип интра-предсказания (S800).
[143] Устройство кодирования может определять режим/тип интра-предсказания, применяемый к текущему блоку, из числа различных режимов/типов интра-предсказания, описанных выше, и может формировать связанную с предсказанием информацию. Связанная с предсказанием информация может включать в себя информацию режима интра-предсказания, представляющую режим интра-предсказания, применяемый к текущему блоку, и/или информацию типа интра-предсказания, представляющую тип интра-предсказания, применяемый к текущему блоку. Устройство декодирования может определять режим/тип интра-предсказания, применяемый к текущему блоку, на основе связанной с предсказанием информации.
[144] Информация режима интра-предсказания может включать в себя, например, информацию флага (например, intra_luma_mpm_flag), представляющую то, применяется наиболее вероятный режим (MPM) к текущему блоку, либо применяется оставшийся режим, и когда MPM применяется к текущему блоку, информация режима предсказания дополнительно может включать в себя информацию индекса (например, intra_luma_mpm_idx), указывающую один из потенциально подходящих вариантов режимов интра-предсказания (потенциально подходящих MPM-вариантов). Потенциально подходящие варианты режимов интра-предсказания (потенциально подходящие MPM-варианты) могут строиться из списка потенциально подходящих MPM-вариантов или MPM-списка. Помимо этого, когда MPM не применяется к текущему блоку, информация режима интра-предсказания дополнительно может включать в себя информацию оставшихся режимов (например, intra_luma_mpm_remainder), указывающую один из оставшихся режимов интра-предсказания, за исключением потенциально подходящих вариантов режимов интра-предсказания (потенциально подходящих MPM-вариантов). Устройство декодирования может определять режим интра-предсказания текущего блока на основе информации режима интра-предсказания.
[145] Помимо этого, информация типа интра-предсказания может реализовываться в различных формах. Например, информация типа интра-предсказания может включать в себя информацию индекса типа интра-предсказания, указывающую один из типов интра-предсказания. В качестве другого примера, информация типа интра-предсказания может включать в себя, по меньшей мере, одно из информации опорной выборочной линии (например, intra_luma_ref_idx), представляющей то, применяется или нет MRL к текущему блоку, и если применяется, то, какая опорная выборочная линия используется, информации ISP-флага, представляющей то, применяется или нет ISP к текущему блоку (например, intra_subpartitions_mode_flag), информации ISP-типа, указывающей тип разбиения субсегментов, когда ISP применяется (например, intra_subpartitions_split_flag), информации флага, представляющей то, применяется или нет PDCP, либо информации флага, представляющей то, применяется или нет LIP. Кроме того, информация типа интра-предсказания может включать в себя MIP-флаг, представляющий то, применяется или нет матричное интра-предсказание (MIP) к текущему блоку.
[146] Например, когда интра-предсказание применяется, режим интра-предсказания, применяемый к текущему блоку, может определяться с использованием режима интра-предсказания соседнего блока. Например, устройство кодирования может выбирать один из потенциально подходящих вариантов наиболее вероятных режимов (MPM) в MPM-списке, извлекаемом на основе дополнительных потенциально подходящих вариантов режимов и/или режима интра-предсказания соседнего блока (например, левый соседний блок и/или верхний соседний блок) текущего блока, или выбирать один из оставшихся режимов интра-предсказания, не включенных в потенциально подходящие MPM-варианты (и планарный режим), на основе оставшейся MPM-информации (информации оставшихся режимов интра-предсказания). MPM-список может быть выполнен с возможностью включать в себя или не включать в себя планарный режим в качестве потенциально подходящего варианта. Например, когда MPM-список включает в себя планарный режим в качестве потенциально подходящего варианта, MPM-список может иметь 6 потенциально подходящих вариантов, и когда MPM-список не включает в себя планарный режим в качестве потенциально подходящего варианта, MPM-список может иметь 5 потенциально подходящих вариантов. Когда MPM-список не включает в себя планарный режим в качестве потенциально подходящего варианта, непланарный флаг (например, intra_luma_not_planar_flag), представляющий то, не представляет собой режим интра-предсказания текущего блока либо нет планарный режим, может передаваться в служебных сигналах. Например, MPM-флаг может передаваться в служебных сигналах сначала и MPM-индекс, и непланарный флаг может передаваться в служебных сигналах, когда значение MPM-флага равно 1. Кроме того, MPM-индекс может передаваться в служебных сигналах, когда значение непланарного флага равно 1. Здесь, тот факт, что MPM-список выполнен с возможностью не включать в себя планарный режим в качестве потенциально подходящего варианта, заключается в том, что планарный режим всегда рассматривается в качестве MPM, а не то, что планарный режим не представляет собой MPM, так что флаг (непланарный флаг) передается в служебных сигналах сначала, чтобы проверять то, представляет он собой или нет планарный режим.
[147] Например, то, находится или нет режим интра-предсказания, применяемый к текущему блоку, в числе потенциально подходящих MPM-вариантов (и планарного режима) или оставшихся режимов, может указываться на основе MPM-флага (например, intra_luma_mpm_flag). MPM-флаг со значением 1 может указывать то, что режим интра-предсказания для текущего блока находится в потенциально подходящих MPM-вариантах (и планарном режиме), и MPM-флаг со значением 0 может указывать то, что режим интра-предсказания для текущего блока не находится в потенциально подходящих MPM-вариантах (и планарном режиме). Непланарный флаг (например, intra_luma_not_planar_flag) со значением 0 может указывать то, что режим интра-предсказания для текущего блока представляет собой планарный режим, и непланарный флаг со значением 1 может указывать то, что режим интра-предсказания для текущего блока не представляет собой планарный режим. MPM-индекс может передаваться в служебных сигналах в форме синтаксического элемента mpm_idx или intra_luma_mpm_idx, и информация оставшихся режимов интра-предсказания может передаваться в служебных сигналах в форме синтаксического элемента rem_intra_luma_pred_mode или intra_luma_mpm_remainder. Например, информация оставшихся режимов интра-предсказания может указывать один из оставшихся режимов интра-предсказания, не включенных в потенциально подходящие MPM-варианты (и планарный режим) из всех режимов интра-предсказания посредством индексации в порядке номера режима предсказания. Режим интра-предсказания может представлять собой режим интра-предсказания для компонента (дискретного отсчета) сигнала яркости. В дальнейшем в этом документе, информация режима интра-предсказания может включать в себя, по меньшей мере, одно из MPM-флага (например, intra_luma_mpm_flag), непланарного флага (например, intra_luma_not_planar_flag), MPM-индекса (например, mpm_idx или intra_luma_mpm_idx) или информации оставшихся режимов интра-предсказания (rem_intra_luma_luma_mpm_mode или intra_luma_mpminder). В настоящем раскрытии, MPM-список может называться с помощью различных терминов, таких как "список потенциально подходящих MPM-вариантов" и "candModeList".
[148] Когда MIP применяется к текущему блоку, отдельный MPM-флаг (например, intra_mip_mpm_flag) для MIP, MPM-индекс (например, intra_mip_mpm_idx) и информация оставшихся режимов интра-предсказания (например, intra_mip_mpm_remainder) может передаваться в служебных сигналах, и непланарный флаг может не передаваться в служебных сигналах.
[149] Другими словами, в общем, когда сегментация на блоки для изображения выполняется, текущий блок, который должен кодироваться, и соседний блок имеют аналогичные характеристики изображений. Следовательно, имеется высокая вероятность того, что текущий блок и соседний блок имеют идентичные или аналогичные режимы интра-предсказания. Соответственно, кодер может использовать режим интра-предсказания соседнего блока, чтобы кодировать режим интра-предсказания текущего блока.
[150] Устройство кодирования может осуществлять построение списка наиболее вероятных режимов (MPM) для текущего блока. MPM-список может называться "списком потенциально подходящих MPM-вариантов". Здесь, MPM может означать режимы, используемые для того, чтобы повышать эффективность кодирования с учетом подобия между текущим блоком и соседними блоками во время кодирования режима интра-предсказания. Как описано выше, MPM-список может строиться с возможностью включать в себя планарный режим или может строиться с возможностью исключать планарный режим. Например, когда MPM-список включает в себя планарный режим, число потенциально подходящих вариантов в MPM-списке может быть равным 6. Так же, когда MPM-список не включает в себя планарный режим, число потенциально подходящих вариантов в MPM-списке может быть равным 5.
[151] Устройство кодирования может выполнять предсказание на основе различных режимов интра-предсказания и может определять оптимальный режим интра-предсказания на основе оптимизации искажения в зависимости от скорости передачи (RDO) на основе этого. В этом случае, устройство кодирования может определять оптимальный режим интра-предсказания только посредством использования потенциально подходящих MPM-вариантов и планарного режима, сконфигурированного в MPM-списке, либо посредством дополнительного использования оставшихся режимов интра-предсказания, а также потенциально подходящих MPM-вариантов и планарного режима, сконфигурированного в MPM-списке. В частности, например, если тип интра-предсказания текущего блока представляет собой конкретный тип (например, LIP, MRL или ISP), отличный от типа нормального интра-предсказания, устройство кодирования может определять оптимальный режим интра-предсказания с учетом только потенциально подходящих MPM-вариантов и планарного режима в качестве потенциально подходящих вариантов режимов интра-предсказания для текущего блока. Таким образом, в этом случае, режим интра-предсказания для текущего блока может определяться только из числа потенциально подходящих MPM-вариантов и планарного режима, и в этом случае, кодирование/передача служебных сигналов MPM-флага может не выполняться. В этом случае, устройство декодирования может логически выводить, что MPM-флаг равен 1, без отдельной передачи в служебных сигналах MPM-флага.
[152] Между тем, в общем, когда режим интра-предсказания текущего блока не представляет собой планарный режим и представляет собой один из потенциально подходящих MPM-вариантов в MPM-списке, устройство кодирования формирует MPM-индекс (mpm idx), указывающий один из потенциально подходящих MPM-вариантов. когда режим интра-предсказания текущего блока не включается в MPM-список, устройство кодирования формирует оставшуюся MPM-информацию (информацию оставшихся режимов интра-предсказания), указывающую режим, идентичный режиму интра-предсказания текущего блока, из оставшихся режимов интра-предсказания, не включенных в MPM-список (и планарного режима). Оставшаяся MPM-информация может включать в себя, например, синтаксический элемент intra_luma_mpm_remainder.
[153] Устройство декодирования получает информацию режима интра-предсказания из потока битов. Как описано выше, информация режима интра-предсказания может включать в себя, по меньшей мере, одно из MPM-флага, непланарного флага, MPM-индекса и оставшейся MPM-информации (информации оставшихся режимов интра-предсказания). Устройство декодирования может осуществлять построение MPM-списка. Построение MPM-списка осуществляется идентично MPM-списку, построенному в устройстве кодирования. Таким образом, MPM-список может включать в себя режимы интра-предсказания соседних блоков или дополнительно может включать в себя конкретные режимы интра-предсказания согласно предварительно определенному способу.
[154] Устройство декодирования может определять режим интра-предсказания текущего блока на основе MPM-списка и информации режима интра-предсказания. Например, когда значение MPM-флага равно 1, устройство декодирования может извлекать планарный режим в качестве режима интра-предсказания текущего блока (на основе непланарного флага) или извлекать потенциально подходящий вариант, указываемый посредством MPM-индекса, из числа потенциально подходящих MPM-вариантов в MPM-списке в качестве режима интра-предсказания текущего блока. Здесь, потенциально подходящие MPM-варианты могут представлять только потенциально подходящие варианты, включенные в MPM-список, или могут включать в себя не только потенциально подходящие варианты, включенные в MPM-список, но также и планарный режим, применимый, когда значение MPM-флага равно 1.
[155] В качестве другого примера, когда значение MPM-флага равно 0, устройство декодирования может извлекать режим интра-предсказания, указываемый посредством оставшейся информации режима интра-предсказания (которая может называться "оставшейся MPM-информацией) из оставшихся режимов интра-предсказания, не включенных в MPM-список, и планарного режима в качестве режима интра-предсказания текущего блока. Между тем, в качестве другого примера, когда тип интра-предсказания текущего блока представляет собой конкретный тип (например, LIP, MRL или ISP и т.д.), устройство декодирования может извлекать потенциально подходящий вариант, указываемый посредством MPM-флага в планарном режиме или MPM-списке, в качестве режима интра-предсказания текущего блока без синтаксического анализа/декодирования/проверки MPM-флага.
[156] Устройство кодирования извлекает соседние опорные дискретные отсчеты текущего блока (S810). Когда интра-предсказание применяется к текущему блоку, соседние опорные дискретные отсчеты, которые должны использоваться для интра-предсказания текущего блока, могут извлекаться. Соседние опорные дискретные отсчеты текущего блока могут включать в себя дискретный отсчет, смежный с левой границей текущего блока размера nWxnH, и сумму 2xnH дискретных отсчетов, смежных с левой нижней частью относительно текущего блока, дискретный отсчет, смежный с верхней границей текущего блока, и сумму 2xnW дискретных отсчетов, смежных с правой верхней частью относительно, и дискретного отсчета, смежного с левой верхней частью относительно текущего блока. Альтернативно, соседние опорные дискретные отсчеты текущего блока могут включать в себя множество столбцов верхних соседних дискретных отсчетов и множество строк левых соседних дискретных отсчетов. Помимо этого, соседние опорные дискретные отсчеты текущего блока могут включать в себя сумму nH дискретных отсчетов, смежных с правой границей текущего блока с размером nWxnH, сумму nW дискретных отсчетов, смежных с нижней границей текущего блока, и дискретный отсчет, смежный с правой нижней частью относительно текущего блока.
[157] С другой стороны, когда MRL применяется (т.е. когда значение MRL-индекса превышает 0), соседние опорные дискретные отсчеты могут быть расположены на линиях 1-2 вместо линии 0, смежной с текущим блоком на левой/верхней стороне, и в этом случае, число соседних опорных дискретных отсчетов дополнительно может увеличиваться. Между тем, когда ISP применяется, соседние опорные дискретные отсчеты могут извлекаться в единицах субсегментов.
[158] Устройство кодирования извлекает дискретные отсчеты предсказания посредством выполнения интра-предсказания для текущего блока (S820). Устройство кодирования может извлекать дискретные отсчеты предсказания на основе режима/типа интра-предсказания и соседних дискретных отсчетов. Устройство кодирования может извлекать опорный дискретный отсчет согласно режиму интра-предсказания текущего блока из соседних опорных дискретных отсчетов текущего блока и может извлекать дискретный отсчет предсказания текущего блока на основе опорного дискретного отсчета.
[159] Между тем, когда интра-предсказание применяется к текущему блоку, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания для текущего блока и извлекать дискретные отсчеты предсказания для текущего блока на основе режима интра-предсказания, как описано выше. Таким образом, устройство кодирования/устройство декодирования может извлекать дискретные отсчеты предсказания текущего блока посредством применения направленного или ненаправленного режима на основе соседних опорных дискретных отсчетов текущего блока.
[160] Для сравнения, режимы интра-предсказания могут включать в себя, например, два ненаправленных (или неугловых) режима интра-предсказания и 65 направленных (или угловых) режимов интра-предсказания. Режимы ненаправленного интра-предсказания могут включать в себя режим #0 планарного интра-предсказания и режим #1 DC-интра-предсказания, и режимы направленного интра-предсказания могут включать в себя 65 режимов #2-#66 интра-предсказания. Тем не менее, это представляет собой пример, и настоящее раскрытие также может применяться к случаям различных чисел режимов интра-предсказания. Режим #67 интра-предсказания дополнительно может использоваться при необходимости, и режим #67 интра-предсказания может представлять режим на основе линейной модели (LM).
[161] Фиг. 9 иллюстрирует направленные интра-режимы в 65 направлениях предсказания.
[162] Ссылаясь на фиг. 9, режимы интра-предсказания могут разделяться на режимы интра-предсказания, имеющие горизонтальную направленность, и режимы интра-предсказания, имеющие вертикальную направленность, на основе режима #34 интра-предсказания в левом верхнем диагональном направлении предсказания. На фиг. 9, H и V означают горизонтальную направленность и вертикальную направленность, и номера -32 в 32 указывают смещение в единицах 1/32 в позиции на сетке дискретных отсчетов. Режимы #2-#33 интра-предсказания имеют горизонтальную направленность, и режимы #34-#66 интра-предсказания имеют вертикальную направленность. Режим #18 интра-предсказания и режим #30 интра-предсказания, соответственно, представляют собой режим горизонтального интра-предсказания и режим вертикального интра-предсказания, режим #2 интра-предсказания может называться "режимом левого нижнего диагонального интра-предсказания", режим #34 интра-предсказания может называться "режимом левого верхнего диагонального интра-предсказания", и режим #55 интра-предсказания может называться "режимом правого верхнего диагонального интра-предсказания".
[163] В качестве варианта осуществления интра-предсказания, может предлагаться способ выбора опорной выборочной линии, имеющей наибольшую точность предсказания, из множества опорных выборочных линий текущего блока и извлечения дискретного отсчета предсказания с использованием опорного дискретного отсчета, расположенной в направлении предсказания в выбранной опорной выборочной линии. Этот способ может называться "интра-предсказанием на основе множественной опорной линии (MRL)" или "интра-предсказанием на основе MRL".
[164] В частности, только соседние дискретные отсчеты первой линии выше текущего блока и соседние дискретные отсчеты первой линии слева от текущего блока могут использоваться в качестве опорных дискретных отсчетов для интра-предсказания в традиционном интра-предсказании. Тем не менее, в MRL, интра-предсказание может выполняться с использованием соседних дискретных отсчетов, позиционированных в верхней и/или левой выборочных линиях, отделенных от текущего блока на 1, 2 или 3 выборочных расстояния, в качестве опорных дискретных отсчетов.
[165] Фиг. 10 иллюстрирует несколько опорных линий, которые могут использоваться в MRL. Когда MRL выполняется, устройство декодирования может принимать индекс опорной линии. Индекс опорной линии может указывать одну из множества опорных линий. Устройство декодирования может выполнять интра-предсказание на основе опорных дискретных отсчетов в опорной линии, указываемой посредством индекса опорной линии. Синтаксический элемент индекса опорной линии может представлять собой intra_luma_ref_idx. Дополнительно, MRL может деактивироваться для блоков первой линии (т.е. первой строки) в CTU.
[166] В качестве варианта осуществления интра-предсказания, может предлагаться способ сегментации текущего блока в горизонтальном направлении или вертикальном направлении и выполнения интра-предсказания в единицах сегментированных блоков. Таким образом, может предлагаться способ сегментации текущего блока в горизонтальном направлении или вертикальном направлении, чтобы извлекать субблоки и выполнение интра-предсказания для субблоков. В этом случае, кодирование/декодирование может выполняться в расчете на сегментированный субблок, чтобы формировать восстановленный блок, и восстановленный блок может использоваться в качестве опорного блока следующего сегментированного субблока. Вышеуказанный способ также может называться "предсказанием на основе интра-субсегментов (ISP-предсказанием)", "режимом на основе интра-субсегментов (ISP)" или "предсказанием на основе режима на основе интра-субсегментов (ISP)". В противном случае, вышеуказанный способ также может называться "интра-предсказанием на основе ISP". Дополнительно, субблок может называться "интра-субсегментом". В противном случае, субблоки (или субсегменты), сегментированные согласно ISP, могут называться "единицами преобразования (TU)".
[167] Согласно ISP, текущий блок может сегментироваться на два или четыре субсегмента в вертикальном или горизонтальном направлении на основе размера текущего блока. Например, когда ISP выполняется, текущий блок может сегментироваться на число субблоков, показанных в следующей таблице, в зависимости от размера текущего блока.
[168] Табл. 1
Размер блока (CU)
Число сегментов
4×4
Не сегментируется
4×8, 8×4
2
Другие случаи
4
[169] Ссылаясь на таблицу 1, ISP может деактивироваться, когда размер текущего блока составляет 4×4. Текущий блок может сегментироваться на два субблока, когда размер текущего блока составляет 4×8 или 8×4, и может сегментироваться на четыре субблока, когда текущий блок имеет размеры, отличные от 4×4, 4×8 и 8×4 (т.е. размеры, большие 4×8 или 8×4).
[170] Фиг. 11 иллюстрирует пример, в котором блок, к которому применяется ISP, сегментируется на субблоки на основе размеров блоков. Ссылаясь на (a) по фиг. 11, текущий блок может сегментироваться на два субблока, когда размер текущего блока составляет 4×8 или 8×4. Ссылаясь на (b) по фиг. 11, текущий блок может сегментироваться на четыре субблока, когда текущий блок имеет размеры, отличные от 4×4, 4×8 и 8×4 (т.е. размеры, большие 4×8 или 8×4).
[171] Между тем, ISP-блоки Mx128 (M≤64) и 128xN (N≤64) (т.е. интра-субсегменты) могут вызывать потенциальные проблемы для VDPU 64×64. Например, CU Mx128 в одиночном дереве может иметь TB сигналов яркости Mx128 и два TB сигналов цветности M/2×64, соответствующие TB сигналов яркости. Когда ISP применяется к CU, TB сигналов яркости может сегментироваться на четыре TB Mx32, т.е. четыре субблока Mx32 (только горизонтальное разбиение является возможным), и каждый TB меньше блока 64×64. Тем не менее, в этом случае, блок сигналов цветности, к которому применяется ISP, может не сегментироваться в проектировании согласно текущим видеостандартам. Соответственно, размер двух TB компонентов сигнала цветности для TB компонентов сигнала яркости превышает 32×32. Аналогично, CU 128xN может вызывать ситуацию, аналогичную вышеуказанной ситуации. Соответственно, вышеуказанные два случая могут становиться проблемами в конвейере декодера 64×64. По этой причине, максимальный размер CU, для которой может использоваться ISP, может быть ограничен 64×64.
[172] Когда ISP применяется, устройство кодирования может формировать MPM-список в зависимости от способа сегментации (например, горизонтальное разбиение или вертикальное разбиение), чтобы уменьшать сложность кодирования, и сравнивать режимы интра-предсказания в сформированном MPM-списке с точки зрения оптимизации искажения в зависимости от скорости передачи (RDO), чтобы извлекать оптимальный режим интра-предсказания. Когда вышеуказанная MRL используется, ISP не может использоваться. Таким образом, ISP может применяться только тогда, когда нулевая опорная линия используется для интра-предсказания (т.е. когда значение intra_luma_ref_idx равно 0). Дополнительно, когда ISP используется, позиционно-зависимое интра-предсказание (PDPC) не может использоваться.
[173] Флаг, указывающий то, применяется или нет ISP, может передаваться в расчете на блок, и когда ISP применяется к текущему блоку, флаг, указывающий то, представляет тип разбиения собой горизонтальное разбиение или вертикальное разбиение, т.е. то, представляет направление разбиения собой горизонтальное направление или вертикальное направление, может кодироваться/декодироваться. Флаг, указывающий то, применяется или нет ISP, может называться "ISP-флагом", и синтаксический элемент ISP-флага может представлять собой intra_subpartitions_mode_flag. Дополнительно, флаг, указывающий тип разбиения, может называться "флагом ISP-разбиения", и синтаксический элемент типа ISP-разбиения может представлять собой intra_subpartitions_split_flag.
[174] Синтаксические элементы, связанные с ISP, показаны в следующей таблице.
[175] Табл. 2
[176] В таблице 2, intra_luma_ref_idx может представлять собой синтаксический элемент индекса опорной линии. Когда ISP применяется, режим интра-предсказания для текущего блока может в равной степени применяться к субсегментам текущего блока, и интра-предсказание может выполняться посредством извлечения соседнего опорного дискретного отсчета в расчете на субсегмент, чтобы повышать производительность интра-предсказания. Таким образом, когда ISP применяется, процедура обработки остаточных дискретных отсчетов может выполняться в расчете на субсегмент. Другими словами, интра-предсказание может выполняться для каждого субсегмента, чтобы извлекать дискретные отсчеты предсказания, и остаточный сигнал (остаточные дискретные отсчеты) относительно каждого субсегмента может суммироваться с дискретными отсчетами предсказания относительно каждого субсегмента, чтобы извлекать восстановленные дискретные отсчеты. Остаточный сигнал (остаточные дискретные отсчеты) может извлекаться через процедуру обратного квантования/обратного преобразования на основе остаточной информации (информации квантованных коэффициентов преобразования или синтаксиса остаточного кодирования) в потоке битов. Интра-предсказание для субсегментов может выполняться от самого левого субсегмента к самому правому субсегменту, когда тип разбиения представляет собой вертикальное разбиение, и может выполняться от самого верхнего субсегмента к самому нижнему субсегменту, когда тип разбиения представляет собой горизонтальное разбиение.
[177] Например, интра-предсказание может выполняться для первого субсегмента текущего блока, чтобы извлекать дискретные отсчеты предсказания, остаточные дискретные отсчеты относительно первого субсегмента могут извлекаться на основе остаточной информации относительно первого субсегмента, и восстановленные дискретные отсчеты относительно первого субсегмента могут извлекаться на основе дискретных отсчетов предсказания и остаточных дискретных отсчетов. Здесь, первый субсегмент может представлять собой самый левый субблок, если тип разбиения для текущего блока, к которому применяется ISP, представляет собой вертикальное разбиение, и первый субсегмент может представлять собой самый верхний субблок, если тип разбиения для текущего блока, к которому применяется ISP, представляет собой горизонтальное разбиение.
[178] Затем, некоторые восстановленные дискретные отсчеты в первом субсегменте могут использоваться в качестве соседних опорных дискретных отсчетов относительно второго субсегмента (например, левой или верхней соседних опорных дискретных отсчетов второго субсегмента) в процессе извлечения дискретных отсчетов предсказания относительно второго субсегмента. В частности, интра-предсказание может выполняться для второго субсегмента текущего блока, чтобы извлекать дискретные отсчеты предсказания, остаточные дискретные отсчеты относительно второго субсегмента могут извлекаться на основе остаточной информации относительно второго субсегмента, и восстановленные дискретные отсчеты относительно второго субсегмента могут извлекаться на основе дискретных отсчетов предсказания и остаточных дискретных отсчетов. Аналогично, когда процесс извлечения дискретных отсчетов предсказания относительно третьего субсегмента выполняется, некоторые восстановленные дискретные отсчеты во втором субсегменте могут использоваться в качестве соседних опорных дискретных отсчетов относительно третьего субсегмента (например, левой или верхней соседних опорных дискретных отсчетов третьего субсегмента). Аналогично, когда процесс извлечения дискретных отсчетов предсказания относительно четвертого субсегмента выполняется, некоторые восстановленные дискретные отсчеты в третьем субсегменте могут использоваться в качестве соседних опорных дискретных отсчетов относительно четвертого субсегмента (например, левой или верхней соседних опорных дискретных отсчетов четвертого субсегмента).
[179] Между тем, в качестве другого варианта осуществления интра-предсказания, может предлагаться объединенное интер- и интра-предсказание (CIIP). CIIP может представлять процесс извлечения дискретного отсчета предсказания текущего блока на основе интер-предсказания и интра-предсказания. Например, когда CIIP применяется к текущему блоку, режим интра-предсказания текущего блока может извлекаться, и первый дискретный отсчет предсказания текущего блока может извлекаться на основе режима интра-предсказания. После этого, второй дискретный отсчет предсказания текущего блока может извлекаться посредством выполнения интер-предсказания для текущего блока, и дискретный отсчет предсказания текущего блока может извлекаться посредством суммирования со взвешиванием (т.е. усреднения со взвешиванием) первого дискретного отсчета предсказания и второго дискретного отсчета предсказания. Здесь, первый дискретный отсчет предсказания может называться "дискретным отсчетом интра-предсказания", и второй дискретный отсчет предсказания может называться "дискретным отсчетом интер-предсказания". Кроме того, например, интер-предсказание для текущего блока может представлять собой интер-предсказание согласно общему режиму объединения. В частности, например, список потенциально подходящих вариантов объединения для текущего блока может строиться на основе информации движения соседних блоков относительно текущего блока, и информация движения текущего блока может извлекаться на основе потенциально подходящего варианта объединения в списке потенциально подходящих вариантов объединения, указываемом посредством индекса объединения для текущего блока, и второй дискретный отсчет предсказания текущего блока может извлекаться на основе информации движения.
[180] Кроме того, например, CIIP-флага, представляющий то, применяется или нет CIIP к текущему блоку, может передаваться в служебных сигналах, и то, применяется или нет CIIP к текущему блоку, может определяться на основе CIIP-флага. Например, CIIP-флаг может передаваться в служебных сигналах, когда текущий блок кодируется в режиме объединения, и текущий блок включает в себя, по меньшей мере, 64 дискретных отсчетов сигнала яркости (т.е. произведение ширины и высоты текущего блока равно 64 или больше).
[181] Кроме того, например, режим интра-предсказания текущего блока, когда CIIP применяется, может извлекаться на основе двух синтаксических элементов. Например, один из вплоть до четырех режимов интра-предсказания может использоваться в качестве режима интра-предсказания. Четыре режима интра-предсказания могут включать в себя режим DC-интра-предсказания, режим планарного интра-предсказания, режим горизонтального интра-предсказания и/или режим вертикального интра-предсказания.
[182] Например, в CIIP для компонента сигнала яркости, могут использоваться вплоть до четырех режимов интра-предсказания, включающих в себя режим DC-интра-предсказания, режим планарного интра-предсказания, режим горизонтального интра-предсказания и режим вертикального интра-предсказания. Кроме того, например, когда ширина текущего блока превышает в два раза высоту, режим вертикального интра-предсказания может не быть доступным. В этом случае, только три режима интра-предсказания доступны. Кроме того, например, когда высота текущего блока превышает в два раза ширину, режим вертикального интра-предсказания может не быть доступным. В этом случае, только три режима интра-предсказания доступны.
[183] В частности, например, когда CIIP применяется к текущему блоку, режим интра-предсказания текущего блока может извлекаться следующим образом. Например, список наиболее вероятных режимов (MPM), включающий в себя потенциально подходящие MPM-варианты для текущего блока, может строиться следующим образом. Например, MPM-список может включать в себя три потенциально подходящих MPM-варианта.
[184] Например, левый соседний блок относительно текущего блока может задаваться равным A, и верхний соседний блок может задаваться равным B. После этого, режимы интра-предсказания левого соседнего блока A и верхнего соседнего блока B, указываемых посредством intraModeA и intraModeB, могут извлекаться следующим образом.
[185] - Задание X равным A или B
[186] - 1) когда блок X не доступен, 2) когда блок X не предсказывается с использованием CIIP или режима интра-предсказания, 3) когда блок B расположен за пределами текущей CTU, intraModeX может задаваться равным режиму DC-интра-предсказания. Здесь, текущая CTU может означать CTU, включающую в себя текущий блок.
[187] - В противном случае, 1) когда режим интра-предсказания блока X представляет собой режим DC-интра-предсказания или режим планарного интра-предсказания, intraModeX может задаваться равным режиму интра-предсказания блока X, т.е. режиму DC-интра-предсказания или режиму планарного интра-предсказания, или 2) когда режим интра-предсказания блока X представляет собой режим вертикального направленного интра-предсказания (т.е. режимы #35-#66 интра-предсказания), intraModeX может задаваться равным режиму вертикального интра-предсказания, или 3) когда режим интра-предсказания блока X представляет собой режим горизонтального направленного интра-предсказания (т.е. режимы #2-#34 интра-предсказания), intraModeX может задаваться равным режиму горизонтального интра-предсказания.
[188] После этого, потенциально подходящие MPM-варианты могут извлекаться на основе извлеченного intraModeA и intraModeB.
[189] - Например, когда являются идентичными intraModeA и intraModeB:
[190] - Когда intraModeA представляет собой режим планарного интра-предсказания или режим DC-интра-предсказания, три потенциально подходящих MPM-варианта могут последовательно задаваться равными {режим планарного интра-предсказания, режим DC-интра-предсказания, режим вертикального интра-предсказания}.
[191] - Альтернативно, в противном случае, т.е. когда intraModeA не представляет собой режим планарного интра-предсказания и режим DC-интра-предсказания, три потенциально подходящих MPM-варианта могут последовательно задаваться равными {intraModeA, режим планарного интра-предсказания, режим DC-интра-предсказания}.
[192] - В противном случае, т.е. когда intraModeA и intraModeB не являются идентичными:
[193] - Первые два потенциально подходящих MPM-варианта могут задаваться равными {intraModeA, intraModeB}.
[194] - После этого, когда выполняется подтверждение в качестве режима интра-предсказания, отличного от извлеченного потенциально подходящего MPM-варианта, посредством проверки того, включается он или нет в ранее извлеченные потенциально подходящие MPM-варианты в порядке режима планарного интра-предсказания, режима DC-интра-предсказания и режима вертикального интра-предсказания, он может добавляться в качестве третьего потенциально подходящего MPM-варианта.
[195] Между тем, например, когда ширина текущего блока превышает в два раза высоту, или высота текущего блока превышает в два раза ширину, MPM-флаг может логически выводиться равным 1 без передачи служебных сигналов. В противном случае, MPM-флаг для текущего блока может передаваться в служебных сигналах.
[196] Например, когда значение MPM-флага равно 1, MPM-индекс, указывающий один из потенциально подходящих MPM-вариантов MPM-списка, может передаваться в служебных сигналах, и потенциально подходящий MPM-вариант, указываемый посредством MPM-индекса, может извлекаться в качестве режима интра-предсказания текущего блока. Кроме того, например, когда значение MPM-флага равно 0, режим интра-предсказания текущего блока может задаваться равным "пропущенному" режиму. Здесь, пропущенный режим может представлять режим интра-предсказания, не включенный в MPM-список, из четырех режимов интра-предсказания, доступных в CIIP. Например, когда режим планарного интра-предсказания не включается в MPM-список, пропущенный режим может представлять собой режим планарного интра-предсказания, и когда значение MPM-флага равно 0, режим интра-предсказания текущего блока может извлекаться в качестве режима планарного интра-предсказания, который представляет собой пропущенный режим. Между тем, например, режим интра-предсказания CU, кодированной с CIIP, может храниться и использоваться для предсказания соседних CU, кодированных после CU.
[197] Между тем, как описано выше, первый дискретный отсчет предсказания и второй дискретный отсчет предсказания могут усредняться со взвешиванием. Здесь, например, весовые коэффициенты для первого дискретного отсчета предсказания и второго дискретного отсчета предсказания могут извлекаться на основе режима интра-предсказания текущего блока и/или позиции текущего дискретного отсчета в текущем блоке.
[198] В частности, например, когда режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания или режим планарного интра-предсказания, или ширина или высота текущего блока меньше 4, идентичный весовой коэффициент может применяться к первому дискретному отсчету предсказания и второму дискретному отсчету предсказания. Таким образом, когда режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания или режим планарного интра-предсказания, или ширина или высота текущего блока меньше 4, весовые коэффициенты для первого дискретного отсчета предсказания и второго дискретного отсчета предсказания могут извлекаться в качестве идентичного значения.
[199] Помимо этого, в случаях, отличных от вышеописанных случаев, весовые коэффициенты для первого дискретного отсчета предсказания и второго дискретного отсчета предсказания могут извлекаться на основе режима интра-предсказания текущего блока и позиции текущего дискретного отсчета в текущем блоке. Например, когда режим интра-предсказания текущего блока представляет собой режим горизонтального интра-предсказания, текущий блок может разделяться на сегменты размера (W/4)xH. Так же, когда текущий дискретный отсчет расположен в ближайшем сегменте к опорному дискретному отсчету интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 6, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 2, либо когда текущий дискретный отсчет расположен во втором ближайшем сегменте к опорному дискретному отсчету интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 5, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 3, либо когда текущий дискретный отсчет расположен в третьем ближайшем сегменте к опорному дискретному отсчету интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 3, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 5, либо когда текущий дискретный отсчет расположен в сегменте дальше всего от опорного дискретного отсчета интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 2, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 6. Здесь, размер текущего блока может составлять WxH, W может представлять ширину текущего блока, и H может представлять высоту текущего блока.
[200] Кроме того, например, когда режим интра-предсказания текущего блока является режимом вертикального интра-предсказания, текущий блок может разделяться на сегменты размера Wx(H/4). Так же, когда текущий дискретный отсчет расположен в ближайшем сегменте к опорному дискретному отсчету интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 6, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 2, либо когда текущий дискретный отсчет расположен во втором ближайшем сегменте к опорному дискретному отсчету интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 5, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 3, либо когда текущий дискретный отсчет расположен в третьем ближайшем сегменте к опорному дискретному отсчету интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 3, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 5, либо когда текущий дискретный отсчет расположен в сегменте дальше всего от опорного дискретного отсчета интер-предсказания текущего блока, весовой коэффициент для первого дискретного отсчета предсказания текущего дискретного отсчета может задаваться равным 2, и весовой коэффициент для второго дискретного отсчета предсказания может задаваться равным 6.
[201] После этого, дискретный отсчет предсказания текущего дискретного отсчета может извлекаться посредством усреднения со взвешиванием первого дискретного отсчета предсказания и второго дискретного отсчета предсказания на основе весовых коэффициентов. Например, дискретный отсчет предсказания может извлекаться посредством следующего уравнения.
[202] уравнение 1
P
intra
inter
[203] В данном документе, PCII может представлять дискретный отсчет предсказания, P может представлять первый дискретный отсчет предсказания, P может представлять второй дискретный отсчет предсказания, wt может представлять весовой коэффициент для первого дискретного отсчета предсказания и (8-wt) может представлять весовой коэффициент для второго дискретного отсчета предсказания.
[204] Между тем, когда интра-предсказание выполняется, как описано выше, могут применяться общее интра-предсказание, MRL и/или ISP. Здесь, различные способы формирования MPM-списков могут использоваться при общем интра-предсказании, MRL и ISP. 67 режимов интра-предсказания могут использоваться при общем интра-предсказании, 65 режимов интра-предсказания, за исключением режима планарного интра-предсказания и режима DC-интра-предсказания, могут использоваться при интра-предсказании на основе MRL, и 66 режимов интра-предсказания, за исключением режима DC-интра-предсказания могут использоваться при ISP. Поскольку кодирование/декодирование выполняется при трех интра-предсказаниях (общем интра-предсказании, интра-предсказании на основе MRL и ISP) с использованием различных чисел режимов интра-предсказания, способ формирования MPM-списков может отличаться для соответствующих интра-предсказаний.
[205] В частности, когда общее интра-предсказание выполняется, MPM-список, включающий в себя шесть потенциально подходящих MPM-вариантов, может строиться с использованием всех 67 режимов интра-предсказания. Когда интра-предсказание на основе MRL выполняется, MPM-список, включающий в себя шесть потенциально подходящих MPM-вариантов, может строиться с использованием всех 65 режимов интра-предсказания, за исключением режима планарного интра-предсказания и режима DC-интра-предсказания. Дополнительно, когда ISP выполняется, MPM-список, включающий в себя шесть потенциально подходящих MPM-вариантов, может строиться с использованием 66 режимов интра-предсказания, за исключением режима DC-интра-предсказания. Здесь, MPM-список может строиться через способ в зависимости от того, представляет тип разбиения ISP собой горизонтальное разбиение или вертикальное разбиение.
[206] Фиг. 12 иллюстрирует пример извлечения MPM-списка согласно применяемому интра-предсказанию. Ссылаясь на фиг. 12, устройство декодирования может определять то, применяется либо нет MRL или ISP к текущему блоку (S1205). Если MRL или ISP применяется к текущему блоку, устройство декодирования может определять то, применяется или нет MRL к текущему блоку (S1210). Если MRL применяется к текущему блоку, устройство декодирования может формировать MRL MPM-список для текущего блока (S1215). Здесь, MRL MPM-список может представлять собой MPM-список, сформированный через способ формирования MPM-списков, когда применяется MRL. Затем, устройство декодирования может синтаксически анализировать MPM-индекс (S1220). MPM-индекс может указывать потенциально подходящий MPM-вариант, извлекаемый в качестве режима интра-предсказания текущего блока из числа потенциально подходящих MPM-вариантов. Устройство декодирования может извлекать потенциально подходящий MPM-вариант, указываемый посредством MPM-индекса, из числа потенциально подходящих MPM-вариантов MRL MPM-списка в качестве режима интра-предсказания текущего блока.
[207] Если ISP вместо MRL применяется к текущему блоку, устройство декодирования может формировать ISP MPM-список для текущего блока (S1225). Здесь, ISP MPM-список может представлять собой MPM-список, сформированный через способ формирования MPM-списков, когда применяется ISP. После этого, устройство декодирования может синтаксически анализировать MPM-индекс (S1220). Устройство декодирования может извлекать потенциально подходящий MPM-вариант, указываемый посредством MPM-индекса, из числа потенциально подходящих MPM-вариантов ISP MPM-списка в качестве режима интра-предсказания текущего блока.
[208] Если любое из MRL и ISP не применяется к текущему блоку, устройство декодирования может синтаксически анализировать MPM-флаг для текущего блока (S1230). Затем, устройство декодирования может определять то, представляет или нет режим интра-предсказания текущего блока собой режим MPM-режим, на основе MPM-флага, т.е. то, представляет режим интра-предсказания текущего блока собой или нет потенциально подходящий MPM-вариант, включенный в MPM-список, на основе MPM-флага (S1235). Здесь, MPM-флаг может указывать то, включается или нет режим интра-предсказания текущего блока в MPM-список.
[209] Если режим интра-предсказания текущего блока представляет собой режим MPM-режим, устройство декодирования может формировать MPM-список при общем интра-предсказании (S1240) и синтаксически анализировать MPM-индекс для текущего блока (S1220). Устройство декодирования может извлекать потенциально подходящий MPM-вариант, указываемый посредством MPM-индекса, из числа потенциально подходящих MPM-вариантов MPM-списка в качестве режима интра-предсказания текущего блока.
[210] С другой стороны, если режим интра-предсказания текущего блока не представляет собой MPM-режим, т.е. если режим интра-предсказания текущего блока не включается в потенциально подходящие MPM-варианты, устройство декодирования может синтаксически анализировать информацию оставшихся режимов интра-предсказания, представляющую один из оставшихся режимов интра-предсказания, которые не включаются в потенциально подходящие MPM-варианты MPM-списка (S1245). Устройство декодирования может извлекать режим интра-предсказания, указываемый посредством информации оставшихся режимов интра-предсказания, из числа оставшихся режимов интра-предсказания в качестве режима интра-предсказания текущего блока.
[211] Как описано выше, MPM-список, включающий в себя шесть потенциально подходящих MPM-вариантов, может быть сконфигурирован с использованием различных способов согласно интра-предсказаниям. Тем не менее, если способ формирования MPM-списков зависит от способа выполнения интра-предсказания, сложность кодирования может повышаться, и эффективность кодирования может ухудшаться.
[212] Соответственно, настоящее раскрытие предлагает способ модификации способов формирования MPM-списков, используемых при традиционном общем интра-предсказании, интра-предсказании на основе MRL и ISP, на обобщенный способ. Таким образом, настоящее раскрытие предлагает способ формирования MPM-списка с использованием обобщенного способа. Можно упрощать структуру кодирования/декодирования с интра-предсказанием и повышать эффективность кодирования/декодирования с использованием режима интра-предсказания, чтобы повышать эффективность кодирования видео посредством использования обобщенного способа формирования MPM-списков.
[213] В качестве варианта осуществления, предлагается способ формирования MPM-списка с использованием обобщенного способа и затем применения потенциально подходящего MPM-варианта в MPM-списке в качестве режима интра-предсказания при традиционном общем интра-предсказании, интра-предсказании на основе MRL и ISP-интра-предсказании.
[214] Например, способ формирования MPM-списка, включающего в себя шесть потенциально подходящих MPM-вариантов, используемых при традиционном общем интра-предсказании, может применяться в качестве способа формирования MPM-списков для интра-предсказания на основе MRL и интра-предсказания на основе ISP. Здесь, способ формирования MPM-списков может представлять собой традиционный способ формирования MPM-списков либо способ, улучшенный относительно традиционного способа формирования MPM-списков. Вышеуказанный способ формирования MPM-списка, включающего в себя шесть потенциально подходящих MPM-вариантов, используемых при традиционном общем интра-предсказании, представляет собой способ формирования MPM-списка с учетом всех 67 режимов интра-предсказания, и MPM-список может включать в себя режим планарного интра-предсказания и/или режим DC-интра-предсказания в качестве потенциально подходящих MPM-вариантов. Тем не менее, поскольку режим планарного интра-предсказания и режим DC-интра-предсказания не используются при интра-предсказании на основе MRL, и режим DC-интра-предсказания не используется при интра-предсказании на основе ISP, способ построения MPM-списков, отличающийся от традиционного способа, может требоваться для интра-предсказания на основе MRL и интра-предсказания на основе ISP.
[215] Фиг. 13 иллюстрирует пример построения MPM-списка текущего блока и извлечения режима интра-предсказания согласно настоящему варианту осуществления. Ссылаясь на фиг. 13, устройство декодирования может определять то, применяется либо нет MRL или ISP к текущему блоку (S1310). Если MRL или ISP применяется к текущему блоку, устройство декодирования может формировать MPM-список текущего блока (S1320) и синтаксически анализировать MPM-индекс для текущего блока (S1330). Устройство декодирования может извлекать потенциально подходящий MPM-вариант, указываемый посредством MPM-индекса, из числа потенциально подходящих MPM-вариантов MPM-списка в качестве режима интра-предсказания текущего блока.
[216] Если любое из MRL и ISP не применяется к текущему блоку, устройство декодирования может синтаксически анализировать MPM-флаг для текущего блока (S1340) и определять то, включается или нет режим интра-предсказания текущего блока в MPM-список, на основе MPM-флага (S1350). MPM-флаг может указывать то, включается или нет режим интра-предсказания текущего блока в потенциально подходящие MPM-варианты MPM-списка.
[217] Когда режим интра-предсказания текущего блока представляет собой режим MPM-режим, т.е. когда MPM-флаг указывает то, что режим интра-предсказания текущего блока включается в потенциально подходящие MPM-варианты MPM-списка (например, когда MPM-флаг равен 1), устройство декодирования может формировать MPM-список текущего блока (S1320). Здесь, MPM-список может быть идентичным MPM-списку, сформированному, когда MRL или ISP применяется к текущему блоку. Затем, устройство декодирования может синтаксически анализировать MPM-индекс для текущего блока (S1330) и извлекать потенциально подходящий MPM-вариант, указываемый посредством MPM-индекса, из числа потенциально подходящих MPM-вариантов MPM-списка в качестве режима интра-предсказания текущего блока.
[218] С другой стороны, когда режим интра-предсказания текущего блока не представляет собой MPM-режим, т.е. когда MPM-флаг указывает то, что режим интра-предсказания текущего блока не включается в потенциально подходящие MPM-варианты MPM-списка (например, когда MPM-флаг равен 0), устройство декодирования может синтаксически анализировать информацию оставшихся режимов интра-предсказания текущего блока (S1360). Устройство декодирования может извлекать режим интра-предсказания, указываемый посредством информации оставшихся режимов интра-предсказания, из числа оставшихся режимов интра-предсказания в качестве режима интра-предсказания для текущего блока.
[219] Способ формирования MPM-списков, предложенный в настоящем варианте осуществления и широко используемый при общем интра-предсказании, интра-предсказании на основе MRL и интра-предсказании на основе ISP, может быть идентичным нижеприведенным примерам.
[220] Пример способа формирования MPM-списков может быть таким, как показано в следующей таблице.
[221]
Табл. 3
Обобщенный способ MPM-формирования, пример 1 (6 MPM)
[222] Согласно примеру способа формирования MPM-списков, показанного в таблице 3, устройство кодирования/устройство декодирования может извлекать потенциально подходящий MPM-вариант 0 в качестве режима интра-предсказания левого соседнего блока относительно текущего блока, может извлекать потенциально подходящий MPM-вариант 1 в качестве режима DC-интра-предсказания, если извлеченный потенциально подходящий MPM-вариант 0 представляет собой режим планарного интра-предсказания, может извлекать потенциально подходящий MPM-вариант 1 в качестве режима планарного интра-предсказания, если извлеченный потенциально подходящий MPM-вариант 0 не представляет собой режим планарного интра-предсказания, может извлекать потенциально подходящий MPM-вариант 2 в качестве режима вертикального интра-предсказания, может извлекать потенциально подходящий MPM-вариант 3 в качестве режима горизонтального интра-предсказания, может извлекать потенциально подходящий MPM-вариант 4 в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режима #46 интра-предсказания, и может извлекать потенциально подходящий MPM-вариант 5 в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания.
[223] После этого, устройство кодирования/устройство декодирования может определять то, является или нет режим интра-предсказания левого соседнего блока относительно текущего блока идентичным режиму интра-предсказания верхнего соседнего блока, и осуществлять построение MPM-списка на основе того, является или нет режим интра-предсказания левого соседнего блока идентичным режиму интра-предсказания верхнего соседнего блока. Например, когда режим интра-предсказания левого соседнего блока является идентичным режиму интра-предсказания верхнего соседнего блока, устройство кодирования/устройство декодирования может определять то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания, и если номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, извлекать MPM-список текущего блока, который включает в себя извлеченные потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 5, как описано ниже.
[224] - mpm[0]=leftIntraDir
[225] - mpm[1]=PLANAR_IDX
[226] - mpm[2]=DC_IDX
[227] - mpm[3]=((leftIntraDir+offset)%mod)+2
[228] - mpm[4]=((leftIntraDir-1)%mod)+2
[229] - mpm[5]=((leftIntraDir+offset-1)%mod)+2
[230] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий MPM-вариант 3 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима для режима интра-предсказания левого соседнего блока и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 4 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий MPM-вариант 5 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима для режима интра-предсказания левого соседнего блока и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[231] Например, если режим интра-предсказания левого соседнего блока является идентичным режиму интра-предсказания верхнего соседнего блока, и номер режима для режима интра-предсказания левого соседнего блока не превышает номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать MPM-список текущего блока, который включает в себя ранее извлеченные потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 5.
[232] С другой стороны, если режим интра-предсказания левого соседнего блока не является идентичным режиму интра-предсказания верхнего соседнего блока, например, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания левого соседнего блока относительно текущего блока в качестве потенциально подходящего MPM-варианта 0 MPM-списка и может извлекать режим интра-предсказания верхнего соседнего блока относительно текущего блока в качестве потенциально подходящего MPM-варианта 1 MPM-списка. Дополнительно, устройство кодирования/устройство декодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего MPM-варианта 0 превышает номер режима потенциально подходящего MPM-варианта 1, и может извлекать maxCandModeIdx в качестве 1, если номер режима потенциально подходящего MPM-варианта 0 не превышает номер режима потенциально подходящего MPM-варианта 1.
[233] Затем если номер режима для режима интра-предсказания левого соседнего блока и номер режима для режима интра-предсказания верхнего соседнего блока превышают номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать режим планарного интра-предсказания в качестве потенциально подходящего MPM-варианта 2 MPM-списка и может извлекать режим DC-интра-предсказания в качестве потенциально подходящего MPM-варианта 3 MPM-списка.
[234] Затем если значение, полученное посредством вычитания номера режима mpm[!maxCandModeIdx] из номера режима mpm[maxCandModeIdx] меньше 63 и больше 1, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, в качестве потенциально подходящего MPM-варианта 4 MPM-списка и извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, в качестве потенциально подходящего MPM-варианта 5 MPM-списка. Здесь, mpm[maxCandModeIdx] может указывать потенциально подходящий MPM-вариант 0, и mpm[!maxCandModeIdx] может указывать потенциально подходящий MPM-вариант 1, если maxCandModeIdx равен 0 и mpm[maxCandModeIdx] может указывать потенциально подходящий MPM-вариант 1, и mpm[!maxCandModeIdx] может указывать потенциально подходящий MPM-вариант 0, если maxCandModeIdx равен 1.
[235] Дополнительно, если значение, полученное посредством вычитания номера режима mpm[!maxCandModeIdx] из номера режима mpm[maxCandModeIdx], равно или больше 63 либо равно или меньше 1, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, в качестве потенциально подходящего MPM-варианта 4 MPM-списка, и может извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx])%mod)+2, в качестве потенциально подходящего MPM-варианта 5 MPM-списка.
[236] Например, если, по меньшей мере, один из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока не превышает номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может определять то, равна или выше либо нет сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока 2, и если сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше 2, извлекать потенциально подходящий MPM-вариант 2 - потенциально подходящий MPM-вариант 5 следующим образом.
[237] - mpm[2]=(mpm[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[238] - mpm[3]=((mpm[maxCandModeIdx]+offset)%mod)+2
[239] - mpm[4]=((mpm[maxCandModeIdx]-1)%mod)+2
[240] - mpm[5]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[241] Таким образом, потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, если mpm[!maxCandModeIdx] представляет собой режим планарного интра-предсказания, и может извлекаться в качестве режима планарного интра-предсказания, если mpm[!maxCandModeIdx] не представляет собой режим планарного интра-предсказания. Помимо этого, потенциально подходящий MPM-вариант 3 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 4 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий MPM-вариант 5 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[242] В противном случае, другой пример способа формирования MPM-списков может использоваться. Другой пример способа формирования MPM-списков может быть таким, как показано в следующей таблице.
[243] Табл. 4
Обобщенный способ MPM-формирования, пример 2 (6 MPM, идентично JVET-MO783)
[244] Согласно примеру способа формирования MPM-списков, показанного в таблице 4, устройство кодирования/устройство декодирования может извлекать потенциально подходящий MPM-вариант 0 для текущего блока в качестве режима интра-предсказания левого соседнего блока относительно текущего блока, может извлекать потенциально подходящий MPM-вариант 1 в качестве режима DC-интра-предсказания, если извлеченный потенциально подходящий MPM-вариант 0 представляет собой режим планарного интра-предсказания, может извлекать потенциально подходящий MPM-вариант 1 в качестве режима планарного интра-предсказания, если извлеченный потенциально подходящий MPM-вариант 0 не представляет собой режим планарного интра-предсказания, может извлекать потенциально подходящий MPM-вариант 2 в качестве режима вертикального интра-предсказания, может извлекать потенциально подходящий MPM-вариант 3 в качестве режима горизонтального интра-предсказания, может извлекать потенциально подходящий MPM-вариант 4 в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режима #46 интра-предсказания, и может извлекать потенциально подходящий MPM-вариант 5 в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания.
[245] После этого, устройство кодирования/устройство декодирования может определять то, является или нет режим интра-предсказания левого соседнего блока относительно текущего блока идентичным режиму интра-предсказания верхнего соседнего блока, и осуществлять построение MPM-списка на основе того, является или нет режим интра-предсказания левого соседнего блока идентичным режиму интра-предсказания верхнего соседнего блока. Например, когда режим интра-предсказания левого соседнего блока является идентичным режиму интра-предсказания верхнего соседнего блока, устройство кодирования/устройство декодирования может определять то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания, и если номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, извлекать MPM-список текущего блока, который включает в себя извлеченные потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 5, как описано ниже.
[246] - mpm[0]=leftIntraDir
[247] - mpm[1]=PLANAR_IDX
[248] - mpm[2]=((leftIntraDir+offset)%mod)+2
[249] - mpm[3]=((leftIntraDir-1)%mod)+2
[250] - mpm[4]=DC_IDX
[251] - mpm[5]=((leftIntraDir+offset-1)%mod)+2
[252] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима для режима интра-предсказания левого соседнего блока и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 3 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 4 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий MPM-вариант 5 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима для режима интра-предсказания левого соседнего блока и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[253] Например, если режим интра-предсказания левого соседнего блока является идентичным режиму интра-предсказания верхнего соседнего блока, и номер режима для режима интра-предсказания левого соседнего блока не превышает номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать MPM-список текущего блока, который включает в себя ранее извлеченные потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 5.
[254] С другой стороны, если режим интра-предсказания левого соседнего блока не является идентичным режиму интра-предсказания верхнего соседнего блока, например, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания левого соседнего блока относительно текущего блока в качестве потенциально подходящего MPM-варианта 0 MPM-списка и может извлекать режим интра-предсказания верхнего соседнего блока относительно текущего блока в качестве потенциально подходящего MPM-варианта 1 MPM-списка. Дополнительно, устройство кодирования/устройство декодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего MPM-варианта 0 превышает номер режима потенциально подходящего MPM-варианта 1, и может извлекать maxCandModeIdx в качестве 1, если номер режима потенциально подходящего MPM-варианта 0 не превышает номер режима потенциально подходящего MPM-варианта 1.
[255] Затем если номер режима для режима интра-предсказания левого соседнего блока и номер режима для режима интра-предсказания верхнего соседнего блока превышают номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать режим планарного интра-предсказания в качестве потенциально подходящего MPM-варианта 1 MPM-списка и может извлекать режим интра-предсказания верхнего соседнего блока в качестве потенциально подходящего MPM-варианта 2 MPM-списка. Дополнительно, устройство кодирования/устройство декодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего MPM-варианта 0 превышает номер режима потенциально подходящего MPM-варианта 2, и может извлекать maxCandModeIdx в качестве 2, если номер режима потенциально подходящего MPM-варианта 0 не превышает номер режима потенциально подходящего MPM-варианта 2. Помимо этого, устройство кодирования/устройство декодирования может извлекать minCandModeidx в качестве 2, если номер режима потенциально подходящего MPM-варианта 0 превышает номер режима потенциально подходящего MPM-варианта 2, и может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего MPM-варианта 0 не превышает номер режима потенциально подходящего MPM-варианта 2. Дополнительно, устройство кодирования/устройство декодирования может извлекать режим DC-интра-предсказания в качестве потенциально подходящего MPM-варианта 3 MPM-списка.
[256] Затем если значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], меньше 63 и больше 1, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, в качестве потенциально подходящего MPM-варианта 4 MPM-списка и извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, в качестве потенциально подходящего MPM-варианта 5 MPM-списка. Здесь, mpm[maxCandModeIdx] может представлять собой потенциально подходящий MPM-вариант 0, если maxCandModeIdx равен 0, mpm[maxCandModeIdx] может представлять собой потенциально подходящий MPM-вариант 1, если maxCandModeIdx равен 1, mpm[maxCandModeIdx] может представлять собой потенциально подходящий MPM-вариант 2, если maxCandModeIdx равен 2, mpm[minCandModeidx] может представлять собой потенциально подходящий MPM-вариант 0, если minCandModeidx равен 0 и mpm[minCandModeidx] может быть потенциально подходящим MPM-вариантом 2, если minCandModeidx равен 2.
[257] Дополнительно, если значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], равно или больше 63 либо равно или меньше 1, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, в качестве потенциально подходящего MPM-варианта 4 MPM-списка, и может извлекать режим интра-предсказания, имеющий номер режима ((mpm[maxCandModeIdx])%mod)+2, в качестве потенциально подходящего MPM-варианта 5 MPM-списка.
[258] Например, если, по меньшей мере, один из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока не превышает номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может определять то, равна или выше либо нет сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока 2, и если сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше 2, определять то, является или нет, по меньшей мере, один из режима интра-предсказания левого соседнего блока и режима интра-предсказания верхнего соседнего блока идентичным режиму планарного интра-предсказания.
[259] Если, по меньшей мере, один из режима интра-предсказания левого соседнего блока и режима интра-предсказания верхнего соседнего блока является идентичным режиму планарного интра-предсказания, устройство кодирования/устройство декодирования может извлекать потенциально подходящий MPM-вариант 0 и потенциально подходящий MPM-вариант 1 следующим образом.
[260] - mpm[0]=PLANAR_IDX
[261] - mpm[1]=(leftIntraDir<aboveIntraDir)? aboveIntraDir: leftIntraDir
[262] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима интра-предсказания верхнего соседнего блока, если номер режима для режима интра-предсказания левого соседнего блока меньше номера режима для режима интра-предсказания верхнего соседнего блока, и потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима интра-предсказания левого соседнего блока, если номер режима для режима интра-предсказания левого соседнего блока равен или больше номера режима для режима интра-предсказания верхнего соседнего блока. Дополнительно, maxCandModeIdx может извлекаться в качестве 1.
[263] С другой стороны, если режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока не являются идентичными режиму планарного интра-предсказания, потенциально подходящий MPM-вариант 0 и потенциально подходящий MPM-вариант 1 MPM-списка могут заранее извлекаться режимы интра-предсказания. Дополнительно, maxCandModeIdx может заранее извлекаться значение.
[264] Дополнительно, если сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше 2, устройство кодирования/устройство декодирования может извлекать потенциально подходящий MPM-вариант 2 - потенциально подходящий MPM-вариант 5 следующим образом.
[265] - mpm[2]=(mpm[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[266] - mpm[3]=((mpm[maxCandModeIdx]+offset)%mod)+2
[267] - mpm[4]=((mpm[maxCandModeIdx]-1)%mod)+2
[268] - mpm[5]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[269] Таким образом, потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, если mpm[!maxCandModeIdx] представляет собой режим планарного интра-предсказания, и может извлекаться в качестве режима планарного интра-предсказания, если mpm[!maxCandModeIdx] не представляет собой режим планарного интра-предсказания. Помимо этого, потенциально подходящий MPM-вариант 3 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 4 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий MPM-вариант 5 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[270] В противном случае, другой пример способа формирования MPM-списков может использоваться. Другой пример способа формирования MPM-списков может быть таким, как показано в следующей таблице.
[271] Табл. 5
Обобщенный способ MPM-формирования, пример 3 (6 MPM, идентично VTM1.0)
[272] Согласно примеру способа формирования MPM-списков, показанного в таблице 5, устройство кодирования/устройство декодирования может определять то, является или нет режим интра-предсказания левого соседнего блока относительно текущего блока идентичным режиму интра-предсказания верхнего соседнего блока.
[273] Если режим интра-предсказания левого соседнего блока является идентичным режиму интра-предсказания верхнего соседнего блока, устройство кодирования/устройство декодирования может определять то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания, и если номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, может извлекать MPM-список текущего блока, который включает в себя потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 2, извлеченные так, как описано ниже.
[274] - mpm[0]=g_intraMode65to33AngMapping[leftIntraDir]
[275] - mpm[1]=((g_intraMode65to33AngMapping[leftIntraDir]+offset)%mod)+2
[276] - mpm[2]=((g_intraMode65to33AngMapping[leftIntraDir]-1)%mod)+2
[277] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима интра-предсказания левого соседнего блока. Помимо этого, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((g_intraMode65to33AngMapping[leftIntraDir]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима для режима интра-предсказания левого соседнего блока и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((g_intraMode65to33AngMapping[leftIntraDir]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[278] Если номер режима для режима интра-предсказания левого соседнего блока равен или меньше номера режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать MPM-список текущего блока, который включает в себя потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 2, извлеченные так, как описано ниже.
[279] - mpm[0]=g_intraMode65to33AngMapping[PLANAR_IDX]
[280] - mpm[1]=g_intraMode65to33AngMapping[DC_IDX]
[281] - mpm[2]=g_intraMode65to33AngMapping[VER_IDX]
[282] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима вертикального интра-предсказания.
[283] С другой стороны, режим интра-предсказания левого соседнего блока не является идентичным режиму интра-предсказания верхнего соседнего блока, устройство кодирования/устройство декодирования может извлекать потенциально подходящий MPM-вариант 0 в качестве режима интра-предсказания левого соседнего блока относительно текущего блока и может извлекать потенциально подходящий MPM-вариант 1 в качестве режима интра-предсказания верхнего соседнего блока относительно текущего блока.
[284] Если и режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока не представляют собой режим планарного интра-предсказания, устройство кодирования/устройство декодирования может извлекать потенциально подходящий MPM-вариант 2 в качестве режима планарного интра-предсказания. Если, по меньшей мере, один из режима интра-предсказания левого соседнего блока и режима интра-предсказания верхнего соседнего блока представляет собой режим планарного интра-предсказания, устройство кодирования/устройство декодирования может определять то, меньше или нет сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока 2, извлекать потенциально подходящий MPM-вариант 2 в качестве режима вертикального интра-предсказания, если сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока меньше 2, и извлекать потенциально подходящий MPM-вариант 2 в качестве режима DC-интра-предсказания, если сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше 2.
[285] Кроме того, настоящее раскрытие предлагает другой вариант осуществления модификации способов формирования MPM-списков, используемых при традиционном общем интра-предсказании, интра-предсказании на основе MRL и интра-предсказании на основе ISP, на обобщенный способ. Предлагается способ, который не учитывает режим интра-предсказания, который не используется для интра-предсказания множественной опорной линии и интра-предсказания на основе субсегментов на стадии кодера.
[286] В качестве примера, когда кодер выполняет интра-предсказание множественной опорной линии, кодер выполняет интер-предсказание только с учетом режимов интра-предсказания, включенных в MPM-список. Например, пример, в котором режимы интра-предсказания, которые не используются для MRL и/или ISP, не рассматриваются в формировании MPM-списка, может предлагаться в настоящем варианте осуществления.
[287] Таким образом, когда устройство кодирования выполняет интра-предсказание на основе MRL, например, устройство кодирования может выполнять интра-предсказание только с учетом режимов интра-предсказания, включенных в MPM-список. Таким образом, когда MPM-список включает в себя режим планарного интра-предсказания или режим DC-интра-предсказания, устройство кодирования может не выбирать режим планарного интра-предсказания или режим DC-интра-предсказания в качестве режима интра-предсказания текущего блока в настоящем варианте осуществления. Дополнительно, в качестве примера, аналогичного вышеуказанному примеру, когда устройство кодирования выполняет ISP, устройство кодирования может пропускать режим DC-интра-предсказания, когда MPM-список включает в себя режим DC-интра-предсказания.
[288] Способ формирования MPM-режимов и способ декодирования на основе режимов, предложенные в настоящем варианте осуществления, могут быть идентичными способу формирования MPM-режимов и способу декодирования на основе режимов вышеописанного варианта осуществления и могут включать в себя признак, в котором конкретный режим интра-предсказания не учитывается только во время кодирования. Соответственно, эффективность кодирования может уменьшаться до некоторой степени во время кодирования и декодирования MPM-индекса, но сложность аппаратной и программной реализации может уменьшаться согласно формированию обобщенный MPM-список, и может поддерживаться интра-предсказание на основе MRL и ISP, которое не использует конкретный режим интра-предсказания.
[289] Настоящий вариант осуществления предлагает способ выполнения интра-предсказания, посредством устройства кодирования, независимо от конкретного режима интра-предсказания, когда применяется интра-предсказание на основе MRL и/или ISP. В этом случае, MPM-индекс, синтаксически проанализированный посредством устройства декодирования, может не указывать конкретный режим интра-предсказания.
[290] Например, может предлагаться пример, в котором кодирование с использованием режима планарного интра-предсказания и режима DC-интра-предсказания, когда интра-предсказание на основе MRL применяется, запрещается, и кодирование с использованием режима DC-интра-предсказания запрещается, когда ISP применяется.
[291] Фиг. 14 иллюстрирует пример кодирования на основе интра-предсказания согласно настоящему варианту осуществления. Ссылаясь на фиг. 14, устройство кодирования может определять то, применяется либо нет MRL или ISP к текущему блоку (S1405). Если MRL или ISP применяется к текущему блоку, устройство кодирования может определять то, применяется или нет MRL (S1410).
[292] Если MRL применяется к текущему блоку, устройство кодирования может формировать MPM-список для текущего блока через процесс формирования MPM-списков (S1415). После этого, устройство кодирования может выполнять интра-предсказание для текущего блока на основе потенциально подходящих MPM-вариантов в MPM-списке, за исключением режима планарного интра-предсказания и режима DC-интра-предсказания, (т.е. режимов интра-предсказания, извлекаемых в качестве потенциально подходящих MPM-вариантов MPM-списка, за исключением режима планарного интра-предсказания и режима DC-интра-предсказания) (S1420), и выбирать оптимальный режим интра-предсказания для текущего блока (S1425).
[293] Если ISP применяется к текущему блоку вместо MRL, устройство кодирования может формировать MPM-список для текущего блока через процесс формирования MPM-списков (S1430). Здесь, процесс формирования MPM-списков может быть идентичным вышеописанному процессу формирования MPM-списков, выполняемому, когда применяется MRL. После этого, устройство кодирования может выполнять интра-предсказание для текущего блока на основе потенциально подходящих MPM-вариантов в MPM-списке, за исключением режима DC-интра-предсказания (т.е. режимов интра-предсказания, извлекаемых в качестве потенциально подходящих MPM-вариантов MPM-списка, за исключением режима DC-интра-предсказания) (S1435), и выбирать оптимальный режим интра-предсказания для текущего блока (S1440).
[294] Если MRL и ISP не применяются к текущему блоку, устройство кодирования может выполнять общее интра-предсказание для текущего блока на основе 67 режимов интра-предсказания (S1445) и выбирать оптимальный режим интра-предсказания для текущего блока (S1450).
[295] В качестве другого примера, может предлагаться пример, в котором кодирование с использованием режима планарного интра-предсказания, когда интра-предсказание на основе MRL применяется, запрещается, и кодирование с использованием режима DC-интра-предсказания запрещается, когда ISP применяется.
[296] Фиг. 15 иллюстрирует пример кодирования на основе интра-предсказания согласно настоящему варианту осуществления. Ссылаясь на фиг. 15, устройство кодирования может определять то, применяется либо нет MRL или ISP к текущему блоку (S1505). Если MRL или ISP применяется к текущему блоку, устройство кодирования может определять то, применяется или нет MRL (S1510).
[297] Если MRL применяется к текущему блоку, устройство кодирования может формировать MPM-список для текущего блока через процесс формирования MPM-списков (S1515). После этого, устройство кодирования может выполнять интра-предсказание для текущего блока на основе потенциально подходящих MPM-вариантов в MPM-списке, за исключением режима планарного интра-предсказания (т.е. режимов интра-предсказания, извлекаемых в качестве потенциально подходящих MPM-вариантов MPM-списка, за исключением режима планарного интра-предсказания) (S1520), и выбирать оптимальный режим интра-предсказания для текущего блока (S1525).
[298] Если ISP применяется к текущему блоку вместо MRL, устройство кодирования может формировать MPM-список для текущего блока через процесс формирования MPM-списков (S1530). Здесь, процесс формирования MPM-списков может быть идентичным вышеописанному процессу формирования MPM-списков, выполняемому, когда применяется MRL. После этого, устройство кодирования может выполнять интра-предсказание для текущего блока на основе потенциально подходящих MPM-вариантов в MPM-списке, за исключением режима DC-интра-предсказания (т.е. режимов интра-предсказания, извлекаемых в качестве потенциально подходящих MPM-вариантов MPM-списка, за исключением режима DC-интра-предсказания) (S1535), и выбирать оптимальный режим интра-предсказания для текущего блока (S1540).
[299] Если MRL и ISP не применяются к текущему блоку, устройство кодирования может выполнять общее интра-предсказание для текущего блока на основе 67 режимов интра-предсказания (S1545) и выбирать оптимальный режим интра-предсказания для текущего блока (S1550).
[300] В качестве другого примера, может предлагаться пример, в котором кодирование с использованием режима планарного интра-предсказания, когда интра-предсказание на основе MRL применяется, запрещается.
[301] Фиг. 16 иллюстрирует пример кодирования на основе интра-предсказания согласно настоящему варианту осуществления. Ссылаясь на фиг. 16, устройство кодирования может определять то, применяется либо нет MRL или ISP к текущему блоку (S1605). Если MRL или ISP применяется к текущему блоку, устройство кодирования может определять то, применяется или нет MRL (S1610).
[302] Если MRL применяется к текущему блоку, устройство кодирования может формировать MPM-список для текущего блока через процесс формирования MPM-списков (S1615). После этого, устройство кодирования может выполнять интра-предсказание для текущего блока на основе потенциально подходящих MPM-вариантов в MPM-списке, за исключением режима планарного интра-предсказания (т.е. режимов интра-предсказания, извлекаемых в качестве потенциально подходящих MPM-вариантов MPM-списка, за исключением режима планарного интра-предсказания) (S1620), и выбирать оптимальный режим интра-предсказания для текущего блока (S1625).
[303] Если ISP применяется к текущему блоку вместо MRL, устройство кодирования может формировать MPM-список для текущего блока через процесс формирования MPM-списков (S1630). Здесь, процесс формирования MPM-списков может быть идентичным вышеописанному процессу формирования MPM-списков, выполняемому, когда применяется MRL. После этого, устройство кодирования может выполнять интра-предсказание для текущего блока на основе потенциально подходящих MPM-вариантов в MPM-списке (т.е. режимов интра-предсказания, извлекаемых в качестве потенциально подходящих MPM-вариантов MPM-списка) (S1635), и выбирать оптимальный режим интра-предсказания для текущего блока (S1640).
[304] Если MRL и ISP не применяются к текущему блоку, устройство кодирования может выполнять общее интра-предсказание для текущего блока на основе 67 режимов интра-предсказания (S1645) и выбирать оптимальный режим интра-предсказания для текущего блока (S1650).
[305] Между тем, настоящее раскрытие предлагает способ более эффективного выполнения интра-предсказания, выполняемого на основе режима DC-интра-предсказания, когда применяется MRL. Например, настоящий вариант осуществления предлагает способ для вычисления DC-значения, когда режим DC-интра-предсказания применяется при интра-предсказании на основе MRL (т.е. когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания).
[306] Фиг. 17 иллюстрирует опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания.
[307] (a) по фиг. 17 может представлять опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда текущий блок представляет собой квадратный блок. Например, когда опорная линия, указываемая посредством индекса опорной линии, представляет собой опорную линию 0, опорную линию 1, опорную линию 2 или опорную линию 3, DC-значение может извлекаться на основе опорных дискретных отсчетов в области (1700), показанной в (a) по фиг. 17. Таким образом, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от левого опорного дискретного отсчета в верхней опорной линии текущего блока, и числа опорных дискретных отсчетов, равного ширине от верхнего конечного опорного дискретного отсчета в левой опорной линии текущего блока. Другими словами, когда размер текущего блока составляет WxH, и компонент по оси X и компонент по оси Y верхней левой позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (0,-refIdx-1) до опорного дискретного отсчета с координатами (W-1,-refIdx-1) в верхней опорной линии, указываемой посредством индекса опорной линии, и опорного дискретного отсчета с координатами (-refIdx-1, 0) до опорного дискретного отсчета с координатами (-refIdx-1, H-1) в левой опорной линии, указываемой посредством индекса опорной линии.
[308] Например, DC-значение может извлекаться в качестве следующего уравнения.
[309] уравнение 2
[310] В данном документе, dcVal может представлять DC-значение, nTbW может представлять ширину текущего блока, refIdx может представлять опорную линию, указываемую посредством индекса опорной линии.
[311] Кроме того, (b) по фиг. 17 может представлять опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда текущий блок представляет собой неквадратный блок. В настоящем варианте осуществления, когда текущий блок представляет собой неквадратный блок, DC-значение может извлекаться на основе опорных дискретных отсчетов в опорной линии на более длинной стороне из ширины и высоты текущего блока. Например, когда опорная линия, указываемая посредством индекса опорной линии, представляет собой опорную линию 0, опорную линию 1, опорную линию 2 или опорную линию 3, DC-значение может извлекаться на основе опорных дискретных отсчетов в области (1710) опорной линии на более длинной стороне из ширины и высоты текущего блока. Например, когда ширина текущего блока превышает высоту, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, идентичного ширине от левого опорного дискретного отсчета в верхней опорной линии текущего блока. Другими словами, когда размер текущего блока составляет WxH, и компонент по оси X и компонент по оси Y верхней левой позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (0,-refIdx-1) до опорного дискретного отсчета с координатами (W-1,-refIdx-1) в верхней опорной линии, указываемой посредством индекса опорной линии. DC-значение может извлекаться в качестве следующего уравнения.
[312] уравнение 3
[313] В данном документе, dcVal может представлять DC-значение, nTbW может представлять ширину текущего блока, refIdx может представлять опорную линию, указываемую посредством индекса опорной линии.
[314] Кроме того, например, когда ширина текущего блока меньше высоты, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, идентичного высоте от верхнего конечного опорного дискретного отсчета в левой опорной линии текущего блока. Другими словами, когда размер текущего блока составляет WxH, и компонент по оси X и компонент по оси Y верхней левой позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (-refIdx-1, 0) до опорного дискретного отсчета с координатами (-refIdx-1, H-1) в левой опорной линии, указываемой посредством индекса опорной линии. DC-значение может извлекаться в качестве следующего уравнения.
[315] уравнение 4
[316] В данном документе, dcVal может представлять DC-значение, nTbH может представлять высоту текущего блока, refIdx может представлять опорную линию, указываемую посредством индекса опорной линии.
[317] После этого, дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[318] Между тем, настоящее раскрытие предлагает способ более эффективного выполнения интра-предсказания, выполняемого на основе режима планарного интра-предсказания, когда применяется MRL. Например, настоящий вариант осуществления предлагает способ для определения опорных дискретных отсчетов для планарного предсказания, когда режим планарного интра-предсказания применяется при интра-предсказании на основе MRL (т.е. когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания).
[319] Фиг. 18 иллюстрирует опорный дискретный отсчет, используемую, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания.
[320] Ссылаясь на фиг. 18, когда опорная линия, указываемая посредством индекса опорной линии, представляет собой опорную линию 0, опорную линию 1, опорную линию 2 или опорную линию 3, планарное предсказание может выполняться на основе опорных дискретных отсчетов в области (1800) опорной линии, показанной на фиг. 18. Согласно настоящему варианту осуществления, планарное предсказание может выполняться на основе дискретного отсчета "конец+1" из ширины/высоты текущего блока, независимо от индекса опорной линии. Таким образом, согласно настоящему варианту осуществления, когда компонент по оси X и компонент по оси Y верхней левой позиции текущего блока равны 0, тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания, планарное предсказание для текущего блока может выполняться на основе опорного дискретного отсчета с координатами (W,-refIdx-1) в верхней опорной линии и опорного дискретного отсчета с координатами (-refIdx-1, H) в левой опорной линии.
[321] Ссылаясь на настоящий вариант осуществления, планарное интра-предсказание может выполняться с использованием опорных дискретных отсчетов опорной линии, указываемой посредством индекса опорной линии, и конкретно планарное интра-предсказание может выполняться на основе левого опорного дискретного отсчета в идентичной строке (т.е. идентичной координате Y) с позицией текущего дискретного отсчета в текущем блоке и верхней опорного дискретного отсчета в идентичном столбце (т.е. идентичной координате X) с позицией текущего дискретного отсчета, из опорных дискретных отсчетов опорной линии и опорного дискретного отсчета с координатами (W,-refIdx-1) в верхней опорной линии и опорного дискретного отсчета с координатами (-refIdx-1, H) в левой опорной линии. В этом случае, значение дискретного отсчета предсказания текущего дискретного отсчета может извлекаться посредством выполнения двунаправленной линейной интерполяции на основе значений вышеописанных четырех опорных дискретных отсчетов. Здесь, двунаправленная линейная интерполяция может выполняться при условии, что левый нижний опорный дискретный отсчет расположен в нижней стороне текущего дискретного отсчета, и правый верхний опорный дискретный отсчет расположен в правой стороне текущего дискретного отсчета.
[322] Между тем, вариант осуществления, отличающийся от вариантов осуществления способа формирования MPM-списков, широко используемого в вышеописанном общем интра-предсказании, MRL и ISP, может использоваться. Таким образом, настоящее раскрытие предлагает другой пример способа формирования MPM-списков, широко используемого при общем интра-предсказании, MRL и ISP. Другой пример способа формирования MPM-списков может быть таким, как показано в следующей таблице.
[323] Табл. 6
[324] Согласно примеру способа формирования MPM-списков, показанного в таблице 6, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока. Режим интра-предсказания левого соседнего блока может выражаться как leftIntraDir, и режим интра-предсказания верхнего соседнего блока может выражаться как aboveIntraDir.
[325] Кроме того, например, устройство кодирования/устройство декодирования может извлекать MPM-список по умолчанию. Например, устройство кодирования/устройство декодирования может извлекать режим планарного интра-предсказания в качестве потенциально подходящего MPM-варианта 0 MPM-списка по умолчанию, режима DC-интра-предсказания в качестве потенциально подходящего MPM-варианта 1 MPM-списка по умолчанию, режима вертикального интра-предсказания в качестве потенциально подходящего MPM-варианта 2 MPM-списка по умолчанию, режима горизонтального интра-предсказания в качестве потенциально подходящего MPM-варианта 3 MPM-списка по умолчанию, режима интра-предсказания номера режима, полученного посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режима #46 интра-предсказания в качестве потенциально подходящего MPM-варианта 4 MPM-списка по умолчанию, режима интра-предсказания номера режима, полученного посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания в качестве потенциально подходящего MPM-варианта 5 MPM-списка по умолчанию.
[326] После этого, устройство кодирования/устройство декодирования может определять то, являются или нет режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока идентичными, и то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания.
[327] Например, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать MPM-список текущего блока, включающий в себя извлеченные потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 5, как описано ниже.
[328] - mpm[0]=PLANAR_IDX
[329] - mpm[1]=leftIntraDir
[330] - mpm[2]=2+((leftIntraDir+61)%64)
[331] - mpm[3]=2+((leftIntraDir-1)%64)
[332] - mpm[4]=DC_IDX
[333] - mpm[5]=2+((leftIntraDir+60)%64)
[334] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((leftIntraDir+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с номером режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 3 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((leftIntraDir-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из номера режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 4 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий MPM-вариант 5 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((leftIntraDir+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с номером режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[335] Между тем, когда режим интра-предсказания левого соседнего блока относительно текущего блока и режим интра-предсказания верхнего соседнего блока не являются идентичными, устройство кодирования/устройство декодирования может определять то, что номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, и номер режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания.
[336] Когда номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, и номер режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать режим планарного интра-предсказания в качестве потенциально подходящего MPM-варианта 0 MPM-списка, режима интра-предсказания левого соседнего блока в качестве потенциально подходящего MPM-варианта 1 MPM-списка, режима интра-предсказания верхнего соседнего блока в качестве потенциально подходящего MPM-варианта 2 MPM-списка, режима DC-интра-предсказания в качестве потенциально подходящего MPM-варианта 3 MPM-списка. Помимо этого, когда номер режима потенциально подходящего MPM-варианта 1 превышает номер режима потенциально подходящего MPM-варианта 2, устройство кодирования/устройство декодирования может извлекать maxCandModeIdx в качестве 1, когда номер режима потенциально подходящего MPM-варианта 1 не превышает номер режима потенциально подходящего MPM-варианта 2, устройство кодирования/устройство декодирования может извлекать maxCandModeIdx в качестве 2.
[337] После этого, когда значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], меньше 63 и больше 1, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания с номером режима 2+((maxAB+61)%64) в качестве потенциально подходящего MPM-варианта 4 MPM-списка и режима интра-предсказания с номером режима 2+((maxAB-1)%64) в качестве потенциально подходящего MPM-варианта 5 MPM-списка. Здесь, когда maxCandModeIdx равен 1, mpm[maxCandModeIdx] может представлять собой потенциально подходящий MPM-вариант 1, когда maxCandModeIdx равен 2, mpm[maxCandModeIdx] может представлять собой потенциально подходящий MPM-вариант 2, когда minCandModeidx равен 1, mpm[minCandModeidx] может представлять собой потенциально подходящий MPM-вариант 1, когда minCandModeidx равен 2, mpm[minCandModeidx] может представлять собой потенциально подходящий MPM-вариант 2. Кроме того, здесь, maxAB может быть большим значением номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[338] Альтернативно, когда значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], больше или равно 63 либо меньше или равно 1, устройство кодирования/устройство декодирования может извлекать режим интра-предсказания с номером режима 2+((maxAB+60)%64) в качестве потенциально подходящего MPM-варианта 4 MPM-списка и режим интра-предсказания с номером режима 2+(maxAB%64) в качестве потенциально подходящего MPM-варианта 5 MPM-списка.
[339] Между тем, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, либо, по меньшей мере, один из номеров режимов для режима интра-предсказания левого соседнего блока и режима интра-предсказания верхнего соседнего блока меньше номера режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может определять то, равна или выше либо нет сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока номера режима для режима DC-интра-предсказания.
[340] Когда сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше номера режима для режима DC-интра-предсказания, устройство кодирования/устройство декодирования может извлекать MPM-список текущего блока, включающий в себя извлеченные потенциально подходящий MPM-вариант 0 - потенциально подходящий MPM-вариант 5, как описано ниже.
[341] - mpm[0]=PLANAR_IDX
[342] - mpm[1]=(leftIntraDir<aboveIntraDir)? aboveIntraDir:leftIntraDir
[343] - mpm[2]=DC_IDX
[344] 2+((maxAB+61)%64)
[345] - mpm[4]=2+((maxAB-1)%64)
[346] - mpm[5]=2+((maxAB+60)%64)
[347] Таким образом, потенциально подходящий MPM-вариант 0 MPM-списка может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима интра-предсказания верхнего соседнего блока, когда номер режима для режима интра-предсказания левого соседнего блока меньше номера режима для режима интра-предсказания верхнего соседнего блока, потенциально подходящий MPM-вариант 1 MPM-списка может извлекаться в качестве режима интра-предсказания левого соседнего блока, когда номер режима для режима интра-предсказания левого соседнего блока превышает или равен номеру режима для режима интра-предсказания левого соседнего блока, потенциально подходящий MPM-вариант 2 MPM-списка может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий MPM-вариант 3 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с большим значением из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 4 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из большего значения из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий MPM-вариант 5 MPM-списка может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с большим значением из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[348] Между тем, вариант осуществления вышеописанного способа для формирования MPM-списка может быть показан в следующей таблице в качестве исходного кода.
[349] Табл. 7
Обобщенный способ MPM-формирования 1 (6 MPM), версия на основе исходного кода
[350]
[351] Помимо этого, вариант осуществления вышеописанного способа для формирования MPM-списка может быть показан в следующей таблице в стандартном формате.
[352] Табл. 8
Обобщенный способ 1 MPM-формирования (6 MPM) спецификация версия 8.4.2 из VVC-спецификации
Процесс извлечения для режима интра-предсказания сигналов яркости
Вводы в этот процесс представляют собой следующее:
- местоположение (xCb, yCb) сигнала яркости, указывающее левый верхний дискретный отсчет текущего блока кодирования сигналов яркости относительно левого верхнего дискретного отсчета сигнала яркости текущего кадра,
- переменная cbWidth, указывающая ширину текущего блока кодирования в дискретных отсчетах сигнала яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в дискретных отсчетах сигнала яркости. В этом процессе, режим IntraPredModeY[xCb][yCb] интра-предсказания сигналов яркости извлекается.
Таблица 8-1 указывает значение для режима интра-предсказания IntraPredModeY[xCb][yCb] и ассоциированных названий.
Таблица 8-1. Спецификация режима интра-предсказания и ассоциированных названий
Режим интра-предсказания
Ассоциированное название
0
INTRA_PLANAR
1
INTRA_DC
2...66
INTRA_ANGULAR2...INTRA_ANGULAR66
81...83
INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
Примечание: Режимы интра-предсказания INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM являются только применимыми к компонентам сигнала цветности.
IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
1. Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) задаются равными (xCb-1, yCb+cbHeight-1) и (xCb+cbWidth-1, yCb-1), соответственно.
2. Для замены X посредством A или посредством B, переменные candIntraPredModeX извлекаются следующим образом:
- Процесс извлечения доступности для блока, как указано в разделе 6.4.X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению], активируется с местоположением (xCurr, yCurr), заданным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), заданным равным (xNbX, yNbX), в качестве вводов, и вывод назначается availableX.
- Потенциально подходящий вариант candIntraPredModeX режима интра-предсказания извлекается следующим образом:
- Если одно или более следующих условий представляют собой "истина", candIntraPredModeX задается равным INTRA_PLANAR.
- Переменная availableX равна "ложь".
CuPredMode[xNbX][yNbX] не равно MODE_INTRA, и ciip_flag[xNbX][yNbX] не равен 1.
- pcm_flag[xNbX][yNbX] равен 1.
X равен B, и yCb-1 меньше ((yCb>>CtbLog2SizeY)<<CtbLog2SizeY). В противном случае, candIntraPredModeX задается равным IntraPredModeY[xNbX][yNbX].
[353] 3. candModeList[x] с x=0...5 извлекается следующим образом:
- Если candIntraPredModeB равен candIntraPredModeA, и candIntraPredModeA превышает INTRA_DC, candModeList[x] с x=0...5 извлекается следующим образом:
- candModeList[0]=INTRA_PLANAR (8-9)
- candModeList[1]=candIntraPredModeA (8-10)
- candModeList[2]=2+((candIntraPredModeA+61)%64) (8-12)
- candModeList[3]=2+((candIntraPredModeA-1)%64) (8-13)
- candModeList[4]=INTRA_DC (8-11)
- candModeList[5]=2+((candIntraPredModeA+60)%64) (8-14)
- В противном случае, если candIntraPredModeB не равен candIntraPredModeA, и candIntraPredModeA или candIntraPredModeB превышает INTRA_DC, следующее применимо:
- Переменные minAB и maxAB извлекаются следующим образом: - minAB=Min(candIntraPredModeA, candIntraPredModeB) (8-24)
- maxAB=Max(candIntraPredModeA, candIntraPredModeB) (8-25)
- Если candIntraPredModeA и candIntraPredModeB больше INTRA_DC, candModeList[x] с x=0...5 извлекается следующим образом:
- candModeList[0]= INTRA_PLANAR (8-26)
- candModeList[1]=candIntraPredModeA (8-27)
- candModeList[2]=candIntraPredModeB
- candModeList[3]=INTRA_DC (8-29)
- Если maxAB-minAB находится в диапазоне 2-62, включительно, применимо следующее:
- candModeList[4]=2+((maxAB+61)%64) (8-30)
- candModeList[5]=2+((maxAB-1)%64) (8-31)
- В противном случае, следующее применимо:
- candModeList[4]=2+((maxAB+60)%64) candModeList[5] (8-32)=2+((maxAB)%64) (8-33)
[354] - В противном случае (candIntraPredModeA или candIntraPredModeB превышает INTRA_DC), candModeList[x] с x=0...5 извлекается следующим образом:
- candModeList[0]=INTRA_PLANAR (8-64)
- candModeList[1]=maxAB (8-65)
candModeList[2]=INTRA_DC (8-66)
- candModeList[3]=2+((maxAB+61)%64) (8-66)
- candModeList[4]=2+((maxAB-1)%64) (8-67)
- candModeList[5]=2+((maxAB+60)%64) (8-68)
- В противном случае, следующее применимо:
- candModeList[0]=INTRA_PLANAR (8-70)
- candModeList[1]=INTRA_DC (8-71)
- candModeList[2]=INTRA_ANGULAR50 (8-72)
- candModeList[3]=INTRA_ANGULAR18 (8-73)
- candModeList[4]=INTRA_ANGULAR46 (8-74)
- candModeList[5]=INTRA_ANGULAR54 (8-75)
(8-81)
4. IntraPredModeY[xCb][yCb] извлекается посредством применения следующей процедуры:
- Если intra_luma_mpm_flag[xCb][yCb] равен 1, IntraPredModeY[xCb][yCb] задается равным candModeList [intra_luma_mpm_idx[xCb][yCb]].
- В противном случае, IntraPredModeY[xCb][yCb] извлекается посредством применения следующих упорядоченных этапов:
1. Когда candModeList[i] превышает candModeList[j] для i=0...4 и для каждого i, j=(i+1)...5, оба значения переставляются следующим образом:
(candModeList[i], candModeList[j])=Swap(candModeList[i], candModeList[j]) (8-94)
2. IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
- i. IntraPredModeY[xCb][yCb] задается равным intra_luma_mpm_remainder[xCb][yCb].
- ii. Для i, равного 0-5, включительно, когда IntraPredModeY[xCb][yCb] превышает или равен candModeList[i], значение IntraPredModeY[xCb][yCb] постепенно увеличивается на единицу.
Переменная IntraPredModeY[x][y] с x=xCb...xCb+cbWidth-1 и y=yCb...yCb+cbHeight-1 задается равной IntraPredModeY[xCb][yCb].
[355] Между тем, когда интра-предсказание согласно режиму интра-предсказания текущего блока выражается в стандартном формате, это может быть таким, как показано в следующей таблице.
[356] Табл. 9
8.4.4.2.1 по VVC-спецификации
Процесс интра-предсказания дискретного отсчета согласно predModeIntra применяется следующим образом:
- Если predModeIntra равен INTRA_PLANAR, соответствующий процесс на основе режима интра-предсказания, указываемый в разделе 8.4.4.2.5, активируется с шириной nTbW блока преобразования и высотой nTbH блока преобразования, индексом refIdx опорной линии интра-предсказания и массивом p опорных дискретных отсчетов в качестве вводов, и вывод представляет собой массив predSamples предсказанных дискретных отсчетов.
- В противном случае, если predModeIntra равен INTRA_DC, соответствующий процесс на основе режима интра-предсказания, указываемый в разделе 8.4.4.2.6, активируется с шириной nTbW блока преобразования, высотой nTbH блока преобразования, индексом refIdx опорной линии интра-предсказания и массивом p опорных дискретных отсчетов в качестве вводов, и вывод представляет собой массив predSamples предсказанных дискретных отсчетов.
- В противном случае, если predModeIntra равен INTRA_LT_CCLM, INTRA_L_CCLM или INTRA_T_CCLM, соответствующий процесс на основе режима интра-предсказания, указываемый в разделе 8.4.4.2.8, активируется с режимом predModeIntra интра-предсказания, выборочным местоположением (xTbC, yTbC), заданным равным (xTbCmp, yTbCmp), шириной nTbW и высотой nTbH блока преобразования и массивом p опорных дискретных отсчетов в качестве вводов, и вывод представляет собой массив predSamples предсказанных дискретных отсчетов.
- В противном случае, соответствующий процесс на основе режима интра-предсказания, указываемый в разделе 8.4.4.2.7, активируется с режимом predModeIntra интра-предсказания, индексом refIdx опорной линии интра-предсказания, шириной nTbW блока преобразования, высотой nTbH блока преобразования, шириной refW опорного дискретного отсчета, высотой refH опорного дискретного отсчета, шириной nCbW и высотой nCbH блока кодирования, индексом cIdx цветового компонента и массивом p опорных дискретных отсчетов в качестве вводов и модифицированным режимом predModeIntra интра-предсказания и массивом predSamples предсказанных дискретных отсчетов в качестве выводов.
[357] Помимо этого, вариант осуществления интра-предсказания на основе режима планарного интра-предсказания, выполняемого, когда MRL применяется в настоящем раскрытии, может быть показан в следующей таблице в стандартном формате.
[358] Табл. 10
Спецификация режима INTRA_PLANAR интра-предсказания
Вводы в этот процесс представляют собой следующее:
- переменная nTbW, указывающая ширину блока преобразования,
- переменная nTbH, указывающая высоту блока преобразования,
- переменная refIdx, указывающая индекс опорной линии интра-предсказания,
- соседние дискретные отсчеты p[x][y], с x=-1-refIdx, y=-1-refIdx...nTbH и x=-refIdx...nTbW, y=-1-refIdx. Выводы этого процесса представляют собой предсказанные дискретные отсчеты predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1.
Переменные nW и nH извлекаются следующим образом:
- nW=Max(nTbW, 2) (8-116)
- nH=Max(nTbH, 2) (8-117)
Значения дискретных отсчетов предсказания predSamples[x][y], с x=0...nTbW-1 и y=0...nTbH-1, извлекаются следующим образом: predV[x][y]=((nH-1-y)*p[x][-1-refIdx]+(y+1)*p[-1-refIdx][nTbH])<<Log2(nW) (8-118)
- predH[x][y]=((nW-1-x)*p[-1-refldx][y]+(x+1)*p[nTbW][-1-refldx])<<Log2 (nH) (8-119)
- predSamples[x][y]=(predV[x][y]+predH[x][y]+nW*nH)>>(Log2(nW)+Log2(nH)+1) (8-120)
[359] Помимо этого, вариант осуществления интра-предсказания на основе режима DC-интра-предсказания, выполняемого, когда MRL применяется в настоящем раскрытии, может быть показан в следующей таблице в стандартном формате.
[360] Табл. 11
Спецификация режима DC-интра-предсказания
Вводы в этот процесс представляют собой следующее:
- переменная nTbW, указывающая ширину блока преобразования,
- переменная nTbH, указывающая высоту блока преобразования,
- переменная refIdx, указывающая индекс опорной линии интра-предсказания,
- соседние дискретные отсчеты p[x][y], с x=-1-refIdx, y=-1-refIdx...nTbH-1 и x=-refIdx...nTbW-1, y=-1-refIdx.
Выводы этого процесса представляют собой предсказанные дискретные отсчеты predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1.
Значения дискретных отсчетов предсказания predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1, извлекаются посредством следующих упорядоченных этапов:
1. Переменная dcVal извлекается следующим образом:
- Когда nTbW равна nTbH:
(8-121)
- Когда nTbW больше nTbH:
(8-122)
- Когда nTbW меньше nTbH:
(8-123)
1. Дискретные отсчеты предсказания predSamples[x][y] извлекаются следующим образом: predSamples[x][y]=dcVal, с x=0...nTbW-1, y=0...nTbH-1 (8-124)
[361] Помимо этого, ядро горизонтального преобразования и ядро вертикального преобразования, извлекаемое согласно режиму интра-предсказания, могут заключаться в следующем.
[362] Табл. 12
[363] Например, когда режим интра-предсказания текущего блока определяется в качестве режима DC-интра-предсказания, DCT2 может использоваться в качестве ядра вертикального преобразования для преобразования/обратного преобразования для остатка текущего блока, и DCT2 может использоваться в качестве ядра горизонтального преобразования.
[364] Между тем, согласно настоящему раскрытию, первый элемент разрешения из элементов разрешения в строке элементов разрешения синтаксического элемента MPM-индекса может кодироваться на основе контекстного регулярного кодирования, оставшиеся элементы разрешения в строке элементов разрешения могут подвергаться обходному кодированию.
[365] В этом случае, постепенное приращение ctxInc индекса контекста для указания контекстной модели первого элемента разрешения может задаваться по-разному на основе, по меньшей мере, одного из значения ISP-флага для текущего блока и/или значения индекса опорной линии для текущего блока следующим образом.
[366] Табл. 13
[367] Например, ссылаясь на таблицу 13, когда значение индекса опорной линии не равно 0, ctxInc может извлекаться в качестве 2, когда значение индекса опорной линии равно 0, если значение ISP-флага равно 1, ctxInc может извлекаться в качестве 0, и если значение ISP-флага не равно 1, ctxInc может извлекаться в качестве 1.
[368] Между тем, настоящее раскрытие предлагает другой вариант осуществления более эффективного выполнения интра-предсказания, выполняемого на основе режима DC-интра-предсказания, когда применяется MRL.
[369] Фиг. 19 иллюстрирует опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим DC-интра-предсказания.
[370] (a) по фиг. 19 может представлять опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда текущий блок представляет собой квадратный блок. Например, когда опорная линия, указываемая посредством индекса опорной линии, представляет собой опорную линию 0, опорную линию 1, опорную линию 2 или опорную линию 3, DC-значение может извлекаться на основе опорных дискретных отсчетов в области (1900), показанной в (a) по фиг. 19. Таким образом, когда компонент по оси X и компонент по оси Y верхней левой позиции текущего блока равны 0, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-refIdx,-refIdx-1) в верхней опорной линии текущего блока, и числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-refIdx-1,-refIdx) в левой опорной линии текущего блока. Например, когда значение индекса опорной линии равно 0, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (0,-1) в верхней опорной линии 0 текущего блока, и числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-1, 0) в левой опорной линии 0 текущего блока, когда значение индекса опорной линии равно 1, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета (-1,-2) координаты в верхней опорной линии 1 текущего блока, и числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-2,-1) в левой опорной линии 1 текущего блока, когда значение индекса опорной линии равно 2, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета (-2,-3) координаты в верхней опорной линии 2 текущего блока, и числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-3,-2) в левой опорной линии 2 текущего блока, когда значение индекса опорной линии равно 3, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-3,-4) в верхней опорной линии 3 текущего блока, и числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-4,-3) в левой опорной линии 3 текущего блока.
[371] Кроме того, (b) по фиг. 19 может представлять опорный дискретный отсчет, используемую для того, чтобы извлекать DC-значение, когда текущий блок представляет собой неквадратный блок. В настоящем варианте осуществления, когда текущий блок представляет собой неквадратный блок, DC-значение может извлекаться на основе опорных дискретных отсчетов в опорной линии на более длинной стороне из ширины и высоты текущего блока. Например, когда опорная линия, указываемая посредством индекса опорной линии, представляет собой опорную линию 0, опорную линию 1, опорную линию 2 или опорную линию 3, DC-значение может извлекаться на основе опорных дискретных отсчетов в области (1910) опорной линии на более длинной стороне из ширины и высоты текущего блока. Например, когда ширина текущего блока превышает высоту, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, идентичного ширине от опорного дискретного отсчета с координатами (-refIdx,-refIdx-1) в верхней опорной линии текущего блока. Например, когда значение индекса опорной линии равно 0, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (0,-1) в верхней опорной линии 0 текущего блока, когда значение индекса опорной линии равно 1, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета (-1,-2) координаты в верхней опорной линии 1 текущего блока, когда значение индекса опорной линии равно 2, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета (-2,-3) координаты в верхней опорной линии 2 текущего блока, когда значение индекса опорной линии равно 3, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного ширине от опорного дискретного отсчета с координатами (-3,-4) в верхней опорной линии 3 текущего блока.
[372] Кроме того, например, когда ширина текущего блока меньше высоты, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, идентичного высоте от опорного дискретного отсчета с координатами (-refIdx-1,-refIdx) в левой опорной линии текущего блока. Например, когда значение индекса опорной линии равно 0, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного высоте от опорного дискретного отсчета с координатами (-1, 0) в левой опорной линии 0 текущего блока, когда значение индекса опорной линии равно 1, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного высоте от опорного дискретного отсчета с координатами (-2,-1) в левой опорной линии 1 текущего блока, когда значение индекса опорной линии равно 2, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного высоте от опорного дискретного отсчета с координатами (-3,-2) в левой опорной линии 2 текущего блока, когда значение индекса опорной линии равно 3, DC-значение может извлекаться на основе числа опорных дискретных отсчетов, равного высоте от опорного дискретного отсчета с координатами (-4,-3) в левой опорной линии 3 текущего блока.
[373] После этого, дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[374] Вариант осуществления интра-предсказания на основе режима DC-интра-предсказания, выполняемого, когда MRL применяется в настоящем раскрытии, может быть показан в следующей таблице в стандартном формате.
[375] Табл. 14
Спецификация режима INTRA_DC интра-предсказания
Вводы в этот процесс представляют собой следующее:
- переменная nTbW, указывающая ширину блока преобразования,
- переменная nTbH, указывающая высоту блока преобразования,
- переменная refIdx, указывающая индекс опорной линии интра-предсказания,
- соседние дискретные отсчеты p[x][y], с x=-1-refIdx, y=-1-refIdx...nTbH-1 и x=-refIdx...nTbW-1, y=-1-refIdx.
Выводы этого процесса представляют собой предсказанные дискретные отсчеты predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1.
Значения дискретных отсчетов предсказания predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1, извлекаются посредством следующих упорядоченных этапов:
1. Переменная dcVal извлекается следующим образом:
- Когда nTbW равна nTbH:
(8-121)
- Когда nTbW больше nTbH:
(8-122)
- Когда nTbW меньше nTbH:
(8-123)
1. Дискретные отсчеты предсказания predSamples[x][y] извлекаются следующим образом:
- predSamples[x][y]=dcVal, с x=0...nTbW-1, y=0...nTbH-1 (8-124)
[376] Между тем, настоящее раскрытие предлагает другой вариант осуществления более эффективного выполнения интра-предсказания, выполняемого на основе режима планарного интра-предсказания, когда применяется MRL.
[377] Фиг. 20 иллюстрирует опорный дискретный отсчет, используемую, когда тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания.
[378] Ссылаясь на фиг. 20, когда опорная линия, указываемая посредством индекса опорной линии, представляет собой опорную линию 0, опорную линию 1, опорную линию 2 или опорную линию 3, планарное предсказание может выполняться на основе опорных дискретных отсчетов в области (2000) опорной линии, показанной на фиг. 20. Согласно настоящему варианту осуществления, планарное предсказание может выполняться на основе дискретного отсчета end+1-refIdx ширины/высоты текущего блока, независимо от индекса опорной линии. Таким образом, согласно настоящему варианту осуществления, когда компонент по оси X и компонент по оси Y верхней левой позиции текущего блока равны 0, тип интра-предсказания текущего блока представляет собой MRL, и режим интра-предсказания текущего блока представляет собой режим планарного интра-предсказания, планарное предсказание для текущего блока может выполняться на основе опорного дискретного отсчета с координатами (W-refIdx,-refIdx-1) в верхней опорной линии и опорного дискретного отсчета с координатами (-refIdx-1, H-refIdx) в левой опорной линии.
[379] Ссылаясь на настоящий вариант осуществления, планарное интра-предсказание может выполняться с использованием опорных дискретных отсчетов опорной линии, указываемой посредством индекса опорной линии, и конкретно планарное интра-предсказание может выполняться на основе левого опорного дискретного отсчета в идентичной строке (т.е. идентичной координате Y) с позицией текущего дискретного отсчета в текущем блоке и верхней опорного дискретного отсчета в идентичном столбце (т.е. идентичной координате X) с позицией текущего дискретного отсчета, из опорных дискретных отсчетов опорной линии и опорного дискретного отсчета с координатами (W-refIdx,-refIdx-1) в верхней опорной линии и опорного дискретного отсчета с координатами (-refIdx-1, H-refIdx) в левой опорной линии. В этом случае, значение дискретного отсчета предсказания текущего дискретного отсчета может извлекаться посредством выполнения двунаправленной линейной интерполяции на основе значений вышеописанных четырех опорных дискретных отсчетов. Здесь, двунаправленная линейная интерполяция может выполняться при условии, что левый нижний опорный дискретный отсчет расположен в нижней стороне текущего дискретного отсчета, и правый верхний опорный дискретный отсчет расположен в правой стороне текущего дискретного отсчета.
[380] Вариант осуществления интра-предсказания на основе режима планарного интра-предсказания, выполняемого, когда MRL применяется в настоящем раскрытии, может быть показан в следующей таблице в стандартном формате.
[381] Табл. 15
Спецификация режима INTRA_PLANAR интра-предсказания
Вводы в этот процесс представляют собой следующее:
- переменная nTbW, указывающая ширину блока преобразования,
- переменная nTbH, указывающая высоту блока преобразования,
- переменная refIdx, указывающая индекс опорной линии интра-предсказания,
- соседние дискретные отсчеты p[x][y], с x=-1-refIdx, y=-1-refIdx...nTbH и x=-refIdx...nTbW, y=-1-refIdx. Выводы этого процесса представляют собой предсказанные дискретные отсчеты predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1.
Переменные nW и nH извлекаются следующим образом:
- nW=Max(nTbW, 2) (8-116)
- nH=Max(nTbH, 2) (8-117)
Значения дискретных отсчетов предсказания predSamples[x][y], с x=0...nTbW-1 и y=0...nTbH-1, извлекаются следующим образом: predV[x][y]=((nH-1-y)*p[x][-1-refIdx]+(y+1)*p[-1-refIdx][nTbH-refIdx])<<Log2(nW) (8-118)
- predH[x][y]=((nW-1-x)*p[-1-refIdx][y]+(x+1)*p[nTbW-refIdx][-1-refIdx])<<Log2(nH) (8-119)
- predSamples[x][y]=(predV[x][y]+predH[x][y]+nW*nH)>>(Log2(nW)+Log2(nH)+1) (8-120)
[382] Фиг. 21 схематично иллюстрирует способ кодирования изображения, осуществляемый посредством устройства кодирования согласно настоящему раскрытию. Способ, раскрытый на фиг. 21, может осуществляться посредством устройства кодирования, раскрытого на фиг. 2. В частности, например, S2100 по фиг. 21 может выполняться посредством модуля предсказания устройства кодирования, и S2110-S2120 могут выполняться посредством энтропийного кодера устройства кодирования. Помимо этого, хотя не проиллюстрировано, процесс извлечения остаточного дискретного отсчета относительно текущего блока на основе исходного дискретного отсчета и дискретного отсчета предсказания относительно текущего блока может выполняться посредством вычитателя устройства кодирования, процесс формирования остаточной информации относительно текущего блока на основе остаточного дискретного отсчета может выполняться посредством остаточного процессора устройства кодирования, и процесс кодирования информации изображений, включающей в себя остаточную информацию, может выполняться посредством энтропийного кодера устройства кодирования.
[383] Устройство кодирования формирует восстановленный дискретный отсчет текущего блока (S2100). Устройство кодирования может извлекать дискретный отсчет предсказания текущего блока посредством выполнения предсказания для текущего блока, извлекать остаточный дискретный отсчет текущего блока на основе дискретного отсчета предсказания и формировать восстановленный дискретный отсчет текущего блока на основе дискретного отсчета предсказания и остаточного дискретного отсчета.
[384] Например, устройство кодирования может определять тип интра-предсказания для текущего блока из числа вышеописанных типов интра-предсказания. Например, устройство кодирования может определять тип интра-предсказания для текущего блока с учетом функции затрат на искажение в зависимости от скорости передачи (RD). Вышеописанные типы интра-предсказания могут включать в себя первый тип интра-предсказания с использованием опорных линий интра-предсказания, смежных с текущим блоком, второй тип интра-предсказания с использованием опорных линий интра-предсказания, которые не являются смежными с текущим блоком, и третий тип интра-предсказания, к которому применяется режим на основе интра-субсегментов (ISP). Первый тип интра-предсказания может указывать вышеописанное общее интра-предсказание, второй тип интра-предсказания может указывать вышеописанную MRL, и третий тип интра-предсказания может указывать вышеописанную ISP.
[385] Например, устройство кодирования может формировать и кодировать индекс опорной линии, указывающий опорную линию интра-предсказания текущего блока. Может определяться то, представляет тип интра-предсказания для текущего блока или нет собой второй тип интра-предсказания, на основе индекса опорной линии. Если тип интра-предсказания для текущего блока не представляет собой второй тип интра-предсказания, например, устройство кодирования может формировать и кодировать ISP-флаг, представляющий то, применяется или нет третий тип интра-предсказания к текущему блоку. Может определяться то, представляет тип интра-предсказания для текущего блока или нет собой третий тип интра-предсказания, на основе ISP-флага. Тип интра-предсказания для текущего блока может извлекаться в качестве третьего типа интра-предсказания, если ISP-флаг указывает то, что третий тип интра-предсказания применяется к текущему блоку, и тип интра-предсказания для текущего блока может извлекаться в качестве первого типа интра-предсказания, если ISP-флаг указывает то, что третий тип интра-предсказания не применяется к текущему блоку. Связанная с предсказанием информация может включать в себя индекс опорной линии, ISP-флаг и/или ISP-индекс. Связанная с предсказанием информация может включать в себя индекс опорной линии и дополнительно может включать в себя ISP-флаг, когда индекс опорной линии равен 0. Когда ISP-флаг равен 1, связанная с предсказанием информация дополнительно может включать в себя ISP-индекс.
[386] Например, устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания текущего блока на основе режимов интра-предсказания соседних блоков относительно текущего блока.
[387] Например, устройство кодирования список потенциально подходящих вариантов режимов интра-предсказания текущего блока посредством процесса построения списков потенциально подходящих вариантов режима выполнения интра-предсказания, показанного в таблице 3. Между тем, список потенциально подходящих вариантов режимов интра-предсказания может означать вышеописанный список наиболее вероятных режимов (MPM).
[388] Например, устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания. Устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе того, является или нет первый потенциально подходящий вариант режима интра-предсказания идентичным второму потенциально подходящему варианту режима интра-предсказания, и/или того, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания и/или номер режима второго потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания. Здесь, первый потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания левого соседнего блока относительно текущего блока, и второй потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания верхнего соседнего блока относительно текущего блока. Например, режим интра-предсказания левого соседнего блока относительно текущего блока может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и режим интра-предсказания верхнего соседнего блока относительно текущего блока может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[389] В частности, когда первый потенциально подходящий вариант режима интра-предсказания является идентичным второму потенциально подходящему варианту режима интра-предсказания, например, устройство кодирования может определять то, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания, и если номер режима первого потенциально подходящего варианта режима интра-предсказания превышает номер режима для режима DC-интра-предсказания, извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[390] - mpm[0]=leftIntraDir
[391] - mpm[1]=PLANAR_IDX
[392] - mpm[2]=DC_IDX
[393] - mpm[3]=((leftIntraDir+offset)%mod)+2
[394] - mpm[4]=((leftIntraDir-1)%mod)+2
[395] - mpm[5]=((leftIntraDir+offset-1)%mod)+2
[396] Здесь, mpm[0], mpm[1], mpm[2], mpm[3], mpm[4] и mpm[5] представляют потенциально подходящий вариант 0 режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, leftIntraDir представляет первый потенциально подходящий вариант режима интра-предсказания, PLANAR_IDX представляет режим планарного интра-предсказания, и DC_IDX представляет режим DC-интра-предсказания. Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима (leftIntraDir+offset)%mod),+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима первого потенциально подходящего варианта режима интра-предсказания и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[397] Например, когда первый потенциально подходящий вариант режима интра-предсказания не является идентичным второму потенциально подходящему варианту режима интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания следующим образом.
[398] - mpm[0]=leftIntraDir
[399] - mpm[1]=aboveIntraDir
[400] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания. Дополнительно, maxCandModeIdx может извлекаться в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания, и maxCandModeIdx может извлекаться в качестве 1, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания.
[401] Если номер режима первого потенциально подходящего варианта режима интра-предсказания и номер режима второго потенциально подходящего варианта режима интра-предсказания превышают номер режима для режима DC-интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания и потенциально подходящий вариант 3 режима интра-предсказания следующим образом.
[402] - mpm[2]=PLANAR_IDX
[403] - mpm[3]=DC_IDX
[404] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, и потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания.
[405] Затем если значение, полученное посредством вычитания номера режима mpm[!maxCandModeIdx] из номера режима mpm[maxCandModeIdx] меньше 63 и больше 1, устройство кодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[406] - mpm[4]=((mpm[maxCandModeIdx]+offset)%mod)+2
[407] - mpm[5]=((mpm[maxCandModeIdx]-1)%mod)+2
[408] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[409] Если значение, полученное посредством вычитания номера режима mpm[!maxCandModeIdx] из номера режима mpm[maxCandModeIdx], равно или больше 63 либо равно или меньше 1, устройство кодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[410] - mpm[4]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[411] - mpm[5]=((mpm[maxCandModeIdx])%mod)+2
[412] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[413] Если, по меньшей мере, один из номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания не превышает номер режима для режима DC-интра-предсказания, устройство кодирования может определять то, равна или выше либо нет сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания 2. Если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания равна или выше 2, устройство кодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[414] - mpm[2]=(mpm[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[415] - mpm[3]=((mpm[maxCandModeIdx]+offset)%mod)+2
[416] - mpm[4]=((mpm[maxCandModeIdx]-1)%mod)+2
[417] - mpm[5]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[418] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если mpm[!maxCandModeIdx] представляет собой режим планарного интра-предсказания, и может извлекаться в качестве режима планарного интра-предсказания, если mpm[!maxCandModeIdx] не представляет собой режим планарного интра-предсказания. Помимо этого, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[419] Если вышеуказанные условия не удовлетворяются, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[420] - mpm[0]=leftIntraDir
[421] - mpm[1]=(mpm[0]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[422] - mpm[2]=VER_IDX
[423] - mpm[3]=HOR_IDX
[424] - mpm[4]=VER_IDX-4
[425] - mpm[5]=VER_IDX+4
[426] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания представляет собой режим планарного интра-предсказания, и извлекаться в качестве режима планарного интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания не представляет собой режим планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима горизонтального интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режим #46 интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания могут извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания.
[427] Например, устройство кодирования может выполнять процесс построения списка потенциально подходящих вариантов режимов интра-предсказания, показанный в таблице 4, чтобы осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания для текущего блока.
[428] Например, устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания. Устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе того, является или нет первый потенциально подходящий вариант режима интра-предсказания идентичным второму потенциально подходящему варианту режима интра-предсказания, и/или того, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания и/или номер режима второго потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания. Здесь, первый потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания левого соседнего блока относительно текущего блока, и второй потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания верхнего соседнего блока относительно текущего блока. Например, режим интра-предсказания левого соседнего блока относительно текущего блока может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и режим интра-предсказания верхнего соседнего блока относительно текущего блока может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[429] В частности, когда первый потенциально подходящий вариант режима интра-предсказания является идентичным второму потенциально подходящему варианту режима интра-предсказания, например, устройство кодирования может определять то, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания, и если номер режима первого потенциально подходящего варианта режима интра-предсказания превышает номер режима для режима DC-интра-предсказания, извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[430] - mpm[0]=leftIntraDir
[431] - mpm[1]=PLANAR_IDX
[432] - mpm[2]=((leftIntraDir+offset)%mod)+2
[433] - mpm[3]=((leftIntraDir-1)%mod)+2
[434] - mpm[4]=DC_IDX
[435] - mpm[5]=((leftIntraDir+offset-1)%mod)+2
[436] Здесь, mpm[0], mpm[1], mpm[2], mpm[3], mpm[4] и mpm[5] представляют потенциально подходящий вариант 0 режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, leftIntraDir представляет первый потенциально подходящий вариант режима интра-предсказания, PLANAR_IDX представляет режим планарного интра-предсказания, и DC_IDX представляет режим DC-интра-предсказания. Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима первого потенциально подходящего варианта режима интра-предсказания и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[437] Например, когда первый потенциально подходящий вариант режима интра-предсказания не является идентичным второму потенциально подходящему варианту режима интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания следующим образом.
[438] - mpm[0]=leftIntraDir
[439] - mpm[1]=aboveIntraDir
[440] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания. Дополнительно, устройство кодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания, и извлекать maxCandModeIdx в качестве 1, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания.
[441] Если номер режима первого потенциально подходящего варианта режима интра-предсказания и номер режима второго потенциально подходящего варианта режима интра-предсказания превышают номер режима для режима DC-интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 1 режима интра-предсказания - потенциально подходящий вариант 3 режима интра-предсказания следующим образом.
[442] - mpm[1]=PLANAR_IDX
[443] - mpm[2]=aboveIntraDir
[444] - maxCandModeIdx=mpm[0]>mpm[2]? 0: 2
[445] - интервал minCandModeidx=mpm[0]>mpm[2]? 2: 0
[446] - mpm[3]=DC_IDX;
[447] Таким образом, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания. Дополнительно, устройство кодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания, и извлекать maxCandModeIdx в качестве 2, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания. Дополнительно, устройство кодирования может извлекать minCandModeidx в качестве 2, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания, и извлекать minCandModeidx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания.
[448] Если значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], меньше 63 и больше 1, устройство кодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[449] - mpm[4]=((mpm[maxCandModeIdx]+offset)%mod)+2
[450] - mpm[5]=((mpm[maxCandModeIdx]-1)%mod)+2
[451] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[452] Если значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], равно или больше 63 либо равно или меньше 1, устройство кодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[453] - mpm[4]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[454] - mpm[5]=((mpm[maxCandModeIdx])%mod)+2
[455] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx])%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[456] Если, по меньшей мере, один из номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания не превышает номер режима для режима DC-интра-предсказания, устройство кодирования может определять то, равна или выше либо нет сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания 2. Если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания равна или выше 2, устройство кодирования может определять то, представляет или нет, по меньшей мере, один из первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания собой режим планарного интра-предсказания.
[457] Если, по меньшей мере, один из первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания представляет собой режим планарного интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания следующим образом.
[458] - mpm[0]=PLANAR_IDX
[459] - mpm[1]=(leftIntraDir<aboveIntraDir)? aboveIntraDir:leftIntraDir
[460] - maxCandModeIdx=1
[461] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания, если номер режима первого потенциально подходящего варианта режима интра-предсказания меньше номера режима второго потенциально подходящего варианта режима интра-предсказания, и извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, если номер режима первого потенциально подходящего варианта режима интра-предсказания, равно или больше номера режима второго потенциально подходящего варианта режима интра-предсказания. Дополнительно, устройство кодирования может извлекать maxCandModeIdx в качестве 1.
[462] Если первый потенциально подходящий вариант режима интра-предсказания и второй потенциально подходящий вариант режима интра-предсказания не представляют собой режим планарного интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[463] - mpm[2]=(mpm[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[464] - mpm[3]=((mpm[maxCandModeIdx]+offset)%mod)+2
[465] - mpm[4]=((mpm[maxCandModeIdx]-1)%mod)+2
[466] - mpm[5]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[467] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если mpm[!maxCandModeIdx] представляет собой режим планарного интра-предсказания, и может извлекаться в качестве режима планарного интра-предсказания, если mpm[!maxCandModeIdx] не представляет собой режим планарного интра-предсказания. Помимо этого, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[468] Если вышеуказанные условия не удовлетворяются, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[469] - mpm[0]=leftIntraDir
[470] - mpm[1]=(mpm[0]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[471] - mpm[2]=VER_IDX
[472] - mpm[3]=HOR_IDX
[473] - mpm[4]=VER_IDX-4
[474] - mpm[5]=VER_IDX+4
[475] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания представляет собой режим планарного интра-предсказания, и извлекаться в качестве режима планарного интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания не представляет собой режим планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима горизонтального интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режим #46 интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания могут извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания.
[476] Например, устройство кодирования может выполнять процесс построения списка потенциально подходящих вариантов режимов интра-предсказания, показанный в таблице 5, чтобы осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания для текущего блока.
[477] Например, устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания. Устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе того, является или нет первый потенциально подходящий вариант режима интра-предсказания идентичным второму потенциально подходящему варианту режима интра-предсказания, и/или того, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания и/или номер режима второго потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания. Здесь, первый потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания левого соседнего блока относительно текущего блока, и второй потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания верхнего соседнего блока относительно текущего блока. Например, режим интра-предсказания левого соседнего блока относительно текущего блока может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и режим интра-предсказания верхнего соседнего блока относительно текущего блока может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[478] В частности, когда первый потенциально подходящий вариант режима интра-предсказания является идентичным второму потенциально подходящему варианту режима интра-предсказания, например, устройство кодирования может определять то, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания, и если номер режима первого потенциально подходящего варианта режима интра-предсказания превышает номер режима для режима DC-интра-предсказания, извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[479] - mpm[0]=g_intraMode65to33AngMapping[leftIntraDir]
[480] - mpm[1]=((g_intraMode65to33AngMapping[leftIntraDir]+offset)%mod)+2
[481] - mpm[2]=((g_intraMode65to33AngMapping[leftIntraDir]-1)%mod)+2
[482] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания. Помимо этого, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((g_intraMode65to33AngMapping[leftIntraDir]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((g_intraMode65to33AngMapping[leftIntraDir]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима первого потенциально подходящего варианта режима интра-предсказания и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[483] Если номер режима первого потенциально подходящего варианта режима интра-предсказания не превышает номер режима для режима DC-интра-предсказания, устройство кодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[484] - mpm[0]=g_intraMode65to33AngMapping[PLANAR_IDX]
[485] - mpm[1]=g_intraMode65to33AngMapping[DC_IDX]
[486] - mpm[2]=g_intraMode65to33AngMapping[VER_IDX]
[487] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания.
[488] Дополнительно, если первый потенциально подходящий вариант режима интра-предсказания не является идентичным второму потенциально подходящему варианту режима интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания.
[489] - mpm[0]=g_intraMode65to33AngMapping[leftIntraDir]
[490] - mpm[1]=g_intraMode65to33AngMapping[aboveIntraDir]
[491] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[492] Затем если как первый потенциально подходящий вариант режима интра-предсказания, так и второй потенциально подходящий вариант режима интра-предсказания представляют собой режим планарного интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания следующим образом.
[493] - mpm[2]=g_intraMode65to33AngMapping[PLANAR_IDX]
[494] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания.
[495] В противном случае, если, по меньшей мере, один из первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания представляет собой режим планарного интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания следующим образом.
[496] - mpm[2]=g_intraMode65to33AngMapping [(leftIntraDir+aboveIntraDir)<2? VER_IDX: DC_IDX]
[497] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания, если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания меньше 2, и извлекаться в качестве режима DC-интра-предсказания, если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания равна или выше 2.
[498] Например, устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания текущего блока на основе режимов интра-предсказания соседних блоков относительно текущего блока, как показано в таблице 6. Между тем, список потенциально подходящих вариантов режимов интра-предсказания может означать вышеописанный список наиболее вероятных режимов (MPM).
[499] Например, устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе режима интра-предсказания левого соседнего блока относительно текущего блока и режима интра-предсказания верхнего соседнего блока относительно текущего блока. Устройство кодирования может определять то, являются или нет режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока идентичными, и то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания. Устройство кодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе того, являются или нет режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока идентичными, и/или номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания.
[500] Когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, устройство кодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания текущего блока, включающий в себя потенциально подходящие варианты режимов интра-предсказания, как описано ниже.
[501] - mpm[0]=INTRA_PLANAR
[502] - mpm[1]=candIntraPredModeA
[503] 2+((candIntraPredModeA+61)%64)
[504] - mpm[3]=2+((candIntraPredModeA-1)%64)
[505] - mpm[4]=INTRA_DC
[506] - mpm[5]=2+((candIntraPredModeA+60)%64)
[507] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((candIntraPredModeA+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с номером режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((candIntraPredModeA-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из номера режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((candIntraPredModeA+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с номером режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима. Таким образом, например, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, список потенциально подходящих вариантов режимов интра-предсказания может включать в себя режим интра-предсказания левого соседнего блока, режим интра-предсказания верхнего соседнего блока, режим интра-предсказания с номером режима 2+((candIntraPredModeA+61)%64), режим интра-предсказания с номером режима 2+((candIntraPredModeA-1)%64) и режим интра-предсказания с номером режима 2+((candIntraPredModeA+60)%64) в качестве потенциально подходящих вариантов режимов интра-предсказания. Здесь, candIntraPredModeA может представлять номер режима для режима интра-предсказания левого соседнего блока относительно текущего блока.
[508] Между тем, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, например, устройство кодирования может определять то, превышает или нет, по меньшей мере, один из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока номер режима для режима DC-интра-предсказания. Когда, по меньшей мере, один из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания, переменная minAB и переменная maxAB могут извлекаться следующим образом.
[509] - minAB=Min (candIntraPredModeA, candIntraPredModeB)
[510] - maxAB=Max (candIntraPredModeA, candIntraPredModeB)
[511] Здесь, candIntraPredModeA может представлять номер режима для режима интра-предсказания левого соседнего блока относительно текущего блока, и candIntraPredModeB может представлять номер режима для режима интра-предсказания верхнего соседнего блока относительно текущего блока. Таким образом, minAB может представлять меньшее значение из номера режима для режима интра-предсказания левого соседнего блока, и номер режима для режима интра-предсказания верхнего соседнего блока, maxAB может представлять большее значение из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[512] Кроме того, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, устройство кодирования может определять то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания, и номер режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания.
[513] Например, когда номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, и номер режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания, устройство кодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания - потенциально подходящий вариант 3 режима интра-предсказания, как описано ниже.
[514] - mpm[0]=INTRA_PLANAR
[515] - mpm[1]=candIntraPredModeA
[516] - mpm[2]=candIntraPredModeB
[517] - mpm[3]=INTRA_DC
[518] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания верхнего соседнего блока, и потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания. Здесь, candIntraPredModeB может представлять номер режима для режима интра-предсказания верхнего соседнего блока относительно текущего блока. Таким образом, например, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока не являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока и номер режима для режима интра-предсказания верхнего соседнего блока превышают номер режима для режима DC-интра-предсказания, список потенциально подходящих вариантов режимов интра-предсказания может включать в себя режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока в качестве потенциально подходящих вариантов режимов интра-предсказания.
[519] После этого, потенциально подходящие варианты оставшихся режимов интра-предсказания (потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания) могут извлекаться на основе maxAB и minAB. В частности, потенциально подходящие варианты оставшихся режимов интра-предсказания извлекаются на основе разности между большим значением и меньшим значением среди номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[520] Например, когда значение, полученное посредством вычитания minAB из maxAB, меньше 63 и больше 1 (т.е. когда значение, полученное посредством вычитания minAB из maxAB, равно одному из 2-62), устройство кодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, как описано ниже.
[521] 2+((maxAB+61)%64)
[522] - mpm[5]=2+((maxAB-1)%64)
[523] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+((maxAB+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+((maxAB-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима. Здесь, maxAB может представлять большее значение из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[524] Альтернативно, когда значение, полученное посредством вычитания minAB из maxAB, равно или больше 63 либо равно или меньше 1, устройство кодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, как описано ниже.
[525] - mpm[4]=2+((maxAB+60)%64)
[526] - mpm[5]=2+(maxAB%64)
[527] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+((maxAB+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+(maxAB%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 на maxAB и суммировании 2 с результатом арифметической операции по модулю, в качестве номера режима. Здесь, maxAB может представлять большее значение из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[528] Между тем, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, либо, по меньшей мере, один из номеров режимов для режима интра-предсказания левого соседнего блока и режима интра-предсказания верхнего соседнего блока меньше номера режима для режима DC-интра-предсказания, устройство кодирования может определять то, равна или выше либо нет сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока номера режима для режима DC-интра-предсказания.
[529] Например, когда сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше номера режима для режима DC-интра-предсказания, устройство кодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания текущего блока, включающий в себя потенциально подходящие варианты режимов интра-предсказания, как описано ниже.
[530] - mpm[0]=INTRA_PLANAR
[531] - mpm[1]=maxAB
[532] - mpm[2]=INTRA_DC
[533] 2+((maxAB+61)%64)
[534] - mpm[4]=2+((maxAB-1)%64)
[535] - mpm[5]=2+((maxAB+60)%64)
[536] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания может извлекаться в качестве maxAB, т.е. потенциально подходящий вариант 1 режима интра-предсказания может извлекаться в качестве режима интра-предсказания верхнего соседнего блока, когда номер режима для режима интра-предсказания левого соседнего блока меньше номера режима для режима интра-предсказания верхнего соседнего блока, и потенциально подходящий вариант 1 режима интра-предсказания может извлекаться в качестве режима интра-предсказания левого соседнего блока, когда номер режима для режима интра-предсказания левого соседнего блока превышает или равен номеру режима для режима интра-предсказания верхнего соседнего блока, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[537] Альтернативно, например, когда вышеуказанные условия не удовлетворяются, устройство кодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания текущего блока, включающий в себя потенциально подходящие варианты режимов интра-предсказания, как описано ниже.
[538] - mpm[0]=INTRA_PLANAR
[539] - mpm[1]=INTRA_DC
[540] - mpm[2]=INTRA_ANGULAR50
[541] - mpm[3]=INTRA_ANGULAR18
[542] - mpm[4]=INTRA_ANGULAR46
[543] - mpm[5]=INTRA_ANGULAR54
[544] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания (т.е. режима #50 интра-предсказания), потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима горизонтального интра-предсказания (т.е. режима #18 интра-предсказания), потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания номера режима, полученного посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режима #46 интра-предсказания, потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания номера режима, полученного посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания. Таким образом, например, когда вышеуказанные условия не удовлетворяются, список потенциально подходящих вариантов режимов интра-предсказания может включать в себя режим DC-интра-предсказания, режим #50 интра-предсказания, режим #18 интра-предсказания, режим #46 интра-предсказания и режим #54 интра-предсказания в качестве потенциально подходящих вариантов режимов интра-предсказания.
[545] Между тем, например, когда левый соседний блок не доступен, интра-предсказание не применяется к левому соседнему блоку, и режим интра-предсказания левого соседнего блока, соответствующий, по меньшей мере, одному из случая, в котором значение CIIP-флага верхнего соседнего блока не равно 1, и случая, в котором значение PCM-флага левого соседнего блока равно 1, может извлекаться в качестве режима планарного интра-предсказания. Кроме того, когда верхний соседний блок не доступен, интра-предсказание не применяется к верхнему соседнему блоку, и режим интра-предсказания левого соседнего блока, соответствующий, по меньшей мере, одному из случая, в котором значение CIIP-флага верхнего соседнего блока не равно 1, случая, в котором значение PCM-флага верхнего соседнего блока равно 1, и случая, в котором верхний соседний блок не включается в текущую CTU, может извлекаться в качестве режима планарного интра-предсказания.
[546] Между тем, список потенциально подходящих вариантов режимов интра-предсказания, сформированный, когда тип интра-предсказания представляет собой первый тип интра-предсказания, список потенциально подходящих вариантов режимов интра-предсказания, сформированный, когда тип интра-предсказания представляет собой второй тип интра-предсказания, и список потенциально подходящих вариантов режимов интра-предсказания, сформированный, когда тип интра-предсказания представляет собой третий тип интра-предсказания, могут быть идентичными. Таким образом, идентичный список потенциально подходящих вариантов режимов интра-предсказания может строиться независимо от типа интра-предсказания для текущего блока. Список потенциально подходящих вариантов режимов интра-предсказания может строиться через идентичный процесс построения режима интра-предсказания независимо от типа интра-предсказания для текущего блока. Процесс построения режима интра-предсказания может быть идентичным одному из вышеописанных вариантов осуществления.
[547] Например, устройство кодирования может извлекать режим интра-предсказания текущего блока на основе списка потенциально подходящих вариантов режимов интра-предсказания. Устройство кодирования может извлекать режим интра-предсказания, имеющий оптимальные RD-затраты, в качестве режима интра-предсказания для текущего блока посредством выполнения различных режимов интра-предсказания. Например, устройство кодирования может извлекать режим интра-предсказания, имеющий оптимальные RD-затраты из числа потенциально подходящих вариантов режимов интра-предсказания в списке потенциально подходящих вариантов режимов интра-предсказания в качестве режима интра-предсказания для текущего блока. Режим интра-предсказания может представлять собой одно из двух режимов ненаправленного интра-предсказания и 65 режимов направленного интра-предсказания. Два режима ненаправленного интра-предсказания могут включать в себя режим DC-интра-предсказания и режим планарного интра-предсказания, как описано выше.
[548] Например, режим интра-предсказания текущего блока может выбираться в качестве одного из режимов интра-предсказания, за исключением режима планарного интра-предсказания и режима DC-интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве второго типа интра-предсказания, и выбираться в качестве одного из режимов интра-предсказания, за исключением режима DC-интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве третьего типа интра-предсказания.
[549] Например, режим интра-предсказания текущего блока может выбираться в качестве одного из режимов интра-предсказания, за исключением режима планарного интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве второго типа интра-предсказания, и выбираться в качестве одного из режимов интра-предсказания, за исключением режима DC-интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве третьего типа интра-предсказания.
[550] Например, режим интра-предсказания текущего блока может выбираться в качестве одного из режимов интра-предсказания, за исключением режима планарного интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве второго типа интра-предсказания.
[551] Устройство кодирования может формировать MPM-флаг, указывающий то, включается или нет определенный режим интра-предсказания в потенциально подходящие варианты режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания. MPM-флаг также может называться "флагом потенциально подходящего варианта режима интра-предсказания". Если определенный режим интра-предсказания включается в потенциально подходящие варианты режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания, устройство кодирования может формировать MPM-индекс, указывающий определенный режим интра-предсказания из числа потенциально подходящих вариантов режимов интра-предсказания. MPM-индекс также может называться "индексом потенциально подходящего варианта режима интра-предсказания". Если определенный режим интра-предсказания не включается в потенциально подходящие варианты режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания, устройство кодирования может формировать информацию оставшихся режимов интра-предсказания, указывающую определенный режим интра-предсказания из числа оставшихся режимов интра-предсказания, которые не включаются в потенциально подходящие варианты режимов интра-предсказания. Дополнительно, если определенный режим интра-предсказания включается в потенциально подходящие варианты режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания, устройство кодирования может не передавать в служебных сигналах MPM-флаг, и значение MPM-флага может извлекаться в качестве 1. Связанная с предсказанием информация для текущего блока может включать в себя MPM-флаг, MPM-индекс и/или информацию оставшихся режимов интра-предсказания.
[552] Например, устройство кодирования может извлекать дискретный отсчет предсказания текущего блока на основе типа интра-предсказания и режима интра-предсказания.
[553] Например, когда тип интра-предсказания извлекается в качестве первого типа интра-предсказания, устройство кодирования может извлекать, по меньшей мере, одну опорный дискретный отсчет из числа опорных дискретных отсчетов в опорных линиях интра-предсказания, смежных с текущим блоком на основе режима интра-предсказания, и формировать дискретные отсчеты предсказания текущего блока на основе опорного дискретного отсчета. Опорные дискретные отсчеты могут включать в себя левую верхнюю опорный дискретный отсчет, верхние опорные дискретные отсчеты и левые опорные дискретные отсчеты текущего блока. Например, когда размер текущего блока составляет WxH, компонент по оси X левой верхней выборочной позиции текущего блока составляет xN, и его компонент по оси Y составляет yN, левые опорные дискретные отсчеты могут составлять p[xN-1][yN] - p[xN-1][2H+yN-1], левый верхний опорный дискретный отсчет может составлять p[xN-1][yN-1], и верхние опорные дискретные отсчеты могут составлять p[xN][yN-1] - p[2W+xN-1][yN-1].
[554] Например, когда тип интра-предсказания извлекается в качестве второго типа интра-предсказания, устройство кодирования может извлекать, по меньшей мере, одну опорный дискретный отсчет из числа опорных дискретных отсчетов в опорных линиях интра-предсказания, которые не являются смежными с текущим блоком, на основе режима интра-предсказания, и формировать дискретные отсчеты предсказания текущего блока на основе опорного дискретного отсчета. Здесь, опорные линии интра-предсказания могут представлять собой опорные линии, отделенные от верхней границы и/или левой границы текущего блока на 1, 2 или 3 выборочных расстояния.
[555] Например, когда тип интра-предсказания извлекается в качестве третьего типа интра-предсказания, устройство кодирования может определять тип ISP-разбиения текущего блока и сегментировать текущий блок согласно типу ISP-разбиения, чтобы извлекать субблоки. Тип разбиения может представлять собой тип горизонтального разбиения или тип вертикального разбиения. Например, когда размер текущего блока составляет 4×4, текущий блок может не сегментироваться. Например, когда размер текущего блока составляет 4×8, и тип разбиения представляет собой тип горизонтального разбиения, текущий блок может сегментироваться на два субблока 4×4. Например, когда размер текущего блока составляет 4×8, и тип разбиения представляет собой тип вертикального разбиения, текущий блок может сегментироваться на два субблока 2×8. Например, когда размер текущего блока составляет 8×4, и тип разбиения представляет собой тип горизонтального разбиения, текущий блок может сегментироваться на два субблока 8×2. Например, когда размер текущего блока составляет 8×4, и тип разбиения представляет собой тип вертикального разбиения, текущий блок может сегментироваться на два субблока 4×4. Например, когда размер текущего блока составляет WxH (размеры, отличные от 4×8, 8×4 и 4×4), и тип разбиения представляет собой тип горизонтального разбиения, текущий блок может сегментироваться на четыре субблока WxH/4. Например, когда размер текущего блока составляет WxH, и тип разбиения представляет собой тип вертикального разбиения, текущий блок может сегментироваться на четыре cубблока W/4xH. После этого, устройство кодирования может выполнять интра-предсказание для субблоков, чтобы формировать дискретные отсчеты предсказания. Таким образом, устройство кодирования может извлекать, по меньшей мере, одну из опорных дискретных отсчетов в опорных линиях интра-предсказания каждого субблока относительно текущего блока на основе режима интра-предсказания и формировать дискретные отсчеты предсказания на основе опорного дискретного отсчета. Опорные линии интра-предсказания каждого субблока могут представлять собой опорные линии, смежные с каждым субблоком. Между тем, устройство кодирования может формировать и кодировать флаг ISP-разбиения, указывающий тип ISP-разбиения. Вышеуказанная связанная с предсказанием информация может включать в себя флаг ISP-разбиения.
[556] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима DC-интра-предсказания, текущий блок представляет собой квадратный блок, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (0,-refIdx-1) до опорного дискретного отсчета с координатами (W-1,-refIdx-1) в верхней опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока, и опорного дискретного отсчета с координатами (-refIdx-1, 0) до опорного дискретного отсчета с координатами (-refIdx-1, H-1) в левой опорной линии интра-предсказания, указываемой посредством индекса опорной линии. Дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[557] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима DC-интра-предсказания, текущий блок представляет собой неквадратный блок, ширина которого больше его высоты, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (0,-refIdx-1) до опорного дискретного отсчета с координатами (W-1,-refIdx-1) в верхней опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока. Дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[558] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима DC-интра-предсказания, текущий блок представляет собой неквадратный блок, высота которого больше его ширины, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (-refIdx-1, 0) до опорного дискретного отсчета с координатами (-refIdx-1, H-1) в левой опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока. Дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[559] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима планарного интра-предсказания, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, дискретный отсчет предсказания может извлекаться на основе опорного дискретного отсчета с координатами (W-1,-refIdx-1) и опорного дискретного отсчета с координатами (-refIdx-1, H-1) в опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока.
[560] Кроме того, например, устройство кодирования может извлекать остаточный дискретный отсчет текущего блока на основе дискретного отсчета предсказания. Устройство кодирования может извлекать остаточный дискретный отсчет из разности между исходным дискретным отсчетом и дискретным отсчетом предсказания. Затем, например, устройство кодирования может формировать восстановленный дискретный отсчет текущего блока на основе дискретного отсчета предсказания и остаточного дискретного отсчета. После этого, устройство кодирования может применять процедуру внутриконтурной фильтрации, к примеру, процедуру фильтрации для удаления блочности и/или SAO, к восстановленному дискретному отсчету (т.е. к восстановленному кадру), чтобы повышать субъективное/объективное качество кадров при необходимости, как описано выше.
[561] Устройство кодирования формирует связанную с предсказанием информацию для текущего блока (S2110). Устройство кодирования может формировать связанную с предсказанием информацию для текущего блока.
[562] Например, связанная с предсказанием информация может включать в себя индекс опорной линии текущего блока. Индекс опорной линии может указывать опорную линию интра-предсказания текущего блока. Например, когда значение индекса опорной линии равно 0, индекс опорной линии может указывать опорную линию, смежную с верхней границей и/или левой границей текущего блока, когда значение индекса опорной линии равно 1, индекс опорной линии может указывать опорную линию, отделенную на одно выборочное расстояние отделенную на одно выборочное расстояние от верхней границы и/или левой границы текущего блока, когда значение индекса опорной линии равно 2, индекс опорной линии может указывать опорную линию, отделенную на 2 выборочных расстояния от верхней границы и/или левой границы текущего блока, когда значение индекса опорной линии равно 3, индекс опорной линии может указывать опорную линию, отделенную на 3 выборочных расстояния от верхней границы и/или левой границы текущего блока.
[563] Кроме того, например, когда индекс опорной линии указывает опорную линию, смежную с текущим блоком, т.е. когда значение индекса опорной линии равно 0, связанная с предсказанием информация может включать в себя флаг режима на основе интра-субсегментов (ISP). ISP-флаг может представлять то, применяется или нет третий тип интра-предсказания, к которому применяется ISP, к текущему блоку. Таким образом, ISP-флаг может представлять то, применяется или нет ISP к текущему блоку. Например, когда значение флага IPS равно 1, ISP-флаг может представлять то, что третий тип интра-предсказания применяется к текущему блоку, когда значение флага IPS равно 0, ISP-флаг может представлять то, что третий тип интра-предсказания не применяется к текущему блоку. Кроме того, например, когда значение ISP-флага равно 1, связанная с предсказанием информация может включать в себя флаг ISP-разбиения, представляющий тип ISP-разбиения.
[564] Кроме того, например, связанная с предсказанием информация может включать в себя флаг наиболее вероятного режима (MPM). Альтернативно, например, связанная с предсказанием информация может не включать в себя MPM-флаг, и в этом случае, устройство кодирования может извлекать значение MPM-флага в качестве 1. MPM-флаг может представлять то, представляет или нет режим интра-предсказания текущего блока собой один из потенциально подходящих вариантов режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания. MPM-флаг может называться "флагом потенциально подходящего варианта режима интра-предсказания".
[565] Кроме того, например, когда значение MPM-флага равно 1, связанная с предсказанием информация может включать в себя MPM-индекс. MPM-индекс может указывать один из потенциально подходящих вариантов режимов интра-предсказания в списке потенциально подходящих вариантов режимов интра-предсказания. MPM-индекс может передаваться в служебных сигналах в форме синтаксического элемента mpm_idx или intra_luma_mpm_idx. MPM-индекс может называться "индексом потенциально подходящего варианта режима интра-предсказания".
[566] Кроме того, например, когда значение MPM-флага равно 0, связанная с предсказанием информация может включать в себя информацию оставшихся режимов интра-предсказания. Информация оставшихся режимов интра-предсказания может указывать один из оставшихся режимов интра-предсказания, отличных от потенциально подходящих вариантов режимов интра-предсказания в списке потенциально подходящих вариантов режимов интра-предсказания. Информация оставшихся режимов интра-предсказания может передаваться в служебных сигналах в форме синтаксического элемента rem_intra_luma_pred_mode или intra_luma_mpm_remainder.
[567] Устройство кодирования кодирует информацию изображений, включающую в себя связанную с предсказанием информацию, (S2120). Устройство кодирования может кодировать информацию изображений, включающую в себя связанную с предсказанием информацию, и может выводить информацию изображений в форме потока битов. Связанная с предсказанием информация может включать в себя индекс опорной линии, ISP-флаг и/или ISP-индекс. Кроме того, связанная с предсказанием информация может включать в себя MPM-флаг, MPM-индекс и/или информацию оставшихся режимов интра-предсказания. Помимо этого, хотя не проиллюстрировано, устройство кодирования может формировать остаточную информацию для текущего блока на основе остаточного дискретного отсчета и может кодировать информацию изображений, включающую в себя остаточную информацию, и может выводить информацию изображений в форме потока битов. Между тем, поток битов может передаваться в устройство декодирования через сеть или (цифровой) носитель хранения данных. Здесь, сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD и SSD.
[568] Фиг. 22 схематично иллюстрирует устройство кодирования, осуществляющее способ кодирования изображения согласно настоящему раскрытию. Способ, раскрытый на фиг. 21, может осуществляться посредством устройства кодирования, раскрытого на фиг. 22. В частности, модуль предсказания устройства кодирования по фиг. 22 может выполнять S2100 по фиг. 21, и энтропийный кодер устройства кодирования по фиг. 22 может выполнять S2110-S2120 по фиг. 21. Хотя не проиллюстрировано, процесс извлечения остаточного дискретного отсчета для текущего блока на основе исходного дискретного отсчета и дискретных отсчетов предсказания для текущего блока может выполняться посредством вычитателя устройства кодирования по фиг. 20, процесс формирования остаточной информации относительно текущего блока на основе остаточного дискретного отсчета может выполняться посредством остаточного процессора устройства кодирования по фиг. 20, и процесс кодирования информации изображений, включающей в себя остаточную информацию, может выполняться посредством энтропийного кодера устройства кодирования по фиг. 20.
[569] Фиг. 23 схематично иллюстрирует способ декодирования изображения, осуществляемый посредством устройства декодирования согласно настоящему раскрытию. Способ, раскрытый на фиг. 23, может осуществляться посредством устройства декодирования, раскрытого на фиг. 3. В частности, S2300 по фиг. 23 может выполняться посредством энтропийного декодера устройства декодирования, и S2310 по фиг. 23 может выполняться посредством модуля предсказания устройства декодирования. Помимо этого, хотя не проиллюстрировано, процесс получения информации изображений, включающей в себя остаточную информацию для текущего блока, через поток битов может выполняться посредством энтропийного декодера устройства декодирования, и процесс извлечения остаточного дискретного отсчета для текущего блока на основе остаточной информации может выполняться посредством обратного преобразователя устройства декодирования.
[570] Устройство декодирования принимает информацию изображений, включающую в себя связанную с предсказанием информацию, для текущего блока (S2300). Например, устройство декодирования может принимать и синтаксически анализировать информацию изображений, включающую в себя связанную с предсказанием информацию и/или остаточную информацию для текущего блока, через поток битов. Например, связанная с предсказанием информация может быть такой, как показано в вышеприведенной таблице 2.
[571] Например, связанная с предсказанием информация может включать в себя индекс опорной линии текущего блока. Индекс опорной линии может указывать опорную линию интра-предсказания текущего блока. Например, когда значение индекса опорной линии равно 0, индекс опорной линии может указывать опорную линию, смежную с верхней границей и/или левой границей текущего блока, когда значение индекса опорной линии равно 1, индекс опорной линии может указывать опорную линию, отделенную на одно выборочное расстояние от верхней границы и/или левой границы текущего блока, когда значение индекса опорной линии равно 2, индекс опорной линии может указывать опорную линию, отделенную на 2 выборочных расстояния от верхней границы и/или левой границы текущего блока, когда значение индекса опорной линии равно 3, индекс опорной линии может указывать опорную линию, отделенную на 3 выборочных расстояния от верхней границы и/или левой границы текущего блока.
[572] Кроме того, например, когда индекс опорной линии указывает опорную линию, смежную с текущим блоком, т.е. когда значение индекса опорной линии равно 0, связанная с предсказанием информация может включать в себя флаг режима на основе интра-субсегментов (ISP). ISP-флаг может представлять то, применяется или нет третий тип интра-предсказания, к которому применяется ISP, к текущему блоку. Таким образом, ISP-флаг может представлять то, применяется или нет ISP к текущему блоку. Например, когда значение флага IPS равно 1, ISP-флаг может представлять то, что третий тип интра-предсказания применяется к текущему блоку, когда значение флага IPS равно 0, ISP-флаг может представлять то, что третий тип интра-предсказания не применяется к текущему блоку. Кроме того, например, когда значение ISP-флага равно 1, связанная с предсказанием информация может включать в себя флаг ISP-разбиения, представляющий тип ISP-разбиения.
[573] Кроме того, например, связанная с предсказанием информация может включать в себя флаг наиболее вероятного режима (MPM). Альтернативно, например, связанная с предсказанием информация может не включать в себя MPM-флаг, и в этом случае, устройство декодирования может извлекать значение MPM-флага в качестве 1. MPM-флаг может представлять то, представляет или нет режим интра-предсказания текущего блока собой один из потенциально подходящих вариантов режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания. MPM-флаг может называться "флагом потенциально подходящего варианта режима интра-предсказания".
[574] Кроме того, например, когда значение MPM-флага равно 1, связанная с предсказанием информация может включать в себя MPM-индекс. MPM-индекс может указывать один из потенциально подходящих вариантов режимов интра-предсказания в списке потенциально подходящих вариантов режимов интра-предсказания. MPM-индекс может передаваться в служебных сигналах в форме синтаксического элемента mpm_idx или intra_luma_mpm_idx. MPM-индекс может называться "индексом потенциально подходящего варианта режима интра-предсказания".
[575] Кроме того, например, когда значение MPM-флага равно 0, связанная с предсказанием информация может включать в себя информацию оставшихся режимов интра-предсказания. Информация оставшихся режимов интра-предсказания может указывать один из оставшихся режимов интра-предсказания, отличных от потенциально подходящих вариантов режимов интра-предсказания в списке потенциально подходящих вариантов режимов интра-предсказания. Информация оставшихся режимов интра-предсказания может передаваться в служебных сигналах в форме синтаксического элемента rem_intra_luma_pred_mode или intra_luma_mpm_remainder.
[576] Устройство декодирования формирует восстановленный дискретный отсчет текущего блока на основе информации изображений (S2310). Устройство декодирования может извлекать дискретный отсчет предсказания посредством выполнения предсказания для текущего блока, извлекать остаточный дискретный отсчет текущего блока на основе остаточной информации для текущего блока и формировать восстановленный дискретный отсчет текущего блока на основе дискретного отсчета предсказания и остаточного дискретного отсчета.
[577] Например, устройство декодирования может извлекать тип интра-предсказания для текущего блока из типов интра-предсказания на основе связанной с предсказанием информации. Устройство декодирования может извлекать тип интра-предсказания для текущего блока на основе связанной с предсказанием информации. Здесь, типы интра-предсказания могут включать в себя первый тип интра-предсказания с использованием опорных линий интра-предсказания, смежных с текущим блоком, второй тип интра-предсказания с использованием опорных линий интра-предсказания, которые не являются смежными с текущим блоком, и третий тип интра-предсказания, к которому применяется режим на основе интра-субсегментов (ISP). Первый тип интра-предсказания может указывать вышеописанное общее интра-предсказание, второй тип интра-предсказания может указывать вышеописанную MRL, и третий тип интра-предсказания может указывать вышеописанную ISP.
[578] Например, устройство декодирования может извлекать тип интра-предсказания для текущего блока на основе связанной с предсказанием информации, показанной в таблице 2. Например, устройство декодирования может определять то, представляет собой тип интра-предсказания для текущего блока или нет второй тип интра-предсказания на основе индекса опорной линии текущего блока. Связанная с предсказанием информация может включать в себя индекс опорной линии. Индекс опорной линии может указывать опорную линию интра-предсказания текущего блока. Например, индекс опорной линии может указывать опорную линию, смежную с верхней границей и/или левой границей текущего блока, когда индекс опорной линии равен 0, индекс опорной линии может указывать опорную линию, отделенную от верхней границы и/или левой границы текущего блока на одно выборочное расстояние, когда индекс опорной линии равен 1, индекс опорной линии может указывать опорную линию, отделенную от верхней границы и/или левой границы текущего блока на 2 выборочных расстояния, когда индекс опорной линии равен 2, и индекс опорной линии может указывать опорную линию, отделенную от верхней границы и/или левой границы текущего блока на 3 выборочных расстояния, когда индекс опорной линии равен 3. Когда индекс опорной линии указывает опорную линию, смежную с текущим блоком, устройство декодирования может извлекать опорную линию, смежную с текущим блоком в качестве опорной линии интра-предсказания текущего блока, и определять то, что тип интра-предсказания для текущего блока не представляет собой второй тип интра-предсказания. Дополнительно, когда индекс опорной линии указывает опорную линию, которая не является смежной с текущим блоком, устройство декодирования может извлекать опорную линию, которая не является смежной с текущим блоком в качестве опорной линии интра-предсказания текущего блока, и извлекать второй тип интра-предсказания в качестве типа интра-предсказания для текущего блока. Здесь, опорная линия, которая не является смежной с текущим блоком, может представлять собой опорную линию, отделенную от верхней границы и/или левой границы текущего блока на 1, 2 или 3 выборочных расстояния.
[579] Помимо этого, когда индекс опорной линии указывает опорную линию, смежную с текущим блоком, т.е. когда тип интра-предсказания для текущего блока не представляет собой второй тип интра-предсказания, устройство декодирования может определять то, представляет собой тип интра-предсказания для текущего блока или нет третий тип интра-предсказания на основе флага режима на основе интра-субсегментов (ISP). Связанная с предсказанием информация может включать в себя ISP-флаг. ISP-флаг может указывать то, применяется или нет третий тип интра-предсказания, к которому применяется ISP, к текущему блоку. Таким образом, ISP-флаг может указывать то, применяется или нет ISP к текущему блоку. Например, ISP-флаг может указывать то, что третий тип интра-предсказания применяется к текущему блоку, когда он задается равным на 1 и может указывать то, что третий тип интра-предсказания не применяется к текущему блоку, когда он задается равным на 0. Устройство декодирования может извлекать третий тип интра-предсказания в качестве типа интра-предсказания для текущего блока, когда ISP-флаг указывает то, что третий тип интра-предсказания применяется, и извлекать первый тип интра-предсказания в качестве типа интра-предсказания для текущего блока, когда ISP-флаг указывает то, что третий тип интра-предсказания не применяется.
[580] Например, устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания текущего блока на основе режимов интра-предсказания соседних блоков относительно текущего блока.
[581] Например, устройство декодирования список потенциально подходящих вариантов режимов интра-предсказания текущего блока посредством процесса построения списков потенциально подходящих вариантов режима выполнения интра-предсказания, показанного в таблице 3. Между тем, список потенциально подходящих вариантов режимов интра-предсказания может означать вышеописанный список наиболее вероятных режимов (MPM).
[582] Например, устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания. Устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе того, является или нет первый потенциально подходящий вариант режима интра-предсказания идентичным второму потенциально подходящему варианту режима интра-предсказания, и/или того, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания и/или номер режима второго потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания. Здесь, первый потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания левого соседнего блока относительно текущего блока, и второй потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания верхнего соседнего блока относительно текущего блока. Например, режим интра-предсказания левого соседнего блока относительно текущего блока может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и режим интра-предсказания верхнего соседнего блока относительно текущего блока может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[583] В частности, когда первый потенциально подходящий вариант режима интра-предсказания является идентичным второму потенциально подходящему варианту режима интра-предсказания, например, устройство декодирования может определять то, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания, и если номер режима первого потенциально подходящего варианта режима интра-предсказания превышает номер режима для режима DC-интра-предсказания, извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[584] - mpm[0]=leftIntraDir
[585] - mpm[1]=PLANAR_IDX
[586] - mpm[2]=DC_IDX
[587] - mpm[3]=((leftIntraDir+offset)%mod)+2
[588] - mpm[4]=((leftIntraDir-1)%mod)+2
[589] - mpm[5]=((leftIntraDir+offset-1)%mod)+2
[590] Здесь, mpm[0], mpm[1], mpm[2], mpm[3], mpm[4] и mpm[5] представляют потенциально подходящий вариант 0 режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, leftIntraDir представляет первый потенциально подходящий вариант режима интра-предсказания, PLANAR_IDX представляет режим планарного интра-предсказания, и DC_IDX представляет режим DC-интра-предсказания. Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима (leftIntraDir+offset)%mod),+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима первого потенциально подходящего варианта режима интра-предсказания и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[591] Например, когда первый потенциально подходящий вариант режима интра-предсказания не является идентичным второму потенциально подходящему варианту режима интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания следующим образом.
[592] - mpm[0]=leftIntraDir
[593] - mpm[1]=aboveIntraDir
[594] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания. Дополнительно, устройство декодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания, и извлекать maxCandModeIdx в качестве 1, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания.
[595] Если номер режима первого потенциально подходящего варианта режима интра-предсказания и номер режима второго потенциально подходящего варианта режима интра-предсказания превышают номер режима для режима DC-интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания и потенциально подходящий вариант 3 режима интра-предсказания следующим образом.
[596] - mpm[2]=PLANAR_IDX
[597] - mpm[3]=DC_IDX
[598] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, и потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания.
[599] Затем если значение, полученное посредством вычитания номера режима mpm[!maxCandModeIdx] из номера режима mpm[maxCandModeIdx] меньше 63 и больше 1, устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[600] - mpm[4]=((mpm[maxCandModeIdx]+offset)%mod)+2
[601] - mpm[5]=((mpm[maxCandModeIdx]-1)%mod)+2
[602] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[603] Если значение, полученное посредством вычитания номера режима mpm[!maxCandModeIdx] из номера режима mpm[maxCandModeIdx], равно или больше 63 либо равно или меньше 1, устройство декодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[604] - mpm[4]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[605] - mpm[5]=((mpm[maxCandModeIdx])%mod)+2
[606] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[607] Если, по меньшей мере, один из номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания не превышает номер режима для режима DC-интра-предсказания, устройство декодирования может определять то, равна или выше либо нет сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания 2. Если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания равна или выше 2, устройство декодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[608] - mpm[2]=(mpm[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[609] - mpm[3]=((mpm[maxCandModeIdx]+offset)%mod)+2
[610] - mpm[4]=((mpm[maxCandModeIdx]-1)%mod)+2
[611] - mpm[5]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[612] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если mpm[!maxCandModeIdx] представляет собой режим планарного интра-предсказания, и может извлекаться в качестве режима планарного интра-предсказания, если mpm[!maxCandModeIdx] не представляет собой режим планарного интра-предсказания. Помимо этого, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[613] Если вышеуказанные условия не удовлетворяются, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[614] - mpm[0]=leftIntraDir
[615] - mpm[1]=(mpm[0]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[616] - mpm[2]=VER_IDX
[617] - mpm[3]=HOR_IDX
[618] - mpm[4]=VER_IDX-4
[619] - mpm[5]=VER_IDX+4
[620] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания представляет собой режим планарного интра-предсказания, и извлекаться в качестве режима планарного интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания не представляет собой режим планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима горизонтального интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режим #46 интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания могут извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания.
[621] Например, устройство декодирования может выполнять процесс построения списка потенциально подходящих вариантов режимов интра-предсказания, показанный в таблице 4, чтобы осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания для текущего блока.
[622] Например, устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания. Устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе того, является или нет первый потенциально подходящий вариант режима интра-предсказания идентичным второму потенциально подходящему варианту режима интра-предсказания, и/или того, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания и/или номер режима второго потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания. Здесь, первый потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания левого соседнего блока относительно текущего блока, и второй потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания верхнего соседнего блока относительно текущего блока. Например, режим интра-предсказания левого соседнего блока относительно текущего блока может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и режим интра-предсказания верхнего соседнего блока относительно текущего блока может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[623] В частности, когда первый потенциально подходящий вариант режима интра-предсказания является идентичным второму потенциально подходящему варианту режима интра-предсказания, например, устройство декодирования может определять то, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания, и если номер режима первого потенциально подходящего варианта режима интра-предсказания превышает номер режима для режима DC-интра-предсказания, извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[624] - mpm[0]=leftIntraDir
[625] - mpm[1]=PLANAR_IDX
[626] - mpm[2]=((leftIntraDir+offset)%mod)+2
[627] - mpm[3]=((leftIntraDir-1)%mod)+2
[628] - mpm[4]=DC_IDX
[629] - mpm[5]=((leftIntraDir+offset-1)%mod)+2
[630] Здесь, mpm[0], mpm[1], mpm[2], mpm[3], mpm[4] и mpm[5] представляют потенциально подходящий вариант 0 режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, leftIntraDir представляет первый потенциально подходящий вариант режима интра-предсказания, PLANAR_IDX представляет режим планарного интра-предсказания, и DC_IDX представляет режим DC-интра-предсказания. Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима первого потенциально подходящего варианта режима интра-предсказания и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((leftIntraDir+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[631] Например, когда первый потенциально подходящий вариант режима интра-предсказания не является идентичным второму потенциально подходящему варианту режима интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания следующим образом.
[632] - mpm[0]=leftIntraDir
[633] - mpm[1]=aboveIntraDir
[634] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания. Дополнительно, устройство декодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания, и извлекать maxCandModeIdx в качестве 1, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 1 режима интра-предсказания.
[635] Если номер режима первого потенциально подходящего варианта режима интра-предсказания и номер режима второго потенциально подходящего варианта режима интра-предсказания превышают номер режима для режима DC-интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 1 режима интра-предсказания - потенциально подходящий вариант 3 режима интра-предсказания следующим образом.
[636] - mpm[1]=PLANAR_IDX
[637] - mpm[2]=aboveIntraDir
[638] - maxCandModeIdx=mpm[0]>mpm[2]? 0: 2
[639] - интервал minCandModeidx=mpm[0]>mpm[2]? 2: 0
[640] - mpm[3]=DC_IDX;
[641] Таким образом, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания. Дополнительно, устройство декодирования может извлекать maxCandModeIdx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания, и извлекать maxCandModeIdx в качестве 2, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания. Дополнительно, устройство декодирования может извлекать minCandModeidx в качестве 2, если номер режима потенциально подходящего варианта 0 режима интра-предсказания превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания, и извлекать minCandModeidx в качестве 0, если номер режима потенциально подходящего варианта 0 режима интра-предсказания не превышает номер режима потенциально подходящего варианта 2 режима интра-предсказания.
[642] Если значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], меньше 63 и больше 1, устройство декодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[643] - mpm[4]=((mpm[maxCandModeIdx]+offset)%mod)+2
[644] - mpm[5]=((mpm[maxCandModeIdx]-1)%mod)+2
[645] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[646] Если значение, полученное посредством вычитания номера режима mpm[minCandModeidx] из номера режима mpm[maxCandModeIdx], равно или больше 63 либо равно или меньше 1, устройство декодирования/устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[647] - mpm[4]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[648] - mpm[5]=((mpm[maxCandModeIdx])%mod)+2
[649] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx])%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[650] Если, по меньшей мере, один из номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания не превышает номер режима для режима DC-интра-предсказания, устройство декодирования может определять то, равна или выше либо нет сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания 2. Если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания равна или выше 2, устройство декодирования может определять то, представляет или нет, по меньшей мере, один из первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания собой режим планарного интра-предсказания.
[651] Если, по меньшей мере, один из первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания представляет собой режим планарного интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания следующим образом.
[652] - mpm[0]=PLANAR_IDX
[653] - mpm[1]=(leftIntraDir<aboveIntraDir)? aboveIntraDir: leftIntraDir
[654] - maxCandModeIdx=1
[655] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания, если номер режима первого потенциально подходящего варианта режима интра-предсказания меньше номера режима второго потенциально подходящего варианта режима интра-предсказания, и извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, если номер режима первого потенциально подходящего варианта режима интра-предсказания, равно или больше номера режима второго потенциально подходящего варианта режима интра-предсказания. Дополнительно, устройство декодирования может извлекать maxCandModeIdx в качестве 1.
[656] Если первый потенциально подходящий вариант режима интра-предсказания и второй потенциально подходящий вариант режима интра-предсказания не представляют собой режим планарного интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[657] - mpm[2]=(mpm[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[658] - mpm[3]=((mpm[maxCandModeIdx]+offset)%mod)+2
[659] - mpm[4]=((mpm[maxCandModeIdx]-1)%mod)+2
[660] - mpm[5]=((mpm[maxCandModeIdx]+offset-1)%mod)+2
[661] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если mpm[!maxCandModeIdx] представляет собой режим планарного интра-предсказания, и может извлекаться в качестве режима планарного интра-предсказания, если mpm[!maxCandModeIdx] не представляет собой режим планарного интра-предсказания. Помимо этого, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из mpm[maxCandModeIdx] и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((mpm[maxCandModeIdx]+offset-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы mpm[maxCandModeIdx] и (offset-1) и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[662] Если вышеуказанные условия не удовлетворяются, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания - потенциально подходящий вариант 5 режима интра-предсказания следующим образом.
[663] - mpm[0]=leftIntraDir
[664] - mpm[1]=(mpm[0]==PLANAR_IDX)? DC_IDX: PLANAR_IDX
[665] - mpm[2]=VER_IDX
[666] - mpm[3]=HOR_IDX
[667] - mpm[4]=VER_IDX-4
[668] - mpm[5]=VER_IDX+4
[669] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания представляет собой режим планарного интра-предсказания, и извлекаться в качестве режима планарного интра-предсказания, если потенциально подходящий вариант 0 режима интра-предсказания не представляет собой режим планарного интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима горизонтального интра-предсказания, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режим #46 интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания могут извлекаться в качестве режима интра-предсказания, соответствующего номеру режима, полученному посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания.
[670] Например, устройство декодирования может выполнять процесс построения списка потенциально подходящих вариантов режимов интра-предсказания, показанный в таблице 5, чтобы осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания для текущего блока.
[671] Например, устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания. Устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режима интер-предсказания на основе того, является или нет первый потенциально подходящий вариант режима интра-предсказания идентичным второму потенциально подходящему варианту режима интра-предсказания, и/или того, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания и/или номер режима второго потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания. Здесь, первый потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания левого соседнего блока относительно текущего блока, и второй потенциально подходящий вариант режима интра-предсказания может извлекаться на основе режима интра-предсказания верхнего соседнего блока относительно текущего блока. Например, режим интра-предсказания левого соседнего блока относительно текущего блока может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и режим интра-предсказания верхнего соседнего блока относительно текущего блока может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[672] В частности, когда первый потенциально подходящий вариант режима интра-предсказания является идентичным второму потенциально подходящему варианту режима интра-предсказания, например, устройство декодирования может определять то, превышает или нет номер режима первого потенциально подходящего варианта режима интра-предсказания номер режима для режима DC-интра-предсказания, и если номер режима первого потенциально подходящего варианта режима интра-предсказания превышает номер режима для режима DC-интра-предсказания, извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[673] - mpm[0]=g_intraMode65to33AngMapping[leftIntraDir]
[674] - mpm[1]=((g_intraMode65to33AngMapping[leftIntraDir]+offset)%mod)+2
[675] - mpm[2]=((g_intraMode65to33AngMapping[leftIntraDir]-1)%mod)+2
[676] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания. Помимо этого, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((g_intraMode65to33AngMapping[leftIntraDir]+offset)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для суммы номера режима первого потенциально подходящего варианта режима интра-предсказания и offset и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима ((g_intraMode65to33AngMapping[leftIntraDir]-1)%mod)+2, т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю для значения, полученного посредством вычитания 1 из номера режима первого потенциально подходящего варианта режима интра-предсказания и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[677] Если номер режима первого потенциально подходящего варианта режима интра-предсказания не превышает номер режима для режима DC-интра-предсказания, устройство декодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания для текущего блока, который включает в себя потенциально подходящие варианты режимов интра-предсказания следующим образом.
[678] - mpm[0]=g_intraMode65to33AngMapping[PLANAR_IDX]
[679] - mpm[1]=g_intraMode65to33AngMapping[DC_IDX]
[680] - mpm[2]=g_intraMode65to33AngMapping[VER_IDX]
[681] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания.
[682] Дополнительно, если первый потенциально подходящий вариант режима интра-предсказания не является идентичным второму потенциально подходящему варианту режима интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания и потенциально подходящий вариант 1 режима интра-предсказания.
[683] - mpm[0]=g_intraMode65to33AngMapping[leftIntraDir]
[684] - mpm[1]=g_intraMode65to33AngMapping[aboveIntraDir]
[685] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве первого потенциально подходящего варианта режима интра-предсказания, и потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве второго потенциально подходящего варианта режима интра-предсказания.
[686] Затем если как первый потенциально подходящий вариант режима интра-предсказания, так и второй потенциально подходящий вариант режима интра-предсказания представляют собой режим планарного интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания следующим образом.
[687] - mpm[2]=g_intraMode65to33AngMapping[PLANAR_IDX]
[688] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания.
[689] В противном случае, если, по меньшей мере, один из первого потенциально подходящего варианта режима интра-предсказания и второго потенциально подходящего варианта режима интра-предсказания представляет собой режим планарного интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 2 режима интра-предсказания следующим образом.
[690] - mpm[2]=g_intraMode65to33AngMapping [(leftIntraDir+aboveIntraDir)<2? VER_IDX: DC_IDX]
[691] Таким образом, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания, если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания меньше 2, и извлекаться в качестве режима DC-интра-предсказания, если сумма номера режима первого потенциально подходящего варианта режима интра-предсказания и номера режима второго потенциально подходящего варианта режима интра-предсказания равна или выше 2.
[692] Например, устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания текущего блока на основе режимов интра-предсказания соседних блоков относительно текущего блока, как показано в таблице 6. Между тем, список потенциально подходящих вариантов режимов интра-предсказания может означать вышеописанный список наиболее вероятных режимов (MPM).
[693] Например, устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе режима интра-предсказания левого соседнего блока относительно текущего блока и режима интра-предсказания верхнего соседнего блока относительно текущего блока. Устройство декодирования может определять то, являются или нет режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока идентичными, и то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания. Устройство декодирования может осуществлять построение списка потенциально подходящих вариантов режимов интра-предсказания на основе того, являются или нет режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока идентичными, и/или номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания.
[694] Когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, устройство декодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания текущего блока, включающий в себя потенциально подходящие варианты режимов интра-предсказания, как описано ниже.
[695] - mpm[0]=INTRA_PLANAR
[696] - mpm[1]=candIntraPredModeA
[697] 2+((candIntraPredModeA+61)%64)
[698] - mpm[3]=2+((candIntraPredModeA-1)%64)
[699] - mpm[4]=INTRA_DC
[700] - mpm[5]=2+((candIntraPredModeA+60)%64)
[701] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((candIntraPredModeA+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с номером режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((candIntraPredModeA-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из номера режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((candIntraPredModeA+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с номером режима для режима интра-предсказания левого соседнего блока и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима. Таким образом, например, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, список потенциально подходящих вариантов режимов интра-предсказания может включать в себя режим интра-предсказания левого соседнего блока, режим интра-предсказания верхнего соседнего блока, режим интра-предсказания с номером режима 2+((candIntraPredModeA+61)%64), режим интра-предсказания с номером режима 2+((candIntraPredModeA-1)%64) и режим интра-предсказания с номером режима 2+((candIntraPredModeA+60)%64) в качестве потенциально подходящих вариантов режимов интра-предсказания. Здесь, candIntraPredModeA может представлять номер режима для режима интра-предсказания левого соседнего блока относительно текущего блока.
[702] Между тем, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, например, устройство декодирования может определять то, превышает или нет, по меньшей мере, один из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока номер режима для режима DC-интра-предсказания. Когда, по меньшей мере, один из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания, переменная minAB и переменная maxAB могут извлекаться следующим образом.
[703] - minAB=Min (candIntraPredModeA, candIntraPredModeB)
[704] - maxAB=Max (candIntraPredModeA, candIntraPredModeB)
[705] Здесь, candIntraPredModeA может представлять номер режима для режима интра-предсказания левого соседнего блока относительно текущего блока, и candIntraPredModeB может представлять номер режима для режима интра-предсказания верхнего соседнего блока относительно текущего блока. Таким образом, minAB может представлять меньшее значение из номера режима для режима интра-предсказания левого соседнего блока, и номер режима для режима интра-предсказания верхнего соседнего блока, maxAB может представлять большее значение из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[706] Кроме того, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, устройство декодирования может определять то, превышает или нет номер режима для режима интра-предсказания левого соседнего блока номер режима для режима DC-интра-предсказания, и номер режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания.
[707] Например, когда номер режима для режима интра-предсказания левого соседнего блока превышает номер режима для режима DC-интра-предсказания, и номер режима для режима интра-предсказания верхнего соседнего блока превышает номер режима для режима DC-интра-предсказания, устройство декодирования может извлекать потенциально подходящий вариант 0 режима интра-предсказания - потенциально подходящий вариант 3 режима интра-предсказания, как описано ниже.
[708] - mpm[0]=INTRA_PLANAR
[709] - mpm[1]=candIntraPredModeA
[710] - mpm[2]=candIntraPredModeB
[711] - mpm[3]=INTRA_DC
[712] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания левого соседнего блока, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания верхнего соседнего блока, и потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания. Здесь, candIntraPredModeB может представлять номер режима для режима интра-предсказания верхнего соседнего блока относительно текущего блока. Таким образом, например, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока не являются идентичными, и номер режима для режима интра-предсказания левого соседнего блока и номер режима для режима интра-предсказания верхнего соседнего блока превышают номер режима для режима DC-интра-предсказания, список потенциально подходящих вариантов режимов интра-предсказания может включать в себя режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока в качестве потенциально подходящих вариантов режимов интра-предсказания.
[713] После этого, потенциально подходящие варианты оставшихся режимов интра-предсказания (потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания) могут извлекаться на основе maxAB и minAB. В частности, потенциально подходящие варианты оставшихся режимов интра-предсказания извлекаются на основе разности между большим значением и меньшим значением среди номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[714] Например, когда значение, полученное посредством вычитания minAB из maxAB, меньше 63 и больше 1 (т.е. когда значение, полученное посредством вычитания minAB из maxAB, равно одному из 2-62), устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, как описано ниже.
[715] 2+((maxAB+61)%64)
[716] - mpm[5]=2+((maxAB-1)%64)
[717] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+((maxAB+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+((maxAB-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима. Здесь, maxAB может представлять большее значение из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[718] Альтернативно, когда значение, полученное посредством вычитания minAB из maxAB, равно или больше 63 либо равно или меньше 1, устройство декодирования может извлекать потенциально подходящий вариант 4 режима интра-предсказания и потенциально подходящий вариант 5 режима интра-предсказания, как описано ниже.
[719] - mpm[4]=2+((maxAB+60)%64)
[720] - mpm[5]=2+(maxAB%64)
[721] Таким образом, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+((maxAB+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания с номером режима 2+(maxAB%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 на maxAB и суммировании 2 с результатом арифметической операции по модулю, в качестве номера режима. Здесь, maxAB может представлять большее значение из номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока.
[722] Между тем, когда режим интра-предсказания левого соседнего блока и режим интра-предсказания верхнего соседнего блока относительно текущего блока не являются идентичными, либо, по меньшей мере, один из номеров режимов для режима интра-предсказания левого соседнего блока и режима интра-предсказания верхнего соседнего блока меньше номера режима для режима DC-интра-предсказания, устройство декодирования может определять то, равна или выше либо нет сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока номера режима для режима DC-интра-предсказания.
[723] Например, когда сумма номера режима для режима интра-предсказания левого соседнего блока и номера режима для режима интра-предсказания верхнего соседнего блока равна или выше номера режима для режима DC-интра-предсказания, устройство декодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания текущего блока, включающий в себя потенциально подходящие варианты режимов интра-предсказания, как описано ниже.
[724] - mpm[0]=INTRA_PLANAR
[725] - mpm[1]=maxAB
[726] - mpm[2]=INTRA_DC
[727] 2+((maxAB+61)%64)
[728] - mpm[4]=2+((maxAB-1)%64)
[729] - mpm[5]=2+((maxAB+60)%64)
[730] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания может извлекаться в качестве maxAB, т.е. потенциально подходящий вариант 1 режима интра-предсказания может извлекаться в качестве режима интра-предсказания верхнего соседнего блока, когда номер режима для режима интра-предсказания левого соседнего блока меньше номера режима для режима интра-предсказания верхнего соседнего блока, и потенциально подходящий вариант 1 режима интра-предсказания может извлекаться в качестве режима интра-предсказания левого соседнего блока, когда номер режима для режима интра-предсказания левого соседнего блока превышает или равен номеру режима для режима интра-предсказания верхнего соседнего блока, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB+61)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 61 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB-1)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством вычитания 1 из maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима, и потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания, имеющего номер режима 2+((maxAB+60)%64), т.е. режима интра-предсказания, имеющего значение, полученное посредством выполнения арифметической операции по модулю с 64 для значения, полученного посредством суммирования 60 с maxAB и суммирования 2 с результатом арифметической операции по модулю, в качестве номера режима.
[731] Альтернативно, например, когда вышеуказанные условия не удовлетворяются, устройство декодирования может извлекать список потенциально подходящих вариантов режимов интра-предсказания текущего блока, включающий в себя потенциально подходящие варианты режимов интра-предсказания, как описано ниже.
[732] - mpm[0]=INTRA_PLANAR
[733] - mpm[1]=INTRA_DC
[734] - mpm[2]=INTRA_ANGULAR50
[735] - mpm[3]=INTRA_ANGULAR18
[736] - mpm[4]=INTRA_ANGULAR46
[737] - mpm[5]=INTRA_ANGULAR54
[738] Таким образом, потенциально подходящий вариант 0 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима планарного интра-предсказания, потенциально подходящий вариант 1 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима DC-интра-предсказания, потенциально подходящий вариант 2 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима вертикального интра-предсказания (т.е. режима #50 интра-предсказания), потенциально подходящий вариант 3 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима горизонтального интра-предсказания (т.е. режима #18 интра-предсказания), потенциально подходящий вариант 4 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания номера режима, полученного посредством вычитания 4 из номера режима для режима вертикального интра-предсказания, т.е. режима #46 интра-предсказания, потенциально подходящий вариант 5 режима интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания может извлекаться в качестве режима интра-предсказания номера режима, полученного посредством суммирования 4 с номером режима для режима вертикального интра-предсказания, т.е. режима #54 интра-предсказания. Таким образом, например, когда вышеуказанные условия не удовлетворяются, список потенциально подходящих вариантов режимов интра-предсказания может включать в себя режим DC-интра-предсказания, режим #50 интра-предсказания, режим #18 интра-предсказания, режим #46 интра-предсказания и режим #54 интра-предсказания в качестве потенциально подходящих вариантов режимов интра-предсказания.
[739] Между тем, например, когда левый соседний блок не доступен, интра-предсказание не применяется к левому соседнему блоку, и режим интра-предсказания левого соседнего блока, соответствующий, по меньшей мере, одному из случая, в котором значение CIIP-флага верхнего соседнего блока не равно 1, и случая, в котором значение PCM-флага левого соседнего блока равно 1, может извлекаться в качестве режима планарного интра-предсказания. Кроме того, когда верхний соседний блок не доступен, интра-предсказание не применяется к верхнему соседнему блоку, и режим интра-предсказания левого соседнего блока, соответствующий, по меньшей мере, одному из случая, в котором значение CIIP-флага верхнего соседнего блока не равно 1, случая, в котором значение PCM-флага верхнего соседнего блока равно 1, и случая, в котором верхний соседний блок не включается в текущую CTU, может извлекаться в качестве режима планарного интра-предсказания.
[740] Между тем, список потенциально подходящих вариантов режимов интра-предсказания, сформированный, когда тип интра-предсказания представляет собой первый тип интра-предсказания, список потенциально подходящих вариантов режимов интра-предсказания, сформированный, когда тип интра-предсказания представляет собой второй тип интра-предсказания, и список потенциально подходящих вариантов режимов интра-предсказания, сформированный, когда тип интра-предсказания представляет собой третий тип интра-предсказания, могут быть идентичными. Таким образом, идентичный список потенциально подходящих вариантов режимов интра-предсказания может строиться независимо от типа интра-предсказания для текущего блока. Список потенциально подходящих вариантов режимов интра-предсказания может строиться через идентичный процесс построения режима интра-предсказания независимо от типа интра-предсказания для текущего блока. Процесс построения режима интра-предсказания может быть идентичным одному из вышеописанных вариантов осуществления.
[741] Например, устройство декодирования может извлекать режим интра-предсказания текущего блока на основе списка потенциально подходящих вариантов режимов интра-предсказания.
[742] Например, устройство декодирования может извлекать MPM-флаг относительно текущего блока. Связанная с предсказанием информация может включать в себя MPM-флаг. Например, устройство декодирования может принимать связанную с предсказанием информацию для текущего блока, и связанная с предсказанием информация может включать в себя MPM-флаг относительно текущего блока. Связанная с предсказанием информация может не включать в себя MPM-флаг. В этом случае, устройство декодирования может извлекать значение MPM-флага 1. MPM-флаг может указывать то, представляет или нет режим интра-предсказания текущего блока собой один из потенциально подходящих вариантов режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания. MPM-флаг также может называться "флагом потенциально подходящего варианта режима интра-предсказания".
[743] Когда MPM-флаг равен 1, устройство декодирования может извлекать потенциально подходящий вариант режима интра-предсказания, указываемый посредством MPM-индекса, из числа потенциально подходящих вариантов режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания в качестве режима интра-предсказания для текущего блока. MPM-индекс может передаваться в служебных сигналах в форме синтаксического элемента mpm_idx или intra_luma_mpm_idx. MPM-индекс также может называться "индексом потенциально подходящего варианта режима интра-предсказания".
[744] Когда MPM-флаг равен 0, устройство декодирования может извлекать режим интра-предсказания, указываемый посредством информации оставшихся режимов интра-предсказания, из числа оставшихся режимов интра-предсказания в качестве режима интра-предсказания для текущего блока. Оставшиеся режимы интра-предсказания могут представлять режимы интра-предсказания, которые не включаются в потенциально подходящие варианты режимов интра-предсказания из списка потенциально подходящих вариантов режимов интра-предсказания. Вышеуказанная связанная с предсказанием информация может включать в себя информацию оставшихся режимов интра-предсказания. Информация оставшегося режима интра-предсказания может передаваться в служебных сигналах в форме синтаксического элемента rem_intra_luma_pred_mode или intra_luma_mpm_remainder.
[745] Например, режим интра-предсказания текущего блока может извлекаться в качестве одного из режимов интра-предсказания, за исключением режима планарного интра-предсказания и режима DC-интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве второго типа интра-предсказания, и извлекаться в качестве одного из режимов интра-предсказания, за исключением режима DC-интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве третьего типа интра-предсказания.
[746] Например, режим интра-предсказания текущего блока может извлекаться в качестве одного из режимов интра-предсказания, за исключением режима планарного интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве второго типа интра-предсказания, и извлекаться в качестве одного из режимов интра-предсказания, за исключением режима DC-интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве третьего типа интра-предсказания.
[747] Например, режим интра-предсказания текущего блока может извлекаться в качестве одного из режимов интра-предсказания, за исключением режима планарного интра-предсказания, когда тип интра-предсказания для текущего блока извлекается в качестве второго типа интра-предсказания.
[748] Например, устройство декодирования может извлекать дискретные отсчеты предсказания текущего блока на основе типа интра-предсказания и режима интра-предсказания.
[749] Например, когда тип интра-предсказания извлекается в качестве первого типа интра-предсказания, устройство декодирования может извлекать, по меньшей мере, одну опорный дискретный отсчет из числа опорных дискретных отсчетов в опорных линиях интра-предсказания, смежных с текущим блоком на основе режима интра-предсказания, и формировать дискретные отсчеты предсказания текущего блока на основе опорного дискретного отсчета. Опорные дискретные отсчеты могут включать в себя левую верхнюю опорный дискретный отсчет, верхние опорные дискретные отсчеты и левые опорные дискретные отсчеты текущего блока. Например, когда размер текущего блока составляет WxH, компонент по оси X левой верхней выборочной позиции текущего блока составляет xN, и его компонент по оси Y составляет yN, левые опорные дискретные отсчеты могут составлять p[xN-1][yN] - p[xN-1][2H+yN-1], левый верхний опорный дискретный отсчет может составлять p[xN-1][yN-1], и верхние опорные дискретные отсчеты могут составлять p[xN][yN-1] - p[2W+xN-1][yN-1].
[750] Например, когда тип интра-предсказания извлекается в качестве второго типа интра-предсказания, устройство декодирования может извлекать, по меньшей мере, одну опорный дискретный отсчет из числа опорных дискретных отсчетов в опорных линиях интра-предсказания, которые не являются смежными с текущим блоком, на основе режима интра-предсказания, и формировать дискретные отсчеты предсказания текущего блока на основе опорного дискретного отсчета. Здесь, опорные линии интра-предсказания могут представлять собой опорные линии, отделенные от верхней границы и/или левой границы текущего блока на 1, 2 или 3 выборочных расстояния.
[751] Например, когда тип интра-предсказания извлекается в качестве третьего типа интра-предсказания, устройство декодирования может извлекать тип ISP-разбиения текущего блока на основе флага ISP-разбиения, указывающего то, что ISP-разбиение набирает и сегментирует текущий блок согласно типу ISP-разбиения, чтобы извлекать субблоки. Тип разбиения может представлять собой тип горизонтального разбиения или тип вертикального разбиения. Например, когда размер текущего блока составляет 4×4, текущий блок может не сегментироваться. Например, когда размер текущего блока составляет 4×8, и тип разбиения представляет собой тип горизонтального разбиения, текущий блок может сегментироваться на два субблока 4×4. Например, когда размер текущего блока составляет 4×8, и тип разбиения представляет собой тип вертикального разбиения, текущий блок может сегментироваться на два субблока 2×8. Например, когда размер текущего блока составляет 8×4, и тип разбиения представляет собой тип горизонтального разбиения, текущий блок может сегментироваться на два субблока 8×2. Например, когда размер текущего блока составляет 8×4, и тип разбиения представляет собой тип вертикального разбиения, текущий блок может сегментироваться на два субблока 4×4. Например, когда размер текущего блока составляет WxH (размеры, отличные от 4×8, 8×4 и 4×4), и тип разбиения представляет собой тип горизонтального разбиения, текущий блок может сегментироваться на четыре субблока WxH/4. Например, когда размер текущего блока составляет WxH, и тип разбиения представляет собой тип вертикального разбиения, текущий блок может сегментироваться на четыре cубблока W/4xH. После этого, устройство декодирования может выполнять интра-предсказание для субблоков, чтобы формировать дискретный отсчет предсказания. Таким образом, устройство декодирования может извлекать, по меньшей мере, одну из опорных дискретных отсчетов в опорных линиях интра-предсказания каждого субблока относительно текущего блока на основе режима интра-предсказания и формировать дискретный отсчет предсказания на основе опорного дискретного отсчета. Опорные линии интра-предсказания каждого субблока могут представлять собой опорные линии, смежные с каждым субблоком.
[752] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима DC-интра-предсказания, текущий блок представляет собой квадратный блок, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (0,-refIdx-1) до опорного дискретного отсчета с координатами (W-1,-refIdx-1) в верхней опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока, и опорного дискретного отсчета с координатами (-refIdx-1, 0) до опорного дискретного отсчета с координатами (-refIdx-1, H-1) в левой опорной линии интра-предсказания, указываемой посредством индекса опорной линии. Дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[753] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима DC-интра-предсказания, текущий блок представляет собой неквадратный блок, ширина которого больше его высоты, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (0,-refIdx-1) до опорного дискретного отсчета с координатами (W-1,-refIdx-1) в верхней опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока. Дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[754] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима DC-интра-предсказания, текущий блок представляет собой неквадратный блок, высота которого больше его ширины, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, DC-значение может извлекаться на основе опорного дискретного отсчета с координатами (-refIdx-1, 0) до опорного дискретного отсчета с координатами (-refIdx-1, H-1) в левой опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока. Дискретный отсчет предсказания текущего блока может извлекаться в качестве DC-значения.
[755] Например, когда режим интра-предсказания текущего блока извлекается в качестве режима планарного интра-предсказания, размер текущего блока составляет WxH, компонент по оси X и компонент по оси Y левой верхней позиции текущего блока равны 0, дискретный отсчет предсказания может извлекаться на основе опорного дискретного отсчета с координатами (W-1,-refIdx-1) и опорного дискретного отсчета с координатами (-refIdx-1, H-1) в опорной линии интра-предсказания, указываемой посредством индекса опорной линии текущего блока.
[756] Кроме того, например, устройство декодирования может извлекать остаточный дискретный отсчет текущего блока на основе остаточной информации для текущего блока. Информация изображений может включать в себя остаточную информацию. Остаточная информация может включать в себя коэффициент преобразования для остаточного дискретного отсчета. Устройство декодирования может извлекать остаточный дискретный отсчет (или массив остаточных дискретных отсчетов) для текущего блока на основе остаточной информации.
[757] Затем, например, устройство декодирования может формировать восстановленный дискретный отсчет текущего блока на основе дискретного отсчета предсказания и остаточного дискретного отсчета. Например, устройство декодирования может формировать восстановленный дискретный отсчет посредством суммирования остаточного дискретного отсчета с дискретным отсчетом предсказания.
[758] После этого, устройство декодирования может применять процедуру внутриконтурной фильтрации, к примеру, процедуру фильтрации для удаления блочности и/или SAO, к восстановленному дискретному отсчету (т.е. к восстановленному кадру), чтобы повышать субъективное/объективное качество кадров при необходимости, как описано выше.
[759] Фиг. 24 схематично иллюстрирует устройство декодирования, которое осуществляет способ декодирования изображения согласно настоящему раскрытию. Способ, раскрытый на фиг. 23, может осуществляться посредством устройства декодирования, проиллюстрированного на фиг. 24. В частности, например, энтропийный декодер устройства декодирования по фиг. 24 может выполнять S2300 по фиг. 23, и модуль предсказания устройства декодирования по фиг. 24 может выполнять S2310 по фиг. 23. Помимо этого, хотя не проиллюстрировано, процесс получения информации изображений, включающей в себя остаточную информацию относительно текущего блока, через поток битов может выполняться посредством энтропийного декодера устройства декодирования по фиг. 24, и процесс извлечения остаточного дискретного отсчета относительно текущего блока на основе остаточной информации может выполняться посредством остаточного процессора устройства декодирования по фиг. 24.
[760] Согласно вышеописанному настоящему раскрытию, можно уменьшать сложность аппаратной и программной реализации с использованием унифицированного процесса построения списков режимов интра-предсказания для типов интра-предсказания.
[761] Кроме того, согласно настоящему раскрытию, можно уменьшать зависимость от типа интра-предсказания с использованием унифицированного процесса построения списков режимов интра-предсказания для типов интра-предсказания, чтобы повышать эффективность кодирования интра-предсказания.
[762] Кроме того, согласно настоящему раскрытию, можно повышать эффективность кодирования интра-предсказания посредством извлечения опорного дискретного отсчета, используемой, когда MRL применяется, и режим интра-предсказания извлекается в качестве режима DC-интра-предсказания на основе индекса опорного кадра.
[763] Кроме того, согласно настоящему раскрытию, можно повышать эффективность кодирования интра-предсказания посредством извлечения опорного дискретного отсчета, используемой, когда MRL применяется, и режим интра-предсказания извлекается в качестве режима DC-интра-предсказания на основе индекса опорного кадра и форме текущего блока.
[764] Кроме того, согласно настоящему раскрытию, можно повышать эффективность кодирования интра-предсказания посредством извлечения опорного дискретного отсчета, используемой, когда MRL применяется, и режим интра-предсказания извлекается в качестве режима планарного интра-предсказания на основе индекса опорного кадра.
[765] В вышеописанном варианте осуществления, способы описываются на основе блок-схемы последовательности операций способа, имеющей последовательность этапов или блоков. Настоящее раскрытие не ограничено порядком вышеуказанных этапов или блоков. Некоторые этапы или блоки могут возникать одновременно или в порядке, отличном от других этапов или блоков, как описано выше. Дополнительно, специалисты в данной области техники должны понимать, что этапы, показанные на вышеприведенной блок-схеме последовательности операций способа, не являются исчерпывающими, и другие этапы могут включаться, либо один или более этапов на блок-схеме последовательности операций способа могут удаляться без влияния на объем настоящего раскрытия.
[766] Варианты осуществления, описанные в этом подробном описании, могут выполняться посредством реализации в процессоре, в микропроцессоре, в контроллере или в микросхеме. Например, функциональные модули, показанные на каждом чертеже, могут выполняться посредством реализации на компьютере, в процессоре, в микропроцессоре, в контроллере или в микросхеме. В этом случае, информация для реализации (например, информация относительно инструкций) или алгоритм может храниться на цифровом носителе хранения данных.
[767] Помимо этого, устройство декодирования и устройство кодирования, к которому применяется настоящее раскрытие, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления VoD-услуг, видеоустройство поверх сетей (OTT), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, видеоустройство телеконференц-связи, транспортировочное абонентское устройство (например, абонентское устройство в транспортном средстве, абонентское устройство в самолете, абонентское устройство в морском судне и т.д.) и медицинское видеоустройство, и могут использоваться для того, чтобы обрабатывать видеосигналы и сигналы данных. Например, видеоустройство поверх сетей (OTT) может включать в себя игровую приставку, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
[768] Дополнительно, способ обработки, к которому применяется настоящее раскрытие, может формироваться в форме программы, которая должна выполняться посредством компьютера, и может храниться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно настоящему раскрытию, также могут храниться на машиночитаемых носителях записи. Машиночитаемые носители записи включают в себя все типы устройств хранения данных, на которых хранятся данные, считываемые посредством компьютерной системы. Машиночитаемые носители записи, например, могут включать в себя BD, универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемые носители записи включают в себя среды, реализованные в форме несущих волн (например, как передача через Интернет). Помимо этого, поток битов, сформированный посредством способа кодирования, может храниться на машиночитаемом носителе записи или может передаваться по сетям проводной/беспроводной связи.
[769] Помимо этого, варианты осуществления настоящего раскрытия могут реализовываться с компьютерным программным продуктом согласно программным кодам, и программные коды могут выполняться в компьютере посредством вариантов осуществления настоящего раскрытия. Программные коды могут храниться на носителе, который может считываться посредством компьютера.
[770] Фиг. 25 иллюстрирует структурную схему системы потоковой передачи контента, к которой применяется настоящее раскрытие.
[771] Система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего раскрытия, может в основном включать в себя сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[772] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д. В цифровые данные, чтобы формировать поток битов и передавать поток битов в потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
[773] Поток битов может формироваться посредством способа кодирования или способа формирования потока битов, к которому применяется вариант(ы) осуществления настоящего раскрытия, и потоковый сервер может временно хранить поток битов в процессе передачи или приема потока битов.
[774] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер доставляет ее на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
[775] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может хранить поток битов в течение предварительно определенного времени.
[776] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи (HMD)), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п. Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
[777] Формула изобретения настоящего раскрытия может объединяться различными способами. Например, технические признаки формулы изобретения на процесс настоящего раскрытия могут объединяться и реализовываться в качестве устройства, и технические признаки формулы изобретения на устройство настоящего раскрытия могут объединяться и реализовываться в качестве способа. Помимо этого, технические признаки требования процесса и технические признаки пункта формулы изобретения на устройство настоящего раскрытия могут объединяться и реализовываться в качестве устройства и технических признаков требования процесса, и технические признаки пункта формулы изобретения на устройство настоящего раскрытия могут объединяться и реализовываться в качестве способа.