RU2810304C2 - Encoder, decoder, encoding method and decoding method - Google Patents

Encoder, decoder, encoding method and decoding method Download PDF

Info

Publication number
RU2810304C2
RU2810304C2 RU2021136315A RU2021136315A RU2810304C2 RU 2810304 C2 RU2810304 C2 RU 2810304C2 RU 2021136315 A RU2021136315 A RU 2021136315A RU 2021136315 A RU2021136315 A RU 2021136315A RU 2810304 C2 RU2810304 C2 RU 2810304C2
Authority
RU
Russia
Prior art keywords
prediction
block
value
parameter
current block
Prior art date
Application number
RU2021136315A
Other languages
Russian (ru)
Other versions
RU2021136315A (en
Inventor
Тадамаса ТОМА
Такахиро Ниси
Киёфуми АБЕ
Юсуке КАТО
Original Assignee
Панасоник Интеллекчуал Проперти Корпорэйшн оф Америка
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Панасоник Интеллекчуал Проперти Корпорэйшн оф Америка filed Critical Панасоник Интеллекчуал Проперти Корпорэйшн оф Америка
Publication of RU2021136315A publication Critical patent/RU2021136315A/en
Application granted granted Critical
Publication of RU2810304C2 publication Critical patent/RU2810304C2/en

Links

Images

Abstract

FIELD: means for image encoding.
SUBSTANCE: total sum of the absolute values of the sums of the horizontal gradient values, respectively, for pairs of relative pixel positions is retrieved, as a first parameter. The total sum of the absolute values of the sums of the vertical gradient values, respectively, for pairs of relative pixel positions is retrieved, as a second parameter. The total sum of horizontally related pixel difference values, respectively, for pairs of relative pixel positions is retrieved, as a third parameter. The total sum of vertically related pixel difference values, respectively, for pairs of relative pixel positions is retrieved, as a fourth parameter. The total sum of vertically related sums of horizontal gradient values, respectively, for pairs of relative pixel positions is retrieved, as a fifth parameter. Prediction image is generated, which is to be used to encode the current block using the first, second, third, fourth and fifth parameters.
EFFECT: increase of efficiency of image encoding.
1 cl, 72 dwg

Description

Область техники, к которой относится изобретениеField of technology to which the invention relates

[0001] Настоящее раскрытие относится к кодированию видео и относится, например, к системам, составляющим элементам, способам и т.д. при кодировании и декодировании видео.[0001] The present disclosure relates to video encoding and relates, for example, to systems, components, methods, etc. when encoding and decoding video.

Уровень техникиState of the art

[0002] Технология кодирования видео совершенствуется от H.261 и MPEG-1 до H.264/AVC (стандарт усовершенствованного кодирования видео), MPEG-LA, H.265/HEVC (стандарт высокоэффективного кодирования видео) и H.266/VVC (универсальный видеокодек). В силу такого совершенствования, всегда необходимо улучшать и оптимизировать технологию кодирования видео, чтобы обрабатывать цифровые видеоданные, объем которых продолжает увеличиваться в различных видах вариантов применения.[0002] Video encoding technology is evolving from H.261 and MPEG-1 to H.264/AVC (Advanced Video Coding standard), MPEG-LA, H.265/HEVC (High Efficiency Video Coding standard) and H.266/VVC ( universal video codec). Because of such advancements, there is always a need to improve and optimize video encoding technology to handle digital video data, the volume of which continues to increase in various types of application cases.

[0003] Следует отметить, что H.265/HEVC связан с одним примером традиционного стандарта, связанного с вышеописанной технологией кодирования видео.[0003] It should be noted that H.265/HEVC is associated with one example of a legacy standard associated with the video encoding technology described above.

Список библиографических ссылокList of bibliographic references

Патентные документыPatent documents

[0004] [0004]

[NPL 1] H.265 (ISO/IEC 23008-2 HEVC) / HEVC (High Efficiency Video Coding)[NPL 1] H.265 (ISO/IEC 23008-2 HEVC) / HEVC (High Efficiency Video Coding)

Сущность изобретенияThe essence of the invention

Техническая задачаTechnical problem

[0005] Относительно схемы кодирования, как описано выше, предложения новых схем желательны для увеличения эффективности кодирования, увеличения качества изображений, уменьшения объема обработки, уменьшения размеров схем, надлежащего выбора и т.д. элемента, который представляет собой опорный кадр, опорный блок и т.п. или операции.[0005] Regarding the encoding scheme, as described above, proposals for new schemes are desirable for increasing encoding efficiency, increasing image quality, reducing processing volume, reducing circuit sizes, proper selection, etc. element that represents a reference frame, reference block, etc. or operations.

[0006] Настоящее раскрытие предоставляет, например, конфигурацию или способ, который может обеспечивать по меньшей мере одно из увеличения эффективности кодирования, увеличения качества изображений, уменьшения объема обработки, уменьшения размера схем, надлежащего выбора и т.д. элемента или операции. Следует отметить, что настоящее раскрытие может охватывать возможные конфигурации или способы, которые могут обеспечивать преимущества, отличные от вышеуказанных преимуществ.[0006] The present disclosure provides, for example, a configuration or method that can provide at least one of increased coding efficiency, increased image quality, reduced processing volume, reduced circuit size, appropriate selection, etc. element or operation. It should be noted that the present disclosure may cover possible configurations or methods that may provide advantages other than the above advantages.

Решение задачиThe solution of the problem

[0007] Например, кодер согласно одному аспекту настоящего раскрытия представляет собой кодер, включающий в себя схему и запоминающее устройство, соединенное со схемой. При работе, схема: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относитеьной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0007] For example, an encoder according to one aspect of the present disclosure is an encoder including circuitry and a memory device coupled to the circuitry. In operation, the circuit: retrieves the absolute value of the sum of horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at a relative pixel position in the first range and the horizontal gradient value at a relative pixel position in the second range, for each of a plurality of pairs of relative pixel positions in the first range and a relative pixel position in a second range of a plurality of pairs of relative pixel positions, the first range including a first reference block for the current block, the second range including a second reference block for the current block, the plurality of pairs of relative pixel positions being defined typically and relative to the first range and the second range; retrieves, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieves the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieves, as a second parameter, the total sum of the plurality of absolute values of the sums of the vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; retrieves, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates the difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieves a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieves, as a third parameter, the total sum of the horizontally related pixel difference values of the set retrieved, respectively, for the plurality of pairs of relative pixel positions; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieves a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values retrieved, respectively, for a plurality of pairs of relative pixel positions; inverts or stores the plus or minus sign of the sum of the horizontal gradient values retrieved for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieves the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values retrieved, respectively, for the plurality of pairs of relative pixel positions; and generates a prediction image to be used to encode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0008] Некоторые реализации вариантов осуществления согласно настоящему раскрытию могут: повышать эффективность кодирования; упрощать процесс кодирования/декодирования; увеличивать скорость кодирования и/или декодирования; и эффективно выбирать соответствующие компоненты/операции, которые должны использоваться для кодирования и декодирования, к примеру, соответствующие фильтры, размеры блоков, векторы движения, опорные кадры, опорные блоки и т.д.[0008] Some implementations of embodiments according to the present disclosure may: improve encoding efficiency; simplify the encoding/decoding process; increase encoding and/or decoding speed; and efficiently select appropriate components/operations to be used for encoding and decoding, for example, appropriate filters, block sizes, motion vectors, reference frames, reference blocks, etc.

[0009] Дополнительные выгоды и преимущества согласно одному или более аспектов настоящего раскрытия должны становиться очевидными из описания изобретения и чертежей. Эти выгоды и преимущества могут получаться посредством признаков, описанных в некоторых вариантах осуществления, в описании изобретения и на чертежах. Тем не менее, все признаки не всегда должны обязательно предоставляться, с тем чтобы получать одно или более преимуществ и/или эффектов.[0009] Additional benefits and advantages according to one or more aspects of the present disclosure will become apparent from the description of the invention and the drawings. These benefits and advantages may be obtained through the features described in some embodiments, in the description of the invention and in the drawings. However, all features do not necessarily have to be provided in order to obtain one or more benefits and/or effects.

[0010] Следует отметить, что эти общие или конкретные аспекты могут реализовываться как система, способ, интегральная схема, компьютерная программа, носитель записи либо любая комбинация означенного.[0010] It should be noted that these general or specific aspects may be implemented as a system, method, integrated circuit, computer program, recording medium, or any combination thereof.

Преимущества изобретенияAdvantages of the invention

[0011] Конфигурация или способ согласно аспекту настоящего раскрытия может обеспечивать по меньшей мере одно из увеличения эффективности кодирования, увеличения качества изображений, уменьшения объема обработки, уменьшения размера схем, надлежащего выбора и т.д. элемента или операции. Следует отметить, что конфигурация или способ согласно аспекту настоящего раскрытия может обеспечивать преимущества, отличные от вышеописанных преимуществ.[0011] A configuration or method according to an aspect of the present disclosure may provide at least one of increased encoding efficiency, increased image quality, reduced processing volume, reduced circuit size, appropriate selection, etc. element or operation. It should be noted that the configuration or method according to an aspect of the present disclosure may provide advantages other than those described above.

Краткое описание чертежейBrief description of drawings

[0012] [0012]

[Фиг. 1] Фиг. 1 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера согласно варианту осуществления.[Fig. 1] Fig. 1 is a block diagram illustrating a functional configuration of an encoder according to an embodiment.

[Фиг. 2] Фиг. 2 является блок-схемой последовательности операций способа, указывающей один пример полного процесса декодирования, выполняемого посредством кодера.[Fig. 2] Fig. 2 is a flowchart indicating one example of a complete decoding process performed by the encoder.

[Фиг. 3] Фиг. 3 является концептуальной схемой, иллюстрирующей один пример разбиения на блоки.[Fig. 3] Fig. 3 is a conceptual diagram illustrating one example of blocking.

[Фиг. 4A] Фиг. 4A является концептуальной схемой, иллюстрирующей один пример конфигурации слайсов.[Fig. 4A] FIG. 4A is a conceptual diagram illustrating one example of a slice configuration.

[Фиг. 4B] Фиг. 4B является концептуальной схемой, иллюстрирующей один пример конфигурации тайлов.[Fig. 4B] FIG. 4B is a conceptual diagram illustrating one example of a tile configuration.

[Фиг. 5A] Фиг. 5A является диаграммой, указывающей базисные функции преобразования для различных типов преобразования.[Fig. 5A] FIG. 5A is a diagram indicating basic transformation functions for various types of transformation.

[Фиг. 5B] Фиг. 5B является концептуальной схемой, иллюстрирующей примерные пространственно варьирующиеся преобразования (SVT).[Fig. 5B] FIG. 5B is a conceptual diagram illustrating exemplary spatially varying transforms (SVT).

[Фиг. 6A] Фиг. 6A является концептуальной схемой, иллюстрирующей один пример формы фильтра, используемой в адаптивном контурном фильтре (ALF).[Fig. 6A] FIG. 6A is a conceptual diagram illustrating one example of a filter shape used in an adaptive loop filter (ALF).

[Фиг. 6B] Фиг. 6B является концептуальной схемой, иллюстрирующей другой пример формы фильтра, используемой в ALF.[Fig. 6B] FIG. 6B is a conceptual diagram illustrating another example of a filter shape used in the ALF.

[Фиг. 6C] Фиг. 6C является концептуальной схемой, иллюстрирующей другой пример формы фильтра, используемой в ALF.[Fig. 6C] FIG. 6C is a conceptual diagram illustrating another example of a filter shape used in the ALF.

[Фиг. 7] Фиг. 7 является блок-схемой, указывающей один пример конкретной конфигурации контурного фильтра, который функционирует в качестве фильтра удаления блочности (DBF).[Fig. 7] Fig. 7 is a block diagram indicating one example of a specific configuration of a loop filter that functions as a deblocking filter (DBF).

[Фиг. 8] Фиг. 8 является концептуальной схемой, указывающей пример фильтра удаления блочности, имеющего симметричную характеристику фильтрации относительно границы блока.[Fig. 8] Fig. 8 is a conceptual diagram indicating an example of a deblocking filter having a symmetrical filtering characteristic with respect to a block boundary.

[Фиг. 9] Фиг. 9 является концептуальной схемой для иллюстрации границы блока, для которой выполняется процесс фильтрации для удаления блочности.[Fig. 9] Fig. 9 is a conceptual diagram for illustrating a block boundary on which a filtering process to remove blocking is performed.

[Фиг. 10] Фиг. 10 является концептуальной схемой, указывающей примеры Bs-значений.[Fig. 10] Fig. 10 is a conceptual diagram indicating examples of Bs values.

[Фиг. 11] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования кодера.[Fig. 11] Fig. 11 is a flowchart illustrating one example of a process performed by an encoder prediction processor.

[Фиг. 12] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера.[Fig. 12] Fig. 12 is a flowchart illustrating another example of a process performed by an encoder prediction processor.

[Фиг. 13] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера.[Fig. 13] Fig. 13 is a flowchart illustrating another example of a process performed by an encoder prediction processor.

[Фиг. 14] Фиг. 14 является концептуальной схемой, иллюстрирующей шестьдесят семь режимов внутреннего прогнозирования, используемых при внутреннем прогнозировании в варианте осуществления.[Fig. 14] Fig. 14 is a conceptual diagram illustrating sixty-seven intra prediction modes used in intra prediction in the embodiment.

[Фиг. 15] Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей примерную базовую последовательность операций обработки внешнего прогнозирования.[Fig. 15] Fig. 15 is a flowchart illustrating an exemplary basic flow of inter-prediction processing.

[Фиг. 16] Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей один пример извлечения векторов движения.[Fig. 16] Fig. 16 is a flowchart illustrating one example of extracting motion vectors.

[Фиг. 17] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения.[Fig. 17] Fig. 17 is a flowchart illustrating another example of extracting motion vectors.

[Фиг. 18] Фиг. 18 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения.[Fig. 18] Fig. 18 is a flowchart illustrating another example of extracting motion vectors.

[Фиг. 19] Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме.[Fig. 19] Fig. 19 is a flowchart illustrating an example of external prediction in a normal external mode.

[Фиг. 20] Фиг. 20 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в режиме объединения.[Fig. 20] Fig. 20 is a flowchart illustrating an example of inter-prediction in the combining mode.

[Фиг. 21] Фиг. 21 является концептуальной схемой для иллюстрации одного примера процесса извлечения векторов движения в режиме объединения.[Fig. 21] Fig. 21 is a conceptual diagram for illustrating one example of a motion vector extraction process in a fusion mode.

[Фиг. 22] Фиг. 22 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса преобразования с повышением частоты кадров (FRUC).[Fig. 22] Fig. 22 is a flowchart illustrating one example of a frame rate upconversion (FRUC) process.

[Фиг. 23] Фиг. 23 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (билатерального сопоставления) между двумя блоками вдоль траектории движения.[Fig. 23] Fig. 23 is a conceptual diagram for illustrating one example of pattern matching (bilateral matching) between two blocks along a motion path.

[Фиг. 24] Фиг. 24 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре.[Fig. 24] Fig. 24 is a conceptual diagram for illustrating one example of pattern matching (pattern matching) between a pattern in the current frame and a block in the reference frame.

[Фиг. 25A] Фиг. 25A является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока на основе векторов движения множества соседних блоков.[Fig. 25A] FIG. 25A is a conceptual diagram for illustrating one example of extracting the motion vector of each sub-block based on the motion vectors of a plurality of neighboring blocks.

[Фиг. 25B] Фиг. 25B является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока в аффинном режиме, в котором используются три управляющих точки.[Fig. 25B] FIG. 25B is a conceptual diagram for illustrating one example of extracting the motion vector of each sub-block in an affine mode in which three control points are used.

[Фиг. 26A] Фиг. 26A является концептуальной схемой для иллюстрации аффинного режима объединения.[Fig. 26A] FIG. 26A is a conceptual diagram for illustrating an affine combining mode.

[Фиг. 26B] Фиг. 26B является концептуальной схемой для иллюстрации аффинного режима объединения, в котором используются две управляющих точки.[Fig. 26B] FIG. 26B is a conceptual diagram for illustrating an affine combining mode in which two control points are used.

[Фиг. 26C] Фиг. 26C является концептуальной схемой для иллюстрации аффинного режима объединения, в котором используются три управляющих точки.[Fig. 26C] FIG. 26C is a conceptual diagram for illustrating an affine combining mode that uses three control points.

[Фиг. 27] Фиг. 27 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в аффинном режиме объединения.[Fig. 27] Fig. 27 is a flowchart illustrating one example of a process in the affine combining mode.

[Фиг. 28A] Фиг. 28A является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются две управляющих точки.[Fig. 28A] FIG. 28A is a conceptual diagram for illustrating an affine outer mode in which two control points are used.

[Фиг. 28B] Фиг. 28B является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются три управляющих точки.[Fig. 28B] FIG. 28B is a conceptual diagram for illustrating an affine outer mode in which three control points are used.

[Фиг. 29] Фиг. 29 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в аффинном внешнем режиме.[Fig. 29] Fig. 29 is a flowchart illustrating one example of an affine external mode process.

[Фиг. 30A] Фиг. 30A является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором текущий блок имеет три управляющих точки, и соседний блок имеет две управляющих точки.[Fig. 30A] FIG. 30A is a conceptual diagram for illustrating an affine outer mode in which the current block has three control points and the adjacent block has two control points.

[Фиг. 30B] Фиг. 30B является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором текущий блок имеет две управляющих точки, и соседний блок имеет три управляющих точки.[Fig. 30B] FIG. 30B is a conceptual diagram for illustrating an affine outer mode in which the current block has two control points and the adjacent block has three control points.

[Фиг. 31A] Фиг. 31A является блок-схемой последовательности операций способа, иллюстрирующей процесс в режиме объединения, включающий в себя детализацию векторов движения в декодере (DMVR).[Fig. 31A] FIG. 31A is a flowchart illustrating a process in the combining mode including decoder motion vector detail (DMVR).

[Фиг. 31B] Фиг. 31B является концептуальной схемой для иллюстрации одного примера DMVR-процесса.[Fig. 31B] FIG. 31B is a conceptual diagram for illustrating one example of a DMVR process.

[Фиг. 32] Фиг. 32 является блок-схемой последовательности операций способа, иллюстрирующей один пример формирования прогнозного изображения.[Fig. 32] Fig. 32 is a flowchart illustrating one example of predictive image generation.

[Фиг. 33] Фиг. 33 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.[Fig. 33] Fig. 33 is a flowchart illustrating another example of predictive image generation.

[Фиг. 34] Фиг. 34 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.[Fig. 34] Fig. 34 is a flowchart illustrating another example of predictive image generation.

[Фиг. 35] Фиг. 35 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса коррекции прогнозных изображений, выполняемого посредством процесса перекрывающейся блочной компенсации движения (OBMC).[Fig. 35] Fig. 35 is a flowchart illustrating one example of a prediction image correction process performed by an overlapping block motion compensation (OBMC) process.

[Фиг. 36] Фиг. 36 является концептуальной схемой для иллюстрации одного примера процесса коррекции прогнозных изображений, выполняемого посредством OBMC-процесса.[Fig. 36] Fig. 36 is a conceptual diagram for illustrating one example of a prediction image correction process performed by an OBMC process.

[Фиг. 37] Фиг. 37 является концептуальной схемой для иллюстрации формирования двух треугольных прогнозных изображений.[Fig. 37] Fig. 37 is a conceptual diagram for illustrating the generation of two triangular projection images.

[Фиг. 38] Фиг. 38 является концептуальной схемой для иллюстрации модели при условии равномерного прямолинейного движения.[Fig. 38] Fig. 38 is a conceptual diagram to illustrate the model under the condition of uniform linear motion.

[Фиг. 39] Фиг. 39 является концептуальной схемой для иллюстрации одного примера способа формирования прогнозных изображений с использованием процесса коррекции яркости, выполняемого посредством процесса компенсации локальной освещенности (LIC).[Fig. 39] Fig. 39 is a conceptual diagram for illustrating one example of a method for generating predictive images using a luminance correction process performed by a local illuminance compensation (LIC) process.

[Фиг. 40] Фиг. 40 является блок-схемой, иллюстрирующей пример монтажа кодера.[Fig. 40] Fig. 40 is a block diagram illustrating an installation example of an encoder.

[Фиг. 41] Фиг. 41 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера согласно варианту осуществления.[Fig. 41] FIG. 41 is a block diagram illustrating a functional configuration of a decoder according to the embodiment.

[Фиг. 42] Фиг. 42 является блок-схемой последовательности операций способа, иллюстрирующей один пример полного процесса декодирования, выполняемого посредством декодера.[Fig. 42] FIG. 42 is a flowchart illustrating one example of a complete decoding process performed by the decoder.

[Фиг. 43] Фиг. 43 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования декодера.[Fig. 43] Fig. 43 is a flowchart illustrating one example of a process performed by a decoder prediction processor.

[Фиг. 44] Фиг. 44 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования декодера.[Fig. 44] Fig. 44 is a flowchart illustrating another example of a process performed by a decoder prediction processor.

[Фиг. 45] Фиг. 45 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме в декодере.[Fig. 45] Fig. 45 is a flowchart illustrating an example of inter-prediction in normal inter-mode in a decoder.

[Фиг. 46] Фиг. 46 является блок-схемой, иллюстрирующей пример монтажа видеодекодера.[Fig. 46] Fig. 46 is a block diagram illustrating an installation example of a video decoder.

[Фиг. 47] Фиг. 47 является блок-схемой последовательности операций способа, указывающей один пример внешнего прогнозирования согласно BIO.[Fig. 47] Fig. 47 is a flowchart indicating one example of external prediction according to BIO.

[Фиг. 48] Фиг. 48 является схемой, иллюстрирующей один пример функциональной конфигурации модуля внешнего прогнозирования, который выполняет внешнее прогнозирование согласно BIO.[Fig. 48] Fig. 48 is a diagram illustrating one example of a functional configuration of an external prediction module that performs external prediction according to a BIO.

[Фиг. 49] Фиг. 49 является блок-схемой последовательности операций способа, указывающей первый конкретный пример процесса декодирования на основе BIO согласно варианту осуществления.[Fig. 49] Fig. 49 is a flowchart indicating a first specific example of a BIO-based decoding process according to the embodiment.

[Фиг. 50] Фиг. 50 является концептуальной схемой, иллюстрирующей пример вычисления значений горизонтального градиента согласно варианту осуществления.[Fig. 50] Fig. 50 is a conceptual diagram illustrating an example of calculating horizontal gradient values according to an embodiment.

[Фиг. 51] Фиг. 51 является концептуальной схемой, иллюстрирующей пример вычисления значений вертикального градиента согласно варианту осуществления.[Fig. 51] Fig. 51 is a conceptual diagram illustrating an example of calculating vertical gradient values according to the embodiment.

[Фиг. 52] Фиг. 52 является блок-схемой последовательности операций способа, указывающей третий конкретный пример процесса декодирования на основе BIO согласно варианту осуществления.[Fig. 52] Fig. 52 is a flowchart indicating a third specific example of a BIO-based decoding process according to the embodiment.

[Фиг. 53] Фиг. 53 является блок-схемой последовательности операций способа, указывающей четвертый конкретный пример процесса декодирования на основе BIO согласно варианту осуществления.[Fig. 53] Fig. 53 is a flowchart indicating a fourth specific example of a BIO-based decoding process according to the embodiment.

[Фиг. 54] Фиг. 54 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством кодера согласно варианту осуществления.[Fig. 54] Fig. 54 is a flowchart indicating an operation performed by the encoder according to the embodiment.

[Фиг. 55] Фиг. 55 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством декодера согласно варианту осуществления.[Fig. 55] Fig. 55 is a flowchart indicating an operation performed by the decoder according to the embodiment.

[Фиг. 56] Фиг. 56 является блок-схемой, иллюстрирующей общую конфигурацию системы предоставления контента для реализации услуги распространения контента.[Fig. 56] Fig. 56 is a block diagram illustrating a general configuration of a content delivery system for implementing a content distribution service.

[Фиг. 57] Фиг. 57 является концептуальной схемой, иллюстрирующей один пример структуры кодирования при масштабируемом кодировании.[Fig. 57] Fig. 57 is a conceptual diagram illustrating one example of a coding structure in scalable coding.

[Фиг. 58] Фиг. 58 является концептуальной схемой, иллюстрирующей один пример структуры кодирования при масштабируемом кодировании.[Fig. 58] Fig. 58 is a conceptual diagram illustrating one example of a coding structure in scalable coding.

[Фиг. 59] Фиг. 59 является концептуальной схемой, иллюстрирующей пример экрана отображения веб-страницы.[Fig. 59] Fig. 59 is a conceptual diagram illustrating an example of a web page display screen.

[Фиг. 60] Фиг. 60 является концептуальной схемой, иллюстрирующей пример экрана отображения веб-страницы.[Fig. 60] Fig. 60 is a conceptual diagram illustrating an example of a web page display screen.

[Фиг. 61] Фиг. 61 является блок-схемой, иллюстрирующей один пример смартфона.[Fig. 61] FIG. 61 is a block diagram illustrating one example of a smartphone.

[Фиг. 62] Фиг. 62 является блок-схемой, иллюстрирующей пример конфигурации смартфона.[Fig. 62] Fig. 62 is a block diagram illustrating an example configuration of a smartphone.

Подробное описание вариантов осуществленияDetailed Description of Embodiments

[0013] В последние годы, изучается кодирование видео с использованием двунаправленного оптического потока. Двунаправленный оптический поток также называется "BIO" или "BDOF".[0013] In recent years, video encoding using bidirectional optical flow has been studied. Bidirectional optical flow is also called "BIO" or "BDOF".

[0014] Например, в двунаправленном оптическом потоке, прогнозное изображение формируется на основе уравнения оптического потока. Более конкретно, в двунаправленном оптическом потоке, прогнозное изображение, имеющее прогнозированное значение, отрегулированное для каждого пиксела, формируется с использованием параметра, извлекаемого на основе пиксельного значения опорного изображения для каждого блока и значения градиента опорного изображения для блока. Использование двунаправленного оптического потока предоставляет высокую вероятность того, что формируется высокоточное прогнозное изображение.[0014] For example, in bidirectional optical flow, a prediction image is generated based on the optical flow equation. More specifically, in bidirectional optical flow, a prediction image having a prediction value adjusted for each pixel is generated using a parameter extracted based on the pixel value of the reference image for each block and the gradient value of the reference image for the block. The use of bidirectional optical flow provides a high probability that a highly accurate predictive image is generated.

[0015] Например, кодер кодирует разностное изображение между прогнозным изображением и исходным изображением. Декодер затем декодирует разностное изображение и суммирует разностное изображение и прогнозное изображение, чтобы формировать восстановленное изображение. Использование высокоточного прогнозного изображения может уменьшать объем кодов разностного изображения. Другими словами, использование двунаправленного оптического потока предоставляет высокую вероятность того, что объем кодов результирующего видео уменьшается.[0015] For example, the encoder encodes a difference image between the prediction image and the original image. The decoder then decodes the difference image and adds the difference image and the prediction image to generate a reconstructed image. Using a high-precision predictive image can reduce the amount of difference image codes. In other words, using bidirectional optical flow provides a high probability that the code size of the resulting video is reduced.

[0016] С другой стороны, параметр для использования в двунаправленном оптическом потоке извлекается на основе пиксельного значения и значения градиента в каждой пиксельной позиции в опорном изображении. По этой причине, вычисление, выполняемое для каждого пиксела в извлечении параметра, который должен использоваться в двунаправленном оптическом потоке, может увеличивать объем вычислений, что может увеличивать размер схем.[0016] On the other hand, a parameter for use in bidirectional optical flow is extracted based on the pixel value and the gradient value at each pixel position in the reference image. For this reason, the calculation performed for each pixel in the parameter extraction to be used in bidirectional optical flow may increase the computational amount, which may increase the size of the circuits.

[0017] С учетом этого, например, кодер согласно аспекту настоящего раскрытия представляет собой кодер, включающий в себя схему; и запоминающее устройство, соединенное со схемой. При работе, схема: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0017] In view of this, for example, an encoder according to an aspect of the present disclosure is an encoder including circuitry; and a memory device connected to the circuit. In operation, the circuit: retrieves the absolute value of the sum of horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at a relative pixel position in the first range and the horizontal gradient value at a relative pixel position in the second range, for each of a plurality of pairs of relative pixel positions in the first range and a relative pixel position in a second range of a plurality of pairs of relative pixel positions, wherein the first range includes a first reference block for the current block, wherein the second range includes a second reference block for the current block, wherein the plurality of relative pixel position pairs are defined typically and relative to the first range and the second range; retrieves, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieves the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieves, as a second parameter, the total sum of the plurality of absolute values of the sums of the vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; retrieves, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates the difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieves a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieves, as a third parameter, the total sum of the horizontally related pixel difference values of the set retrieved, respectively, for the plurality of pairs of relative pixel positions; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieves a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values retrieved, respectively, for a plurality of pairs of relative pixel positions; inverts or stores the plus or minus sign of the sum of the horizontal gradient values retrieved for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieves the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values retrieved, respectively, for the plurality of pairs of relative pixel positions; and generates a prediction image to be used to encode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0018] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при кодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.[0018] Thus, significant multiplication, which requires a large amount of computation in the calculation performed for each pixel position, can be reduced, which allows many parameters to be extracted to form a predictive image with a small amount of computation. Accordingly, the amount of processing during encoding may be reduced. In addition, the prediction image may be suitably generated based on a plurality of parameters including a parameter associated with horizontal gradient values, a parameter associated with vertical gradient values, and a parameter associated with both horizontal gradient values and vertical gradient values. .

[0019] Например, схема извлекает: первый параметр согласно выражению (11.1), описанному ниже: второй параметр согласно выражению (11.2), описанному ниже: третий параметр согласно выражению (11.3), описанному ниже: четвертый параметр согласно выражению (11.4), описанному ниже; и пятый параметр согласно выражению (11.5), описанному ниже. В выражениях: Ω обозначает набор из множества пар относительных пиксельных позиций; [i, j] обозначает каждую из относительных пиксельных позиций, включенных во множество пар относительных пиксельных позиций; для каждой из множества пар относительных пиксельных позиций, Ix 0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix 1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне; для каждой из множества пар относительных пиксельных позиций, Iy 0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy 1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне; I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне; I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне; abs (Ix 1+ Ix 0) обозначает абсолютное значение Ix 1+Ix 0; sign (Ix 1+Ix 0) обозначает знак "плюс" или "минус" Ix 1+Ix 0; abs (Iy 1+Iy 0) обозначает абсолютное значение Iy 1+Iy 0; и sign (Iy 1+Iy 0) обозначает знак "плюс" или "минус" Iy 1+Iy 0.[0019] For example, the circuit extracts: a first parameter according to expression (11.1) described below: a second parameter according to expression (11.2) described below: a third parameter according to expression (11.3) described below: a fourth parameter according to expression (11.4) described below; and the fifth parameter according to expression (11.5) described below. In expressions: Ω denotes a set of multiple pairs of relative pixel positions; [i, j] denotes each of the relative pixel positions included in the plurality of relative pixel position pairs; for each of a plurality of pairs of relative pixel positions, I x 0 denotes a horizontal gradient value at a relative pixel position in a first range, and I x 1 denotes a horizontal gradient value at a relative pixel position in a second range; for each of a plurality of pairs of relative pixel positions, I y 0 denotes a vertical gradient value at a relative pixel position in a first range, and I y 1 denotes a vertical gradient value at a relative pixel position in a second range; I 0 denotes a pixel value at a relative pixel position in the first range; I 1 denotes a pixel value at a relative pixel position in the second range; abs (I x 1 + I x 0 ) denotes the absolute value of I x 1 +I x 0 ; sign (I x 1 +I x 0 ) denotes the plus or minus sign I x 1 +I x 0 ; abs (I y 1 +I y 0 ) denotes the absolute value of I y 1 +I y 0 ; and sign (I y 1 +I y 0 ) denotes the plus or minus sign of I y 1 +I y 0 .

[0020] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.[0020] Thus, multiple parameters can be extracted with little computation using pixel values, horizontal gradient values, and vertical gradient values.

[0021] Помимо этого, например, схема: извлекает шестой параметр посредством деления третьего параметра на первый параметр; извлекает седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр; и формирует прогнозное изображение с использованием шестого параметра и седьмого параметра.[0021] In addition, for example, the circuit: retrieves the sixth parameter by dividing the third parameter by the first parameter; extracts the seventh parameter by subtracting the product of the fifth parameter and the sixth parameter from the fourth parameter and dividing the result of the subtraction by the second parameter; and generates a forecast image using the sixth parameter and the seventh parameter.

[0022] Таким образом, множество параметров могут надлежащим образом сужаться до двух параметров, соответствующих горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, соответствующий горизонтальному направлению, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.[0022] Thus, the plurality of parameters can be suitably narrowed down to two parameters corresponding to the horizontal direction and the vertical direction. The parameter associated with the horizontal gradient values may be appropriately included in the parameter corresponding to the horizontal direction. A parameter associated with the vertical gradient values, a parameter associated with both the horizontal gradient values and the vertical gradient values, and a parameter corresponding to the horizontal direction may be suitably included in the parameter corresponding to the vertical direction. The prediction image can be suitably generated using two parameters.

[0023] Помимо этого, например, схема извлекает: шестой параметр согласно выражению (10.8), описанному ниже; и седьмой параметр согласно выражению (10.9), описанному ниже. В выражениях: sGx обозначает первый параметр; sGy обозначает второй параметр; sGxdI обозначает третий параметр; sGydI обозначает четвертый параметр; sGxGy обозначает пятый параметр; u обозначает шестой параметр; и Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.[0023] In addition, for example, the circuit extracts: a sixth parameter according to expression (10.8) described below; and the seventh parameter according to expression (10.9) described below. In expressions: sG x denotes the first parameter; sG y denotes the second parameter; sG x dI denotes the third parameter; sG y dI denotes the fourth parameter; sG x G y denotes the fifth parameter; u denotes the sixth parameter; and Bits is a function that returns a value obtained by rounding up the binary logarithm of the argument to an integer.

[0024] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.[0024] In this way, two parameters corresponding to the horizontal direction and the vertical direction can be extracted with a small amount of computation.

[0025] Помимо этого, например, схема формирует прогнозное изображение посредством извлечения прогнозного пиксельного значения в позиции текущего пиксела, включенного в текущий блок, с использованием: первого пиксельного значения в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке; первого значения горизонтального градиента в первой пиксельной позиции; первого значения вертикального градиента в первой пиксельной позиции; второго пиксельного значения во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке; второго значения горизонтального градиента во второй пиксельной позиции; второго значения вертикального градиента во второй пиксельной позиции; шестого параметра; и седьмого параметра.[0025] In addition, for example, the circuit generates a prediction image by retrieving a prediction pixel value at the position of a current pixel included in the current block using: a first pixel value at a first pixel position corresponding to the position of the current pixel in the first reference block; the first horizontal gradient value at the first pixel position; the first vertical gradient value at the first pixel position; a second pixel value at a second pixel position corresponding to the position of the current pixel in the second reference block; a second horizontal gradient value at a second pixel position; a second vertical gradient value at a second pixel position; sixth parameter; and the seventh parameter.

[0026] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.[0026] This provides a possibility that the prediction image is generated using, for example, two parameters corresponding to the horizontal direction and the vertical direction, and the two parameters corresponding to the horizontal direction and the vertical direction are properly reflected in the prediction image.

[0027] Помимо этого, например, схема извлекает прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.[0027] In addition, for example, the circuit extracts the predicted pixel value by dividing by 2 the sum of the first pixel value, the second pixel value, the first correction value, and the second correction value. The first correction value corresponds to the product of the difference between the first horizontal gradient value and the second horizontal gradient value and the sixth parameter, and the second correction value corresponds to the product of the difference between the first vertical gradient value and the second vertical gradient value and the seventh parameter.

[0028] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.[0028] Thus, a prediction image can be suitably generated using, for example, two parameters corresponding to a horizontal direction and a vertical direction.

[0029] Помимо этого, например, схема извлекает: прогнозное пиксельное значение согласно выражению (10.10). В выражении: I0 обозначает первое пиксельное значение; I1 обозначает второе пиксельное значение; u обозначает шестой параметр; Ix 0 обозначает первое значение горизонтального градиента; Ix 1 обозначает второе значение горизонтального градиента; v обозначает седьмой параметр; Iy 0 обозначает первое значение вертикального градиента; и Iy 1 обозначает второе значение вертикального градиента.[0029] In addition, for example, the circuit extracts: the predicted pixel value according to expression (10.10). In the expression: I 0 denotes the first pixel value; I 1 denotes the second pixel value; u denotes the sixth parameter; I x 0 denotes the first value of the horizontal gradient; I x 1 denotes the second value of the horizontal gradient; v denotes the seventh parameter; I y 0 denotes the first value of the vertical gradient; and I y 1 denotes the second value of the vertical gradient.

[0030] Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.[0030] Thus, the prediction image can be suitably generated according to an expression associated with, for example, two parameters corresponding to the horizontal direction and the vertical direction.

[0031] Кроме того, например, декодер согласно аспекту настоящего раскрытия представляет собой декодер, включающий в себя схему и запоминающее устройство, соединенное со схемой. При работе, схема: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0031] Moreover, for example, a decoder according to an aspect of the present disclosure is a decoder including a circuit and a memory device coupled to the circuit. In operation, the circuit: retrieves the absolute value of the sum of horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at a relative pixel position in the first range and the horizontal gradient value at a relative pixel position in the second range, for each of a plurality of pairs of relative pixel positions in the first range and a relative pixel position in a second range of a plurality of pairs of relative pixel positions, wherein the first range includes a first reference block for the current block, wherein the second range includes a second reference block for the current block, wherein the plurality of relative pixel position pairs are defined typically and relative to the first range and the second range; retrieves, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieves the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieves, as a second parameter, the total sum of the plurality of absolute values of the sums of the vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; retrieves, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates the difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieves a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieves, as a third parameter, the total sum of the horizontally related pixel difference values of the set retrieved, respectively, for the plurality of pairs of relative pixel positions; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieves a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values retrieved, respectively, for a plurality of pairs of relative pixel positions; inverts or stores the plus or minus sign of the sum of the horizontal gradient values retrieved for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieves the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values retrieved, respectively, for the plurality of pairs of relative pixel positions; and generates a prediction image to be used to decode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0032] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при декодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.[0032] Thus, significant multiplication, which requires a large amount of computation in the calculation performed for each pixel position, can be reduced, which allows many parameters to be extracted to form a predictive image with a small amount of calculation. Accordingly, the processing amount of decoding may be reduced. In addition, the prediction image may be suitably generated based on a plurality of parameters including a parameter associated with horizontal gradient values, a parameter associated with vertical gradient values, and a parameter associated with both horizontal gradient values and vertical gradient values. .

[0033] Помимо этого, например, схема извлекает: первый параметр согласно выражению (11.1), описанному ниже: второй параметр согласно выражению (11.2), описанному ниже: третий параметр согласно выражению (11.3), описанному ниже: четвертый параметр согласно выражению (11.4), описанному ниже; и пятый параметр согласно выражению (11.5), описанному ниже. В выражениях: Ω обозначает набор из множества пар относительных пиксельных позиций; [i, j] обозначает каждую из относительных пиксельных позиций, включенных во множество пар относительных пиксельных позиций; для каждой из множества пар относительных пиксельных позиций, Ix 0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix 1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне; для каждой из множества пар относительных пиксельных позиций, Iy 0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy 1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне; I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне; I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне; abs (Ix 1+Ix 0) обозначает абсолютное значение Ix 1+Ix 0; sign (Ix 1+Ix 0) обозначает знак "плюс" или "минус" Ix 1+Ix 0; abs (Iy 1+Iy 0) обозначает абсолютное значение Iy 1+Iy 0; и sign (Iy 1+Iy 0) обозначает знак "плюс" или "минус" Iy 1+Iy 0.[0033] In addition, for example, the circuit extracts: a first parameter according to expression (11.1) described below: a second parameter according to expression (11.2) described below: a third parameter according to expression (11.3) described below: a fourth parameter according to expression (11.4) ), described below; and the fifth parameter according to expression (11.5) described below. In expressions: Ω denotes a set of multiple pairs of relative pixel positions; [i, j] denotes each of the relative pixel positions included in the plurality of relative pixel position pairs; for each of a plurality of pairs of relative pixel positions, I x 0 denotes a horizontal gradient value at a relative pixel position in a first range, and I x 1 denotes a horizontal gradient value at a relative pixel position in a second range; for each of a plurality of pairs of relative pixel positions, I y 0 denotes a vertical gradient value at a relative pixel position in a first range, and I y 1 denotes a vertical gradient value at a relative pixel position in a second range; I 0 denotes a pixel value at a relative pixel position in the first range; I 1 denotes a pixel value at a relative pixel position in the second range; abs (I x 1 +I x 0 ) denotes the absolute value of I x 1 +I x 0 ; sign (I x 1 +I x 0 ) denotes the plus or minus sign I x 1 +I x 0 ; abs (I y 1 +I y 0 ) denotes the absolute value of I y 1 +I y 0 ; and sign (I y 1 +I y 0 ) denotes the plus or minus sign of I y 1 +I y 0 .

[0034] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.[0034] Thus, multiple parameters can be extracted with little computation using pixel values, horizontal gradient values, and vertical gradient values.

[0035] Помимо этого, например, схема: извлекает шестой параметр посредством деления третьего параметра на первый параметр; извлекает седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр; и формирует прогнозное изображение с использованием шестого параметра и седьмого параметра.[0035] In addition, for example, the circuit: retrieves the sixth parameter by dividing the third parameter by the first parameter; extracts the seventh parameter by subtracting the product of the fifth parameter and the sixth parameter from the fourth parameter and dividing the result of the subtraction by the second parameter; and generates a forecast image using the sixth parameter and the seventh parameter.

[0036] Таким образом, множество параметров могут надлежащим образом интегрироваться в два параметра, соответствующие горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, соответствующий горизонтальному направлению, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.[0036] Thus, a plurality of parameters can be properly integrated into two parameters corresponding to the horizontal direction and the vertical direction. The parameter associated with the horizontal gradient values may be suitably included in the parameter corresponding to the horizontal direction. A parameter associated with the vertical gradient values, a parameter associated with both the horizontal gradient values and the vertical gradient values, and a parameter corresponding to the horizontal direction may be suitably included in the parameter corresponding to the vertical direction. The prediction image can be suitably generated using two parameters.

[0037] Помимо этого, например, схема извлекает: шестой параметр согласно выражению (10.8), описанному ниже; и седьмой параметр согласно выражению (10.9), описанному ниже. В выражениях: sGx обозначает первый параметр; sGy обозначает второй параметр; sGxdI обозначает третий параметр; sGydI обозначает четвертый параметр; sGxGy обозначает пятый параметр; u обозначает шестой параметр; и Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.[0037] In addition, for example, the circuit extracts: a sixth parameter according to expression (10.8) described below; and the seventh parameter according to expression (10.9) described below. In expressions: sG x denotes the first parameter; sG y denotes the second parameter; sG x dI denotes the third parameter; sG y dI denotes the fourth parameter; sG x G y denotes the fifth parameter; u denotes the sixth parameter; and Bits is a function that returns a value obtained by rounding up the binary logarithm of the argument to an integer.

[0038] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.[0038] In this way, two parameters corresponding to the horizontal direction and the vertical direction can be extracted with a small amount of computation.

[0039] Помимо этого, например, схема формирует прогнозное изображение посредством извлечения прогнозного пиксельного значения в позиции текущего пиксела, включенного в текущий блок, с использованием: первого пиксельного значения в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке; первого значения горизонтального градиента в первой пиксельной позиции; первого значения вертикального градиента в первой пиксельной позиции; второго пиксельного значения во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке; второго значения горизонтального градиента во второй пиксельной позиции; второго значения вертикального градиента во второй пиксельной позиции; шестого параметра; и седьмого параметра.[0039] In addition, for example, the circuit generates a prediction image by retrieving a prediction pixel value at a position of a current pixel included in a current block using: a first pixel value at a first pixel position corresponding to a position of a current pixel in a first reference block; the first horizontal gradient value at the first pixel position; the first vertical gradient value at the first pixel position; a second pixel value at a second pixel position corresponding to the position of the current pixel in the second reference block; a second horizontal gradient value at a second pixel position; a second vertical gradient value at a second pixel position; sixth parameter; and the seventh parameter.

[0040] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.[0040] This provides a possibility that the prediction image is generated using, for example, two parameters corresponding to the horizontal direction and the vertical direction, and the two parameters corresponding to the horizontal direction and the vertical direction are properly reflected in the prediction image.

[0041] Помимо этого, например, схема извлекает прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.[0041] In addition, for example, the circuit extracts the predicted pixel value by dividing by 2 the sum of the first pixel value, the second pixel value, the first correction value, and the second correction value. The first correction value corresponds to the product of the difference between the first horizontal gradient value and the second horizontal gradient value and the sixth parameter, and the second correction value corresponds to the product of the difference between the first vertical gradient value and the second vertical gradient value and the seventh parameter.

[0042] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.[0042] Thus, a prediction image can be suitably generated using, for example, two parameters corresponding to a horizontal direction and a vertical direction.

[0043] Помимо этого, например, схема извлекает: прогнозное пиксельное значение согласно выражению (10.10). В выражении: I0 обозначает первое пиксельное значение; I1 обозначает второе пиксельное значение; u обозначает шестой параметр; Ix 0 обозначает первое значение горизонтального градиента; Ix 1 обозначает второе значение горизонтального градиента; v обозначает седьмой параметр; Iy 0 обозначает первое значение вертикального градиента; и Iy 1 обозначает второе значение вертикального градиента.[0043] In addition, for example, the circuit extracts: the predicted pixel value according to expression (10.10). In the expression: I 0 denotes the first pixel value; I 1 denotes the second pixel value; u denotes the sixth parameter; I x 0 denotes the first value of the horizontal gradient; I x 1 denotes the second value of the horizontal gradient; v denotes the seventh parameter; I y 0 denotes the first value of the vertical gradient; and I y 1 denotes the second value of the vertical gradient.

[0044] Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.[0044] Thus, the prediction image can be suitably generated according to an expression associated with, for example, two parameters corresponding to the horizontal direction and the vertical direction.

[0045] Кроме того, например, способ кодирования согласно аспекту настоящего раскрытия представляет собой способ кодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0045] In addition, for example, the encoding method according to an aspect of the present disclosure is an encoding method including: retrieving an absolute value of the sum of horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at a relative pixel position in the first range and the horizontal gradient value at a relative pixel position in a second range, for each of a plurality of pairs of relative pixel positions in the first range and a relative pixel position in a second range of the plurality of pairs of relative pixel positions, wherein the first range includes a first reference block for the current block, wherein the second range includes including a second reference block for the current block, wherein a plurality of pairs of relative pixel positions are determined generally and relatively for the first range and the second range; retrieving, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieving, as a second parameter, the total sum of a plurality of absolute values of the sums of vertical gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates a difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverting or storing the plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieving a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieving, as a third parameter, the total sum of the horizontally related pixel difference values of the set extracted, respectively, for the plurality of pairs of relative pixel positions; inverting or storing a plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieving a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values extracted, respectively, for a plurality of pairs of relative pixel positions; inverting or storing the plus or minus sign of the sum of the horizontal gradient values extracted for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieving the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; and generating a prediction image to be used to encode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0046] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при кодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.[0046] Thus, significant multiplication, which requires a large amount of computation in the calculation performed for each pixel position, can be reduced, which allows many parameters to be extracted to form a predictive image with a small amount of calculation. Accordingly, the amount of processing during encoding may be reduced. In addition, the prediction image may be suitably generated based on a plurality of parameters including a parameter associated with horizontal gradient values, a parameter associated with vertical gradient values, and a parameter associated with both horizontal gradient values and vertical gradient values. .

[0047] Кроме того, например, способ декодирования согласно аспекту настоящего раскрытия представляет собой способ декодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0047] In addition, for example, a decoding method according to an aspect of the present disclosure is a decoding method including: retrieving an absolute value of a sum of horizontal gradient values, which indicates an absolute value of the sum of a horizontal gradient value at a relative pixel position in a first range and a horizontal gradient value at a relative pixel position in a second range, for each of a plurality of pairs of relative pixel positions in the first range and a relative pixel position in a second range of the plurality of pairs of relative pixel positions, wherein the first range includes a first reference block for the current block, wherein the second range includes including a second reference block for the current block, wherein a plurality of pairs of relative pixel positions are determined generally and relatively for the first range and the second range; retrieving, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieving, as a second parameter, the total sum of a plurality of absolute values of the sums of vertical gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates a difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverting or storing the plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieving a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieving, as a third parameter, the total sum of the horizontally related pixel difference values of the set extracted, respectively, for the plurality of pairs of relative pixel positions; inverting or storing a plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieving a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values extracted, respectively, for a plurality of pairs of relative pixel positions; inverting or storing the plus or minus sign of the sum of the horizontal gradient values extracted for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieving the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; and generating a prediction image to be used to decode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0048] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при декодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.[0048] Thus, significant multiplication, which requires a large amount of computation in the calculation performed for each pixel position, can be reduced, which allows many parameters to be extracted to form a predictive image with a small amount of calculation. Accordingly, the processing amount of decoding may be reduced. In addition, the prediction image may be suitably generated based on a plurality of parameters including a parameter associated with horizontal gradient values, a parameter associated with vertical gradient values, and a parameter associated with both horizontal gradient values and vertical gradient values. .

[0049] Альтернативно, кодер согласно аспекту настоящего раскрытия представляет собой кодер, который включает в себя модуль разбиения, модуль внутреннего (intra) прогнозирования, модуль внешнего (inter) прогнозирования, преобразователь, квантователь и энтропийный кодер.[0049] Alternatively, the encoder according to an aspect of the present disclosure is an encoder that includes a partitioner, an intra prediction module, an inter prediction module, a transformer, a quantizer, and an entropy encoder.

[0050] Модуль разбиения разбивает текущий кадр, который должен кодироваться, включенный в видео, на множество блоков. Модуль внутреннего прогнозирования выполняет внутреннее прогнозирование для формирования прогнозного изображения для текущего блока, который должен кодироваться в текущем кадре, с использованием опорного изображения в текущем кадре. Модуль внешнего прогнозирования выполняет внешнее прогнозирование для формирования прогнозного изображения для текущего блока, который должен кодироваться, с использованием опорного изображения в опорном кадре, отличающемся от текущего кадра.[0050] The splitter splits the current frame to be encoded included in the video into a plurality of blocks. The intra prediction module performs intra prediction to generate a prediction image for the current block to be encoded in the current frame using a reference image in the current frame. The external prediction module performs external prediction to generate a prediction image for the current block to be encoded using a reference image in a reference frame different from the current frame.

[0051] Преобразователь преобразует сигнал ошибки прогнозирования между (i) либо прогнозным изображением, сформированным посредством модуля внутреннего прогнозирования, либо прогнозным изображением, сформированным посредством модуля внешнего прогнозирования, и (ii) изображением текущего блока, чтобы формировать сигнал коэффициентов преобразования текущего блока. Квантователь квантует сигнал коэффициентов преобразования. Энтропийный кодер кодирует сигнал квантованных коэффициентов преобразования.[0051] The converter converts the prediction error signal between (i) either the prediction image generated by the intra prediction module or the prediction image generated by the inter prediction module and (ii) the current block image to generate a current block transform coefficient signal. The quantizer quantizes the signal of the conversion coefficients. The entropy encoder encodes the signal with quantized transform coefficients.

[0052] Кроме того, например, модуль внешнего прогнозирования: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0052] In addition, for example, the external prediction module: retrieves the absolute value of the sum of the horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at the relative pixel position in the first range and the horizontal gradient value at the relative pixel position in the second range, for each of a plurality of pairs of relative pixel positions in a first range and a relative pixel position in a second range of the plurality of pairs of relative pixel positions, the first range including a first reference block for the current block, the second range including a second reference block for the current block, the plurality of pairs of relative pixel positions are determined generally and relative to the first range and the second range; retrieves, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieves the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieves, as a second parameter, the total sum of the plurality of absolute values of the sums of the vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; retrieves, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates the difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieves a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieves, as a third parameter, the total sum of the horizontally related pixel difference values of the set retrieved, respectively, for the plurality of pairs of relative pixel positions; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieves a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values retrieved, respectively, for a plurality of pairs of relative pixel positions; inverts or stores the plus or minus sign of the sum of the horizontal gradient values retrieved for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieves the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; extracts, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; and generates a prediction image to be used to encode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0053] Альтернативно, например, декодер согласно аспекту настоящего раскрытия включает в себя энтропийный декодер, обратный квантователь, обратный преобразователь, модуль внутреннего прогнозирования, модуль внешнего прогнозирования и сумматор (модуль восстановления).[0053] Alternatively, for example, a decoder according to an aspect of the present disclosure includes an entropy decoder, an inverse quantizer, an inverse converter, an intra prediction module, an inter prediction module, and an adder (reconstruction module).

[0054] Энтропийный декодер декодирует сигнал квантованных коэффициентов преобразования текущего блока, который должен декодироваться, в текущем кадре, который должен декодироваться в видео. Обратный квантователь обратно квантует сигнал квантованных коэффициентов преобразования. Обратный преобразователь обратно преобразует сигнал коэффициентов преобразования, чтобы получать сигнал ошибки прогнозирования текущего блока.[0054] The entropy decoder decodes the quantized transform coefficient signal of the current block to be decoded in the current frame to be decoded into video. An inverse quantizer inversely quantizes the signal of the quantized transform coefficients. The inverse converter inversely converts the transform coefficient signal to obtain a prediction error signal of the current block.

[0055] Модуль внутреннего прогнозирования выполняет внутреннее прогнозирование для формирования прогнозного изображения для текущего блока, который должен декодироваться, с использованием опорного изображения в текущем кадре, который должен декодироваться. Модуль внешнего прогнозирования выполняет внешнее прогнозирование для формирования прогнозного изображения для текущего блока, который должен декодироваться, с использованием опорного изображения в опорном кадре, отличающемся от текущего кадра. Сумматор суммирует сигнал ошибки прогнозирования и либо прогнозное изображение, сформированное посредством модуля внутреннего прогнозирования, либо прогнозное изображение, сформированное посредством модуля внешнего прогнозирования, чтобы восстанавливать изображение текущего блока.[0055] The intra prediction module performs intra prediction to generate a prediction image for the current block to be decoded using a reference image in the current frame to be decoded. The external prediction module performs external prediction to generate a prediction image for the current block to be decoded using a reference image in a reference frame different from the current frame. The adder adds the prediction error signal and either the prediction image generated by the internal prediction module or the prediction image generated by the external prediction module to reconstruct the image of the current block.

[0056] Кроме того, например, модуль внешнего прогнозирования: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0056] In addition, for example, the external prediction module: retrieves the absolute value of the sum of the horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at the relative pixel position in the first range and the horizontal gradient value at the relative pixel position in the second range, for each of a plurality of pairs of relative pixel positions in a first range and a relative pixel position in a second range of the plurality of pairs of relative pixel positions, the first range including a first reference block for the current block, the second range including a second reference block for the current block, the plurality of pairs of relative pixel positions are determined generally and relative to the first range and the second range; retrieves, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieves the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieves, as a second parameter, the total sum of the plurality of absolute values of the sums of the vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; retrieves, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates the difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieves a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieves, as a third parameter, the total sum of the horizontally related pixel difference values of the set retrieved, respectively, for the plurality of pairs of relative pixel positions; inverts or preserves the plus or minus sign of the pixel difference value retrieved for each of a plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieves a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieves, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values retrieved, respectively, for a plurality of pairs of relative pixel positions; inverts or stores the plus or minus sign of the sum of the horizontal gradient values retrieved for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieves the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; extracts, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; and generates a prediction image to be used to decode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0057] Кроме того, эти общие или конкретные аспекты могут реализовываться с использованием системы, устройства, способа, интегральной схемы, компьютерной программы или энергонезависимого считываемого компьютером носителя записи, такого как CD-ROM, либо любой комбинации систем, устройств, способов, интегральных схем, компьютерных программ или считываемых компьютером носителей записи.[0057] Additionally, these general or specific aspects may be implemented using a system, device, method, integrated circuit, computer program, or non-volatile computer readable recording medium such as a CD-ROM, or any combination of systems, devices, methods, integrated circuits , computer programs or computer-readable recording media.

[0058] В дальнейшем в этом документе описываются варианты осуществления со ссылкой на чертежи. Следует отметить, что варианты осуществления, описанные ниже, показывают общий или конкретный пример. Числовые значения, формы, материалы, компоненты, компоновка и соединение компонентов, этапов, взаимосвязь и порядок этапов и т.д., указываемых в нижеприведенных вариантах осуществления, представляют собой просто примеры и в силу этого не имеют намерение ограничивать объем формулы изобретения.[0058] Embodiments are described hereinafter with reference to the drawings. It should be noted that the embodiments described below show a general or specific example. The numerical values, shapes, materials, components, arrangement and connection of components, steps, relationship and order of steps, etc., indicated in the following embodiments are merely examples and are therefore not intended to limit the scope of the claims.

[0059] Ниже описываются варианты осуществления кодера и декодера. Варианты осуществления представляют собой примеры кодера и декодера, к которым являются применимыми процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия. Процессы и/или конфигурации также могут реализовываться в кодере и декодере, отличающихся от кодера и декодера согласно вариантам осуществления. Например, относительно процессов и/или конфигураций, применяемых к вариантам осуществления, может реализовываться любое из следующего:[0059] Embodiments of the encoder and decoder are described below. The embodiments are examples of an encoder and decoder to which the processes and/or configurations presented in the description of aspects of the present disclosure are applicable. The processes and/or configurations may also be implemented in an encoder and decoder different from the encoder and decoder of the embodiments. For example, with respect to the processes and/or configurations applied to the embodiments, any of the following may be implemented:

[0060] (1) Любой из компонентов кодера или декодера согласно вариантам осуществления, представленным в описании аспектов настоящего раскрытия, может заменяться или комбинироваться с другим компонентом, представленным в любом месте в описании аспектов настоящего раскрытия.[0060] (1) Any of the components of the encoder or decoder according to the embodiments presented in the description of aspects of the present disclosure may be replaced or combined with another component presented anywhere in the description of aspects of the present disclosure.

[0061] (2) В кодере или декодере согласно вариантам осуществления, дискреционные изменения могут вноситься в функции или процессы, выполняемые посредством одного или более компонентов кодера или декодера, такие как добавление, замена, удаление и т.д. функций или процессов. Например, любая функция или процесс может заменяться или комбинироваться с другой функцией или процессом, представленным в любом месте в описании аспектов настоящего раскрытия.[0061] (2) In the encoder or decoder according to the embodiments, discretionary changes may be made to functions or processes performed by one or more components of the encoder or decoder, such as adding, replacing, deleting, etc. functions or processes. For example, any function or process may be substituted for or combined with another function or process presented anywhere in the description of aspects of this disclosure.

[0062] (3) В способах, реализованных посредством кодера или декодера согласно вариантам осуществления, могут вноситься дискреционные изменения, такие как добавление, замена и удаление одного или более процессов, включенных в способ. Например, любой процесс в способе может заменяться или комбинироваться с другим процессом, представленным в любом месте в описании аспектов настоящего раскрытия.[0062] (3) In the methods implemented by the encoder or decoder according to the embodiments, discretionary changes such as adding, replacing and deleting one or more processes included in the method may be made. For example, any process in the method may be replaced by or combined with another process presented anywhere in the description of aspects of the present disclosure.

[0063] (4) Один или более компонентов, включенных в кодер или декодер согласно вариантам осуществления, могут комбинироваться с компонентом, представленным в любом месте в описании аспектов настоящего раскрытия, могут комбинироваться с компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия, и могут комбинироваться с компонентом, который реализует один или более процессов, реализованных посредством компонента, представленного в описании аспектов настоящего раскрытия.[0063] (4) One or more components included in an encoder or decoder according to embodiments may be combined with a component presented anywhere in the description of aspects of the present disclosure may be combined with a component including one or more functions presented in anywhere in the description of aspects of the present disclosure, and may be combined with a component that implements one or more of the processes implemented by the component presented in the description of aspects of the present disclosure.

[0064] (5) Компонент, включающий в себя одну или более функций кодера или декодера согласно вариантам осуществления, либо компонент, который реализует один или более процессов кодера или декодера согласно вариантам осуществления, может комбинироваться или заменяться компонентом, представленным в любом месте в описании аспектов настоящего раскрытия, компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия, либо компонентом, который реализует один или более процессов, представленных в любом месте в описании аспектов настоящего раскрытия.[0064] (5) A component that includes one or more encoder or decoder functions according to embodiments, or a component that implements one or more encoder or decoder processes according to embodiments, may be combined or replaced by a component presented anywhere in the description aspects of this disclosure, a component that includes one or more of the functions presented anywhere in the description of aspects of this disclosure, or a component that implements one or more processes presented anywhere in the description of aspects of this disclosure.

[0065] (6) В способах, реализованных посредством кодера или декодера согласно вариантам осуществления, любой из процессов, включенных в способ, может заменяться или комбинироваться с процессом, представленным в любом месте в описании аспектов настоящего раскрытия, либо с любым соответствующим или эквивалентным процессом.[0065] (6) In methods implemented by an encoder or decoder according to embodiments, any of the processes included in the method may be replaced or combined with a process presented anywhere in the description of aspects of this disclosure, or with any corresponding or equivalent process .

[0066] (7) Один или более процессов, включенных в способы, реализованные посредством кодера или декодера согласно вариантам осуществления, могут комбинироваться с процессом, представленным в любом месте в описании аспектов настоящего раскрытия.[0066] (7) One or more processes included in the methods implemented by the encoder or decoder according to the embodiments may be combined with a process presented anywhere in the description of aspects of the present disclosure.

[0067] (8) Реализация процессов и/или конфигураций, представленных в описании аспектов настоящего раскрытия, не ограничена кодером или декодером согласно вариантам осуществления. Например, процессы и/или конфигурации могут реализовываться в устройстве, используемом для цели, отличающейся от кодера движущихся кадров или декодера движущихся кадров, раскрытого в вариантах осуществления.[0067] (8) The implementation of the processes and/or configurations presented in the description of aspects of the present disclosure is not limited to the encoder or decoder according to the embodiments. For example, the processes and/or configurations may be implemented in an apparatus used for a purpose other than the moving frame encoder or moving frame decoder disclosed in the embodiments.

[0068] Кодер [0068] Encoder

Во-первых, описывается кодер согласно варианту осуществления. Фиг. 1 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера 100 согласно варианту осуществления. Кодер 100 представляет собой видеокодер, который кодирует видео в единицах блоков.First, the encoder according to the embodiment is described. Fig. 1 is a block diagram illustrating a functional configuration of the encoder 100 according to the embodiment. Encoder 100 is a video encoder that encodes video in units of blocks.

[0069] Как проиллюстрировано на фиг. 1, кодер 100 представляет собой устройство, которое кодирует изображение в единицах блоков, и включает в себя модуль 102 разбиения, вычитатель 104, преобразователь 106, квантователь 108, энтропийный кодер 110, обратный квантователь 112, обратный преобразователь 114, сумматор 116, запоминающее устройство 118 блоков, контурный фильтр 120, запоминающее устройство 122 кадров, модуль 124 внутреннего прогнозирования, модуль 126 внешнего прогнозирования и контроллер 128 прогнозирования.[0069] As illustrated in FIG. 1, the encoder 100 is a device that encodes an image in units of blocks, and includes a partitioner 102, a subtractor 104, a converter 106, a quantizer 108, an entropy encoder 110, an inverse quantizer 112, an inverse converter 114, an adder 116, and a memory 118. blocks, a loop filter 120, a frame memory 122, an internal prediction module 124, an external prediction module 126, and a prediction controller 128.

[0070] Кодер 100 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве модуля 102 разбиения, вычитателя 104, преобразователя 106, квантователя 108, энтропийного кодера 110, обратного квантователя 112, обратного преобразователя 114, сумматора 116, контурного фильтра 120, модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования. Альтернативно, кодер 100 может реализовываться в качестве одной или более специализированных электронных схем, соответствующих модулю 102 разбиения, вычитателю 104, преобразователю 106, квантователю 108, энтропийному кодеру 110, обратному квантователю 112, обратному преобразователю 114, сумматору 116, контурному фильтру 120, модулю 124 внутреннего прогнозирования, модулю 126 внешнего прогнозирования и контроллеру 128 прогнозирования.[0070] Encoder 100 is implemented, for example, as a general processor and storage device. In this case, when the software program stored in the memory device is executed by the processor, the processor functions as a partitioner 102, a subtractor 104, a transformer 106, a quantizer 108, an entropy encoder 110, an inverse quantizer 112, an inverse transformer 114, an adder 116 , a loop filter 120, an internal prediction module 124, an external prediction module 126, and a prediction controller 128. Alternatively, encoder 100 may be implemented as one or more dedicated electronic circuits corresponding to partitioner 102, subtractor 104, transformer 106, quantizer 108, entropy encoder 110, inverse quantizer 112, inverse converter 114, adder 116, loop filter 120, module 124 internal prediction module 126 external prediction and controller 128 prediction.

[0071] В дальнейшем в этом документе описывается полная последовательность операций процессов, выполняемых посредством кодера 100, и после этого описывается каждый из составляющих элементов, включенных в кодер 100.[0071] Hereinafter, this document describes the complete flow of processes performed by the encoder 100, and thereafter describes each of the constituent elements included in the encoder 100.

[0072] Общая последовательность операций процесса кодирования [0072] General flow of the encoding process

Фиг. 2 является блок-схемой последовательности операций способа, указывающей один пример полного процесса декодирования, выполняемого посредством кодера 100.Fig. 2 is a flowchart indicating one example of a complete decoding process performed by encoder 100.

[0073] Во-первых, модуль 102 разбиения кодера 100 разбивает каждый из кадров, включенных во входное изображение, которое представляет собой видео, на множество блоков, имеющих фиксированный размер (например, 128×128 пикселов) (этап Sa_1). Модуль 102 разбиения затем выбирает шаблон разбиения для блока фиксированного размера (также называется "формой блока") (этап Sa_2). Другими словами, модуль 102 разбиения дополнительно разбивает блок фиксированного размера на множество блоков, которые формируют выбранный шаблон разбиения. Кодер 100 выполняет, для каждого из множества блоков, этапы Sa_3-Sa_9 для блока (который представляет собой текущий блок, который должен кодироваться).[0073] First, the partitioning unit 102 of the encoder 100 partitions each of the frames included in the input image, which is a video, into a plurality of blocks having a fixed size (eg, 128×128 pixels) (step Sa_1). The partitioning module 102 then selects a partitioning pattern for a fixed-size block (also called “block shape”) (step Sa_2). In other words, the partitioning module 102 further partitions the fixed-size block into a plurality of blocks that form a selected partitioning pattern. Encoder 100 performs, for each of a plurality of blocks, steps Sa_3-Sa_9 for the block (which is the current block to be encoded).

[0074] Другими словами, процессор прогнозирования, который включает в себя все или часть модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования, формирует прогнозный сигнал (также называется "блоком прогнозирования") текущего блока, который должен кодироваться (также называется "текущим блоком") (этап Sa_3).[0074] In other words, the prediction processor, which includes all or part of the internal prediction module 124, the external prediction module 126, and the prediction controller 128, generates a prediction signal (also called a “prediction block”) of the current block to be encoded (also called "current block") (stage Sa_3).

[0075] Затем, вычитатель 104 формирует разность между текущим блоком и блоком прогнозирования в качестве остатка прогнозирования (также называется "разностным блоком") (этап Sa_4).[0075] Next, the subtractor 104 generates the difference between the current block and the prediction block as a prediction remainder (also called a “difference block”) (step Sa_4).

[0076] Затем, преобразователь 106 преобразует разностный блок, и квантователь 108 квантует результат для того, чтобы формировать множество квантованных коэффициентов (этап Sa_5). Следует отметить, что блок, имеющий множество квантованных коэффициентов, также называется "блоком коэффициентов".[0076] Next, the converter 106 converts the difference block, and the quantizer 108 quantizes the result to generate a plurality of quantized coefficients (step Sa_5). It should be noted that a block having a plurality of quantized coefficients is also called a "coefficient block".

[0077] Затем, энтропийный кодер 110 кодирует (в частности, энтропийно кодирует) блок коэффициентов и параметр прогнозирования, связанный с формированием прогнозного сигнала, чтобы формировать кодированный сигнал (этап Sa_6). Следует отметить, что кодированный сигнал также называется "кодированным потоком битов", "сжатым потоком битов" или "потоком".[0077] Next, the entropy encoder 110 encodes (specifically, entropy encodes) a block of coefficients and a prediction parameter associated with generating a prediction signal to generate a coded signal (step Sa_6). It should be noted that the encoded signal is also called a "coded bitstream", "compressed bitstream" or "stream".

[0078] Затем, обратный квантователь 112 выполняет обратное квантование блока коэффициентов, и обратный преобразователь 114 выполняет обратное преобразование результата для того, чтобы восстанавливать множество остатков прогнозирования (т.е. разностный блок) (этап Sa_7).[0078] Next, the inverse quantizer 112 inversely quantizes the coefficient block, and the inverse transformer 114 inversely transforms the result to recover a plurality of prediction residuals (ie, a difference block) (step Sa_7).

[0079] Затем, сумматор 116 суммирует блок прогнозирования с восстановленным разностным блоком для того, чтобы восстанавливать текущий блок в качестве восстановленного изображения (также называется "восстановленным блоком" или "декодированным блоком изображений") (этап Sa_8). Таким образом, восстановленное изображение формируется.[0079] Next, the adder 116 adds the prediction block with the reconstructed difference block to restore the current block as a reconstructed image (also called a “recovered block” or a “decoded image block”) (step Sa_8). Thus, a reconstructed image is formed.

[0080] Когда восстановленное изображение формируется, контурный фильтр 120 выполняет фильтрацию восстановленного изображения при необходимости (этап Sa_9).[0080] When the reconstructed image is generated, the loop filter 120 filters the reconstructed image as necessary (step Sa_9).

[0081] Кодер 100 затем определяет то, закончено или нет кодирование всего кадра (этап Sa_10). При определении того, что кодирование еще не закончено ("Нет" на этапе Sa_10), процессы с этапа Sa_2 многократно выполняются.[0081] The encoder 100 then determines whether or not encoding of the entire frame is complete (step Sa_10). When determining that encoding is not yet complete ("No" in step Sa_10), the processes from step Sa_2 are executed repeatedly.

[0082] Хотя кодер 100 выбирает один шаблон разбиения для блока фиксированного размера и кодирует каждый блок согласно шаблону разбиения в вышеописанном примере, следует отметить что, каждый блок может кодироваться согласно соответствующему одному из множества шаблонов разбиения. В этом случае, кодер 100 может оценивать затраты для каждого из множества шаблонов разбиения и, например, может выбирать кодированный сигнал, получаемый посредством кодирования согласно шаблону разбиения, который дает в результате наименьшие затраты, в качестве кодированного сигнала, который выводится.[0082] Although the encoder 100 selects one partitioning pattern for a fixed-size block and encodes each block according to the partitioning pattern in the above example, it should be noted that each block may be encoded according to a corresponding one of a plurality of partitioning patterns. In this case, the encoder 100 may estimate costs for each of a plurality of partitioning patterns and, for example, may select a coded signal obtained by encoding according to the partitioning pattern that results in the lowest cost as the coded signal that is output.

[0083] Как проиллюстрировано, процессы на этапах Sa_1-Sa_10 выполняются последовательно посредством кодера 100. Альтернативно, два или более из процессов могут выполняться параллельно, процессы могут переупорядочиваться и т.д.[0083] As illustrated, the processes in steps Sa_1-Sa_10 are executed sequentially by the encoder 100. Alternatively, two or more of the processes may be executed in parallel, the processes may be reordered, etc.

[0084] Модуль разбиения [0084] Partitioner

Модуль 102 разбиения разбивает каждый из кадров, включенных во входное видео, на множество блоков и выводит каждый блок в вычитатель 104. Например, модуль 102 разбиения сначала разбивает кадр на блоки фиксированного размера (например, 128×128). Могут использоваться другие фиксированные размеры блоков. Блок фиксированного размера также называется "единицей дерева кодирования (CTU)". Модуль 102 разбиения затем разбивает каждый блок фиксированного размера на блоки переменных размеров (например, 64×64 или меньше), на основе рекурсивного разбиения на блоки дерева квадрантов и/или двоичного дерева. Другими словами, модуль 102 разбиения выбирает шаблон разбиения. Блок переменного размера также называется "единицей кодирования (CU)", "единицей прогнозирования (PU)" или "единицей преобразования (TU)". Следует отметить, что, в различных видах примеров обработки, нет необходимости различать между CU, PU и TU; все или некоторые блоки в кадре могут обрабатываться в единицах CU, PU или TU.The partitioner 102 splits each of the frames included in the input video into a plurality of blocks and outputs each block to the subtractor 104. For example, the partitioner 102 first partitions the frame into blocks of a fixed size (eg, 128×128). Other fixed block sizes may be used. A fixed size block is also called a "coding tree unit (CTU)". Partitioner 102 then partitions each fixed-size block into variable-size blocks (eg, 64×64 or smaller) based on recursive quadtree and/or binary block partitioning. In other words, the partitioning module 102 selects a partitioning pattern. The variable size block is also called a "coding unit (CU)", "prediction unit (PU)" or "transformation unit (TU)". It should be noted that, in various kinds of processing examples, there is no need to distinguish between CU, PU and TU; all or some of the blocks in a frame can be processed in CU, PU or TU units.

[0085] Фиг. 3 является концептуальной схемой, иллюстрирующей один пример разбиения на блоки согласно варианту осуществления. На фиг. 3, сплошные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки дерева квадрантов, и пунктирные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки двоичного дерева.[0085] FIG. 3 is a conceptual diagram illustrating one example of blocking according to an embodiment. In fig. 3, solid lines represent block boundaries for blocks divided by quadtree blocking, and dotted lines represent block boundaries for blocks divided by binary tree blocking.

[0086] Здесь, блок 10 представляет собой квадратный блок, имеющий 128×128 пикселов (блок 128×128). Это блок 10 128×128 сначала разбивается на четыре квадратных блока 64×64 (разбиение на блоки дерева квадрантов).[0086] Here, block 10 is a square block having 128×128 pixels (128×128 block). This 10 128x128 block is first split into four 64x64 square blocks (quadtree blocking).

[0087] Верхний левый блок 64×64 дополнительно вертикально разбивается на два прямоугольных блока 32×64, и левый блок 32×64 дополнительно вертикально разбивается на два прямоугольных блока 16×64 (разбиение на блоки двоичного дерева). Как результат, верхний левый блок 64×64 разбивается на два блока 11 и 12 16×64 и один блок 13 32×64.[0087] The top left 64x64 block is further vertically split into two 32x64 rectangular blocks, and the left 32x64 block is further vertically split into two 16x64 rectangular blocks (binary tree chunking). As a result, the top left 64x64 block is split into two 16x64 blocks 11 and 12 and one 32x64 block 13.

[0088] Верхний правый блок 64×64 горизонтально разбивается на два прямоугольных блока 14 и 15 64×32 (разбиение на блоки двоичного дерева).[0088] The top right 64×64 block is horizontally split into two 64×32 rectangular blocks 14 and 15 (binary tree blocking).

[0089] Левый нижний блок 64×64 сначала разбивается на четыре квадратных блока 32×32 (разбиение на блоки дерева квадрантов). Верхний левый блок и нижний правый блок из четырех блоков 32×32 дополнительно разбиваются. Верхний левый блок 32×32 вертикально разбивается на два прямоугольных блока 16×32, и правый блок 16×32 дополнительно горизонтально разбивается на два блока 16×16 (разбиение на блоки двоичного дерева). Правый нижний блок 32×32 горизонтально разбивается на два блока 32×16 (разбиение на блоки двоичного дерева). Как результат, левый нижний блок 64×64 разбивается на блок 16 16×32, два блока 17 и 18 16×16, два блока 19 и 20 32×32 и два блока 21 и 22 32×16.[0089] The bottom left 64x64 block is first split into four 32x32 square blocks (quadtree blocking). The top left block and bottom right block of four 32x32 blocks are further broken down. The top left 32x32 block is vertically split into two 16x32 rectangular blocks, and the right 16x32 block is further split horizontally into two 16x16 blocks (binary tree blocking). The bottom right 32x32 block is horizontally split into two 32x16 blocks (binary tree blocking). As a result, the bottom left 64x64 block is split into a 16x32 block, two 16x16 blocks 17 and 18, two 32x32 blocks 19 and 20, and two 32x16 blocks 21 and 22.

[0090] Правый нижний блок 23 64×64 не разбивается.[0090] The bottom right block 23 64×64 is not broken.

[0091] Как описано выше, на фиг. 3, блок 10 разбивается на тринадцать блоков 11-23 переменного размера на основе рекурсивного разбиения на блоки дерева квадрантов и двоичного дерева. Этот тип разбиения также называется "разбиением на дерево квадрантов плюс двоичное дерево (QTBT)".[0091] As described above, FIG. 3, block 10 is divided into thirteen blocks 11-23 of variable size based on recursive quadtree and binary tree blocking. This type of partitioning is also called "quadtree plus binary tree (QTBT) partitioning."

[0092] Следует отметить, что, на фиг. 3, один блок разбивается на четыре или два блока (разбиение на блоки дерева квадрантов или двоичного дерева), но разбиение не ограничено этими примерами. Например, один блок может разбиваться на три блока (разбиение на троичные блоки). Разбиение, включающее в себя такое разбиение на троичные блоки, также называется "разбиением на многотипное дерево (MBT)".[0092] It should be noted that, in FIG. 3, one block is split into four or two blocks (quadtree or binary tree chunking), but splitting is not limited to these examples. For example, one block can be split into three blocks (ternary block splitting). Partitioning that includes such ternary block partitioning is also called "multi-type tree (MBT) partitioning."

[0093] Структура кадра: слайс (slice)/тайл (tile) [0093] Frame structure: slice/tile

Кадр может быть сконфигурирован в единицах одного или более слайсов или тайлов, чтобы декодировать кадр параллельно. Кадр, сконфигурированный в единицах одного или более слайсов или тайлов, может быть сконфигурирован посредством модуля 102 разбиения.A frame may be configured in units of one or more slices or tiles to decode the frame in parallel. A frame configured in units of one or more slices or tiles may be configured by the partitioning unit 102.

[0094] Слайсы представляют собой базовые единицы кодирования, включенные в кадр. Кадр может включать в себя, например, один или более слайсов. Помимо этого, слайс включает в себя одну или боле последовательных единиц дерева кодирования (CTU).[0094] Slices are basic coding units included in a frame. A frame may include, for example, one or more slices. In addition, a slice includes one or more consecutive coding tree units (CTUs).

[0095] Фиг. 4A является концептуальной схемой, иллюстрирующей один пример конфигурации слайсов. Например, кадр включает в себя CTU 11×8 и разбивается на четыре слайса (слайсы 1-4). Слайс 1 включает в себя шестнадцать CTU, слайс 2 включает в себя двадцать одну CTU, слайс 3 включает в себя двадцать девять CTU, и слайс 4 включает в себя двадцать две CTU. Здесь, каждая CTU в кадре принадлежит одному из слайсов. Форма каждого слайса представляет собой форму, получаемую посредством разбиения кадра горизонтально. Граница каждого слайса не должна обязательно совпадать с концом изображения и может совпадать с любой из границ между CTU в изображении. Порядок обработки CTU в слайсе (порядок кодирования или порядок декодирования), например, представляет собой порядок растрового сканирования. Слайс включает в себя информацию заголовка и кодированные данные. Признаки слайса могут описываться в информации заголовка. Признаки включают в себя CTU-адрес верхней CTU в слайсе, тип слайса и т.д.[0095] FIG. 4A is a conceptual diagram illustrating one example of a slice configuration. For example, a frame includes an 11x8 CTU and is divided into four slices (slices 1-4). Slice 1 includes sixteen CTUs, slice 2 includes twenty-one CTUs, slice 3 includes twenty-nine CTUs, and slice 4 includes twenty-two CTUs. Here, each CTU in the frame belongs to one of the slices. The shape of each slice is the shape obtained by dividing the frame horizontally. The boundary of each slice does not have to coincide with the end of the image and can coincide with any of the boundaries between CTUs in the image. The processing order of CTUs in a slice (encoding order or decoding order), for example, is the raster scan order. The slice includes header information and encoded data. The attributes of a slice may be described in header information. Signs include the CTU address of the top CTU in the slice, slice type, etc.

[0096] Тайл представляет собой единицу прямоугольной области, включенной в кадр. Каждой из тайлов может назначаться номер, называемый "TileId" в порядке растрового сканирования.[0096] A tile is a unit of rectangular area included in a frame. Each of the tiles can be assigned a number called a "TileId" in raster scan order.

[0097] Фиг. 4B является концептуальной схемой, указывающей пример конфигурации тайлов. Например, кадр включает в себя CTU 11×8 и разбивается на четыре тайла прямоугольных областей (тайлы 1-4). Когда тайлы используются, порядок обработки CTU изменяется относительно порядка обработки в случае, если тайлы не используются. Когда тайлы не используются, CTU в кадре обрабатываются в порядке растрового сканирования. Когда тайлы используются, по меньшей мере одна CTU в каждом из тайлов обрабатывается в порядке растрового сканирования. Например, как проиллюстрировано на фиг. 4B, порядок обработки CTU, включенных в тайл 1, представляет собой порядок, который начинается с левого конца первой строки тайла 1 к правому концу первой строки тайла 1 и затем начинается с левого конца второй строки тайла 1 к правому концу второй строки тайла 1.[0097] FIG. 4B is a conceptual diagram indicating an example of a tile configuration. For example, a frame includes an 11x8 CTU and is divided into four rectangular region tiles (tiles 1-4). When tiles are used, the CTU processing order changes relative to the processing order if tiles are not used. When tiles are not used, the CTUs in the frame are processed in raster scan order. When tiles are used, at least one CTU in each tile is processed in raster scan order. For example, as illustrated in FIG. 4B, the processing order of CTUs included in tile 1 is an order that starts from the left end of the first line of tile 1 to the right end of the first line of tile 1 and then starts from the left end of the second line of tile 1 to the right end of the second line of tile 1.

[0098] Следует отметить, что один тайл может включать в себя один или более слайсов, и один слайс может включать в себя один или более тайлов.[0098] It should be noted that one tile may include one or more slices, and one slice may include one or more tiles.

[0099] Вычитатель [0099] Subtractor

Вычитатель 104 вычитает прогнозный сигнал (прогнозную выборку, которая вводится из контроллера 128 прогнозирования, указываемого ниже) из исходного сигнала (исходной выборки), в единицах блока, вводимого из модуля 102 разбиения и разбитого посредством модуля 102 разбиения. Другими словами, вычитатель 104 вычисляет ошибки прогнозирования (также называются "остатками") блока, который должен кодироваться (в дальнейшем также называется "текущим блоком"). Вычитатель 104 затем выводит вычисленные ошибки прогнозирования (остатки) в преобразователь 106.The subtractor 104 subtracts the prediction signal (the prediction sample that is input from the prediction controller 128 specified below) from the original signal (the original sample), in units of the block input from the partitioning unit 102 and split by the partitioning unit 102. In other words, the subtractor 104 calculates the prediction errors (also called “residuals”) of the block to be encoded (hereinafter also called the “current block”). Subtractor 104 then outputs the calculated prediction errors (residuals) to converter 106.

[0100] Исходный сигнал представляет собой сигнал, который введен в кодер 100, и представляет изображение каждого кадра, включенного в видео (например, сигнал яркости и два сигнала цветности). В дальнейшем в этом документе, сигнал, представляющий изображение, также называется "выборкой".[0100] The original signal is a signal that is input to the encoder 100 and represents an image of each frame included in the video (eg, a luma signal and two chrominance signals). Hereinafter in this document, a signal representing an image is also called a “sample”.

[0101] Преобразователь [0101] Converter

Преобразователь 106 преобразует ошибки прогнозирования в пространственной области в коэффициенты преобразования в частотной области и выводит коэффициенты преобразования в квантователь 108. Более конкретно, преобразователь 106 применяет, например, заданное дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) к ошибкам прогнозирования в пространственной области. Заданное DCT или DST может быть предварительно задано.Converter 106 converts spatial domain prediction errors into frequency domain transform coefficients and outputs the transform coefficients to quantizer 108. More specifically, transformer 106 applies, for example, a specified discrete cosine transform (DCT) or discrete sine transform (DST) to the spatial domain prediction errors. areas. The specified DCT or DST can be preset.

[0102] Следует отметить, что преобразователь 106 может адаптивно выбирать тип преобразования из множества типов преобразования и преобразовывать ошибки прогнозирования в коэффициенты преобразования посредством использования базисной функции преобразования, соответствующей выбранному типу преобразования. Этот вид преобразования также называется "явным множественным базовым преобразованием (EMT)" или "адаптивным множественным преобразованием (AMT)".[0102] It should be noted that the transformer 106 can adaptively select a transform type from a plurality of transform types and convert prediction errors into transform coefficients by using a transform basis function corresponding to the selected transform type. This kind of transformation is also called "explicit multiple base transformation (EMT)" or "adaptive multiple transformation (AMT)".

[0103] Типы преобразования включают в себя, например, DCT-II, DCT-V, DCT-VIII, DST-I и DST-VII. Фиг. 5A является диаграммой, указывающей базисные функции преобразования для примерных типов преобразования. На фиг. 5A, N указывает число входных пикселов. Например, выбор типа преобразования из множества типов преобразования может зависеть от типа прогнозирования (одно из внутреннего прогнозирования и внешнего прогнозирования) и может зависеть от режима внутреннего прогнозирования.[0103] Conversion types include, for example, DCT-II, DCT-V, DCT-VIII, DST-I and DST-VII. Fig. 5A is a diagram indicating basic transformation functions for example transformation types. In fig. 5A, N indicates the number of input pixels. For example, the selection of a transformation type from a plurality of transformation types may depend on the prediction type (one of intra-prediction and outer prediction) and may depend on the intra-prediction mode.

[0104] Информация, указывающая то, следует или нет применять такое EMT или AMT (называется, например, "EMT-флагом" или "AMT-флагом"), и информация, указывающая выбранный тип преобразования, нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не обязательно должна выполняться на уровне CU и может выполняться на другом уровне (например, на уровне битовой последовательности, уровне кадра, уровне слайса, уровне тайла или уровне CTU).[0104] Information indicating whether or not such EMT or AMT should be applied (called, for example, "EMT flag" or "AMT flag"), and information indicating the selected type of conversion are normally signaled at the CU level . It should be noted that the signaling of this information does not necessarily have to be performed at the CU level and may be performed at another level (eg, bit sequence level, frame level, slice level, tile level, or CTU level).

[0105] Помимо этого, преобразователь 106 может повторно преобразовывать коэффициенты преобразования (результат преобразования). Такое повторное преобразование также называется "адаптивным вторичным преобразованием (AST)" или "неразделимым вторичным преобразованием (NSST)". Например, преобразователь 106 выполняет повторное преобразование в единицах субблока (например, субблока 4×4), включенного в блок коэффициентов преобразования, соответствующий ошибке внутреннего прогнозирования. Информация, указывающая то, следует или нет применять NSST, и информация, связанная с матрицей преобразования для использования в NSST, нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла или уровне CTU).[0105] In addition, the converter 106 can re-convert the conversion coefficients (conversion result). This re-transformation is also called "adaptive secondary transform (AST)" or "non-separable secondary transform (NSST)". For example, converter 106 performs reconversion in units of a subblock (eg, a 4x4 subblock) included in a block of transform coefficients corresponding to the intra prediction error. Information indicating whether or not to apply NSST and information associated with a transformation matrix to be used in NSST are normally signaled at the CU level. It should be noted that signaling of this information does not necessarily have to be performed at the CU level and may be performed at another level (eg, sequence level, frame level, slice level, tile level, or CTU level).

[0106] Преобразователь 106 может использовать разделимое преобразование и неразделимое преобразование. Разделимое преобразование представляет собой способ, в котором преобразование выполняется многократно посредством отдельного выполнения преобразования для каждого из определенного числа направлений согласно числу размерностей вводов. Неразделимое преобразование представляет собой способ выполнения коллективного преобразования, в котором две или более размерностей в многомерных вводах совместно рассматриваются в качестве одной размерности.[0106] The converter 106 may use a separable transform and an inseparable transform. Separable transformation is a method in which the transformation is performed multiple times by separately performing the transformation for each of a certain number of directions according to the number of dimensions of the inputs. An inseparable transformation is a method of performing a collective transformation in which two or more dimensions in multidimensional inputs are collectively treated as one dimension.

[0107] В одном примере неразделимого преобразования, когда ввод представляет собой блок 4×4, блок 4×4 рассматривается в качестве единого массива, включающего в себя шестнадцать элементов, и преобразование применяет матрицу преобразования 16×16 к массиву.[0107] In one example of a non-separable transformation, when the input is a 4x4 block, the 4x4 block is treated as a single array including sixteen elements, and the transformation applies a 16x16 transformation matrix to the array.

[0108] В другом примере неразделимого преобразования, входной блок 4×4 рассматривается в качестве единого массива, включающего в себя шестнадцать элементов, и после этого может выполняться преобразование (гиперкубическое преобразование Гивенса), в котором вращение Гивенса выполняется для массива многократно.[0108] In another example of a non-separable transformation, a 4x4 input block is treated as a single array including sixteen elements, and a transformation (hypercubic Givens transform) can then be performed in which a Givens rotation is performed on the array multiple times.

[0109] При преобразовании в преобразователе 106, могут переключаться типы базисов, которые должны преобразовываться в частотную область согласно областям в CU. Примеры включают в себя пространственно варьирующиеся преобразования (SVT). В SVT, как проиллюстрировано на фиг. 5B, CU разбиваются на две равных области горизонтально или вертикально, и только одна из областей преобразуется в частотную область. Базисный тип преобразования может задаваться для каждой области. Например, используются DST7 и DST8. В этом примере, только одна из двух областей в CU преобразуется, а другая не преобразуется. Тем не менее, обе из этих двух областей могут преобразовываться. Помимо этого, способ разбиения не ограничен разбиением на две равных области и может быть более гибким. Например, CU может разбиваться на четыре равных области, или информация, указывающая разбиение, может кодироваться отдельно и передаваться в служебных сигналах идентично CU-разбиению. Следует отметить, что SVT также называется "субблочным преобразованием (SBT)".[0109] When converting in the converter 106, the types of bases to be converted to the frequency domain according to the domains in the CU can be switched. Examples include spatially varying transforms (SVT). In SVT, as illustrated in FIG. 5B, the CUs are divided into two equal regions horizontally or vertically, and only one of the regions is converted to the frequency domain. The basic transformation type can be specified for each area. For example, DST7 and DST8 are used. In this example, only one of the two areas in the CU is converted, and the other is not converted. However, both of these two areas can transform. In addition, the partitioning method is not limited to partitioning into two equal areas and can be more flexible. For example, the CU may be partitioned into four equal areas, or information indicating the partition may be encoded separately and signaled identically to the CU partition. It should be noted that SVT is also called "sub-block transform (SBT)".

[0110] Квантователь [0110] Quantizer

Квантователь 108 квантует коэффициенты преобразования, выводимые из преобразователя 106. Более конкретно, квантователь 108 сканирует, в определенном порядке сканирования, коэффициенты преобразования текущего блока и квантует сканированные коэффициенты преобразования на основе параметров квантования (QP), соответствующих коэффициентам преобразования. Квантователь 108 затем выводит квантованные коэффициенты преобразования (в дальнейшем также называются "квантованными коэффициентами") текущего блока в энтропийный кодер 110 и обратный квантователь 112. Определенный порядок сканирования может быть предварительно определен.Quantizer 108 quantizes transform coefficients output from transformer 106. More specifically, quantizer 108 scans, in a specific scanning order, transform coefficients of the current block and quantizes the scanned transform coefficients based on quantization parameters (QPs) corresponding to the transform coefficients. Quantizer 108 then outputs quantized transform coefficients (hereinafter also referred to as “quantized coefficients”) of the current block to entropy encoder 110 and inverse quantizer 112. A specific scan order may be predetermined.

[0111] Определенный порядок сканирования представляет собой порядок для квантования/обратного квантования коэффициентов преобразования. Например, определенный порядок сканирования может задаваться как порядок по возрастанию частоты (от низкой к высокой частоте) или порядок по убыванию частоты (от высокой к низкой частоте).[0111] The determined scanning order is the order for quantizing/inverse quantizing the transform coefficients. For example, a particular scan order may be specified as ascending frequency order (low to high frequency) or descending frequency order (high to low frequency).

[0112] Параметр квантования (QP) представляет собой параметр, задающий шаг квантования (ширину квантования). Например, когда значение параметра квантования увеличивается, размер шага квантования также увеличивается. Другими словами, когда значение параметра квантования увеличивается, ошибка квантования увеличивается.[0112] The quantization parameter (QP) is a parameter that specifies the quantization step (quantization width). For example, when the value of the quantization parameter increases, the quantization step size also increases. In other words, when the value of the quantization parameter increases, the quantization error increases.

[0113] Помимо этого, матрица квантования может использоваться для квантования. Например, несколько видов матриц квантования могут использоваться, соответственно, чтобы выполнять преобразование частоты для размеров, таких как 4×4 и 8×8, режимов прогнозирования, таких как внутреннее прогнозирование и внешнее прогнозирование, и пиксельных компонентов, таких как пиксельные компоненты сигнала яркости и сигнала цветности. Следует отметить, что квантование означает оцифровку значений, дискретизированных с определенными интервалами, соответственно, в определенные уровни. В этой области техники, квантование может упоминаться с использованием других выражений, таких как округление и масштабирование, и может использовать округление и масштабирование. Определенные интервалы и уровни могут быть предварительно определены.[0113] In addition, the quantization matrix can be used for quantization. For example, several kinds of quantization matrices may be used, respectively, to perform frequency conversion for sizes such as 4×4 and 8×8, prediction modes such as intra-prediction and outer-prediction, and pixel components such as luminance and pixel components. color signal. It should be noted that quantization means digitizing values sampled at certain intervals, respectively, into certain levels. In this art, quantization may be referred to using other expressions such as rounding and scaling, and may use rounding and scaling. Certain intervals and levels can be predefined.

[0114] Способы с использованием матриц квантования включают в себя способ с использованием матрицы квантования, которая задана непосредственно на стороне кодера, и способ с использованием матрицы квантования, которая задана в качестве значения по умолчанию (матрицы по умолчанию). На стороне кодера, матрица квантования, подходящая для признаков изображения, может задаваться посредством прямого задания матрицы квантования. Тем не менее, этот случай имеет недостаток увеличения объема кодирования для кодирования матрицы квантования.[0114] Methods using quantization matrices include a method using a quantization matrix that is directly set on the encoder side, and a method using a quantization matrix that is set as a default value (default matrix). On the encoder side, a quantization matrix suitable for image features can be specified by directly specifying the quantization matrix. However, this case has the disadvantage of increasing the encoding volume for encoding the quantization matrix.

[0115] Предусмотрен способ для квантования высокочастотного коэффициента и низкочастотного коэффициента без использования матрицы квантования. Следует отметить, что этот способ является эквивалентным способу с использованием матрицы квантования (плоской матрицы), коэффициенты которой имеют идентичное значение.[0115] A method is provided for quantizing a high frequency coefficient and a low frequency coefficient without using a quantization matrix. It should be noted that this method is equivalent to the method using a quantization matrix (flat matrix), the coefficients of which have identical values.

[0116] Матрица квантования может указываться с использованием, например, набора параметров последовательности (SPS) или набора параметров кадра (PPS). SPS включает в себя параметр, который используется для последовательности, и PPS включает в себя параметр, который используется для кадра. Каждый из SPS и PPS может называться просто "набором параметров".[0116] The quantization matrix may be specified using, for example, a sequence parameter set (SPS) or a frame parameter set (PPS). SPS includes a parameter that is used for a sequence, and PPS includes a parameter that is used for a frame. Each of the SPS and PPS may be referred to simply as a "parameter set".

[0117] Энтропийный кодер [0117] Entropy encoder

Энтропийный кодер 110 формирует кодированный сигнал (кодированный поток битов) на основе квантованных коэффициентов, которые введены из квантователя 108. Более конкретно, энтропийный кодер 110, например, преобразует в двоичную форму квантованные коэффициенты и арифметически кодирует двоичный сигнал и выводит сжатый поток битов или последовательность.Entropy encoder 110 generates a coded signal (coded bit stream) based on the quantized coefficients that are input from quantizer 108. More specifically, entropy encoder 110, for example, binarizes the quantized coefficients and arithmetically encodes the binary signal and outputs a compressed bit stream or sequence.

[0118] Обратный квантователь [0118] Inverse Quantizer

Обратный квантователь 112 обратно квантует квантованные коэффициенты, которые введены из квантователя 108. Более конкретно, обратный квантователь 112 обратно квантует, в определенном порядке сканирования, квантованные коэффициенты текущего блока. Обратный квантователь 112 затем выводит обратно квантованные коэффициенты преобразования текущего блока в обратный преобразователь 114. Определенный порядок сканирования может быть предварительно определен.The inverse quantizer 112 inversely quantizes the quantized coefficients that are input from the quantizer 108. More specifically, the inverse quantizer 112 inversely quantizes, in a specific scan order, the quantized coefficients of the current block. The inverse quantizer 112 then outputs the inversely quantized transform coefficients of the current block to the inverse quantizer 114. A specific scan order may be predetermined.

[0119] Обратный преобразователь [0119] Inverter

Обратный преобразователь 114 восстанавливает ошибки прогнозирования (остатки) посредством обратного преобразования коэффициентов преобразования, которые введены из обратного квантователя 112. Более конкретно, обратный преобразователь 114 восстанавливает ошибки прогнозирования текущего блока посредством применения обратного преобразования, соответствующего преобразованию, применяемому посредством преобразователя 106, к коэффициентам преобразования. Обратный преобразователь 114 затем выводит восстановленные ошибки прогнозирования в сумматор 116.The inverse transformer 114 recovers prediction errors (residuals) by inversely transforming the transform coefficients that are input from the inverse quantizer 112. More specifically, the inverse transformer 114 recovers the prediction errors of the current block by applying an inverse transform corresponding to the transform applied by the transformer 106 to the transform coefficients. Inverter 114 then outputs the recovered prediction errors to adder 116.

[0120] Следует отметить, что поскольку информация потеряна в квантовании, восстановленные ошибки прогнозирования не совпадают с ошибками прогнозирования, вычисленными посредством вычитателя 104. Другими словами, восстановленные ошибки прогнозирования нормально включают в себя ошибки квантования.[0120] It should be noted that since information is lost in quantization, the reconstructed prediction errors are not the same as the prediction errors calculated by the subtractor 104. In other words, the reconstructed prediction errors normally include quantization errors.

[0121] Сумматор [0121] Totalizer

Сумматор 116 восстанавливает текущий блок посредством суммирования ошибок прогнозирования, которые введены из обратного преобразователя 114, и прогнозных выборок, которые введены из контроллера 128 прогнозирования. Сумматор 116 затем выводит восстановленный блок в запоминающее устройство 118 блоков и контурный фильтр 120. Восстановленный блок также называется "локальным декодированным блоком".The adder 116 reconstructs the current block by summing the prediction errors that are input from the inverter 114 and the prediction samples that are input from the prediction controller 128 . Adder 116 then outputs the reconstructed block to block memory 118 and loop filter 120. The reconstructed block is also referred to as a “local decoded block.”

[0122] Запоминающее устройство блоков [0122] Block memory

Запоминающее устройство 118 блоков, например, представляет собой устройство хранения данных для сохранения блоков в кадре, который должен кодироваться (далее называется "текущим кадром"), на который ссылаются при внутреннем прогнозировании. Более конкретно, запоминающее устройство 118 блоков сохраняет восстановленные блоки, выводимые из сумматора 116.The block memory 118, for example, is a storage device for storing blocks in a frame to be encoded (hereinafter referred to as a “current frame”) referred to in intra prediction. More specifically, block storage 118 stores reconstructed blocks output from adder 116.

[0123] Запоминающее устройство кадров [0123] Frame memory

Запоминающее устройство 122 кадров, например, представляет собой устройство хранения данных для сохранения опорных кадров для использования при внешнем прогнозировании, и также называется "буфером кадров". Более конкретно, запоминающее устройство 122 кадров сохраняет восстановленные блоки, фильтрованные посредством контурного фильтра 120.The frame memory 122, for example, is a storage device for storing reference frames for use in external prediction, and is also called a “frame buffer.” More specifically, frame memory 122 stores reconstructed blocks filtered by loop filter 120.

[0124] Контурный (loop) фильтр [0124] Loop filter

Контурный фильтр 120 применяет контурный фильтр к блокам, восстановленным посредством сумматора 116, и выводит фильтрованные восстановленные блоки в запоминающее устройство 122 кадров. Контурный фильтр представляет собой фильтр, используемый в контуре кодирования (внутриконтурный фильтр), и включает в себя, например, фильтр удаления блочности (DF или DBF), дискретизированное адаптивное смещение (SAO) и адаптивный контурный фильтр (ALF).Loop filter 120 applies a loop filter to the blocks reconstructed by the adder 116 and outputs the filtered reconstructed blocks to frame memory 122. A loop filter is a filter used in a coding loop (in-loop filter) and includes, for example, a deblocking filter (DF or DBF), sampled adaptive offset (SAO), and adaptive loop filter (ALF).

[0125] В ALF, применяется фильтр ошибок по методу наименьших квадратов для удаления артефактов сжатия. Например, один фильтр, выбранный из множества фильтров на основе направления и активности локальных градиентов, применяется для каждого из субблоков 2×2 в текущем блоке.[0125] In ALF, a least squares error filter is applied to remove compression artifacts. For example, one filter, selected from a plurality of filters based on the direction and activity of local gradients, is applied to each of the 2x2 subblocks in the current block.

[0126] Более конкретно, сначала каждый субблок (например, каждый субблок 2×2) классифицируются на один из множества классов (например, пятнадцать или двадцать пять классов). Классификация субблока основана на направленности и активности градиентов. Например, классификационный индекс C (например, C=5D+A) извлекается на основе направленности D градиентов (например, 0-2 или 0-4) и активности A градиентов (например, 0-4). Затем на основе классификационного индекса C каждый субблок классифицируется на один из множества классов.[0126] More specifically, first, each subblock (eg, each 2x2 subblock) is classified into one of a plurality of classes (eg, fifteen or twenty-five classes). The subblock classification is based on the directionality and activity of the gradients. For example, a classification index C (eg, C=5D+A) is extracted based on the directionality of the D gradients (eg, 0-2 or 0-4) and the activity of the A gradients (eg, 0-4). Then, based on the classification index C, each sub-block is classified into one of a variety of classes.

[0127] Например, направленность D градиентов вычисляется посредством сравнения градиентов множества направлений (например, горизонтального, вертикального и двух диагональных направлений). Кроме того, например, активность A градиентов вычисляется посредством суммирования градиентов множества направлений и квантования результата суммирования.[0127] For example, the directionality D of the gradients is calculated by comparing the gradients of multiple directions (eg, horizontal, vertical, and two diagonal directions). In addition, for example, the activity A of the gradients is calculated by summing the gradients of multiple directions and quantizing the result of the summation.

[0128] Фильтр, который должен использоваться для каждого субблока, определяется из множества фильтров на основе результата такой классификации.[0128] The filter to be used for each sub-block is determined from the plurality of filters based on the result of such classification.

[0129] Форма фильтра, который должен использоваться в ALF, например, представляет собой круглую симметричную форму фильтра. Фиг. 6A-6C иллюстрирует примеры форм фильтра, используемых в ALF. Фиг. 6A иллюстрирует фильтр ромбовидной формы 5×5, фиг. 6B иллюстрирует фильтр ромбовидной формы 7×7, и фиг. 6C иллюстрирует фильтр ромбовидной формы 9×9. Информация, указывающая форму фильтра, нормально передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах этой информации, указывающей форму фильтра, не обязательно должна выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла, уровне CTU или уровне CU).[0129] The filter shape to be used in the ALF, for example, is a circular symmetrical filter shape. Fig. 6A-6C illustrate examples of filter shapes used in ALF. Fig. 6A illustrates a 5x5 diamond shape filter, FIG. 6B illustrates a 7x7 diamond shape filter, and FIG. 6C illustrates a 9x9 diamond shaped filter. Information indicating the shape of the filter is normally carried in frame-level signaling. It should be noted that the signaling of this information indicating the shape of the filter need not be performed at the frame level and may be performed at another level (eg, sequence level, slice level, tile level, CTU level, or CU level).

[0130] Включение или выключение ALF определяется, например, на уровне кадра или на уровне CU. Например, решение касательно того, следует или нет применять ALF к сигналу яркости, может приниматься на уровне CU, и решение касательно того, следует или нет применять ALF к сигналу цветности, может приниматься на уровне кадра. Информация, указывающая включение или выключение ALF, нормально передается в служебных сигналах на уровне кадра или на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей включение или выключение ALF, не обязательно должна выполняться на уровне кадра или на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла или уровне CTU).[0130] Enabling or disabling ALF is determined, for example, at the frame level or at the CU level. For example, a decision regarding whether or not to apply ALF to a luma signal may be made at the CU level, and a decision regarding whether or not to apply ALF to a chrominance signal may be made at the frame level. Information indicating whether ALF is enabled or disabled is normally carried in signaling at the frame level or at the CU level. It should be noted that the signaling of information indicating the enabling or disabling of ALF need not be performed at the frame level or the CU level and may be performed at another level (eg, sequence level, slice level, tile level, or CTU level).

[0131] Набор коэффициентов для множества выбираемых фильтров (например, для пятнадцати или вплоть до двадцати пяти фильтров) нормально передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах набора коэффициентов не должна обязательно выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла, уровне CTU, уровне CU или уровне субблока).[0131] A set of coefficients for a plurality of selectable filters (eg, fifteen or up to twenty-five filters) is normally signaled at the frame level. It should be noted that signaling of the set of coefficients need not be performed at the frame level and may be performed at another level (eg, sequence level, slice level, tile level, CTU level, CU level, or subblock level).

[0132] Контурный фильтр > фильтр удаления блочности [0132] Loop Filter > Deblocking Filter

В фильтре удаления блочности, контурный фильтр 120 выполняет процесс фильтрации для границы блока в восстановленном изображении таким образом, чтобы уменьшать искажение, которое возникает на границе блока.In the deblocking filter, the edge filter 120 performs a filtering process on a block boundary in the reconstructed image so as to reduce distortion that occurs at the block boundary.

[0133] Фиг. 7 является блок-схемой, иллюстрирующей один пример конкретной конфигурации контурного фильтра 120, который функционирует в качестве фильтра удаления блочности.[0133] FIG. 7 is a block diagram illustrating one example of a particular configuration of a loop filter 120 that functions as a deblocking filter.

[0134] Контурный фильтр 120 включает в себя: модуль 1201 определения границ; модуль 1203 определения фильтрации; модуль 1205 выполнения фильтрации; модуль 1208 определения обработки; модуль 1207 определения характеристик фильтра; и переключатели 1202, 1204 and 1206.[0134] The loop filter 120 includes: a boundary detection module 1201; filter determination module 1203; filtering execution module 1205; processing determination module 1208; filter characteristics determination module 1207; and switches 1202, 1204 and 1206.

[0135] Модуль 1201 определения границ определяет то, присутствует или нет пиксел, который должен фильтроваться для удаления блочности (т.е. текущий пиксел), около границы блока. Модуль 1201 определения границ затем выводит результат определения в переключатель 1202 и модуль 1208 определения обработки.[0135] Boundary determination module 1201 determines whether or not a pixel to be filtered for deblocking (ie, the current pixel) is present near a block boundary. The boundary determination module 1201 then outputs the determination result to the switch 1202 and the processing determination module 1208 .

[0136] В случае если модуль 1201 определения границ определяет то, что текущий пиксел присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1204. В противоположном случае, в котором модуль 1201 определения границ определяет то, что текущий пиксел не присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1206.[0136] In the case where the edge detection module 1201 determines that the current pixel is present near the block boundary, the switch 1202 outputs an unfiltered image to the switch 1204. In the opposite case, in which the edge detection module 1201 determines that the current pixel is not present near the boundary block, switch 1202 outputs the unfiltered image to switch 1206.

[0137] Модуль 1203 определения фильтрации определяет то, следует или нет выполнять фильтрацию для удаления блочности текущего пиксела, на основе пиксельного значения по меньшей мере одного окружающего пиксела, расположенного около текущего пиксела. Модуль 1203 определения фильтрации затем выводит результат определения в переключатель 1204 и модуль 1208 определения обработки.[0137] The filter determination unit 1203 determines whether or not to perform filtering to deblock the current pixel based on the pixel value of at least one surrounding pixel located near the current pixel. The filter determination unit 1203 then outputs the determination result to the switch 1204 and the processing determination unit 1208.

[0138] В случае если определено то, что модуль 1203 определения фильтрации выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в модуль 1205 выполнения фильтрации. В противоположном случае, в котором определено то, что модуль 1203 определения фильтрации не выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в переключатель 1206.[0138] In case it is determined that the filter determination unit 1203 performs filtering to remove blockiness of the current pixel, the switch 1204 outputs the unfiltered image obtained through the switch 1202 to the filtering execution unit 1205. In the opposite case, in which it is determined that the filter determination module 1203 does not perform filtering to deblock the current pixel, the switch 1204 outputs the unfiltered image obtained through the switch 1202 to the switch 1206.

[0139] При получении нефильтрованного изображения через переключатели 1202 и 1204, модуль 1205 выполнения фильтрации выполняет, для текущего пиксела, фильтрацию для удаления блочности с характеристикой фильтра, определенной посредством модуля 1207 определения характеристик фильтра. Модуль 1205 выполнения фильтрации затем выводит фильтрованный пиксел в переключатель 1206.[0139] Upon receiving an unfiltered image via switches 1202 and 1204, filtering execution unit 1205 performs, for the current pixel, deblocking filtering with the filter characteristic determined by filter characteristic determining unit 1207. The filtering module 1205 then outputs the filtered pixel to the switch 1206.

[0140] Под управлением модуля 1208 определения обработки, переключатель 1206 избирательно выводит пиксел, который не фильтруется для удаления блочности, и пиксел, который фильтруется для удаления блочности посредством модуля 1205 выполнения фильтрации.[0140] Under the control of the processing determination unit 1208, the switch 1206 selectively outputs a pixel that is not filtered for deblocking and a pixel that is filtered for deblocking by the filtering execution unit 1205.

[0141] Модуль 1208 определения обработки управляет переключателем 1206 на основе результатов определений, выполняемых посредством модуля 1201 определения границ и модуля 1203 определения фильтрации. Другими словами, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который фильтруется для удаления блочности, когда модуль 1201 определения границ определяет то, что текущий пиксел присутствует около границы блока, и определено то, что модуль 1203 определения фильтрации выполняет фильтрацию для удаления блочности текущего пиксела. Помимо этого, помимо вышеописанного случая, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который не фильтруется для удаления блочности. Фильтрованное изображение выводится из переключателя 1206 посредством повторения вывода пиксела таким образом.[0141] The processing determination module 1208 controls the switch 1206 based on the results of the determinations made by the boundary determination module 1201 and the filtering determination module 1203 . In other words, the processing determination module 1208 instructs the switch 1206 to output a pixel that is filtered to deblock when the edge determination module 1201 determines that the current pixel is present near a block boundary, and it is determined that the filter determination module 1203 performs filtering to deblock the current pixel. In addition, in addition to the above-described case, the processing determination unit 1208 instructs the switch 1206 to output a pixel that is not filtered for deblocking. The filtered image is output from the switch 1206 by repeating the pixel output in this manner.

[0142] Фиг. 8 является концептуальной схемой, указывающей пример фильтра удаления блочности, имеющего симметричную характеристику фильтрации относительно границы блока.[0142] FIG. 8 is a conceptual diagram indicating an example of a deblocking filter having a symmetrical filtering characteristic with respect to a block boundary.

[0143] В процессе фильтрации для удаления блочности, один из двух фильтров удаления блочности, имеющих различные характеристики, т.е. сильного фильтра и слабого фильтра, выбирается с использованием пиксельных значений и параметров квантования. В случае сильного фильтра, пикселы p0-p2 и пикселы q0-q2 присутствуют на границе блока, как проиллюстрировано на фиг. 8, пиксельные значения соответствующего пиксела q0-q2 изменяются на пиксельные значения q'0-q'2 посредством выполнения, например, вычисления согласно нижеприведенным выражениям.[0143] In the deblocking filtering process, one of two deblocking filters having different characteristics, i.e. strong filter and weak filter, selected using pixel values and quantization parameters. In the case of a strong filter, pixels p0-p2 and pixels q0-q2 are present at the block boundary, as illustrated in FIG. 8, the pixel values of the corresponding pixel q0-q2 are changed to the pixel values q'0-q'2 by performing, for example, calculation according to the following expressions.

[0144] q'0=(p1+2xp0+2xq0+2xq1+q2+4)/8[0144] q'0=(p1+2xp0+2xq0+2xq1+q2+4)/8

q'1=(p0+q0+q1+q2+2)/4q'1=(p0+q0+q1+q2+2)/4

q'2=(p0+q0+q1+3xq2+2xq3+4)/8q'2=(p0+q0+q1+3xq2+2xq3+4)/8

[0145] Следует отметить, что, в вышеприведенных выражениях, p0-p2 и q0-q2 представляют собой пиксельные значения соответствующих пикселов p0-p2 и пикселов q0-q2. Помимо этого, q3 представляет собой пиксельное значение соседнего пиксела q3, расположенного в противоположной стороне пиксела q2 относительно границы блока. Помимо этого, в правой стороне каждого из выражений, коэффициенты, которые умножаются на соответствующие пиксельные значения пикселов, которые должны использоваться для фильтрации для удаления блочности, представляют собой коэффициенты фильтрации.[0145] It should be noted that, in the above expressions, p0-p2 and q0-q2 represent the pixel values of the corresponding pixels p0-p2 and pixels q0-q2. In addition, q3 is the pixel value of the neighboring pixel q3 located on the opposite side of pixel q2 relative to the block boundary. In addition, on the right side of each of the expressions, coefficients that are multiplied by the corresponding pixel values of the pixels to be used for filtering to remove blocking are filtering coefficients.

[0146] Кроме того, при фильтрации для удаления блочности, отсечение может выполняться таким образом, что вычисленные пиксельные значения не задаются выше порогового значения. В процессе отсечения, пиксельные значения, вычисленные согласно вышеприведенным выражениям, отсекаются до значения, полученного согласно "вычисленное пиксельное значение ± 2 x пороговое значение" с использованием порогового значения, определенного на основе параметра квантования. Таким образом, можно предотвращать чрезмерное сглаживание.[0146] Additionally, when filtering to remove blocking, clipping may be performed such that the calculated pixel values are not set above a threshold value. In the clipping process, the pixel values calculated according to the above expressions are clipped to the value obtained according to "calculated pixel value ± 2 x threshold value" using a threshold value determined based on the quantization parameter. In this way, excessive smoothing can be prevented.

[0147] Фиг. 9 является концептуальной схемой для иллюстрации границы блока, для которой выполняется процесс фильтрации для удаления блочности. Фиг. 10 является концептуальной схемой, указывающей примеры Bs-значений.[0147] FIG. 9 is a conceptual diagram for illustrating a block boundary on which a filtering process to remove blocking is performed. Fig. 10 is a conceptual diagram indicating examples of Bs values.

[0148] Граница блока, для которой выполняется процесс фильтрации для удаления блочности, например, представляет собой границу между единицами прогнозирования (PU), имеющими пиксельные блоки 8×8, как проиллюстрировано на фиг. 9, или границу между единицами преобразования (TU). Процесс фильтрации для удаления блочности может выполняться в единицах из четырех строк или четырех столбцов. Во-первых, значения граничной интенсивности (Bs) определяются, как указано на фиг. 10 для блока P и блока Q, проиллюстрированных на фиг. 9.[0148] A block boundary on which the deblocking filtering process is performed, for example, is a boundary between prediction units (PUs) having 8x8 pixel blocks, as illustrated in FIG. 9, or the boundary between conversion units (TU). The deblocking filtering process can be performed in units of four rows or four columns. First, the boundary intensity values (Bs) are determined as indicated in FIG. 10 for the P block and Q block illustrated in FIG. 9.

[0149] Согласно Bs-значениям на фиг. 10, определяется то, следует или нет выполнять процессы фильтрации для удаления блочности границ блоков, принадлежащих идентичному изображению, с использованием различных интенсивностей. Процесс фильтрации для удаления блочности для сигнала цветности выполняется, когда Bs-значение равно 2. Процесс фильтрации для удаления блочности для сигнала яркости выполняется, когда Bs-значение равно 1 или более, и определенное условие удовлетворяется. Определенное условие может быть предварительно определено. Следует отметить, что условия для определения Bs-значений не ограничены условиями, указываемыми на фиг. 10, и Bs-значение может определяться на основе другого параметра.[0149] According to the Bs values in FIG. 10, it is determined whether or not filtering processes for deblocking the boundaries of blocks belonging to an identical image should be performed using different intensities. The deblocking filtering process for the chroma signal is performed when the Bs value is 2. The deblocking filtering process for the luma signal is performed when the Bs value is 1 or more and a certain condition is satisfied. A certain condition can be predefined. It should be noted that the conditions for determining the Bs values are not limited to those indicated in FIG. 10, and the Bs value may be determined based on another parameter.

[0150] Процессор прогнозирования (модуль внутреннего прогнозирования, модуль внешнего прогнозирования, контроллер прогнозирования) [0150] Prediction Processor (Internal Prediction Module, External Prediction Module, Prediction Controller)

Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования кодера 100. Следует отметить, что процессор прогнозирования включает в себя все или часть следующих составляющих элементов: модуль 124 внутреннего прогнозирования; модуль 126 внешнего прогнозирования; и контроллер 128 прогнозирования.Fig. 11 is a flowchart illustrating one example of a process performed by the prediction processor of the encoder 100. It should be noted that the prediction processor includes all or part of the following constituent elements: an intra prediction module 124; external prediction module 126; and a prediction controller 128.

[0151] Процессор прогнозирования формирует прогнозное изображение текущего блока (этап Sb_1). Это прогнозное изображение также называется "прогнозным сигналом" или "блоком прогнозирования". Следует отметить, что прогнозный сигнал, например, представляет собой внутренний прогнозный сигнал или внешний прогнозный сигнал. В частности, процессор прогнозирования формирует прогнозное изображение текущего блока с использованием восстановленного изображения, которое уже получено через формирование блока прогнозирования, формирование разностного блока, формирование блока коэффициентов, восстановление разностного блока и формирование декодированного блока изображений.[0151] The prediction processor generates a prediction image of the current block (step Sb_1). This prediction image is also called a "prediction signal" or a "prediction block". It should be noted that the prediction signal is, for example, an internal prediction signal or an external prediction signal. Specifically, the prediction processor generates a prediction image of the current block using a reconstructed image that has already been obtained through prediction block generation, difference block generation, coefficient block generation, difference block reconstruction, and decoded image block generation.

[0152] Восстановленное изображение, например, может представлять собой изображение в опорном кадре или изображение кодированного блока в текущем кадре, который представляет собой кадр, включающий в себя текущий блок. Кодированный блок в текущем кадре, например, представляет собой соседний блок относительно текущего блока.[0152] The reconstructed image, for example, may be an image in a reference frame or an image of a coded block in a current frame, which is a frame including the current block. The coded block in the current frame, for example, is a block adjacent to the current block.

[0153] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера 100.[0153] FIG. 12 is a flowchart illustrating another example of a process performed by the encoder prediction processor 100.

[0154] Процессор прогнозирования формирует прогнозное изображение с использованием первого способа (этап Sc_1a), формирует прогнозное изображение с использованием второго способа (этап Sc_1b) и формирует прогнозное изображение с использованием третьего способа (этап Sc_1c). Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования прогнозного изображения. Каждый из первого-третьего способов может представлять собой способ внешнего прогнозирования, способ внутреннего прогнозирования или другой способ прогнозирования. Вышеописанное восстановленное изображение может использоваться в этих способах прогнозирования.[0154] The prediction processor generates a prediction image using the first method (step Sc_1a), generates a prediction image using the second method (step Sc_1b), and generates a prediction image using the third method (step Sc_1c). The first method, the second method and the third method may be mutually different methods for generating a predictive image. Each of the first to third methods may be an external forecasting method, an internal forecasting method, or another forecasting method. The above-described reconstructed image can be used in these prediction methods.

[0155] Затем, процессор прогнозирования выбирает любой из множества способов прогнозирования, сформированных на этапах Sc_1a, Sc_1b и Sc_1c (этап Sc_2). Выбор прогнозного изображения, который представляет собой выбор способа или режима для получения конечного прогнозного изображения, может осуществляться посредством вычисления затрат для каждого из сформированных прогнозных изображений и на основе затрат. Альтернативно, выбор прогнозного изображения может осуществляться на основе параметра, который используется в процессе кодирования. Кодер 100 может преобразовывать информацию для идентификации выбранного прогнозного изображения, способа или режима в кодированный сигнал (также называется "кодированным потоком битов"). Информация, например, может представлять собой флаг и т.п. Таким образом, декодер допускает формирование прогнозного изображения согласно способу или режиму, выбранному на основе информации в кодере 100. Следует отметить, что, в примере, проиллюстрированном на фиг. 12, процессор прогнозирования выбирает любое из прогнозных изображений после того, как прогнозные изображения формируются с использованием соответствующих способов. Тем не менее, процессор прогнозирования может выбирать способ или режим на основе параметра для использования в вышеописанном процессе кодирования до формирования прогнозных изображений и может формировать прогнозное изображение согласно выбранному способу или режиму.[0155] Next, the prediction processor selects any of the plurality of prediction methods generated in steps Sc_1a, Sc_1b, and Sc_1c (step Sc_2). Predictive image selection, which is the selection of a method or mode for obtaining the final predictive image, may be performed by calculating a cost for each of the generated predictive images and based on the cost. Alternatively, the selection of the prediction image may be based on a parameter that is used in the encoding process. Encoder 100 may convert information to identify a selected prediction image, method, or mode into a coded signal (also called a "coded bitstream"). The information may, for example, be a flag or the like. Thus, the decoder is capable of generating a prediction image according to a method or mode selected based on information in the encoder 100. It should be noted that, in the example illustrated in FIG. 12, the prediction processor selects any of the prediction images after the prediction images are generated using appropriate methods. However, the prediction processor may select a method or mode based on a parameter to be used in the above-described encoding process before generating prediction images, and may generate a prediction image according to the selected method or mode.

[0156] Например, первый способ и второй способ могут представлять собой внутренне прогнозирование и внешнее прогнозирование, соответственно, и процессор прогнозирования может выбирать конечное прогнозное изображение для текущего блока из прогнозных изображений, сформированных согласно способам прогнозирования.[0156] For example, the first method and the second method may be internal prediction and external prediction, respectively, and the prediction processor may select the final prediction image for the current block from prediction images generated according to the prediction methods.

[0157] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера 100.[0157] FIG. 13 is a flowchart illustrating another example of a process performed by the encoder prediction processor 100.

[0158] Во-первых, процессор прогнозирования формирует прогнозное изображение с использованием внутреннего прогнозирования (этап Sd_1a) и формирует прогнозное изображение с использованием внешнего прогнозирования (этап Sd_1b). Следует отметить, что прогнозное изображение, сформированное посредством внутреннего прогнозирования, также называется "внутренним прогнозным изображением", и прогнозное изображение, сформированное посредством внешнего прогнозирования, также называется "внешним прогнозным изображением".[0158] First, the prediction processor generates a prediction image using internal prediction (step Sd_1a) and generates a prediction image using external prediction (step Sd_1b). It should be noted that the prediction image generated by internal prediction is also called "internal prediction image", and the prediction image generated by external prediction is also called "external prediction image".

[0159] Затем, процессор прогнозирования оценивает каждое из внутреннего прогнозного изображения и внешнего прогнозного изображения (этап Sd_2). Затраты могут использоваться при оценке. Другими словами, процессор прогнозирования вычисляет затраты C для каждого из внутреннего прогнозного изображения и внешнего прогнозного изображения. Затраты C могут вычисляться согласно выражению модели R-D-оптимизации, например, C=D+λ*R. В этом выражении, D указывает искажение при кодировании прогнозного изображения и представляется, например, как сумма абсолютных разностей между пиксельным значением текущего блока и пиксельным значением прогнозного изображения. Помимо этого, R указывает прогнозированный объем кодирования прогнозного изображения, а именно, объем кодирования, требуемый для того, чтобы кодировать информацию движения для формирования прогнозного изображения, и т.д. Помимо этого, λ указывает, например, множитель согласно способу множителя Лагранжа.[0159] Next, the prediction processor evaluates each of the inner prediction image and the outer prediction image (step Sd_2). Costs can be used in estimation. In other words, the prediction processor calculates a cost C for each of the inner prediction image and the outer prediction image. Cost C can be calculated according to the expression of the R-D optimization model, for example, C=D+λ*R. In this expression, D indicates the distortion when encoding the prediction image and is represented, for example, as the sum of the absolute differences between the pixel value of the current block and the pixel value of the prediction image. In addition, R indicates a predicted encoding amount of the prediction image, namely, an encoding amount required to encode motion information to generate the prediction image, etc. In addition, λ indicates, for example, a multiplier according to the Lagrange multiplier method.

[0160] Процессор прогнозирования затем выбирает прогнозное изображение, для которого наименьшие затраты C вычислены из внутреннего прогнозного изображения и внешнего прогнозного изображения, в качестве конечного прогнозного изображения для текущего блока (этап Sd_3). Другими словами, выбирается способ или режим прогнозирования для формирования прогнозного изображения для текущего блока.[0160] The prediction processor then selects the prediction image for which the least cost C is calculated from the inner prediction image and the outer prediction image as the final prediction image for the current block (step Sd_3). In other words, a prediction method or mode is selected to generate a prediction image for the current block.

[0161] Модуль внутреннего прогнозирования [0161] Internal prediction module

Модуль 124 внутреннего прогнозирования формирует прогнозный сигнал (внутренний прогнозный сигнал) посредством выполнения внутреннего прогнозирования (также называется "внутрикадровым прогнозированием") текущего блока посредством ссылки на блок или блоки в текущем кадре, сохраненном в запоминающем устройстве 118 блоков. Более конкретно, модуль 124 внутреннего прогнозирования формирует внутренний прогнозный сигнал посредством выполнения внутреннего прогнозирования посредством ссылки на выборки (например, значения сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутренний прогнозный сигнал в контроллер 128 прогнозирования.The intra prediction module 124 generates a prediction signal (intra prediction signal) by performing intra prediction (also called “intra prediction”) of the current block by reference to the block or blocks in the current frame stored in the block memory 118. More specifically, the intra prediction module 124 generates an internal prediction signal by performing intra prediction by reference to samples (eg, luminance value and/or chrominance value) of the block or blocks adjacent to the current block, and then outputs the internal prediction signal to the prediction controller 128 .

[0162] Например, модуль 124 внутреннего прогнозирования выполняет внутреннее прогнозирование посредством использования одного режима из множества режимов внутреннего прогнозирования, которые задаются. Режимы внутреннего прогнозирования включают в себя один или более режимов ненаправленного прогнозирования и множество режимов направленного прогнозирования. Заданные режимы могут быть предварительно заданы.[0162] For example, the intra prediction unit 124 performs intra prediction by using one mode of a plurality of intra prediction modes that are set. The intra prediction modes include one or more non-directional prediction modes and a plurality of directed prediction modes. Preset modes can be preset.

[0163] Один или более режимов ненаправленного прогнозирования включают в себя, например, режим планарного прогнозирования и режим DC-прогнозирования, заданные в стандарте H.265/высокоэффективного кодирования видео (HEVC).[0163] The one or more non-directional prediction modes include, for example, a planar prediction mode and a DC prediction mode defined in the H.265/High Efficiency Video Coding (HEVC) standard.

[0164] Множество режимов направленного прогнозирования включают в себя, например, тридцать три режима направленного прогнозирования, заданные в H.265/HEVC-стандарте. Следует отметить, что множество режимов направленного прогнозирования дополнительно могут включать в себя тридцать два режима направленного прогнозирования в дополнение к тридцати трем режимам направленного прогнозирования (в сумме шестьдесят пять режимов направленного прогнозирования). Фиг. 14 является концептуальной схемой, иллюстрирующей шестьдесят семь режимов внутреннего прогнозирования в сумме, которые могут использоваться при внутреннем прогнозировании (два режима ненаправленного прогнозирования и шестьдесят пять режимов направленного прогнозирования). Сплошные стрелки представляют тридцать три направления, заданные в H.265/HEVC-стандарте, и пунктирные стрелки представляют дополнительные тридцать два направления (два режима ненаправленного прогнозирования не проиллюстрированы на фиг. 14).[0164] The plurality of directional prediction modes includes, for example, the thirty-three directional prediction modes defined in the H.265/HEVC standard. It should be noted that the plurality of directional prediction modes may further include thirty-two directional prediction modes in addition to the thirty-three directional prediction modes (for a total of sixty-five directional prediction modes). Fig. 14 is a conceptual diagram illustrating sixty-seven intra-prediction modes in total that can be used in intra-prediction (two non-directional prediction modes and sixty-five directional prediction modes). The solid arrows represent the thirty-three directions defined in the H.265/HEVC standard, and the dotted arrows represent the additional thirty-two directions (the two non-directional prediction modes are not illustrated in FIG. 14).

[0165] В различных видах примеров обработки, на блок сигналов яркости можно ссылаться при внутреннем прогнозировании блока сигналов цветности. Другими словами, компонент сигнала цветности текущего блока может прогнозироваться на основе компонента сигнала яркости текущего блока. Такое внутреннее прогнозирование также называется "прогнозированием на основе кросскомпонентной линейной модели (CCLM)". Режим внутреннего прогнозирования для блока сигналов цветности, в котором на такой блок сигналов яркости ссылаются (также называется, например, "CCLM-режимом"), может добавляться в качестве одного из режимов внутреннего прогнозирования для блоков сигналов цветности.[0165] In various kinds of processing examples, a luma signal block may be referenced in internal prediction of a chrominance signal block. In other words, the chrominance signal component of the current block can be predicted based on the luminance signal component of the current block. This internal forecasting is also called “Cross Component Linear Model (CCLM) forecasting.” An intra-prediction mode for a chrominance block in which such a luma block is referenced (also called, for example, a “CCLM mode”) may be added as one of the intra-prediction modes for the chrominance blocks.

[0166] Модуль 124 внутреннего прогнозирования может корректировать внутренне прогнозированные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов. Внутреннее прогнозирование, сопровождаемое посредством этого вида коррекции, также называется "позиционно-зависимой комбинацией с внутренним прогнозированием (PDPC)". Информация, указывающая то, следует или нет применять PDPC (называется, например, "PDPC-флагом"), нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла или уровне CTU).[0166] The internal prediction module 124 may adjust the internally predicted pixel values based on horizontal/vertical reference pixel gradients. The internal prediction followed by this kind of correction is also called "position-dependent combination with internal prediction (PDPC)". Information indicating whether or not to use PDPC (called, for example, a "PDPC flag") is normally signaled at the CU level. It should be noted that signaling of this information does not necessarily have to be performed at the CU level and may be performed at another level (eg, sequence level, frame level, slice level, tile level, or CTU level).

[0167] Модуль внешнего прогнозирования [0167] External Prediction Module

Модуль 126 внешнего прогнозирования формирует прогнозный сигнал (внешний прогнозный сигнал) посредством выполнения внешнего прогнозирования (также называется "межкадровым прогнозированием") текущего блока посредством ссылки на блок или блоки в опорном кадре, который отличается от текущего кадра и сохраняется в запоминающем устройстве 122 кадров. Внешнее прогнозирование выполняется в единицах текущего блока или текущего субблока (например, блок 4×4) в текущем блоке. Например, модуль 126 внешнего прогнозирования выполняет оценку движения в опорном кадре для текущего блока или текущего субблока и узнает опорный блок или субблок, который имеет наилучшее совпадение с текущим блоком или текущим субблоком. Модуль 126 внешнего прогнозирования затем получает информацию движения (например, вектор движения), которая компенсирует движение или изменение с опорного блока или субблока на текущий блок или субблок. Модуль 126 внешнего прогнозирования формирует внешний прогнозный сигнал текущего блока или субблока посредством выполнения компенсации движения (или прогнозирования движения) на основе информации движения. Модуль 126 внешнего прогнозирования выводит сформированный внешний прогнозный сигнал в контроллер 128 прогнозирования.The inter-prediction unit 126 generates a prediction signal (external prediction signal) by performing inter-prediction (also called “inter-frame prediction”) of the current block by reference to a block or blocks in a reference frame that is different from the current frame and stored in the frame memory 122 . External prediction is performed in units of the current block or the current subblock (eg, a 4x4 block) within the current block. For example, the external prediction module 126 performs motion estimation in a reference frame for the current block or current sub-block and learns the reference block or sub-block that has the best match with the current block or current sub-block. The external prediction module 126 then receives motion information (eg, a motion vector) that compensates for the motion or change from the reference block or subblock to the current block or subblock. The external prediction unit 126 generates an external prediction signal of the current block or sub-block by performing motion compensation (or motion prediction) based on the motion information. The external prediction module 126 outputs the generated external prediction signal to the prediction controller 128 .

[0168] Информация движения, используемая при компенсации движения, может передаваться в служебных сигналах в качестве внешних прогнозных сигналов в различных формах. Например, вектор движения может передаваться в служебных сигналах. Другими словами, разность между вектором движения и предиктором вектора движения может передаваться в служебных сигналах.[0168] Motion information used in motion compensation may be signaled as external predictive signals in various forms. For example, the motion vector may be signaled. In other words, the difference between the motion vector and the motion vector predictor may be signaled.

[0169] Базовая последовательность операций внешнего прогнозирования [0169] Basic External Forecasting Flow

Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей примерную базовую последовательность операций обработки внешнего прогнозирования.Fig. 15 is a flowchart illustrating an exemplary basic flow of external prediction processing.

[0170] Во-первых, модуль 126 внешнего прогнозирования формирует прогнозный сигнал (этапы Se_1-Se_3). Затем, вычитатель 104 формирует разность между текущим блоком и прогнозным изображением в качестве остатка прогнозирования (этап Se_4).[0170] First, the external prediction module 126 generates a prediction signal (steps Se_1 to Se_3). Next, the subtractor 104 generates the difference between the current block and the prediction image as a prediction residual (step Se_4).

[0171] Здесь, при формировании прогнозного изображения, модуль 126 внешнего прогнозирования формирует прогнозное изображение посредством определения вектора движения (MV) текущего блока (этапы Se_1 и Se_2) и компенсации движения (этап Se_3). Кроме того, при определении MV, модуль 126 внешнего прогнозирования определяет MV посредством выбора возможного варианта вектора движения (возможного MV-варианта) (этап Se_1) и извлечения MV (этап Se_2). Выбор возможного MV-варианта осуществляется, например, посредством выбора по меньшей мере одного возможного MV-варианта из списка возможных MV-вариантов. Альтернативно, при извлечении MV, модуль 126 внешнего прогнозирования дополнительно может выбирать по меньшей мере один возможный MV-вариант по меньшей мере из одного возможного MV-варианта и определять выбранный по меньшей мере один возможный MV-вариант в качестве MV для текущего блока. Альтернативно, модуль 126 внешнего прогнозирования может определять MV для текущего блока посредством выполнения оценки в области опорного кадра, указываемой посредством каждого из выбранного по меньшей мере одного возможного MV-варианта. Следует отметить, что оценка в области опорного кадра может называться "оценкой движения".[0171] Here, when generating a prediction image, the external prediction unit 126 generates a prediction image by determining the motion vector (MV) of the current block (steps Se_1 and Se_2) and motion compensation (step Se_3). In addition, when determining the MV, the external prediction unit 126 determines the MV by selecting a motion vector candidate (MV candidate) (step Se_1) and extracting the MV (step Se_2). The selection of a possible MV variant is carried out, for example, by selecting at least one possible MV variant from a list of possible MV variants. Alternatively, when extracting the MV, the external prediction module 126 may further select at least one MV candidate from the at least one MV candidate and determine the selected at least one MV candidate as the MV for the current block. Alternatively, the inter-prediction module 126 may determine the MV for the current block by performing an estimate in a reference frame region indicated by each of the selected at least one MV candidate. It should be noted that the estimation in the reference frame region may be referred to as "motion estimation".

[0172] Помимо этого, хотя этапы Se_1-Se_3 выполняются посредством модуля 126 внешнего прогнозирования в вышеописанном примере, процесс, который, например, представляет собой этап Se_1, этап Se_2 и т.п., может выполняться посредством другого составляющего элемента, включенного в кодер 100.[0172] In addition, although steps Se_1 to Se_3 are performed by the external prediction unit 126 in the above example, the process which is, for example, step Se_1, step Se_2, etc. may be performed by another component included in the encoder 100.

[0173] Последовательность операций извлечения векторов движения [0173] Motion Vector Extraction Flow

Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей один пример извлечения векторов движения.Fig. 16 is a flowchart illustrating one example of extracting motion vectors.

[0174] Модуль 126 внешнего прогнозирования извлекает MV текущего блока в режиме для кодирования информации движения (например, MV). В этом случае, например, информация движения кодируется как параметр прогнозирования и передается в служебных сигналах. Другими словами, кодированная информация движения включается в кодированный сигнал (также называется "кодированным потоком битов").[0174] The external prediction unit 126 extracts the MV of the current block in the mode for encoding motion information (eg, MV). In this case, for example, motion information is encoded as a prediction parameter and signaled. In other words, the encoded motion information is included in a coded signal (also called a "coded bit stream").

[0175] Альтернативно, модуль 126 внешнего прогнозирования извлекает MV в режиме, в котором информация движения не кодируется. В этом случае, информация движения не включается в кодированный сигнал.[0175] Alternatively, the external prediction module 126 extracts the MV in a mode in which motion information is not encoded. In this case, motion information is not included in the encoded signal.

[0176] Здесь, режимы MV-извлечения могут включать в себя нормальный внешний режим, режим объединения (merge), FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых информация движения кодируется, из числа режимов, включают в себя нормальный внешний режим, режим объединения, аффинный режим (в частности, аффинный внешний режим и аффинный режим объединения) и т.д. Следует отметить, что информация движения может включать в себя не только MV, но также и информацию выбора предиктора вектора движения, которая описывается ниже. Режимы, в которых информация движения не кодируется, включают в себя FRUC-режим и т.д. Модуль 126 внешнего прогнозирования выбирает режим для извлечения MV текущего блока из режимов и извлекает MV текущего блока с использованием выбранного режима.[0176] Here, MV extraction modes may include normal external mode, merge mode, FRUC mode, affine mode, etc., which are described below. The modes in which motion information is encoded include the normal outer mode, the combining mode, the affine mode (specifically, the affine outer mode and the affine combining mode), etc. It should be noted that the motion information may include not only MV, but also motion vector predictor selection information, which is described below. Modes in which motion information is not encoded include FRUC mode, etc. The external prediction unit 126 selects a mode for extracting the MV of the current block from the modes, and extracts the MV of the current block using the selected mode.

[0177] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения.[0177] FIG. 17 is a flowchart illustrating another example of extracting motion vectors.

[0178] Модуль 126 внешнего прогнозирования извлекает MV текущего блока в режиме, в котором MV-разность кодируется. В этом случае, например, MV-разность кодируется как параметр прогнозирования и передается в служебных сигналах. Другими словами, кодированная MV-разность включается в кодированный сигнал. MV-разность представляет собой разность между MV текущего блока и MV-предиктором.[0178] The external prediction unit 126 extracts the MV of the current block in a mode in which the MV difference is encoded. In this case, for example, the MV difference is encoded as a prediction parameter and signaled. In other words, the encoded MV difference is included in the encoded signal. The MV difference is the difference between the MV of the current block and the MV predictor.

[0179] Альтернативно, модуль 126 внешнего прогнозирования извлекает MV в режиме, в котором MV-разность не кодируется. В этом случае, кодированная MV-разность не включается в кодированный сигнал.[0179] Alternatively, the inter prediction module 126 extracts the MV in a mode in which the MV difference is not encoded. In this case, the encoded MV difference is not included in the encoded signal.

[0180] Здесь, как описано выше, режимы MV-извлечения включают в себя нормальный внешний режим, режим объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых MV-разность кодируется, из числа режимов, включают в себя нормальный внешний режим, аффинный режим (в частности, аффинный внешний режим) и т.д. Режимы, в которых MV-разность не кодируется, включают в себя FRUC-режим, режим объединения, аффинный режим (в частности, аффинный режим объединения) и т.д. Модуль 126 внешнего прогнозирования выбирает режим для извлечения MV текущего блока из множества режимов и извлекает MV текущего блока с использованием выбранного режима.[0180] Here, as described above, MV extraction modes include normal external mode, merge mode, FRUC mode, affine mode, etc., which are described below. Modes in which the MV difference is encoded include normal outer mode, affine mode (in particular, affine outer mode), etc. Modes in which the MV difference is not encoded include FRUC mode, concatenated mode, affine mode (specifically, affine concatenated mode), etc. The external prediction unit 126 selects a mode for extracting the MV of the current block from a plurality of modes, and extracts the MV of the current block using the selected mode.

[0181] Последовательность операций извлечения векторов движения [0181] Motion Vector Extraction Flow

Фиг. 18 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения. Режимы MV-извлечения, которые представляют собой режимы внешнего прогнозирования, включают в себя множество режимов и приблизительно разделяются на режимы, в которых MV-разность кодируется, и режимы, в которых разность векторов движения не кодируется. Режимы, в которых MV-разность не кодируется, включают в себя режим объединения, FRUC-режим, аффинный режим (в частности, аффинный режим объединения) и т.д. Эти режимы подробно описываются далее. Просто, режим объединения представляет собой режим для извлечения MV текущего блока посредством выбора вектора движения из кодированного окружающего блока, и FRUC-режим представляет собой режим для извлечения MV текущего блока посредством выполнения оценки между кодированными областями. Аффинный режим представляет собой режим для извлечения, в качестве MV текущего блока, вектора движения каждого из множества субблоков, включенных в текущий блок, при условии аффинного преобразования.Fig. 18 is a flowchart illustrating another example of extracting motion vectors. MV extraction modes, which are inter-prediction modes, include a variety of modes and are roughly divided into modes in which the MV difference is encoded and modes in which the motion vector difference is not encoded. Modes in which the MV difference is not encoded include merge mode, FRUC mode, affine mode (specifically, affine pool mode), etc. These modes are described in detail below. Simply, the merging mode is a mode for extracting the MV of a current block by selecting a motion vector from a coded surrounding block, and the FRUC mode is a mode for extracting the MV of a current block by performing estimation between coded regions. The affine mode is a mode for extracting, as the MV of the current block, the motion vector of each of a plurality of sub-blocks included in the current block, subject to an affine transformation.

[0182] Более конкретно, как проиллюстрировано, когда информация режима внешнего прогнозирования указывает 0 (0 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием режима объединения (Sf_2). Когда информация режима внешнего прогнозирования указывает 1 (1 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием FRUC-режима (Sf_3). Когда информация режима внешнего прогнозирования указывает 2 (2 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием аффинного режима (в частности, аффинного режима объединения) (Sf_4). Когда информация режима внешнего прогнозирования указывает 3 (3 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием режима, в котором MV-разность кодируется (например, нормального внешнего режима (Sf_5)).[0182] More specifically, as illustrated, when the inter prediction mode information indicates 0 (0 on Sf_1), the inter prediction unit 126 extracts the motion vector using the combining mode (Sf_2). When the inter prediction mode information indicates 1 (1 to Sf_1), the inter prediction unit 126 extracts the motion vector using the FRUC mode (Sf_3). When the inter prediction mode information indicates 2 (2 to Sf_1), the inter prediction unit 126 extracts the motion vector using an affine mode (specifically, an affine combining mode) (Sf_4). When the inter prediction mode information indicates 3 (3 to Sf_1), the inter prediction unit 126 extracts the motion vector using the mode in which the MV difference is encoded (eg, normal outer mode (Sf_5)).

[0183] MV-извлечение > нормальный внешний режим [0183] MV extract > normal external mode

Нормальный внешний режим представляет собой режим внешнего прогнозирования для извлечения MV текущего блока на основе блока, аналогичного изображению текущего блока, из области опорного кадра, указываемой посредством возможного MV-варианта. В этом нормальном внешнем режиме, MV-разность кодируется.The normal outer mode is an outer prediction mode for extracting the MV of the current block based on a block similar to the image of the current block from the reference frame area indicated by the MV candidate. In this normal external mode, the MV difference is encoded.

[0184] Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме.[0184] FIG. 19 is a flowchart illustrating an example of external prediction in a normal external mode.

[0185] Во-первых, модуль 126 внешнего прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sg_1). Другими словами, модуль 126 внешнего прогнозирования формирует список возможных MV-вариантов.[0185] First, the inter-prediction module 126 obtains a plurality of candidate MVs for the current block based on information such as the MVs of a plurality of coded blocks temporally or spatially surrounding the current block (step Sg_1). In other words, the external prediction module 126 generates a list of possible MV options.

[0186] Затем, модуль 126 внешнего прогнозирования извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Sg_1, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенному порядку приоритетов (этап Sg_2). Следует отметить, что порядок приоритетов может определяться заранее для каждого из N возможных MV-вариантов.[0186] Next, the external prediction module 126 extracts N (an integer of 2 or more) MV candidates from the plurality of MV candidates obtained in step Sg_1 as motion vector predictor candidates (also called “MV candidates”). predictors") according to a certain order of priorities (stage Sg_2). It should be noted that the priority order can be determined in advance for each of the N possible MV options.

[0187] Затем, модуль 126 внешнего прогнозирования выбирает один возможный вариант предиктора вектора движения из возможных вариантов предикторов векторов движения N, в качестве предиктора вектора движения (также называется "MV-предиктором") текущего блока (этап Sg_3). В это время, модуль 126 внешнего прогнозирования кодирует, в потоке, информацию выбора предиктора вектора движения для идентификации выбранного предиктора вектора движения. Следует отметить, что поток представляет собой кодированный сигнал или кодированный поток битов, как описано выше.[0187] Next, the external prediction unit 126 selects one motion vector predictor candidate from the motion vector predictor candidates N as the motion vector predictor (also called “MV predictor”) of the current block (step Sg_3). At this time, the external prediction unit 126 encodes, in the stream, motion vector predictor selection information to identify the selected motion vector predictor. It should be noted that the stream is a coded signal or a coded bit stream as described above.

[0188] Затем, модуль 126 внешнего прогнозирования извлекает MV текущего блока посредством ссылки на кодированный опорный кадр (этап Sg_4). В это время, модуль 126 внешнего прогнозирования дополнительно кодирует, в потоке, значение разности между извлеченным MV и предиктором вектора движения в качестве MV-разности. Следует отметить, что кодированный опорный кадр представляет собой кадр, включающий в себя множество блоков, которые восстановлены после кодирования.[0188] Next, the inter prediction unit 126 extracts the MV of the current block by reference to the encoded reference frame (step Sg_4). At this time, the external prediction unit 126 further encodes, in the stream, a difference value between the extracted MV and the motion vector predictor as an MV difference. It should be noted that an encoded reference frame is a frame including a plurality of blocks that are reconstructed after encoding.

[0189] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Sg_5). Следует отметить, что прогнозное изображение представляет собой внешний прогнозный сигнал, как описано выше.[0189] Finally, the external prediction unit 126 generates a prediction image for the current block by performing motion compensation of the current block using the extracted MV and the encoded reference frame (step Sg_5). It should be noted that the prediction image is an external prediction signal, as described above.

[0190] Помимо этого, информация, указывающая режим внешнего прогнозирования (нормальный внешний режим в вышеприведенном примере), используемый для того чтобы, формировать прогнозное изображение, например, кодируется в качестве параметра прогнозирования.[0190] In addition, information indicating the external prediction mode (normal external mode in the above example) used to generate a prediction image, for example, is encoded as a prediction parameter.

[0191] Следует отметить, что список возможных MV-вариантов также может использоваться в качестве списка для использования в другом режиме. Помимо этого, процессы, связанные со списком возможных MV-вариантов, могут применяться к процессам, связанным со списком для использования в другом режиме. Процессы, связанные со списком возможных MV-вариантов, включают в себя, например, извлечение или выбор возможного MV-варианта из списка возможных MV-вариантов, переупорядочение возможных MV-вариантов или удаление возможного MV-варианта.[0191] It should be noted that the list of possible MV options can also be used as a list for use in another mode. In addition, processes associated with a list of possible MV options can be applied to processes associated with a list for use in another mode. Processes associated with a list of MV candidates include, for example, retrieving or selecting a candidate MV from a list of candidate MVs, reordering the candidate MVs, or removing a candidate MV.

[0192] MV-извлечение > режим объединения [0192] MV extract > merge mode

Режим объединения представляет собой режим внешнего прогнозирования для выбора возможного MV-варианта из списка возможных MV-вариантов в качестве MV текущего блока, за счет этого извлекая MV.The merging mode is an external prediction mode for selecting a candidate MV from a list of candidate MVs as the MV of the current block, thereby extracting the MV.

[0193] Фиг. 20 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в режиме объединения.[0193] FIG. 20 is a flowchart illustrating an example of inter-prediction in the combining mode.

[0194] Во-первых, модуль 126 внешнего прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sh_1). Другими словами, модуль 126 внешнего прогнозирования формирует список возможных MV-вариантов.[0194] First, the inter-prediction module 126 obtains a plurality of candidate MVs for the current block based on information such as the MVs of a plurality of coded blocks temporally or spatially surrounding the current block (step Sh_1). In other words, the external prediction module 126 generates a list of possible MV options.

[0195] Затем, модуль 126 внешнего прогнозирования выбирает один возможный MV-вариант из множества возможных MV-вариантов, полученных на этапе Sh_1, за счет этого извлекая MV текущего блока (этап Sh_2). В это время, модуль 126 внешнего прогнозирования кодирует, в потоке, информацию MV-выбора для идентификации выбранного возможного MV-варианта.[0195] Next, the external prediction module 126 selects one candidate MV from the plurality of candidate MVs obtained in step Sh_1, thereby extracting the MV of the current block (step Sh_2). At this time, the external prediction module 126 encodes, in the stream, MV selection information to identify the selected MV candidate.

[0196] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Sh_3).[0196] Finally, the external prediction unit 126 generates a prediction image for the current block by performing motion compensation of the current block using the extracted MV and the encoded reference frame (step Sh_3).

[0197] Помимо этого, информация, указывающая режим внешнего прогнозирования (режим объединения в вышеприведенном примере), используемый для того, чтобы формировать прогнозное изображение, и включенная в кодированный сигнал, например, кодируется в качестве параметра прогнозирования.[0197] In addition, information indicating the inter prediction mode (combining mode in the above example) used to generate the prediction image and included in the encoded signal, for example, is encoded as a prediction parameter.

[0198] Фиг. 21 является концептуальной схемой для иллюстрации одного примера процесса извлечения векторов движения текущего кадра в режиме объединения.[0198] FIG. 21 is a conceptual diagram for illustrating one example of a process for extracting motion vectors of a current frame in a fusion mode.

[0199] Во-первых, список возможных MV-вариантов, в котором регистрируются возможные варианты MV-предикторов, формируется. Примеры возможных вариантов MV-предикторов включают в себя: пространственно соседние MV-предикторы, которые представляют собой MV множества кодированных блоков, расположенных пространственно окружающими текущий блок; временно соседние MV-предикторы, которые представляют собой MV окружающих блоков, на которые проецируется позиция текущего блока в кодированном опорном кадре; комбинированные MV-предикторы, которые представляют собой MV, сформированные посредством комбинирования MV-значения пространственно соседнего MV-предиктора и MV временно соседнего MV-предиктора; и нулевой MV-предиктор, который представляет собой MV, имеющий нулевое значение.[0199] First, a list of possible MV variants, in which possible variants of the MV predictors are registered, is generated. Examples of possible MV predictor options include: spatially adjacent MV predictors, which are the MVs of a plurality of coded blocks located spatially surrounding the current block; temporally adjacent MV predictors, which are the MVs of surrounding blocks onto which the position of the current block in the encoded reference frame is projected; combined MV predictors, which are MVs formed by combining the MV value of a spatially adjacent MV predictor and the MV of a temporally adjacent MV predictor; and a null MV predictor, which is an MV having a value of zero.

[0200] Затем, один MV-предиктор выбирается из множества MV-предикторов, зарегистрированных в списке MV-предикторов, и выбранный MV-предиктор определяется в качестве MV текущего блока.[0200] Next, one MV predictor is selected from the plurality of MV predictors registered in the MV predictor list, and the selected MV predictor is determined as the MV of the current block.

[0201] Кроме того, кодер переменной длины описывает и кодирует, в потоке, merge_idx, который представляет собой сигнал, указывающий то, какой MV-предиктор выбран.[0201] In addition, the variable length encoder describes and encodes, in the stream, merge_idx, which is a signal indicating which MV predictor is selected.

[0202] Следует отметить, что MV-предикторы, зарегистрированные в списке MV-предикторов, описанном на фиг. 21, представляют собой примеры. Число MV-предикторов может отличаться от числа MV-предикторов на схеме, список MV-предикторов может быть сконфигурирован таким образом, что некоторые виды MV-предикторов на схеме могут не включаться, либо таким образом, что один или более MV-предикторов, отличных от видов MV-предикторов на схеме, включаются.[0202] It should be noted that the MV predictors registered in the MV predictor list described in FIG. 21 are examples. The number of MV predictors may differ from the number of MV predictors in the diagram, the list of MV predictors may be configured such that some types of MV predictors in the diagram may not be included, or such that one or more MV predictors other than types of MV predictors in the diagram are included.

[0203] Конечный MV может определяться посредством выполнения процесса детализации векторов движения в декодере (DMVR), который описывается ниже, с использованием MV текущего блока, извлекаемого в режиме объединения.[0203] The final MV may be determined by performing a decoder motion vector refinement (DMVR) process, which is described below, using the MV of the current block extracted in the combining mode.

[0204] Следует отметить, что возможные варианты MV-предикторов представляют собой возможные MV-варианты, описанные выше, и список MV-предикторов представляет собой список возможных MV-вариантов, описанный выше. Следует отметить, что список возможных MV-вариантов может называться "списком возможных вариантов". Помимо этого, merge_idx представляет собой информацию MV-выбора.[0204] It should be noted that the MV predictor candidates are the MV candidate candidates described above, and the MV predictor list is the list of MV candidate candidates described above. It should be noted that the list of possible MV options may be referred to as a "candidate list". In addition, merge_idx represents MV selection information.

[0205] MV-извлечение > FRUC-режим [0205] MV extraction > FRUC mode

Информация движения может извлекаться на стороне декодера без передачи в служебных сигналах из стороны кодера. Следует отметить, что, как описано выше, может использоваться режим объединения, заданный в H.265/HEVC-стандарте. Помимо этого, например, информация движения может извлекаться посредством выполнения оценки движения на стороне декодера. В варианте осуществления, на стороне декодера оценка движения выполняется без использования пиксельных значений в текущем блоке.Motion information can be extracted at the decoder side without being signaled from the encoder side. It should be noted that, as described above, the aggregation mode specified in the H.265/HEVC standard can be used. In addition, for example, motion information can be extracted by performing motion estimation on the decoder side. In an embodiment, on the decoder side, motion estimation is performed without using the pixel values in the current block.

[0206] Здесь описывается режим для выполнения оценки движения на стороне декодера. Режим для выполнения оценки движения на стороне декодера может называться "режимом извлечения векторов движения на основе сопоставления с шаблоном (PMMVD)" или "режимом преобразования с повышением частоты кадров (FRUC)".[0206] A mode for performing motion estimation on the decoder side is described here. The mode for performing motion estimation on the decoder side may be called “pattern matching based motion vector extraction (PMMVD) mode” or “frame rate upconversion (FRUC) mode”.

[0207] Один пример FRUC-процесса в форме блок-схемы последовательности операций способа проиллюстрирован на фиг. 22. Во-первых, список множества возможных вариантов, имеющих предиктор вектора движения (MV) (т.е. список возможных MV-вариантов, который также может использоваться в качестве списка объединения), формируется посредством ссылки на вектор движения в кодированном блоке, который является пространственно или временно соседним с текущим блоком (этап Si_1). Затем, наилучший возможный MV-вариант выбирается из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов (этап Si_2). Например, значения оценки соответствующих возможных MV-вариантов, включенных в список возможных MV-вариантов, вычисляются, и один возможный MV-вариант выбирается на основе значений оценки. На основе выбранных возможных вариантов векторов движения, вектор движения для текущего блока затем извлекается (этап Si_4). Более конкретно, например, выбранный возможный вариант вектора движения (наилучший возможный MV-вариант) извлекается непосредственно в качестве вектора движения для текущего блока. Помимо этого, например, вектор движения для текущего блока может извлекаться с использованием сопоставления с шаблоном в окружающей области позиции в опорном кадре, при этом позиция в опорном кадре соответствует выбранному возможному варианту вектора движения. Другими словами, оценка с использованием сопоставления с шаблоном и значений оценки может выполняться в окружающей области наилучшего возможного MV-варианта, и когда имеется MV, который дает в результате лучшее значение оценки, наилучший возможный MV-вариант может обновляться на MV, который дает в результате лучшее значение оценки, и обновленный MV может определяться в качестве конечного MV для текущего блока. Также возможна конфигурация, в которой не выполняется такой процесс для обновления наилучшего возможного MV-варианта на MV, имеющий лучшее значение оценки.[0207] One example of a FRUC process in flowchart form is illustrated in FIG. 22. First, a list of multiple candidates having a motion vector (MV) predictor (i.e., a list of MV candidates that can also be used as a merge list) is generated by reference to the motion vector in the coded block, which is spatially or temporally adjacent to the current block (step Si_1). Then, the best possible MV option is selected from the set of possible MV options registered in the list of possible MV options (step Si_2). For example, the evaluation values of the corresponding MV candidates included in the MV candidate list are calculated, and one MV candidate is selected based on the evaluation values. Based on the selected motion vector candidates, the motion vector for the current block is then extracted (step Si_4). More specifically, for example, the selected motion vector candidate (the best possible MV candidate) is retrieved directly as the motion vector for the current block. In addition, for example, a motion vector for the current block may be retrieved using pattern matching in the surrounding region of a position in a reference frame, wherein the position in the reference frame corresponds to a selected motion vector candidate. In other words, scoring using template matching and scoring values can be performed on the surrounding region of the best possible MV, and when there is an MV that results in a better scoring value, the best possible MV can be updated to the MV that results in the best estimate value, and the updated MV can be determined as the final MV for the current block. It is also possible to have a configuration in which no such process is performed to update the best possible MV to the MV having the best score value.

[0208] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Si_5).[0208] Finally, the external prediction unit 126 generates a prediction image for the current block by performing motion compensation of the current block using the extracted MV and the encoded reference frame (step Si_5).

[0209] Аналогичный процесс может выполняться в единицах субблоков.[0209] A similar process may be performed in subblock units.

[0210] Значения оценки могут вычисляться согласно различным видам способов. Например, сравнение проводится между восстановленным изображением в области в опорном кадре, соответствующей вектору движения, и восстановленным изображением в определенной области (область, например, может представлять собой область в другом опорном кадре или область в соседнем блоке текущего кадра, как указано ниже). Определенная область может быть предварительно определена.[0210] The evaluation values may be calculated according to various kinds of methods. For example, a comparison is made between a reconstructed image in a region in a reference frame corresponding to a motion vector and a reconstructed image in a specific region (the region, for example, may be a region in another reference frame or a region in an adjacent block of the current frame, as defined below). The specific area can be pre-defined.

[0211] Разность между пиксельными значениями двух восстановленных изображений может использоваться для значения оценки векторов движения. Следует отметить, что значение оценки может вычисляться с использованием информации, отличной от значения разности.[0211] The difference between the pixel values of the two reconstructed images can be used for the motion vector estimation value. It should be noted that the score value may be calculated using information other than the difference value.

[0212] Далее подробно описывается пример сопоставления с шаблоном. Во-первых, один возможный MV-вариант, включенный в список возможных MV-вариантов (например, список объединения), выбирается в качестве начальной точки оценки посредством сопоставления с шаблоном. Например, в качестве сопоставления с шаблоном, может использоваться первое сопоставление с шаблоном или второе сопоставление с шаблоном. Первое сопоставление с шаблоном и второе сопоставление с шаблоном также называются "билатеральным сопоставлением" и "сопоставлением с эталоном", соответственно.[0212] An example of pattern matching is described in detail next. First, one MV candidate included in the list of MV candidate candidates (eg, a merge list) is selected as the starting evaluation point through template matching. For example, as a pattern match, a first pattern match or a second pattern match may be used. The first pattern matching and the second pattern matching are also called "bilateral matching" and "pattern matching", respectively.

[0213] MV-извлечение > FRUC > билатеральное сопоставление [0213] MV extraction > FRUC > bilateral matching

При первом сопоставлении с шаблоном, сопоставление с шаблоном выполняется между двумя блоками вдоль траектории движения текущего блока, которые представляют собой два блока в различных двух опорных кадрах. Соответственно, при первом сопоставлении с шаблоном, область в другом опорном кадре вдоль траектории движения текущего блока используется в качестве определенной области для вычисления значения оценки вышеописанного возможного варианта. Определенная область может быть предварительно определена.In the first pattern matching, pattern matching is performed between two blocks along the current block's motion path, which are two blocks in different two reference frames. Accordingly, in the first template matching, a region in another reference frame along the motion path of the current block is used as a determined region for calculating the evaluation value of the above-described candidate. The specific area can be pre-defined.

[0214] Фиг. 23 является концептуальной схемой для иллюстрации одного примера первого сопоставления с шаблоном (билатерального сопоставления) между двумя блоками в двух опорных кадрах вдоль траектории движения. Как проиллюстрировано на фиг. 23, при первом сопоставлении с шаблоном, два вектора (MV0, MV1) движения извлекаются посредством оценки пары, которая имеет наилучшее совпадение, из числа пар в двух блоках в двух различных опорных кадрах (Ref0, Ref1), которые представляют собой два блока вдоль траектории движения текущего блока (Cur block). Более конкретно, разность между восстановленным изображением в указанном местоположении в первом кодированном опорном кадре (Ref0), указываемом посредством возможного MV-варианта, и восстановленным изображением в указанном местоположении во втором кодированном опорном кадре (Ref1), указываемом посредством симметричного MV, полученная посредством масштабирования возможного MV-варианта во временном интервале отображения, извлекается для текущего блока, и значение оценки вычисляется с использованием значения полученной разности. Можно выбирать, в качестве конечного MV, возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов и который с большой вероятностью должен приводить к хорошим результатам.[0214] FIG. 23 is a conceptual diagram for illustrating one example of first template matching (bilateral matching) between two blocks in two reference frames along a motion path. As illustrated in FIG. 23, in the first template matching, two motion vectors (MV 0 , MV 1 ) are extracted by evaluating the pair that has the best match from among the pairs in two blocks in two different reference frames (Ref 0 , Ref 1 ), which represent two blocks along the trajectory of the current block (Cur block). More specifically, the difference between the reconstructed image at a specified location in the first coded reference frame (Ref 0 ) indicated by the MV option, and the reconstructed image at the specified location in the second coded reference frame (Ref 1 ) indicated by the symmetric MV, obtained by scaling the MV candidate in the display time interval is retrieved for the current block, and a score value is calculated using the resulting difference value. One can choose, as the final MV, a possible MV option that results in the best evaluation value from the set of possible MV options and which is likely to lead to good results.

[0215] При допущении относительно траектории непрерывного движения, векторы (MV0, MV1) движения, указывающие два опорных блока, являются пропорциональными временным расстояниям (TD0, TD1) между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). Например, когда текущий кадр временно находится между двумя опорными кадрами, и временные расстояния от текущего кадра до соответствующих двух опорных кадров равны друг другу, зеркально-симметричные двунаправленные векторы движения извлекаются при первом сопоставлении с шаблоном.[0215] Assuming a continuous motion path, the motion vectors (MV 0 , MV 1 ) indicating the two reference blocks are proportional to the time distances (TD 0 , TD 1 ) between the current frame (Cur Pic) and the two reference frames (Ref 0 ,Ref 1 ). For example, when the current frame is temporarily between two reference frames, and the temporal distances from the current frame to the corresponding two reference frames are equal to each other, mirror-symmetric bidirectional motion vectors are extracted in the first template matching.

[0216] MV-извлечение > FRUC > сопоставление с эталоном [0216] MV extraction > FRUC > reference matching

При втором сопоставлении с шаблоном (сопоставлении с эталоном), сопоставление с шаблоном выполняется между блоком в опорном кадре и эталоном в текущем кадре (эталон представляет собой блок, соседний с текущим блоком в текущем кадре (соседний блок, например, представляет собой верхний и/или левый соседний блок(и))). Следовательно, при втором сопоставлении с шаблоном, блок, соседний с текущим блоком в текущем кадре, используется в качестве предварительно определенной области для вышеописанного вычисления значения оценки возможного варианта.In the second pattern matching (reference matching), pattern matching is performed between a block in the reference frame and a reference in the current frame (the reference is the block adjacent to the current block in the current frame (the adjacent block, for example, represents the top and/or left adjacent block(s)). Therefore, in the second pattern matching, a block adjacent to the current block in the current frame is used as a predetermined region for the above-described calculation of the candidate evaluation value.

[0217] Фиг. 24 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре. Как проиллюстрировано на фиг. 24, при втором сопоставлении с шаблоном, вектор движения текущего блока (Cur block) извлекается посредством оценки, в опорном кадре (Ref0), блока, который имеет наилучшее совпадение с блоком, соседним с текущим блоком в текущем кадре (Cur Pic). Более конкретно, возможно то, что извлекается разность между восстановленным изображением в кодированной области, который является соседним как слева, так и выше либо слева или выше, и восстановленным изображением, которое находится в соответствующей области в кодированном опорном кадре (Ref0) и указывается посредством возможного MV-варианта, значение оценки вычисляется с использованием значения полученной разности, и возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов, выбирается в качестве наилучшего возможного MV-варианта.[0217] FIG. 24 is a conceptual diagram for illustrating one example of pattern matching (pattern matching) between a pattern in the current frame and a block in the reference frame. As illustrated in FIG. 24, in the second template matching, the motion vector of the current block (Cur block) is extracted by estimating, in the reference frame (Ref 0 ), the block that has the best match to the block adjacent to the current block in the current frame (Cur Pic). More specifically, it is possible that the difference between a reconstructed image in a coded region that is adjacent both to the left and above, or to the left or above, and a reconstructed image that is in a corresponding region in a coded reference frame (Ref 0 ) and is indicated by candidate MV option, the score value is calculated using the value of the resulting difference, and the candidate MV option that results in the best score value from the plurality of possible MV options is selected as the best possible MV option.

[0218] Эта информация, указывающая то, следует или нет применять FRUC-режим (называется, например, "FRUC-флагом"), может передаваться в служебных сигналах на уровне CU. Помимо этого, когда FRUC-режим применяется (например, когда FRUC-флаг является истинным), информация, указывающая применимый способ сопоставления с шаблоном (первое сопоставление с шаблоном или второе сопоставление с шаблоном), может передаваться в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).[0218] This information indicating whether or not to use FRUC mode (called, for example, a “FRUC flag”) may be signaled at the CU level. In addition, when the FRUC mode is applied (eg, when the FRUC flag is true), information indicating the applicable pattern matching method (first pattern matching or second pattern matching) may be signaled at the CU level. It should be noted that signaling of this information does not necessarily need to be performed at the CU level and may be performed at another level (eg, sequence level, frame level, slice level, tile level, CTU level, or subblock level).

[0219] MV-извлечение > аффинный режим [0219] MV extraction > affine mode

Далее описывается аффинный режим для извлечения вектора движения в единицах субблоков на основе векторов движения множества соседних блоков. Этот режим также называется "аффинным режимом прогнозирования с компенсацией движения".Next, an affine mode for extracting a motion vector in subblock units based on the motion vectors of multiple neighboring blocks is described. This mode is also called "motion compensated affine prediction mode".

[0220] Фиг. 25A является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока на основе векторов движения множества соседних блоков. На фиг. 25A текущий блок включает в себя шестнадцать субблоков 4×4. Здесь, вектор V0 движения в верхней левой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока, и аналогично, вектор V1 движения в верхней правой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего субблока. Два вектора v0 и v1 движения могут проецироваться согласно выражению (1A), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.[0220] FIG. 25A is a conceptual diagram for illustrating one example of extracting the motion vector of each sub-block based on the motion vectors of a plurality of neighboring blocks. In fig. 25A, the current block includes sixteen 4x4 subblocks. Here, the motion vector V 0 at the upper left corner control point in the current block is extracted based on the motion vector of the adjacent block, and similarly, the motion vector V 1 at the upper right corner control point in the current block is extracted based on the motion vector of the adjacent sub-block. The two motion vectors v 0 and v 1 may be projected according to the expression (1A) below, and the motion vectors (v x , v y ) for the corresponding sub-blocks in the current block can be extracted.

[0221] Математическое выражение 1[0221] Mathematical expression 1

[0222] Здесь, x и y указывают горизонтальную позицию и вертикальную позицию субблока, соответственно, и w указывает определенный весовой коэффициент. Определенный весовой коэффициент может быть предварительно определен.[0222] Here, x and y indicate the horizontal position and vertical position of the sub-block, respectively, and w indicates a certain weighting factor. The specific weighting factor may be predetermined.

[0223] Эта информация, указывающая аффинный режим (например, называется "аффинным флагом"), может передаваться в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей аффинный режим, не обязательно должна выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).[0223] This information indicating the affine mode (eg, called an "affine flag") may be signaled at the CU level. It should be noted that signaling information indicating the affine mode need not be performed at the CU level and may be performed at another level (eg, sequence level, frame level, slice level, tile level, CTU level, or subblock level).

[0224] Помимо этого, аффинный режим может включать в себя несколько режимов для различных способов для извлечения векторов движения в верхней левой и верхней правой угловых управляющих точках. Например, аффинный режим включает в себя два режима, которые представляют собой аффинный внешний режим (также называется "аффинным нормальным внешним режимом") и аффинный режим объединения.[0224] In addition, the affine mode may include multiple modes for different methods for extracting motion vectors at the top left and top right corner control points. For example, the affine mode includes two modes, which are the affine outer mode (also called "affine normal outer mode") and the affine union mode.

[0225] MV-извлечение > аффинный режим [0225] MV extraction > affine mode

Фиг. 25B является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока в аффинном режиме, в котором используются три управляющих точки. На фиг. 25B, текущий блок включает в себя шестнадцать блоков 4×4. Здесь, вектор V0 движения в верхней левой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока, и аналогично, вектор V1 движения в верхней правой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока, и вектор V2 движения в нижней левой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока. Три вектора v0, v1 и v2 движения могут проецироваться согласно выражению (1B), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.Fig. 25B is a conceptual diagram for illustrating one example of extracting the motion vector of each sub-block in an affine mode in which three control points are used. In fig. 25B, the current block includes sixteen 4×4 blocks. Here, the motion vector V 0 at the upper left corner control point for the current block is extracted based on the motion vector of the adjacent block, and similarly, the motion vector V 1 at the upper right corner control point for the current block is extracted based on the motion vector of the adjacent block, and the vector V The 2 motion at the bottom left corner control point for the current block is extracted based on the motion vector of the adjacent block. The three motion vectors v 0 , v 1 and v 2 can be projected according to expression (1B) below, and the motion vectors (v x , v y ) for the corresponding sub-blocks in the current block can be extracted.

[0226] Математическое выражение 2[0226] Mathematical expression 2

[0227] Здесь, x и y указывают горизонтальную позицию и вертикальную позицию центра субблока, соответственно, w указывает ширину текущего блока, и h указывает высоту текущего блока.[0227] Here, x and y indicate the horizontal position and vertical position of the center of the sub-block, respectively, w indicates the width of the current block, and h indicates the height of the current block.

[0228] Аффинные режимы, в которых используются различные числа управляющих точек (например, две и три управляющих точки), могут переключаться и передаваться в служебных сигналах на уровне CU. Следует отметить, что информация, указывающая число управляющих точек в аффинном режиме, используемом на уровне CU, может передаваться в служебных сигналах на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).[0228] Affine modes that use different numbers of control points (eg, two and three control points) can be switched and signaled at the CU level. It should be noted that information indicating the number of control points in the affine mode used at the CU level may be signaled at another level (eg, sequence level, frame level, slice level, tile level, CTU level, or subblock level).

[0229] Помимо этого, такой аффинный режим, в котором используются три управляющих точки, может включать в себя различные способы для извлечения векторов движения в верхней левой, верхней правой и нижней левой угловых управляющих точках. Например, аффинные режимы включают в себя два режима, которые представляют собой аффинный внешний режим (также называется "аффинным нормальным внешним режимом") и аффинный режим объединения.[0229] In addition, such an affine mode that uses three control points may include various methods for extracting motion vectors at the top left, top right, and bottom left corner control points. For example, affine modes include two modes, which are the affine outer mode (also called "affine normal outer mode") and the affine union mode.

[0230] MV-извлечение > аффинный режим объединения [0230] MV extract > affine join mode

Фиг. 26A, фиг. 26B и фиг. 26C является концептуальными схемами для иллюстрации аффинного режима объединения.Fig. 26A, FIG. 26B and FIG. 26C are conceptual diagrams to illustrate the affine combining mode.

[0231] Как проиллюстрировано на фиг. 26A, в аффинном режиме объединения, например, предикторы векторов движения в соответствующих управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих блокам, кодированным согласно аффинному режиму, из кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого), которые являются соседними с текущим блоком. Более конкретно, кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) проверяются в перечисленном порядке, и первый эффективный блок, кодированный согласно аффинному режиму, идентифицируется. Предикторы векторов движения в управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих идентифицированному блоку.[0231] As illustrated in FIG. 26A, in the affine combining mode, for example, motion vector predictors at the corresponding control points of the current block are calculated based on a plurality of motion vectors corresponding to blocks coded according to the affine mode from coded block A (left), block B (top), block C ( top right), block D (bottom left) and block E (top left) that are adjacent to the current block. More specifically, the encoded block A (left), block B (upper), block C (upper right), block D (lower left) and block E (upper left) are checked in the listed order, and the first effective block encoded according to the affine mode , is identified. Motion vector predictors at control points of the current block are calculated based on the set of motion vectors corresponding to the identified block.

[0232] Например, как проиллюстрировано на фиг. 26B, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока и предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения.[0232] For example, as illustrated in FIG. 26B, when block A, which is adjacent to the left of the current block, is encoded according to an affine mode that uses two control points, motion vectors v 3 and v 4 , projected at the upper left corner position and upper right corner position of the encoded block including block A itself is extracted. The motion vector predictor v 0 at the top left corner control point of the current block and the motion vector predictor v 1 at the top right corner control point of the current block are then calculated from the extracted motion vectors v 3 and v 4 .

[0233] Например, как проиллюстрировано на фиг. 26C, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции, верхней правой угловой позиции и нижней левой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока, предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока и предиктор v2 вектора движения в нижней левой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.[0233] For example, as illustrated in FIG. 26C, when block A, which is adjacent to the left of the current block, is encoded according to an affine mode that uses three control points, motion vectors v 3 , v 4 and v 5 projected at the upper left corner position, upper right corner position and lower the left corner position of the coded block including block A is retrieved. The motion vector predictor v 0 at the top left corner control point of the current block, the motion vector predictor v 1 at the top right corner control point of the current block, and the motion vector predictor v 2 at the bottom left corner control point of the current block are then calculated from the extracted vectors v 3 , v 4 and v 5 movements.

[0234] Следует отметить, что этот способ для извлечения предикторов векторов движения может использоваться для того, чтобы извлекать предикторы векторов движения соответствующих управляющих точек текущего блока на этапе Sj_1 на фиг. 29, описанном далее.[0234] It should be noted that this method for extracting motion vector predictors can be used to extract motion vector predictors of the corresponding control points of the current block in step Sj_1 in FIG. 29, described below.

[0235] Фиг. 27 является блок-схемой последовательности операций способа, иллюстрирующей один пример аффинного режима объединения.[0235] FIG. 27 is a flowchart illustrating one example of the affine combining mode.

[0236] В аффинном режиме объединения, как проиллюстрировано, сначала, модуль 126 внешнего прогнозирования извлекает MV-предикторы соответствующих управляющих точек текущего блока (этап Sk_1). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 25A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 25B.[0236] In the affine merging mode, as illustrated first, the external prediction module 126 extracts the MV predictors of the corresponding control points of the current block (step Sk_1). The control points are the top left corner point of the current block and the top right corner point of the current block, as illustrated in FIG. 25A, or the top left corner point of the current block, the top right corner point of the current block, and the bottom left corner point of the current block, as illustrated in FIG. 25B.

[0237] Другими словами, как проиллюстрировано на фиг. 26A, модуль 126 внешнего прогнозирования проверяет кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) в перечисленном порядке и идентифицирует первый эффективный блок, кодированный согласно аффинному режиму.[0237] In other words, as illustrated in FIG. 26A, the external prediction module 126 examines the coded block A (left), block B (top), block C (top right), block D (bottom left), and block E (top left) in the listed order and identifies the first effective block coded according to the affine regime.

[0238] Когда блок A идентифицируется, и блок A имеет две управляющих точки, как проиллюстрировано на фиг. 26B, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока из векторов v3 и v4 движения в верхнем левом углу и верхнем правом углу кодированного блока, включающего в себя блок A. Например, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока посредством проецирования векторов v3 и v4 движения в верхнем левом углу и верхнем правом углу кодированного блока на текущий блок.[0238] When block A is identified and block A has two control points, as illustrated in FIG. 26B, the external prediction module 126 calculates the motion vector v 0 at the top left corner control point of the current block and the motion vector v 1 at the top right corner control point of the current block from the motion vectors v 3 and v 4 at the top left corner and the top right corner of the encoded block. including block A. For example, the external prediction module 126 calculates the motion vector v 0 at the top left corner control point of the current block and the motion vector v 1 at the top right corner control point of the current block by projecting the motion vectors v 3 and v 4 at the top left corner and upper right corner of the encoded block to the current block.

[0239] Альтернативно, когда блок A идентифицируется, и блок A имеет три управляющих точки, как проиллюстрировано на фиг. 26C, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока из векторов v3, v4 и v5 движения в верхнем левом углу, верхнем правом углу и нижнем левом углу кодированного блока, включающего в себя блок A. Например, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока посредством проецирования векторов v3, v4 и v5 движения в верхнем левом углу, верхнем правом углу и нижнем левом углу кодированного блока на текущий блок.[0239] Alternatively, when block A is identified and block A has three control points, as illustrated in FIG. 26C, the external prediction module 126 calculates the motion vector v 0 at the top left corner control point of the current block, the motion vector v 1 at the top right corner control point of the current block, and the motion vector v 2 at the bottom left corner control point of the current block from the vectors v 3 . v 4 and v 5 movements in the upper left corner, upper right corner and lower left corner of the coded block including block A. For example, the external prediction module 126 calculates the movement vector v 0 at the upper left corner control point of the current block, vector v 1 motion at the top right corner control point of the current block and the motion vector v 2 at the bottom left corner control point of the current block by projecting the motion vectors v 3 , v 4 and v 5 at the top left corner, top right corner and bottom left corner of the encoded block onto the current one block.

[0240] Затем, модуль 126 внешнего прогнозирования выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 126 внешнего прогнозирования вычисляет, для каждого из множества субблоков, вектор движения субблока в качестве аффинного MV, посредством использования либо (i) двух предикторов v0 и v1 векторов движения и выражения (1A), описанного выше, либо (ii) трех предикторов v0, v1 и v2 векторов движения и выражения (1B), описанного выше (этап Sk_2). Модуль 126 внешнего прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных кадров (этап Sk_3). Как результат, компенсация движения текущего блока выполняется для того, чтобы формировать прогнозное изображение текущего блока.[0240] Next, the inter-prediction module 126 performs motion compensation of each of the plurality of sub-blocks included in the current block. In other words, the external prediction module 126 calculates, for each of the plurality of sub-blocks, the motion vector of the sub-block as an affine MV, by using either (i) the two motion vector predictors v 0 and v 1 and the expression (1A) described above, or (ii) ) three predictors v 0 , v 1 and v 2 motion vectors and expression (1B) described above (stage Sk_2). The inter-prediction module 126 then performs motion compensation of the sub-blocks using these affine MVs and coded reference frames (step Sk_3). As a result, motion compensation of the current block is performed in order to generate a predictive image of the current block.

[0241] MV-извлечение > аффинный внешний режим [0241] MV Extract > Affine External Mode

Фиг. 28A является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются две управляющих точки.Fig. 28A is a conceptual diagram for illustrating an affine outer mode in which two control points are used.

[0242] В аффинном внешнем режиме, как проиллюстрировано на фиг. 28A, вектор движения, выбранный из векторов движения кодированного блока A, блока B и блока C, которые являются соседними с текущим блоком, используется в качестве предиктора v0 вектора движения в верхней левой угловой управляющей точке текущего блока. Аналогично, вектор движения, выбранный из векторов движения кодированного блока D и блока E, которые являются соседними с текущим блоком, используется в качестве предиктора v1 вектора движения в верхней правой угловой управляющей точке текущего блока.[0242] In affine external mode, as illustrated in FIG. 28A, a motion vector selected from the motion vectors of coded block A, block B, and block C that are adjacent to the current block is used as the motion vector predictor v 0 at the upper left corner control point of the current block. Likewise, a motion vector selected from the motion vectors of a coded block D and a block E that are adjacent to the current block is used as a motion vector predictor v 1 at the top right corner control point of the current block.

[0243] Фиг. 28B является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются три управляющих точки.[0243] FIG. 28B is a conceptual diagram for illustrating an affine outer mode in which three control points are used.

[0244] В аффинном внешнем режиме, как проиллюстрировано на фиг. 28B, вектор движения, выбранный из векторов движения кодированного блока A, блока B и блока C, которые являются соседними с текущим блоком, используется в качестве предиктора v0 вектора движения в верхней левой угловой управляющей точке текущего блока. Аналогично, вектор движения, выбранный из векторов движения кодированного блока D и блока E, которые являются соседними с текущим блоком, используется в качестве предиктора v1 вектора движения в верхней правой угловой управляющей точке текущего блока. Кроме того, вектор движения, выбранный из векторов движения кодированного блока F и блока G, которые являются соседними с текущим блоком, используется в качестве предиктора v2 вектора движения в нижней левой угловой управляющей точке текущего блока.[0244] In affine external mode, as illustrated in FIG. 28B, a motion vector selected from the motion vectors of coded block A, block B, and block C that are adjacent to the current block is used as the motion vector predictor v 0 at the upper left corner control point of the current block. Likewise, a motion vector selected from the motion vectors of a coded block D and a block E that are adjacent to the current block is used as a motion vector predictor v 1 at the top right corner control point of the current block. In addition, a motion vector selected from the motion vectors of a coded block F and a block G that are adjacent to the current block is used as a motion vector predictor v 2 at the lower left corner control point of the current block.

[0245] Фиг. 29 является блок-схемой последовательности операций способа, иллюстрирующей один пример аффинного внешнего режима.[0245] FIG. 29 is a flowchart illustrating one example of an affine outer mode.

[0246] В аффинном внешнем режиме, как проиллюстрировано, сначала, модуль 126 внешнего прогнозирования извлекает MV-предикторы (v0, v1) или (v0, v1, v2) соответствующих двух или трех управляющих точек текущего блока (этап Sj_1). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 25A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 25B.[0246] In the affine external mode, as illustrated, first, the external prediction module 126 extracts the MV predictors (v 0 , v 1 ) or (v 0 , v 1 , v 2 ) of the corresponding two or three control points of the current block (step Sj_1 ). The control points are the top left corner point of the current block and the top right corner point of the current block, as illustrated in FIG. 25A, or the top left corner point of the current block, the top right corner point of the current block, and the bottom left corner point of the current block, as illustrated in FIG. 25B.

[0247] Другими словами, модуль 126 внешнего прогнозирования извлекает предикторы (v0, v1) или (v0, v1, v2) векторов движения соответствующих двух или трех управляющих точек текущего блока посредством выбора векторов движения любого из блоков из числа кодированных блоков около соответствующих управляющих точек текущего блока, проиллюстрированного на любом из фиг. 28A или фиг. 28B. В это время, модуль 126 внешнего прогнозирования кодирует, в потоке, информацию выбора предиктора вектора движения для идентификации выбранных двух векторов движения.[0247] In other words, the external prediction module 126 extracts the (v 0 , v 1 ) or (v 0 , v 1 , v 2 ) motion vector predictors of the corresponding two or three control points of the current block by selecting the motion vectors of any of the blocks from among those coded blocks near the corresponding control points of the current block illustrated in any of FIG. 28A or FIG. 28B. At this time, the external prediction unit 126 encodes, in the stream, motion vector predictor selection information for identifying the selected two motion vectors.

[0248] Например, модуль 126 внешнего прогнозирования может определять то, с использованием оценки затрат и т.п., блок, из которого выбирается вектор движения в качестве предиктора вектора движения в управляющей точке, из числа кодированных блоков, соседних с текущим блоком, и может описывать, в потоке битов, флаг, указывающий то, какой предиктор вектора движения выбран.[0248] For example, the external prediction unit 126 may determine, using a cost estimate or the like, a block from which a motion vector is selected as a motion vector predictor at a control point from among coded blocks adjacent to the current block, and may describe, in a bit stream, a flag indicating which motion vector predictor is selected.

[0249] Затем, модуль 126 внешнего прогнозирования выполняет оценку движения (этап Sj_3 и Sj_4) при обновлении предиктора вектора движения, выбранного или извлеченного на этапе Sj_1 (этап Sj_2). Другими словами, модуль 126 внешнего прогнозирования вычисляет, в качестве аффинного MV, вектор движения каждого из субблоков, который соответствует обновленному предиктору вектора движения, с использованием либо выражения (1A), либо выражения (1B), описанных выше (этап Sj_3). Модуль 126 внешнего прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных кадров (этап Sj_4). Как результат, например, модуль 126 внешнего прогнозирования определяет предиктор вектора движения, который дает в результате наименьшие затраты, в качестве вектора движения в управляющей точке в контуре оценки движения (этап Sj_5). В это время, модуль 126 внешнего прогнозирования дополнительно кодирует, в потоке, значение разности между определенным MV и предиктором вектора движения в качестве MV-разности.[0249] Next, the external prediction unit 126 performs motion estimation (step Sj_3 and Sj_4) while updating the motion vector predictor selected or extracted in step Sj_1 (step Sj_2). In other words, the external prediction unit 126 calculates, as an affine MV, the motion vector of each of the sub-blocks that corresponds to the updated motion vector predictor using either expression (1A) or expression (1B) described above (step Sj_3). The inter-prediction module 126 then performs motion compensation of the sub-blocks using these affine MVs and coded reference frames (step Sj_4). As a result, for example, the external prediction unit 126 determines the motion vector predictor that results in the least cost as the motion vector at the control point in the motion estimation loop (step Sj_5). At this time, the external prediction unit 126 further encodes, in the stream, a difference value between the determined MV and the motion vector predictor as an MV difference.

[0250] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием определенного MV и кодированного опорного кадра (этап Sj_6).[0250] Finally, the external prediction unit 126 generates a prediction image for the current block by performing motion compensation of the current block using the determined MV and the encoded reference frame (step Sj_6).

[0251] MV-извлечение > аффинный внешний режим [0251] MV Extract > Affine External Mode

Когда аффинные режимы, в которых используются различные числа управляющих точек (например, двух и трех управляющих точек), могут переключаться и передаваться в служебных сигналах на уровне CU, число управляющих точек в кодированном блоке и число управляющих точек в текущем блоке могут отличаться друг от друга. Фиг. 30A и фиг. 30B являются концептуальными схемами для иллюстрации способов для извлечения предикторов векторов движения в управляющих точках, когда число управляющих точек в кодированном блоке и число управляющих точек в текущем блоке отличаются друг от друга.When affine modes that use different numbers of control points (for example, two and three control points) can be switched and signaled at the CU level, the number of control points in the coded block and the number of control points in the current block may differ from each other . Fig. 30A and FIG. 30B are conceptual diagrams for illustrating methods for extracting motion vector predictors at control points when the number of control points in a coded block and the number of control points in a current block are different from each other.

[0252] Например, как проиллюстрировано на фиг. 30A, когда текущий блок имеет три управляющих точки в верхнем левом углу, верхнем правом углу и нижнем левом углу, и блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции в кодированном блоке, включающем в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока и предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения. Кроме того, предиктор v2 вектора движения в нижней левой угловой управляющей точке вычисляется из извлеченных векторов v0 и v1 движения.[0252] For example, as illustrated in FIG. 30A, when the current block has three control points in the upper left corner, upper right corner and lower left corner, and block A, which is adjacent to the left of the current block, is encoded according to the affine mode in which two control points, vectors v 3 and v 4 movements projected at the upper left corner position and the upper right corner position in the coded block including block A are extracted. The motion vector predictor v 0 at the top left corner control point of the current block and the motion vector predictor v 1 at the top right corner control point of the current block are then calculated from the extracted motion vectors v 3 and v 4 . In addition, the motion vector predictor v 2 at the lower left corner control point is calculated from the extracted motion vectors v 0 and v 1 .

[0253] Например, как проиллюстрировано на фиг. 30B, когда текущий блок имеет две управляющих точки в верхнем левом углу и верхнем правом углу, и блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции, верхней правой угловой позиции и нижней левой угловой позиции в кодированном блоке, включающем в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока и предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.[0253] For example, as illustrated in FIG. 30B, when the current block has two control points at the upper left corner and the upper right corner, and block A, which is adjacent to the left of the current block, is encoded according to the affine mode in which three control points, vectors v 3 , v 4 and v are used 5 , movements projected at the upper left corner position, upper right corner position and lower left corner position in the coded block including block A are extracted. The motion vector predictor v 0 at the top left corner control point of the current block and the motion vector predictor v 1 at the top right corner control point of the current block are then calculated from the extracted motion vectors v 3 , v 4 and v 5 .

[0254] Следует отметить, что этот способ для извлечения предикторов векторов движения может использоваться для того, чтобы извлекать предикторы векторов движения соответствующих управляющих точек текущего блока на этапе Sj_1 на фиг. 29.[0254] It should be noted that this method for extracting motion vector predictors can be used to extract motion vector predictors of the corresponding control points of the current block in step Sj_1 in FIG. 29.

[0255] MV-извлечение > DMVR [0255] MV extract > DMVR

Фиг. 31A является блок-схемой последовательности операций способа, иллюстрирующей взаимосвязь между режимом объединения и DMVR.Fig. 31A is a flowchart illustrating the relationship between the combining mode and the DMVR.

[0256] Модуль 126 внешнего прогнозирования извлекает вектор движения текущего блока согласно режиму объединения (этап Sl_1). Затем, модуль 126 внешнего прогнозирования определяет то, следует или нет выполнять оценку вектора движения, т.е. оценку движения (этап Sl_2). Здесь, при определении не выполнять оценку движения ("Нет" на этапе Sl_2), модуль 126 внешнего прогнозирования определяет вектор движения, извлекаемый на этапе Sl_1, в качестве конечного вектора движения для текущего блока (этап Sl_4). Другими словами, в этом случае, вектор движения текущего блока определяется согласно режиму объединения.[0256] The external prediction unit 126 extracts the motion vector of the current block according to the combining mode (step Sl_1). Next, the external prediction unit 126 determines whether or not to perform motion vector estimation, i.e. motion assessment (stage Sl_2). Here, when determining not to perform motion estimation (“No” in step Sl_2), the external prediction unit 126 determines the motion vector extracted in step Sl_1 as the final motion vector for the current block (step Sl_4). In other words, in this case, the motion vector of the current block is determined according to the merging mode.

[0257] При определении выполнять оценку движения на этапе Sl_1 ("Да" на этапе Sl_2), модуль 126 внешнего прогнозирования извлекает конечный вектор движения для текущего блока посредством оценки окружающей области опорного кадра, указываемого посредством вектора движения, извлекаемого на этапе Sl_1 (этап Sl_3). Другими словами, в этом случае, вектор движения текущего блока определяется согласно DMVR.[0257] When determining to perform motion estimation in step Sl_1 (Yes in step Sl_2), the external prediction unit 126 extracts the final motion vector for the current block by estimating the surrounding area of the reference frame indicated by the motion vector extracted in step Sl_1 (step Sl_3 ). In other words, in this case, the motion vector of the current block is determined according to the DMVR.

[0258] Фиг. 31B является концептуальной схемой для иллюстрации одного примера DMVR-процесса для определения MV.[0258] FIG. 31B is a conceptual diagram for illustrating one example of a DMVR process for determining MV.

[0259] Во-первых (например, в режиме объединения), наилучший MVP, который задан в качестве текущего блока, определяется в качестве возможного MV-варианта. Опорный пиксел идентифицируется из первого опорного кадра (L0), который представляет собой кодированный кадр в направлении L0 согласно возможному MV-варианту (L0). Аналогично, опорный пиксел идентифицируется из второго опорного кадра (L1), который представляет собой кодированный кадр в направлении L1 согласно возможному MV-варианту (L1). Эталон формируется посредством вычисления среднего этих опорных пикселов.[0259] First (eg, in merge mode), the best MVP that is specified as the current block is determined as a candidate MV. The reference pixel is identified from the first reference frame (L0), which is a coded frame in the L0 direction according to the MV candidate (L0). Likewise, a reference pixel is identified from a second reference frame (L1), which is a coded frame in the L1 direction according to the MV candidate (L1). The reference is formed by calculating the average of these reference pixels.

[0260] Затем, каждая из окружающих областей возможных MV-вариантов первого опорного кадра (L0) и второго опорного кадра (L1) оценивается, и MV, который дает в результате наименьшие затраты, определяется в качестве конечного MV. Следует отметить, что значение затрат может вычисляться, например, с использованием значения разности между каждым из пиксельных значений в эталоне и соответствующим одним из пиксельных значений в области оценки, значений возможных MV-вариантов и т.д.[0260] Next, each of the surrounding regions of candidate MVs of the first reference frame (L0) and the second reference frame (L1) is evaluated, and the MV that results in the lowest cost is determined as the final MV. It should be noted that the cost value may be calculated, for example, using the difference value between each of the pixel values in the reference and the corresponding one of the pixel values in the evaluation area, the values of the MV candidate values, etc.

[0261] Следует отметить, что процессы, конфигурации и операции, описанные здесь, типично являются, по существу, общими между кодером и декодером, которые описываются ниже.[0261] It should be noted that the processes, configurations and operations described here are typically substantially common between the encoder and decoder, which are described below.

[0262] Совершенно идентичные примерные процессы, описанные здесь, не всегда должны обязательно выполняться. Любой процесс для обеспечения возможности извлечения конечного MV посредством оценки в окружающих областях возможных MV-вариантов может использоваться.[0262] The completely identical exemplary processes described herein do not necessarily have to be performed. Any process to enable the extraction of the final MV by evaluating the surrounding areas of candidate MVs can be used.

[0263] Компенсация движения > BIO/OBMC [0263] Motion compensation > BIO/OBMC

Компенсация движения заключает в себе режим для формирования прогнозного изображения и коррекции прогнозного изображения. Режим, например, представляет собой BIO и OBMC, которые описываются ниже.Motion compensation includes a mode for generating a predictive image and correcting a predictive image. The mode, for example, is BIO and OBMC, which are described below.

[0264] Фиг. 32 является блок-схемой последовательности операций способа, иллюстрирующей один пример формирования прогнозного изображения.[0264] FIG. 32 is a flowchart illustrating one example of predictive image generation.

[0265] Модуль 126 внешнего прогнозирования формирует прогнозное изображение (этап Sm_1) и корректирует прогнозное изображение, например, согласно любому из режимов, описанных выше (этап Sm_2).[0265] The external prediction module 126 generates a prediction image (step Sm_1) and corrects the prediction image, for example, according to any of the modes described above (step Sm_2).

[0266] Фиг. 33 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.[0266] FIG. 33 is a flowchart illustrating another example of predictive image generation.

[0267] Модуль 126 внешнего прогнозирования определяет вектор движения текущего блока (этап Sn_1). Затем, модуль 126 внешнего прогнозирования формирует прогнозное изображение (этап Sn_2) и определяет то, следует или нет выполнять процесс коррекции (этап Sn_3). Здесь, при определении выполнять процесс коррекции ("Да" на этапе Sn_3), модуль 126 внешнего прогнозирования формирует конечное прогнозное изображение посредством коррекции прогнозного изображения (этап Sn_4). При определении не выполнять процесс коррекции ("Нет" на этапе Sn_3), модуль 126 внешнего прогнозирования выводит прогнозное изображение в качестве конечного прогнозного изображения без коррекции прогнозного изображения (этап Sn_5).[0267] The external prediction unit 126 determines the motion vector of the current block (step Sn_1). Next, the external prediction unit 126 generates a prediction image (step Sn_2) and determines whether or not to perform the correction process (step Sn_3). Here, upon determining to carry out the correction process (“Yes” in step Sn_3), the external prediction unit 126 generates the final prediction image by correcting the prediction image (step Sn_4). When determining not to perform the correction process (“No” in step Sn_3), the external prediction unit 126 outputs the prediction image as the final prediction image without correcting the prediction image (step Sn_5).

[0268] Помимо этого, компенсация движения заключает в себе режим для коррекции яркости прогнозного изображения при формировании прогнозного изображения. Режимом, например, представляет собой LIC, который описывается ниже.[0268] In addition, motion compensation includes a mode for correcting the brightness of the projection image when generating the projection image. A mode, for example, is LIC, which is described below.

[0269] Фиг. 34 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.[0269] FIG. 34 is a flowchart illustrating another example of predictive image generation.

[0270] Модуль 126 внешнего прогнозирования извлекает вектор движения текущего блока (этап So_1). Затем, модуль 126 внешнего прогнозирования определяет то, следует или нет выполнять процесс коррекции яркости (этап So_2). Здесь, при определении выполнять процесс коррекции яркости ("Да" на этапе So_2), модуль 126 внешнего прогнозирования формирует прогнозное изображение при выполнении процесса коррекции яркости (этап So_3). Другими словами, прогнозное изображение формируется с использованием LIC. При определении не выполнять процесс коррекции яркости ("Нет" на этапе So_2), модуль 126 внешнего прогнозирования формирует прогнозное изображение посредством выполнения нормальной компенсации движения без выполнения процесса коррекции яркости (этап So_4).[0270] The external prediction unit 126 extracts the motion vector of the current block (step So_1). Next, the external prediction unit 126 determines whether or not to perform the brightness correction process (step So_2). Here, when determining to carry out the brightness correction process ("Yes" in step So_2), the external prediction unit 126 generates a prediction image when performing the brightness correction process (step So_3). In other words, the forecast image is generated using LIC. When determining not to perform the brightness correction process ("No" in step So_2), the external prediction unit 126 generates a prediction image by performing normal motion compensation without performing the brightness correction process (step So_4).

[0271] Компенсация движения > OBMC [0271] Motion compensation > OBMC

Следует отметить, что внешний прогнозный сигнал может формироваться с использованием информации движения для соседнего блока в дополнение к информации движения для текущего блока, полученной из оценки движения. Более конкретно, внешний прогнозный сигнал может формироваться в единицах субблоков в текущем блоке посредством выполнения суммирования со взвешиванием прогнозного сигнала на основе информации движения, полученной из оценки движения (в опорном кадре), и прогнозного сигнала на основе информации движения для соседнего блока (в текущем кадре). Такое внешнее прогнозирование (компенсация движения) также называется "перекрывающейся блочной компенсацией движения (OBMC)".It should be noted that the external prediction signal may be generated using motion information for an adjacent block in addition to motion information for the current block obtained from the motion estimate. More specifically, the external prediction signal may be generated in units of sub-blocks in the current block by performing weighting summation of the prediction signal based on the motion information obtained from the motion estimate (in the reference frame) and the prediction signal based on the motion information for the adjacent block (in the current frame ). This external prediction (motion compensation) is also called "overlapping block motion compensation (OBMC)".

[0272] В OBMC-режиме, информация, указывающая размер субблока для OBMC (называется, например, "размером OBMC-блока"), может передаваться в служебных сигналах на уровне последовательности. Кроме того, информация, указывающая то, следует или нет применять OBMC-режим (называется, например, "OBMC-флагом"), передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне последовательности и уровне CU и может выполняться на другом уровне (например, на уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).[0272] In OBMC mode, information indicating the subblock size for the OBMC (referred to, for example, as "OBMC block size") may be signaled at the sequence level. In addition, information indicating whether or not to use the OBMC mode (called, for example, an “OBMC flag”) is signaled at the CU level. It should be noted that the signaling of this information need not necessarily be performed at the sequence level and the CU level and may be performed at another level (eg, frame level, slice level, tile level, CTU level, or subblock level).

[0273] В дальнейшем подробнее описываются примеры OBMC-режима. Фиг. 35 и 36 являются блок-схемой последовательности операций способа и концептуальной схемой для иллюстрации краткого представления процесса коррекции прогнозных изображений, выполняемого посредством OBMC-процесса.[0273] Examples of the OBMC mode are described in more detail below. Fig. 35 and 36 are a flowchart and a conceptual diagram for illustrating a brief view of the prediction image correction process performed by the OBMC process.

[0274] Во-первых, как проиллюстрировано на фиг. 36, прогнозное изображение (Pred) получается через нормальную компенсацию движения с использованием вектора движения (MV), назначенного целевому (текущему) блоку обработки. На фиг. 36, стрелка "MV" указывает на опорный кадр и указывает то, на что ссылается текущий блок текущего кадра, чтобы получать прогнозное изображение.[0274] First, as illustrated in FIG. 36, a prediction image (Pred) is obtained through normal motion compensation using a motion vector (MV) assigned to the target (current) processing unit. In fig. 36, the arrow "MV" points to the reference frame and indicates what the current block of the current frame is referenced to obtain the prediction image.

[0275] Затем, прогнозное изображение (Pred_L) получается посредством применения вектора (MV_L) движения, который уже извлечен для кодированного блока, соседнего слева от текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Вектор (MV_L) движения указывается посредством стрелки "MV_L", указывающей опорный кадр из текущего блока. Первая коррекция прогнозного изображения выполняется посредством перекрытия двух прогнозных изображений Pred и Pred_L. Это предоставляет преимущество смешивания границы между соседними блоками.[0275] Next, the prediction image (Pred_L) is obtained by applying the motion vector (MV_L) that is already extracted for the coded block adjacent to the left of the current block to the current block (reusing the motion vector for the current block). The motion vector (MV_L) is indicated by an arrow "MV_L" indicating a reference frame from the current block. The first correction of the prediction image is performed by overlapping two prediction images Pred and Pred_L. This provides the advantage of blending the boundary between adjacent blocks.

[0276] Аналогично, прогнозное изображение (Pred_U) получается посредством применения вектора (MV_U) движения, который уже извлечен для кодированного блока, соседнего выше текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Вектор (MV_U) движения указывается посредством стрелки "MV_U", указывающей опорный кадр из текущего блока. Вторая коррекция прогнозного изображения выполняется посредством перекрытия прогнозного изображения Pred_U с прогнозными изображениями (например, Pred и Pred_L), для которых выполнена первая коррекция. Это предоставляет преимущество смешивания границы между соседними блоками. Прогнозное изображение, полученное посредством второй коррекции, представляет собой прогнозное изображение, в котором граница между соседними блоками смешивается (сглаживается), и в силу этого представляет собой конечное прогнозное изображение текущего блока.[0276] Similarly, a prediction image (Pred_U) is obtained by applying a motion vector (MV_U) that is already extracted for a coded block adjacent above the current block to the current block (reusing the motion vector for the current block). The motion vector (MV_U) is indicated by an arrow "MV_U" indicating a reference frame from the current block. The second correction to the prediction image is performed by overlapping the prediction image Pred_U with the prediction images (eg, Pred and Pred_L) for which the first correction was performed. This provides the advantage of blending the boundary between adjacent blocks. The prediction image obtained by the second correction is a prediction image in which the boundary between adjacent blocks is blended (smoothed) and therefore represents the final prediction image of the current block.

[0277] Хотя вышеприведенный пример представляет собой способ коррекции с двумя трактами с использованием левого и верхнего соседних блоков, следует отметить, что способ коррекции может представлять собой способ коррекции с тремя или более трактов с использованием также правого соседнего блока и/или нижнего соседнего блока.[0277] Although the above example is a two-path correction method using a left and an upper adjacent block, it should be noted that the correction method may be a three or more path correction method using also a right adjacent block and/or a lower adjacent block.

[0278] Следует отметить, что область, в которой выполняется такое перекрытие, может составлять только часть области около границы блока вместо пиксельной области всего блока.[0278] It should be noted that the area in which such overlap is performed may be only a portion of the area near the block boundary instead of the pixel area of the entire block.

[0279] Следует отметить, что выше описывается процесс коррекции прогнозных изображений согласно OBMC для получения одного прогнозного изображения Pred из одного опорного кадра посредством перекрытия дополнительного прогнозного изображения Pred_L и Pred_U. Тем не менее, когда прогнозное изображение корректируется на основе множества опорных изображений, аналогичный процесс может применяться к каждому из множества опорных кадров. В таком случае, после того, как скорректированные прогнозные изображения получаются из соответствующих опорных кадров посредством выполнения OBMC-коррекции изображений на основе множества опорных кадров, полученные скорректированные прогнозные изображения дополнительно перекрываются, чтобы получать конечное прогнозное изображение.[0279] It should be noted that the above describes a process for correcting prediction images according to OBMC to obtain one prediction image Pred from one reference frame by overlapping the additional prediction image Pred_L and Pred_U. However, when the prediction image is corrected based on a plurality of reference pictures, a similar process may be applied to each of the plurality of reference frames. In such a case, after corrected prediction images are obtained from the corresponding reference frames by performing OBMC image correction based on a plurality of reference frames, the obtained corrected prediction images are further overlapped to obtain a final prediction image.

[0280] Следует отметить, что, в OBMC, единица текущего блока может представлять собой единицу блока прогнозирования или единицу субблока, полученного посредством дополнительного разбиения блока прогнозирования.[0280] It should be noted that, in OBMC, a unit of a current block may be a unit of a prediction block or a unit of a subblock obtained by further splitting a prediction block.

[0281] Один пример способа для определения того, следует или нет применять OBMC-процесс, представляет собой способ для использования obmc_flag, который представляет собой сигнал, указывающий то, следует или нет применять OBMC-процесс. В качестве одного конкретного примера, кодер определяет то, принадлежит или нет текущий блок области, имеющей усложненное движение. Кодер задает obmc_flag равным значению "1", когда блок принадлежит области, имеющей усложненное движение, и применяет OBMC-процесс при кодировании и задает obmc_flag равным значению "0", когда блок не принадлежит области, имеющей усложненное движение, и кодирует блок без применения OBMC-процесса. Декодер переключается между применением и неприменением OBMC-процесса посредством декодирования obmc_flag, записываемого в потоке (например, сжатой последовательности), и декодирования блока посредством переключения между применением и неприменением OBMC-процесса в соответствии со значением флага.[0281] One example of a method for determining whether or not to apply an OBMC process is a method for using obmc_flag, which is a signal indicating whether or not to apply an OBMC process. As one specific example, the encoder determines whether or not the current block belongs to a region having complex motion. The encoder sets obmc_flag to a value of "1" when the block belongs to a region having complex motion and applies the OBMC process when encoding, and sets obmc_flag to a value of "0" when the block does not belong to a region having complex motion and encodes the block without applying OBMC -process. The decoder switches between applying and not applying the OBMC process by decoding the obmc_flag recorded in the stream (eg, a compressed sequence) and decoding the block by switching between applying and not applying the OBMC process according to the value of the flag.

[0282] Модуль 126 внешнего прогнозирования формирует одно прямоугольное прогнозное изображение для прямоугольного текущего блока в вышеприведенном примере. Тем не менее, модуль 126 внешнего прогнозирования может формировать множество прогнозных изображений, имеющих форму, отличающуюся от прямоугольника, для прямоугольного текущего блока, и может комбинировать множество прогнозных изображений для того, чтобы формировать конечное прямоугольное прогнозное изображение. Форма, отличающаяся от прямоугольника, например, может представлять собой треугольник.[0282] The external prediction unit 126 generates one rectangular prediction image for the rectangular current block in the above example. However, the external prediction unit 126 can generate a plurality of prediction images having a shape other than a rectangle for the rectangular current block, and can combine the plurality of prediction images to generate a final rectangular prediction image. A shape other than a rectangle may, for example, be a triangle.

[0283] Фиг. 37 является концептуальной схемой для иллюстрации формирования двух треугольных прогнозных изображений.[0283] FIG. 37 is a conceptual diagram for illustrating the generation of two triangular projection images.

[0284] Модуль 126 внешнего прогнозирования формирует треугольное прогнозное изображение посредством выполнения компенсации движения первого сегмента, имеющего треугольную форму в текущем блоке, посредством использования первого MV первого сегмента для того, чтобы формировать треугольное прогнозное изображение. Аналогично, модуль 126 внешнего прогнозирования формирует треугольное прогнозное изображение посредством выполнения компенсации движения второго сегмента, имеющего треугольную форму в текущем блоке, посредством использования второго MV второго сегмента для того, чтобы формировать треугольное прогнозное изображение. Модуль 126 внешнего прогнозирования затем формирует прогнозное изображение, имеющее прямоугольную форму, идентичную прямоугольной форме текущего блока, посредством комбинирования этих прогнозных изображений.[0284] The external prediction unit 126 generates a triangular prediction image by performing motion compensation of the first segment having a triangular shape in the current block by using the first MV of the first segment to generate the triangular prediction image. Likewise, the external prediction unit 126 generates a triangular prediction image by performing motion compensation of the second segment having a triangular shape in the current block by using the second MV of the second segment to generate the triangular prediction image. The external prediction module 126 then generates a prediction image having a rectangular shape identical to the rectangular shape of the current block by combining these prediction images.

[0285] Следует отметить, что хотя первый сегмент и второй сегмент представляют собой треугольники в примере, проиллюстрированном на фиг. 37, первый сегмент и второй сегмент могут представлять собой быть трапеции или другие формы, отличающиеся друг от друга. Кроме того, хотя текущий блок включает в себя два сегмента в примере, проиллюстрированном на фиг. 37, текущий блок может включать в себя три или более сегментов.[0285] It should be noted that although the first segment and the second segment are triangles in the example illustrated in FIG. 37, the first segment and the second segment may be trapezoidal or other shapes different from each other. In addition, although the current block includes two segments in the example illustrated in FIG. 37, the current block may include three or more segments.

[0286] Помимо этого, первый сегмент и второй сегмент могут перекрываться между собой. Другими словами, первый сегмент и второй сегмент могут включать в себя идентичную пиксельную область. В этом случае, прогнозное изображение для текущего блока может формироваться с использованием прогнозного изображения в первом сегменте и прогнозного изображения во втором сегменте.[0286] In addition, the first segment and the second segment may overlap each other. In other words, the first segment and the second segment may include an identical pixel region. In this case, the prediction image for the current block may be generated using the prediction image in the first segment and the prediction image in the second segment.

[0287] Помимо этого, хотя пример, в котором прогнозное изображение формируется для каждого из двух сегментов с использованием внешнего прогнозирования, прогнозное изображение может формироваться для по меньшей мере одного сегмента с использованием внутреннего прогнозирования.[0287] In addition, although an example in which a prediction image is generated for each of two segments using inter-prediction, a prediction image may be generated for at least one segment using intra-prediction.

[0288] Компенсация движения > BIO [0288] Motion compensation > BIO

Далее описывается способ для извлечения вектора движения. Сначала, в дальнейшем описывается режим для извлечения вектора движения на основе модели при условии равномерного прямолинейного движения. Этот режим также называется "режимом двунаправленного оптического потока (BIO)".Next, a method for extracting a motion vector is described. First, a mode for model-based motion vector extraction under the condition of uniform straight-line motion is described in the following. This mode is also called "Bidirectional Optical Flow (BIO) mode".

[0289] Фиг. 38 является концептуальной схемой для иллюстрации модели при условии равномерного прямолинейного движения. На фиг. 38, (vx, vy) указывает вектор скорости, и τ0 и τ1 указывают временные расстояния между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). (MVx0, MVy0), указывают векторы движения, соответствующие опорному кадру Ref0 и (MVx1, MVy1) указывают векторы движения, соответствующие опорному кадру Ref0.[0289] FIG. 38 is a conceptual diagram to illustrate the model under the condition of uniform linear motion. In fig. 38, (v x , v y ) indicates the velocity vector, and τ 0 and τ 1 indicate the time distances between the current frame (Cur Pic) and two reference frames (Ref 0 , Ref 1 ). (MVx 0 , MVy 0 ) indicate motion vectors corresponding to the reference frame Ref 0 and (MVx 1 , MVy 1 ) indicate motion vectors corresponding to the reference frame Ref 0 .

[0290] Здесь, согласно допущению относительно равномерного прямолинейного движения, демонстрируемого посредством векторов (vx, vy) скорости, (MVx0, MVy0) и (MVx1, MVy1), представляются как (vxτ0, vyτ0) и (-vxτ1, -vyτ1), соответственно, и может использоваться следующее уравнение оптического потока:[0290] Here, under the assumption of relatively uniform linear motion demonstrated by the velocity vectors (v x , v y ), (MVx 0 , MVy 0 ) and (MVx 1 , MVy 1 ), are represented as (v x τ 0 , v y τ 0 ) and (-v x τ 1 , -v y τ 1 ), respectively, and the following optical flow equation can be used:

[0291] Математическое выражение 3[0291] Mathematical expression 3

[0292] Здесь, I(k) указывает значение сигнала яркости с компенсацией движения опорного кадра k (k=0, 1). Это уравнение оптического потока показывает то, что сумма (i) производной по времени значения сигнала яркости, (ii) произведения горизонтальной скорости и горизонтального компонента пространственного градиента опорного изображения и (iii) произведения вертикальной скорости и вертикального компонента пространственного градиента опорного изображения равна нулю. Вектор движения каждого блока, полученный, например, из списка объединения, может корректироваться в единицах пиксела, на основе комбинации уравнения оптического потока и эрмитовой интерполяции.[0292] Here, I(k) indicates the value of the motion-compensated luminance signal of the reference frame k (k=0, 1). This optical flow equation indicates that the sum of (i) the time derivative of the luminance signal value, (ii) the product of the horizontal velocity and the horizontal component of the spatial gradient of the reference image, and (iii) the product of the vertical velocity and the vertical component of the spatial gradient of the reference image is zero. The motion vector of each block, obtained from, for example, a merge list, can be adjusted in pixel units based on a combination of the optical flow equation and Hermitian interpolation.

[0293] Следует отметить, что вектор движения может извлекаться на стороне декодера с использованием способа, отличного от извлечения вектора движения, на основе модели при условии равномерного прямолинейного движения. Например, вектор движения может извлекаться в единицах субблока на основе векторов движения соседних блоков.[0293] It should be noted that the motion vector can be extracted at the decoder side using a method other than model-based motion vector extraction under the condition of uniform straight-line motion. For example, a motion vector may be extracted in sub-block units based on the motion vectors of neighboring blocks.

[0294] Компенсация движения > LIC [0294] Motion compensation > LIC

Далее описывается пример режима, в котором прогнозное изображение (прогнозирование) формируется посредством использования процесса компенсации локальной освещенности (LIC).Next, an example of a mode in which a prediction image (prediction) is generated by using a local illuminance compensation (LIC) process is described.

[0295] Фиг. 39 является концептуальной схемой для иллюстрации одного примера способа формирования прогнозных изображений с использованием процесса коррекции яркости, выполняемого посредством LIC-процесса.[0295] FIG. 39 is a conceptual diagram for illustrating one example of a method for generating predictive images using a brightness correction process performed by an LIC process.

[0296] Во-первых, MV извлекается из кодированного опорного кадра, и опорное изображение, соответствующее текущему блоку, получается.[0296] First, the MV is extracted from the encoded reference frame, and a reference picture corresponding to the current block is obtained.

[0297] Затем, информация, указывающая то, как значение сигнала яркости изменено между опорным кадром и текущим кадром, извлекается для текущего блока. Это извлечение выполняется на основе пиксельных значений сигнала яркости для кодированной левой соседней опорной области (окружающей опорной области) и кодированной верхней соседней опорной области (окружающей опорной области) и пиксельного значения сигнала яркости в соответствующей позиции в опорном кадре, указываемом посредством извлеченного MV. Параметр коррекции яркости вычисляется посредством использования информации, указывающей то, как изменено значение сигнала яркости.[0297] Next, information indicating how the luminance signal value is changed between the reference frame and the current frame is retrieved for the current block. This extraction is performed based on the luminance signal pixel values for the encoded left adjacent reference region (surrounding reference region) and the encoded top adjacent reference region (surrounding reference region) and the pixel value of the luminance signal at the corresponding position in the reference frame indicated by the extracted MV. The luminance correction parameter is calculated by using information indicating how the luminance signal value is changed.

[0298] Прогнозное изображение для текущего блока формируется посредством выполнения процесса коррекции яркости, в котором параметр коррекции яркости применяется к опорному изображению в опорном кадре, указываемом посредством MV.[0298] The prediction image for the current block is generated by performing a luminance correction process in which a luminance correction parameter is applied to a reference image in a reference frame indicated by the MV.

[0299] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 39, представляет собой всего один пример; окружающая опорная область может иметь другую форму.[0299] It should be noted that the shape of the surrounding support region illustrated in FIG. 39 is just one example; the surrounding support area may have a different shape.

[0300] Кроме того, хотя здесь описывается процесс, в котором прогнозное изображение формируется из одного опорного кадра, идентично могут описываться случаи, в которых прогнозное изображение формируется из множества опорных кадров. Прогнозное изображение может формироваться после выполнения процесса коррекции яркости опорных изображений, полученных из опорных кадров, идентично вышеописанному.[0300] In addition, although a process in which a prediction image is generated from a single reference frame is described here, cases in which a prediction image is generated from a plurality of reference frames may be similarly described. The prediction image can be generated after performing the brightness correction process of the reference images obtained from the reference frames, identical to that described above.

[0301] Один пример способа для определения того, следует или нет применять LIC-процесс, представляет собой способ для использования lic_flag, который представляет собой сигнал, указывающий то, следует или нет применять LIC-процесс. В качестве одного конкретного примера, кодер определяет то, принадлежит или нет текущий блок области, имеющей изменение яркости. Кодер задает lic_flag равным значению "1", когда блок принадлежит области, имеющей изменение яркости, и применяет LIC-процесс при кодировании и задает lic_flag равным значению "0", когда блок не принадлежит области, имеющей изменение яркости, и кодирует текущий блок без применения LIC-процесса. Декодер может декодировать lic_flag, записываемый в потоке, и декодировать текущий блок посредством переключения между применением и неприменением LIC-процесса в соответствии со значением флага.[0301] One example of a method for determining whether or not to apply the LIC process is a method for using a lic_flag, which is a signal indicating whether or not to apply the LIC process. As one specific example, the encoder determines whether or not the current block belongs to a region having a brightness change. The encoder sets lic_flag to a value of "1" when the block belongs to a region having a luminance change and applies the LIC process when encoding, and sets lic_flag to a value of "0" when the block does not belong to a region having a luminance change and encodes the current block without applying LIC process. The decoder can decode the lic_flag written in the stream and decode the current block by switching between applying and not applying the LIC process according to the value of the flag.

[0302] Один пример другого способа определения того, следует или нет применять LIC-процесс, представляет собой способ определения в соответствии с тем, применен или нет LIC-процесс к окружающему блоку. В одном конкретном примере, когда режим объединения используется в текущем блоке, определяется то, применен или нет LIC-процесс при кодировании окружающего кодированного блока, выбранного после извлечения MV в процессе в режиме объединения. Согласно результату, кодирование выполняется посредством переключения между применением и неприменением LIC-процесса. Следует отметить, что также в этом примере, идентичные процессы применяются в процессах на стороне декодера.[0302] One example of another method for determining whether or not to apply an LIC process is a method for determining according to whether or not an LIC process is applied to a surrounding block. In one specific example, when the merge mode is used in the current block, it is determined whether or not the LIC process is applied when encoding the surrounding coded block selected after MV extraction in the merge mode process. According to the result, encoding is performed by switching between applying and not applying the LIC process. It should be noted that also in this example, identical processes are applied in the processes on the decoder side.

[0303] Ниже подробно описывается вариант осуществления процесса коррекции яркости (LIC), описанного со ссылкой на фиг. 39.[0303] The following describes in detail an embodiment of the luminance correction (LIC) process described with reference to FIG. 39.

[0304] Во-первых, модуль 126 внешнего прогнозирования извлекает вектор движения для получения опорного изображения, соответствующего текущему блоку, который должен кодироваться, из опорного кадра, который представляет собой кодированный кадр.[0304] First, the inter prediction unit 126 extracts a motion vector to obtain a reference picture corresponding to the current block to be encoded from a reference frame that is a coded frame.

[0305] Затем, модуль 126 внешнего прогнозирования извлекает информацию, указывающую то, как значение сигнала яркости опорного кадра изменено на значение сигнала яркости текущего кадра, с использованием пиксельного значения сигнала яркости кодированной окружающей опорной области, которая является соседней слева от или выше текущего блока, и значения сигнала яркости в соответствующей позиции в опорном кадре, указываемом посредством вектора движения, и вычисляет параметр коррекции яркости. Например, предполагается, что пиксельное значение сигнала яркости данного пиксела в окружающей опорной области в текущем кадре составляет p0, и что пиксельное значение сигнала яркости пиксела, соответствующего данному пикселу в окружающей опорной области в опорном кадре, составляет p1. Модуль 126 внешнего прогнозирования вычисляет коэффициенты A и B для оптимизации A*p1+B=p0 в качестве параметра коррекции яркости для множества пикселов в окружающей опорной области.[0305] Next, the inter prediction module 126 extracts information indicating how the luminance signal value of the reference frame is changed to the luminance signal value of the current frame, using the pixel luminance value of the encoded surrounding reference region that is adjacent to the left of or above the current block, and a luminance signal value at a corresponding position in the reference frame indicated by the motion vector, and calculates a luminance correction parameter. For example, it is assumed that the pixel value of the luminance signal of a given pixel in the surrounding reference region in the current frame is p0, and that the pixel value of the luminance signal of the pixel corresponding to a given pixel in the surrounding reference region in the reference frame is p1. The external prediction unit 126 calculates coefficients A and B to optimize A*p1+B=p0 as a luminance correction parameter for a plurality of pixels in the surrounding reference region.

[0306] Затем, модуль 126 внешнего прогнозирования выполняет процесс коррекции яркости с использованием параметра коррекции яркости для опорного изображения в опорном кадре, указываемом посредством вектора движения, чтобы формировать прогнозное изображение для текущего блока. Например, предполагается, что пиксельное значение сигнала яркости в опорном изображении составляет p2, и что скорректированное по яркости пиксельное значение сигнала яркости прогнозного изображения составляет p3. Модуль 126 внешнего прогнозирования формирует прогнозное изображение после подвергания процессу коррекции яркости посредством вычисления A*p2+B=p3 для каждого из пикселов в опорном изображении.[0306] Next, the external prediction unit 126 performs a luminance correction process using a luminance correction parameter for the reference image in the reference frame indicated by the motion vector to generate a prediction image for the current block. For example, it is assumed that the pixel value of the luminance signal in the reference image is p2, and that the luminance-corrected pixel value of the luminance signal of the prediction image is p3. The external prediction unit 126 generates a prediction image after undergoing the brightness correction process by calculating A*p2+B=p3 for each of the pixels in the reference image.

[0307] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 39, представляет собой один пример; может использоваться другая форма, отличная от формы окружающей опорной области. Помимо этого, может использоваться часть окружающей опорной области, проиллюстрированной на фиг. 39. Например, область, имеющая определенное число пикселов, извлеченных из каждого из верхнего соседнего пиксела и левого соседнего пиксела, может использоваться в качестве окружающей опорной области. Определенное число пикселов может быть предварительно определено.[0307] It should be noted that the shape of the surrounding support region illustrated in FIG. 39 is one example; a different shape from the surrounding support area may be used. In addition, part of the surrounding support region illustrated in FIG. 39. For example, a region having a certain number of pixels extracted from each of the top adjacent pixel and the left adjacent pixel can be used as a surrounding reference region. A certain number of pixels may be predetermined.

[0308] Помимо этого, окружающая опорная область не ограничена областью, которая является соседней с текущим блоком, и может представлять собой область, которая не является соседней с текущим блоком. В примере, проиллюстрированном на фиг. 39, окружающая опорная область в опорном кадре представляет собой область, указываемую посредством вектора движения в текущем кадре, из окружающей опорной области в текущем кадре. Тем не менее, также возможна область, указываемая посредством другого вектора движения. Например, другой вектор движения может представлять собой вектор движения в окружающей опорной области в текущем кадре.[0308] In addition, the surrounding reference area is not limited to an area that is adjacent to the current block, and may be an area that is not adjacent to the current block. In the example illustrated in FIG. 39, the surrounding reference area in the reference frame is an area indicated by the motion vector in the current frame from the surrounding reference area in the current frame. However, it is also possible for an area indicated by another motion vector. For example, the other motion vector may be a motion vector in the surrounding reference region in the current frame.

[0309] Хотя здесь описываются операции, выполняемые посредством кодера 100, следует отметить, что декодер 200 типично выполняет аналогичные операции.[0309] Although the operations performed by the encoder 100 are described here, it should be noted that the decoder 200 typically performs similar operations.

[0310] Следует отметить, что LIC-процесс может применяться не только к сигналу яркости, но также и к сигналу цветности. В это время, параметр коррекции может извлекаться отдельно для каждого из Y, Cb и Cr, или общий параметр коррекции может использоваться для любого из Y, Cb и Cr.[0310] It should be noted that the LIC process can be applied not only to the luma signal, but also to the chrominance signal. At this time, a correction parameter can be extracted separately for each of Y, Cb and Cr, or a common correction parameter can be used for any of Y, Cb and Cr.

[0311] Помимо этого, LIC-процесс может применяться в единицах субблоков. Например, параметр коррекции может извлекаться с использованием окружающей опорной области в текущем субблоке и окружающей опорной области в опорном субблоке в опорном кадре, указываемом посредством MV текущего субблока.[0311] In addition, the LIC process may be applied in subblock units. For example, the correction parameter may be extracted using a surrounding reference area in the current sub-block and a surrounding reference area in the reference sub-block in the reference frame indicated by the MV of the current sub-block.

[0312] Контроллер прогнозирования [0312] Prediction Controller

Модуль 128 внешнего прогнозирования выбирает один из внутреннего прогнозного сигнала (сигнала, выводимого из модуля 124 внутреннего прогнозирования) и внешнего прогнозного сигнала (сигнала, выводимого из модуля 126 внешнего прогнозирования) и выводит выбранный сигнал в вычитатель 104 и сумматор 116 в качестве прогнозного сигнала.The external prediction unit 128 selects one of the internal prediction signal (the signal output from the internal prediction unit 124) and the external prediction signal (the signal output from the external prediction unit 126) and outputs the selected signal to the subtractor 104 and the adder 116 as a prediction signal.

[0313] Как проиллюстрировано на фиг. 1, в различных видах примеров кодера, контроллер 128 прогнозирования может выводить параметр прогнозирования, который вводится в энтропийный кодер 110. Энтропийный кодер 110 может формировать кодированный поток битов (или последовательность), на основе параметра прогнозирования, который вводится из контроллера 128 прогнозирования, и квантованных коэффициентов, которые вводятся из квантователя 108. Параметр прогнозирования может использоваться в декодере. Декодер может принимать и декодировать кодированный поток битов и выполнять процессы, идентичные процессам прогнозирования, выполняемым посредством модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования. Параметр прогнозирования может включать в себя (i) прогнозный сигнал выбора (например, вектор движения, тип прогнозирования или режим прогнозирования, используемый посредством модуля 124 внутреннего прогнозирования или модуля 126 внешнего прогнозирования) или (ii) необязательный индекс, флаг или значение, которое основано на процессе прогнозирования, выполняемом в каждом из модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования, или которое указывает процесс прогнозирования.[0313] As illustrated in FIG. 1, in various kinds of encoder examples, the prediction controller 128 may output a prediction parameter that is input to the entropy encoder 110. The entropy encoder 110 may generate a coded bit stream (or sequence) based on the prediction parameter that is input from the prediction controller 128 and the quantized coefficients that are input from quantizer 108. The prediction parameter may be used in the decoder. The decoder can receive and decode the encoded bit stream and perform processes identical to the prediction processes performed by the intra prediction module 124, the external prediction module 126, and the prediction controller 128. The prediction parameter may include (i) a predictive selection signal (e.g., a motion vector, prediction type, or prediction mode used by intraprediction module 124 or interprediction module 126) or (ii) an optional index, flag, or value that is based on a prediction process performed in each of the internal prediction module 124, the external prediction module 126, and the prediction controller 128, or which indicates the prediction process.

[0314] Пример монтажа кодера [0314] Encoder installation example

Фиг. 40 является блок-схемой, иллюстрирующей пример монтажа кодера 100. Кодер 100 включает в себя процессор a1 и запоминающее устройство a2. Например, множество составляющих элементов кодера 100, проиллюстрированного на фиг. 1, смонтированы в процессоре a1 и запоминающем устройстве a2, проиллюстрированных на фиг. 40.Fig. 40 is a block diagram illustrating an installation example of the encoder 100. The encoder 100 includes a processor a1 and a memory a2. For example, the plurality of constituent elements of the encoder 100 illustrated in FIG. 1 are mounted in the processor a1 and memory a2 illustrated in FIG. 40.

[0315] Процессор a1 представляет собой схему, которая выполняет обработку информации, и является доступным для запоминающего устройства a2. Например, процессор a1 представляет собой специализированную или общую электронную схему, которая кодирует видео. Процессор a1 может представлять собой процессор, такой как CPU. Помимо этого, процессор a1 может представлять собой совокупность множества электронных схем. Помимо этого, например, процессор a1 может выполнять роли двух или более составляющих элементов из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 1 и т.д.[0315] Processor a1 is a circuit that performs information processing and is available to storage device a2. For example, processor a1 is a specialized or general electronic circuit that encodes video. Processor a1 may be a processor such as a CPU. In addition, processor a1 may be a collection of multiple electronic circuits. In addition, for example, processor a1 may serve as two or more constituent elements of the plurality of constituent elements of the encoder 100 illustrated in FIG. 1, etc.

[0316] Запоминающее устройство a2 представляет собой специализированное или общее запоминающее устройство для сохранения информации, которая используется посредством процессора a1 для того, чтобы кодировать видео. Запоминающее устройство a2 может представлять собой электронную схему и может соединяться с процессором a1. Помимо этого, запоминающее устройство a2, может включаться в процессор a1. Помимо этого, запоминающее устройство a2 может представлять собой совокупность множества электронных схем. Помимо этого, запоминающее устройство a2 может представлять собой магнитный диск, оптический диск и т.п. либо может представляться как устройство хранения данных, носитель записи и т.п. Помимо этого, запоминающее устройство a2 может представлять собой энергонезависимое запоминающее устройство или энергозависимое запоминающее устройство.[0316] Storage device a2 is a dedicated or general storage device for storing information that is used by processor a1 to encode video. The storage device a2 may be an electronic circuit and may be coupled to the processor a1. In addition, the storage device a2 may be included in the processor a1. In addition, the storage device a2 may be a collection of a plurality of electronic circuits. In addition, the storage device a2 may be a magnetic disk, an optical disk or the like. or may be represented as a storage device, recording medium, or the like. In addition, the storage device a2 may be a non-volatile storage device or a volatile storage device.

[0317] Например, запоминающее устройство a2 может сохранять видео, которое должно кодироваться, или поток битов, соответствующий кодированному видео. Помимо этого, запоминающее устройство a2 может сохранять программу для инструктирования процессору a1 кодировать видео.[0317] For example, storage device a2 may store video to be encoded or a bit stream corresponding to the encoded video. In addition, the storage device a2 may store a program for instructing the processor a1 to encode the video.

[0318] Помимо этого, например, запоминающее устройство a2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 1 и т.д. Например, запоминающее устройство a2 может выполнять роли запоминающего устройства 118 блоков и запоминающего устройства 122 кадров, проиллюстрированных на фиг. 1. Более конкретно, запоминающее устройство a2 может сохранять восстановленный блок, восстановленный кадр и т.д.[0318] In addition, for example, the storage device a2 may serve as two or more constituent elements for storing information from a plurality of constituent elements of the encoder 100 illustrated in FIG. 1, etc. For example, memory a2 may serve as block memory 118 and frame memory 122 illustrated in FIG. 1. More specifically, the storage device a2 can store a reconstructed block, a reconstructed frame, etc.

[0319] Следует отметить, что, в кодере 100, все из множества составляющих элементов, указываемых на фиг. 1 и т.д., могут не реализовываться, и все процессы, описанные выше, могут не выполняться. Часть составляющих элементов, указываемых на фиг. 1 и т.д., может включаться в другое устройство, или часть процессов, описанных выше, может выполняться посредством другого устройства.[0319] It should be noted that, in the encoder 100, all of the plurality of constituent elements indicated in FIG. 1, etc. may not be implemented, and all the processes described above may not be performed. Some of the constituent elements shown in FIG. 1, etc., may be included in another device, or part of the processes described above may be performed by another device.

[0320] Декодер [0320] Decoder

Далее описывается декодер, допускающий декодирование кодированного сигнала (кодированного потока битов), выводимого, например, из кодера 100, описанного выше. Фиг. 41 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера 200 согласно варианту осуществления. Декодер 200 представляет собой видеодекодер, который декодирует видео в единицах блоков.The following describes a decoder capable of decoding a coded signal (coded bit stream) output, for example, from the encoder 100 described above. Fig. 41 is a block diagram illustrating a functional configuration of the decoder 200 according to the embodiment. Decoder 200 is a video decoder that decodes video in units of blocks.

[0321] Как проиллюстрировано на фиг. 41, декодер 200 включает в себя энтропийный декодер 202, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, контурный фильтр 212, запоминающее устройство 214 кадров, модуль 216 внутреннего прогнозирования, модуль 218 внешнего прогнозирования и контроллер 220 прогнозирования.[0321] As illustrated in FIG. 41, the decoder 200 includes an entropy decoder 202, an inverse quantizer 204, an inverse converter 206, an adder 208, a block memory 210, a loop filter 212, a frame memory 214, an internal prediction module 216, an external prediction module 218, and a prediction controller 220.

[0322] Декодер 200 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве энтропийного декодера 202, обратного квантователя 204, обратного преобразователя 206, сумматора 208, контурного фильтра 212, модуля 216 внутреннего прогнозирования, модуля 218 внешнего прогнозирования и контроллера 220 прогнозирования. Альтернативно, декодер 200 может реализовываться в качестве одной или более специализированных электронных схем, соответствующих энтропийному декодеру 202, обратному квантователю 204, обратному преобразователю 206, сумматору 208, контурному фильтру 212, модулю 216 внутреннего прогнозирования, модулю 218 внешнего прогнозирования и контроллеру 220 прогнозирования.[0322] Decoder 200 is implemented, for example, as a general processor and storage device. In this case, when the software program stored in the memory device is executed by the processor, the processor functions as an entropy decoder 202, an inverse quantizer 204, an inverse transformer 206, an adder 208, a loop filter 212, an internal prediction module 216, an external prediction module 218. prediction and prediction controller 220. Alternatively, the decoder 200 may be implemented as one or more application-specific circuits corresponding to an entropy decoder 202, an inverse quantizer 204, an inverse transformer 206, an adder 208, a loop filter 212, an internal prediction module 216, an external prediction module 218, and a prediction controller 220.

[0323] В дальнейшем в этом документе описывается полная последовательность операций процессов, выполняемых посредством декодера 200, и после этого описывается каждый из составляющих элементов, включенных в декодер 200.[0323] Hereinafter, this document describes the complete flow of processes performed by the decoder 200, and thereafter describes each of the constituent elements included in the decoder 200.

[0324] Общая последовательность операций процесса декодирования [0324] General flow of decoding process

Фиг. 42 является блок-схемой последовательности операций способа, иллюстрирующей один пример полного процесса декодирования, выполняемого посредством декодера 200.Fig. 42 is a flowchart illustrating one example of a complete decoding process performed by decoder 200.

[0325] Во-первых, энтропийный декодер 202 декодера 200 идентифицирует шаблон разбиения блока, имеющего фиксированный размер (например, 128×128 пикселов) (этап Sp_1). Этот шаблон разбиения представляет собой шаблон разбиения, выбранный посредством кодера 100. Декодер 200 затем выполняет процессы этапа Sp_2-Sp_6 для каждого из множества блоков шаблона разбиения.[0325] First, the entropy decoder 202 of the decoder 200 identifies a block partitioning pattern having a fixed size (eg, 128×128 pixels) (step Sp_1). This split pattern is a split pattern selected by the encoder 100. The decoder 200 then performs the processes of step Sp_2-Sp_6 for each of the plurality of split pattern blocks.

[0326] Другими словами, энтропийный декодер 202 декодирует (в частности, энтропийно декодирует) кодированные квантованные коэффициенты и параметр прогнозирования текущего блока, который должен декодироваться (также называется "текущим блоком") (этап Sp_2).[0326] In other words, the entropy decoder 202 decodes (specifically, entropy decodes) the encoded quantized coefficients and the prediction parameter of the current block to be decoded (also called “current block”) (step Sp_2).

[0327] Затем, обратный квантователь 204 выполняет обратное квантование множества квантованных коэффициентов, и обратный преобразователь 206 выполняет обратное преобразование результата для того, чтобы восстанавливать множество остатков прогнозирования (т.е. разностный блок) (этап Sp_3).[0327] Next, the inverse quantizer 204 inversely quantizes the plurality of quantized coefficients, and the inverse transformer 206 inversely transforms the result to recover the plurality of prediction residuals (ie, the difference block) (step Sp_3).

[0328] Затем, процессор прогнозирования, включающий в себя все или часть модуля 216 внутреннего прогнозирования, модуля 218 внешнего прогнозирования и контроллера 220 прогнозирования, формирует прогнозный сигнал (также называется "блоком прогнозирования") текущего блока (этап Sp_4).[0328] Next, the prediction processor including all or part of the internal prediction module 216, the external prediction module 218, and the prediction controller 220 generates a prediction signal (also called a “prediction block”) of the current block (step Sp_4).

[0329] Затем, сумматор 208 суммирует блок прогнозирования с разностным блоком для того, чтобы формировать восстановленное изображение (также называется "декодированным блоком изображений") текущего блока (этап Sp_5).[0329] Next, the adder 208 adds the prediction block with the difference block to generate a reconstructed image (also called a “decoded image block”) of the current block (step Sp_5).

[0330] Когда восстановленное изображение формируется, контурный фильтр 212 выполняет фильтрацию восстановленного изображения (этап Sp_6).[0330] When the reconstructed image is generated, the contour filter 212 performs filtering on the reconstructed image (step Sp_6).

[0331] Декодер 200 затем определяет то, закончено или нет декодирование всего кадра (этап Sp_7). При определении того, что декодирование еще не закончено ("Нет" на этапе Sp_7), декодер 200 многократно выполняет процессы, начиная с этапа Sp_1.[0331] The decoder 200 then determines whether or not decoding of the entire frame is complete (step Sp_7). When determining that decoding is not yet completed (“No” in step Sp_7), the decoder 200 repeatedly executes processes starting from step Sp_1.

[0332] Как проиллюстрировано, процессы этапов Sp_1-Sp_7 выполняются последовательно посредством декодера 200. Альтернативно, два или более из процессов могут выполняться параллельно, порядок обработки двух или более из процессов может модифицироваться, и т.д.[0332] As illustrated, the processes of steps Sp_1 to Sp_7 are executed sequentially by the decoder 200. Alternatively, two or more of the processes may be executed in parallel, the processing order of two or more of the processes may be modified, etc.

[0333] Энтропийный декодер [0333] Entropy decoder

Энтропийный декодер 202 энтропийно декодирует кодированный поток битов. Более конкретно, например, энтропийный декодер 202 арифметически декодирует кодированный поток битов в двоичный сигнал. Энтропийный декодер 202 затем отменяет преобразование в двоичную форму двоичного сигнала. Вследствие этого, энтропийный декодер 202 выводит квантованные коэффициенты каждого блока в обратный квантователь 204. Энтропийный декодер 202 может выводить параметр прогнозирования, включенный в кодированный поток битов (см. фиг. 1), в модуль 216 внутреннего прогнозирования, модуль 218 внешнего прогнозирования и контроллер 220 прогнозирования. Модуль 216 внутреннего прогнозирования, модуль 218 внешнего прогнозирования и контроллер 220 прогнозирования в варианте осуществления допускают выполнение процессов прогнозирования, идентичных процессам прогнозирования, выполняемым посредством модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования на стороне кодера.Entropy decoder 202 entropy decodes the encoded bitstream. More specifically, for example, entropy decoder 202 arithmetically decodes the encoded bit stream into a binary signal. Entropy decoder 202 then debinarizes the binary signal. Consequently, the entropy decoder 202 outputs the quantized coefficients of each block to the inverse quantizer 204. The entropy decoder 202 may output a prediction parameter included in the coded bit stream (see FIG. 1) to the intra prediction module 216, the inter prediction module 218, and the controller 220. forecasting. The internal prediction module 216, the external prediction module 218, and the prediction controller 220 in the embodiment are capable of performing prediction processes identical to those performed by the internal prediction module 124, the external prediction module 126, and the encoder-side prediction controller 128.

[0334] Обратный квантователь [0334] Inverse Quantizer

Обратный квантователь 204 обратно квантует квантованные коэффициенты блока, который должен декодироваться (в дальнейшем называется "текущим блоком"), которые представляют собой вводы из энтропийного декодера 202. Более конкретно, обратный квантователь 204 обратно квантует квантованные коэффициенты текущего блока на основе параметров квантования, соответствующих квантованным коэффициентам. Обратный квантователь 204 затем выводит обратно квантованные коэффициенты преобразования текущего блока в обратный преобразователь 206.The inverse quantizer 204 inversely quantizes the quantized coefficients of the block to be decoded (hereinafter referred to as the “current block”), which are inputs from the entropy decoder 202. More specifically, the inverse quantizer 204 inversely quantizes the quantized coefficients of the current block based on the quantization parameters corresponding to the quantized coefficients. The inverse quantizer 204 then outputs the inversely quantized transform coefficients of the current block to the inverse quantizer 206.

[0335] Обратный преобразователь [0335] Inverter

Обратный преобразователь 206 восстанавливает ошибки прогнозирования посредством обратного преобразования коэффициентов преобразования, которые представляют собой вводы из обратного квантователя 204.The inverse transformer 206 recovers the prediction errors by inversely transforming the transform coefficients that are the inputs from the inverse quantizer 204.

[0336] Например, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что EMT или AMT должно применяться (например, когда AMT-флаг является истинным), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока на основе информации, указывающей синтаксически проанализированный тип преобразования.[0336] For example, when information parsed from the encoded bitstream indicates that EMT or AMT should be applied (eg, when the AMT flag is true), the inverter 206 inverts the transform coefficients of the current block based on the information syntactically indicating parsed conversion type.

[0337] Кроме того, например, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что NSST должно применяться, обратный преобразователь 206 применяет вторичное обратное преобразование к коэффициентам преобразования.[0337] In addition, for example, when information parsed from the encoded bitstream indicates that NSST should be applied, inverter 206 applies a secondary inverse transform to the transform coefficients.

[0338] Сумматор [0338] Totalizer

Сумматор 208 восстанавливает текущий блок посредством суммирования ошибок прогнозирования, которые представляют собой вводы из обратного преобразователя 206, и прогнозных выборок, которые представляют собой вводы из контроллера 220 прогнозирования. Сумматор 208 затем выводит восстановленный блок в запоминающее устройство 210 блоков и контурный фильтр 212.The adder 208 reconstructs the current block by summing the prediction errors, which are the inputs from the inverter 206, and the prediction samples, which are the inputs from the prediction controller 220. The adder 208 then outputs the reconstructed block to a block memory 210 and a loop filter 212.

[0339] Запоминающее устройство блоков [0339] Block memory

Запоминающее устройство 210 блоков представляет собой устройство хранения данных для сохранения блоков в кадре, который должен декодироваться (в дальнейшем называется "текущим кадром"), и на который следует ссылаться при внутреннем прогнозировании. Более конкретно, запоминающее устройство 210 блоков сохраняет восстановленные блоки, выводимые из сумматора 208.The block memory 210 is a storage device for storing blocks in a frame to be decoded (hereinafter referred to as a "current frame") and to be referenced in intra prediction. More specifically, block memory 210 stores reconstructed blocks output from adder 208.

[0340] Контурный фильтр [0340] Loop filter

Контурный фильтр 212 применяет контурный фильтр к блокам, восстановленным посредством сумматора 208, и выводит фильтрованные восстановленные блоки в запоминающее устройство 214 кадров, устройство отображения и т.д.The loop filter 212 applies the loop filter to the blocks reconstructed by the adder 208 and outputs the filtered reconstructed blocks to the frame memory 214, display device, etc.

[0341] Когда информация, указывающая включение или выключение ALF, синтаксически проанализированная из кодированного потока битов, указывает то, что ALF включен, один фильтр из множества фильтров выбирается на основе направления и активности локальных градиентов, и выбранный фильтр применяется к восстановленному блоку.[0341] When information indicating ALF on or off parsed from the coded bitstream indicates that ALF is on, one filter from the plurality of filters is selected based on the direction and activity of the local gradients, and the selected filter is applied to the reconstructed block.

[0342] Запоминающее устройство кадров [0342] Frame memory

Запоминающее устройство 214 кадров, например, представляет собой устройство хранения данных для сохранения опорных кадров для использования при внешнем прогнозировании, и также называется "буфером кадров". Более конкретно, запоминающее устройство 214 кадров сохраняет восстановленный блок, фильтрованный посредством контурного фильтра 212.The frame memory 214, for example, is a storage device for storing reference frames for use in external prediction, and is also called a “frame buffer.” More specifically, frame memory 214 stores the reconstructed block filtered by loop filter 212.

[0343] Процессор прогнозирования (модуль внутреннего прогнозирования, модуль внешнего прогнозирования, контроллер прогнозирования) [0343] Prediction Processor (Internal Prediction Module, External Prediction Module, Prediction Controller)

Фиг. 43 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования декодера 200. Следует отметить, что процессор прогнозирования включает в себя все или часть следующих составляющих элементов: модуль 216 внутреннего прогнозирования; модуль 218 внешнего прогнозирования; и контроллер 220 прогнозирования.Fig. 43 is a flowchart illustrating one example of a process performed by the prediction processor of the decoder 200. It should be noted that the prediction processor includes all or part of the following constituent elements: an intra prediction unit 216; external prediction module 218; and a prediction controller 220.

[0344] Процессор прогнозирования формирует прогнозное изображение текущего блока (этап Sq_1). Это прогнозное изображение также называется "прогнозным сигналом" или "блоком прогнозирования". Следует отметить, что прогнозный сигнал, например, представляет собой внутренний прогнозный сигнал или внешний прогнозный сигнал. В частности, процессор прогнозирования формирует прогнозное изображение текущего блока с использованием восстановленного изображения, которое уже получено через формирование блока прогнозирования, формирование разностного блока, формирование блока коэффициентов, восстановление разностного блока и формирование декодированного блока изображений.[0344] The prediction processor generates a prediction image of the current block (step Sq_1). This prediction image is also called a "prediction signal" or a "prediction block". It should be noted that the prediction signal is, for example, an internal prediction signal or an external prediction signal. Specifically, the prediction processor generates a prediction image of the current block using a reconstructed image that has already been obtained through prediction block generation, difference block generation, coefficient block generation, difference block reconstruction, and decoded image block generation.

[0345] Восстановленное изображение, например, может представлять собой изображение в опорном кадре или изображение декодированного блока в текущем кадре, который представляет собой кадр, включающий в себя текущий блок. Декодированный блок в текущем кадре, например, представляет собой соседний блок относительно текущего блока.[0345] The reconstructed image, for example, may be an image in a reference frame or an image of a decoded block in a current frame, which is a frame including the current block. The decoded block in the current frame, for example, is a block adjacent to the current block.

[0346] Фиг. 44 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования декодера 200.[0346] FIG. 44 is a flowchart illustrating another example of a process performed by the decoder prediction processor 200.

[0347] Процессор прогнозирования определяет способ или режим для формирования прогнозного изображения (этап Sr_1). Например, способ или режим может определяться, например, на основе параметра прогнозирования и т.д.[0347] The prediction processor determines a method or mode for generating a prediction image (step Sr_1). For example, the method or mode may be determined, for example, based on a prediction parameter, etc.

[0348] При определении первого способа в качестве режима для формирования прогнозного изображения, процессор прогнозирования формирует прогнозное изображение согласно первому способу (этап Sr_2a). При определении второго способа в качестве режима для формирования прогнозного изображения, процессор прогнозирования формирует прогнозное изображение согласно второму способу (этап Sr_2b). При определении третьего способа в качестве режима для формирования прогнозного изображения, процессор прогнозирования формирует прогнозное изображение согласно третьему способу (этап Sr_2c).[0348] When determining the first method as the mode for generating a prediction image, the prediction processor generates a prediction image according to the first method (step Sr_2a). When determining the second method as the mode for generating the prediction image, the prediction processor generates the prediction image according to the second method (step Sr_2b). When determining the third method as the mode for generating the prediction image, the prediction processor generates the prediction image according to the third method (step Sr_2c).

[0349] Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования прогнозного изображения. Каждый из первого-третьего способов может представлять собой способ внешнего прогнозирования, способ внутреннего прогнозирования или другой способ прогнозирования. Вышеописанное восстановленное изображение может использоваться в этих способах прогнозирования.[0349] The first method, the second method and the third method may be mutually different methods for generating a predictive image. Each of the first to third methods may be an external forecasting method, an internal forecasting method, or another forecasting method. The above-described reconstructed image can be used in these prediction methods.

[0350] Модуль внутреннего прогнозирования [0350] Internal prediction module

Модуль 216 внутреннего прогнозирования формирует прогнозный сигнал (внутренний прогнозный сигнал) посредством выполнения внутреннего прогнозирования посредством ссылки на блок или блоки в текущем кадре, сохраненном в запоминающем устройстве 210 блоков, на основе режима внутреннего прогнозирования, синтаксически проанализированного из кодированного потока битов. Более конкретно, модуль 216 внутреннего прогнозирования формирует внутренний прогнозный сигнал посредством выполнения внутреннего прогнозирования посредством ссылки на выборки (например, значения сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутренний прогнозный сигнал в контроллер 220 прогнозирования.The intra prediction unit 216 generates a prediction signal (intra prediction signal) by performing intra prediction by reference to a block or blocks in the current frame stored in the block memory 210 based on the intra prediction mode parsed from the encoded bit stream. More specifically, the intra prediction module 216 generates an internal prediction signal by performing intra prediction by reference to samples (eg, luma value and/or chrominance value) of the block or blocks adjacent to the current block, and then outputs the internal prediction signal to the prediction controller 220 .

[0351] Следует отметить, что, когда выбирается режим внутреннего прогнозирования, в котором ссылаются на блок сигналов яркости при внутреннем прогнозировании блока сигналов цветности, модуль 216 внутреннего прогнозирования может прогнозировать компонент сигнала цветности текущего блока на основе компонента сигнала яркости текущего блока.[0351] It should be noted that when an intra prediction mode in which a luma block is referenced in intra prediction of a chrominance block is selected, the intra prediction unit 216 can predict the chrominance signal component of the current block based on the luma signal component of the current block.

[0352] Кроме того, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что PDPC должна применяться, модуль 216 внутреннего прогнозирования корректирует внутренне прогнозированные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов.[0352] In addition, when information parsed from the coded bitstream indicates that PDPC should be applied, intra prediction module 216 adjusts internally predicted pixel values based on horizontal/vertical reference pixel gradients.

[0353] Модуль внешнего прогнозирования [0353] External Prediction Module

Модуль 218 внешнего прогнозирования прогнозирует текущий блок посредством ссылки на опорный кадр, сохраненный в запоминающем устройстве 214 кадров. Внешнее прогнозирование выполняется в единицах текущего блока или субблока (например, блок 4×4) в текущем блоке. Например, модуль 218 внешнего прогнозирования формирует внешний прогнозный сигнал текущего блока или субблока посредством выполнения компенсации движения посредством использования информации движения (например, вектора движения), синтаксически проанализированной из кодированного потока битов (например, параметра прогнозирования, выводимого из энтропийного декодера 202), и выводит внешний прогнозный сигнал в контроллер 220 прогнозирования.The external prediction module 218 predicts the current block by reference to a reference frame stored in the frame memory 214. External prediction is performed in units of the current block or subblock (eg, 4x4 block) within the current block. For example, the external prediction module 218 generates an external prediction signal of the current block or sub-block by performing motion compensation by using motion information (eg, a motion vector) parsed from the encoded bitstream (eg, a prediction parameter output from the entropy decoder 202) and outputs an external prediction signal to the prediction controller 220.

[0354] Следует отметить, что, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что OBMC-режим должен применяться, модуль 218 внешнего прогнозирования формирует внешний прогнозный сигнал с использованием информации движения соседнего блока в дополнение к информации движения текущего блока, полученной из оценки движения.[0354] It should be noted that when information parsed from the encoded bit stream indicates that the OBMC mode is to be applied, the external prediction unit 218 generates an external prediction signal using the motion information of the adjacent block in addition to the motion information of the current block. obtained from the motion estimate.

[0355] Кроме того, когда информация, синтаксически проанализированная из кодированного потока битов, указывает применение FRUC-режима, модуль 218 внешнего прогнозирования извлекает информацию движения посредством выполнения оценки движения в соответствии со способом сопоставления с шаблоном (билатеральное сопоставление или сопоставление с эталоном), синтаксически проанализированным из кодированного потока битов. Модуль 218 внешнего прогнозирования затем выполняет компенсацию движения (прогнозирование) с использованием извлеченной информации движения.[0355] In addition, when information parsed from the encoded bitstream indicates the use of the FRUC mode, the external prediction module 218 extracts the motion information by performing motion estimation in accordance with a template matching method (bilateral matching or template matching) syntactically parsed from the encoded bit stream. The external prediction module 218 then performs motion compensation (prediction) using the extracted motion information.

[0356] Кроме того, когда BIO-режим должен применяться, модуль 218 внешнего прогнозирования извлекает вектор движения на основе модели при условии равномерного прямолинейного движения. Кроме того, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что аффинный режим прогнозирования с компенсацией движения должен применяться, модуль 218 внешнего прогнозирования извлекает вектор движения каждого субблока на основе векторов движения соседних блоков.[0356] In addition, when the BIO mode is to be applied, the external prediction module 218 extracts a motion vector based on the model under the condition of uniform straight-line motion. In addition, when information parsed from the encoded bitstream indicates that the motion-compensated affine prediction mode should be applied, the inter-prediction module 218 extracts the motion vector of each sub-block based on the motion vectors of neighboring blocks.

[0357] MV-извлечение > нормальный внешний режим [0357] MV extract > normal external mode

Когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что нормальный внешний режим должен применяться, модуль 218 внешнего прогнозирования извлекает MV на основе информации, синтаксически проанализированной из кодированного потока битов, и выполняет компенсацию движения (прогнозирование) с использованием MV.When the information parsed from the coded bitstream indicates that the normal outer mode should be applied, the outer prediction unit 218 extracts the MV based on the information parsed from the coded bitstream and performs motion compensation (prediction) using the MV.

[0358] Фиг. 45 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме в декодере 200.[0358] FIG. 45 is a flowchart illustrating an example of inter-prediction in normal inter-mode in the decoder 200.

[0359] Модуль 218 внешнего прогнозирования декодера 200 выполняет компенсацию движения для каждого блока. Модуль 218 внешнего прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества декодированных блоков, временно или пространственно окружающих текущий блок (этап Ss_1). Другими словами, модуль 218 внешнего прогнозирования формирует список возможных MV-вариантов.[0359] The external prediction module 218 of the decoder 200 performs motion compensation for each block. The external prediction module 218 obtains a plurality of candidate MVs for the current block based on information such as the MVs of a plurality of decoded blocks temporally or spatially surrounding the current block (step Ss_1). In other words, the external prediction module 218 generates a list of possible MV options.

[0360] Затем, модуль 218 внешнего прогнозирования извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Ss_1, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенному порядку приоритетов (этап Ss_2). Следует отметить, что порядок приоритетов может определяться заранее для каждого из N возможных вариантов MV-предикторов.[0360] Next, the external prediction module 218 extracts N (an integer of 2 or more) MV candidates from the plurality of MV candidates obtained in step Ss_1 as motion vector predictor candidates (also called “MV candidates”). predictors") according to a certain order of priorities (stage Ss_2). It should be noted that the priority order can be determined in advance for each of the N possible MV predictor options.

[0361] Затем, модуль 218 внешнего прогнозирования декодирует информацию выбора предиктора вектора движения из входного потока (т.е. кодированного потока битов) и выбирает один возможный вариант MV-предиктора из N возможных вариантов MV-предикторов с использованием декодированной информации выбора предиктора вектора движения, в качестве вектора движения (также называется "MV-предиктором") текущего блока (этап Ss_3).[0361] Next, the external prediction unit 218 decodes the motion vector predictor selection information from the input stream (i.e., the coded bit stream) and selects one MV predictor candidate from the N candidate MV predictor candidates using the decoded motion vector predictor selection information. , as the motion vector (also called "MV predictor") of the current block (step Ss_3).

[0362] Затем, модуль 218 внешнего прогнозирования декодирует MV-разность из входного потока и извлекает MV для текущего блока посредством суммирования значения разности, которое представляет собой декодированную MV-разность, и выбранного предиктора вектора движения (этап Ss_4).[0362] Next, the external prediction unit 218 decodes the MV difference from the input stream and extracts the MV for the current block by summing the difference value, which is the decoded MV difference, and the selected motion vector predictor (step Ss_4).

[0363] В завершение, модуль 218 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированного опорного кадра (этап Ss_5).[0363] Finally, the external prediction unit 218 generates a prediction image for the current block by performing motion compensation of the current block using the extracted MV and the decoded reference frame (step Ss_5).

[0364] Контроллер прогнозирования [0364] Prediction Controller

Контроллер 220 прогнозирования выбирает внутренний прогнозный сигнал или внешний прогнозный сигнал и выводит выбранный прогнозный сигнал в сумматор 208. В целом, конфигурации, функции и процессы контроллера 220 прогнозирования, модуля 216 внутреннего прогнозирования и модуля 218 внешнего прогнозирования на стороне декодера могут соответствовать конфигурациям, функциям и процессам контроллера 128 прогнозирования, модуля 124 внутреннего прогнозирования и модуля 126 внешнего прогнозирования на стороне кодера.The prediction controller 220 selects an internal prediction signal or an external prediction signal and outputs the selected prediction signal to the adder 208. In general, the configurations, functions and processes of the prediction controller 220, the internal prediction module 216 and the external prediction module 218 on the decoder side may correspond to the configurations, functions and processes of the prediction controller 128, the internal prediction module 124, and the external prediction module 126 on the encoder side.

[0365] Пример монтажа декодера [0365] Decoder installation example

Фиг. 46 является блок-схемой, иллюстрирующей пример монтажа декодера 200. Декодер 200 включает в себя процессор b1 и запоминающее устройство b2. Например, множество составляющих элементов декодера 200, проиллюстрированного на фиг. 41, смонтированы в процессоре b1 и запоминающем устройстве b2, проиллюстрированных на фиг. 46.Fig. 46 is a block diagram illustrating an installation example of the decoder 200. The decoder 200 includes a processor b1 and a memory b2. For example, the plurality of constituent elements of the decoder 200 illustrated in FIG. 41 are mounted in the processor b1 and memory b2 illustrated in FIG. 46.

[0366] Процессор b1 представляет собой схему, которая выполняет обработку информации, и является доступным для запоминающего устройства b2. Например, процессор b1 представляет собой специализированную или общую электронную схему, которая декодирует видео (т.е. кодированный поток битов). Процессор b1 может представлять собой процессор, такой как CPU. Помимо этого, процессор b1 может представлять собой совокупность множества электронных схем. Помимо этого, например, процессор b1 может выполнять роли двух или более составляющих элементов из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 41 и т.д.[0366] Processor b1 is a circuit that performs information processing and is available to storage device b2. For example, processor b1 is a specialized or general electronic circuit that decodes video (ie, an encoded bit stream). Processor b1 may be a processor such as a CPU. In addition, processor b1 may be a collection of multiple electronic circuits. In addition, for example, processor b1 may serve as two or more constituent elements of the plurality of constituent elements of the decoder 200 illustrated in FIG. 41, etc.

[0367] Запоминающее устройство b2 представляет собой специализированное или общее запоминающее устройство для сохранения информации, которая используется посредством процессора b1 для того, чтобы декодировать кодированный поток битов. Запоминающее устройство b2 может представлять собой электронную схему и может соединяться с процессором b1. Помимо этого, запоминающее устройство b2, может включаться в процессор b1. Помимо этого, запоминающее устройство b2 может представлять собой совокупность множества электронных схем. Помимо этого, запоминающее устройство b2 может представлять собой магнитный диск, оптический диск и т.п. либо может представляться как устройство хранения данных, носитель записи и т.п. Помимо этого, запоминающее устройство b2 может представлять собой энергонезависимое запоминающее устройство или энергозависимое запоминающее устройство.[0367] Memory b2 is a dedicated or general memory for storing information that is used by processor b1 to decode the encoded bit stream. Memory b2 may be an electronic circuit and may be coupled to processor b1. In addition, memory b2 may be included in processor b1. In addition, the storage device b2 may be a collection of a plurality of electronic circuits. In addition, the storage device b2 may be a magnetic disk, an optical disk or the like. or may be represented as a storage device, recording medium, or the like. In addition, the storage device b2 may be a non-volatile storage device or a volatile storage device.

[0368] Например, запоминающее устройство b2 может сохранять видео или поток битов. Помимо этого, запоминающее устройство b2 может сохранять программу для инструктирования процессору b1 декодировать кодированный поток битов.[0368] For example, storage device b2 may store video or a bit stream. In addition, memory b2 may store a program for instructing processor b1 to decode the encoded bit stream.

[0369] Помимо этого, например, запоминающее устройство b2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 41 и т.д. В частности, запоминающее устройство b2 может выполнять роли запоминающего устройства 210 блоков и запоминающего устройства 214 кадров, проиллюстрированных на фиг. 41. Более конкретно, запоминающее устройство b2 может сохранять восстановленный блок, восстановленный кадр и т.д.[0369] In addition, for example, the storage device b2 may serve as two or more constituent elements for storing information from a plurality of constituent elements of the decoder 200 illustrated in FIG. 41, etc. In particular, memory b2 may serve as block memory 210 and frame memory 214 illustrated in FIG. 41. More specifically, the storage device b2 can store a reconstructed block, a reconstructed frame, etc.

[0370] Следует отметить, что, в декодере 200, все из множества составляющих элементов, проиллюстрированных на фиг. 41 и т.д., могут не реализовываться, и все процессы, описанные выше, могут не выполняться. Часть составляющих элементов, указываемых на фиг. 41 и т.д., может включаться в другое устройство, или часть процессов, описанных выше, может выполняться посредством другого устройства.[0370] It should be noted that, in the decoder 200, all of the plurality of constituent elements illustrated in FIG. 41, etc. may not be implemented, and all the processes described above may not be performed. Some of the constituent elements shown in FIG. 41, etc., may be included in another device, or part of the processes described above may be performed by another device.

[0371] Определения терминов [0371] Definitions of terms

Соответствующие термины могут задаваться так, как указано ниже в качестве примеров.The corresponding terms may be specified as below as examples.

[0372] Кадр представляет собой массив выборок сигнала яркости в монохромном формате либо массив выборок сигнала яркости и два соответствующих массива выборок сигнала цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4. Кадр может представлять собой либо кадр, либо поле.[0372] A frame is an array of luma samples in monochrome, or an array of luma samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2, and 4:4:4 color formats. A frame can be either a frame or a field.

[0373] Кадр представляет собой композицию верхнего поля и нижнего поля, при этом строки 0, 2, 4,..., выборок инициируются из верхнего поля, и строки 1, 3, 5,..., выборок инициируются из нижнего поля.[0373] A frame is a composition of a top field and a bottom field, with lines 0, 2, 4,..., samples being initiated from the top field, and lines 1, 3, 5,..., samples being initiated from the bottom field.

[0374] Слайс представляет собой целое число единиц дерева кодирования, содержащихся в одном независимом сегменте слайсов и всех последующих зависимых сегментах слайсов (если таковые имеются), которые предшествуют следующему независимому сегменту слайсов (если таковые имеются) в идентичной единице доступа.[0374] A slice is an integer number of coding tree units contained in one independent slice segment and all subsequent dependent slice segments (if any) that precede the next independent slice segment (if any) in an identical access unit.

[0375] Тайл представляет собой прямоугольную область блоков дерева кодирования в конкретном столбце тайлов и конкретной строке тайлов в кадре. Тайл может представлять собой прямоугольную область кадра, которая должна иметь возможность декодироваться и кодироваться независимо, хотя по-прежнему может применяться контурная фильтрация по краям тайлов.[0375] A tile is a rectangular area of coding tree blocks in a particular column of tiles and a particular row of tiles in a frame. A tile can be a rectangular area of the frame that should be able to be decoded and encoded independently, although edge filtering can still be applied at the edges of the tiles.

[0376] Блок представляет собой массив MXN (M столбцов на N строк) выборок или массив MXN коэффициентов преобразования. Блок может представлять собой квадратную или прямоугольную область пикселов, включающую в себя одну матрицу сигналов яркости и две матрицы сигналов цветности.[0376] The block is an MXN array of (M columns by N rows) samples or an MXN array of transform coefficients. A block may be a square or rectangular area of pixels including one luma matrix and two chroma matrices.

[0377] Единица дерева кодирования (CTU) может представлять собой блок дерева кодирования выборок сигнала яркости кадра, который имеет три массива выборок, или два соответствующих блока дерева кодирования выборок сигнала цветности. Альтернативно, CTU может представлять собой блок дерева кодирования выборок одного из монохромного кадра и кадра, который кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для того, чтобы кодировать выборки.[0377] A coding tree unit (CTU) may be a frame luma sample coding tree block that has three sample arrays, or two corresponding chrominance sample coding tree blocks. Alternatively, the CTU may be a sample encoding tree block of one of a monochrome frame and a frame that is encoded using three separate color planes and syntax structures used to encode the samples.

[0378] Суперблок может представлять собой квадратный блок в 64×64 пикселов, который состоит из или 1 или 2 блоков информации режима или рекурсивно сегментируется на четыре блока 32×32, которые сами дополнительно могут сегментироваться.[0378] A superblock may be a 64x64 pixel square block that consists of either 1 or 2 mode information blocks or is recursively segmented into four 32x32 blocks, which themselves can be further segmented.

[0379] Описание структуры BDOF(BIO)-процесса [0379] Description of the BDOF(BIO) process structure

Структура BDOF(BIO)-процесса описывается снова со ссылкой на фиг. 38, 47 и 48.The structure of the BDOF(BIO) process is described again with reference to FIG. 38, 47 and 48.

[0380] Фиг. 47 является блок-схемой последовательности операций способа, указывающей один пример внешнего прогнозирования согласно BIO. Помимо этого, фиг. 48 является схемой, иллюстрирующей один пример функциональной конфигурации модуля 126 внешнего прогнозирования, который выполняет внешнее прогнозирование согласно BIO.[0380] FIG. 47 is a flowchart indicating one example of external prediction according to BIO. In addition, FIG. 48 is a diagram illustrating one example of a functional configuration of the external prediction unit 126 that performs external prediction according to the BIO.

[0381] Как проиллюстрировано на фиг. 48, модуль 126 внешнего прогнозирования включает в себя, например, запоминающее устройство 126a, модуль 126b извлечения интерполированных изображений, модуль 126c извлечения градиентных изображений, модуль 126d извлечения оптических потоков, модуль 126e извлечения значений коррекции и корректор 126f прогнозных изображений. Следует отметить, что запоминающее устройство 126a может представлять собой запоминающее устройство 122 кадров.[0381] As illustrated in FIG. 48, the external prediction unit 126 includes, for example, a memory 126a, an interpolated image extracting unit 126b, a gradient image extracting unit 126c, an optical flow extracting unit 126d, a correction value extracting unit 126e, and a prediction image corrector 126f. It should be noted that the memory 126a may be a frame memory 122.

[0382] Модуль 126 внешнего прогнозирования извлекает два вектора (M0, M1) движения с использованием двух опорных кадров (Ref0, Ref1), отличающихся от кадра (Cur Pic), включающего в себя текущий блок. Модуль 126 внешнего прогнозирования затем извлекает прогнозное изображение для текущего блока с использованием двух векторов (M0, M1) движения (этап Sy_1). Следует отметить, что вектор M0 движения представляет собой вектор (MVx0, MVy0) движения, соответствующий опорному кадру Ref0, и вектор M1 движения представляет собой вектор (MVx1, MVy1) движения, соответствующий опорному кадру Ref0.[0382] The external prediction unit 126 extracts two motion vectors (M0, M1) using two reference frames (Ref0, Ref1) different from the frame (Cur Pic) including the current block. The external prediction unit 126 then extracts the prediction image for the current block using two motion vectors (M0, M1) (step Sy_1). It should be noted that the motion vector M0 is a motion vector (MVx0, MVy0) corresponding to the reference frame Ref0, and the motion vector M1 is a motion vector (MVx1, MVy1) corresponding to the reference frame Ref0.

[0383] Затем, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I0 для текущего блока с использованием вектора M0 движения и опорного кадра L0 со ссылкой на запоминающее устройство 126a. Помимо этого, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I1 для текущего блока с использованием вектора M1 движения и опорного кадра L1 со ссылкой на запоминающее устройство 126a (этап Sy_2). Здесь, интерполированное изображение I0 представляет собой изображение, включенное в опорный кадр Ref0, и которое должно извлекаться для текущего блока, и интерполированное изображение I1 представляет собой изображение, включенное в опорный кадр Ref0, и которое должно извлекаться для текущего блока. Каждое из интерполированного изображения I0 и интерполированного изображения I1 может иметь размер, идентичный размеру текущего блока. Альтернативно, каждое из интерполированного изображения I0 и интерполированного изображения I1 может представлять собой изображение, большее текущего блока, чтобы надлежащим образом извлекать градиентное изображение, которое описывается ниже. Кроме того, интерполированное изображение I0 и интерполированное изображение I1 могут включать в себя векторы (M0, M1) движения, опорные кадры (L0, L1) и прогнозное изображение, извлекаемые посредством применения фильтра для компенсации движения.[0383] Next, the interpolated image extracting unit 126b extracts the interpolated image I 0 for the current block using the motion vector M0 and the reference frame L0 with reference to the storage device 126a. In addition, the interpolated image extracting unit 126b extracts the interpolated image I 1 for the current block using the motion vector M1 and the reference frame L1 with reference to the storage device 126a (step Sy_2). Here, the interpolated image I 0 is an image included in the reference frame Ref0 and is to be extracted for the current block, and the interpolated image I 1 is an image included in the reference frame Ref0 and is to be extracted for the current block. Each of the interpolated image I 0 and the interpolated image I 1 may have a size identical to the size of the current block. Alternatively, each of the interpolated image I 0 and the interpolated image I 1 may be an image larger than the current block to properly extract the gradient image, which is described below. In addition, the interpolated image I 0 and the interpolated image I 1 may include motion vectors (M0, M1), reference frames (L0, L1), and a prediction image extracted by applying a motion compensation filter.

[0384] Помимо этого, модуль 126c извлечения градиентных изображений извлекает градиентные изображения (Ix 0, Ix 1, Iy 0, Iy 1) текущего блока из интерполированного изображения I0 и интерполированного изображения I1 (этап Sy_3). Следует отметить, что градиентные изображения в горизонтальном направлении представляют собой (Ix 0, Ix 1), и градиентные изображения в вертикальном направлении представляют собой (Iy 0, Iy 1). Модуль 126c извлечения градиентных изображений может извлекать градиентные изображения, например, посредством применения градиентного фильтра к интерполированным изображениям. Градиентные изображения могут представлять собой градиентные изображения, каждое из которых указывает величину пространственного изменения пиксельного значения вдоль горизонтального направления или вертикального направления.[0384] In addition, the gradient image extracting unit 126c extracts the gradient images (I x 0 , I x 1 , I y 0 , I y 1 ) of the current block from the interpolated image I 0 and the interpolated image I 1 (step Sy_3). It should be noted that the gradient images in the horizontal direction are (I x 0 , I x 1 ), and the gradient images in the vertical direction are (I y 0 , I y 1 ). The gradient image extraction module 126c may extract gradient images, for example, by applying a gradient filter to the interpolated images. The gradient images may be gradient images, each of which indicates the amount of spatial variation of a pixel value along a horizontal direction or a vertical direction.

[0385] Затем, модуль 126d извлечения оптических потоков извлекает, для каждого субблока текущего блока, оптический поток (vx, vy), который представляет собой вышеописанный вектор скорости, с использованием интерполированных изображений (I0, I1) и градиентных изображений (Ix 0, Ix 1, Iy 0, Iy 1) (этап Sy_4). Оптический поток представляет собой коэффициент для коррекции величины пространственного пиксельного перемещения и может называться "локальным оцененным значением движения", "скорректированным вектором движения" или "скорректированным весовым вектором". В качестве одного примера, субблок может представлять собой пиксельную суб-CU 4×4. Следует отметить, что оптический поток может извлекаться не в единицах субблоков, а в других единицах, например, в единицах пиксела.[0385] Next, the optical flow extractor 126d extracts, for each sub-block of the current block, the optical flow (vx, vy), which is the above-described velocity vector, using the interpolated images (I 0 , I 1 ) and gradient images (I x 0 , I x 1 , I y 0 , I y 1 ) (stage Sy_4). Optical flow is a coefficient for correcting the amount of spatial pixel movement and may be called a "local estimated motion value", "corrected motion vector" or "corrected weight vector". As one example, the subunit may be a 4x4 pixel sub-CU. It should be noted that the optical flow may be extracted in units other than subblock units, such as pixel units.

[0386] Затем, модуль 126 внешнего прогнозирования корректирует прогнозное изображение для текущего блока с использованием оптического потока (vx, vy). Например, модуль 126e извлечения значений коррекции извлекает значение коррекции для значения пиксела, включенного в текущий блок, с использованием оптического потока (vx, vy) (этап Sy_5). Корректор 126f прогнозных изображений затем может корректировать прогнозное изображение для текущего блока с использованием значения коррекции (этап Sy_6). Следует отметить, что значение коррекции может извлекаться в единицах пиксела либо может извлекаться в единицах множества пикселов или в единицах субблоков.[0386] Next, the external prediction module 126 corrects the prediction image for the current block using the optical flow (vx, vy). For example, the correction value extracting unit 126e extracts a correction value for a pixel value included in the current block using optical flow (vx, vy) (step Sy_5). The prediction image corrector 126f can then correct the prediction image for the current block using the correction value (step Sy_6). It should be noted that the correction value may be retrieved in units of a pixel, or may be retrieved in units of a plurality of pixels or in units of sub-blocks.

[0387] Следует отметить, что поток BIO-процесса не ограничен процессом, раскрытым на фиг. 47. Только часть процессов, раскрытая на фиг. 47, может выполняться, либо другой процесс может добавляться или использоваться в качестве замены, либо процессы могут выполняться в другом порядке обработки.[0387] It should be noted that the BIO process flow is not limited to the process disclosed in FIG. 47. Only part of the processes disclosed in FIG. 47 may be executed, or another process may be added or used as a replacement, or the processes may be executed in a different processing order.

[0388] Например, BDOF(BIO) может задаваться как процесс формирования скорректированного прогнозного изображения с использованием градиента опорного блока. Альтернативно, BDOF может задаваться как процесс формирования прогнозного изображения с использованием градиентов двух опорных блоков. Альтернативно, BDOF может задаваться как процесс формирования прогнозного изображения с использованием градиента в режиме, отличающемся от аффинного режима. Альтернативно, BDOF может задаваться как процесс оптического потока в режиме, отличающемся от аффинного режима. Здесь, градиент означает пространственный градиент пиксельного значения.[0388] For example, BDOF(BIO) may be defined as a process for generating a corrected prediction image using the gradient of a reference block. Alternatively, BDOF can be defined as a process for generating a prediction image using the gradients of two reference blocks. Alternatively, BDOF may be defined as a process for generating a predictive image using a gradient in a mode other than an affine mode. Alternatively, BDOF may be specified as an optical flow process in a mode other than the affine mode. Here, gradient means the spatial gradient of a pixel value.

[0389] Первый конкретный пример BIO [0389] First concrete example of BIO

Далее описывается первый конкретный пример процесса декодирования на основе BIO со ссылкой на фиг. 49, 50 и 51. Например, декодер 200 вычисляет BIO-параметр из двух опорных блоков, которые подвергаются компенсации движения, и декодирует текущий блок с использованием вычисленного BIO-параметра. BIO-параметр представляет собой параметр, соответствующий оптическому потоку, описанному выше. BIO-параметр также называться "локальным оцененным значением движения", "скорректированным вектором движения", "скорректированным MV-значением", "скорректированным взвешенным вектором движения" или "значением BIO-коррекции".Next, a first specific example of a BIO-based decoding process will be described with reference to FIG. 49, 50 and 51. For example, decoder 200 calculates a BIO parameter from two reference blocks that are subject to motion compensation, and decodes the current block using the calculated BIO parameter. The BIO parameter is a parameter corresponding to the optical flow described above. The BIO parameter is also referred to as "local estimated motion value", "adjusted motion vector", "adjusted MV value", "adjusted weighted motion vector" or "BIO correction value".

[0390] Фиг. 49 является блок-схемой последовательности операций способа, указывающей первый конкретный пример процесса декодирования на основе BIO. Фиг. 50 является концептуальной схемой, иллюстрирующей пример вычисления значений горизонтального градиента, которые представляют собой значения градиентов в горизонтальном направлении. Фиг. 51 является концептуальной схемой, иллюстрирующей пример вычисления значений вертикального градиента, которые представляют собой значения градиентов в вертикальном направлении.[0390] FIG. 49 is a flowchart indicating a first specific example of a BIO-based decoding process. Fig. 50 is a conceptual diagram illustrating an example of calculating horizontal gradient values that represent gradient values in the horizontal direction. Fig. 51 is a conceptual diagram illustrating an example of calculating vertical gradient values that represent gradient values in the vertical direction.

[0391] Во-первых, декодер 200 вычисляет первую сумму для текущего блока, с использованием значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока (S1001). Текущий блок может представлять собой субблок текущей единицы кодирования (текущая CU), как проиллюстрировано на фиг. 50 и 51.[0391] First, the decoder 200 calculates a first sum for the current block using the horizontal gradient value of the first reference block and the horizontal gradient value of the second reference block (S1001). The current block may be a sub-block of the current coding unit (current CU), as illustrated in FIG. 50 and 51.

[0392] Первый опорный блок представляет собой блок, на который необходимо ссылаться при декодировании текущего блока, и задается в опорном кадре L0 посредством текущего блока или первого вектора движения текущей CU. Второй опорный блок представляет собой блок, на который необходимо ссылаться при декодировании текущего блока, и задается в опорном кадре L1 посредством текущего блока или второго вектора движения текущей CU.[0392] The first reference block is a block to be referenced when decoding the current block, and is specified in the L0 reference frame by the current block or the first motion vector of the current CU. The second reference block is a block to be referenced when decoding the current block, and is specified in the L1 reference frame by the current block or the second motion vector of the current CU.

[0393] По существу, опорный кадр L0 и опорный кадр L1 представляют собой два различных опорных кадра, и первый опорный блок и второй опорный блок представляют собой два различных опорных блока. Помимо этого, здесь, первый опорный блок и второй опорный блок, используемые здесь, регулируются, соответственно, с субпиксельной точностью с использованием фильтра для компенсации движения и имеют размер, идентичный размеру текущего блока.[0393] Essentially, the L0 reference frame and the L1 reference frame are two different reference frames, and the first reference block and the second reference block are two different reference blocks. In addition, here, the first reference block and the second reference block used here are adjusted, respectively, with sub-pixel precision using a motion compensation filter and have a size identical to the size of the current block.

[0394] Когда текущий блок представляет собой субблок в текущей единице кодирования, каждый из первого опорного блока и второго опорного блока может представлять собой субблок опорного блока в текущей единице кодирования.[0394] When the current block is a sub-block in the current coding unit, each of the first reference block and the second reference block may be a sub-block of the reference block in the current coding unit.

[0395] Другими словами, множество пиксельных значений в опорном кадре L0 на фиг. 50 и 51 могут представлять собой множество пиксельных значений в блоке, заданном в качестве опорного блока в текущей единице кодирования, для опорного кадра L0. Аналогично, множество пиксельных значений в опорном кадре L1 на фиг. 50 и 51 могут представлять собой множество пиксельных значений в блоке, заданном в качестве опорного блока в текущей единице кодирования, для опорного кадра L1.[0395] In other words, the plurality of pixel values in the reference frame L0 in FIG. 50 and 51 may be a plurality of pixel values in a block specified as a reference block in the current encoding unit for a reference frame L0. Similarly, the plurality of pixel values in the reference frame L1 in FIG. 50 and 51 may be a plurality of pixel values in a block specified as a reference block in the current coding unit for the L1 reference frame.

[0396] Декодер 200 вычисляет первую сумму с использованием значения горизонтального градиента вышеуказанного первого опорного блока и значения горизонтального градиента вышеуказанного второго опорного блока. Декодер 200 может вычислять первую сумму с использованием не только значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока, но также и значения горизонтального градиента соседней зоны, которая граничит с первым опорным блоком, и значения горизонтального градиента соседней зоны, которая граничит со вторым опорным блоком. Выражения (3.1) и (3.2), указываемые ниже, указывают пример способа для процесса вычисления второй суммы.[0396] The decoder 200 calculates the first sum using the horizontal gradient value of the above first reference block and the horizontal gradient value of the above second reference block. Decoder 200 may calculate the first sum using not only the horizontal gradient value of the first reference block and the horizontal gradient value of the second reference block, but also the horizontal gradient value of the adjacent zone that borders the first reference block and the horizontal gradient value of the adjacent zone that borders second support block. Expressions (3.1) and (3.2) below indicate an example of a method for the process of calculating the second amount.

[0397] Математическое выражение 4[0397] Mathematical expression 4

[0398] Математическое выражение 5[0398] Mathematical expression 5

[0399] Здесь, x обозначает умножение, и+обозначает суммирование. Помимо этого, знак обозначает знак "плюс" или "минус". В частности, знак обозначает a в качестве значения со знаком "плюс" и -1 в качестве значения со знаком "минус". В частности, знак обозначает, например, следующее.[0399] Here, x denotes multiplication, and + denotes addition. In addition, the sign indicates a plus or minus sign. Specifically, the sign denotes a as a plus value and -1 as a minus value. In particular, the sign means, for example, the following.

[0400] Математическое выражение 6[0400] Mathematical expression 6

[0401] Как результат, sign (Gx[i, j]) x Gx[i, j] становится Gx[i, j] без изменения знака, когда Gx[i, j] представляет собой значение со знаком "плюс", и становится -Gx[i, j], когда Gx[i, j] представляет собой значение со знаком "минус". Таким образом, вычисление является эквивалентным извлечению абсолютного значения (abs) Gx[i, j]).[0401] As a result, sign (G x [i, j]) x G x [i, j] becomes G x [i, j] without changing sign when G x [i, j] is a signed value "plus" and becomes -G x [i, j] when G x [i, j] is a value with a minus sign. Thus, the calculation is equivalent to retrieving the absolute value (abs) of G x [i, j]).

[0402] В выражении (3.1), Ix 0 обозначает значение горизонтального градиента в первом опорном блоке в опорном кадре L0, и Ix 1 обозначает значение горизонтального градиента во втором опорном блоке в опорном кадре L1.[0402] In expression (3.1), I x 0 denotes the horizontal gradient value in the first reference block in the L0 reference frame, and I x 1 denotes the horizontal gradient value in the second reference block in the L1 reference frame.

[0403] Пример фильтра горизонтального градиента для получения значений горизонтального градиента представляет собой трехотводный фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1]. Значение горизонтального градиента в первом опорном блоке вычисляется посредством применения фильтра горизонтального градиента ко множеству опорных пикселов в первом опорном блоке. Значение горизонтального градиента во втором опорном блоке вычисляется посредством применения фильтра горизонтального градиента ко множеству опорных пикселов во втором опорном блоке.[0403] An example of a horizontal gradient filter for obtaining horizontal gradient values is a three-tap filter having a set of filter coefficients [-1, 0, 1]. The horizontal gradient value in the first reference block is calculated by applying a horizontal gradient filter to a plurality of reference pixels in the first reference block. The horizontal gradient value in the second reference block is calculated by applying a horizontal gradient filter to a plurality of reference pixels in the second reference block.

[0404] В примере, проиллюстрированном на фиг. 50, значение Ix 0 горизонтального градиента пиксела, расположенного в позиции [3, 2] в первом опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[2, 3, 5], и результирующее значение равно 3. Значение Ix 1 горизонтального градиента пиксела, расположенного в позиции [3, 2] во втором опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[5, 3, 2], и результирующее значение равно -2. Следует отметить, что [a, b, c] обозначает матрицу, имеющую три строки и один столбец.[0404] In the example illustrated in FIG. 50, the horizontal gradient value I x 0 of a pixel located at position [3, 2] in the first reference block is calculated as the matrix product of [-1, 0, 1] T [2, 3, 5], and the resulting value is 3. The horizontal gradient value I x 1 of the pixel located at position [3, 2] in the second reference block is calculated as the matrix product [-1, 0, 1] T [5, 3, 2], and the resulting value is -2. It should be noted that [a, b, c] denotes a matrix having three rows and one column.

[0405] В выражении (3.2), sGx обозначает первую сумму и вычисляется как сумма абсолютных значений Gx для окна, обозначаемого в качестве Ω. Размер окна Ω может быть идентичным размеру текущего блока. Альтернативно, размер окна Ω может быть больше размера текущего блока. Во втором случае, значение Gx в позиции, граничащей с текущим блоком, включается в процесс вычисления первой суммы.[0405] In expression (3.2), sG x denotes the first sum and is calculated as the sum of the absolute values of G x for the window, denoted as Ω. The window size Ω can be identical to the size of the current block. Alternatively, the window size Ω may be larger than the current block size. In the second case, the value of G x at the position adjacent to the current block is included in the process of calculating the first sum.

[0406] Как и в случае первой суммы, которая представляет собой сумму значений горизонтального градиента, декодер 200 вычисляет вторую сумму для текущего блока, с использованием значения вертикального градиента первого опорного блока и значения вертикального градиента второго опорного блока (S1002). Выражения (3.3) и (3.4), указываемые ниже, указывают пример способа для процесса вычисления второй суммы.[0406] As with the first sum, which is the sum of the horizontal gradient values, the decoder 200 calculates a second sum for the current block using the vertical gradient value of the first reference block and the vertical gradient value of the second reference block (S1002). Expressions (3.3) and (3.4) below indicate an example of a method for the process of calculating the second amount.

[0407] Математическое выражение 7[0407] Mathematical expression 7

[0408] Математическое выражение 8[0408] Mathematical expression 8

[0409] В выражении (3.3), Iy 0 обозначает значение вертикального градиента в первом опорном блоке в опорном кадре L0, и Iy 1 обозначает значение вертикального градиента во втором опорном блоке в опорном кадре L1.[0409] In expression (3.3), I y 0 denotes the vertical gradient value in the first reference block in the L0 reference frame, and I y 1 denotes the vertical gradient value in the second reference block in the L1 reference frame.

[0410] Пример фильтра вертикального градиента для получения значений вертикального градиента представляет собой трехотводный фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1]. Значение вертикального градиента в первом опорном блоке вычисляется посредством применения фильтра вертикального градиента ко множеству опорных пикселов в первом опорном блоке. Значение вертикального градиента во втором опорном блоке вычисляется посредством применения фильтра вертикального градиента ко множеству опорных пикселов во втором опорном блоке.[0410] An example of a vertical gradient filter for obtaining vertical gradient values is a three-tap filter having a set of filter coefficients [-1, 0, 1]. The vertical gradient value in the first reference block is calculated by applying a vertical gradient filter to a plurality of reference pixels in the first reference block. The vertical gradient value in the second reference block is calculated by applying a vertical gradient filter to a plurality of reference pixels in the second reference block.

[0411] В примере, проиллюстрированном на фиг. 51, значение Iy 0 вертикального градиента пиксела, расположенного в позиции [3, 2] в первом опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[2, 3, 5], и результирующее значение равно 3. Значение Iy 1 вертикального градиента пиксела, расположенного в позиции [3, 2] во втором опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[5, 3, 2], и результирующее значение равно -2.[0411] In the example illustrated in FIG. 51, the vertical gradient value I y 0 of a pixel located at position [3, 2] in the first reference block is calculated as the matrix product of [-1, 0, 1] T [2, 3, 5], and the resulting value is 3. The vertical gradient value I y 1 of the pixel located at position [3, 2] in the second reference block is calculated as the matrix product [-1, 0, 1] T [5, 3, 2], and the resulting value is -2.

[0412] В выражении (3.4), sGy обозначает вторую сумму и вычисляется как сумма абсолютных значений Gy для окна, обозначаемого в качестве Ω. Когда размер окна Ω больше значения текущего блока, значение, Gy в позиции, граничащей с текущим блоком, включается в процесс вычисления второй суммы.[0412] In expression (3.4), sG y denotes the second sum and is calculated as the sum of the absolute values of G y for the window denoted as Ω. When the window size Ω is larger than the value of the current block, the value G y at the position adjacent to the current block is included in the process of calculating the second sum.

[0413] Затем, декодер 200 проводит оценку в отношении того, больше или нет первая сумма второй суммы (S1003). При проведении такой оценки, что первая сумма больше второй суммы ("Да" на S1003), декодер 200 определяет BIO-параметр для текущего блока вообще без использования значения вертикального градиента (S1004). Выражения (3.5)-(3.9) указывают пример процесса вычисления для определения BIO-параметра в этом случае. Согласно этим выражениям, BIO-параметр, обозначаемый в качестве u, вычисляется с использованием значений горизонтального градиента.[0413] Next, the decoder 200 makes a judgment as to whether or not the first amount is greater than the second amount (S1003). When making such a judgment that the first sum is greater than the second sum ("Yes" in S1003), the decoder 200 determines the BIO parameter for the current block without using the vertical gradient value at all (S1004). Expressions (3.5)-(3.9) indicate an example of the calculation process for determining the BIO parameter in this case. According to these expressions, the BIO parameter, denoted by u, is calculated using the horizontal gradient values.

[0414] Математическое выражение 9[0414] Mathematical expression 9

[0415] Математическое выражение 10[0415] Mathematical expression 10

[0416] Математическое выражение 11[0416] Mathematical expression 11

[0417] Математическое выражение 12[0417] Mathematical expression 12

[0418] Математическое выражение 13[0418] Mathematical expression 13

[0419] Здесь, "-" обозначает вычитание, и ">>" обозначает вычисление сдвига. Например, "a>>b" означает то, что a сдвигается вправо на b битов. Помимо этого, Bits, BIOShift и Clip, соответственно, указывают следующее. Следует отметить, что в нижеприведенном описании, ceil и floor обозначают десятичное округление в большую сторону и десятичное округление в меньшую сторону, соответственно.[0419] Here, "-" denotes subtraction, and ">>" denotes shift calculation. For example, "a>>b" means that a is shifted to the right by b bits. In addition, Bits, BIOShift and Clip respectively indicate the following. It should be noted that in the description below, ceil and floor denote decimal rounding up and decimal rounding down, respectively.

[0420] Математическое выражение 14[0420] Mathematical expression 14

[0421] Согласно выражению (3.5), sGxdI вычисляется как сумма произведений разностей между I0i, j и I1i, j и sign (Gx[i, j]) для окна Ω. Здесь, I0i, j обозначает пиксельное значение в позиции [i, j] в первом опорном блоке в опорном кадре L0, и I1i, j обозначает пиксельное значение в позиции [i, j] во втором опорном блоке в опорном кадре L1. I0i, j и I1i, j могут представляться просто в качестве I0 и I1. BIO-параметр u вычисляется с использованием sGxdI и sGx согласно выражениям (3.6)-(3.9).[0421] According to expression (3.5), sG x dI is calculated as the sum of the products of the differences between I0 i, j and I1 i, j and sign (Gx[i, j]) for the window Ω. Here, I0 i, j denotes the pixel value at position [i, j] in the first reference block in the reference frame L0, and I1 i, j denotes the pixel value at position [i, j] in the second reference block in the reference frame L1. I0 i, j and I1 i, j can be represented simply as I 0 and I 1 . The BIO parameter u is calculated using sG x dI and sG x according to expressions (3.6)-(3.9).

[0422] При проведении такой оценки, что первая сумма не превышает вторую сумму ("Нет" на S1003), декодер 200 определяет BIO-параметр u для текущего блока вообще без использования значения горизонтального градиента (S1005). Выражения (3.10)-(3.14) указывают пример процесса вычисления для определения BIO-параметра u в этом случае. Выражения (3.10)-(3.14) являются по существу идентичными выражениями (3.5)-(3.9) за исключением того, что BIO-параметр u вычисляется с использованием значений вертикального градиента в выражении (3.10)-(3.14).[0422] When making such an assessment that the first sum does not exceed the second sum ("No" in S1003), the decoder 200 determines the BIO parameter u for the current block without using the horizontal gradient value at all (S1005). Expressions (3.10)-(3.14) indicate an example of the calculation process for determining the BIO parameter u in this case. Expressions (3.10)-(3.14) are essentially identical to expressions (3.5)-(3.9) except that the BIO parameter u is calculated using the vertical gradient values in expression (3.10)-(3.14).

[0423] Математическое выражение 15[0423] Mathematical expression 15

[0424] Математическое выражение 16[0424] Mathematical expression 16

[0425] Математическое выражение 17[0425] Mathematical expression 17

[0426] Математическое выражение 18[0426] Mathematical expression 18

[0427] Математическое выражение 19[0427] Mathematical expression 19

[0428] Согласно выражению (3.10), sGydI вычисляется как сумма произведений разностей между I0i, j и I1i, j и sign (Gy[i, j]) для окна Ω. BIO-параметр u вычисляется с использованием sGydI и sGy согласно выражениям (3.11)-(3.14).[0428] According to expression (3.10), sG y dI is calculated as the sum of the products of the differences between I0 i, j and I1 i, j and sign (G y [i, j]) for the window Ω. The BIO parameter u is calculated using sG y dI and sG y according to expressions (3.11)-(3.14).

[0429] Декодер 200 затем декодирует текущий блок с использованием BIO-параметра u (S1006). В частности, декодер 200 формирует прогнозную выборку с использованием BIO-параметра u и декодирует текущий блок с использованием прогнозной выборки. Выражения (3.15) и (3.16) указывают пример процесса вычисления для формирования прогнозной выборки.[0429] The decoder 200 then decodes the current block using the BIO parameter u (S1006). Specifically, the decoder 200 generates a prediction sample using the BIO parameter u and decodes the current block using the prediction sample. Expressions (3.15) and (3.16) indicate an example of the calculation process for generating a predictive sample.

[0430] Математическое выражение 20[0430] Mathematical expression 20

[0431] Математическое выражение 21[0431] Mathematical expression 21

[0432] Когда определяется то, что первая сумма больше второй суммы ("Да" на S1003), выражение (3.15) используется. Когда определяется то, что первая сумма не превышает вторую сумму ("Нет" на S1003), выражение (3.16) используется.[0432] When it is determined that the first amount is greater than the second amount (“Yes” at S1003), expression (3.15) is used. When it is determined that the first amount does not exceed the second amount ("No" in S1003), expression (3.16) is used.

[0433] Декодер 200 может повторять процессы (S1001-S1006) для всех субблоков в каждой из текущих CU.[0433] The decoder 200 may repeat the processes (S1001-S1006) for all sub-blocks in each of the current CUs.

[0434] Декодер 200 допускает повышение точности прогнозной выборки в текущем блоке с использованием BIO. Декодер 200 дополнительно допускает уменьшение увеличения объема вычислений, поскольку декодер 200 использует только одно из значений горизонтального градиента и значений вертикального градиента при вычислении BIO-параметра.[0434] Decoder 200 allows the accuracy of the predictive sample in the current block to be improved using BIO. The decoder 200 further allows for a reduction in computational increase because the decoder 200 uses only one of the horizontal gradient values and the vertical gradient values when calculating the BIO parameter.

[0435] Вышеприведенные выражения представляют собой примеры. Выражения для вычисления BIO-параметра не ограничены вышеприведенными выражениями. Например, знак "плюс" или "минус", включенный в каждое выражение, может изменяться, или выражение, эквивалентное любому из вышеприведенных выражений, может использоваться. В частности, в качестве выражения, соответствующего выражениям (3.1) и (3.2), описанным выше, следующее выражение (4.1) может использоваться.[0435] The above expressions are examples. Expressions for calculating the BIO parameter are not limited to the above expressions. For example, the plus or minus sign included in each expression may vary, or an expression equivalent to any of the above expressions may be used. In particular, the following expression (4.1) can be used as an expression corresponding to expressions (3.1) and (3.2) described above.

[0436] Математическое выражение 22[0436] Mathematical expression 22

[0437] Помимо этого, например, в качестве выражения, соответствующего выражению (3.5), описанному выше, следующее выражение (4.2) может использоваться.[0437] In addition, for example, as an expression corresponding to expression (3.5) described above, the following expression (4.2) can be used.

[0438] Математическое выражение 23[0438] Mathematical expression 23

[0439] Например, в качестве выражения, соответствующего выражению (3.15), описанному выше, следующее выражение (4.3) может использоваться.[0439] For example, as an expression corresponding to expression (3.15) described above, the following expression (4.3) can be used.

[0440] Математическое выражение 24[0440] Mathematical expression 24

[0441] Выражения (3.6)-(3.9) фактически указывают деление и в силу этого могут представляться как выражение (4.4).[0441] Expressions (3.6)-(3.9) actually indicate division and as such can be represented as expression (4.4).

[0442] Математическое выражение 25[0442] Mathematical expression 25

[0443] Выражения (4.1)-(4.4) являются практически идентичными выражениям (3.1), (3.2), (3.5)-(3.9) и (3.15), описанным выше.[0443] Expressions (4.1)-(4.4) are practically identical to expressions (3.1), (3.2), (3.5)-(3.9) and (3.15) described above.

[0444] Аналогично, в частности, в качестве выражения, соответствующего выражениям (3,3) и (3.4), описанным выше, следующее выражение (4.5) может использоваться.[0444] Similarly, in particular, as an expression corresponding to expressions (3,3) and (3.4) described above, the following expression (4.5) can be used.

[0445] Математическое выражение 26[0445] Mathematical expression 26

[0446] Например, в качестве выражения, соответствующего выражению (3.10), описанному выше, следующее выражение (4.6) может использоваться.[0446] For example, as an expression corresponding to expression (3.10) described above, the following expression (4.6) can be used.

[0447] Математическое выражение 27[0447] Mathematical expression 27

[0448] Например, в качестве выражения, соответствующего выражению (3.16), описанному выше, следующее выражение (4.7) может использоваться.[0448] For example, as an expression corresponding to expression (3.16) described above, the following expression (4.7) can be used.

[0449] Математическое выражение 28[0449] Mathematical expression 28

[0450] Выражения (3.11)-(3.14) фактически указывают деление и в силу этого могут представляться как выражение (4.8).[0450] Expressions (3.11)-(3.14) actually indicate division and as such can be represented as expression (4.8).

[0451] Математическое выражение 29[0451] Mathematical expression 29

[0452] Выражения (4.5)-(4.8) являются практически идентичными выражениям (3.3), (3.4), (3.10)-(3.14) и (3.16), описанным выше.[0452] Expressions (4.5)-(4.8) are practically identical to expressions (3.3), (3.4), (3.10)-(3.14) and (3.16) described above.

[0453] В вышеуказанной последовательности операций, значение горизонтального градиента или значение вертикального градиента используется на основе сравнения между первой суммой и второй суммой. Тем не менее, последовательности операций процесса декодирования не ограничены последовательностью операций, описанной выше. То, следует использовать значение горизонтального градиента или значение вертикального градиента, может определяться заранее посредством другого параметра кодирования и т.п. BIO-параметр может извлекаться с использованием значений горизонтального градиента, и BIO-параметр может извлекаться с использованием значений вертикального градиента без сравнения первой суммы и второй суммы. Альтернативно, только одна из первой суммы и второй суммы может вычисляться.[0453] In the above process, a horizontal gradient value or a vertical gradient value is used based on a comparison between the first sum and the second sum. However, the flowcharts of the decoding process are not limited to the flowcharts described above. Whether a horizontal gradient value or a vertical gradient value should be used may be determined in advance by another encoding parameter or the like. The BIO parameter may be extracted using the horizontal gradient values, and the BIO parameter may be extracted using the vertical gradient values, without comparing the first sum and the second sum. Alternatively, only one of the first sum and the second sum may be calculated.

[0454] Даже без сравнения первой суммы и второй суммы, декодер 200 допускает уменьшение существенного умножения, которое требует большого объема вычислений в вычислениях, выполняемых для соответствующих пиксельных позиций, и извлечение множества параметров для формирования прогнозного изображения с небольшим объемом вычислений. В частности, хотя знаки "плюс" или "минус" в выражениях (3.2), (3.4), (3.5), (3.10), (4.1), (4.2), (4.5), (4.6) и т.д. изменяются, существенное умножение не используется. Соответственно, число существенных умножений в BIO-обработке может значительно уменьшаться.[0454] Even without comparing the first sum and the second sum, the decoder 200 allows the reduction of significant multiplication, which requires a large amount of computation in the calculations performed on the corresponding pixel positions, and the extraction of multiple parameters to form a predictive image with a small amount of computation. In particular, although the plus or minus signs in expressions (3.2), (3.4), (3.5), (3.10), (4.1), (4.2), (4.5), (4.6), etc. change, no significant multiplication is used. Accordingly, the number of significant multiplications in BIO processing can be significantly reduced.

[0455] Другими словами, декодер 200 допускает вычисление sGx, sGxdI, sGy и sGydI с небольшим объемом вычислений. Соответственно, декодер 200 допускает уменьшение объема обработки при декодировании.[0455] In other words, decoder 200 allows the calculation of sG x , sG x dI, sG y and sG y dI with a small amount of computation. Accordingly, the decoder 200 allows for a reduction in decoding processing.

[0456] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0456] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0457] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0457] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with the first amount, the second amount, or the BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples.

[0458] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0458] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0459] Второй конкретный пример BIO [0459] Second specific example BIO

Далее описывается второй конкретный пример процесса декодирования на основе BIO. Например, аналогично первому конкретному примеру, декодер 200 вычисляет BIO-параметр из двух опорных блоков, которые подвергаются компенсации движения, и декодирует текущий блок с использованием вычисленного BIO-параметра.Next, a second specific example of a BIO-based decoding process is described. For example, similar to the first specific example, the decoder 200 calculates a BIO parameter from two reference blocks that are subject to motion compensation, and decodes the current block using the calculated BIO parameter.

[0460] В этом конкретном примере, прогнозная выборка для декодирования текущего блока формируется согласно выражениям (5.1)-(5.8), указываемым ниже.[0460] In this specific example, the prediction sample for decoding the current block is generated according to expressions (5.1)-(5.8) specified below.

[0461] Математическое выражение 30[0461] Mathematical expression 30

[0462] Математическое выражение 31[0462] Mathematical expression 31

[0463] Математическое выражение 32[0463] Mathematical expression 32

[0464] Математическое выражение 33[0464] Mathematical expression 33

[0465] Математическое выражение 34[0465] Mathematical expression 34

[0466] Математическое выражение 35[0466] Mathematical expression 35

[0467] Математическое выражение 36[0467] Mathematical expression 36

[0468] Математическое выражение 37[0468] Mathematical expression 37

[0469] S1 в выражении (5.1) в этом конкретном примере соответствует sGx в выражении (3.2) в первом конкретном примере. Помимо этого, S2 в выражении (5.2) в этом конкретном примере соответствует sGy в выражении (3.4) в первом конкретном примере. Помимо этого, S3 в выражении (5.3) в этом конкретном примере соответствует sGxdI в выражении (3.5) в первом конкретном примере. Помимо этого, S4 в выражении (5.4) в этом конкретном примере соответствует sGydI в выражении (3.10) в конкретном примере.[0469] S 1 in expression (5.1) in this specific example corresponds to sG x in expression (3.2) in the first specific example. In addition, S 2 in expression (5.2) in this specific example corresponds to sG y in expression (3.4) in the first specific example. In addition, S 3 in expression (5.3) in this specific example corresponds to sG x dI in expression (3.5) in the first specific example. In addition, S 4 in expression (5.4) in this particular example corresponds to sG y dI in expression (3.10) in this particular example.

[0470] Кроме того, vx и vy в выражениях (5.5)-(5.7) в этом конкретном примере соответствуют BIO-параметру и соответствуют u в выражениях (3.9) и (3.14) в первом конкретном примере.[0470] In addition, v x and v y in expressions (5.5)-(5.7) in this specific example correspond to the BIO parameter and correspond to u in expressions (3.9) and (3.14) in the first specific example.

[0471] В первом конкретном примере, изменение не вносится в знак "плюс" или "минус", и существенное умножение не выполняется при вычислении sGx, sGy, sGxdI и sGydI. В конкретном примере, существенное умножение выполняется при вычислении S1, S2, S3 и S4. Таким образом, хотя объем вычислений увеличивается, прогнозная выборка формируется с большей точностью. С другой стороны, объем вычислений уменьшается в первом конкретном примере.[0471] In the first specific example, no change is made to the plus or minus sign, and significant multiplication is not performed in the calculation of sG x , sG y , sG x dI and sG y dI . In the specific example, significant multiplication is performed in the calculation of S 1 , S 2 , S 3 and S 4 . Thus, although the amount of computation increases, the predictive sample is formed with greater accuracy. On the other hand, the amount of computation is reduced in the first case study.

[0472] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0472] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with the first amount, the second amount, or the BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples.

[0473] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0473] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0474] Третий конкретный пример BIO [0474] Third specific example BIO

Далее описывается третий конкретный пример процесса декодирования на основе BIO со ссылкой на фиг. 52. Например, аналогично первому конкретному примеру, декодер 200 вычисляет по меньшей мере один BIO-параметр из двух опорных блоков, которые подвергаются компенсации движения, и декодирует текущий блок с использованием по меньшей мере одного вычисленного BIO-параметра.Next, a third specific example of a BIO-based decoding process will be described with reference to FIG. 52. For example, similar to the first specific example, decoder 200 calculates at least one BIO parameter from two reference blocks that are subject to motion compensation, and decodes the current block using the at least one calculated BIO parameter.

[0475] Фиг. 52 является блок-схемой последовательности операций способа, указывающей третий конкретный пример процесса декодирования на основе BIO.[0475] FIG. 52 is a flowchart indicating a third specific example of a BIO-based decoding process.

[0476] Во-первых, декодер 200 вычисляет первую сумму для текущего блока, с использованием значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока (S2001). Процесс вычисления первых сумм (S2001) в конкретном примере может быть идентичным процессу вычисления первых сумм (S1001) в первом конкретном примере. В частности, декодер 200 вычисляет sGx в качестве первой суммы согласно выражениям (6.1) и (6.2), которые являются идентичными выражениям (3.1) и (3.2) в первом конкретном примере.[0476] First, the decoder 200 calculates a first sum for the current block using the horizontal gradient value of the first reference block and the horizontal gradient value of the second reference block (S2001). The first sum calculation process (S2001) in the specific example may be identical to the first sum calculation process (S1001) in the first specific example. Specifically, the decoder 200 calculates sG x as the first sum according to expressions (6.1) and (6.2), which are identical to expressions (3.1) and (3.2) in the first specific example.

[0477] Математическое выражение 38[0477] Mathematical expression 38

[0478] Математическое выражение 39[0478] Mathematical expression 39

[0479] Помимо этого, декодер 200 вычисляет вторую сумму для текущего блока, с использованием значения вертикального градиента первого опорного блока и значения вертикального градиента второго опорного блока (S2002). Процесс вычисления вторых сумм (S2002) в конкретном примере может быть идентичным процессу вычисления вторых сумм (S1002) в первом конкретном примере. В частности, декодер 200 вычисляет sGy в качестве второй суммы согласно выражениям (6.3) и (6.4), которые являются идентичными выражениям (3.3) и (3.4) в первом конкретном примере.[0479] In addition, the decoder 200 calculates a second sum for the current block using the vertical gradient value of the first reference block and the vertical gradient value of the second reference block (S2002). The second sum calculation process (S2002) in the specific example may be identical to the second sum calculation process (S1002) in the first specific example. Specifically, the decoder 200 calculates sG y as the second sum according to expressions (6.3) and (6.4), which are identical to expressions (3.3) and (3.4) in the first specific example.

[0480] Математическое выражение 40[0480] Mathematical expression 40

[0481] Математическое выражение 41[0481] Mathematical expression 41

[0482] Затем, декодер 200 проводит оценку в отношении того, удовлетворяется или нет по меньшей мере одно из следующих условий: первая сумма и вторая сумма больше первого значения; и первая сумма и вторая сумма меньше второго значения (S2003). Первое значение может быть больше второго значения, меньше второго значения или идентичным второму значению. Первое значение и второе значение могут представляться как первое пороговое значение и второе пороговое значение, соответственно.[0482] Next, the decoder 200 makes a judgment as to whether or not at least one of the following conditions is satisfied: the first sum and the second sum are greater than the first value; and both the first amount and the second amount are less than the second value (S2003). The first value may be greater than the second value, less than the second value, or identical to the second value. The first value and the second value may be represented as a first threshold value and a second threshold value, respectively.

[0483] Например, когда первое значение=100 и второе значение=100 удовлетворяется, результаты проведения оценки на основе первой суммы и второй суммы являются такими, как указано ниже.[0483] For example, when the first value=100 and the second value=100 are satisfied, the results of making an evaluation based on the first amount and the second amount are as follows.

[0484] Первая сумма=300 и вторая сумма=50: Результат проведения оценки представляет собой "ложь".[0484] First amount=300 and second amount=50: The evaluation result is "false".

Первая сумма=50 и вторая сумма=50: Результат проведения оценки представляет собой "истина".First Sum=50 and Second Sum=50: The result of the evaluation is true.

Первая сумма=300 и вторая сумма=300: Результат проведения оценки представляет собой "истина".First sum=300 and second sum=300: The result of the evaluation is "true".

Первая сумма=50 и вторая сумма=300: Результат проведения оценки представляет собой "ложь".First amount=50 and second amount=300: The evaluation result is "false".

[0485] Когда результат проведения оценки представляет собой "истина" ("Да" на S2003), декодер 200 определяет два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента (S2004). Выражения (6.5)-(6,8) указывают пример процесса вычисления для определения двух BIO-параметров в этом случае. Согласно этим выражениям, два BIO-параметра, обозначаемые в качестве u и v, вычисляются с использованием значений горизонтального градиента и значений вертикального градиента.[0485] When the evaluation result is true (Yes in S2003), the decoder 200 determines two BIO parameters for the current block using the horizontal gradient values and the vertical gradient values (S2004). Expressions (6.5)-(6.8) indicate an example of the calculation process for determining the two BIO parameters in this case. According to these expressions, two BIO parameters, denoted as u and v, are calculated using the horizontal gradient values and the vertical gradient values.

[0486] Математическое выражение 42[0486] Mathematical expression 42

[0487] Математическое выражение 43[0487] Mathematical expression 43

[0488] Математическое выражение 44[0488] Mathematical expression 44

[0489] Математическое выражение 45[0489] Mathematical expression 45

[0490] Выражения (6.5) и (6.6) являются идентичными выражениям (3.5) и (3.10) в первом конкретном примере, соответственно. BIO-параметр u извлекается с использованием sGxdI и sGx согласно выражению (6.7). BIO-параметр v вычисляется с использованием sGydI и sGy согласно выражению (6.8). BIO-параметры u и v могут вычисляться с использованием выражений (6.9) и (6.10), указываемых ниже, соответственно, вместо использования выражений (6.7) и (6.8), соответственно.[0490] Expressions (6.5) and (6.6) are identical to expressions (3.5) and (3.10) in the first case study, respectively. The BIO parameter u is extracted using sG x dI and sG x according to expression (6.7). The BIO parameter v is calculated using sG y dI and sG y according to expression (6.8). The BIO parameters u and v can be calculated using expressions (6.9) and (6.10) below, respectively, instead of using expressions (6.7) and (6.8), respectively.

[0491] Математическое выражение 46[0491] Mathematical expression 46

[0492] Математическое выражение 47[0492] Mathematical expression 47

[0493] Когда результат проведения оценки представляет собой "ложь" ("Нет" на S2003), декодер 200 определяет один BIO-параметр для текущего блока без использования либо значения горизонтального градиента, либо значения вертикального градиента (S2005). Пример процесса вычисления для определения одного BIO-параметра в этом случае указывается ниже.[0493] When the evaluation result is false (No in S2003), the decoder 200 determines one BIO parameter for the current block without using either the horizontal gradient value or the vertical gradient value (S2005). An example of the calculation process for determining one BIO parameter in this case is shown below.

[0494] Например, декодер 200 проводит оценку в отношении того, больше или нет первая сумма второй суммы. В случае если первая сумма больше второй суммы, декодер 200 вычисляет только "u" в качестве BIO-параметра согласно выражениям (6.5) и (6.7) (или (6.9)). Другими словами, в этом случае, декодер 200 определяет BIO-параметр для текущего блока без использования значений вертикального градиента.[0494] For example, decoder 200 makes a judgment as to whether or not the first amount is greater than the second amount. In case the first sum is greater than the second sum, the decoder 200 calculates only "u" as the BIO parameter according to expressions (6.5) and (6.7) (or (6.9)). In other words, in this case, the decoder 200 determines the BIO parameter for the current block without using the vertical gradient values.

[0495] В противоположном случае, в котором первая сумма не превышает вторую сумму, декодер 200 вычисляет только "v" в качестве BIO-параметра согласно выражениям (6.6) и (6.8) (или (6.10)). Другими словами, в этом случае, декодер 200 определяет BIO-параметр для текущего блока без использования значений горизонтального градиента.[0495] In the opposite case, in which the first sum does not exceed the second sum, the decoder 200 calculates only "v" as the BIO parameter according to expressions (6.6) and (6.8) (or (6.10)). In other words, in this case, the decoder 200 determines the BIO parameter for the current block without using horizontal gradient values.

[0496] Альтернативно, например, декодер 200 может проводить оценку в отношении того, больше или нет первая сумма первого значения, и меньше или нет вторая сумма второго значения.[0496] Alternatively, for example, decoder 200 may make a judgment regarding whether the first sum of the first value is greater than or not and the second sum of the second value is less than or not.

[0497] Когда первая сумма больше первого значения, и вторая сумма меньше второго значения, декодер 200 затем может определять только "u" в качестве BIO-параметра для текущего блока без использования значений вертикального градиента. Когда первая сумма не больше первого значения, и вторая сумма не меньше второго значения, декодер 200 затем может определять только "v" в качестве BIO-параметра для текущего блока без использования значений горизонтального градиента.[0497] When the first sum is greater than the first value and the second sum is less than the second value, the decoder 200 can then determine only "u" as the BIO parameter for the current block without using the vertical gradient values. When the first sum is not greater than the first value and the second sum is not less than the second value, the decoder 200 can then determine only "v" as the BIO parameter for the current block without using the horizontal gradient values.

[0498] В завершение, декодер 200 затем декодирует текущий блок с использованием по меньшей мере одного BIO-параметра (S2006). В частности, декодер 200 формирует прогнозную выборку с использованием по меньшей мере одного из BIO-параметров u и v и декодирует текущий блок с использованием прогнозной выборки. Выражения (6.11)-(6.13) указывают пример процесса вычисления для формирования прогнозной выборки.[0498] Finally, decoder 200 then decodes the current block using at least one BIO parameter (S2006). Specifically, decoder 200 generates a predictive sample using at least one of the BIO parameters u and v and decodes the current block using the predictive sample. Expressions (6.11)-(6.13) indicate an example of the calculation process for generating a predictive sample.

[0499] Математическое выражение 48[0499] Mathematical expression 48

[0500] Математическое выражение 49[0500] Mathematical expression 49

[0501] Математическое выражение 50[0501] Mathematical expression 50

[0502] Когда результат проведения оценки на основе первой суммы, второй суммы, первого значения и второго значения (S2003) представляет собой "истина", выражение (6.11) используется. В случае если только "u" вычисляется, когда результат проведения оценки (S2003) представляет собой "ложь", выражение (6.12) используется. В случае если только "v" вычисляется, когда результат проведения оценки (S2003) представляет собой "ложь", выражение (6.13) используется.[0502] When the result of judging based on the first sum, the second sum, the first value and the second value (S2003) is true, expression (6.11) is used. In the case where only "u" is calculated when the evaluation result (S2003) is "false", expression (6.12) is used. In the case where only "v" is calculated when the evaluation result (S2003) is "false", expression (6.13) is used.

[0503] Декодер 200 может повторять процессы (S2001-S2006) для всех субблоков в каждой из текущих CU.[0503] The decoder 200 may repeat the processes (S2001-S2006) for all sub-blocks in each of the current CUs.

[0504] Помимо этого, процесс проведения оценки, отличающийся от процесса проведения оценки (S2003), описанного выше, может использоваться. Например, декодер 200 может проводить оценку в отношении того, больше или нет первая сумма и вторая сумма первого значения.[0504] In addition, an evaluation process different from the evaluation process (S2003) described above may be used. For example, decoder 200 may evaluate whether the first sum and the second sum are greater than or equal to the first value.

[0505] В случае если первая сумма и вторая сумма больше первого значения, декодер 200 затем может определять два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента. В случае если по меньшей мере одна из первой суммы и второй суммы не больше первого значения, декодер 200 может определять один BIO-параметр для текущего блока вообще без использования значения горизонтального градиента и значения вертикального градиента.[0505] In the event that the first sum and the second sum are greater than the first value, the decoder 200 can then determine two BIO parameters for the current block using the horizontal gradient values and the vertical gradient values. In the event that at least one of the first sum and the second sum is not greater than the first value, the decoder 200 may determine one BIO parameter for the current block without using the horizontal gradient value and the vertical gradient value at all.

[0506] Альтернативно, например, декодер 200 может проводить оценку в отношении того, больше или нет первая сумма первого значения, и меньше или нет вторая сумма второго значения.[0506] Alternatively, for example, decoder 200 may make a judgment regarding whether the first sum of the first value is greater than or not and the second sum of the second value is less than or not.

[0507] В случае если первая сумма больше первого значения, и вторая сумма больше второго значения, декодер 200 затем может определять два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента. В случае если первая сумма не больше первого значения, или вторая сумма не больше второго значения, декодер 200 затем может определять один BIO-параметр для текущего блока вообще без использования значения горизонтального градиента или любого значения вертикального градиента.[0507] In the event that the first sum is greater than the first value, and the second sum is greater than the second value, the decoder 200 can then determine two BIO parameters for the current block using the horizontal gradient values and the vertical gradient values. In the event that the first sum is not greater than the first value, or the second sum is not greater than the second value, the decoder 200 can then determine a single BIO parameter for the current block without using the horizontal gradient value or any vertical gradient value at all.

[0508] Альтернативно, например, декодер 200 может определять то, удовлетворяется или нет по меньшей мере одно из следующих условий: первая сумма больше первого значения, и вторая сумма больше второго значения; и первая сумма меньше третьего значения, и вторая сумма меньше четвертого значения.[0508] Alternatively, for example, decoder 200 may determine whether or not at least one of the following conditions is satisfied: the first sum is greater than the first value, and the second sum is greater than the second value; and the first sum is less than the third value, and the second sum is less than the fourth value.

[0509] Когда по меньшей мере одно из двух условий удовлетворяется, декодер 200 затем может определять два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента. Когда любое из двух условий не удовлетворяется, декодер 200 может определять один BIO-параметр для текущего блока без использования либо любого значения горизонтального градиента, либо любого значения вертикального градиента.[0509] When at least one of the two conditions is satisfied, decoder 200 can then determine two BIO parameters for the current block using the horizontal gradient values and the vertical gradient values. When either of the two conditions is not satisfied, decoder 200 may determine one BIO parameter for the current block without using either any horizontal gradient value or any vertical gradient value.

[0510] Декодер 200 допускает повышение точности прогнозной выборки в текущем блоке с использованием BIO. Помимо этого, декодер 200 может использовать только одно из значений горизонтального градиента и значений вертикального градиента на основе условия. Таким образом, декодер 200 допускает уменьшение увеличения объема вычислений.[0510] Decoder 200 allows the accuracy of the predictive sample in the current block to be improved using BIO. In addition, the decoder 200 may use only one of the horizontal gradient values and the vertical gradient values based on the condition. Thus, the decoder 200 allows the increase in computation to be reduced.

[0511] Вышеприведенные выражения представляют собой примеры, и выражения для вычисления BIO-параметра не ограничены вышеприведенными выражениями. Например, знак "плюс" или "минус", включенный в каждое выражение, может изменяться, или выражение, эквивалентное любому из вышеприведенных выражений, может использоваться. В частности, в качестве выражения, соответствующего выражениям (6.1) и (6.2), описанным выше, следующее выражение (7.1) может использоваться.[0511] The above expressions are examples, and the expressions for calculating the BIO parameter are not limited to the above expressions. For example, the plus or minus sign included in each expression may vary, or an expression equivalent to any of the above expressions may be used. In particular, the following expression (7.1) can be used as an expression corresponding to expressions (6.1) and (6.2) described above.

[0512] Математическое выражение 51[0512] Mathematical expression 51

[0513] Помимо этого, например, в качестве выражения, соответствующего выражению (6.5), описанному выше, следующее выражение (7.2) может использоваться.[0513] In addition, for example, as an expression corresponding to expression (6.5) described above, the following expression (7.2) can be used.

[0514] Математическое выражение 52[0514] Mathematical expression 52

[0515] Например, в качестве выражения, соответствующего выражению (6.12), описанному выше, следующее выражение (7.3) может использоваться.[0515] For example, as an expression corresponding to expression (6.12) described above, the following expression (7.3) can be used.

[0516] Математическое выражение 53[0516] Mathematical expression 53

[0517] Выражения (6.7) и (6.9) фактически указывают деление и в силу этого могут представляться как следующее выражение (7.4).[0517] Expressions (6.7) and (6.9) actually indicate division and as such can be represented as the following expression (7.4).

[0518] Математическое выражение 54[0518] Mathematical expression 54

[0519] Выражения (7.1)-(7.4) являются практически идентичными выражениям (6.1), (6.2), (6.5), (6.7), (6.9) и (6.12), описанным выше.[0519] Expressions (7.1)-(7.4) are practically identical to expressions (6.1), (6.2), (6.5), (6.7), (6.9) and (6.12) described above.

[0520] Аналогично, в частности, в качестве выражения, соответствующего выражениям (6.3) и (6.4), описанным выше, следующее выражение (7.5) может использоваться.[0520] Similarly, in particular, as an expression corresponding to expressions (6.3) and (6.4) described above, the following expression (7.5) can be used.

[0521] Математическое выражение 55[0521] Mathematical expression 55

[0522] Помимо этого, например, в качестве выражения, соответствующего выражению (6.6), описанному выше, следующее выражение (7.6) может использоваться.[0522] In addition, for example, as an expression corresponding to expression (6.6) described above, the following expression (7.6) can be used.

[0523] Математическое выражение 56[0523] Mathematical expression 56

[0524] Например, в качестве выражения, соответствующего выражению (6.13), описанному выше, следующее выражение (7.7) может использоваться.[0524] For example, as an expression corresponding to expression (6.13) described above, the following expression (7.7) can be used.

[0525] Математическое выражение 57[0525] Mathematical expression 57

[0526] Выражения (6.8) и (6.10) фактически указывают деление и в силу этого могут представляться как следующее выражение (7.8).[0526] Expressions (6.8) and (6.10) actually indicate division and as such can be represented as the following expression (7.8).

[0527] Математическое выражение 58[0527] Mathematical expression 58

[0528] Выражения (7.5)-(7,8) являются практически идентичными выражениям (6.3), (6.4), (6.6), (6.8), (6.10) и (6.13), описанным выше. Например, в качестве выражения, соответствующего выражению (6.11), описанному выше, следующее выражение (7.9) может использоваться. Следующее выражение (7.9) является практически идентичным выражению (6.11), описанному выше.[0528] Expressions (7.5)-(7.8) are practically identical to expressions (6.3), (6.4), (6.6), (6.8), (6.10) and (6.13) described above. For example, as an expression corresponding to expression (6.11) described above, the following expression (7.9) can be used. The following expression (7.9) is almost identical to expression (6.11) described above.

[0529] Математическое выражение 59[0529] Mathematical expression 59

[0530] Помимо этого, в вышеуказанной последовательности операций по меньшей мере одно из значений горизонтального градиента и значений вертикального градиента используется на основе первой суммы и второй суммы в вышеуказанной последовательности операций, последовательности операций процесса декодирования не ограничены вышеописанным последовательностью операций. Также целесообразно то, что то, следует или нет использовать значения горизонтального градиента, значения вертикального градиента либо как значения горизонтального градиента, так и значения вертикального градиента, может задаваться посредством другого параметра кодирования и т.п.[0530] In addition, in the above process flow, at least one of the horizontal gradient values and the vertical gradient value is used based on the first sum and the second sum in the above process flow, the process flow of the decoding process is not limited to the above-described process flow. It is also advantageous that whether or not to use horizontal gradient values, vertical gradient values, or both horizontal gradient values and vertical gradient values can be specified by another encoding parameter and the like.

[0531] Независимо от первой суммы и второй суммы, по меньшей мере один BIO-параметр может извлекаться с использованием значений горизонтального градиента, значений вертикального градиента либо как значений горизонтального градиента, так и значений вертикального градиента.[0531] Independent of the first sum and the second sum, the at least one BIO parameter may be retrieved using horizontal gradient values, vertical gradient values, or both horizontal gradient values and vertical gradient values.

[0532] Независимо от первой суммы и второй суммы, согласно выражениям, описанным выше, декодер 200 допускает уменьшение существенного умножения, которое требует большого объема вычислений в вычислениях, выполняемых для соответствующих пиксельных позиций, и извлечение множества параметров для формирования прогнозного изображения с небольшим объемом вычислений. В частности, хотя знаки "плюс" или "минус" в выражениях (6.2), (6.4), (6.5), (6.6), (7.1), (7.2), (7.5), (7.6) и т.д. изменяются, существенное умножение не используется. Соответственно, число существенных умножений в BIO-обработке может значительно уменьшаться.[0532] Regardless of the first sum and the second sum, according to the expressions described above, the decoder 200 is capable of reducing the significant multiplication that requires a large amount of computation in the calculations performed on the corresponding pixel positions, and extracting a plurality of parameters to form a predictive image with a small amount of computation . In particular, although the plus or minus signs in expressions (6.2), (6.4), (6.5), (6.6), (7.1), (7.2), (7.5), (7.6), etc. change, no significant multiplication is used. Accordingly, the number of significant multiplications in BIO processing can be significantly reduced.

[0533] Другими словами, декодер 200 допускает вычисление sGx, sGxdI, sGy и sGydI с небольшим объемом вычислений. Соответственно, декодер 200 допускает уменьшение объема обработки при декодировании. В частности, независимо от первой суммы и второй суммы, декодер 200 может извлекать по меньшей мере один BIO-параметр с использованием значений горизонтального градиента и значений вертикального градиента. Таким образом, декодер 200 допускает надлежащее формирование прогнозного изображения с использованием как значения горизонтального градиента, так и значения вертикального градиента при уменьшении объема обработки при декодировании.[0533] In other words, decoder 200 allows the calculation of sG x , sG x dI, sG y and sG y dI with a small amount of computation. Accordingly, the decoder 200 allows for a reduction in decoding processing. Specifically, regardless of the first sum and the second sum, the decoder 200 may extract at least one BIO parameter using the horizontal gradient values and the vertical gradient values. Thus, the decoder 200 allows the prediction image to be properly generated using both the horizontal gradient value and the vertical gradient value while reducing the amount of decoding processing.

[0534] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0534] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0535] Следует отметить, что выражения для вычисления BIO-параметра могут заменяться другими выражениями при условии, что другие выражения используются для того, чтобы вычислять BIO-параметр с использованием либо значений горизонтального градиента, либо значений вертикального градиента.[0535] It should be noted that expressions for calculating the BIO parameter can be replaced by other expressions, provided that other expressions are used to calculate the BIO parameter using either horizontal gradient values or vertical gradient values.

[0536] Например, в третьем конкретном примере, выражения для вычисления BIO-параметра Вы не ограничены выражениями (6.7), (6.9), (7.4) и т.д., и могут быть предусмотрены другие выражения при условии, что другие выражения используются для того, чтобы вычислять BIO-параметр u на основе значений горизонтального градиента и без основы на значениях вертикального градиента. Помимо этого, выражения для вычисления v BIO-параметра не ограничены выражениями (6.8), (6.10), (7.8) и т.д., и могут быть предусмотрены другие выражения при условии, что другие выражения используются для того, чтобы вычислять v BIO-параметра на основе значений вертикального градиента и без основы на значениях горизонтального градиента.[0536] For example, in the third specific example, expressions for calculating the BIO parameter You are not limited to expressions (6.7), (6.9), (7.4), etc., and other expressions may be provided provided that other expressions are used in order to calculate the BIO parameter u based on horizontal gradient values and without a basis on vertical gradient values. In addition, expressions for calculating v BIO parameter are not limited to expressions (6.8), (6.10), (7.8), etc., and other expressions may be provided provided that other expressions are used to calculate v BIO -parameter based on vertical gradient values and without basis on horizontal gradient values.

[0537] Помимо этого, в первом конкретном примере и третьем конкретном примере, первая сумма соответствует значениям горизонтального градиента, и вторая сумма соответствует значениям вертикального градиента. Тем не менее, порядок может изменяться на противоположный. Другими словами, первая сумма может соответствовать значениям вертикального градиента, и вторая сумма может соответствовать значениям горизонтального градиента.[0537] In addition, in the first specific example and the third specific example, the first sum corresponds to the horizontal gradient values, and the second sum corresponds to the vertical gradient values. However, the order may be reversed. In other words, the first sum may correspond to the vertical gradient values, and the second sum may correspond to the horizontal gradient values.

[0538] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0538] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with the first amount, the second amount, or the BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples.

[0539] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0539] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0540] Четвертый конкретный пример BIO [0540] Fourth BIO Case Study

Процессы вычисления BIO-параметра и процессы формирования прогнозных изображений в первом конкретном примере, втором конкретном примере и третьем конкретном примере представляют собой примеры, и другие процессы вычисления и другие процессы формирования могут применяться. Например, процесс, указываемый на блок-схеме последовательности операций способа на фиг. 53, может применяться.The BIO parameter calculation processes and prediction image generation processes in the first specific example, the second specific example and the third specific example are examples, and other calculation processes and other generation processes may be applied. For example, the process indicated in the flowchart in FIG. 53 may apply.

[0541] Фиг. 53 является блок-схемой последовательности операций способа, указывающей четвертый конкретный пример процесса декодирования на основе BIO. Во множестве конкретных примеров, описанных выше, декодер 200 переключает способы извлечения прогнозной выборки на основе абсолютной величины первой суммы и абсолютной величины второй суммы, как указано на фиг. 49 и 52. Для сравнения, в этом конкретном примере, декодер 200 всегда вычисляет компонент оптических потоков в вертикальном направлении и горизонтальном направлении, чтобы извлекать прогнозную выборку. Это формирует возможность дополнительного повышения точности прогнозирования.[0541] FIG. 53 is a flowchart indicating a fourth specific example of a BIO-based decoding process. In many of the specific examples described above, decoder 200 switches methods for extracting a predictive sample based on the absolute value of the first sum and the absolute value of the second sum, as indicated in FIG. 49 and 52. By comparison, in this particular example, the decoder 200 always calculates the optical flow component in the vertical direction and the horizontal direction to extract a predictive sample. This creates the possibility of further increasing the accuracy of forecasting.

[0542] В частности, в примере на фиг. 53, аналогично примеру на фиг. 49 и примеру на фиг. 52, декодер 200 вычисляет первую сумму для текущего блока, с использованием значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока (S2001). Помимо этого, декодер 200 вычисляет вторую сумму для текущего блока, с использованием значения вертикального градиента первого опорного блока и значения вертикального градиента второго опорного блока (S2002).[0542] Specifically, in the example of FIG. 53, similar to the example in FIG. 49 and the example in FIG. 52, the decoder 200 calculates a first sum for the current block using the horizontal gradient value of the first reference block and the horizontal gradient value of the second reference block (S2001). In addition, the decoder 200 calculates a second sum for the current block using the vertical gradient value of the first reference block and the vertical gradient value of the second reference block (S2002).

[0543] В примере по фиг. 53, декодер 200 затем определяет BIO-параметр для текущего блока с использованием как значений горизонтального градиента, так и значений вертикального градиента независимо от абсолютной величины первой суммы и абсолютной величины второй суммы (S2004). Операция для определения BIO-параметра для текущего блока с использованием как значений горизонтального градиента, так и значений вертикального градиента может быть идентичной операции в третьем конкретном примере. Например, декодер 200 может использовать выражения (6.1)-(6.10), описанные в третьем конкретном примере, в качестве вычислительных выражений для определения BIO-параметра.[0543] In the example of FIG. 53, the decoder 200 then determines the BIO parameter for the current block using both the horizontal gradient values and the vertical gradient values regardless of the absolute value of the first sum and the absolute value of the second sum (S2004). The operation for determining the BIO parameter for the current block using both horizontal gradient values and vertical gradient values may be identical to the operation in the third specific example. For example, the decoder 200 may use expressions (6.1)-(6.10) described in the third specific example as computational expressions for determining the BIO parameter.

[0544] Декодер 200 затем декодирует текущий блок с использованием BIO-параметра (S2006). Например, декодер 200 формирует прогнозную выборку с использованием двух BIO-параметров u и v. В это время, декодера 200 может извлекать прогнозную выборку согласно выражению (6.11) и т.д. Декодер 200 может использовать выражения, описанные в первом конкретном примере, или другие выражения. Декодер 200 затем декодирует текущий блок с использованием прогнозной выборки.[0544] The decoder 200 then decodes the current block using the BIO parameter (S2006). For example, decoder 200 generates a predictive sample using two BIO parameters u and v. At this time, the decoder 200 can extract the prediction sample according to expression (6.11), etc. Decoder 200 may use the expressions described in the first specific example or other expressions. Decoder 200 then decodes the current block using the predictive sample.

[0545] Помимо этого, знак (x), появляющийся в выражениях (6.2), (6.4), (6.5), (6.6) и т.д., может задаваться посредством двоичного выражения (a), описанного выше, или может задаваться посредством следующего выражения (b).[0545] In addition, the sign (x) appearing in expressions (6.2), (6.4), (6.5), (6.6), etc. may be specified by the binary expression (a) described above, or may be specified through the following expression (b).

[0546] Математическое выражение 60[0546] Mathematical expression 60

[0547] В выражении (a), функция sign возвращает значение, указывающее то, представляет собой аргумент, предоставленный в функцию sign, значение со знаком "плюс" или значение со знаком "минус". В выражении (b), функция sign возвращает значение, указывающее то, представляет собой аргумент, предоставленный в функцию sign, значение со знаком "плюс", значение со знаком "минус" или 0.[0547] In expression (a), the sign function returns a value indicating whether the argument provided to the sign function is a plus sign value or a minus sign value. In expression (b), the sign function returns a value indicating whether the argument provided to the sign function is a plus sign value, a minus sign value, or 0.

[0548] В исходных выражениях для извлечения оптических потоков, sign (Gx[i, j]) и sign (Gy[i, j]) в выражениях (6.2), (6.4), (6.5) и (6.6) представляют собой Gx[i, j] и Gy[i, j], соответственно. Соответственно, например, Gx[i, j] x (I0i, j-I1i, j)=0 вычисляется как промежуточное значение, когда Gx[i, j]=0 удовлетворяется и Gy[i, j] x (I0i, j-I1i, j)=0 вычисляется как промежуточное значение, когда удовлетворяется Gy[i, j]=0.[0548] In the original expressions for extracting optical flows, sign (G x [i, j]) and sign (G y [i, j]) in expressions (6.2), (6.4), (6.5) and (6.6) represent are G x [i, j] and G y [i, j], respectively. Accordingly, for example, G x [i, j] x (I0 i, j -I1 i, j )=0 is calculated as an intermediate value when G x [i, j]=0 is satisfied and G y [i, j] x (I0 i, j -I1 i, j )=0 is calculated as an intermediate value when G y [i, j]=0 is satisfied.

[0549] Тем не менее, в упрощенных выражениях для извлечения оптических потоков, любое соответствующее промежуточное значение может получаться, когда sign (0)=1 удовлетворяется. Например, в выражении (6.5), sign (Gx[i, j]), x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gx[i, j]=0 удовлетворяется. Например, в выражении (6.6), sign (Gy[i, j]), x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gy[i, j]=0 удовлетворяется. Другими словами, промежуточное значение не равно 0, и значение, отличающееся от 0, остается.[0549] However, in simplified expressions for extracting optical flows, any corresponding intermediate value can be obtained when sign(0)=1 is satisfied. For example, in expression (6.5), sign (G x [i, j]), x (I0 i, j -I1 i, j )=(I0 i, j -I1 i, j ) is calculated as an intermediate value when G x [i, j]=0 is satisfied. For example, in expression (6.6), sign (G y [i, j]), x (I0 i, j -I1 i, j )=(I0 i, j -I1 i, j ) is calculated as an intermediate value when G y [i, j]=0 is satisfied. In other words, the intermediate value is not 0, and the value other than 0 remains.

[0550] При определении знака в выражении (b), описанном выше, sign (Gx[i, j]) x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gx[i, j]=0 удовлетворяется, и sign (Gy[i, j]) x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gy[i, j]=0 удовлетворяется. Соответственно, в этих случаях, идентичные промежуточные значения с исходными выражениями для извлечения оптических потоков вычисляются.[0550] When determining the sign in expression (b) described above, sign (G x [i, j]) x (I0 i, j -I1 i, j )=(I0 i, j -I1 i, j ) is calculated as an intermediate value when G x [i, j]=0 is satisfied, and sign (G y [i, j]) x (I0 i, j -I1 i, j )=(I0 i, j -I1 i, j ) is calculated as an intermediate value when G y [i, j]=0 is satisfied. Accordingly, in these cases, identical intermediate values with the original expressions for extracting optical flows are calculated.

[0551] Таким образом, знак, заданный посредством выражения (b), описанного выше, имеет значение, более близкое к значению, получаемому в исходном выражении оптического потока, чем знак, заданный посредством выражения (a), описанного выше. Соответственно, это формирует возможность дополнительного повышения точности дополнительного повышения точности прогнозирования.[0551] Thus, the sign specified by expression (b) described above has a value closer to the value obtained in the original optical flow expression than the sign specified by expression (a) described above. Accordingly, this creates the possibility of further increasing the accuracy of further increasing the accuracy of prediction.

[0552] Следует отметить, что вышеуказанные модификации могут комбинироваться полностью в настоящем раскрытии. Например, определение знака (x) в первом конкретном примере может заменяться выражением (b), описанным выше, или определение знака (x) в третьем конкретном примере может заменяться выражением (b), описанным выше.[0552] It should be noted that the above modifications may be combined in their entirety in the present disclosure. For example, the definition of sign (x) in the first specific example may be replaced by expression (b) described above, or the definition of sign (x) in the third specific example may be replaced by expression (b) described above.

[0553] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0553] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0554] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, например, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0554] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, for example, a filter having a set of filter coefficients [1 , 0, -1], can be used instead.

[0555] Выражение (b) представляет собой один пример функции sign, которая возвращает значение, указывающее то, указывает аргумент значение со знаком "плюс", значение со знаком "минус" или 0. Функция sign, которая предоставляет значение, указывающее то, указывает аргумент значение со знаком "плюс", значение со знаком "минус" или 0, может представляться согласно другому выражению, которое может принимать значение в зависимости от того, указывает аргумент значение со знаком "плюс", значение со знаком "минус" или 0 из числа трех возможных значений.[0555] Expression (b) is one example of a sign function that returns a value indicating whether the argument indicates a plus sign, a minus value, or 0. A sign function that provides a value indicating that indicates the argument plus value, minus value, or 0 can be represented by another expression, which can take on a value depending on whether the argument specifies a plus value, minus value, or 0 of numbers of three possible values.

[0556] Пятый конкретный пример BIO [0556] Fifth BIO Case Study

Далее описывается пятый конкретный пример процесса декодирования на основе BIO. В пятом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере. Следующие вычислительные выражения представляют собой вычислительные выражения в пятом конкретном примере.Next, a fifth specific example of a BIO-based decoding process is described. In the fifth specific example, the optical flow component is always calculated in the vertical direction and horizontal direction such that the prediction sample is calculated in the fourth specific example. The following computational expressions are the computational expressions in the fifth case study.

[0557] Математическое выражение 61[0557] Mathematical expression 61

[0558] Математическое выражение 62[0558] Mathematical expression 62

[0559] Математическое выражение 63[0559] Mathematical expression 63

[0560] Математическое выражение 64[0560] Mathematical expression 64

[0561] Математическое выражение 65[0561] Mathematical expression 65

[0562] Математическое выражение 66[0562] Mathematical expression 66

[0563] Математическое выражение 67[0563] Mathematical expression 67

[0564] Математическое выражение 68[0564] Mathematical expression 68

[0565] Математическое выражение 69[0565] Mathematical expression 69

[0566] Математическое выражение 70[0566] Mathematical expression 70

[0567] Выражения (8.1)-(8,6), (8.8) и (8.10) являются идентичными выражениям (6.1)-(6.6), (6.9) и (6.11) в третьем конкретном примере. В конкретном примере, выражение (8.7) добавляется, и выражение (6.10) заменяется выражением (8.9). Другими словами, BIO-параметр "v" в направлении по оси Y извлекается посредством процесса вычисления, который зависит от BIO-параметра "u" в направлении по оси X и параметра корреляции "sGxGy", который указывает корреляцию между градиентом в направлении по оси X и градиентом в направлении по оси Y. Это позволяет извлекать BIO-параметр с большей точностью, что увеличивает вероятность способности повышать эффективность кодирования. Следует отметить, что sGxGy может представляться как третья сумма.[0567] Expressions (8.1)-(8.6), (8.8) and (8.10) are identical to expressions (6.1)-(6.6), (6.9) and (6.11) in the third specific example. In a specific example, expression (8.7) is added, and expression (6.10) is replaced by expression (8.9). In other words, the BIO parameter "v" in the Y direction is extracted through a calculation process that depends on the BIO parameter "u" in the X direction and the correlation parameter "sG x G y " which indicates the correlation between the gradient in the direction along the X-axis and a gradient in the Y-axis direction. This allows the BIO parameter to be extracted with greater accuracy, which increases the likelihood of being able to improve encoding efficiency. It should be noted that sG x G y can be represented as a third sum.

[0568] Помимо этого, выражение (b), описанное в четвертом конкретном примере, может использоваться в качестве знака (x). Как задано в выражении (b), имеется вероятность возможности дополнительно повышать эффективность кодирования посредством знака (x), соответствующего трем значениям. Помимо этого, выражение (a), описанное в первом конкретном примере, может использоваться в качестве знака (x). Это упрощает выражение по сравнению со случаем, в котором знак (x) соответствует трем значениям, который формирует вероятность способности повышать эффективность кодирования при снижении нагрузки по обработке.[0568] In addition, the expression (b) described in the fourth specific example can be used as the sign (x). As given in expression (b), there is a possibility that it is possible to further improve the encoding efficiency by the sign (x) corresponding to the three values. In addition, the expression (a) described in the first specific example can be used as the sign (x). This simplifies the expression compared to the case in which the sign (x) corresponds to three values, which generates the probability of being able to increase encoding efficiency while reducing processing load.

[0569] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0569] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with a first amount, a second amount, a third amount, or a BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples. .

[0570] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0570] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0571] Вычислительное выражение может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.[0571] The computational expression may not only be applied to the flowchart of FIG. 53 in the fourth specific example, but also to the flowchart in FIG. 49 in the first specific example, to the flowchart in FIG. 52 in the third specific example and to other flowcharts.

[0572] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0572] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0573] Шестой конкретный пример BIO [0573] Sixth BIO Case Study

Далее описывается шестой конкретный пример процесса декодирования на основе BIO. В шестом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в шестом конкретном примере.Next, a sixth specific example of a BIO-based decoding process is described. In the sixth specific example, the optical flow component is always calculated in the vertical direction and horizontal direction such that the prediction sample is calculated in the fourth specific example, and so on. The following computational expressions are the computational expressions in the sixth case study.

[0574] Математическое выражение 71[0574] Mathematical expression 71

[0575] Математическое выражение 72[0575] Mathematical expression 72

[0576] Математическое выражение 73[0576] Mathematical expression 73

[0577] Математическое выражение 74[0577] Mathematical expression 74

[0578] Математическое выражение 75[0578] Mathematical expression 75

[0579] Математическое выражение 76[0579] Mathematical expression 76

[0580] Математическое выражение 77[0580] Mathematical expression 77

[0581] Математическое выражение 78[0581] Mathematical expression 78

[0582] Математическое выражение 79[0582] Mathematical expression 79

[0583] Выражения (9.1), (9.3) и (9.7)-(9.9) являются идентичными выражениям (6.1), (6.3) и (6.9)-(6.11) в третьем конкретном примере. В этом конкретном примере, выражения (6.2) и (6.4)-(6.6) заменяются выражениями (9.2) и (9.4)-(9.6), соответственно.[0583] Expressions (9.1), (9.3) and (9.7)-(9.9) are identical to expressions (6.1), (6.3) and (6.9)-(6.11) in the third specific example. In this particular example, expressions (6.2) and (6.4)-(6.6) are replaced by expressions (9.2) and (9.4)-(9.6), respectively.

[0584] Например, в выражениях (6.2) и (6.4)-(6.6), sign (Gx[i, j]) и sign (Gy[i, j]), используется вместо Gx[i, j] и Gy[i, j], и существенное умножение удаляется. Напротив, в выражениях (9.2) и (9.4)-(9.6), sign (Gx[i, j]) и sign (Gy[i, j]) не используются, и значения Gx[i, j] и Gy[i, j] непосредственно используются. Другими словами, существенное умножение используется.[0584] For example, in expressions (6.2) and (6.4)-(6.6), sign (G x [i, j]) and sign (G y [i, j]), is used instead of G x [i, j] and G y [i, j], and the essential multiplication is removed. On the contrary, in expressions (9.2) and (9.4)-(9.6), sign (G x [i, j]) and sign (G y [i, j]) are not used, and the values of G x [i, j] and G y [i, j] are directly used. In other words, essential multiplication is used.

[0585] Это увеличивает объем вычислительной обработки. Тем не менее, это позволяет извлекать BIO-параметр с большей точностью, что увеличивает вероятность способности повышать эффективность кодирования.[0585] This increases the amount of computational processing. However, this allows the BIO parameter to be extracted with greater accuracy, which increases the likelihood of being able to improve encoding efficiency.

[0586] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0586] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with a first amount, a second amount, a third amount, or a BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples. .

[0587] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0587] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0588] Вычислительное выражение, соответствующее этому конкретному примеру, может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.[0588] The computational expression corresponding to this specific example may be applied not only to the flowchart in FIG. 53 in the fourth specific example, but also to the flowchart in FIG. 49 in the first specific example, to the flowchart in FIG. 52 in the third specific example and to other flowcharts.

[0589] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0589] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0590] Седьмой конкретный пример BIO [0590] Seventh BIO Case Study

Далее описывается седьмой конкретный пример процесса декодирования на основе BIO. В седьмом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в седьмом конкретном примере.Next, a seventh specific example of a BIO-based decoding process is described. In the seventh specific example, the optical flow component is always calculated in the vertical direction and horizontal direction such that the prediction sample is calculated in the fourth specific example, and so on. The following computational expressions are the computational expressions in the seventh case study.

[0591] Математическое выражение 80[0591] Mathematical expression 80

[0592] Математическое выражение 81[0592] Mathematical expression 81

[0593] Математическое выражение 82[0593] Mathematical expression 82

[0594] Математическое выражение 83[0594] Mathematical expression 83

[0595] Математическое выражение 84[0595] Mathematical expression 84

[0596] Математическое выражение 85[0596] Mathematical expression 85

[0597] Математическое выражение 86[0597] Mathematical expression 86

[0598] Математическое выражение 87[0598] Mathematical expression 87

[0599] Математическое выражение 88[0599] Mathematical expression 88

[0600] Математическое выражение 89[0600] Mathematical expression 89

[0601] Выражения (10.1), (10.3) и (10.5)-(10.10) являются идентичными выражениям (8.1), (8.3) и (8.5)-(8.10) в пятом конкретном примере. В этом конкретном примере, выражения (8.2) и (8.4) заменяются выражениями (10.2) и (10.4), соответственно. В частности, функция abs используется вместо функции sign для преобразования знака "плюс" или "минус".[0601] Expressions (10.1), (10.3) and (10.5)-(10.10) are identical to expressions (8.1), (8.3) and (8.5)-(8.10) in the fifth specific example. In this particular example, expressions (8.2) and (8.4) are replaced by expressions (10.2) and (10.4), respectively. Specifically, the abs function is used instead of the sign function to convert a plus or minus sign.

[0602] Результаты, получаемые с использованием функций abs, аналогичных выражениям (10.2) и (10.4), являются идентичными результатам, получаемым посредством преобразования функций "плюс" или "минус" с использованием функций sign, аналогичных выражениям (8.2) и (8.4). Другими словами, эта конкретная функция является практически идентичной пятому конкретному примеру.[0602] The results obtained by using the abs functions similar to expressions (10.2) and (10.4) are identical to the results obtained by converting the plus or minus functions using the sign functions similar to expressions (8.2) and (8.4) . In other words, this particular function is almost identical to the fifth specific example.

[0603] В пятом конкретном примере, произведение знака "плюс" или "минус" Gx и Gx используется, и произведение знака "плюс" или "минус" Gy и Gy используется. В этом конкретном примере, части произведения заменяются абсолютными значениями. Это позволяет достигать обработки с низким объемом.[0603] In the fifth specific example, the product of the plus or minus sign of G x and G x is used, and the product of the plus or minus sign of G y and G y is used. In this particular example, parts of the product are replaced with absolute values. This allows low volume processing to be achieved.

[0604] Например, знак "плюс" или "минус", включенный в каждое выражение, может изменяться при необходимости, или выражение, эквивалентное любому из вышеприведенных выражений, может использоваться. В частности, в качестве выражений, соответствующих выражениям (10.1)-(10.7), описанным выше, следующее выражение (11.1)-(11.5) может использоваться.[0604] For example, the plus or minus sign included in each expression may be changed as necessary, or an expression equivalent to any of the above expressions may be used. In particular, the following expression (11.1)-(11.5) can be used as expressions corresponding to expressions (10.1)-(10.7) described above.

[0605] Математическое выражение 90[0605] Mathematical expression 90

[0606] Математическое выражение 91[0606] Mathematical expression 91

[0607] Математическое выражение 92[0607] Mathematical expression 92

[0608] Математическое выражение 93[0608] Mathematical expression 93

[0609] Математическое выражение 94[0609] Mathematical expression 94

[0610] Выражения (10.8) и (10.9) фактически указывают деление и в силу этого могут представляться как следующие выражения (11.6) и (11.7).[0610] Expressions (10.8) and (10.9) actually indicate division and as such can be represented as the following expressions (11.6) and (11.7).

[0611] Математическое выражение 95[0611] Mathematical expression 95

[0612] Математическое выражение 96[0612] Mathematical expression 96

[0613] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0613] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with a first amount, a second amount, a third amount, or a BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples. .

[0614] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0614] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0615] Вычислительное выражение, соответствующее этому конкретному примеру, может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.[0615] The computational expression corresponding to this specific example may be applied not only to the flowchart in FIG. 53 in the fourth specific example, but also to the flowchart in FIG. 49 in the first specific example, to the flowchart in FIG. 52 in the third specific example and to other flowcharts.

[0616] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0616] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0617] Восьмой конкретный пример BIO [0617] Eighth BIO Case Study

Далее описывается восьмой конкретный пример процесса декодирования на основе BIO. В восьмом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в восьмом конкретном примере.Next, an eighth specific example of a BIO-based decoding process is described. In the eighth specific example, the optical flow component is always calculated in the vertical direction and horizontal direction such that the prediction sample is calculated in the fourth specific example, and so on. The following computational expressions are the computational expressions in the eighth case study.

[0618] Математическое выражение 97[0618] Mathematical expression 97

[0619] Математическое выражение 98[0619] Mathematical expression 98

[0620] Математическое выражение 99[0620] Mathematical expression 99

[0621] Математическое выражение 100[0621] Mathematical expression 100

[0622] Математическое выражение 101[0622] Mathematical expression 101

[0623] Математическое выражение 102[0623] Mathematical expression 102

[0624] Математическое выражение 103[0624] Mathematical expression 103

[0625] Математическое выражение 104[0625] Mathematical expression 104

[0626] Математическое выражение 105[0626] Mathematical expression 105

[0627] Математическое выражение 106[0627] Mathematical expression 106

[0628] Выражения (12.1), (12.3) и (12.8)-(12.10) являются идентичными выражениям (8.1), (8.3) и (8.8)-(8.10) в пятом конкретном примере.[0628] Expressions (12.1), (12.3) and (12.8)-(12.10) are identical to expressions (8.1), (8.3) and (8.8)-(8.10) in the fifth specific example.

[0629] С другой стороны, относительно выражений (8.2) и (8.4)-(8.7): значения, указывающие знаки "плюс" или "минус" Gx и Gy, всегда допускаются равными 1; и выражения (8.2) и (8.4)-(8.7) заменяются выражениями (12.2) и (12.4)-(12,7), соответственно. Это основано на таком допущении, что как абсолютные значения значений градиентов пиксельных значений, так и знаки "плюс" или "минус" являются постоянными в младшей зоне Ω.[0629] On the other hand, regarding expressions (8.2) and (8.4)-(8.7): values indicating the plus or minus signs of G x and G y are always allowed to be equal to 1; and expressions (8.2) and (8.4)-(8.7) are replaced by expressions (12.2) and (12.4)-(12.7), respectively. This is based on the assumption that both the absolute values of the pixel value gradients and the plus or minus signs are constant in the low band Ω.

[0630] Поскольку предполагается, что знаки "плюс" или "минус" являются постоянными, процесс вычисления знаков "плюс" или "минус" Gx и Gy для каждой пары пикселов может уменьшаться. Помимо этого, вычислительное выражение sGx и вычислительное выражение sGxGy равны друг другу. Это обеспечивает дополнительное уменьшение обработки.[0630] Since the plus or minus signs are assumed to be constant, the process of calculating the plus or minus signs of G x and G y for each pair of pixels may be reduced. In addition, the computational expression sG x and the computational expression sG x G y are equal to each other. This provides further reduction in processing.

[0631] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0631] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with a first amount, a second amount, a third amount, or a BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples. .

[0632] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0632] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0633] Вычислительное выражение может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.[0633] The computational expression may not only be applied to the flowchart of FIG. 53 in the fourth specific example, but also to the flowchart in FIG. 49 in the first specific example, to the flowchart in FIG. 52 in the third specific example and to other flowcharts.

[0634] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0634] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0635] Девятый конкретный пример BIO [0635] Ninth BIO Case Study

Далее описывается девятый конкретный пример процесса декодирования на основе BIO. В девятом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в девятом конкретном примере.Next, a ninth specific example of a BIO-based decoding process is described. In the ninth specific example, the optical flow component is always calculated in the vertical direction and horizontal direction such that the prediction sample is calculated in the fourth specific example, and so on. The following computational expressions are the computational expressions in the ninth case study.

[0636] Математическое выражение 107[0636] Mathematical expression 107

[0637] Математическое выражение 108[0637] Mathematical expression 108

[0638] Математическое выражение 109[0638] Mathematical expression 109

[0639] Математическое выражение 110[0639] Mathematical expression 110

[0640] Математическое выражение 111[0640] Mathematical expression 111

[0641] Математическое выражение 112[0641] Mathematical expression 112

[0642] Математическое выражение 113[0642] Mathematical expression 113

[0643] Математическое выражение 114[0643] Mathematical expression 114

[0644] Математическое выражение 115[0644] Mathematical expression 115

[0645] Выражения (13.1)-(13.9) являются идентичными выражениям (12.1)-(12.6) и (12.8)-(12.10) в восьмом конкретном примере. На основе равенства вычислительного выражения sGx и вычислительного выражения sGxGy в восьмом конкретном примере, процесс извлечения взаимной корреляции в третьей сумме удаляется в этом конкретном примере. Чтобы извлекать v, sGx используется.[0645] Expressions (13.1)-(13.9) are identical to expressions (12.1)-(12.6) and (12.8)-(12.10) in the eighth specific example. Based on the equality of the computational expression sG x and the computational expression sG x G y in the eighth specific example, the cross-correlation extraction process in the third sum is removed in this specific example. To extract v, sG x is used.

[0646] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.[0646] It should be noted that the computational expressions described herein are examples. Computational expressions may be partially modified, parts of expressions may be deleted, or parts may be added to expressions, provided that the resulting expressions perform similar processing. For example, one or more of the plurality of expressions associated with the first amount, the second amount, or the BIO parameter may be replaced by one or more expressions in other specific examples, or may be replaced by another one or more expressions that are different from the expressions in other specific examples.

[0647] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0647] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0648] Вычислительное выражение, соответствующее этому конкретному примеру, может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.[0648] The computational expression corresponding to this specific example may be applied not only to the flowchart in FIG. 53 in the fourth specific example, but also to the flowchart in FIG. 49 in the first specific example, to the flowchart in FIG. 52 in the third specific example and to other flowcharts.

[0649] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.[0649] Although the decoding process is described in the above description, identical processes included in the decoding process may also be applied in the encoding process. In other words, the decoding in the above description can be read as encoding.

[0650] Десятый конкретный пример BIO [0650] Tenth BIO Specific Example

Этот конкретный пример указывает пример варьирования, который является применимым к другим конкретным примерам. Например, таблица поиска может использоваться для деления в каждом конкретном примере. Например, 6-битовая таблица поиска, имеющая 64 записи (divSigTable), может использоваться. Выражения (8.8) и (8.9) в пятом конкретном примере могут заменяться следующими выражениями (14.1) и (14.2), соответственно. Выражения идентичного вида в других конкретных примерах могут заменяться идентичным способом.This specific example indicates an example of variation that is applicable to other specific examples. For example, a lookup table could be used for division in each specific example. For example, a 6-bit lookup table having 64 entries (divSigTable) can be used. Expressions (8.8) and (8.9) in the fifth specific example can be replaced by the following expressions (14.1) and (14.2), respectively. Expressions of the same form in other specific examples may be replaced in an identical manner.

[0651] Математическое выражение 116[0651] Mathematical expression 116

[0652] Математическое выражение 117[0652] Mathematical expression 117

[0653] Upper6digits в выражениях (14.1) и (14.2), описанных выше, представляет следующее.[0653] Upper6digits in expressions (14.1) and (14.2) described above represents the following.

[0654] Математическое выражение 118[0654] Mathematical expression 118

[0655] Помимо этого, градиентное изображение получается посредством вычисления значений градиентов множества пикселов. Значения градиентов могут извлекаться, например, посредством применения градиентного фильтра ко множеству пикселов. Увеличение числа отводов градиентного фильтра может повышать точность значений градиентов, повышать точность прогнозного изображения и повышать эффективность кодирования.[0655] In addition, a gradient image is obtained by calculating the gradient values of a plurality of pixels. The gradient values may be extracted, for example, by applying a gradient filter to a plurality of pixels. Increasing the number of gradient filter taps can improve the accuracy of gradient values, improve the accuracy of the prediction image, and improve coding efficiency.

[0656] С другой стороны, поскольку обработка выполняется для каждой пары пиксельных позиций, объем вычислений увеличивается, когда число пар пиксельных позиций, которые должны обрабатываться, является большим. Таким образом, двухотводный фильтр может использоваться в качестве градиентного фильтра. Другими словами, значение градиента может представлять собой разностное значение между двумя пикселами, расположенными выше или ниже либо справа или слева от целевой пары пикселов, для которых должно вычисляться значение градиента. Альтернативно, значение градиента может представлять собой разностное значение между каждым из целевой пары пикселов, для которых значение градиента должно вычисляться, и соседнего пиксела, который граничит с целевым пикселом (соседний пиксел, в частности, представляет собой пиксел, расположенный выше или ниже либо справа или слева от целевого пиксела). Это может формировать возможность уменьшения объема обработки по сравнению со случаем, в котором число отводов является большим.[0656] On the other hand, since processing is performed for each pair of pixel positions, the amount of calculation increases when the number of pairs of pixel positions to be processed is large. Thus, a two-tap filter can be used as a gradient filter. In other words, the gradient value may be the difference value between two pixels located above or below, or to the right or left of the target pair of pixels for which the gradient value is to be calculated. Alternatively, the gradient value may be the difference value between each of the target pair of pixels for which the gradient value is to be calculated and an adjacent pixel that borders the target pixel (an adjacent pixel is, in particular, a pixel located above or below or to the right or to the left of the target pixel). This may make it possible to reduce the amount of processing compared to the case in which the number of taps is large.

[0657] Следует отметить, что множество пикселов, для которых должны вычисляться значения градиентов, могут представлять собой множество целочисленных пикселов или могут включать в себя субпикселы.[0657] It should be noted that the plurality of pixels for which gradient values are to be calculated may be a plurality of integer pixels or may include subpixels.

[0658] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.[0658] In addition, although a filter having a set of filter coefficients [-1, 0, 1] is used as an example of a filter for calculating a horizontal gradient value and a vertical gradient value in the above description, a filter having a set of filter coefficients [1, 0 , -1] can be used instead.

[0659] Характерные примеры конфигураций и обработки [0659] Representative examples of configurations and processing

Ниже приводятся описания характерных примеров конфигураций и процессов, выполняемых посредством кодера 100 и декодера 200, описанных выше. Эти характерные примеры главным образом соответствуют пятому конкретному примеру и седьмому конкретному примеру, описанным выше.Below are descriptions of typical examples of configurations and processes performed by the encoder 100 and decoder 200 described above. These representative examples mainly correspond to the fifth specific example and the seventh specific example described above.

[0660] Фиг. 54 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством кодера 100. Например, кодер 100 включает в себя схему и запоминающее устройство, соединенное со схемой. Схема и запоминающее устройство, включенные в кодер 100, могут соответствовать процессору a1 и запоминающему устройству a2, проиллюстрированным на фиг. 40. Схема кодера 100 выполняет следующие этапы при работе.[0660] FIG. 54 is a flowchart indicating an operation performed by the encoder 100. For example, the encoder 100 includes circuitry and a memory device connected to the circuitry. The circuit and memory included in the encoder 100 may correspond to the processor a1 and memory a2 illustrated in FIG. 40. The encoder circuit 100 performs the following steps in operation.

[0661] Например, схема кодера 100 может извлекать, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне (S3101).[0661] For example, encoder circuit 100 may extract, for each of a plurality of pairs of relative pixel positions, an absolute value of the sum of horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at the relative pixel position in the first range and the horizontal gradient value at the relative pixel position in the second range (S3101).

[0662] Здесь, первый диапазон включает в себя первый опорный блок в текущем блоке, и второй диапазон включает в себя второй опорный блок в текущем блоке. Каждая из множества пар относительных пиксельных позиций определяется обычно и относительно как для первого диапазона, так и для второго диапазона, и каждая пара относительных пиксельных позиций состоит из пиксельной позиции в первом диапазоне и пиксельной позиции во втором диапазоне.[0662] Here, the first range includes a first reference block in the current block, and the second range includes a second reference block in the current block. Each of a plurality of pairs of relative pixel positions is defined generally and relative to both the first range and the second range, and each pair of relative pixel positions consists of a pixel position in the first range and a pixel position in the second range.

[0663] Помимо этого, пиксельная позиция, определяемая обычно и относительно как для первого диапазона, так и для второго диапазона, означает пиксельную позицию, определенную как для первого диапазона, так и для второго диапазона относительно идентичным способом. Например, когда одно абсолютное значение суммы значений горизонтального градиента вычисляется, значения горизонтального градиента в пиксельных позициях, которые являются относительно идентичными в первом диапазоне и втором диапазоне, используются. Более конкретно, например, одно абсолютное значение суммы значений горизонтального градиента извлекается с использованием значения горизонтального градиента в самой левой верхней пиксельной позиции в первом диапазоне и значения горизонтального градиента в самой левой верхней пиксельной позиции во втором диапазоне.[0663] In addition, a pixel position determined generally and relatively for both the first range and the second range means a pixel position determined for both the first range and the second range in a relatively identical manner. For example, when one absolute value of the sum of the horizontal gradient values is calculated, the horizontal gradient values at pixel positions that are relatively identical in the first range and the second range are used. More specifically, for example, one absolute value of the sum of the horizontal gradient values is retrieved using the horizontal gradient value at the top-left pixel position in the first range and the horizontal gradient value at the top-left pixel position in the second range.

[0664] Схема кодера 100 затем извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3102).[0664] The encoder circuit 100 then extracts, as a first parameter, the total sum of the plurality of absolute values of the sums of the horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions (S3102).

[0665] Кроме того, схема кодера 100 извлекает, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне (S3103).[0665] In addition, the encoder circuit 100 extracts, for each of the plurality of pairs of relative pixel positions, an absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range (S3103).

[0666] Схема кодера 100 затем извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3104).[0666] The encoder circuit 100 then extracts, as a second parameter, the total sum of the plurality of absolute values of the sums of the vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions (S3104).

[0667] Кроме того, схема кодера 100 извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне (S3105). Например, в это время, схема кодера 100 извлекает пиксельное разностное значение со знаком "плюс" или "минус" посредством вычитания одного из пиксельного значения в относительной пиксельной позиции в первом диапазоне и пиксельного значения в относительной пиксельной позиции во втором диапазоне в каждой из множества пар относительных пиксельных позиций из другого.[0667] In addition, the encoder circuit 100 extracts, for each of the plurality of relative pixel position pairs, a pixel difference value that indicates the difference between the pixel value at the relative pixel position in the first range and the pixel value at the relative pixel position in the second range (S3105) . For example, at this time, the encoder circuit 100 extracts a pixel difference value with a plus or minus sign by subtracting one of a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range in each of a plurality of pairs relative pixel positions from another.

[0668] Схема кодера 100 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, и извлекает горизонтально-связанное пиксельное разностное значение (S3106). Здесь, сумма значений горизонтального градиента в каждой паре относительных пиксельных позиций указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Горизонтально-связанное пиксельное разностное значение указывает пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента.[0668] The encoder circuit 100 then inverts or stores the plus or minus sign of the pixel difference value extracted for a pair of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, and extracts the horizontally related pixel difference value (S3106). Here, the sum of the horizontal gradient values at each pair of relative pixel positions indicates the sum of the horizontal gradient value at the relative pixel position in the first range and the horizontal gradient value at the relative pixel position in the second range. A horizontally associated pixel difference value indicates a pixel difference value having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values.

[0669] Схема кодера 100 затем извлекает, в качестве третьего параметра, общую сумму множества горизонтально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных позиций (S3107).[0669] The encoder circuit 100 then extracts, as a third parameter, the total sum of the plurality of horizontally related pixel difference values extracted, respectively, for the plurality of relative position pairs (S3107).

[0670] Кроме того, схема кодера 100 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанное пиксельное разностное значение (S3108). Здесь, сумма значений вертикального градиента в паре относительных пиксельных позиций указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне. Вертикально-связанное пиксельное разностное значение указывает пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.[0670] In addition, the encoder circuit 100 then inverts or stores the plus or minus sign of the pixel difference value extracted for each pair of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and extracts vertically -associated pixel difference value (S3108). Here, the sum of the vertical gradient values at a pair of relative pixel positions indicates the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range. A vertically associated pixel difference value indicates a pixel difference value having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values.

[0671] Схема кодера 100 затем извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3109).[0671] The encoder circuit 100 then extracts, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values extracted, respectively, for a plurality of pairs of relative pixel positions (S3109).

[0672] Помимо этого, схема кодера 100 инвертирует или сохраняет знак "плюс" или "минус" суммы значений вертикального градиента, извлекаемых для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента (S3110). Здесь, вертикально-связанная сумма значений горизонтального градиента указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.[0672] In addition, the encoder circuit 100 inverts or stores the plus or minus sign of the sum of the vertical gradient values extracted for a pair of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and extracts the vertical gradient values. the associated sum of the horizontal gradient values (S3110). Here, the vertically related sum of the horizontal gradient values indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values.

[0673] Схема кодера 100 затем извлекает, в качестве пятого параметра, общую сумму множества вертикально-связанных сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3111).[0673] The encoder circuit 100 then extracts, as a fifth parameter, the total sum of the plurality of vertically related sums of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions (S3111).

[0674] Схема кодера 100 затем формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра (S3112).[0674] The encoder circuit 100 then generates a prediction image to be used to encode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter (S3112).

[0675] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при кодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.[0675] In this way, significant multiplication, which requires a large amount of computation in the calculation performed for each pixel position, can be reduced, allowing multiple parameters to be extracted to form a predictive image with a small amount of computation. Accordingly, the amount of processing during encoding may be reduced. In addition, the prediction image may be suitably generated based on a plurality of parameters including a parameter associated with horizontal gradient values, a parameter associated with vertical gradient values, and a parameter associated with both horizontal gradient values and vertical gradient values. .

[0676] Помимо этого, например, схема кодера 100 может извлекать первый параметр согласно выражению (11.1), описанному выше, и второй параметр согласно выражению (11.2), описанному выше. Помимо этого, например, схема кодера 100 может извлекать третий параметр согласно выражению (11.3), описанному выше, и четвертый параметр согласно выражению (11.4), описанному выше. Помимо этого, например, схема кодера 100 может извлекать пятый параметр согласно выражению (11.5), описанному выше.[0676] In addition, for example, the encoder circuit 100 may extract the first parameter according to expression (11.1) described above and the second parameter according to expression (11.2) described above. In addition, for example, the encoder circuit 100 may extract a third parameter according to expression (11.3) described above and a fourth parameter according to expression (11.4) described above. In addition, for example, the encoder circuit 100 may extract the fifth parameter according to expression (11.5) described above.

[0677] Здесь, Ω обозначает набор относительных пиксельных позиций, и [i, j] обозначает каждую из относительных пиксельных позиций. Для каждой из множества пар относительных пиксельных позиций, Ix 0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix 1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Для каждой из множества пар относительных пиксельных позиций, Iy 0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy 1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне.[0677] Here, Ω denotes a set of relative pixel positions, and [i, j] denotes each of the relative pixel positions. For each of a plurality of pairs of relative pixel positions, I x 0 denotes a horizontal gradient value at a relative pixel position in a first range, and I x 1 denotes a horizontal gradient value at a relative pixel position in a second range. For each of a plurality of pairs of relative pixel positions, I y 0 denotes a vertical gradient value at a relative pixel position in a first range, and I y 1 denotes a vertical gradient value at a relative pixel position in a second range.

[0678] Для каждой из множества пар относительных пиксельных позиций, I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне, и I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне. Помимо этого, abs (Ix 1+Ix 0) обозначает абсолютное значение Ix 1+Ix 0, и sign (Ix 1+Ix 0) обозначает знак "плюс" или "минус" Ix 1+Ix 0. Кроме того, abs (Iy 1+Iy 0) обозначает абсолютное значение Iy 1+Iy 0, и sign (Iy 1+Iy 0) обозначает знак "плюс" или "минус" Iy 1+Iy 0.[0678] For each of a plurality of pairs of relative pixel positions, I 0 denotes a pixel value at a relative pixel position in a first range, and I 1 denotes a pixel value at a relative pixel position in a second range. In addition, abs (I x 1 +I x 0 ) denotes the absolute value of I x 1 +I x 0 , and sign (I x 1 +I x 0 ) denotes the plus or minus sign of I x 1 +I x 0 . In addition, abs (I y 1 +I y 0 ) denotes the absolute value of I y 1 +I y 0 , and sign (I y 1 +I y 0 ) denotes the plus or minus sign of I y 1 +I y 0 .

[0679] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.[0679] Thus, multiple parameters can be extracted with little computation using pixel values, horizontal gradient values, and vertical gradient values.

[0680] Помимо этого, например, схема кодера 100 может извлекать шестой параметр посредством деления третьего параметра на первый параметр. Помимо этого, схема кодера 100 может извлекать седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр. Схема кодера 100 затем может формировать прогнозное изображение с использованием шестого параметра и седьмого параметра.[0680] In addition, for example, the encoder circuit 100 may extract the sixth parameter by dividing the third parameter by the first parameter. In addition, the encoder circuit 100 may extract the seventh parameter by subtracting the product of the fifth parameter and the sixth parameter from the fourth parameter and dividing the result of the subtraction by the second parameter. The encoder circuit 100 can then generate a prediction image using the sixth parameter and the seventh parameter.

[0681] Таким образом, множество параметров могут надлежащим образом сужаться до двух параметров, соответствующих горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, связанный со значениями горизонтального градиента, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.[0681] Thus, the plurality of parameters can be suitably narrowed down to two parameters corresponding to the horizontal direction and the vertical direction. The parameter associated with the horizontal gradient values may be appropriately included in the parameter corresponding to the horizontal direction. A parameter associated with the vertical gradient values, a parameter associated with both the horizontal gradient values and the vertical gradient values, and a parameter associated with the horizontal gradient values may be suitably included in the parameter corresponding to the vertical direction. The prediction image can be suitably generated using two parameters.

[0682] Помимо этого, например, схема кодера 100 может извлекать шестой параметр согласно выражению (10.8), описанному выше. Помимо этого, например, схема кодера 100 может извлекать седьмой параметр согласно выражению (10.9), описанному выше.[0682] In addition, for example, the encoder circuit 100 may extract the sixth parameter according to expression (10.8) described above. In addition, for example, the encoder circuit 100 may extract the seventh parameter according to expression (10.9) described above.

[0683] Здесь, sGx обозначает первый параметр, sGy обозначает второй параметр, sGxdI обозначает третий параметр, sGydI обозначает четвертый параметр, sGxGy обозначает пятый параметр, и u обозначает шестой параметр. Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.[0683] Here, sG x denotes a first parameter, sG y denotes a second parameter, sG x dI denotes a third parameter, sG y dI denotes a fourth parameter, sG x G y denotes a fifth parameter, and u denotes a sixth parameter. Bits is a function that returns a value obtained by rounding up the binary logarithm of the argument to an integer.

[0684] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.[0684] In this way, two parameters corresponding to the horizontal direction and the vertical direction can be extracted with a small amount of computation.

[0685] Помимо этого, схема кодера 100 может формировать прогнозное изображение посредством извлечения прогнозного пиксельного значения, с использованием: первого пиксельного значения; первого значения горизонтального градиента; первого значения вертикального градиента; второго пиксельного значения; второго значения горизонтального градиента; второго значения вертикального градиента; шестого параметра; и седьмого параметра.[0685] In addition, the encoder circuit 100 may generate a prediction image by extracting a prediction pixel value using: a first pixel value; the first value of the horizontal gradient; the first value of the vertical gradient; second pixel value; second horizontal gradient value; second vertical gradient value; sixth parameter; and the seventh parameter.

[0686] Здесь, прогнозное пиксельное значение представляет собой прогнозное пиксельное значение в позиции текущего пиксела, включенного в текущий блок. Первое пиксельное значение представляет собой первое пиксельное значение в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке. Первое значение горизонтального градиента представляет собой значение горизонтального градиента в первой пиксельной позиции. Первое значение вертикального градиента представляет собой значение вертикального градиента в первой пиксельной позиции. Второе пиксельное значение представляет собой пиксельное значение во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке. Второе значение горизонтального градиента представляет собой значение горизонтального градиента во второй пиксельной позиции. Второе значение вертикального градиента представляет собой значение вертикального градиента во второй пиксельной позиции.[0686] Here, the predicted pixel value is the predicted pixel value at the position of the current pixel included in the current block. The first pixel value is the first pixel value at a first pixel position corresponding to the position of the current pixel in the first reference block. The first horizontal gradient value is the horizontal gradient value at the first pixel position. The first vertical gradient value is the vertical gradient value at the first pixel position. The second pixel value is a pixel value at a second pixel position corresponding to the position of the current pixel in the second reference block. The second horizontal gradient value is the horizontal gradient value at the second pixel position. The second vertical gradient value is the vertical gradient value at the second pixel position.

[0687] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.[0687] This provides a possibility that the prediction image is generated using, for example, two parameters corresponding to the horizontal direction and the vertical direction, and the two parameters corresponding to the horizontal direction and the vertical direction are properly reflected in the prediction image.

[0688] Помимо этого, например, схема кодера 100 может извлекать прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Здесь, первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.[0688] In addition, for example, the encoder circuit 100 may extract the predicted pixel value by dividing by 2 the sum of the first pixel value, the second pixel value, the first correction value, and the second correction value. Here, the first correction value corresponds to the product of the difference between the first horizontal gradient value and the second horizontal gradient value and the sixth parameter, and the second correction value corresponds to the product of the difference between the first vertical gradient value and the second vertical gradient value and the seventh parameter.

[0689] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.[0689] Thus, a prediction image can be suitably generated using, for example, two parameters corresponding to a horizontal direction and a vertical direction.

[0690] Помимо этого, например, схема кодера 100 может извлекать прогнозное пиксельное значение согласно выражению (10.10), описанному выше. Здесь, I0 обозначает первое пиксельное значение, I1 обозначает второе пиксельное значение, u обозначает шестой параметр, Ix 0 обозначает первое значение горизонтального градиента, Ix 1 обозначает второе значение горизонтального градиента, v обозначает седьмой параметр, Iy 0 обозначает первое значение вертикального градиента, и Iy 1 обозначает второе значение вертикального градиента. Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.[0690] In addition, for example, the encoder circuit 100 may extract the predicted pixel value according to expression (10.10) described above. Here, I 0 denotes the first pixel value, I 1 denotes the second pixel value, u denotes the sixth parameter, I x 0 denotes the first horizontal gradient value, I x 1 denotes the second horizontal gradient value, v denotes the seventh parameter, I y 0 denotes the first value vertical gradient, and I y 1 denotes the second value of the vertical gradient. Thus, the prediction image can be suitably generated according to an expression associated with, for example, two parameters corresponding to a horizontal direction and a vertical direction.

[0691] Помимо этого, например, схема кодера 100 может извлекать параметр в двунаправленном оптическом потоке с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра и формировать прогнозное изображение с использованием по меньшей мере одного из параметров в двунаправленном оптическом потоке и двунаправленном оптическом потоке. Таким образом, кодер 100 допускает надлежащее формирование прогнозного изображения.[0691] In addition, for example, the encoder circuit 100 may extract a parameter in the bidirectional optical flow using a first parameter, a second parameter, a third parameter, a fourth parameter, and a fifth parameter, and generate a prediction image using at least one of the parameters in the bidirectional optical flow and bidirectional optical flow. Thus, the encoder 100 allows the prediction image to be properly generated.

[0692] По меньшей мере, один параметр в двунаправленном оптическом потоке может представлять собой одно из шестого параметра и седьмого параметра, описанных выше.[0692] The at least one parameter in the bidirectional optical flow may be one of the sixth parameter and the seventh parameter described above.

[0693] Следует отметить, что модуль 126 внешнего прогнозирования кодера 100 может выполнять операцию, описанную выше в качестве схемы кодера 100.[0693] It should be noted that the external prediction module 126 of the encoder 100 can perform the operation described above as a circuit of the encoder 100.

[0694] Фиг. 55 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством декодера 200. Например, декодер 200 включает в себя схему и запоминающее устройство, соединенное со схемой. Схема и запоминающее устройство, включенные в декодер 200, могут соответствовать процессору b1 и запоминающему устройству b2, проиллюстрированным на фиг. 46. Схема декодера 200 выполняет следующее при работе.[0694] FIG. 55 is a flowchart indicating an operation performed by the decoder 200. For example, the decoder 200 includes circuitry and a memory device connected to the circuitry. The circuit and memory included in the decoder 200 may correspond to the processor b1 and memory b2 illustrated in FIG. 46. The decoder circuit 200 does the following in operation.

[0695] Например, схема декодера 200 может вычислять, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне (S3201).[0695] For example, decoder circuit 200 may calculate, for each of a plurality of pairs of relative pixel positions, an absolute value of the sum of horizontal gradient values, which indicates the absolute value of the sum of the horizontal gradient value at the relative pixel position in the first range and the horizontal gradient value at the relative pixel position in the second range (S3201).

[0696] Здесь, первый диапазон включает в себя первый опорный блок в текущем блоке, и второй диапазон включает в себя второй опорный блок в текущем блоке. Каждая из множества пар относительных пиксельных позиций определяется обычно и относительно как для первого диапазона, так и для второго диапазона, и каждая пара относительных пиксельных позиций состоит из пиксельной позиции в первом диапазоне и пиксельной позиции во втором диапазоне.[0696] Here, the first range includes a first reference block in the current block, and the second range includes a second reference block in the current block. Each of a plurality of pairs of relative pixel positions is defined generally and relative to both the first range and the second range, and each pair of relative pixel positions consists of a pixel position in the first range and a pixel position in the second range.

[0697] Схема декодера 200 затем извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений градиентов, извлекаемых, соответственно, для множества пар относительных позиций (S3202).[0697] The decoder circuit 200 then extracts, as a first parameter, the total sum of the plurality of absolute values of the sums of the gradient values extracted, respectively, for the plurality of relative position pairs (S3202).

[0698] Кроме того, схема декодера 200 вычисляет, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне (S3203).[0698] In addition, the decoder circuit 200 calculates, for each of the plurality of pairs of relative pixel positions, an absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range (S3203).

[0699] Схема декодера 200 затем извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений градиентов, извлекаемых, соответственно, для множества пар относительных позиций (S3204).[0699] The decoder circuit 200 then extracts, as a second parameter, the total sum of the plurality of absolute values of the sums of the gradient values extracted, respectively, for the plurality of relative position pairs (S3204).

[0700] Помимо этого, схема декодера 200 извлекает пиксельное разностное значение, которое представляет собой разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций (S3205). Например, в это время, схема декодера 200 извлекает пиксельное разностное значение со знаком "плюс" или "минус" посредством вычитания одного из пиксельного значения в относительной пиксельной позиции в первом диапазоне и пиксельного значения в относительной пиксельной позиции во втором диапазоне в каждой из множества пар относительных пиксельных позиций из другого.[0700] In addition, the decoder circuit 200 extracts a pixel difference value that is the difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions (S3205) . For example, at this time, the decoder circuit 200 extracts a pixel difference value with a plus or minus sign by subtracting one of a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range in each of a plurality of pairs relative pixel positions from another.

[0701] Схема декодера 200 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, и извлекает горизонтально-связанное пиксельное разностное значение (S3206). Здесь, сумма значений горизонтального градиента в каждой паре относительных пиксельных позиций указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Горизонтально-связанное пиксельное разностное значение указывает пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента.[0701] The decoder circuit 200 then inverts or stores the plus or minus sign of the pixel difference value extracted for a pair of relative pixel positions according to the plus or minus sign of the sum of the horizontal gradient values, and extracts the horizontally related pixel difference value (S3206). Here, the sum of the horizontal gradient values at each pair of relative pixel positions indicates the sum of the horizontal gradient value at the relative pixel position in the first range and the horizontal gradient value at the relative pixel position in the second range. A horizontally associated pixel difference value indicates a pixel difference value having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values.

[0702] Схема декодера 200 затем извлекает, в качестве третьего параметра, общую сумму множества горизонтально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных позиций (S3207).[0702] The decoder circuit 200 then extracts, as a third parameter, the total sum of the plurality of horizontally related pixel difference values extracted, respectively, for the plurality of relative position pairs (S3207).

[0703] Кроме того, схема декодера 200 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанное пиксельное разностное значение (S3208). Здесь, сумма значений вертикального градиента в паре относительных пиксельных позиций указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне. Вертикально-связанное пиксельное разностное значение представляет собой пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.[0703] In addition, the decoder circuit 200 then inverts or stores the plus or minus sign of the pixel difference value extracted for each pair of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and extracts vertically -associated pixel difference value (S3208). Here, the sum of the vertical gradient values at a pair of relative pixel positions indicates the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range. A vertically associated pixel difference value is a pixel difference value having a plus or minus sign inverted or stored according to the plus or minus sign of the sum of the vertical gradient values.

[0704] Схема декодера 200 затем извлекает, в качестве четвертого параметра, общую сумму множества горизонтально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных позиций (S3209).[0704] The decoder circuit 200 then extracts, as a fourth parameter, the total sum of the plurality of horizontally related pixel difference values extracted, respectively, for the plurality of relative position pairs (S3209).

[0705] Помимо этого, схема декодера 200 инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента (S3210). Здесь, вертикально-связанная сумма значений горизонтального градиента указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.[0705] In addition, the decoder circuit 200 inverts or stores the plus or minus sign of the sum of the horizontal gradient values extracted for a pair of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and extracts the vertical gradient values. the associated sum of the horizontal gradient values (S3210). Here, the vertically related sum of the horizontal gradient values indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values.

[0706] Схема декодера 200 затем извлекает, в качестве пятого параметра, общую сумму множества вертикально-связанных сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3211).[0706] The decoder circuit 200 then extracts, as a fifth parameter, the total sum of the plurality of vertically related sums of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions (S3211).

[0707] Схема декодера 200 затем формирует прогнозное изображение, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра (S3212).[0707] The decoder circuit 200 then generates a prediction image to be used to decode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter (S3212).

[0708] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при декодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.[0708] In this way, significant multiplication, which requires a large amount of computation in the calculation performed for each pixel position, can be reduced, allowing multiple parameters to be extracted to form a predictive image with a small amount of computation. Accordingly, the processing amount of decoding may be reduced. In addition, the prediction image may be suitably generated based on a plurality of parameters including a parameter associated with horizontal gradient values, a parameter associated with vertical gradient values, and a parameter associated with both horizontal gradient values and vertical gradient values. .

[0709] Помимо этого, например, схема декодера 200 может извлекать второй параметр согласно выражению (11.1), описанному выше, и второй параметр согласно выражению (11.2), описанному выше. Помимо этого, например, схема декодера 200 может извлекать третий параметр согласно выражению (11.3), описанному выше, и четвертый параметр согласно выражению (11.4), описанному выше. Помимо этого, например, схема декодера 200 может извлекать пятый параметр согласно выражению (11.5), описанному выше.[0709] In addition, for example, the decoder circuit 200 may extract a second parameter according to expression (11.1) described above, and a second parameter according to expression (11.2) described above. In addition, for example, the decoder circuit 200 may extract a third parameter according to expression (11.3) described above, and a fourth parameter according to expression (11.4) described above. In addition, for example, the decoder circuit 200 may extract the fifth parameter according to expression (11.5) described above.

[0710] Здесь, Ω обозначает набор относительных пиксельных позиций, и [i, j] обозначает каждую из относительных пиксельных позиций. Для каждой из множества пар относительных пиксельных позиций, Ix 0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix 1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Для каждой из множества пар относительных пиксельных позиций, Iy 0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy 1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне.[0710] Here, Ω denotes a set of relative pixel positions, and [i, j] denotes each of the relative pixel positions. For each of a plurality of pairs of relative pixel positions, I x 0 denotes a horizontal gradient value at a relative pixel position in a first range, and I x 1 denotes a horizontal gradient value at a relative pixel position in a second range. For each of a plurality of pairs of relative pixel positions, I y 0 denotes a vertical gradient value at a relative pixel position in a first range, and I y 1 denotes a vertical gradient value at a relative pixel position in a second range.

[0711] Для каждой из множества пар относительных пиксельных позиций, I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне, и I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне. Помимо этого, abs (Ix 1+Ix 0) обозначает абсолютное значение Ix 1+Ix 0, и sign (Ix 1+Ix 0) обозначает знак "плюс" или "минус" Ix 1+Ix 0. Кроме того, abs (Iy 1+Iy 0) обозначает абсолютное значение Iy 1+Iy 0, и sign (Iy 1+Iy 0) обозначает знак "плюс" или "минус" Iy 1+Iy 0.[0711] For each of a plurality of pairs of relative pixel positions, I 0 denotes a pixel value at a relative pixel position in a first range, and I 1 denotes a pixel value at a relative pixel position in a second range. In addition, abs (I x 1 +I x 0 ) denotes the absolute value of I x 1 +I x 0 , and sign (I x 1 +I x 0 ) denotes the plus or minus sign of I x 1 +I x 0 . In addition, abs (I y 1 +I y 0 ) denotes the absolute value of I y 1 +I y 0 , and sign (I y 1 +I y 0 ) denotes the plus or minus sign of I y 1 +I y 0 .

[0712] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.[0712] Thus, multiple parameters can be extracted with little computation using pixel values, horizontal gradient values, and vertical gradient values.

[0713] Помимо этого, например, схема декодера 200 может извлекать шестой параметр посредством деления третьего параметра на первый параметр. Помимо этого, схема декодера 200 может извлекать седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр. Схема декодера 200 затем может формировать прогнозное изображение с использованием шестого параметра и седьмого параметра.[0713] In addition, for example, the decoder circuit 200 may extract the sixth parameter by dividing the third parameter by the first parameter. In addition, the decoder circuit 200 may extract the seventh parameter by subtracting the product of the fifth parameter and the sixth parameter from the fourth parameter and dividing the subtraction result by the second parameter. The decoder circuit 200 can then generate a prediction image using the sixth parameter and the seventh parameter.

[0714] Таким образом, множество параметров могут надлежащим образом интегрироваться в два параметра, соответствующие горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, связанный со значениями горизонтального градиента, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.[0714] In this way, a plurality of parameters can be properly integrated into two parameters corresponding to the horizontal direction and the vertical direction. The parameter associated with the horizontal gradient values may be suitably included in the parameter corresponding to the horizontal direction. A parameter associated with the vertical gradient values, a parameter associated with both the horizontal gradient values and the vertical gradient values, and a parameter associated with the horizontal gradient values may be suitably included in the parameter corresponding to the vertical direction. The prediction image can be suitably generated using two parameters.

[0715] Помимо этого, например, схема декодера 200 может извлекать шестой параметр согласно выражению (10.8), описанному выше. Помимо этого, например, схема декодера 200 может извлекать седьмой параметр согласно выражению (10.9), описанному выше.[0715] In addition, for example, the decoder circuit 200 may extract the sixth parameter according to expression (10.8) described above. In addition, for example, the decoder circuit 200 may extract the seventh parameter according to expression (10.9) described above.

[0716] Здесь, sGx обозначает первый параметр, sGy обозначает второй параметр, sGxdI обозначает третий параметр, sGydI обозначает четвертый параметр, sGxGy обозначает пятый параметр, и u обозначает шестой параметр. Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.[0716] Here, sG x denotes a first parameter, sG y denotes a second parameter, sG x dI denotes a third parameter, sG y dI denotes a fourth parameter, sG x G y denotes a fifth parameter, and u denotes a sixth parameter. Bits is a function that returns a value obtained by rounding up the binary logarithm of the argument to an integer.

[0717] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.[0717] In this way, two parameters corresponding to the horizontal direction and the vertical direction can be extracted with a small amount of computation.

[0718] Помимо этого, схема декодера 200 может формировать прогнозное изображение посредством извлечения прогнозного пиксельного значения, с использованием: первого пиксельного значения; первого значения горизонтального градиента; первого значения вертикального градиента; второго пиксельного значения; второго значения горизонтального градиента; второго значения вертикального градиента; шестого параметра; и седьмого параметра.[0718] In addition, the decoder circuit 200 may generate a prediction image by extracting a prediction pixel value using: a first pixel value; the first value of the horizontal gradient; the first value of the vertical gradient; second pixel value; second horizontal gradient value; second vertical gradient value; sixth parameter; and the seventh parameter.

[0719] Здесь, прогнозное пиксельное значение представляет собой прогнозное пиксельное значение в позиции текущего пиксела, включенного в текущий блок. Первое пиксельное значение представляет собой пиксельное значение в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке. Первое значение горизонтального градиента представляет собой значение горизонтального градиента в первой пиксельной позиции. Второе значение вертикального градиента представляет собой значение вертикального градиента во второй пиксельной позиции. Второе пиксельное значение представляет собой пиксельное значение во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке. Второе значение горизонтального градиента представляет собой значение горизонтального градиента во второй пиксельной позиции. Второе значение вертикального градиента представляет собой значение вертикального градиента во второй пиксельной позиции.[0719] Here, the predicted pixel value is the predicted pixel value at the position of the current pixel included in the current block. The first pixel value is the pixel value at the first pixel position corresponding to the position of the current pixel in the first reference block. The first horizontal gradient value is the horizontal gradient value at the first pixel position. The second vertical gradient value is the vertical gradient value at the second pixel position. The second pixel value is a pixel value at a second pixel position corresponding to the position of the current pixel in the second reference block. The second horizontal gradient value is the horizontal gradient value at the second pixel position. The second vertical gradient value is the vertical gradient value at the second pixel position.

[0720] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.[0720] This provides a possibility that the prediction image is generated using, for example, two parameters corresponding to the horizontal direction and the vertical direction, and the two parameters corresponding to the horizontal direction and the vertical direction are properly reflected in the prediction image.

[0721] Помимо этого, например, схема декодера 200 может извлекать прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Здесь, первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.[0721] In addition, for example, the decoder circuit 200 may extract the predicted pixel value by dividing by 2 the sum of the first pixel value, the second pixel value, the first correction value, and the second correction value. Here, the first correction value corresponds to the product of the difference between the first horizontal gradient value and the second horizontal gradient value and the sixth parameter, and the second correction value corresponds to the product of the difference between the first vertical gradient value and the second vertical gradient value and the seventh parameter.

[0722] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.[0722] Thus, a prediction image can be suitably generated using, for example, two parameters corresponding to a horizontal direction and a vertical direction.

[0723] Помимо этого, например, схема декодера 200 может извлекать прогнозное пиксельное значение согласно выражению (10.10), описанному выше. Здесь, I0 обозначает первое пиксельное значение, I1 обозначает второе пиксельное значение, u обозначает шестой параметр, Ix 0 обозначает первое значение горизонтального градиента, Ix 1 обозначает второе значение горизонтального градиента, v обозначает седьмой параметр, Iy 0 обозначает первое значение вертикального градиента, и Iy 1 обозначает второе значение вертикального градиента. Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.[0723] In addition, for example, the decoder circuit 200 may extract the predicted pixel value according to expression (10.10) described above. Here, I 0 denotes the first pixel value, I 1 denotes the second pixel value, u denotes the sixth parameter, I x 0 denotes the first horizontal gradient value, I x 1 denotes the second horizontal gradient value, v denotes the seventh parameter, I y 0 denotes the first value vertical gradient, and I y 1 denotes the second value of the vertical gradient. Thus, the prediction image can be suitably generated according to an expression associated with, for example, two parameters corresponding to a horizontal direction and a vertical direction.

[0724] Помимо этого, например, схема декодера 200 может извлекать по меньшей мере один параметр в двунаправленном оптическом потоке с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра и формировать прогнозное изображение с использованием по меньшей мере одного параметра в двунаправленном оптическом потоке и двунаправленном оптическом потоке. Таким образом, декодер 200 допускает надлежащее формирование прогнозного изображения.[0724] In addition, for example, the decoder circuit 200 may extract at least one parameter in the bidirectional optical flow using a first parameter, a second parameter, a third parameter, a fourth parameter, and a fifth parameter, and generate a prediction image using at least one parameter in bidirectional optical flow and bidirectional optical flow. Thus, the decoder 200 allows the prediction image to be properly generated.

[0725] По меньшей мере, один параметр в двунаправленном оптическом потоке может представлять собой одно из шестого параметра и седьмого параметра, описанных выше.[0725] The at least one parameter in the bidirectional optical flow may be one of the sixth parameter and the seventh parameter described above.

[0726] Следует отметить, что модуль 218 внешнего прогнозирования декодера 200 может выполнять операцию, описанную выше в качестве схемы декодера 200.[0726] It should be noted that the external prediction module 218 of the decoder 200 can perform the operation described above as a circuit of the decoder 200.

[0727] Другие примеры [0727] Other examples

Кодер 100 и декодер 200 в каждом из вышеописанных примеров могут использоваться в качестве кодера изображений и декодера изображений, соответственно, либо могут использоваться в качестве видеокодера и видеодекодера, соответственно.The encoder 100 and decoder 200 in each of the above examples may be used as an image encoder and an image decoder, respectively, or may be used as a video encoder and video decoder, respectively.

[0728] Альтернативно, каждый из кодера 100 и декодера 200 может использоваться в качестве устройства прогнозирования. Другими словами, кодер 100 и декодер 200 могут соответствовать только модулю 126 внешнего прогнозирования и модулю 218 внешнего прогнозирования, соответственно. Другие составляющие элементы могут включаться в другие устройства.[0728] Alternatively, encoder 100 and decoder 200 may each be used as a predictor. In other words, the encoder 100 and decoder 200 can only correspond to the inter-prediction module 126 and the inter-prediction module 218, respectively. Other constituent elements may be included in other devices.

[0729] Помимо этого по меньшей мере часть каждого из примеров, описанных выше, может использоваться в качестве способа кодирования или способа декодирования, может использоваться в качестве способа прогнозирования либо может использоваться в качестве другого способа.[0729] In addition, at least a portion of each of the examples described above may be used as an encoding method or a decoding method, may be used as a prediction method, or may be used as another method.

[0730] Помимо этого, каждый составляющий элемент может быть сконфигурирован со специализированными аппаратными средствами или может реализовываться посредством выполнения программно-реализованной программы, подходящей для составляющего элемента. Каждый составляющий элемент может реализовываться посредством модуля выполнения программ, такого как CPU, либо процессора, считывающего и выполняющего программно-реализованную программу, записанную на носителе записи, таком как жесткий диск или полупроводниковое запоминающее устройство.[0730] In addition, each constituent element may be configured with dedicated hardware or may be implemented by executing a software program suitable for the constituent element. Each constituent element may be implemented by a program execution unit, such as a CPU, or a processor that reads and executes a software program recorded on a recording medium, such as a hard disk or a semiconductor storage device.

[0731] Более конкретно, каждый из кодера 100 и декодера 200 может включать в себя схему обработки и устройство хранения данных, которое электрически соединяется со схемой обработки и является доступным из схемы обработки. Например, схема обработки соответствует процессору a1 или b1, и устройство хранения данных соответствует запоминающему устройству a2 или b2.[0731] More specifically, encoder 100 and decoder 200 may each include processing circuitry and a data storage device that is electrically coupled to and accessible from the processing circuitry. For example, the processing circuit corresponds to a processor a1 or b1, and the data storage device corresponds to a storage device a2 or b2.

[0732] Схема обработки включает в себя по меньшей мере одно из специализированных аппаратных средств и модуля выполнения программ и выполняет обработку с использованием устройства хранения данных. Помимо этого, устройство хранения данных сохраняет программу, которая выполнена посредством модуля выполнения программ, когда схема обработки включает в себя модуль выполнения программ.[0732] The processing circuitry includes at least one of dedicated hardware and a program execution unit and performs processing using a data storage device. In addition, the data storage device stores a program that is executed by the program execution unit when the processing circuit includes the program execution unit.

[0733] Здесь, программное обеспечение, которое реализует кодер 100, декодер 200 и т.п., описанные выше, представляет собой программу, указываемую ниже.[0733] Here, the software that implements the encoder 100, decoder 200 and the like described above is the program listed below.

[0734] Например, программа может инструктировать компьютеру осуществлять способ кодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0734] For example, a program may cause a computer to implement an encoding method including: retrieving an absolute value of a sum of horizontal gradient values that indicates the absolute value of the sum of a horizontal gradient value at a relative pixel position in a first range and a horizontal gradient value at a relative pixel position in a second range range, for each of a plurality of pairs of relative pixel positions in the first range and a relative pixel position in a second range of the plurality of pairs of relative pixel positions, the first range including a first reference block for the current block, the second range including a second reference block for the current block, wherein a plurality of pairs of relative pixel positions are determined generally and relative to the first range and the second range; retrieving, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieving, as a second parameter, the total sum of a plurality of absolute values of the sums of vertical gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; retrieving, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates a difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverting or storing the plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieving a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieving, as a third parameter, the total sum of the horizontally related pixel difference values of the set extracted, respectively, for the plurality of pairs of relative pixel positions; inverting or storing a plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieving a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values extracted, respectively, for a plurality of pairs of relative pixel positions; inverting or storing the plus or minus sign of the sum of the horizontal gradient values extracted for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieving the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; and generating a prediction image to be used to encode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0735] Например, программа инструктирует компьютеру осуществлять способ декодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.[0735] For example, the program instructs the computer to perform a decoding method including: retrieving an absolute value of a sum of horizontal gradient values that indicates the absolute value of the sum of a horizontal gradient value at a relative pixel position in a first range and a horizontal gradient value at a relative pixel position in a second range , for each of a plurality of pairs of relative pixel positions in a first range and a relative pixel position in a second range of the plurality of pairs of relative pixel positions, the first range including a first reference block for the current block, the second range including a second reference block for the current block, wherein a plurality of pairs of relative pixel positions are determined generally and relative to the first range and the second range; retrieving, as a first parameter, the total sum of a plurality of absolute values of the sums of horizontal gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving the absolute value of the sum of the vertical gradient values, which indicates the absolute value of the sum of the vertical gradient value at the relative pixel position in the first range and the vertical gradient value at the relative pixel position in the second range, for each of the plurality of pairs of relative pixel positions; retrieving, as a second parameter, the total sum of a plurality of absolute values of the sums of vertical gradient values extracted, respectively, for a plurality of pairs of relative pixel positions; retrieving, for each of the plurality of pairs of relative pixel positions, a pixel difference value that indicates a difference between a pixel value at a relative pixel position in the first range and a pixel value at a relative pixel position in the second range; inverting or storing the plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the horizontal gradient values, which indicates the sum of the horizontal gradient value at the relative pixel position in the first range and a horizontal gradient value at a relative pixel position in the second range, and retrieving a horizontally associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the horizontally associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the horizontal gradient values; retrieving, as a third parameter, the total sum of the horizontally related pixel difference values of the set extracted, respectively, for the plurality of pairs of relative pixel positions; inverting or storing a plus or minus sign of the pixel difference value extracted for each of the plurality of pairs of relative pixel positions, according to the plus or minus sign of the sum of the vertical gradient values, which indicates the sum of the vertical gradient value at the relative pixel position in the first range and a vertical gradient value at a relative pixel position in the second range, and retrieving a vertically associated pixel difference value that indicates a pixel difference value to be retrieved for a pair of relative pixel positions, wherein the vertically associated pixel difference value has a plus sign or " minus", inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fourth parameter, the total sum of a plurality of vertically related pixel difference values extracted, respectively, for a plurality of pairs of relative pixel positions; inverting or storing the plus or minus sign of the sum of the horizontal gradient values extracted for each of the plurality of pairs of relative pixel positions according to the plus or minus sign of the sum of the vertical gradient values, and retrieving the vertically related sum of the horizontal gradient values, which indicates the sum of the horizontal gradient values having a plus or minus sign, inverted or stored according to the plus or minus sign of the sum of the vertical gradient values; retrieving, as a fifth parameter, the total sum of the vertically related sums of the plurality of horizontal gradient values extracted, respectively, for the plurality of pairs of relative pixel positions; and generating a prediction image to be used to decode the current block using the first parameter, the second parameter, the third parameter, the fourth parameter and the fifth parameter.

[0736] Помимо этого, каждый составляющий элемент может представлять собой схему, как описано выше. Схемы могут составлять схему в целом или могут представлять собой отдельные схемы. Альтернативно, каждый составляющий элемент может реализовываться как общий процессор или может реализовываться как специализированный процессор.[0736] In addition, each constituent element may be a circuit, as described above. The circuits may constitute a circuit as a whole or may be separate circuits. Alternatively, each constituent element may be implemented as a general processor or may be implemented as a dedicated processor.

[0737] Помимо этого, процесс, который выполняется посредством конкретного составляющего элемента, может выполняться посредством другого составляющего элемента. Помимо этого, порядок выполнения обработки может модифицироваться, или множество процессов могут выполняться параллельно. Помимо этого, кодер и декодер могут включать в себя кодер 100 и декодер 200.[0737] In addition, a process that is performed by a particular component element may be performed by another component element. In addition, the processing order may be modified, or multiple processes may be executed in parallel. In addition, the encoder and decoder may include an encoder 100 and a decoder 200.

[0738] Помимо этого, порядковые числа, к примеру, "первый" и "второй", используемые для пояснения, могут изменяться надлежащим образом. Новое порядковое число может присоединяться к составляющему элементу, или порядковое число, присоединенное к составляющему элементу, может удаляться.[0738] In addition, the ordinal numbers, for example, "first" and "second", used for explanation, can be changed as appropriate. A new ordinal may be added to the constituent element, or an ordinal attached to the constituent element may be removed.

[0739] Хотя аспекты кодера 100 и декодера 200 описываются на основе множества примеров, аспекты кодера 100 и декодера 200 не ограничены этими примерами. Объем аспектов кодера 100 и декодера 200 может охватывать варианты осуществления, получаемые посредством добавления, в любой из этих вариантов осуществления, различных видов модификаций, которые должны быть очевидными для специалистов в данной области техники без отступления от объема настоящего раскрытия, и вариантов осуществления, конфигурируемых посредством комбинирования составляющих элементов в различных вариантах осуществления.[0739] Although aspects of the encoder 100 and decoder 200 are described based on many examples, aspects of the encoder 100 and decoder 200 are not limited to these examples. The scope of aspects of the encoder 100 and decoder 200 may include embodiments obtained by adding, to any of these embodiments, various types of modifications that should be obvious to those skilled in the art without departing from the scope of the present disclosure, and embodiments configurable by combining the constituent elements in various embodiments.

[0740] Один или более аспектов, раскрытых в данном документе, могут выполняться посредством комбинирования по меньшей мере части других аспектов в настоящем раскрытии. Помимо этого, один или более аспектов, раскрытых в данном документе, могут выполняться посредством комбинирования, с другими аспектами, части процессов, указываемых на любой из блок-схем последовательности операций способа согласно аспектам, части конфигурации любого из устройств, части синтаксисов и т.д.[0740] One or more aspects disclosed herein may be accomplished by combining at least a portion of the other aspects in the present disclosure. In addition, one or more aspects disclosed herein may be performed by combining, with other aspects, portions of the processes indicated in any of the flowcharts of the aspects, portions of the configuration of any of the devices, portions of syntaxes, etc. .

[0741] Реализации и варианты применения [0741] Implementations and Applications

Как описано в каждом из вышеописанных вариантов осуществления, каждый функциональный или рабочий блок типично может реализовываться, например, в качестве MPU (микропроцессора) и запоминающего устройства. Кроме того, процессы, выполняемые посредством каждого из функциональных блоков, могут реализовываться в качестве модуля выполнения программ, такого как процессор, который считывает и выполняет программное обеспечение (программу), записанное на носителе записи, таком как ROM. Программное обеспечение может быть распределенным. Программное обеспечение может записываться на множестве носителей записи, таких как полупроводниковое запоминающее устройство. Следует отметить, что каждый функциональный блок также может реализовываться в качестве аппаратных средств (специализированной схемы). Могут использоваться различные комбинации аппаратных средств и программного обеспечения.As described in each of the above-described embodiments, each functional or operating unit can typically be implemented, for example, as an MPU (microprocessor) and a memory device. In addition, processes carried out by each of the functional blocks may be implemented as a program execution unit such as a processor that reads and executes software (program) recorded on a recording medium such as ROM. Software can be distributed. The software may be recorded on a variety of recording media, such as a semiconductor storage device. It should be noted that each functional block can also be implemented as hardware (specialized circuitry). Various combinations of hardware and software may be used.

[0742] Кроме того, обработка, описанная в каждом из вариантов осуществления, может реализовываться через интегрированную обработку с использованием одного устройства (системы) и, альтернативно, может реализовываться через децентрализованную обработку с использованием множества устройств. Кроме того, процессор, который выполняет вышеописанную программу, может представлять собой один процессор или множество процессоров. Другими словами, может выполняться интегрированная обработка, и, альтернативно, может выполняться децентрализованная обработка.[0742] In addition, the processing described in each of the embodiments may be implemented through integrated processing using a single device (system) and, alternatively, may be implemented through decentralized processing using multiple devices. Moreover, the processor that executes the above-described program may be a single processor or a plurality of processors. In other words, integrated processing may be performed, and alternatively, decentralized processing may be performed.

[0743] Варианты осуществления настоящего раскрытия не ограничены вышеуказанными примерными вариантами осуществления; различные модификации могут вноситься в примерные варианты осуществления, результаты которых также включаются в пределы объема вариантов осуществления настоящего раскрытия.[0743] Embodiments of the present disclosure are not limited to the above exemplary embodiments; Various modifications may be made to the exemplary embodiments, the effects of which are also included within the scope of the embodiments of the present disclosure.

[0744] Далее описываются примеры вариантов применения способа кодирования движущихся кадров (способа кодирования изображений) и способа декодирования движущихся кадров (способа декодирования изображений), описанных в каждом из вышеуказанных вариантов осуществления, а также различных систем, которые реализуют примеры вариантов применения. Такая система может характеризоваться как включающая в себя кодер изображений, который использует способ кодирования изображений, декодер изображений, который использует способ декодирования изображений, и кодер-декодер изображений, который включает в себя как кодер изображений, так и декодер изображений. Другие конфигурации такой системы могут модифицироваться для каждого отдельного случая.[0744] The following describes application examples of the moving frame encoding method (image encoding method) and the moving frame decoding method (image decoding method) described in each of the above embodiments, as well as various systems that implement the example applications. Such a system may be characterized as including an image encoder that uses an image encoding method, an image decoder that uses an image decoding method, and an image codec that includes both an image encoder and an image decoder. Other configurations of such a system can be modified for each individual case.

[0745] Примеры использования [0745] Examples of use

Фиг. 56 иллюстрирует общую конфигурацию системы ex100 предоставления контента, подходящей для реализации услуги распространения контента. Зона, в которой предоставляется услуга связи, разделяется на соты требуемых размеров, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые представляют собой стационарные беспроводные станции в проиллюстрированном примере, расположены в соответствующих сотах.Fig. 56 illustrates a general configuration of a content provision system ex100 suitable for implementing a content distribution service. The area in which the communication service is provided is divided into cells of required sizes, and base stations ex106, ex107, ex108, ex109 and ex110, which are fixed wireless stations in the illustrated example, are located in the corresponding cells.

[0746] В системе ex100 предоставления контента, устройства, включающие в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, соединяются с Интернетом ex101 через поставщика ex102 Интернет-услуг или сеть ex104 связи и базовые станции ex106-ex110. Система ex100 предоставления контента может комбинировать и соединять любую комбинацию вышеуказанных устройств. В различных реализациях, устройства могут прямо или косвенно соединяться между собой через телефонную сеть или связь ближнего радиуса действия, а не через базовые станции ex106-ex110. Дополнительно, потоковый сервер ex103 может соединяться с устройствами, включающими в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, например, через Интернет ex101. Потоковый сервер ex103 также может соединяться, например, с терминалом в публичной точке доступа в самолете ex117 через спутник ex116.[0746] In the content delivery system ex100, devices including a computer ex111, a gaming device ex112, a camera ex113, a home appliance ex114, and a smartphone ex115 are connected to the Internet ex101 through an Internet service provider ex102 or a communications network ex104 and base stations ex106- ex110. The content delivery system ex100 can combine and connect any combination of the above devices. In various implementations, devices may directly or indirectly communicate with each other through the telephone network or short-range communications rather than through the ex106-ex110 base stations. Additionally, the streaming server ex103 can connect with devices including a computer ex111, a gaming device ex112, a camera ex113, a home appliance ex114 and a smartphone ex115, for example, via the Internet ex101. The ex103 streaming server can also connect, for example, to a terminal on a public hotspot on an ex117 aircraft via an ex116 satellite.

[0747] Следует отметить, что вместо базовых станций ex106-ex110, могут использоваться точки беспроводного доступа или публичные точки доступа. Потоковый сервер ex103 может соединяться с сетью ex104 связи непосредственно, а не через Интернет ex101 или поставщика ex102 Интернет-услуг, и может соединяться с самолетом ex117 непосредственно, а не через спутник ex116.[0747] It should be noted that instead of base stations ex106-ex110, wireless access points or public access points may be used. The streaming server ex103 can connect to the communications network ex104 directly rather than via the Internet ex101 or Internet service provider ex102, and can connect to the aircraft ex117 directly rather than via a satellite ex116.

[0748] Камера ex113 представляет собой устройство, допускающее захват неподвижных изображений и видео, к примеру, цифровую камеру. Смартфон ex115 представляет собой смартфон, сотовый телефон или телефон по стандарту системы персональных мобильных телефонов (PHS), который может работать согласно стандартам системы мобильной связи для 2G-, 3G-, 3,9G- и 4G-систем, а также 5G-системы следующего поколения.[0748] The camera ex113 is a device capable of capturing still images and video, such as a digital camera. The ex115 smartphone is a smartphone, cellular phone or personal mobile phone system (PHS) phone that can operate according to mobile communication system standards for 2G, 3G, 3.9G and 4G systems, as well as the following 5G system generations.

[0749] Бытовой прибор ex114, например, представляет собой холодильник или устройство, включенное в домашнюю систему совместной выработки тепла и электроэнергии на топливных элементах.[0749] Home appliance ex114, for example, is a refrigerator or device included in a home fuel cell cogeneration system.

[0750] В системе ex100 предоставления контента, терминал, включающий в себя функцию захвата изображений и/или видео, допускает, например, потоковую передачу вживую посредством соединения с потоковым сервером ex103, например, через базовую станцию ex106. При потоковой передаче вживую, терминал (например, компьютер ex111, игровое устройство ex112, камера ex113, бытовой прибор ex114, смартфон ex115 или терминал в самолете ex117) может выполнять обработку кодирования, описанную в вышеприведенных вариантах осуществления, для контента неподвижных изображений или видеоконтента, захваченного пользователем через терминал, может мультиплексировать видеоданные, полученные через кодирование, и аудиоданные, полученные посредством кодирования аудио, соответствующего видео, и может передавать полученные данные на потоковый сервер ex103. Другими словами, терминал функционирует в качестве кодера изображений согласно одному аспекту настоящего раскрытия.[0750] In the content delivery system ex100, a terminal including an image and/or video capture function allows, for example, live streaming through a connection to a streaming server ex103, for example, through a base station ex106. When live streaming, a terminal (eg, a computer ex111, a gaming device ex112, a camera ex113, a home appliance ex114, a smartphone ex115, or an airplane terminal ex117) may perform the encoding processing described in the above embodiments for still image content or video content captured by the user through the terminal, can multiplex video data obtained through encoding and audio data obtained through audio encoding corresponding to the video, and can transmit the obtained data to the streaming server ex103. In other words, the terminal functions as an image encoder according to one aspect of the present disclosure.

[0751] Потоковый сервер ex103 передает в потоковом режиме передаваемые данные контента в клиенты, которые запрашивают поток. Примеры клиента включают в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114, смартфон ex115 и терминалы в самолете ex117, которые допускают декодирование вышеописанных кодированных данных. Устройства, которые принимают передаваемые в потоковом режиме данные, могут декодировать и воспроизводить принимаемые данные. Другими словами, устройства могут функционировать в качестве декодера изображений согласно одному аспекту настоящего раскрытия.[0751] Streaming server ex103 streams transmitted content data to clients that request the stream. Examples of the client include a computer ex111, a gaming device ex112, a camera ex113, a home appliance ex114, a smartphone ex115, and airplane terminals ex117 that are capable of decoding the above-described encoded data. Devices that receive streaming data can decode and play back the received data. In other words, the devices may function as an image decoder in accordance with one aspect of the present disclosure.

[0752] Децентрализованная обработка [0752] Decentralized processing

Потоковый сервер ex103 может реализовываться в качестве множества серверов или компьютеров, между которыми разделяются такие задачи, как обработка, запись и потоковая передача данных. Например, потоковый сервер ex103 может реализовываться в качестве сети доставки контента (CDN), которая передает в потоковом режиме контент через сеть, соединяющую несколько краевых серверов, расположенных по всему миру. В CDN, краевой сервер физически около клиента может динамически назначаться клиенту. Контент кэшируется и передается в потоковом режиме на краевой сервер, чтобы уменьшать время загрузки. В случае, например, определенного типа ошибки или изменения подключения, например, вследствие пика в трафике, можно передавать в потоковом режиме данные стабильно на высоких скоростях, поскольку можно избегать затрагиваемых частей сети, например, посредством разделения обработки между множеством краевых серверов или переключения нагрузок потоковой передачи на другой краевой сервер и продолжения потоковой передачи.The ex103 streaming server can be implemented as a plurality of servers or computers that share tasks such as processing, recording, and streaming data. For example, the ex103 streaming server may be implemented as a content delivery network (CDN) that streams content over a network connecting multiple edge servers located around the world. In a CDN, an edge server physically near the client can be dynamically assigned to the client. Content is cached and streamed to the edge server to reduce loading times. In the event of, for example, a certain type of error or connection change, such as due to a spike in traffic, data can be streamed reliably at high speeds because affected parts of the network can be avoided, for example by dividing processing among multiple edge servers or switching streaming loads transfer to another edge server and continue streaming.

[0753] Децентрализация не ограничена просто разделением обработки для потоковой передачи; кодирование захваченных данных может разделяться между и выполняться посредством терминалов, на серверной стороне либо обоими способами. В одном примере, при типичном кодировании, обработка выполняется в двух контурах. Первый контур служит для обнаружения того, насколько усложненным является изображение, на покадровой или посценовой основе либо для обнаружения нагрузки при кодировании. Второй контур служит для обработки, которая сохраняет качество изображений и повышает эффективность кодирования. Например, можно снижать нагрузку по обработке терминалов и повышать качество и эффективность кодирования контента за счет инструктирования терминалам выполнять первый контур кодирования и инструктирования серверной стороне, которая принимает контент, выполнять второй контур кодирования. В таком случае, при приеме запроса на декодирование, кодированные данные, получающиеся в результате первого контура, выполняемого посредством одного терминала, могут приниматься и воспроизводиться на другом терминале приблизительно в реальном времени. Это позволяет реализовывать плавную потоковую передачу в режиме реального времени.[0753] Decentralization is not limited to simply sharing processing for streaming; Encoding of the captured data can be shared between and performed via terminals, on the server side, or both. In one example, in typical encoding, processing is performed in two loops. The first loop serves to detect how complex the image is on a frame-by-frame or scene-by-scene basis, or to detect encoding load. The second circuit provides processing that preserves image quality and improves encoding efficiency. For example, it is possible to reduce the processing load of the terminals and improve the quality and efficiency of content encoding by causing the terminals to perform a first encoding loop and causing the server side that receives the content to perform a second encoding loop. In such a case, when a decoding request is received, the encoded data resulting from the first loop performed by one terminal can be received and reproduced at the other terminal in approximately real time. This allows for smooth, real-time streaming.

[0754] В другом примере, камера ex113 и т.п. извлекает количество признаков (количество признаков или характеристик) из изображения, сжимает данные, связанные с количеством признаков, в качестве метаданных, и передает сжатые метаданные на сервер. Например, сервер определяет значимость объекта на основе количества признаков и изменяет точность квантования, соответственно, чтобы выполнять сжатие, подходящее для смыслового значения (или значимости контента) изображения. Данные количества признаков являются, в частности, эффективными при повышении точности и эффективности прогнозирования векторов движения во время второго прохода сжатия, выполняемого посредством сервера. Кроме того, кодирование, которое имеет относительно низкую нагрузку по обработке, такое как кодирование переменной длины (VLC), может обрабатываться посредством терминала, и кодирование, которое имеет относительно высокую нагрузку по обработке, такое как контекстно-адаптивное двоичное арифметическое кодирование (CABAC), может обрабатываться посредством сервера.[0754] In another example, camera ex113, etc. extracts the feature count (number of features or characteristics) from the image, compresses the data associated with the feature count as metadata, and transmits the compressed metadata to the server. For example, the server determines the significance of an object based on the number of features and changes the quantization precision accordingly to perform compression appropriate for the semantic meaning (or content significance) of the image. These feature counts are particularly effective in improving the accuracy and efficiency of predicting motion vectors during a second pass of compression performed by the server. In addition, coding that has a relatively low processing load, such as variable length coding (VLC), can be processed by the terminal, and coding that has a relatively high processing load, such as context-adaptive binary arithmetic coding (CABAC), can be processed via the server.

[0755] В еще одном другом примере, возникают случаи, в которых множество видео приблизительно идентичной сцены захватываются посредством множества терминалов, например, на стадионе, в торговом центре или на фабрике. В таком случае, например, кодирование может быть децентрализовано посредством разделения задач обработки между множеством терминалов, которые захватывают видео, и, при необходимости, другими терминалами, которые не захватывают видео, и сервером в расчете на единицу. Единицы, например, могут представлять собой группы кадров (GOP), кадры или тайлы, получающиеся в результате разделения кадра. Это позволяет уменьшать время загрузки и достигать потоковой передачи, которая находится ближе к реальному времени.[0755] In yet another example, cases arise in which multiple videos of an approximately identical scene are captured through multiple terminals, for example, in a stadium, a shopping mall, or a factory. In such a case, for example, encoding can be decentralized by dividing processing tasks among multiple terminals that capture video and, if necessary, other terminals that do not capture video, and a server on a per-unit basis. The units, for example, can be groups of frames (GOPs), frames, or tiles resulting from dividing a frame. This allows you to reduce loading times and achieve streaming that is closer to real time.

[0756] Поскольку видео имеют приблизительно идентичную сцену, управление и/или инструкции могут выполняться посредством сервера таким образом, что на видео, захваченные посредством терминалов, можно перекрестно ссылаться. Кроме того, сервер может принимать кодированные данные из терминалов, изменять опорную взаимосвязь между элементами данных либо корректировать или заменять непосредственно кадры и затем выполнять кодирование. Это позволяет формировать поток с увеличенным качеством и эффективностью для отдельных элементов данных.[0756] Since the videos have approximately the same scene, control and/or instructions can be performed by the server such that videos captured through the terminals can be cross-referenced. In addition, the server may receive encoded data from the terminals, change the reference relationship between data elements, or adjust or replace the frames themselves, and then perform encoding. This allows you to generate a stream with increased quality and efficiency for individual data elements.

[0757] Кроме того, сервер может передавать в потоковом режиме видеоданные после выполнения транскодирования, чтобы преобразовывать формат кодирования видеоданных. Например, сервер может преобразовывать формат кодирования из MPEG в VP (например, VP9), может преобразовывать H.264 в H.265 и т.д.[0757] In addition, the server may stream video data after performing transcoding to convert the encoding format of the video data. For example, the server can convert the encoding format from MPEG to VP (for example, VP9), can convert H.264 to H.265, etc.

[0758] Таким образом, кодирование может выполняться посредством терминала или одного или более серверов. Соответственно, хотя устройство, которое выполняет кодирование, называется "сервером" или "терминалом" в нижеприведенном описании, некоторые или все процессы, выполняемые посредством сервера, могут выполняться посредством терминала, и аналогично некоторые или все процессы, выполняемые посредством терминала, могут выполняться посредством сервера. Это также применяется к процессам декодирования.[0758] Thus, encoding may be performed by a terminal or one or more servers. Accordingly, although the device that performs the encoding is referred to as a “server” or “terminal” in the following description, some or all of the processes performed by the server may be performed by the terminal, and similarly, some or all of the processes performed by the terminal may be performed by the server . This also applies to decoding processes.

[0759] Трехмерный многоракурсный режим [0759] 3D Multi-View Mode

Происходит увеличение использования изображений или видео, комбинированных из изображений или видео различных сцен, параллельно захваченных, либо идентичной сцены, захваченной из различных углов посредством множества терминалов, таких как камера ex113 и/или смартфон ex115. Видео, захваченное посредством терминалов, может комбинироваться, например, на основе отдельно полученной относительной позиционной взаимосвязи между терминалами или областями в видео, имеющими совпадающие характерные точки.There is an increase in the use of images or videos that are combined from images or videos of different scenes captured in parallel, or an identical scene captured from different angles through multiple terminals, such as the ex113 camera and/or the ex115 smartphone. Video captured by the terminals may be combined, for example, based on a separately obtained relative positional relationship between terminals or regions in the video having matching feature points.

[0760] В дополнение к кодированию двумерных движущихся кадров, сервер может кодировать неподвижное изображение на основе анализа сцен движущегося кадра, автоматически либо в момент времени, указываемый пользователем, и передавать кодированное неподвижное изображение в приемный терминал. Кроме того, когда сервер может получать относительную позиционную взаимосвязь между терминалами захвата видео, в дополнение к двумерным движущимся кадрам, сервер может формировать трехмерную геометрию сцены на основе видео идентичной сцены, захваченной из различных углов. Сервер может отдельно кодировать трехмерные данные, сформированные, например, из облака точек, и, на основе результата распознавания или отслеживания человека или объекта с использованием трехмерных данных, может выбирать или восстанавливать и формировать видео, которые должно передаваться в приемный терминал, из видео, захваченных посредством множества терминалов.[0760] In addition to encoding two-dimensional moving frames, the server may encode the still image based on scene analysis of the moving frame, either automatically or at a time specified by the user, and transmit the encoded still image to the receiving terminal. In addition, when the server can obtain the relative positional relationship between video capture terminals, in addition to two-dimensional moving frames, the server can generate three-dimensional scene geometry based on video of an identical scene captured from different angles. The server may separately encode 3D data generated from, for example, a point cloud, and, based on the result of recognizing or tracking a person or object using the 3D data, may select or reconstruct and generate videos to be transmitted to the receiving terminal from the videos captured through multiple terminals.

[0761] Это обеспечивает возможность пользователю пользоваться сценой посредством свободного выбора видео, соответствующих терминалам захвата видео, и обеспечивает возможность пользователю пользоваться контентом, полученным посредством извлечения видео в выбранной точке обзора из трехмерных данных, восстановленных из множества изображений или видео, видео. Кроме того, аналогично видео, звук может записываться из относительно различных углов, и сервер может мультиплексировать аудио из конкретного угла или пространства с соответствующим видео и передавать мультиплексированное видео и аудио.[0761] This allows the user to enjoy the scene by freely selecting videos corresponding to the video capture terminals, and allows the user to enjoy the content obtained by extracting video at a selected viewpoint from 3D data recovered from a plurality of images or video, video. Additionally, similar to video, audio can be recorded from relatively different angles, and the server can multiplex the audio from a particular angle or space with the corresponding video and transmit the multiplexed video and audio.

[0762] В последние годы, также становится популярным контент, который представляет собой составной объект из реального мира и виртуального мира, к примеру, контент в стиле виртуальной реальности (VR) и дополненной реальности (AR). В случае VR-изображений, сервер может создавать изображения из точек обзора левого и правого глаза и выполнять кодирование, которое допускает ссылку между двумя изображениями точек обзора, такое как многовидовое кодирование (MVC), и альтернативно, может кодировать изображения в качестве отдельных потоков без ссылки. Когда изображения декодируются в качестве отдельных потоков, потоки могут синхронизироваться при воспроизведении таким образом, чтобы воссоздавать виртуальное трехмерное пространство в соответствии с точкой обзора пользователя.[0762] In recent years, content that is a composite of the real world and the virtual world, such as virtual reality (VR) and augmented reality (AR) style content, has also become popular. In the case of VR images, the server may create images from the left and right eye viewpoints and perform encoding that allows a link between the two viewpoint images, such as multi-view encoding (MVC), and alternatively, may encode the images as separate streams without a link . When images are decoded as separate streams, the streams can be synchronized during playback in such a way as to recreate the virtual 3D space according to the user's point of view.

[0763] В случае AR-изображений, сервер может накладывать информацию виртуальных объектов, существующую в виртуальном пространстве, на информацию камеры, представляющую пространство реального мира, на основе трехмерной позиции или перемещения с точки зрения пользователя. Декодер может получать или сохранять информацию виртуальных объектов и трехмерные данные, формировать двумерные изображения на основе перемещения с точки зрения пользователя и затем формировать наложенные данные посредством прозрачного соединения изображений. Альтернативно, декодер может передавать, в сервер, движение с точки зрения пользователя в дополнение к запросу на информацию виртуальных объектов. Сервер может формировать наложенные данные на основе трехмерных данных, сохраненных на сервере в соответствии с принимаемым движением, и кодировать и передавать в потоковом режиме сформированные наложенные данные в декодер. Следует отметить, что наложенные данные типично включают в себя, в дополнение к RGB-значениям, значение α, указывающее прозрачность, и сервер задает значение α для секций, отличных от объекта, сформированного из трехмерных данных, например, равным 0, и может выполнять кодирование в то время, когда эти секции являются прозрачными. Альтернативно, сервер может задавать фон как определенное RGB-значение, такое как цветовая рирпроекция, и формировать данные, в которых зоны, отличные от объекта, задаются в качестве фона. Определенное RGB-значение может быть предварительно определено.[0763] In the case of AR images, the server may overlay virtual object information existing in virtual space with camera information representing real world space based on three-dimensional position or movement from the user's perspective. The decoder can receive or store virtual object information and 3D data, generate 2D images based on movement from the user's point of view, and then generate overlay data by transparently connecting the images. Alternatively, the decoder may transmit, to the server, motion from the user's point of view in addition to a request for virtual object information. The server may generate overlay data based on three-dimensional data stored in the server according to the received motion, and encode and stream the generated overlay data to the decoder. It should be noted that the overlay data typically includes, in addition to RGB values, an α value indicating transparency, and the server sets the α value for sections other than the object formed from the 3D data, for example, to 0, and may perform the encoding while these sections are transparent. Alternatively, the server may set the background to a specific RGB value, such as a chroma key, and generate data in which areas other than the object are set as the background. A specific RGB value can be predefined.

[0764] Декодирование аналогично передаваемых в потоковом режиме данных может выполняться посредством клиента (к примеру, терминалов), на серверной стороне либо разделяться между ними. В одном примере, один терминал может передавать запрос на прием на сервер, запрошенный контент может приниматься и декодироваться посредством другого терминала, и декодированный сигнал может передаваться в устройство, имеющее дисплей. Можно воспроизводить данные с высоким качеством изображений посредством децентрализации обработки и надлежащего выбора контента независимо от характеристик обработки непосредственно терминала связи. В еще одном другом примере, в то время как телевизор, например, принимает данные изображений, которые имеют большой размер, область кадра, такая как тайл, полученная посредством разделения кадра, может декодироваться и отображаться на персональном терминале или терминалах зрителя или зрителей телевизора. Это позволяет зрителям совместно использовать вид с большими кадрами, а также каждому зрителю проверять свою назначенную зону или обследовать область более подробно крупным планом.[0764] Decoding of similarly streamed data can be performed on the client (eg, terminals), on the server side, or shared between them. In one example, one terminal may transmit a receive request to a server, the requested content may be received and decoded by the other terminal, and the decoded signal may be transmitted to a device having a display. It is possible to reproduce data with high image quality by decentralizing processing and appropriately selecting content regardless of the processing characteristics of the communication terminal itself. In yet another example, while a television, for example, receives image data that is large in size, an area of a frame, such as a tile, obtained by dividing the frame can be decoded and displayed on the personal terminal or terminals of the viewer or viewers of the television. This allows viewers to share a view with large frames, as well as each viewer to check their assigned area or explore an area in more detail with a close-up view.

[0765] В ситуациях, в которых множество беспроводных соединений являются возможными на небольшие, средние и большие расстояния, в помещениях или вне помещений, может быть возможным прозрачно принимать контент с использованием стандарта системы потоковой передачи, такого как MPEG DASH. Пользователь может переключаться между данными в реальном времени при свободном выборе декодера или устройства отображения, включающего в себя терминал пользователя, дисплеи, размещаемые в помещениях или вне помещений, и т.д. Кроме того, с использованием, например, информации относительно позиции пользователя, декодирование может выполняться при переключении того, какой терминал обрабатывает декодирование, и какой терминал обрабатывает отображение контента. Это позволяет преобразовывать и отображать информацию в то время, когда пользователь находится в движении на маршруте в пункт назначения, на стене близлежащего здания, в которое встраивается устройство, допускающее отображение контента, или на части земли. Кроме того, также можно переключать скорость передачи битов принимаемых данных на основе достижимости для кодированных данных по сети, к примеру, когда кодированные данные кэшируются на сервере, быстро доступном из приемного терминала, либо когда кодированные данные копируются на краевой сервер в службе доставки контента.[0765] In situations in which multiple wireless connections are possible over short, medium and long distances, indoors or outdoors, it may be possible to transparently receive content using a streaming system standard such as MPEG DASH. The user can switch between real-time data by freely selecting a decoder or display device including a user terminal, indoor or outdoor displays, etc. In addition, using, for example, information regarding the user's position, decoding can be performed when switching which terminal processes decoding and which terminal processes content display. This allows information to be converted and displayed while the user is on the move on a route to a destination, on the wall of a nearby building into which a device capable of displaying the content is embedded, or on a piece of ground. In addition, it is also possible to switch the bit rate of the received data based on the reachability of the encoded data over the network, for example, when the encoded data is cached on a server readily accessible from the receiving terminal, or when the encoded data is copied to an edge server in a content delivery service.

[0766] Масштабируемое кодирование [0766] Scalable Coding

В дальнейшем описывается переключение контента со ссылкой на масштабируемый поток, проиллюстрированный на фиг. 57, который кодируется со сжатием через реализацию способа кодирования движущихся кадров, описанного в вышеприведенных вариантах осуществления. Сервер может иметь конфигурацию, в которой контент переключается при использовании временной и/или пространственной масштабируемости потока, которая достигается посредством разделения на и кодирования слоев, как проиллюстрировано на фиг. 57. Следует отметить, что может быть предусмотрено множество отдельных потоков, которые имеют идентичный контент, но различное качество. Другими словами, посредством определения того, какой слой следует декодировать, на основе внутренних факторов, таких как характеристики обработки на стороне декодера, и внешних факторов, таких как полоса пропускания линий связи, сторона декодера может свободно переключаться между контентом низкого разрешения и контентом высокого разрешения при декодировании. Например, в случае, в котором пользователь хочет продолжать просмотр, например, дома на устройстве, таком как телевизор, соединенный с Интернетом, видео, которое пользователь ранее смотрел на смартфоне ex115 в движении, устройство может просто декодировать идентичный поток вплоть до другого слоя, что уменьшает нагрузку на серверной стороне.In the following, content switching will be described with reference to the scalable stream illustrated in FIG. 57, which is compression encoded through an implementation of the moving frame encoding method described in the above embodiments. The server may be configured in which content is switched using temporal and/or spatial stream scalability, which is achieved through partitioning and layer encoding, as illustrated in FIG. 57. It should be noted that there may be multiple separate streams that have identical content but different quality. In other words, by determining which layer to decode based on internal factors such as processing characteristics of the decoder side and external factors such as communication link bandwidth, the decoder side can freely switch between low-resolution content and high-resolution content when decoding. For example, in a case in which the user wants to continue watching, for example, at home on a device such as an Internet-connected TV, a video that the user was previously watching on the ex115 smartphone on the move, the device can simply decode the identical stream down to a different layer, which reduces the load on the server side.

[0767] Кроме того, в дополнение к конфигурации, описанной выше, в которой масштабируемость достигается в результате кодирования кадров в расчете на слой, при этом улучшающий слой находится выше базового слоя, улучшающий слой может включать в себя метаданные, например, на основе статистической информации относительно изображения. Сторона декодера может формировать контент с высоким качеством изображений посредством выполнения формирования изображений со сверхразрешением для кадра в базовом слое на основе метаданных. Формирование изображений со сверхразрешением может улучшать SN-отношение при поддержании разрешения и/или увеличении разрешения. Метаданные включают в себя информацию для идентификации коэффициента линейной или нелинейной фильтрации, используемого при обработке на основе сверхразрешения, либо информацию, идентифицирующую значение параметра при обработке с помощью фильтра, машинном обучении или методе наименьших квадратов, используемом при обработке на основе сверхразрешения.[0767] Additionally, in addition to the configuration described above in which scalability is achieved by encoding frames per layer with an enhancement layer above the base layer, the enhancement layer may include metadata, such as based on statistical information relative to the image. The decoder side can generate high image quality content by performing super-resolution imaging on a frame in the base layer based on the metadata. Super-resolution imaging can improve the SN ratio while maintaining resolution and/or increasing resolution. Metadata includes information to identify the linear or nonlinear filtering coefficient used in super-resolution processing, or information identifying the value of a parameter in filter, machine learning, or least squares processing used in super-resolution processing.

[0768] Альтернативно, может предоставляться конфигурация, в которой кадр разделяется, например, на тайлы, например, в соответствии со смысловым значением объекта в изображении. На стороне декодера, только частичная область декодируется посредством выбора тайла для декодирования. Дополнительно, посредством сохранения атрибута объекта (человека, автомобиля, мяча и т.д.) и позиции объекта в видео (координат в идентичных изображениях) в качестве метаданных, сторона декодера может идентифицировать позицию требуемого объекта на основе метаданных и определять то, какой тайл или тайлы включают в себя этот объект. Например, как проиллюстрировано на фиг. 58, метаданные могут сохраняться с использованием структуры хранения данных, отличающейся от пиксельных данных, такой как сообщение с SEI (дополнительной улучшающей информацией) в HEVC. Эти метаданные указывают, например, позицию, размер или цвет основного объекта.[0768] Alternatively, a configuration may be provided in which the frame is divided, for example, into tiles, for example, according to the semantic meaning of an object in the image. On the decoder side, only a partial region is decoded by selecting a tile to decode. Additionally, by storing the attribute of the object (person, car, ball, etc.) and the position of the object in the video (coordinates in identical images) as metadata, the decoder side can identify the position of the desired object based on the metadata and determine which tile or tiles include this object. For example, as illustrated in FIG. 58, metadata may be stored using a data storage structure other than pixel data, such as an SEI (Additional Enhancement Information) message in HEVC. This metadata indicates, for example, the position, size or color of the underlying object.

[0769] Метаданные могут сохраняться в единицах множества кадров, таких как поток, последовательность или единицы произвольного доступа. Сторона декодера может получать, например, время, в которое конкретный человек появляется в видео, и посредством подгонки информации времени к информации единицы кадров, может идентифицировать кадр, в котором присутствует объект, и может определять позицию объекта в кадре.[0769] Metadata may be stored in multiple frame units, such as stream, sequence, or random access units. The decoder side can obtain, for example, the time at which a particular person appears in the video, and by matching the time information to the frame unit information, can identify a frame in which an object is present, and can determine the position of the object in the frame.

[0770] Оптимизация веб-страниц [0770] Web page optimization

Фиг. 59, например, иллюстрирует пример экрана отображения веб-страницы на компьютере ex111. Фиг. 60, например, иллюстрирует пример экрана отображения веб-страницы на смартфоне ex115. Как проиллюстрировано на фиг. 59 и фиг. 60, веб-страница может включать в себя множество ссылок на изображения, которые представляют собой ссылки на контент изображений, и внешний вид веб-страницы может отличаться в зависимости от устройства, используемого для того, чтобы просматривать веб-страницу. Когда множество ссылок на изображения являются просматриваемыми на экране до тех пор, пока пользователь явно не выбирает ссылку на изображение, либо до тех пор, пока ссылка на изображение не находится в аппроксимированном центре экрана, или полная ссылка на изображение не вписывается в экран, устройство отображения (декодер) может отображать, в качестве ссылок на изображения, неподвижные изображения, включенные в контент, или I-кадры, может отображать видео, такое как анимированный GIF-файл с использованием множества неподвижных изображений или I-кадров, например, либо может принимать только базовый слой и декодировать и отображать видео.Fig. 59, for example, illustrates an example of a web page display screen on a computer ex111. Fig. 60, for example, illustrates an example of a web page display screen on a smartphone ex115. As illustrated in FIG. 59 and fig. 60, a web page may include a plurality of image links that are links to image content, and the appearance of the web page may differ depending on the device used to view the web page. When multiple image links are viewable on the screen until the user explicitly selects the image link, either until the image link is approximated in the center of the screen, or the entire image link fits into the screen, display device (decoder) may display, as image links, still images included in the content, or I-frames, may display video, such as an animated GIF using multiple still images or I-frames, for example, or may only receive base layer and decode and display the video.

[0771] Когда ссылка на изображение выбирается пользователем, устройство отображения выполняет декодирование, например, при предоставлении наивысшего приоритета для базового слоя. Следует отметить, что если имеется информация в HTML-коде веб-страницы, указывающая то, что контент является масштабируемым, устройство отображения может декодировать вплоть до улучшающего слоя. Дополнительно, чтобы гарантировать воспроизведение в реальном времени, до того, как осуществляется выбор, либо когда полоса пропускания сильно ограничивается, устройство отображения может уменьшать задержку между моментом времени, в который декодируется опережающий кадр, и моментом времени, в который отображается декодированный кадр (т.е. задержку от начала декодирования контента до отображения контента) посредством декодирования и отображения только прямых опорных кадров (I-кадра, P-кадра, прямого опорного B-кадра). Еще дополнительно, устройство отображения может намеренно игнорировать опорную взаимосвязь между кадрами и приблизительно декодировать все B- и P- кадры в качестве прямых опорных кадров и затем выполнять нормальное декодирование по мере того, как число кадров, принимаемых во времени, увеличивается.[0771] When an image reference is selected by the user, the display device performs decoding, for example, by providing the highest priority to the base layer. It should be noted that if there is information in the HTML code of the web page indicating that the content is scalable, the display device can decode down to the enhancement layer. Additionally, to ensure real-time playback, before a selection is made, or when bandwidth is severely limited, the display device may reduce the delay between the time at which the leading frame is decoded and the time at which the decoded frame is displayed (i.e., e. the delay from the start of decoding the content until the content is displayed) by decoding and displaying only direct reference frames (I-frame, P-frame, forward reference B-frame). Still further, the display device may deliberately ignore the reference relationship between frames and approximately decode all B and P frames as direct reference frames and then perform normal decoding as the number of frames received in time increases.

[0772] Автономное вождение [0772] Autonomous driving

При передаче и приеме в данных неподвижных изображений или видеоданных, таких как двух- или трехмерная картографическая информация для автономного вождения или вождения с использованием помощи автомобиля, приемный терминал может принимать, в дополнение к данным изображений, принадлежащим одному или более слоев, информацию, например, относительно погоды или дорожных работ в качестве метаданных, и ассоциировать метаданные с данными изображений при декодировании. Следует отметить, что метаданные могут назначаться в расчете на слой и, альтернативно, могут просто мультиплексироваться с данными изображений.When transmitting and receiving still image or video data such as two- or three-dimensional map information for autonomous or assisted driving, the receiving terminal may receive, in addition to image data belonging to one or more layers, information such as regarding weather or roadworks as metadata, and associate the metadata with image data when decoding. It should be noted that the metadata may be assigned on a per-layer basis and, alternatively, may simply be multiplexed with the image data.

[0773] В таком случае, поскольку автомобиль, беспилотный аппарат, самолет и т.д., содержащий приемный терминал, является мобильным, приемный терминал может прозрачно принимать и выполнять декодирование при переключении между базовыми станциями из числа базовых станций ex106-ex110 посредством передачи информации, указывающей позицию приемного терминала. Кроме того, в соответствии с выбором, осуществленным пользователем, ситуацией пользователя и/или полосой пропускания соединения, приемный терминал может динамически выбирать то, до какой степени принимаются метаданные, либо то, до какой степени, например, обновляется картографическая информация.[0773] In such a case, since the vehicle, unmanned vehicle, aircraft, etc. containing the receiving terminal is mobile, the receiving terminal can transparently receive and perform decoding when switching between base stations among the base stations ex106 to ex110 by transmitting information , indicating the position of the receiving terminal. In addition, according to the selection made by the user, the user's situation and/or the connection bandwidth, the receiving terminal can dynamically select the extent to which metadata is received or the extent to which, for example, map information is updated.

[0774] В системе ex100 предоставления контента, клиент может принимать, декодировать и воспроизводить, в реальном времени, кодированную информацию, передаваемую пользователем.[0774] In the content delivery system ex100, the client can receive, decode and reproduce, in real time, encoded information transmitted by the user.

[0775] Потоковая передача контента от людей [0775] Streaming content from people

В системе ex100 предоставления контента, в дополнение к длительному контенту с высоким качеством изображений, распространяемому посредством объекта распространения видео, одноадресная или многоадресная потоковая передача короткого контента с низким качеством изображений от человека также является возможной. Популярность такого контента от людей с большой вероятностью должна еще более возрастать. Сервер может сначала выполнять обработку редактирования для контента перед обработкой кодирования, чтобы уточнять контент от людей. Это может достигаться, например, с использованием следующей конфигурации.In the content delivery system ex100, in addition to long-lasting content with high image quality distributed by a video distribution entity, unicast or multicast streaming of short content with low image quality from a person is also possible. The popularity of such content from people is likely to increase even more. The server may first perform editing processing on the content before encoding processing to refine content from people. This can be achieved, for example, using the following configuration.

[0776] В реальном времени, при захвате видеоконтента или контента изображений либо после того, как контент захвачен и накоплен, сервер выполняет обработку распознавания на основе необработанных данных или кодированных данных, такую как обработка ошибок при захвате, обработка поиска сцен, анализ смысловых значений и/или обработка обнаружения объектов. После этого, на основе результата обработки распознавания сервер (при указании или автоматически) редактирует контент, примеры чего включают в себя: коррекцию, такую как коррекция фокуса и/или размытости при движении; удаление сцен с низким приоритетом, таких как сцены, которые имеют низкую яркость по сравнению с другими кадрами или находятся не в фокусе; регулирование краев объектов; и регулирование цветовых тонов. Сервер кодирует отредактированные данные на основе результата редактирования. Известно, что чрезмерно длительные видео имеют тенденцию принимать меньшее число видов. Соответственно, чтобы сохранять контент в пределах конкретной продолжительности, которая масштабируется с продолжительностью исходного видео, сервер может, в дополнение к сценам с низким приоритетом, описанным выше, автоматически вырезать сцены с незначительным перемещением на основе результата обработки изображений. Альтернативно, сервер может формировать и кодировать видеодайджест на основе результата анализа смыслового значения сцены.[0776] In real time, when video or image content is captured or after the content is captured and accumulated, the server performs recognition processing based on the raw data or encoded data, such as capture error handling, scene retrieval processing, semantic meaning analysis, and /or object detection processing. Thereafter, based on the result of the recognition processing, the server (either directed or automatically) edits the content, examples of which include: correction such as correction of focus and/or motion blur; Removing scenes with low priority, such as scenes that have low brightness compared to other frames or are out of focus; adjusting the edges of objects; and regulation of color tones. The server encodes the edited data based on the result of the edit. It is known that overly long videos tend to have fewer views. Accordingly, in order to keep content within a specific duration that scales with the duration of the source video, the server can, in addition to the low priority scenes described above, automatically cut scenes with minor movement based on the result of image processing. Alternatively, the server can generate and encode a video digest based on the result of the analysis of the semantic meaning of the scene.

[0777] Могут возникать случаи, в которых контент от людей может включать в себя контент, который нарушает авторское право, моральное право, книжные права и т.д. Такой случай может приводить к непредпочтительной ситуации для создателя, к примеру, когда контент совместно используется за пределами объема, намеченного создателем. Соответственно, перед кодированием, сервер, например, может редактировать изображения таким образом, чтобы, например, размывать лица людей на периферии экрана или размывать внутреннюю часть дома. Дополнительно, сервер может быть выполнен с возможностью распознавать лица людей, отличных от зарегистрированного человека, в изображениях, которые должны кодироваться, и когда такие лица появляются в изображении, может применять мозаичный фильтр, например, к лицу человека. Альтернативно, в качестве предварительной обработки или постобработки для кодирования, пользователь может указывать, по причинам авторского права, область изображения, включающую в себя человека, или область фона, которая должна обрабатываться. Сервер может обрабатывать указанную область, например, посредством замены области другим изображением или размытия области. Если область включает в себя человека, человек может отслеживаться в движущемся кадре, и область головы пользователя может заменяться другим изображением по мере того, как человек перемещается.[0777] There may be cases in which content from people may include content that violates copyright, moral law, book rights, etc. Such a case may lead to an unfavorable situation for the creator, for example, when the content is shared beyond the scope intended by the creator. Accordingly, before encoding, the server, for example, can edit the images so as to, for example, blur the faces of people on the periphery of the screen or blur the inside of a house. Additionally, the server may be configured to recognize faces of people other than the registered person in images to be encoded, and when such faces appear in the image, may apply a mosaic filter to, for example, the person's face. Alternatively, as pre-processing or post-processing for encoding, the user may specify, for copyright reasons, an image area including a person or a background area to be processed. The server may process the specified area, for example, by replacing the area with another image or blurring the area. If the area includes a person, the person may be tracked in a moving frame, and the user's head region may be replaced with another image as the person moves.

[0778] Поскольку имеется спрос на просмотр в реальном времени контента, сформированного людьми, который зачастую имеет небольшой размер данных, декодер сначала может принимать базовый слой в качестве наивысшего приоритета и выполнять декодирование и воспроизведение, хотя это может отличаться в зависимости от полосы пропускания. Когда контент воспроизводится два или более раз, к примеру, когда декодер принимает улучшающий слой во время декодирования и воспроизведения базового слоя и циклично выполняет воспроизведение, декодер может воспроизводить видео с высоким качеством изображений, включающее в себя улучшающий слой. Если поток кодируется с использованием такого масштабируемого кодирования, видео может быть низкокачественным в невыбранном состоянии или в начале видео, но оно может предлагать восприятие, в котором качество изображений потока постепенно увеличивается интеллектуальным способом. Это не ограничено просто масштабируемым кодированием; идентичное восприятие может предлагаться посредством конфигурирования одного потока из низкокачественного потока, воспроизведенного в первый раз, и второго потока, кодированного с использованием первого потока в качестве опорного.[0778] Since there is a demand for real-time viewing of human-generated content, which often has a small data size, the decoder may first take the base layer as the highest priority and perform decoding and playback, although this may differ depending on the bandwidth. When the content is played back two or more times, for example, when the decoder receives the enhancement layer during decoding and playback of the base layer and loops playback, the decoder can play back the high image quality video including the enhancement layer. If a stream is encoded using such scalable encoding, the video may be low quality in the unselected state or at the beginning of the video, but it may offer an experience in which the quality of the images of the stream is gradually increased in an intelligent manner. This is not limited to just scalable coding; An identical experience can be offered by configuring one stream of the low quality stream played back the first time and a second stream encoded using the first stream as a reference.

[0779] Другие примеры реализации и вариантов применения [0779] Other Examples of Implementations and Applications

Кодирование и декодирование может выполняться посредством LSI ex500 (большой интегральной схемы) (см. фиг. 56), которая типично включается в каждый терминал. LSI ex500 может быть сконфигурирована из одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся кадров может интегрироваться в некоторый тип носителя записи (такой как CD-ROM, гибкий диск или жесткий диск), который является считываемым, например, посредством компьютера ex111, и кодирование и декодирование могут выполняться с использованием программного обеспечения. Кроме того, когда смартфон ex114 оснащен камерой, могут передаваться видеоданные, полученные посредством камеры. В этом случае, видеоданные могут кодироваться посредством LSI ex500, включенной в смартфон ex115.Encoding and decoding may be performed by an LSI ex500 (Large Integrated Circuit) (see FIG. 56), which is typically included in each terminal. The LSI ex500 can be configured with a single chip or multiple chips. Software for encoding and decoding moving frames may be integrated into some type of recording medium (such as a CD-ROM, floppy disk, or hard disk) that is readable, for example, by a computer ex111, and encoding and decoding may be performed using the software. In addition, when the ex114 smartphone is equipped with a camera, video data captured by the camera can be transmitted. In this case, video data can be encoded using the LSI ex500 included in the ex115 smartphone.

[0780] Следует отметить, что LSI ex500 может быть выполнена с возможностью загружать и активировать приложение. В таком случае, терминал сначала определяет то, является он или нет совместимым со схемой, используемой для того, чтобы кодировать контент, либо то, допускает он или нет выполнение конкретной услуги. Когда терминал не является совместимым со схемой кодирования контента, либо когда терминал не допускает выполнение конкретной услуги, терминал сначала может загружать кодек или прикладное программное обеспечение, а затем получать и воспроизводить контент.[0780] It should be noted that the LSI ex500 may be configured to download and activate an application. In such a case, the terminal first determines whether or not it is compatible with the scheme used to encode the content, or whether or not it is capable of performing a particular service. When the terminal is not compatible with the content encoding scheme, or when the terminal does not allow execution of a particular service, the terminal may first download the codec or application software, and then receive and play the content.

[0781] Помимо примера системы ex100 предоставления контента, которая использует Интернет ex101, по меньшей мере, кодер движущихся кадров (кодер изображений) или декодер движущихся кадров (декодер изображений), описанные в вышеприведенных вариантах осуществления, могут реализовываться в цифровой широковещательной системе. Идентичная обработка кодирования и обработка декодирования могут применяться для того, чтобы передавать и принимать широковещательные радиоволны, накладываемые с мультиплексированными аудио- и видеоданными, с использованием, например, спутника, даже если она приспосабливается к многоадресной передаче, тогда как одноадресная передача осуществляется проще с системой ex100 предоставления контента.[0781] In addition to the example of a content provision system ex100 that uses the Internet ex101, at least a moving frame encoder (picture encoder) or a moving frame decoder (picture decoder) described in the above embodiments may be implemented in a digital broadcast system. Identical encoding processing and decoding processing can be used to transmit and receive broadcast radio waves overlaid with multiplexed audio and video data using, for example, a satellite, even though it accommodates multicast transmission, while unicast transmission is simpler with the ex100 system providing content.

[0782] Аппаратная конфигурация [0782] Hardware configuration

Фиг. 61 иллюстрирует дополнительные сведения относительно смартфона ex115, показанного на фиг. 56. Фиг. 62 иллюстрирует пример конфигурации смартфона ex115. Смартфон ex115 включает в себя антенну ex450 для передачи и приема радиоволн в/из базовой станции ex110, камеру ex465, допускающую захват видео и неподвижных изображений, и дисплей ex458, который отображает декодированные данные, такие как видео, захваченное посредством камеры ex465, и видео, принимаемое посредством антенны ex450. Смартфон ex115 дополнительно включает в себя пользовательский интерфейс ex466, такой как сенсорная панель, модуль ex457 аудиовывода, такой как динамик для вывода речи или другого аудио, модуль ex456 аудиоввода, такой как микрофон для аудиоввода, запоминающее устройство ex467, допускающее сохранение декодированных данных, таких как захваченные видео или неподвижные изображения, записанное аудио, принимаемые видео или неподвижные изображения и почтовые сообщения, а также декодированные данные, и гнездо ex464, которое представляет собой интерфейс для SIM-карты ex468 для авторизации доступа к сети и различным данным. Следует отметить, что внешнее запоминающее устройство может использоваться вместо запоминающего устройства ex467.Fig. 61 illustrates additional information regarding the smartphone ex115 shown in FIG. 56. Fig. 62 illustrates an ex115 smartphone configuration example. The ex115 smartphone includes an ex450 antenna for transmitting and receiving radio waves to/from the ex110 base station, an ex465 camera that allows video and still image capture, and an ex458 display that displays decoded data such as video captured through the ex465 camera and videos received via antenna ex450. The ex115 smartphone further includes an ex466 user interface such as a touch panel, an ex457 audio output module such as a speaker for outputting speech or other audio, an ex456 audio input module such as a microphone for audio input, an ex467 storage device capable of storing decoded data such as captured video or still images, recorded audio, received video or still images and mail messages, as well as decoded data, and the ex464 socket, which is an interface for the ex468 SIM card to authorize access to the network and various data. It should be noted that an external storage device can be used instead of the ex467 storage device.

[0783] Главный контроллер ex460, который может всесторонне управлять дисплеем ex458 и пользовательским интерфейсом ex466, схема ex461 подачи мощности, контроллер ex462 ввода из пользовательского интерфейса, процессор ex455 видеосигналов, интерфейс ex463 камеры, контроллер ex459 отображения, модулятор/демодулятор ex452, мультиплексор/демультиплексор ex453, процессор ex454 аудиосигналов, гнездо ex464 и запоминающее устройство ex467 соединяются через шину ex470.[0783] Main controller ex460, which can comprehensively control the display ex458 and user interface ex466, power supply circuit ex461, user interface input controller ex462, video signal processor ex455, camera interface ex463, display controller ex459, modulator/demodulator ex452, multiplexer/demultiplexer ex453, ex454 audio processor, ex464 socket and ex467 memory are connected via ex470 bus.

[0784] Когда пользователь включает кнопку питания схемы ex461 подачи мощности, смартфон ex115 включается в работоспособное состояние, и каждый компонент снабжается мощностью из аккумуляторного блока.[0784] When the user turns on the power button of the power supply circuit ex461, the smartphone ex115 is turned on to an operational state and each component is supplied with power from the battery pack.

[0785] Смартфон ex115 выполняет обработку, например, для вызовов и передачи данных, на основе управления, выполняемого посредством главного контроллера ex460, который включает в себя CPU, ROM и RAM. При выполнении вызовов, аудиосигнал, записанный посредством модуля ex456 аудиоввода, преобразуется в цифровой аудиосигнал посредством процессора ex454 аудиосигналов, к которому применяется обработка с расширенным спектром посредством модулятора/демодулятора ex452 и применяется обработка цифро-аналогового преобразования и преобразования частоты посредством приемо-передающего устройства ex451, и результирующий сигнал передается через антенну ex450. Принимаемые данные усиливаются, преобразуются по частоте и подвергаются аналого-цифровому преобразованию, подвергаются обратной обработке с расширенным спектром посредством модулятора/демодулятора ex452, преобразуются в аналоговый аудиосигнал посредством процессора ex454 аудиосигналов и затем выводятся из модуля ex457 аудиовывода. В режиме передачи данных, текст, данные неподвижных изображений или видеоданные могут передаваться, например, под управлением главного контроллера ex460 через контроллер ex462 ввода из пользовательского интерфейса на основе операции пользовательского интерфейса ex466 основного корпуса. Аналогичная обработка передачи и приема выполняется. В режиме передачи данных, при отправке видео, неподвижного изображения или видео и аудио, процессор ex455 видеосигналов кодирует со сжатием, через способ кодирования движущихся кадров, описанный в вышеприведенных вариантах осуществления, видеосигнал, сохраненный в запоминающем устройстве ex467, или видеосигнал, вводимый из камеры ex465, и передает кодированные видеоданные в мультиплексор/демультиплексор ex453. Процессор ex454 аудиосигналов кодирует аудиосигнал, записанный посредством модуля ex456 аудиоввода, в то время как камера ex465 захватывает видео или неподвижное изображение, и передает кодированные аудиоданные в мультиплексор/демультиплексор ex453. Мультиплексор/демультиплексор ex453 мультиплексирует кодированные видеоданные и кодированные аудиоданные с использованием определенной схемы, модулирует и преобразует данные с использованием модулятора/демодулятора ex452 (схемы модулятора/демодулятора) и приемо-передающего устройства ex451 и передает результат через антенну ex450. Определенная схема может быть предварительно определена.[0785] The ex115 smartphone performs processing, for example, for calls and data transfers, based on control performed by the ex460 main controller, which includes a CPU, ROM and RAM. When calls are made, the audio signal recorded by the audio input module ex456 is converted to a digital audio signal by the audio signal processor ex454, which is applied with spread spectrum processing by the ex452 modulator/demodulator and applied with digital-to-analog conversion and frequency conversion processing by the ex451 transceiver. and the resulting signal is transmitted through the ex450 antenna. The received data is amplified, frequency-converted and A/D converted, despread spectrum processed by the ex452 modulator/demodulator, converted to an analog audio signal by the ex454 audio processor, and then output from the ex457 audio output module. In the data transmission mode, text, still image data or video data may be transmitted, for example, under the control of the main controller ex460 through the input controller ex462 from the user interface based on the operation of the main body user interface ex466. Similar transmission and reception processing is performed. In the data transfer mode, when sending video, still image or video and audio, the video signal processor ex455 compressively encodes, through the moving frame encoding method described in the above embodiments, the video signal stored in the storage device ex467 or the video signal input from the camera ex465 , and transmits the encoded video data to the ex453 multiplexer/demultiplexer. The ex454 audio processor encodes the audio signal recorded by the ex456 audio input module, while the ex465 camera captures video or still image, and transmits the encoded audio data to the ex453 multiplexer/demultiplexer. The ex453 multiplexer/demultiplexer multiplexes encoded video data and encoded audio data using a specific circuit, modulates and converts the data using the ex452 modulator/demodulator (modulator/demodulator circuit) and ex451 transceiver and transmits the result through the ex450 antenna. A specific schema can be predefined.

[0786] Когда видео, вложенное в почтовом сообщении или в чате, или видео, содержащее ссылку из веб-страницы, принимается, например, для того чтобы декодировать мультиплексированные данные, принимаемые через антенну ex450, мультиплексор/демультиплексор ex453 демультиплексирует мультиплексированные данные, чтобы разделять мультиплексированные данные на поток битов видеоданных и поток битов аудиоданных, предоставляет кодированные видеоданные в процессор ex455 видеосигналов через синхронную шину ex470 и предоставляет кодированные аудиоданные в процессор ex454 аудиосигналов через синхронную шину ex470. Процессор ex455 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся кадров, соответствующего способу кодирования движущихся кадров, описанному в вышеприведенных вариантах осуществления, и видео или неподвижное изображение, включенное в связанный файл движущихся кадров, отображается на дисплее ex458 через контроллер ex459 отображения. Процессор ex454 аудиосигналов декодирует аудиосигнал и выводит аудио из модуля ex457 аудиовывода. Поскольку потоковая передача в режиме реального времени становится все более популярной, могут возникать случаи, в которых воспроизведение аудио может быть социально нецелесообразным, в зависимости от окружения пользователя. Соответственно, в качестве начального значения, может быть предпочтительной конфигурация, в которой только видеоданные воспроизводятся, т.е. аудиосигнал не воспроизводится; аудио может синхронизироваться и воспроизводиться только тогда, когда принимается ввод, к примеру, когда пользователь щелкает видеоданные.[0786] When a video attachment in an email message or chat, or a video containing a link from a web page, is received, for example, to decode multiplexed data received through antenna ex450, the ex453 multiplexer/demultiplexer demultiplexes the multiplexed data to separate multiplexes data onto a video bitstream and an audio bitstream, provides encoded video data to the ex455 video processor via the ex470 synchronous bus, and provides encoded audio data to the ex454 audio processor via the ex470 synchronous bus. The video signal processor ex455 decodes the video signal using a moving frame decoding method corresponding to the moving frame encoding method described in the above embodiments, and the video or still image included in the associated moving frame file is displayed on the display ex458 through the display controller ex459. The audio signal processor ex454 decodes the audio signal and outputs audio from the audio output module ex457. As live streaming becomes more popular, there may be cases in which audio playback may not be socially feasible, depending on the user's environment. Accordingly, as an initial value, a configuration in which only video data is reproduced, i.e., may be preferred. no audio signal is played; audio can only sync and play when input is received, such as when the user clicks on video data.

[0787] Хотя смартфон ex115 использован в вышеприведенном примере, другие реализации возможны: приемо-передающий терминал, включающий в себя как кодер, так и декодер; передающий терминал, включающий в себя только кодер; и приемный терминал, включающий в себя только декодер. В описании цифровой широковещательной системы, приводится пример, в котором мультиплексированные данные, полученные в результате мультиплексирования видеоданных с аудиоданными, принимаются или передаются. Тем не менее, мультиплексированные данные могут представлять собой видеоданные, мультиплексированные с данными, отличными от аудиоданных, такими как текстовые данные, связанные с видео. Дополнительно, непосредственно видеоданные, а не мультиплексированные данные могут приниматься или передаваться.[0787] Although the smartphone ex115 is used in the above example, other implementations are possible: a transceiver terminal including both an encoder and a decoder; a transmission terminal including only an encoder; and a receiving terminal including only a decoder. In the description of a digital broadcast system, an example is given in which multiplexed data obtained by multiplexing video data with audio data is received or transmitted. However, the multiplexed data may be video data multiplexed with data other than audio data, such as text data associated with the video. Additionally, direct video data rather than multiplexed data may be received or transmitted.

[0788] Хотя главный контроллер ex460, включающий в себя CPU, описывается как управляющий процессами кодирования или декодирования, различные терминалы зачастую включают в себя GPU. Соответственно, является приемлемой конфигурация, в которой большая зона обрабатывается сразу посредством использования характеристик с точки зрения производительности GPU через запоминающее устройство, совместно используемое посредством CPU и GPU, либо через запоминающее устройство, включающее в себя адрес, которое управляется таким образом, чтобы обеспечивать возможность широкого использования посредством CPU и GPU. Это позволяет сокращать время кодирования, поддерживать характер реального времени потока и уменьшать задержку. В частности, обработка, связанная с оценкой движения, фильтрацией для удаления блочности, дискретизированным адаптивным смещением (SAO) и преобразованием/квантованием, может эффективно выполняться посредством GPU вместо CPU, например, в единицах кадров, одновременно.[0788] Although the ex460 main controller, which includes a CPU, is described as controlling encoding or decoding processes, various terminals often include GPUs. Accordingly, it is acceptable to have a configuration in which a large area is processed at once by using performance characteristics of the GPU through a memory shared by the CPU and the GPU, or through a memory including an address that is controlled so as to enable a wide use via CPU and GPU. This reduces encoding time, maintains the real-time nature of the stream, and reduces latency. In particular, processing related to motion estimation, deblocking filtering, sampled adaptive offset (SAO), and transform/quantization can be efficiently performed by the GPU instead of the CPU, for example, in units of frames, simultaneously.

Промышленная применимостьIndustrial applicability

[0789] Настоящее раскрытие является применимым, например, к телевизионным приемникам, цифровым записывающим видеоустройствам, автомобильным навигационным системам, мобильным телефонам, цифровым камерам, цифровым видеокамерам, системам телеконференц-связи, электронным зеркалам и т.д.[0789] The present disclosure is applicable, for example, to television receivers, digital video recorders, automobile navigation systems, mobile phones, digital cameras, digital video cameras, teleconferencing systems, electronic mirrors, etc.

Список номеров ссылокList of reference numbers

[0790] 100 - кодер[0790] 100 - encoder

102 - модуль разбиения102 - partitioning module

104 - вычитатель104 - subtractor

106 - преобразователь106 - converter

108 - квантователь108 - quantizer

110 - энтропийный кодер110 - entropy encoder

112, 204 - обратный квантователь112, 204 - inverse quantizer

114, 206 - обратный преобразователь114, 206 - inverse converter

116, 208 - сумматор116, 208 - adder

118, 210 - запоминающее устройство блоков118, 210 - block storage device

120, 212 - контурный фильтр120, 212 - contour filter

122, 214 - запоминающее устройство кадров122, 214 - frame memory

124, 216 - модуль внутреннего прогнозирования124, 216 - internal forecasting module

126, 218 - модуль внешнего прогнозирования126, 218 - external forecasting module

126a, a2, b2 - запоминающее устройство126a, a2, b2 - storage device

126b - модуль извлечения интерполированных изображений126b - module for extracting interpolated images

126c - модуль извлечения градиентных изображений126c - gradient image extraction module

126d - модуль извлечения оптических потоков126d - optical flow extraction module

126e - модуль извлечения значений коррекции126e - correction value extraction module

126f - корректор прогнозных изображений126f - predictive image corrector

128, 220 - контроллер прогнозирования128, 220 - forecasting controller

200 - декодер200 - decoder

202 - энтропийный декодер202 - entropy decoder

1201 - модуль определения границ1201 - boundary detection module

1202, 1204, 1206 - переключатель1202, 1204, 1206 - switch

1203 - модуль определения фильтрации1203 - filter detection module

1205 - модуль выполнения фильтрации1205 - filtering module

1207 - модуль определения характеристик фильтра1207 - module for determining filter characteristics

1208 - модуль определения обработки1208 - processing definition module

a1, b1 - процессорa1, b1 - processor

Claims (21)

Кодер, содержащийEncoder containing запоминающее устройство; Memory device; процессор, соединенный с запоминающим устройством и выполненный с возможностью формировать прогнозное изображение, чтобы кодировать текущий блок на основе первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра, которые извлекаются в процессе извлечения двунаправленных оптических потоков (BDOF), при этом:a processor coupled to the storage device and configured to generate a predictive image to encode a current block based on a first parameter, a second parameter, a third parameter, a fourth parameter and a fifth parameter that are extracted in a bidirectional optical flow (BDOF) extraction process, wherein: первый параметр извлекается на основе следующего выражения:the first parameter is retrieved based on the following expression: ; ; второй параметр извлекается на основе следующего выражения:the second parameter is retrieved based on the following expression: ; ; третий параметр извлекается на основе следующего выражения:the third parameter is retrieved based on the following expression: ; ; четвертый параметр извлекается на основе следующего выражения:the fourth parameter is retrieved based on the following expression: ; ; пятый параметр извлекается на основе следующего выражения,the fifth parameter is extracted based on the following expression, , , где Ω указывает набор относительных пиксельных позиций;where Ω indicates a set of relative pixel positions; [i, j] указывает относительную пиксельную позицию в наборе Ω, заданную посредством горизонтальной позиции i и вертикальной позиции j;[i, j] indicates a relative pixel position in the set Ω, specified by the horizontal position i and the vertical position j; Ix 0 указывает значение горизонтального градиента в первой пиксельной позиции в первом градиентном изображении, и Ix 1 обозначает значение горизонтального градиента в первой пиксельной позиции во втором градиентном изображении, причем первая пиксельная позиция определяется на основе относительной пиксельной позиции [i, j], первого градиентного изображения и второго градиентного изображения, соответствующих текущему блоку;I x 0 indicates a horizontal gradient value at a first pixel position in the first gradient image, and I x 1 indicates a horizontal gradient value at a first pixel position in the second gradient image, wherein the first pixel position is determined based on the relative pixel position [i, j] of the first a gradient image and a second gradient image corresponding to the current block; Iy 0 указывает значение вертикального градиента в первой пиксельной позиции в первом градиентном изображении, и Iy 1 обозначает значение вертикального градиента в первой пиксельной позиции во втором градиентном изображении;I y 0 indicates a vertical gradient value at a first pixel position in the first gradient image, and I y 1 indicates a vertical gradient value at a first pixel position in the second gradient image; I0 указывает пиксельное значение в первой пиксельной позиции в первом интерполированном изображении, соответствующем текущему блоку;I 0 indicates a pixel value at the first pixel position in the first interpolated image corresponding to the current block; I1 указывает пиксельное значение в первой пиксельной позиции во втором интерполированном изображении, соответствующем текущему блоку;I 1 indicates a pixel value at a first pixel position in the second interpolated image corresponding to the current block; функция abs выводит абсолютное значение аргумента; the abs function prints the absolute value of the argument; функция sign выводит знак аргумента, который равен -1, 0 или 1.The sign function prints the sign of the argument, which is -1, 0, or 1.
RU2021136315A 2019-06-21 2020-06-15 Encoder, decoder, encoding method and decoding method RU2810304C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/864,728 2019-06-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023133392A Division RU2023133392A (en) 2019-06-21 2020-06-15 ECODER, DECODER, ENCODING METHOD AND DECODING METHOD

Publications (2)

Publication Number Publication Date
RU2021136315A RU2021136315A (en) 2023-07-21
RU2810304C2 true RU2810304C2 (en) 2023-12-26

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180192072A1 (en) * 2017-01-04 2018-07-05 Qualcomm Incorporated Motion vector reconstructions for bi-directional optical flow (bio)
WO2018166357A1 (en) * 2017-03-16 2018-09-20 Mediatek Inc. Method and apparatus of motion refinement based on bi-directional optical flow for video coding
WO2018212110A1 (en) * 2017-05-19 2018-11-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Encoding device, decoding device, encoding method and decoding method
CA3065492A1 (en) * 2017-05-17 2018-11-22 Kt Corporation Method and device for video signal processing
WO2019010156A1 (en) * 2017-07-03 2019-01-10 Vid Scale, Inc. Motion-compensation prediction based on bi-directional optical flow
WO2019045427A1 (en) * 2017-08-29 2019-03-07 에스케이텔레콤 주식회사 Motion compensation method and device using bi-directional optical flow
RU2682303C1 (en) * 2011-06-27 2019-03-18 Самсунг Электроникс Ко., Лтд. Method and device for motion information encoding, method and device for decoding thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2682303C1 (en) * 2011-06-27 2019-03-18 Самсунг Электроникс Ко., Лтд. Method and device for motion information encoding, method and device for decoding thereof
US20180192072A1 (en) * 2017-01-04 2018-07-05 Qualcomm Incorporated Motion vector reconstructions for bi-directional optical flow (bio)
WO2018166357A1 (en) * 2017-03-16 2018-09-20 Mediatek Inc. Method and apparatus of motion refinement based on bi-directional optical flow for video coding
CA3065492A1 (en) * 2017-05-17 2018-11-22 Kt Corporation Method and device for video signal processing
WO2018212110A1 (en) * 2017-05-19 2018-11-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Encoding device, decoding device, encoding method and decoding method
WO2019010156A1 (en) * 2017-07-03 2019-01-10 Vid Scale, Inc. Motion-compensation prediction based on bi-directional optical flow
WO2019045427A1 (en) * 2017-08-29 2019-03-07 에스케이텔레콤 주식회사 Motion compensation method and device using bi-directional optical flow

Similar Documents

Publication Publication Date Title
KR102491349B1 (en) Encoding device, decoding device, encoding method and decoding method
JP7187640B2 (en) Encoding method and decoding method
JP2022503464A (en) Motion vector prediction for video coding
JP7214846B2 (en) Encoding device, decoding device, encoding method and decoding method
WO2020171046A1 (en) Image encoder and image decoder
AU2020298425A1 (en) Encoder, decoder, encoding method, and decoding method
JP7337222B2 (en) Encoding device and decoding device
KR20220009385A (en) Systems and methods for video coding
JP7432022B2 (en) Encoding device and decoding device
TW202025774A (en) Encoder, decoder, encoding method, and decoding method
JP2023068203A (en) Decoder and decoding method
JP2022168052A (en) Decoder and encoder
KR20220024008A (en) Video Coding Systems and Methods
CA3137175A1 (en) Encoder,decoder, encoding method, and decoding method
JP2023001298A (en) Decoding device and decoding method
JP7079377B2 (en) Encoding device, decoding device, coding method, and decoding method
RU2810304C2 (en) Encoder, decoder, encoding method and decoding method
RU2808005C2 (en) Encoder, decoder, encoding method and decoding method
RU2795260C2 (en) Decoder, encoding method and decoding method
RU2808454C1 (en) Encoder, decoder, encoding method and decoding method
JP7495568B2 (en) Encoding device and decoding device
RU2808103C2 (en) Method for decoding videos and images using block segmentation
KR20220024007A (en) Encoding apparatus, decoding apparatus, encoding method, and decoding method