RU2805157C1 - Method and device for image decoding based on intra prediction in image coding system - Google Patents
Method and device for image decoding based on intra prediction in image coding system Download PDFInfo
- Publication number
- RU2805157C1 RU2805157C1 RU2023107335A RU2023107335A RU2805157C1 RU 2805157 C1 RU2805157 C1 RU 2805157C1 RU 2023107335 A RU2023107335 A RU 2023107335A RU 2023107335 A RU2023107335 A RU 2023107335A RU 2805157 C1 RU2805157 C1 RU 2805157C1
- Authority
- RU
- Russia
- Prior art keywords
- current block
- prediction
- intra
- sample
- prediction mode
- Prior art date
Links
Abstract
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ РАСКРЫТИЕTECHNICAL FIELD TO WHICH THE DISCLOSURE RELATES
[1] Настоящее раскрытие относится к методу кодирования видео, и более конкретно, к способу и устройству декодирования видео на основе интра-предсказания в системе кодирования видео.[1] The present disclosure relates to a video encoding method, and more specifically, to a method and apparatus for video decoding based on intra-prediction in a video encoding system.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИBACKGROUND ART
[2] Потребности в изображениях высокого разрешения и высокого качества, таких как изображения HD (высокого разрешения) и изображения UHD (сверхвысокого разрешения), возрастают в различных областях. Так как данные изображения имеют высокое разрешение и высокое качество, количество информации или битов, подлежащих передаче, увеличивается относительно унаследованных данных изображения. Поэтому, когда данные изображения передаются с использованием носителя, такого как традиционная проводная/беспроводная широкополосная линия, или данные изображения хранятся с использованием существующего носителя хранения, затраты на их передачу и хранение увеличиваются.[2] The demand for high resolution and high quality images, such as HD (high definition) images and UHD (ultra high definition) images, is increasing in various fields. Since the image data is of high resolution and high quality, the amount of information or bits to be transmitted increases relative to the legacy image data. Therefore, when image data is transmitted using a medium such as a traditional wired/wireless broadband line, or image data is stored using an existing storage medium, transmission and storage costs increase.
[3] Соответственно, существует потребность в высокоэффективном методе сжатия изображений для эффективной передачи, хранения и воспроизведения информации изображений высокого разрешения и высокого качества.[3] Accordingly, there is a need for a highly efficient image compression method for efficiently transmitting, storing and reproducing high resolution and high quality image information.
Краткое описание сущности изобретенияBrief description of the invention
[4] Настоящее раскрытие обеспечивает способ и устройство для повышения эффективности кодирования изображений.[4] The present disclosure provides a method and apparatus for improving the efficiency of image encoding.
[5] Настоящее раскрытие также обеспечивает способ и устройство интра-предсказания для выбора интерполяционного фильтра для целевой выборки в текущем блоке.[5] The present disclosure also provides an intra-prediction method and apparatus for selecting an interpolation filter for a target sample in a current block.
[6] Настоящее раскрытие также обеспечивает способ и устройство для выполнения интра-предсказания на основе интерполяционного фильтра для выбранной целевой выборки.[6] The present disclosure also provides a method and apparatus for performing intra-prediction based on an interpolation filter for a selected target sample.
[7] В одном аспекте, обеспечен способ декодирования видео, выполняемый устройством декодирования. Способ включает в себя выведение режима интра-предсказания текущего блока; выведение соседних выборок, включающих в себя левые соседние выборки и верхние соседние выборки текущего блока; выведение опорных выборок для предсказания целевой выборки текущего блока среди соседних выборок на основе положения целевой выборки и угла предсказания режима интра-предсказания; определение интерполяционного фильтра для целевой выборки; и выведение выборки предсказания целевой выборки на основе интерполяционного фильтра и опорных выборок.[7] In one aspect, a video decoding method performed by a decoding apparatus is provided. The method includes deriving an intra-prediction mode of the current block; outputting neighboring samples including left neighboring samples and upper neighboring samples of the current block; deriving reference samples for predicting a target sample of the current block among neighboring samples based on the position of the target sample and the prediction angle of the intra-prediction mode; defining an interpolation filter for the target sample; and deriving a prediction sample of the target sample based on the interpolation filter and the reference samples.
[8] В другом аспекте, обеспечено устройство декодирования для выполнения декодирования изображения. Устройство декодирования включает в себя: энтропийный декодер, получающий информацию предсказания для текущего блока; и модуль предсказания, выводящий режим интра-предсказания текущего блока; выводящий соседние выборки, включающие в себя левые соседние выборки и верхние соседние выборки текущего блока, выводящий опорные выборки для предсказания целевой выборки среди соседних выборок на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания, определяющий интерполяционный фильтр для целевой выборки и выводящий выборку предсказания целевой выборки на основе интерполяционного фильтра и опорных выборок.[8] In another aspect, a decoding apparatus for performing image decoding is provided. The decoding apparatus includes: an entropy decoder obtaining prediction information for the current block; and a prediction module outputting an intra-prediction mode of the current block; outputting neighboring samples including left neighboring samples and upper neighboring samples of the current block, outputting reference samples for predicting a target sample among neighboring samples based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode, determining an interpolation filter for the target sample, and outputting sample prediction of the target sample based on the interpolation filter and reference samples.
[9] В другом аспекте, обеспечен способ кодирования видео, выполняемый устройством кодирования. Способ включает в себя: определение режима интра-предсказания для текущего блока; выведение соседних выборок, включающих в себя левые соседние выборки и верхние соседние выборки текущего блока; выведение опорных выборок для предсказания целевой выборки текущего блока среди соседних выборок на основе положения целевой выборки и угла предсказания режима интра-предсказания; определение интерполяционного фильтра для целевой выборки; выведение выборки предсказания целевой выборки на основе интерполяционного фильтра и опорных выборок; и генерирование информации предсказания для текущего блока, кодирование сгенерированной информации предсказания и выведение кодированной информации предсказания.[9] In another aspect, a video encoding method performed by an encoding apparatus is provided. The method includes: determining an intra-prediction mode for the current block; outputting neighboring samples including left neighboring samples and upper neighboring samples of the current block; deriving reference samples for predicting a target sample of the current block among neighboring samples based on the position of the target sample and the prediction angle of the intra-prediction mode; defining an interpolation filter for the target sample; deriving a target sample prediction sample based on the interpolation filter and reference samples; and generating prediction information for the current block, encoding the generated prediction information, and outputting the encoded prediction information.
[10] В другом аспекте, обеспечено устройство кодирования видео. Устройство кодирования включает в себя: модуль предсказания, определяющий режим интра-предсказания для текущего блока, выводящий соседние выборки, включающие в себя левые соседние выборки и верхние соседние выборки текущего блока, выводящий опорные выборки для предсказания целевой выборки среди соседних выборок на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания, определяющий интерполяционный фильтр для целевой выборки, и выводящий выборку предсказания целевой выборки на основе интерполяционного фильтра и опорных выборок; и энтропийный кодер, генерирующий информацию предсказания для текущего блока, кодирующий сгенерированную информацию предсказания и выводящий кодированную информацию предсказания.[10] In another aspect, a video encoding apparatus is provided. The encoding device includes: a prediction module determining an intra-prediction mode for a current block, outputting neighboring samples including left neighboring samples and top neighboring samples of the current block, outputting reference samples for predicting a target sample among neighboring samples based on the position of the target sample a current block and an intra-prediction mode prediction angle determining an interpolation filter for the target sample, and outputting a prediction sample of the target sample based on the interpolation filter and the reference samples; and an entropy encoder generating prediction information for the current block, encoding the generated prediction information, and outputting the encoded prediction information.
[11] В соответствии с настоящим раскрытием, предсказание может выполняться на целевой выборке на основе интерполяционного фильтра, выбранного в соответствии с информацией размера текущего блока, информацией о расстоянии до опорной выборки, и/или информацией режима предсказания, причем опорная выборка в положении дробной выборки для целевой выборки может точно генерироваться, чтобы улучшить точность предсказания для текущего блока, и остаток для текущего блока может быть уменьшен, чтобы повысить эффективность кодирования.[11] According to the present disclosure, prediction may be performed on a target sample based on an interpolation filter selected according to current block size information, distance information to a reference sample, and/or prediction mode information, with the reference sample at a fractional sample position for the target sample can be accurately generated to improve the prediction accuracy for the current block, and the residual for the current block can be reduced to improve coding efficiency.
[12] В соответствии с настоящим раскрытием, поскольку интерполяционный фильтр для целевой выборки может выбираться на основе различных условий, описанных выше, количество битов информации касательно выбора интерполяционного фильтра может быть уменьшено, тем самым увеличивая точность предсказания текущего блока и повышая эффективность кодирования текущего блока.[12] According to the present disclosure, since the interpolation filter for the target sample can be selected based on various conditions described above, the number of bits of information regarding the selection of the interpolation filter can be reduced, thereby increasing the prediction accuracy of the current block and increasing the encoding efficiency of the current block.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[13] Фиг. 1 представляет собой схематичную диаграмму, иллюстрирующую конфигурацию устройства кодирования видео, к которому применимо настоящее раскрытие.[13] FIG. 1 is a schematic diagram illustrating the configuration of a video encoding apparatus to which the present disclosure applies.
[14] Фиг. 2 иллюстрирует другой пример устройства кодирования видео, к которому применимо настоящее раскрытие.[14] FIG. 2 illustrates another example of a video encoding apparatus to which the present disclosure applies.
[15] Фиг. 3 иллюстрирует пример процесса выполнения интра-предсказания в устройстве кодирования.[15] FIG. 3 illustrates an example of a process for performing intra-prediction in an encoding apparatus.
[16] Фиг. 4 представляет собой схематичную диаграмму, иллюстрирующую конфигурацию устройства декодирования видео, к которому применимо настоящее раскрытие.[16] FIG. 4 is a schematic diagram illustrating the configuration of a video decoding apparatus to which the present disclosure applies.
[17] Фиг. 5 иллюстрирует другой пример устройства декодирования видео, к которому применимо настоящее раскрытие.[17] FIG. 5 illustrates another example of a video decoding apparatus to which the present disclosure applies.
[18] Фиг. 6 иллюстрирует пример процесса выполнения интра-предсказания в устройстве декодирования.[18] FIG. 6 illustrates an example of a process for performing intra-prediction in a decoding apparatus.
[19] Фиг. 7 иллюстрирует пример левых соседних выборок и верхних соседних выборок, используемых для интра-предсказания текущего блока.[19] FIG. 7 illustrates an example of left neighbor samples and top neighbor samples used for intra-prediction of the current block.
[20] Фиг. 8 иллюстрирует пример интра-направленных режимов для 65 направлений предсказания.[20] FIG. 8 illustrates an example of intra-directional modes for 65 prediction directions.
[21] Фиг. 9 иллюстрирует пример, в котором выборки предсказания целевой выборки выводятся на основе целочисленных выборок, смежных слева и справа от опорной выборки, когда положение опорной выборки, расположенной в направлении предсказания направленного режима интра-предсказания, является положением дробной выборки.[21] FIG. 9 illustrates an example in which the target sample prediction samples are derived based on integer samples adjacent to the left and right of the reference sample when the position of the reference sample located in the prediction direction of the directed intra-prediction mode is the position of a fractional sample.
[22] Фиг. 10 иллюстрирует пример выбора интерполяционного фильтра на основе размера текущего блока и режима интра-предсказания.[22] FIG. 10 illustrates an example of selecting an interpolation filter based on the current block size and intra-prediction mode.
[23] Фиг. 11 иллюстрирует пример выбора интерполяционного фильтра на основе расстояния между целевой выборкой текущего блока и опорной выборкой.[23] FIG. 11 illustrates an example of selecting an interpolation filter based on the distance between the target sample of the current block and the reference sample.
[24] Фиг. 12 иллюстрирует пример выведения опорной выборки целевой выборки текущего блока на основе множества интерполяционных фильтров и выведения выборки предсказания целевой выборки на основе опорной выборки.[24] FIG. 12 illustrates an example of deriving a target sample reference sample of a current block based on a plurality of interpolation filters and deriving a target sample prediction sample based on the reference sample.
[25] Фиг. 13 схематично иллюстрирует способ кодирования видео в соответствии с настоящим раскрытием.[25] FIG. 13 schematically illustrates a video encoding method in accordance with the present disclosure.
[26] Фиг. 14 схематично иллюстрирует способ декодирования видео в соответствии с настоящим раскрытием.[26] FIG. 14 schematically illustrates a video decoding method in accordance with the present disclosure.
Описание примерных вариантов осуществленияDescription of Exemplary Embodiments
[27] Настоящее раскрытие может быть модифицировано в различных формах, и его конкретные варианты осуществления будут описаны и проиллюстрированы на чертежах. Однако варианты осуществления не предназначены для ограничения раскрытия. Термины, применяемые в следующем описании, используются, чтобы описывать конкретные варианты осуществления, но не предназначены для ограничения раскрытия. Выражение в единственном числе включает в себя выражение во множественном числе, если это явно читается по-разному. Термины, такие как “включать в себя” и “иметь”, предназначены для указания, что признаки, числа, этапы, операции, элементы, компоненты или их комбинации, используемые в следующем описании, существуют, и, таким образом, должно быть понятно, что не исключена возможность существования или добавления одного или нескольких других признаков, чисел, этапов, операций, элементов, компонентов или их комбинаций.[27] The present disclosure may be modified in various forms, and specific embodiments thereof will be described and illustrated in the drawings. However, the embodiments are not intended to limit the disclosure. The terms used in the following description are used to describe specific embodiments, but are not intended to limit the disclosure. A singular expression includes a plural expression if it is clearly read differently. Terms such as “include” and “have” are intended to indicate that the features, numbers, steps, operations, elements, components, or combinations thereof used in the following description exist, and thus it is to be understood that that the possibility of the existence or addition of one or more other features, numbers, steps, operations, elements, components or combinations thereof is not excluded.
[28] При этом, элементы на чертежах, описанные в раскрытии, показаны независимо в целях удобства для объяснения разных конкретных функций и не означают, что элементы воплощаются независимыми аппаратными средствами или независимым программным обеспечением. Например, два или более элементов из таких элементов могут комбинироваться, чтобы образовывать один элемент, или один элемент может разделяться на множество элементов. Варианты осуществления, в которых элементы комбинируются и/или разделяются, принадлежат раскрытию без отклонения от концепции раскрытия.[28] However, the elements in the drawings described in the disclosure are shown independently for convenience in explaining various specific functions and do not imply that the elements are implemented by independent hardware or independent software. For example, two or more elements of such elements may be combined to form one element, or one element may be divided into multiple elements. Embodiments in which elements are combined and/or separated are within the scope of the disclosure without departing from the spirit of the disclosure.
[29] Далее, варианты осуществления настоящего раскрытия будут описаны подробно со ссылкой на прилагаемые чертежи. Кроме того, аналогичные ссылочные позиции используются, чтобы указывать подобные элементы на всех чертежах, и одни и те же описания подобных элементов будут опущены.[29] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In addition, like reference numerals are used to indicate like elements throughout the drawings, and the same descriptions of like elements will be omitted.
[30] В настоящей спецификации, термин “картинка” обычно обозначает единицу, представляющую изображение в конкретное время, вырезка представляет собой единицу, составляющую часть картинки. Одна картинка может быть составлена из множества вырезок, и термины “картинка” и “вырезка” могут использоваться взаимозаменяемым образом, если требуют конкретные обстоятельства.[30] In this specification, the term “picture” generally refers to a unit representing an image at a particular time; a cutout is a unit constituting part of a picture. A single picture may be composed of multiple clippings, and the terms “picture” and “clipping” may be used interchangeably as specific circumstances require.
[31] Пиксел или пел (элемент изображения) может означать минимальную единицу, составляющую одну картинку (или изображение). Дополнительно, “выборка” может использоваться как термин, соответствующий пикселу. Выборка может, в общем, представлять пиксел или пиксельное значение, может представлять только пиксел (пиксельное значение) компонента яркости и может представлять только пиксел (пиксельное значение) компонента цветности.[31] A pixel or pel (picture element) can mean the smallest unit that makes up one picture (or image). Additionally, “sample” can be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, may represent only a pixel (pixel value) of a luma component, and may represent only a pixel (pixel value) of a chrominance component.
[32] Единица указывает основную единицу обработки изображения. Единица может включать в себя по меньшей мере одно из конкретной области и информации, связанной с областью. Опционально, термин “единица” может использоваться взаимозаменяемым образом с такими терминами, как блок, область или тому подобное. В обычном случае, блок M×N может представлять набор выборок или коэффициентов преобразования, упорядоченных в M столбцов и N строк.[32] Unit indicates the basic unit of image processing. The unit may include at least one of a specific area and information associated with the area. Optionally, the term “unit” may be used interchangeably with terms such as block, area, or the like. In a typical case, an M×N block may represent a set of samples or transform coefficients arranged in M columns and N rows.
[33] Фиг. 1 кратко иллюстрирует структуру устройства кодирования видео, к которому применимо настоящее раскрытие.[33] FIG. 1 briefly illustrates the structure of a video encoding apparatus to which the present disclosure applies.
[34] Со ссылкой на фиг. 1, устройство 100 кодирования видео может включать в себя модуль разделения 105 картинки, модуль предсказания 110, процессор 120 остатка, сумматор 150, фильтр 255 и память 160. Процессор 120 остатка включает в себя вычитатель 121, преобразователь 122, модуль квантования 123, модуль перегруппировки 124, модуль деквантования 125, обратный преобразователь 126.[34] With reference to FIG. 1, the video encoding device 100 may include a picture splitter 105, a prediction module 110, a remainder processor 120, an adder 150, a filter 255, and a memory 160. The remainder processor 120 includes a subtractor 121, a converter 122, a quantization module 123, a rearrangement module. 124, dequantization module 125, inverse converter 126.
[35] Модуль разделения 105 картинки может разделять входную картинку на по меньшей мере одну единицу обработки.[35] The picture division module 105 may divide the input picture into at least one processing unit.
[36] В одном примере, единица обработки может упоминаться как единица кодирования (CU). В этом случае единица кодирования может рекурсивно разбиваться от наибольшей единицы кодирования (LCU) в соответствии со структурой квадродерева/двоичного дерева (QTBT). Например, одна единица кодирования может быть разбита на множество единиц кодирования большей глубины на основе структуры квадродерева и/или структуры двоичного дерева. В этом случае, например, структура квадродерева может применяться первой, и структура двоичного дерева может применяться позже. Альтернативно, структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с настоящим раскрытием может выполняться на основе конечной единицы кодирования, которая далее не разбивается. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования или тому подобного, в зависимости от характеристик изображения, или единица кодирования может рекурсивно разбиваться на единицы кодирования более низкой глубины при необходимости, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру, такую как предсказание, преобразование и реконструкция, которые будут описаны ниже.[36] In one example, a processing unit may be referred to as a coding unit (CU). In this case, the coding unit can be recursively split from the largest coding unit (LCU) according to a quadtree/binary tree (QTBT) structure. For example, one encoding unit may be divided into multiple encoding units of greater depth based on a quadtree structure and/or a binary tree structure. In this case, for example, the quadtree structure may be applied first, and the binary tree structure may be applied later. Alternatively, the binary tree structure may be applied first. The encoding procedure in accordance with the present disclosure may be performed based on the final encoding unit, which is not further divided. In this case, the largest encoding unit may be used as the final encoding unit based on encoding efficiency or the like depending on the characteristics of the image, or the encoding unit may be recursively divided into lower depth encoding units as necessary, and the encoding unit having an optimal size , can be used as the final encoding unit. Here, the encoding procedure may include a procedure such as prediction, transformation and reconstruction, which will be described below.
[37] В другом примере, единица обработки может включать в себя единицу кодирования (CU), единицу предсказания (PU) или единицу преобразования (TU). Единица кодирования может разбиваться от наибольшей единицы кодирования (LCU) на единицы кодирования большей глубины в соответствии со структурой квадродерева. В этом случае, наибольшая единица кодирования может непосредственно использоваться в качестве конечной единицы кодирования на основе эффективности кодирования или тому подобного, в зависимости от характеристик изображения, или единица кодирования может рекурсивно разбиваться на единицы кодирования большей глубины при необходимости, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Когда наименьшая единица кодирования (SCU) установлена, единица кодирования может не разбиваться на единицы кодирования меньшие, чем наименьшая единица кодирования. Здесь, конечная единица кодирования относится к единице кодирования, которая разделена или разбита до единицы предсказания или единицы преобразования. Единица предсказания представляет собой единицу, которая разделена из единицы кодирования и может представлять собой единицу предсказания выборки. Здесь, единица предсказания может разделяться на подблоки. Единица преобразования может быть разделена от единицы кодирования в соответствии со структурой квадродерева и может представлять собой единицу для выведения коэффициента преобразования и/или единицу для выведения остаточного сигнала из коэффициента преобразования. Далее, единица кодирования может упоминаться как блок кодирования (CB), единица предсказания может упоминаться как блок предсказания (PB), и единица преобразования может упоминаться как блок преобразования (TB). Блок предсказания или единица предсказания могут относиться к конкретной области в форме блока в картинке и могут включать в себя массив выборок предсказания. Также, блок преобразования или единица преобразования могут относиться к конкретной области в форме блока в картинке и могут включать в себя коэффициент преобразования или массив остаточных выборок.[37] In another example, a processing unit may include a coding unit (CU), a prediction unit (PU), or a transformation unit (TU). A coding unit may be split from a largest coding unit (LCU) into coding units of greater depth according to a quadtree structure. In this case, the largest coding unit can be directly used as the final coding unit based on coding efficiency or the like depending on the characteristics of the image, or the coding unit can be recursively divided into coding units of greater depth as needed, and the coding unit having an optimal size , can be used as the final encoding unit. When the smallest coding unit (SCU) is set, the coding unit may not be divided into coding units smaller than the smallest coding unit. Here, a final coding unit refers to a coding unit that is divided or broken down into a prediction unit or a transformation unit. A prediction unit is a unit that is divided from a coding unit and may be a sample prediction unit. Here, the prediction unit may be divided into sub-blocks. The transform unit may be divided from the encoding unit in accordance with the quadtree structure and may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient. Further, a coding unit may be referred to as a coding block (CB), a prediction unit may be referred to as a prediction block (PB), and a transform unit may be referred to as a transform block (TB). A prediction block or prediction unit may refer to a specific block-shaped region in a picture and may include an array of prediction samples. Also, a transform block or transform unit may refer to a specific block-shaped region in a picture and may include a transform coefficient or an array of residual samples.
[38] Модуль предсказания 110 может выполнять предсказание на целевом блоке обработки (далее, текущий блок) и может генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Единица предсказания, выполняемого в модуле предсказания 110, может представлять собой блок кодирования или может представлять собой блок преобразования или может представлять собой блок предсказания.[38] The prediction unit 110 may perform prediction on a target processing block (hereinafter, the current block) and may generate a predicted block including prediction samples for the current block. The unit of prediction performed in the prediction unit 110 may be a coding block, or may be a transform block, or may be a prediction block.
[39] Модуль предсказания 110 может определять, применяется ли внутрикадровое (интра-) предсказание или применяется межкадровое (интер-) предсказание к текущему блоку. Например, модуль предсказания 110 может определять, следует ли применять интра-предсказание или интер-предсказание в единице CU.[39] Prediction module 110 may determine whether intra-prediction is applied or inter-prediction is applied to the current block. For example, prediction module 110 may determine whether intra-prediction or inter-prediction should be applied to the CU.
[40] В случае интра-предсказания, модуль предсказания 110 может выводить выборку предсказания для текущего блока на основе опорной выборки вне текущего блока в картинке, которой принадлежит текущий блок (далее, текущая картинка). В этом случае, модуль предсказания 110 может выводить выборку предсказания на основе среднего или интерполяции соседних опорных выборок текущего блока (случай (i)) или может выводить выборку предсказания на основе опорной выборки, существующей в конкретном направлении (предсказания), как выборку предсказания среди соседних опорных выборок текущего блока (случай (ii)). Случай (i) может называться ненаправленным режимом или не-угловым режимом, а случай (ii) может называться направленным режимом или угловым режимом. В интра-предсказании, режимы предсказания могут включать в себя, в качестве примера, 33 направленных режима и по меньшей мере два ненаправленных режима. Ненаправленные режимы могут включать в себя режим DC и планарный режим. Модуль предсказания 110 может определять режим предсказания, подлежащий применению к текущему блоку, с использованием режима предсказания, применимого к соседнему блоку.[40] In the case of intra prediction, the prediction unit 110 may output a prediction sample for the current block based on a reference sample outside the current block in the picture to which the current block belongs (hereinafter, the current picture). In this case, the prediction module 110 may output a prediction sample based on the average or interpolation of neighboring reference samples of the current block (case (i)) or may output a prediction sample based on a reference sample existing in a particular direction (prediction) as a prediction sample among neighbors reference samples of the current block (case (ii)). Case (i) may be called non-directional mode or non-angular mode, and case (ii) may be called directional mode or angular mode. In intra-prediction, prediction modes may include, by way of example, 33 directional modes and at least two non-directional modes. Omnidirectional modes may include DC mode and planar mode. The prediction module 110 may determine a prediction mode to be applied to the current block using a prediction mode applicable to a neighboring block.
[41] В случае интер-предсказания, модуль предсказания 110 может выводить выборку предсказания для текущего блока на основе выборки, заданной вектором движения на опорной картинке. Модуль предсказания 110 может выводить выборку предсказания для текущего блока путем применения любого одного из режима пропуска, режима объединения и режима предсказания вектора движения (MVP). В случае режима пропуска и режима объединения, модуль предсказания 110 может использовать информацию движения соседнего блока как информацию движения текущего блока. В случае режима пропуска, в отличие от режима объединения, разница (остаток) между выборкой предсказания и исходной выборкой не передается. В случае режима MVP, вектор движения соседнего блока используется в качестве предсказателя вектора движения и, таким образом, используется в качестве предсказателя вектора движения текущего блока, чтобы вывести вектор движения текущего блока.[41] In the case of inter-prediction, the prediction module 110 may output a prediction sample for the current block based on the sample specified by the motion vector on the reference picture. The prediction module 110 may output a prediction sample for the current block by applying any one of a skip mode, a combining mode, and a motion vector prediction (MVP) mode. In the case of the skip mode and the merge mode, the prediction unit 110 may use the motion information of the adjacent block as the motion information of the current block. In the skip mode, unlike the merge mode, the difference (residual) between the prediction sample and the original sample is not transmitted. In the case of MVP mode, the motion vector of an adjacent block is used as a motion vector predictor, and thus is used as a motion vector predictor of the current block to output the motion vector of the current block.
[42] В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, существующий в текущей картинке, и временной соседний блок, существующий в опорной картинке. Опорная картинка, включающая в себя временной соседний блок, может также называться соотнесенной (совмещенной) картинкой (colPic). Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация, такая как информация режима предсказания и информация движения, может (энтропийно) кодироваться и затем выводиться в форме потока битов.[42] In the case of inter-prediction, a neighbor block may include a spatial neighbor block existing in the current picture and a temporal neighbor block existing in the reference picture. A reference picture including a temporary adjacent block may also be called a correlated picture (colPic). The motion information may include a motion vector and a reference picture index. Information such as prediction mode information and motion information can be (entropy) encoded and then output in the form of a bit stream.
[43] Когда информация движения временного соседнего блока используется в режиме пропуска и режиме объединения, самая верхняя картинка в списке опорных картинок может использоваться в качестве опорной картинки. Опорные картинки, включенные в список опорных картинок, могут быть выровнены на основе разницы счета порядка картинок (POC) между текущей картинкой и соответствующей опорной картинкой. POC соответствует порядку отображения и может отличаться от порядка кодирования.[43] When the motion information of a temporary adjacent block is used in the skip mode and the merge mode, the topmost picture in the list of reference pictures can be used as the reference picture. The reference pictures included in the reference picture list may be aligned based on the picture order count (POC) difference between the current picture and the corresponding reference picture. POC corresponds to display order and may differ from encoding order.
[44] Вычитатель 121 генерирует остаточную выборку, которая представляет собой разницу между исходной выборкой и выборкой предсказания. Если применяется режим пропуска, остаточная выборка может не генерироваться, как описано выше.[44] Subtractor 121 generates a residual sample, which is the difference between the original sample and the prediction sample. If skip mode is used, a residual sample may not be generated as described above.
[45] Преобразователь 122 преобразует остаточные выборки в единицах блока преобразования, чтобы генерировать коэффициент преобразования. Преобразователь 122 может выполнять преобразование на основе размера соответствующего блока преобразования и режима предсказания, применяемого к блоку кодирования или блоку предсказания, пространственно перекрывающемуся с блоком преобразования. Например, остаточные выборки могут быть преобразованы с использованием ядра преобразования дискретного синусного преобразования (DST), если интра-предсказание применяется к блоку кодирования или блоку предсказания, перекрывающемуся с блоком преобразования, и блок преобразования представляет собой остаточный массив 4×4 и преобразуется с использованием ядра преобразования дискретного косинусного преобразования (DCT) в других случаях.[45] Converter 122 converts the residual samples in transform block units to generate a transform coefficient. The transformer 122 may perform the transform based on the size of the corresponding transform block and the prediction mode applied to the encoding block or prediction block spatially overlapping with the transform block. For example, residual samples can be transformed using a discrete sine transform (DST) kernel if intra-prediction is applied to a coding block or prediction block overlapping with the transform block, and the transform block is a 4x4 residual array and is transformed using the kernel discrete cosine transform (DCT) in other cases.
[46] Модуль квантования 123 может квантовать коэффициенты преобразования, чтобы генерировать квантованные коэффициенты преобразования.[46] Quantization module 123 may quantize the transform coefficients to generate quantized transform coefficients.
[47] Модуль перегруппировки 124 перегруппировывает квантованные коэффициенты преобразования. Модуль перегруппировки 124 может перегруппировывать квантованные коэффициенты преобразования в форме блока в одномерный вектор посредством способа сканирования коэффициентов. Хотя модуль перегруппировки 124 описан как отдельный компонент, модуль перегруппировки 124 может представлять собой часть модуля квантования 123.[47] Rearrangement module 124 rearranges the quantized transform coefficients. The rearrangement module 124 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector through a coefficient scanning method. Although rearrangement module 124 is described as a separate component, rearrangement module 124 may be part of quantization module 123.
[48] Энтропийный кодер 130 может выполнять энтропийное кодирование на квантованных коэффициентах преобразования. Энтропийное кодирование может включать в себя способ кодирования, например, экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) или тому подобное. Энтропийный кодер 130 может выполнять кодирование совместно или отдельно на информации (например, значении синтаксического элемента или т.п.), требуемой для реконструкции видео, в дополнение к квантованным коэффициентам преобразования. Энтропийно-кодированная информация может передаваться или сохраняться в единице слоя сетевой абстракции (NAL) в форме потока битов.[48] Entropy encoder 130 may perform entropy encoding on the quantized transform coefficients. Entropy coding may include a coding method such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), or the like. The entropy encoder 130 may perform encoding jointly or separately on the information (eg, syntactic element value or the like) required for video reconstruction, in addition to the quantized transform coefficients. Entropy-encoded information can be transmitted or stored in a network abstraction layer (NAL) unit in the form of a bit stream.
[49] Модуль обратного квантования 125 обратно квантует значения (коэффициенты преобразования), квантованные модулем квантования 123, и обратный преобразователь 126 обратно преобразует значения, обратно квантованные модулем обратного квантования 125, чтобы сгенерировать остаточную выборку.[49] The inverse quantization unit 125 inversely quantizes the values (conversion coefficients) quantized by the quantization unit 123, and the inverse converter 126 inversely converts the values inversely quantized by the inverse quantization unit 125 to generate a residual sample.
[50] Сумматор 140 суммирует остаточную выборку с выборкой предсказания, чтобы реконструировать картинку. Остаточная выборка может суммироваться с выборкой предсказания в единицах блока, чтобы сгенерировать реконструированный блок. Хотя сумматор 140 описан как отдельный компонент, сумматор 140 может представлять собой часть модуля предсказания 110. При этом сумматор 140 может упоминаться как модуль реконструкции или генератор реконструированных блоков.[50] An adder 140 adds the residual sample with the prediction sample to reconstruct the picture. The residual sample can be summed with the prediction sample in block units to generate a reconstructed block. Although the adder 140 is described as a separate component, the adder 140 may be part of the prediction module 110. The adder 140 may be referred to as a reconstruction module or a reconstructed block generator.
[51] Фильтр 150 может применять фильтрацию устранения блочности и/или адаптивное к выборке смещение к реконструированной картинке. Артефакты на границе блока на реконструированной картинке или искажение при квантовании могут быть скорректированы посредством фильтрации устранения блочности и/или адаптивного к выборке смещения. Адаптивное к выборке смещение может применяться в единицах выборки после того, как фильтрация устранения блочности завершена. Фильтр 150 может применять адаптивный контурный фильтр (ALF) к реконструированной картинке. ALF может применяться к реконструированной картинке, к которой была применена фильтрация устранения блочности и/или адаптивное к выборке смещение.[51] Filter 150 may apply deblocking filtering and/or sample-adaptive offset to the reconstructed picture. Block boundary artifacts in the reconstructed image or quantization distortion can be corrected through deblocking filtering and/or sampling-adaptive offset. Sampling-adaptive bias can be applied in sampling units after deblocking filtering is completed. Filter 150 may apply an adaptive loop filter (ALF) to the reconstructed picture. ALF can be applied to a reconstructed image to which deblocking filtering and/or sample-adaptive shifting has been applied.
[52] Память 160 может хранить реконструированную картинку (декодированную картинку) или информацию, необходимую для кодирования/декодирования. Здесь, реконструированная картинка может представлять собой реконструированную картинку, отфильтрованную фильтром 150. Сохраненная реконструированная картинка может использоваться в качестве опорной картинки для (интер-) предсказания других картинок. Например, память 160 может хранить (опорные) картинки, используемые для интер-предсказания. Здесь, картинки, используемые для интер-предсказания, могут указываться в соответствии с набором опорных картинок или списком опорных картинок.[52] Memory 160 may store a reconstructed picture (decoded picture) or information necessary for encoding/decoding. Here, the reconstructed picture may be a reconstructed picture filtered by filter 150. The stored reconstructed picture may be used as a reference picture for (inter-)prediction of other pictures. For example, memory 160 may store (reference) pictures used for inter-prediction. Here, pictures used for inter-prediction may be specified in accordance with a set of reference pictures or a list of reference pictures.
[53] Фиг. 2 иллюстрирует другой пример устройства кодирования видео, к которому применимо настоящее раскрытие.[53] FIG. 2 illustrates another example of a video encoding apparatus to which the present disclosure applies.
[54] Со ссылкой на фиг. 2, устройство кодирования видео включает в себя модуль интра-предсказания, опорный сглаживатель 200, модуль предсказания 210, постфильтр 220, преобразователь 230 и устройство квантования 240. Здесь, модуль интра-предсказания может включать в себя опорный сглаживатель 200, модуль предсказания 210 и постфильтр 220.[54] With reference to FIG. 2, the video encoding device includes an intra-prediction module, a reference smoother 200, a prediction module 210, a post filter 220, a converter 230, and a quantizer 240. Here, the intra-prediction module may include a reference smoother 200, a prediction module 210, and a post filter. 220.
[55] Когда интра-предсказание применяется к текущему блоку, опорный сглаживатель 200 может выполнять процесс сглаживания на левых соседних выборках и верхних соседних выборках, используемых для интра-предсказания текущего блока в картинке (далее упоминается как текущая картинка), которой принадлежит текущий блок, на основе размера текущего блока, информации режима интра-предсказания и значения выборки. Соответственно, можно предотвратить визуальные артефакты в отношении выборок предсказания текущего блока, которые могут возникать из-за разницы между значениями выборки левых соседних выборок и верхних соседних выборок.[55] When intra-prediction is applied to the current block, the reference smoother 200 may perform the smoothing process on the left neighboring samples and the top neighboring samples used for intra-prediction of the current block in the picture (hereinafter referred to as the current picture) to which the current block belongs. based on the current block size, intra-prediction mode information, and sample value. Accordingly, it is possible to prevent visual artifacts regarding the prediction samples of the current block that may occur due to the difference between the sample values of the left neighboring samples and the upper neighboring samples.
[56] Модуль предсказания 210 может (i) выводить выборку предсказания на основе среднего или интерполяции левых соседних выборок и верхних соседних выборок текущего блока или (ii) может выводить выборки предсказания на основе соседних выборок, присутствующих в конкретном направлении (предсказания) относительно выборок предсказания среди левых соседних выборок и верхних соседних выборок. Случай (i) может называться ненаправленным режимом или неугловым режимом, и случай (ii) может называться направленным режимом или угловым режимом. В интра-предсказании, режим предсказания может иметь 33 направленных режима предсказания и по меньшей мере два ненаправленных режима. Ненаправленный режим может включать в себя режим предсказания DC и планарный режим (Planar mode). Модуль предсказания 210 может также определять режим предсказания, применяемый к текущему блоку с использованием режима предсказания, применяемого к соседнему блоку.[56] Prediction module 210 may (i) derive a prediction sample based on the average or interpolation of left neighbor samples and top neighbor samples of the current block or (ii) may derive prediction samples based on neighbor samples present in a particular direction (prediction) relative to the prediction samples among the left neighboring samples and the top neighboring samples. Case (i) may be called non-directional mode or non-angular mode, and case (ii) may be called directional mode or angular mode. In intra-prediction, a prediction mode may have 33 directional prediction modes and at least two non-directional modes. The omnidirectional mode may include a DC prediction mode and a Planar mode. The prediction module 210 may also determine the prediction mode applied to the current block using the prediction mode applied to the adjacent block.
[57] Модуль постфильтра 220 может избирательно выполнять фильтрацию пост-обработки, чтобы уменьшить прерывность между текущим блоком и соседними выборками в соответствии с режимом предсказания, в котором выводится выборка предсказания текущего блока. После этого, устройство кодирования может выводить, в качестве остаточной выборки, разницу между выборкой предсказания и исходной выборкой, и преобразователь 230 может преобразовывать остаточную выборку в единицы блоков, чтобы генерировать коэффициенты преобразования. Также, устройство квантования 240 может квантовать коэффициенты преобразования, чтобы генерировать квантованные коэффициенты преобразования.[57] Post filter module 220 may selectively perform post-processing filtering to reduce discontinuity between the current block and adjacent samples in accordance with the prediction mode in which the prediction sample of the current block is output. Thereafter, the encoder can output, as a residual sample, the difference between the prediction sample and the original sample, and the converter 230 can convert the residual sample into block units to generate transform coefficients. Also, quantizer 240 may quantize the transform coefficients to generate quantized transform coefficients.
[58] Фиг. 3 иллюстрирует пример процесса выполнения интра-предсказания в устройстве кодирования. Устройство кодирования может выполнять интра-предсказание, чтобы генерировать выборку предсказания текущего блока (S300). Выборка предсказания может называться сигналом предсказания или сигналом интра-предсказания. Конкретно, устройство кодирования может сглаживать левые соседние выборки и верхние соседние выборки (т.е., выполнять на них процесс сглаживания), используемые для интра-предсказания текущего блока, на основе размера текущего блока, информации режима и значения выборки (S310). После этого, как описано выше, устройство кодирования может выполнять предсказание в соответствии с режимом интра-предсказания, чтобы генерировать выборку предсказания (S320), и выполнять фильтрацию пост-обработки, чтобы уменьшить прерывность между текущим блоком и соседними выборками (S330). Устройство кодирования может генерировать, в качестве остаточной выборки, разницу между выборкой предсказания и исходной выборкой (S340) и преобразовывать остаточную выборку в единицы блоков, чтобы генерировать коэффициенты преобразования. Дополнительно, устройство кодирования может квантовать коэффициенты преобразования, чтобы генерировать квантованные коэффициенты преобразования (S360), и энтропийно кодировать квантованные коэффициенты преобразования, чтобы выполнить сигнализацию (S370).[58] FIG. 3 illustrates an example of a process for performing intra-prediction in an encoding apparatus. The encoding device may perform intra prediction to generate a prediction sample of the current block (S300). The prediction sample may be called a prediction signal or an intra-prediction signal. Specifically, the encoding device can smooth left adjacent samples and upper adjacent samples (ie, perform a smoothing process on them) used for intra-prediction of the current block based on the size of the current block, mode information and sample value (S310). Thereafter, as described above, the encoding apparatus may perform prediction in accordance with the intra-prediction mode to generate a prediction sample (S320), and perform post-processing filtering to reduce discontinuity between the current block and neighboring samples (S330). The encoding apparatus may generate, as a residual sample, the difference between the prediction sample and the original sample (S340) and convert the residual sample into block units to generate conversion coefficients. Further, the encoding device may quantize the transform coefficients to generate quantized transform coefficients (S360), and entropy encode the quantized transform coefficients to perform signaling (S370).
[59] Фиг. 4 кратко иллюстрирует структуру устройства декодирования видео, к которому применимо настоящее раскрытие.[59] FIG. 4 briefly illustrates the structure of a video decoding apparatus to which the present disclosure applies.
[60] Со ссылкой на фиг. 4, устройство декодирования видео 400 может включать в себя энтропийный декодер 410, процессор 420 остатка, модуль предсказания 430, сумматор 440, фильтр 450 и память 460. Процессор 420 остатка может включать в себя модуль перегруппировки 421, модуль обратного квантования 422, обратный преобразователь 423.[60] With reference to FIG. 4, video decoding apparatus 400 may include an entropy decoder 410, a residual processor 420, a predictor 430, an adder 440, a filter 450, and a memory 460. The residual processor 420 may include a rearranger 421, an inverse quantizer 422, an inverter 423 .
[61] Когда поток битов, включающий в себя информацию видео, введен, устройство 400 декодирования видео может реконструировать видео в ассоциации с процессом, посредством которого информация видео обрабатывается в устройстве кодирования видео.[61] When a bitstream including video information is input, the video decoding apparatus 400 can reconstruct the video in association with the process by which the video information is processed in the video encoding apparatus.
[62] Например, устройство 400 декодирования видео может выполнять декодирование видео с использованием единицы обработки, применяемой в устройстве кодирования видео. Таким образом, блок единиц обработки декодирования видео может представлять собой, например, единицу кодирования и, в другом примере, единицу кодирования, единицу предсказания или единицу преобразования. Единица кодирования может разбиваться из наибольшей единицы кодирования в соответствии со структурой квадродерева и/или структурой двоичного дерева.[62] For example, the video decoding apparatus 400 may perform video decoding using a processing unit applied in the video encoding apparatus. Thus, a block of video decoding processing units may be, for example, an encoding unit and, in another example, an encoding unit, a prediction unit, or a transform unit. The coding unit may be split from the largest coding unit according to a quadtree structure and/or a binary tree structure.
[63] Единица предсказания и единица преобразования могут дополнительно использоваться в некоторых случаях, и в этом случае, блок предсказания представляет собой блок, выводимый или разделяемый из единицы кодирования, и может представлять собой единицу предсказания выборки. Здесь, единица предсказания может разделяться на подблоки. Единица преобразования может разбиваться из единицы кодирования в соответствии со структурой квадродерева и может представлять собой единицу, которая выводит коэффициент преобразования, или единицу, которая выводит остаточный сигнал из коэффициента преобразования.[63] A prediction unit and a transformation unit may be further used in some cases, in which case, a prediction block is a block output or divided from a coding unit, and may be a sample prediction unit. Here, the prediction unit may be divided into sub-blocks. The transform unit may be decomposed from the encoding unit according to a quadtree structure, and may be a unit that outputs a transform coefficient or a unit that outputs a residual signal from the transform coefficient.
[64] Энтропийный декодер 410 может анализировать поток битов, чтобы вывести информацию, требуемую для реконструкции видео или реконструкции картинки. Например, энтропийный декодер 410 может декодировать информацию в потоке битов на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC, CABAC или тому подобное, и может выводить значение синтаксического элемента, требуемое для реконструкции видео, и квантованное значение коэффициента преобразования в отношении остатка.[64] Entropy decoder 410 may analyze the bit stream to output information required for video reconstruction or picture reconstruction. For example, entropy decoder 410 may decode information in the bit stream based on an encoding method such as exponential Golomb coding, CAVLC, CABAC, or the like, and may output a syntax element value required for video reconstruction and a quantized transform coefficient value with respect to the remainder.
[65] Более конкретно, способ энтропийного кодирования CABAC может принимать бин, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием декодирования информации целевого синтаксического элемента и декодирования информации соседних и декодирования целевых блоков или информации символа/бина, декодированного на предыдущем этапе, предсказывать вероятность генерации бина в соответствии с определенной контекстной моделью и выполнять арифметическое декодирование бина, чтобы генерировать символ, соответствующий каждому значению синтаксического элемента. Здесь, способ энтропийного декодирования CABAC может обновлять контекстную модель с использованием информации символа/бина, декодированного для контекстной модели следующего символа/бина после определения контекстной модели.[65] More specifically, the CABAC entropy encoding method can take a bin corresponding to each syntactic element in a bitstream, determine a context model using decoding the information of the target syntactic element and decoding the information of neighboring ones, and decoding the target blocks or the symbol/bin information decoded in the previous step , predict the probability of generating a bin according to a certain context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to each value of the syntactic element. Here, the CABAC entropy decoding method can update the context model using the symbol/bin information decoded for the context model of the next symbol/bin after determining the context model.
[66] Информация о предсказании среди информации, декодированной в энтропийном декодере 410, может быть предоставлена на модуль предсказания 450, и остаточные значения, то есть, квантованные коэффициенты преобразования, на которых было выполнено энтропийное декодирование посредством энтропийного декодера 410, могут вводиться в модуль перегруппировки 421.[66] Prediction information among the information decoded in the entropy decoder 410 can be provided to the prediction module 450, and residual values, that is, quantized transform coefficients on which entropy decoding has been performed by the entropy decoder 410, can be input to the rearrangement module 421.
[67] Модуль перегруппировки 421 может перегруппировывать квантованные коэффициенты преобразования в форму двумерного блока. Модуль перегруппировки 421 может выполнять перегруппировку, соответствующую сканированию коэффициентов, выполняемому устройством кодирования. Хотя модуль перегруппировки 421 описан как отдельный компонент, модуль перегруппировки 421 может представлять собой часть модуля обратного квантования 422.[67] Rearrangement module 421 may rearrange the quantized transform coefficients into a two-dimensional block form. The rearrangement module 421 may perform rearrangement corresponding to the coefficient scan performed by the encoder. Although rearrangement module 421 is described as a separate component, rearrangement module 421 may be part of inverse quantization module 422.
[68] Модуль обратного квантования 422 может деквантовать квантованные коэффициенты преобразования на основе параметра (де)квантования, чтобы вывести коэффициент преобразования. В этом случае, информация для вывода параметра квантования может сигнализироваться от устройства кодирования.[68] The inverse quantization module 422 may dequantize the quantized transform coefficients based on the (de)quantization parameter to output the transform coefficient. In this case, information for outputting a quantization parameter may be signaled from the encoding device.
[69] Обратный преобразователь 423 может обратно преобразовывать коэффициенты преобразования, чтобы вывести остаточные выборки.[69] Inverter 423 may inversely transform the transform coefficients to output residual samples.
[70] Модуль предсказания 430 может выполнять предсказание на текущем блоке и может генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Единица предсказания, выполняемого в модуле предсказания 430, может представлять собой блок кодирования или может представлять собой блок преобразования или может представлять собой блок предсказания.[70] Prediction module 430 may perform prediction on the current block and may generate a predicted block including prediction samples for the current block. A unit of prediction performed in prediction unit 430 may be an encoding block, or may be a transform block, or may be a prediction block.
[71] Модуль предсказания 430 может определять, следует ли применить интра-предсказание или интер-предсказание, на основе информации о предсказании. В этом случае, единица для определения того, что будет использовано из интра-предсказания и интер-предсказания, может отличаться от единицы для генерирования выборки предсказания. К тому же, единица для генерирования выборки предсказания может также отличаться в интер-предсказании и интра-предсказании. Например, то, что будет применяться из интер-предсказания и интра-предсказания, может определяться в единице CU. Дополнительно, например, в интер-предсказании, выборка предсказания может генерироваться посредством определения режима предсказания в единице PU, а в интра-предсказании выборка предсказания может генерироваться в единице TU путем определения режима предсказания в единице PU.[71] The prediction module 430 may determine whether intra-prediction or inter-prediction should be applied based on the prediction information. In this case, the unit for determining what will be used from the intra-prediction and inter-prediction may be different from the unit for generating the prediction sample. In addition, the unit for generating the prediction sample may also be different in inter-prediction and intra-prediction. For example, what will be applied from inter-prediction and intra-prediction can be determined in a CU unit. Additionally, for example, in inter-prediction, a prediction sample can be generated by determining a prediction mode in the PU, and in intra-prediction, a prediction sample can be generated in a TU by determining a prediction mode in the PU.
[72] В случае интра-предсказания, модуль предсказания 430 может выводить выборку предсказания для текущего блока на основе соседней опорной выборки на текущей картинке. Модуль предсказания 430 может выводить выборку предсказания для текущего блока путем применения направленного режима или ненаправленного режима на основе соседней опорной выборки текущего блока. В этом случае, режим предсказания, подлежащий применению к текущему блоку, может определяться путем использования режима интра-предсказания соседнего блока.[72] In the case of intra-prediction, prediction module 430 may derive a prediction sample for the current block based on an adjacent reference sample in the current picture. Prediction module 430 may derive a prediction sample for the current block by applying a directed mode or an undirected mode based on a neighboring reference sample of the current block. In this case, the prediction mode to be applied to the current block can be determined by using the intra-prediction mode of the neighboring block.
[73] В случае интер-предсказания, модуль предсказания 430 может выводить выборку предсказания для текущего блока на основе выборки, заданной в опорной картинке в соответствии с вектором движения. Модуль предсказания 430 может выводить выборку предсказания для текущего блока с использованием одного из режима пропуска, режима объединения и режима MVP. Здесь, информация движения, требуемая для интер-предсказания текущего блока, обеспечиваемая посредством устройства кодирования видео, например, вектор движения и информация об индексе опорной картинки, может быть получена или выведена на основе информации о предсказании.[73] In the case of inter-prediction, the prediction unit 430 may output a prediction sample for the current block based on the sample specified in the reference picture according to the motion vector. The prediction module 430 may output a prediction sample for the current block using one of a skip mode, a merge mode, and an MVP mode. Here, motion information required for inter-prediction of the current block provided by the video encoding device, for example, motion vector and reference picture index information, can be obtained or output based on the prediction information.
[74] В режиме пропуска и режиме объединения, информация движения соседнего блока может использоваться в качестве информации движения текущего блока. Здесь, соседний блок может включать в себя пространственный соседний блок и временной соседний блок.[74] In the skip mode and the merge mode, the motion information of an adjacent block can be used as the motion information of the current block. Here, the neighbor block may include a spatial neighbor block and a temporal neighbor block.
[75] Модуль предсказания 430 может конструировать список кандидатов объединения с использованием информации движения доступных соседних блоков и использовать информацию, указанную индексом объединения в списке кандидатов объединения, в качестве вектора движения текущего блока. Индекс объединения может сигнализироваться посредством устройства кодирования. Информация движения может включать в себя вектор движения и опорную картинку. Когда информация движения временного соседнего блока используется в режиме пропуска и режиме объединения, самая верхняя картинка в списке опорных картинок может использоваться в качестве опорной картинки.[75] The prediction unit 430 may construct a merging candidate list using the motion information of available neighboring blocks, and use the information indicated by the merging index in the merging candidate list as a motion vector of the current block. The association index may be signaled by the encoder. The motion information may include a motion vector and a reference picture. When the motion information of the temporary neighboring block is used in the skip mode and the merge mode, the topmost picture in the list of reference pictures can be used as the reference picture.
[76] В случае режима пропуска, разница (остаток) между выборкой предсказания и исходной выборкой не передается, в отличие от режима объединения.[76] In the case of the skip mode, the difference (residual) between the prediction sample and the original sample is not transmitted, unlike the merge mode.
[77] В случае режима MVP, вектор движения текущего блока может выводиться с использованием вектора движения соседнего блока в качестве модуля предсказания вектора движения. Здесь, соседний блок может включать в себя пространственный соседний блок и временной соседний блок.[77] In the case of MVP mode, the motion vector of the current block can be output by using the motion vector of the adjacent block as the motion vector predictor. Here, the neighbor block may include a spatial neighbor block and a temporal neighbor block.
[78] Когда применяется режим объединения, например, список кандидатов объединения может генерироваться с использованием вектора движения реконструированного пространственного соседнего блока и/или вектора движения, соответствующего блоку Col, который представляет собой временной соседний блок. Вектор движения блока-кандидата, выбранного из списка кандидатов объединения, используется в качестве вектора движения текущего блока в режиме объединения. Вышеупомянутая информация о предсказании может включать в себя индекс объединения, указывающий блок-кандидат, имеющий лучший вектор движения, выбранный из блоков-кандидатов, включенных в список кандидатов объединения. Здесь, модуль предсказания 430 может выводить вектор движения текущего блока с использованием индекса объединения.[78] When the merging mode is applied, for example, a merging candidate list may be generated using the motion vector of the reconstructed spatial neighbor block and/or the motion vector corresponding to the Col block, which is a temporal neighbor block. The motion vector of a candidate block selected from the merging candidate list is used as the motion vector of the current block in merging mode. The above prediction information may include a merging index indicating a candidate block having a best motion vector selected from the candidate blocks included in the merging candidate list. Here, the prediction unit 430 may output the motion vector of the current block using the merging index.
[79] Когда режим MVP (предсказание вектора движения) применяется в качестве другого примера, список кандидатов модуля предсказания вектора движения может генерироваться с использованием вектора движения реконструированного пространственного соседнего блока и/или вектора движения, соответствующего блоку Col, который представляет собой временной соседний блок. То есть, вектор движения реконструированного пространственного соседнего блока и/или вектор движения, соответствующий блоку Col, который представляет собой временной соседний блок, могут использоваться в качестве кандидатов вектора движения. Вышеупомянутая информация о предсказании может включать в себя индекс вектора движения предсказания, указывающий лучший вектор движения, выбранный из кандидатов вектора движения, включенных в список. Здесь, модуль предсказания 430 может выбирать вектор движения предсказания текущего блока из кандидатов вектора движения, включенных в список кандидатов вектора движения, с использованием индекса вектора движения. Модуль предсказания устройства кодирования может получать разницу векторов движения (MVD) между вектором движения текущего блока и модулем предсказания вектора движения, кодировать MVD и выводить закодированную MVD в форме потока битов. То есть, MVD может быть получена путем вычитания модуля предсказания вектора движения из вектора движения текущего блока. Здесь, модуль предсказания 430 может получать вектор движения, включенный в информацию о предсказании, и выводить вектор движения текущего блока путем сложения разницы векторов движения с модулем предсказания вектора движения. К тому же, модуль предсказания может получать или выводить индекс опорной картинки, указывающий опорную картинку, из вышеупомянутой информации о предсказании.[79] When the MVP (Motion Vector Prediction) mode is applied as another example, a motion vector prediction module candidate list may be generated using the motion vector of the reconstructed spatial neighbor block and/or the motion vector corresponding to the Col block, which is a temporal neighbor block. That is, the motion vector of the reconstructed spatial neighbor block and/or the motion vector corresponding to the block Col, which is a temporal neighbor block, can be used as motion vector candidates. The above prediction information may include a prediction motion vector index indicating the best motion vector selected from motion vector candidates included in the list. Here, the prediction unit 430 may select a prediction motion vector of the current block from the motion vector candidates included in the motion vector candidate list using the motion vector index. The encoder predictor may obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, encode the MVD, and output the encoded MVD in the form of a bitstream. That is, the MVD can be obtained by subtracting the motion vector prediction module from the motion vector of the current block. Here, the prediction unit 430 can obtain the motion vector included in the prediction information and output the motion vector of the current block by adding the difference of the motion vectors with the motion vector prediction unit. In addition, the prediction module can obtain or output a reference picture index indicating the reference picture from the above prediction information.
[80] Сумматор 440 может суммировать остаточную выборку с выборкой предсказания, чтобы реконструировать текущий блок или текущую картинку. Сумматор 440 может реконструировать текущую картинку путем суммирования остаточной выборки с выборкой предсказания в единицах блока. Когда применяется режим пропуска, остаток не передается, и, таким образом, выборка предсказания может становиться реконструированной выборкой. Хотя сумматор 440 описан как отдельный компонент, сумматор 440 может представлять собой часть модуля предсказания 430. При этом сумматор 440 может упоминаться как модуль реконструкции или генератор реконструированных блоков.[80] Adder 440 may add the residual sample with the prediction sample to reconstruct the current block or current picture. Adder 440 may reconstruct the current picture by summing the residual sample with the prediction sample in block units. When the skip mode is applied, the remainder is not transmitted, and thus the prediction sample may become a reconstructed sample. Although the adder 440 is described as a separate component, the adder 440 may be part of the prediction module 430. The adder 440 may be referred to as a reconstruction module or a reconstructed block generator.
[81] Фильтр 450 может применять фильтрацию устранения блочности, адаптивное смещение выборки и/или ALF к реконструированной картинке. Здесь, адаптивное смещение выборки может применяться в единицах выборки после фильтрации устранения блочности. ALF может применяться после фильтрации устранения блочности и/или применения адаптивного смещения выборки.[81] Filter 450 may apply deblocking filtering, adaptive sampling offset, and/or ALF to the reconstructed picture. Here, adaptive sampling bias can be applied in sampling units after deblocking filtering. ALF can be applied after deblocking filtering and/or applying adaptive sampling bias.
[82] Память 460 может хранить реконструированную картинку (декодированную картинку) или информацию, необходимую для декодирования. Здесь, реконструированная картинка может представлять собой реконструированную картинку, отфильтрованную посредством фильтра 450. Например, память 460 может хранить картинки, используемые для интер-предсказания. Здесь, картинки, используемые для интер-предсказания, могут указываться в соответствии с набором опорных картинок или списком опорных картинок. Реконструированная картинка может использоваться в качестве опорной картинки для других картинок. Память 460 может выводить реконструированные картинки в порядке вывода.[82] Memory 460 may store a reconstructed picture (decoded picture) or information necessary for decoding. Here, the reconstructed picture may be a reconstructed picture filtered by filter 450. For example, memory 460 may store pictures used for inter-prediction. Here, pictures used for inter-prediction may be specified in accordance with a set of reference pictures or a list of reference pictures. The reconstructed picture can be used as a reference picture for other pictures. The memory 460 may output the reconstructed pictures in output order.
[83] Фиг. 5 иллюстрирует другой пример устройства декодирования видео, к которому применяется настоящее раскрытие.[83] FIG. 5 illustrates another example of a video decoding apparatus to which the present disclosure applies.
[84] Со ссылкой на фиг. 5, устройство кодирования видео включает в себя модуль интра-предсказания, опорный сглаживатель 500, модуль предсказания 810, постфильтр 520, модуль обратного квантования 530 и обратный преобразователь 540. Здесь, модуль интра-предсказания может включать в себя опорный сглаживатель 500, модуль предсказания 510 и постфильтр 520. Модуль интра-предсказания может выводить выборку предсказания для текущего блока путем применения направленного режима или ненаправленного режима на основе соседней опорной выборки текущего блока. Здесь, режим предсказания, подлежащий применению к текущему блоку, может определяться с использованием режима интра-предсказания соседнего блока.[84] With reference to FIG. 5, the video encoding device includes an intra-prediction module, a reference smoother 500, a prediction module 810, a post filter 520, an inverse quantization module 530, and an inverse converter 540. Here, the intra-prediction module may include a reference smoother 500, a prediction module 510 and a post filter 520. The intra-prediction module may output a prediction sample for the current block by applying a directed mode or an undirected mode based on a neighboring reference sample of the current block. Here, the prediction mode to be applied to the current block can be determined using the intra-prediction mode of the neighboring block.
[85] Конкретно, когда интра-предсказание применяется к текущему блоку, опорный сглаживатель 500 может выполнять процесс сглаживания на левых соседних выборках и верхних соседних выборках, используемых для интра-предсказания текущего блока в картинке (далее упоминаемой как текущая картинка), которой принадлежит текущий блок, на основе размера текущего блока, режима предсказания и значения выборки. Таким образом, возможно предотвратить визуальные артефакты в отношении выборок предсказания текущего блока, которые могут возникать из-за разниц между значениями выборки левых соседних выборок и верхних соседних выборок.[85] Specifically, when intra-prediction is applied to the current block, the reference smoother 500 may perform the smoothing process on the left neighboring samples and the upper neighboring samples used for intra-prediction of the current block in the picture (hereinafter referred to as the current picture) to which the current one belongs. block, based on the current block size, prediction mode, and sample value. In this way, it is possible to prevent visual artifacts regarding the prediction samples of the current block, which may occur due to differences between the sample values of the left neighboring samples and the top neighboring samples.
[86] Модуль предсказания 510 может выводить выборку предсказания на основе среднего или интерполяции левых соседних выборок и верхних соседних выборок текущего блока (случай (i)) или может выводить выборку предсказания на основе соседней выборки, присутствующей в конкретном направлении (предсказания) относительно выборки предсказания среди левых соседних выборок и верхних соседних выборок (случай (ii)). Случай (i) может называться ненаправленным режимом или неугловым режимом, а случай (ii) может называться направленным режимом или угловым режимом. В интра-предсказании, режим предсказания может включать в себя, например, 33 направленных режима предсказания и по меньшей мере два ненаправленных режима. Ненаправленные режимы могут включать в себя режим предсказания DC и планарный режим. Модуль предсказания 510 может определять режим предсказания, подлежащий применению к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.[86] Prediction module 510 may output a prediction sample based on the average or interpolation of left neighbor samples and top neighbor samples of the current block (case (i)) or may output a prediction sample based on a neighbor sample present in a particular direction (prediction) relative to the prediction sample among the left neighboring samples and the top neighboring samples (case (ii)). Case (i) may be called non-directional mode or non-angular mode, and case (ii) may be called directional mode or angular mode. In intra-prediction, a prediction mode may include, for example, 33 directional prediction modes and at least two non-directional modes. Omnidirectional modes may include DC prediction mode and planar mode. Prediction module 510 may determine a prediction mode to be applied to the current block using the prediction mode applied to an adjacent block.
[87] Модуль постфильтра 520 может избирательно выполнять фильтрацию пост-обработки, чтобы уменьшить прерывность между текущим блоком и соседними выборками в соответствии с режимом предсказания, в котором выводится выборка предсказания текущего блока. После этого, модуль обратного квантования 530 может обратно квантовать квантованные коэффициенты преобразования, принятые от устройства кодирования, и обратный преобразователь 540 может обратно преобразовывать обратно квантованные коэффициенты преобразования, чтобы генерировать остаточные выборки в единицах блоков. Устройство декодирования может восстанавливать текущий блок, закодированный на основе интра-предсказания, на основе остаточной выборки и выборки предсказания.[87] Post filter module 520 may selectively perform post-processing filtering to reduce discontinuity between the current block and adjacent samples in accordance with the prediction mode in which the prediction sample of the current block is output. Thereafter, the inverse quantizer 530 may inversely quantize the quantized transform coefficients received from the encoder, and the inverse transformer 540 may inversely transform the quantized transform coefficients to generate residual samples in block units. The decoding apparatus can reconstruct the current intra-prediction encoded block based on the residual sample and the prediction sample.
[88] Фиг. 6 иллюстрирует пример процесса выполнения интра-предсказания в устройстве декодирования. Устройство декодирования энтропийно декодирует энтропийно закодированную информацию, принятую посредством потока битов, чтобы получить квантованные коэффициенты преобразования (S600). Далее, устройство декодирования может обратно квантовать квантованные коэффициенты преобразования, чтобы получить коэффициенты преобразования (S610), и обратно преобразовывать коэффициенты преобразования, чтобы генерировать остаточную выборку в единицах блоков (S620). Далее, устройство декодирования может выполнять интра-предсказание, чтобы генерировать выборку предсказания текущего блока (S630). Выборка предсказания может упоминаться как сигнал предсказания или сигнал интра-предсказания. Конкретно, устройство декодирования может выполнять процесс сглаживания на левых соседних выборках и верхних соседних выборках, используемых для интра-предсказания текущего блока, на основе размера текущего блока, режима предсказания и значения выборки (S640). После этого, устройство декодирования может выполнять предсказание в соответствии с режимом интра-предсказания, чтобы генерировать выборку предсказания, как описано выше (S650), и выполнять фильтрацию пост-обработки, чтобы уменьшить прерывность между текущим блоком и соседними выборками (S660). Устройство декодирования может суммировать выборку предсказания и остаточную выборку, чтобы генерировать реконструированную выборку текущего блока (S670).[88] FIG. 6 illustrates an example of a process for performing intra-prediction in a decoding apparatus. The decoding apparatus entropy decodes the entropy encoded information received by the bit stream to obtain quantized transform coefficients (S600). Next, the decoding apparatus may inversely quantize the quantized transform coefficients to obtain transform coefficients (S610), and inversely transform the transform coefficients to generate a residual sample in block units (S620). Next, the decoding apparatus may perform intra prediction to generate a prediction sample of the current block (S630). The prediction sample may be referred to as a prediction signal or an intra-prediction signal. Specifically, the decoding apparatus may perform a smoothing process on the left neighbor samples and the top neighbor samples used for intra-prediction of the current block based on the size of the current block, the prediction mode, and the sample value (S640). Thereafter, the decoding apparatus may perform prediction in accordance with the intra-prediction mode to generate a prediction sample as described above (S650), and perform post-processing filtering to reduce discontinuity between the current block and adjacent samples (S660). The decoding apparatus may add the prediction sample and the residual sample to generate a reconstructed sample of the current block (S670).
[89] Когда предсказание выполняется на текущем блоке, как описано выше, предсказание может выполняться на основе режима интра-предсказания. Например, интра-предсказание может выполняться на основе соседней выборки, которая уже была закодирована/декодирована во время декодирования текущего блока. То есть, выборка предсказания текущего блока может быть реконструирована с использованием левых соседних выборок и верхних соседних выборок текущего блока. Левые соседние выборки и верхние соседние выборки могут быть представлены, как показано на фиг. 7.[89] When prediction is performed on the current block as described above, prediction may be performed based on an intra-prediction mode. For example, intra-prediction may be performed based on a neighboring sample that has already been encoded/decoded during decoding of the current block. That is, the prediction sample of the current block can be reconstructed using the left neighbor samples and the top neighbor samples of the current block. Left adjacent samples and top adjacent samples can be represented as shown in FIG. 7.
[90] Фиг. 7 иллюстрирует пример левых соседних выборок и верхних соседних выборок, используемых для интра-предсказания текущего блока. Когда интра-предсказание выполняется на текущем блоке, режим интра-предсказания в отношении текущего блока может выводиться, и выборка предсказания в отношении текущего блока может генерироваться с использованием по меньшей мере одной из левых соседних выборок и верхних соседних выборок в соответствии с режимом интра-предсказания. Левые соседние выборки и верхние соседние выборки, используемые для интра-предсказания текущего блока, могут подвергаться процессу сглаживания на основе размера текущего блока, режима предсказания и значения выборки. То есть, фильтрация может выполняться, чтобы уменьшить разницу между значениями выборки левых соседних выборок и верхних соседних выборок на основе размера текущего блока, режима предсказания и значений выборки. Таким образом, можно предотвратить визуальные артефакты в отношении выборок предсказания текущего блока, которые могут возникать из-за разниц между значениями выборки левых соседних выборок и верхних соседних выборок.[90] FIG. 7 illustrates an example of left neighbor samples and top neighbor samples used for intra-prediction of the current block. When intra-prediction is performed on the current block, an intra-prediction mode with respect to the current block may be output, and a prediction sample with respect to the current block may be generated using at least one of the left neighbor samples and the top neighbor samples in accordance with the intra-prediction mode . The left neighbor samples and the top neighbor samples used for intra-prediction of the current block may undergo a smoothing process based on the current block size, prediction mode, and sample value. That is, filtering may be performed to reduce the difference between the sample values of the left neighbor samples and the top neighbor samples based on the current block size, prediction mode, and sample values. In this way, visual artifacts with respect to the prediction samples of the current block that may occur due to differences between the sample values of the left neighbor samples and the top neighbor samples can be prevented.
[91] Здесь, режима интра-предсказания может включать в себя два ненаправленных режима интра-предсказания и 33 направленных режима интра-предсказания. Ненаправленные режимы интра-предсказания могут включать в себя планарный режим интра-предсказания и режим интра-предсказания DC, и направленные режимы интра-предсказания могут включать в себя режимы интра-предсказания #2-#34. Планарный режим интра-предсказания может упоминаться как планарный режим, и режим интра-предсказания DC может упоминаться как режим DC. Режим интра-предсказания #10 может указывать горизонтальный режим интра-предсказания или горизонтальный режим, режим интра-предсказания #26 указывает вертикальный режим интра-предсказания или вертикальный режим, на основе которого направление предсказания направленного интра-режима может быть выражено углом. Другими словами, относительный угол, соответствующий каждому режиму интра-предсказания, может быть выражен со ссылкой на горизонтальный опорный угол 0°, соответствующий режиму интра-предсказания #10, и относительный угол, соответствующий каждому режиму интра-предсказания, может быть выражен со ссылкой на вертикальный опорный угол 0°, соответствующий режиму интра-предсказания #26.[91] Here, the intra-prediction modes may include two non-directional intra-prediction modes and 33 directed intra-prediction modes. Non-directional intra-prediction modes may include a planar intra-prediction mode and a DC intra-prediction mode, and directed intra-prediction modes may include intra-prediction modes #2-#34. The planar intra-prediction mode may be referred to as the planar mode, and the DC intra-prediction mode may be referred to as the DC mode. Intra-prediction mode #10 may indicate a horizontal intra-prediction mode or horizontal mode, intra-prediction mode #26 indicates a vertical intra-prediction mode or a vertical mode, based on which the directional intra-mode prediction direction can be expressed by an angle. In other words, the relative angle corresponding to each intra-prediction mode can be expressed with reference to the horizontal reference angle 0° corresponding to intra-prediction mode #10, and the relative angle corresponding to each intra-prediction mode can be expressed with reference to vertical reference angle 0°, corresponding to intra-prediction mode #26.
[92] Дополнительно, требование для видео высокого качества повышается, и чтобы повысить эффективность кодека видео, число направлений направленного интра-предсказания может увеличиваться до 65. То есть, режим интра-предсказания может включать в себя два ненаправленных режима интра-предсказания и 65 направленных режимов интра-предсказания. Ненаправленные режимы интра-предсказания могут включать в себя планарный режим интра-предсказания и режим интра-предсказания DC, и направленные режимы интра-предсказания могут включать в себя режимы интра-предсказания #2-#66.[92] Additionally, the requirement for high quality video is increased, and in order to improve the efficiency of the video codec, the number of directional intra-prediction directions may be increased to 65. That is, the intra-prediction mode may include two omnidirectional intra-prediction modes and 65 directional intra-prediction modes. intra-prediction modes. Non-directional intra-prediction modes may include a planar intra-prediction mode and a DC intra-prediction mode, and directed intra-prediction modes may include intra-prediction modes #2-#66.
[93] Фиг. 8 иллюстрирует интра-направленные режимы 65 направлений предсказания.[93] FIG. 8 illustrates intra-directional modes of 65 direction predictions.
[94] Со ссылкой на фиг. 8, режимы интра-предсказания, имеющие горизонтальную направленность, и режимы интра-предсказания, имеющие вертикальную направленность, могут быть классифицированы на основе режима интра-предсказания #34, имеющего верхнее левое диагональное направление предсказания. H и V на фиг. 8 представляют горизонтальную направленность и вертикальную направленность, соответственно, и числа от -32 до 32 представляют смещения на 1/32 единицы в положениях сетки выборок. Режимы интра-предсказания #2-#33 имеют горизонтальную направленность, и режимы интра-предсказания #34-#66 имеют вертикальную направленность. Режим интра-предсказания #18 и режим интра-предсказания #50 представляют горизонтальный режим интра-предсказания и вертикальный режим интра-предсказания, соответственно, на основе чего направление предсказания углового режима интра-предсказания может быть выражено углом. Другими словами, относительный угол, соответствующий каждому режиму интра-предсказания, может быть выражен на основе горизонтального опорного угла 0°, соответствующего режиму интра-предсказания #18, и относительный угол, соответствующий каждому режиму интра-предсказания, может быть выражен на основе вертикального опорного угла 0°, соответствующего режиму интра-предсказания #50.[94] With reference to FIG. 8, intra-prediction modes having a horizontal direction and intra-prediction modes having a vertical direction can be classified based on the intra-prediction mode #34 having an upper left diagonal prediction direction. H and V in Fig. 8 represents the horizontal directivity and vertical directivity, respectively, and the numbers -32 to 32 represent 1/32 unit offsets at the sample grid positions. Intra-prediction modes #2-#33 are horizontally directed, and intra-prediction modes #34-#66 are vertically directed. The intra-prediction mode #18 and the intra-prediction mode #50 represent the horizontal intra-prediction mode and the vertical intra-prediction mode, respectively, based on which the prediction direction of the angular intra-prediction mode can be expressed by an angle. In other words, the relative angle corresponding to each intra-prediction mode can be expressed based on the horizontal reference angle of 0° corresponding to the intra-prediction mode #18, and the relative angle corresponding to each intra-prediction mode can be expressed based on the vertical reference 0° angle corresponding to intra-prediction mode #50.
[95] В случае, когда направленный режим интра-предсказания применяется к текущему блоку, выборка предсказания целевой выборки может выводиться на основе опорной выборки, расположенной в направлении предсказания направленного режима интра-предсказания относительно целевой выборки, на которой интра-предсказание выполняется в текущем блоке. То есть, опорная выборка, расположенная в направлении предсказания, может копироваться и выводиться в качестве выборки предсказания. Здесь, опорная выборка может представлять соседнюю выборку, расположенную в направлении предсказания направленного режима интра-предсказания относительно целевой выборки среди верхних соседних выборок и левых соседних выборок текущего блока. При этом, когда отсутствует опорная выборка в единицах целых выборок в направлении целевой выборки на основе предсказания направленного режима интра-предсказания, то есть, когда положение опорной выборки, расположенной в направлении предсказания направленного режима интра-предсказания, представляет собой положение дробной выборки на основе целевой выборки, значение выборки опорной выборки может выводиться через интерполяцию между целыми выборками, смежными слева и справа от опорной выборки, и выборка предсказания целевой выборки может выводиться на основе опорной выборки. Например, интерполяция между целыми выборками может выполняться на основе отношения расстояния опорной выборки и целых выборок.[95] In the case where the directed intra-prediction mode is applied to the current block, the prediction sample of the target sample may be output based on a reference sample located in the prediction direction of the directed intra-prediction mode relative to the target sample on which intra-prediction is performed in the current block . That is, a reference sample located in the prediction direction can be copied and output as a prediction sample. Here, the reference sample may represent a neighboring sample located in the directional intra-prediction mode prediction direction relative to the target sample among the upper neighboring samples and the left neighboring samples of the current block. Here, when there is no reference sample in units of integer samples in the direction of the target sample based on the directional intra-prediction mode prediction, that is, when the position of the reference sample located in the direction of the directional intra-prediction mode prediction is the position of a fractional sample based on the target samples, the sample value of the reference sample can be derived through interpolation between integer samples adjacent to the left and right of the reference sample, and the prediction sample of the target sample can be derived based on the reference sample. For example, interpolation between integer samples can be performed based on the distance ratio of the reference sample and the integer samples.
[96] Фиг. 9 представляет собой вид, иллюстрирующий пример, в котором, когда положение опорной выборки, расположенной в направлении предсказания направленного режима интра-предсказания, представляет собой положение дробной выборки, выборка предсказания целевой выборки выводится на основе целых выборок, смежных слева и справа от опорной выборки.[96] FIG. 9 is a view illustrating an example in which, when the position of a reference sample located in the prediction direction of the directed intra-prediction mode is a fractional sample position, the prediction sample of the target sample is derived based on the entire samples adjacent to the left and right of the reference sample.
[97] Со ссылкой на фиг. 9, положение дробной выборки опорной выборки, расположенной в направлении предсказания направленного режима интра-предсказания на основе целевой выборки, может выводиться как tanθ*(y+1). Значение tanθ для каждого угла θ каждого направленного режима интра-предсказания для вычисления положения дробной выборки может масштабироваться заранее в единицах целых и определяться, чтобы облегчить вычисление. Значения tanθ соответственных масштабированных направленных режимов интра-предсказания могут выводиться, как показано в следующей таблице.[97] With reference to FIG. 9, the position of the fractional sample of the reference sample located in the prediction direction of the directed intra-prediction mode based on the target sample can be output as tanθ*(y+1). The tanθ value for each angle θ of each directional intra-prediction mode for computing the fractional sample position may be scaled in advance in units of integers and determined to facilitate the calculation. The tanθ values of the corresponding scaled directional intra-prediction modes can be output as shown in the following table.
[98][98]
[99] Здесь, predModeIntra может представлять каждый направленный режим интра-предсказания, и intraPredAngle может представлять угол предсказания каждого направленного режима интра-предсказания или масштабированное приблизительное значение tanθ каждого направленного режима интра-предсказания. Приблизительное значение tanθ в соответствии с предопределенным режимом интра-предсказания может выводиться на основе Таблицы 1. При этом значение tan-1θ каждого масштабированного направленного режима интра-предсказания может выводиться, как показано в следующей таблице.[99] Here, predModeIntra may represent each directional intra-prediction mode, and intraPredAngle may represent the prediction angle of each directional intra-prediction mode or the scaled approximate value tanθ of each directional intra-prediction mode. The approximate value of tanθ according to the predetermined intra-prediction mode can be output based on Table 1. Meanwhile, the value of tan -1 θ of each scaled directional intra-prediction mode can be output as shown in the following table.
[100][100]
[101] Здесь, predModeIntra может представлять каждый направленный режим интра-предсказания, intraPredAngle может представлять обратный угол предсказания каждого направленного режима интра-предсказания или масштабированное приблизительное значение tan-1θ каждого направленного режима интра-предсказания. Приблизительное значение tan-1θ может выводиться в соответствии с предопределенным режимом интра-предсказания на основе Таблицы 2.[101] Here, predModeIntra may represent each directional intra-prediction mode, intraPredAngle may represent the inverse prediction angle of each directional intra-prediction mode, or the scaled approximation tan -1 θ of each directional intra-prediction mode. The approximate value of tan -1 θ can be derived according to the predefined intra-prediction mode based on Table 2.
[102] При этом, ненаправленный режим интра-предсказания может применяться к текущему блоку. Ненаправленные режимы интра-предсказания могут включать в себя планарный режим интра-предсказания и режим интра-предсказания DC. Планарный режим интра-предсказания может упоминаться как планарный режим, и режим интра-предсказания DC может упоминаться как режим DC. В режиме DC, выборка предсказания текущего блока может выводиться на основе среднего значения соседних выборок текущего блока. Интра-предсказание на основе режима DC может эффективно выполняться, когда значения выборок текущего блока аналогичны. При этом, когда интра-предсказание выполняется на основе режима DC, когда значения выборок текущего блока варьируются, прерывность может возникать между предсказанным блоком текущего блока и соседними выборками. В аналогичном случае, даже когда интра-предсказание выполняется на основе направленного режима интра-предсказания, может возникать ненамеренное видимое оконтуривание. Планарный режим был разработан, чтобы преодолеть эту проблему. Планарный режим указывает режим предсказания, в котором горизонтальное линейное предсказание и вертикальное линейное предсказание выполняются на основе опорных выборок в отношении целевой выборки, и выведенные значения после этого усредняются, чтобы сгенерировать выборку предсказания целевой выборки.[102] In this case, the non-directional intra-prediction mode can be applied to the current block. Non-directional intra-prediction modes may include planar intra-prediction mode and DC intra-prediction mode. The planar intra-prediction mode may be referred to as the planar mode, and the DC intra-prediction mode may be referred to as the DC mode. In DC mode, the prediction sample of the current block can be derived based on the average of the neighboring samples of the current block. Intra-prediction based on DC mode can be efficiently performed when the sample values of the current block are similar. However, when intra prediction is performed based on the DC mode, when the sample values of the current block vary, discontinuity may occur between the predicted block of the current block and neighboring samples. In a similar case, even when intra-prediction is performed based on the directed intra-prediction mode, unintentional visible delineation may occur. Planar mode was developed to overcome this problem. The planar mode indicates a prediction mode in which horizontal linear prediction and vertical linear prediction are performed based on reference samples with respect to the target sample, and the output values are then averaged to generate a prediction sample of the target sample.
[103] Когда предсказание выполняется на текущем блоке на основе направленного режима интра-предсказания, если опорная выборка в единицах целых выборок не присутствует в направлении предсказания направленного режима интра-предсказания текущего блока относительно целевой выборки текущего блока, как описано выше, то есть, когда положение опорной выборки, расположенной в направлении предсказания направленного режима интра-предсказания относительно целевой выборки, представляет собой положение дробной выборки, значение выборки опорной выборки может выводиться через интерполяцию левой и правой целых выборок опорной выборки, и выборка предсказания целевой выборки может выводиться на основе выведенной опорной выборки. Целые выборки могут указывать соседние выборки положения целой выборки, расположенного около опорной выборки.[103] When prediction is performed on the current block based on the directional intra-prediction mode, if a reference sample in units of integer samples is not present in the directional intra-prediction mode prediction direction of the current block relative to the target sample of the current block as described above, that is, when the position of the reference sample located in the prediction direction of the directional intra-prediction mode relative to the target sample is the position of the fractional sample, the sample value of the reference sample can be output by interpolating the left and right integer samples of the reference sample, and the prediction sample of the target sample can be output based on the derived reference samples. Whole samples may indicate neighboring samples of the position of the whole sample located near the reference sample.
[104] В этом случае, интерполяция между целыми выборками слева и справа от опорной выборки может быть получена на основе одного из различных интерполяционных фильтров. Например, интерполяция может выполняться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот, или интерполяция может выполняться на основе сложного интерполяционного фильтра. Интерполяционный фильтр, имеющий эффект фильтра нижних частот, может представлять линейный фильтр или гауссов фильтр, а сложный интерполяционный фильтр может представлять сплайн-фильтр. Сплайн-фильтр может также называться кубическим фильтром. Интерполяционные фильтры могут представлять собой 4-отводные интерполяционные фильтры. 4-отводный интерполяционный фильтр может представлять фильтр, на котором интерполяция выполняется для четырех целых выборок на основе четырех весов. Интерполяция между целыми выборками, выполняемая на основе интерполяционного фильтра, может быть выражена посредством следующего уравнения.[104] In this case, interpolation between the integer samples to the left and right of the reference sample can be obtained based on one of various interpolation filters. For example, the interpolation may be performed based on an interpolation filter having a low-pass filter effect, or the interpolation may be performed based on a complex interpolation filter. An interpolation filter having a low-pass filter effect may be a linear filter or a Gaussian filter, and a complex interpolation filter may be a spline filter. A spline filter may also be called a cubic filter. The interpolation filters can be 4-tap interpolation filters. A 4-tap interpolation filter may represent a filter on which interpolation is performed on four integer samples based on four weights. Interpolation between integer samples performed based on the interpolation filter can be expressed by the following equation.
[105] [Уравнение 1][105] [Equation 1]
[106] Здесь, p[x][y] может обозначать выборку предсказания целевой выборки, f[0], f[1], f[2] и f[3] могут обозначать коэффициенты фильтрации интерполяционного фильтра, ref[n] может обозначать n-ую соседнюю выборку, и iIdx может обозначать целый индекс положения дробной выборки, расположенной в направлении предсказания режима интра-предсказания текущего блока относительно целевой выборки. Целый индекс положения дробной выборки может представлять целое значение, исключающее остаток положения дробной выборки.[106] Here, p[x][y] may denote the prediction sample of the target sample, f[0], f[1], f[2] and f[3] may denote the filter coefficients of the interpolation filter, ref[n] may denote the nth neighboring sample, and iIdx may denote an integer position index of a fractional sample located in the prediction direction of the intra-prediction mode of the current block relative to the target sample. The integer fractional sample position index may represent an integer value excluding the remainder of the fractional sample position.
[107] При этом, коэффициент фильтрации кубического фильтра, который представляет собой один из фильтров нижних частот, и коэффициент фильтрации гауссова фильтра, который представляет собой один из интерполяционных фильтров, имеющих эффект фильтра нижних частот, могут выводиться, как показано в следующей таблице.[107] Here, the filter coefficient of a cubic filter, which is one of the low-pass filters, and the filter coefficient of the Gaussian filter, which is one of the interpolation filters having a low-pass filter effect, can be output as shown in the following table.
[108][108]
[109] Здесь, суб-пел (суб-пиксельное) положение n/32 может представлять значение остатка положения дробной выборки, расположенной в направлении предсказания режима интра-предсказания текущего блока относительно целевой выборки. На основе положения дробной выборки целевой выборки и вышеприведенной Таблицы 3, могут выводиться коэффициенты фильтрации кубического фильтра или коэффициенты фильтрации гауссова фильтра.[109] Here, the sub-pel (sub-pixel) position n/32 may represent a residual value of a position of a fractional sample located in the intra-prediction mode prediction direction of the current block relative to the target sample. Based on the position of the fractional sample of the target sample and the above Table 3, the filter coefficients of the cubic filter or the filter coefficients of the Gaussian filter can be derived.
[110] Когда предсказание выполняется на текущем блоке на основе направленного режима интра-предсказания, как описано выше, расстояние между целевой выборкой текущего блока и опорной выборкой может увеличиваться в соответствии с углом предсказания направленного режима интра-предсказания, и с увеличением расстояния точность предсказания может ухудшаться. Может быть предложен способ выбора подходящего интерполяционного фильтра в соответствии с расстоянием между целевой выборкой и опорной выборкой и выполнения предсказания на основе опорной выборки, выведенной путем применения выбранного интерполяционного фильтра, чтобы улучшить точность предсказания. Способ выбора подходящего интерполяционного фильтра в соответствии с расстоянием между целевой выборкой и опорной выборкой может быть следующим.[110] When prediction is performed on the current block based on the directional intra-prediction mode as described above, the distance between the target sample of the current block and the reference sample may increase according to the prediction angle of the directional intra-prediction mode, and as the distance increases, the prediction accuracy can deteriorate. A method for selecting a suitable interpolation filter according to the distance between a target sample and a reference sample and performing prediction based on the reference sample derived by applying the selected interpolation filter may be proposed to improve the prediction accuracy. A method for selecting a suitable interpolation filter according to the distance between the target sample and the reference sample may be as follows.
[111] Например, интерполяционный фильтр может выбираться на основе размера текущего блока или режима интра-предсказания текущего блока. Как описано выше, расстояние между целевой выборкой текущего блока и опорной выборкой может выводиться в соответствии с наклоном угла предсказания режима интра-предсказания для текущего блока. Поскольку опорная выборка текущего блока выводится на основе левых соседних выборок и верхних соседних выборок текущего блока, расстояние между целевой выборкой и опорной выборкой может увеличиваться по мере того, как положение целевой выборки становится ближе к нижнему правому концу текущего блока. Также, по мере увеличения значения intraPredAngle направленного режима интра-предсказания, определенного в Таблице 1, наклон угла предсказания может быть близок к 45°. Так как наклон угла предсказания близок к 45°, расстояние между целевой выборкой и опорной выборкой может увеличиваться, и соответственно, по мере увеличения значения intraPredAngle, расстояние между целевой выборкой и опорной выборкой может увеличиваться.[111] For example, the interpolation filter may be selected based on the size of the current block or the intra-prediction mode of the current block. As described above, the distance between the target sample of the current block and the reference sample may be output in accordance with the prediction angle slope of the intra-prediction mode for the current block. Since the reference sample of the current block is inferred based on the left neighboring samples and the top neighboring samples of the current block, the distance between the target sample and the reference sample may increase as the position of the target sample becomes closer to the lower right end of the current block. Also, as the value of intraPredAngle of the directional intra-prediction mode defined in Table 1 increases, the slope of the prediction angle can be close to 45°. Since the slope of the prediction angle is close to 45°, the distance between the target sample and the reference sample may increase, and accordingly, as the value of intraPredAngle increases, the distance between the target sample and the reference sample may increase.
[112] Кроме того, расстояние между целевой выборкой и опорной выборкой может выводиться на основе размера текущего блока. То есть, по мере увеличения размера текущего блока, расстояние между целевой выборкой и опорной выборкой может увеличиваться. Поэтому, размер текущего блока рассматривается как тесно связанный с точностью предсказания целевой выборки.[112] In addition, the distance between the target sample and the reference sample may be inferred based on the size of the current block. That is, as the size of the current block increases, the distance between the target sample and the reference sample may increase. Therefore, the size of the current block is considered to be closely related to the prediction accuracy of the target sample.
[113] Если значение intraPredAngle больше, чем 0, и меньше, чем 32, как описано выше, целевая выборка может быть предсказана на основе опорной выборки положения дробной выборки, как показано на фиг. 9. В этом случае, поскольку представлено только целое значение выборки вблизи положения дробной выборки, устройство кодирования может предсказывать местоположение дробной выборки опорной выборки на основе интерполяционного фильтра, и значение опорной выборки предсказанного положения дробной выборки может копироваться как значение выборки для выборки предсказания целевой выборки. Таким образом, точность предсказанного блока текущего блока может определяться в соответствии с точностью интерполяционного фильтра.[113] If the intraPredAngle value is greater than 0 and less than 32 as described above, the target sample can be predicted based on the reference sample of the position of the fractional sample, as shown in FIG. 9. In this case, since only the integer sample value near the fractional sample position is represented, the encoding device can predict the fractional sample location of the reference sample based on the interpolation filter, and the reference sample value of the predicted position of the fractional sample can be copied as the sample value for the prediction sample of the target sample. Thus, the accuracy of the predicted block of the current block can be determined in accordance with the accuracy of the interpolation filter.
[114] Когда интра-предсказание применяется к текущему блоку, информация, которая может использоваться для интра-предсказания, может быть ограничена левыми соседними выборками и верхними соседними выборками текущего блока, которые уже были реконструированы во время декодирования текущего блока, и по мере увеличения расстояния между целевой выборкой текущего блока и опорной выборкой, корреляция между целевой выборкой и опорными выборками, выведенными на основе левых соседних выборок и верхних соседних выборок, может значительно уменьшаться.[114] When intra-prediction is applied to the current block, the information that can be used for intra-prediction can be limited to the left neighboring samples and the top neighboring samples of the current block that have already been reconstructed during decoding of the current block, and as the distance increases between the target sample of the current block and the reference sample, the correlation between the target sample and the reference samples derived from the left neighbor samples and the top neighbor samples may be significantly reduced.
[115] Соответственно, когда расстояние между целевой выборкой и опорной выборкой слишком велико, может использоваться способ вывода опорной выборки на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот, так что артефакты или шум опорной выборки не распространяются, чтобы повысить точность предсказания и эффективность кодирования. Напротив, когда расстояние между целевой выборкой и опорной выборкой близко друг к другу, корреляция между целевой выборкой и опорной выборкой высока, и таким образом, может преимущественно использоваться способ вывода опорной выборки на основе точной интерполяции, так что сходство между выборкой предсказания целевой выборки и опорной выборкой поддерживается в наибольшей возможной степени. То есть, когда расстояние между целевой выборкой и опорной выборкой близко друг к другу, способ вывода опорной выборки на основе сложного интерполяционного фильтра может повысить точность предсказания и эффективность кодирования.[115] Accordingly, when the distance between the target sample and the reference sample is too large, a reference sample output method based on an interpolation filter having a low-pass filter effect so that artifacts or noise of the reference sample is not propagated, so as to improve prediction accuracy and coding efficiency . On the contrary, when the distance between the target sample and the reference sample is close to each other, the correlation between the target sample and the reference sample is high, and thus, the reference sample inference method based on precise interpolation can be advantageously used, so that the similarity between the prediction sample of the target sample and the reference sample sample is supported to the greatest extent possible. That is, when the distance between the target sample and the reference sample is close to each other, the reference sample inference method based on complex interpolation filter can improve the prediction accuracy and coding efficiency.
[116] Поэтому, текущий блок может выбираться на основе только размера текущего блока для вывода опорной выборки для целевой выборки текущего блока, может выбираться на основе только режима интра-предсказания текущего блока или выбираться на основе режима интра-предсказания текущего блока.[116] Therefore, the current block may be selected based only on the size of the current block to output a reference sample for the target sample of the current block, may be selected based on only the intra-prediction mode of the current block, or selected based on the intra-prediction mode of the current block.
[117] Например, когда размер текущего блока представляет собой размер 4×4 и интра-предсказание выполняется на текущем блоке, корреляция текущего блока, имеющего размер 4×4, с соседними выборками текущего блока может быть очень высока, и таким образом, опорная выборка может выводиться на основе сложного интерполяционного фильтра независимо от режима интра-предсказания. Альтернативно, если значение intraPredAngle, выведенное из режима интра-предсказания текущего блока, представляет собой 11 или более независимо от размера текущего блока, расстояние между целевой выборкой и опорной выборкой может увеличиваться, и таким образом, опорная выборка может выводиться на основе интерполяционного фильтра, имеющего эффект интерполяционного фильтра. Альтернативно, когда размер текущего блока меньше, чем конкретный размер, и значение intraPredAngle режима интра-предсказания текущего блока меньше, чем конкретное значение, опорная выборка целевой выборки может выводиться на основе сложного интерполяционного фильтра, а в других случаях, опорная выборка целевой выборки может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот.[117] For example, when the size of the current block is a size of 4×4 and intra-prediction is performed on the current block, the correlation of the current block having a size of 4×4 with the neighboring samples of the current block may be very high, and thus the reference sample can be inferred based on a complex interpolation filter regardless of the intra-prediction mode. Alternatively, if the intraPredAngle value derived from the intra-prediction mode of the current block is 11 or more regardless of the size of the current block, the distance between the target sample and the reference sample may increase, and thus the reference sample may be output based on an interpolation filter having interpolation filter effect. Alternatively, when the size of the current block is smaller than the specific size, and the intraPredAngle value of the intra-prediction mode of the current block is smaller than the specific value, a reference sample of the target sample may be output based on a complex interpolation filter, and in other cases, a reference sample of the target sample may be output based on an interpolation filter having a low-pass filter effect.
[118] Кроме того, когда режим, такой как наиболее вероятный режим (MPM), применяется к текущему блоку, чтобы вывести режим интра-предсказания текущего блока на основе режима интра-предсказания соседнего блока текущего блока, и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, не планарный режим или режим DC, интерполяционный фильтр, используемый в соседнем блоке, выбранном через режим MPM, может выводиться как интерполяционный фильтр текущего блока. Здесь, в случае, когда режим MPM применяется к текущему блоку, устройство кодирования может определять список MPM на основе режима интра-предсказания в отношении левого или верхнего соседних блоков текущего блока и определять режим интра-предсказания на основе списка MPM.[118] In addition, when a mode such as the most likely mode (MPM) is applied to the current block to infer the intra-prediction mode of the current block based on the intra-prediction mode of a neighboring block of the current block, and the intra-prediction mode of the current block represents is a directional intra-prediction mode, not a planar mode or a DC mode, the interpolation filter used in an adjacent block selected through the MPM mode can be output as the interpolation filter of the current block. Here, in the case where the MPM mode is applied to the current block, the encoding device may determine the MPM list based on the intra-prediction mode regarding the left or upper neighboring blocks of the current block, and determine the intra-prediction mode based on the MPM list.
[119] Кроме того, когда интерполяционный фильтр выбирается на основе режима интра-предсказания текущего блока, опора режима интра-предсказания, то есть, опора для определения, используется ли интерполяционный фильтр, имеющий эффект фильтра нижних частот, или используется ли сложный интерполяционный фильтр, может изменяться в соответствии с размерами или формами текущего блока.[119] In addition, when the interpolation filter is selected based on the intra-prediction mode of the current block, the intra-prediction mode reference, that is, the reference for determining whether an interpolation filter having a low-pass filter effect is used or whether a complex interpolation filter is used, can change according to the size or shape of the current block.
[120] В случае, когда текущий блок представляет собой квадратный блок, ширина и высота блока равны, то есть, размер текущего блока представляет собой N×N, и таким образом, размер опорного блока при выборе интерполяционного фильтра может представлять собой N для направленного режима интра-предсказания любого направления. При этом, в случае, когда текущий блок имеет неквадратную форму, т.е., в случае, когда размер текущего блока представляет собой M×N, если режим, выбранный в качестве режима предсказания текущего блока, представляет собой направленный режим интра-предсказания, и этот режим представляет собой вертикальный направленный режим предсказания, размер опорного блока для выбора интерполяционного фильтра может быть представлен посредством M. Здесь, вертикальный направленный режим предсказания может указывать режимы интра-предсказания #34-#66, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания. Аналогично, когда размер текущего блока представляет собой M×N, режим, выбранный в качестве режима предсказания текущего блока, представляет собой направленный режим, и этот режим представляет собой горизонтальный направленный режим предсказания, размер текущего блока, служащего опорным для выбора интерполяционного фильтра, может представлять собой N. Здесь, горизонтальный направленный режим предсказания может представлять режимы интра-предсказания #2-#33, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания.[120] In the case where the current block is a square block, the width and height of the block are equal, that is, the size of the current block is N×N, and thus the size of the reference block when selecting the interpolation filter may be N for the directional mode intra-predictions of any direction. Here, in the case where the current block has a non-square shape, that is, in the case where the size of the current block is M×N, if the mode selected as the prediction mode of the current block is the directed intra-prediction mode, and this mode is a vertical directional prediction mode, the size of the reference block for selecting the interpolation filter may be represented by M. Here, the vertical directional prediction mode may indicate intra-prediction modes #34 to #66, when the intra-prediction mode includes 65 directional intra-prediction modes and two non-directional intra-prediction modes. Similarly, when the size of the current block is M×N, the mode selected as the prediction mode of the current block is a directional mode, and the mode is a horizontal directional prediction mode, the size of the current block serving as a reference for selecting the interpolation filter may represent is N. Here, the horizontal directional prediction mode may represent intra-prediction modes #2 to #33, where the intra-prediction mode includes 65 directional intra-prediction modes and two non-directional intra-prediction modes.
[121] Альтернативно, если текущий блок представляет собой неквадратный блок, имеющий размер M×N, и режим предсказания текущего блока представляет собой вертикальный направленный режим предсказания, интерполяционный фильтр текущего блока может выбираться на основе N, и аналогично, если текущий блок представляет собой неквадратный блок, имеющий размер M×N, и режим предсказания текущего блока представляет собой горизонтальный направленный режим предсказания, интерполяционный фильтр текущего блока может выбираться на основе M. Однако, в конкретном примере, который будет описан ниже, когда вертикальный направленный режим предсказания применяется к текущему блоку, имеющему размер M×N, размер текущего блока, служащего опорным для выбора интерполяционного фильтра, может быть представлен посредством M. Аналогично, когда горизонтальный направленный режим предсказания применяется к текущему блоку, имеющему размер M×N, размер текущего блока, служащего в качестве опоры для выбора интерполяционного фильтра, может быть представлен посредством N. Конкретно, например, если значение размера блока меньше или равно 8, сложный интерполяционный фильтр может выбираться, и опорная выборка блока может выводиться на основе сложного интерполяционного фильтра, и в этом случае, если размер текущего блока равен 8×4 и режим интра-предсказания текущего блока представляет собой один из режимов интра-предсказания, имеющих вертикальную направленность, сложный интерполяционный фильтр может выбираться в качестве интерполяционного фильтра для текущего блока, и опорная выборка текущего блока может выводиться на основе сложного интерполяционного фильтра.[121] Alternatively, if the current block is a non-square block having size M×N, and the prediction mode of the current block is a vertical directional prediction mode, the interpolation filter of the current block can be selected based on N, and similarly if the current block is a non-square block having a size of M×N, and the prediction mode of the current block is a horizontal directional prediction mode, the interpolation filter of the current block can be selected based on M. However, in the specific example that will be described below, when the vertical directional prediction mode is applied to the current block having size M×N, the size of the current block serving as a reference for selecting the interpolation filter can be represented by M. Similarly, when the horizontal directional prediction mode is applied to the current block having size M×N, the size of the current block serving as the reference to select an interpolation filter, may be represented by N. Specifically, for example, if the block size value is less than or equal to 8, a complex interpolation filter may be selected, and a block reference sample may be output based on the complex interpolation filter, and in this case, if the size of the current block is 8×4 and the intra-prediction mode of the current block is one of the intra-prediction modes having a vertical direction, a complex interpolation filter can be selected as an interpolation filter for the current block, and a reference sample of the current block can be output based on the complex interpolation filter .
[122] Также, если значение intraPredAngle режима интра-предсказания текущего блока меньше или равно 11, выбирается сложный интерполяционный фильтр, и опорная выборка может выводиться на основе сложного интерполяционного фильтра. Если значение intraPredAngle режима интра-предсказания текущего блока больше, чем 11, выбирается интерполяционный фильтр, имеющий эффект фильтра нижних частот, и опорная выборка может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот.[122] Also, if the value intraPredAngle of the intra prediction mode of the current block is less than or equal to 11, a complex interpolation filter is selected, and a reference sample can be output based on the complex interpolation filter. If the intraPredAngle value of the intra prediction mode of the current block is greater than 11, an interpolation filter having a low-pass filter effect is selected, and a reference sample can be output based on the interpolation filter having a low-pass filter effect.
[123] В случае, когда значение размера текущего блока равно или больше, чем 16, если значение intraPredAngle режима интра-предсказания текущего блока меньше или равно 5, выбирается сложный интерполяционный фильтр, и опорная выборка может выводиться на основе сложного интерполяционного фильтра. Если значение intraPredAngle значения интра-предсказания текущего блока больше, чем 5, выбирается интерполяционный фильтр, имеющий эффект фильтра нижних частот, и опорная выборка может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот.[123] In the case where the size value of the current block is equal to or greater than 16, if the intraPredAngle value of the intra-prediction mode of the current block is less than or equal to 5, a complex interpolation filter is selected, and a reference sample can be output based on the complex interpolation filter. If the value intraPredAngle of the intra prediction value of the current block is greater than 5, an interpolation filter having a low-pass filter effect is selected, and a reference sample can be output based on the interpolation filter having a low-pass filter effect.
[124] Фиг. 10 иллюстрирует пример выбора интерполяционного фильтра на основе размера текущего блока и режима интра-предсказания. Устройство кодирования/устройство декодирования может выводить режим интра-предсказания для текущего блока и может определять, является ли режим интра-предсказания направленным режимом интра-предсказания (S1000). Направленный режим интра-предсказания может упоминаться как угловое предсказание. Если режим интра-предсказания является ненаправленным режимом интра-предсказания, устройство кодирования/декодирования может выполнять интра-предсказание текущего блока на основе режима интра-предсказания.[124] FIG. 10 illustrates an example of selecting an interpolation filter based on the current block size and intra-prediction mode. The encoding device/decoding device can output an intra-prediction mode for the current block and can determine whether the intra-prediction mode is a directed intra-prediction mode (S1000). The directional intra-prediction mode may be referred to as angular prediction. If the intra-prediction mode is a non-directional intra-prediction mode, the encoding/decoding device may perform intra-prediction of the current block based on the intra-prediction mode.
[125] Когда режим интра-предсказания представляет собой направленный режим интра-предсказания, устройство кодирования/устройство декодирования может определять, является ли размер текущего блока меньшим, чем первый порог (S1010). Когда текущий блок представляет собой неквадратный блок, имеющий размер M×N, и режим, выбранный в качестве режима интра-предсказания текущего блока, включает в себя режим интра-предсказания, имеющий вертикальную направленность, то есть, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания, если режим интра-предсказания текущего блока представляет собой один из режимов интра-предсказания #34-#66, опора для выбора интерполяционного фильтра может быть представлена шириной текущего блока, т.е., M. Аналогично, в случае, когда текущий блок представляет собой неквадратный блок, имеющий размер M×N, и режим, выбранный в качестве режима интра-предсказания текущего блока, представляет собой режим интра-предсказания, имеющий горизонтальную направленность, то есть, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания, если режим интра-предсказания текущего блока представляет собой один из режимов интра-предсказания #2-#33, опора для выбора интерполяционного фильтра может быть представлена высотой текущего блока, т.е., N. Альтернативно, когда рассматривается только блок, имеющий квадратную форму, и размер текущего блока равен N×N, значение размера текущего блока может быть представлено посредством N. Первый порог может быть установлен в 4, 8, 16, 32 или тому подобное.[125] When the intra-prediction mode is a directed intra-prediction mode, the encoding device/decoding device can determine whether the size of the current block is smaller than the first threshold (S1010). When the current block is a non-square block having a size of M×N, and the mode selected as the intra-prediction mode of the current block includes an intra-prediction mode having a vertical direction, that is, when the intra-prediction mode includes 65 directed intra-prediction modes and two non-directional intra-prediction modes, if the intra-prediction mode of the current block is one of the intra-prediction modes #34-#66, the support for selecting the interpolation filter can be represented by the width of the current block, i.e. ., M. Similarly, in the case where the current block is a non-square block having size M×N, and the mode selected as the intra-prediction mode of the current block is an intra-prediction mode having a horizontal orientation, that is, When the intra-prediction mode includes 65 directed intra-prediction modes and two non-directional intra-prediction modes, if the intra-prediction mode of the current block is one of the intra-prediction modes #2-#33, the reference for selecting the interpolation filter can be is represented by the height of the current block, i.e., N. Alternatively, when only a block having a square shape is considered, and the size of the current block is N×N, the size value of the current block can be represented by N. The first threshold can be set to 4. 8, 16, 32 or the like.
[126] Если размер текущего блока не меньше, чем значение первого порога, то есть, если размер текущего блока больше или равен значению первого порога, устройство кодирования/устройство декодирования может выбирать гауссов фильтр в качестве интерполяционного фильтра текущего блока и выводить опорную выборку целевой выборки в текущем блоке на основе гауссова фильтра (S1020). Здесь, гауссов фильтр представляет собой один из интерполяционных фильтров, имеющих эффект фильтра нижних частот, и опорная выборка целевой выборки может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот, отличного от гауссова фильтра. Например, если размер текущего блока больше или равен первому порогу, устройство кодирования/устройство декодирования может выбирать интерполяционный фильтр текущего блока как линейный фильтр и выводить опорную выборку целевой выборки в текущем блоке на основе линейного фильтра. Здесь, опорная выборка может указывать соседнюю выборку, расположенную в направлении предсказания направленного режима интра-предсказания текущего блока на основе целевой выборки.[126] If the size of the current block is not less than the value of the first threshold, that is, if the size of the current block is greater than or equal to the value of the first threshold, the encoding device/decoding device may select a Gaussian filter as the interpolation filter of the current block and output a reference sample of the target sample in the current block based on a Gaussian filter (S1020). Here, the Gaussian filter is one of the interpolation filters having a low-pass filter effect, and a reference sample of the target sample may be output based on the interpolation filter having a low-pass filter effect other than the Gaussian filter. For example, if the size of the current block is greater than or equal to the first threshold, the encoding device/decoding device may select the interpolation filter of the current block as a linear filter and output a reference sample of the target sample in the current block based on the linear filter. Here, the reference sample may indicate a neighboring sample located in the directional intra-prediction mode prediction direction of the current block based on the target sample.
[127] Если размер текущего блока не меньше, чем значение первого порога, может определяться, является ли intraPredAngle направленного режима интра-предсказания текущего блока меньшим, чем значение второго порога (S1030). intraPredAngle может указывать угол предсказания направленного режима интра-предсказания. Например, второй порог может быть установлен в 11.[127] If the size of the current block is not smaller than the value of the first threshold, it can be determined whether the intraPredAngle of the directed intra-prediction mode of the current block is smaller than the value of the second threshold (S1030). intraPredAngle may indicate the prediction angle of the directional intra-prediction mode. For example, the second threshold could be set to 11.
[128] Если intraPredAngle направленного режима интра-предсказания текущего блока не меньше, чем значение второго порога, устройство кодирования/устройство декодирования может выбирать гауссов фильтр в качестве интерполяционного фильтра текущего блока и выводить опорную выборку целевой выборки в текущем блоке на основе гауссова фильтра (S1020). Здесь, гауссов фильтр представляет собой один из интерполяционных фильтров, имеющих эффект фильтра нижних частот, как описано выше, и опорная выборка целевой выборки может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот, отличного от гауссова фильтра.[128] If the intraPredAngle of the intra-prediction directional mode of the current block is not less than the value of the second threshold, the encoding device/decoding device may select a Gaussian filter as an interpolation filter of the current block and output a reference sample of the target sample in the current block based on the Gaussian filter (S1020 ). Here, the Gaussian filter is one of the interpolation filters having a low-pass filter effect as described above, and a reference sample of the target sample may be output based on the interpolation filter having a low-pass filter effect other than the Gaussian filter.
[129] Если intraPredAngle направленного режима интра-предсказания текущего блока меньше, чем значение второго порога, устройство кодирования/устройство декодирования может выбирать кубический фильтр в качестве интерполяционного фильтра текущего блока и выводить опорную выборку целевой выборки в текущем блоке на основе кубического фильтра (S1040). Здесь, кубический фильтр может представлять собой один из сложных интерполяционных фильтров, как описано выше, и опорная выборка целевой выборки может выводиться на основе сложного интерполяционного фильтра, отличного от кубического фильтра. Дополнительно, кубический фильтр может называться сплайн-фильтром.[129] If the intraPredAngle of the directional intra prediction mode of the current block is less than the second threshold value, the encoding device/decoding device may select the cube filter as the interpolation filter of the current block and output a reference sample of the target sample in the current block based on the cube filter (S1040) . Here, the cubic filter may be one of the complex interpolation filters as described above, and the reference sample of the target sample may be derived based on the complex interpolation filter other than the cubic filter. Additionally, a cubic filter may be called a spline filter.
[130] Устройство кодирования/устройство декодирования может генерировать выборку предсказания целевой выборки на основе выведенной опорной выборки целевой выборки (S1050). Устройство кодирования/устройство декодирования может генерировать выборку предсказания путем копирования опорной выборки. Опорная выборка может копироваться и использоваться в качестве выборки предсказания, и таким образом, может быть указано, что выборка предсказания сгенерирована на основе интерполяционного фильтра.[130] The encoding device/decoding device may generate a target sample prediction sample based on the derived reference sample of the target sample (S1050). The encoder/decoder may generate the prediction sample by copying the reference sample. The reference sample can be copied and used as a prediction sample, and thus, the prediction sample can be indicated to be generated based on the interpolation filter.
[131] При этом, в дополнение к вышеупомянутым примерам, способ разделения текущего блока на произвольные области и выбора интерполяционного фильтра для каждой области может быть предложен в качестве способа выбора интерполяционного фильтра.[131] Here, in addition to the above examples, a method for dividing a current block into arbitrary regions and selecting an interpolation filter for each region may be proposed as a method for selecting an interpolation filter.
[132] Например, если размер текущего блока больше или равен конкретному размеру, текущий блок может разделяться на множество областей, и интерполяционный фильтр каждой области может выбираться с учетом расстояния между каждой областью и соседними выборками текущего блока. Размер разделенных областей текущего блока может представлять собой фиксированное значение, определенное ранее (т.е., установленное ранее) между устройством кодирования и устройством декодирования, или может выводиться на основе размера текущего блока, режима интра-предсказания и тому подобного. Например, в случае, когда режим интра-предсказания текущего блока представляет собой режим интра-предсказания, имеющий вертикальную направленность, и номер режима для режима интра-предсказания больше, чем #34, размер разделенных областей текущего блока может выводиться как 4×4. Другими словами, в случае, когда режим интра-предсказания текущего блока представляет собой один из режимов интра-предсказания #35-#66, размер разделенных областей текущего блока может выводиться как 4×4. В случае, когда текущий блок представляет собой блок, имеющий размер 16×16, текущий блок может разделяться на области, имеющие размер 4×4, вышеописанный сложный интерполяционный фильтр может выбираться в качестве интерполяционного фильтра для областей от #0 по #7 в порядке растрового сканирования, и интерполяционный фильтр, имеющий эффект фильтра нижних частот, может выбираться в качестве интерполяционных фильтров для других областей. Здесь, номера 16 областей, имеющих размер 4×4 в соответствии с порядком растрового сканирования, могут последовательно выводиться в порядке от верхней строки к нижней строке и последовательно выводиться в порядке слева направо в каждой строке. То есть, области, включенные в первую строку среди 16 областей, имеющих размер 4×4 текущего блока, могут быть представлены как область #0, область #1, область #2 и область #3 в порядке слева направо, области, включенные во вторую строку, могут быть представлены как область #4, область #5, область #6 и область #7 в порядке слева направо, области, включенные в третью строку, могут быть представлены как область #8, область #9, область #10 и область #11 в порядке слева направо, и области, включенные в четвертую строку, могут быть представлены как область #12, область #13, область #14 и область #15 в порядке слева направо. При этом могут сигнализироваться размеры разделенных областей текущего блока и информация, указывающая интерполяционный фильтр для каждой из областей. В этом случае, устройство декодирования может разделять текущий блок на множество областей на основе информации и выбирать интерполяционный фильтр каждой области.[132] For example, if the size of the current block is greater than or equal to a particular size, the current block may be divided into multiple regions, and the interpolation filter of each region may be selected based on the distance between each region and adjacent samples of the current block. The size of the divided areas of the current block may be a fixed value previously determined (ie, set previously) between the encoding device and the decoding device, or may be derived based on the size of the current block, the intra-prediction mode and the like. For example, in the case where the intra prediction mode of the current block is an intra prediction mode having a vertical direction, and the mode number for the intra prediction mode is greater than #34, the size of the divided areas of the current block may be output as 4×4. In other words, in the case where the intra prediction mode of the current block is one of the intra prediction modes #35 to #66, the size of the divided areas of the current block may be output as 4x4. In the case where the current block is a block having a size of 16x16, the current block can be divided into regions having a size of 4x4, the above-described complex interpolation filter can be selected as the interpolation filter for regions #0 to #7 in raster order scanning, and an interpolation filter having a low-pass filter effect can be selected as interpolation filters for other areas. Here, the 16 area numbers having a size of 4x4 according to the raster scanning order may be sequentially output in order from the top line to the bottom line, and sequentially output in the order from left to right in each line. That is, the areas included in the first row among the 16 areas having a size of 4x4 of the current block can be represented as area #0, area #1, area #2 and area #3 in order from left to right, areas included in the second line can be represented as area #4, area #5, area #6 and area #7 in order from left to right, areas included in the third line can be represented as area #8, area #9, area #10 and area #11 is in order from left to right, and the areas included in the fourth row can be represented as area #12, area #13, area #14 and area #15 in order from left to right. This may signal the sizes of the divided regions of the current block and information indicating the interpolation filter for each of the regions. In this case, the decoding apparatus may divide the current block into a plurality of regions based on the information and select an interpolation filter of each region.
[133] Альтернативно, интерполяционный фильтр может выбираться на основе расстояния между целевой выборкой текущего блока и опорной выборкой. То есть, интерполяционный фильтр может выбираться на основе того, является ли расстояние между целевой выборкой и опорной выборкой большим или равным конкретному значению порога. Здесь, опорная выборка может указывать соседнюю выборку, расположенную в направлении предсказания режима интра-предсказания текущего блока, на основе целевой выборки.[133] Alternatively, the interpolation filter may be selected based on the distance between the target sample of the current block and the reference sample. That is, the interpolation filter may be selected based on whether the distance between the target sample and the reference sample is greater than or equal to a particular threshold value. Here, the reference sample may indicate a neighboring sample located in the intra-prediction mode prediction direction of the current block based on the target sample.
[134] Например, в случае, когда размер текущего блока равен N×N, если расстояние между целевой выборкой текущего блока и опорной выборкой составляет N/2 или более, опорная выборка может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот, и опорная выборка может выводиться на основе сложного интерполяционного фильтра в других случаях. Конкретное значение порога для выбора интерполяционного фильтра может выводиться на основе размера текущего блока, как описано выше, или может выводиться на основе режима интра-предсказания текущего блока, в зависимости от того, является ли текущий блок квадратным блоком/неквадратным блоком, или тому подобного. Альтернативно, информация о конкретном значении порога может передаваться от устройства кодирования, и устройство декодирования может выводить конкретное значение порога текущего блока на основе информации о принятом конкретном значении порога.[134] For example, in the case where the size of the current block is N×N, if the distance between the target sample of the current block and the reference sample is N/2 or more, the reference sample may be output based on an interpolation filter having a low-pass filter effect, and the reference sample may be derived from a complex interpolation filter in other cases. The specific threshold value for selecting the interpolation filter may be output based on the size of the current block, as described above, or may be output based on the intra-prediction mode of the current block, depending on whether the current block is a square block/non-square block, or the like. Alternatively, information about the specific threshold value may be transmitted from the encoding device, and the decoding device may output the specific threshold value of the current block based on the information about the received specific threshold value.
[135] Фиг. 11 иллюстрирует пример выбора интерполяционного фильтра на основе расстояния между целевой выборкой текущего блока и опорной выборкой. Устройство кодирования/устройство декодирования может выводить режим интра-предсказания для текущего блока и определять, является ли режим интра-предсказания направленным режимом интра-предсказания (S1100). Направленный режим интра-предсказания может называться угловым предсказанием. Если режим интра-предсказания является ненаправленным режимом интра-предсказания, устройство кодирования/декодирования может выполнять интра-предсказание текущего блока на основе режима интра-предсказания.[135] FIG. 11 illustrates an example of selecting an interpolation filter based on the distance between the target sample of the current block and the reference sample. The encoding device/decoding device may output an intra-prediction mode for the current block and determine whether the intra-prediction mode is a directed intra-prediction mode (S1100). The directional intra-prediction mode may be called angular prediction. If the intra-prediction mode is a non-directional intra-prediction mode, the encoding/decoding device may perform intra-prediction of the current block based on the intra-prediction mode.
[136] Если режим интра-предсказания является направленным режимом интра-предсказания, устройство кодирования/устройство декодирования может определять, является ли расстояние между целевой выборкой текущего блока и опорной выборкой меньшим, чем порог (S1110). Опорная выборка может представлять соседнюю выборку, расположенную в направлении предсказания режима интра-предсказания текущего блока, на основе целевой выборки. Также, значение порога может выводиться на основе размера текущего блока, режима интра-предсказания текущего блока, того, является ли блок квадратным/неквадратным блоком, и тому подобного, как описано выше. Кроме того, информация о значении порога может сигнализироваться, и значение порога текущего блока может выводиться на основе информации о сигнализированном значении порога.[136] If the intra-prediction mode is a directed intra-prediction mode, the encoding device/decoding device can determine whether the distance between the target sample of the current block and the reference sample is less than a threshold (S1110). The reference sample may represent a neighboring sample located in the intra-prediction mode prediction direction of the current block based on the target sample. Also, the threshold value may be derived based on the size of the current block, the intra-prediction mode of the current block, whether the block is a square/non-square block, and the like, as described above. In addition, the threshold value information may be signaled, and the threshold value of the current block may be output based on the signaled threshold value information.
[137] Если расстояние между целевой выборкой текущего блока и опорной выборкой не меньше, чем значение порога, то есть, если расстояние между целевой выборкой и опорной выборкой больше или равно значению порога, устройство кодирования/устройство декодирования может выбирать гауссов фильтр в качестве интерполяционного фильтра текущего блока и выводить опорную выборку целевой выборки в текущем блоке на основе гауссова фильтра (S1120). Здесь, гауссов фильтр представляет собой один из интерполяционных фильтров, имеющих эффект фильтра нижних частот, и опорная выборка целевой выборки может выводиться на основе интерполяционного фильтра, имеющего эффект фильтра нижних частот, отличного от гауссова фильтра. Например, если размер текущего блока больше или равен значению порога, устройство кодирования/устройство декодирования может выбирать интерполяционный фильтр текущего блока в качестве линейного фильтра и выводить опорную выборку целевой выборки в текущем блоке на основе линейного фильтра.[137] If the distance between the target sample of the current block and the reference sample is not less than the threshold value, that is, if the distance between the target sample and the reference sample is greater than or equal to the threshold value, the encoding device/decoding device may select a Gaussian filter as an interpolation filter the current block and output a reference sample of the target sample in the current block based on the Gaussian filter (S1120). Here, the Gaussian filter is one of the interpolation filters having a low-pass filter effect, and a reference sample of the target sample may be output based on the interpolation filter having a low-pass filter effect other than the Gaussian filter. For example, if the size of the current block is greater than or equal to the threshold value, the encoding device/decoding device may select the interpolation filter of the current block as a linear filter and output a reference sample of the target sample in the current block based on the linear filter.
[138] Если расстояние между целевой выборкой текущего блока и опорной выборкой меньше, чем значение порога, устройство кодирования/устройство декодирования может выбирать кубический фильтр в качестве интерполяционного фильтра текущего блока и выводить опорную выборку на основе кубического фильтра (S1130). Здесь, кубический фильтр может представлять собой один из сложных интерполяционных фильтров, как описано выше, и опорная выборка целевой выборки может выводиться на основе сложного интерполяционного фильтра, отличного от кубического фильтра. Дополнительно, кубический фильтр может называться сплайн-фильтром.[138] If the distance between the target sample of the current block and the reference sample is less than the threshold value, the encoding device/decoding device may select the cube filter as the interpolation filter of the current block and output the reference sample based on the cube filter (S1130). Here, the cubic filter may be one of the complex interpolation filters as described above, and the reference sample of the target sample may be derived based on the complex interpolation filter other than the cubic filter. Additionally, a cubic filter may be called a spline filter.
[139] Устройство кодирования/устройство декодирования может генерировать выборку предсказания целевой выборки на основе выведенной опорной выборки целевой выборки (S1140). Устройство кодирования/устройство декодирования может генерировать выборку предсказания путем копирования опорной выборки. Опорная выборка может копироваться и использоваться в качестве выборки предсказания, и таким образом, может указываться, что выборка предсказания сгенерирована на основе интерполяционного фильтра.[139] The encoding device/decoding device may generate a target sample prediction sample based on the derived reference sample of the target sample (S1140). The encoder/decoder may generate the prediction sample by copying the reference sample. The reference sample may be copied and used as a prediction sample, and thus, the prediction sample may be indicated to be generated based on the interpolation filter.
[140] Также, как описано выше, один из интерполяционных фильтров может выбираться, чтобы выводить опорную выборку целевой выборки, но множество интерполяционных фильтров может также использоваться, чтобы выводить опорную выборку[140] Also, as described above, one of the interpolation filters may be selected to output a reference sample of the target sample, but a plurality of interpolation filters may also be used to output the reference sample
[141] Например, когда положение опорной выборки целевой выборки текущего блока представляет собой положение дробной выборки, то есть, когда опорная выборка целевой выборки представляет собой дробную выборку, первая опорная выборка может генерироваться на основе первого интерполяционного фильтра, который представляет собой сложный интерполяционный фильтр, вторая опорная выборка может генерироваться на основе второго интерполяционного фильтра, который представляет собой интерполяционный фильтр, имеющий вышеописанный эффект фильтра нижних частот, и третья опорная выборка может генерироваться на основе третьего интерполяционного фильтра, который представляет собой интерполяционный фильтр, отличный от первого интерполяционного фильтра и второго интерполяционного фильтра. Когда первая опорная выборка, вторая опорная выборка и третья опорная выборка сгенерированы, выборка предсказания целевой выборки может генерироваться на основе первой опорной выборки, второй опорной выборки и третьей опорной выборки. Например, среднее первой опорной выборки и второй опорной выборки может выводиться в качестве выборки предсказания целевой выборки, среднее первой опорной выборки и третьей опорной выборки может выводиться в качестве выборки предсказания целевой выборки, среднее второй опорной выборки и третьей опорной выборки может выводиться в качестве выборки предсказания целевой выборки, или среднее первой опорной выборки, второй опорной выборки и третьей опорной выборки может выводиться в качестве выборки предсказания целевой выборки.[141] For example, when the reference sample position of the target sample of the current block is a fractional sample position, that is, when the reference sample of the target sample is a fractional sample, the first reference sample may be generated based on the first interpolation filter, which is a complex interpolation filter, the second reference sample may be generated based on the second interpolation filter, which is an interpolation filter having the above-described low-pass filter effect, and the third reference sample may be generated based on the third interpolation filter, which is an interpolation filter different from the first interpolation filter and the second interpolation filter. filter. When the first reference sample, the second reference sample, and the third reference sample are generated, a target sample prediction sample may be generated based on the first reference sample, the second reference sample, and the third reference sample. For example, the average of the first reference sample and the second reference sample may be output as the prediction sample of the target sample, the average of the first reference sample and the third reference sample may be output as the prediction sample of the target sample, the average of the second reference sample and the third reference sample may be output as the prediction sample target sample, or the average of the first reference sample, the second reference sample, and the third reference sample may be output as a prediction sample of the target sample.
[142] Альтернативно, выборка предсказания целевой выборки может выводиться через взвешенное среднее первой опорной выборки и второй опорной выборки, то есть, взвешенную сумму первой опорной выборки и второй опорной выборки. Альтернативно, выборка предсказания целевой выборки может выводиться через взвешенную сумму первой опорной выборки и третьей опорной выборки, через взвешенную сумму второй опорной выборки и третьей опорной выборки или через взвешенную сумму первой опорной выборки, второй опорной выборки и третьей опорной выборки. Альтернативно, выборка предсказания целевой выборки может выводиться через взвешенную сумму первой опорной выборки, второй опорной выборки и третьей опорной выборки. Выборка предсказания целевой выборки может генерироваться на основе вышеописанных примеров и комбинаций первой опорной выборки, второй опорной выборки и/или третьей опорной выборки, отличных от вышеописанных примеров.[142] Alternatively, the prediction sample of the target sample may be derived through a weighted average of the first reference sample and the second reference sample, that is, the weighted sum of the first reference sample and the second reference sample. Alternatively, the prediction sample of the target sample may be output by a weighted sum of the first reference sample and the third reference sample, by a weighted sum of the second reference sample and the third reference sample, or by a weighted sum of the first reference sample, the second reference sample and the third reference sample. Alternatively, the prediction sample of the target sample may be derived through a weighted sum of the first reference sample, the second reference sample, and the third reference sample. The target sample prediction sample may be generated based on the above-described examples and combinations of the first reference sample, the second reference sample and/or the third reference sample different from the above-described examples.
[143] Конкретно, например, выборка предсказания целевой выборки может генерироваться следующим образом. Если направленный режим интра-предсказания, в котором интра-предсказание выполняется на основе опорной выборки положения дробной выборки, выполняется на текущем блоке, соседние выборки положения целой выборки могут интерполироваться на основе кубического фильтра, так что может выводиться первая опорная выборка, соседние выборки положения целой выборки могут интерполироваться на основе гауссова фильтра, так что может выводиться вторая опорная выборка целевой выборки, и выборка предсказания целевой выборки может генерироваться на основе первой опорной выборки и второй опорной выборки. Здесь, направленный режим интра-предсказания, в котором интра-предсказание выполняется на основе опорной выборки положения дробной выборки, может представлять один из направленных режимов интра-предсказания за исключением режимов интра-предсказания #2, #18, #34, #50 и #66. Кроме того, соседние выборки в положении целой выборки могут представлять соседние выборки около положения дробной выборки, расположенной в направлении предсказания направленного режима интра-предсказания текущего блока, на основе целевой выборки среди соседних выборок текущего блока.[143] Specifically, for example, a target sample prediction sample may be generated as follows. If a directed intra-prediction mode, in which intra-prediction is performed based on a fractional sample position reference sample, is performed on the current block, adjacent integer sample position samples can be interpolated based on a cubic filter, so that the first reference sample, adjacent integer position samples can be output the samples may be interpolated based on the Gaussian filter so that a second reference sample of the target sample may be output, and a prediction sample of the target sample may be generated based on the first reference sample and the second reference sample. Here, the directed intra-prediction mode in which intra-prediction is performed based on the position reference sample of the fractional sample may represent one of the directed intra-prediction modes except intra-prediction modes #2, #18, #34, #50 and # 66. In addition, neighboring samples at the whole sample position may represent neighboring samples near the fractional sample position located in the directional intra-prediction mode prediction direction of the current block based on the target sample among the neighboring samples of the current block.
[144] В другом примере, точность предсказания интра-предсказания повышается по мере уменьшения расстояния между целевой выборкой и опорной выборкой, и таким образом, может быть предложен способ вывода первого веса для первой опорной выборки, сгенерированной на основе первого интерполяционного фильтра, который представляет собой сложный интерполяционный фильтр, и второго веса для второй опорной выборки, сгенерированной на основе второго интерполяционного фильтра, который представляет собой интерполяционный фильтр, имеющий эффект фильтра нижних частот, на основе расстояния между целевой выборкой и опорной выборкой, и взвешенного суммирования первой опорной выборки и второй опорной выборки на основе первого веса и второго веса, чтобы сгенерировать выборку предсказания целевой выборки. Например, первый вес может выводиться как находящийся в обратной пропорции с расстоянием между целевой выборкой и опорной выборкой, и второй вес может выводиться как значение, полученное путем вычитания первого веса из 1. Альтернативно, первый вес и второй вес, используемые здесь, могут масштабироваться с повышением в единицах целых во избежание вычисления с десятичной запятой. Соответственно, первый вес может выводиться как большее значение по мере увеличения расстояния между целевой выборкой и опорной выборкой, и по мере того как расстояние между целевой выборкой и опорной выборкой увеличивается, первый вес может выводиться как меньшее значение. Расстояние между целевой выборкой и опорной выборкой может вычисляться на основе угла предсказания режима интра-предсказания текущего блока и положения целевой выборки. Альтернативно, таблица для размера блока и режима интра-предсказания может сохраняться, и расстояние между целевой выборкой и опорной выборкой может выводиться со ссылкой на таблицу. При этом может избирательно применяться способ для вывода опорной выборки целевой выборки на основе множества интерполяционных фильтров, раскрытый в вышеописанных вариантах осуществления. Например, то, следует ли выводить опорную выборку целевой выборки на основе множества интерполяционных фильтров, может выводиться на основе размера текущего блока, режима интра-предсказания текущего блока, отклонения (дисперсии) значений соседних выборок текущего блока и тому подобного. Альтернативно, может передаваться метка, указывающая, следует ли выводить опорную выборку целевой выборки на основе множества интерполяционных фильтров из устройства кодирования, и то, следует ли выводить опорную выборку целевой выборки на основе множества интерполяционных фильтров, может определяться на основе метки.[144] In another example, the prediction accuracy of intra-prediction increases as the distance between the target sample and the reference sample decreases, and thus, a method for deriving a first weight for the first reference sample generated based on the first interpolation filter, which is a complex interpolation filter, and a second weight for a second reference sample generated based on the second interpolation filter, which is an interpolation filter having a low-pass filter effect based on the distance between the target sample and the reference sample, and a weighted summation of the first reference sample and the second reference samples based on the first weight and the second weight to generate a target sample prediction sample. For example, the first weight may be output as being inversely proportional to the distance between the target sample and the reference sample, and the second weight may be output as the value obtained by subtracting the first weight from 1. Alternatively, the first weight and second weight used herein may be scaled with increasing in whole units to avoid calculation with decimal point. Accordingly, the first weight may be output as a larger value as the distance between the target sample and the reference sample increases, and as the distance between the target sample and the reference sample increases, the first weight may be output as a smaller value. The distance between the target sample and the reference sample may be calculated based on the prediction angle of the intra-prediction mode of the current block and the position of the target sample. Alternatively, a table for block size and intra-prediction mode may be stored, and the distance between the target sample and the reference sample may be output with reference to the table. Here, the method for deriving a reference sample of a target sample based on a plurality of interpolation filters disclosed in the above-described embodiments may be selectively applied. For example, whether to output a reference sample of a target sample based on a plurality of interpolation filters may be inferred based on the size of the current block, the intra-prediction mode of the current block, the variance of the values of neighboring samples of the current block, and the like. Alternatively, a mark indicating whether to output a reference sample of the target sample based on the plurality of interpolation filters from the encoder may be transmitted, and whether or not to output the reference sample of the target sample based on the plurality of interpolation filters may be determined based on the label.
[145] Фиг. 12 иллюстрирует пример выведения опорной выборки для целевой выборки текущего блока на основе множества интерполяционных фильтров и выведения выборки предсказания целевой выборки на основе опорной выборки. Устройство кодирования/устройство декодирования может выводить режим интра-предсказания для текущего блока и определять, является ли режим интра-предсказания направленным режимом интра-предсказания (S1200). Направленный режим интра-предсказания может упоминаться как угловое предсказание.[145] FIG. 12 illustrates an example of deriving a reference sample for a target sample of a current block based on a plurality of interpolation filters, and deriving a prediction sample of a target sample based on the reference sample. The encoding device/decoding device may output an intra-prediction mode for the current block and determine whether the intra-prediction mode is a directed intra-prediction mode (S1200). The directional intra-prediction mode may be referred to as angular prediction.
[146] Если режим интра-предсказания представляет собой ненаправленный режим интра-предсказания, устройство кодирования/декодирования может выполнять интра-предсказание текущего блока на основе ненаправленного режима интра-предсказания (S1210).[146] If the intra-prediction mode is a non-directional intra-prediction mode, the encoding/decoding apparatus may perform intra-prediction of the current block based on the non-directional intra-prediction mode (S1210).
[147] Когда режим интра-предсказания является направленным режимом интра-предсказания, устройство кодирования/устройство декодирования может интерполировать соседние выборки в положениях целой выборки на основе кубического фильтра, чтобы вывести первую опорную выборку целевой выборки (S1220). Здесь, соседние выборки положений целой выборки могут представлять соседние выборки около положения дробной выборки, расположенного в направлении предсказания направленного режима интра-предсказания текущего блока относительно целевой выборки среди соседних выборок текущего блока. Устройство кодирования/устройство декодирования может выполнять интра-предсказание целевой выборки на основе первой опорной выборки (S1230). Устройство кодирования/устройство декодирования может генерировать первую временную выборку предсказания путем копирования первой опорной выборки.[147] When the intra-prediction mode is a directed intra-prediction mode, the encoding device/decoding device may interpolate adjacent samples at the whole sample positions based on the cubic filter to output the first reference sample of the target sample (S1220). Here, neighboring samples of whole sample positions may represent neighboring samples about a fractional sample position located in the directional intra-prediction mode prediction direction of the current block relative to the target sample among the neighboring samples of the current block. The encoding device/decoding device may perform intra-prediction of the target sample based on the first reference sample (S1230). The encoder/decoder may generate a first prediction time sample by copying the first reference sample.
[148] Когда режим интра-предсказания представляет собой направленный режим интра-предсказания, устройство кодирования/устройство декодирования интерполирует соседние выборки положений целой выборки на основе гауссова фильтра, чтобы вывести вторую опорную выборку целевой выборки (S1240). Устройство кодирования/устройство декодирования может выполнять интра-предсказание целевой выборки на основе второй опорной выборки (S1240). Устройство кодирования/устройство декодирования может генерировать вторую временную выборку предсказания путем копирования второй опорной выборки.[148] When the intra-prediction mode is a directed intra-prediction mode, the encoding device/decoding device interpolates neighboring position samples of the whole sample based on the Gaussian filter to output a second reference sample of the target sample (S1240). The encoding device/decoding device may perform intra-prediction of the target sample based on the second reference sample (S1240). The encoder/decoder may generate a second prediction time sample by copying the second reference sample.
[149] Устройство кодирования/устройство декодирования может взвешенно суммировать первую временную выборку предсказания и вторую временную выборку предсказания, чтобы вывести выборку предсказания целевой выборки (S1250). Выборка предсказания может выводиться как сумма значения, полученного путем умножения первого веса α первой временной выборки предсказания на первую временную выборку предсказания, и значения, полученного путем умножения 1-α второй временной выборки предсказания на вторую временную выборку предсказания. Первый вес может выводиться как находящийся в обратной пропорции с расстоянием между целевой выборкой и опорными выборками, как описано выше, и второй вес может выводиться как значение, полученное путем вычитания первого веса из 1. Альтернативно, первый вес и второй вес, используемые в настоящем документе, могут масштабироваться с повышением в единицах целых и выводиться во избежание вычисления с десятичной запятой. Расстояние между целевой выборкой и опорными выборками может быть вычислено на основе угла предсказания режима интра-предсказания текущего блока и положения целевой выборки. Альтернативно, таблица касательно размера блока и режима интра-предсказания может быть сохранена заранее, и расстояние между целевой выборкой и опорными выборками может выводиться со ссылкой на таблицу.[149] The encoding device/decoding device may weightly add the first prediction time sample and the second prediction time sample to output a prediction sample of the target sample (S1250). The prediction sample may be output as the sum of a value obtained by multiplying the first weight α of the first prediction time sample by the first prediction time sample and a value obtained by multiplying 1-α of the second prediction time sample by the second prediction time sample. The first weight may be output as being inversely proportional to the distance between the target sample and the reference samples as described above, and the second weight may be output as the value obtained by subtracting the first weight from 1. Alternatively, the first weight and the second weight as used herein , can be scaled up in integer units and output to avoid decimal point calculations. The distance between the target sample and the reference samples can be calculated based on the intra-prediction mode prediction angle of the current block and the position of the target sample. Alternatively, a table regarding block size and intra-prediction mode may be stored in advance, and the distance between the target sample and the reference samples may be output with reference to the table.
[150] Фиг. 13 схематично иллюстрирует способ кодирования видео посредством устройства кодирования в соответствии с настоящим раскрытием. Способ, раскрытый на фиг. 13, может выполняться устройством кодирования, раскрытым на фиг. 1. Конкретно, например, этапы S1300-S1340 согласно фиг. 13 могут выполняться модулем предсказания устройства кодирования, и S1350 может выполняться устройством энтропийного кодирования устройства кодирования.[150] FIG. 13 schematically illustrates a method for encoding video by an encoding apparatus according to the present disclosure. The method disclosed in FIG. 13 may be performed by the encoding device disclosed in FIG. 1. Specifically, for example, steps S1300 to S1340 according to FIG. 13 may be performed by the prediction unit of the encoding device, and S1350 may be performed by the entropy encoding unit of the encoding device.
[151] Устройство кодирования определяет режим интра-предсказания для текущего блока (S1300). Устройство кодирования может выполнять различные режимы интра-предсказания, чтобы вывести режим интра-предсказания, имеющий оптимальную стоимость RD, в качестве режима интра-предсказания для текущего блока. Режим интра-предсказания может являться одним из двух ненаправленных режимов предсказания и 33 направленных режимов предсказания. Как описано выше, два ненаправленных режима предсказания могут включать в себя режим интра-DC и интра-планарный режим. Альтернативно, режим интра-предсказания может являть одним из двух ненаправленных режимов интра-предсказания и 65 направленных режимов интра-предсказания. Как описано выше, два ненаправленных режима предсказания могут включать в себя режим интра-DC и интра-планарный режим. Кроме того, 65 направленных режимов интра-предсказания могут включать в себя вертикальные направленные режимы интра-предсказания и горизонтальные направленные режимы интра-предсказания. Вертикальные направленные режимы интра-предсказания могут включать в себя от режима интра-предсказания #34 до режима интра-предсказания #66, и горизонтальные направленные режимы интра-предсказания могут включать в себя от режима интра-предсказания #2 до режима интра-предсказания #33.[151] The encoder determines the intra-prediction mode for the current block (S1300). The encoder may perform various intra-prediction modes to output the intra-prediction mode having the optimal RD cost as the intra-prediction mode for the current block. The intra-prediction mode may be one of two non-directional prediction modes and 33 directed prediction modes. As described above, the two non-directional prediction modes may include an intra-DC mode and an intra-planar mode. Alternatively, the intra-prediction mode may be one of two non-directional intra-prediction modes and 65 directed intra-prediction modes. As described above, the two non-directional prediction modes may include an intra-DC mode and an intra-planar mode. In addition, the 65 directional intra-prediction modes may include vertical directional intra-prediction modes and horizontal directional intra-prediction modes. Vertical directional intra-prediction modes may include intra-prediction mode #34 to intra-prediction mode #66, and horizontal directional intra-prediction modes may include intra-prediction mode #2 to intra-prediction mode #33 .
[152] Устройство кодирования выводит соседние выборки, включающие в себя левые соседние выборки и верхние соседние выборки текущего блока (S1310). Устройство кодирования может выводить соседние выборки текущего блока. Соседние выборки могут включать в себя левые соседние выборки и верхние соседние выборки. Кроме того, соседние выборки могут включать в себя левые верхние выборки. Левые соседние выборки, левые верхние соседние выборки и верхние соседние выборки могут выводиться из соседних блоков, уже реконструированных во время декодирования текущего блока. Могут выводиться 2N верхних соседних выборок, левых верхних соседних выборок и 2N левых соседних выборок текущего блока. Если размер текущего блока составляет N×N и компонент x верхней левой выборки текущего блока равен 0, и его компонент y равен 0, левые соседние выборки могут представлять собой от p[-1][0] до p[-1][2N-1], левая верхняя соседняя выборка может представлять собой p[-1][-1], и верхние соседние выборки могут представлять собой от p[0][-1] до p[2N-1][-1].[152] The encoder outputs neighbor samples including left neighbor samples and top neighbor samples of the current block (S1310). The encoder can output adjacent samples of the current block. Neighbor samples may include left neighbor samples and top neighbor samples. In addition, neighboring samples may include top-left samples. Left neighbor samples, left top neighbor samples, and top neighbor samples may be derived from neighboring blocks already reconstructed during decoding of the current block. The 2N top neighbor samples, top left neighbor samples, and 2N left neighbor samples of the current block can be output. If the size of the current block is N×N and the x component of the top left sample of the current block is 0 and its y component is 0, the left neighboring samples can be p[-1][0] to p[-1][2N- 1], the upper left neighboring sample may be p[-1][-1], and the upper neighboring samples may be p[0][-1] to p[2N-1][-1].
[153] Альтернативно, когда размер текущего блока составляет M×N, и компонент x верхней левой выборки текущего блока равен 0, и его компонент y равен 0, могут выводиться M+N верхних соседних выборок, левые верхние соседние выборки и M-N левых соседних выборок текущего блока. Если размер текущего блока имеет неквадратную форму M×N, и компонент x верхней левой выборки текущего блока равен 0, и его компонент y равен 0, левые соседние выборки могут представлять собой от p[-1][0] до p[-1][M+N-1], левая верхняя соседняя выборка может представлять собой p[-1][-1], и верхние соседние выборки могут представлять собой от p[0][-1] до p[M+N-1][-1].[153] Alternatively, when the size of the current block is M×N, and the x component of the top left sample of the current block is 0, and its y component is 0, M+N top neighbor samples, top left neighbor samples, and M-N left neighbor samples may be output current block. If the size of the current block is non-square M×N, and the x component of the top left sample of the current block is 0, and its y component is 0, the left neighboring samples can be p[-1][0] to p[-1] [M+N-1], the upper left neighboring sample may be p[-1][-1], and the upper neighboring samples may be p[0][-1] to p[M+N-1] [-1].
[154] Устройство кодирования выводит опорные выборки для предсказания целевой выборки среди соседних выборок на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания (S1320). Устройство кодирования может выводить положение опорной выборки относительно целевой выборки на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания, и когда положение опорной выборки представляет собой положение дробной выборки, устройство кодирования может выводить соседние выборки, расположенные около положения, выведенного на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания, в качестве опорных выборок целевой выборки. То есть, устройство кодирования может выводить множество соседних выборок в качестве опорных выборок целевой выборки на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания. Например, четыре соседних выборки могут выводиться в качестве опорных выборок целевой выборки. Здесь, целевая выборка может представлять выборку в текущем блоке, на котором выполняется интра-предсказание. Угол предсказания режима интра-предсказания может выводиться на основе Таблицы 1, описанной выше, и intraPredAngle может представлять собой переменную, указывающую угол предсказания, выведенный из режима интра-предсказания.[154] The encoding device outputs reference samples for predicting the target sample among neighboring samples based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode (S1320). The encoding apparatus may output the position of the reference sample relative to the target sample based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode, and when the position of the reference sample is the position of a fractional sample, the encoding apparatus may output adjacent samples located around the position derived based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode, as reference samples of the target sample. That is, the encoding device can output a plurality of neighboring samples as reference samples of the target sample based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode. For example, four adjacent samples may be output as reference samples of the target sample. Here, the target sample may represent a sample in the current block on which intra-prediction is performed. The prediction angle of the intra-prediction mode may be derived based on Table 1 described above, and intraPredAngle may be a variable indicating the prediction angle derived from the intra-prediction mode.
[155] Устройство кодирования определяет интерполяционный фильтр для целевой выборки (S1330). Устройство кодирования может определять интерполяционный фильтр для целевой выборки на основе размера текущего блока и/или режима интра-предсказания текущего блока. Также, например, интерполяционный фильтр может определяться, когда положение опорной выборки представляет собой положение дробной выборки, т.е., когда выводится множество опорных выборок.[155] The encoder determines an interpolation filter for the target sample (S1330). The encoder may determine an interpolation filter for the target sample based on the size of the current block and/or the intra-prediction mode of the current block. Also, for example, the interpolation filter can be determined when the position of the reference sample is the position of a fractional sample, that is, when a plurality of reference samples are output.
[156] Например, интерполяционный фильтр для целевой выборки может определяться на основе размера текущего блока. Например, если размер текущего блока равен 4×4, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока равен 4×4, кубический фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Кубический фильтр представляет собой один из сложных интерполяционных фильтров, и кубический фильтр может называться сплайн-фильтром.[156] For example, an interpolation filter for the target sample may be determined based on the size of the current block. For example, if the current block size is 4x4, a complex interpolation filter may be defined as the interpolation filter for the target sample. Specifically, when the size of the current block is 4x4, a cubic filter can be defined as an interpolation filter for the target sample. A cubic filter is one of the complex interpolation filters, and a cubic filter may be called a spline filter.
[157] Если текущий блок представляет собой квадратный блок, ширина и высота равны друг другу. То есть, поскольку текущий блок представляет собой квадратный блок, имеющий размер N×N, опорный размер (т.е., опорное значение) при выборе интерполяционного фильтра может представлять собой N для направленного режима интра-предсказания любого направления предсказания. При этом, если текущий блок является неквадратным блоком, то есть, если текущий блок является неквадратным блоком, имеющим размер M×N, когда режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим вертикальную направленность, размер опорного блока (т.е., опорное значение) для выбора интерполяционного фильтра может составлять M. Аналогично, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим горизонтальную направленность, размер текущего блока (т.е., опорное значение) в качестве опорного для выбора интерполяционного фильтра может составлять N. Альтернативно, напротив, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим вертикальную направленность, интерполяционный фильтр текущего блока может выбираться на основе N, и аналогично, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим горизонтальную направленность, интерполяционный фильтр текущего блока может выбираться на основе M. Однако, в конкретном примере, который будет описан далее, когда режим интра-предсказания, имеющий вертикальную направленность, применяется к текущему блоку, имеющему размер M×N, размер текущего блока в качестве опоры для выбора интерполяционного фильтра может быть представлен посредством M, и аналогично, если режим интра-предсказания, имеющий горизонтальную направленность, применяется к текущему блоку, размер текущего блока может быть представлен посредством N. Здесь, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания, режим интра-предсказания, имеющий вертикальную направленность, может представлять режимы интра-предсказания #34-#66, и режим интра-предсказания, имеющий горизонтальную направленность, может представлять режимы интра-предсказания #2-#33.[157] If the current block is a square block, the width and height are equal to each other. That is, since the current block is a square block having size N×N, the reference size (ie, reference value) when selecting the interpolation filter may be N for the intra-prediction directional mode of any prediction direction. Moreover, if the current block is a non-square block, that is, if the current block is a non-square block having a size of M×N, when the intra-prediction mode of the current block is an intra-prediction mode having a vertical direction, the size of the reference block (i.e. ., reference value) for selecting the interpolation filter may be M. Similarly, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having a horizontal orientation, the size of the current block (m .e., reference value) as the reference for selecting the interpolation filter may be N. Alternatively, on the contrary, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having a vertical directionality, the interpolation filter of the current block can be selected based on N, and similarly, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having horizontal directionality, the interpolation filter of the current block can be selected based on M. However, in a specific example to be described later, when an intra-prediction mode having a vertical directionality is applied to a current block having a size of M×N, the size of the current block as a reference for selecting an interpolation filter can be represented by M, and similarly, if an intra-prediction mode having a horizontal directionality is applied to the current block, the size of the current block can be represented by N. Here, when the intra-prediction mode includes 65 directed intra-prediction modes and two non-directional modes intra-prediction, an intra-prediction mode having a vertical focus may represent intra-prediction modes #34-#66, and an intra-prediction mode having a horizontal focus may represent intra-prediction modes #2-#33.
[158] Например, может определяться, является ли размер текущего блока, указанный формой текущего блока и направленностью режима интра-предсказания, меньшим, чем конкретное значение. Если размер текущего блока меньше, чем конкретное значение, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки, а если размер текущего блока не меньше, чем конкретное значение, интерполяционный фильтр, имеющий эффект фильтра нижних частот, может определяться в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока меньше, чем конкретное значение, кубический фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Если размер текущего блока не меньше, чем конкретное значение, гауссов фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Альтернативно, когда размер текущего блока не меньше, чем конкретное значение, линейный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Интерполяционный фильтр, имеющий эффект фильтра нижних частот, может включать в себя гауссов фильтр и линейный фильтр. Здесь, конкретное значение может быть установлено в 4, 8, 16, 32 или тому подобное.[158] For example, it may be determined whether the size of the current block, indicated by the shape of the current block and the directionality of the intra-prediction mode, is smaller than a specific value. If the current block size is smaller than a specific value, a complex interpolation filter can be defined as an interpolation filter for the target sample, and if the current block size is not smaller than a specific value, an interpolation filter having a low-pass filter effect can be defined as an interpolation filter for the target sample. Specifically, when the current block size is smaller than a specific value, a cubic filter may be defined as an interpolation filter for the target sample. If the current block size is not smaller than a specific value, a Gaussian filter can be specified as an interpolation filter for the target sample. Alternatively, when the current block size is not smaller than a particular value, a linear filter may be defined as an interpolation filter for the target sample. The interpolation filter having a low-pass filter effect may include a Gaussian filter and a linear filter. Here, the specific value can be set to 4, 8, 16, 32 or the like.
[159] Конкретно, когда ширина и высота текущего блока равны (т.е., когда текущий блок представляет собой квадратный блок), может определяться, является ли ширина текущего блока меньшей, чем конкретное значение, и когда ширина текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр для целевой выборки, а когда ширина текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[159] Specifically, when the width and height of the current block are equal (i.e., when the current block is a square block), it can be determined whether the width of the current block is smaller than a specific value, and when the width of the current block is smaller than a specific value. value, the interpolation filter for the target sample can be output as a cubic filter for the target sample, and when the width of the current block is not smaller than the specific value, the interpolation filter for the target sample can be output as a Gaussian filter.
[160] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, может определяться, является ли ширина текущего блока меньшей, чем конкретное значение. Когда ширина текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда ширина текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[160] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, it can be determined whether the width of the current block is block less than a specific value. When the width of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the width of the current block is not less than the specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[161] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, может определяться, является ли высота текущего блока меньшей, чем конкретное значение. Когда высота текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда высота текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[161] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, it can be determined whether the height of the current block is block less than a specific value. When the height of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the height of the current block is not less than a specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[162] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, может определяться, является ли высота текущего блока меньшей, чем конкретное значение. Когда высота текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда высота текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[162] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, it can be determined whether the height of the current block is block less than a specific value. When the height of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the height of the current block is not less than a specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[163] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, может определяться, является ли ширина текущего блока меньшей, чем конкретное значение. Когда ширина текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда ширина текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[163] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, it can be determined whether the width of the current block is block less than a specific value. When the width of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the width of the current block is not less than the specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[164] В другом примере, интерполяционный фильтр для целевой выборки может определяться на основе режима интра-предсказания текущего блока.[164] In another example, an interpolation filter for the target sample may be determined based on the intra-prediction mode of the current block.
[165] Например, может определяться, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем конкретное значение, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки, а если угол предсказания режима интра-предсказания не меньше, чем конкретное значение, интерполяционный фильтр, имеющий эффект фильтра нижних частот, может определяться в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда угол предсказания режима интра-предсказания меньше, чем конкретное значение, кубический фильтр может определяться в качестве интерполяционного фильтра для целевой выборки, а когда угол предсказания режима интра-предсказания не меньше, чем конкретное значение, гауссов фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Альтернативно, когда угол предсказания режима интра-предсказания не меньше, чем конкретное значение, линейный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Интерполяционный фильтр, имеющий эффект фильтра нижних частот, может включать в себя гауссов фильтр и линейный фильтр. Здесь, конкретное значение может быть установлено в 4, 8, 16, 32 или тому подобное. Угол предсказания режима интра-предсказания может выводиться на основе Таблицы 1, описанной выше, и intraPredAngle может указывать угол предсказания режима интра-предсказания. Также, например, конкретное значение может быть установлено в 11.[165] For example, it may be determined whether the intra-prediction mode prediction angle of the current block is smaller than a specific value. If the prediction angle of the intra-prediction mode is smaller than the specific value, a complex interpolation filter can be determined as an interpolation filter for the target sample, and if the prediction angle of the intra-prediction mode is not smaller than the specific value, an interpolation filter having a low-pass filter effect is can be defined as an interpolation filter for the target sample. Specifically, when the prediction angle of the intra-prediction mode is smaller than a specific value, a cubic filter may be defined as an interpolation filter for the target sample, and when the prediction angle of an intra-prediction mode is not smaller than a specific value, a Gaussian filter may be defined as an interpolation filter for the target sample. Alternatively, when the prediction angle of the intra-prediction mode is not less than a specific value, a linear filter may be defined as an interpolation filter for the target sample. The interpolation filter having a low-pass filter effect may include a Gaussian filter and a linear filter. Here, the specific value can be set to 4, 8, 16, 32 or the like. The prediction angle of the intra-prediction mode may be derived based on Table 1 described above, and intraPredAngle may indicate the prediction angle of the intra-prediction mode. Also, for example, a specific value can be set to 11.
[166] В другом примере, интерполяционный фильтр для целевой выборки может определяться на основе размера текущего блока и режима интра-предсказания. Если текущий блок является квадратным блоком, ширина и высота одинаковы. Если текущий блок является квадратным блоком, ширина и высота равны друг другу. То есть, поскольку текущий блок является квадратным блоком, имеющим размер N×N, опорный размер (т.е., опорное значение) при выборе интерполяционного фильтра может представлять собой N для направленного режима интра-предсказания любого направления предсказания. При этом, если текущий блок является неквадратным блоком, то есть, если текущий блок является неквадратным блоком, имеющим размер M×N, когда режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим вертикальную направленность, размер опорного блока (т.е., опорное значение) для выбора интерполяционного фильтра может представлять собой M. Аналогично, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим горизонтальную направленность, размер текущего блока (т.е., опорное значение) в качестве опоры для выбора интерполяционного фильтра может представлять собой N. Альтернативно, напротив, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим вертикальную направленность, интерполяционный фильтр текущего блока может выбираться на основе N, и аналогично, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока является режимом интра-предсказания, имеющим горизонтальную направленность, интерполяционный фильтр текущего блока может выбираться на основе M. Однако, в конкретном примере, который будет описан далее, когда режим интра-предсказания, имеющий вертикальную направленность, применяется к текущему блоку, имеющему размер M×N, размер текущего блока в качестве опоры для выбора интерполяционного фильтра может быть представлен посредством M, и аналогично, если режим интра-предсказания, имеющий горизонтальную направленность, применяется к текущему блоку, размер текущего блока может быть представлен посредством N. Здесь, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания, режим интра-предсказания, имеющий вертикальную направленность, может представлять режимы интра-предсказания #34-#66, и режим интра-предсказания, имеющий горизонтальную направленность, может представлять режимы интра-предсказания #2-#33.[166] In another example, the interpolation filter for the target sample may be determined based on the size of the current block and the intra-prediction mode. If the current block is a square block, the width and height are the same. If the current block is a square block, the width and height are equal to each other. That is, since the current block is a square block having size N×N, the reference size (ie, reference value) when selecting the interpolation filter may be N for the intra-prediction directional mode of any prediction direction. Moreover, if the current block is a non-square block, that is, if the current block is a non-square block having a size of M×N, when the intra-prediction mode of the current block is an intra-prediction mode having a vertical direction, the size of the reference block (i.e. ., reference value) for selecting the interpolation filter may be M. Similarly, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having a horizontal orientation, the size of the current block ( i.e., the reference value) as the reference for selecting the interpolation filter may be N. Alternatively, in contrast, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is the intra-prediction mode, having a vertical directionality, the interpolation filter of the current block can be selected based on N, and similarly, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having a horizontal directionality, the interpolation filter of the current block may be selected based on M. However, in a specific example to be described later, when an intra-prediction mode having a vertical direction is applied to a current block having a size of M×N, the size of the current block as a reference for selecting an interpolation filter may be represented by M, and similarly, if an intra-prediction mode having a horizontal directionality is applied to the current block, the size of the current block can be represented by N. Here, when the intra-prediction mode includes 65 directional intra-prediction modes and two non-directional intra-prediction modes, an intra-prediction mode having a vertical focus may represent intra-prediction modes #34-#66, and an intra-prediction mode having a horizontal focus may represent intra-prediction modes #2-#33.
[167] Например, устройство кодирования может определять, является ли размер текущего блока меньшим, чем первое конкретное значение, и когда размер текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять интерполяционный фильтр, имеющий эффект фильтра нижних частот, в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять гауссов фильтр в качестве интерполяционного фильтра. Альтернативно, когда размер текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять линейный фильтр в качестве интерполяционного фильтра.[167] For example, the encoding device may determine whether the size of the current block is smaller than the first specific value, and when the size of the current block is not smaller than the first specific value, the encoding device may determine an interpolation filter having a low-pass filter effect as interpolation filter for the target sample. Specifically, when the size of the current block is not smaller than the first specific value, the encoding device may determine a Gaussian filter as an interpolation filter. Alternatively, when the size of the current block is not smaller than the first specific value, the encoding device may define a linear filter as an interpolation filter.
[168] Конкретно, когда ширина и высота текущего блока равны друг другу, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Когда ширина текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[168] Specifically, when the width and height of the current block are equal to each other, the encoding device can determine whether the width of the current block is smaller than the first specific value. When the width of the current block is not smaller than the first specific value, the encoder may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[169] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим вертикальную направленность, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Когда ширина текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[169] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the encoding device can determine whether the width of the current block is smaller than the first specific value. When the width of the current block is not smaller than the first specific value, the encoder may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[170] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим горизонтальную направленность, устройство кодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Когда высота текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[170] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the encoding device can determine whether the height of the current block is smaller than the first specific value. When the height of the current block is not less than the first specific value, the encoder may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[171] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим вертикальную направленность, устройство кодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Когда высота текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[171] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the encoding device can determine whether the height of the current block is smaller than the first specific value. When the height of the current block is not less than the first specific value, the encoder may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[172] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим горизонтальную направленность, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Когда ширина текущего блока не меньше, чем первое конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[172] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the encoding device can determine whether the width of the current block is smaller than the first specific value. When the width of the current block is not smaller than the first specific value, the encoder may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[173] Если размер текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять сложный интерполяционный фильтр в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра.[173] If the size of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the encoding device may determine a complex interpolation filter as an interpolation filter for the target sample. Specifically, when the size of the current block is smaller than the first specific value, the encoding device may define a cubic filter as an interpolation filter.
[174] Конкретно, когда ширина и высота текущего блока равны и ширина текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение, и когда угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра.[174] Specifically, when the width and height of the current block are equal and the width of the current block is smaller than the first specific value, the encoding device can determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value, and when the mode prediction angle intra-prediction is less than the second specific value, the encoder may define a cubic filter as an interpolation filter.
[175] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим вертикальную направленность, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра.1[175] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the encoding device can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the encoding device may define a cubic filter as an interpolation filter.1
[176] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим горизонтальную направленность, устройство кодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра.[176] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the encoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the encoding device may determine the cubic filter as an interpolation filter.
[177] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим вертикальную направленность, устройство кодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра.[177] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the encoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the encoding device may determine the cubic filter as an interpolation filter.
[178] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим горизонтальную направленность, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра.[178] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the encoding device can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the encoding device may determine the cubic filter as an interpolation filter.
[179] Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять интерполяционный фильтр, имеющий эффект фильтра нижних частот, в качестве интерполяционного фильтра для целевой выборки. Конкретно, если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять гауссов фильтр в качестве интерполяционного фильтра. Альтернативно, если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять линейный фильтр в качестве интерполяционного фильтра.[179] If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the encoding device may determine an interpolation filter having a low-pass filter effect as an interpolation filter for the target sample. Specifically, if the prediction angle of the intra-prediction mode is not smaller than the second specific value, the encoding device may determine a Gaussian filter as an interpolation filter. Alternatively, if the prediction angle of the intra-prediction mode is not smaller than the second specific value, the encoding device may determine the linear filter as the interpolation filter.
[180] Конкретно, если ширина и высота текущего блока равны и ширина текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем конкретное значение, и если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[180] Specifically, if the width and height of the current block are equal and the width of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the specific value, and if the intra-prediction mode prediction angle -prediction is not less than the second specific value, the encoder may define a Gaussian filter or a linear filter as the interpolation filter.
[181] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим вертикальную направленность, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[181] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the encoding device can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the encoding device may determine a Gaussian filter or a linear filter as the interpolation filter.
[182] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим горизонтальную направленность, устройство кодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[182] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the encoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the encoding device may determine a Gaussian filter or a linear filter as the interpolation filter.
[183] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим вертикальную направленность, устройство кодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[183] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the encoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the encoding device may determine a Gaussian filter or a linear filter as the interpolation filter.
[184] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока является направленным режимом интра-предсказания, имеющим горизонтальную направленность, устройство кодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство кодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока не меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[184] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the encoding device can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the encoding device may determine whether the intra-prediction mode prediction angle of the current block is not smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the encoding device may determine a Gaussian filter or a linear filter as the interpolation filter.
[185] В другом примере, текущий блок может разделяться на множество областей, и интерполяционный фильтр каждой области может определяться на основе расстояния между каждой областью и соседними выборками текущего блока. В этом случае, интерполяционный фильтр для целевой выборки может выводиться в качестве интерполяционного фильтра области, включающей в себя целевую выборку. Кроме того, если размер текущего блока больше или равен конкретному размер, текущий блок может разделяться на множество областей. Конкретно, интерполяционные фильтры для областей, более близких к соседним выборкам текущего блока, чем конкретное значение, среди областей, могут определяться как сложные интерполяционные фильтры, и интерполяционные фильтры для областей, более далеких от соседних выборок текущего блока, чем конкретное значение, среди областей, могут определяться в качестве интерполяционных фильтров, имеющих эффект фильтра нижних частот.[185] In another example, the current block may be divided into multiple regions, and the interpolation filter of each region may be determined based on the distance between each region and adjacent samples of the current block. In this case, the interpolation filter for the target sample may be output as an interpolation filter of the region including the target sample. In addition, if the size of the current block is greater than or equal to a specific size, the current block may be divided into multiple regions. Specifically, interpolation filters for regions closer to neighboring samples of the current block than a particular value among regions may be defined as complex interpolation filters, and interpolation filters for regions further away from neighboring samples of the current block than a particular value among regions. can be defined as interpolation filters having a low-pass filter effect.
[186] При этом, размер множества областей, разделенных из текущего блока, может быть установлен предварительно. Альтернативно, размер множества областей может выводиться на основе размера текущего блока, режима интра-предсказания или тому подобного. Например, в случае, когда режим интра-предсказания текущего блока является одним из режимов интра-предсказания #35-#66, размер разделенных областей текущего блока может выводиться как размер 4×4. Здесь, если текущий блок является блоком, имеющим размер 16×16, текущий блок может разделяться на области, имеющие размер 4×4, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для областей с #0 по #7 в порядке растрового сканирования, и интерполяционный фильтр, имеющий эффект фильтра нижних частот, может определяться в качестве интерполяционных фильтров для других областей. Например, интерполяционные фильтры для областей #0-#7 в порядке растрового сканирования, среди областей, могут определяться как кубические фильтры, и интерполяционные фильтры для других областей могут определяться как гауссовы фильтры или линейные фильтры. Здесь, номера 16 областей, имеющих размер 4×4 в соответствии с порядком растрового сканирования, могут последовательно выводиться в порядке от верхней строки к нижней строке и последовательно выводиться в порядке слева направо в каждой строке. То есть, области, включенные в первую строку среди 16 областей, имеющих размер 4×4 текущего блока, могут быть представлены как область #0, область #1, область #2 и область #3 в порядке слева направо, области, включенные во вторую строку, могут быть представлены как область #4, область #5, область #6 и область #7 в порядке слева направо, области, включенные в третью строку, могут быть представлены как область #8, область #9, область #10 и область #11 в порядке слева направо, и области, включенные в четвертую строку, могут быть представлены как область #12, область #13, область #14 и область #15 в порядке слева направо. При этом могут генерироваться размеры разделенных областей текущего блока и информация, указывающая интерполяционный фильтр для каждой из областей.[186] Here, the size of a plurality of areas divided from the current block can be preset. Alternatively, the size of the plurality of regions may be inferred based on the size of the current block, the intra-prediction mode, or the like. For example, in the case where the intra-prediction mode of the current block is one of the intra-prediction modes #35 to #66, the size of the divided areas of the current block may be output as a size of 4×4. Here, if the current block is a block having a size of 16×16, the current block may be divided into regions having a size of 4×4, a complex interpolation filter may be defined as an interpolation filter for regions #0 to #7 in raster scanning order, and an interpolation filter having a low-pass filter effect can be defined as interpolation filters for other areas. For example, interpolation filters for regions #0-#7 in raster scan order, among the regions, may be defined as cubic filters, and interpolation filters for other regions may be defined as Gaussian filters or linear filters. Here, the 16 area numbers having a size of 4x4 according to the raster scanning order may be sequentially output in order from the top line to the bottom line, and sequentially output in the order from left to right in each line. That is, the areas included in the first row among the 16 areas having a size of 4x4 of the current block can be represented as area #0, area #1, area #2 and area #3 in order from left to right, areas included in the second line can be represented as area #4, area #5, area #6 and area #7 in order from left to right, areas included in the third line can be represented as area #8, area #9, area #10 and area #11 is in order from left to right, and the areas included in the fourth row can be represented as area #12, area #13, area #14 and area #15 in order from left to right. This may generate the dimensions of the divided regions of the current block and information indicating the interpolation filter for each of the regions.
[187] В другом примере, интерполяционный фильтр для целевой выборки может определяться на основе расстояния между целевой выборкой и опорными выборками. Расстояние между целевой выборкой и опорными выборками может выводиться на основе положения целевой выборки и угла предсказания режима интра-предсказания текущего блока. Например, расстояние может быть вычислено на основе положения целевой выборки и значения тригонометрической функции (например, tanθ) в соответствии с углом предсказания режима интра-предсказания. Альтернативно, расстояние может выводиться на основе предопределенной таблицы для размера блока и режима интра-предсказания. Альтернативно, расстояние между целевой выборкой и опорными выборками может указывать вертикальное расстояние или горизонтальное расстояние. То есть, расстояние между целевой выборкой и опорными выборками может выводиться на основе вертикального расстояния, или расстояние между целевой выборкой и опорными выборками может выводиться на основе горизонтального расстояния. Например, если расстояние между целевой выборкой и опорными выборками указывает вертикальное расстояние, расстояние может выводиться на основе компонента y целевой выборки. Также, если расстояние между целевой выборкой и опорными выборками указывает горизонтальное расстояние, расстояние может выводиться на основе компонента x целевой выборки.[187] In another example, an interpolation filter for the target sample may be determined based on the distance between the target sample and the reference samples. The distance between the target sample and the reference samples can be derived based on the position of the target sample and the prediction angle of the intra-prediction mode of the current block. For example, the distance can be calculated based on the position of the target sample and the value of a trigonometric function (eg, tanθ) according to the prediction angle of the intra-prediction mode. Alternatively, the distance may be inferred based on a predefined table for block size and intra-prediction mode. Alternatively, the distance between the target sample and the reference samples may indicate a vertical distance or a horizontal distance. That is, the distance between the target sample and the reference samples may be inferred based on the vertical distance, or the distance between the target sample and the reference samples may be inferred based on the horizontal distance. For example, if the distance between the target sample and the reference samples indicates a vertical distance, the distance may be inferred based on the y component of the target sample. Also, if the distance between the target sample and the reference samples indicates a horizontal distance, the distance may be inferred based on the x component of the target sample.
[188] Например, устройство кодирования может выводить расстояние между целевой выборкой и опорными выборками и определять, является ли расстояние меньшим, чем конкретное значение. Если расстояние меньше, чем конкретное значение, устройство кодирования может определять сложный интерполяционный фильтр в качестве интерполяционного фильтра для целевой выборки, а если расстояние не меньше, чем конкретное значение, устройство кодирования может определять интерполяционный фильтр, имеющий эффект фильтра нижних частот, в качестве интерполяционного фильтра для целевой выборки. Конкретно, если расстояние меньше, чем конкретное значение, устройство кодирования может определять кубический фильтр в качестве интерполяционного фильтра для целевой выборки, а если расстояние не меньше, чем конкретное значение, устройство кодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки. Конкретное значение может выводиться на основе размера текущего блока. Альтернативно, конкретное значение может выводиться на основе режима интра-предсказания текущего блока, определения, является ли текущий блок квадратным/неквадратным блоком, или тому подобного. Например, когда размер текущего блока равен N×N, конкретное значение может выводиться как N/2. Дополнительно, информация о конкретном значении может генерироваться, энтропийно кодироваться и передаваться.[188] For example, the encoder may output the distance between the target sample and the reference samples and determine whether the distance is less than a particular value. If the distance is less than a specific value, the encoding device may determine a complex interpolation filter as an interpolation filter for the target sample, and if the distance is not less than a specific value, the encoding device may determine an interpolation filter having a low-pass filter effect as an interpolation filter for the target sample. Specifically, if the distance is less than a specific value, the encoding device may determine a cubic filter as an interpolation filter for the target sample, and if the distance is not less than a specific value, the encoding device may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample. . A specific value can be inferred based on the size of the current block. Alternatively, the specific value may be output based on the intra-prediction mode of the current block, determining whether the current block is a square/non-square block, or the like. For example, when the current block size is N×N, the specific value may be output as N/2. Additionally, information about a particular value can be generated, entropy encoded, and transmitted.
[189] В другом примере, множество интерполяционных фильтров может определяться как интерполяционный фильтр для целевой выборки. Например, интерполяционные фильтры для целевой выборки могут включать в себя один из сложных интерполяционных фильтров и один из интерполяционных фильтров, имеющих эффект фильтра нижних частот. Альтернативно, интерполяционные фильтры для целевой выборки могут включать в себя один из сложных интерполяционных фильтров и два из интерполяционных фильтров, имеющих эффект фильтра нижних частот. Альтернативно, интерполяционные фильтры для целевой выборки могут включать в себя два из сложных интерполяционных фильтров и один из интерполяционных фильтров, имеющих эффект фильтра нижних частот. Конкретно, интерполяционные фильтры для целевой выборки могут включать в себя кубический фильтр и гауссов фильтр.[189] In another example, a plurality of interpolation filters may be defined as an interpolation filter for the target sample. For example, the interpolation filters for the target sample may include one of complex interpolation filters and one of interpolation filters having a low-pass filter effect. Alternatively, the interpolation filters for the target sample may include one of complex interpolation filters and two of interpolation filters having a low-pass filter effect. Alternatively, the interpolation filters for the target sample may include two of complex interpolation filters and one of interpolation filters having a low-pass filter effect. Specifically, the interpolation filters for the target sample may include a cubic filter and a Gaussian filter.
[190] Устройство кодирования выводит выборку предсказания целевой выборки на основе интерполяционного фильтра и опорных выборок (S1340). Устройство кодирования может выводить коэффициенты фильтрации интерполяционного фильтра на основе положения целевой выборки и угла предсказания режима интра-предсказания и выводить выборку предсказания целевой выборки на основе коэффициентов фильтрации и опорных выборок. Например, четыре соседних выборки среди соседних выборок текущего блока могут выводиться как опорные выборки, и могут выводиться четыре коэффициента фильтрации интерполяционного фильтра. Устройство кодирования может интерполировать опорные выборки на основе коэффициентов фильтрации, чтобы вывести выборку предсказания. Выборка предсказания может выводиться на основе уравнения 1, описанного выше.[190] The encoding device outputs a prediction sample of the target sample based on the interpolation filter and the reference samples (S1340). The encoding device can output filter coefficients of the interpolation filter based on the position of the target sample and the prediction angle of the intra-prediction mode, and output the prediction sample of the target sample based on the filter coefficients and reference samples. For example, four adjacent samples among adjacent samples of the current block may be output as reference samples, and four filter coefficients of the interpolation filter may be output. The encoder may interpolate the reference samples based on the filter coefficients to output a prediction sample. The prediction sample can be derived based on Equation 1 described above.
[191] Дополнительно, когда множество интерполяционных фильтров определены в качестве интерполяционных фильтров для целевой выборки, устройство кодирования может выводить (временные) выборки предсказания на основе каждого интерполяционного фильтра и выводить выборку предсказания целевой выборки на основе выведенной (временной) выборки предсказания. Например, выборка предсказания целевой выборки может выводиться путем усреднения (временных) выборок предсказания или может выводиться путем взвешенного суммирования (временных) выборок предсказания. Причем, то, определено ли множество интерполяционных фильтров в качестве интерполяционного фильтра для целевой выборки, может быть выведено на основе размера текущего блока, режима интра-предсказания текущего блока, отклонения (дисперсии) значений соседних выборок текущего блока и тому подобного. Кроме того, может генерироваться метка, указывающая, определено ли множество интерполяционных фильтров в качестве интерполяционных фильтров для целевой выборки.[191] Additionally, when a plurality of interpolation filters are defined as interpolation filters for the target sample, the encoding device may output prediction (temporal) samples based on each interpolation filter and output a prediction sample of the target sample based on the output (temporal) prediction sample. For example, the prediction sample of the target sample may be derived by averaging the (temporal) prediction samples, or may be derived by weighting the summation of the (temporal) prediction samples. Moreover, whether a plurality of interpolation filters is defined as an interpolation filter for the target sample can be inferred based on the size of the current block, the intra-prediction mode of the current block, the deviation (variance) of the values of neighboring samples of the current block, and the like. In addition, a mark may be generated indicating whether a plurality of interpolation filters are defined as interpolation filters for the target sample.
[192] Например, интерполяционные фильтры для целевой выборки могут включать в себя кубический фильтр и гауссов фильтр. В этом случае, устройство кодирования может выводить коэффициенты фильтрации кубического фильтра на основе положения целевой выборки и угла предсказания режима интра-предсказания и может выводить коэффициенты фильтрации гауссова фильтра на основе положения целевой выборки и угла предсказания режима интра-предсказания. Устройство кодирования может выводить первую выборку предсказания для целевой выборки на основе коэффициентов фильтра кубического фильтра и опорных выборок, выводить вторую выборку предсказания для целевой выборки на основе коэффициентов фильтрации гауссова фильтра и опорных выборок и выводить выборку предсказания целевой выборки на основе первой выборки предсказания и второй выборки предсказания. Выборка предсказания целевой выборки может выводиться путем усреднения первой выборки предсказания и второй выборки предсказания. Альтернативно, выборка предсказания целевой выборки может выводиться путем взвешенного суммирования первой выборки предсказания и второй выборки предсказания. В этом случае, вес для первой выборки предсказания может находиться в обратной пропорции с расстоянием между целевой выборкой и опорными выборками, и вес для второй выборки предсказания может выводиться как значение, полученное путем вычитания веса для первой выборки предсказания из 1. Альтернативно, первый вес и второй вес, используемые здесь, могут масштабироваться с повышением в единицах целых и выводиться во избежание вычисления с десятичной запятой.[192] For example, interpolation filters for the target sample may include a cubic filter and a Gaussian filter. In this case, the encoding device can output the filter coefficients of a cubic filter based on the position of the target sample and the prediction angle of the intra-prediction mode, and can output the filter coefficients of the Gaussian filter based on the position of the target sample and the prediction angle of the intra-prediction mode. The encoding device may output a first prediction sample for the target sample based on the filter coefficients of the cubic filter and the reference samples, output a second prediction sample for the target sample based on the filter coefficients of the Gaussian filter and the reference samples, and output a prediction sample of the target sample based on the first prediction sample and the second sample. predictions. The prediction sample of the target sample may be derived by averaging the first prediction sample and the second prediction sample. Alternatively, the prediction sample of the target sample may be derived by weighting the sum of the first prediction sample and the second prediction sample. In this case, the weight for the first prediction sample may be inversely proportional to the distance between the target sample and the reference samples, and the weight for the second prediction sample may be derived as the value obtained by subtracting the weight for the first prediction sample from 1. Alternatively, the first weight and the second weights used here can be scaled up in integer units and output to avoid decimal point calculations.
[193] Также, например, интерполяционные фильтры для целевой выборки могут включать в себя кубический фильтр и линейный фильтр. В этом случае, устройство кодирования может выводить коэффициенты фильтрации кубического фильтра на основе положения опорной выборки и может выводить коэффициенты фильтрации линейного фильтра на основе положения опорной выборки. Устройство кодирования может выводить первую выборку предсказания для целевой выборки на основе коэффициентов фильтрации кубического фильтра и опорных выборок, выводить вторую выборку предсказания для целевой выборки на основе коэффициентов фильтрации линейного фильтра и опорных выборок и выводить выборку предсказания целевой выборки на основе первой выборки предсказания и второй выборки предсказания. Выборка предсказания целевой выборки может выводиться путем усреднения первой выборки предсказания и второй выборки предсказания. Альтернативно, выборка предсказания целевой выборки может выводиться путем взвешенного суммирования первой выборки предсказания и второй выборки предсказания. В этом случае, вес для первой выборки предсказания может находиться в обратной пропорции с расстоянием между целевой выборкой и опорными выборками, и вес для второй выборки предсказания может выводиться как значение, получаемое путем вычитания веса для первой выборки предсказания из 1. Альтернативно, первый вес и второй вес, используемые здесь, могут масштабироваться с повышением в единицах целых и выводиться во избежание вычисления с десятичной запятой.[193] Also, for example, interpolation filters for the target sample may include a cubic filter and a linear filter. In this case, the encoding device can output cubic filter filter coefficients based on the position of the reference sample and can output linear filter filter coefficients based on the position of the reference sample. The encoding device may output a first prediction sample for the target sample based on the filter coefficients of the cubic filter and the reference samples, output a second prediction sample for the target sample based on the filter coefficients of the linear filter and the reference samples, and output a prediction sample of the target sample based on the first prediction sample and the second sample. predictions. The prediction sample of the target sample may be derived by averaging the first prediction sample and the second prediction sample. Alternatively, the prediction sample of the target sample may be derived by weighting the sum of the first prediction sample and the second prediction sample. In this case, the weight for the first prediction sample may be inversely proportional to the distance between the target sample and the reference samples, and the weight for the second prediction sample may be derived as the value obtained by subtracting the weight for the first prediction sample from 1. Alternatively, the first weight and the second weights used here can be scaled up in integer units and output to avoid decimal point calculations.
[194] В другом примере, если режим MPM (наиболее вероятный режим) применяется к текущему блоку, чтобы вывести режим интра-предсказания текущего блока на основе режима интра-предсказания соседнего блока текущего блока, и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, а не планарный режим или режим DC, интерполяционный фильтр для целевой выборки может определяться на основе соседних блоков, выбранных через соседний режим MPM. То есть, интерполяционный фильтр, используемый в соседнем блоке, может выводиться в качестве интерполяционного фильтра для целевой выборки. Если режим MPM применяется к текущему блоку, устройство кодирования может определять список MPM на основе режима интра-предсказания для левого или верхнего соседнего блока текущего блока и определять режим интра-предсказания на основе списка MPM.[194] In another example, if the MPM (most probable mode) mode is applied to the current block to infer the intra-prediction mode of the current block based on the intra-prediction mode of the adjacent block of the current block, and the intra-prediction mode of the current block is a directed mode intra-prediction rather than planar or DC mode, the interpolation filter for the target sample can be determined based on neighboring blocks sampled through the neighboring MPM mode. That is, the interpolation filter used in the adjacent block can be output as an interpolation filter for the target sample. If the MPM mode is applied to the current block, the encoder may determine the MPM list based on the intra-prediction mode for the left or upper adjacent block of the current block, and determine the intra-prediction mode based on the MPM list.
[195] Устройство кодирования генерирует информацию предсказания для текущего блока, кодирует информацию предсказания и выводит кодированную информацию предсказания (S1350). Устройство кодирования может кодировать информацию предсказания для текущего блока и выводить кодированную информацию в форме потока битов. Информация предсказания может включать в себя информацию о режиме интра-предсказания текущего блока. Устройство кодирования может генерировать информацию о режиме интра-предсказания, указывающую режим интра-предсказания, кодировать информацию режима интра-предсказания и выводить информацию в виде потока битов. Информация режима интра-предсказания может включать в себя информацию, непосредственно указывающую режим интра-предсказания для текущего блока, или может включать в себя информацию, указывающую любой один кандидат в списке кандидатов режима интра-предсказания, полученном на основе режима интра-предсказания левого или верхнего блока текущего блока. Список кандидатов режима интра-предсказания может указывать список MPM.[195] The encoding device generates prediction information for the current block, encodes the prediction information, and outputs the encoded prediction information (S1350). The encoding apparatus may encode prediction information for the current block and output the encoded information in the form of a bit stream. The prediction information may include information about the intra-prediction mode of the current block. The encoding device may generate intra-prediction mode information indicating the intra-prediction mode, encode the intra-prediction mode information, and output the information as a bit stream. The intra-prediction mode information may include information directly indicating the intra-prediction mode for the current block, or may include information indicating any one candidate in the intra-prediction mode candidate list obtained based on the left or top intra-prediction mode block of the current block. The intra-prediction mode candidate list may indicate a list of MPMs.
[196] Кроме того, когда текущий блок разделяется на множество областей, информация предсказания может включать в себя информацию, указывающую размер разделенных областей текущего блока и интерполяционный фильтр каждой области. Кроме того, когда интерполяционный фильтр для целевой выборки выбирается на основе размера текущего блока, режима интра-предсказания текущего блока или расстояния между целевой выборкой и опорными выборками, информация предсказания может включать в себя информацию касательно конкретного значения, используемого для выбора интерполяционного фильтра для целевой выборки. Когда интерполяционный фильтр выбирается на основе размера текущего блока и режима интра-предсказания текущего блока, информация предсказания может включать в себя информацию касательно первого конкретного значения и информацию касательно второго конкретного значения. Также, информация предсказания может включать в себя метку, указывающую, определено ли множество интерполяционных фильтров в качестве интерполяционных фильтров для целевой выборки. Когда метка указывает, что множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, выборка предсказания для целевой выборки может выводиться на основе множества интерполяционных фильтров, и когда метка указывает, что множество интерполяционных фильтров не определено в качестве интерполяционных фильтров для целевой выборки, выборка предсказания для целевой выборки может не выводиться на основе множества интерполяционных фильтров. Например, когда значение метки представляет собой 1, метка может указывать, что множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, и когда значение метки представляет собой 0, метка может указывать, что множество интерполяционных фильтров не определено в качестве интерполяционных фильтров для целевой выборки. Информация предсказания может сигнализироваться через набор параметров видео (VPS), набор параметров последовательности (SPS), набор параметров картинки (PPS) или заголовок сегмента вырезки или может сигнализироваться на основе блока.[196] In addition, when a current block is divided into a plurality of regions, the prediction information may include information indicating the size of the divided regions of the current block and an interpolation filter of each region. In addition, when the interpolation filter for the target sample is selected based on the size of the current block, the intra-prediction mode of the current block, or the distance between the target sample and the reference samples, the prediction information may include information regarding the specific value used to select the interpolation filter for the target sample . When the interpolation filter is selected based on the size of the current block and the intra-prediction mode of the current block, the prediction information may include information regarding the first specific value and information regarding the second specific value. Also, the prediction information may include a mark indicating whether a plurality of interpolation filters are defined as interpolation filters for the target sample. When the mark indicates that a plurality of interpolation filters are defined as interpolation filters for the target sample, the prediction sample for the target sample may be derived based on the plurality of interpolation filters, and when the mark indicates that the plurality of interpolation filters is not defined as interpolation filters for the target sample, the sample predictions for the target sample may not be derived from multiple interpolation filters. For example, when the label value is 1, the label may indicate that a plurality of interpolation filters are defined as interpolation filters for the target sample, and when the label value is 0, the label may indicate that a plurality of interpolation filters are not defined as interpolation filters for the target sample. samples. The prediction information may be signaled via a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS) or a slice segment header, or may be signaled on a block basis.
[197] Фиг. 14 схематично иллюстрирует способ декодирования видео посредством устройства декодирования в соответствии с настоящим раскрытием. Способ, раскрытый на фиг. 14, может выполняться посредством устройства декодирования, раскрытого на фиг. 4. Конкретно, например, этапы S1400-S1440 согласно фиг. 14 могут выполняться посредством модуля предсказания устройства декодирования.[197] FIG. 14 schematically illustrates a method for decoding video by a decoding apparatus according to the present disclosure. The method disclosed in FIG. 14 may be performed by the decoding apparatus disclosed in FIG. 4. Specifically, for example, steps S1400 to S1440 according to FIG. 14 may be performed by the prediction module of the decoding device.
[198] Устройство декодирования выводит режим интра-предсказания для текущего блока (S1400). Устройство декодирования может получать информацию предсказания о текущем блоке через поток битов. Информация предсказания может включать в себя информацию, непосредственно указывающую режим интра-предсказания для текущего блока, или включать в себя информацию, указывающую любой из кандидатов в списке кандидатов режима интра-предсказания, выведенном на основе режима интра-предсказания левого или верхнего блока текущего блока. Список кандидатов режима интра-предсказания может называться списком кандидатов MPM. Устройство декодирования может выводить режим интра-предсказания для текущего блока на основе полученной информации предсказания. Режим интра-предсказания может представлять собой один из двух ненаправленных режимов предсказания и 33 направленных режимов предсказания. Как описано выше, два ненаправленных режима предсказания могут включать в себя режим интра-DC и интра-планарный режим. Альтернативно, режим интра-предсказания может представлять собой один из двух ненаправленных режимов интра-предсказания и 65 направленных режимов интра-предсказания. Как описано выше, два ненаправленных режима предсказания могут включать в себя режим интра-DC и интра-планарный режим. Кроме того, 65 направленных режимов интра-предсказания могут включать в себя вертикально направленные режимы интра-предсказания и горизонтально направленные режимы интра-предсказания. Вертикально направленные режимы интра-предсказания могут включать в себя от режима интра-предсказания #34 до режима интра-предсказания #66, и горизонтально направленные режимы интра-предсказания могут включать в себя от режима интра-предсказания #2 до режима интра-предсказания #33.[198] The decoder outputs the intra-prediction mode for the current block (S1400). The decoding apparatus may obtain prediction information about the current block through the bit stream. The prediction information may include information directly indicating the intra-prediction mode for the current block, or include information indicating any of the candidates in the intra-prediction mode candidate list derived based on the intra-prediction mode of the left or top block of the current block. The intra-prediction mode candidate list may be referred to as an MPM candidate list. The decoding apparatus may output an intra-prediction mode for the current block based on the received prediction information. The intra-prediction mode may be one of two non-directional prediction modes and 33 directed prediction modes. As described above, the two non-directional prediction modes may include an intra-DC mode and an intra-planar mode. Alternatively, the intra-prediction mode may be one of two non-directional intra-prediction modes and 65 directed intra-prediction modes. As described above, the two non-directional prediction modes may include an intra-DC mode and an intra-planar mode. In addition, the 65 directional intra-prediction modes may include vertically directional intra-prediction modes and horizontally directional intra-prediction modes. Vertically directed intra-prediction modes may include intra-prediction mode #34 to intra-prediction mode #66, and horizontally directed intra-prediction modes may include intra-prediction mode #2 to intra-prediction mode #33 .
[199] Устройство декодирования выводит соседние выборки, включающие в себя левые соседние выборки и верхние соседние выборки текущего блока (S1410). Устройство декодирования может выводить соседние выборки текущего блока. Соседние выборки могут включать в себя левые соседние выборки и верхние соседние выборки. Кроме того, соседние выборки могут включать в себя левые верхние выборки. Левые соседние выборки, левая верхняя соседняя выборка и верхние соседние выборки могут выводиться из соседних блоков, уже реконструированных во время декодирования текущего блока. Могут выводиться 2N верхних соседних выборок, левые верхние соседние выборки и 2N левых соседних выборок текущего блока. Если размер текущего блока равен N×N, и компонент x верхней левой выборки текущего блока представляет собой 0, и его компонент y представляет собой 0, левые соседние выборки могут представлять собой от p[-1][0] до p[-1][2N-1], левая верхняя соседняя выборка может представлять собой p[-1][-1], и верхние соседние выборки могут представлять собой от p[0][-1] до p[2N-1][-1].[199] The decoding apparatus outputs neighboring samples including left neighboring samples and upper neighboring samples of the current block (S1410). The decoder can output adjacent samples of the current block. Neighbor samples may include left neighbor samples and top neighbor samples. In addition, neighboring samples may include top-left samples. Left neighbor samples, left top neighbor sample, and top neighbor samples may be derived from neighboring blocks already reconstructed during decoding of the current block. The 2N top neighbor samples, the top left neighbor samples, and the 2N left neighbor samples of the current block can be output. If the size of the current block is N×N, and the x component of the top left sample of the current block is 0, and its y component is 0, the left neighboring samples can be p[-1][0] to p[-1] [2N-1], the top left neighbor sample may be p[-1][-1], and the top neighbor samples may be p[0][-1] to p[2N-1][-1] .
[200] Альтернативно, когда размер текущего блока равен M×N, и компонент x верхней левой выборки текущего блока представляет собой 0, и его компонент y представляет собой 0, могут выводиться M+N верхних соседних выборок, левые верхние соседние выборки и M-N левых соседних выборок текущего блока. Если размер текущего блока имеет неквадратную форму M×N, и компонент x верхней левой выборки текущего блока представляет собой 0, и его компонент y представляет собой 0, левые соседние выборки могут представлять собой от p[-1][0] до p[-1][M+N-1], левая верхняя соседняя выборка может представлять собой p[-1][-1], и верхние соседние выборки могут представлять собой от p[0][-1] до p[M+N-1][-1].[200] Alternatively, when the size of the current block is M×N, and the x component of the top left sample of the current block is 0, and its y component is 0, M+N top neighbor samples, top left neighbor samples, and M-N left neighboring samples of the current block. If the size of the current block is non-square M×N, and the x component of the top left sample of the current block is 0, and its y component is 0, the left neighboring samples can be p[-1][0] to p[- 1][M+N-1], the upper left neighboring sample may be p[-1][-1], and the upper neighboring samples may be p[0][-1] to p[M+N- 1][-1].
[201] Устройство декодирования выводит опорные выборки для предсказания целевой выборки среди соседних выборок на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания (S1420). Устройство декодирования может выводить положение опорной выборки относительно целевой выборки на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания, и когда положение опорной выборки представляет собой положение дробной выборки, устройство декодирования может выводить соседние выборки, расположенные около положения, выведенного на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания, в качестве опорных выборок целевой выборки. То есть, устройство декодирования может выводить множество соседних выборок в качестве опорных выборок целевой выборки на основе положения целевой выборки текущего блока и угла предсказания режима интра-предсказания. Например, четыре соседних выборки могут выводиться как опорные выборки целевой выборки. Здесь, целевая выборка может представлять выборку в текущем блоке, на котором выполняется интра-предсказание. Угол предсказания режима интра-предсказания может выводиться на основе Таблицы 1, описанной выше, и intraPredAngle может представлять собой переменную, указывающую угол предсказания, выведенный из режима интра-предсказания.[201] The decoding apparatus outputs reference samples for predicting the target sample among neighboring samples based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode (S1420). The decoding apparatus may output the position of the reference sample relative to the target sample based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode, and when the position of the reference sample is the position of a fractional sample, the decoding apparatus may output adjacent samples located around the position derived based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode, as reference samples of the target sample. That is, the decoding device can output a plurality of neighboring samples as reference samples of the target sample based on the position of the target sample of the current block and the prediction angle of the intra-prediction mode. For example, four adjacent samples may be output as reference samples of the target sample. Here, the target sample may represent a sample in the current block on which intra-prediction is performed. The prediction angle of the intra-prediction mode may be derived based on Table 1 described above, and intraPredAngle may be a variable indicating the prediction angle derived from the intra-prediction mode.
[202] Устройство декодирования определяет интерполяционный фильтр для целевой выборки (S1430). Устройство декодирования может определять интерполяционный фильтр для целевой выборки на основе размера текущего блока и/или режима интра-предсказания текущего блока. Также, например, интерполяционный фильтр может определяться, когда положение опорной выборки представляет собой положение дробной выборки.[202] The decoding apparatus determines an interpolation filter for the target sample (S1430). The decoding apparatus may determine an interpolation filter for the target sample based on the size of the current block and/or the intra-prediction mode of the current block. Also, for example, an interpolation filter may be determined when the position of the reference sample is the position of a fractional sample.
[203] Например, интерполяционный фильтр для целевой выборки может определяться на основе размера текущего блока. Например, если размер текущего блока равен 4×4, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока равен 4×4, кубический фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Кубический фильтр представляет собой один из сложных интерполяционных фильтров, и кубический фильтр может называться сплайн-фильтром.[203] For example, an interpolation filter for the target sample may be determined based on the size of the current block. For example, if the current block size is 4x4, a complex interpolation filter may be defined as the interpolation filter for the target sample. Specifically, when the current block size is 4x4, a cubic filter can be defined as an interpolation filter for the target sample. A cubic filter is one of the complex interpolation filters, and a cubic filter may be called a spline filter.
[204] Также, если текущий блок является квадратным блоком, ширина и высота равны друг другу. То есть, поскольку текущий блок является квадратным блоком, имеющим размер N×N, опорный размер (т.е., опорное значение) при выборе интерполяционного фильтра может представлять собой N для направленного режима интра-предсказания любого направления предсказания. При этом, если текущий блок является неквадратным блоком, то есть, если текущий блок является неквадратный блок, имеющим размер M×N, когда режим интра-предсказания текущего блока представляет собой режим интра-предсказания, имеющий вертикальную направленность, размер опорного блока (т.е., опорное значение) для выбора интерполяционного фильтра может представлять собой M. Аналогично, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока представляет собой режим интра-предсказания, имеющий горизонтальную направленность, размер текущего блока (т.е., опорное значение) в качестве опоры для выбора интерполяционного фильтра может представлять собой N. Альтернативно, напротив, если текущий блок является неквадратным блоком, имеющий размер M×N, и режим интра-предсказания текущего блока представляет собой режим интра-предсказания, имеющий вертикальную направленность, интерполяционный фильтр текущего блока может выбираться на основе N, и аналогично, если текущий блок является неквадратным блоком, имеющим размер M×N, и режим интра-предсказания текущего блока представляет собой режим интра-предсказания, имеющий горизонтальную направленность, интерполяционный фильтр текущего блока может выбираться на основе M. Однако, в конкретном примере, который будет описан далее, когда режим интра-предсказания, имеющий вертикальную направленность, применяется к текущему блоку, имеющему размер M×N, размер текущего блока в качестве опоры для выбора интерполяционного фильтра может быть представлен посредством M, и аналогично, если режим интра-предсказания, имеющий горизонтальную направленность, применяется к текущему блоку, размер текущего блока может быть представлен посредством N. Здесь, когда режим интра-предсказания включает в себя 65 направленных режимов интра-предсказания и два ненаправленных режима интра-предсказания, режим интра-предсказания, имеющий вертикальную направленность, может представлять режимы интра-предсказания #34-#66, и режим интра-предсказания, имеющий горизонтальную направленность, может представлять режимы интра-предсказания #2-#33.[204] Also, if the current block is a square block, the width and height are equal to each other. That is, since the current block is a square block having size N×N, the reference size (ie, reference value) when selecting the interpolation filter may be N for the intra-prediction directional mode of any prediction direction. Moreover, if the current block is a non-square block, that is, if the current block is a non-square block having a size of M×N, when the intra-prediction mode of the current block is an intra-prediction mode having a vertical orientation, the size of the reference block (i.e. e., reference value) for selecting an interpolation filter may be M. Similarly, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having a horizontal orientation, the size of the current block (i.e., the reference value) as the reference for selecting the interpolation filter may be N. Alternatively, on the contrary, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode -prediction having a vertical directionality, the interpolation filter of the current block can be selected based on N, and similarly, if the current block is a non-square block having size M×N, and the intra-prediction mode of the current block is an intra-prediction mode having a horizontal directionality , the interpolation filter of the current block can be selected based on M. However, in the specific example that will be described later, when the intra-prediction mode having a vertical direction is applied to the current block having size M×N, the size of the current block as a reference for interpolation filter selection can be represented by M, and similarly, if an intra-prediction mode having a horizontal directionality is applied to the current block, the size of the current block can be represented by N. Here, when the intra-prediction mode includes 65 directional intra-mode -prediction and two non-directional intra-prediction modes, an intra-prediction mode having a vertical focus may represent intra-prediction modes #34-#66, and an intra-prediction mode having a horizontal focus may represent intra-prediction modes #2- #33.
[205] Также, например, может быть определено, является ли размер текущего блока, указанный формой текущего блока и направленностью режима интра-предсказания, меньшим, чем конкретное значение. Если размер текущего блока меньше, чем конкретное значение, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки, и если размер текущего блока не меньше, чем конкретное значение, интерполяционный фильтр, имеющий эффект фильтра нижних частот, может определяться в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока меньше, чем конкретное значение, кубический фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Если размер текущего блока не меньше, чем конкретное значение, гауссов фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Альтернативно, когда размер текущего блока не меньше, чем конкретное значение, линейный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Интерполяционный фильтр, имеющий эффект фильтра нижних частот, может включать в себя гауссов фильтр и линейный фильтр. Здесь, конкретное значение может быть установлено в 4, 8, 16, 32 или тому подобное. Также, информация предсказания для текущего блока может включать в себя информацию о конкретном значении. В этом случае, конкретное значение может выводиться на основе информации о конкретном значении.[205] Also, for example, it can be determined whether the size of the current block, indicated by the shape of the current block and the directionality of the intra-prediction mode, is smaller than a specific value. If the size of the current block is smaller than a specific value, a complex interpolation filter can be defined as an interpolation filter for the target sample, and if the size of the current block is not smaller than a specific value, an interpolation filter having a low-pass filter effect can be defined as an interpolation filter for the target sample. Specifically, when the size of the current block is smaller than a specific value, a cubic filter may be defined as an interpolation filter for the target sample. If the current block size is not smaller than a specific value, a Gaussian filter can be specified as an interpolation filter for the target sample. Alternatively, when the current block size is not smaller than a particular value, a linear filter may be defined as an interpolation filter for the target sample. The interpolation filter having a low-pass filter effect may include a Gaussian filter and a linear filter. Here, the specific value can be set to 4, 8, 16, 32 or the like. Also, the prediction information for the current block may include information about a specific value. In this case, a specific value may be inferred based on information about the specific value.
[206] Конкретно, когда ширина и высота текущего блока равны по величине (т.е., когда текущий блок является квадратным блоком), может определяться, является ли ширина текущего блока, меньшей, чем конкретное значение, и когда ширина текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр для целевой выборки, и когда ширина текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[206] Specifically, when the width and height of the current block are equal in size (i.e., when the current block is a square block), it can be determined whether the width of the current block is smaller than a specific value, and when the width of the current block is smaller, than a specific value, the interpolation filter for the target sample can be output as a cubic filter for the target sample, and when the width of the current block is not smaller than the specific value, the interpolation filter for the target sample can be output as a Gaussian filter.
[207] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком), и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, может определяться, является ли ширина текущего блока меньшей, чем конкретное значение. Когда ширина текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда ширина текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[207] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block), and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, it can be determined whether the width is of the current block is less than a specific value. When the width of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the width of the current block is not less than the specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[208] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, может определяться, является ли высота текущего блока меньшей, чем конкретное значение. Когда высота текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда высота текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[208] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, it can be determined whether the height of the current block is block less than a specific value. When the height of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the height of the current block is not less than the specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[209] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок является неквадратным блоком) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, может определяться, является ли высота текущего блока меньшей, чем конкретное значение. Когда высота текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, и когда высота текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[209] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, it can be determined whether the height of the current block is block less than a specific value. When the height of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the height of the current block is not less than the specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[210] Кроме того, когда ширина и высота текущего блока отличаются (то есть, когда текущий блок представляет собой неквадратный блок) и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, может определяться, является ли ширина текущего блока меньшей, чем конкретное значение. Когда ширина текущего блока меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как кубический фильтр, а когда ширина текущего блока не меньше, чем конкретное значение, интерполяционный фильтр для целевой выборки может выводиться как гауссов фильтр.[210] In addition, when the width and height of the current block are different (that is, when the current block is a non-square block) and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, it can be determined whether the width is of the current block is less than a specific value. When the width of the current block is less than a specific value, the interpolation filter for the target sample may be output as a cubic filter, and when the width of the current block is not less than the specific value, the interpolation filter for the target sample may be output as a Gaussian filter.
[211] В другом примере, интерполяционный фильтр для целевой выборки может определяться на основе режима интра-предсказания текущего блока.[211] In another example, an interpolation filter for the target sample may be determined based on the intra-prediction mode of the current block.
[212] Например, может определяться, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем конкретное значение, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки, а если угол предсказания режима интра-предсказания не меньше, чем конкретное значение, интерполяционный фильтр, имеющий эффект фильтра нижних частот, может определяться в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда угол предсказания режима интра-предсказания меньше, чем конкретное значение, кубический фильтр может определяться в качестве интерполяционного фильтра для целевой выборки, а когда угол предсказания режима интра-предсказания не меньше, чем конкретное значение, гауссов фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Альтернативно, когда угол предсказания режима интра-предсказания не меньше, чем конкретное значение, линейный фильтр может определяться в качестве интерполяционного фильтра для целевой выборки. Интерполяционный фильтр, имеющий эффект фильтра нижних частот, может включать в себя гауссов фильтр и линейный фильтр. Здесь, конкретное значение может быть установлено в 4, 8, 16, 32 или тому подобное. Угол предсказания режима интра-предсказания может выводиться на основе Таблицы 1, описанной выше, и intraPredAngle может указывать угол предсказания режима интра-предсказания. Также, например, конкретное значение может быть установлено в 11. Также, информация предсказания для текущего блока может включать в себя информацию о конкретном значении. В этом случае, конкретное значение может выводиться на основе информации о конкретном значении.[212] For example, it may be determined whether the intra-prediction mode prediction angle of the current block is smaller than a specific value. If the prediction angle of the intra-prediction mode is smaller than the specific value, a complex interpolation filter can be determined as an interpolation filter for the target sample, and if the prediction angle of the intra-prediction mode is not smaller than the specific value, an interpolation filter having a low-pass filter effect is can be defined as an interpolation filter for the target sample. Specifically, when the prediction angle of the intra-prediction mode is smaller than a specific value, a cubic filter may be defined as an interpolation filter for the target sample, and when the prediction angle of an intra-prediction mode is not smaller than a specific value, a Gaussian filter may be defined as an interpolation filter for the target sample. Alternatively, when the prediction angle of the intra-prediction mode is not less than a specific value, a linear filter may be defined as an interpolation filter for the target sample. The interpolation filter having a low-pass filter effect may include a Gaussian filter and a linear filter. Here, the specific value can be set to 4, 8, 16, 32 or the like. The prediction angle of the intra-prediction mode may be derived based on Table 1 described above, and intraPredAngle may indicate the prediction angle of the intra-prediction mode. Also, for example, the specific value may be set to 11. Also, the prediction information for the current block may include information about the specific value. In this case, a specific value may be inferred based on information about the specific value.
[213] В другом примере, интерполяционный фильтр для целевой выборки может определяться на основе размера текущего блока и режима интра-предсказания.[213] In another example, the interpolation filter for the target sample may be determined based on the current block size and the intra-prediction mode.
[214] Например, устройство декодирования может определять, является ли размер текущего блока меньшим, чем первое конкретное значение, и когда размер текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять интерполяционный фильтр, имеющий эффект фильтра нижних частот, в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда размер текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять гауссов фильтр в качестве интерполяционного фильтра. Альтернативно, когда размер текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять линейный фильтр в качестве интерполяционного фильтра.[214] For example, the decoding apparatus may determine whether the size of the current block is smaller than the first specific value, and when the size of the current block is not smaller than the first specific value, the decoding apparatus may determine an interpolation filter having a low-pass filter effect as interpolation filter for the target sample. Specifically, when the size of the current block is not smaller than the first specific value, the decoding apparatus may determine a Gaussian filter as an interpolation filter. Alternatively, when the current block size is not smaller than the first specific value, the decoding apparatus may determine the linear filter as an interpolation filter.
[215] Конкретно, когда ширина и высота текущего блока равны друг другу, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Когда ширина текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[215] Specifically, when the width and height of the current block are equal to each other, the decoding apparatus may determine whether the width of the current block is smaller than the first specific value. When the width of the current block is not smaller than the first specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[216] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Когда ширина текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[216] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the decoding apparatus can determine whether the width of the current block is smaller than the first specific value. When the width of the current block is not smaller than the first specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[217] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, устройство декодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Когда высота текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[217] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the decoding apparatus can determine whether the height of the current block is smaller than the first specific value. When the height of the current block is not less than the first specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[218] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, устройство декодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Когда высота текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[218] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the decoding device can determine whether the height of the current block is smaller than the first specific value. When the height of the current block is not less than the first specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[219] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Когда ширина текущего блока не меньше, чем первое конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки.[219] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the decoding apparatus can determine whether the width of the current block is smaller than the first specific value. When the width of the current block is not smaller than the first specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample.
[220] Если размер текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять сложный интерполяционный фильтр в качестве интерполяционного фильтра для целевой выборки. Конкретно, когда угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра.[220] If the size of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine a complex interpolation filter as an interpolation filter for the target sample. Specifically, when the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine the cubic filter as the interpolation filter.
[221] Конкретно, когда ширина и высота текущего блока равны и ширина текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение, и когда угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра.[221] Specifically, when the width and height of the current block are equal and the width of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value, and when the mode prediction angle intra-prediction is less than the second specific value, the decoding device may determine the cubic filter as an interpolation filter.
[222] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра.[222] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the decoding apparatus can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine the cubic filter as an interpolation filter.
[223] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, устройство декодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра.[223] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the decoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine the cubic filter as an interpolation filter.
[224] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, устройство декодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра.[224] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the decoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine the cubic filter as an interpolation filter.
[225] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра.[225] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the decoding apparatus can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine the cubic filter as an interpolation filter.
[226] Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять интерполяционный фильтр, имеющий эффект фильтра нижних частот, в качестве интерполяционного фильтра для целевой выборки. Конкретно, если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять гауссов фильтр в качестве интерполяционного фильтра. Альтернативно, если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять линейный фильтр в качестве интерполяционного фильтра.[226] If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the decoding apparatus may determine an interpolation filter having a low-pass filter effect as an interpolation filter for the target sample. Specifically, if the prediction angle of the intra-prediction mode is not smaller than the second specific value, the decoding apparatus may determine a Gaussian filter as an interpolation filter. Alternatively, if the prediction angle of the intra-prediction mode is not smaller than the second specific value, the decoding apparatus may determine the linear filter as the interpolation filter.
[227] Конкретно, если ширина и высота текущего блока равны и ширина текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем конкретное значение, и если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[227] Specifically, if the width and height of the current block are equal and the width of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the specific value, and if the intra-mode prediction angle -prediction is not less than the second specific value, the decoding device may determine a Gaussian filter or a linear filter as an interpolation filter.
[228] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[228] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the decoding apparatus can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as the interpolation filter.
[229] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, устройство декодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[229] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the decoding apparatus can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as the interpolation filter.
[230] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий вертикальную направленность, устройство декодирования может определять, является ли высота текущего блока меньшей, чем первое конкретное значение. Если высота текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания не меньше, чем второе конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[230] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a vertical directionality, the decoding device can determine whether the height of the current block is smaller than the first specific value. If the height of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is not smaller than the second specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as the interpolation filter.
[231] Если ширина и высота текущего блока отличаются друг от друга и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, имеющий горизонтальную направленность, устройство декодирования может определять, является ли ширина текущего блока меньшей, чем первое конкретное значение. Если ширина текущего блока меньше, чем первое конкретное значение, устройство декодирования может определять, не является ли угол предсказания режима интра-предсказания текущего блока меньшим, чем второе конкретное значение. Если угол предсказания режима интра-предсказания меньше, чем второе конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра.[231] If the width and height of the current block are different from each other and the intra-prediction mode of the current block is a directional intra-prediction mode having a horizontal directionality, the decoding apparatus can determine whether the width of the current block is smaller than the first specific value. If the width of the current block is smaller than the first specific value, the decoding apparatus may determine whether the intra-prediction mode prediction angle of the current block is smaller than the second specific value. If the prediction angle of the intra-prediction mode is smaller than the second specific value, the decoding apparatus may determine a Gaussian filter or a linear filter as the interpolation filter.
[232] При этом, информация предсказания для текущего блока может включать в себя информацию касательно первого конкретного значения и информацию касательно второго конкретного значения. В этом случае, первое конкретное значение может выводиться на основе информации касательно первого конкретного значения, и второе конкретное значение может выводиться на основе информации касательно второго конкретного значения. Альтернативно, первое конкретное значение и второе конкретное значение могут выводиться на основе предварительно установленных значений.[232] Here, the prediction information for the current block may include information regarding the first specific value and information regarding the second specific value. In this case, the first specific value may be output based on information regarding the first specific value, and the second specific value may be output based on information regarding the second specific value. Alternatively, the first specific value and the second specific value may be output based on the preset values.
[233] В другом примере, текущий блок может разделяться на множество областей, и интерполяционный фильтр каждой области может определяться на основе расстояния между каждой областью и соседними выборками текущего блока. В этом случае, интерполяционный фильтр для целевой выборки может выводиться в качестве интерполяционного фильтра области, включающей в себя целевую выборку. Кроме того, если размер текущего блока больше или равен конкретному размеру, текущий блок может разделяться на множество областей. Конкретно, интерполяционные фильтры для областей, более близких к соседним выборкам текущего блока, чем конкретное значение, среди областей, могут определяться как сложные интерполяционные фильтры, и интерполяционные фильтры для областей, более удаленных от соседних выборок текущего блока, чем конкретное значение, среди областей, могут определяться как интерполяционные фильтры, имеющие эффект фильтра нижних частот.[233] In another example, the current block may be divided into multiple regions, and the interpolation filter of each region may be determined based on the distance between each region and adjacent samples of the current block. In this case, the interpolation filter for the target sample may be output as an interpolation filter of the region including the target sample. In addition, if the size of the current block is greater than or equal to a specific size, the current block may be divided into multiple regions. Specifically, interpolation filters for regions closer to neighboring samples of the current block than a particular value among regions may be defined as complex interpolation filters, and interpolation filters for regions further away from neighboring samples of the current block than a particular value among regions. can be defined as interpolation filters having a low-pass filter effect.
[234] При этом, размер множества областей, выведенных из текущего блока, может быть предварительно установлен. Альтернативно, размер множества областей может выводиться на основе размера текущего блока, режима интра-предсказания или тому подобного. Например, в случае, когда режим интра-предсказания текущего блока представляет собой один из режимов интра-предсказания #35-#66, размер разделенных областей текущего блока может выводиться как размер 4×4. Здесь, если текущий блок представляет собой блок, имеющий размер 16×16, текущий блок может разделяться на области, имеющие размер 4×4, сложный интерполяционный фильтр может определяться в качестве интерполяционного фильтра для областей с #0 по #7 в порядке растрового сканирования, и интерполяционный фильтр, имеющий эффект фильтра нижних частот, может определяться в качестве интерполяционных фильтров для других областей. Например, интерполяционные фильтры для областей #0-#7 в порядке растрового сканирования, среди областей, могут определяться как кубические фильтры, и интерполяционные фильтры для других областей могут определяться как гауссовы фильтры или линейные фильтры. Здесь, номера 16 областей, имеющих размер 4×4 в соответствии с порядком растрового сканирования, могут последовательно выводиться в порядке от верхней строки к нижней строке и последовательно выводиться в порядке слева направо в каждой строке. То есть, области, включенные в первую строку среди 16 областей, имеющих размер 4×4 текущего блока, могут быть представлены как область #0, область #1, область #2 и область #3 в порядке слева направо, области, включенные во вторую строку, могут быть представлены как область #4, область #5, область #6 и область #7 в порядке слева направо, области, включенные в третью строку, могут быть представлены как область #8, область #9, область #10 и область #11 в порядке слева направо, и области, включенные в четвертую строку, могут быть представлены как область #12, область #13, область #14 и область #15 в порядке слева направо. При этом информация предсказания для текущего блока может приниматься, и информация предсказания может включать в себя информацию, указывающую размер каждой из разделенных областей текущего блока, и информацию, указывающую интерполяционный фильтр каждой области. В этом случае, размеры разделенных областей текущего блока и интерполяционные фильтры для соответственных областей могут выводиться на основе информации, указывающей размеры разделенных областей текущего блока, и информации, указывающей интерполяционные фильтры соответственных областей.[234] Here, the size of a plurality of areas output from the current block can be preset. Alternatively, the size of the plurality of regions may be inferred based on the size of the current block, the intra-prediction mode, or the like. For example, in the case where the intra prediction mode of the current block is one of the intra prediction modes #35 to #66, the size of the divided areas of the current block may be output as a size of 4×4. Here, if the current block is a block having a size of 16x16, the current block may be divided into regions having a size of 4x4, a complex interpolation filter may be defined as an interpolation filter for regions #0 to #7 in raster scanning order, and an interpolation filter having a low-pass filter effect can be defined as interpolation filters for other areas. For example, interpolation filters for regions #0-#7 in raster scan order, among the regions, may be defined as cubic filters, and interpolation filters for other regions may be defined as Gaussian filters or linear filters. Here, the 16 area numbers having a size of 4x4 according to the raster scanning order may be sequentially output in order from the top line to the bottom line, and sequentially output in the order from left to right in each line. That is, the areas included in the first row among the 16 areas having a size of 4x4 of the current block can be represented as area #0, area #1, area #2 and area #3 in order from left to right, areas included in the second line can be represented as area #4, area #5, area #6 and area #7 in order from left to right, areas included in the third line can be represented as area #8, area #9, area #10 and area #11 is in order from left to right, and the areas included in the fourth row can be represented as area #12, area #13, area #14 and area #15 in order from left to right. Here, prediction information for the current block may be received, and the prediction information may include information indicating the size of each of the divided regions of the current block and information indicating an interpolation filter of each region. In this case, the sizes of the divided regions of the current block and the interpolation filters for the corresponding regions can be derived based on the information indicating the sizes of the divided regions of the current block and the information indicating the interpolation filters of the corresponding regions.
[235] В другом примере, интерполяционный фильтр для целевой выборки может определяться на основе расстояния между целевой выборкой и опорными выборками. Расстояние между целевой выборкой и опорными выборками может выводиться на основе положения целевой выборки и угла предсказания режима интра-предсказания текущего блока. Например, расстояние может быть вычислено на основе положения целевой выборки и значения тригонометрической функции (например, tanθ) в соответствии с углом предсказания режима интра-предсказания. Альтернативно, расстояние может выводиться на основе предопределенной таблицы для размера блока и режима интра-предсказания. Альтернативно, расстояние между целевой выборкой и опорными выборками может указывать вертикальное расстояние или горизонтальное расстояние. Если расстояние между целевой выборкой и опорными выборками указывает вертикальное расстояние, расстояние может выводиться на основе компонента y целевой выборки. Также, если расстояние между целевой выборкой и опорными выборками указывает горизонтальное расстояние, расстояние может выводиться на основе компонента x целевой выборки.[235] In another example, an interpolation filter for the target sample may be determined based on the distance between the target sample and the reference samples. The distance between the target sample and the reference samples can be derived based on the position of the target sample and the prediction angle of the intra-prediction mode of the current block. For example, the distance can be calculated based on the position of the target sample and the value of a trigonometric function (eg, tanθ) according to the prediction angle of the intra-prediction mode. Alternatively, the distance may be inferred based on a predefined table for block size and intra-prediction mode. Alternatively, the distance between the target sample and the reference samples may indicate a vertical distance or a horizontal distance. If the distance between the target sample and the reference samples indicates a vertical distance, the distance may be inferred based on the y component of the target sample. Also, if the distance between the target sample and the reference samples indicates a horizontal distance, the distance may be inferred based on the x component of the target sample.
[236] Например, устройство декодирования может выводить расстояние между целевой выборкой и опорными выборками и определять, является ли расстояние меньшим, чем конкретное значение. Если расстояние меньше, чем конкретное значение, устройство декодирования может определять сложный интерполяционный фильтр в качестве интерполяционного фильтра для целевой выборки, а если расстояние не меньше, чем конкретное значение, устройство декодирования может определять интерполяционный фильтр, имеющий эффект фильтра нижних частот, в качестве интерполяционного фильтра для целевой выборки. Конкретно, если расстояние меньше, чем конкретное значение, устройство декодирования может определять кубический фильтр в качестве интерполяционного фильтра для целевой выборки, и если расстояние не меньше, чем конкретное значение, устройство декодирования может определять гауссов фильтр или линейный фильтр в качестве интерполяционного фильтра для целевой выборки. Конкретное значение может выводиться на основе размера текущего блока. Альтернативно, конкретное значение может выводиться на основе режима интра-предсказания текущего блока, является ли текущий блок квадратным/неквадратным блоком, или тому подобного. Например, когда размер текущего блока равен N×N, конкретное значение может выводиться как N/2. Также, информация предсказания для текущего блока может приниматься, и информация предсказания может включать в себя информацию касательно конкретного значения. В этом случае, конкретное значение может выводиться на основе информации касательно конкретного значения.[236] For example, the decoding apparatus may output the distance between the target sample and the reference samples and determine whether the distance is less than a particular value. If the distance is less than a specific value, the decoding device may determine a complex interpolation filter as an interpolation filter for the target sample, and if the distance is not less than a specific value, the decoding device may determine an interpolation filter having a low-pass filter effect as an interpolation filter for the target sample. Specifically, if the distance is less than a specific value, the decoding device may determine a cubic filter as an interpolation filter for the target sample, and if the distance is not less than the specific value, the decoding device may determine a Gaussian filter or a linear filter as an interpolation filter for the target sample. . A specific value can be inferred based on the size of the current block. Alternatively, the specific value may be output based on the intra-prediction mode of the current block, whether the current block is a square block/non-square block, or the like. For example, when the current block size is N×N, the specific value may be output as N/2. Also, prediction information for the current block may be received, and the prediction information may include information regarding a specific value. In this case, a specific value may be inferred based on information regarding the specific value.
[237] В другом примере, множество интерполяционных фильтров может определяться в качестве интерполяционных фильтров для целевой выборки. Например, интерполяционные фильтры для целевой выборки могут включать в себя один из сложных интерполяционных фильтров и один из интерполяционных фильтров, имеющих эффект фильтра нижних частот. Альтернативно, интерполяционные фильтры для целевой выборки могут включать в себя один из сложных интерполяционных фильтров и два из интерполяционных фильтров, имеющих эффект фильтра нижних частот. Альтернативно, интерполяционные фильтры для целевой выборки могут включать в себя два из сложных интерполяционных фильтров и один из интерполяционных фильтров, имеющих эффект фильтра нижних частот. Конкретно, интерполяционные фильтры для целевой выборки могут включать в себя кубический фильтр и гауссов фильтр. При этом информация предсказания для текущего блока может приниматься, и информация предсказания может включать в себя метку, указывающую, определено ли множество интерполяционных фильтров в качестве интерполяционных фильтров для целевой выборки. То, определено ли множество интерполяционных фильтров, может определяться на основе метки. Например, когда метка указывает, что множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, выборка предсказания для целевой выборки может выводиться на основе множества интерполяционных фильтров, а когда метка указывает, что множество интерполяционных фильтров не определено в качестве интерполяционных фильтров для целевой выборки, выборка предсказания для целевой выборки может не выводиться на основе множества интерполяционных фильтров. Например, когда значение метки представляет собой 1, метка может указывать, что множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, а когда значение метки представляет собой 0, метка может указывать, что множество интерполяционных фильтров не определено в качестве интерполяционных фильтров для целевой выборки.[237] In another example, a plurality of interpolation filters may be defined as interpolation filters for the target sample. For example, the interpolation filters for the target sample may include one of complex interpolation filters and one of interpolation filters having a low-pass filter effect. Alternatively, the interpolation filters for the target sample may include one of complex interpolation filters and two of interpolation filters having a low-pass filter effect. Alternatively, the interpolation filters for the target sample may include two of complex interpolation filters and one of interpolation filters having a low-pass filter effect. Specifically, the interpolation filters for the target sample may include a cubic filter and a Gaussian filter. Here, prediction information for the current block may be received, and the prediction information may include a mark indicating whether a plurality of interpolation filters are defined as interpolation filters for the target sample. Whether a plurality of interpolation filters are defined may be determined based on the label. For example, when the mark indicates that a plurality of interpolation filters are defined as interpolation filters for the target sample, the prediction sample for the target sample may be derived based on the plurality of interpolation filters, and when the mark indicates that the plurality of interpolation filters is not defined as interpolation filters for the target sample ,the prediction sample for the target sample may not be ,derived based on multiple interpolation filters. For example, when the label value is 1, the label may indicate that a plurality of interpolation filters are defined as interpolation filters for the target sample, and when the label value is 0, the label may indicate that a plurality of interpolation filters are not defined as interpolation filters for the target sample. samples.
[238] Устройство декодирования выводит выборку предсказания целевой выборки на основе интерполяционного фильтра и опорных выборок (S1440). Устройство декодирования может выводить коэффициенты фильтрации интерполяционного фильтра на основе положения целевой выборки и угла предсказания режима интра-предсказания и выводить выборку предсказания целевой выборки на основе коэффициентов фильтрации опорных выборок. Например, четыре соседние выборки среди соседних выборок текущего блока могут выводиться как опорные выборки, и могут выводиться четыре коэффициента фильтрации интерполяционного фильтра. Устройство декодирования может интерполировать опорные выборки на основе коэффициентов фильтрации, чтобы вывести выборку предсказания. Выборка предсказания может выводиться на основе уравнения 1, описанного выше.[238] The decoding apparatus outputs a prediction sample of the target sample based on the interpolation filter and the reference samples (S1440). The decoding apparatus may output filter coefficients of the interpolation filter based on the position of the target sample and the prediction angle of the intra-prediction mode, and output the prediction sample of the target sample based on the filter coefficients of the reference samples. For example, four adjacent samples among adjacent samples of the current block may be output as reference samples, and four filter coefficients of the interpolation filter may be output. The decoder may interpolate the reference samples based on the filter coefficients to output a prediction sample. The prediction sample can be derived based on Equation 1 described above.
[239] Дополнительно, когда множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, устройство декодирования может выводить (временные) выборки предсказания на основе каждого интерполяционного фильтра и выводить выборку предсказания целевой выборки на основе выведенной (временной) выборки предсказания. Например, выборка предсказания целевой выборки может выводиться путем усреднения (временных) выборок предсказания или может выводиться путем взвешенного суммирования (временных) выборок предсказания. То, определено ли множество интерполяционных фильтров в качестве интерполяционного фильтра для целевой выборки, может выводиться на основе размера текущего блока, режима интра-предсказания текущего блока, отклонения значений соседних выборок текущего блока и тому подобного. Кроме того, может приниматься метка, указывающая, определено ли множество интерполяционных фильтров в качестве интерполяционных фильтров для целевой выборки, и то, определено ли множество интерполяционных фильтров в качестве интерполяционных фильтров для целевой выборки, может определяться на основе метки.[239] Additionally, when a plurality of interpolation filters are defined as interpolation filters for the target sample, the decoding apparatus may output prediction (temporal) samples based on each interpolation filter and output a prediction sample of the target sample based on the output (temporal) prediction sample. For example, the prediction sample of a target sample may be derived by averaging the (temporal) prediction samples, or may be derived by a weighted summation of the (temporal) prediction samples. Whether a plurality of interpolation filters is determined as an interpolation filter for the target sample can be inferred based on the size of the current block, the intra-prediction mode of the current block, the deviation of the values of neighboring samples of the current block, and the like. In addition, a label indicating whether a plurality of interpolation filters are defined as interpolation filters for the target sample may be received, and whether a plurality of interpolation filters are defined as interpolation filters for the target sample may be determined based on the label.
[240] Например, интерполяционные фильтры для целевой выборки могут включать в себя кубический фильтр и гауссов фильтр. В этом случае, устройство декодирования может выводить коэффициенты фильтрации кубического фильтра на основе положения целевой выборки и угла предсказания режима интра-предсказания и может выводить коэффициенты фильтрации гауссова фильтра на основе положения целевой выборки и угла предсказания режима интра-предсказания. Устройство декодирования может выводить первую выборку предсказания для целевой выборки на основе коэффициентов фильтрации кубического фильтра и опорных выборок, выводить вторую выборку предсказания для целевой выборки на основе коэффициентов фильтрации гауссова фильтра и опорных выборок и выводить выборку предсказания целевой выборки на основе первой выборки предсказания и второй выборки предсказания. Выборка предсказания целевой выборки может выводиться путем усреднения первой выборки предсказания и второй выборки предсказания. Альтернативно, выборка предсказания целевой выборки может выводиться путем взвешенного суммирования первой выборки предсказания и второй выборки предсказания. В этом случае, вес для первой выборки предсказания может находиться в обратной пропорции с расстоянием между целевой выборкой и опорными выборками, и вес для второй выборки предсказания может выводиться как значение, получаемое путем вычитания веса для первой выборки предсказания из 1. Альтернативно, первый вес и второй вес, используемые здесь, могут масштабироваться с повышением в единицах целых и выводиться во избежание вычисления с десятичной запятой.[240] For example, interpolation filters for the target sample may include a cubic filter and a Gaussian filter. In this case, the decoding device can output filter coefficients of a cubic filter based on the position of the target sample and the prediction angle of the intra-prediction mode, and can output filter coefficients of the Gaussian filter based on the position of the target sample and the prediction angle of the intra-prediction mode. The decoding apparatus may output a first prediction sample for the target sample based on the filter coefficients of the cubic filter and the reference samples, output a second prediction sample for the target sample based on the filter coefficients of the Gaussian filter and the reference samples, and output a prediction sample of the target sample based on the first prediction sample and the second sample. predictions. The prediction sample of the target sample may be derived by averaging the first prediction sample and the second prediction sample. Alternatively, the prediction sample of the target sample may be derived by weighting the sum of the first prediction sample and the second prediction sample. In this case, the weight for the first prediction sample may be inversely proportional to the distance between the target sample and the reference samples, and the weight for the second prediction sample may be derived as the value obtained by subtracting the weight for the first prediction sample from 1. Alternatively, the first weight and the second weights used here can be scaled up in integer units and output to avoid decimal point calculations.
[241] Также, например, интерполяционные фильтры для целевой выборки могут включать в себя кубический фильтр и линейный фильтр. В этом случае, устройство декодирования может выводить коэффициенты фильтрации кубического фильтра на основе положения опорной выборки и может выводить коэффициенты фильтрации линейного фильтра на основе положения опорной выборки. Устройство декодирования может выводить первую выборку предсказания для целевой выборки на основе коэффициентов фильтрации кубического фильтра и опорных выборок, выводить вторую выборку предсказания для целевой выборки на основе коэффициентов фильтрации линейного фильтра и опорных выборок и выводить выборку предсказания целевой выборки на основе первой выборки предсказания и второй выборки предсказания. Выборка предсказания целевой выборки может выводиться путем усреднения первой выборки предсказания и второй выборки предсказания. Альтернативно, выборка предсказания целевой выборки может выводиться путем взвешенного суммирования первой выборки предсказания и второй выборки предсказания. В этом случае, вес для первой выборки предсказания может находиться в обратной пропорции с расстоянием между целевой выборкой и опорными выборками, и вес для второй выборки предсказания может выводиться как значение, получаемое путем вычитания веса для первой выборки предсказания из 1. Альтернативно, первый вес и второй вес, используемые здесь, могут масштабироваться с повышением в единицах целых и выводиться во избежание вычисления с десятичной запятой.[241] Also, for example, interpolation filters for the target sample may include a cubic filter and a linear filter. In this case, the decoding device can output filter coefficients of a cubic filter based on the position of the reference sample, and can output filter coefficients of a linear filter based on the position of the reference sample. The decoding apparatus may output a first prediction sample for the target sample based on the filter coefficients of the cubic filter and the reference samples, output a second prediction sample for the target sample based on the filter coefficients of the linear filter and the reference samples, and output a prediction sample of the target sample based on the first prediction sample and the second sample. predictions. The prediction sample of the target sample may be derived by averaging the first prediction sample and the second prediction sample. Alternatively, the prediction sample of the target sample may be derived by weighting the sum of the first prediction sample and the second prediction sample. In this case, the weight for the first prediction sample may be inversely proportional to the distance between the target sample and the reference samples, and the weight for the second prediction sample may be derived as the value obtained by subtracting the weight for the first prediction sample from 1. Alternatively, the first weight and the second weights used here can be scaled up in integer units and output to avoid decimal point calculations.
[242] В другом примере, если режим MPM (наиболее вероятный режим) применяется к текущему блоку, чтобы вывести режим интра-предсказания текущего блока на основе режима интра-предсказания соседнего блока текущего блока, и режим интра-предсказания текущего блока представляет собой направленный режим интра-предсказания, а не планарный режим или режим DC, интерполяционный фильтр для целевой выборки может определяться на основе соседних блоков, выбранных через соседний режим MPM. То есть, интерполяционный фильтр, используемый в соседнем блоке, может выводиться в качестве интерполяционного фильтра для целевой выборки. Если режим MPM применяется к текущему блоку, устройство декодирования может определять список MPM на основе режима интра-предсказания для левого или верхнего соседнего блока текущего блока и определять режим интра-предсказания на основе списка MPM.[242] In another example, if the MPM (most probable mode) mode is applied to the current block to infer the intra-prediction mode of the current block based on the intra-prediction mode of the adjacent block of the current block, and the intra-prediction mode of the current block is a directed mode intra-prediction rather than planar or DC mode, the interpolation filter for the target sample can be determined based on neighboring blocks sampled via the neighboring MPM mode. That is, the interpolation filter used in the adjacent block can be output as an interpolation filter for the target sample. If the MPM mode is applied to the current block, the decoding apparatus may determine the MPM list based on the intra-prediction mode for the left or upper adjacent block of the current block, and determine the intra-prediction mode based on the MPM list.
[243] Хотя не показано на чертеже, устройство декодирования может использовать выборку предсказания в качестве реконструированной выборки в соответствии с режимом предсказания или суммировать остаточную выборку с выборкой предсказания, чтобы генерировать реконструированную выборку. Когда существует остаточная выборка для целевого блока, устройство декодирования может принимать информацию касательно остатка для целевого блока, и информация касательно остатка может быть включена в информацию касательно реконструированной выборки. Информация касательно остатка может включать в себя коэффициент преобразования, относящийся к остаточной выборке. Устройство декодирования может выводить остаточную выборку (или массивы остаточных выборок) для целевого блока на основе информации остатка. Устройство декодирования может генерировать реконструированную выборку на основе выборки предсказания и остаточной выборки и может выводить реконструированный блок или реконструированную картинку на основе реконструированной выборки. После этого, чтобы повысить субъективное/объективное качество изображения, как это необходимо, устройство декодирования может применять процедуру контурной фильтрации, такую как фильтрация устранения блочности и/или процедура SAO, к реконструированной картинке, как описано выше.[243] Although not shown in the drawing, the decoding apparatus may use the prediction sample as a reconstructed sample according to a prediction mode, or add the residual sample with the prediction sample to generate a reconstructed sample. When there is a residual sample for a target block, the decoding apparatus may receive information regarding the residual for the target block, and information regarding the residual may be included in information regarding the reconstructed sample. The residual information may include a conversion factor related to the residual sample. The decoding apparatus may output a residual sample (or arrays of residual samples) for a target block based on the residual information. The decoding apparatus may generate a reconstructed sample based on the prediction sample and the residual sample, and may output a reconstructed block or a reconstructed picture based on the reconstructed sample. Thereafter, to enhance the subjective/objective image quality as desired, the decoding apparatus may apply an edge filtering procedure such as deblocking filtering and/or an SAO procedure to the reconstructed picture as described above.
[244] Кроме того, устройство декодирования может принимать информацию предсказания для текущего блока через поток битов и может энтропийно кодировать ее. Информация предсказания может включать в себя информацию о режиме интра-предсказания текущего блока. Устройство декодирования может получать информацию касательно режима интра-предсказания, указывающую режим интра-предсказания. Информация режима интра-предсказания может включать в себя информацию, непосредственно указывающую режим интра-предсказания для текущего блока, или может включать в себя информацию, указывающую любой один кандидат в списке кандидатов режима интра-предсказания, полученном на основе режима интра-предсказания левого или верхнего блока текущего блока. Список кандидатов режима интра-предсказания может указывать список MPM.[244] In addition, the decoding apparatus may receive prediction information for the current block via a bitstream and may entropy encode it. The prediction information may include information about the intra-prediction mode of the current block. The decoding apparatus may obtain information regarding the intra-prediction mode indicating the intra-prediction mode. The intra-prediction mode information may include information directly indicating the intra-prediction mode for the current block, or may include information indicating any one candidate in the intra-prediction mode candidate list obtained based on the left or top intra-prediction mode block of the current block. The intra-prediction mode candidate list may indicate a list of MPMs.
[245] Кроме того, когда текущий блок разделяется на множество областей, информация предсказания может включать в себя информацию, указывающую размер разделенных областей текущего блока и интерполяционный фильтр каждой области. Кроме того, когда интерполяционный фильтр для целевой выборки выбирается на основе размера текущего блока, режима интра-предсказания текущего блока или расстояния между целевой выборкой и опорными выборками, информация предсказания может включать в себя информацию касательно конкретного значения, используемого для выбора интерполяционного фильтра для целевой выборки. Когда интерполяционный фильтр выбирается на основе размера текущего блока и режима интра-предсказания текущего блока, информация предсказания может включать в себя информацию касательно первого конкретного значения и информацию касательно второго конкретного значения. Также, информация предсказания может включать в себя метку, указывающую, определено ли множество интерполяционных фильтров в качестве интерполяционных фильтров для целевой выборки. Когда метка указывает, что множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, выборка предсказания целевой выборки может выводиться на основе множества интерполяционных фильтров, а когда метка указывает, что множество интерполяционных фильтров не определено в качестве интерполяционных фильтров для целевой выборки, выборка предсказания целевой выборки может не выводиться на основе множества интерполяционных фильтров. Например, когда значение метки представляет собой 1, метка может указывать, что множество интерполяционных фильтров определено в качестве интерполяционных фильтров для целевой выборки, а когда значение метки представляет собой 0, метка может указывать, что множество интерполяционных фильтров не определено в качестве интерполяционных фильтров для целевой выборки. Информация предсказания может сигнализироваться через набор параметров видео (VPS), набор параметров последовательности (SPS), набор параметров картинки (PPS) или заголовок сегмента вырезки или может сигнализироваться на основе блока.[245] In addition, when a current block is divided into a plurality of regions, the prediction information may include information indicating the size of the divided regions of the current block and an interpolation filter of each region. In addition, when the interpolation filter for the target sample is selected based on the size of the current block, the intra-prediction mode of the current block, or the distance between the target sample and the reference samples, the prediction information may include information regarding the specific value used to select the interpolation filter for the target sample . When the interpolation filter is selected based on the size of the current block and the intra-prediction mode of the current block, the prediction information may include information regarding the first specific value and information regarding the second specific value. Also, the prediction information may include a mark indicating whether a plurality of interpolation filters are defined as interpolation filters for the target sample. When the mark indicates that a plurality of interpolation filters are defined as interpolation filters for the target sample, a prediction sample of the target sample can be derived based on the plurality of interpolation filters, and when the mark indicates that a plurality of interpolation filters is not defined as interpolation filters for the target sample, the prediction sample the target sample may not be inferred based on multiple interpolation filters. For example, when the label value is 1, the label may indicate that a plurality of interpolation filters are defined as interpolation filters for the target sample, and when the label value is 0, the label may indicate that a plurality of interpolation filters are not defined as interpolation filters for the target sample. samples. The prediction information may be signaled via a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS) or a slice segment header, or may be signaled on a block basis.
[246] В соответствии с настоящим раскрытием, описанным выше, предсказание может выполняться на целевой выборке на основе интерполяционного фильтра, выведенного в соответствии с размером текущего блока, расстоянием между целевой выборкой и опорной выборкой и/или режимом предсказания (углом предсказания), причем опорная выборка положения дробной выборки для целевой выборки может точно генерироваться, чтобы повысить точность предсказания для текущего блока, и остаток для текущего блока может быть уменьшен, чтобы повысить эффективность кодирования.[246] According to the present disclosure described above, prediction may be performed on a target sample based on an interpolation filter derived according to the current block size, the distance between the target sample and the reference sample, and/or prediction mode (prediction angle), wherein the reference the fractional sample position sample for the target sample can be accurately generated to improve the prediction accuracy for the current block, and the residual for the current block can be reduced to improve coding efficiency.
[247] Также, в соответствии с настоящим раскрытием, поскольку интерполяционный фильтр для целевой выборки может выбираться на основе различных условий, описанных выше, количеств битов информации о выборе интерполяционного фильтра может быть уменьшено, причем точность предсказания для текущего блока может быть повышена, и эффективность кодирования текущего блока может быть повышена.[247] Also, in accordance with the present disclosure, since the interpolation filter for the target sample can be selected based on various conditions described above, the numbers of interpolation filter selection information bits can be reduced, and the prediction accuracy for the current block can be improved, and the efficiency The encoding of the current block can be improved.
[248] В вышеописанном варианте осуществления, способы описаны на основе блок-схемы, имеющей последовательность этапов или блоков. Настоящее раскрытие не ограничено порядком вышеописанных этапов или блоков. Некоторые этапы или блоки могут происходить одновременно или в другом порядке относительно других этапов или блоков, как описано выше. Дополнительно, специалисты в данной области техники поймут, что этапы, показанные в блок-схеме последовательности операций выше, не являются исключительными, что дополнительные этапы могут быть включены или что один или несколько этапов в блок-схеме последовательности операций могут быть удалены без влияния на объем настоящего раскрытия.[248] In the above-described embodiment, the methods are described on the basis of a flow chart having a sequence of steps or blocks. The present disclosure is not limited to the order of the steps or blocks described above. Some steps or blocks may occur simultaneously or in a different order from other steps or blocks, as described above. Additionally, those skilled in the art will appreciate that the steps shown in the flowchart above are not exclusive, that additional steps may be included or that one or more steps in the flowchart may be deleted without affecting the volume of this disclosure.
[249] Способ в соответствии с настоящим раскрытием, описанным выше, может быть реализован в программном обеспечении. Устройство кодирования и/или устройство декодирования в соответствии с настоящим раскрытием может быть включено в устройство, которое выполняет обработку изображений, например, для TV, компьютера, смартфона, телевизионной приставки или устройства отображения.[249] The method in accordance with the present disclosure described above may be implemented in software. An encoding device and/or a decoding device according to the present disclosure may be included in a device that performs image processing, for example, for a TV, computer, smartphone, set-top box, or display device.
[250] Когда варианты осуществления настоящего раскрытия реализованы в программном обеспечении, вышеописанный способ может быть реализован посредством модулей (процессов, функций и так далее), которые выполняют функции, описанные выше. Такие модули могут храниться в памяти и исполняться процессором. Память может быть внутренней или внешней по отношению к процессору, и память может быть соединена с процессором с использованием различных хорошо известных средств. Процессор может содержать специализированную интегральную схему (ASIC), другие чипсеты, логическую схему и/или устройство обработки данных. Память может включать в себя ROM (постоянную память), RAM (память с произвольным доступом), флэш-память, карту памяти, носитель хранения и/или другое устройство хранения.[250] When embodiments of the present disclosure are implemented in software, the above-described method may be implemented through modules (processes, functions, and so on) that perform the functions described above. Such modules can be stored in memory and executed by the processor. The memory may be internal or external to the processor, and the memory may be coupled to the processor using various well known means. The processor may include an application specific integrated circuit (ASIC), other chipsets, logic circuitry, and/or data processing apparatus. The memory may include ROM (read-only memory), RAM (random access memory), flash memory, memory card, storage medium, and/or other storage device.
Claims (30)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/512,737 | 2017-05-31 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022118819A Division RU2798770C1 (en) | 2017-05-31 | 2022-07-11 | Method and device for image decoding based on intra prediction in image coding system |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2805157C1 true RU2805157C1 (en) | 2023-10-17 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120201296A1 (en) * | 2009-09-23 | 2012-08-09 | Sk Telecom Co., Ltd. | Method and apparatus for encoding/decoding images considering low frequency components |
US20120207211A1 (en) * | 2009-10-21 | 2012-08-16 | Sk Telecom Co., Ltd. | Image encoding and decoding apparatus and method |
RU2486692C1 (en) * | 2009-06-18 | 2013-06-27 | Кабусики Кайся Тосиба | Device of video coding and device of video decoding |
RU2550539C1 (en) * | 2011-04-25 | 2015-05-10 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Internal prediction method and encoder and decoder using same |
US20150296220A1 (en) * | 2008-09-08 | 2015-10-15 | Sk Telecom Co., Ltd. | Video encoding and decoding method using an intra prediction |
RU2584498C2 (en) * | 2011-11-04 | 2016-05-20 | Квэлкомм Инкорпорейтед | Intra-mode video encoding |
US20160277748A1 (en) * | 2011-06-30 | 2016-09-22 | Sk Telecom Co., Ltd. | Method and apparatus for coding/decoding a video using an intra prediction |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150296220A1 (en) * | 2008-09-08 | 2015-10-15 | Sk Telecom Co., Ltd. | Video encoding and decoding method using an intra prediction |
RU2486692C1 (en) * | 2009-06-18 | 2013-06-27 | Кабусики Кайся Тосиба | Device of video coding and device of video decoding |
US20120201296A1 (en) * | 2009-09-23 | 2012-08-09 | Sk Telecom Co., Ltd. | Method and apparatus for encoding/decoding images considering low frequency components |
US20120207211A1 (en) * | 2009-10-21 | 2012-08-16 | Sk Telecom Co., Ltd. | Image encoding and decoding apparatus and method |
RU2550539C1 (en) * | 2011-04-25 | 2015-05-10 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Internal prediction method and encoder and decoder using same |
US20160277748A1 (en) * | 2011-06-30 | 2016-09-22 | Sk Telecom Co., Ltd. | Method and apparatus for coding/decoding a video using an intra prediction |
RU2584498C2 (en) * | 2011-11-04 | 2016-05-20 | Квэлкомм Инкорпорейтед | Intra-mode video encoding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7469451B2 (en) | METHOD AND APPARATUS FOR DECODING IMAGE BY INTRA PREDICTION IN A VIDEO CODING SYSTEM | |
US10951908B2 (en) | Method and device for decoding image according to intra prediction in image coding system | |
RU2805157C1 (en) | Method and device for image decoding based on intra prediction in image coding system | |
RU2798770C1 (en) | Method and device for image decoding based on intra prediction in image coding system | |
RU2776098C2 (en) | Method and apparatus for decoding an image based on an intra-prediction in an image encoding system |