RU2817290C2 - Video encoding system and method - Google Patents

Video encoding system and method Download PDF

Info

Publication number
RU2817290C2
RU2817290C2 RU2022102649A RU2022102649A RU2817290C2 RU 2817290 C2 RU2817290 C2 RU 2817290C2 RU 2022102649 A RU2022102649 A RU 2022102649A RU 2022102649 A RU2022102649 A RU 2022102649A RU 2817290 C2 RU2817290 C2 RU 2817290C2
Authority
RU
Russia
Prior art keywords
prediction
image
block
coefficient value
sample
Prior art date
Application number
RU2022102649A
Other languages
Russian (ru)
Other versions
RU2022102649A (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 RU2022102649A publication Critical patent/RU2022102649A/en
Application granted granted Critical
Publication of RU2817290C2 publication Critical patent/RU2817290C2/en

Links

Abstract

FIELD: video and images encoding and decoding.
SUBSTANCE: invention relates to video and image encoding/decoding, particularly for performing a cross-component adaptive loop filtering (CCALF) process. Encoder includes a circuit and a memory device connected to the circuit. Circuit, in response to the first reconstructed sample of images located outside the virtual boundary, duplicates the reconstructed sample located inside and near the virtual boundary in order to form the first reconstructed image sample. Circuit generates the first coefficient value by applying the CCALF process to the first reconstructed sample of images of the luminance signal component. Circuit generates a second coefficient value by applying an adaptive loop filtering (ALF) process to a second recovered chroma component image sample. Circuit generates third coefficient value by summation of first coefficient value with second coefficient value and codes the third reconstructed sample of the chroma component images using the third coefficient value.
EFFECT: high efficiency of encoding/decoding.
10 cl, 164 dwg

Description

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

[0001] Данное раскрытие сущности относится к кодированию видео и, в частности, к системам, компонентам и способам кодирования и декодирования видео при кодировании и декодировании видео, к примеру, для выполнения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации).[0001] This disclosure relates to video encoding and, in particular, to video encoding and decoding systems, components and methods for encoding and decoding video, for example, to perform a CCALF (Cross Component Adaptive Contour Filtering) process.

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

[0002] В силу совершенствований в технологии кодирования видео, из (H.261 и MPEG-1 в (H.264/AVC (стандарт усовершенствованного кодирования видео), MPEG-LA, (H.265/HEVC (стандарт высокоэффективного кодирования видео) и (H.266/VVC (универсальный видеокодек), остается постоянная потребность в том, чтобы предоставлять улучшения и оптимизации для технологии кодирования видео, с тем чтобы обрабатывать постоянно увеличивающийся объем цифровых видеоданных в различных вариантах применения. Данное раскрытие сущности относится к дополнительным усовершенствованиям, улучшениям и оптимизациям при кодировании видео, в частности, в процессе CCALF (кросскомпонентной адаптивной контурной фильтрации).[0002] Due to improvements in video encoding technology, 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 (Versatile Video Codec), there remains an ongoing need to provide improvements and optimizations to video encoding technology in order to handle the ever-increasing volume of digital video data in a variety of applications. This disclosure relates to additional improvements improvements and optimizations in video encoding, in particular in the CCALF (Cross Component Adaptive Contour Filtering) process.

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

[0003] Согласно одному аспекту, предоставляется кодер, который включает в себя схему и запоминающее устройство, соединенное со схемой. Схема, в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирует восстановленную выборку, расположенную внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений. Схема формирует первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости. Схема формирует второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности. Схема формирует третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента и кодирует третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента.[0003] According to one aspect, an encoder is provided that includes circuitry and a memory device coupled to the circuitry. The circuit, in response to the first reconstructed image sample located outside the virtual boundary, duplicates the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample. The circuit generates a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance component images. The circuit generates a second coefficient value by applying an ALF (adaptive loop filtering) process to a second reconstructed sample of chroma component images. The circuit generates a third coefficient value by adding the first coefficient value with a second coefficient value, and encodes a third reconstructed sample of chrominance component images using the third coefficient value.

[0004] Согласно дополнительному аспекту, первая восстановленная выборка изображений расположена рядом со второй восстановленной выборкой изображений.[0004] According to a further aspect, the first reconstructed image sample is located adjacent to the second reconstructed image sample.

[0005] Согласно другому аспекту, схема, при работе: задает первое значение коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64.[0005] According to another aspect, the circuit, in operation: sets a first coefficient value equal to zero in response to a first coefficient value less than 64.

[0006] Согласно другому аспекту, предоставляется кодер, который включает в себя: модуль разбиения блоков, который, при работе, разбивает первое изображение на множество блоков; модуль внутреннего прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных в первое изображение; модуль взаимного прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных во второе изображение, отличающееся от первого изображения; контурный фильтр, который, при работе, фильтрует блоки, включенные в первое изображение; преобразователь, который, при работе, преобразует ошибку прогнозирования между исходным сигналом и прогнозным сигналом, сформированным посредством модуля внутреннего прогнозирования или модуля взаимного прогнозирования, чтобы формировать коэффициенты преобразования; квантователь, который, при работе, квантует коэффициенты преобразования, чтобы формировать квантованные коэффициенты; и энтропийный кодер, который, при работе, переменно кодирует квантованные коэффициенты, чтобы формировать кодированный поток битов, включающий в себя кодированные квантованные коэффициенты и управляющую информацию. Контурный фильтр выполняет следующее:[0006] According to another aspect, an encoder is provided that includes: a block splitter that, in operation, splits a first image into a plurality of blocks; an intra prediction module that, when operated, predicts blocks included in the first image using reference blocks included in the first image; an inter-prediction module that, in operation, predicts blocks included in the first image using reference blocks included in a second image different from the first image; a contour filter which, in operation, filters the blocks included in the first image; a converter that, in operation, converts the prediction error between the original signal and the prediction signal generated by the intra prediction module or the inter prediction module to generate conversion coefficients; a quantizer that, in operation, quantizes the transform coefficients to generate quantized coefficients; and an entropy encoder that, in operation, variably encodes the quantized coefficients to generate a coded bitstream including the encoded quantized coefficients and control information. The loop filter does the following:

- в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирование восстановленной выборки, расположенной внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample;

- формирование первого значения коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images;

- формирование второго значения коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images;

- формирование третьего значения коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента, и- generating a third coefficient value by summing the first coefficient value with the second coefficient value, and

- кодирование третьей восстановленной выборки изображений компонента сигнала цветности с использованием третьего значения коэффициента.- encoding the third reconstructed sample of chrominance component images using the third coefficient value.

[0007] Согласно дополнительному аспекту, предоставляется декодер, который включает в себя схему и запоминающее устройство, соединенное со схемой. Схема, в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирует восстановленную выборку, расположенную внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений. Схема формирует первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости. Схема формирует второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности. Схема формирует третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента и декодирует третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента.[0007] According to a further aspect, a decoder is provided that includes circuitry and a memory device coupled to the circuitry. The circuit, in response to the first reconstructed image sample located outside the virtual boundary, duplicates the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample. The circuit generates a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance component images. The circuit generates a second coefficient value by applying an ALF (adaptive loop filtering) process to a second reconstructed sample of chroma component images. The circuit generates a third coefficient value by adding the first coefficient value with the second coefficient value, and decodes a third reconstructed sample of chrominance component images using the third coefficient value.

[0008] Согласно другому аспекту, предоставляется оборудование декодирования, которое включает в себя: декодер, который, при работе, декодирует кодированный поток битов, чтобы выводить квантованные коэффициенты; обратный квантователь, который, при работе, обратно квантует квантованные коэффициенты, чтобы выводить коэффициенты преобразования; обратный преобразователь, который, при работе, обратно преобразует коэффициенты преобразования, чтобы выводить ошибку прогнозирования; модуль внутреннего прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных в первое изображение; модуль взаимного прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных во второе изображение, отличающееся от первого изображения; контурный фильтр, который, при работе, фильтрует блоки, включенные в первое изображение; и вывод, который, при работе, выводит кадр, включающий в себя первое изображение. Контурный фильтр выполняет следующее:[0008] According to another aspect, decoding equipment is provided that includes: a decoder that, in operation, decodes a coded bit stream to output quantized coefficients; an inverse quantizer, which, when operated, inversely quantizes the quantized coefficients to output transform coefficients; an inverse converter that, in operation, inversely converts the conversion coefficients to output a prediction error; an intra prediction module that, when operated, predicts blocks included in the first image using reference blocks included in the first image; an inter-prediction module that, in operation, predicts blocks included in the first image using reference blocks included in a second image different from the first image; a contour filter which, in operation, filters the blocks included in the first image; and an output which, when operative, outputs a frame including the first image. The loop filter does the following:

- в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирование восстановленной выборки, расположенной внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample;

- формирование первого значения коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images;

- формирование второго значения коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images;

- формирование третьего значения коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента, и- generating a third coefficient value by summing the first coefficient value with the second coefficient value, and

- декодирование третьей восстановленной выборки изображений компонента сигнала цветности с использованием третьего значения коэффициента.- decoding the third reconstructed sample of chrominance component images using the third coefficient value.

[0009] Согласно другому аспекту, предоставляется способ кодирования, который включает в себя:[0009] According to another aspect, an encoding method is provided that includes:

- в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирование восстановленной выборки, расположенной внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample;

- формирование первого значения коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images;

- формирование второго значения коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images;

- формирование третьего значения коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента, и- generating a third coefficient value by summing the first coefficient value with the second coefficient value, and

- кодирование третьей восстановленной выборки изображений компонента сигнала цветности с использованием третьего значения коэффициента.- encoding the third reconstructed sample of chrominance component images using the third coefficient value.

[0010] Согласно дополнительному аспекту, предоставляется способ декодирования, который включает в себя:[0010] According to a further aspect, a decoding method is provided that includes:

- в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирование восстановленной выборки, расположенной внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample;

- формирование первого значения коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images;

- формирование второго значения коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images;

- формирование третьего значения коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента, и- generating a third coefficient value by summing the first coefficient value with the second coefficient value, and

- декодирование третьей восстановленной выборки изображений компонента сигнала цветности с использованием третьего значения коэффициента.- decoding the third reconstructed sample of chrominance component images using the third coefficient value.

[0011] В технологии кодирования видео, желательно предлагать новые способы для того, чтобы повышать эффективность кодирования, повышать качество изображений и уменьшать размер схем. Некоторые реализации вариантов осуществления настоящего раскрытия сущности, включающие в себя составляющие элементы вариантов осуществления настоящего раскрытия сущности, рассматриваемые отдельно или в различных комбинациях, могут упрощать одно или более из следующего: повышение эффективности кодирования, повышение качества изображений, уменьшение степени использования ресурсов обработки, ассоциированных с кодированием/декодированием, уменьшение размера схем, повышение скорости обработки кодирования/декодирования и т.д.[0011] In video encoding technology, it is desirable to propose new methods in order to improve encoding efficiency, improve image quality, and reduce circuit size. Certain implementations of embodiments of the present disclosure, including constituent elements of embodiments of the present disclosure, considered separately or in various combinations, may facilitate one or more of the following: increasing encoding efficiency, increasing image quality, reducing the utilization of processing resources associated with encoding/decoding, reducing the size of circuits, increasing the processing speed of encoding/decoding, etc.

[0012] Помимо этого, некоторые реализации вариантов осуществления настоящего раскрытия сущности, включающие в себя составляющие элементы вариантов осуществления настоящего раскрытия сущности, рассматриваемые отдельно или в различных комбинациях, могут упрощать, при кодировании и декодировании, соответствующий выбор одного или более элементов, таких как фильтр, блок, размер, вектор движения, опорный кадр, опорный блок или операция. Следует отметить, что настоящее раскрытие сущности включает в себя раскрытие сущности относительно конфигураций и способов, которые могут предоставлять преимущества, отличные от вышеописанных преимуществ. Примеры таких конфигураций и способов включают в себя конфигурацию или способ для повышения эффективности кодирования при уменьшении роста использования ресурсов обработки.[0012] In addition, some implementations of embodiments of the present disclosure, including constituent elements of embodiments of the present disclosure, considered separately or in various combinations, may facilitate, during encoding and decoding, the appropriate selection of one or more elements, such as a filter , block, size, motion vector, reference frame, reference block or operation. It should be noted that the present disclosure includes disclosure regarding configurations and methods that may provide advantages other than those described above. Examples of such configurations and methods include a configuration or method for increasing encoding efficiency while reducing the increase in processing resource usage.

[0013] Дополнительные выгоды и преимущества раскрытых вариантов осуществления должны становиться очевидными из подробного описания и чертежей. Выгоды и/или преимущества могут отдельно получаться посредством различных вариантов осуществления и признаков подробного описания и чертежей, не все из которых должны обязательно предоставляться для того, чтобы получать одну или более таких выгод и/или преимуществ.[0013] Additional benefits and advantages of the disclosed embodiments will become apparent from the detailed description and drawings. Benefits and/or advantages may be separately obtained through various embodiments and features of the detailed description and drawings, not all of which must necessarily be provided in order to obtain one or more such benefits and/or advantages.

[0014] Следует отметить, что общие или конкретные варианты осуществления могут реализовываться как система, способ, интегральная схема, компьютерная программа, носитель хранения данных или любая избирательная комбинация вышеозначенного.[0014] It should be noted that general or specific embodiments may be implemented as a system, method, integrated circuit, computer program, storage medium, or any selective combination of the foregoing.

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

[0015] Фиг. 1 является принципиальной схемой, иллюстрирующей один пример функциональной конфигурации системы передачи согласно варианту осуществления.[0015] FIG. 1 is a circuit diagram illustrating one example of a functional configuration of a transmission system according to an embodiment.

Фиг. 2 является концептуальной схемой для иллюстрации одного примера иерархической структуры данных в потоке.Fig. 2 is a conceptual diagram to illustrate one example of a hierarchical data structure in a stream.

Фиг. 3 является концептуальной схемой для иллюстрации одного примера конфигурации срезов.Fig. 3 is a conceptual diagram for illustrating one example of a slice configuration.

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

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

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

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

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

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

Фиг. 10 является концептуальной схемой для иллюстрации одного примера разбиения блоков.Fig. 10 is a conceptual diagram for illustrating one example of block partitioning.

Фиг. 11 является блок-схемой, иллюстрирующей один пример функциональной конфигурации модуля разбиения согласно варианту осуществления.Fig. 11 is a block diagram illustrating one example of a functional configuration of a partitioning module according to the embodiment.

Фиг. 12 является концептуальной схемой для иллюстрации примеров шаблонов разбиения.Fig. 12 is a conceptual diagram for illustrating examples of partitioning patterns.

Фиг. 13A является концептуальной схемой для иллюстрации одного примера синтаксического дерева шаблона разбиения.Fig. 13A is a conceptual diagram for illustrating one example of a split pattern syntax tree.

Фиг. 13B является концептуальной схемой для иллюстрации другого примера синтаксического дерева шаблона разбиения.Fig. 13B is a conceptual diagram for illustrating another example of a split pattern syntax tree.

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

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

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

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

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

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

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

Фиг. 21 является концептуальной схемой для иллюстрации примерной последовательности операций процесса контекстно-адаптивного двоичного арифметического кодирования (CABAC) в энтропийном кодере.Fig. 21 is a conceptual diagram for illustrating an exemplary flow of a context adaptive binary arithmetic coding (CABAC) process in an entropy encoder.

Фиг. 22 является блок-схемой, иллюстрирующей один пример функциональной конфигурации контурного фильтра согласно варианту осуществления.Fig. 22 is a block diagram illustrating one example of a functional configuration of a loop filter according to the embodiment.

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

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

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

Фиг. 23D является концептуальной схемой для иллюстрации примерной последовательности операций кросскомпонентной ALF (CCALF).Fig. 23D is a conceptual diagram for illustrating an exemplary cross-component ALF (CCALF) process flow.

Фиг. 23E является концептуальной схемой для иллюстрации примера формы фильтра, используемой в CCALF.Fig. 23E is a conceptual diagram for illustrating an example of a filter shape used in CCALF.

Фиг. 23F является концептуальной схемой для иллюстрации примерной последовательности операций объединенной CCALF сигналов цветности (JC-CCALF).Fig. 23F is a conceptual diagram for illustrating an exemplary JC-CCALF process flow.

Фиг. 23G является таблицей, иллюстрирующей примерные возможные варианты весовых индексов, которые могут использоваться в JC-CCALF.Fig. 23G is a table illustrating exemplary possible weighting indices that may be used in JC-CCALF.

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

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

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

Фиг. 27 является концептуальной схемой для иллюстрации примеров значений граничной интенсивности (Bs).Fig. 27 is a conceptual diagram for illustrating examples of boundary intensity values (Bs).

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

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

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

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

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

Фиг. 33 является концептуальной схемой для иллюстрации примеров опорных кадров.Fig. 33 is a conceptual diagram for illustrating examples of reference frames.

Фиг. 34 является концептуальной схемой для иллюстрации примеров списков опорных кадров.Fig. 34 is a conceptual diagram for illustrating examples of reference frame lists.

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

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

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

Фиг. 38A является концептуальной схемой для иллюстрации примерных характеризаций режимов для MV-извлечения.Fig. 38A is a conceptual diagram for illustrating exemplary mode characteristics for MV extraction.

Фиг. 38B является концептуальной схемой для иллюстрации примерных характеризаций режимов для MV-извлечения.Fig. 38B is a conceptual diagram for illustrating exemplary mode characteristics for MV extraction.

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

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

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

Фиг. 42 является концептуальной схемой для иллюстрации одного примера процесса MV-извлечения для текущего кадра посредством HMVP-режима объединения.Fig. 42 is a conceptual diagram for illustrating one example of an MV extraction process for a current frame by HMVP combining mode.

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

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

Фиг. 45 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре.Fig. 45 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.

Фиг. 46A является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока на основе векторов движения множества соседних блоков.Fig. 46A 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.

Фиг. 46B является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока в аффинном режиме, в котором используются три управляющих точки.Fig. 46B 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.

Фиг. 47A является концептуальной схемой для иллюстрации примерного MV-извлечения в управляющих точках в аффинном режиме.Fig. 47A is a conceptual diagram for illustrating exemplary MV extraction at control points in affine mode.

Фиг. 47B является концептуальной схемой для иллюстрации примерного MV-извлечения в управляющих точках в аффинном режиме.Fig. 47B is a conceptual diagram for illustrating an example MV extraction at control points in affine mode.

Фиг. 47C является концептуальной схемой для иллюстрации примерного MV-извлечения в управляющих точках в аффинном режиме.Fig. 47C is a conceptual diagram for illustrating an example MV extraction at control points in affine mode.

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

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

Фиг. 49A является концептуальной схемой для иллюстрации одного примера способа для MV-извлечения в управляющих точках, когда число управляющих точек для кодированного блока и число управляющих точек для текущего блока отличаются друг от друга.Fig. 49A is a conceptual diagram for illustrating one example of a method for MV extraction at control points when the number of control points for a coded block and the number of control points for a current block are different from each other.

Фиг. 49B является концептуальной схемой для иллюстрации другого примера способа для MV-извлечения в управляющих точках, когда число управляющих точек для кодированного блока и число управляющих точек для текущего блока отличаются друг от друга.Fig. 49B is a conceptual diagram for illustrating another example of a method for MV extraction at control points when the number of control points for a coded block and the number of control points for a current block are different from each other.

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

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

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

Фиг. 52B является концептуальной схемой для иллюстрации примеров первой части первого сегмента, которая перекрывается со вторым сегментом, и первого и второго наборов выборок, которые могут взвешиваться в качестве части процесса коррекции.Fig. 52B is a conceptual diagram for illustrating examples of a first portion of a first segment that overlaps with a second segment, and first and second sets of samples that may be weighted as part of the correction process.

Фиг. 52C является концептуальной схемой для иллюстрации первой части первого сегмента, которая составляет часть первого сегмента, которая перекрывается с частью смежного сегмента.Fig. 52C is a conceptual diagram for illustrating a first part of a first segment, which constitutes a part of the first segment that overlaps with a part of an adjacent segment.

Фиг. 53 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в треугольном режиме.Fig. 53 is a flowchart illustrating one example of a triangular mode process.

Фиг. 54 является концептуальной схемой для иллюстрации одного примера режима усовершенствованного временного прогнозирования векторов движения (ATMVP), в котором MV извлекается в единицах субблоков.Fig. 54 is a conceptual diagram for illustrating one example of an advanced temporal motion vector prediction (ATMVP) mode in which the MV is extracted in units of subblocks.

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

Фиг. 56 является концептуальной схемой для иллюстрации одного примера DMVR.Fig. 56 is a conceptual diagram to illustrate one example of a DMVR.

Фиг. 57 является концептуальной схемой для иллюстрации другого примера DMVR для определения MV.Fig. 57 is a conceptual diagram for illustrating another example of a DMVR for determining MV.

Фиг. 58A является концептуальной схемой для иллюстрации одного примера оценки движения в DMVR.Fig. 58A is a conceptual diagram for illustrating one example of motion estimation in DMVR.

Фиг. 58B является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса оценки движения в DMVR.Fig. 58B is a flowchart illustrating one example of a motion estimation process in a DMVR.

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

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

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

Фиг. 62 является концептуальной схемой для иллюстрации одного примера процесса коррекции прогнозных изображений посредством OBMC.Fig. 62 is a conceptual diagram for illustrating one example of a process for correcting prediction images by OBMC.

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

Фиг. 64 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса взаимного прогнозирования согласно BIO.Fig. 64 is a flowchart illustrating one example of an inter-prediction process according to BIO.

Фиг. 65 является функциональной блок-схемой, иллюстрирующей один пример функциональной конфигурации модуля взаимного прогнозирования, который может выполнять взаимное прогнозирование согласно BIO.Fig. 65 is a functional block diagram illustrating one example of a functional configuration of an inter-prediction module that can perform inter-prediction according to BIO.

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

Фиг. 66B является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса для способа формирования прогнозных изображений с использованием LIC.Fig. 66B is a flowchart illustrating one example process for a predictive image generation method using LIC.

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

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

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

Фиг. 70 является концептуальной схемой для иллюстрации взаимосвязи между модулем определения разбиения и другими составляющими элементами.Fig. 70 is a conceptual diagram for illustrating the relationship between the partition determination module and other constituent elements.

Фиг. 71 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного декодера.Fig. 71 is a block diagram illustrating one example of a functional configuration of an entropy decoder.

Фиг. 72 является концептуальной схемой для иллюстрации примерной последовательности операций CABAC-процесса в энтропийном декодере.Fig. 72 is a conceptual diagram for illustrating an exemplary flow of the CABAC process in an entropy decoder.

Фиг. 73 является блок-схемой, иллюстрирующей один пример функциональной конфигурации обратного квантователя.Fig. 73 is a block diagram illustrating one example of a functional configuration of an inverse quantizer.

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

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

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

Фиг. 77 является блок-схемой, иллюстрирующей один пример функциональной конфигурации контурного фильтра.Fig. 77 is a block diagram illustrating one example of a functional configuration of a loop filter.

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

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

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

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

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

Фиг. 81 является схемой, иллюстрирующей один пример процесса, выполняемого посредством модуля внутреннего прогнозирования декодера.Fig. 81 is a diagram illustrating one example of a process performed by the decoder intra prediction unit.

Фиг. 82 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса MV-извлечения в декодере.Fig. 82 is a flowchart illustrating one example of an MV extraction process in a decoder.

Фиг. 83 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса MV-извлечения в декодере.Fig. 83 is a flowchart illustrating another example of an MV extraction process in a decoder.

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

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

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

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

Фиг. 88 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса взаимного прогнозирования посредством аффинного взаимного режима в декодере.Fig. 88 is a flowchart illustrating an example of a mutual prediction process by affine mutual mode in a decoder.

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

Фиг. 90 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса оценки движения посредством DMVR в декодере.Fig. 90 is a flowchart illustrating an example of a motion estimation process by DMVR in a decoder.

Фиг. 91 является блок-схемой последовательности операций способа, иллюстрирующей один примерный процесс оценки движения посредством DMVR в декодере.Fig. 91 is a flowchart illustrating one exemplary motion estimation process by a DMVR in a decoder.

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

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

Фиг. 94 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции прогнозного изображения посредством OBMC в декодере.Fig. 94 is a flowchart illustrating an example of a prediction image correction process by OBMC in a decoder.

Фиг. 95 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции прогнозного изображения посредством BIO в декодере.Fig. 95 is a flowchart illustrating an example of a prediction image correction process by BIO in a decoder.

Фиг. 96 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции прогнозного изображения посредством LIC в декодере.Fig. 96 is a flowchart illustrating an example of a prediction image correction process by an LIC in a decoder.

Фиг. 97 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего процесс CCALF (кросскомпонентной адаптивной контурной фильтрации) согласно первому аспекту.Fig. 97 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF (Cross Component Adaptive Contour Filtering) process according to the first aspect.

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

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

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

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

Фиг. 102 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс согласно второму аспекту.Fig. 102 is a flowchart for an exemplary processing flow for decoding an image applying the CCALF process according to the second aspect.

Фиг. 103 иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка среза, CTU или TU потока битов.Fig. 103 illustrates select locations of cut parameters that must be parsed, for example, from a VPS, APS, SPS, PPS, slice header, CTU, or TU bitstream.

Фиг. 104 иллюстрирует примеры параметров отсечения.Fig. 104 illustrates examples of clipping parameters.

Фиг. 105 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием коэффициента фильтрации согласно третьему аспекту.Fig. 105 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a filter coefficient according to the third aspect.

Фиг. 106 является концептуальной схемой примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 106 is a conceptual diagram of an example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 107 является концептуальной схемой примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 107 is a conceptual diagram of an example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 108 является концептуальной схемой примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 108 is a conceptual diagram of an example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 109 является концептуальной схемой примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 109 is a conceptual diagram of an example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 110 является концептуальной схемой примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 110 is a conceptual diagram of an example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 111 является концептуальной схемой дополнительного примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 111 is a conceptual diagram of an additional example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 112 является концептуальной схемой дополнительного примера, указывающего местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.Fig. 112 is a conceptual diagram of an additional example indicating locations of filter coefficients to be used in the CCALF process.

Фиг. 113 является блок-схемой, иллюстрирующей функциональную конфигурацию CCALF-процесса, выполняемого посредством кодера и декодера согласно варианту осуществления.Fig. 113 is a block diagram illustrating the functional configuration of a CCALF process executed by an encoder and decoder according to an embodiment.

Фиг. 114 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием фильтра, выбранного из множества фильтров согласно четвертому аспекту.Fig. 114 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a filter selected from a plurality of filters according to the fourth aspect.

Фиг. 115 иллюстрирует пример последовательности операций обработки выбора фильтра.Fig. 115 illustrates an example filter selection processing flow.

Фиг. 116 иллюстрирует примеры фильтров.Fig. 116 illustrates examples of filters.

Фиг. 117 иллюстрирует примеры фильтров.Fig. 117 illustrates examples of filters.

Фиг. 118 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно пятому аспекту.Fig. 118 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a parameter according to the fifth aspect.

Фиг. 119 иллюстрирует примеры числа коэффициентов, которые должны синтаксически анализироваться из потока битов.Fig. 119 illustrates examples of the number of coefficients that must be parsed from the bitstream.

Фиг. 120 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно шестому аспекту.Fig. 120 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a parameter according to the sixth aspect.

Фиг. 121 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости для текущей выборки сигналов цветности посредством вычисления средневзвешенного значения соседних выборок.Fig. 121 is a conceptual diagram illustrating an example of generating a luma component CCALF value for a current chrominance signal sample by calculating a weighted average of neighboring samples.

Фиг. 122 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости для текущей выборки сигналов цветности посредством вычисления средневзвешенного значения соседних выборок.Fig. 122 is a conceptual diagram illustrating an example of generating a luma component CCALF value for a current chroma sample by calculating a weighted average of neighboring samples.

Фиг. 123 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости для текущей выборки сигналов цветности посредством вычисления средневзвешенного значения соседних выборок.Fig. 123 is a conceptual diagram illustrating an example of generating a luma component CCALF value for a current chroma sample by calculating a weighted average of neighboring samples.

Фиг. 124 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости для текущей выборки посредством вычисления средневзвешенного значения соседних выборок, при этом местоположения соседних выборок определяются адаптивно относительно типа сигналов цветности.Fig. 124 is a conceptual diagram illustrating an example of generating a luma component CCALF value for a current sample by calculating a weighted average of adjacent samples, wherein the locations of adjacent samples are determined adaptively with respect to the type of chrominance signals.

Фиг. 125 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости для текущей выборки посредством вычисления средневзвешенного значения соседних выборок, при этом местоположения соседних выборок определяются адаптивно относительно типа сигналов цветности.Fig. 125 is a conceptual diagram illustrating an example of generating a luma component CCALF value for a current sample by calculating a weighted average of neighboring samples, wherein the locations of neighboring samples are determined adaptively with respect to the type of chrominance signals.

Фиг. 126 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости посредством применения побитового сдвига к выходному значению вычисления со взвешиванием.Fig. 126 is a conceptual diagram illustrating an example of generating a CCALF value of a luminance signal component by applying a bit shift to a weighted calculation output value.

Фиг. 127 является концептуальной схемой, иллюстрирующей пример формирования CCALF-значения компонента сигнала яркости посредством применения побитового сдвига к выходному значению вычисления со взвешиванием.Fig. 127 is a conceptual diagram illustrating an example of generating a CCALF value of a luminance signal component by applying a bit shift to a weighted calculation output value.

Фиг. 128 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно седьмому аспекту.Fig. 128 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a parameter according to the seventh aspect.

Фиг. 129 иллюстрирует выборочные местоположения одного или более параметров, которые должны синтаксически анализироваться из потока битов.Fig. 129 illustrates sample locations of one or more parameters that are to be parsed from the bitstream.

Фиг. 130 показывает примерные процессы извлечения одного или более параметров.Fig. 130 shows exemplary processes for retrieving one or more parameters.

Фиг. 131 показывает выборочные значения второго параметра.Fig. 131 shows sample values of the second parameter.

Фиг. 132 показывает пример синтаксического анализа второго параметра с использованием арифметического кодирования.Fig. 132 shows an example of parsing the second parameter using arithmetic encoding.

Фиг. 133 является концептуальной схемой варьирования этого варианта осуществления, применяемого к прямоугольным сегментам и непрямоугольным сегментам, таким как треугольные сегменты.Fig. 133 is a conceptual diagram of a variation of this embodiment applied to rectangular segments and non-rectangular segments such as triangular segments.

Фиг. 134 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно восьми аспектам.Fig. 134 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a parameter according to eight aspects.

Фиг. 135 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно восьмому аспекту.Fig. 135 is a flowchart for an exemplary processing flow for decoding an image applying a CCALF process using a parameter according to the eighth aspect.

Фиг. 136 показывает примерные местоположения типов 0-5 выборок сигналов цветности.Fig. 136 shows exemplary locations of chroma sample types 0-5.

Фиг. 137 является концептуальной схемой, иллюстрирующей выборочное симметричное дополнение.Fig. 137 is a conceptual diagram illustrating selective symmetrical complement.

Фиг. 138 является концептуальной схемой, иллюстрирующей выборочное симметричное дополнение.Fig. 138 is a conceptual diagram illustrating selective symmetrical complement.

Фиг. 139 является концептуальной схемой, иллюстрирующей выборочное симметричное дополнение.Fig. 139 is a conceptual diagram illustrating selective symmetrical complement.

Фиг. 140 является концептуальной схемой, иллюстрирующей выборочное несимметричное дополнение.Fig. 140 is a conceptual diagram illustrating selective non-symmetrical padding.

Фиг. 141 является концептуальной схемой, иллюстрирующей выборочное несимметричное дополнение.Fig. 141 is a conceptual diagram illustrating selective non-symmetrical padding.

Фиг. 142 является концептуальной схемой, иллюстрирующей выборочное несимметричное дополнение.Fig. 142 is a conceptual diagram illustrating selective non-symmetrical padding.

Фиг. 143 является концептуальной схемой, иллюстрирующей выборочное несимметричное дополнение.Fig. 143 is a conceptual diagram illustrating selective non-symmetrical padding.

Фиг. 144 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 144 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 145 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 145 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 146 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 146 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 147 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 147 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 148 является концептуальной схемой, иллюстрирующей дополнительное выборочное симметричное дополнение.Fig. 148 is a conceptual diagram illustrating additional selective symmetrical addition.

Фиг. 149 является концептуальной схемой, иллюстрирующей дополнительное выборочное симметричное дополнение.Fig. 149 is a conceptual diagram illustrating additional selective symmetrical addition.

Фиг. 150 является концептуальной схемой, иллюстрирующей дополнительное выборочное симметричное дополнение.Fig. 150 is a conceptual diagram illustrating additional selective symmetrical addition.

Фиг. 151 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 151 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 152 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 152 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 153 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 153 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 154 является концептуальной схемой, иллюстрирующей дополнительное выборочное несимметричное дополнение.Fig. 154 is a conceptual diagram illustrating additional selective non-symmetrical padding.

Фиг. 155 иллюстрирует дополнительные примеры дополнения с горизонтальной и вертикальной виртуальной границей.Fig. 155 illustrates additional examples of padding with a horizontal and vertical virtual border.

Фиг. 156 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно примеру, в котором симметричное дополнение используется в виртуальных граничных местоположениях в виртуальных граничных местоположениях для ALF, и симметричное или несимметричное дополнение используется в виртуальных граничных местоположениях для CCALF.Fig. 156 is a block diagram illustrating a functional configuration of an encoder and decoder according to an example in which symmetric padding is used at virtual boundary locations in virtual boundary locations for ALF, and symmetric or non-symmetric padding is used at virtual boundary locations for CCALF.

Фиг. 157 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно примеру, в котором другое симметричное дополнение используется в виртуальных граничных местоположениях для ALF, и одностороннее дополнение используется в виртуальных граничных местоположениях для CCALF.Fig. 157 is a block diagram illustrating the functional configuration of an encoder and decoder according to an example in which other symmetrical padding is used in virtual boundary locations for ALF, and one-sided padding is used in virtual boundary locations for CCALF.

Фиг. 158 является концептуальной схемой, иллюстрирующей пример одностороннего дополнения с горизонтальной или вертикальной виртуальной границей.Fig. 158 is a conceptual diagram illustrating an example of one-sided padding with a horizontal or vertical virtual border.

Фиг. 159 является концептуальной схемой, иллюстрирующей пример одностороннего дополнения с горизонтальной и вертикальной виртуальной границей.Fig. 159 is a conceptual diagram illustrating an example of one-way padding with a horizontal and vertical virtual border.

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

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

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

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

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

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

[0016] На чертежах, идентичные ссылки с номерами идентифицируют аналогичные элементы, если контекст не указывает иное. Размеры и относительные позиции элементов на чертежах не обязательно чертятся в масштабе.[0016] In the drawings, identical reference numbers identify like elements unless the context indicates otherwise. Dimensions and relative positions of elements in drawings are not necessarily drawn to scale.

[0017] В дальнейшем в этом документе описываются варианты осуществления со ссылкой на чертежи. Следует отметить, что варианты осуществления, описанные ниже, показывают общий или конкретный пример. Числовые значения, формы, материалы, компоненты, компоновка и соединение компонентов, этапов, взаимосвязь и порядок этапов и т.д., указываемых в нижеприведенных вариантах осуществления, представляют собой просто примеры и в силу этого не имеют намерение ограничивать объем формулы изобретения.[0017] Embodiments will be 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.

[0018] Ниже описываются варианты осуществления кодера и декодера. Варианты осуществления представляют собой примеры кодера и декодера, к которым являются применимыми процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия сущности. Процессы и/или конфигурации также могут реализовываться в кодере и декодере, отличающихся от кодера и декодера согласно вариантам осуществления. Например, относительно процессов и/или конфигураций, применяемых к вариантам осуществления, может реализовываться любое из следующего:[0018] 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:

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

[0020] (2) В кодере или декодере согласно вариантам осуществления, дискреционные изменения могут вноситься в функции или процессы, выполняемые посредством одного или более компонентов кодера или декодера, такие как добавление, замена, удаление и т.д. функций или процессов. Например, любая функция или процесс может заменяться или комбинироваться с другой функцией или процессом, представленным в любом месте в описании аспектов настоящего раскрытия сущности.[0020] (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.

[0021] (3) В способах, реализованных посредством кодера или декодера согласно вариантам осуществления, могут вноситься дискреционные изменения, такие как добавление, замена и удаление одного или более процессов, включенных в способ. Например, любой процесс в способе может заменяться или комбинироваться с другим процессом, представленным в любом месте в описании аспектов настоящего раскрытия сущности.[0021] (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.

[0022] (4) Один или более компонентов, включенных в кодер или декодер согласно вариантам осуществления, могут комбинироваться с компонентом, представленным в любом месте в описании аспектов настоящего раскрытия сущности, могут комбинироваться с компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия сущности, и могут комбинироваться с компонентом, который реализует один или более процессов, реализованных посредством компонента, представленного в описании аспектов настоящего раскрытия сущности.[0022] (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 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.

[0023] (5) Компонент, включающий в себя одну или более функций кодера или декодера согласно вариантам осуществления, либо компонент, который реализует один или более процессов кодера или декодера согласно вариантам осуществления, может комбинироваться или заменяться компонентом, представленным в любом месте в описании аспектов настоящего раскрытия сущности, компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия сущности, либо компонентом, который реализует один или более процессов, представленных в любом месте в описании аспектов настоящего раскрытия сущности.[0023] (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 the present disclosure, a component that includes one or more of the functions presented anywhere in the description of aspects of the present disclosure, or a component that implements one or more processes presented anywhere in the description of aspects of the present disclosure.

[0024] (6) В способах, реализованных посредством кодера или декодера согласно вариантам осуществления, любой из процессов, включенных в способ, может заменяться или комбинироваться с процессом, представленным в любом месте в описании аспектов настоящего раскрытия сущности, либо с любым соответствующим или эквивалентным процессом.[0024] (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.

[0025] (7) Один или более процессов, включенных в способы, реализованные посредством кодера или декодера согласно вариантам осуществления, могут комбинироваться с процессом, представленным в любом месте в описании аспектов настоящего раскрытия сущности.[0025] (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.

[0026] (8) Реализация процессов и/или конфигураций, представленных в описании аспектов настоящего раскрытия сущности, не ограничена кодером или декодером согласно вариантам осуществления. Например, процессы и/или конфигурации могут реализовываться в устройстве, используемом для цели, отличающейся от кодера движущихся кадров или декодера движущихся кадров, раскрытого в вариантах осуществления.[0026] (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.

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

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

[0028] Изображение представляет собой единицу данных, сконфигурированную с набором пикселов, представляет собой кадр или включает в себя блоки, меньшие пиксела. Изображения включают в себя неподвижное изображение в дополнение к видео.[0028] An image is a unit of data configured with a set of pixels, is a frame, or includes blocks smaller than a pixel. Images include still image in addition to video.

[0029] Кадр представляет собой единицу обработки изображений, сконфигурированную с набором пикселов, и также может называться "кадром" или "полем". Кадр, например, может принимать форму массива выборок сигналов яркости в монохромном формате или массива выборок сигналов яркости и двух соответствующих массивов выборок сигналов цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.[0029] A frame is an image processing unit configured with a set of pixels, and may also be referred to as a "frame" or "field". A frame, for example, may take the form of 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.

[0030] Блок представляет собой единицу обработки, которая представляет собой набор определенного числа пикселов. Блоки могут иметь любое число различных форм. Например, блок может иметь прямоугольную форму в MxN (M столбцов на N строк) пикселов, квадратную форму в MxM пикселов, треугольную форму, круглую форму и т.д. Примеры блоков включают в себя срезы, плитки, кирпичи, CTU, суперблоки, базовые единицы разбиения, VPDU, единицы разбиения для обработки для аппаратных средств, CU, блочные единицы для обработки, блочные единицы прогнозирования (PU), блочные единицы ортогонального преобразования (TU), единицы и субблоки. Блок может принимать форму массива MxN выборок или массива MxN коэффициентов преобразования. Например, блок может представлять собой квадратную или прямоугольную область пикселов, включающую в себя одну матрицу сигналов яркости и две матрицы сигналов цветности.[0030] A block is a processing unit that is a collection of a specific number of pixels. Blocks can have any number of different shapes. For example, a block may have a rectangular shape of MxN (M columns by N rows) pixels, a square shape of MxM pixels, a triangular shape, a circular shape, etc. Examples of blocks include slices, tiles, bricks, CTUs, superblocks, basic partitioning units, VPDUs, hardware partitioning units, CUs, processing block units, prediction block units (PUs), orthogonal transform block units (TUs) , units and subunits. The block may take the form of an MxN array of samples or an MxN array of transform coefficients. For example, a block may be a square or rectangular region of pixels including one luma matrix and two chroma matrices.

[0031] Пиксел или выборка представляет собой наименьшую точку изображения. Пикселы или выборки включают в себя пиксел в целочисленной позиции, а также пикселы в субпиксельных позициях, например, сформированных на основе пиксела в целочисленной позиции.[0031] A pixel or sample is the smallest point in an image. The pixels or samples include a pixel at an integer position as well as pixels at sub-pixel positions, such as those generated from the pixel at an integer position.

[0032] Пиксельное значение или выборочное значение представляет собой собственное значение пиксела. Пиксельные значения или выборочные значения могут включать в себя одно или более из значения сигнала яркости, значения сигнала цветности, уровня RGB-градации, значения глубины, двоичных значений в нуль или 1 и т.д.[0032] A pixel value or sample value is a pixel's own value. The pixel values or sample values may include one or more of a luma value, a chrominance value, an RGB gradation level, a depth value, binary values of zero or 1, etc.

[0033] Сигнал цветности или цветность представляют собой интенсивность цвета, типично представленную посредством символов Cb и Cr, которые указывают то, что значения массива выборок или одно выборочное значение представляют значения одного из двух цветоразностных сигналов, связанных с первичными цветами.[0033] The chrominance signal or chrominance represents color intensity, typically represented by the symbols Cb and Cr, which indicate that the sample array values or one sample value represent the values of one of two chrominance signals associated with the primary colors.

[0034] Сигнал яркости или яркость представляет собой яркость изображения, типично представленную посредством символа или подстрочного индекса Y или L, которые указывают то, что значения массива выборок или одно выборочное значение представляют значения монохромного сигнала, связанные с первичными цветами.[0034] A luminance signal or luminance is the luminance of an image, typically represented by a symbol or subscript Y or L, which indicates that the sample array values or one sample value represent monochrome signal values associated with the primary colors.

[0035] Флаг содержит один или более битов, которые указывают значение, например, параметра или индекса. Флаг может представлять собой двоичный флаг, который указывает двоичное значение флага, который также может указывать недвоичное значение параметра.[0035] The flag contains one or more bits that indicate the value of, for example, a parameter or an index. The flag may be a binary flag, which indicates the binary value of the flag, which may also indicate the non-binary value of the parameter.

[0036] Сигнал передает информацию, которая преобразуется в символьную форму посредством или кодируется в сигнал. Сигналы включают в себя дискретные цифровые сигналы и непрерывные аналоговые сигналы.[0036] The signal conveys information that is converted into symbol form by or encoded into a signal. Signals include discrete digital signals and continuous analog signals.

[0037] Поток или поток битов представляет собой строку цифровых данных потока цифровых данных. Поток или поток битов может представлять собой один поток либо может быть сконфигурирован с множеством потоков, имеющих множество иерархических слоев. Поток или поток битов может передаваться при последовательной связи с использованием одного тракта передачи либо может передаваться при связи с коммутацией пакетов с использованием множества трактов передачи.[0037] A stream or bit stream is a string of digital data of a digital data stream. The stream or bitstream may be a single stream or may be configured with multiple streams having multiple hierarchical layers. The stream or stream of bits may be transmitted in serial communication using a single transmission path, or may be transmitted in packet switched communication using multiple transmission paths.

[0038] Разность означает различные математические разности, к примеру, простую разность (x-y), абсолютное значение разности (|x-y|), квадрат разности (x^2-y^2), квадратный корень разности (√(x-y)), взвешенную разность (ax-by: a и b являются константами), разность смещения (x-y+a: a является смещением) и т.д. В случае скалярной величины, простая разность может быть достаточной, и вычисление разности может включаться.[0038] Difference means various mathematical differences, for example, simple difference (x-y), absolute value of difference (|x-y|), squared difference (x^2-y^2), square root difference (√(x-y)), weighted difference (ax-by: a and b are constants), offset difference (x-y+a: a is offset), etc. In the case of a scalar quantity, a simple difference may be sufficient and a difference calculation may be enabled.

[0039] Сумма означает различные математические суммы, к примеру, простую сумму (x+y), абсолютное значение суммы (|x+y|), возведенную в квадрат сумму (x^2+y^2), квадратный корень суммы (√(x+y)), взвешенную разность (ax+by: a и b являются константами), сумму смещения (x+y+a: a является смещением) и т.д. В случае скалярной величины, простая сумма может быть достаточной, и вычисление сумм может включаться.[0039] Sum means various mathematical sums, for example, the simple sum (x+y), the absolute value of the sum (|x+y|), the squared sum (x^2+y^2), the square root of the sum (√ (x+y)), weighted difference (ax+by: a and b are constants), offset sum (x+y+a: a is offset), etc. In the case of a scalar quantity, a simple sum may be sufficient and the calculation of sums may be involved.

[0040] Кадр представляет собой композицию верхнего поля и нижнего поля, при этом строки 0, 2, 4, ..., выборок инициируются из верхнего поля, и строки 1, 3, 5, ..., выборок инициируются из нижнего поля.[0040] 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.

[0041] Срез представляет собой целое число единиц дерева кодирования, содержащихся в одном независимом сегменте срезов и во всех последующих зависимых сегментах срезов (если таковые имеются), которые предшествуют следующему независимому сегменту срезов (если таковые имеются) в идентичной единице доступа.[0041] 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.

[0042] Плитка представляет собой прямоугольную область блоков дерева кодирования в конкретном столбце плиток и конкретной строке плиток в кадре. Плитка может представлять собой прямоугольную область кинокадра, которая должна иметь возможность декодироваться и кодироваться независимо, хотя по-прежнему может применяться контурная фильтрация по краям плиток.[0042] 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 a movie frame that should be able to be decoded and encoded independently, although edge filtering can still be applied to the edges of the tiles.

[0043] Единица дерева кодирования (CTU) может представлять собой блок дерева кодирования выборок сигнала яркости кадра, который имеет три массива выборок, или два соответствующих блока дерева кодирования выборок сигнала цветности. Альтернативно, CTU может представлять собой блок дерева кодирования выборок одного из монохромного кадра и кадра, который кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для того, чтобы кодировать выборки. Суперблок может представлять собой квадратный блок в 64×64 пикселов, который состоит из или 1 или 2 блоков информации режима или рекурсивно сегментируется на четыре блока 32×32, которые сами дополнительно могут сегментироваться.[0043] A coding tree unit (CTU) may be a frame luminance 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. 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.

[0044] Конфигурация системы [0044] System Configuration

Во-первых, описывается система передачи согласно варианту осуществления. Фиг. 1 является принципиальной схемой, иллюстрирующей один пример конфигурации системы 400 передачи согласно варианту осуществления.First, the transmission system according to the embodiment is described. Fig. 1 is a circuit diagram illustrating one example configuration of transmission system 400 according to an embodiment.

[0045] Система 400 передачи представляет собой систему, которая передает поток, сформированный посредством кодирования изображения, и декодирует передаваемый поток. Как проиллюстрировано, система 400 передачи включает в себя кодер 100, сеть 300 и декодер 200, как проиллюстрировано на фиг. 1.[0045] The transmission system 400 is a system that transmits a stream generated by image encoding and decodes the transmitted stream. As illustrated, transmission system 400 includes an encoder 100, a network 300, and a decoder 200, as illustrated in FIG. 1.

[0046] Изображение вводится в кодер 100. Кодер 100 формирует поток посредством кодирования входного изображения и выводит поток в сеть 300. Поток включает в себя, например, кодированную информацию изображений и управляющую информацию для декодирования кодированного изображения. Изображение сжимается посредством кодирования.[0046] An image is input to encoder 100. Encoder 100 generates a stream by encoding the input image and outputs the stream to network 300. The stream includes, for example, encoded image information and control information for decoding the encoded image. The image is compressed through encoding.

[0047] Следует отметить, что изображение до кодирования посредством кодера 100 также называется "исходным изображением", "исходным сигналом" или "исходной выборкой". Изображение может представлять собой видео или неподвижное изображение. Изображение представляет собой общий принцип последовательности, кадра и блока и в силу этого не ограничено пространственной областью, имеющей конкретный размер, и временной областью, имеющей конкретный размер, если не указано иное. Изображение представляет собой массив пикселов или пиксельных значений, и сигнал, представляющий изображение или пиксельные значения, также называется "выборками". Поток может называться "потоком битов", "кодированным потоком битов", "сжатым потоком битов" или "кодированным сигналом". Кроме того, кодер 100 может называться "кодером изображений" или "видеокодером". Способ кодирования, выполняемый посредством кодера 100, может называться "способом кодирования", "способом кодирования изображений" или "способом кодирования видео".[0047] It should be noted that the image before encoding by the encoder 100 is also referred to as the “original image,” “original signal,” or “original sample.” The image may be a video or a still image. The image represents the general principle of sequence, frame and block and is therefore not limited to a spatial region having a specific size and a temporal region having a specific size unless otherwise specified. An image is an array of pixels or pixel values, and the signal representing the image or pixel values is also called "samples". The stream may be referred to as a "bitstream", "coded bitstream", "compressed bitstream" or "coded signal". In addition, the encoder 100 may be referred to as an "image encoder" or a "video encoder". The encoding method performed by the encoder 100 may be called "encoding method", "image encoding method" or "video encoding method".

[0048] Сеть 300 передает поток, сформированный посредством кодера 100, в декодер 200. Сеть 200 может представлять собой Интернет, глобальную вычислительную сеть (WAN), локальную вычислительную сеть (LAN) либо любую комбинацию сетей. Сеть 300 не ограничена сетью двунаправленной связи и может представлять собой сеть однонаправленной связи, которая передает широковещательные волны цифровой наземной широковещательной передачи, спутниковой широковещательной передачи и т.п. Альтернативно, сеть 300 может заменяться посредством носителя записи, такого как универсальный цифровой диск (DVD) и Blu-Ray-диск (BD) и т.д., на который записывается поток.[0048] Network 300 transmits the stream generated by encoder 100 to decoder 200. Network 200 may be the Internet, a wide area network (WAN), a local area network (LAN), or any combination of networks. Network 300 is not limited to a bidirectional communication network and may be a unidirectional communication network that transmits digital terrestrial broadcast, satellite broadcast, and the like broadcast waves. Alternatively, the network 300 may be replaced by a recording medium such as a digital versatile disc (DVD) and a Blu-ray disc (BD), etc., on which the stream is recorded.

[0049] Декодер 200 формирует, для примера, декодированное изображение, которое представляет собой несжатое изображение, посредством декодирования потока, передаваемого посредством сети 300. Например, декодер декодирует поток согласно способу декодирования, соответствующему способу кодирования, используемому посредством кодера 100.[0049] The decoder 200 generates, for example, a decoded image, which is an uncompressed image, by decoding a stream transmitted via the network 300. For example, the decoder decodes the stream according to a decoding method corresponding to the encoding method used by the encoder 100.

[0050] Следует отметить, что декодер 200 также может называться "декодером изображений" или "видеодекодером", и что способ декодирования, выполняемый посредством декодера 200, также может называться "способом декодирования", "способом декодирования изображений" или "способом декодирования видео".[0050] It should be noted that the decoder 200 may also be referred to as an "image decoder" or a "video decoder", and that the decoding method performed by the decoder 200 may also be referred to as a "decoding method", "image decoding method" or "video decoding method" .

[0051] Структура данных [0051] Data structure

Фиг. 2 является концептуальной схемой для иллюстрации одного примера иерархической структуры данных в потоке. Для удобства, фиг. 2 описывается со ссылкой на систему 400 передачи по фиг. 1. Поток включает в себя, например, видеопоследовательность. Как проиллюстрировано в (a) по фиг. 2, видеопоследовательность включает в себя один или более наборов параметров видео (VPS), один или более наборов параметров последовательности (SPS), один или более наборов параметров кадра (PPS), дополнительную улучшающую информацию (SEI) и множество кадров.Fig. 2 is a conceptual diagram to illustrate one example of a hierarchical data structure in a stream. For convenience, FIG. 2 is described with reference to the transmission system 400 of FIG. 1. The stream includes, for example, a video sequence. As illustrated in (a) of FIG. 2, a video sequence includes one or more video parameter sets (VPS), one or more sequence parameter sets (SPS), one or more frame parameter sets (PPS), additional enhancement information (SEI), and a plurality of frames.

[0052] В видео, имеющем множество слоев, VPS может включать в себя параметр кодирования, который является общим между некоторыми из множества слоев, и параметр кодирования, связанный с некоторыми из множества слоев, включенных в видео, или с отдельным слоем.[0052] In a video having multiple layers, the VPS may include an encoding parameter that is common among some of the plurality of layers, and an encoding parameter associated with some of the multiple layers included in the video or with a particular layer.

[0053] SPS включает в себя параметр, который используется для последовательности, т.е. параметр кодирования, к которому обращается декодер 200 для того, чтобы декодировать последовательность. Например, параметр кодирования может указывать ширину или высоту кадра. Следует отметить, что множество SPS могут присутствовать.[0053] SPS includes a parameter that is used for the sequence, i.e. an encoding parameter that is accessed by decoder 200 in order to decode the sequence. For example, the encoding parameter may indicate the width or height of the frame. It should be noted that multiple SPS may be present.

[0054] PPS включает в себя параметр, который используется для кадра, т.е. параметр кодирования, к которому обращается декодер 200 для того, чтобы декодировать каждый из кадров в последовательности. Например, параметр кодирования может включать в себя опорное значение для ширины квантования, которая используется для того, чтобы декодировать кадр, и флаг, указывающий применение прогнозирования со взвешиванием. Следует отметить, что множество PPS могут присутствовать. Каждый из SPS и PPS может называться просто "набором параметров".[0054] PPS includes a parameter that is used for the frame, i.e. an encoding parameter that is accessed by the decoder 200 in order to decode each of the frames in the sequence. For example, the encoding parameter may include a reference value for the quantization width that is used to decode the frame, and a flag indicating the use of weighted prediction. It should be noted that multiple PPS may be present. Each of the SPS and PPS may be referred to simply as a "parameter set".

[0055] Как проиллюстрировано в (b) по фиг. 2, кадр может включать в себя заголовок кадра и один или более срезов. Заголовок кадра включает в себя параметр кодирования, к которому обращается декодер 200 для того, чтобы декодировать один или более срезов.[0055] As illustrated in (b) of FIG. 2, a frame may include a frame header and one or more slices. The frame header includes an encoding parameter that is accessed by the decoder 200 in order to decode one or more slices.

[0056] Как проиллюстрировано в (c) по фиг. 2, срез включает в себя заголовок среза и один или более кирпичей. Заголовок среза включает в себя параметр кодирования, к которому обращается декодер 200 для того, чтобы декодировать один или более кирпичей.[0056] As illustrated in (c) of FIG. 2, a slice includes a slice header and one or more bricks. The slice header includes an encoding parameter that is accessed by the decoder 200 in order to decode one or more bricks.

[0057] Как проиллюстрировано в (d) по фиг. 2, кирпич включает в себя одну или более единиц дерева кодирования (CTU).[0057] As illustrated in (d) of FIG. 2, a brick includes one or more coding tree units (CTUs).

[0058] Следует отметить, что кадр может не включать в себя срез и может включать в себя группу плиток вместо среза. В этом случае, группа плиток включает в себя, по меньшей мере, одну плитку. Помимо этого, кирпич может включать в себя срез.[0058] It should be noted that the frame may not include a slice and may include a group of tiles instead of a slice. In this case, the tile group includes at least one tile. In addition, the brick may include a cut.

[0059] CTU также называется "суперблоком" или "базисной единицей разбиения". Как проиллюстрировано в (e) по фиг. 2, CTU включает в себя CTU-заголовок и, по меньшей мере, одну единицу кодирования (CU). Как проиллюстрировано, CTU включает в себя четыре единицы кодирования CU(10), CU(11), (CU(12) и CU(13). CTU-заголовок включает в себя параметр кодирования, к которому обращается декодер 200 для того, чтобы декодировать, по меньшей мере, одну CU.[0059] A CTU is also called a "superblock" or "basic partitioning unit". As illustrated in (e) of FIG. 2, the CTU includes a CTU header and at least one coding unit (CU). As illustrated, the CTU includes four encoding units CU(10), CU(11), CU(12), and CU(13). The CTU header includes an encoding parameter that is accessed by the decoder 200 in order to decode at least one CU.

[0060] CU может разбиваться на множество меньших CU. Как показано, CU(10) не разбивается на меньшие единицы кодирования; CU(11) разбивается на четыре меньших единицы кодирования CU(110), CU(111), CU(112) и CU(113); CU(12) не разбивается на меньшие единицы кодирования; и CU(13) разбивается на семь меньших единиц кодирования CU(1310), CU(1311), CU(1312), CU(1313), CU(132), CU(133) и CU(134), как проиллюстрировано в(f) по фиг. 2, CU включает в себя заголовок CU, информацию прогнозирования и информацию остаточных коэффициентов. Информация прогнозирования представляет собой информацию для прогнозирования CU, и информация остаточных коэффициентов представляет собой информацию, указывающую остаток прогнозирования, который описывается ниже. Хотя CU является по существу идентичной единице прогнозирования (PU) и единице преобразования (TU), следует отметить, что, например, субблочное преобразование (SBT), которое описывается ниже, может включать в себя множество TU, меньших CU. Помимо этого, CU может обрабатываться для каждой виртуальной конвейерной единицы декодирования (VPDU), включенной в CU. VPDU, например, представляет собой фиксированную единицу, которая может обрабатываться однократно, когда конвейерная обработка выполняется в аппаратных средствах.[0060] A CU may be broken down into multiple smaller CUs. As shown, CU(10) is not broken down into smaller coding units; CU(11) is broken down into four smaller coding units CU(110), CU(111), CU(112) and CU(113); CU(12) is not broken down into smaller coding units; and CU(13) is broken down into seven smaller encoding units CU(1310), CU(1311), CU(1312), CU(1313), CU(132), CU(133) and CU(134), as illustrated in ( f) according to FIG. 2, the CU includes a CU header, prediction information, and residual coefficient information. The prediction information is information for predicting the CU, and the residual coefficient information is information indicating the prediction residual, which is described below. Although a CU is essentially identical to a prediction unit (PU) and a transformation unit (TU), it should be noted that, for example, a sub-block transform (SBT), which is described below, may include multiple TUs smaller than the CU. In addition, the CU may be processed for each virtual pipelined decoding unit (VPDU) included in the CU. A VPDU, for example, is a fixed unit that can be processed once when pipelined in hardware.

[0061] Следует отметить, что поток может не включать в себя все иерархические слои, проиллюстрированные на фиг. 2. Порядок иерархических слоев может меняться, или любой из иерархических слоев может заменяться посредством другого иерархического слоя. Здесь, кадр, который представляет собой цель для процесса, который должен выполняться посредством устройства, такого как кодер 100 или декодер 200, называется "текущим кадром". Текущий кадр означает текущий кадр, который должен кодироваться, когда процесс представляет собой процесс кодирования, и текущий кадр означает текущий кадр, который должен декодироваться, когда процесс представляет собой процесс декодирования. Аналогично, например, CU или блок CU, который представляет собой цель для процесса, который должен выполняться посредством устройства, такого как кодер 100 или декодер 200, называется "текущим блоком". Текущий блок означает текущий блок, который должен кодироваться, когда процесс представляет собой процесс кодирования, и текущий блок означает текущий блок, который должен декодироваться, когда процесс представляет собой процесс декодирования.[0061] It should be noted that the stream may not include all of the hierarchical layers illustrated in FIG. 2. The order of the hierarchical layers can be changed, or any of the hierarchical layers can be replaced by another hierarchical layer. Here, a frame that represents a target for a process to be performed by a device such as an encoder 100 or a decoder 200 is called a “current frame.” The current frame means the current frame to be encoded when the process is an encoding process, and the current frame means the current frame to be decoded when the process is a decoding process. Likewise, for example, a CU or block CU that represents a target for a process to be performed by a device such as encoder 100 or decoder 200 is called a “current block.” The current block means the current block to be encoded when the process is an encoding process, and the current block means the current block to be decoded when the process is a decoding process.

[0062] Структура кадра: срез/плитка [0062] Frame structure: slice/tile

Кадр может быть сконфигурирован с одной или более единиц срезов или одной или более единиц плиток, чтобы упрощать параллельное кодирование/декодирование кадра.A frame may be configured with one or more slice units or one or more tile units to facilitate parallel frame encoding/decoding.

[0063] Срезы представляют собой базовые единицы кодирования, включенные в кадр. Кадр может включать в себя, например, один или более срезов. Помимо этого, срез включает в себя одну или боле единиц дерева кодирования (CTU).[0063] 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 coding tree units (CTUs).

[0064] Фиг. 3 является концептуальной схемой для иллюстрации одного примера конфигурации срезов. Например, на фиг. 3, кадр включает в себя CTU 11×8 и разбивается на четыре среза (срезы 1-4). Срез 1 включает в себя шестнадцать CTU, срез 2 включает в себя двадцать одну CTU, срез 3 включает в себя двадцать девять CTU, и срез 4 включает в себя двадцать две CTU. Здесь, каждая CTU в кадре принадлежит одному из срезов. Форма каждого среза представляет собой форму, полученную посредством разбиения кадра горизонтально. Граница каждого среза не должна обязательно совпадать с концом изображения и может совпадать с любой из границ между CTU в изображении. Порядок обработки CTU в срезе (порядок кодирования или порядок декодирования), например, представляет собой порядок растрового сканирования. Срез включает в себя заголовок среза и кодированные данные. Признаки среза могут записываться в заголовок среза. Признаки могут включать в себя CTU-адрес верхней CTU в срезе, тип среза и т.д.[0064] FIG. 3 is a conceptual diagram for illustrating one example of a slice configuration. For example, in FIG. 3, the 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 splitting 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. A slice includes a slice header and encoded data. Slice attributes can be written to the slice header. Features may include the CTU address of the top CTU in the slice, the slice type, etc.

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

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

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

[0068] Следует отметить, что кадр может быть сконфигурирован с одним или более наборов плиток. Набор плиток может включать в себя одну или более групп плиток или одну или более плиток. Кадр может быть сконфигурирован с одним из набора плиток, группы плиток и плитки. Например, порядок для сканирования множества плиток для каждого набора плиток в порядке растрового сканирования предположительно представляет собой базовый порядок кодирования плиток. Набор из одной или более плиток, которые являются непрерывными в базовом порядке кодирования в каждом наборе плиток, предположительно представляет собой группу плиток. Такой кадр может быть сконфигурирован посредством модуля 102 разбиения (см. фиг. 7), который описывается ниже.[0068] It should be noted that a frame may be configured with one or more tile sets. A set of tiles may include one or more groups of tiles or one or more tiles. A frame can be configured with one of a tile set, a tile group, and a tile. For example, the order for scanning multiple tiles for each set of tiles in raster scan order is presumably the basic order for encoding the tiles. A set of one or more tiles that are contiguous in the basic encoding order within each tile set is assumed to constitute a group of tiles. Such a frame may be configured by a splitter 102 (see FIG. 7), which is described below.

[0069] Масштабируемое кодирование [0069] Scalable Coding

Фиг. 5 и 6 являются концептуальными схемами, иллюстрирующими примеры масштабируемых структур потока, и описываются для удобства со ссылкой на фиг. 1.Fig. 5 and 6 are conceptual diagrams illustrating examples of scalable flow structures and are described for convenience with reference to FIGS. 1.

[0070] Как проиллюстрировано на фиг. 5, кодер 100 может формировать временно/пространственно масштабируемый поток посредством разделения каждого из множества кадров на любые из множества слоев и кодирования кадра в слое. Например, кодер 100 кодирует кадр для каждого слоя, за счет этого достигая масштабируемости, при которой улучшающий слой присутствует выше базового слоя. Такое кодирование каждого кадра также называется "масштабируемым кодированием". Таким образом, декодер 200 допускает переключение качества изображений для изображения, которое отображается посредством декодирования потока. Другими словами, декодер 200 может определять то, какой слой следует декодировать, на основе внутренних факторов, таких как характеристики обработки декодера 200, и внешних факторов, таких как состояние полосы пропускания линий связи. Как результат, декодер 200 допускает декодирование контента при свободном переключении между низким разрешением и высоким разрешением. Например, пользователь потока просматривает видео потока наполовину с использованием смартфона по пути домой и продолжает просмотр ролика дома на таком устройстве, как телевизор, соединенный с Интернетом. Следует отметить, что каждое из смартфона и устройства, описанных выше, включает в себя декодер 200, имеющий идентичную или различную производительность. В этом случае, когда устройство декодирует слои вплоть до верхнего слоя в потоке, пользователь может просматривать видео в высоком качестве дома. Таким образом, кодер 100 не должен формировать множество потоков, имеющих различные качества изображений идентичного контента, и в силу этого нагрузка по обработке может уменьшаться.[0070] As illustrated in FIG. 5, encoder 100 may generate a temporally/spatially scalable stream by dividing each of a plurality of frames into any of a plurality of layers and encoding the frame within the layer. For example, encoder 100 encodes a frame for each layer, thereby achieving scalability in which an enhancement layer is present above the base layer. This encoding of each frame is also called "scalable encoding". Thus, the decoder 200 allows switching of image quality for an image that is displayed by decoding the stream. In other words, the decoder 200 can determine which layer to decode based on internal factors such as the processing characteristics of the decoder 200 and external factors such as the bandwidth state of the communication links. As a result, decoder 200 allows content to be decoded while freely switching between low resolution and high resolution. For example, a stream user watches a video stream halfway using a smartphone on the way home and continues watching the video at home on a device such as an Internet-connected TV. It should be noted that each of the smartphone and device described above includes a decoder 200 having identical or different performance. In this case, when the device decodes layers up to the top layer in the stream, the user can watch the video in high quality at home. Thus, the encoder 100 does not have to generate multiple streams having different image qualities of identical content, and thereby the processing load can be reduced.

[0071] Кроме того, улучшающий слой может включать в себя метаинформацию на основе статистической информации относительно изображения. Декодер 200 может формировать видео, качество изображений которого повышено посредством выполнения формирования изображений со сверхразрешением на кадре в базовом слое на основе метаданных. Формирование изображений со сверхразрешением может включать в себя, например, улучшение SN-отношения при идентичном разрешении, увеличение разрешения и т.д. Метаданные могут включать в себя, например, информацию для идентификации коэффициента линейной или нелинейной фильтрации, используемой в процессе на основе сверхразрешения, либо информацию, идентифицирующую значение параметра в процессе фильтрации, при машинном обучении или в методе наименьших квадратов, используемом в обработке на основе сверхразрешения и т.д.[0071] In addition, the enhancement layer may include meta-information based on statistical information regarding the image. The decoder 200 can generate video whose image quality is enhanced by performing super-resolution imaging on a frame in the base layer based on metadata. Super-resolution imaging may include, for example, improving the SN ratio at the same resolution, increasing the resolution, etc. The metadata may include, for example, information to identify a linear or nonlinear filtering coefficient used in a super-resolution process, or information identifying the value of a parameter in a filtering process, machine learning, or least squares method used in a super-resolution process and etc.

[0072] В варианте осуществления, может предоставляться конфигурация, в которой кадр разделяется, например, на плитки, например, в соответствии со смысловым значением объекта в кадре. В этом случае, декодер 200 может декодировать только частичную область в кадре посредством выбора плитки, которая должна декодироваться. Помимо этого, атрибут объекта (человека, автомобиля, шара и т.д.) и позиция объекта в кадре (координаты в идентичных изображениях) могут сохраняться в качестве метаданных. В этом случае, декодер 200 допускает идентификацию позиции требуемого объекта на основе метаданных и определение плитки, включающей в себя объект. Например, как проиллюстрировано на фиг. 6, метаданные могут сохраняться с использованием структуры хранения данных, отличающейся от данных изображений, такой как сообщение с SEI (дополнительной улучшающей информацией) в HEVC. Эти метаданные указывают, например, позицию, размер или цвет основного объекта.[0072] In an embodiment, a configuration may be provided in which a frame is divided, for example, into tiles, for example, according to the semantic meaning of an object in the frame. In this case, the decoder 200 can decode only a partial area in the frame by selecting a tile to be decoded. In addition, the attribute of the object (person, car, ball, etc.) and the position of the object in the frame (coordinates in identical images) can be stored as metadata. In this case, decoder 200 is capable of identifying the position of the desired object based on the metadata and determining a tile including the object. For example, as illustrated in FIG. 6, metadata may be stored using a data storage structure different from image 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.

[0073] Метаданные могут сохраняться в единицах множества кадров, к примеру, как поток, последовательность или единица произвольного доступа. Таким образом, декодер 200 допускает получение, например, времени, в которое конкретный человек появляется в видео, и посредством подгонки информации времени к информации единицы кадров, допускает идентификацию кадра, в котором объект (человек) присутствует, и определение позиции объекта в кадре.[0073] Metadata may be stored in units of multiple frames, for example, as a stream, sequence, or random access unit. Thus, the decoder 200 is capable of obtaining, for example, the time at which a particular person appears in a video, and by fitting the time information to the frame unit information, is capable of identifying a frame in which an object (person) is present and determining the position of the object in the frame.

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

В дальнейшем описывается кодер согласно варианту осуществления. Фиг. 7 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера 100 согласно варианту осуществления. Кодер 100 представляет собой видеокодер, который кодирует видео в единицах блоков.Next, an encoder according to an embodiment will be described. Fig. 7 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.

[0075] Как проиллюстрировано на фиг. 7, кодер 100 представляет собой оборудование, которое кодирует изображение в единицах блоков, и включает в себя модуль 102 разбиения, вычитатель 104, преобразователь 106, квантователь 108, энтропийный кодер 110, обратный квантователь 112, обратный преобразователь 114, сумматор 116, запоминающее устройство 118 блоков, контурный фильтр 120, запоминающее устройство 122 кинокадров, модуль 124 внутреннего прогнозирования, модуль 126 взаимного прогнозирования, контроллер 128 прогнозирования и формирователь 130 параметров прогнозирования. Как проиллюстрировано, модуль 124 внутреннего прогнозирования и модуль 126 взаимного прогнозирования представляют собой часть контроллера прогнозирования.[0075] As illustrated in FIG. 7, the encoder 100 is equipment 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 movie frame memory 122, an internal prediction module 124, an inter-prediction module 126, a prediction controller 128, and a prediction parameter generator 130. As illustrated, the intra prediction module 124 and the inter prediction module 126 are part of the prediction controller.

[0076] Кодер 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 прогнозирования.[0076] 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 intra prediction module 124, an inter 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, inter-prediction module 126, and prediction controller 128.

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

Фиг. 8 является функциональной блок-схемой, иллюстрирующей пример монтажа кодера 100. Кодер 100 включает в себя процессор a1 и запоминающее устройство a2. Например, множество составляющих элементов кодера 100, проиллюстрированного на фиг. 7, смонтированы в процессоре a1 и запоминающем устройстве a2, проиллюстрированных на фиг. 8.Fig. 8 is a functional 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. 7 are mounted in the processor a1 and memory a2 illustrated in FIG. 8.

[0078] Процессор a1 представляет собой схему, которая выполняет обработку информации, и соединяется с запоминающим устройством a2. Например, процессор a1 представляет собой специализированную или общую электронную схему, которая кодирует изображение. Процессор a1 может представлять собой процессор, такой как CPU. Помимо этого, процессор a1 может представлять собой совокупность множества электронных схем. Помимо этого, например, процессор a1 может выполнять роли двух или более составляющих элементов из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 7, и т.д.[0078] Processor a1 is a circuit that performs information processing and is connected to storage device a2. For example, processor a1 is a specialized or general electronic circuit that encodes an image. 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. 7, etc.

[0079] Запоминающее устройство a2 представляет собой специализированное или общее запоминающее устройство для сохранения информации, которая используется посредством процессора a1 для того, чтобы кодировать изображение. Запоминающее устройство a2 может представлять собой электронную схему и может соединяться с процессором a1. Помимо этого, запоминающее устройство a2 может включаться в процессор a1. Помимо этого, запоминающее устройство a2 может представлять собой совокупность множества электронных схем. Помимо этого, запоминающее устройство a2 может представлять собой магнитный диск, оптический диск и т.п. либо может представляться как устройство хранения данных, носитель записи и т.п. Помимо этого, запоминающее устройство a2 может представлять собой энергонезависимое запоминающее устройство или энергозависимое запоминающее устройство.[0079] Memory a2 is a dedicated or general memory for storing information that is used by processor a1 to encode an image. 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.

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

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

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

[0083] В дальнейшем в этом документе описывается полная последовательность операций процессов, выполняемых посредством кодера 100, и после этого описывается каждый из составляющих элементов, включенных в кодер 100.[0083] 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.

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

Фиг. 9 является блок-схемой последовательности операций способа, указывающей один пример полного процесса декодирования, выполняемого посредством кодера 100, и для удобства описывается со ссылкой на фиг. 7.Fig. 9 is a flowchart indicating one example of a complete decoding process performed by the encoder 100, and for convenience is described with reference to FIG. 7.

[0085] Во-первых, модуль 102 разбиения кодера 100 разбивает каждый из кадров, включенных во входное изображение, на множество блоков, имеющих фиксированный размер (например, 128×128 пикселов) (этап Sa_1). Модуль 102 разбиения затем выбирает шаблон разбиения для блока фиксированного размера (также называется "формой блока") (этап Sa_2). Другими словами, модуль 102 разбиения дополнительно разбивает блок фиксированного размера на множество блоков, которые формируют выбранный шаблон разбиения. Кодер 100 выполняет, для каждого из множества блоков, этапы Sa_3-Sa_9 для блока (который представляет собой текущий блок, который должен кодироваться).[0085] First, the partitioning unit 102 of the encoder 100 partitions each of the frames included in the input image 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).

[0086] Контроллер 128 прогнозирования и модуль выполнения прогнозирования (который включает в себя модуль 124 внутреннего прогнозирования и модуль 126 взаимного прогнозирования) формируют прогнозное изображение текущего блока (этап Sa 3). Прогнозное изображение также может называться "прогнозным сигналом", "блоком прогнозирования" или "прогнозными выборками".[0086] The prediction controller 128 and the prediction execution module (which includes the intra prediction module 124 and the inter prediction module 126) generate a prediction image of the current block (step Sa 3). The prediction image may also be referred to as a "prediction signal", "prediction block" or "prediction samples".

[0087] Затем, вычитатель 104 формирует разность между текущим блоком и прогнозным изображением в качестве остатка прогнозирования (этап Sa_4). Остаток прогнозирования также может называться "ошибкой прогнозирования".[0087] Next, the subtractor 104 generates the difference between the current block and the prediction image as a prediction residual (step Sa_4). The forecast residual may also be called "forecast error".

[0088] Затем, преобразователь 106 преобразует прогнозное изображение, и квантователь 108 квантует результат для того, чтобы формировать множество квантованных коэффициентов (этап Sa_5). Множество квантованных коэффициентов иногда могут называться "блоком коэффициентов".[0088] Next, the converter 106 converts the prediction image, and the quantizer 108 quantizes the result to generate a plurality of quantized coefficients (step Sa_5). A set of quantized coefficients may sometimes be referred to as a "coefficient block".

[0089] Затем, энтропийный кодер 110 кодирует (в частности, энтропийно кодирует) множество квантованных коэффициентов и параметр прогнозирования, связанный с формированием прогнозного изображения, чтобы формировать поток (этап Sa_6). Поток может иногда называться "кодированным потоком битов" или "сжатым потоком битов".[0089] Next, the entropy encoder 110 encodes (specifically, entropy encodes) a plurality of quantized coefficients and a prediction parameter associated with generating a prediction image to generate a stream (step Sa_6). The stream may sometimes be called a "coded bitstream" or a "compressed bitstream".

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

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

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

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

[0094] Хотя кодер 100 выбирает один шаблон разбиения для блока фиксированного размера и кодирует каждый блок согласно шаблону разбиения в вышеописанном примере, следует отметить, что каждый блок может кодироваться согласно соответствующему одному из множества шаблонов разбиения. В этом случае, кодер 100 может оценивать затраты для каждого из множества шаблонов разбиения и, например, может выбирать поток, получаемый посредством кодирования согласно шаблону разбиения, который дает в результате наименьшие затраты, в качестве потока, который выводится.[0094] 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 stream obtained by encoding according to the partitioning pattern that results in the lowest cost as the stream that is output.

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

[0096] Процесс кодирования, используемый посредством кодера 100, представляет собой гибридное кодирование с использованием прогнозного кодирования и кодирования с преобразованием. Помимо этого, прогнозное кодирование выполняется посредством контура кодирования, сконфигурированного с вычитателем 104, преобразователем 106, квантователем 108, обратным квантователем 112, обратным преобразователем 114, сумматором 116, контурным фильтром 120, запоминающим устройством 118 блоков, запоминающим устройством 122 кинокадров, модулем 124 внутреннего прогнозирования, модулем 126 взаимного прогнозирования и контроллером 128 прогнозирования. Другими словами, модуль выполнения прогнозирования, сконфигурированный с модулем 124 внутреннего прогнозирования и модулем 126 взаимного прогнозирования, представляет собой часть контура кодирования.[0096] The encoding process used by the encoder 100 is a hybrid encoding using predictive encoding and transform encoding. In addition, predictive encoding is performed by an encoding loop configured with a subtractor 104, a transformer 106, a quantizer 108, an inverse quantizer 112, an inverse transformer 114, an adder 116, a loop filter 120, a block memory 118, a movie frame memory 122, and an intra prediction unit 124. , a mutual prediction module 126 and a prediction controller 128 . In other words, the prediction execution unit configured with the intra prediction unit 124 and the inter prediction unit 126 is part of a coding loop.

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

Модуль 102 разбиения разбивает каждый кадр, включенный в исходное изображение, на множество блоков, и выводит каждый блок в вычитатель 104. Например, модуль 102 разбиения сначала разбивает кадр на блоки фиксированного размера (например, 128×128 пикселов). Могут использоваться другие фиксированные размеры блоков. Блок фиксированного размера также называется "единицей дерева кодирования (CTU)". Модуль 102 разбиения затем разбивает каждый блок фиксированного размера на блоки переменных размеров (например, 64×64 пикселов или меньше), на основе рекурсивного разбиения на блоки дерева квадрантов и/или двоичного дерева. Другими словами, модуль 102 разбиения выбирает шаблон разбиения. Блок переменного размера также может называться "единицей кодирования (CU)", "единицей прогнозирования (PU)" или "единицей преобразования (TU)". Следует отметить, что, в различных видах примеров обработки, нет необходимости различать между CU, PU и TU; все или некоторые блоки в кадре могут обрабатываться в единицах CU, PU или TU.The partitioning unit 102 splits each frame included in the original image into a plurality of blocks, and outputs each block to the subtractor 104. For example, the partitioning unit 102 first partitions the frame into blocks of a fixed size (eg, 128×128 pixels). Other fixed block sizes may be used. A fixed size block is also called a "coding tree unit (CTU)". The partitioning module 102 then partitions each fixed-size block into variable-size blocks (eg, 64×64 pixels or less) based on recursive quadtree and/or binary block partitioning. In other words, the partitioning module 102 selects a partitioning pattern. A variable size block may also be referred to as 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.

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

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

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

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

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

[0103] Правый нижний 64×64-пиксельный блок 23 не разбивается.[0103] The lower right 64x64 pixel block 23 is not split.

[0104] Как описано выше, на фиг. 10, блок 10 разбивается на тринадцать блоков 11-23 переменного размера на основе рекурсивного разбиения на блоки дерева квадрантов и двоичного дерева. Этот тип разбиения также называется "разбиением на дерево квадрантов плюс двоичное дерево (QTBT)".[0104] As described above, FIG. 10, 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."

[0105] Следует отметить, что, на фиг. 10, один блок разбивается на четыре или два блока (разбиение на блоки дерева квадрантов или двоичного дерева), но разбиение не ограничено этими примерами. Например, один блок может разбиваться на три блока (разбиение на троичные блоки). Разбиение, включающее в себя такое разбиение на троичные блоки, также называется "разбиением на многотипное дерево (MBT)".[0105] It should be noted that, in FIG. 10, one block is partitioned into four or two blocks (quadtree or binary tree partitioning), but partitioning 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."

[0106] Фиг. 11 является блок-схемой, иллюстрирующей один пример функциональной конфигурации модуля 102 разбиения согласно одному варианту осуществления. Как проиллюстрировано на фиг. 11, модуль 102 разбиения может включать в себя модуль 102a определения разбиения блоков. Модуль 102a определения разбиения блоков может выполнять следующие процессы в качестве примеров.[0106] FIG. 11 is a block diagram illustrating one example of a functional configuration of the partitioning unit 102 according to one embodiment. As illustrated in FIG. 11, the partitioning unit 102 may include a block partitioning determining unit 102a. The block partition determining unit 102a may perform the following processes as examples.

[0107] Например, модуль 102a определения разбиения блоков может получать или извлекать информацию блоков из запоминающего устройства 118 блоков и/или запоминающего устройства 122 кинокадров и определять шаблон разбиения (например, вышеописанный шаблон разбиения) на основе информации блоков. Модуль 102 разбиения разбивает исходное изображение согласно шаблону разбиения и выводит, по меньшей мере, один блок, полученный посредством разбиения, в вычитатель 104.[0107] For example, the block split determination unit 102a may obtain or retrieve block information from the block memory 118 and/or the movie frame memory 122 and determine a split pattern (eg, the above-described split pattern) based on the block information. The partitioning unit 102 partitions the original image according to the partitioning pattern and outputs at least one block obtained by partitioning to the subtractor 104.

[0108] Помимо этого, например, модуль 102a определения разбиения блоков выводит один или более параметров, указывающих определенный шаблон разбиения (например, вышеописанный шаблон разбиения), в преобразователь 106, обратный преобразователь 114, модуль 124 внутреннего прогнозирования, модуль 126 взаимного прогнозирования и энтропийный кодер 110. Преобразователь 106 может преобразовывать остаток прогнозирования на основе одного или более параметров. Модуль 124 внутреннего прогнозирования и модуль 126 взаимного прогнозирования могут формировать прогнозное изображение на основе одного или более параметров. Помимо этого, энтропийный кодер 110 может энтропийно кодировать один или более параметров.[0108] In addition, for example, block partition determination module 102a outputs one or more parameters indicating a particular partitioning pattern (eg, the above-described partitioning pattern) to mapper 106, inverse mapper 114, intra prediction module 124, inter prediction module 126, and entropy encoder 110. Transformer 106 may transform the prediction remainder based on one or more parameters. The intra prediction module 124 and the inter prediction module 126 may generate a prediction image based on one or more parameters. In addition, entropy encoder 110 may entropy encode one or more parameters.

[0109] Параметр, связанный с шаблоном разбиения, может записываться в поток, как указано ниже в качестве одного примера.[0109] A parameter associated with a split pattern may be written to the stream, as set forth below as one example.

[0110] Фиг. 12 является концептуальной схемой для иллюстрации примеров шаблонов разбиения. Примеры шаблонов разбиения включают в себя: разбиение на четыре области (QT), при котором блок разбивается на две области как горизонтально, так и вертикально; разбиение на три области (HT или VT), при котором блок разбивается в идентичном направлении в соотношении 1:2:1; разбиение на две области (HB или VB), при котором блок разбивается в идентичном направлении в соотношении 1:1; и отсутствие разбиения (NS).[0110] FIG. 12 is a conceptual diagram for illustrating examples of partitioning patterns. Examples of partitioning patterns include: quadruple partitioning (QT), which splits a block into two areas, both horizontally and vertically; splitting into three areas (HT or VT), in which the block is split in an identical direction in a ratio of 1:2:1; splitting into two areas (HB or VB), in which the block is split in an identical direction in a 1:1 ratio; and no partitioning (NS).

[0111] Следует отметить, что шаблон разбиения не имеет направления разбиения блоков в случае разбиения на четыре области и отсутствия разбиения, и что шаблон разбиения имеет информацию направления разбиения в случае разбиения на две области или три области.[0111] It should be noted that the partitioning pattern does not have block partitioning direction in the case of four-area partitioning and no partitioning, and that the partitioning pattern has partitioning direction information in the case of two-area partitioning or three-area partitioning.

[0112] Фиг. 13A является концептуальной схемой для иллюстрации одного примера синтаксического дерева шаблона разбиения.[0112] FIG. 13A is a conceptual diagram for illustrating one example of a split pattern syntax tree.

[0113] Фиг. 13B является концептуальной схемой для иллюстрации другого примера синтаксического дерева шаблона разбиения.[0113] FIG. 13B is a conceptual diagram for illustrating another example of a split pattern syntax tree.

[0114] Фиг. 13A и 13B являются концептуальными схемами для иллюстрации примеров синтаксического дерева шаблона разбиения. В примере по фиг. 13A, во-первых, информация, указывающая то, следует выполнять или нет разбиение (S: флаг разбиения), присутствует, и информация, указывающая то, следует или нет выполнять разбиение на четыре области (QT: QT-флаг), присутствует после нее. Информация, указывающая то, что из разбиения на три области и две области должно выполняться (TT: TT-флаг или BT: BT-флаг), присутствует после нее, и информация, указывающая направление разделения (Ver: вертикальный флаг, или Hor: горизонтальный флаг), присутствует после этого. Следует отметить, что каждый, по меньшей мере, один блок, полученный посредством разбиения согласно такому шаблону разбиения, дополнительно может разбиваться многократно в аналогичном процессе. Другими словами, в качестве одного примера, то, выполняется лили нет разбиение, то, выполняется или нет разбиение на четыре области, то, какое из горизонтального направления и вертикального направления представляет собой направление, в котором должен выполняться способ разбиения, что из разбиения на три области и разбиения на две области должно выполняться, может рекурсивно определяться, и результаты определения могут кодироваться в потоке согласно порядку кодирования, раскрытому посредством синтаксического дерева, проиллюстрированного на фиг. 13A.[0114] FIG. 13A and 13B are conceptual diagrams for illustrating examples of a split pattern syntax tree. In the example of FIG. 13A, firstly, information indicating whether or not partitioning should be performed (S: partition flag) is present, and information indicating whether or not partitioning into four areas should be performed (QT: QT flag) is present after it. . Information indicating what of the three-area and two-area partitioning should be carried out (TT: TT-flag or BT: BT-flag) is present after it, and information indicating the direction of the partition (Ver: vertical flag, or Hor: horizontal flag) is present after this. It should be noted that each at least one block obtained by partitioning according to such a partitioning pattern may further be partitioned multiple times in a similar process. In other words, as one example, whether or not the partitioning is performed, whether or not the four-area partitioning is performed, which of the horizontal direction and the vertical direction is the direction in which the partitioning method should be performed, which of the three partitioning region and splitting into two regions must be performed, can be recursively determined, and the results of the determination can be encoded in the stream according to the encoding order disclosed by the syntax tree illustrated in FIG. 13A.

[0115] Помимо этого, хотя информационные элементы, соответственно, указывающие S, QT, TT и Ver, размещаются в перечисленном порядке в синтаксическом дереве, проиллюстрированном на фиг. 13A, информационные элементы, соответственно, указывающие S, QT, Ver и BT, могут размещаться в перечисленном порядке. Другими словами, в примере по фиг. 13B, во-первых, информация, указывающая то, следует или нет выполнять разбиение (S: флаг разбиения), присутствует, и информация, указывающая то, следует или нет выполнять разбиение на четыре области (QT: QT-флаг), присутствует после нее. Информация, указывающая направление разбиения (Ver: вертикальный флаг, или Hor: горизонтальный флаг), присутствует после нее, и информация, указывающая то, что из разбиения на две области и разбиения на три области должно выполняться (BT: BT-флаг, или TT: TT-флаг), присутствует после этого.[0115] In addition, although information elements respectively indicating S, QT, TT and Ver are arranged in the listed order in the syntax tree illustrated in FIG. 13A, information elements respectively indicating S, QT, Ver and BT may be arranged in the listed order. In other words, in the example of FIG. 13B, firstly, information indicating whether or not to perform partitioning (S: partition flag) is present, and information indicating whether or not partitioning into four areas should be performed (QT: QT flag) is present after it. . Information indicating the direction of partitioning (Ver: vertical flag, or Hor: horizontal flag) is present after it, and information indicating what of two-area partitioning and three-area partitioning should be carried out (BT: BT-flag, or TT : TT flag) is present after this.

[0116] Следует отметить, что шаблоны разбиения, описанные выше, представляют собой примеры, и шаблоны разбиения, отличные от описанных шаблонов разбиения, могут использоваться, или часть описанных шаблонов разбиения может использоваться.[0116] It should be noted that the partitioning patterns described above are examples, and partitioning patterns other than the described partitioning patterns may be used, or a portion of the described partitioning patterns may be used.

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

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

[0118] Исходное изображение может представлять собой изображение, которое введено в кодер 100 в качестве сигнала, представляющего изображение каждого кадра, включенного в видео (например, сигнала яркости и двух сигналов цветности). Сигнал, представляющий изображение, также может называться "выборкой".[0118] The source image may be an image that is input to the encoder 100 as a signal representing the image of each frame included in the video (eg, a luma signal and two chrominance signals). The signal representing the image may also be called a "sample".

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

Преобразователь 106 преобразует остатки прогнозирования в пространственной области в коэффициенты преобразования в частотной области и выводит коэффициенты преобразования в квантователь 108. Более конкретно, преобразователь 106 применяет, например, заданное дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) к остаткам прогнозирования в пространственной области. Заданное DCT или DST может быть предварительно задано.Transformer 106 converts the spatial domain prediction residuals 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 residuals. areas. The specified DCT or DST can be preset.

[0120] Следует отметить, что преобразователь 106 может адаптивно выбирать тип преобразования из множества типов преобразования и преобразовывать остатки прогнозирования в коэффициенты преобразования посредством использования базисной функции преобразования, соответствующей выбранному типу преобразования. Этот вид преобразования также называется "явным множественным базовым преобразованием (EMT)" или "адаптивным множественным преобразованием (AMT)". Базисная функция преобразования также может называться "базисом".[0120] It should be noted that the transformer 106 can adaptively select a transform type from a plurality of transform types and convert the prediction residuals 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)". The basis transformation function may also be called a "basis".

[0121] Типы преобразования включают в себя, например, DCT-II, DCT-V, DCT-VIII, DST-I и DST-VII. Следует отметить, что эти типы преобразования могут представляться как DCT2, DCT5, DCT8, DST1 и DST7. Фиг. 14 является диаграммой, указывающей примерные базисные функции преобразования для примерных типов преобразования. На фиг. 14, N указывает число входных пикселов. Например, выбор типа преобразования из множества типов преобразования может зависеть от типа прогнозирования (одно из внутреннего прогнозирования и взаимного прогнозирования) и может зависеть от режима внутреннего прогнозирования.[0121] Conversion types include, for example, DCT-II, DCT-V, DCT-VIII, DST-I and DST-VII. It should be noted that these conversion types can be represented as DCT2, DCT5, DCT8, DST1 and DST7. Fig. 14 is a diagram indicating exemplary transform basis functions for exemplary transform types. In fig. 14, 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 inter-prediction) and may depend on the intra-prediction mode.

[0122] Информация, указывающая то, следует или нет применять такое EMT или AMT (называется, например, "EMT-флагом" или "AMT-флагом"), и информация, указывающая выбранный тип преобразования, нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне среза, уровне плитки или уровне CTU).[0122] 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 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).

[0123] Помимо этого, преобразователь 106 может повторно преобразовывать коэффициенты преобразования (которые представляют собой результаты преобразования). Такое повторное преобразование также называется "адаптивным вторичным преобразованием (AST)" или "неразделимым вторичным преобразованием (NSST)". Например, преобразователь 106 выполняет повторное преобразование в единицах субблока (например, 4×4-пиксельного субблока), включенного в блок коэффициентов преобразования, соответствующий остатку внутреннего прогнозирования. Информация, указывающая то, следует или нет применять NSST, и информация, связанная с матрицей преобразования для использования в NSST, нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне среза, уровне плитки или уровне CTU).[0123] In addition, the converter 106 may re-convert the conversion coefficients (which represent the results of the conversion). This re-transformation is also called "adaptive secondary transform (AST)" or "non-separable secondary transform (NSST)". For example, transformer 106 performs re-conversion in units of a subblock (eg, a 4x4 pixel subblock) included in a block of transform coefficients corresponding to the intra prediction residual. 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 need 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).

[0124] Преобразователь 106 может использовать разделимое преобразование и неразделимое преобразование. Разделимое преобразование представляет собой способ, в котором преобразование выполняется многократно посредством отдельного выполнения преобразования для каждого из определенного числа направлений согласно числу размерностей вводов. Неразделимое преобразование представляет собой способ выполнения коллективного преобразования, в котором две или более размерностей в многомерных вводах совместно рассматриваются в качестве одной размерности.[0124] 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.

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

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

[0127] При преобразовании в преобразователе 106, типы преобразования для базовых функций преобразования, которые должны преобразовываться в частотную область согласно областям в CU, могут переключаться. Примеры включают в себя пространственно варьирующееся преобразование (SVT).[0127] When converting in converter 106, conversion types for basic conversion functions to be converted to the frequency domain according to domains in the CU can be switched. Examples include spatially varying transform (SVT).

[0128] Фиг. 15 является концептуальной схемой для иллюстрации одного примера SVT.[0128] FIG. 15 is a conceptual diagram for illustrating one example of an SVT.

[0129] В SVT, как проиллюстрировано на фиг. 5B, CU разбиваются на две равных области горизонтально или вертикально, и только одна из областей преобразуется в частотную область. Базисный тип преобразования может задаваться для каждой области. Например, используются DST7 и DST8. Например, из двух областей, полученных посредством разбиения CU вертикально на две равных области, DST7 и DCT8 могут использоваться для области в позиции 0. Альтернативно, из двух областей, DST7 используется для области в позиции 1. Аналогично, из двух областей, полученных посредством разбиения CU горизонтально на две равных области, DST7 и DCT8 используются для области в позиции 0. Альтернативно, из двух областей, DST7 используется для области в позиции 1. Хотя только одна из двух областей в CU преобразуется, а другая не преобразуется в примере, проиллюстрированном на фиг. 15, каждая из двух областей может преобразовываться. Помимо этого, способ разбиения может включать в себя не только разбиение на две области, но также и разбиение на четыре области. Помимо этого, способ разбиения может быть более гибким. Например, информация, указывающая способ разбиения, может кодироваться и может передаваться в служебных сигналах, идентично CU-разбиению. Следует отметить, что SVT также может называться "субблочным преобразованием (SBT)".[0129] 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. For example, from two areas obtained by dividing the CU vertically into two equal areas, DST7 and DCT8 can be used for the area at position 0. Alternatively, from two areas, DST7 is used for the area at position 1. Likewise, from two areas obtained by partitioning CU horizontally into two equal areas, DST7 and DCT8 are used for the area at position 0. Alternatively, of the two areas, DST7 is used for the area at position 1. Although only one of the two areas in the CU is converted and the other is not converted in the example illustrated in fig. 15, each of the two areas can be converted. In addition, the partitioning method may include not only partitioning into two areas, but also partitioning into four areas. In addition, the partitioning method can be more flexible. For example, information indicating the partitioning method may be encoded and signaled identical to the CU partitioning. It should be noted that SVT may also be referred to as "sub-block transform (SBT)".

[0130] AMT и EMT, описанные выше, могут называться "MTS (множественным выбором преобразования)". Когда MTS применяется, тип преобразования, который представляет собой DST7, DCT8 и т.п., может выбираться, и информация, указывающая выбранный тип преобразования, может кодироваться как информация индекса для каждой CU. Предусмотрен другой процесс, называемый "IMTS (неявным MTS)", в качестве процесса для выбора типа преобразования, который должен использоваться для ортогонального преобразования, выполняемого без кодирования информации индекса. Когда IMTS применяется, например, когда CU имеет прямоугольную форму, ортогональное преобразование прямоугольной формы может выполняться с использованием DST7 для короткой стороны и DST2 для длинной стороны. Помимо этого, например, когда CU имеет квадратную форму, ортогональное преобразование прямоугольной формы может выполняться с использованием DCT2, когда MTS является эффективным в последовательности, и с использованием DST7, когда MTS является неэффективным в последовательности. DCT2 и DST7 представляют собой просто примеры. Другие типы преобразования могут использоваться, и также можно изменять комбинацию типов преобразования для использования на другую комбинацию типов преобразования. IMTS может использоваться только для блоков внутреннего прогнозирования или может использоваться для блоков внутреннего прогнозирования и блока взаимного прогнозирования.[0130] AMT and EMT described above may be referred to as "MTS (Multiple Transform Selection)". When MTS is applied, a transformation type that is DST7, DCT8, etc. can be selected, and information indicating the selected transformation type can be encoded as index information for each CU. Another process called "IMTS (Implicit MTS)" is provided as a process for selecting the type of transformation to be used for the orthogonal transformation performed without encoding the index information. When IMTS is applied, for example, when the CU is rectangular in shape, the orthogonal transformation of the rectangular shape can be performed using DST7 for the short side and DST2 for the long side. In addition, for example, when the CU has a square shape, the orthogonal transformation of the rectangular shape can be performed using DCT2 when the MTS is effective in the sequence, and using DST7 when the MTS is ineffective in the sequence. DCT2 and DST7 are just examples. Other transformation types may be used, and it is also possible to change the combination of transformation types to use to another combination of transformation types. IMTS can be used only for intra prediction blocks or can be used for intra prediction blocks and inter prediction block.

[0131] Три процесса в виде MTS, SBT и IMTS описываются выше в качестве процессов выбора для избирательного переключения типов преобразования для использования при ортогональном преобразовании. Тем не менее, все три процесса выбора могут использоваться, или только часть процессов выбора может избирательно использоваться. То, используются либо нет один или более процессов выбора, может идентифицироваться, например, на основе информации флага и т.п. в заголовке, к примеру, в SPS. Например, когда все три процесса выбора доступны для использования, один из трех процессов выбора выбирается для каждой CU, и ортогональное преобразование CU выполняется. Следует отметить, что процессы выбора для избирательного переключения типов преобразования могут представлять собой процессы выбора, отличающиеся от вышеуказанных трех процессов выбора, либо каждый из трех процессов выбора может заменяться посредством другого процесса. Типично, по меньшей мере, одна из следующих четырех передаточных функций [1]-[4] выполняется. Функция [1] представляет собой функцию для выполнения ортогонального преобразования всей CU и кодирования информации, указывающей тип преобразования, используемый при преобразовании. Функция [2] представляет собой функцию для выполнения ортогонального преобразования всей CU и определения типа преобразования на основе определенного правила без кодирования информации, указывающей тип преобразования. Функция [3] представляет собой функцию для выполнения ортогонального преобразования частичной области CU и кодирования информации, указывающей тип преобразования, используемый при преобразовании. Функция [4] представляет собой функцию для выполнения ортогонального преобразования частичной области CU и определения типа преобразования на основе определенного правила без кодирования информации, указывающей тип преобразования, используемый при преобразовании. Определенные правила могут быть предварительно определены.[0131] Three processes of MTS, SBT and IMTS are described above as selection processes for selectively switching transform types for use in orthogonal transform. However, all three selection processes may be used, or only a subset of the selection processes may be selectively used. Whether or not one or more selection processes are used can be identified, for example, based on flag information and the like. in the header, for example, in SPS. For example, when all three selection processes are available for use, one of the three selection processes is selected for each CU, and the orthogonal transformation of the CU is performed. It should be noted that the selection processes for selectively switching transformation types may be selection processes different from the above three selection processes, or each of the three selection processes may be replaced by a different process. Typically, at least one of the following four transfer functions [1]-[4] is satisfied. Function [1] is a function for performing an orthogonal transformation of the entire CU and encoding information indicating the type of transformation used in the transformation. Function [2] is a function for performing an orthogonal transformation of the entire CU and determining the transformation type based on a certain rule without encoding information indicating the transformation type. Function [3] is a function for performing an orthogonal transformation of a partial CU region and encoding information indicating the type of transformation used in the transformation. Function [4] is a function for performing an orthogonal transformation of a partial CU region and determining the transformation type based on a certain rule without encoding information indicating the transformation type used in the transformation. Certain rules can be predefined.

[0132] Следует отметить, что то, применяется либо нет MTS, IMTS и/или SBT, может определяться для каждой единицы обработки. Например, то, применяется либо нет MTS, IMTS и/или SBT, может определяться для каждой последовательности, кадра, кирпича, среза, CTU или CU.[0132] It should be noted that whether or not MTS, IMTS and/or SBT is applied can be determined for each processing unit. For example, whether or not MTS, IMTS, and/or SBT is applied may be determined on a per-sequence, frame, brick, slice, CTU, or CU basis.

[0133] Следует отметить, что инструментальное средство для избирательного переключения типов преобразования в настоящем раскрытии сущности может описываться как способ для избирательного выбора базиса для использования в процессе преобразования, в процессе выбора или в процессе для выбора базиса. Помимо этого, инструментальное средство для избирательного переключения типов преобразования может описываться как режим для адаптивного выбора типов преобразования.[0133] It should be noted that a tool for selectively switching transformation types in the present disclosure may be described as a method for selectively selecting a basis for use in a transformation process, in a selection process, or in a process for selecting a basis. In addition, a tool for selectively switching transformation types can be described as a mode for adaptively selecting transformation types.

[0134] Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством преобразователя 106, и описывается для удобства со ссылкой на фиг. 7.[0134] FIG. 16 is a flowchart illustrating one example of a process performed by converter 106 and is described for convenience with reference to FIG. 7.

[0135] Например, преобразователь 106 определяет то, следует или нет выполнять ортогональное преобразование (этап St_1). Здесь, при определении необходимости выполнять ортогональное преобразование ("Да" на этапе St_1), преобразователь 106 выбирает тип преобразования для использования при ортогональном преобразовании из множества типов преобразования (этап St_2). Затем, преобразователь 106 выполняет ортогональное преобразование посредством применения выбранного типа преобразования к остатку прогнозирования текущего блока (этап St_3). Преобразователь 106 затем выводит информацию, указывающую выбранный тип преобразования, в энтропийный кодер 110, с тем чтобы обеспечивать возможность энтропийному кодеру 110 кодировать информацию (этап St_4). С другой стороны, при определении необходимости не выполнять ортогональное преобразование ("Нет" на этапе St_1), преобразователь 106 выводит информацию, указывающую то, что ортогональное преобразование не выполняется, с тем чтобы обеспечивать возможность энтропийному кодеру 110 кодировать информацию (этап St_5). Следует отметить, что то, следует или нет выполнять ортогональное преобразование, на этапе St_1 может определяться, например, на основе размера блока преобразования, режима прогнозирования, применяемого к CU, и т.д. Альтернативно, ортогональное преобразование может выполняться с использованием заданного типа преобразования без кодирования информации, указывающей тип преобразования для использования при ортогональном преобразовании. Заданный тип преобразования может быть предварительно задан.[0135] For example, the converter 106 determines whether or not to perform the orthogonal transform (step St_1). Here, upon determining whether to perform the orthogonal transform (Yes in step St_1), the transformer 106 selects a transform type to use for the orthogonal transform from a plurality of transform types (step St_2). Next, transformer 106 performs an orthogonal transform by applying the selected transform type to the prediction residual of the current block (step St_3). The converter 106 then outputs information indicating the selected transform type to the entropy encoder 110 so as to enable the entropy encoder 110 to encode the information (step St_4). On the other hand, when determining whether orthogonal transformation is not performed (“No” in step St_1), the converter 106 outputs information indicating that orthogonal transformation is not performed so as to allow the entropy encoder 110 to encode information (step St_5). It should be noted that whether or not the orthogonal transformation should be performed in step St_1 may be determined, for example, based on the size of the transformation block, the prediction mode applied to the CU, etc. Alternatively, the orthogonal transform may be performed using a specified transform type without encoding information indicating the transform type to use in the orthogonal transform. The specified conversion type can be preset.

[0136] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством преобразователя 106, и описывается для удобства со ссылкой на фиг. 7. Следует отметить, что пример, проиллюстрированный на фиг. 17, представляет собой пример ортогонального преобразования в случае, если типы преобразования для использования при ортогональном преобразовании избирательно переключаются, как и в случае примера, проиллюстрированного на фиг. 16.[0136] FIG. 17 is a flowchart illustrating one example of a process performed by converter 106 and is described for convenience with reference to FIG. 7. It should be noted that the example illustrated in FIG. 17 is an example of an orthogonal transform in the case where the transform types to be used in the orthogonal transform are selectively switched, as in the case of the example illustrated in FIG. 16.

[0137] В качестве одного примера, первая группа типов преобразования может включать в себя DCT2, DST7 и DCT8. В качестве другого примера, вторая группа типов преобразования может включать в себя DCT2. Типы преобразования, включенные в первую группу типов преобразования, и типы преобразования, включенные во вторую группу типов преобразования, могут частично перекрываться между собой или могут полностью отличаться друг от друга.[0137] As one example, the first group of transformation types may include DCT2, DST7, and DCT8. As another example, the second group of transformation types may include DCT2. The transformation types included in the first transformation type group and the transformation types included in the second transformation type group may partially overlap each other or may be completely different from each other.

[0138] Преобразователь 106 определяет то, меньше или равен либо нет размер преобразования определенному значению (этап Su_1). Здесь, при определении того, что размер преобразования меньше или равен определенному значению ("Да" на этапе Su_1), преобразователь 106 выполняет ортогональное преобразование остатка прогнозирования текущего блока с использованием типа преобразования, включенного в первую группу типов преобразования (этап Su_2). Затем, преобразователь 106 выводит информацию, указывающую тип преобразования, который должен использоваться, по меньшей мере, из одного типа преобразования, включенного в первую группу типов преобразования, в энтропийный кодер 110, с тем чтобы обеспечивать возможность энтропийному кодеру 110 кодировать информацию (этап Su_3). С другой стороны, при определении того, что размер преобразования не меньше или равен предварительно определенному значению ("Нет" на этапе Su_1), преобразователь 106 выполняет ортогональное преобразование остатка прогнозирования текущего блока с использованием второй группы типов преобразования (этап Su_4). Определенное значение может представлять собой пороговое значение и может составлять предварительно определенное значение.[0138] The converter 106 determines whether the transform size is less than or equal to the determined value (step Su_1). Here, when determining that the transform size is less than or equal to a certain value ("Yes" in step Su_1), the transformer 106 performs an orthogonal transform of the prediction residual of the current block using a transform type included in the first transform type group (step Su_2). Next, the transformer 106 outputs information indicating a transform type to be used from at least one transform type included in the first transform type group to the entropy encoder 110, so as to enable the entropy encoder 110 to encode information (step Su_3) . On the other hand, when determining that the transform size is not less than or equal to a predetermined value ("No" in step Su_1), the transformer 106 performs an orthogonal transform of the prediction residual of the current block using the second group of transform types (step Su_4). The determined value may be a threshold value and may be a predetermined value.

[0139] На этапе Su_3, информация, указывающая тип преобразования для использования при ортогональном преобразовании, может представлять собой информацию, указывающую комбинацию типа преобразования, который должен применяться вертикально в текущем блоке, и типа преобразования, который должен применяться горизонтально в текущем блоке. Первая группа типов может включать в себя только один тип преобразования, и информация, указывающая тип преобразования для использования при ортогональном преобразовании, может не кодироваться. Вторая группа типов преобразования может включать в себя множество типов преобразования, и информация, указывающая тип преобразования для использования при ортогональном преобразовании из одного или более типов преобразования, включенных во вторую группу типов преобразования, может кодироваться.[0139] In step Su_3, information indicating a transform type to be used in the orthogonal transform may be information indicating a combination of a transform type to be applied vertically in the current block and a transform type to be applied horizontally in the current block. The first group of types may include only one transformation type, and information indicating the transformation type to be used in the orthogonal transformation may not be encoded. The second transformation type group may include a plurality of transformation types, and information indicating a transformation type to be used for orthogonal transformation from one or more transformation types included in the second transformation type group may be encoded.

[0140] Альтернативно, тип преобразования может указываться на основе размера преобразования без кодирования информации, указывающей тип преобразования. Следует отметить, что такие определения не ограничены определением в отношении того, меньше или равен либо нет размер преобразования определенному значению, и другие процессы также являются возможными для определения типа преобразования для использования при ортогональном преобразовании на основе размера преобразования.[0140] Alternatively, the transform type may be indicated based on the transform size without encoding information indicating the transform type. It should be noted that such determinations are not limited to determining whether the transform size is less than or equal to a certain value, and other processes are also possible for determining the transform type to use in the orthogonal transform based on the transform size.

[0141] Квантователь [0141] 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.

[0142] Определенный порядок сканирования представляет собой порядок для квантования/обратного квантования коэффициентов преобразования. Например, определенный порядок сканирования может задаваться как порядок по возрастанию частоты (от низкой к высокой частоте) или порядок по убыванию частоты (от высокой к низкой частоте).[0142] 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).

[0143] Параметр квантования (QP) представляет собой параметр, задающий шаг квантования (ширину квантования). Например, когда значение параметра квантования увеличивается, размер шага квантования также увеличивается. Другими словами, когда значение параметра квантования увеличивается, ошибка в квантованных коэффициентах (ошибка квантования) увеличивается.[0143] 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 error in the quantized coefficients (quantization error) increases.

[0144] Помимо этого, матрица квантования может использоваться для квантования. Например, несколько видов матриц квантования могут использоваться, соответственно, чтобы выполнять преобразование частоты для размеров, таких как 4×4 и 8×8, режимов прогнозирования, таких как внутреннее прогнозирование и взаимное прогнозирование, и пиксельных компонентов, таких как пиксельные компоненты сигнала яркости и сигнала цветности. Следует отметить, что квантование означает оцифровку значений, дискретизированных с определенными интервалами, соответственно, в определенные уровни. В этой области техники, квантование может упоминаться с использованием других выражений, таких как округление и масштабирование, и может использовать округление и масштабирование. Определенные интервалы и определенные уровни могут быть предварительно определены.[0144] 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 4x4 and 8x8, prediction modes such as intra prediction and inter 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 certain levels can be predetermined.

[0145] Способы с использованием матриц квантования могут включать в себя способ с использованием матрицы квантования, которая задана непосредственно на стороне кодера 100, и способ с использованием матрицы квантования, которая задана в качестве значения по умолчанию (матрицы по умолчанию). На стороне кодера 100, матрица квантования, подходящая для признаков изображения, может задаваться посредством прямого задания матрицы квантования. Тем не менее, этот случай может иметь недостаток увеличения объема кодирования для кодирования матрицы квантования. Следует отметить, что матрица квантования, которая должна использоваться для того, чтобы квантовать текущий блок, может формироваться на основе матрицы квантования по умолчанию или кодированной матрицы квантования, вместо непосредственного использования матрицы квантования по умолчанию или кодированной матрицы квантования.[0145] Methods using quantization matrices may include a method using a quantization matrix that is set directly on the side of the encoder 100, and a method using a quantization matrix that is set as a default value (default matrix). At the encoder 100 side, a quantization matrix suitable for image features may be specified by directly specifying the quantization matrix. However, this case may have the disadvantage of increasing the encoding volume for encoding the quantization matrix. It should be noted that the quantization matrix to be used to quantize the current block may be generated based on the default quantization matrix or the coded quantization matrix, instead of directly using the default quantization matrix or the coded quantization matrix.

[0146] Предусмотрен способ для квантования высокочастотного коэффициента и низкочастотного коэффициента без использования матрицы квантования. Следует отметить, что этот способ может считаться эквивалентным способу с использованием матрицы квантования (плоской матрицы), коэффициенты которой имеют идентичное значение.[0146] 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 can be considered equivalent to a method using a quantization matrix (flat matrix), the coefficients of which have identical meanings.

[0147] Матрица квантования может кодироваться, например, на уровне последовательности, уровне кадра, уровне среза, уровне кирпича или уровне CTU. Матрица квантования может указываться с использованием, например, набора параметров последовательности (SPS) или набора параметров кадра (PPS). SPS включает в себя параметр, который используется для последовательности, и PPS включает в себя параметр, который используется для кадра. Каждый из SPS и PPS может называться просто "набором параметров".[0147] The quantization matrix may be encoded, for example, at the sequence level, frame level, slice level, brick level, or CTU level. 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".

[0148] При использовании матрицы квантования, квантователь 108 масштабирует, для каждого коэффициента преобразования, например, ширину квантования, которая может вычисляться на основе параметра квантования и т.д., с использованием значения матрицы квантования. Процесс квантования, выполняемый без использования матрицы квантования, может представлять собой процесс для коэффициентов преобразования квантования на основе ширины квантования, вычисленной на основе параметра квантования и т.д. Следует отметить, что, в процессе квантования, выполняемом без использования матриц квантования, ширина квантования может умножаться на определенное значение, которое является общим для всех коэффициентов преобразования в блоке. Определенное значение может быть предварительно определено.[0148] When using the quantization matrix, quantizer 108 scales, for each transform factor, eg, the quantization width, which may be calculated based on the quantization parameter, etc., using the value of the quantization matrix. The quantization process performed without using a quantization matrix may be a process for quantization transform coefficients based on a quantization width calculated based on a quantization parameter, etc. It should be noted that, in a quantization process performed without using quantization matrices, the quantization width may be multiplied by a certain value that is common to all transform coefficients in the block. A specific value can be predefined.

[0149] Фиг. 18 является блок-схемой, иллюстрирующей один пример функциональной конфигурации квантователя согласно варианту осуществления. Например, квантователь 108 включает в себя формирователь 108a параметров разностного квантования, формирователь 108b прогнозированных параметров квантования, формирователь 108c параметров квантования, устройство 108d хранения параметров квантования и модуль 108e выполнения квантования.[0149] FIG. 18 is a block diagram illustrating one example of a functional configuration of a quantizer according to the embodiment. For example, the quantizer 108 includes a difference quantization parameter generator 108a, a predicted quantization parameter generator 108b, a quantization parameter generator 108c, a quantization parameter storage device 108d, and a quantization execution unit 108e.

[0150] Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса квантования, выполняемого посредством квантователя 108, и описывается для удобства со ссылкой на фиг. 7 и 18.[0150] FIG. 19 is a flowchart illustrating one example of a quantization process performed by the quantizer 108, and is described for convenience with reference to FIG. 7 and 18.

[0151] В качестве одного примера, квантователь 108 может выполнять квантование для каждой CU на основе блок-схемы последовательности операций способа, проиллюстрированной на фиг. 19. Более конкретно, формирователь 108c параметров квантования определяет то, следует или нет выполнять квантование (этап Sv_1). Здесь, при определении необходимости выполнять квантование ("Да" на этапе Sv_1), формирователь 108c параметров квантования формирует параметр квантования для текущего блока (этап Sv_2) и сохраняет параметр квантования в устройство 108d хранения параметров квантования (этап Sv_3).[0151] As one example, quantizer 108 may perform quantization on a per-CU basis based on the flowchart illustrated in FIG. 19. More specifically, the quantization parameter generator 108c determines whether or not to perform quantization (step Sv_1). Here, when determining whether to perform quantization (“Yes” in step Sv_1), the quantization parameter generator 108c generates a quantization parameter for the current block (step Sv_2) and stores the quantization parameter in the quantization parameter storage device 108d (step Sv_3).

[0152] Затем, модуль 108e выполнения квантования квантует коэффициенты преобразования текущего блока с использованием параметра квантования, сформированного на этапе Sv_2 (этап Sv_4). Формирователь 108b прогнозированных параметров квантования затем получает параметр квантования для единицы обработки, отличающейся от текущего блока, из устройства 108d хранения параметров квантования (этап Sv_5). Формирователь 108b прогнозированных параметров квантования формирует прогнозированный параметр квантования текущего блока на основе полученного параметра квантования (этап Sv_6). Формирователь 108a параметров разностного квантования вычисляет разность между параметром квантования текущего блока, сформированным посредством формирователя 108c параметров квантования, и прогнозированным параметром квантования текущего блока, сформированным посредством формирователя 108b прогнозированных параметров квантования (этап Sv_7). Параметр разностного квантования может формироваться посредством вычисления разности. Формирователь 108a параметров разностного квантования выводит параметр разностного квантования в энтропийный кодер 110, с тем чтобы обеспечивать возможность энтропийному кодеру 110 кодировать параметр разностного квантования (этап Sv_8).[0152] Next, the quantization execution unit 108e quantizes the transform coefficients of the current block using the quantization parameter generated in step Sv_2 (step Sv_4). The predicted quantization parameter generator 108b then obtains the quantization parameter for a processing unit other than the current block from the quantization parameter storage device 108d (step Sv_5). The predicted quantization parameter generator 108b generates a predicted quantization parameter of the current block based on the received quantization parameter (step Sv_6). The difference quantization parameter generator 108a calculates the difference between the current block quantization parameter generated by the quantization parameter generator 108c and the predicted quantization parameter of the current block generated by the predicted quantization parameter generator 108b (step Sv_7). The difference quantization parameter can be generated by calculating the difference. The difference quantization parameter generator 108a outputs the difference quantization parameter to the entropy encoder 110 so as to enable the entropy encoder 110 to encode the difference quantization parameter (step Sv_8).

[0153] Следует отметить, что параметр разностного квантования может кодироваться, например, на уровне последовательности, уровне кадра, уровне среза, уровне кирпича или уровне CTU. Помимо этого, начальное значение параметра квантования может кодироваться на уровне последовательности, уровне кадра, уровне среза, уровне кирпича или уровне CTU. При инициализации, параметр квантования может формироваться с использованием начального значения параметра квантования и параметра разностного квантования.[0153] It should be noted that the difference quantization parameter may be encoded, for example, at the sequence level, frame level, slice level, brick level, or CTU level. In addition, the initial value of the quantization parameter may be encoded at the sequence level, frame level, slice level, brick level, or CTU level. During initialization, the quantization parameter can be generated using the initial value of the quantization parameter and the difference quantization parameter.

[0154] Следует отметить, что квантователь 108 может включать в себя множество квантователей и может применять зависимое квантование, при котором коэффициенты преобразования квантуются с использованием способа квантования, выбранного из множества способов квантования.[0154] It should be noted that the quantizer 108 may include a plurality of quantizers and may employ dependent quantization, in which the transform coefficients are quantized using a quantization method selected from a plurality of quantization methods.

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

Фиг. 20 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного кодера 110 согласно варианту осуществления, и описывается для удобства со ссылкой на фиг. 7. Энтропийный кодер 110 формирует поток посредством энтропийного кодирования квантованных коэффициентов, вводимых из квантователя 108, и параметра прогнозирования, вводимого из формирователя 130 параметров прогнозирования. Например, контекстно-адаптивное двоичное арифметическое кодирование (CABAC) используется в качестве энтропийного кодирования. Более конкретно, энтропийный кодер 110, как проиллюстрировано, включает в себя модуль 110a преобразования в двоичную форму, контроллер 110b контекстов и двоичный арифметический кодер 110c. Модуль 110a преобразования в двоичную форму выполняет преобразование в двоичную форму, при котором многоуровневые сигналы, такие как квантованные коэффициенты и параметр прогнозирования, преобразуются в двоичные сигналы. Примеры способов преобразования в двоичную форму включают в себя преобразование в двоичную форму усеченным кодом Райса, экспоненциальные коды Голомба и преобразование в двоичную форму кодом фиксированной длины. Контроллер 110b контекстов извлекает значение контекста согласно признаку или окружающему состоянию синтаксического элемента, который представляет собой вероятность возникновения двоичного сигнала. Примеры способов для извлечения значения контекста включают в себя обход, обращение к синтаксическому элементу, обращение к верхнему и левому смежным блокам, обращение к иерархической информации и т.д. Двоичный арифметический кодер 110c арифметически кодирует двоичный сигнал с использованием извлеченного контекста.Fig. 20 is a block diagram illustrating one example of a functional configuration of the entropy encoder 110 according to the embodiment, and is described for convenience with reference to FIG. 7. The entropy encoder 110 generates a stream by entropy encoding the quantized coefficients input from the quantizer 108 and the prediction parameter input from the prediction parameter generator 130. For example, context adaptive binary arithmetic coding (CABAC) is used as entropy coding. More specifically, the entropy encoder 110, as illustrated, includes a binarization unit 110a, a context controller 110b, and a binary arithmetic encoder 110c. The binarization unit 110a performs binarization in which multi-level signals such as quantized coefficients and a prediction parameter are converted into binary signals. Examples of binarization methods include truncated Rice code binarization, exponential Golomb codes, and fixed-length code binarization. The context controller 110b extracts a context value according to a feature or surrounding state of a syntactic element that represents the probability of occurrence of a binary signal. Examples of methods for retrieving context value include traversal, syntactic element access, top and left adjacent block access, hierarchical information access, etc. Binary arithmetic encoder 110c arithmetically encodes the binary signal using the extracted context.

[0156] Фиг. 21 является концептуальной схемой для иллюстрации примерной последовательности операций CABAC-процесса в энтропийном кодере 110. Во-первых, инициализация выполняется в CABAC в энтропийном кодере 110. При инициализации, выполняются инициализация в двоичном арифметическом кодере 110c и задание начального значения контекста. Например, модуль 110a преобразования в двоичную форму и двоичный арифметический кодер 110c могут выполнять преобразование в двоичную форму и арифметическое кодирование множества коэффициентов квантования в CTU последовательно. Контроллер 110b контекстов может обновлять значение контекста каждый раз, когда арифметическое кодирование выполняется. Контроллер 110b контекстов затем может сохранять значение контекста в качестве постобработки. Сохраненное значение контекста может использоваться, например, чтобы инициализировать значение контекста для следующей CTU.[0156] FIG. 21 is a conceptual diagram for illustrating an exemplary flow of the CABAC process in entropy encoder 110. First, initialization is performed in CABAC in entropy encoder 110. In initialization, initialization in binary arithmetic encoder 110c and setting an initial context value are performed. For example, the binarization unit 110a and the binary arithmetic encoder 110c may perform binarization and arithmetic encoding of a plurality of quantization coefficients in the CTU sequentially. The context controller 110b may update the context value each time arithmetic encoding is performed. The context controller 110b may then store the context value as post-processing. The stored context value can be used, for example, to initialize the context value for the next CTU.

[0157] Обратный квантователь [0157] 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 scanning 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.

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

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

[0159] Следует отметить, что поскольку информация потеряна в квантовании, восстановленные ошибки прогнозирования не совпадают с ошибками прогнозирования, вычисленными посредством вычитателя 104. Другими словами, восстановленные ошибки прогнозирования нормально включают в себя ошибки квантования.[0159] 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.

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

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

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

Запоминающее устройство 118 блоков представляет собой устройство хранения данных для сохранения блоков в текущем кадре, например, для использования при внутреннем прогнозировании. Более конкретно, запоминающее устройство 118 блоков сохраняет восстановленные изображения, выводимые из сумматора 116.Block memory 118 is a storage device for storing blocks in the current frame, for example, for use in intra prediction. More specifically, the block memory 118 stores the reconstructed images output from the adder 116.

[0162] Запоминающее устройство кинокадров [0162] Motion Picture Memory

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

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

Контурный фильтр 120 применяет контурный фильтр к восстановленному изображению, выводимому посредством сумматора 116, и выводит фильтрованное восстановленное изображение в запоминающее устройство 122 кинокадров. Контурный фильтр представляет собой фильтр, используемый в контуре кодирования (внутриконтурном фильтре). Примеры контурных фильтров включают в себя, например, адаптивный контурный фильтр (ALF), фильтр удаления блочности (DB или DBF), фильтр на основе дискретизированного адаптивного смещения (SAO) и т.д.The edge filter 120 applies the edge filter to the reconstructed image output by the adder 116 and outputs the filtered reconstructed image to the movie frame memory 122. A loop filter is a filter used in a coding loop (in-loop filter). Examples of loop filters include, for example, an adaptive loop filter (ALF), a deblocking filter (DB or DBF), a sampled adaptive offset filter (SAO), etc.

[0164] Фиг. 22 является блок-схемой, иллюстрирующей один пример функциональной конфигурации контурного фильтра 120 согласно варианту осуществления. Например, как проиллюстрировано на фиг. 22, контурный фильтр 120 включает в себя модуль 120a выполнения фильтрации для удаления блочности, модуль 120b SAO-выполнения и модуль 120c ALF-выполнения. Модуль 120a выполнения фильтрации для удаления блочности выполняет процесс фильтрации для удаления блочности для восстановленного изображения. Модуль 120b SAO-выполнения выполняет SAO-процесс для восстановленного изображения после подвергания процессу фильтрации для удаления блочности. Модуль 120c ALF-выполнения выполняет ALF-процесс для восстановленного изображения после подвергания SAO-процессу. Ниже подробно описываются ALF и фильтр удаления блочности. SAO-процесс представляет собой процесс для повышения качества изображений посредством уменьшения кольцевания (явления, при котором пиксельные значения искажаются как волны вокруг края) и коррекции отклонения в пиксельном значении. Примеры SAO-процессов включают в себя процесс краевого смещения и процесс полосового смещения. Следует отметить, что контурный фильтр 120, в некоторых вариантах осуществления, может не включать в себя все составляющие элементы, раскрытые на фиг. 22, и может включать в себя некоторые составляющие элементы и может включать в себя дополнительные элементы. Помимо этого, контурный фильтр 120 может быть выполнен с возможностью выполнять вышеуказанные процессы в порядке обработки, отличающемся от порядка обработки, раскрытого на фиг. 22, может не выполнять все процессы и т.д.[0164] FIG. 22 is a block diagram illustrating one example of a functional configuration of the loop filter 120 according to the embodiment. For example, as illustrated in FIG. 22, the loop filter 120 includes a deblocking filtering execution unit 120a, an SAO execution unit 120b, and an ALF execution unit 120c. The deblocking filtering execution unit 120a performs a deblocking filtering process for the restored image. The SAO execution unit 120b performs the SAO process on the reconstructed image after subjecting it to the deblocking filtering process. The ALF execution unit 120c performs the ALF process on the reconstructed image after being subjected to the SAO process. The ALF and deblocking filter are described in detail below. The SAO process is a process for improving image quality by reducing ringing (a phenomenon in which pixel values are distorted as waves around an edge) and correcting deviation in pixel value. Examples of SAO processes include the edge shift process and the band shift process. It should be noted that loop filter 120, in some embodiments, may not include all of the constituent elements disclosed in FIG. 22, and may include certain constituent elements and may include additional elements. In addition, the loop filter 120 may be configured to perform the above processes in a processing order different from the processing order disclosed in FIG. 22 may not run all processes, etc.

[0165] Контурный фильтр > адаптивный контурный фильтр [0165] Loop filter > adaptive loop filter

В ALF, применяется фильтр ошибок по методу наименьших квадратов для удаления артефактов сжатия. Например, один фильтр, выбранный из множества фильтров на основе направления и активности локальных градиентов, применяется для каждого 2×2-пиксельного субблока в текущем блоке.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 2x2-pixel subblock in the current block.

[0166] Более конкретно, сначала каждый субблок (например, каждый 2×2-пиксельный субблок) классифицируется на один из множества классов (например, пятнадцать или двадцать пять классов). Классификация субблока может быть основана, например, на направленности и активности градиентов. Например, классификационный индекс C (например, C=5D+A) извлекается на основе направленности D градиентов (например, 0-2 или 0-4) и активности A градиентов (например, 0-4). Затем на основе классификационного индекса C каждый субблок классифицируется на один из множества классов.[0166] More specifically, first, each sub-block (eg, each 2x2-pixel sub-block) is classified into one of a plurality of classes (eg, fifteen or twenty-five classes). The subblock classification may be based, for example, 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.

[0167] Например, направленность D градиентов вычисляется посредством сравнения градиентов множества направлений (например, горизонтального, вертикального и двух диагональных направлений). Кроме того, например, активность A градиентов вычисляется посредством суммирования градиентов множества направлений и квантования результата суммирования.[0167] 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.

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

[0169] Форма фильтра, который должен использоваться в ALF, например, представляет собой круглую симметричную форму фильтра. Фиг. 23A-23C являются концептуальными схемами для иллюстрации примеров форм фильтра, используемых в ALF. Фиг. 23A иллюстрирует фильтр ромбовидной формы 5×5, фиг. 23B иллюстрирует фильтр ромбовидной формы 7×7, и фиг. 23C иллюстрирует фильтр ромбовидной формы 9×9. Информация, указывающая форму фильтра, нормально передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах этой информации, указывающей форму фильтра, не обязательно должна выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне среза, уровне плитки, уровне CTU или уровне CU).[0169] The filter shape to be used in the ALF, for example, is a circular symmetrical filter shape. Fig. 23A-23C are conceptual diagrams to illustrate examples of filter shapes used in the ALF. Fig. 23A illustrates a 5x5 diamond shape filter, FIG. 23B illustrates a 7x7 diamond shape filter, and FIG. 23C 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).

[0170] Включение или выключение ALF может определяться, например, на уровне кадра или на уровне CU. Например, решение касательно того, следует или нет применять ALF к сигналу яркости, может приниматься на уровне CU, и решение касательно того, следует или нет применять ALF к сигналу цветности, может приниматься на уровне кадра. Информация, указывающая включение или выключение ALF, нормально передается в служебных сигналах на уровне кадра или на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей включение или выключение ALF, не обязательно должна выполняться на уровне кадра или на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне среза, уровне плитки или уровне CTU).[0170] Enabling or disabling ALF can be 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).

[0171] Помимо этого, как описано выше, один фильтр выбирается из множества фильтров, и ALF-процесс субблока выполняется. Набор коэффициентов для коэффициентов, которые должны использоваться для каждого из множества фильтров (например, вплоть до пятнадцатого или двадцать пятого фильтра), нормально передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах набора коэффициентов не должна обязательно выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне среза, уровне плитки, уровне CTU, уровне CU или уровне субблока).[0171] In addition, as described above, one filter is selected from the plurality of filters, and the subblock ALF process is executed. A set of coefficients for the coefficients to be used for each of a plurality of filters (eg, up to the fifteenth or twenty-fifth filter) is normally signaled at the frame level. It should be noted that the 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).

[0172] Контурный фильтр > кросскомпонентный адаптивный контурный фильтр [0172] Loop Filter > Cross Component Adaptive Loop Filter

Фиг. 23D является концептуальной схемой для иллюстрации примерной последовательности операций кросскомпонентной ALF (CCALF). Фиг. 23E является концептуальной схемой для иллюстрации примера формы фильтра, используемой в CCALF, к примеру, CCALF по фиг. 23D. Примерная CCALF по фиг. 23D и 23E работает посредством применения линейного, ромбовидного фильтра к каналу сигнала яркости для каждого компонента сигнала цветности. Коэффициенты фильтрации, например, могут передаваться в APS, масштабироваться на коэффициент 2^10 и округляться для представления с фиксированной запятой. Например, на фиг. 23D, Y-выборки (первый компонент) используются для CCALF для Cb и CCALF для Cr (для компонентов, отличающихся от первого компонента).Fig. 23D is a conceptual diagram for illustrating an exemplary cross-component ALF (CCALF) flowchart. Fig. 23E is a conceptual diagram for illustrating an example of a filter shape used in a CCALF, for example, the CCALF of FIG. 23D. The exemplary CCALF of FIG. 23D and 23E operate by applying a linear, diamond-shaped filter to the luma signal channel for each chrominance signal component. Filter coefficients, for example, can be passed to APS, scaled by a factor of 2^10, and rounded for fixed-point representation. For example, in FIG. 23D, Y samples (first component) are used for CCALF for Cb and CCALF for Cr (for components other than the first component).

[0173] Применение фильтров может управляться для переменного размера блока и передаваться в служебных сигналах посредством контекстно-кодированного флага, принимаемого для каждого блока выборок. Размер блока наряду с флагом CCALF-активации может приниматься на уровне среза для каждого компонента сигнала цветности. CCALF может поддерживать различные размеры блоков, например (в выборках сигналов цветности) 16×16 пикселов, 32×32 пикселов, 64×64 пикселов, 128×128 пикселов.[0173] The application of filters may be controlled for a variable block size and signaled via a context-coded flag received for each block of samples. The block size along with the CCALF enable flag may be received at the cut level for each chroma component. CCALF can support various block sizes, for example (in chroma samples) 16x16 pixels, 32x32 pixels, 64x64 pixels, 128x128 pixels.

[0174] Контурный фильтр > объединенный кросскомпонентный адаптивный контурный фильтр сигналов цветности [0174] Loop Filter > Combined Cross-Component Adaptive Chroma Loop Filter

Один пример объединенной CCALF сигналов цветности проиллюстрирован на фиг. 23F и 23G. Фиг. 23F является концептуальной схемой для иллюстрации примерной последовательности операций объединенной CCALF сигналов цветности. Фиг. 23G является таблицей, иллюстрирующей примерные возможные варианты весовых индексов. Как проиллюстрировано, один CCALF-фильтр используется для того, чтобы формировать один CCALF-фильтрованный вывод в качестве сигнала детализации сигнала цветности для одного цветового компонента, в то время как взвешенная версия идентичного сигнала детализации сигнала цветности применяется к другому цветовому компоненту. Таким образом, сложность существующей CCALF уменьшается примерно наполовину. Значение весового коэффициента может кодироваться как флаг знака и весовой индекс. Весовой индекс (обозначаемый в качестве weight_index) может кодироваться в 3 битах и указывает абсолютную величину весового JC-CCALF-коэффициента JcCcWeight, которая представляет собой ненулевую абсолютную величину. Абсолютная величина JcCcWeight, например, может определяться следующим образом:One example of combined CCALF chrominance signals is illustrated in FIG. 23F and 23G. Fig. 23F is a conceptual diagram for illustrating an exemplary process flow of combined CCALF chrominance signals. Fig. 23G is a table illustrating approximate possible weight index options. As illustrated, one CCALF filter is used to generate one CCALF filtered output as the chrominance detail signal for one color component, while a weighted version of the identical chrominance detail signal is applied to the other color component. This reduces the complexity of the existing CCALF by about half. The weighting factor value may be encoded as a sign flag and a weighting index. The weight index (denoted as weight_index) may be encoded in 3 bits and indicates the absolute value of the JC-CCALF weighting factor JcCcWeight, which is a non-zero absolute value. The absolute value of JcCcWeight, for example, can be defined as follows:

Если weight_index меньше или равен 4, JcCcWeight равен weight_index>>2;If weight_index is less than or equal to 4, JcCcWeight is weight_index>>2;

В противном случае, JcCcWeight равен 4/(weight_index-4).Otherwise, JcCcWeight is 4/(weight_index-4).

[0175] Управление включением/выключением на блочном уровне ALF-фильтрации для Cb и Cr может быть отдельным. Это является идентичным с CCALF, и могут кодироваться два отдельных набора флагов управления включением/выключением на блочном уровне. В отличие от CCALF, в данном документе, размеры блоков управления включением/выключением Cb, Cr являются идентичными, и в силу этого может кодироваться только одна переменная размера блока.[0175] The on/off control at the block level of ALF filtering for Cb and Cr may be separate. This is identical to CCALF, and two separate sets of block-level enable/disable control flags can be encoded. Unlike CCALF, in this document, the sizes of the on/off control blocks Cb, Cr are identical, and therefore only one block size variable can be encoded.

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

В процессе фильтрации для удаления блочности, контурный фильтр 120 выполняет процесс фильтрации для границы блока в восстановленном изображении таким образом, чтобы уменьшать искажение, которое возникает на границе блока.In the deblocking filtering process, 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.

[0177] Фиг. 24 является блок-схемой, иллюстрирующей один пример конкретной конфигурации модуля 120a выполнения фильтрации для удаления блочности контурного фильтра 120 (см. фиг. 7 и 22), который функционирует в качестве фильтра удаления блочности.[0177] FIG. 24 is a block diagram illustrating one example of a specific configuration of the deblocking filtering performing unit 120a of the loop filter 120 (see FIGS. 7 and 22) that functions as a deblocking filter.

[0178] Модуль 120a выполнения фильтрации для удаления блочности включает в себя: модуль 1201 определения границ; модуль 1203 определения фильтрации; модуль 1205 выполнения фильтрации; модуль 1208 определения обработки; модуль 1207 определения характеристик фильтра; и переключатели 1202, 1204 and 1206.[0178] The deblocking filtering module 120a 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.

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

[0180] В случае если модуль 1201 определения границ определяет то, что текущий пиксел присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1204. В противоположном случае, в котором модуль 1201 определения границ определяет то, что текущий пиксел не присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1206. Следует отметить, что нефильтрованное изображение представляет собой изображение, сконфигурированное с текущим пикселом и, по меньшей мере, одним окружающим пикселом, расположенным около текущего пиксела.[0180] 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 an unfiltered image to switch 1206. It should be noted that the unfiltered image is an image configured with the current pixel and at least one surrounding pixel located near the current pixel.

[0181] Модуль 1203 определения фильтрации определяет то, следует или нет выполнять фильтрацию для удаления блочности текущего пиксела, на основе пиксельного значения, по меньшей мере, одного окружающего пиксела, расположенного около текущего пиксела. Модуль 1203 определения фильтрации затем выводит результат определения в переключатель 1204 и модуль 1208 определения обработки.[0181] 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.

[0182] В случае если определено то, что модуль 1203 определения фильтрации выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в модуль 1205 выполнения фильтрации. В противоположном случае, в котором определено то, что модуль 1203 определения фильтрации не выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в переключатель 1206.[0182] 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.

[0183] При получении нефильтрованного изображения через переключатели 1202 и 1204, модуль 1205 выполнения фильтрации выполняет, для текущего пиксела, фильтрацию для удаления блочности с характеристикой фильтра, определенной посредством модуля 1207 определения характеристик фильтра. Модуль 1205 выполнения фильтрации затем выводит фильтрованный пиксел в переключатель 1206.[0183] 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.

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

[0185] Модуль 1208 определения обработки управляет переключателем 1206 на основе результатов определений, выполняемых посредством модуля 1201 определения границ и модуля 1203 определения фильтрации. Другими словами, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который фильтруется для удаления блочности, когда модуль 1201 определения границ определяет то, что текущий пиксел присутствует около границы блока, и когда модуль 1203 определения фильтрации определяет необходимость выполнять фильтрацию для удаления блочности текущего пиксела. Помимо этого, в отличие от вышеописанного случая, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который не фильтруется для удаления блочности. Фильтрованное изображение выводится из переключателя 1206 посредством повторения вывода пиксела таким образом. Следует отметить, что конфигурация, проиллюстрированная на фиг. 24, представляет собой один пример конфигурации в модуле 120a выполнения фильтрации для удаления блочности. Модуль 120a выполнения фильтрации для удаления блочности может иметь различные конфигурации.[0185] 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 when the filter determination module 1203 determines that filtering to deblock the current pixel is necessary. . In addition, unlike 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. It should be noted that the configuration illustrated in FIG. 24 is one example of a configuration in the blocking deblocking filtering module 120a. The deblocking filtering unit 120a may have various configurations.

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

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

[0188] q'0=(p1+2xp0+2xq0+2xq1+q2+4)/8[0188] 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

[0189] Следует отметить, что, в вышеприведенных выражениях, p0-p2 и q0-q2 представляют собой пиксельные значения соответствующих пикселов p0-p2 и пикселов q0-q2. Помимо этого, q3 представляет собой пиксельное значение соседнего пиксела q3, расположенного в противоположной стороне пиксела q2 относительно границы блока. Помимо этого, в правой стороне каждого из выражений, коэффициенты, которые умножаются на соответствующие пиксельные значения пикселов, которые должны использоваться для фильтрации для удаления блочности, представляют собой коэффициенты фильтрации.[0189] 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.

[0190] Кроме того, при фильтрации для удаления блочности, отсечение может выполняться таким образом, что вычисленные пиксельные значения не изменяются более чем на пороговое значение. Например, в процессе отсечения, пиксельные значения, вычисленные согласно вышеприведенным выражениям, могут отсекаться до значения, полученного согласно "вычисленное пиксельное значение ± 2 x пороговое значение" с использованием порогового значения, определенного на основе параметра квантования. Таким образом, можно предотвращать чрезмерное сглаживание.[0190] Additionally, when filtering to remove blocking, clipping may be performed such that the calculated pixel values do not change by more than a threshold value. For example, in the clipping process, pixel values calculated according to the above expressions may be clipped to a 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.

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

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

[0193] Согласно Bs-значениям на фиг. 27, может определяться то, следует или нет выполнять процессы фильтрации для удаления блочности границ блоков, принадлежащих идентичному изображению, с использованием различных интенсивностей. Процесс фильтрации для удаления блочности для сигнала цветности выполняется, когда Bs-значение равно 2. Процесс фильтрации для удаления блочности для сигнала яркости выполняется, когда Bs-значение равно 1 или более, и определенное условие удовлетворяется. Определенное условие может быть предварительно определено. Следует отметить, что условия для определения Bs-значений не ограничены указываемыми на фиг. 27, и Bs-значение может определяться на основе другого параметра.[0193] According to the Bs values in FIG. 27, it can be determined whether or not filtering processes for deblocking the boundaries of blocks belonging to the same 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. 27, and the Bs value may be determined based on another parameter.

[0194] Модуль прогнозирования (модуль внутреннего прогнозирования, модуль взаимного прогнозирования, контроллер прогнозирования) [0194] Prediction Module (Intra Prediction Module, Inter Prediction Module, Prediction Controller)

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

[0195] Модуль прогнозирования формирует прогнозное изображение текущего блока (этап Sb_1). Это прогнозное изображение также может называться "прогнозным сигналом" или "блоком прогнозирования". Следует отметить, что прогнозный сигнал, например, представляет собой внутреннее прогнозное изображение (сигнал прогнозирования изображений) или взаимное прогнозное изображение (взаимный прогнозный сигнал). Модуль прогнозирования формирует прогнозное изображение текущего блока с использованием восстановленного изображения, которое уже получено через другой блок, через формирование прогнозного изображения, формирование остатка прогнозирования, формирование квантованных коэффициентов, восстановление остатка прогнозирования и суммирование прогнозного изображения.[0195] The prediction module generates a prediction image of the current block (step Sb_1). This prediction image may also be referred to as a "prediction signal" or a "prediction block". It should be noted that the prediction signal is, for example, an internal prediction image (image prediction signal) or a mutual prediction image (mutual prediction signal). The prediction module generates a prediction image of the current block using a reconstructed image that has already been obtained through another block, through generating a prediction image, generating a prediction residual, generating quantized coefficients, restoring the prediction residual, and adding up the prediction image.

[0196] Восстановленное изображение, например, может представлять собой изображение в опорном кадре или изображение кодированного блока (т.е. другого блока, описанного выше) в текущем кадре, который представляет собой кадр, включающий в себя текущий блок. Кодированный блок в текущем кадре, например, представляет собой соседний блок относительно текущего блока.[0196] The reconstructed image, for example, may be an image in a reference frame or an image of a coded block (ie, another block described above) in the 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.

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

[0198] Модуль прогнозирования формирует прогнозное изображение с использованием первого способа (этап Sc_1a), формирует прогнозное изображение с использованием второго способа (этап Sc_1b) и формирует прогнозное изображение с использованием третьего способа (этап Sc_1c). Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования прогнозного изображения. Каждый из первого-третьего способов может представлять собой способ взаимного прогнозирования, способ внутреннего прогнозирования или другой способ прогнозирования. Вышеописанное восстановленное изображение может использоваться в этих способах прогнозирования.[0198] The prediction module 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 inter-prediction method, an intra-prediction method, or another prediction method. The above-described reconstructed image can be used in these prediction methods.

[0199] Затем, процессор прогнозирования оценивает прогнозные изображения, сформированные на этапах Sc_1a, Sc_1b и Sc_1c (этап Sc_2). Например, модуль прогнозирования вычисляет затраты C для прогнозных изображений, сформированных на этапе Sc_1a, Sc_1b и Sc_1, и оценивает прогнозные изображения посредством сравнения затрат C прогнозных изображений. Следует отметить, что затраты C могут вычисляться, например, согласно выражению модели R-D-оптимизации, например, C=D+λ x R. В этом выражении, D указывает артефакты сжатия прогнозного изображения и представляется, например, как сумма абсолютных разностей между пиксельным значением текущего блока и пиксельным значением прогнозного изображения. Помимо этого, R указывает скорость передачи битов потока. Помимо этого, λ указывает, например, множитель согласно способу на основе множителей Лагранжа.[0199] Next, the prediction processor evaluates the prediction images generated in steps Sc_1a, Sc_1b, and Sc_1c (step Sc_2). For example, the prediction module calculates the costs C for the prediction images generated in steps Sc_1a, Sc_1b and Sc_1, and evaluates the prediction images by comparing the costs C of the prediction images. It should be noted that the cost C can be calculated, for example, according to the expression of the R-D optimization model, for example, C=D+λ x R. In this expression, D indicates the compression artifacts of the forecast image and is represented, for example, as the sum of the absolute differences between the pixel value the current block and the pixel value of the forecast image. In addition, R indicates the bit rate of the stream. In addition, λ indicates, for example, a multiplier according to the Lagrange multiplier method.

[0200] Модуль прогнозирования затем выбирает одно из прогнозных изображений, сформированных на этапах Sc_1a, Sc_1b и Sc_1c (этап Sc_3). Другими словами, модуль прогнозирования выбирает способ или режим для получения конечного прогнозного изображения. Например, модуль прогнозирования выбирает прогнозное изображение, имеющее наименьшие затраты C, на основе затрат C, вычисленных для прогнозных изображений. Альтернативно, оценка на этапе Sc_2 и выбор прогнозного изображения на этапе Sc_3 могут выполняться на основе параметра, который используется в процессе кодирования. Кодер 100 может преобразовывать информацию для идентификации выбранного прогнозного изображения, способа или режима в поток. Информация, например, может представлять собой флаг и т.п. Таким образом, декодер 200 допускает формирование прогнозного изображения согласно способу или режиму, выбранному посредством кодера 100, на основе информации. Следует отметить, что, в примере, проиллюстрированном на фиг. 29, модуль прогнозирования выбирает любое из прогнозных изображений после того, как прогнозные изображения формируются с использованием соответствующих способов. Тем не менее, модуль прогнозирования может выбирать способ или режим на основе параметра для использования в вышеописанном процессе кодирования до формирования прогнозных изображений и может формировать прогнозное изображение согласно выбранному способу или режиму.[0200] The prediction module then selects one of the prediction images generated in steps Sc_1a, Sc_1b and Sc_1c (step Sc_3). In other words, the prediction module selects a method or mode to obtain the final prediction image. For example, the prediction module selects the prediction image having the lowest cost C based on the costs C calculated for the prediction images. Alternatively, the evaluation in step Sc_2 and the selection of the prediction image in step Sc_3 may be performed based on a parameter that is used in the encoding process. Encoder 100 may convert information to identify the selected prediction image, method, or mode into a stream. The information may, for example, be a flag or the like. Thus, the decoder 200 is capable of generating a prediction image according to a method or mode selected by the encoder 100 based on the information. It should be noted that, in the example illustrated in FIG. 29, the prediction module selects any of the prediction images after the prediction images are generated using appropriate methods. However, the prediction module can select a method or mode based on a parameter to be used in the above-described encoding process before generating prediction images, and can generate a prediction image according to the selected method or mode.

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

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

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

[0204] Затем, модуль прогнозирования оценивает каждое из внутреннего прогнозного изображения и взаимного прогнозного изображения (этап Sd_2). Затраты C, описанные выше, могут использоваться при оценке. Модуль прогнозирования затем может выбирать прогнозное изображение, для которого наименьшие затраты C вычислены, из внутреннего прогнозного изображения и взаимного прогнозного изображения, в качестве конечного прогнозного изображения для текущего блока (этап Sd_3). Другими словами, выбирается способ или режим прогнозирования для формирования прогнозного изображения для текущего блока.[0204] Next, the prediction module evaluates each of the internal prediction image and the mutual prediction image (step Sd_2). The C costs described above can be used in the estimation. The prediction module can then select the prediction image for which the least cost C is calculated from the internal prediction image and the mutual 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.

[0205] Процессор прогнозирования затем выбирает прогнозное изображение, для которого наименьшие затраты C вычислены из внутреннего прогнозного изображения и взаимного прогнозного изображения, в качестве конечного прогнозного изображения для текущего блока (этап Sd_3). Другими словами, выбирается способ или режим прогнозирования для формирования прогнозного изображения для текущего блока.[0205] The prediction processor then selects the prediction image for which the least cost C is calculated from the internal prediction image and the mutual 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.

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

Модуль 124 внутреннего прогнозирования формирует прогнозный сигнал (т.е. внутренний прогнозный сигнал) посредством выполнения внутреннего прогнозирования (также называется "внутрикадровым прогнозированием") текущего блока посредством обращения к блоку или блокам в текущем кадре, сохраненном в запоминающем устройстве 118 блоков. Более конкретно, модуль 124 внутреннего прогнозирования формирует внутреннее прогнозное изображение посредством выполнения внутреннего прогнозирования посредством обращения к пиксельным значениям (например, значениям сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутреннее прогнозное изображение в контроллер 128 прогнозирования.The intra prediction module 124 generates a prediction signal (ie, an intra prediction signal) by performing intra prediction (also called “intra prediction”) of the current block by accessing 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 image by performing intra prediction by referring to pixel values (eg, luma and/or chroma values) of the block or blocks adjacent to the current block, and then outputs the internal prediction image to the controller 128 forecasting.

[0207] Например, модуль 124 внутреннего прогнозирования выполняет внутреннее прогнозирование посредством использования одного режима из множества режимов внутреннего прогнозирования, которые задаются. Режимы внутреннего прогнозирования типично включают в себя один или более режимов ненаправленного прогнозирования и множество режимов направленного прогнозирования. Заданные режимы могут быть предварительно заданы.[0207] 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 typically include one or more non-directional prediction modes and a plurality of directed prediction modes. Preset modes can be preset.

[0208] Один или более режимов ненаправленного прогнозирования включают в себя, например, режим планарного прогнозирования и режим DC-прогнозирования, заданные в стандарте H.265/высокоэффективного кодирования видео (HEVC).[0208] 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.

[0209] Множество режимов направленного прогнозирования включают в себя, например, тридцать три режима направленного прогнозирования, заданные в H.265/HEVC-стандарте. Следует отметить, что множество режимов направленного прогнозирования дополнительно могут включать в себя тридцать два режима направленного прогнозирования в дополнение к тридцати трем режимам направленного прогнозирования (в сумме шестьдесят пять режимов направленного прогнозирования). Фиг. 31 является концептуальной схемой для иллюстрации шестьдесят семи режимов внутреннего прогнозирования в сумме, которые могут использоваться при внутреннем прогнозировании (два режима ненаправленного прогнозирования и шестьдесят пять режимов направленного прогнозирования). Сплошные стрелки представляют тридцать три направления, заданные в H.265/HEVC-стандарте, и пунктирные стрелки представляют дополнительные тридцать два направления (два режима ненаправленного прогнозирования не проиллюстрированы на фиг. 31).[0209] 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. 31 is a conceptual diagram for illustrating a total of sixty-seven intra-prediction modes 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. 31).

[0210] В различных видах примеров обработки, на блок сигналов яркости можно ссылаться при внутреннем прогнозировании блока сигналов цветности. Другими словами, компонент сигнала цветности текущего блока может прогнозироваться на основе компонента сигнала яркости текущего блока. Такое внутреннее прогнозирование также называется "прогнозированием на основе кросскомпонентной линейной модели (CCLM)". Режим внутреннего прогнозирования для блока сигналов цветности, в котором на такой блок сигналов яркости ссылаются (также называется, например, "CCLM-режимом"), может добавляться в качестве одного из режимов внутреннего прогнозирования для блоков сигналов цветности.[0210] 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.

[0211] Модуль 124 внутреннего прогнозирования может корректировать внутренне прогнозированные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов. Внутреннее прогнозирование, сопровождаемое посредством этого вида коррекции, также называется "позиционно-зависимой комбинацией с внутренним прогнозированием (PDPC)". Информация, указывающая то, следует или нет применять PDPC (называется, например, "PDPC-флагом"), нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне среза, уровне плитки или уровне CTU).[0211] 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 need 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).

[0212] Фиг. 32 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством модуля 124 внутреннего прогнозирования.[0212] FIG. 32 is a flowchart illustrating one example of a process performed by the intra prediction module 124.

[0213] Модуль 124 внутреннего прогнозирования выбирает один режим внутреннего прогнозирования из множества режимов внутреннего прогнозирования (этап Sw_1). Модуль 124 внутреннего прогнозирования затем формирует прогнозное изображение согласно выбранному режиму внутреннего прогнозирования (этап Sw_2). Затем, модуль 124 внутреннего прогнозирования определяет наиболее вероятные режимы (MPM) (этап Sw_3). MPM включают в себя, например, шесть режимов внутреннего прогнозирования. Например, два режима из шести режимов внутреннего прогнозирования могут представлять собой планарный режим и режим DC-прогнозирования, и другие четыре режима могут представлять собой режимы направленного прогнозирования. Модуль 124 внутреннего прогнозирования определяет то, включается или нет режим внутреннего прогнозирования, выбранный на этапе Sw_1, в MPM (этап Sw_4).[0213] The intra prediction unit 124 selects one intra prediction mode from a plurality of intra prediction modes (step Sw_1). The intra prediction unit 124 then generates a prediction image according to the selected intra prediction mode (step Sw_2). Next, the internal prediction module 124 determines the most probable modes (MPM) (step Sw_3). MPMs include, for example, six intraprediction modes. For example, two modes of the six intra prediction modes may be a planar mode and a DC prediction mode, and the other four modes may be directional prediction modes. The intra prediction unit 124 determines whether or not the intra prediction mode selected in step Sw_1 is turned on in the MPM (step Sw_4).

[0214] Здесь, при определении того, что режим внутреннего прогнозирования, выбранный на этапе Sw_1, включается в MPM ("Да" на этапе Sw_4), модуль 124 внутреннего прогнозирования задает MPM-флаг равным 1 (этап Sw_5) и формирует информацию, указывающую выбранный режим внутреннего прогнозирования, из MPM (этап Sw_6). Следует отметить, что MPM-флаг, заданный равным 1, и информация, указывающая режим внутреннего прогнозирования, могут кодироваться как параметры прогнозирования посредством энтропийного кодера 110.[0214] Here, when determining that the intra prediction mode selected in step Sw_1 is included in the MPM (“Yes” in step Sw_4), the intra prediction unit 124 sets the MPM flag to 1 (step Sw_5) and generates information indicating selected internal prediction mode, from MPM (step Sw_6). It should be noted that the MPM flag set to 1 and information indicating the intra prediction mode can be encoded as prediction parameters by the entropy encoder 110.

[0215] При определении того, что выбранный режим внутреннего прогнозирования не включается в MPM ("Нет" на этапе Sw_4), модуль 124 внутреннего прогнозирования задает MPM-флаг равным 0 (этап Sw_7). Альтернативно, модуль 124 внутреннего прогнозирования вообще не задает MPM-флаг. Модуль 124 внутреннего прогнозирования затем формирует информацию, указывающую выбранный режим внутреннего прогнозирования, по меньшей мере, из одного режима внутреннего прогнозирования, который не включается в MPM (этап Sw_8). Следует отметить, что MPM-флаг, заданный равным 0, и информация, указывающая режим внутреннего прогнозирования, могут кодироваться как параметры прогнозирования посредством энтропийного кодера 110. Информация, указывающая режим внутреннего прогнозирования, указывает, например, любое из 0-60.[0215] When determining that the selected intra prediction mode is not included in the MPM ("No" in step Sw_4), the intra prediction module 124 sets the MPM flag to 0 (step Sw_7). Alternatively, the intra prediction module 124 does not set the MPM flag at all. The intra prediction unit 124 then generates information indicating the selected intra prediction mode from at least one intra prediction mode that is not included in the MPM (step Sw_8). It should be noted that the MPM flag set to 0 and the information indicating the intra prediction mode can be encoded as prediction parameters by the entropy encoder 110. The information indicating the intra prediction mode indicates, for example, any of 0-60.

[0216] Модуль внутреннего прогнозирования [0216] Internal Prediction Module

Модуль 126 взаимного прогнозирования формирует прогнозное изображение (взаимное прогнозное изображение) посредством выполнения взаимного прогнозирования (также называется "межкадровым прогнозированием") текущего блока посредством обращения к блоку или блокам в опорном кадре, который отличается от текущего кадра и сохраняется в запоминающем устройстве 122 кинокадров. Взаимное прогнозирование выполняется в единицах текущего блока или текущего субблока (например, блока 4×4) в текущем блоке. Субблок включается в блок и представляет собой единицу, меньшую блока. Размер субблока может иметь форму среза, кирпича, кадра и т.д.The inter prediction unit 126 generates a prediction image (cross prediction image) by performing inter prediction (also called “inter prediction”) of the current block by referring to a block or blocks in a reference frame that is different from the current frame and stored in the movie frame memory 122. Inter-prediction is performed in units of the current block or the current sub-block (eg, a 4x4 block) within the current block. A subblock is included in a block and represents a unit smaller than the block. The subblock size can be in the shape of a slice, brick, frame, etc.

[0217] Например, модуль 126 взаимного прогнозирования выполняет оценку движения в опорном кадре для текущего блока или текущего субблока и находит опорный блок или опорный субблок, который имеет наилучшее совпадение с текущим блоком или текущим субблоком. Модуль 126 взаимного прогнозирования затем получает информацию движения (например, вектор движения), которая компенсирует движение или изменение с опорного блока или опорного субблока на текущий блок или субблок. Модуль 126 взаимного прогнозирования формирует взаимное прогнозное изображение текущего блока или субблока посредством выполнения компенсации движения (или прогнозирования движения) на основе информации движения. Модуль 126 взаимного прогнозирования выводит сформированное взаимное прогнозное изображение в контроллер 128 прогнозирования.[0217] For example, inter-prediction module 126 performs motion estimation in a reference frame for the current block or current sub-block and finds the reference block or reference sub-block that has the best match with the current block or current sub-block. The inter-prediction module 126 then receives motion information (eg, a motion vector) that compensates for the motion or change from the reference block or reference subblock to the current block or subblock. The mutual prediction unit 126 generates a mutual prediction image of the current block or sub-block by performing motion compensation (or motion prediction) based on the motion information. The mutual prediction module 126 outputs the generated mutual prediction image to the prediction controller 128 .

[0218] Информация движения, используемая при компенсации движения, может передаваться в служебных сигналах в качестве взаимных прогнозных сигналов в различных формах. Например, вектор движения может передаваться в служебных сигналах. Другими словами, разность между вектором движения и предиктором вектора движения может передаваться в служебных сигналах.[0218] Motion information used in motion compensation may be signaled as mutual 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.

[0219] Список опорных кадров [0219] List of reference frames

Фиг. 33 является концептуальной схемой для иллюстрации примеров опорных кадров. Фиг. 34 является концептуальной схемой для иллюстрации примеров списков опорных кадров. Список опорных кадров представляет собой список, указывающий, по меньшей мере, один опорный кадр, сохраненный в запоминающем устройстве 122 кинокадров. Следует отметить, что на фиг. 33, каждый из прямоугольников указывает кадр, каждая из стрелок указывает опорную взаимосвязь кадров, горизонтальная ось указывает время, I, P и B в прямоугольниках указывают внутренний прогнозный кадр, унипрогнозный кадр и бипрогнозный кадр, соответственно, и номера в прямоугольниках указывают порядок декодирования. Как проиллюстрировано на фиг. 33, порядок декодирования кадров представляет собой порядок I0, P1, B2, B3 и B4, и порядок отображения кадров представляет собой порядок I0, B3, B2, B4 и P1. Как проиллюстрировано на фиг. 34, список опорных кадров представляет собой список, представляющий возможные варианты опорных кадров. Например, один кадр (или срез) может включать в себя, по меньшей мере, один список опорных кадров. Например, один список опорных кадров используется, когда текущий кадр представляет собой унипрогнозный кадр, и два списка опорных кадров используются, когда текущий кадр представляет собой бипрогнозный кадр. В примерах по фиг. 33 и 34, кадр B3, который представляет собой текущий кадр currPic, имеет два списка опорных кадров, которые представляют собой L0-список и L1-список. Когда текущий кадр currPic представляет собой кадр B3, возможные варианты опорных кадров для текущего кадра currPic представляют собой I0, P1 и B2, и списки опорных кадров (которые представляют собой L0-список и L1-список) указывают эти кадры. Модуль 126 взаимного прогнозирования или контроллер 128 прогнозирования указывает то, к какому кадру в каждом списке опорных кадров следует фактически обращаться, в форме индекса refidxLx опорного кадра. На фиг. 34, опорные кадры P1 и B2 указываются посредством индексов refIdxL0 и refIdxL1 опорных кадров.Fig. 33 is a conceptual diagram for illustrating examples of reference frames. Fig. 34 is a conceptual diagram for illustrating examples of reference frame lists. The reference frame list is a list indicating at least one reference frame stored in the movie frame memory 122. It should be noted that in FIG. 33, each of the rectangles indicates a frame, each of the arrows indicates the reference relationship of the frames, the horizontal axis indicates time, I, P and B in the rectangles indicate the internal prediction frame, uni-prediction frame and bi-prediction frame, respectively, and the numbers in the rectangles indicate the decoding order. As illustrated in FIG. 33, the decoding order of frames is the order of I0, P1, B2, B3 and B4, and the display order of frames is the order of I0, B3, B2, B4 and P1. As illustrated in FIG. 34, the reference frame list is a list representing candidate reference frames. For example, one frame (or slice) may include at least one list of reference frames. For example, one reference frame list is used when the current frame is a uni-prediction frame, and two reference frame lists are used when the current frame is a bi-prediction frame. In the examples of FIGS. 33 and 34, frame B3, which is the current frame currPic, has two reference frame lists, which are an L0 list and an L1 list. When the current frame currPic is a B3 frame, the possible reference frames for the current frame currPic are I0, P1 and B2, and the reference frame lists (which are an L0 list and an L1 list) indicate these frames. The inter-prediction module 126 or prediction controller 128 indicates which frame in each reference frame list should actually be accessed in the form of a reference frame index refidxLx. In fig. 34, reference frames P1 and B2 are indicated by reference frame indices refIdxL0 and refIdxL1.

[0220] Такой список опорных кадров может формироваться для каждой единицы, такой как последовательность, кадр, срез, кирпич, CTU или CU. Помимо этого, из опорных кадров, указываемых в списках опорных кадров, индекс опорного кадра, указывающий опорный кадр, к которому обращаются при взаимном прогнозировании, может передаваться в служебных сигналах на уровне последовательности, уровне кадра, уровне среза, уровне кирпича, уровне CTU или уровне CU. Помимо этого, общий список опорных кадров может использоваться во множестве режимов взаимного прогнозирования.[0220] Such a list of reference frames may be generated for each unit, such as a sequence, frame, slice, brick, CTU, or CU. In addition, of the reference frames indicated in the reference frame lists, a reference frame index indicating a reference frame accessed in inter-prediction may be signaled at the sequence level, frame level, slice level, brick level, CTU level, or C.U. In addition, a common reference frame list can be used in a variety of inter-prediction modes.

[0221] Базовая последовательность операций взаимного прогнозирования [0221] Basic Interprediction Flow

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

[0222] Во-первых, модуль 126 взаимного прогнозирования формирует прогнозный сигнал (этапы Se_1-Se_3). Затем, вычитатель 104 формирует разность между текущим блоком и прогнозным изображением в качестве остатка прогнозирования (этап Se_4).[0222] First, the inter-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).

[0223] Здесь, при формировании прогнозного изображения, модуль 126 взаимного прогнозирования формирует прогнозное изображение посредством определения вектора движения (MV) текущего блока (этапы Se_1 и Se_2) и компенсации движения (этап Se_3). Кроме того, при определении MV, модуль 126 взаимного прогнозирования определяет MV посредством выбора возможного варианта вектора движения (возможного MV-варианта) (этап Se_1) и извлечения MV (этап Se_2). Выбор возможного MV-варианта выполняется, например, посредством модуля 126 внутреннего прогнозирования, формирующего список возможных MV-вариантов и выбирающего, по меньшей мере, один возможный MV-вариант из списка возможных MV-вариантов. Следует отметить, что MV, извлекаемые ранее, могут добавляться в список возможных MV-вариантов. Альтернативно, при извлечении MV, модуль 126 взаимного прогнозирования дополнительно может выбирать, по меньшей мере, один возможный MV-вариант, по меньшей мере, из одного возможного MV-варианта и определять выбранный, по меньшей мере, один возможный MV-вариант в качестве MV для текущего блока. Альтернативно, модуль 126 взаимного прогнозирования может определять MV для текущего блока посредством выполнения оценки в области опорного кадра, указываемой посредством каждого из выбранного, по меньшей мере, одного возможного MV-варианта. Следует отметить, что оценка в области опорного кадра может называться "оценкой движения".[0223] Here, when generating a prediction image, the inter-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 inter-prediction unit 126 determines the MV by selecting a motion vector candidate (MV candidate) (step Se_1) and extracting the MV (step Se_2). MV candidate selection is performed, for example, by internal prediction module 126 generating a list of MV candidate candidates and selecting at least one MV candidate candidate from the list of MV candidate candidates. It should be noted that MVs extracted previously may be added to the list of possible MV variants. Alternatively, when extracting the MV, the inter-prediction module 126 may further select at least one candidate MV from the at least one candidate MV and determine the selected at least one candidate MV as the MV for the current block. Alternatively, 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".

[0224] Помимо этого, хотя этапы Se_1-Se_3 выполняются посредством модуля 126 взаимного прогнозирования в вышеописанном примере, процесс, который, например, представляет собой этап Se_1, этап Se_2 и т.п., может выполняться посредством другого составляющего элемента, включенного в кодер 100.[0224] In addition, although steps Se_1 to Se_3 are performed by the inter-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.

[0225] Следует отметить, что список возможных MV-вариантов может формироваться для каждого процесса в режиме взаимного прогнозирования, или общий список возможных MV-вариантов может использоваться во множестве режимов взаимного прогнозирования. Процессы на этапах Se_3 и Se_4 соответствуют этапам Sa_3 и Sa_4, проиллюстрированным на фиг. 9, соответственно. Процесс на этапе Se_3 соответствует процессу на этапе Sd_1b на фиг. 30.[0225] It should be noted that a list of MV candidates may be generated for each process in an inter-prediction mode, or a common list of MV candidates may be used in multiple inter-prediction modes. The processes in steps Se_3 and Se_4 correspond to steps Sa_3 and Sa_4 illustrated in FIG. 9, respectively. The process in step Se_3 corresponds to the process in step Sd_1b in FIG. thirty.

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

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

[0227] Модуль 126 взаимного прогнозирования может извлекать MV текущего блока в режиме для кодирования информации движения (например, MV). В этом случае, например, информация движения может кодироваться как параметр прогнозирования и может передаваться в служебных сигналах. Другими словами, кодированная информация движения включается в поток.[0227] The inter-prediction module 126 may extract the MV of the current block in a mode for encoding motion information (eg, MV). In this case, for example, motion information may be encoded as a prediction parameter and may be signaled. In other words, encoded motion information is included in the stream.

[0228] Альтернативно, модуль 126 взаимного прогнозирования может извлекать MV в режиме, в котором информация движения не кодируется. В этом случае, информация движения не включается в поток.[0228] Alternatively, inter-prediction module 126 may extract MVs in a mode in which motion information is not encoded. In this case, motion information is not included in the stream.

[0229] Здесь, режимы MV-извлечения могут включать в себя нормальный взаимный режим, режим объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых информация движения кодируется, из числа режимов, включают в себя нормальный взаимный режим, режим нормального объединения, аффинный режим (в частности, аффинный взаимный режим и аффинный режим объединения) и т.д. Следует отметить, что информация движения может включать в себя не только MV, но также и информацию выбора предиктора вектора движения, которая описывается ниже. Режимы, в которых информация движения не кодируется, включают в себя FRUC-режим и т.д. Модуль 126 взаимного прогнозирования выбирает режим для извлечения MV текущего блока из множества режимов и извлекает MV текущего блока с использованием выбранного режима.[0229] Here, MV extraction modes may include normal mutual mode, merging mode, FRUC mode, affine mode, etc., which are described below. Modes in which motion information is encoded include normal reciprocal mode, normal combining mode, affine mode (specifically, affine reciprocal mode and 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 inter-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.

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

[0231] Модуль 126 взаимного прогнозирования может извлекать MV текущего блока в режиме, в котором MV-разность кодируется. В этом случае, например, MV-разность может кодироваться как параметр прогнозирования и может передаваться в служебных сигналах. Другими словами, кодированная MV-разность включается в поток. MV-разность представляет собой разность между MV текущего блока и MV-предиктором. Следует отметить, что MV-предиктор представляет собой предиктор вектора движения.[0231] The inter prediction unit 126 may extract the MV of the current block in a mode in which the MV difference is encoded. In this case, for example, the MV difference may be encoded as a prediction parameter and may be signaled. In other words, the encoded MV difference is included in the stream. The MV difference is the difference between the MV of the current block and the MV predictor. It should be noted that the MV predictor is a motion vector predictor.

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

[0233] Здесь, как описано выше, режимы MV-извлечения включают в себя нормальный взаимный режим, режим нормального объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых MV-разность кодируется, из числа режимов включают в себя нормальный взаимный режим, аффинный режим (в частности, аффинный взаимный режим) и т.д. Режимы, в которых MV-разность не кодируется, включают в себя FRUC-режим, режим нормального объединения, аффинный режим (в частности, аффинный режим объединения) и т.д. Модуль 126 взаимного прогнозирования выбирает режим для извлечения MV текущего блока из множества режимов и извлекает MV текущего блока с использованием выбранного режима.[0233] Here, as described above, MV extraction modes include normal mutual mode, normal pooling mode, FRUC mode, affine mode, etc., which are described below. Modes in which the MV difference is encoded include normal reciprocal mode, affine mode (in particular, affine reciprocal mode), etc. Modes in which the MV difference is not encoded include FRUC mode, normal concatenation mode, affine mode (specifically, affine concatenation mode), etc. The inter-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.

[0234] Режимы извлечения векторов движения [0234] Motion Vector Extraction Modes

Фиг. 38A и 38B являются концептуальными схемами для иллюстрации примерной категоризации режимов для MV-извлечения. Например, как проиллюстрировано на фиг. 38A, режимы MV-извлечения примерно категоризируются на три режима согласно тому, следует или нет кодировать информацию движения, и тому, следует или нет кодировать MV-разности. Три режима представляют собой взаимный режим, режим объединения и режим преобразования с повышением частоты кинокадров (FRUC). Взаимный режим представляет собой режим, в котором оценка движения выполняется, и в котором информация движения и MV-разность кодируются. Например, как проиллюстрировано на фиг. 38B, взаимный режим включает в себя аффинный взаимный режим и нормальный взаимный режим. Режим объединения представляет собой режим, в котором оценка движения не выполняется, и в котором MV выбирается из кодированного окружающего блока, и MV для текущего блока извлекается с использованием MV. Режим объединения представляет собой режим, в котором, по существу, информация движения кодируется, а MV-разность не кодируется. Например, как проиллюстрировано на фиг. 38B, режимы объединения включают в себя режим нормального объединения (также называемый "режимом нормального объединения" или "регулярным режимом объединения"), режим объединения с разностью векторов движения (MMVD), режим комбинированного взаимного объединения и внутреннего прогнозирования (CIIP), треугольный режим, ATMVP-режим и аффинный режим объединения. Здесь, MV-разность кодируется исключительно в MMVD-режиме из режимов, включенных в режимы объединения. Следует отметить, что аффинный режим объединения и аффинный взаимный режим представляют собой режимы, включенные в аффинные режимы. Аффинный режим представляет собой режим для извлечения, в качестве MV текущего блока, MV каждого из множества субблоков, включенных в текущий блок, при условии аффинного преобразования. FRUC-режим представляет собой режим, который служит для извлечения MV текущего блока посредством выполнения оценки между кодированными областями, и в котором не кодируются ни информация движения, ни любая MV-разность. Следует отметить, что ниже подробнее описываются соответствующие режимы.Fig. 38A and 38B are conceptual diagrams for illustrating an exemplary categorization of modes for MV extraction. For example, as illustrated in FIG. 38A, the MV extraction modes are roughly categorized into three modes according to whether or not motion information should be encoded and whether or not MV differences should be encoded. The three modes are reciprocal mode, fusion mode, and frame rate upconversion (FRUC) mode. The reciprocal mode is a mode in which motion estimation is performed and in which motion information and MV difference are encoded. For example, as illustrated in FIG. 38B, the reciprocal mode includes an affine reciprocal mode and a normal reciprocal mode. The merging mode is a mode in which motion estimation is not performed, and in which the MV is selected from the encoded surrounding block, and the MV for the current block is extracted using the MV. The combining mode is a mode in which essentially motion information is encoded and the MV difference is not encoded. For example, as illustrated in FIG. 38B, the combining modes include normal combining mode (also called “normal combining mode” or “regular combining mode”), motion vector difference (MMVD) combining mode, combined inter combining and intra prediction (CIIP) mode, triangle mode, ATMVP mode and affine merging mode. Here, the MV difference is encoded exclusively in the MMVD mode from the modes included in the combining modes. It should be noted that affine union mode and affine reciprocal mode are modes included in affine modes. The affine mode is a mode for retrieving, as the MV of the current block, the MV of each of a plurality of sub-blocks included in the current block, subject to an affine transformation. The FRUC mode is a mode that serves to extract the MV of the current block by performing estimation between encoded regions, and in which neither motion information nor any MV difference is encoded. It should be noted that the corresponding modes are described in more detail below.

[0235] Следует отметить, что категоризация режимов, проиллюстрированных на фиг. 38A и 38B, представляет собой примеры, и категоризация не ограничена этим. Например, когда MV-разность кодируется в CIIP-режиме, CIIP-режим категоризируется на взаимные режимы.[0235] It should be noted that the categorization of modes illustrated in FIG. 38A and 38B are examples, and the categorization is not limited to this. For example, when the MV difference is encoded in the CIIP mode, the CIIP mode is categorized into mutual modes.

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

Нормальный взаимный режим представляет собой режим взаимного прогнозирования для извлечения MV текущего блока на основе блока, аналогичного изображению текущего блока, из области опорных кадров, указываемой посредством возможного MV-варианта. В этом нормальном взаимном режиме, MV-разность кодируется.The normal mutual mode is a mutual 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 reciprocal mode, the MV difference is encoded.

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

[0238] Во-первых, модуль 126 взаимного прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sg_1). Другими словами, модуль 126 взаимного прогнозирования формирует список возможных MV-вариантов.[0238] 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 inter-prediction module 126 generates a list of possible MV options.

[0239] Затем, модуль 126 взаимного прогнозирования извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Sg_1, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенному порядку приоритетов (этап Sg_2). Следует отметить, что порядок приоритетов может определяться заранее для каждого из N возможных MV-вариантов.[0239] Next, the inter-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.

[0240] Затем, модуль 126 взаимного прогнозирования выбирает один возможный вариант предиктора вектора движения из возможных вариантов предикторов векторов движения N, в качестве предиктора вектора движения (также называется "MV-предиктором") текущего блока (этап Sg_3). В это время, модуль 126 взаимного прогнозирования кодирует, в потоке, информацию выбора предиктора вектора движения для идентификации выбранного предиктора вектора движения. Другими словами, модуль 126 взаимного прогнозирования выводит информацию выбора MV-предикторов в качестве параметра прогнозирования в энтропийный кодер 110 через формирователь 130 параметров прогнозирования.[0240] Next, the inter-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 inter-prediction unit 126 encodes, in the stream, motion vector predictor selection information to identify the selected motion vector predictor. In other words, the inter-prediction module 126 outputs the MV predictor selection information as a prediction parameter to the entropy encoder 110 via the prediction parameter generator 130.

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

[0242] В завершение, модуль 126 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Sg_5). Процессы на этапах Sg_1-Sg_5 выполняются для каждого блока. Например, когда процессы на этапах Sg_1-Sg_5 выполняются для всех блоков в срезе, взаимное прогнозирование среза с использованием нормального взаимного режима заканчивается. Например, когда процессы на этапах Sg_1-Sg_5 выполняются для всех блоков в кадре, взаимное прогнозирование кадра с использованием нормального взаимного режима заканчивается. Следует отметить, что не все блоки включены в срез, процессы могут подвергаться на этапах Sg_1-Sg_5, и взаимное прогнозирование среза с использованием нормального взаимного режима может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к процессам на этапах Sg_1-Sg_5. Взаимное прогнозирование кадра с использованием нормального взаимного режима может заканчиваться, когда процессы выполняются для части блоков в кадре.[0242] Finally, the inter 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). Processes in stages Sg_1-Sg_5 are executed for each block. For example, when the processes in steps Sg_1 to Sg_5 are executed for all blocks in the slice, the slice mutual prediction using the normal mutual mode ends. For example, when the processes in steps Sg_1 to Sg_5 are executed for all blocks in a frame, frame mutual prediction using the normal mutual mode ends. It should be noted that not all blocks are included in the slice, processes may be subjected to steps Sg_1-Sg_5, and slice mutual prediction using normal reciprocal mode may end when a portion of the blocks are subject to processes. This also applies to processes in stages Sg_1-Sg_5. Frame reciprocal prediction using normal reciprocal mode may end when processes are running on a portion of the blocks in the frame.

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

[0244] Следует отметить, что список возможных MV-вариантов также может использоваться в качестве списка для использования в другом режиме. Помимо этого, процессы, связанные со списком возможных MV-вариантов, могут применяться к процессам, связанным со списком для использования в другом режиме. Процессы, связанные со списком возможных MV-вариантов, включают в себя, например, извлечение или выбор возможного MV-варианта из списка возможных MV-вариантов, переупорядочение возможных MV-вариантов или удаление возможного MV-варианта.[0244] 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.

[0245] MV-извлечение > режим нормального объединения [0245] MV extract > normal merge mode

Режим нормального объединения представляет собой режим взаимного прогнозирования для выбора возможного MV-варианта из списка возможных MV-вариантов в качестве MV текущего блока, за счет этого извлекая MV. Следует отметить, что режим нормального объединения представляет собой тип режима объединения и может называться просто "режимом объединения". В этом варианте осуществления, режим нормального объединения и режим объединения отличаются, и режим объединения используется в более широком смысле.The normal pooling mode is a cross-prediction mode for selecting a candidate MV from a list of candidate MVs as the MV of the current block, thereby extracting the MV. It should be noted that the normal combining mode is a type of combining mode and may simply be referred to as "combining mode". In this embodiment, the normal combining mode and the combining mode are different, and the combining mode is used in a broader sense.

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

[0247] Во-первых, модуль 126 взаимного прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sh_1). Другими словами, модуль 126 взаимного прогнозирования формирует список возможных MV-вариантов.[0247] 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 inter-prediction module 126 generates a list of possible MV options.

[0248] Затем, модуль 126 взаимного прогнозирования выбирает один возможный MV-вариант из множества возможных MV-вариантов, полученных на этапе Sh_1, за счет этого извлекая MV текущего блока (этап Sh_2). В это время, модуль 126 взаимного прогнозирования кодирует, в потоке, информацию MV-выбора для идентификации выбранного возможного MV-варианта. Другими словами, модуль 126 взаимного прогнозирования выводит информацию MV-выбора в качестве параметра прогнозирования в энтропийный кодер 110 через формирователь 130 параметров прогнозирования.[0248] Next, the inter-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 inter-prediction module 126 encodes, in the stream, MV selection information to identify the selected MV candidate. In other words, the inter-prediction module 126 outputs the MV selection information as a prediction parameter to the entropy encoder 110 via the prediction parameter generator 130 .

[0249] В завершение, модуль 126 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Sh_3). Процессы на этапах Sh_1-Sh_3 выполняются, например, для каждого блока. Например, когда процессы на этапах Sh_1-Sh_3 выполняются для всех блоков в срезе, взаимное прогнозирование среза с использованием режима нормального объединения заканчивается. Помимо этого, когда процессы на этапах Sh_1-Sh_3 выполняются для всех блоков в кадре, взаимное прогнозирование кадра с использованием режима нормального объединения заканчивается. Следует отметить, что не все блоки, включенные в срез, могут подвергаться процессам на этапах Sh_1-Sh_3, и взаимное прогнозирование среза с использованием режима нормального объединения может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к процессам на этапах Sh_1-Sh_3. Взаимное прогнозирование кадра с использованием режима нормального объединения может заканчиваться, когда процессы выполняются для части блоков в кадре.[0249] Finally, the inter 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). The processes in stages Sh_1-Sh_3 are performed, for example, for each block. For example, when the processes in steps Sh_1-Sh_3 are executed for all blocks in the slice, the cross-prediction of the slice using the normal pooling mode ends. In addition, when the processes in steps Sh_1 to Sh_3 are executed for all blocks in a frame, frame mutual prediction using the normal combining mode ends. It should be noted that not all blocks included in the slice may be subject to processes in steps Sh_1-Sh_3, and cross-prediction of the slice using the normal pooling mode may end when a portion of the blocks are subject to processes. This also applies to processes in stages Sh_1-Sh_3. Mutual frame prediction using normal merging mode may end when processes are running on a portion of the blocks in the frame.

[0250] Помимо этого, информация, указывающая режим взаимного прогнозирования (режим нормального объединения в вышеприведенном примере), используемый для того, чтобы формировать прогнозное изображение, и включенная в кодированный сигнал, например, кодируется в качестве параметра прогнозирования в потоке.[0250] In addition, information indicating the inter-prediction mode (normal 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 in the stream.

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

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

[0253] Затем, модуль 126 взаимного прогнозирования выбирает один возможный MV-вариант из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов, и определяет возможный MV-вариант в качестве MV текущего блока.[0253] Next, the inter-prediction unit 126 selects one MV candidate from the plurality of MV candidates registered in the MV candidate list, and determines the MV candidate as the MV of the current block.

[0254] Кроме того, энтропийный кодер 110 записывает и кодирует, в потоке, merge_idx, который представляет собой сигнал, указывающий то, какой возможный MV-вариант выбран.[0254] In addition, entropy encoder 110 records and encodes, on stream, merge_idx, which is a signal indicating which MV candidate is selected.

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

[0256] Конечный MV может определяться посредством выполнения динамического обновления векторов движения (DMVR), которое описывается ниже, с использованием MV текущего блока, извлекаемого посредством режима нормального объединения. Следует отметить, что в режиме нормального объединения, информация движения кодируется, а MV-разность не кодируется. В MMVD-режиме, один возможный MV-вариант выбирается из списка возможных MV-вариантов, как и в случае режима нормального объединения, MV-разность кодируется. Как проиллюстрировано на фиг. 38B, MMVD может категоризироваться на режимы объединения вместе с режимом нормального объединения. Следует отметить, что MV-разность в MMVD-режиме не всегда должна быть идентичной MV-разности для использования во взаимном режиме. Например, извлечение MV-разностей в MMVD-режиме может представлять собой процесс, который требует меньшего объема обработки, чем объем обработки, требуемый для извлечения MV-разностей во взаимном режиме.[0256] The final MV may be determined by performing dynamic motion vector updating (DMVR), which is described below, using the MV of the current block extracted through the normal merging mode. It should be noted that in the normal combining mode, motion information is encoded, but the MV difference is not encoded. In MMVD mode, one possible MV variant is selected from a list of possible MV variants, as in the case of normal combining mode, the MV difference is encoded. As illustrated in FIG. 38B, MMVD can be categorized into combining modes along with a normal combining mode. It should be noted that the MV difference in MMVD mode does not always have to be identical to the MV difference for use in reciprocal mode. For example, retrieving MV differences in MMVD mode may be a process that requires less processing than the amount of processing required for retrieving MV differences in reciprocal mode.

[0257] Помимо этого, режим комбинированного взаимного объединения и внутреннего прогнозирования (CIIP) может выполняться. Режим служит для перекрытия прогнозного изображения, сформированного при взаимном прогнозировании, и прогнозного изображения, сформированного при внутреннем прогнозировании, чтобы формировать прогнозное изображение для текущего блока.[0257] In addition, a combined inter-combining and intra-prediction (CIIP) mode may be performed. The mode serves to overlap the prediction image generated by inter-prediction and the prediction image generated by intra-prediction to generate a prediction image for the current block.

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

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

Фиг. 42 является концептуальной схемой для иллюстрации одного примера процесса MV-извлечения для текущего кадра с использованием HMVP-режима объединения.Fig. 42 is a conceptual diagram for illustrating one example of an MV extraction process for a current frame using the HMVP combining mode.

[0260] В режиме нормального объединения, MV, например, для CU, которая представляет собой текущий блок, определяется посредством выбора одного возможного MV-варианта из MV-списка, сформированного посредством обращения к кодированному блоку (например, CU). Здесь, другой возможный MV-вариант может регистрироваться в списке возможных MV-вариантов. Режим, в котором регистрируется такой другой возможный MV-вариант, называется "HMVP-режимом".[0260] In normal combining mode, the MV for, for example, a CU that represents the current block is determined by selecting one candidate MV from an MV list generated by referring to a coded block (eg, the CU). Here, another possible MV option may be registered in the list of possible MV options. The mode in which such other possible MV variant is registered is called "HMVP mode".

[0261] В HMVP-режиме, возможные MV-варианты управляются с использованием сервера на основе принципа "первый на входе - первый на выходе" (FIFO) для HMVP, отдельно от списка возможных MV-вариантов для режима нормального объединения.[0261] In HMVP mode, MV candidates are managed using a first-in, first-out (FIFO) server for HMVP, separate from the list of MV candidates for normal aggregation mode.

[0262] В FIFO-буфере, информация движения, такая как MV блоков, обработанных ранее, сохраняются "самые новые первыми". При управлении FIFO-буфером, каждый раз, когда один блок обрабатывается, MV для самого нового блока (который представляет собой CU, обработанную непосредственно перед этим) сохраняется в FIFO-буфере, и MV самой старой CU (т.е. CU, обработанной раньше всего), удаляется из FIFO-буфера. В примере, проиллюстрированном на фиг. 42, HMVP1 представляет собой MV для самого нового блока, и HMVP5 представляет собой MV для самого старого MV.[0262] In the FIFO buffer, motion information such as MV of blocks processed previously is stored "newest first". When managing the FIFO buffer, each time one block is processed, the MV for the newest block (which is the CU processed immediately before) is stored in the FIFO buffer, and the MV of the oldest CU (i.e. the CU processed earlier) total) is removed from the FIFO buffer. In the example illustrated in FIG. 42, HMVP1 is the MV for the newest block, and HMVP5 is the MV for the oldest MV.

[0263] Модуль 126 взаимного прогнозирования затем, например, проверяет то, представляет собой каждый MV, управляемый в FIFO-буфере, или нет MV, отличающийся от всех возможных MV-вариантов, которые уже зарегистрированы в списке возможных MV-вариантов, для режима нормального объединения, начинающегося с HMVP1. При определении того, что MV отличается от всех возможных MV-вариантов, модуль 126 взаимного прогнозирования может добавлять MV, управляемый в FIFO-буфере, в список возможных MV-вариантов для режима нормального объединения, в качестве возможного MV-варианта. В это время, один или более возможных MV-вариантов в FIFO-буфере могут регистрироваться (добавляться в список возможных MV-вариантов).[0263] The inter-prediction module 126 then, for example, checks whether each MV managed in the FIFO buffer is or is not an MV different from all possible MVs that are already registered in the list of possible MVs for the normal mode. association starting with HMVP1. When determining that the MV is different from all possible MV cases, the inter-prediction module 126 may add the MV managed in the FIFO buffer to the list of possible MV cases for the normal merge mode as a possible MV case. At this time, one or more MV candidates in the FIFO buffer may be registered (added to the list of MV candidates).

[0264] Посредством использования HMVP-режима таким образом, можно добавлять не только MV блока, который граничит с текущим блоком пространственно или временно, но также и MV для блока, обработанного ранее. Как результат, варьирование возможных MV-вариантов для режима нормального объединения расширяется, что увеличивает вероятность того, что эффективность кодирования может повышаться.[0264] By using the HMVP mode in this manner, it is possible to add not only the MV of a block that is spatially or temporally adjacent to the current block, but also the MV for a block that was processed previously. As a result, the variety of possible MV options for the normal combining mode is expanded, which increases the possibility that coding efficiency can be improved.

[0265] Следует отметить, что MV может представлять собой информацию движения. Другими словами, информация, сохраненная в списке возможных MV-вариантов и FIFO-буфере, может включать в себя не только MV-значения, но также и информацию опорных кадров, опорные направления, числа кадров и т.д. Помимо этого, блок, например, может представлять собой CU.[0265] It should be noted that the MV may be motion information. In other words, the information stored in the MV candidate list and the FIFO buffer may include not only the MV values, but also information about reference frames, reference directions, frame numbers, etc. In addition, the block may, for example, be a CU.

[0266] Следует отметить, что список возможных MV-вариантов и FIFO-буфер, проиллюстрированные на фиг. 42, представляют собой примеры. Список возможных MV-вариантов и FIFO-буфер могут отличаться по размеру от списка возможных MV-вариантов и FIFO-буфера на фиг. 42 или могут быть выполнены с возможностью регистрировать возможные MV-варианты в порядке, отличающемся от порядка на фиг. 42. Помимо этого, процесс, описанный здесь, может быть общим между кодером 100 и декодером 200.[0266] It should be noted that the MV candidate list and FIFO buffer illustrated in FIG. 42 are examples. The MV candidate list and FIFO buffer may be different in size from the MV candidate list and FIFO buffer in FIG. 42 or may be configured to register possible MV options in an order different from that in FIG. 42. In addition, the process described herein may be shared between encoder 100 and decoder 200.

[0267] Следует отметить, что HMVP-режим может применяться для режимов, отличных от режима нормального объединения. Например, также возможно то, что информация движения, такая как MV блоков, обработанных в аффинном режиме ранее, может сохраняться "самые новые сначала" и может использоваться в качестве возможных MV-вариантов, которые могут способствовать лучшей эффективности. Режим, полученный посредством применения HMVP-режима к аффинному режиму, может называться "аффинным режимом на основе предыстории".[0267] It should be noted that the HMVP mode can be used for modes other than the normal combining mode. For example, it is also possible that motion information, such as MVs of blocks processed in affine mode previously, can be stored “newest first” and can be used as candidate MVs that can contribute to better performance. The mode obtained by applying the HMVP mode to the affine mode may be called a "history-based affine mode".

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

Информация движения может извлекаться на стороне декодера без передачи в служебных сигналах из стороны кодера. Например, информация движения может извлекаться посредством выполнения оценки движения на стороне декодера 200. В варианте осуществления, на стороне декодера, оценка движения выполняется без использования пиксельных значений в текущем блоке. Режимы для выполнения оценки движения на стороне декодера 200 вообще без использования пиксельного значения в текущем блоке включают в себя режим преобразования с повышением частоты кинокадров (FRUC), режим извлечения векторов движения на основе сопоставления с шаблоном (PMMVD) и т.д.Motion information can be extracted at the decoder side without being signaled from the encoder side. For example, motion information may be extracted by performing motion estimation on the decoder 200 side. In an embodiment, on the decoder side, motion estimation is performed without using pixel values in the current block. Modes for performing motion estimation on the decoder 200 side without using the pixel value in the current block at all include Frame Rate Upconversion (FRUC) mode, Pattern Matching Based Motion Vector Extraction (PMMVD) mode, etc.

[0269] Один пример FRUC-процесса в форме блок-схемы последовательности операций способа проиллюстрирован на фиг. 43. Во-первых, список, который указывает, в качестве возможных MV-вариантов, MV для кодированных блоков, каждый из которых граничит с текущим блоком пространственно или временно посредством обращения к MV (список может представлять собой список возможных MV-вариантов и также использоваться в качестве списка возможных MV-вариантов для режима нормального объединения) (этап Si_1).[0269] One example of a FRUC process in flowchart form is illustrated in FIG. 43. First, a list that specifies, as possible MV options, MVs for encoded blocks, each of which is adjacent to the current block spatially or temporally by referring to the MV (the list may be a list of possible MV options and can also be used as a list of possible MV options for the normal combining mode) (step Si_1).

[0270] Затем, наилучший возможный MV-вариант выбирается из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов (этап Si_2). Например, значения оценки соответствующих возможных MV-вариантов, включенных в список возможных MV-вариантов, вычисляются, и один возможный MV-вариант выбирается на основе значений оценки. На основе выбранных возможных вариантов векторов движения, вектор движения для текущего блока затем извлекается (этап Si_4). Более конкретно, например, выбранный возможный вариант вектора движения (наилучший возможный MV-вариант) извлекается непосредственно в качестве вектора движения для текущего блока. Помимо этого, например, вектор движения для текущего блока может извлекаться с использованием сопоставления с шаблоном в окружающей области позиции в опорном кадре, при этом позиция в опорном кадре соответствует выбранному возможному варианту вектора движения. Другими словами, оценка с использованием сопоставления с шаблоном и значений оценки может выполняться в окружающей области наилучшего возможного MV-варианта, и когда имеется MV, который дает в результате лучшее значение оценки, наилучший возможный MV-вариант может обновляться на MV, который дает в результате лучшее значение оценки, и обновленный MV может определяться в качестве конечного MV для текущего блока. В некоторых вариантах осуществления, обновление вектора движения, который дает в результате лучшее значение оценки, может не выполняться.[0270] Next, the best possible MV option is selected from the plurality 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. In some embodiments, updating the motion vector that results in a better estimate value may not be performed.

[0271] В завершение, модуль 126 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Si_5). Процессы на этапах Si_1-Si_5 выполняются, например, для каждого блока. Например, когда процессы на этапах Si_1-Si_5 выполняются для всех блоков в срезе, взаимное прогнозирование среза с использованием FRUC-режима заканчивается. Например, когда процессы на этапах Si_1-Si_5 выполняются для всех блоков в кадре, взаимное прогнозирование кадра с использованием FRUC-режима заканчивается. Следует отметить, что не все блоки, включенные в срез, могут подвергаться процессам на этапах Si_1-Si_5, и взаимное прогнозирование среза с использованием FRUC-режима может заканчиваться, когда часть блоков подвергается процессам. Когда процессы на этапах Si_1-Si_5 выполняются для части блоков, включенных в кадр аналогичным образом, взаимное прогнозирование кадра с использованием FRUC-режима может заканчиваться.[0271] Finally, the inter 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). Processes in stages Si_1-Si_5 are performed, for example, for each block. For example, when the processes in steps Si_1-Si_5 are executed for all blocks in the slice, the cross-prediction of the slice using FRUC mode ends. For example, when the processes in steps Si_1-Si_5 are executed for all blocks in a frame, frame inter-prediction using FRUC mode ends. It should be noted that not all blocks included in the slice may be subject to processes in steps Si_1-Si_5, and cross-prediction of the slice using FRUC mode may end when a portion of the blocks are subject to processes. When the processes in steps Si_1-Si_5 are executed for a portion of the blocks included in the frame in a similar manner, mutual frame prediction using the FRUC mode may end.

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

[0273] Значения оценки могут вычисляться согласно различным видам способов. Например, сравнение проводится между восстановленным изображением в области в опорном кадре, соответствующей вектору движения, и восстановленным изображением в определенной области (область, например, может представлять собой область в другом опорном кадре или область в соседнем блоке текущего кадра, как указано ниже). Определенная область может быть предварительно определена.[0273] 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.

[0274] Разность между пиксельными значениями двух восстановленных изображений может использоваться для значения оценки векторов движения. Следует отметить, что значение оценки может вычисляться с использованием информации, отличной от значения разности.[0274] 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.

[0275] Далее подробно описывается пример сопоставления с шаблоном. Во-первых, один возможный MV-вариант, включенный в список возможных MV-вариантов (например, список объединения), выбирается в качестве начальной точки оценки посредством сопоставления с шаблоном. Например, в качестве сопоставления с шаблоном, может использоваться первое сопоставление с шаблоном или второе сопоставление с шаблоном. Первое сопоставление с шаблоном и второе сопоставление с шаблоном могут называться "билатеральным сопоставлением" и "сопоставлением с эталоном", соответственно.[0275] 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 template matching and the second template matching may be referred to as "bilateral matching" and "template matching", respectively.

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

При первом сопоставлении с шаблоном, сопоставление с шаблоном выполняется между двумя блоками, которые расположены вдоль траектории движения текущего блока и включаются в два различных опорных кадра. Соответственно, при первом сопоставлении с шаблоном, область в другом опорном кадре вдоль траектории движения текущего блока используется в качестве определенной области для вычисления значения оценки вышеописанного возможного варианта. Определенная область может быть предварительно определена.During the first pattern matching, pattern matching is performed between two blocks that are located along the current block's motion path and are included in two different 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.

[0277] Фиг. 44 является концептуальной схемой для иллюстрации одного примера первого сопоставления с шаблоном (билатерального сопоставления) между двумя блоками в двух опорных кадрах вдоль траектории движения. Как проиллюстрировано на фиг. 44, при первом сопоставлении с шаблоном, два вектора (MV0, MV1) движения извлекаются посредством оценки пары, которая имеет наилучшее совпадение, из числа пар в двух блоках, включенных в два различных опорных кадра (Ref0, Ref1) и расположенных вдоль траектории движения текущего блока (Cur block). Более конкретно, разность между восстановленным изображением в указанном местоположении в первом кодированном опорном кадре (Ref0), указываемом посредством возможного MV-варианта, и восстановленным изображением в указанном местоположении во втором кодированном опорном кадре (Ref1), указываемом посредством симметричного MV, полученная посредством масштабирования возможного MV-варианта во временном интервале отображения, извлекается для текущего блока, и значение оценки вычисляется с использованием значения полученной разности. Можно выбирать, в качестве конечного MV, возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов и который с большой вероятностью должен приводить к хорошим результатам.[0277] FIG. 44 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. 44, 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 included in two different reference frames (Ref 0 , Ref 1 ) and located 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.

[0278] При допущении относительно траектории непрерывного движения, векторы (MV0, MV1) движения, указывающие два опорных блока, являются пропорциональными временным расстояниям (TD0, TD1) между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). Например, когда текущий кадр временно находится между двумя опорными кадрами, и временные расстояния от текущего кадра до соответствующих двух опорных кадров равны друг другу, зеркально-симметричные двунаправленные векторы движения извлекаются при первом сопоставлении с шаблоном.[0278] 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.

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

При втором сопоставлении с шаблоном (сопоставлении с эталоном), сопоставление с шаблоном выполняется между блоком в опорном кадре и эталоном в текущем кадре (эталон представляет собой блок, соседний с текущим блоком в текущем кадре (соседний блок, например, представляет собой верхний и/или левый соседний блок(и))). Следовательно, при втором сопоставлении с шаблоном, блок, соседний с текущим блоком в текущем кадре, используется в качестве предварительно определенной области для вышеописанного вычисления значения оценки возможного MV-варианта.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 MV candidate evaluation value.

[0280] Фиг. 45 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре. Как проиллюстрировано на фиг. 45, при втором сопоставлении с шаблоном, вектор движения текущего блока (Cur block) извлекается посредством оценки, в опорном кадре (Ref0), блока, который имеет наилучшее совпадение с блоком, соседним с текущим блоком в текущем кадре (Cur Pic). Более конкретно, разность между восстановленным изображением в кодированной области, которая граничит как слева, так и выше либо или слева, или выше, и восстановленным изображением, которое находится в соответствующей области в кодированном опорном кадре (Ref0) и указывается посредством возможного MV-варианта, извлекается, и значение оценки вычисляется с использованием значения полученной разности. Возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов, может выбираться в качестве наилучшего возможного MV-варианта.[0280] FIG. 45 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. 45, 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, the difference between a reconstructed image in a coded region that borders both left and above or either left or above, and a reconstructed image that is in a corresponding region in a coded reference frame (Ref0) and is indicated by an MV candidate, is extracted and the score value is calculated using the resulting difference value. The MV candidate that results in the best score value from the plurality of possible MV candidates may be selected as the best possible MV candidate.

[0281] Эта информация, указывающая то, следует или нет применять FRUC-режим (называется, например, "FRUC-флагом"), может передаваться в служебных сигналах на уровне CU. Помимо этого, когда FRUC-режим применяется (например, когда FRUC-флаг является истинным), информация, указывающая применимый способ сопоставления с шаблоном (например, первое сопоставление с шаблоном или второе сопоставление с шаблоном), может передаваться в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне среза, уровне плитки, уровне CTU или уровне субблока).[0281] 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 (eg, 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 have 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).

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

Аффинный режим представляет собой режим для формирования MV с использованием аффинного преобразования. Например, MV может извлекаться в единицах субблоков на основе векторов движения множества соседних блоков. Этот режим также называется "аффинным режимом прогнозирования с компенсацией движения".Affine mode is a mode for generating MVs using an affine transformation. For example, the MV may be extracted in units of sub-blocks based on the motion vectors of multiple neighboring blocks. This mode is also called "motion compensated affine prediction mode".

[0283] Фиг. 46A является концептуальной схемой для иллюстрации одного примера MV-извлечения в единицах субблоков на основе векторов движения множества соседних блоков. На фиг. 46A текущий блок включает в себя, например, шестнадцать субблоков 4×4. Здесь, вектор V0 движения в верхней левой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока, и аналогично, вектор V1 движения в верхней правой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего субблока. Два вектора v0 и v1 движения могут проецироваться согласно выражению (1A), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.[0283] FIG. 46A is a conceptual diagram for illustrating one example of MV extraction in units of sub-blocks based on motion vectors of multiple neighboring blocks. In fig. 46A, the current block includes, for example, 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.

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

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

[0286] Эта информация, указывающая аффинный режим (например, называется "аффинным флагом"), может передаваться в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей аффинный режим, не обязательно должна выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне среза, уровне плитки, уровне CTU или уровне субблока).[0286] This information indicating the affine mode (eg, called an "affine flag") may be signaled at the CU level. It should be noted that the signaling of 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).

[0287] Помимо этого, аффинный режим может включать в себя несколько режимов для различных способов для извлечения векторов движения в верхней левой и верхней правой угловых управляющих точках. Например, аффинный режим включает в себя два режима, которые представляют собой аффинный взаимный режим (также называется "аффинным нормальным взаимным режимом") и аффинный режим объединения.[0287] 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 reciprocal mode (also called the "affine normal reciprocal mode") and the affine union mode.

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

Фиг. 46B является концептуальной схемой для иллюстрации одного примера MV-извлечения в единицах субблоков в аффинном режиме, в котором используются три управляющих точки. На фиг. 46B, текущий блок включает в себя, например, шестнадцать блоков 4×4. Здесь, вектор v0 движения в верхней левой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока. Здесь, вектор V1 движения в верхней правой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока, и аналогично, вектор V2 движения в нижней левой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока. Три вектора v0, v1 и v2 движения могут проецироваться согласно выражению (1B), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.Fig. 46B is a conceptual diagram for illustrating one example of MV extraction in subblock units in affine mode, in which three control points are used. In fig. 46B, the current block includes, for example, sixteen 4×4 blocks. Here, the motion vector v 0 at the top left corner control point in the current block is extracted based on the motion vector of the adjacent block. Here, 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 block, and similarly, the motion vector V 2 at the lower 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.

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

[0290] Здесь, x и y указывает горизонтальную позицию и вертикальную позицию субблока, соответственно, и w и h может могут весовыми коэффициентами, которые могут составлять предварительно определенные весовые коэффициенты. В варианте осуществления, w может указывать ширину текущего блока, и h может указывать высоту текущего блока.[0290] Here, x and y indicate the horizontal position and vertical position of the sub-block, respectively, and w and h may be weights that may constitute predetermined weights. In an embodiment, w may indicate the width of the current block, and h may indicate the height of the current block.

[0291] Аффинные режимы, в которых используются различные числа управляющих точек (например, две и три управляющих точки), могут переключаться и передаваться в служебных сигналах на уровне CU. Следует отметить, что информация, указывающая число управляющих точек в аффинном режиме, используемом на уровне CU, может передаваться в служебных сигналах на другом уровне (например, на уровне последовательности, уровне кадра, уровне среза, уровне плитки, уровне CTU или уровне субблока).[0291] 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).

[0292] Помимо этого, такой аффинный режим, в котором используются три управляющих точки, может включать в себя различные способы для извлечения векторов движения в верхней левой, верхней правой и нижней левой угловых управляющих точках. Например, аффинные режимы, в которых используются три управляющих точки, могут включать в себя два режима, которые представляют собой аффинный взаимный режим и аффинный режим объединения, как и в случае аффинных режимов, в которых используются две управляющих точки.[0292] 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 that use three control points may include two modes that are an affine mutual mode and an affine union mode, as is the case for affine modes that use two control points.

[0293] Следует отметить, что, в аффинных режимах, размер каждого субблока, включенного в текущий блок, может не быть ограничен 4×4 пикселов и может представлять собой другой размер. Например, размер каждого субблока может составлять 8×8 пикселов.[0293] It should be noted that, in affine modes, the size of each sub-block included in the current block may not be limited to 4x4 pixels and may be a different size. For example, the size of each sub-block may be 8x8 pixels.

[0294] MV-извлечение > аффинный режим > управляющая точка [0294] MV Extract > Affine Mode > Control Point

Фиг. 47A, фиг. 47B и фиг. 47C является концептуальными схемами для иллюстрации примеров MV-извлечения в управляющих точках в аффинном режиме.Fig. 47A, fig. 47B and FIG. 47C are conceptual diagrams for illustrating examples of MV extraction at control points in affine mode.

[0295] Как проиллюстрировано на фиг. 47A, в аффинном режиме, например, предикторы векторов движения в соответствующих управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих блокам, кодированным согласно аффинному режиму, из кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого), которые являются соседними с текущим блоком. Более конкретно, кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) проверяются в перечисленном порядке, и первый эффективный блок, кодированный согласно аффинному режиму, идентифицируется. Предикторы векторов движения в управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих идентифицированному блоку.[0295] As illustrated in FIG. 47A, in the affine 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.

[0296] Например, как проиллюстрировано на фиг. 47B, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения.[0296] For example, as illustrated in FIG. 47B, 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 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 are then calculated from the extracted motion vectors v 3 and v 4 .

[0297] Например, как проиллюстрировано на фиг. 47C, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции, верхней правой угловой позиции и нижней левой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.[0297] For example, as illustrated in FIG. 47C, 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 top left corner position, top right corner position and bottom the left corner position of the coded block including block A is retrieved. 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 are then calculated from the extracted vectors v 3 , v 4 , and v 5 movements.

[0298] Способы MV-извлечения, проиллюстрированные на фиг. 47A-47C, могут использоваться при MV-извлечении в каждой управляющей точке для текущего блока на этапе Sk_1, проиллюстрированном на фиг. 50, или могут использоваться для извлечения MV-предиктора в каждой управляющей точке для текущего блока на этапе Sj_1, проиллюстрированном на фиг. 51, описанном ниже.[0298] The MV extraction methods illustrated in FIG. 47A-47C may be used in MV extraction at each control point for the current block in step Sk_1 illustrated in FIG. 50, or may be used to extract an MV predictor at each control point for the current block in step Sj_1 illustrated in FIG. 51 described below.

[0299] Фиг. 48A и 48B являются концептуальными схемами для иллюстрации примеров MV-извлечения в управляющих точках в аффинном режиме.[0299] FIG. 48A and 48B are conceptual diagrams for illustrating examples of MV extraction at control points in affine mode.

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

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

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

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

[0304] Следует отметить, что способы MV-извлечения, проиллюстрированные на фиг. 48A и 48B, могут использоваться при MV-извлечении в каждой управляющей точке для текущего блока на этапе Sk_1, проиллюстрированном на фиг. 50, описанном ниже, или может использоваться для извлечения MV-предиктора в каждой управляющей точке для текущего блока на этапе Sj_1, проиллюстрированном на фиг. 51, описанном ниже.[0304] It should be noted that the MV extraction methods illustrated in FIGS. 48A and 48B may be used in MV extraction at each control point for the current block in step Sk_1 illustrated in FIG. 50 described below, or may be used to extract the MV predictor at each control point for the current block in step Sj_1 illustrated in FIG. 51 described below.

[0305] Здесь, когда аффинные режимы, в которых используются различные числа управляющих точек (например, две и три управляющих точки), могут переключаться и передаваться в служебных сигналах на уровне CU, число управляющих точек для кодированного блока и число управляющих точек для текущего блока могут отличаться друг от друга.[0305] Here, when affine modes that use different numbers of control points (eg, two and three control points) can be switched and signaled at the CU level, the number of control points for the coded block and the number of control points for the current block may differ from each other.

[0306] Фиг. 49A и 49B являются концептуальными схемами для иллюстрации примеров способа для MV-извлечения в управляющих точках, когда число управляющих точек для кодированного блока и число управляющих точек для текущего блока отличаются друг от друга.[0306] FIG. 49A and 49B are conceptual diagrams for illustrating examples of a method for MV extraction at control points when the number of control points for a coded block and the number of control points for a current block are different from each other.

[0307] Например, как проиллюстрировано на фиг. 49A, текущий блок имеет три управляющих точки в верхнем левом углу, верхнем правом углу и левом нижнем углу, и блок A, который граничит слева относительно текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки. В этом случае, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции в кодированном блоке, включающем в себя блок A, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке и вектор v1 движения в верхней правой угловой управляющей точке для текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения. Кроме того, вектор v2 движения в нижней левой угловой управляющей точке вычисляется из извлеченных векторов v0 и v1 движения.[0307] For example, as illustrated in FIG. 49A, the current block has three control points at the upper left corner, the upper right corner and the lower left corner, and block A, which is adjacent to the left of the current block, is encoded according to an affine mode in which two control points are used. In this case, the motion vectors v 3 and v 4 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 v 0 at the top left corner control point and the motion vector v 1 at the top right corner control point for the current block are then calculated from the extracted motion vectors v 3 and v 4 . In addition, the motion vector v 2 at the lower left corner control point is calculated from the extracted motion vectors v 0 and v 1 .

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

[0309] Следует отметить, что способы MV-извлечения, проиллюстрированные на фиг. 49A и 49B, могут использоваться при MV-извлечении в каждой управляющей точке для текущего блока на этапе Sk_1, проиллюстрированном на фиг. 50, описанном ниже, или может использоваться для извлечения MV-предиктора в каждой управляющей точке для текущего блока на этапе Sj_1, проиллюстрированном на фиг. 51, описанном ниже.[0309] It should be noted that the MV extraction methods illustrated in FIGS. 49A and 49B may be used in MV extraction at each control point for the current block in step Sk_1 illustrated in FIG. 50 described below, or may be used to extract the MV predictor at each control point for the current block in step Sj_1 illustrated in FIG. 51 described below.

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

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

[0311] В аффинном режиме объединения, как проиллюстрировано, сначала, модуль 126 взаимного прогнозирования извлекает MV в соответствующих управляющих точках для текущего блока (этап Sk_1). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 46A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 46B. Модуль 126 взаимного прогнозирования может кодировать информацию MV-выбора для идентификации двух или трех извлеченных MV в потоке.[0311] In the affine combining mode, as illustrated first, the inter-prediction module 126 extracts MVs at the corresponding control points for 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. 46A, 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. 46B. The inter-prediction module 126 may encode MV selection information to identify two or three extracted MVs in a stream.

[0312] Например, когда способы MV-извлечения, проиллюстрированные на фиг. 47A-47C, используются, как проиллюстрировано на фиг. 47A, модуль 126 взаимного прогнозирования проверяет кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) в перечисленном порядке и идентифицирует первый эффективный блок, кодированный согласно аффинному режиму.[0312] For example, when the MV extraction methods illustrated in FIG. 47A-47C are used as illustrated in FIGS. 47A, the inter-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.

[0313] Модуль 126 взаимного прогнозирования извлекает MV в управляющей точке с использованием идентифицированного первого эффективного блока, кодированного согласно идентифицированному аффинному режиму. Например, когда блок A идентифицируется, и блок A имеет две управляющих точки, как проиллюстрировано на фиг. 47B, модуль 126 взаимного прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока из векторов v3 и v4 движения в верхнем левом углу кодированного блока, включающего в себя блок A, и в верхнем правом углу кодированного блока. Например, модуль 126 взаимного прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока посредством проецирования векторов v3 и v4 движения в верхнем левом углу и в верхнем правом углу кодированного блока на текущий блок.[0313] Inter prediction module 126 extracts the MV at the control point using the identified first effective block encoded according to the identified affine mode. For example, when block A is identified and block A has two control points, as illustrated in FIG. 47B, the mutual prediction unit 126 calculates a motion vector v 0 at the upper left corner control point of the current block and a motion vector v 1 at the upper right corner control point of the current block from the motion vectors v 3 and v 4 at the upper left corner of the coded block including block A, and in the upper right corner of the coded block. For example, the mutual 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 into the top left corner and the top right corner coded block to the current block.

[0314] Альтернативно, когда блок A идентифицируется, и блок A имеет три управляющих точки, как проиллюстрировано на фиг. 47C, модуль 126 взаимного прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока из векторов v3, v4 и v5 движения в верхнем левом углу кодированного блока, включающего в себя блок A, в верхнем правому углу кодированного блока и в левом нижнем углу кодированного блока. Например, модуль 126 взаимного прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока посредством проецирования векторов v3, v4 и v5 движения в верхнем левом углу, верхнем правом углу и левом нижнем угле кодированного блока на текущий блок.[0314] Alternatively, when block A is identified and block A has three control points, as illustrated in FIG. 47C, the mutual prediction unit 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 of the coded block including block A, in the upper right corner of the coded block and in the lower left corner of the coded block. For example, the mutual 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 by projecting the vectors v 3 , v 4 and v 5 moves in the top left corner, top right corner and bottom left corner of the coded block onto the current block.

[0315] Следует отметить, что, как проиллюстрировано на фиг. 49A, описанном выше, MV в трех управляющих точках могут вычисляться, когда блок A идентифицируется, и блок A имеет две управляющих точки, и что, как проиллюстрировано на фиг. 49B, описанном выше, MV в двух управляющих точках могут вычисляться, когда блок A идентифицируется, и блок A имеет три управляющих точки.[0315] It should be noted that, as illustrated in FIG. 49A described above, MVs at three control points can be calculated when block A is identified and block A has two control points, and that, as illustrated in FIG. 49B described above, MVs at two control points can be calculated when block A is identified and block A has three control points.

[0316] Затем, модуль 126 взаимного прогнозирования выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 126 взаимного прогнозирования вычисляет MV для каждого из множества субблоков в качестве аффинного MV, например, с использованием двух векторов v0 и v1 движения и вышеуказанного выражения (1A) или трех векторов v0, v1 и v2 движения и вышеуказанного выражения (1B) (этап Sk_2). Модуль 126 взаимного прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных кадров (этап Sk_3). Когда процессы на этапах Sk_2 и Sk_3 выполняются для каждого из всех субблоков, включенных в текущий блок, процесс для формирования прогнозного изображения с использованием аффинного режима объединения для текущего блока заканчивается. Другими словами, компенсация движения текущего блока выполняется для того, чтобы формировать прогнозное изображение текущего блока.[0316] 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 inter-prediction unit 126 calculates an MV for each of a plurality of sub-blocks as an affine MV, for example, using two motion vectors v 0 and v 1 and the above expression (1A) or three motion vectors v 0 , v 1 and v 2 and the above expression (1B) (step 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). When the processes in steps Sk_2 and Sk_3 are executed for each of all sub-blocks included in the current block, the process for generating a prediction image using the affine fusion mode for the current block ends. In other words, motion compensation of the current block is performed in order to generate a predictive image of the current block.

[0317] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sk_1. Список возможных MV-вариантов, например, может представлять собой список, включающий в себя возможные MV-варианты, извлекаемые с использованием множества способов MV-извлечения для каждой управляющей точки. Множество способов MV-извлечения, например, могут представлять собой любую комбинацию способов MV-извлечения, проиллюстрированных на фиг. 47A-47C, способов MV-извлечения, проиллюстрированных на фиг. 48A и 48B, способов MV-извлечения, проиллюстрированных на фиг. 49A и 49B, и других способов MV-извлечения.[0317] It should be noted that the above-described list of possible MV options can be generated at step Sk_1. The MV candidate list, for example, may be a list including MV candidate candidates extracted using a plurality of MV extraction methods for each control point. The plurality of MV extraction methods, for example, may be any combination of the MV extraction methods illustrated in FIG. 47A-47C, the MV extraction methods illustrated in FIGS. 48A and 48B, the MV extraction methods illustrated in FIGS. 49A and 49B, and other MV extraction methods.

[0318] Следует отметить, что списки возможных MV-вариантов могут включать в себя возможные MV-варианты в режиме, в котором прогнозирование выполняется в единицах субблоков, отличном от аффинного режима.[0318] It should be noted that the MV candidate lists may include MV candidate candidates in a mode in which prediction is performed in subblock units other than the affine mode.

[0319] Следует отметить, что, например, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются две управляющих точки, и в аффинном режиме объединения, в котором используются три управляющих точки, может формироваться в качестве списка возможных MV-вариантов. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются две управляющих точки, и список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются три управляющих точки, могут формироваться отдельно. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в одном из аффинного режима объединения, в котором используются две управляющих точки, и аффинного режима объединения, в котором используются три управляющих точки, может формироваться. Возможный MV-вариант(ы), например, может представлять собой MV для кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого) или MV для эффективного блока из блоков.[0319] It should be noted that, for example, a list of possible MV options including possible MV options in the affine pooling mode in which two control points are used and in the affine combining mode in which three control points are used may be generated as a list of possible MV options. Alternatively, a list of possible MV options including possible MV options in an affine join mode that uses two control points, and a list of possible MV options including possible MV options in an affine join mode that uses three control points can be formed separately. Alternatively, a list of possible MV options including possible MV options in one of an affine join mode that uses two control points and an affine join mode that uses three control points can be generated. The possible MV variant(s), for example, could be MV for coded block A (left), block B (top), block C (top right), block D (bottom left) and block E (top left) or MV for an efficient block of blocks.

[0320] Следует отметить, что индекс, указывающий один из MV в списке возможных MV-вариантов, может передаваться как информация MV-выбора.[0320] It should be noted that an index indicating one of the MVs in the list of possible MV options may be transmitted as MV selection information.

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

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

[0322] В аффинном взаимном режиме, как проиллюстрировано, сначала, модуль 126 взаимного прогнозирования извлекает MV-предикторы (v0, v1) или (v0, v1, v2) соответствующих двух или трех управляющих точек текущего блока (этап Sj_1). Управляющие точки, например, могут представлять собой верхнюю левую угловую точку для текущего блока, верхнюю правую угловую точку текущего блока и верхнюю правую угловую точку для текущего блока, как проиллюстрировано на фиг. 46A или фиг. 46B.[0322] In the affine mutual mode, as illustrated, first, the mutual 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, for example, may be the top left corner point for the current block, the top right corner point of the current block, and the top right corner point for the current block, as illustrated in FIG. 46A or FIG. 46B.

[0323] Например, когда способы MV-извлечения, проиллюстрированные на фиг. 48A и 48B, используются, модуль 126 взаимного прогнозирования извлекает MV-предикторы (v0, v1) или (v0, v1, v2) в соответствующих двух или трех управляющих точках для текущего блока посредством выбора MV любого из блоков из кодированных блоков около соответствующих управляющих точек для текущего блока, проиллюстрированного на фиг. 48A или фиг. 48B. В это время, модуль 126 взаимного прогнозирования кодирует, в потоке, информацию выбора MV-предикторов для идентификации выбранных двух или трех MV-предикторов.[0323] For example, when the MV extraction methods illustrated in FIG. 48A and 48B are used, the inter-prediction module 126 retrieves the MV predictors (v 0 , v 1 ) or (v 0 , v 1 , v 2 ) at the corresponding two or three control points for the current block by selecting the MVs of any of the encoded blocks blocks near the corresponding control points for the current block illustrated in FIG. 48A or FIG. 48B. At this time, the inter-prediction module 126 encodes, in-stream, MV predictor selection information to identify the selected two or three MV predictors.

[0324] Например, модуль 126 взаимного прогнозирования может определять, с использованием оценки затрат и т.п., блок, из которого выбирается MV в качестве MV-предиктора в управляющей точке, из числа кодированных блоков, граничащих с текущим блоком, и может записывать, в потоке битов, флаг, указывающий то, какой MV-предиктор выбран. Другими словами, модуль 126 взаимного прогнозирования выводит, в качестве параметра прогнозирования, информацию выбора MV-предикторов, такую как флаг, в энтропийный кодер 110 через формирователь 130 параметров прогнозирования.[0324] For example, the inter-prediction module 126 may determine, using a cost estimate or the like, a block from which an MV is selected as a control point MV predictor from among the coded blocks adjacent to the current block, and may record , in the bit stream, a flag indicating which MV predictor is selected. In other words, the inter-prediction module 126 outputs, as a prediction parameter, MV predictor selection information such as a flag to the entropy encoder 110 via the prediction parameter generator 130.

[0325] Затем, модуль 126 взаимного прогнозирования выполняет оценку движения (этап Sj_3 и Sj_4) при обновлении MV-предиктора вектора, выбранного или извлеченного на этапе Sj_1 (этап Sj_2). Другими словами, модуль 126 взаимного прогнозирования вычисляет, в качестве аффинного MV, MV каждого из субблоков, который соответствует обновленному MV-предиктору, с использованием выражения (1A) либо выражения (1B), описанных выше (этап Sj_3). Модуль 126 взаимного прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных кадров (этап Sj_4). Процессы на этапе Sj_3 и Sj_4 выполняются для всех блоков в текущем блоке, когда MV-предиктор обновляется на этапе Sj_2. Как результат, например, модуль 126 взаимного прогнозирования определяет MV-предиктор, который дает в результате наименьшие затраты, в качестве MV в управляющей точке в контуре оценки движения (этап Sj_5). В это время, модуль 126 взаимного прогнозирования дополнительно кодирует, в потоке, значение разности между определенным MV и MV-предиктором в качестве MV-разности. Другими словами, модуль 126 взаимного прогнозирования выводит MV-разность в качестве параметра прогнозирования в энтропийный кодер 110 через формирователь 130 параметров прогнозирования.[0325] Next, the mutual prediction unit 126 performs motion estimation (step Sj_3 and Sj_4) while updating the MV vector predictor selected or extracted in step Sj_1 (step Sj_2). In other words, the inter-prediction unit 126 calculates, as an affine MV, the MV of each of the sub-blocks that corresponds to the updated MV predictor using 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). The processes in step Sj_3 and Sj_4 are executed for all blocks in the current block when the MV predictor is updated in step Sj_2. As a result, for example, the mutual prediction unit 126 determines the MV predictor that results in the lowest cost as the MV at the control point in the motion estimation loop (step Sj_5). At this time, the inter-prediction unit 126 further encodes, in the stream, the difference value between the determined MV and the MV predictor as an MV difference. In other words, the inter-prediction module 126 outputs the MV difference as a prediction parameter to the entropy encoder 110 via the prediction parameter generator 130 .

[0326] В завершение, модуль 126 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием определенного MV и кодированного опорного кадра (этап Sj_6).[0326] Finally, the inter 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).

[0327] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sj_1. Список возможных MV-вариантов, например, может представлять собой список, включающий в себя возможные MV-варианты, извлекаемые с использованием множества способов MV-извлечения для каждой управляющей точки. Множество способов MV-извлечения, например, могут представлять собой любую комбинацию способов MV-извлечения, проиллюстрированных на фиг. 47A-47C, способов MV-извлечения, проиллюстрированных на фиг. 48A и 48B, способов MV-извлечения, проиллюстрированных на фиг. 49A и 49B, и других способов MV-извлечения.[0327] It should be noted that the above-described list of possible MV options may be generated in step Sj_1. The MV candidate list, for example, may be a list including MV candidate candidates extracted using a plurality of MV extraction methods for each control point. The plurality of MV extraction methods, for example, may be any combination of the MV extraction methods illustrated in FIG. 47A-47C, the MV extraction methods illustrated in FIGS. 48A and 48B, the MV extraction methods illustrated in FIGS. 49A and 49B, and other MV extraction methods.

[0328] Следует отметить, что списки возможных MV-вариантов могут включать в себя возможные MV-варианты в режиме, в котором прогнозирование выполняется в единицах субблоков, отличном от аффинного режима.[0328] It should be noted that the MV candidate lists may include MV candidate candidates in a mode in which prediction is performed in subblock units other than the affine mode.

[0329] Следует отметить, что, например, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном взаимном режиме, в котором используются две управляющих точки, и в аффинном взаимном режиме, в котором используются три управляющих точки, может формироваться в качестве списка возможных MV-вариантов. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном взаимном режиме, в котором используются две управляющих точки, и список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном взаимном режиме, в котором используются три управляющих точки, могут формироваться отдельно. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в одном из аффинного взаимного режима, в котором используются две управляющих точки, и аффинного взаимного режима, в котором используются три управляющих точки, может формироваться. Возможный MV-вариант(ы), например, может представлять собой MV для кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого) или MV для эффективного блока из блоков.[0329] It should be noted that, for example, a list of possible MV options including possible MV options in the affine reciprocal mode in which two control points are used and in the affine reciprocal mode in which three control points are used may be generated as a list of possible MV options. Alternatively, a list of possible MV options including possible MV options in an affine reciprocal mode that uses two control points, and a list of possible MV options including possible MV options in an affine reciprocal mode that uses three control points can be formed separately. Alternatively, a list of possible MV options including possible MV options in one of an affine reciprocal mode in which two control points are used and an affine reciprocal mode in which three control points are used may be generated. The possible MV variant(s), for example, could be MV for coded block A (left), block B (top), block C (top right), block D (bottom left) and block E (top left) or MV for an efficient block of blocks.

[0330] Следует отметить, что индекс, указывающий один из возможных MV-вариантов в списке возможных MV-вариантов, может передаваться как информация выбора MV-предикторов.[0330] It should be noted that an index indicating one of the possible MV options in the list of possible MV options may be transmitted as MV predictor selection information.

[0331] MV-извлечение > треугольный режим [0331] MV extract > triangle mode

Модуль 126 взаимного прогнозирования формирует одно прямоугольное прогнозное изображение для текущего прямоугольного блока в вышеприведенном примере. Тем не менее, модуль 126 взаимного прогнозирования может формировать множество прогнозных изображений, имеющих форму, отличающуюся от прямоугольника, для текущего прямоугольного блока, и может комбинировать множество прогнозных изображений для того, чтобы формировать конечное прямоугольное прогнозное изображение. Форма, отличающаяся от прямоугольника, например, может представлять собой треугольник.The inter-prediction module 126 generates one rectangular prediction image for the current rectangular block in the above example. However, the inter-prediction module 126 can generate a plurality of prediction images having a shape other than a rectangle for the current rectangular 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.

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

[0333] Модуль 126 взаимного прогнозирования формирует треугольное прогнозное изображение посредством выполнения компенсации движения первого сегмента, имеющего треугольную форму в текущем блоке, посредством использования первого MV первого сегмента для того, чтобы формировать треугольное прогнозное изображение. Аналогично, модуль 126 взаимного прогнозирования формирует треугольное прогнозное изображение посредством выполнения компенсации движения второго сегмента, имеющего треугольную форму в текущем блоке, посредством использования второго MV второго сегмента для того, чтобы формировать треугольное прогнозное изображение. Модуль 126 взаимного прогнозирования затем формирует прогнозное изображение, имеющее прямоугольную форму, идентичную прямоугольной форме текущего блока, посредством комбинирования этих прогнозных изображений.[0333] The inter-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 inter-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 mutual prediction unit 126 then generates a prediction image having a rectangular shape identical to the rectangular shape of the current block by combining these prediction images.

[0334] Следует отметить, что первое прогнозное изображение, имеющее прямоугольную форму, соответствующую текущему блоку, может формироваться в качестве прогнозного изображения для первого сегмента, с использованием первого MV. Помимо этого, второе прогнозное изображение, имеющее прямоугольную форму, соответствующую текущему блоку, может формироваться в качестве прогнозного изображения для второго сегмента, с использованием второго MV. Прогнозное изображение для текущего блока может формироваться посредством выполнения суммирования со взвешиванием первого прогнозного изображения и второго прогнозного изображения. Следует отметить, что часть, которая подвергается суммированию со взвешиванием, может представлять собой частичную область на границе между первым сегментом и вторым сегментом.[0334] It should be noted that the first prediction image having a rectangular shape corresponding to the current block may be generated as a prediction image for the first segment using the first MV. In addition, a second prediction image having a rectangular shape corresponding to the current block may be generated as a prediction image for the second segment using the second MV. The prediction image for the current block may be generated by performing weighting summation of the first prediction image and the second prediction image. It should be noted that the portion that is subject to weighting summation may be a partial region at the boundary between the first segment and the second segment.

[0335] Фиг. 52B является концептуальной схемой для иллюстрации примеров первой части первого сегмента, которая перекрывается со вторым сегментом, и первого и второго наборов выборок, которые могут взвешиваться в качестве части процесса коррекции. Первая часть, например, может составлять одну четверть от ширины или высоты первого сегмента. В другом примере, первая часть может иметь ширину, соответствующую N выборок, смежных с краем первого сегмента, где N является целым числом, большим нуля, например, N может быть целым числом 2. Как проиллюстрировано, левый пример по фиг. 52B показывает прямоугольный сегмент, имеющий прямоугольную часть с шириной, которая составляет одну четверть от ширины первого сегмента, с первым набором выборок, включающим в себя выборки за пределами первой части и выборки внутри первой части, и вторым набором выборок, включающим в себя выборки внутри первой части. Центральный пример по фиг. 52B показывает прямоугольный сегмент, имеющий прямоугольную часть с высотой, которая составляет одну четверть от высоты первого сегмента, с первым набором выборок, включающим в себя выборки за пределами первой части и выборки внутри первой части, и вторым набором выборок, включающим в себя выборки внутри первой части. Правый пример по фиг. 52B показывает треугольный сегмент, имеющий многоугольную часть с высотой, которая соответствует двум выборкам, с первым набором выборок, включающим в себя выборки за пределами первой части и выборки внутри первой части, и вторым набором выборок, включающим в себя выборки внутри первой части.[0335] FIG. 52B is a conceptual diagram for illustrating examples of a first portion of a first segment that overlaps with a second segment, and first and second sets of samples that may be weighted as part of the correction process. The first part, for example, may be one quarter of the width or height of the first segment. In another example, the first portion may have a width corresponding to N samples adjacent to the edge of the first segment, where N is an integer greater than zero, for example, N may be the integer 2. As illustrated, the left example of FIG. 52B shows a rectangular segment having a rectangular portion with a width that is one quarter of the width of the first segment, with a first set of samples including samples outside the first portion and samples within the first portion, and a second set of samples including samples within the first portion. parts. The central example of FIG. 52B shows a rectangular segment having a rectangular portion with a height that is one-quarter the height of the first segment, with a first set of samples including samples outside the first portion and samples within the first portion, and a second set of samples including samples within the first portion. parts. The right example in Fig. 52B shows a triangular segment having a polygonal portion with a height that corresponds to two samples, with a first set of samples including samples outside the first portion and samples inside the first portion, and a second set of samples including samples inside the first portion.

[0336] Первая часть может составлять часть первого сегмента, которая перекрывается со смежным сегментом. Фиг. 52C является концептуальной схемой для иллюстрации первой части первого сегмента, которая составляет часть первого сегмента, которая перекрывается с частью смежного сегмента. Для простоты иллюстрации, показывается прямоугольный сегмент, имеющий перекрывающуюся часть с пространственно смежным прямоугольным сегментом. Сегменты, имеющие другие формы, к примеру, треугольные сегменты, могут использоваться, и перекрывающиеся части могут перекрываться с пространственно смежным или смежным во времени сегментом.[0336] The first portion may constitute a portion of the first segment that overlaps with an adjacent segment. Fig. 52C is a conceptual diagram for illustrating a first part of a first segment, which constitutes a part of the first segment that overlaps with a part of an adjacent segment. For ease of illustration, a rectangular segment is shown having an overlapping portion with a spatially adjacent rectangular segment. Segments having other shapes, for example, triangular segments, can be used, and overlapping portions can overlap with a spatially adjacent or temporally adjacent segment.

[0337] Помимо этого, хотя приводится пример, в котором прогнозное изображение формируется для каждого из двух сегментов с использованием взаимного прогнозирования, прогнозное изображение может формироваться, по меньшей мере, для одного сегмента с использованием внутреннего прогнозирования.[0337] In addition, although an example is given 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.

[0338] Фиг. 53 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в треугольном режиме.[0338] FIG. 53 is a flowchart illustrating one example of a triangular mode process.

[0339] В треугольном режиме, во-первых, модуль 126 взаимного прогнозирования разбивает текущий блок на первый сегмент и второй сегмент (этап Sx_1). В это время, модуль 126 взаимного прогнозирования может кодировать, в потоке, информацию сегментов, которая представляет собой информацию, связанную с разбиением, на сегменты, в качестве параметра прогнозирования. Другими словами, модуль 126 взаимного прогнозирования может выводить информацию сегментов в качестве параметра прогнозирования в энтропийный кодер 110 через формирователь 130 параметров прогнозирования.[0339] In the triangular mode, first, the inter-prediction unit 126 splits the current block into a first segment and a second segment (step Sx_1). At this time, the inter-prediction unit 126 may encode, in the stream, segment information, which is segmentation-related information, as a prediction parameter. In other words, the inter-prediction module 126 may output the segment information as a prediction parameter to the entropy encoder 110 via the prediction parameter generator 130 .

[0340] Во-первых, модуль 126 взаимного прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sx_2). Другими словами, модуль 126 взаимного прогнозирования формирует список возможных MV-вариантов.[0340] First, 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 Sx_2). In other words, the inter-prediction module 126 generates a list of possible MV options.

[0341] Модуль 126 взаимного прогнозирования затем выбирает возможный MV-вариант для первого сегмента и возможный MV-вариант для второго сегмента в качестве первого MV и второго MV, соответственно, из множества возможных MV-вариантов, полученных на этапе Sx_1 (этап Sx_3). В это время, модуль 126 взаимного прогнозирования кодирует, в потоке, информацию MV-выбора для идентификации выбранного возможного MV-варианта. Другими словами, модуль 126 взаимного прогнозирования выводит информацию MV-выбора в качестве параметра прогнозирования в энтропийный кодер 110 через формирователь 130 параметров прогнозирования.[0341] The inter-prediction module 126 then selects a candidate MV for the first segment and a candidate MV for the second segment as the first MV and the second MV, respectively, from the plurality of candidate MVs obtained in step Sx_1 (step Sx_3). At this time, the inter-prediction module 126 encodes, in the stream, MV selection information to identify the selected MV candidate. In other words, the inter-prediction module 126 outputs the MV selection information as a prediction parameter to the entropy encoder 110 via the prediction parameter generator 130 .

[0342] Затем, модуль 126 взаимного прогнозирования формирует первое прогнозное изображение посредством выполнения компенсации движения с использованием выбранного первого MV и кодированного опорного кадра (этап Sx_4). Аналогично, модуль 126 взаимного прогнозирования формирует второе прогнозное изображение посредством выполнения компенсации движения с использованием выбранного второго MV и кодированного опорного кадра (этап Sx_5).[0342] Next, the inter prediction unit 126 generates a first prediction image by performing motion compensation using the selected first MV and the encoded reference frame (step Sx_4). Likewise, the inter-prediction module 126 generates a second prediction image by performing motion compensation using the selected second MV and the encoded reference frame (step Sx_5).

[0343] В завершение, модуль 126 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения суммирования со взвешиванием первого прогнозного изображения и второго прогнозного изображения (этап Sx_6).[0343] Finally, the inter-prediction unit 126 generates a prediction image for the current block by performing weighting summation of the first prediction image and the second prediction image (step Sx_6).

[0344] Следует отметить, что хотя первый сегмент и второй сегмент представляют собой треугольники в примере, проиллюстрированном на фиг. 52A, первый сегмент и второй сегмент могут представлять собой трапеции либо другие формы, отличающиеся друг от друга. Кроме того, хотя текущий блок включает в себя два сегмента в примерах, проиллюстрированных на фиг. 52A и 52C, текущий блок может включать в себя три или более сегментов.[0344] It should be noted that although the first segment and the second segment are triangles in the example illustrated in FIG. 52A, 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 examples illustrated in FIGS. 52A and 52C, the current block may include three or more segments.

[0345] Помимо этого, первый сегмент и второй сегмент могут перекрываться между собой. Другими словами, первый сегмент и второй сегмент могут включать в себя идентичную пиксельную область. В этом случае, прогнозное изображение для текущего блока может формироваться с использованием прогнозного изображения в первом сегменте и прогнозного изображения во втором сегменте.[0345] 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.

[0346] Помимо этого, хотя проиллюстрирован пример, в котором прогнозное изображение формируется для каждого из двух сегментов с использованием взаимного прогнозирования, прогнозное изображение может формироваться, по меньшей мере, для одного сегмента с использованием внутреннего прогнозирования.[0346] In addition, although an example is illustrated 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.

[0347] Следует отметить, что список возможных MV-вариантов для выбора первого MV и список возможных MV-вариантов для выбора второго MV могут отличаться друг от друга, либо список возможных MV-вариантов для выбора первого MV также может использоваться в качестве списка возможных MV-вариантов для выбора второго MV.[0347] It should be noted that the list of possible MV options for selecting the first MV and the list of possible MV options for selecting the second MV may be different from each other, or the list of possible MV options for selecting the first MV may also be used as the list of possible MVs -options for choosing the second MV.

[0348] Следует отметить, что информация сегментов может включать в себя индекс, указывающий направление разбиения, в котором, по меньшей мере, текущий блок разбивается на множество сегментов. Информация MV-выбора может включать в себя индекс, указывающий выбранный первый MV, и индекс, указывающий выбранный второй MV. Один индекс может указывать множество фрагментов информации. Например, один индекс, совместно указывающий часть или всю информацию сегментов и часть или всю информацию MV-выбора, может кодироваться.[0348] It should be noted that the segment information may include an index indicating a partitioning direction in which at least the current block is partitioned into a plurality of segments. The MV selection information may include an index indicating the selected first MV and an index indicating the selected second MV. A single index can specify many pieces of information. For example, one index jointly indicating part or all of the segment information and part or all of the MV selection information may be encoded.

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

Фиг. 54 является концептуальной схемой для иллюстрации одного примера режима усовершенствованного временного прогнозирования векторов движения (ATMVP), в котором MV извлекается в единицах субблоков.Fig. 54 is a conceptual diagram for illustrating one example of an advanced temporal motion vector prediction (ATMVP) mode in which the MV is extracted in units of subblocks.

[0350] ATMVP-режим представляет собой режим, категоризированный на режим объединения. Например, в ATMVP-режиме, возможный MV-вариант для каждого субблока регистрируется в списке возможных MV-вариантов для использования в режиме нормального объединения.[0350] The ATMVP mode is a mode categorized as an aggregation mode. For example, in ATMVP mode, a candidate MV for each subblock is registered in the list of candidate MVs for use in normal aggregation mode.

[0351] Более конкретно, в ATMVP-режиме, во-первых, как проиллюстрировано на фиг. 54, временной опорный MV-блок, ассоциированный с текущим блоком, идентифицируется в кодированном опорном кадре, указываемом посредством MV (MV0) соседнего блока, расположенного в левой нижней позиции относительно текущего блока. Затем, в каждом субблоке в текущем блоке, идентифицируется MV, используемый для того, чтобы кодировать область, соответствующую субблоку во временном опорном MV-блоке. MV, идентифицированный таким образом, включается в список возможных MV-вариантов в качестве возможного MV-варианта для субблока в текущем блоке. Когда возможный MV-вариант для каждого субблока выбирается из списка возможных MV-вариантов, субблок подвергается компенсации движения, при которой возможный MV-вариант используется в качестве MV для субблока. Таким образом, прогнозное изображение для каждого субблока формируется.[0351] More specifically, in ATMVP mode, first, as illustrated in FIG. 54, a temporary reference MV block associated with the current block is identified in a coded reference frame indicated by the MV (MV0) of a neighboring block located at the lower left position relative to the current block. Then, in each sub-block in the current block, an MV used to encode the region corresponding to the sub-block in the temporary reference MV block is identified. The MV identified in this manner is included in the list of MV candidates as a candidate MV for the subblock in the current block. When a candidate MV for each sub-block is selected from the list of candidate MVs, the sub-block undergoes motion compensation in which the candidate MV is used as the MV for the sub-block. Thus, a forecast image for each subblock is formed.

[0352] Хотя блок, расположенный в левой нижней позиции относительно текущего блока, используется в качестве окружающего опорного MV-блока в примере, проиллюстрированном на фиг. 54, следует отметить, что может использоваться другой блок. Помимо этого, размер субблока может составлять 4×4 пикселов, 8×8 пикселов или другой размер. Размер субблока может переключаться для единицы, такой как срез, кирпич, кадр и т.д.[0352] Although the block located at the lower left position relative to the current block is used as the surrounding MV reference block in the example illustrated in FIG. 54, it should be noted that a different block may be used. In addition, the subblock size may be 4x4 pixels, 8x8 pixels, or other size. The sub-block size can be switched per unit, such as slice, brick, frame, etc.

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

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

[0354] Модуль 126 взаимного прогнозирования извлекает вектор движения для текущего блока согласно режиму объединения (этап Sl_1). Затем, модуль 126 взаимного прогнозирования определяет то, следует или нет выполнять оценку вектора движения, т.е. оценку движения (этап Sl_2). Здесь, при определении необходимости не выполнять оценку движения ("Нет" на этапе Sl_2), модуль 126 взаимного прогнозирования определяет вектор движения, извлекаемый на этапе Sl_1, в качестве конечного вектора движения для текущего блока (этап Sl_4). Другими словами, в этом случае, вектор движения текущего блока определяется согласно режиму объединения.[0354] The inter-prediction unit 126 extracts the motion vector for the current block according to the combining mode (step Sl_1). Next, the mutual prediction unit 126 determines whether or not to perform motion vector estimation, i.e. motion assessment (stage Sl_2). Here, when determining whether to not perform motion estimation (“No” in step Sl_2), the inter-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.

[0355] При определении необходимости выполнять оценку движения на этапе Sl_1 ("Да" на этапе Sl_2), модуль 126 взаимного прогнозирования извлекает конечный вектор движения для текущего блока посредством оценки окружающей области опорного кадра, указываемого посредством вектора движения, извлекаемого на этапе Sl_1 (этап Sl_3). Другими словами, в этом случае, вектор движения текущего блока определяется согласно DMVR.[0355] When determining whether to perform motion estimation in step Sl_1 (Yes in step Sl_2), the inter-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.

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

[0357] Во-первых, в режиме объединения, например, возможные MV-варианты (L0 и L1) выбираются для текущего блока. Опорный пиксел идентифицируется из первого опорного кадра (L0), который представляет собой кодированный кадр в L0-списке согласно возможному MV-варианту (L0). Аналогично, опорный пиксел идентифицируется из второго опорного кадра (L1), который представляет собой кодированный кадр в L1-списке согласно возможному MV-варианту (L1). Эталон формируется посредством вычисления среднего этих опорных пикселов.[0357] First, in merge mode, for example, candidate MVs (L0 and L1) are selected for the current block. The reference pixel is identified from the first reference frame (L0), which is a coded frame in the L0 list 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 list according to the MV candidate (L1). The reference is formed by calculating the average of these reference pixels.

[0358] Затем, каждая из окружающих областей возможных MV-вариантов первого опорного кадра (L0) и второго опорного кадра (L1) оценивается с использованием эталона, и MV, который дает в результате наименьшие затраты, определяется в качестве конечного MV. Следует отметить, что затраты могут вычисляться, например, с использованием значения разности между каждым из пиксельных значений в эталоне и соответствующим одним из пиксельных значений в области оценки, значений возможных MV-вариантов и т.д.[0358] Next, each of the surrounding regions of candidate MVs of the first reference frame (L0) and the second reference frame (L1) is estimated using the reference, and the MV that results in the lowest cost is determined as the final MV. It should be noted that costs can 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.

[0359] Совершенно идентичные процессы, описанные здесь, не всегда должны обязательно выполняться. Другой процесс для обеспечения возможности извлечения конечного MV посредством оценки в окружающих областях возможных MV-вариантов может использоваться.[0359] The completely identical processes described here do not always have to be performed. Another process for allowing the final MV to be extracted by evaluating candidate MVs in surrounding areas can be used.

[0360] Фиг. 57 является концептуальной схемой для иллюстрации другого примера DMVR для определения MV. В отличие от примера DMVR, проиллюстрированного на фиг. 56, в примере, проиллюстрированном на фиг. 57, затраты вычисляются без формирования эталона.[0360] FIG. 57 is a conceptual diagram for illustrating another example of a DMVR for determining MV. Unlike the DMVR example illustrated in FIG. 56, in the example illustrated in FIG. 57, costs are calculated without forming a standard.

[0361] Во-первых, модуль 126 взаимного прогнозирования оценивает окружающую область опорного блока, включенного в каждый из опорных кадров в L0-списке и L1-списке, на основе начального MV, который представляет собой возможный MV-вариант, полученный из каждого списка возможных MV-вариантов. Например, как проиллюстрировано на фиг. 57, начальный MV, соответствующий опорному блоку в L0-списке, представляет собой InitMV_L0, и начальный MV, соответствующий опорному блоку в L1-списке, представляет собой InitMV_L1. При оценке движения, модуль 126 взаимного прогнозирования сначала задает позицию поиска для опорного кадра в L0-списке. На основе позиции, указываемой посредством векторной разности, указывающей позицию поиска, которая должна задаваться, а именно, начального MV (т.е. InitMV_L0), векторная разность для позиции поиска представляет собой MVd_L0. Модуль 126 взаимного прогнозирования затем определяет оцениваемую позицию в опорном кадре в L1-списке. Эта позиция поиска указывается посредством векторной разности для позиции поиска из позиции, указываемой посредством начального MV (т.е. InitMV_L1). Более конкретно, модуль 126 взаимного прогнозирования определяет векторную разность в качестве MVd_L1 посредством зеркалирования MVd_L0. Другими словами, модуль 126 взаимного прогнозирования определяет позицию, которая является симметричной относительно позиции, указываемой посредством начального MV, в качестве позиции поиска в каждом опорном кадре в L0-списке и L1-списке. Модуль 126 взаимного прогнозирования вычисляет, для каждой позиции поиска, общую сумму абсолютных разностей (SAD) между значениями пикселов в позициях поиска в блоках в качестве затрат и узнает позицию поиска, которая дает в результате наименьшие затраты.[0361] First, the inter-prediction module 126 estimates the surrounding area of the reference block included in each of the reference frames in the L0 list and the L1 list based on the initial MV, which is a candidate MV obtained from each candidate list. MV options. For example, as illustrated in FIG. 57, the initial MV corresponding to the reference block in the L0 list is InitMV_L0, and the initial MV corresponding to the reference block in the L1 list is InitMV_L1. When estimating motion, the inter-prediction module 126 first sets a search position for the reference frame in the L0 list. Based on the position indicated by the vector difference indicating the search position to be specified, namely, the initial MV (ie, InitMV_L0), the vector difference for the search position is MVd_L0. The inter-prediction module 126 then determines the estimated position in the reference frame in the L1 list. This search position is indicated by a vector difference for the search position from the position indicated by the initial MV (ie, InitMV_L1). More specifically, the inter-prediction unit 126 determines the vector difference as MVd_L1 by mirroring MVd_L0. In other words, the inter-prediction unit 126 determines a position that is symmetrical with respect to the position indicated by the initial MV as a search position in each reference frame in the L0 list and L1 list. The inter-prediction module 126 calculates, for each search position, the total sum of absolute differences (SAD) between the pixel values at the search positions in the blocks as costs and learns the search position that results in the lowest cost.

[0362] Фиг. 58A является концептуальной схемой для иллюстрации одного примера оценки движения в DMVR, и фиг. 58B является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса оценки движения.[0362] FIG. 58A is a conceptual diagram for illustrating one example of motion estimation in DMVR, and FIG. 58B is a flowchart illustrating one example of a motion estimation process.

[0363] Во-первых, на этапе 1, модуль 126 взаимного прогнозирования вычисляет затраты между позицией поиска (также называемой "начальной точкой"), указываемой посредством начального MV, и восемью окружающими позициями поиска. Модуль 126 взаимного прогнозирования затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в позиции поиска, отличной от начальной точки, являются наименьшими, модуль 126 взаимного прогнозирования изменяет цель на позицию поиска, в которой наименьшие затраты получаются, и выполняет процесс на этапе 2. Когда затраты в начальной точке являются наименьшими, модуль 126 взаимного прогнозирования пропускает процесс на этапе 2 и выполняет процесс на этапе 3.[0363] First, in step 1, the inter-prediction module 126 calculates the costs between the search position (also called the “starting point”) indicated by the initial MV and the eight surrounding search positions. The mutual prediction module 126 then determines whether or not the costs at each of the search positions other than the starting point are the smallest. Here, upon determining that the cost at a search position other than the starting point is the smallest, the inter-prediction unit 126 changes the target to the search position at which the smallest cost is obtained and executes the process in step 2. When the cost at the starting point is the smallest , the mutual prediction module 126 skips the process in step 2 and executes the process in step 3.

[0364] На этапе 2, модуль 126 взаимного прогнозирования выполняет поиск, аналогичный процессу на этапе 1, относительно, в качестве новой начальной точки, позиции поиска после того, как цель изменяется, согласно результату процесса на этапе 1. Модуль 126 взаимного прогнозирования затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в позиции поиска, отличной от начальной точки, являются наименьшими, модуль 126 взаимного прогнозирования выполняет процесс на этапе 4. Когда затраты в начальной точке являются наименьшими, модуль 126 взаимного прогнозирования выполняет процесс на этапе 3.[0364] In step 2, the mutual prediction module 126 performs a search similar to the process in step 1 regarding, as a new starting point, the search position after the target is changed according to the result of the process in step 1. The mutual prediction module 126 then determines whether or not the costs at each of the search positions other than the starting point are the smallest. Here, when determining that the cost at a search position other than the starting point is the smallest, the inter-prediction unit 126 executes the process in step 4. When the cost at the starting point is the smallest, the inter-prediction unit 126 carries out the process in step 3.

[0365] На этапе 4, модуль 126 взаимного прогнозирования рассматривает позицию поиска в начальной точке в качестве конечной позиции поиска и определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.[0365] In step 4, the inter-prediction unit 126 considers the search position at the starting point as the final search position, and determines the difference between the position indicated by the starting MV and the final search position as a vector difference.

[0366] На этапе 3, модуль 126 взаимного прогнозирования определяет пиксельную позицию с субпиксельной точностью, при которой наименьшие затраты получаются, на основе затрат в четырех точках, расположенных в верхней, нижней, левой и правой позициях относительно начальной точки на этапе 1 или на этапе 2, и рассматривает пиксельную позицию в качестве конечной позиции поиска. Пиксельная позиция с субпиксельной точностью определяется посредством выполнения суммирования со взвешиванием каждого из четырех верхнего, нижнего, левого и правого векторов ((0, 1), (0,-1), (-1, 0) и (1, 0)), с использованием, в качестве весового коэффициента, затрат в соответствующих одной из четырех позиций поиска. Модуль 126 взаимного прогнозирования затем определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.[0366] In step 3, the inter-prediction module 126 determines the pixel position with sub-pixel precision at which the lowest cost is obtained, based on the costs at four points located at the top, bottom, left and right positions relative to the starting point in step 1 or step 2, and considers the pixel position as the final search position. The pixel position is determined with sub-pixel precision by performing a summation weighting each of the four top, bottom, left and right vectors ((0, 1), (0,-1), (-1, 0) and (1, 0)), using, as a weighting factor, the costs corresponding to one of the four search positions. The inter-prediction unit 126 then determines the difference between the position indicated by the initial MV and the final search position as a vector difference.

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

Компенсация движения заключает в себе режим для формирования прогнозного изображения и коррекции прогнозного изображения. Режим, например, представляет собой двунаправленный оптический поток (BIO), перекрывающуюся блочную компенсацию движения (OBMC), компенсацию локальной освещенности (LIC), которые описываются ниже, и т.д.Motion compensation includes a mode for generating a predictive image and correcting a predictive image. The mode, for example, is Bidirectional Optical Flow (BIO), Overlapping Block Motion Compensation (OBMC), Local Illumination Compensation (LIC), which are described below, etc.

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

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

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

[0371] Модуль 126 взаимного прогнозирования определяет вектор движения текущего блока (этап Sn_1). Затем, модуль 126 взаимного прогнозирования формирует прогнозное изображение с использованием вектора движения (этап Sn_2) и определяет то, следует или нет выполнять процесс коррекции (этап Sn_3). Здесь, при определении необходимости выполнять процесс коррекции ("Да" на этапе Sn_3), модуль 126 взаимного прогнозирования формирует конечное прогнозное изображение посредством коррекции прогнозного изображения (этап Sn_4). Следует отметить, что в LIC, описанной ниже, яркость и цветность может корректироваться на этапе Sn_4. При определении необходимости не выполнять процесс коррекции ("Нет" на этапе Sn_3), модуль 126 взаимного прогнозирования выводит прогнозное изображение в качестве конечного прогнозного изображения без коррекции прогнозного изображения (этап Sn_5).[0371] The mutual prediction unit 126 determines the motion vector of the current block (step Sn_1). Next, the mutual prediction unit 126 generates a prediction image using the motion vector (step Sn_2) and determines whether or not to perform the correction process (step Sn_3). Here, upon determining whether to carry out the correction process (“Yes” in step Sn_3), the inter-prediction unit 126 generates the final prediction image by correcting the prediction image (step Sn_4). It should be noted that in the LIC described below, the brightness and chrominance can be adjusted in step Sn_4. When determining whether to not perform the correction process (“No” in step Sn_3), the inter-prediction unit 126 outputs the prediction image as the final prediction image without correcting the prediction image (step Sn_5).

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

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

[0373] В OBMC-режиме, информация, указывающая размер субблока для OBMC (называется, например, "размером OBMC-блока"), может передаваться в служебных сигналах на уровне последовательности. Кроме того, информация, указывающая то, следует или нет применять OBMC-режим (называется, например, "OBMC-флагом"), передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне последовательности и уровне CU и может выполняться на другом уровне (например, на уровне кадра, уровне среза, уровне кирпича, уровне CTU или уровне субблока).[0373] 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, brick level, CTU level, or subblock level).

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

[0375] Во-первых, как проиллюстрировано на фиг. 62, прогнозное изображение (Pred) посредством нормальной компенсации движения получается с использованием MV, назначенного текущему блоку. На фиг. 62, стрелка "MV" указывает на опорный кадр и указывает то, на что ссылается текущий блок текущего кадра, чтобы получать прогнозное изображение.[0375] First, as illustrated in FIG. 62, a prediction image (Pred) by normal motion compensation is obtained using the MV assigned to the current block. In fig. 62, 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.

[0376] Затем, прогнозное изображение (Pred_L) получается посредством применения вектора (MV_L) движения, который уже извлечен для кодированного блока, соседнего слева от текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Вектор (MV_L) движения указывается посредством стрелки "MV_L", указывающей опорный кадр, из текущего блока. Первая коррекция прогнозного изображения выполняется посредством перекрытия двух прогнозных изображений Pred и Pred_L. Это предоставляет преимущество смешивания границы между соседними блоками.[0376] 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.

[0377] Аналогично, прогнозное изображение (Pred_U) получается посредством применения MV (MV_U), который уже извлечен для кодированного блока, соседнего выше текущего блока, к текущему блоку (многократного использования MV для текущего блока). MV (MV_U) указывается посредством стрелки "MV_U", указывающей опорный кадр, из текущего блока. Вторая коррекция прогнозного изображения выполняется посредством перекрытия прогнозного изображения Pred_U с прогнозными изображениями (например, Pred и Pred_L), для которых выполнена первая коррекция. Это предоставляет преимущество смешивания границы между соседними блоками. Прогнозное изображение, полученное посредством второй коррекции, представляет собой прогнозное изображение, в котором граница между соседними блоками смешивается (сглаживается), и в силу этого представляет собой конечное прогнозное изображение текущего блока.[0377] Similarly, a prediction image (Pred_U) is obtained by applying the MV (MV_U) that is already extracted for the coded block adjacent above the current block to the current block (reusing the MV for the current block). MV (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 is 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.

[0378] Хотя вышеприведенный пример представляет собой способ коррекции с двумя трактами с использованием левого и верхнего соседних блоков, следует отметить, что способ коррекции может представлять собой способ коррекции с тремя или более трактов с использованием также правого соседнего блока и/или нижнего соседнего блока.[0378] 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.

[0379] Следует отметить, что область, в которой выполняется такое перекрытие, может составлять только часть области около границы блока вместо пиксельной области всего блока.[0379] 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.

[0380] Следует отметить, что выше описывается процесс коррекции прогнозных изображений согласно OBMC для получения одного прогнозного изображения Pred из одного опорного кадра посредством перекрытия дополнительного прогнозного изображения Pred_L и Pred_U. Тем не менее, когда прогнозное изображение корректируется на основе множества опорных изображений, аналогичный процесс может применяться к каждому из множества опорных кадров. В таком случае, после того, как скорректированные прогнозные изображения получаются из соответствующих опорных кадров посредством выполнения OBMC-коррекции изображений на основе множества опорных кадров, полученные скорректированные прогнозные изображения дополнительно перекрываются, чтобы получать конечное прогнозное изображение.[0380] Note 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.

[0381] Следует отметить, что, в OBMC, текущая блочная единица может представлять собой PU или субблочную единицу, полученную посредством дополнительного разбиения PU.[0381] It should be noted that, in OBMC, the current block unit may be a PU or a sub-block unit obtained by further partitioning the PU.

[0382] Один пример способа для определения того, следует или нет применять OBMC, представляет собой способ для использования obmc_flag, который представляет собой сигнал, указывающий то, следует или нет применять OBMC. В качестве одного конкретного примера, кодер 100 может определять то, принадлежит или нет текущий блок области, имеющей усложненное движение. Кодер задает obmc_flag равным значению "1", когда блок принадлежит области, имеющей усложненное движение, и применяет OBMC при кодировании и задает obmc_flag равным значению "0", когда блок не принадлежит области, имеющей усложненное движение, и кодирует блок без применения OBMC. Декодер 200 переключается между применением и неприменением OBMC посредством декодирования obmc_flag, записываемого в поток.[0382] One example of a method for determining whether or not to apply OBMC is a method for using obmc_flag, which is a signal indicating whether or not to apply OBMC. As one specific example, encoder 100 may determine 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 OBMC 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. Decoder 200 switches between applying and not applying OBMC by decoding the obmc_flag written to the stream.

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

Далее описывается способ MV-извлечения. Во-первых, описывается режим для извлечения MV на основе модели при условии равномерного прямолинейного движения. Этот режим также называется "режимом двунаправленного оптического потока (BIO)". Помимо этого, этот двунаправленный оптический поток может записываться в качестве BDOF вместо BIO.The following describes the MV extraction method. First, a mode for model-based MV extraction under the condition of uniform straight-line motion is described. This mode is also called "Bidirectional Optical Flow (BIO) mode". In addition, this bidirectional optical flow can be recorded as BDOF instead of BIO.

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

[0385] Здесь, согласно допущению относительно равномерного прямолинейного движения, демонстрируемого посредством вектора скорости (vx, vy), (MVx0, MVy0) и (MVx1, MVy1) представляются как (vxτ0, vyτ0) и (-vxτ1,- vyτ1), соответственно, и задается следующее уравнение (2) оптического потока:[0385] Here, according to the assumption of relatively uniform rectilinear motion demonstrated by the velocity vector, (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 (2) is specified:

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

[0387] Здесь, I(k) указывает значение сигнала яркости с компенсацией движения опорного кадра k (k=0, 1) после компенсации движения. Это уравнение оптического потока показывает то, что сумма (i) производной по времени значения сигнала яркости, (ii) произведения горизонтальной скорости и горизонтального компонента пространственного градиента опорного изображения и (iii) произведения вертикальной скорости и вертикального компонента пространственного градиента опорного изображения равна нулю. Вектор движения каждого блока, полученный, например, из списка возможных MV-вариантов, может корректироваться в единицах пикселов, на основе комбинации уравнения оптического потока и эрмитовой интерполяции.[0387] Here, I(k) indicates the value of the motion-compensated luminance signal of reference frame k (k=0, 1) after motion compensation. 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, for example, from a list of possible MV variants, can be adjusted in units of pixels, based on a combination of the optical flow equation and Hermitian interpolation.

[0388] Следует отметить, что вектор движения может извлекаться на стороне декодера 200 с использованием способа, отличного от извлечения вектора движения, на основе модели при условии равномерного прямолинейного движения. Например, вектор движения может извлекаться в единицах субблока на основе векторов движения множества соседних блоков.[0388] It should be noted that the motion vector may be extracted at the decoder 200 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 multiple neighboring blocks.

[0389] Фиг. 64 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса взаимного прогнозирования согласно BIO. Фиг. 65 является функциональной блок-схемой, иллюстрирующей один пример функциональной конфигурации модуля 126 взаимного прогнозирования, который может выполнять взаимное прогнозирование согласно BIO.[0389] FIG. 64 is a flowchart illustrating one example of an inter-prediction process according to BIO. Fig. 65 is a functional block diagram illustrating one example of a functional configuration of the inter-prediction unit 126, which can perform inter-prediction according to the BIO.

[0390] Как проиллюстрировано на фиг. 65, модуль 126 взаимного прогнозирования включает в себя, например, запоминающее устройство 126a, модуль 126b извлечения интерполированных изображений, модуль 126c извлечения градиентных изображений, модуль 126d извлечения оптических потоков, модуль 126e извлечения значений коррекции и корректор 126f прогнозных изображений. Следует отметить, что запоминающее устройство 126a может представлять собой запоминающее устройство 122 кинокадров.[0390] As illustrated in FIG. 65, the mutual prediction unit 126 includes, for example, a storage unit 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 device 126a may be a movie frame memory 122.

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

[0392] Затем, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I0 для текущего блока с использованием вектора M0 движения и опорного кадра L0 посредством обращения к запоминающему устройству 126a. Помимо этого, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I1 для текущего блока с использованием вектора M1 движения и опорного кадра L1 посредством обращения к запоминающему устройству 126a (этап Sy_2). Здесь, интерполированное изображение I0 представляет собой изображение, включенное в опорный кадр Ref0, и которое должно извлекаться для текущего блока, и интерполированное изображение I1 представляет собой изображение, включенное в опорный кадр Ref1, и которое должно извлекаться для текущего блока. Каждое из интерполированного изображения I0 и интерполированного изображения I1 может иметь размер, идентичный размеру текущего блока. Альтернативно, каждое из интерполированного изображения I0 и интерполированного изображения I1 может представлять собой изображение, большее текущего блока. Кроме того, интерполированное изображение I0 и интерполированное изображение I1 могут включать в себя прогнозное изображение, полученное посредством использования векторов (M0, M1) движения и опорных кадров (L0, L1) и применения фильтра для компенсации движения.[0392] Next, the interpolated image retrieval unit 126b retrieves the interpolated image I 0 for the current block using the motion vector M 0 and the reference frame L 0 by accessing the storage device 126a. In addition, the interpolated image retrieving unit 126b retrieves the interpolated image I 1 for the current block using the motion vector M 1 and the reference frame L 1 by accessing the storage device 126a (step Sy_2). Here, the interpolated image I 0 is an image included in the reference frame Ref 0 and which is to be extracted for the current block, and the interpolated image I 1 is an image included in the reference frame Ref 1 and which 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. In addition, the interpolated image I 0 and the interpolated image I 1 may include a prediction image obtained by using motion vectors (M 0 , M 1 ) and reference frames (L 0 , L 1 ) and applying a motion compensation filter.

[0393] Помимо этого, модуль 126c извлечения градиентных изображений извлекает градиентные изображения (Ix0, Ix1, Iy0, Iy1) текущего блока из интерполированного изображения I0 и интерполированного изображения I1 (этап Sy_3). Следует отметить, что градиентные изображения в горизонтальном направлении представляют собой (Ix0, Ix1), и градиентные изображения в вертикальном направлении представляют собой (Iy0, Iy1). Модуль 126c извлечения градиентных изображений может извлекать каждое градиентное изображение, например, посредством применения градиентного фильтра к интерполированным изображениям. Градиентное изображение может указывать величину пространственного изменения пиксельного значения вдоль горизонтального направления, вдоль вертикального направления либо вдоль обоих направлений.[0393] In addition, the gradient image extracting unit 126c extracts the gradient images (Ix 0 , Ix 1 , Iy 0 , Iy 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 (Ix 0 , Ix 1 ), and the gradient images in the vertical direction are (Iy 0 , Iy 1 ). The gradient image extraction module 126c may extract each gradient image, for example, by applying a gradient filter to the interpolated images. A gradient image may indicate the amount of spatial variation of a pixel value along a horizontal direction, along a vertical direction, or along both directions.

[0394] Затем, модуль 126d извлечения оптических потоков извлекает, для каждого субблока текущего блока, оптический поток (vx, vy), который представляет собой вектор скорости, с использованием интерполированных изображений (I0, I1) и градиентных изображений (Ix0, Ix1, Iy0, Iy1) (этап Sy_4). Оптический поток указывает коэффициенты для коррекции величины пространственного пиксельного перемещения и может называться "локальным значением оценки движения", "скорректированным вектором движения" или "скорректированным весовым вектором". В качестве одного примера, субблок может представлять собой 4×4-пиксельную суб-CU. Следует отметить, что извлечение оптических потоков может выполняться для каждой единицы пикселов и т.п. вместо выполнения для каждого субблока.[0394] Next, optical flow extractor 126d extracts, for each sub-block of the current block, optical flow (vx, vy), which is a velocity vector, using interpolated images (I 0 , I 1 ) and gradient images (Ix 0 , Ix 1 , Iy 0 , Iy 1 ) (stage Sy_4). The optical flow specifies coefficients for correcting the amount of spatial pixel movement and may be referred to as a “local motion estimation value,” “adjusted motion vector,” or “adjusted weight vector.” As one example, the subunit may be a 4x4 pixel sub-CU. It should be noted that optical flow extraction may be performed for each pixel unit and the like. instead of executing for each subblock.

[0395] Затем, модуль 126 взаимного прогнозирования корректирует прогнозное изображение для текущего блока с использованием оптического потока (vx, vy). Например, модуль 126e извлечения значений коррекции извлекает значение коррекции для значения пиксела, включенного в текущий блок, с использованием оптического потока (vx, vy) (этап Sy_5). Корректор 126f прогнозных изображений затем может корректировать прогнозное изображение для текущего блока с использованием значения коррекции (этап Sy_6). Следует отметить, что значение коррекции может извлекаться в единицах пиксела либо может извлекаться в единицах множества пикселов или в единицах субблоков.[0395] Next, the inter-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 subblocks.

[0396] Следует отметить, что поток BIO-процесса не ограничен процессом, раскрытым на фиг. 64. Например, только часть процессов, раскрытых на фиг. 64, может выполняться, либо другой процесс может добавляться или использоваться в качестве замены, либо процессы могут выполняться в другом порядке обработки и т.д.[0396] It should be noted that the BIO process flow is not limited to the process disclosed in FIG. 64. For example, only a portion of the processes disclosed in FIG. 64 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, etc.

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

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

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

[0399] Во-первых, модуль 126 взаимного прогнозирования извлекает MV из кодированного опорного кадра и получает опорное изображение, соответствующее текущему блоку (этап Sz_1).[0399] First, the inter-prediction unit 126 extracts the MV from the encoded reference frame and obtains a reference image corresponding to the current block (step Sz_1).

[0400] Затем, модуль 126 взаимного прогнозирования извлекает, для текущего блока, информацию, указывающую то, как значение сигнала яркости изменено между текущим блоком и опорным кадром (этап Sz_2). Это извлечение выполняется на основе пиксельных значений сигнала яркости кодированной левой соседней опорной области (окружающей опорной области) и кодированной верхней соседней опорной области (окружающей опорной области) в текущем кадре и пиксельных значений сигнала яркости в соответствующих позициях в опорном кадре, указываемых посредством извлеченных MV. Модуль 126 взаимного прогнозирования вычисляет параметр коррекции яркости, с использованием информации, указывающей то, как значение сигнала яркости изменено (этап Sz_3).[0400] Next, the inter-prediction unit 126 extracts, for the current block, information indicating how the luminance signal value is changed between the current block and the reference frame (step Sz_2). This extraction is performed based on the luminance pixel values of the encoded left adjacent reference region (surrounding reference region) and the encoded top adjacent reference region (surrounding reference region) in the current frame and the pixel values of the luminance signal at corresponding positions in the reference frame indicated by the extracted MVs. The inter-prediction unit 126 calculates the luminance correction parameter using information indicating how the luminance signal value is changed (step Sz_3).

[0401] Модуль 126 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения процесса коррекции яркости, в котором параметр коррекции яркости применяется к опорному изображению в опорном кадре, указываемом посредством MV (этап Sz_4). Другими словами, прогнозное изображение, которое представляет собой опорное изображение в опорном кадре, указываемом посредством MV, подвергается коррекции на основе параметра коррекции яркости. При этой коррекции, яркость может корректироваться, либо цветность может корректироваться, либо и то, и другое может корректироваться. Другими словами, параметр коррекции цветности может вычисляться с использованием информации, указывающей то, как цветность изменена, и процесс коррекции цветности может выполняться.[0401] The inter-prediction unit 126 generates a prediction image for the current block by performing a luminance correction process in which a luminance correction parameter is applied to the reference image in the reference frame indicated by the MV (step Sz_4). In other words, the prediction image, which is a reference image in the reference frame indicated by the MV, is subject to correction based on the luminance correction parameter. With this correction, brightness may be adjusted, or chroma may be adjusted, or both may be adjusted. In other words, the chrominance correction parameter can be calculated using information indicating how the chrominance is changed, and the chrominance correction process can be performed.

[0402] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 66A, представляет собой один пример; может использоваться другая форма.[0402] It should be noted that the shape of the surrounding support region illustrated in FIG. 66A is one example; another form may be used.

[0403] Кроме того, хотя здесь описывается процесс, в котором прогнозное изображение формируется из одного опорного кадра, идентично могут описываться случаи, в которых прогнозное изображение формируется из множества опорных кадров. Прогнозное изображение может формироваться после выполнения процесса коррекции яркости опорных изображений, полученных из опорных кадров, идентично вышеописанному.[0403] 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.

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

[0405] Один пример другого способа определения того, следует или нет применять LIC-процесс, представляет собой способ определения в соответствии с тем, применен или нет LIC-процесс к окружающему блоку. В качестве одного конкретного примера, когда текущий блок обрабатывается в режиме объединения, модуль 126 взаимного прогнозирования определяет то, кодирован или нет кодированный окружающий блок, выбранный при MV-извлечении в режиме объединения, с использованием LIC. Модуль 126 взаимного прогнозирования выполняет кодирование посредством переключения между применением и неприменением LIC согласно результату. Следует отметить, что также в этом примере, идентичные процессы применяются в процессах на стороне декодера 200.[0405] 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. As one specific example, when the current block is processed in the merge mode, the inter-prediction unit 126 determines whether or not the encoded surrounding block selected in MV extraction in the merge mode is encoded using LIC. The inter-prediction unit 126 performs encoding by switching between applying and not applying LIC according to the result. It should be noted that also in this example, identical processes are applied in the processes on the decoder 200 side.

[0406] Процесс коррекции яркости (LIC) описывается со ссылкой на фиг. 66A и 66B и дополнительно описывается ниже.[0406] The luma correction (LIC) process is described with reference to FIG. 66A and 66B and is further described below.

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

[0408] Затем, модуль 126 взаимного прогнозирования извлекает информацию, указывающую то, как значение сигнала яркости опорного кадра изменено на значение сигнала яркости текущего кадра, с использованием пиксельных значений сигнала яркости кодированных окружающих опорных областей, которые являются соседними слева от или выше текущего блока, и значений сигнала яркости в соответствующих позициях в опорных кадрах, указываемых посредством MV, и вычисляет параметр коррекции яркости. Например, предполагается, что пиксельное значение сигнала яркости данного пиксела в окружающей опорной области в текущем кадре составляет p0, и что пиксельное значение сигнала яркости пиксела, соответствующего данному пикселу в окружающей опорной области в опорном кадре, составляет p1. Модуль 126 взаимного прогнозирования вычисляет коэффициенты A и B для оптимизации A*p1+B=p0 в качестве параметра коррекции яркости для множества пикселов в окружающей опорной области.[0408] 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 signal values of encoded surrounding reference regions that are adjacent to the left of or above the current block, and luminance signal values at corresponding positions in the reference frames indicated by the MV, 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 inter-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.

[0409] Затем, модуль 126 взаимного прогнозирования выполняет процесс коррекции яркости с использованием параметра коррекции яркости для опорного изображения в опорном кадре, указываемом посредством MV, чтобы формировать прогнозное изображение для текущего блока. Например, предполагается, что пиксельное значение сигнала яркости в опорном изображении составляет p2, и что скорректированное по яркости пиксельное значение сигнала яркости прогнозного изображения составляет p3. Модуль 126 взаимного прогнозирования формирует прогнозное изображение после подвергания процессу коррекции яркости посредством вычисления A*p2+B=p3 для каждого из пикселов в опорном изображении.[0409] Next, the inter-prediction unit 126 performs a luminance correction process using the luminance correction parameter for the reference image in the reference frame indicated by the MV 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 mutual 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.

[0410] Например, область, имеющая определенное число пикселов, извлеченных из каждого из верхнего соседнего пиксела и левого соседнего пиксела, может использоваться в качестве окружающей опорной области. Помимо этого, окружающая опорная область не ограничена областью, которая является соседней с текущим блоком, и может представлять собой область, которая не является соседней с текущим блоком. В примере, проиллюстрированном на фиг. 66A, окружающая опорная область в опорном кадре может представлять собой область, указываемую посредством другого MV в текущем кадре, из окружающей опорной области в текущем кадре. Например, другой MV может представлять собой MV в окружающей опорной области в текущем кадре.[0410] For example, an area 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 area. 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. 66A, the surrounding reference area in the reference frame may be an area indicated by another MV in the current frame from the surrounding reference area in the current frame. For example, the other MV may be an MV in the surrounding reference region in the current frame.

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

[0412] Следует отметить, что LIC может применяться не только к сигналу яркости, но также и к сигналу цветности. В это время, параметр коррекции может извлекаться отдельно для каждого из Y, Cb и Cr, или общий параметр коррекции может использоваться для любого из Y, Cb и Cr.[0412] It should be noted that LIC 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.

[0413] Помимо этого, LIC-процесс может применяться в единицах субблоков. Например, параметр коррекции может извлекаться с использованием окружающей опорной области в текущем субблоке и окружающей опорной области в опорном субблоке в опорном кадре, указываемом посредством MV текущего субблока.[0413] 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.

[0414] Контроллер прогнозирования [0414] Forecast controller

Контроллер 128 прогнозирования выбирает один из внутреннего прогнозного сигнала (изображения или сигнала, выводимого из модуля 124 внутреннего прогнозирования) и взаимного прогнозного сигнала (изображения или сигнала, выводимого из модуля 126 взаимного прогнозирования) и выводит выбранное прогнозное изображение в вычитатель 104 и сумматор 116 в качестве прогнозного сигнала.The prediction controller 128 selects one of the internal prediction signal (the image or signal output from the intra prediction unit 124) and the mutual prediction signal (the image or signal output from the inter prediction unit 126) and outputs the selected prediction image to the subtractor 104 and the adder 116 as forecast signal.

[0415] Формирователь параметров прогнозирования [0415] Prediction parameter generator

Формирователь 130 параметров прогнозирования может выводить информацию, связанную с внутренним прогнозированием, взаимным прогнозированием, выбором прогнозного изображения в контроллере 128 прогнозирования и т.д. в качестве параметра прогнозирования в энтропийный кодер 110. Энтропийный кодер 110 может формировать поток, на основе параметра прогнозирования, который вводится из формирователя 130 параметров прогнозирования, и квантованных коэффициентов, которые вводятся из квантователя 108. Параметр прогнозирования может использоваться в декодере 200. Декодер 200 может принимать и декодировать поток и выполнять процессы, идентичные процессам прогнозирования, выполняемым посредством модуля 124 внутреннего прогнозирования, модуля 126 взаимного прогнозирования и контроллера 128 прогнозирования. Параметр прогнозирования может включать в себя, например, (i) выбираемый прогнозный сигнал (например, MV, тип прогнозирования или режим прогнозирования, используемый посредством модуля 124 внутреннего прогнозирования или модуля 126 взаимного прогнозирования), или (ii) необязательный индекс, флаг или значение, которое основано на процессе прогнозирования, выполняемом в каждом из модуля 124 внутреннего прогнозирования, модуля 126 взаимного прогнозирования и контроллера 128 прогнозирования, либо которое указывает процесс прогнозирования.The prediction parameter generator 130 may output information related to intra prediction, inter prediction, prediction image selection in prediction controller 128, etc. as a prediction parameter to the entropy encoder 110. The entropy encoder 110 may generate a stream based on the prediction parameter that is input from the prediction parameter generator 130 and the quantized coefficients that are input from the quantizer 108. The prediction parameter may be used in the decoder 200. The decoder 200 may receive and decode the stream and perform processes identical to the prediction processes performed by the intra prediction module 124, the inter prediction module 126, and the prediction controller 128. The prediction parameter may include, for example, (i) a selectable prediction signal (e.g., MV, prediction type, or prediction mode used by intra prediction module 124 or inter prediction module 126), or (ii) an optional index, flag, or value, which is based on the prediction process performed in each of the intra prediction module 124, the inter prediction module 126 and the prediction controller 128, or which indicates the prediction process.

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

Далее описывается декодер 200, допускающий декодирование потока, выводимого из кодера 100, описанного выше. Фиг. 67 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера 200 согласно этому варианту осуществления. Декодер 200 представляет собой оборудование, которое декодирует поток, который представляет собой кодированное изображение в единицах блоков.The following describes a decoder 200 capable of decoding a stream output from the encoder 100 described above. Fig. 67 is a block diagram illustrating a functional configuration of the decoder 200 according to this embodiment. The decoder 200 is equipment that decodes a stream that represents an encoded image in units of blocks.

[0417] Как проиллюстрировано на фиг. 67, декодер 200 включает в себя энтропийный декодер 202, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, контурный фильтр 212, запоминающее устройство 214 кинокадров, модуль 216 внутреннего прогнозирования, модуль 218 взаимного прогнозирования, контроллер 220 прогнозирования, формирователь 222 параметров прогнозирования и модуль 224 определения разбиения. Следует отметить, что модуль 216 внутреннего прогнозирования и модуль 218 взаимного прогнозирования сконфигурированы как часть модуля выполнения прогнозирования.[0417] As illustrated in FIG. 67, 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 movie frame memory 214, an intra prediction module 216, an inter prediction module 218, a prediction controller 220, a prediction parameter generator 222 and a partition determination module 224. It should be noted that the intra prediction module 216 and the inter prediction module 218 are configured as part of the prediction execution module.

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

Фиг. 68 является функциональной блок-схемой, иллюстрирующей пример монтажа декодера 200. Декодер 200 включает в себя процессор b1 и запоминающее устройство b2. Например, множество составляющих элементов декодера 200, проиллюстрированного на фиг. 67, смонтированы в процессоре b1 и запоминающем устройстве b2, проиллюстрированных на фиг. 68.Fig. 68 is a functional 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. 67 are mounted in the processor b1 and memory b2 illustrated in FIG. 68.

[0419] Процессор b1 представляет собой схему, которая выполняет обработку информации, и соединяется с запоминающим устройством b2. Например, процессор b1 представляет собой специализированную или общую электронную схему, которая декодирует поток. Процессор b1 может представлять собой процессор, такой как CPU. Помимо этого, процессор b1 может представлять собой совокупность множества электронных схем. Помимо этого, например, процессор b1 может выполнять роли двух или более составляющих элементов, отличных от составляющего элемента для сохранения информации, из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 67, и т.д.[0419] Processor b1 is a circuit that performs information processing and is connected to memory b2. For example, processor b1 is a specialized or general electronic circuit that decodes the 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, the processor b1 may serve as two or more constituent elements other than the information storing constituent element of the plurality of constituent elements of the decoder 200 illustrated in FIG. 67, etc.

[0420] Запоминающее устройство b2 представляет собой специализированное или общее запоминающее устройство для сохранения информации, которая используется посредством процессора b1 для того, чтобы декодировать поток. Запоминающее устройство b2 может представлять собой электронную схему и может соединяться с процессором b1. Помимо этого, запоминающее устройство b2 может включаться в процессор b1. Помимо этого, запоминающее устройство b2 может представлять собой совокупность множества электронных схем. Помимо этого, запоминающее устройство b2 может представлять собой магнитный диск, оптический диск и т.п. либо может представляться как устройство хранения данных, носитель записи и т.п. Помимо этого, запоминающее устройство b2 может представлять собой энергонезависимое запоминающее устройство или энергозависимое запоминающее устройство.[0420] Memory b2 is a dedicated or general memory for storing information that is used by processor b1 to decode the 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.

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

[0422] Помимо этого, например, запоминающее устройство b2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 67, и т.д. Более конкретно, запоминающее устройство b2 может выполнять роли запоминающего устройства 210 блоков и запоминающего устройства 214 кинокадров, проиллюстрированных на фиг. 67. Более конкретно, запоминающее устройство b2 может сохранять восстановленное изображение (в частности, восстановленный блок, восстановленный кадр и т.п.).[0422] 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. 67, etc. More specifically, the memory b2 may serve as the block memory 210 and the movie frame memory 214 illustrated in FIG. 67. More specifically, the storage device b2 can store a reconstructed image (specifically, a reconstructed block, a reconstructed frame, etc.).

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

[0424] В дальнейшем в этом документе, описывается полная последовательность операций процессов, выполняемых посредством декодера 200, и после этого описывается каждый из составляющих элементов, включенных в декодер 200. Следует отметить, что некоторые составляющие элементы, включенные в декодер 200, выполняют процессы, идентичные процессам, выполняемым посредством части кодера 100, и в силу этого идентичные процессы подробно не описываются повторно. Например, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, запоминающее устройство 214 кинокадров, модуль 216 внутреннего прогнозирования, модуль 218 взаимного прогнозирования, контроллер 220 прогнозирования и контурный фильтр 212, включенные в декодер 200, выполняют процессы, аналогичные процессам, выполняемым посредством обратного квантователя 112, обратного преобразователя 114, сумматора 116, запоминающего устройства 118 блоков, запоминающего устройства 122 кинокадров, модуля 124 внутреннего прогнозирования, модуля 126 взаимного прогнозирования, контроллера 128 прогнозирования и контурного фильтра 120, включенных в декодер 200, соответственно.[0424] Hereinafter, a complete flow of processes performed by the decoder 200 is described, and thereafter each of the constituent elements included in the decoder 200 is described. It should be noted that some of the constituent elements included in the decoder 200 perform processes identical to the processes performed by the encoder portion 100, and therefore the identical processes are not described in detail again. For example, the inverse quantizer 204, inverse converter 206, adder 208, block memory 210, movie frame memory 214, intra prediction module 216, inter prediction module 218, prediction controller 220, and loop filter 212 included in the decoder 200 perform processes similar to processes performed by the inverse quantizer 112, inverse converter 114, adder 116, block memory 118, movie frame memory 122, intra prediction module 124, inter prediction module 126, prediction controller 128, and loop filter 120 included in the decoder 200, respectively.

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

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

[0426] Во-первых, модуль 224 определения разбиения в декодере 200 определяет шаблон разбиения каждого из множества блоков фиксированного размера (128×128 пикселов), включенных в кадр, на основе параметра, который вводится из энтропийного декодера 202 (этап Sp_1). Этот шаблон разбиения представляет собой шаблон разбиения, выбранный посредством кодера 100. Декодер 200 затем выполняет процессы этапа Sp_2-Sp_6 для каждого из множества блоков шаблона разбиения.[0426] First, the partition determination unit 224 in the decoder 200 determines the partition pattern of each of the plurality of fixed size blocks (128×128 pixels) included in the frame based on a parameter that is input from the entropy decoder 202 (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.

[0427] Энтропийный декодер 202 декодирует (в частности, энтропийно декодирует) кодированные квантованные коэффициенты и параметр прогнозирования текущего блока (этап Sp_2).[0427] The entropy decoder 202 decodes (specifically, entropy decodes) the encoded quantized coefficients and the prediction parameter of the current block (step Sp_2).

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

[0429] Затем, модуль выполнения прогнозирования, включающий в себя все или часть из модуля 216 внутреннего прогнозирования, модуля 218 взаимного прогнозирования и контроллера 220 прогнозирования, формирует прогнозный сигнал текущего блока (этап Sp_4).[0429] Next, the prediction execution unit including all or part of the intra prediction unit 216, the inter prediction unit 218, and the prediction controller 220 generates a prediction signal of the current block (step Sp_4).

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

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

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

[0433] Следует отметить, что процессы этих этапов Sp_1-Sp_7 могут выполняться последовательно посредством декодера 200, либо два или более процессов могут выполняться параллельно. Порядок обработки двух или более процессов может модифицироваться.[0433] It should be noted that the processes of these steps Sp_1-Sp_7 may be executed sequentially by the decoder 200, or two or more processes may be executed in parallel. The processing order of two or more processes can be modified.

[0434] Модуль определения разбиения [0434] Partition detection module

Фиг. 70 является концептуальной схемой для иллюстрации взаимосвязи между модулем 224 определения разбиения и другими составляющими элементами в варианте осуществления. Модуль 224 определения разбиения может выполнять следующие процессы в качестве примеров.Fig. 70 is a conceptual diagram for illustrating the relationship between the partition determination module 224 and other constituent elements in the embodiment. The partition determination unit 224 may perform the following processes as examples.

[0435] Например, модуль 224 определения разбиения собирает информацию блоков из запоминающего устройства 210 блоков или запоминающего устройства 214 кинокадров и, кроме того, получает параметр из энтропийного декодера 202. Модуль 224 определения разбиения затем может определять шаблон разбиения блока фиксированного размера, на основе информации блоков и параметра. Модуль 224 определения разбиения затем может выводить информацию, указывающую определенный шаблон разбиения, в обратный преобразователь 206, модуль 216 внутреннего прогнозирования и модуль 218 взаимного прогнозирования. Обратный преобразователь 206 может выполнять обратное преобразование коэффициентов преобразования, на основе шаблона разбиения, указываемого посредством информации из модуля 224 определения разбиения. Модуль 216 внутреннего прогнозирования и модуль 218 взаимного прогнозирования могут формировать прогнозное изображение, на основе шаблона разбиения, указываемого посредством информации из модуля 224 определения разбиения.[0435] For example, the partition determination module 224 collects block information from the block memory 210 or the movie frame memory 214 and further obtains a parameter from the entropy decoder 202. The partition determination module 224 can then determine a fixed-size block partition pattern based on the information blocks and parameter. The partition determination module 224 may then output information indicating the determined partition pattern to the inverter 206, the intra prediction module 216, and the inter prediction module 218. The inverse converter 206 may perform inverse conversion of the transform coefficients based on the partitioning pattern indicated by the information from the partition determination unit 224 . The intra prediction unit 216 and the inter prediction unit 218 may generate a prediction image based on the split pattern indicated by the information from the split determination unit 224.

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

Фиг. 71 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного декодера 202.Fig. 71 is a block diagram illustrating one example of a functional configuration of the entropy decoder 202.

[0437] Энтропийный декодер 202 формирует квантованные коэффициенты, параметр прогнозирования и параметр, связанный с шаблоном разбиения, посредством энтропийного декодирования потока. Например, CABAC используется при энтропийном декодировании. Более конкретно, энтропийно декодировать 202, включает в себя, например, двоичный арифметический декодер 202a, контроллер 202b контекстов и модуль 202c отмены преобразования в двоичную форму. Двоичный арифметический декодер 202a арифметически декодирует поток с использованием значения контекста, извлекаемого посредством контроллера 202b контекстов, в двоичный сигнал. Контроллер 202b контекстов извлекает значение контекста согласно признаку или окружающему состоянию синтаксического элемента, которое представляет собой вероятность возникновения двоичного сигнала, идентично тому, что выполняется посредством контроллера 110b контекстов кодера 100. Модуль 202c отмены преобразования в двоичную форму выполняет отмену преобразования в двоичную форму для преобразования двоичного сигнала, выводимого из двоичного арифметического декодера 202a, в многоуровневый сигнал, указывающий квантованные коэффициенты, как описано выше. Это преобразование в двоичную форму может выполняться согласно способу преобразования в двоичную форму, описанному выше.[0437] Entropy decoder 202 generates quantized coefficients, a prediction parameter, and a parameter associated with the partitioning pattern by entropy decoding the stream. For example, CABAC is used in entropy decoding. More specifically, entropy decode 202 includes, for example, a binary arithmetic decoder 202a, a context controller 202b, and a debinarizer 202c. Binary arithmetic decoder 202a arithmetically decodes the stream using the context value retrieved by context controller 202b into a binary signal. The context controller 202b extracts the context value according to the attribute or surrounding state of the syntactic element, which represents the probability of occurrence of the binary signal, identical to that performed by the context controller 110b of the encoder 100. The debinarization unit 202c performs debinarization to convert the binary signal output from the binary arithmetic decoder 202a into a multi-level signal indicating quantized coefficients, as described above. This binary conversion may be performed according to the binary conversion method described above.

[0438] Вследствие этого, энтропийный декодер 202 выводит квантованные коэффициенты каждого блока в обратный квантователь 204. Энтропийный декодер 202 может выводить параметр прогнозирования, включенный в поток (см. фиг. 1), в модуль 216 внутреннего прогнозирования, модуль 218 взаимного прогнозирования и контроллер 220 прогнозирования. Модуль 216 внутреннего прогнозирования, модуль 218 взаимного прогнозирования и контроллер 220 прогнозирования допускают выполнение процессов прогнозирования, идентичных процессам прогнозирования, выполняемым посредством модуля 124 внутреннего прогнозирования, модуля 126 взаимного прогнозирования и контроллера 128 прогнозирования на стороне кодера 100.[0438] Consequently, the entropy decoder 202 outputs the quantized coefficients of each block to the inverse quantizer 204. The entropy decoder 202 may output the prediction parameter included in the stream (see FIG. 1) to the intra prediction module 216, the inter prediction module 218, and the controller. 220 forecasting. The intra prediction module 216, the inter prediction module 218, and the prediction controller 220 are capable of performing prediction processes identical to the prediction processes performed by the intra prediction module 124, the inter prediction module 126, and the prediction controller 128 on the encoder 100 side.

[0439] Фиг. 72 является концептуальной схемой для иллюстрации последовательности операций примерного CABAC-процесса в энтропийном декодере 202.[0439] FIG. 72 is a conceptual diagram for illustrating the flow of an example CABAC process in entropy decoder 202.

[0440] Во-первых, инициализация выполняется в CABAC в энтропийном декодере 202. При инициализации, инициализация в двоичном арифметическом декодере 202a и задание начального значения контекста выполняется. Двоичный арифметический декодер 202a и модуль 202c отмены преобразования в двоичную форму затем выполняют арифметическое декодирование и отмену преобразования в двоичную форму, например, кодированных данных CTU. В это время, контроллер 202b контекстов обновляет значение контекста каждый раз, когда выполняется арифметическое декодирование. Контроллер 202b контекстов затем сохраняет значение контекста в качестве постобработки. Сохраненное значение контекста используется, например, чтобы инициализировать значение контекста для следующей CTU.[0440] First, initialization is performed in CABAC in the entropy decoder 202. In initialization, initialization in the binary arithmetic decoder 202a and setting the initial value of the context is performed. The binary arithmetic decoder 202a and the debinarization unit 202c then perform arithmetic decoding and debinarization of, for example, the encoded CTU data. At this time, the context controller 202b updates the context value every time arithmetic decoding is performed. The context controller 202b then stores the context value as post-processing. The stored context value is used, for example, to initialize the context value for the next CTU.

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

Обратный квантователь 204 обратно квантует квантованные коэффициенты текущего блока, которые представляют собой вводы из энтропийного декодера 202. Более конкретно, обратный квантователь 204 обратно квантует квантованные коэффициенты текущего блока, на основе параметров квантования, соответствующих квантованным коэффициентам. Обратный квантователь 204 затем выводит обратно квантованные коэффициенты преобразования (которые представляют собой коэффициенты преобразования) текущего блока в обратный преобразователь 206.The inverse quantizer 204 inversely quantizes the quantized coefficients of 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 (which are transform coefficients) of the current block to the inverse transformer 206.

[0442] Фиг. 73 является блок-схемой, иллюстрирующей один пример функциональной конфигурации обратного квантователя 204.[0442] FIG. 73 is a block diagram illustrating one example of the functional configuration of the inverse quantizer 204.

[0443] Обратный квантователь 204 включает в себя, например, формирователь 204a параметров квантования, формирователь 204b прогнозированных параметров квантования, устройство 204d хранения параметров квантования и модуль 204e выполнения обратного квантования.[0443] The inverse quantizer 204 includes, for example, a quantization parameter generator 204a, a predicted quantization parameter generator 204b, a quantization parameter storage device 204d, and an inverse quantization execution unit 204e.

[0444] Фиг. 74 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса обратного квантования, выполняемого посредством обратного квантователя 204.[0444] FIG. 74 is a flowchart illustrating one example of an inverse quantization process performed by the inverse quantizer 204.

[0445] Обратный квантователь 204 может выполнять процесс обратного квантования в качестве одного примера для каждой CU на основе последовательности операций, проиллюстрированной на фиг. 74. Более конкретно, формирователь 204a параметров квантования определяет то, следует или нет выполнять обратное квантование (этап Sv_11). Здесь, при определении необходимости выполнять обратное квантование ("Да" на этапе Sv_11), формирователь 204a параметров квантования получает параметр разностного квантования для текущего блока из энтропийного декодера 202 (этап Sv_12).[0445] The inverse quantizer 204 may perform the inverse quantization process as one example for each CU based on the process flow illustrated in FIG. 74. More specifically, the quantization parameter generator 204a determines whether or not to perform inverse quantization (step Sv_11). Here, upon determining whether to perform inverse quantization (“Yes” in step Sv_11), the quantization parameter generator 204a obtains the difference quantization parameter for the current block from the entropy decoder 202 (step Sv_12).

[0446] Затем, формирователь 204b прогнозированных параметров квантования затем получает параметр квантования для единицы обработки, отличающейся от текущего блока, из устройства 204d хранения параметров квантования (этап Sv_13). Формирователь 204b прогнозированных параметров квантования формирует прогнозированный параметр квантования текущего блока на основе полученного параметра квантования (этап Sv_14).[0446] Next, the predicted quantization parameter generator 204b then obtains the quantization parameter for a processing unit other than the current block from the quantization parameter storage device 204d (step Sv_13). The predicted quantization parameter generator 204b generates a predicted quantization parameter of the current block based on the received quantization parameter (step Sv_14).

[0447] Формирователь 204a параметров квантования затем формирует параметр квантования для текущего блока на основе параметра разностного квантования для текущего блока, полученного из энтропийного декодера 202, и прогнозированного параметра квантования для текущего блока, сформированного посредством формирователя 204b прогнозированных параметров квантования (этап Sv_15). Например, параметр разностного квантования для текущего блока, полученный из энтропийного декодера 202, и прогнозированный параметр квантования для текущего блока, сформированный посредством формирователя 204b прогнозированных параметров квантования, могут суммироваться между собой, чтобы формировать параметр квантования для текущего блока. Помимо этого, формирователь 204a параметров квантования сохраняет параметр квантования для текущего блока в устройстве 204d хранения параметров квантования (этап Sv_16).[0447] The quantization parameter generator 204a then generates a quantization parameter for the current block based on the difference quantization parameter for the current block obtained from the entropy decoder 202 and the predicted quantization parameter for the current block generated by the predicted quantization parameter generator 204b (step Sv_15). For example, a difference quantization parameter for the current block obtained from the entropy decoder 202 and a predicted quantization parameter for the current block generated by the predicted quantization parameter generator 204b may be summed together to generate a quantization parameter for the current block. In addition, the quantization parameter generator 204a stores the quantization parameter for the current block in the quantization parameter storage device 204d (step Sv_16).

[0448] Затем, модуль 204e выполнения обратного квантования обратно квантует квантованные коэффициенты текущего блока в коэффициенты преобразования, с использованием параметра квантования, сформированного на этапе Sv_15 (этап Sv_17).[0448] Next, the inverse quantization execution unit 204e inversely quantizes the quantized coefficients of the current block into transform coefficients using the quantization parameter generated in step Sv_15 (step Sv_17).

[0449] Следует отметить, что параметр разностного квантования может декодироваться на уровне битовой последовательности, уровне кадра, уровне среза, уровне кирпича или уровне CTU. Помимо этого, начальное значение параметра квантования может декодироваться на уровне последовательности, уровне кадра, уровне среза, уровне кирпича или уровне CTU. В это время, параметр квантования может формироваться с использованием начального значения параметра квантования и параметра разностного квантования.[0449] It should be noted that the difference quantization parameter may be decoded at the bit sequence level, frame level, slice level, brick level, or CTU level. In addition, the initial value of the quantization parameter may be decoded at the sequence level, frame level, slice level, brick level, or CTU level. At this time, the quantization parameter can be generated using the initial value of the quantization parameter and the difference quantization parameter.

[0450] Следует отметить, что обратный квантователь 204 может включать в себя множество обратных квантователей и может обратно квантовать квантованные коэффициенты с использованием способа обратного квантования, выбранного из множества способов обратного квантования.[0450] It should be noted that the inverse quantizer 204 may include a plurality of inverse quantizers and may inversely quantize the quantized coefficients using an inverse quantization method selected from a plurality of inverse quantization methods.

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

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

[0452] Например, когда информация, синтаксически проанализированная из потока, указывает то, что EMT или AMT должно применяться (например, когда AMT-флаг является истинным), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока на основе информации, указывающей синтаксически проанализированный тип преобразования.[0452] For example, when information parsed from the stream 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 indicating the parsed type transformations.

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

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

[0455] Например, обратный преобразователь 206 определяет то, присутствует или нет информация, указывающая то, что ортогональное преобразование не выполняется, в потоке (этап St_11). Здесь, при определении того, что эта информация не присутствует ("Нет" на этапе St_11) (например: отсутствие индикаторов в отношении того, выполняется или нет ортогональное преобразование; присутствие индикатора того, что ортогональное преобразование должно выполняться); обратный преобразователь 206 получает информацию, указывающую тип преобразования, декодированный посредством энтропийного декодера 202 (этап St_12). Затем, на основе информации, обратный преобразователь 206 определяет тип преобразования, используемый для ортогонального преобразования в кодере 100 (этап St_13). Обратный преобразователь 206 затем выполняет обратное ортогональное преобразование с использованием определенного типа преобразования (этап St_14). Как проиллюстрировано на фиг. 75, при определении того, что информация, указывающая то, что ортогональное преобразование не выполняется, присутствует ("Да" на этапе St_11) (например, явный индикатор того, что ортогональное преобразование не выполняется; отсутствие индикатора ортогональное преобразование выполняется), ортогональное преобразование не выполняется.[0455] For example, the inverter 206 determines whether or not information indicating that the orthogonal transform is not performed is present in the stream (step St_11). Here, upon determining that this information is not present ("No" in step St_11) (for example: absence of indicators regarding whether the orthogonal transformation is performed or not; presence of an indicator that the orthogonal transformation should be performed); the inverse converter 206 receives information indicating the type of conversion decoded by the entropy decoder 202 (step St_12). Then, based on the information, the inverse transformer 206 determines the transform type used for the orthogonal transform in the encoder 100 (step St_13). The inverter 206 then performs the inverse orthogonal transform using a certain transform type (step St_14). As illustrated in FIG. 75, upon determining that information indicating that the orthogonal transformation is not performed is present ("Yes" in step St_11) (eg, a clear indicator that the orthogonal transformation is not performed; no indicator that the orthogonal transformation is performed), the orthogonal transformation is not performed.

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

[0457] Например, обратный преобразователь 206 определяет то, меньше или равен либо нет размер преобразования определенному значению (этап Su_11). Определенное значение может быть предварительно определено. Здесь, при определении того, что размер преобразования меньше или равен определенному значению ("Да" на этапе Su_11), обратный преобразователь 206 получает, из энтропийного декодера 202, информацию, указывающую то, какой тип преобразования использован посредством кодера 100, по меньшей мере, из одного типа преобразования, включенного в первую группу типов преобразования (этап Su_12). Следует отметить, что эта информация декодируется посредством энтропийного декодера 202 и выводится в обратный преобразователь 206.[0457] For example, the inverter 206 determines whether the transform size is less than, equal to, or not the determined value (step Su_11). A specific value can be predefined. Here, upon determining that the transform size is less than or equal to a certain value ("Yes" in step Su_11), the inverter 206 obtains, from the entropy decoder 202, information indicating what type of transform is used by the encoder 100 at least from one transformation type included in the first group of transformation types (step Su_12). It should be noted that this information is decoded by the entropy decoder 202 and output to the inverter 206.

[0458] На основе информации, обратный преобразователь 206 определяет тип преобразования, используемый для ортогонального преобразования в кодере 100 (этап Su_13). Обратный преобразователь 206 затем выполняет обратное ортогональное преобразование для коэффициентов преобразования текущего блока с использованием определенного типа преобразования (этап Su_14). При определении того, что размер преобразования не меньше или равен определенному значению ("Нет" на этапе Su_11), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока с использованием второй группы типов преобразования (этап Su_15).[0458] Based on the information, the inverter 206 determines the transform type used for the orthogonal transform in the encoder 100 (step Su_13). The inverter 206 then performs an inverse orthogonal transform on the transform coefficients of the current block using a certain transform type (step Su_14). Upon determining that the transform size is not less than or equal to a certain value ("No" in step Su_11), the inverse converter 206 inverts the transform coefficients of the current block using a second group of transform types (step Su_15).

[0459] Следует отметить, что обратное ортогональное преобразование посредством обратного преобразователя 206 может выполняться согласно последовательности операций, проиллюстрированной на фиг. 75 или фиг. 76 для каждой TU, в качестве одного примера. Помимо этого, обратное ортогональное преобразование может выполняться посредством использования заданного типа преобразования без декодирования информации, указывающей тип преобразования, используемый для ортогонального преобразования. Заданный тип преобразования может представлять собой предварительно заданный тип преобразования или тип преобразования по умолчанию. Помимо этого, тип преобразования конкретно может представлять собой DST7, DCT8 и т.п. При обратном ортогональном преобразовании, используется базисная функция обратного преобразования, соответствующая типу преобразования.[0459] It should be noted that the inverse orthogonal transform by the inverter 206 can be performed according to the process flow illustrated in FIG. 75 or fig. 76 for each TU, as one example. In addition, the inverse orthogonal transform can be performed by using a specified transform type without decoding information indicating the transform type used for the orthogonal transform. The specified transformation type may be a predefined transformation type or a default transformation type. In addition, the conversion type may specifically be DST7, DCT8, or the like. For an inverse orthogonal transform, the inverse transform basis function corresponding to the type of transform is used.

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

Сумматор 208 восстанавливает текущий блок посредством суммирования остатка прогнозирования, который представляет собой ввод из обратного преобразователя 206, и прогнозного изображения, которое представляет собой ввод из контроллера 220 прогнозирования. Другими словами, восстановленное изображение текущего блока формируется. Сумматор 208 затем выводит восстановленное изображение текущего блока в запоминающее устройство 210 блоков и контурный фильтр 212.The adder 208 reconstructs the current block by summing the prediction residual, which is the input from the inverter 206, and the prediction image, which is the input from the prediction controller 220. In other words, a reconstructed image of the current block is formed. Adder 208 then outputs the reconstructed image of the current block to block memory 210 and loop filter 212.

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

Запоминающее устройство 210 блоков представляет собой устройство хранения данных для сохранения блока, который включается в текущий кадр, и может упоминаться при внутреннем прогнозировании. Более конкретно, запоминающее устройство 210 блоков сохраняет восстановленное изображение, выводимое из сумматора 208.The block memory 210 is a storage device for storing a block that is included in the current frame, and may be referred to in intra prediction. More specifically, the block memory 210 stores the reconstructed image output from the adder 208.

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

Контурный фильтр 212 применяет контурный фильтр к восстановленному изображению, сформированному посредством сумматора 208, и выводит фильтрованное восстановленное изображение в запоминающее устройство 214 кинокадров и предоставляет вывод декодера 200, например, и выводит на устройство отображения и т.д.The contour filter 212 applies the contour filter to the reconstructed image generated by the adder 208, and outputs the filtered reconstructed image to the movie frame memory 214 and provides an output to the decoder 200, for example, and outputs to a display device, etc.

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

[0464] Фиг. 77 является блок-схемой, иллюстрирующей один пример функциональной конфигурации контурного фильтра 212. Следует отметить, что контурный фильтр 212 имеет конфигурацию, аналогичную конфигурации контурного фильтра 120 кодера 100.[0464] FIG. 77 is a block diagram illustrating one example of a functional configuration of loop filter 212. It should be noted that loop filter 212 has a configuration similar to that of loop filter 120 of encoder 100.

[0465] Например, как проиллюстрировано на фиг. 77, контурный фильтр 212 включает в себя модуль 212a выполнения фильтрации для удаления блочности, модуль 212b SAO-выполнения и модуль 212c ALF-выполнения. Модуль 212a выполнения фильтрации для удаления блочности выполняет процесс фильтрации для удаления блочности для восстановленного изображения. Модуль 212b SAO-выполнения выполняет SAO-процесс для восстановленного изображения после подвергания процессу фильтрации для удаления блочности. Модуль 212c ALF-выполнения выполняет ALF-процесс для восстановленного изображения после подвергания SAO-процессу. Следует отметить, что контурный фильтр 212 не всегда должен включать в себя все составляющие элементы, раскрытые на фиг. 77, и может включать в себя только часть составляющих элементов. Помимо этого, контурный фильтр 212 может быть выполнен с возможностью выполнять вышеуказанные процессы в порядке обработки, отличающемся от порядка обработки, раскрытого на фиг. 77, может не выполнять все процессы, проиллюстрированные на фиг. 77, и т.д.[0465] For example, as illustrated in FIG. 77, the loop filter 212 includes a deblocking filtering execution unit 212a, an SAO execution unit 212b, and an ALF execution unit 212c. The deblocking filtering execution unit 212a performs a deblocking filtering process for the restored image. The SAO execution unit 212b performs the SAO process on the reconstructed image after subjecting it to the deblocking filtering process. The ALF execution unit 212c performs the ALF process on the reconstructed image after being subjected to the SAO process. It should be noted that loop filter 212 need not always include all of the constituent elements disclosed in FIG. 77, and may include only part of the constituent elements. In addition, the loop filter 212 may be configured to perform the above processes in a processing order different from the processing order disclosed in FIG. 77 may not perform all of the processes illustrated in FIG. 77, etc.

[0466] Запоминающее устройство кинокадров [0466] Motion Picture Memory

Запоминающее устройство 214 кинокадров, например, представляет собой устройство хранения данных для сохранения опорных кадров для использования при взаимном прогнозировании, и также может называться "буфером кинокадров". Более конкретно, запоминающее устройство 214 кинокадров сохраняет восстановленное изображение, фильтрованное посредством контурного фильтра 212.The movie frame memory 214, for example, is a storage device for storing reference frames for use in inter-prediction, and may also be referred to as a “motion picture buffer.” More specifically, the movie frame memory 214 stores the reconstructed image filtered by the edge filter 212.

[0467] Модуль прогнозирования (модуль внутреннего прогнозирования, модуль взаимного прогнозирования, контроллер прогнозирования) [0467] Prediction Module (Intra Prediction Module, Inter Prediction Module, Prediction Controller)

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

[0468] Модуль прогнозирования формирует прогнозное изображение текущего блока (этап Sq_1). Это прогнозное изображение также называется "прогнозным сигналом" или "блоком прогнозирования". Следует отметить, что прогнозный сигнал, например, представляет собой внутренний прогнозный сигнал или взаимный прогнозный сигнал. Более конкретно, модуль прогнозирования формирует прогнозное изображение текущего блока с использованием восстановленного изображения, которое уже получено для другого блока через формирование прогнозного изображения, восстановление остатка прогнозирования и суммирование прогнозного изображения. Модуль прогнозирования декодера 200 формирует прогнозное изображение, идентичное прогнозному изображению, сформированному посредством модуля прогнозирования кодера 100. Другими словами, прогнозные изображения формируются согласно способу, общему между модулями прогнозирования, или взаимно соответствующими способами.[0468] The prediction module 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 a mutual prediction signal. More specifically, the prediction module generates a prediction image of the current block using a reconstructed image that has already been obtained for another block through generating the prediction image, reconstructing the prediction residual, and summing the prediction image. The prediction module of the decoder 200 generates a prediction image identical to the prediction image generated by the prediction module of the encoder 100. In other words, the prediction images are generated according to a method common among prediction modules or mutually corresponding methods.

[0469] Восстановленное изображение, например, может представлять собой изображение в опорном кадре или изображение декодированного блока (т.е. другого блока, описанного выше) в текущем кадре, который представляет собой кадр, включающий в себя текущий блок. Декодированный блок в текущем кадре, например, представляет собой соседний блок относительно текущего блока.[0469] The reconstructed image, for example, may be an image in a reference frame or an image of a decoded block (ie, another block described above) in the 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.

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

[0471] Модуль прогнозирования определяет способ или режим для формирования прогнозного изображения (этап Sr_1). Например, способ или режим может определяться, например, на основе параметра прогнозирования и т.д.[0471] The prediction module 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.

[0472] При определении первого способа в качестве режима для формирования прогнозного изображения, модуль прогнозирования формирует прогнозное изображение согласно первому способу (этап Sr_2a). При определении второго способа в качестве режима для формирования прогнозного изображения, модуль прогнозирования формирует прогнозное изображение согласно второму способу (этап Sr_2b). При определении третьего способа в качестве режима для формирования прогнозного изображения, модуль прогнозирования формирует прогнозное изображение согласно третьему способу (этап Sr_2c).[0472] When determining the first method as the mode for generating a prediction image, the prediction module 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 module 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 module generates the prediction image according to the third method (step Sr_2c).

[0473] Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования прогнозного изображения. Каждый из первого-третьего способов может представлять собой способ взаимного прогнозирования, способ внутреннего прогнозирования или другой способ прогнозирования. Вышеописанное восстановленное изображение может использоваться в этих способах прогнозирования.[0473] 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 inter-prediction method, an intra-prediction method, or another prediction method. The above-described reconstructed image can be used in these prediction methods.

[0474] Фиг. 80A-80C (совместно, фиг. 80) являются блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством модуля прогнозирования декодера 200.[0474] FIG. 80A-80C (collectively, FIG. 80) are a flowchart illustrating another example of a process performed by the decoder prediction module 200.

[0475] Модуль прогнозирования может выполнять процесс прогнозирования согласно последовательности операций, проиллюстрированной на фиг. 80, в качестве одного примера. Следует отметить, что внутриблочное копирование, проиллюстрированное на фиг. 80, представляет собой один режим, который принадлежит взаимному прогнозированию, и в котором блок, включенный в текущий кадр, называется "опорным изображением" или "опорным блоком". Другими словами, к кадру, отличающемуся от текущего кадра, не обращаются при внутриблочном копировании. Помимо этого, PCM-режим, проиллюстрированный на фиг. 80, представляет собой один режим, который принадлежит внутреннему прогнозированию, и в котором преобразование и квантование не выполняются.[0475] The prediction module may perform the prediction process according to the flowchart illustrated in FIG. 80, as one example. It should be noted that the intra-block copying illustrated in FIG. 80 is one mode that belongs to inter-prediction, and in which a block included in the current frame is called a “reference image” or a “reference block”. In other words, a frame different from the current frame is not accessed during intra-block copying. In addition, the PCM mode illustrated in FIG. 80 is one mode that belongs to intra prediction, and in which conversion and quantization are not performed.

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

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

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

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

[0479] Фиг. 81 является схемой, иллюстрирующей один пример процесса, выполняемого посредством модуля 216 внутреннего прогнозирования декодера 200.[0479] FIG. 81 is a diagram illustrating one example of a process performed by the intra prediction unit 216 of the decoder 200.

[0480] Модуль 216 внутреннего прогнозирования сначала определяет то, должен или нет использоваться MPM. Как проиллюстрировано на фиг. 81, модуль 216 внутреннего прогнозирования определяет то, присутствует или нет MPM-флаг, указывающий 1, в потоке (этап Sw_11). Здесь, при определении того, что MPM-флаг, указывающий 1, присутствует ("Да" на этапе Sw_11), модуль 216 внутреннего прогнозирования получает, из энтропийного декодера 202, информацию, указывающую режим внутреннего прогнозирования, выбранный в кодере 100, из MPM. Следует отметить, что эта информация декодируется посредством энтропийного декодера 202 и выводится в модуль 216 внутреннего прогнозирования. Затем, модуль 216 внутреннего прогнозирования определяет MPM (этап Sw_13). MPM включают в себя, например, шесть режимов внутреннего прогнозирования. Модуль 216 внутреннего прогнозирования затем определяет режим внутреннего прогнозирования, который включается во множество режимов внутреннего прогнозирования, включенных в MPM, и указывается посредством информации, полученной на этапе Sw_12 (этап Sw_14).[0480] The internal prediction module 216 first determines whether or not the MPM should be used. As illustrated in FIG. 81, the internal prediction unit 216 determines whether or not an MPM flag indicating 1 is present in the stream (step Sw_11). Here, upon determining that the MPM flag indicating 1 is present (“Yes” in step Sw_11), the intra prediction unit 216 obtains, from the entropy decoder 202, information indicating the intra prediction mode selected in the encoder 100 from the MPM. It should be noted that this information is decoded by the entropy decoder 202 and output to the intra prediction module 216. Next, the intra prediction unit 216 determines the MPM (step Sw_13). MPMs include, for example, six intraprediction modes. The intra prediction unit 216 then determines an intra prediction mode that is included in a plurality of intra prediction modes included in the MPM and is indicated by the information obtained in step Sw_12 (step Sw_14).

[0481] При определении того, что MPM-флаг, указывающий 1, не присутствует ("Нет" на этапе Sw_11), модуль 216 внутреннего прогнозирования получает информацию, указывающую режим внутреннего прогнозирования, выбранный в кодере 100 (этап Sw_15). Другими словами, модуль 216 внутреннего прогнозирования получает, из энтропийного декодера 202, информацию, указывающую режим внутреннего прогнозирования, выбранный в кодере 100 из числа, по меньшей мере, одного режима внутреннего прогнозирования, который не включается в MPM. Следует отметить, что эта информация декодируется посредством энтропийного декодера 202 и выводится в модуль 216 внутреннего прогнозирования. Модуль 216 внутреннего прогнозирования затем определяет режим внутреннего прогнозирования, который не включается во множество режимов внутреннего прогнозирования, включенных в MPM, и указывается посредством информации, полученной на этапе Sw_15 (этап Sw_17).[0481] Upon determining that the MPM flag indicating 1 is not present (“No” in step Sw_11), the intra prediction unit 216 obtains information indicating the intra prediction mode selected in the encoder 100 (step Sw_15). In other words, the intra prediction module 216 receives, from the entropy decoder 202, information indicating the intra prediction mode selected in the encoder 100 from among at least one intra prediction mode that is not included in the MPM. It should be noted that this information is decoded by the entropy decoder 202 and output to the intra prediction module 216. The intra prediction unit 216 then determines an intra prediction mode that is not included in the plurality of intra prediction modes included in the MPM and is indicated by the information obtained in step Sw_15 (step Sw_17).

[0482] Модуль 216 внутреннего прогнозирования формирует прогнозное изображение согласно режиму внутреннего прогнозирования, определенному на этапе Sw_14 или на этапе Sw_17 (этап Sw_18).[0482] The intra prediction unit 216 generates a prediction image according to the intra prediction mode determined in step Sw_14 or in step Sw_17 (step Sw_18).

[0483] Модуль взаимного прогнозирования [0483] Mutual Prediction Module

Модуль 218 взаимного прогнозирования прогнозирует текущий блок посредством обращения к опорному кадру, сохраненному в запоминающем устройстве 214 кинокадров. Прогнозирование выполняется в единицах текущего блока или текущего субблока в текущем блоке. Следует отметить, что субблок включается в блок и представляет собой единицу, меньшую блока. Размер субблока может составлять 4×4 пикселов, 8×8 пикселов или другой размер. Размер субблока может переключаться для единицы, такой как срез, кирпич, кадр и т.д.The inter-prediction unit 218 predicts the current block by referring to a reference frame stored in the movie frame memory 214 . Prediction is performed in units of the current block or the current subblock within the current block. It should be noted that a subblock is included in a block and represents a unit smaller than the block. The subblock size can be 4x4 pixels, 8x8 pixels, or other size. The sub-block size can be switched per unit, such as slice, brick, frame, etc.

[0484] Например, модуль 218 взаимного прогнозирования формирует взаимный прогнозный сигнал текущего блока или субблока посредством выполнения компенсации движения посредством использования информации движения (например, вектора движения), синтаксически проанализированной из кодированного потока битов (например, параметра прогнозирования, выводимого из энтропийного декодера 202), и выводит взаимный прогнозный сигнал в контроллер 220 прогнозирования.[0484] For example, the mutual prediction module 218 generates a mutual prediction signal of the current block or sub-block by performing motion compensation by using motion information (e.g., a motion vector) parsed from the encoded bitstream (e.g., a prediction parameter output from the entropy decoder 202) , and outputs the mutual prediction signal to the prediction controller 220.

[0485] Когда информация, синтаксически проанализированная из потока, указывает то, что OBMC-режим должен применяться, модуль 218 взаимного прогнозирования формирует взаимное прогнозное изображение с использованием информации движения соседнего блока в дополнение к информации движения текущего блока, полученной через оценку движения.[0485] When information parsed from the stream indicates that the OBMC mode should be applied, the inter-prediction module 218 generates a inter-prediction image using the motion information of the adjacent block in addition to the motion information of the current block obtained through motion estimation.

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

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

[0488] Последовательность операций для MV-извлечения [0488] Flow for MV Extraction

Фиг. 82 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса MV-извлечения в декодере 200.Fig. 82 is a flowchart illustrating one example of an MV extraction process in the decoder 200.

[0489] Модуль 218 взаимного прогнозирования определяет то, например, следует или нет декодировать информацию движения (например, MV). Например, модуль 218 взаимного прогнозирования может выполнять определение согласно режиму прогнозирования, включенному в поток, или может выполнять определение на основе другой информации, включенной в поток. Здесь, при определении необходимости декодировать информацию движения, модуль 218 взаимного прогнозирования извлекает MV для текущего блока в режиме, в котором информация движения декодируется. При определении необходимости не декодировать информацию движения, модуль 218 взаимного прогнозирования извлекает MV в режиме, в котором информация движения не декодируется.[0489] The inter-prediction module 218 determines whether or not motion information (eg, MV) should be decoded, for example. For example, inter-prediction module 218 may make a determination according to a prediction mode included in the stream, or may make a determination based on other information included in the stream. Here, when determining whether to decode the motion information, the inter-prediction unit 218 extracts the MV for the current block in a mode in which the motion information is decoded. When determining whether to not decode the motion information, the inter-prediction module 218 extracts the MV in a mode in which the motion information is not decoded.

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

[0491] Фиг. 83 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса MV-извлечения в декодере 200.[0491] FIG. 83 is a flowchart illustrating one example of an MV extraction process in the decoder 200.

[0492] Например, модуль 218 взаимного прогнозирования может определять то, следует или нет декодировать MV-разность, т.е., например, может выполнять определение согласно режиму прогнозирования, включенному в поток, или может выполнять определение на основе другой информации, включенной в поток. Здесь, при определении необходимости декодировать MV-разность, модуль 218 взаимного прогнозирования может извлекать MV для текущего блока в режиме, в котором MV-разность декодируется. В этом случае, например, MV-разность, включенная в поток, декодируется в качестве параметра прогнозирования.[0492] For example, the inter-prediction module 218 may determine whether or not to decode the MV difference, i.e., for example, may make a determination according to a prediction mode included in the stream, or may make a determination based on other information included in flow. Here, when determining whether to decode the MV difference, the inter-prediction unit 218 may extract the MV for the current block in a mode in which the MV difference is decoded. In this case, for example, the MV difference included in the stream is decoded as a prediction parameter.

[0493] При определении необходимости вообще не декодировать MV-разность, модуль 218 взаимного прогнозирования извлекает MV в режиме, в котором MV-разность не декодируется. В этом случае, кодированная MV-разность не включается в поток.[0493] When determining whether to decode the MV difference at all, the inter-prediction module 218 extracts the MV in a mode in which the MV difference is not decoded. In this case, the encoded MV difference is not included in the stream.

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

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что нормальный взаимный режим должен применяться, модуль 218 взаимного прогнозирования извлекает MV на основе информации, синтаксически проанализированной из потока, и выполняет компенсацию (прогнозирование) движения с использованием MV.For example, when the information parsed from the stream indicates that the normal reciprocal mode should be applied, the reciprocal prediction module 218 extracts the MV based on the information parsed from the stream and performs motion compensation (prediction) using the MV.

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

[0497] Модуль 218 взаимного прогнозирования декодера 200 выполняет компенсацию движения для каждого блока. Сначала, модуль 218 взаимного прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества декодированных блоков, временно или пространственно окружающих текущий блок (этап Sg_11). Другими словами, модуль 218 взаимного прогнозирования формирует список возможных MV-вариантов.[0497] The inter-prediction module 218 of the decoder 200 performs motion compensation for each block. First, the inter-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 Sg_11). In other words, the inter-prediction module 218 generates a list of possible MV options.

[0498] Затем, модуль 218 взаимного прогнозирования извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Sg_11, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенным рангам в порядке приоритетов (этап Sg_12). Следует отметить, что ранги в порядке приоритетов могут определяться заранее для соответствующих N возможных вариантов MV-предикторов и могут быть предварительно определены.[0498] Next, the inter-prediction module 218 extracts N (an integer of 2 or more) MV candidates from the plurality of MV candidates obtained in step Sg_11 as motion vector predictor candidates (also called “MV candidates”). predictors") according to certain ranks in order of priority (stage Sg_12). It should be noted that the priority order ranks may be predetermined for the corresponding N candidate MV predictors and may be predetermined.

[0499] Затем, модуль 218 взаимного прогнозирования декодирует информацию выбора MV-предикторов из входного потока и выбирает один возможный вариант MV-предиктора из N возможных вариантов MV-предикторов в качестве MV-предиктора для текущего блока с использованием декодированной информации выбора MV-предикторов (этап Sg_13).[0499] Next, the inter-prediction module 218 decodes the MV predictor selection information from the input stream and selects one MV predictor candidate from the N candidate MV predictor candidates as the MV predictor for the current block using the decoded MV predictor selection information ( stage Sg_13).

[0500] Затем, модуль 218 взаимного прогнозирования декодирует MV-разность из входного потока и извлекает MV для текущего блока посредством суммирования значения разности, которое представляет собой декодированную MV-разность, и выбранного MV-предиктора (этап Sg_14).[0500] Next, the inter-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 MV predictor (step Sg_14).

[0501] В завершение, модуль 218 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированного опорного кадра (этап Sg_15). Процессы на этапах Sg_11-Sg_15 выполняются для каждого блока. Например, когда процессы на этапах Sg_11-Sg_15 выполняются для каждого из всех блоков в срезе, взаимное прогнозирование среза с использованием нормального взаимного режима заканчивается. Например, когда процессы на этапах Sg_11-Sg_15 выполняются для каждого из всех блоков в кадре, взаимное прогнозирование кадра с использованием нормального взаимного режима заканчивается. Следует отметить, что не все блоки, включенные в срез, могут подвергаться процессам на этапах Sg_11-Sg_15, и взаимное прогнозирование среза с использованием нормального взаимного режима может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к кадрам на этапах Sg_11-Sg_15. Взаимное прогнозирование кадра с использованием нормального взаимного режима может заканчиваться, когда процессы выполняются для части блоков в кадре.[0501] Finally, the inter 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 Sg_15). Processes in stages Sg_11-Sg_15 are executed for each block. For example, when the processes in steps Sg_11 to Sg_15 are executed for each of all blocks in the slice, the slice reciprocal prediction using the normal reciprocal mode ends. For example, when the processes in steps Sg_11 to Sg_15 are executed for each of all blocks in a frame, frame inter-prediction using the normal inter-mode ends. It should be noted that not all blocks included in the slice may be subject to processes in steps Sg_11 to Sg_15, and slice mutual prediction using the normal mutual mode may end when a portion of the blocks are subject to processes. This also applies to frames in stages Sg_11-Sg_15. Frame reciprocal prediction using normal reciprocal mode may end when processes are running on a portion of the blocks in the frame.

[0502] MV-извлечение > режим нормального объединения [0502] MV extract > normal merge mode

Например, когда информация, синтаксически проанализированная из потока, указывает то, что режим нормального объединения должен применяться, модуль 218 взаимного прогнозирования извлекает MV и выполняет компенсацию (прогнозирование) движения с использованием MV.For example, when information parsed from the stream indicates that the normal combining mode should be applied, the inter-prediction module 218 extracts the MV and performs motion compensation (prediction) using the MV.

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

[0504] Модуль 218 взаимного прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества декодированных блоков, временно или пространственно окружающих текущий блок (этап Sh_11). Другими словами, модуль 218 взаимного прогнозирования формирует список возможных MV-вариантов.[0504] The inter-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 Sh_11). In other words, the inter-prediction module 218 generates a list of possible MV options.

[0505] Затем, модуль 218 взаимного прогнозирования выбирает один возможный MV-вариант из множества возможных MV-вариантов, полученных на этапе Sh_11, извлекая MV текущего блока (этап Sh_12). Более конкретно, модуль 218 взаимного прогнозирования получает информацию MV-выбора, включенную в качестве параметра прогнозирования в поток, и выбирает возможный MV-вариант, идентифицированный посредством информации MV-выбора в качестве MV для текущего блока.[0505] Next, the inter-prediction module 218 selects one candidate MV from the plurality of candidate MVs obtained in step Sh_11 by extracting the MV of the current block (step Sh_12). More specifically, the inter-prediction unit 218 receives the MV selection information included as a prediction parameter in the stream, and selects the candidate MV identified by the MV selection information as the MV for the current block.

[0506] В завершение, модуль 218 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированного опорного кадра (этап Sh_13). Процессы на этапах Sh_11-Sh_13 выполняются, например, для каждого блока. Например, когда процессы на этапах Sh_11-Sh_13 выполняются для каждого из всех блоков в срезе, взаимное прогнозирование среза с использованием режима нормального объединения заканчивается. Помимо этого, когда процессы на этапах Sh_11-Sh_13 выполняются для каждого из всех блоков в кадре, взаимное прогнозирование кадра с использованием режима нормального объединения заканчивается. Следует отметить, что не все блоки, включенные в срез, подвергаются процессам на этапах Sh_11-Sh_13, и взаимное прогнозирование среза с использованием режима нормального объединения может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к кадрам на этапах Sh_11-Sh_13. Взаимное прогнозирование кадра с использованием режима нормального объединения может заканчиваться, когда процессы выполняются для части блоков в кадре.[0506] Finally, the inter 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 Sh_13). The processes in stages Sh_11-Sh_13 are performed, for example, for each block. For example, when the processes in steps Sh_11 to Sh_13 are executed for each of all blocks in the slice, cross-prediction of the slice using the normal pooling mode ends. In addition, when the processes in steps Sh_11 to Sh_13 are executed for each of all blocks in a frame, frame inter-prediction using the normal combining mode ends. It should be noted that not all blocks included in the slice are processed in steps Sh_11 to Sh_13, and cross-prediction of the slice using the normal pooling mode may end when a portion of the blocks are processed. This also applies to frames in stages Sh_11-Sh_13. Mutual frame prediction using normal merging mode may end when processes are running on a portion of the blocks in the frame.

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что FRUC-режим должен применяться, модуль 218 взаимного прогнозирования извлекает MV в FRUC-режиме и выполняет компенсацию (прогнозирование) движения с использованием MV. В этом случае, информация движения извлекается на стороне декодера 200 без передачи в служебных сигналах из стороны кодера 100. Например, декодер 200 может извлекать информацию движения посредством выполнения оценки движения. В этом случае, декодер 200 выполняет оценку движения вообще без использования пиксельных значений в текущем блоке.For example, when information parsed from the stream indicates that the FRUC mode should be applied, the inter-prediction module 218 extracts the MV in the FRUC mode and performs motion compensation (prediction) using the MV. In this case, motion information is extracted at the decoder 200 side without being signaled from the encoder 100 side. For example, the decoder 200 may extract motion information by performing motion estimation. In this case, decoder 200 performs motion estimation without using the pixel values in the current block at all.

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

[0509] Во-первых, модуль 218 взаимного прогнозирования формирует список, указывающий MV декодированных блоков, пространственно или временно соседних с текущие блоком, посредством обращения к MV в качестве возможных MV-вариантов (список представляет собой список возможных MV-вариантов и, например, может использоваться также в качестве списка возможных MV-вариантов для режима нормального объединения (этап Si_11). Затем, наилучший возможный MV-вариант выбирается из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов (этап Si_12). Например, модуль 218 взаимного прогнозирования вычисляет значение оценки каждого возможного MV-варианта, включенного в список возможных MV-вариантов, и выбирает один из возможных MV-вариантов в качестве наилучшего возможного MV-варианта на основе значений оценки. На основе выбранных наилучших возможных MV-вариантов, модуль 218 взаимного прогнозирования затем извлекает MV для текущего блока (этап Si_14). Более конкретно, например, выбранные наилучшие возможные MV-варианты непосредственно извлекаются в качестве MV для текущего блока. Помимо этого, например, MV для текущего блока может извлекаться с использованием сопоставления с шаблоном в окружающей области позиции, которая включается в опорный кадр и соответствует выбранному наилучшему возможному MV-варианту. Другими словами, оценка с использованием сопоставления с шаблоном в опорном кадре и значений оценки может выполняться в окружающей области наилучшего возможного MV-варианта, и когда имеется MV, который дает в результате лучшее значение оценки, наилучший возможный MV-вариант может обновляться на MV, который дает в результате лучшее значение оценки, и обновленный MV может определяться в качестве конечного MV для текущего блока. В варианте осуществления, обновление на MV, который дает в результате лучшее значение оценки, может не выполняться.[0509] First, the inter-prediction module 218 generates a list indicating the MVs of decoded blocks spatially or temporally adjacent to the current block by referring to the MVs as MV candidates (the list is a list of MV candidates and, for example, can also be used as a candidate MV candidate list for the normal combining mode (step Si_11). Then, the best possible MV candidate is selected from the plurality of candidate MV candidates registered in the candidate MV candidate list (step Si_12). For example, module 218. mutual prediction calculates the score value of each possible MV option included in the list of possible MV options, and selects one of the possible MV options as the best possible MV option based on the score values Based on the selected best possible MV options, module 218. The mutual prediction then extracts the MV for the current block (step Si_14). More specifically, for example, the selected best possible MVs are directly extracted as the MV for the current block. In addition, for example, the MV for the current block may be retrieved using pattern matching in the surrounding region of a position that is included in the reference frame and corresponds to the selected best possible MV candidate. In other words, evaluation using template matching on the reference frame and evaluation values can be performed on the surrounding region of the best possible MV candidate, and when there is an MV that results in a better evaluation value, the best possible MV candidate can be updated to the MV that results in a better score value, and the updated MV can be determined as the final MV for the current block. In an embodiment, the update to the MV that results in a better score value may not be performed.

[0510] В завершение, модуль 218 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированного опорного кадра (этап Si_15). Процессы на этапах Si_11-Si_15 выполняются, например, для каждого блока. Например, когда процессы на этапах Si_11-Si_15 выполняются для каждого из всех блоков в срезе, взаимное прогнозирование среза с использованием FRUC-режима заканчивается. Например, когда процессы на этапах Si_11-Si_15 выполняются для каждого из всех блоков в кадре, взаимное прогнозирование кадра с использованием FRUC-режима заканчивается. Каждый субблок может обрабатываться аналогично случаю каждого блока.[0510] Finally, the inter 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 Si_15). The processes in stages Si_11-Si_15 are performed, for example, for each block. For example, when the processes in steps Si_11-Si_15 are executed for each of all blocks in a slice, the cross-prediction of the slice using the FRUC mode ends. For example, when the processes in steps Si_11 to Si_15 are executed for each of all blocks in a frame, frame inter-prediction using the FRUC mode ends. Each subblock can be processed similarly to the case of each block.

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что аффинный режим объединения должен применяться, модуль 218 взаимного прогнозирования извлекает MV в аффинном режиме объединения и выполняет компенсацию (прогнозирование) движения с использованием MV.For example, when information parsed from the stream indicates that the affine combining mode should be applied, the inter-prediction module 218 extracts the MV in the affine combining mode and performs motion compensation (prediction) using the MV.

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

[0513] В аффинном режиме объединения, во-первых, модуль 218 взаимного прогнозирования извлекает MV в соответствующих управляющих точках для текущего блока (этап Sk_11). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 46A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 46B.[0513] In the affine merge mode, first, the inter-prediction module 218 extracts the MVs at the corresponding control points for the current block (step Sk_11). 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. 46A, 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. 46B.

[0514] Например, когда способы MV-извлечения, проиллюстрированные на фиг. 47A-47C, используются, как проиллюстрировано на фиг. 47A, модуль 218 взаимного прогнозирования проверяет декодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) в этом порядке и идентифицирует первый эффективный блок, декодированный согласно аффинному режиму. Модуль 218 взаимного прогнозирования извлекает MV в управляющей точке с использованием идентифицированного первого эффективного блока, декодированного согласно аффинному режиму. Например, когда блок A идентифицируется, и блок A имеет две управляющих точки, как проиллюстрировано на фиг. 47B, модуль 218 взаимного прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока из векторов v3 и v4 движения в верхнем левом углу и в верхнем правом углу декодированного блока, включающего в себя блок A. Таким образом, MV в каждой управляющей точке извлекается.[0514] For example, when the MV extraction methods illustrated in FIG. 47A-47C are used as illustrated in FIGS. 47A, inter-prediction module 218 examines the decoded block A (left), block B (upper), block C (upper right), block D (lower left), and block E (upper left) in that order and identifies the first effective block decoded according to the affine regime. The inter-prediction module 218 extracts the MV at the control point using the identified first effective block decoded according to the affine mode. For example, when block A is identified and block A has two control points, as illustrated in FIG. 47B, the inter-prediction module 218 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 decoded block including block A. Thus, the MV at each control point is extracted.

[0515] Следует отметить, что, как проиллюстрировано на фиг. 49A, MV в трех управляющих точках могут вычисляться, когда блок A идентифицируется, и блок A имеет две управляющих точки, и что, как проиллюстрировано на фиг. 49B, MV в двух управляющих точках могут вычисляться, когда блок A идентифицируется, и когда блок A имеет три управляющих точки.[0515] It should be noted that, as illustrated in FIG. 49A, MVs at three control points can be calculated when block A is identified and block A has two control points, and that, as illustrated in FIG. 49B, MVs at two control points can be calculated when block A is identified and when block A has three control points.

[0516] Помимо этого, когда информация MV-выбора включается в качестве параметра прогнозирования в потоке, модуль 218 взаимного прогнозирования может извлекать MV в каждой управляющей точке для текущего блока с использованием информации MV-выбора.[0516] In addition, when MV selection information is included as a prediction parameter in a stream, inter-prediction module 218 can extract MVs at each control point for the current block using the MV selection information.

[0517] Затем, модуль 218 взаимного прогнозирования выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 218 взаимного прогнозирования вычисляет MV для каждого из множества субблоков в качестве аффинного MV, с использованием либо двух векторов v0 и v1 движения и вышеуказанного выражения (1A), либо трех векторов v0, v1 и v2 движения и вышеуказанного выражения (1B) (этап Sk_12). Модуль 218 взаимного прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и декодированных опорных кадров (этап Sk_13). Когда процессы на этапах Sk_12 и Sk_13 выполняются для каждого из субблоков, включенных в текущий блок, взаимное прогнозирование с использованием аффинного режима объединения для текущего блока завершается. Другими словами, компенсация движения текущего блока выполняется для того, чтобы формировать прогнозное изображение текущего блока.[0517] Next, the inter-prediction module 218 performs motion compensation of each of the plurality of sub-blocks included in the current block. In other words, the inter-prediction module 218 calculates the MV for each of the plurality of sub-blocks as an affine MV using either the two motion vectors v 0 and v 1 and the above expression (1A) or the three motion vectors v 0 , v 1 and v 2 and the above expression (1B) (step Sk_12). The inter-prediction module 218 then performs motion compensation of the sub-blocks using these affine MVs and the decoded reference frames (step Sk_13). When the processes in steps Sk_12 and Sk_13 are executed for each of the sub-blocks included in the current block, mutual prediction using the affine join mode for the current block is completed. In other words, motion compensation of the current block is performed in order to generate a predictive image of the current block.

[0518] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sk_11. Список возможных MV-вариантов, например, может представлять собой список, включающий в себя возможные MV-варианты, извлекаемые с использованием множества способов MV-извлечения для каждой управляющей точки. Множество способов MV-извлечения, например, могут представлять собой любую комбинацию способов MV-извлечения, проиллюстрированных на фиг. 47A-47C, способов MV-извлечения, проиллюстрированных на фиг. 48A и 48B, способов MV-извлечения, проиллюстрированных на фиг. 49A и 49B, и других способов MV-извлечения.[0518] It should be noted that the above-described list of possible MV options can be generated at step Sk_11. The MV candidate list, for example, may be a list including MV candidate candidates extracted using a plurality of MV extraction methods for each control point. The plurality of MV extraction methods, for example, may be any combination of the MV extraction methods illustrated in FIG. 47A-47C, the MV extraction methods illustrated in FIGS. 48A and 48B, the MV extraction methods illustrated in FIGS. 49A and 49B, and other MV extraction methods.

[0519] Следует отметить, что список возможных MV-вариантов может включать в себя возможные MV-варианты в режиме, в котором прогнозирование выполняется в единицах субблоков, отличном от аффинного режима.[0519] It should be noted that the list of possible MV options may include possible MV options in a mode in which prediction is performed in subblock units other than the affine mode.

[0520] Следует отметить, что, например, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются две управляющих точки, и в аффинном режиме объединения, в котором используются три управляющих точки, может формироваться в качестве списка возможных MV-вариантов. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются две управляющих точки, и список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются три управляющих точки, могут формироваться отдельно. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в одном из аффинного режима объединения, в котором используются две управляющих точки, и аффинного режима объединения, в котором используются три управляющих точки, может формироваться.[0520] It should be noted that, for example, a list of possible MV options including possible MV options in the affine pooling mode in which two control points are used and in the affine combining mode in which three control points are used can be generated as a list of possible MV options. Alternatively, a list of possible MV options including possible MV options in an affine join mode that uses two control points, and a list of possible MV options including possible MV options in an affine join mode that uses three control points can be formed separately. Alternatively, a list of possible MV options including possible MV options in one of an affine join mode that uses two control points and an affine join mode that uses three control points can be generated.

[0521] MV-извлечение > аффинный взаимный режим [0521] MV Extraction > Affine Mutual Mode

Например, когда информация, синтаксически проанализированная из потока, указывает то, что аффинный взаимный режим должен применяться, модуль 218 взаимного прогнозирования извлекает MV в аффинном взаимном режиме и выполняет компенсацию (прогнозирование) движения с использованием MV.For example, when information parsed from the stream indicates that the affine reciprocal mode should be applied, the reciprocal prediction module 218 extracts the MV in the affine reciprocal mode and performs motion compensation (prediction) using the MV.

[0522] Фиг. 88 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса взаимного прогнозирования посредством аффинного взаимного режима в декодере 200.[0522] FIG. 88 is a flowchart illustrating an example of a mutual prediction process by affine mutual mode in the decoder 200.

[0523] В аффинном взаимном режиме, сначала, модуль 218 взаимного прогнозирования извлекает MV-предикторы (v0, v1) или (v0, v1, v2) соответствующих двух или трех управляющих точек текущего блока (этап Sj_11). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 46A или фиг. 46B.[0523] In the affine mutual mode, first, the mutual prediction module 218 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_11). The control points are 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. 46A or FIG. 46B.

[0524] Модуль 218 взаимного прогнозирования получает информацию выбора MV-предикторов, включенную в качестве параметра прогнозирования в поток, и извлекает MV-предиктор в каждой управляющей точке для текущего блока с использованием MV, идентифицированного посредством информации выбора MV-предикторов. Например, когда способы MV-извлечения, проиллюстрированные на фиг. 48A и 48B, используются, модуль 218 взаимного прогнозирования извлекает предикторы (v0, v1) или (v0, v1, v2) векторов движения в управляющих точках для текущего блока посредством выбора MV блока, идентифицированного посредством информации выбора MV-предикторов, из декодированных блоков около соответствующих управляющих точек для текущего блока, проиллюстрированного на фиг. 48A либо на фиг. 48B.[0524] The inter-prediction unit 218 receives the MV predictor selection information included as a prediction parameter in the stream, and extracts an MV predictor at each control point for the current block using the MV identified by the MV predictor selection information. For example, when the MV extraction methods illustrated in FIG. 48A and 48B are used, the inter-prediction module 218 retrieves the ( v0 , v1 ) or ( v0 , v1 , v2 ) motion vector predictors at the control points for the current block by selecting the MV block identified by the MV predictor selection information. , from the decoded blocks around the corresponding control points for the current block illustrated in FIG. 48A or in FIG. 48B.

[0525] Затем, модуль 218 взаимного прогнозирования получает каждую MV-разность, включенную в качестве параметра прогнозирования в поток, и суммирует MV-предиктор в каждой управляющей точке для текущего блока и MV-разность, соответствующую MV-предиктору (этап Sj_12). Таким образом, MV в каждой управляющей точке для текущего блока извлекается.[0525] Next, the inter-prediction unit 218 receives each MV difference included as a prediction parameter in the stream, and sums the MV predictor at each control point for the current block and the MV difference corresponding to the MV predictor (step Sj_12). Thus, the MV at each control point for the current block is retrieved.

[0526] Затем, модуль 218 взаимного прогнозирования выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 218 взаимного прогнозирования вычисляет MV для каждого из множества субблоков в качестве аффинного MV с использованием либо двух векторов v0 и v1 движения и вышеуказанного выражения (1A), либо трех векторов v0, v1 и v2 движения и вышеуказанного выражения (1B) (этап Sj_13). Модуль 218 взаимного прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и декодированных опорных кадров (этап Sj_14). Когда процессы на этапах Sj_13 и Sj_14 выполняются для каждого из субблоков, включенных в текущий блок, взаимное прогнозирование с использованием аффинного режима объединения для текущего блока завершается. Другими словами, компенсация движения текущего блока выполняется для того, чтобы формировать прогнозное изображение текущего блока.[0526] Next, the inter-prediction module 218 performs motion compensation of each of the plurality of sub-blocks included in the current block. In other words, the inter-prediction module 218 calculates the MV for each of the plurality of sub-blocks as an affine MV using either the two motion vectors v 0 and v 1 and the above expression (1A) or the three motion vectors v 0 , v 1 and v 2 and the above expressions (1B) (step Sj_13). The inter-prediction module 218 then performs motion compensation of the sub-blocks using these affine MVs and the decoded reference frames (step Sj_14). When the processes in steps Sj_13 and Sj_14 are executed for each of the sub-blocks included in the current block, the inter-prediction using the affine join mode for the current block is completed. In other words, motion compensation of the current block is performed in order to generate a predictive image of the current block.

[0527] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sj_11, аналогично этапу Sk_11.[0527] It should be noted that the above-described list of possible MV options can be generated in step Sj_11, similar to step Sk_11.

[0528] MV-извлечение > треугольный режим [0528] MV extract > triangle mode

Например, когда информация, синтаксически проанализированная из потока, указывает то, что треугольный режим должен применяться, модуль 218 взаимного прогнозирования извлекает MV в треугольном режиме и выполняет компенсацию (прогнозирование) движения с использованием MV.For example, when information parsed from the stream indicates that the triangle mode should be applied, the inter-prediction module 218 extracts the MV in the triangle mode and performs motion compensation (prediction) using the MV.

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

[0530] В треугольном режиме, во-первых, модуль 218 взаимного прогнозирования разбивает текущий блок на первый сегмент и второй сегмент (этап Sx_11). Например, модуль 218 взаимного прогнозирования может получать, из потока, информацию сегментов, которая представляет собой информацию, связанную с разбиением, в качестве параметра прогнозирования. Модуль 218 взаимного прогнозирования затем может разбивать текущий блок на первый сегмент и второй сегмент согласно информации сегментов.[0530] In the triangle mode, first, the inter-prediction unit 218 splits the current block into a first segment and a second segment (step Sx_11). For example, the inter-prediction module 218 may obtain, from the stream, segment information, which is partition-related information, as a prediction parameter. The inter-prediction module 218 can then split the current block into a first segment and a second segment according to the segment information.

[0531] Затем, модуль 218 взаимного прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества декодированных блоков, временно или пространственно окружающих текущий блок (этап Sx_12). Другими словами, модуль 218 взаимного прогнозирования формирует список возможных MV-вариантов.[0531] Next, inter-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 Sx_12). In other words, the inter-prediction module 218 generates a list of possible MV options.

[0532] Модуль 218 взаимного прогнозирования затем выбирает возможный MV-вариант для первого сегмента и возможный MV-вариант для второго сегмента в качестве первого MV и второго MV, соответственно, из множества возможных MV-вариантов, полученных на этапе Sx_11 (этап Sx_13). В это время, модуль 218 взаимного прогнозирования может получать, из потока, информацию MV-выбора для идентификации выбранного возможного MV-варианта в качестве параметра прогнозирования. Модуль 218 взаимного прогнозирования затем может выбирать первый MV и второй MV согласно информации MV-выбора.[0532] The inter-prediction module 218 then selects a candidate MV for the first segment and a candidate MV for the second segment as the first MV and the second MV, respectively, from the plurality of candidate MVs obtained in step Sx_11 (step Sx_13). At this time, the inter-prediction module 218 may obtain, from the stream, MV selection information to identify a selected MV candidate as a prediction parameter. The inter-prediction unit 218 can then select the first MV and the second MV according to the MV selection information.

[0533] Затем, модуль 218 взаимного прогнозирования формирует первое прогнозное изображение посредством выполнения компенсации движения с использованием выбранного первого MV и декодированного опорного кадра (этап Sx_14). Аналогично, модуль 218 взаимного прогнозирования формирует второе прогнозное изображение посредством выполнения компенсации движения с использованием выбранного второго MV и декодированного опорного кадра (этап Sx_15).[0533] Next, the inter prediction unit 218 generates a first prediction image by performing motion compensation using the selected first MV and the decoded reference frame (step Sx_14). Likewise, the inter-prediction module 218 generates a second prediction image by performing motion compensation using the selected second MV and the decoded reference frame (step Sx_15).

[0534] В завершение, модуль 218 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения суммирования со взвешиванием первого прогнозного изображения и второго прогнозного изображения (этап Sx_16).[0534] Finally, the inter prediction unit 218 generates a prediction image for the current block by performing a weighting summation of the first prediction image and the second prediction image (step Sx_16).

[0535] MV-оценка > DMVR [0535] MV evaluation > DMVR

Например, информация, синтаксически проанализированная из потока, указывает то, что DMVR должна применяться, модуль 218 взаимного прогнозирования выполняет оценку движения с использованием DMVR.For example, the information parsed from the stream indicates that the DMVR should be applied, the inter-prediction module 218 performs motion estimation using the DMVR.

[0536] Фиг. 90 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса оценки движения посредством DMVR в декодере 200.[0536] FIG. 90 is a flowchart illustrating an example of a motion estimation process by DMVR in the decoder 200.

[0537] Модуль 218 взаимного прогнозирования извлекает MV для текущего блока согласно режиму объединения (этап Sl_11). Затем, модуль 218 взаимного прогнозирования извлекает конечный MV для текущего блока посредством выполнения поиска в области, окружающей опорный кадр, указываемый посредством MV, извлекаемого на Sl_11 (этап Sl_12). Другими словами, в этом случае, MV текущего блока определяется согласно DMVR.[0537] The inter-prediction unit 218 extracts the MV for the current block according to the combining mode (step Sl_11). Next, the inter-prediction unit 218 extracts the final MV for the current block by searching in the area surrounding the reference frame indicated by the MV extracted at Sl_11 (step Sl_12). In other words, in this case, the MV of the current block is determined according to the DMVR.

[0538] Фиг. 91 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса оценки движения посредством DMVR в декодере 200 и является идентичным фиг. 58B.[0538] FIG. 91 is a flowchart illustrating an example of a motion estimation process by DMVR in the decoder 200 and is identical to FIG. 58B.

[0539] Во-первых, на этапе 1, проиллюстрированном на фиг. 58A, модуль 218 взаимного прогнозирования вычисляет затраты между позицией поиска (также называемой "начальной точкой"), указываемой посредством начального MV, и восемью окружающими позициями поиска. Модуль 218 взаимного прогнозирования затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в одной из позиций поиска, отличных от начальной точки, являются наименьшими, модуль 218 взаимного прогнозирования изменяет цель на позицию поиска, в которой наименьшие затраты получаются, и выполняет процесс на этапе 2, проиллюстрированном на фиг. 58. Когда затраты в начальной точке являются наименьшими, модуль 218 взаимного прогнозирования пропускает процесс на этапе 2, проиллюстрированном на фиг. 58A, и выполняет процесс на этапе 3.[0539] First, in step 1 illustrated in FIG. 58A, the inter-prediction module 218 calculates the costs between the search position (also called the “starting point”) indicated by the initial MV and the eight surrounding search positions. The mutual prediction module 218 then determines whether or not the costs at each of the search positions other than the starting point are the smallest. Here, upon determining that the cost at one of the search positions other than the starting point is the smallest, the inter-prediction unit 218 changes the target to the search position at which the smallest cost is obtained and carries out the process in step 2 illustrated in FIG. 58. When the cost at the starting point is the smallest, the inter-prediction module 218 skips the process in step 2 illustrated in FIG. 58A, and carries out the process in step 3.

[0540] На этапе 2, проиллюстрированном на фиг. 58A, модуль 218 взаимного прогнозирования выполняет поиск, аналогичный процессу на этапе 1, относительно позиции поиска после того, как цель изменяется, в качестве новой начальной точки согласно результату процесса на этапе 1. Модуль 218 взаимного прогнозирования затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в одной из позиций поиска, отличных от начальной точки, являются наименьшими, модуль 218 взаимного прогнозирования выполняет процесс на этапе 4. Когда затраты в начальной точке являются наименьшими, модуль 218 взаимного прогнозирования выполняет процесс на этапе 3.[0540] In step 2, illustrated in FIG. 58A, the inter-prediction unit 218 performs a search similar to the process in step 1 regarding the search position after the target is changed as a new starting point according to the result of the process in step 1. The inter-prediction unit 218 then determines whether or not the costs are in each of the search positions other than the starting point, the smallest. Here, when determining that the cost at one of the search positions other than the starting point is the smallest, the inter-prediction unit 218 executes the process in step 4. When the cost at the starting point is the smallest, the inter-prediction unit 218 executes the process in step 3.

[0541] На этапе 4, модуль 218 взаимного прогнозирования рассматривает позицию поиска в начальной точке в качестве конечной позиции поиска и определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.[0541] In step 4, the inter-prediction unit 218 considers the search position at the start point as the search end position, and determines the difference between the position indicated by the start MV and the search end position as a vector difference.

[0542] На этапе 3, проиллюстрированном на фиг. 58A, модуль 218 взаимного прогнозирования определяет пиксельную позицию с субпиксельной точностью, при которой наименьшие затраты получаются, на основе затрат в четырех точках, расположенных в верхней, нижней, левой и правой позициях относительно начальной точки на этапе 1 или на этапе 2, и рассматривает пиксельную позицию в качестве конечной позиции поиска.[0542] In step 3, illustrated in FIG. 58A, the inter-prediction module 218 determines the sub-pixel precision pixel position at which the lowest cost is obtained based on the costs at four points located at the top, bottom, left and right positions relative to the starting point in step 1 or step 2, and considers the pixel position position as the final search position.

[0543] Пиксельная позиция с субпиксельной точностью определяется посредством выполнения суммирования со взвешиванием каждого из четырех верхнего, нижнего, левого и правого векторов ((0, 1), (0,-1), (-1, 0) и (1, 0)), с использованием, в качестве весового коэффициента, затрат в соответствующих одной из четырех позиций поиска. Модуль 218 взаимного прогнозирования затем определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.[0543] The pixel position with sub-pixel precision is determined by performing a summation weighting each of the four top, bottom, left and right vectors ((0, 1), (0,-1), (-1, 0) and (1, 0 )), using, as a weighting factor, the costs corresponding to one of the four search positions. The inter-prediction unit 218 then determines the difference between the position indicated by the initial MV and the final search position as a vector difference.

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что коррекция прогнозного изображения должна выполняться при формировании прогнозного изображения, модуль 218 взаимного прогнозирования корректирует прогнозное изображение на основе режима для коррекции. Режим, например, представляет собой одно из BIO, OBMC и LIC, описанных выше.For example, when information parsed from the stream indicates that prediction image correction should be performed when generating the prediction image, the inter-prediction unit 218 corrects the prediction image based on the mode for correction. The mode, for example, is one of BIO, OBMC and LIC described above.

[0545] Фиг. 92 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса формирования прогнозного изображения в декодере 200.[0545] FIG. 92 is a flowchart illustrating one example of a prediction image generation process in the decoder 200.

[0546] Модуль 218 взаимного прогнозирования формирует прогнозное изображение (этап Sm_11) и корректирует прогнозное изображение согласно любому из режимов, описанных выше (этап Sm_12).[0546] The mutual prediction unit 218 generates a prediction image (step Sm_11) and corrects the prediction image according to any of the modes described above (step Sm_12).

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

[0548] Модуль 218 взаимного прогнозирования извлекает MV для текущего блока (этап Sn_11). Затем, модуль 218 взаимного прогнозирования формирует прогнозное изображение с использованием MV (этап Sn_12) и определяет то, следует или нет выполнять процесс коррекции (этап Sn_13). Например, модуль 218 взаимного прогнозирования получает параметр прогнозирования, включенный в поток, и определяет то, следует или нет выполнять процесс коррекции, на основе параметра прогнозирования. Этот параметр прогнозирования, например, представляет собой флаг, указывающий то, должны либо нет применяться один или более вышеописанных режимов. Здесь, при определении необходимости выполнять процесс коррекции ("Да" на этапе Sn_13), модуль 218 взаимного прогнозирования формирует конечное прогнозное изображение посредством коррекции прогнозного изображения (этап Sn_14). Следует отметить, что, в LIC, яркость и цветность может корректироваться на этапе Sn_14. При определении необходимости не выполнять процесс коррекции ("Нет" на этапе Sn_13), модуль 218 взаимного прогнозирования выводит конечное прогнозное изображение без коррекции прогнозного изображения (этап Sn_15).[0548] The inter-prediction unit 218 extracts the MV for the current block (step Sn_11). Next, the mutual prediction unit 218 generates a prediction image using the MV (step Sn_12) and determines whether or not to perform the correction process (step Sn_13). For example, the inter-prediction unit 218 receives the prediction parameter included in the flow and determines whether or not to perform the correction process based on the prediction parameter. This prediction parameter, for example, is a flag indicating whether or not one or more of the above-described modes should be applied. Here, upon determining whether to perform the correction process (Yes in step Sn_13), the inter-prediction unit 218 generates the final prediction image by correcting the prediction image (step Sn_14). It should be noted that, in LIC, brightness and chrominance can be adjusted in step Sn_14. When determining whether to not perform the correction process (“No” in step Sn_13), the inter-prediction unit 218 outputs the final prediction image without correcting the prediction image (step Sn_15).

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что OBMC должна выполняться при формировании прогнозного изображения, модуль 218 взаимного прогнозирования корректирует прогнозное изображение согласно OBMC.For example, when information parsed from the stream indicates that OBMC should be performed when generating a prediction image, inter-prediction module 218 adjusts the prediction image according to the OBMC.

[0550] Фиг. 94 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции прогнозного изображения посредством OBMC в декодере 200. Следует отметить, что блок-схема последовательности операций способа на фиг. 94 указывает последовательность операций коррекции прогнозного изображения с использованием текущего кадра и опорного кадра, проиллюстрированную на фиг. 62.[0550] FIG. 94 is a flowchart illustrating an example of a prediction image correction process by OBMC in the decoder 200. Note that the flowchart in FIG. 94 indicates the process of correcting a prediction image using a current frame and a reference frame illustrated in FIG. 62.

[0551] Во-первых, как проиллюстрировано на фиг. 62, модуль 218 взаимного прогнозирования получает прогнозное изображение (Pred) посредством нормальной компенсации движения с использованием MV, назначенного текущему блоку.[0551] First, as illustrated in FIG. 62, the mutual prediction unit 218 obtains a prediction image (Pred) by normal motion compensation using the MV assigned to the current block.

[0552] Затем, прогнозное изображение (Pred_L) получается посредством применения вектора (MV_L) движения, который уже извлечен для кодированного блока, соседнего слева от текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Модуль 218 взаимного прогнозирования затем выполняет первую коррекцию прогнозного изображения посредством перекрытия двух прогнозных изображений Pred и Pred_L. Это предоставляет преимущество смешивания границы между соседними блоками.[0552] 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 mutual prediction module 218 then performs a first correction of the prediction image by overlapping the two prediction images Pred and Pred_L. This provides the advantage of blending the boundary between adjacent blocks.

[0553] Аналогично, модуль 218 взаимного прогнозирования получает прогнозное изображение (Pred_U) посредством применения MV (MV_U), который уже извлечен для декодированного блока, граничащего выше текущего блока с текущим блоком (многократного использования вектора движения для текущего блока). Модуль 218 взаимного прогнозирования затем выполняет вторую коррекцию прогнозного изображения посредством перекрытия прогнозного изображения Pred_U с прогнозными изображениями (например, Pred и Pred_L), для которых выполнена первая коррекция. Это предоставляет преимущество смешивания границы между соседними блоками. Прогнозное изображение, полученное посредством второй коррекции, представляет собой прогнозное изображение, в котором граница между соседними блоками смешивается (сглаживается), и в силу этого представляет собой конечное прогнозное изображение текущего блока.[0553] Similarly, the inter prediction unit 218 obtains the prediction image (Pred_U) by applying the MV (MV_U) that is already extracted for the decoded block adjacent above the current block to the current block (reusing the motion vector for the current block). The inter-prediction module 218 then performs a second correction to the prediction image by overlapping the prediction image Pred_U with the prediction images (eg, Pred and Pred_L) for which the first correction has been 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.

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что BIO должен выполняться при формировании прогнозного изображения, модуль 218 взаимного прогнозирования корректирует прогнозное изображение согласно BIO.For example, when information parsed from the stream indicates that a BIO should be executed when generating a prediction image, the inter-prediction module 218 adjusts the prediction image according to the BIO.

[0555] Фиг. 95 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции прогнозного изображения посредством BIO в декодере 200.[0555] FIG. 95 is a flowchart illustrating an example of a prediction image correction process by BIO in the decoder 200.

[0556] Как проиллюстрировано на фиг. 63, модуль 218 взаимного прогнозирования извлекает два вектора (M0, M1) движения, с использованием двух опорных кадров (Ref0, Ref1), отличающихся от кадра (Cur Pic), включающего в себя текущий блок. Модуль 218 взаимного прогнозирования затем извлекает прогнозное изображение для текущего блока с использованием двух векторов (M0, M1) движения (этап Sy_11). Следует отметить, что вектор M0 движения представляет собой вектор (MVx0, MVy0) движения, соответствующий опорному кадру Ref0, и вектор M1 движения представляет собой вектор (MVx1, MVy1) движения, соответствующий опорному кадру Ref0.[0556] As illustrated in FIG. 63, the inter-prediction unit 218 extracts two motion vectors ( M0 , M1 ) using two reference frames (Ref0, Ref1) different from the frame (Cur Pic) including the current block. The mutual prediction unit 218 then extracts the prediction image for the current block using two motion vectors (M 0 , M 1 ) (step Sy_11). It should be noted that the motion vector M0 is a motion vector (MV x0 , MVy 0 ) corresponding to the reference frame Ref 0 , and the motion vector M1 is a motion vector (MV x1 , MV y1 ) corresponding to the reference frame Ref 0 .

[0557] Затем, модуль 218 взаимного прогнозирования извлекает интерполированное изображение I0 для текущего блока с использованием вектора M0 движения и опорного кадра L0. Помимо этого, модуль 218 взаимного прогнозирования извлекает интерполированное изображение I1 для текущего блока с использованием вектора M1 движения и опорного кадра L1 (этап Sy_12). Здесь, интерполированное изображение I0 представляет собой изображение, включенное в опорный кадр Ref0, и которое должно извлекаться для текущего блока, и интерполированное изображение I1 представляет собой изображение, включенное в опорный кадр Ref1, и которое должно извлекаться для текущего блока. Каждое из интерполированного изображения I0 и интерполированного изображения I1 может иметь размер, идентичный размеру текущего блока. Альтернативно, каждое из интерполированного изображения I0 и интерполированного изображения I1 может представлять собой изображение, большее текущего блока. Кроме того, интерполированное изображение I0 и интерполированное изображение I1 могут включать в себя прогнозное изображение, полученное посредством использования векторов (M0, M1) движения и опорных кадров (L0, L1) и применения фильтра для компенсации движения.[0557] Next, inter-prediction module 218 extracts the interpolated image I 0 for the current block using the motion vector M 0 and the reference frame L 0 . In addition, the inter-prediction module 218 extracts the interpolated image I 1 for the current block using the motion vector M 1 and the reference frame L 1 (step Sy_12). Here, the interpolated image I 0 is an image included in the reference frame Ref 0 and which is to be extracted for the current block, and the interpolated image I 1 is an image included in the reference frame Ref 1 and which 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. In addition, the interpolated image I 0 and the interpolated image I 1 may include a prediction image obtained by using motion vectors (M 0 , M 1 ) and reference frames (L 0 , L 1 ) and applying a motion compensation filter.

[0558] Помимо этого, модуль 218 взаимного прогнозирования извлекает градиентные изображения (Ix0, Ix1, Iy0, Iy1) текущего блока, из интерполированного изображения I0 и интерполированного изображения I1 (этап Sy_13). Следует отметить, что градиентные изображения в горизонтальном направлении представляют собой (Ix0, Ix1), и градиентные изображения в вертикальном направлении представляют собой (Iy0, Iy1). Модуль 218 взаимного прогнозирования может извлекать градиентные изображения, например, посредством применяя градиентный фильтр к интерполированным изображениям. Градиентные изображения могут представлять собой градиентные изображения, каждое из которых указывает величину пространственного изменения пиксельного значения вдоль горизонтального направления или величину пространственного изменения пиксельного значения вдоль вертикального направления.[0558] In addition, the inter-prediction module 218 extracts the gradient images (Ix 0 , Ix 1 , Iy 0 , Iy 1 ) of the current block from the interpolated image I 0 and the interpolated image I 1 (step Sy_13). It should be noted that the gradient images in the horizontal direction are (Ix 0 , Ix 1 ), and the gradient images in the vertical direction are (Iy 0 , Iy 1 ). Mutual prediction module 218 may extract gradient images, for example, by applying a gradient filter to the interpolated images. The gradient images may be gradient images each indicating an amount of spatial variation in a pixel value along a horizontal direction or an amount of spatial variation in a pixel value along a vertical direction.

[0559] Затем, модуль 218 взаимного прогнозирования извлекает, для каждого субблока текущего блока, оптический поток (vx, vy), который представляет собой вектор скорости, с использованием интерполированных изображений (I0, I1) и градиентных изображений (Ix0, Ix1, Iy0, Iy1) (этап Sy_14). В качестве одного примера, субблок может представлять собой 4×4-пиксельную суб-CU.[0559] Next, inter-prediction module 218 extracts, for each sub-block of the current block, optical flow (vx, vy), which is a velocity vector, using interpolated images (I 0 , I 1 ) and gradient images (Ix 0 , Ix 1 , Iy 0 , Iy 1 ) (stage Sy_14). As one example, the subunit may be a 4x4 pixel sub-CU.

[0560] Затем, модуль 218 взаимного прогнозирования корректирует прогнозное изображение для текущего блока с использованием оптического потока (vx, vy). Например, модуль 218 взаимного прогнозирования извлекает значение коррекции для значения пиксела, включенного в текущий блок, с использованием оптического потока (vx, vy) (этап Sy_15). Модуль 218 взаимного прогнозирования затем может корректировать прогнозное изображение для текущего блока с использованием значения коррекции (этап Sy_16). Следует отметить, что значение коррекции может извлекаться в единицах пиксела либо может извлекаться в единицах множества пикселов или в единицах субблоков и т.д.[0560] Next, the inter prediction module 218 corrects the prediction image for the current block using the optical flow (vx, vy). For example, the inter-prediction module 218 extracts a correction value for a pixel value included in the current block using optical flow (vx, vy) (step Sy_15). The mutual prediction unit 218 can then correct the prediction image for the current block using the correction value (step Sy_16). It should be noted that the correction value may be retrieved in units of a pixel, or may be retrieved in units of multiple pixels or in units of subblocks, etc.

[0561] Следует отметить, что поток BIO-процесса не ограничен процессом, раскрытым на фиг. 95. Только часть процессов, раскрытая на фиг. 95, может выполняться, либо другой процесс может добавляться или использоваться в качестве замены, либо процессы могут выполняться в другом порядке обработки.[0561] It should be noted that the BIO process flow is not limited to the process disclosed in FIG. 95. Only part of the processes disclosed in FIG. 95 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.

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

Например, когда информация, синтаксически проанализированная из потока, указывает то, что LIC должна выполняться при формировании прогнозного изображения, модуль 218 взаимного прогнозирования корректирует прогнозное изображение согласно LIC.For example, when information parsed from the stream indicates that LIC should be performed when generating a prediction image, the inter-prediction module 218 adjusts the prediction image according to the LIC.

[0563] Фиг. 96 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции прогнозного изображения посредством LIC в декодере 200.[0563] FIG. 96 is a flowchart illustrating an example of a prediction image correction process by an LIC in the decoder 200.

[0564] Во-первых, модуль 218 взаимного прогнозирования получает опорное изображение, соответствующее текущему блоку из декодированного опорного кадра с использованием MV (этап Sz_11).[0564] First, the inter-prediction unit 218 obtains a reference picture corresponding to the current block from the decoded reference frame using the MV (step Sz_11).

[0565] Затем, модуль 218 взаимного прогнозирования извлекает, для текущего блока, информацию, указывающую то, как значение яркости изменено между текущим кадром и опорным кадром (этап Sz_12). Это извлечение может выполняться на основе пиксельных значений сигнала яркости для декодированной левой соседней опорной области (окружающей опорной области) и декодированной верхней соседней опорной области (окружающей опорной области) и пиксельных значений сигнала яркости в соответствующих позициях в опорном кадре, указываемых посредством извлеченных MV. Модуль 218 взаимного прогнозирования вычисляет параметр коррекции яркости, с использованием информации, указывающей то, как значение сигнала яркости изменено (этап Sz_13).[0565] Next, the inter-prediction unit 218 extracts, for the current block, information indicating how the luminance value is changed between the current frame and the reference frame (step Sz_12). This extraction may be performed based on the luminance signal pixel values for the decoded left adjacent reference region (surrounding reference region) and the decoded upper adjacent reference region (surrounding reference region) and the luminance signal pixel values at corresponding positions in the reference frame indicated by the extracted MVs. The inter-prediction unit 218 calculates the luminance correction parameter using information indicating how the luminance signal value is changed (step Sz_13).

[0566] Модуль 218 взаимного прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения процесса коррекции яркости, в котором параметр коррекции яркости применяется к опорному изображению в опорном кадре, указываемом посредством MV (этап Sz_14). Другими словами, прогнозное изображение, которое представляет собой опорное изображение в опорном кадре, указываемом посредством MV, подвергается коррекции на основе параметра коррекции яркости. При этой коррекции, яркость может корректироваться, либо цветность может корректироваться.[0566] The inter-prediction unit 218 generates a prediction image for the current block by performing a luminance correction process in which a luminance correction parameter is applied to the reference image in the reference frame indicated by the MV (step Sz_14). In other words, the prediction image, which is a reference image in the reference frame indicated by the MV, is subject to correction based on the luminance correction parameter. With this correction, the brightness can be adjusted, or the color can be adjusted.

[0567] Контроллер прогнозирования [0567] Forecast controller

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

[0568] Первый аспект [0568] First aspect

Фиг. 97 является блок-схемой последовательности операций способа для примера последовательности 1000 операций обработки для декодирования изображения с использованием процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) согласно первому аспекту. Последовательность операций обработки 1000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.Fig. 97 is a flowchart for an example of a processing flow 1000 for decoding an image using a CCALF (Cross Component Adaptive Contour Filtering) process according to the first aspect. The process flow 1000 may be performed, for example, by the decoder 200 of FIG. 67, etc.

[0569] На этапе S1001, процесс фильтрации применяется к восстановленным выборкам изображений первого компонента. Первый компонент, например, может представлять собой компонент сигнала яркости. Компонент сигнала яркости может представляться как Y-компонент. Восстановленные выборки изображений сигнала яркости могут представлять собой выходные сигналы ALF-процесса. Выходные сигналы ALF могут представлять собой восстановленные выборки сигналов яркости, сформированные через SAO-процесс. В некоторых вариантах осуществления, этот процесс фильтрации, выполняемый на этапе S1001, может представляться как CCALF-процесс. Числа восстановленных выборок сигналов яркости могут быть идентичными числу коэффициентов фильтра, которые должны использоваться в CCALF-процессе. В других вариантах осуществления, процесс отсечения может выполняться для фильтрованных восстановленных выборок сигналов яркости.[0569] In step S1001, a filtering process is applied to the reconstructed first component image samples. The first component, for example, may be a luminance signal component. The luminance signal component may be represented as a Y component. The reconstructed luminance signal image samples may represent the output signals of the ALF process. The ALF output signals may be reconstructed luminance samples generated through the SAO process. In some embodiments, this filtering process performed in step S1001 may be represented as a CCALF process. The numbers of reconstructed luminance samples may be identical to the number of filter coefficients to be used in the CCALF process. In other embodiments, the clipping process may be performed on the filtered reconstructed luminance signal samples.

[0570] На этапе S1002, восстановленная выборка изображений второго компонента модифицируется. Второй компонент может представлять собой компонент сигнала цветности. Компонент сигнала цветности может представляться как Cb- и/или Cr-компонент. Восстановленные выборки изображений сигнала цветности могут представлять собой выходные сигналы ALF-процесса. Выходные сигналы ALF могут восстанавливаться выборки сигналов цветности, сформированные через SAO-процесс. Модифицированная восстановленная выборка изображений может представлять собой сумму восстановленных выборок сигнала цветности и фильтрованных восстановленных выборок сигнала яркости, которые представляют собой вывод этапа S1001. Другими словами, процесс модификации может выполняться посредством суммирования фильтрованного значения восстановленных выборок сигналов яркости, сформированных посредством CCALF-процесса этапа S1001, с фильтрованным значением восстановленных выборок сигналов цветности, сформированных посредством ALF-процесса. В некоторых вариантах осуществления, процесс отсечения может выполняться для восстановленных выборок сигналов цветности. Первый компонент и второй компонент могут принадлежать идентичному блоку или могут принадлежать различным блокам.[0570] In step S1002, the reconstructed sample of the second component images is modified. The second component may be a chrominance signal component. The chrominance signal component may be represented as a Cb and/or Cr component. The reconstructed chrominance signal image samples may represent the output signals of the ALF process. The ALF output signals can be reconstructed from chroma samples generated through the SAO process. The modified reconstructed image sample may be the sum of the reconstructed chroma samples and the filtered reconstructed luma samples, which is the output of step S1001. In other words, the modification process can be performed by adding the filtered value of the reconstructed luma signal samples generated by the CCALF process of step S1001 with the filtered value of the reconstructed chrominance signal samples generated by the ALF process. In some embodiments, the clipping process may be performed on the reconstructed chroma samples. The first component and the second component may belong to an identical block or may belong to different blocks.

[0571] На этапе S1003, значение модифицированной восстановленной выборки изображений компонента сигнала цветности отсекается. Посредством выполнения процесса отсечения, значение выборок может гарантированно находиться в определенном диапазоне. Дополнительно, отсечение может способствовать лучшей сходимости в процессе оптимизации методом наименьших квадратов и т.д., чтобы минимизировать разность между остатком (разностью между исходным выборочным значением и восстановленным выборочным значением) и фильтрованным значением выборок сигналов цветности, чтобы определять коэффициенты фильтрации.[0571] In step S1003, the value of the modified reconstructed chroma component image sample is clipped. By performing the pruning process, the value of the samples can be guaranteed to be within a certain range. Additionally, pruning can promote better convergence in a least squares optimization process, etc., to minimize the difference between the residual (the difference between the original sample value and the reconstructed sample value) and the filtered value of the chroma samples to determine filter coefficients.

[0572] На этапе S1004, изображение декодируется с использованием отсеченной восстановленной выборки изображений компонента сигнала цветности. В некоторых вариантах осуществления, этап S1003 не должен выполняться. В этом случае, изображение декодируется с использованием модифицированной восстановленной выборки сигналов цветности, которая не отсекается.[0572] In step S1004, the image is decoded using the clipped reconstructed sample of chroma component images. In some embodiments, step S1003 does not need to be performed. In this case, the image is decoded using a modified reconstructed chrominance sample that is not clipped.

[0573] Фиг. 98 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления. В этом варианте осуществления, процесс отсечения применяется к модифицированной восстановленной выборке изображений компонента сигнала цветности, аналогично этапу S1003 по фиг. 97. Например, модифицированная восстановленная выборка изображений может отсекаться таким образом, что она находится в диапазоне [0, 1023] для 10-битового вывода. Когда фильтрованные восстановленные выборки изображений компонента сигнала яркости, сформированного посредством CCALF-процесса, отсекаются, может быть необязательным отсекать модифицированную восстановленную выборку изображений компонента сигнала цветности в некоторых вариантах осуществления.[0573] FIG. 98 is a block diagram illustrating a functional configuration of an encoder and decoder according to an embodiment. In this embodiment, the clipping process is applied to the modified reconstructed sample of chrominance component images, similar to step S1003 in FIG. 97. For example, the modified reconstructed image sample may be clipped such that it is in the range [0, 1023] for a 10-bit output. When the filtered reconstructed luma component image samples generated by the CCALF process are clipped, it may be optional to clip the modified reconstructed chroma component image sample in some embodiments.

[0574] Фиг. 99 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления. В этом варианте осуществления, процесс отсечения применяется к модифицированной восстановленной выборке изображений компонента сигнала цветности, аналогично этапу S1003 по фиг. 97. Процесс отсечения не применяется к фильтрованным восстановленным выборкам сигналов яркости, сформированным посредством CCALF-процесса. Фильтрованное значение восстановленных выборок сигналов цветности, сформированных посредством ALF-процесса, не должно отсекаться, как показано посредством "без отсечения" на фиг. 99. Другими словами, восстановленная выборка изображений, которая должна модифицироваться, формируется с использованием фильтрованного значения (ALF-сигнала цветности) и разностного значения (Cb/Cr CCALF), при этом отсечение не применяется к выводу сформированного выборочного значения.[0574] FIG. 99 is a block diagram illustrating a functional configuration of an encoder and decoder according to an embodiment. In this embodiment, the clipping process is applied to the modified reconstructed sample of chrominance component images, similar to step S1003 in FIG. 97. The clipping process is not applied to filtered reconstructed luminance samples generated by the CCALF process. The filtered value of the reconstructed chrominance samples generated by the ALF process must not be clipped, as shown by "no clipping" in FIG. 99. In other words, the reconstructed image sample to be modified is generated using the filtered value (chrominance ALF signal) and the difference value (Cb/Cr CCALF), and no clipping is applied to the output of the generated sample value.

[0575] Фиг. 100 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления. В этом варианте осуществления, процесс отсечения применяется к фильтрованным восстановленным выборкам сигналов яркости, сформированным посредством CCALF-процесса ("отсечение выходных выборок"), и к модифицированным восстановленным выборкам изображений компонента сигнала цветности ("отсечение после суммирования"). Фильтрованное значение восстановленных выборок сигналов цветности, сформированных посредством ALF-процесса, не отсекается ("без отсечения"). В качестве примера, отсеченный диапазон, применяемый к фильтрованной восстановленной выборке изображений компонента сигнала яркости, может составлять [-2^15, 2^15-1] или [-2^7, 2^7-1].[0575] FIG. 100 is a block diagram illustrating a functional configuration of an encoder and decoder according to an embodiment. In this embodiment, the clipping process is applied to the filtered reconstructed luminance signal samples generated by the CCALF process ("output sample clipping") and to the modified reconstructed chrominance component image samples ("post-stack clipping"). The filtered value of the reconstructed chrominance samples generated by the ALF process is not clipped (“no clipping”). As an example, the cut range applied to the filtered reconstructed sample of luminance component images may be [-2^15, 2^15-1] or [-2^7, 2^7-1].

[0576] Фиг. 101 показывает другой пример, в котором процесс отсечения применяется к фильтрованным восстановленным выборкам сигналов яркости, сформированным посредством CCALF-процесса ("отсечение выходных выборок"), к модифицированным восстановленным выборкам изображений компонента сигнала цветности ("отсечение после суммирования") и к фильтрованным восстановленным выборкам сигналов цветности, сформированным посредством ALF-процесса ("отсечение"). Другими словами, выходные значения из CCALF-процесса и ALF-процесса для сигналов цветности отдельно отсекаются и отсекаются снова после того, как они суммируются. В этом варианте осуществления, модифицированная восстановленная выборка изображений компонента сигнала цветности не должна отсекаться. В качестве примера, конечный вывод из ALF-процесса для сигналов цветности может отсекаться до 10-битового значения. В качестве примера, отсеченный диапазон, применяемый к фильтрованным восстановленным выборкам изображений компонента сигнала яркости, может составлять [-2^15, 2^15-1] или [-2^7, 2^7-1]. Этот диапазон может быть фиксированным или может адаптивно определяться. В любом случае, диапазон может передаваться в служебных сигналах в информации заголовка, например, в SPS (наборе параметров последовательности) или APS (наборе параметров адаптации). В случае, когда нелинейная ALF используется, параметры отсечения могут задаваться для "отсечения после суммирования" на фиг. 101.[0576] FIG. 101 shows another example in which the clipping process is applied to filtered reconstructed luma samples generated by the CCALF process ("output clipping"), to modified reconstructed chrominance component image samples ("post-stack clipping"), and to filtered reconstructed samples. chrominance signals generated through the ALF process ("clipping"). In other words, the output values from the CCALF process and the ALF process for chrominance signals are separately clipped and clipped again after they are added. In this embodiment, the modified reconstructed chrominance component image sample does not need to be clipped. As an example, the final output from the ALF process for chrominance signals may be clipped to a 10-bit value. As an example, the cut range applied to the filtered reconstructed luminance component image samples may be [-2^15, 2^15-1] or [-2^7, 2^7-1]. This range may be fixed or may be adaptively determined. In either case, the range may be signaled in header information, for example in an SPS (Sequence Parameter Set) or APS (Adaptation Parameter Set). In the case where non-linear ALF is used, clipping parameters can be set for "post-stack clipping" in FIG. 101.

[0577] Восстановленные выборки изображений компонента сигнала яркости, который должен фильтроваться посредством CCALF-процесса, могут представлять собой соседние выборки, которые являются смежными с текущей восстановленной выборкой изображений компонента сигнала цветности. Таким образом, модифицированная текущая восстановленная выборка изображений может формироваться посредством суммирования фильтрованного значения соседних выборок изображений компонента сигнала яркости, расположенного рядом с текущей выборкой изображений, с фильтрованным значением текущей выборки изображений компонента сигнала цветности. Фильтрованное значение выборок изображений компонента сигнала яркости может представляться как разностное значение.[0577] The reconstructed samples of luma component images to be filtered by the CCALF process may be adjacent samples that are adjacent to the currently reconstructed sample of chrominance component images. Thus, a modified current reconstructed image sample may be formed by summing the filtered value of neighboring luma component image samples adjacent to the current image sample with the filtered value of the current chrominance component image sample. The filtered value of the luminance component image samples may be represented as a difference value.

[0578] Процессы, раскрытые в этом аспекте, могут уменьшать аппаратный размер внутреннего запоминающего устройства, требуемый для того, чтобы сохранять фильтрованные выборочные значения изображений.[0578] The processes disclosed in this aspect can reduce the hardware size of the internal storage required to store filtered sample image values.

[0579] Второй аспект [0579] Second aspect

Фиг. 102 является блок-схемой последовательности операций способа для примера последовательности 2000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием заданной информации, согласно второму аспекту. Последовательность операций обработки 2000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.Fig. 102 is a flowchart for an example of a processing flow 2000 for decoding an image applying a CCALF process using specified information according to the second aspect. The processing flow 2000 may be performed, for example, by the decoder 200 of FIG. 67, etc.

[0580] На этапе S2001, параметр отсечения синтаксически анализируется из потока битов. Параметр отсечения может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка среза, на CTU- или TU-уровне, как описано на фиг. 103. Фиг. 103 является концептуальной схемой, указывающей местоположение(я) параметров отсечения. Параметр, описанный на фиг. 103, может заменяться посредством другого типа параметра отсечения, флага или индекса. Два или более параметров отсечения могут синтаксически анализироваться из двух или более наборов параметров в потоке битов.[0580] In step S2001, the clipping parameter is parsed from the bit stream. The cut parameter may be parsed from the VPS, APS, SPS, PPS, slice header, at the CTU or TU level, as described in FIG. 103. Fig. 103 is a conceptual diagram indicating the location(s) of the clipping parameters. The parameter described in FIG. 103 may be replaced by another type of cut parameter, flag, or index. Two or more cut parameters may be parsed from two or more sets of parameters in the bitstream.

[0581] На этапе S2002, разность отсекается с использованием параметра отсечения. Разность формируется на основе восстановленных выборок изображений первого компонента (например, разностного значения (Cb/Cr CCALF) на фиг. 98-101). В качестве примера, первый компонент представляет собой компонент сигнала яркости, и разность представляет собой фильтрованные восстановленные выборки сигналов яркости, сформированные посредством CCALF-процесса. В этом случае, процесс отсечения применяется к фильтрованным восстановленным выборкам сигналов яркости с использованием синтаксически проанализированного параметра отсечения.[0581] In step S2002, the difference is clipped using the clipping parameter. The difference is generated based on the reconstructed image samples of the first component (for example, the difference value (Cb/Cr CCALF) in Fig. 98-101). As an example, the first component is the luminance signal component, and the difference is the filtered reconstructed luminance signal samples generated by the CCALF process. In this case, the clipping process is applied to the filtered reconstructed luminance samples using the parsed clipping parameter.

[0582] Параметр отсечения ограничивает значение таким образом, что оно находится в требуемом диапазоне. Если требуемый диапазон составляет [-3, 3], согласно примеру, значение 5 отсекается до 3 с использованием операции clip(-3, 3, 5). В этом примере, значение -3 представляет собой нижний диапазон, и значение 3 представляет собой верхний диапазон.[0582] The cutoff parameter limits the value so that it is within the required range. If the required range is [-3, 3], according to the example, the value 5 is clipped to 3 using the clip(-3, 3, 5) operation. In this example, the value -3 represents the lower range, and the value 3 represents the upper range.

[0583] Параметр отсечения может указывать индекс, чтобы извлекать нижний диапазон и верхний диапазон, как показано на фиг. 104(i). В этом примере, ccalf_luma_clip_idx[] представляет собой индекс, -range_array[] представляет собой нижний диапазон, и range_array[] представляет собой верхний диапазон. В этом примере, range_array[] представляет собой определенный массив диапазонов, который может отличаться от массива диапазонов, используемого для ALF. Определенный массив диапазонов может быть предварительно определен.[0583] The cut parameter may specify an index to extract the lower range and the upper range, as shown in FIG. 104(i). In this example, ccalf_luma_clip_idx[] represents the index, -range_array[] represents the lower range, and range_array[] represents the upper range. In this example, range_array[] is a specific range array, which may be different from the range array used for ALF. A specific array of ranges can be predefined.

[0584] Параметр отсечения может указывать нижний диапазон и верхний диапазон, как показано на фиг. 104(ii). В этом примере, -ccalf_luma_clip_low_range[] представляет собой нижний диапазон, и ccalf_luma_clip_up_range[] представляет собой верхний диапазон.[0584] The cutoff parameter may indicate a lower range and an upper range, as shown in FIG. 104(ii). In this example, -ccalf_luma_clip_low_range[] represents the lower range, and ccalf_luma_clip_up_range[] represents the upper range.

[0585] Параметр отсечения может указывать общий диапазон как для нижнего диапазона, так и для верхнего диапазона, как показано на фиг. 104(iii). В этом примере, -ccalf_luma_clip_range представляет собой нижний диапазон, и ccalf_luma_clip_range представляет собой верхний диапазон.[0585] The cutoff parameter may indicate the overall range for both the lower range and the upper range, as shown in FIG. 104(iii). In this example, -ccalf_luma_clip_range represents the lower range, and ccalf_luma_clip_range represents the upper range.

[0586] Разность формируется посредством умножения, деления, суммирования или вычитания, по меньшей мере, двух восстановленных выборок изображений первого компонента. Две восстановленных выборки изображений, например, могут исходить из текущих и соседних выборок изображений или двух соседних выборок изображений. Местоположения текущих и соседних выборок изображений могут быть предварительно определены.[0586] The difference is generated by multiplying, dividing, summing, or subtracting at least two reconstructed first component image samples. The two reconstructed image samples, for example, may come from the current and adjacent image samples or two adjacent image samples. The locations of the current and neighboring image samples can be predetermined.

[0587] На этапе S2003, восстановленная выборка изображений второго компонента, отличающегося от первого компонента, модифицируется с использованием отсеченного значения. Отсеченное значение может представлять собой отсеченное значение восстановленной выборки изображений компонента сигнала яркости. Второй компонент может представлять собой компонент сигнала цветности. Модификация может включать в себя операцию, чтобы умножать, делить, суммировать или вычитать отсеченное значение относительно восстановленной выборки изображений второго компонента.[0587] In step S2003, the reconstructed image sample of the second component different from the first component is modified using the clipped value. The clipped value may be a clipped value of the reconstructed sample of luminance signal component images. The second component may be a chrominance signal component. The modification may include an operation to multiply, divide, sum, or subtract the clipped value relative to the reconstructed sample of the second component images.

[0588] На этапе S2004, изображение декодируется с использованием модифицированной восстановленной выборки изображений.[0588] In step S2004, the image is decoded using the modified reconstructed image sample.

[0589] В настоящем раскрытии сущности, один или более параметров отсечения для кросскомпонентной адаптивной контурной фильтрации передаются в служебных сигналах в потоке битов. При этой передаче служебных сигналов, синтаксис кросскомпонентной адаптивной контурной фильтрации и синтаксис адаптивного контурного фильтра могут комбинироваться для упрощения синтаксиса. Кроме того, при этой передаче служебных сигналов, проектирование кросскомпонентной адаптивной контурной фильтрации может быть более гибким для повышения эффективности кодирования.[0589] In the present disclosure, one or more clipping parameters for cross-component adaptive loop filtering are signaled in a bit stream. In this signaling, cross-component adaptive loop filtering syntax and adaptive loop filter syntax can be combined to simplify the syntax. In addition, with this signaling, the design of cross-component adaptive loop filtering can be more flexible to improve coding efficiency.

[0590] Параметры отсечения могут задаваться или предварительно задаваться для кодеров и декодеров без передачи в служебных сигналах. Параметры отсечения также могут извлекаться с использованием информации сигнала яркости без передачи в служебных сигналах. Например, параметры отсечения, соответствующие большому диапазону отсечения, могут извлекаться, если сильный градиент или край обнаруживается в восстановленном изображении сигнала яркости, и параметры отсечения, соответствующие короткому диапазону отсечения, могут извлекаться, если слабый градиент или край обнаруживается в восстановленном изображении сигнала яркости.[0590] Clipping parameters may be specified or preset for encoders and decoders without being signaled. The clipping parameters can also be extracted using luminance signal information without being signaled. For example, clipping parameters corresponding to a large clipping range can be extracted if a strong gradient or edge is detected in the reconstructed luminance signal image, and clipping parameters corresponding to a short clipping range can be extracted if a weak gradient or edge is detected in the reconstructed luminance signal image.

[0591] Третий аспект [0591] Third aspect

Фиг. 105 является блок-схемой последовательности операций способа для примера последовательности 3000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием коэффициента фильтрации согласно третьему аспекту. Последовательность операций обработки 3000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д. Коэффициент фильтрации используется на этапе фильтрации CCALF-процесса, чтобы формировать фильтрованную восстановленную выборку изображений компонента сигнала яркости.Fig. 105 is a flowchart for an example of a processing flow 3000 for decoding an image applying a CCALF process using a filter coefficient according to the third aspect. The processing flow 3000 may be performed, for example, by the decoder 200 of FIG. 67, etc. The filtering factor is used in the filtering step of the CCALF process to generate a filtered reconstructed sample of luminance component images.

[0592] На этапе S3001, определяется то, расположен или нет коэффициент фильтрации в заданной симметричной области фильтра. Необязательно, может выполняться дополнительный этап проведения оценки в отношении того, является или нет форма коэффициентов фильтрации симметричной. Информация, указывающая то, является выборка коэффициентов фильтрации симметричной или нет, может кодироваться в поток битов. Если форма является симметричной, местоположения коэффициентов, которые находятся внутри симметричной области, могут определяться или предварительно определяться.[0592] In step S3001, it is determined whether or not the filter coefficient is located in the predetermined symmetric filter region. Optionally, an additional step of judging whether or not the shape of the filter coefficients is symmetrical may be performed. Information indicating whether the sample of filter coefficients is symmetric or not may be encoded into a bitstream. If the shape is symmetrical, the locations of the coefficients that are within the symmetrical region may be determined or predetermined.

[0593] На этапе S3002, если коэффициент фильтрации находится внутри заданной симметричной области ("Да" на этапе S3001), коэффициент фильтрации копируется в симметричную позицию, и набор коэффициентов фильтрации формируется.[0593] In step S3002, if the filter coefficient is within the specified symmetric region (Yes in step S3001), the filter coefficient is copied to the symmetric position, and a set of filter coefficients is generated.

[0594] На этапе S3003, коэффициенты фильтрации используются для того, чтобы фильтровать восстановленные выборки изображений первого компонента. Первый компонент может представлять собой компонент сигнала яркости.[0594] In step S3003, filter coefficients are used to filter the reconstructed first component image samples. The first component may be a luminance signal component.

[0595] На этапе S3004, вывод фильтрации используется для того, чтобы модифицировать восстановленную выборку изображений второго компонента, отличающегося от первого компонента. Второй компонент может представлять собой компонент сигнала цветности.[0595] In step S3004, the filter output is used to modify the reconstructed sample of images of a second component different from the first component. The second component may be a chrominance signal component.

[0596] На этапе S3005, изображение декодируется с использованием модифицированной восстановленной выборки изображений.[0596] In step S3005, the image is decoded using the modified reconstructed image sample.

[0597] Если коэффициенты фильтрации не являются симметричными ("Нет" на этапе S3001), все коэффициенты фильтрации могут кодироваться из потока битов, и набор коэффициентов фильтрации может формироваться без копирования.[0597] If the filter coefficients are not symmetrical ("No" in step S3001), all filter coefficients can be encoded from the bitstream, and a set of filter coefficients can be generated without copying.

[0598] Этот аспект может уменьшать объем информации, которая должна кодироваться в поток битов. Таким образом, только один из коэффициентов фильтрации, которые являются симметричными, возможно, должен кодироваться в потоке битов.[0598] This aspect may reduce the amount of information that must be encoded into the bitstream. Thus, only one of the filter coefficients, which are symmetric, may need to be encoded in the bit stream.

[0599] Фиг. 106, 107, 108, 109 и 110 являются концептуальными схемами примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе. В этих примерах, некоторые коэффициенты, включенные в набор коэффициентов, передаются в служебных сигналах, при условии, что симметрия существует.[0599] FIG. 106, 107, 108, 109 and 110 are conceptual diagrams of examples indicating locations of filter coefficients to be used in the CCALF process. In these examples, some coefficients included in the set of coefficients are signaled, provided that symmetry exists.

[0600] В частности, фиг. 106(a), 106(b), 106(c) и 106(d) указывают примеры, в которых часть набора CCALF-коэффициентов (помеченных посредством диагональных линий и сетчатых шаблонов) расположена в заданной симметричной области. В этих примерах, симметричные области имеют линейно-симметричную форму. Только некоторые помеченные коэффициенты (помеченные посредством диагональных линий или сетчатых шаблонов) и коэффициенты белого цвета могут кодироваться в поток битов, и другие коэффициенты могут формироваться посредством использования кодированных коэффициентов. В качестве других примеров, только помеченные коэффициенты могут формироваться и использоваться в процессе фильтрации. Другие коэффициенты белого цвета (не помеченные посредством любого шаблона) не должны использоваться в процессе фильтрации.[0600] In particular, FIG. 106(a), 106(b), 106(c) and 106(d) indicate examples in which a portion of a set of CCALF coefficients (labeled by diagonal lines and grid patterns) are located in a given symmetrical region. In these examples, the symmetrical regions have a linearly symmetrical shape. Only some marked coefficients (marked by diagonal lines or grid patterns) and white coefficients may be encoded into the bitstream, and other coefficients may be generated by using the encoded coefficients. As other examples, only labeled coefficients can be generated and used in the filtering process. Other white coefficients (not marked by any pattern) should not be used in the filtering process.

[0601] Фиг. 106(e), 106(f), 106(g) и 106(h) указывают примеры, в которых форма симметричной области является горизонтальной, вертикальной, диагональной, наряду с направлением, точечно-симметричной или точечно-симметричной с направлением.[0601] FIG. 106(e), 106(f), 106(g), and 106(h) indicate examples in which the shape of the symmetrical region is horizontal, vertical, diagonal along with direction, point symmetrical, or point symmetrical with direction.

[0602] На этих чертежах, только часть коэффициентов, которые помечаются посредством диагональных линий или сетчатых шаблонов, возможно, должна кодироваться. Местоположения коэффициентов, которые должны кодироваться, могут определяться или предварительно определяться. Например, коэффициенты могут кодироваться в определенном порядке сканирования, и коэффициент, который появляется первым, может кодироваться первым. Коэффициент в симметричной области, коэффициент которой не кодируется, может копироваться из коэффициента, который расположен в его симметричной позиции. В некоторых вариантах осуществления, может быть необязательным обрабатывать коэффициенты на основе симметрии. Например, когда определяется то, что i-ый коэффициент является идентичным j-ому коэффициенту в порядке сканирования, процесс может просто копировать j-ое значение в i-ое значение. Местоположение может определяться на основе других параметров.[0602] In these drawings, only a portion of the coefficients that are marked by diagonal lines or grid patterns may need to be encoded. The locations of the coefficients to be encoded may be determined or predetermined. For example, the coefficients may be encoded in a particular scanning order, and the coefficient that appears first may be encoded first. A coefficient in a symmetrical region whose coefficient is not encoded may be copied from a coefficient that is located at its symmetrical position. In some embodiments, it may be optional to process the coefficients based on symmetry. For example, when it is determined that the i-th coefficient is identical to the j-th coefficient in scan order, the process may simply copy the j-th value to the i-th value. The location may be determined based on other parameters.

[0603] Фиг. 107(a), 107(b), 107(c) и 107(d) указывают примеры, в которых часть набора CCALF-коэффициентов (помеченных посредством диагональных линий и сетчатых шаблонов) расположена в заданной симметричной области. В этих примерах, число симметричных коэффициентов может отличаться. Число симметричных коэффициентов может определяться, предварительно определяться или может передаваться в служебных сигналах на уровне кадра, уровне среза или уровне блока.[0603] FIG. 107(a), 107(b), 107(c) and 107(d) indicate examples in which a portion of a set of CCALF coefficients (labeled by diagonal lines and grid patterns) are located in a given symmetrical region. In these examples, the number of symmetric coefficients may differ. The number of symmetric coefficients may be determined, predetermined, or signaled at the frame level, slice level, or block level.

[0604] Фиг. 107(e), 107(f), 107(g) и 107(h) указывают примеры, в которых часть набора CCALF-коэффициентов (помеченных посредством диагональных линий и сетчатых шаблонов) расположена в заданной симметричной области. В этих примерах, симметричные коэффициенты на одной симметричной стороне могут отличаться от соответствующих коэффициентов на другой симметричной стороне, т.е. некоторые коэффициенты (например, набор коэффициентов) на одной стороне являются симметричными с различными значениями коэффициентов (например, другим набором коэффициентов) на другой стороне. В качестве примера, только часть коэффициентов "сетчатого шаблона" на одной симметричной стороне может кодироваться в поток битов и копироваться, чтобы формировать коэффициенты "шаблона с диагональными линиями" на другой симметричной стороне.[0604] FIG. 107(e), 107(f), 107(g) and 107(h) indicate examples in which a portion of a set of CCALF coefficients (labeled by diagonal lines and grid patterns) are located in a given symmetrical region. In these examples, the symmetric coefficients on one symmetric side may be different from the corresponding coefficients on the other symmetric side, i.e. some coefficients (eg a set of coefficients) on one side are symmetrical with different coefficient values (eg a different set of coefficients) on the other side. As an example, only a portion of the "mesh pattern" coefficients on one symmetrical side may be encoded into a bit stream and copied to form the "diagonal line pattern" coefficients on the other symmetrical side.

[0605] Фиг. 108(a), 108(b), 108(c) и 108(d) указывают примеры форм фильтра, в которых тип сигналов цветности служит в качестве определенного формата. Определенный формат, например, может представлять собой YUV 420 тип 0. Отмеченные коэффициенты (коэффициенты шаблона с диагональными линиями или коэффициенты сетчатого шаблона) являются симметричными относительно позиции сигнала цветности типа сигналов цветности. Форма фильтра может проектироваться с возможностью быть симметричной относительно позиции сигнала цветности других YUV-форматов. Например, эти формы фильтра по фиг. 108(a)-108(d) могут использоваться в качестве значения по умолчанию, и другие формы фильтра могут определяться для использования в процессе фильтрации, когда параметр, кодированный в потоке битов, указывает другие форматы.[0605] FIG. 108(a), 108(b), 108(c), and 108(d) indicate examples of filter shapes in which the type of chrominance signals serves as the specific format. The particular format may, for example, be YUV 420 type 0. The marked coefficients (diagonal line pattern coefficients or grid pattern coefficients) are symmetrical with respect to the position of the chrominance signal type. The filter shape can be designed to be symmetrical with respect to the chrominance position of other YUV formats. For example, these filter shapes of FIG. 108(a)-108(d) may be used as a default, and other filter forms may be defined for use in the filtering process when the parameter encoded in the bitstream indicates other formats.

[0606] Фиг. 108(e), 108(f), 108(g) и 108(h) указывают примеры форм фильтра, в которых тип сигналов цветности служит в качестве определенного формата. Определенный формат может представлять собой YUV-формат сигнала цветности, отличающийся от YUV 420 тип 0. Различные формы фильтра могут использоваться для других форматов.[0606] FIG. 108(e), 108(f), 108(g), and 108(h) indicate examples of filter shapes in which the type of chrominance signals serves as the specific format. The particular format may be a YUV chrominance signal format other than YUV 420 type 0. Different filter shapes may be used for other formats.

[0607] Фиг. 109(a), 109(b), 109(c) и 109(d) указывают другие примеры форм фильтра. На фиг. 109(a), число симметричных коэффициентов может быть нулем, и все коэффициенты передаются в служебных сигналах независимо. Число симметричных коэффициентов не должно обязательно кодироваться в поток битов. На фиг. 109(b), число симметричных коэффициентов может составлять одну половину от всех коэффициентов.[0607] FIG. 109(a), 109(b), 109(c), and 109(d) indicate other examples of filter shapes. In fig. 109(a), the number of symmetric coefficients may be zero, and all coefficients are signaled independently. The number of symmetric coefficients need not necessarily be encoded into the bit stream. In fig. 109(b), the number of symmetrical coefficients may be one half of all coefficients.

[0608] Фиг. 110(a), 110(b), 110(c) и 110(d) указывают другие примеры форм фильтра и сигналов, которые должны кодироваться, с порядком сканирования, указываемым посредством стрелок. На фиг. 110(a), порядок растрового сканирования применяется к коэффициентам фильтрации независимо от типа симметрии. На фиг. 110(b), порядок растрового сканирования применяется к коэффициентам фильтрации, независимо от типа симметрии, и только коэффициенты белого цвета и коэффициенты сетчатого шаблона передаются в служебных сигналах в потоке битов в порядке растрового сканирования. Декодер может использовать LUT (таблицу поиска), чтобы дублировать скопированные коэффициенты сетки, чтобы формировать коэффициенты шаблона с диагональными линиями. На фиг. 110(c), скопированные коэффициенты сетки, расположенные в симметричной области, сканируются и передаются в служебных сигналах, и затем коэффициенты белого цвета, расположенные в асимметричной области, сканируются и передаются в служебных сигналах. На фиг. 110(d), коэффициенты, расположенные в асимметричной области, сканируются и передаются в служебных сигналах, и затем коэффициенты сетчатого шаблона сканируются и передаются в служебных сигналах.[0608] FIG. 110(a), 110(b), 110(c) and 110(d) indicate other examples of filter shapes and signals to be encoded, with the scanning order indicated by arrows. In fig. 110(a), the raster scan order is applied to the filter coefficients regardless of the symmetry type. In fig. 110(b), the raster scan order is applied to the filter coefficients, regardless of the symmetry type, and only the white coefficients and the grid pattern coefficients are signaled in the bitstream in raster scan order. The decoder can use a LUT (lookup table) to duplicate the copied grid coefficients to form the diagonal line pattern coefficients. In fig. 110(c), the copied grid coefficients located in the symmetric region are scanned and signaled, and then the white coefficients located in the asymmetric region are scanned and signaled. In fig. 110(d), the coefficients located in the asymmetric region are scanned and signaled, and then the grid pattern coefficients are scanned and signaled.

[0609] Фиг. 111 и 112 являются концептуальными схемами дополнительных примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе. В этих примерах, симметричные позиции, местоположения или числа коэффициентов в наборе коэффициентов фильтрации могут быть адаптивными относительно типа сигналов цветности.[0609] FIG. 111 and 112 are conceptual diagrams of additional examples indicating locations of filter coefficients to be used in the CCALF process. In these examples, the symmetric positions, locations, or numbers of coefficients in the set of filter coefficients may be adaptive with respect to the type of chrominance signals.

[0610] Фиг. 113 является блок-схемой, иллюстрирующей функциональную конфигурацию CCALF-процесса, выполняемого посредством кодера и декодера согласно варианту осуществления. После фильтрации кадра сигналов яркости с использованием сформированных коэффициентов фильтрации, выходные выборки применяются к кадру сигналов цветности. Фильтр с сформированными коэффициентами фильтрации применяется к выходному SAO-кадру сигналов яркости. Фильтрованные выборки (CC ALF Cb и CC ALF Cr) затем суммируются с выходным ALF-кадром сигналов цветности.[0610] FIG. 113 is a block diagram illustrating the functional configuration of a CCALF process executed by an encoder and decoder according to an embodiment. After filtering the luma frame using the generated filter coefficients, the output samples are applied to the chrominance frame. A filter with generated filter coefficients is applied to the output SAO frame of luminance signals. The filtered samples (CC ALF Cb and CC ALF Cr) are then added to the output chrominance ALF frame.

[0611] Четвертый аспект [0611] Fourth aspect

Фиг. 114 является блок-схемой последовательности операций способа для примера последовательности 4000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием фильтра, выбранного из множества фильтров согласно четвертому аспекту. Последовательность 4000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д. Этот вариант осуществления раскрывает способы модификации восстановленных выборок компонента с использованием информации из другого компонента.Fig. 114 is a flowchart for an example of a processing flow 4000 for decoding an image applying a CCALF process using a filter selected from a plurality of filters according to the fourth aspect. The processing sequence 4000 may be performed, for example, by the decoder 200 of FIG. 67, etc. This embodiment discloses methods for modifying reconstructed samples of a component using information from another component.

[0612] На этапе S4001, параметр определяется. Параметр может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка среза или на CTU- или TU-уровне, как описано на фиг. 103. Параметр синтаксически анализируется из потока битов, чтобы указывать фильтр. Например, параметр может указывать индекс, чтобы выбирать фильтр из определенного множества фильтров. Параметр может синтаксически анализироваться из потока битов, чтобы указывать формат субдискретизации сигналов цветности в качестве 4:4:4, 4:2:0, 4:2:2 или 4:1:1. Параметр может синтаксически анализироваться из потока битов, чтобы указывать цветовое пространство в качестве YCbCr или RGB. Параметр может синтаксически анализироваться из потока битов, чтобы указывать разрешение кадров в качестве 4K, FHD, CIF, QCIF. Параметр может указывать цветовой компонент в качестве Y, Cb или Cr. Параметр также может извлекаться с использованием информации сигнала яркости без передачи в служебных сигналах. Согласно примеру, параметр, соответствующий фильтру с небольшим числом отводов, может извлекаться, если сильный градиент или край обнаруживается в восстановленном изображении сигнала яркости, и параметр, соответствующий фильтру с большим числом отводов, может извлекаться, если слабый градиент или край обнаруживается в восстановленном изображении сигнала яркости. В качестве другого примера, параметр, соответствующий фильтру с большим числом отводов, может извлекаться, если сильный градиент или край обнаруживается в восстановленном изображении сигнала яркости, и параметр, соответствующий фильтру с небольшим числом отводов, может извлекаться, если слабый градиент или край обнаруживается в восстановленном изображении сигнала яркости.[0612] In step S4001, the parameter is determined. The parameter may be parsed from the VPS, APS, SPS, PPS, slice header, or at the CTU or TU level, as described in FIG. 103. The parameter is parsed from the bitstream to indicate a filter. For example, a parameter may specify an index to select a filter from a specific set of filters. The parameter can be parsed from the bitstream to indicate the chroma downsampling format as 4:4:4, 4:2:0, 4:2:2, or 4:1:1. The parameter can be parsed from the bitstream to indicate the color space as YCbCr or RGB. The parameter can be parsed from the bitstream to indicate the frame resolution as 4K, FHD, CIF, QCIF. The parameter can specify the color component as Y, Cb or Cr. The parameter can also be retrieved using luminance signal information without signaling. According to an example, a parameter corresponding to a filter with a small number of taps can be extracted if a strong gradient or edge is detected in the reconstructed luminance signal image, and a parameter corresponding to a filter with a large number of taps can be extracted if a weak gradient or edge is detected in the reconstructed signal image brightness As another example, a parameter corresponding to a high-tap filter may be extracted if a strong gradient or edge is detected in the reconstructed luminance signal image, and a parameter corresponding to a low-tap filter may be extracted if a weak gradient or edge is detected in the reconstructed image. brightness signal image.

[0613] На этапе S4002, фильтр выбирается из множества фильтров на основе параметра. Множество фильтров могут иметь различные формы или размеры. Множество фильтров могут иметь идентичную форму и иметь различные значения коэффициентов. Параметр может указывать значения коэффициентов, которые должны использоваться для того, чтобы формировать набор коэффициентов фильтрации.[0613] In step S4002, a filter is selected from a plurality of filters based on the parameter. A variety of filters may have different shapes or sizes. Multiple filters can have an identical shape and have different coefficient values. The parameter can specify coefficient values that should be used to generate a set of filter coefficients.

[0614] Фиг. 115 показывает пример последовательности операций обработки выбора фильтра.[0614] FIG. 115 shows an example of a filter selection processing flow.

[0615] На этапе S4011, определяется то, указывает или нет параметр определенный формат. Формат может быть предварительно определен. Определенный формат может указывать формат субдискретизации сигналов цветности в качестве 4:4:4, 4:2:0, 4:2:2 или 4:1:1. Определенный формат может указывать цветовой компонент в качестве Y, Cb или Cr. Определенный формат может указывать цветовое пространство в качестве YCbCr или RGB. Определенный формат может указывать разрешение кадров в качестве 4K, FHD, CIF, QCIF.[0615] In step S4011, it is determined whether or not the parameter indicates a specific format. The format can be predefined. The specified format may specify the chrominance subsampling format as 4:4:4, 4:2:0, 4:2:2, or 4:1:1. A particular format may specify the color component as Y, Cb or Cr. A particular format may specify a color space as YCbCr or RGB. A specific format can indicate frame resolution as 4K, FHD, CIF, QCIF.

[0616] На этапе S4012, если определяется то, что параметр указывает определенный формат ("Да" на этапе S4011), первый фильтр из множества фильтров выбирается.[0616] In step S4012, if it is determined that the parameter indicates a specific format ("Yes" in step S4011), the first filter of the plurality of filters is selected.

[0617] На этапе S4013, если определяется то, что параметр не указывает определенный формат ("Нет" на этапе S4011), фильтр, отличающийся от первого фильтра, выбирается из множества фильтров. Форма, размер или значения коэффициентов фильтрации могут отличаться между S4012 и S4013.[0617] In step S4013, if it is determined that the parameter does not indicate a specific format ("No" in step S4011), a filter different from the first filter is selected from the plurality of filters. The shape, size or filter coefficient values may differ between S4012 and S4013.

[0618] Фиг. 116 и фиг. 117 иллюстрируют некоторые примеры фильтров. На фиг. 116, показывающем фильтры (1a)-(1i), общее число строк, имеющих максимальное число коэффициентов, является четным (например, 2, 4 или 6). На фиг. 117, показывающем фильтры (2a)-(2i), общее число строк, имеющих максимальное число коэффициентов, является нечетным (например, 1, 3 или 5).[0618] FIG. 116 and fig. 117 illustrate some examples of filters. In fig. 116 showing filters (1a)-(1i), the total number of rows having the maximum number of coefficients is even (eg, 2, 4, or 6). In fig. 117 showing filters (2a)-(2i), the total number of rows having the maximum number of coefficients is odd (eg, 1, 3 or 5).

[0619] Например, фильтр из фиг. 116 может выбираться, если параметр указывает то, что формат субдискретизации сигналов цветности 4:2:0 применяется, в то время как фильтр из фиг. 117 может выбираться, если параметр указывает то, что формат субдискретизации сигналов цветности 4:2:2, 4:4:4 или 4:1:1 применяется. Выбор фильтров из фиг. 116 и фиг. 117 может быть изменен на противоположное.[0619] For example, the filter of FIG. 116 may be selected if the parameter indicates that a 4:2:0 chroma downsampling format is applied while the filter of FIG. 117 can be selected if the parameter indicates that a 4:2:2, 4:4:4 or 4:1:1 chroma subsampling format is being used. Selection of filters from Fig. 116 and fig. 117 can be reversed.

[0620] Например, фильтр из фиг. 116 может выбираться, если параметр указывает то, что Y используется для того, чтобы модифицировать Cb или Cr, в то время как фильтр из фиг. 117 может выбираться, если параметр указывает то, что Cb используется для того, чтобы модифицировать Cr, либо Cr используется для того, чтобы модифицировать Cb. Выбор фильтров из фиг. 116 и фиг. 117 может быть изменен на противоположное.[0620] For example, the filter of FIG. 116 may be selected if the parameter indicates that Y is used to modify Cb or Cr, while the filter of FIG. 117 may be selected if the parameter indicates that Cb is used to modify Cr, or Cr is used to modify Cb. Selection of filters from Fig. 116 and fig. 117 can be reversed.

[0621] Например, фильтр из фиг. 116 может выбираться, если параметр указывает то, что цветовое YCbCr-пространство применяется, в то время как фильтр из фиг. 117 может выбираться, если параметр указывает то, что цветовое RGB-пространство применяется. Выбор фильтров из фиг. 116 и фиг. 117 может быть изменен на противоположное.[0621] For example, the filter of FIG. 116 may be selected if the parameter indicates that the YCbCr color space is applied while the filter of FIG. 117 can be selected if the parameter indicates that the RGB color space is being used. Selection of filters from Fig. 116 and fig. 117 can be reversed.

[0622] Например, первый фильтр из фиг. 116 может выбираться, если параметр указывает то, что разрешение изображений является большим (например, 4K или 8K), в то время как фильтр, отличающийся от первого фильтра из фиг. 116, может выбираться, если параметр указывает то, что разрешение изображений является небольшим (например, QCIF или CIF). Размер двух выбранных фильтров может отличаться. Например, фильтр (1a) может выбираться для QCIF-разрешения изображений, фильтр (1c) может выбираться для FHD-разрешения изображений, и фильтр (1e) может выбираться для 8K-разрешения изображений.[0622] For example, the first filter of FIG. 116 may be selected if the parameter indicates that the resolution of the images is high (eg, 4K or 8K) while a filter other than the first filter of FIG. 116 may be selected if the parameter indicates that the resolution of the images is small (eg, QCIF or CIF). The size of the two selected filters may differ. For example, filter (1a) may be selected for QCIF image resolution, filter (1c) may be selected for FHD image resolution, and filter (1e) may be selected for 8K image resolution.

[0623] Например, первый фильтр из фиг. 117 может выбираться, если параметр указывает то, что разрешение изображений является большим (например, 4K или 8K), в то время как фильтр, отличающийся от первого фильтра из фиг. 117, может выбираться, если параметр указывает то, что разрешение изображений является небольшим (например, QCIF или CIF). Размер двух выбранных фильтров может отличаться. Например, фильтр (2a) может выбираться для QCIF-разрешения изображений, фильтр (2c) может выбираться для FHD-разрешения изображений, и фильтр (2e) может выбираться для 8K-разрешения изображений.[0623] For example, the first filter of FIG. 117 may be selected if the parameter indicates that the resolution of the images is large (eg, 4K or 8K) while a filter other than the first filter of FIG. 117 may be selected if the parameter indicates that the resolution of the images is small (eg, QCIF or CIF). The size of the two selected filters may differ. For example, filter (2a) may be selected for QCIF image resolution, filter (2c) may be selected for FHD image resolution, and filter (2e) may be selected for 8K image resolution.

[0624] На этапе S4003, восстановленные выборки изображений первого компонента фильтруются с использованием выбранного фильтра. Первый компонент может представлять собой компонент сигнала яркости. Процесс фильтрации содержит, по меньшей мере, операцию умножения, деления, суммирования или вычитания, по меньшей мере, для двух восстановленных выборок изображений первого компонента. Например, две восстановленных выборки изображений могут исходить из текущих и соседних выборок изображений или могут исходить из двух соседних выборок изображений. Местоположения текущих и соседних выборок изображений могут быть предварительно определены.[0624] In step S4003, the reconstructed first component image samples are filtered using the selected filter. The first component may be a luminance signal component. The filtering process comprises at least a multiplication, division, summation or subtraction operation on at least two reconstructed first component image samples. For example, the two reconstructed image samples may come from the current and adjacent image samples, or may come from two adjacent image samples. The locations of the current and neighboring image samples can be predetermined.

[0625] На этапе S4004, восстановленная выборка изображений второго компонента, отличающегося от первого компонента, модифицируется с использованием вывода фильтрации. Второй компонент может представлять собой компонент сигнала цветности. Модификация включает в себя операцию, чтобы умножать, делить, суммировать или вычитать вывод фильтрации с восстановленной выборкой изображений.[0625] In step S4004, the reconstructed sample of images of the second component different from the first component is modified using the filter output. The second component may be a chrominance signal component. The modification involves an operation to multiply, divide, sum, or subtract the filtering output with the reconstructed image sample.

[0626] На этапе S4005, изображение декодируется с использованием модифицированной восстановленной выборки изображений.[0626] In step S4005, the image is decoded using the modified reconstructed image sample.

[0627] Настоящее раскрытие сущности относится к адаптивному выбору одного фильтра из множества фильтров для кросскомпонентной фильтрации. Различные фильтры могут иметь различные формы или размеры. Адаптивный выбор фильтра обеспечивает большую гибкость кросскомпонентной фильтрации для повышения эффективности кодирования.[0627] The present disclosure relates to adaptive selection of one filter from a plurality of filters for cross-component filtering. Different filters may have different shapes or sizes. Adaptive filter selection provides greater flexibility in cross-component filtering for improved coding efficiency.

[0628] Более одного набора фильтров может передаваться в служебных сигналах. Различные наборы фильтров могут иметь различные формы и размеры. То, какой фильтр должен использоваться, может синтаксически анализироваться или определяться после этого (например, из filter_id).[0628] More than one set of filters may be signaled. Different filter sets can come in different shapes and sizes. Which filter should be used can be parsed or determined afterwards (eg from filter_id).

[0629] Пятый аспект [0629] Fifth aspect

Фиг. 118 является блок-схемой последовательности операций способа для примера последовательности 5000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно пятому аспекту. Последовательность операций обработки 5000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.Fig. 118 is a flowchart for an example of a processing flow 5000 for decoding an image applying a CCALF process using a parameter according to the fifth aspect. The processing flow 5000 may be performed, for example, by the decoder 200 of FIG. 67, etc.

[0630] На этапе S5001, первый параметр синтаксически анализируется из потока битов. Первый параметр может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка среза или на CTU- или TU-уровне (фиг. 103, при этом "параметр" соответствует "первому параметру"). Первый параметр может указывать формат субдискретизации сигналов цветности в качестве 4:4:4, 4:2:0, 4:2:2 или 4:1:1. Первый параметр может указывать цветовое пространство в качестве YCbCr или RGB. Первый параметр может указывать разрешение кадров в качестве 4K, FHD, CIF, QCIF. Первый параметр может указывать цветовой компонент в качестве Y, Cb или Cr.[0630] In step S5001, the first parameter is parsed from the bitstream. The first parameter may be parsed from the VPS, APS, SPS, PPS, slice header, or at the CTU or TU level (FIG. 103, with "parameter" corresponding to the "first parameter"). The first parameter can specify the chroma subsampling format as 4:4:4, 4:2:0, 4:2:2 or 4:1:1. The first parameter can specify the color space as YCbCr or RGB. The first parameter can indicate the frame resolution in 4K, FHD, CIF, QCIF quality. The first parameter can specify the color component as Y, Cb or Cr.

[0631] На этапе S5002, определяется то, равен или нет первый параметр определенному значению. Определенное значение может быть предварительно определено.[0631] In step S5002, it is determined whether or not the first parameter is equal to the determined value. A specific value can be predefined.

[0632] На этапе S5003, если определяется то, что первый параметр равен определенному значению ("Да" на этапе S5002), первое число коэффициентов синтаксически анализируется из потока битов. Первое число коэффициентов может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка среза или на CTU- или TU-уровне (фиг. 103, при этом "параметр" соответствует "первому числу коэффициентов").[0632] In step S5003, if it is determined that the first parameter is equal to a certain value ("Yes" in step S5002), the first number of coefficients is parsed from the bitstream. The first number of coefficients may be parsed from the VPS, APS, SPS, PPS, slice header, or at the CTU or TU level (FIG. 103, with "parameter" corresponding to the "first number of coefficients").

[0633] На этапе S5004, если определяется то, что первый параметр не равен определенному значению ("Нет" на этапе S5003), второе число коэффициентов, не равное первому числу коэффициентов, синтаксически анализируется из потока битов. Второе число коэффициентов может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка среза или на CTU- или TU-уровне (фиг. 103, при этом "параметр" соответствует "второму числу коэффициентов"). Первое число и второе число из этапа S5002 и этапа S5003 могут отличаться.[0633] In step S5004, if it is determined that the first parameter is not equal to a certain value ("No" in step S5003), a second number of coefficients not equal to the first number of coefficients is parsed from the bitstream. The second number of coefficients may be parsed from the VPS, APS, SPS, PPS, slice header, or at the CTU or TU level (FIG. 103, with “parameter” corresponding to the “second number of coefficients”). The first number and the second number from step S5002 and step S5003 may be different.

[0634] Например, как показано на фиг. 119(i), число коэффициентов, когда первый параметр указывает то, что формат субдискретизации сигналов цветности 4:2:0 применяется, отличается от числа коэффициентов, когда первый параметр указывает то, что формат субдискретизации сигналов цветности 4:2:2, 4:4:4 или 4:1:1 применяется.[0634] For example, as shown in FIG. 119(i), the number of coefficients when the first parameter indicates that the 4:2:0 chrominance subsampling format is applied is different from the number of coefficients when the first parameter indicates that the 4:2:2, 4 chrominance subsampling format is applied: 4:4 or 4:1:1 applies.

[0635] Например, как показано на фиг. 119(ii), число коэффициентов, когда первый параметр указывает то, что цветовое YCbCr-пространство применяется, отличается от числа коэффициентов, когда первый параметр указывает то, что цветовое RGB-пространство применяется.[0635] For example, as shown in FIG. 119(ii), the number of coefficients when the first parameter indicates that the YCbCr color space is applied is different from the number of coefficients when the first parameter indicates that the RGB color space is applied.

[0636] Например, как показано на фиг. 119(iii), число коэффициентов, когда первый параметр указывает то, что Y используется для того, чтобы модифицировать Cb или Cr, отличается от числа коэффициентов, когда первый параметр указывает то, что Cb используется для того, чтобы модифицировать Cr, или Cr используется для того, чтобы модифицировать Cb.[0636] For example, as shown in FIG. 119(iii), the number of coefficients when the first parameter indicates that Y is used to modify Cb or Cr is different from the number of coefficients when the first parameter indicates that Cb is used to modify Cr or Cr is used in order to modify Cb.

[0637] Например, как показано на фиг. 119 (iv), число коэффициентов, когда первый параметр указывает то, что разрешение изображений является большим (например, 4K, или 8K), отличается от числа коэффициентов, когда первый параметр указывает то, что разрешение изображений является небольшим (например, QCIF или CIF).[0637] For example, as shown in FIG. 119(iv), the number of coefficients when the first parameter indicates that the resolution of the images is large (for example, 4K, or 8K) is different from the number of coefficients when the first parameter indicates that the resolution of the images is small (for example, QCIF or CIF ).

[0638] На фиг. 119, информация как формат субдискретизации сигналов цветности и разрешение изображений может получаться, если SPS_id кодируется в APS.[0638] In FIG. 119, information such as chroma subsampling format and image resolution can be obtained if the SPS_id is encoded in APS.

[0639] На этапе S5005, восстановленные выборки изображений первого компонента фильтруются с использованием синтаксически проанализированных коэффициентов. Процесс фильтрации содержит, по меньшей мере, операцию умножения, деления, суммирования или вычитания, по меньшей мере, для двух восстановленных выборок изображений первого компонента. Две восстановленных выборки изображений, например, могут исходить из текущих и соседних выборок изображений или могут исходить из двух соседних выборок изображений. Местоположения текущих и соседних выборок изображений могут быть предварительно определены.[0639] In step S5005, the reconstructed first component image samples are filtered using the parsed coefficients. The filtering process comprises at least a multiplication, division, summation or subtraction operation on at least two reconstructed first component image samples. The two reconstructed image samples, for example, may come from the current and adjacent image samples, or may come from two adjacent image samples. The locations of the current and neighboring image samples can be predetermined.

[0640] На этапе S5006, восстановленная выборка изображений компонента, отличающегося от первого компонента, модифицируется с использованием вывода фильтрации. Модификация включает в себя операцию, чтобы умножать, делить, суммировать или вычитать вывод фильтрации с восстановленной выборкой изображений.[0640] In step S5006, the reconstructed sample of images of a component different from the first component is modified using the filter output. The modification involves an operation to multiply, divide, sum, or subtract the filtering output with the reconstructed image sample.

[0641] На этапе S5007, изображение декодируется с использованием модифицированной восстановленной выборки изображений.[0641] In step S5007, the image is decoded using the modified reconstructed image sample.

[0642] Настоящее раскрытие сущности относится к адаптивному извлечению числа коэффициентов фильтрации для кросскомпонентной фильтрации. Адаптивное извлечение числа коэффициентов фильтрации обеспечивает большую гибкость кросскомпонентной фильтрации для повышения эффективности кодирования.[0642] The present disclosure relates to adaptively extracting the number of filter coefficients for cross-component filtering. Adaptive extraction of the number of filter coefficients provides greater flexibility for cross-component filtering to improve coding efficiency.

[0643] Более одного набора коэффициентов может передаваться в служебных сигналах. Различные наборы коэффициентов могут иметь различные числа коэффициентов. Различные наборы коэффициентов могут иметь идентичное число коэффициентов. Число коэффициентов из этих наборов коэффициентов может быть фиксированным. Который набор коэффициентов использоваться синтаксически анализируется или определяется после этого (например, из coeff_set_id или filter_id).[0643] More than one set of coefficients may be signaled. Different sets of coefficients may have different numbers of coefficients. Different sets of coefficients may have the same number of coefficients. The number of coefficients from these coefficient sets can be fixed. Which set of coefficients to use is parsed or determined afterwards (eg from coeff_set_id or filter_id).

[0644] Шестой аспект [0644] Sixth aspect

Фиг. 120 является блок-схемой последовательности операций способа для примера последовательности 6000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно шестому аспекту. Последовательность операций обработки 6000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.Fig. 120 is a flowchart for an example of a processing flow 6000 for decoding an image applying a CCALF process using a parameter according to the sixth aspect. The processing flow 6000 may be performed, for example, by the decoder 200 of FIG. 67, etc.

[0645] На S6001, процесс выбирает, по меньшей мере, набор восстановленных выборок из первого компонента.[0645] At S6001, the process selects at least a set of reconstructed samples from the first component.

[0646] На S6002, процесс извлекает значение на основе выбранного набора восстановленных выборок.[0646] At S6002, the process extracts a value based on the selected set of reconstructed samples.

[0647] На S6003, процесс фильтрует восстановленные выборки на основе извлеченного значения.[0647] At S6003, the process filters the reconstructed samples based on the extracted value.

[0648] На S6004, процесс модифицирует восстановленную выборку изображений второго компонента с использованием вывода фильтрации[0648] At S6004, the process modifies the reconstructed image sample of the second component using the filtering output

[0649] На S6005, процесс декодирует изображение с использованием фильтрованной восстановленной выборки изображений.[0649] At S6005, the process decodes the image using the filtered reconstructed image sample.

[0650] Фиг. 121, 122 и 123 являются концептуальными схемами, иллюстрирующими примеры формирования CCALF-значения компонента сигнала яркости (см. этап S6002) для текущей выборки сигналов цветности посредством вычисления средневзвешенного значения соседних выборок. Другими словами, в этом примере, CCALF-значение выборок сигналов яркости для выборки сигналов цветности формируется посредством вычисления взвешенной суммы выборок сигналов яркости, расположенных в соседней области выборки сигналов цветности. Выборки сигналов яркости включают в себя выборку, расположенную рядом с выборкой сигналов цветности.[0650] FIG. 121, 122 and 123 are conceptual diagrams illustrating examples of generating a luma component CCALF value (see step S6002) for a current chrominance signal sample by calculating a weighted average of neighboring samples. In other words, in this example, the CCALF value of the luma samples for the chroma sample is generated by calculating the weighted sum of the luma samples located in the adjacent chrominance sample region. The luma samples include a sample adjacent to the chrominance sample.

[0651] На фиг. 121, местоположение, указываемое посредством ромбовидной формы, представляет собой местоположение текущей выборки сигналов цветности. Например, значение, соответствующее местоположению (curr) для CCALF, может извлекаться посредством вычисления усредненного значения соседних выборок сигналов яркости, которые помечаются с сетчатыми шаблонами. Выборки сигналов яркости белого цвета не должны использоваться для процесса усреднения. Другими словами, значение для CCALF может извлекаться посредством обращения к выборочному значению выборки сигналов яркости, расположенной рядом с текущей выборкой сигналов цветности. Предусмотрено две таких выборки сигналов яркости в примере по фиг. 121.[0651] In FIG. 121, the location indicated by the diamond shape is the location of the current chroma sample. For example, the value corresponding to the location (curr) for CCALF can be extracted by calculating the average of neighboring luminance signal samples that are labeled with grid patterns. White luminance samples should not be used for the averaging process. In other words, the value for CCALF may be retrieved by accessing the sample value of a luma sample adjacent to the current chrominance sample. Two such luminance signal samples are provided in the example of FIG. 121.

[0652] Фиг. 122 описывает примерные уравнения для вычисления CCALF-значения. CCALF-значение может извлекаться посредством использования значений коэффициентов фильтрации и выборочных значений сигналов яркости. Значение коэффициента фильтрации умножается на подконструкт из двух значений соседней выборки сигналов яркости. Выборка сигналов яркости, используемая при каждом вычислении подконструкта, может быть расположена рядом с текущей выборкой сигналов цветности. Форма уравнений может быть идентичной форме, используемой в процессе ALF-фильтрации. В некоторых вариантах осуществления, если значение коэффициента фильтрации меньше 64, значение коэффициента может задаваться равным нулю.[0652] FIG. 122 describes example equations for calculating the CCALF value. The CCALF value can be extracted by using filter coefficient values and sample luminance signal values. The filter coefficient value is multiplied by a subconstruct of two values of the adjacent luminance signal sample. The luminance sample used in each subconstruct calculation can be located adjacent to the current chrominance sample. The form of the equations may be identical to the form used in the ALF filtering process. In some embodiments, if the filter coefficient value is less than 64, the coefficient value may be set to zero.

[0653] Как описано на фиг. 123, различные числа выборок сигналов яркости могут усредняться, и число усредненных соседних выборок сигналов яркости может предварительно задаваться или передаваться в служебных сигналах на уровне кадра, среза или блока. Позиции усредненных соседних выборок сигналов яркости могут предварительно задаваться или передаваться в служебных сигналах на уровне кадра, среза или блока. Весовые коэффициенты усредненных соседних выборок сигналов яркости могут предварительно задаваться или передаваться в служебных сигналах на уровне кадра, среза или блока.[0653] As described in FIG. 123, different numbers of luminance samples may be averaged, and the number of averaged adjacent luminance samples may be preset or signaled at the frame, slice, or block level. The positions of averaged neighboring luminance samples may be preset or signaled at the frame, slice, or block level. Weights of averaged neighboring luminance samples may be preset or signaled at the frame, slice, or block level.

[0654] Фиг. 124 и 125 являются концептуальными схемами, иллюстрирующими примеры формирования CCALF-значения компонента сигнала яркости для текущей выборки посредством вычисления средневзвешенного значения соседних выборок, при этом местоположения соседних выборок определяются адаптивно относительно (согласно) типа сигналов цветности. Другими словами, местоположения выборок сигналов яркости, которые должны использоваться при вычислении со взвешиванием, определяются на основе местоположения текущей выборки сигналов цветности.[0654] FIG. 124 and 125 are conceptual diagrams illustrating examples of generating a luma component CCALF value for a current sample by calculating a weighted average of neighboring samples, wherein the locations of neighboring samples are determined adaptively with respect to the type of chrominance signals. In other words, the locations of the luma samples to be used in the weighted calculation are determined based on the location of the current chrominance sample.

[0655] Выборки, помеченные с различными шаблонами, могут представлять различные весовые коэффициенты. Число усредненных выборок может быть адаптивным (может соответствовать) относительно типа сигналов цветности. Весовые коэффициенты усредненных выборок могут быть адаптивными (могут соответствовать) относительно типа сигналов цветности.[0655] Samples labeled with different patterns may represent different weights. The number of average samples may be adaptive (can match) with respect to the type of chrominance signals. The weighting coefficients of the average samples can be adaptive (can match) with respect to the type of chrominance signals.

[0656] Фиг. 126 и 127 являются концептуальными схемами, иллюстрирующими примеры формирования CCALF-значения компонента сигнала яркости посредством применения побитового сдвига к выходному значению вычисления со взвешиванием. Другими словами, процесс сдвига с понижающим масштабированием применяется к фильтрованному значению выборок сигналов яркости, идентично ALF-процессу. В некоторых вариантах осуществления, если значение коэффициента меньше 64, значение коэффициента может задаваться равным нулю.[0656] FIG. 126 and 127 are conceptual diagrams illustrating examples of generating a CCALF value of a luminance signal component by applying a bit shift to a weighted calculation output value. In other words, a downscaling shift process is applied to the filtered value of the luma samples, identical to the ALF process. In some embodiments, if the coefficient value is less than 64, the coefficient value may be set to zero.

[0657] Число битов для сдвига для CCALF представляется как x. Значение x может определяться в качестве идентичного значения со значением в ALF-процессе. В некоторых примерах значение x может быть фиксированно равным 10. В некоторых примерах значение x может быть фиксированно равным 7.[0657] The number of bits to shift for CCALF is represented as x. The value x may be defined to be identical to the value in the ALF process. In some examples, the value of x may be fixed to 10. In some examples, the value of x may be fixed to 7.

[0658] Седьмой аспект [0658] Seventh aspect

Фиг. 128 является блок-схемой последовательности операций способа для примера последовательности 7000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно седьмому аспекту. Последовательность операций обработки 7000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д. В дальнейшем описываются способы определения восстановленных выборок, которые должны фильтроваться с использованием одного или более параметров.Fig. 128 is a flowchart for an example of a processing flow 7000 for decoding an image applying a CCALF process using a parameter according to the seventh aspect. The processing flow 7000 may be performed, for example, by the decoder 200 of FIG. 67, etc. The following describes methods for determining the reconstructed samples that should be filtered using one or more parameters.

[0659] На этапе S7001, один или более параметров синтаксически анализируются из потока битов. Один или более параметров могут кодироваться, по меньшей мере, в одном из APS, SPS, PPS, заголовка среза или на уровне CTU, как показано на фиг. 129. Фиг. 130 показывает примерные процессы извлечения одного или более параметров.[0659] In step S7001, one or more parameters are parsed from the bit stream. One or more parameters may be encoded in at least one of the APS, SPS, PPS, slice header, or CTU level, as shown in FIG. 129. Fig. 130 shows exemplary processes for retrieving one or more parameters.

[0660] Один или более параметров могут находиться в SPS. Срез во-первых находит PPS согласно PPS_id, который кодируется в срезе. PPS затем находит SPS согласно SPS_id, который кодируется в PPS. Через это соединение, срез может извлекать один или более параметров в SPS, как показано на фиг. 130(a).[0660] One or more parameters may be in the SPS. The slice first finds the PPS according to the PPS_id, which is encoded in the slice. PPS then finds the SPS according to the SPS_id, which is encoded in PPS. Through this connection, the slice can retrieve one or more parameters in the SPS, as shown in FIG. 130(a).

[0661] Один или более параметров могут находиться в наборе параметров на уровне кадра, например, в PPS. Срез во-первых находит PPS согласно PPS_id, который кодируется в срезе. Через это соединение, срез может извлекать один или более параметров в PPS, как показано на фиг. 130(b).[0661] One or more parameters may be in a frame-level parameter set, such as a PPS. The slice first finds the PPS according to the PPS_id, which is encoded in the slice. Through this connection, the slice can retrieve one or more parameters in the PPS, as shown in FIG. 130(b).

[0662] Один или более параметров могут находиться в APS. Срез во-первых находит APS согласно APS_id, который кодируется в срезе. Через это соединение, срез может извлекать один или более параметров в APS, как показано на фиг. 130(c).[0662] One or more parameters may be in the APS. The slice first finds the APS according to the APS_id, which is encoded in the slice. Through this connection, the slice can retrieve one or more parameters in the APS, as shown in FIG. 130(c).

[0663] Один или более параметров могут находиться в срезе (фиг. 130(d)). Срез может получать один или более параметров из своего внутреннего заголовка или данных.[0663] One or more parameters may be in the slice (Fig. 130(d)). A slice may receive one or more parameters from its internal header or data.

[0664] Один или более параметров могут включать в себя первый параметр, который выбирает размер выборок, которые должны модифицироваться. Один или более параметров могут указывать то, активируется или нет CCALF-процесс. Один или более параметров могут включать в себя параметры, указывающие то, активируется или нет CCALF-процесс, и параметры, указывающие значения коэффициентов фильтра, которые должен использоваться.[0664] The one or more parameters may include a first parameter that selects the size of the samples to be modified. One or more parameters may indicate whether or not the CCALF process is activated. The one or more parameters may include parameters indicating whether or not the CCALF process is enabled and parameters indicating values of filter coefficients to be used.

[0665] Выборки могут группироваться в квадратную форму, имеющую конкретный размер, к примеру, в 4×4, 8×8, 16×16, 16×16, 32×32, 64×64 или 128×128 выборок.[0665] The samples may be grouped into a square shape having a specific size, for example, 4x4, 8x8, 16x16, 16x16, 32x32, 64x64, or 128x128 samples.

[0666] Первый параметр может синтаксически анализироваться до синтаксического анализа заголовка среза или данных срезов. Например, первый параметр может синтаксически анализироваться из APS, SPS или PPS.[0666] The first parameter may be parsed before the slice header or slice data is parsed. For example, the first parameter may be parsed from APS, SPS, or PPS.

[0667] Первый параметр может синтаксически анализироваться из заголовка среза.[0667] The first parameter may be parsed from the slice header.

[0668] Первый параметр может синтаксически анализироваться из данных единиц дерева кодирования (CTU).[0668] The first parameter can be parsed from the coding tree units (CTU) data.

[0669] Первый параметр может зависеть от типа субдискретизации сигналов цветности или CTU-размера или обоих. Если тип субдискретизации сигналов цветности представляет собой 4:4:4, размер блока, выбранный посредством первого параметра, может составлять 4×4, 8×8, 16×16, 32×32, 64×64 или 128×128. Если тип субдискретизации сигналов цветности представляет собой 4:2:2 или 4:2:0, размер блока, выбранный посредством первого параметра, может составлять 4×4, 8×8, 16×16, 32×32 или 64×64.[0669] The first parameter may depend on the type of chroma subsampling or CTU size or both. If the chrominance subsampling type is 4:4:4, the block size selected by the first parameter may be 4x4, 8x8, 16x16, 32x32, 64x64, or 128x128. If the chrominance subsampling type is 4:2:2 or 4:2:0, the block size selected by the first parameter may be 4x4, 8x8, 16x16, 32x32, or 64x64.

[0670] Первый параметр может зависеть от CTU-размера, причем выбранный размер блока не может превышать его CTU-размер.[0670] The first parameter may depend on the CTU size, and the selected block size cannot exceed its CTU size.

[0671] Один или более параметров могут включать в себя второй параметр, который указывает то, должен или нет фильтроваться блок выборок.[0671] The one or more parameters may include a second parameter that indicates whether or not the block of samples should be filtered.

[0672] Второй параметр может представлять собой флаг со значением 1 или 0, при этом 1 указывает необходимость модифицировать восстановленные выборки, и 0 указывает необходимость не модифицировать восстановленные выборки.[0672] The second parameter may be a flag with a value of 1 or 0, with 1 indicating that the reconstructed samples should be modified and 0 indicating that the reconstructed samples should not be modified.

[0673] Второй параметр может синтаксически анализироваться до синтаксического анализа первых данных единиц дерева кодирования (CTU). Например, второй параметр может синтаксически анализироваться из APS, SPS, PPS, заголовка среза или данных срезов.[0673] The second parameter may be parsed before the first coding tree unit (CTU) data is parsed. For example, the second parameter may be parsed from APS, SPS, PPS, slice header, or slice data.

[0674] Второй параметр может синтаксически анализироваться из данных единиц дерева кодирования (CTU). Фиг. 131 показывает выборочные значения второго параметра. Множество вторых параметров могут указывать то, должны или нет модифицироваться множество блоков в единице дерева кодирования (CTU), имеющей конкретные размеры.[0674] The second parameter can be parsed from the coding tree units (CTU) data. Fig. 131 shows sample values of the second parameter. A plurality of second parameters may indicate whether or not a plurality of blocks in a coding tree unit (CTU) having a particular size should be modified.

[0675] Вторые параметры могут указывать то, деактивируется или нет модификация восстановленных выборок в кадре или последовательности. Если вторые параметры указывают то, что модификация восстановленных выборок деактивируется, этап S7002 по фиг. 128 должен приводить к этапу S7005 непосредственно, который соответствует ветви "Нет" на фиг. 128.[0675] The second parameters may indicate whether or not modification of the reconstructed samples in the frame or sequence is disabled. If the second parameters indicate that modification of the reconstructed samples is deactivated, step S7002 of FIG. 128 should lead to step S7005 directly, which corresponds to the "No" branch in FIG. 128.

[0676] Один или более параметров могут включать в себя параметр, который может синтаксически анализироваться с использованием неарифметического кодирования, к примеру, кодирования фиксированной длины, кодирования экспоненциальным кодом Голомба или VLC.[0676] The one or more parameters may include a parameter that can be parsed using non-arithmetic encoding, for example, fixed length encoding, exponential Golomb encoding, or VLC.

[0677] Один или более параметров могут включать в себя параметр, который может синтаксически анализироваться с использованием арифметического кодирования, к примеру, CAVLC или CABAC.[0677] The one or more parameters may include a parameter that can be parsed using an arithmetic encoding, for example, CAVLC or CABAC.

[0678] Согласно примеру, как показано на фиг. 132, второй параметр может синтаксически анализироваться с использованием арифметического кодирования до синтаксического анализа первых данных единиц дерева кодирования в срезе, а далее данных байтового совмещения или битового совмещения. В этом примере, инициализация арифметического кодирования для синтаксического анализа параметров после второго параметра в идентичном срезе может применяться.[0678] According to an example, as shown in FIG. 132, the second parameter may be parsed using arithmetic encoding before parsing the first encoding tree unit data in the slice and then the byte alignment or bit alignment data. In this example, arithmetic encoding initialization to parse parameters after the second parameter in an identical slice can be used.

[0679] На этапе S7002, определяется то, должен или нет использоваться фильтр, на основе синтаксически проанализированных параметров.[0679] In step S7002, it is determined whether or not a filter should be used based on the parsed parameters.

[0680] Если фильтр должен использоваться, на этапе S7003, по меньшей мере, восстановленная выборка из первого компонента фильтруется. Первый компонент может представлять собой выборки яркости.[0680] If a filter is to be used, in step S7003, at least the reconstructed sample from the first component is filtered. The first component may represent luminance samples.

[0681] На этапе S7004, восстановленные выборки модифицируются с использованием, по меньшей мере, одной фильтрованной восстановленной выборки из компонента, отличающегося от первого компонента. Компонент, отличающийся от первого компонента, может представлять собой выборки цветности.[0681] In step S7004, the reconstructed samples are modified using at least one filtered reconstructed sample from a component different from the first component. The component different from the first component may be chroma samples.

[0682] На этапе S7005, блок выборок изображений декодируется с использованием модифицированных восстановленных выборок.[0682] In step S7005, the block of image samples is decoded using the modified reconstructed samples.

[0683] Настоящее раскрытие сущности иллюстрирует характеристики одного или более параметров на нескольких уровнях для фильтрации, включающие в себя способы формирования, функции и способы кодирования. С использованием этих управляющих параметров, проектирование фильтрации может оптимизироваться, чтобы сокращать число битов кодирования, улучшать высокочастотные компоненты с использованием модифицированных выборок и уменьшать избыточность между различными каналами, чтобы за счет этого повышать качество изображений.[0683] The present disclosure illustrates the characteristics of one or more parameters at multiple levels for filtering, including generation methods, functions, and encoding methods. Using these control parameters, filtering design can be optimized to reduce the number of encoding bits, improve high-frequency components using modified samples, and reduce redundancy between different channels, thereby improving image quality.

[0684] Фиг. 133 является концептуальной схемой варьирования этого варианта осуществления.[0684] FIG. 133 is a conceptual diagram of a variation of this embodiment.

[0685] Один или более параметров могут зависеть от сегмента единицы дерева кодирования. Когда сегмент имеет размер, отличающийся от размера, указываемого посредством первого параметра, второй параметр, указывающий то, фильтруется или нет сегмент, не кодируется, и фильтрация сегмента деактивируется. В этом примере, кодированные биты вторых параметров уменьшаются.[0685] One or more parameters may depend on a segment of a coding tree unit. When the segment has a size different from the size indicated by the first parameter, the second parameter indicating whether or not the segment is filtered is not encoded and filtering of the segment is deactivated. In this example, the encoded bits of the second parameters are decremented.

[0686] Форма или выборки, описанные в седьмом аспекте, могут заменяться сегментом прямоугольной или непрямоугольной формы. Примеры сегмента непрямоугольной формы могут представлять собой, по меньшей мере, одно из сегмента треугольной формы, сегмента Г-образной формы, сегмента пятиугольной формы, сегмента шестиугольной формы и сегмента многоугольной формы, как показано на фиг. 133.[0686] The shape or samples described in the seventh aspect may be replaced by a rectangular or non-rectangular shaped segment. Examples of the non-rectangular-shaped segment may be at least one of a triangular-shaped segment, an L-shaped segment, a pentagonal-shaped segment, a hexagonal-shaped segment, and a polygonal-shaped segment, as shown in FIG. 133.

[0687] Восьмой аспект [0687] Eighth aspect

Фиг. 134 является блок-схемой последовательности операций способа для примера последовательности 8000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно восьмому аспекту. Последовательность 8000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.Fig. 134 is a flowchart for an example of a processing flow 8000 for decoding an image applying a CCALF process using a parameter according to the eighth aspect. The processing sequence 8000 may be performed, for example, by the decoder 200 of FIG. 67, etc.

[0688] На этапе S8001, определяется то, находится или нет первая выборка первого компонента за пределами виртуальной границы.[0688] In step S8001, it is determined whether or not the first sample of the first component is outside the virtual boundary.

[0689] На этапе S8002, если определяется то, что первая выборка первого компонента находится за пределами виртуальной границы, вторая выборка первого компонента копируется в первую выборку, при этом вторая выборка расположена внутри виртуальной границы.[0689] In step S8002, if it is determined that the first sample of the first component is outside the virtual boundary, the second sample of the first component is copied to the first sample, with the second sample located inside the virtual boundary.

[0690] На этапе S8003, восстановленная выборка первого компонента, который включает в себя первую и вторую выборки, фильтруется.[0690] In step S8003, the reconstructed sample of the first component, which includes the first and second samples, is filtered.

[0691] На этапе S8004, восстановленная выборка компонента, отличающегося от первого компонента, модифицируется с использованием вывода фильтрации.[0691] In step S8004, the reconstructed sample of a component different from the first component is modified using the filter output.

[0692] На этапе S8005, модифицированная восстановленная выборка используется для того, чтобы декодировать изображение.[0692] In step S8005, the modified reconstructed sample is used to decode the image.

[0693] Способ дополнения на S8002 может быть идентичным независимо от формата дискретизации сигналов цветности. Например, симметричное дополнение может использоваться. Способ дополнения, например, может изменяться в зависимости от формата дискретизации сигналов цветности между симметричным дополнением и несимметричным дополнением.[0693] The padding method on S8002 may be identical regardless of the chrominance signal sampling format. For example, symmetrical complement can be used. The padding method, for example, may vary depending on the sampling format of the chrominance signals between symmetrical padding and unbalanced padding.

[0694] Первый компонент может представлять собой выборки сигналов яркости, и другой компонент, выборочные значения которого модифицируются, могут представлять собой выборки сигналов цветности. Сигнал цветности может представлять собой Cb, Cr либо и то, и другое.[0694] The first component may be luma samples, and the other component whose sample values are modified may be chrominance samples. The chrominance signal may be Cb, Cr, or both.

[0695] Фиг. 135 является блок-схемой последовательности операций способа для примера последовательности 8100 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно восьмому аспекту. Последовательность 8100 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.[0695] FIG. 135 is a flowchart for an example of a processing flow 8100 for decoding an image applying a CCALF process using a parameter according to the eighth aspect. The processing flow 8100 may be performed, for example, by the decoder 200 of FIG. 67, etc.

[0696] На S8101, определяется то, представляет собой тип выборок сигналов цветности или нет первый тип. Фиг. 136 показывает примерные местоположения типов 0-5 выборок сигналов цветности.[0696] In S8101, it is determined whether the type of chrominance samples is a first type or not. Fig. 136 shows exemplary locations of chroma sample types 0-5.

[0697] На S8102, если определяется то, что тип выборок сигналов цветности имеет первый тип, первая выборка и вторая выборка используются при фильтрации восстановленных выборок первого компонента, при этом первая выборка дублируется из второй восстановленной выборки.[0697] At S8102, if it is determined that the type of the chrominance signal samples is of the first type, the first sample and the second sample are used when filtering the reconstructed samples of the first component, wherein the first sample is duplicated from the second reconstructed sample.

[0698] На S8103, если определяется то, что тип выборок сигналов цветности не имеет первого типа, вторая выборка и третья выборка используются при фильтрации восстановленных выборок первого компонента, и первая выборка исключается, в котором третья выборка отличается сначала или вторая выборка.[0698] At S8103, if it is determined that the type of the chrominance signal samples is not of the first type, the second sample and the third sample are used when filtering the reconstructed samples of the first component, and the first sample is eliminated in which the third sample is different from the first or second sample.

[0699] На S8104, восстановленная выборка из компонента, отличающегося от первого компонента, модифицируется с использованием вывода фильтрации. Например, первый компонент указывает яркость, и вывод фильтрации суммируется с восстановленной выборкой из компонента цветности. В другом примере, первый компонент указывает компонент Cr цветности, и вывод фильтрации суммируется с восстановленной выборкой из компонента Cb цветности. В другом примере, вывод фильтрации и восстановленная выборка могут суммироваться, вычитаться, умножаться, делиться или подвергаться любой комбинации математических процессов, чтобы получать модифицированную восстановленную выборку.[0699] At S8104, the reconstructed sample from a component different from the first component is modified using the filter output. For example, the first component indicates the luminance, and the filtering output is added to the reconstructed sample from the chrominance component. In another example, the first component indicates the chrominance component Cr, and the filtering output is added to the reconstructed sample from the chrominance component Cb. In another example, the filter output and the reconstructed sample may be added, subtracted, multiplied, divided, or subjected to any combination of mathematical processes to produce a modified reconstructed sample.

[0700] На S8105, модифицированная восстановленная выборка используется для того, чтобы декодировать изображение. Например, модифицированная восстановленная выборка сохраняется в буфере опорных кадров.[0700] At S8105, the modified reconstructed sample is used to decode the image. For example, the modified reconstructed sample is stored in a reference frame buffer.

[0701] Фиг. 137, 138 и 139 являются концептуальными схемами примеров симметричного дополнения.[0701] FIG. 137, 138 and 139 are conceptual diagrams of examples of symmetrical complement.

[0702] Например, на S8002 по фиг. 134, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C0 и C2, как показано на фиг. 137(a), восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17). Аналогично, восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0).[0702] For example, in S8002 of FIG. 134 if the chroma samples type is 0 or 1 and the virtual boundary is between C0 and C2 as shown in FIG. 137(a), the reconstructed sample value of the second sample (C15) is duplicated into the first sample (C17). Likewise, the reconstructed sample value of the second sample (C2) is duplicated into the first sample (C0).

[0703] В качестве другого примера, на S8002, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C15 и C17, как показано на фиг. 137(b), восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0). Аналогично, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17).[0703] As another example, at S8002, if the chroma samples type is 0 or 1, and the virtual boundary is between C15 and C17, as shown in FIG. 137(b), the reconstructed sample value of the second sample (C2) is duplicated into the first sample (C0). Likewise, the reconstructed sample value of the second sample (C15) is duplicated into the first sample (C17).

[0704] В качестве другого примера, на S8002, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C2 и C6, как показано на фиг. 137(c), восстановленные выборочные значения вторых выборок (C10, C11 и C12) дублируются в первые выборки (C14, C15, C16 и C17). Аналогично, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).[0704] As another example, at S8002, if the type of chroma samples is 0 or 1, and the virtual boundary is between C2 and C6, as shown in FIG. 137(c), the reconstructed sample values of the second samples (C10, C11 and C12) are duplicated into the first samples (C14, C15, C16 and C17). Likewise, the reconstructed sample values of the second samples (C5, C6 and C7) are duplicated into the first samples (C0, C1, C2 and C3).

[0705] В качестве другого примера, на S8002, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C11 и C15, как показано на фиг. 137(d), восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3). Аналогично, восстановленные выборочные значения вторых выборок (C10, C11 и C12) дублируются в первые выборки (C14, C15, C16 и C17).[0705] As another example, at S8002, if the type of chrominance samples is 0 or 1, and the virtual boundary is between C11 and C15, as shown in FIG. 137(d), the reconstructed sample values of the second samples (C5, C6 and C7) are duplicated into the first samples (C0, C1, C2 and C3). Likewise, the reconstructed sample values of the second samples (C10, C11 and C12) are duplicated into the first samples (C14, C15, C16 and C17).

[0706] Фиг. 138 и 139 показывают примеры выборок, которые дублируются на фиг. 137(a) и фиг. 137(c), соответственно.[0706] FIG. 138 and 139 show examples of samples that are duplicated in FIGS. 137(a) and FIG. 137(c), respectively.

[0707] После дублирования, дублированные выборки используются при фильтрации восстановленных выборок первого компонента.[0707] After duplication, the duplicate samples are used when filtering the reconstructed samples of the first component.

[0708] Фиг. 140, 141, 142 и 143 является концептуальными схемами примеров несимметричного дополнения.[0708] FIG. 140, 141, 142, and 143 are conceptual diagrams of examples of unsymmetrical complement.

[0709] Например, на S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C0 и C2, как показано на фиг. 140(a), восстановленные выборочные значения вторых выборок (C10, C11 и C12) дублируются в первые выборки (C14, C15, C16 или C17). Аналогично, восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0).[0709] For example, in S8002, if the chroma samples type is 2 or 3, and the virtual boundary is between C0 and C2, as shown in FIG. 140(a), the reconstructed sample values of the second samples (C10, C11 and C12) are duplicated into the first samples (C14, C15, C16 or C17). Likewise, the reconstructed sample value of the second sample (C2) is duplicated into the first sample (C0).

[0710] В другом примере S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C15 и C17, как показано на фиг. 140(b), восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17).[0710] In another example S8002, if the chroma samples type is 2 or 3, and the virtual boundary is between C15 and C17, as shown in FIG. 140(b), the recovered sample value of the second sample (C15) is duplicated into the first sample (C17).

[0711] В другом примере S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C2 и C6, как показано на фиг. 140(c), восстановленные выборочные значения вторых выборок (C4, C5, C6, C7 и C8) дублируются в первые выборки (C9, C10, C11, C12, C13, C14, C15, C16 и C17). Аналогично, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).[0711] In another example S8002, if the chroma samples type is 2 or 3, and the virtual boundary is between C2 and C6, as shown in FIG. 140(c), the reconstructed sample values of the second samples (C4, C5, C6, C7 and C8) are duplicated into the first samples (C9, C10, C11, C12, C13, C14, C15, C16 and C17). Likewise, the reconstructed sample values of the second samples (C5, C6 and C7) are duplicated into the first samples (C0, C1, C2 and C3).

[0712] В другом примере S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C11 и C15, как показано на фиг. 140(d), восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).[0712] In another example S8002, if the chroma samples type is 2 or 3, and the virtual boundary is between C11 and C15, as shown in FIG. 140(d), the reconstructed sample values of the second samples (C5, C6 and C7) are duplicated into the first samples (C0, C1, C2 and C3).

[0713] Фиг. 141, 142 и 143 показывают примеры выборок, которые дублируются на фиг. 140(a), фиг. 140(c) и фиг. 140(d), соответственно.[0713] FIG. 141, 142 and 143 show examples of samples that are duplicated in FIGS. 140(a), fig. 140(c) and FIG. 140(d), accordingly.

[0714] После дублирования, дублированные выборки используются при фильтрации восстановленных выборок первого компонента.[0714] After duplication, the duplicate samples are used when filtering the reconstructed samples of the first component.

[0715] Фиг. 144, 145, 146 и 147 являются концептуальными схемами дополнительных примеров несимметричного дополнения.[0715] FIG. 144, 145, 146, and 147 are conceptual diagrams of additional examples of asymmetrical complementation.

[0716] В примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C0 и C2, как показано на фиг. 144(a), восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0).[0716] In example S8002, if the chroma samples type is 4 or 5, and the virtual boundary is between C0 and C2, as shown in FIG. 144(a), the reconstructed sample value of the second sample (C2) is duplicated into the first sample (C0).

[0717] В другом примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C15 и C17, как показано на фиг. 144(b), восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3). Аналогично, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17).[0717] In another example S8002, if the chroma samples type is 4 or 5, and the virtual boundary is between C15 and C17, as shown in FIG. 144(b), the reconstructed sample values of the second samples (C5, C6 and C7) are duplicated into the first samples (C0, C1, C2 and C3). Likewise, the reconstructed sample value of the second sample (C15) is duplicated into the first sample (C17).

[0718] В другом примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C2 и C6, как показано на фиг. 144(c), восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17). Аналогично, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).[0718] In another example S8002, if the chroma samples type is 4 or 5, and the virtual boundary is between C2 and C6, as shown in FIG. 144(c), the reconstructed sample value of the second sample (C15) is duplicated into the first sample (C17). Likewise, the reconstructed sample values of the second samples (C5, C6 and C7) are duplicated into the first samples (C0, C1, C2 and C3).

[0719] В другом примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C11 и C15, как показано на фиг. 144(d), восстановленные выборочные значения вторых выборок (C9, C10, C11, C12 и C13) дублируются в первые выборки (C0, C1, C2, C3, C4, C5, C6, C7 и C8).[0719] In another example S8002, if the chroma samples type is 4 or 5, and the virtual boundary is between C11 and C15, as shown in FIG. 144(d), the reconstructed sample values of the second samples (C9, C10, C11, C12 and C13) are duplicated into the first samples (C0, C1, C2, C3, C4, C5, C6, C7 and C8).

[0720] Фиг. 145, 146 и 147 показывают примеры выборок, которые дублируются на фиг. 144(b), фиг. 144(c) и фиг. 144(d), соответственно.[0720] FIG. 145, 146 and 147 show examples of samples that are duplicated in FIGS. 144(b), FIG. 144(c) and FIG. 144(d), accordingly.

[0721] После дублирования, дублированные выборки используются при фильтрации восстановленных выборок первого компонента.[0721] After duplication, the duplicate samples are used when filtering the reconstructed samples of the first component.

[0722] Фиг. 148, 149 и 150 являются концептуальными схемами дополнительных примеров симметричного дополнения.[0722] FIG. 148, 149, and 150 are conceptual diagrams of additional examples of symmetrical complementation.

[0723] В примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C4 и C5, как показано на фиг. 148(a), восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13). Аналогично, восстановленные выборочные значения вторых выборок (C5 и C10) дублируются в первые выборки (C4 и C9).[0723] In example S8002, if the type of chrominance samples is 0, 2 or 4, and the virtual boundary is between C4 and C5, as shown in FIG. 148(a), the reconstructed sample values of the second samples (C7 and C12) are duplicated into the first samples (C8 and C13). Likewise, the reconstructed sample values of the second samples (C5 and C10) are duplicated into the first samples (C4 and C9).

[0724] В другом примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C7 и C8, как показано на фиг. 148(b), восстановленные выборочные значения вторых выборок (C5 и C10) дублируются в первые выборки (C4 и C9). Аналогично, восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13).[0724] In another example S8002, if the type of chroma samples is 0, 2 or 4, and the virtual boundary is between C7 and C8, as shown in FIG. 148(b), the reconstructed sample values of the second samples (C5 and C10) are duplicated into the first samples (C4 and C9). Likewise, the reconstructed sample values of the second samples (C7 and C12) are duplicated into the first samples (C8 and C13).

[0725] В другом примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C5 и C6, как показано на фиг. 148(c), восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14). Аналогично, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C3, C7, C8, C12, C13 и C16).[0725] In another example S8002, if the type of chroma samples is 0, 2 or 4, and the virtual boundary is between C5 and C6, as shown in FIG. 148(c), the reconstructed sample values of the second samples (C2, C6, C11 and C15) are duplicated into the first samples (C1, C4, C5, C9, C10 and C14). Likewise, the reconstructed sample values of the second samples (C2, C6, C11 and C15) are duplicated into the first samples (C3, C7, C8, C12, C13 and C16).

[0726] В другом примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C6 и C7, как показано на фиг. 148(d), восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14). Аналогично, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C3, C7, C8, C12, C13 и C16).[0726] In another example S8002, if the type of chroma samples is 0, 2 or 4, and the virtual boundary is between C6 and C7, as shown in FIG. 148(d), the reconstructed sample values of the second samples (C2, C6, C11 and C15) are duplicated into the first samples (C1, C4, C5, C9, C10 and C14). Likewise, the reconstructed sample values of the second samples (C2, C6, C11 and C15) are duplicated into the first samples (C3, C7, C8, C12, C13 and C16).

[0727] Фиг. 149 и фиг. 150 показывают примеры выборок, которые дублируются на фиг. 148(a) и фиг. 148(c), соответственно.[0727] FIG. 149 and fig. 150 show examples of samples that are duplicated in FIG. 148(a) and FIG. 148(c), accordingly.

[0728] После дублирования, дублированные выборки используются при фильтрации восстановленных выборок первого компонента.[0728] After duplication, the duplicate samples are used when filtering the reconstructed samples of the first component.

[0729] Фиг. 151, 152, 153, 154 и 155 являются концептуальными схемами дополнительных примеров несимметричного дополнения.[0729] FIG. 151, 152, 153, 154, and 155 are conceptual diagrams of additional examples of asymmetrical complementation.

[0730] В примере S8002, если тип выборок сигналов цветности равен 1, 3 или 5, и виртуальная граница находится между C4 и C5, как показано на фиг. 151(a), восстановленные выборочные значения вторых выборок (C5 и C10) дублируются в первые выборки (C4 и C9).[0730] In example S8002, if the chroma samples type is 1, 3 or 5, and the virtual boundary is between C4 and C5, as shown in FIG. 151(a), the reconstructed sample values of the second samples (C5 and C10) are duplicated into the first samples (C4 and C9).

[0731] В другом примере S8002, если тип выборок сигналов цветности равен 1, 3 или 5, и виртуальная граница находится между C7 и C8, как показано на фиг. 151(b), восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14). Аналогично, восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13).[0731] In another example S8002, if the type of chroma samples is 1, 3 or 5, and the virtual boundary is between C7 and C8, as shown in FIG. 151(b), the reconstructed sample values of the second samples (C2, C6, C11 and C15) are duplicated into the first samples (C1, C4, C5, C9, C10 and C14). Likewise, the reconstructed sample values of the second samples (C7 and C12) are duplicated into the first samples (C8 and C13).

[0732] В другом примере S8002, если тип выборок сигналов цветности равен 1, 3 или 5, и виртуальная граница находится между C5 и C6, как показано на фиг. 151(c), восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13). Аналогично, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14).[0732] In another example S8002, if the type of chroma samples is 1, 3 or 5, and the virtual boundary is between C5 and C6, as shown in FIG. 151(c), the reconstructed sample values of the second samples (C7 and C12) are duplicated into the first samples (C8 and C13). Likewise, the reconstructed sample values of the second samples (C2, C6, C11 and C15) are duplicated into the first samples (C1, C4, C5, C9, C10 and C14).

[0733] Фиг. 152, 153 и 154 показывают примеры выборок, которые дублируются на фиг. 151(a), фиг. 151(b) и фиг. 151(c), соответственно.[0733] FIG. 152, 153 and 154 show examples of samples that are duplicated in FIGS. 151(a), fig. 151(b) and FIG. 151(c), respectively.

[0734] Фиг. 155 показывает дополнительные примеры дополнения с горизонтальной и вертикальной виртуальной границей.[0734] FIG. 155 shows additional examples of padding with a horizontal and vertical virtual border.

[0735] После дублирования, дублированные выборки используются при фильтрации восстановленных выборок первого компонента.[0735] After duplication, the duplicate samples are used when filtering the reconstructed samples of the first component.

[0736] Настоящее раскрытие сущности иллюстрирует дополнение или дублирование выборок, используемых в фильтре, на основе типа выборок сигналов цветности и виртуального граничного местоположения в фильтре. Такой способ дополнения или дублирования выборок повышает качество кадров.[0736] The present disclosure illustrates the addition or duplication of samples used in a filter based on the type of chrominance samples and the virtual boundary location in the filter. This method of supplementing or duplicating samples improves the quality of frames.

[0737] Разновидности [0737] Varieties

Тип выборок сигналов цветности может заменяться другой информацией, которая указывает взаимосвязь между первым компонентом и другим компонентом, отличающимся от первого компонента.The type of chrominance signal samples may be replaced by other information that indicates the relationship between the first component and another component different from the first component.

[0738] Тип выборок сигналов цветности может заменяться флагом, который выбирает симметричное или несимметричное дополнение внутри виртуальной границы, где 0 выбирает симметричное дополнение, и 1 выбирает несимметричное дополнение, или 1 выбирает симметричное дополнение, и 0 выбирает несимметричное дополнение.[0738] The type of chroma samples may be replaced by a flag that selects symmetrical or unsymmetrical padding within a virtual boundary, where 0 selects symmetrical padding and 1 selects single-ended padding, or 1 selects symmetrical padding and 0 selects single-ended padding.

[0739] Флаг может передаваться в служебных сигналах из потока битов или может извлекаться.[0739] The flag may be signaled from the bitstream or may be retrieved.

[0740] Значение по умолчанию флага может представлять собой симметричное дополнение внутри виртуальной границы.[0740] The default value of the flag may be symmetrical padding within the virtual boundary.

[0741] Значение по умолчанию флага может представлять собой несимметричное дополнение внутри виртуальной границы.[0741] The default value of the flag may be unsymmetrical padding within the virtual boundary.

[0742] Например, флаг может извлекаться на основе состояния включения/выключения другого фильтра. Например, если ALF-фильтр включен, флаг может выбирать симметричное дополнение. Если ALF-фильтр выключен, флаг может выбирать несимметричное дополнение.[0742] For example, a flag may be retrieved based on the on/off state of another filter. For example, if the ALF filter is enabled, the flag may select symmetrical complement. If the ALF filter is disabled, the flag can select unsymmetrical padding.

[0743] В качестве другого примера, если ALF-фильтр включен, флаг может выбирать несимметричное дополнение. Если ALF-фильтр выключен, флаг может выбирать симметричное дополнение.[0743] As another example, if the ALF filter is enabled, the flag may select single-ended complement. If the ALF filter is turned off, the flag can select symmetrical complement.

[0744] Другие фильтры, которые могут использоваться, включают в себя LMCS, SAO, DBF и другие постфильтры.[0744] Other filters that may be used include LMCS, SAO, DBF and other post filters.

[0745] В некоторых вариантах осуществления, флаг может задаваться на основе профиля.[0745] In some embodiments, the flag may be set based on a profile.

[0746] Виртуальная граница может заменяться границей кадра, среза, кирпича, плитки или субкадра.[0746] The virtual boundary may be replaced by a frame, slice, brick, tile, or subframe boundary.

[0747] Фиг. 156 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно примеру, в котором симметричное дополнение используется в виртуальных граничных местоположениях для ALF, и симметричное или несимметричное дополнение используется в виртуальных граничных местоположениях для CCALF на основе типа выборок сигналов цветности и виртуальном граничном местоположении.[0747] FIG. 156 is a block diagram illustrating the functional configuration of an encoder and decoder according to an example in which symmetrical padding is used at virtual boundary locations for ALF, and symmetrical or non-symmetrical padding is used at virtual boundary locations for CCALF based on the type of chroma samples and the virtual boundary location.

[0748] Фиг. 157 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно примеру, в котором другое симметричное дополнение используется в виртуальных граничных местоположениях для ALF, и одностороннее дополнение используется в виртуальных граничных местоположениях для CCALF.[0748] FIG. 157 is a block diagram illustrating the functional configuration of an encoder and decoder according to an example in which other symmetrical padding is used in virtual boundary locations for ALF, and one-sided padding is used in virtual boundary locations for CCALF.

[0749] Фиг. 158 является концептуальной схемой, иллюстрирующей пример одностороннего дополнения с горизонтальной или вертикальной виртуальной границей.[0749] FIG. 158 is a conceptual diagram illustrating an example of one-sided padding with a horizontal or vertical virtual border.

[0750] Фиг. 159 является концептуальной схемой, иллюстрирующей пример одностороннего дополнения с горизонтальной и вертикальной виртуальной границей.[0750] FIG. 159 is a conceptual diagram illustrating an example of one-way padding with a horizontal and vertical virtual border.

[0751] Ввод в CCALF (восстановленные выборки используемого для фильтрации первого компонента) не ограничивается SAO-выводом. Ввод может предоставляться из вывода преобразования сигнала яркости с масштабированием сигнала цветности (LMCS), билатерального фильтра/фильтра Адамара или фильтра удаления блочности либо любых комбинаций постфильтров.[0751] The input to CCALF (reconstructed samples of the first component used for filtering) is not limited to the SAO output. The input may be provided from the output of a luma chrominance scaling (LMCS) transform, a bilateral/Hadamard filter or a deblocking filter, or any combination of post-filters.

[0752] CCALF может включаться/выключаться в каждом блоке. Блок не должен обязательно перекрываться более чем между одной CTU. Поскольку ALF может включаться/выключаться в CTU, CCALF может включаться для CTU, в которой ALF включен.[0752] CCALF can be enabled/disabled in each block. A block must not necessarily overlap more than one CTU. Since ALF can be enabled/disabled in a CTU, CCALF can be enabled for a CTU that has ALF enabled.

[0753] Один или более аспектов, раскрытых в данном документе, могут выполняться в комбинации, по меньшей мере, с частью других аспектов в настоящем раскрытии сущности. Помимо этого, один или более аспектов, раскрытых в данном документе, могут выполняться посредством комбинирования, с другими аспектами, части процессов, указываемых на любой из блок-схем последовательности операций способа согласно аспектам, части конфигурации любого из устройств, части синтаксисов и т.д. Аспекты, описанные со ссылкой на составляющий элемент кодера, могут выполняться аналогично посредством соответствующего составляющего элемента декодера.[0753] One or more aspects disclosed herein may be performed in combination with 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. . The aspects described with reference to the encoder component may be performed similarly by the corresponding decoder component.

[0754] Реализации и варианты применения [0754] 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.

[0755] Кроме того, обработка, описанная в каждом из вариантов осуществления, может реализовываться через интегрированную обработку с использованием одного оборудования (системы) и, альтернативно, может реализовываться через децентрализованную обработку с использованием множества элементов оборудования. Кроме того, процессор, который выполняет вышеописанную программу, может представлять собой один процессор или множество процессоров. Другими словами, может выполняться интегрированная обработка, и, альтернативно, может выполняться децентрализованная обработка.[0755] In addition, the processing described in each of the embodiments may be implemented through integrated processing using a single piece of equipment (system) and, alternatively, may be implemented through decentralized processing using multiple pieces of equipment. 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.

[0756] Варианты осуществления настоящего раскрытия сущности не ограничены вышеуказанными примерными вариантами осуществления; различные модификации могут вноситься в примерные варианты осуществления, результаты которых также включаются в пределы объема вариантов осуществления настоящего раскрытия сущности.[0756] 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.

[0757] Далее описываются примеры вариантов применения способа кодирования движущихся кадров (способа кодирования изображений) и способа декодирования движущихся кадров (способа декодирования изображений), описанных в каждом из вышеуказанных вариантов осуществления, а также различных систем, которые реализуют примеры вариантов применения. Такая система может характеризоваться как включающая в себя кодер изображений, который использует способ кодирования изображений, декодер изображений, который использует способ декодирования изображений, и кодер-декодер изображений, который включает в себя как кодер изображений, так и декодер изображений. Другие конфигурации такой системы могут модифицироваться для каждого отдельного случая.[0757] 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.

[0758] Примеры использования [0758] Examples of use

Фиг. 160 иллюстрирует общую конфигурацию системы ex100 предоставления контента, подходящей для реализации услуги распространения контента. Зона, в которой предоставляется услуга связи, разделяется на соты требуемых размеров, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые представляют собой стационарные беспроводные станции в проиллюстрированном примере, расположены в соответствующих сотах.Fig. 160 illustrates a general configuration of a content delivery 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.

[0759] В системе ex100 предоставления контента, устройства, включающие в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, соединяются с Интернетом ex101 через поставщика ex102 Интернет-услуг или сеть ex104 связи и базовые станции ex106-ex110. Система ex100 предоставления контента может комбинировать и соединять любую комбинацию вышеуказанных устройств. В различных реализациях, устройства могут прямо или косвенно соединяться между собой через телефонную сеть или связь ближнего радиуса действия, а не через базовые станции ex106-ex110. Дополнительно, потоковый сервер ex103 может соединяться с устройствами, включающими в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, например, через Интернет ex101. Потоковый сервер ex103 также может соединяться, например, с терминалом в публичной точке доступа в самолете ex117 через спутник ex116.[0759] 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.

[0760] Следует отметить, что вместо базовых станций ex106-ex110, могут использоваться точки беспроводного доступа или публичные точки доступа. Потоковый сервер ex103 может соединяться с сетью ex104 связи непосредственно, а не через Интернет ex101 или поставщика ex102 Интернет-услуг, и может соединяться с самолетом ex117 непосредственно, а не через спутник ex116.[0760] 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.

[0761] Камера ex113 может представлять собой устройство, допускающее захват неподвижных изображений и видео, к примеру, цифровую камеру. Смартфон ex115 может представлять собой смартфон, сотовый телефон или телефон по стандарту системы персональных мобильных телефонов (PHS), который может работать согласно стандартам системы мобильной связи для 2G-, 3G-, 3,9G- и 4G-систем, а также 5G-системы следующего поколения.[0761] The camera ex113 may be a device capable of capturing still images and video, such as a digital camera. The ex115 smartphone can be a smartphone, a cellular phone or a personal mobile phone system (PHS) phone that can operate according to mobile phone system standards for 2G, 3G, 3.9G and 4G systems, as well as 5G systems next generation.

[0762] Бытовой прибор ex114, например, представляет собой холодильник или устройство, включенное в домашнюю систему совместной выработки тепла и электроэнергии на топливных элементах.[0762] Home appliance ex114, for example, is a refrigerator or device included in a home fuel cell cogeneration system.

[0763] В системе ex100 предоставления контента, терминал, включающий в себя функцию захвата изображений и/или видео, допускает, например, потоковую передачу вживую посредством соединения с потоковым сервером ex103, например, через базовую станцию ex106. При потоковой передаче вживую, терминал (например, компьютер ex111, игровое устройство ex112, камера ex113, бытовой прибор ex114, смартфон ex115 или терминал в самолете ex117) может выполнять обработку кодирования, описанную в вышеприведенных вариантах осуществления, для контента неподвижных изображений или видеоконтента, захваченного пользователем через терминал, может мультиплексировать видеоданные, полученные через кодирование, и аудиоданные, полученные посредством кодирования аудио, соответствующего видео, и может передавать полученные данные на потоковый сервер ex103. Другими словами, терминал функционирует в качестве кодера изображений согласно одному аспекту настоящего раскрытия сущности.[0763] 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.

[0764] Потоковый сервер ex103 передает в потоковом режиме передаваемые данные контента в клиенты, которые запрашивают поток. Примеры клиента включают в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114, смартфон ex115 и терминалы в самолете ex117, которые допускают декодирование вышеописанных кодированных данных. Устройства, которые принимают передаваемые в потоковом режиме данные, могут декодировать и воспроизводить принимаемые данные. Другими словами, устройства могут функционировать в качестве декодера изображений согласно одному аспекту настоящего раскрытия сущности.[0764] 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.

[0765] Децентрализованная обработка [0765] 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.

[0766] Децентрализация не ограничена просто разделением обработки для потоковой передачи; кодирование захваченных данных может разделяться между и выполняться посредством терминалов, на серверной стороне либо обоими способами. В одном примере, при типичном кодировании, обработка выполняется в двух контурах. Первый контур служит для обнаружения того, насколько усложненным является изображение, на покадровой или посценовой основе либо для обнаружения нагрузки при кодировании. Второй контур служит для обработки, которая сохраняет качество изображений и повышает эффективность кодирования. Например, можно снижать нагрузку по обработке терминалов и повышать качество и эффективность кодирования контента за счет инструктирования терминалам выполнять первый контур кодирования и инструктирования серверной стороне, которая принимает контент, выполнять второй контур кодирования. В таком случае, при приеме запроса на декодирование, кодированные данные, получающиеся в результате первого контура, выполняемого посредством одного терминала, могут приниматься и воспроизводиться на другом терминале приблизительно в реальном времени. Это позволяет реализовывать плавную потоковую передачу в режиме реального времени.[0766] 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.

[0767] В другом примере, камера ex113 и т.п. извлекает количество признаков (количество признаков или характеристик) из изображения, сжимает данные, связанные с количеством признаков, в качестве метаданных, и передает сжатые метаданные на сервер. Например, сервер определяет значимость объекта на основе количества признаков и изменяет точность квантования, соответственно, чтобы выполнять сжатие, подходящее для смыслового значения (или значимости контента) изображения. Данные количества признаков являются, в частности, эффективными при повышении точности и эффективности прогнозирования векторов движения во время второго прохода сжатия, выполняемого посредством сервера. Кроме того, кодирование, которое имеет относительно низкую нагрузку по обработке, такое как кодирование переменной длины (VLC), может обрабатываться посредством терминала, и кодирование, которое имеет относительно высокую нагрузку по обработке, такое как контекстно-адаптивное двоичное арифметическое кодирование (CABAC), может обрабатываться посредством сервера.[0767] 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.

[0768] В еще одном другом примере, возникают случаи, в которых множество видео приблизительно идентичной сцены захватываются посредством множества терминалов, например, на стадионе, в торговом центре или на фабрике. В таком случае, например, кодирование может быть децентрализовано посредством разделения задач обработки между множеством терминалов, которые захватывают видео, и, при необходимости, другими терминалами, которые не захватывают видео, и сервером в расчете на единицу. Единицы, например, могут представлять собой группы кадров (GOP), кадры или плитки, получающиеся в результате разделения кадра. Это позволяет уменьшать время загрузки и достигать потоковой передачи, которая находится ближе к реальному времени.[0768] 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.

[0769] Поскольку видео имеют приблизительно идентичную сцену, управление и/или инструкции могут выполняться посредством сервера таким образом, что на видео, захваченные посредством терминалов, можно перекрестно ссылаться. Кроме того, сервер может принимать кодированные данные из терминалов, изменять опорную взаимосвязь между элементами данных либо корректировать или заменять непосредственно кадры и затем выполнять кодирование. Это позволяет формировать поток с увеличенным качеством и эффективностью для отдельных элементов данных.[0769] 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.

[0770] Кроме того, сервер может передавать в потоковом режиме видеоданные после выполнения транскодирования, чтобы преобразовывать формат кодирования видеоданных. Например, сервер может преобразовывать формат кодирования от MPEG до VP (например, VP9), может преобразовываться (H.264 в (H.265 и т.д.[0770] 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.)

[0771] Таким образом, кодирование может выполняться посредством терминала или одного или более серверов. Соответственно, хотя устройство, которое выполняет кодирование, называется "сервером" или "терминалом" в нижеприведенном описании, некоторые или все процессы, выполняемые посредством сервера, могут выполняться посредством терминала, и аналогично некоторые или все процессы, выполняемые посредством терминала, могут выполняться посредством сервера. Это также применяется к процессам декодирования.[0771] 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.

[0772] Трехмерный многоракурсный режим [0772] 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.

[0773] В дополнение к кодированию двумерных движущихся кадров, сервер может кодировать неподвижное изображение на основе анализа сцен движущегося кадра, например, автоматически либо в момент времени, указываемый пользователем, и передавать кодированное неподвижное изображение в приемный терминал. Кроме того, когда сервер может получать относительную позиционную взаимосвязь между терминалами захвата видео, в дополнение к двумерным движущимся кадрам, сервер может формировать трехмерную геометрию сцены на основе видео идентичной сцены, захваченной из различных углов. Сервер может отдельно кодировать трехмерные данные, сформированные, например, из облака точек, и, на основе результата распознавания или отслеживания человека или объекта с использованием трехмерных данных, может выбирать или восстанавливать и формировать видео, которые должно передаваться в приемный терминал, из видео, захваченных посредством множества терминалов.[0773] In addition to encoding two-dimensional moving frames, the server may encode the still image based on scene analysis of the moving frame, for example, 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.

[0774] Это обеспечивает возможность пользователю пользоваться сценой посредством свободного выбора видео, соответствующих терминалам захвата видео, и обеспечивает возможность пользователю пользоваться контентом, полученным посредством извлечения видео в выбранной точке обзора из трехмерных данных, восстановленных из множества изображений или видео, видео. Кроме того, аналогично видео, звук может записываться из относительно различных углов, и сервер может мультиплексировать аудио из конкретного угла или пространства с соответствующим видео и передавать мультиплексированное видео и аудио.[0774] 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.

[0775] В последние годы, также становится популярным контент, который представляет собой составной объект из реального мира и виртуального мира, к примеру, контент в стиле виртуальной реальности (VR) и дополненной реальности (AR). В случае VR-изображений, сервер может создавать изображения из точек обзора левого и правого глаза и выполнять кодирование, которое допускает ссылку между двумя изображениями точек обзора, такое как многовидовое кодирование (MVC), и альтернативно, может кодировать изображения в качестве отдельных потоков без ссылки. Когда изображения декодируются в качестве отдельных потоков, потоки могут синхронизироваться при воспроизведении таким образом, чтобы воссоздавать виртуальное трехмерное пространство в соответствии с точкой обзора пользователя.[0775] 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.

[0776] В случае AR-изображений, сервер может накладывать информацию виртуальных объектов, существующую в виртуальном пространстве, на информацию камеры, представляющую пространство реального мира, например, на основе трехмерной позиции или перемещения с точки зрения пользователя. Декодер может получать или сохранять информацию виртуальных объектов и трехмерные данные, формировать двумерные изображения на основе перемещения с точки зрения пользователя и затем формировать наложенные данные посредством прозрачного соединения изображений. Альтернативно, декодер может передавать, в сервер, движение с точки зрения пользователя в дополнение к запросу на информацию виртуальных объектов. Сервер может формировать наложенные данные на основе трехмерных данных, сохраненных на сервере в соответствии с принимаемым движением, и кодировать и передавать в потоковом режиме сформированные наложенные данные в декодер. Следует отметить, что наложенные данные типично включают в себя, в дополнение к RGB-значениям, значение α, указывающее прозрачность, и сервер задает значение α для секций, отличных от объекта, сформированного из трехмерных данных, например, равным 0, и может выполнять кодирование в то время, когда эти секции являются прозрачными. Альтернативно, сервер может задавать фон как определенное RGB-значение, такое как цветовая рирпроекция, и формировать данные, в которых зоны, отличные от объекта, задаются в качестве фона. Определенное RGB-значение может быть предварительно определено.[0776] In the case of AR images, the server may overlay virtual object information existing in virtual space with camera information representing real world space, for example, 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.

[0777] Декодирование аналогично передаваемых в потоковом режиме данных может выполняться посредством клиента (т.е. терминалов), на серверной стороне либо разделяться между ними. В одном примере, один терминал может передавать запрос на прием на сервер, запрошенный контент может приниматься и декодироваться посредством другого терминала, и декодированный сигнал может передаваться в устройство, имеющее дисплей. Можно воспроизводить данные с высоким качеством изображений посредством децентрализации обработки и надлежащего выбора контента независимо от характеристик обработки непосредственно терминала связи. В еще одном другом примере, в то время как телевизор, например, принимает данные изображений, которые имеют большой размер, область кадра, такая как плитка, полученная посредством разделения кадра, может декодироваться и отображаться на персональном терминале или терминалах зрителя или зрителей телевизора. Это позволяет зрителям совместно использовать вид с большими кадрами, а также каждому зрителю проверять свою назначенную зону или обследовать область более подробно крупным планом.[0777] Decoding of similarly streamed data can be performed by the client (ie, 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 set, 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 set. 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.

[0778] В ситуациях, в которых множество беспроводных соединений являются возможными на небольшие, средние и большие расстояния, в помещениях или вне помещений, может быть возможным прозрачно принимать контент с использованием стандарта системы потоковой передачи, такого как MPEG DASH. Пользователь может переключаться между данными в реальном времени при свободном выборе декодера или оборудования отображения, включающего в себя терминал пользователя, дисплеи, размещаемые в помещениях или вне помещений, и т.д. Кроме того, например, с использованием информации относительно позиции пользователя, декодирование может выполняться при переключении того, какой терминал обрабатывает декодирование, а какой терминал обрабатывает отображение контента. Это позволяет преобразовывать и отображать информацию в то время, когда пользователь находится в движении на маршруте в пункт назначения, на стене близлежащего здания, в которое встраивается устройство, допускающее отображение контента, или на части земли. Кроме того, также можно переключать скорость передачи битов принимаемых данных на основе достижимости для кодированных данных по сети, к примеру, когда кодированные данные кэшируются на сервере, быстро доступном из приемного терминала, либо когда кодированные данные копируются на краевой сервер в службе доставки контента.[0778] 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 equipment, including a user terminal, indoor or outdoor displays, etc. In addition, for example, using 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.

[0779] (Оптимизация веб-страниц) [0779] (Web page optimization)

Фиг. 161, например, иллюстрирует пример экрана отображения веб-страницы на компьютере ex111. Фиг. 162, например, иллюстрирует пример экрана отображения веб-страницы на смартфоне ex115. Как проиллюстрировано на фиг. 161 и фиг. 162, веб-страница может включать в себя множество ссылок на изображения, которые представляют собой ссылки на контент изображений, и внешний вид веб-страницы может отличаться в зависимости от устройства, используемого для того, чтобы просматривать веб-страницу. Когда множество ссылок на изображения являются просматриваемыми на экране до тех пор, пока пользователь явно не выбирает ссылку на изображение, либо до тех пор, пока ссылка на изображение не находится в аппроксимированном центре экрана, или полная ссылка на изображение не вписывается в экран, оборудование отображения (декодер) может отображать, в качестве ссылок на изображения, неподвижные изображения, включенные в контент, или I-кадры, может отображать видео, такое как анимированный GIF-файл с использованием множества неподвижных изображений или I-кадров, например, либо может принимать только базовый слой и декодировать и отображать видео.Fig. 161, for example, illustrates an example of a web page display screen on computer ex111. Fig. 162, for example, illustrates an example of a web page display screen on a smartphone ex115. As illustrated in FIG. 161 and fig. 162, 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 hardware (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.

[0780] Когда ссылка на изображение выбирается пользователем, оборудование отображения выполняет декодирование, например, при предоставлении наивысшего приоритета для базового слоя. Следует отметить, что если имеется информация в HTML-коде веб-страницы, указывающая то, что контент является масштабируемым, оборудование отображения может декодировать вплоть до улучшающего слоя. Дополнительно, чтобы упрощать воспроизведение в реальном времени, до того, как осуществляется выбор, либо когда полоса пропускания сильно ограничивается, оборудование отображения может уменьшать задержку между моментом времени, в который декодируется опережающий кадр, и моментом времени, в который отображается декодированный кадр (т.е. задержку от начала декодирования контента до отображения контента) посредством декодирования и отображения только прямых опорных кадров (I-кадра, P-кадра, прямого опорного B-кадра). Еще дополнительно, оборудование отображения может намеренно игнорировать опорную взаимосвязь между кадрами и приблизительно декодировать все B- и P- кадры в качестве прямых опорных кадров и затем выполнять нормальное декодирование по мере того, как число кадров, принимаемых во времени, увеличивается.[0780] When an image reference is selected by the user, the display equipment 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 equipment can decode down to the enhancement layer. Additionally, to facilitate real-time playback, before a selection is made, or when bandwidth is severely limited, the display equipment 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 equipment 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.

[0781] Автономное вождение [0781] 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.

[0782] В таком случае, поскольку автомобиль, беспилотный аппарат, самолет и т.д., содержащий приемный терминал, является мобильным, приемный терминал может прозрачно принимать и выполнять декодирование при переключении между базовыми станциями из числа базовых станций ex106-ex110 посредством передачи информации, указывающей позицию приемного терминала. Кроме того, в соответствии с выбором, осуществленным пользователем, ситуацией пользователя и/или полосой пропускания соединения, приемный терминал может динамически выбирать то, до какой степени принимаются метаданные, либо то, до какой степени, например, обновляется картографическая информация.[0782] 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.

[0783] В системе ex100 предоставления контента, клиент может принимать, декодировать и воспроизводить, в реальном времени, кодированную информацию, передаваемую пользователем.[0783] In the content delivery system ex100, the client can receive, decode and reproduce, in real time, encoded information transmitted by the user.

[0784] Потоковая передача контента от людей [0784] 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.

[0785] В реальном времени, при захвате видеоконтента или контента изображений либо после того, как контент захвачен и накоплен, сервер выполняет обработку распознавания на основе необработанных данных или кодированных данных, такую как обработка ошибок при захвате, обработка поиска сцен, анализ смысловых значений и/или обработка обнаружения объектов. После этого, на основе результата обработки распознавания сервер (например, при указании или автоматически) редактирует контент, примеры чего включают в себя: коррекцию, такую как коррекция фокуса и/или размытости при движении; удаление сцен с низким приоритетом, таких как сцены, которые имеют низкую яркость по сравнению с другими кадрами или находятся не в фокусе; регулирование краев объектов; и регулирование цветовых тонов. Сервер кодирует отредактированные данные на основе результата редактирования. Известно, что чрезмерно длительные видео имеют тенденцию принимать меньшее число видов. Соответственно, чтобы сохранять контент в пределах конкретной продолжительности, которая масштабируется с продолжительностью исходного видео, сервер может, в дополнение к сценам с низким приоритетом, описанным выше, автоматически вырезать сцены с незначительным перемещением на основе результата обработки изображений. Альтернативно, сервер может формировать и кодировать видеодайджест на основе результата анализа смыслового значения сцены.[0785] 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 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 (eg, by direction 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.

[0786] Могут возникать случаи, в которых контент от людей может включать в себя контент, который нарушает авторское право, моральное право, книжные права и т.д. Такой случай может приводить к непредпочтительной ситуации для создателя, к примеру, когда контент совместно используется за пределами объема, намеченного создателем. Соответственно, перед кодированием, сервер, например, может редактировать изображения таким образом, чтобы, например, размывать лица людей на периферии экрана или размывать внутреннюю часть дома. Дополнительно, сервер может быть выполнен с возможностью распознавать лица людей, отличных от зарегистрированного человека, в изображениях, которые должны кодироваться, и когда такие лица появляются в изображении, может применять мозаичный фильтр, например, к лицу человека. Альтернативно, в качестве предварительной обработки или постобработки для кодирования, пользователь может указывать, по причинам авторского права, область изображения, включающую в себя человека, или область фона, которая должна обрабатываться. Сервер может обрабатывать указанную область, например, посредством замены области другим изображением или размытия области. Если область включает в себя человека, человек может отслеживаться в движущемся кадре, и область головы пользователя может заменяться другим изображением по мере того, как человек перемещается.[0786] 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.

[0787] Поскольку имеется спрос на просмотр в реальном времени контента, сформированного людьми, который зачастую имеет небольшой размер данных, декодер сначала может принимать базовый слой в качестве наивысшего приоритета и выполнять декодирование и воспроизведение, хотя это может отличаться в зависимости от полосы пропускания. Когда контент воспроизводится два или более раз, к примеру, когда декодер принимает улучшающий слой во время декодирования и воспроизведения базового слоя и циклично выполняет воспроизведение, декодер может воспроизводить видео с высоким качеством изображений, включающее в себя улучшающий слой. Если поток кодируется с использованием такого масштабируемого кодирования, видео может быть низкокачественным в невыбранном состоянии или в начале видео, но оно может предлагать восприятие, в котором качество изображений потока постепенно увеличивается интеллектуальным способом. Это не ограничено просто масштабируемым кодированием; идентичное восприятие может предлагаться посредством конфигурирования одного потока из низкокачественного потока, воспроизведенного в первый раз, и второго потока, кодированного с использованием первого потока в качестве опорного.[0787] Since there is a demand for real-time viewing of human generated content, which is often of 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.

[0788] Другие примеры реализации и вариантов применения [0788] Other Examples of Implementations and Applications

Кодирование и декодирование может выполняться посредством LSI ex500 (большой интегральной схемы) (см. фиг. 160), которая типично включается в каждый терминал. LSI ex500 может быть сконфигурирована из одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся кадров может интегрироваться в некоторый тип носителя записи (такой как CD-ROM, гибкий диск или жесткий диск), который является считываемым, например, посредством компьютера ex111, и кодирование и декодирование могут выполняться с использованием программного обеспечения. Кроме того, когда смартфон ex114 оснащен камерой, могут передаваться видеоданные, полученные посредством камеры. В этом случае, видеоданные могут кодироваться посредством LSI ex500, включенной в смартфон ex115.Encoding and decoding may be performed by an LSI ex500 (Large Integrated Circuit) (see FIG. 160), 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.

[0789] Следует отметить, что LSI ex500 может быть выполнена с возможностью загружать и активировать приложение. В таком случае, терминал сначала определяет то, является он или нет совместимым со схемой, используемой для того, чтобы кодировать контент, либо то, допускает он или нет выполнение конкретной услуги. Когда терминал не является совместимым со схемой кодирования контента, либо когда терминал не допускает выполнение конкретной услуги, терминал сначала может загружать кодек или прикладное программное обеспечение, а затем получать и воспроизводить контент.[0789] 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.

[0790] Помимо примера системы ex100 предоставления контента, которая использует Интернет ex101, по меньшей мере, кодер движущихся кадров (кодер изображений) или декодер движущихся кадров (декодер изображений), описанные в вышеприведенных вариантах осуществления, могут реализовываться в цифровой широковещательной системе. Идентичная обработка кодирования и обработка декодирования могут применяться для того, чтобы передавать и принимать широковещательные радиоволны, накладываемые с мультиплексированными аудио- и видеоданными, с использованием, например, спутника, даже если она приспосабливается к многоадресной передаче, тогда как одноадресная передача осуществляется проще с системой ex100 предоставления контента.[0790] 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.

[0791] Аппаратная конфигурация [0791] Hardware configuration

Фиг. 163 иллюстрирует дополнительные сведения относительно примерного смартфона ex115, показанного на фиг. 160. Фиг. 164 иллюстрирует пример функциональной конфигурации смартфона ex115. Смартфон ex115 включает в себя антенну ex450 для передачи и приема радиоволн в/из базовой станции ex110, камеру ex465, допускающую захват видео и неподвижных изображений, и дисплей ex458, который отображает декодированные данные, такие как видео, захваченное посредством камеры ex465, и видео, принимаемое посредством антенны ex450. Смартфон ex115 дополнительно включает в себя пользовательский интерфейс ex466, такой как сенсорная панель; модуль ex457 аудиовывода, такой как динамик для вывода речи или другого аудио; модуль ex456 аудиоввода, такой как микрофон для аудиоввода; запоминающее устройство ex467, допускающее сохранение декодированных данных, таких как захваченные видео или неподвижные изображения, записанное аудио, принимаемые видео или неподвижные изображения и почтовые сообщения, а также декодированные данные; и гнездо ex464, которое представляет собой интерфейс для SIM-карты ex468 для авторизации доступа к сети и различным данным. Следует отметить, что внешнее запоминающее устройство может использоваться вместо или в дополнение к запоминающему устройству ex467.Fig. 163 illustrates additional details regarding the exemplary smartphone ex115 shown in FIG. 160. Fig. 164 illustrates an example of the functional configuration of the ex115 smartphone. 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 ex466 user interface such as touchpad; an audio output module ex457, such as a speaker for outputting speech or other audio; ex456 audio input module, such as a microphone for audio input; a storage device ex467 capable of storing decoded data such as captured videos or still images, recorded audio, received videos 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 may be used instead of or in addition to the ex467 storage device.

[0792] Главный контроллер ex460, который может всесторонне управлять дисплеем ex458 и пользовательским интерфейсом ex466, схема ex461 подачи мощности, контроллер ex462 ввода из пользовательского интерфейса, процессор ex455 видеосигналов, интерфейс ex463 камеры, контроллер ex459 отображения, модулятор/демодулятор ex452, мультиплексор/демультиплексор ex453, процессор ex454 аудиосигналов, гнездо ex464 и запоминающее устройство ex467 соединяются через шину ex470.[0792] 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.

[0793] Когда пользователь включает кнопку питания схемы ex461 подачи мощности, смартфон ex115 включается в работоспособное состояние, и каждый компонент снабжается мощностью, например, из аккумуляторного блока.[0793] 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, for example, from a battery pack.

[0794] Смартфон ex115 выполняет обработку, например, для вызовов и передачи данных, на основе управления, выполняемого посредством главного контроллера ex460, который включает в себя CPU, ROM и RAM. При выполнении вызовов, аудиосигнал, записанный посредством модуля ex456 аудиоввода, преобразуется в цифровой аудиосигнал посредством процессора ex454 аудиосигналов, к которому применяется обработка с расширенным спектром посредством модулятора/демодулятора ex452 и применяется обработка цифро-аналогового преобразования и преобразования частоты посредством приемо-передающего устройства ex451, и результирующий сигнал передается через антенну ex450. Принимаемые данные усиливаются, преобразуются по частоте и подвергаются аналого-цифровому преобразованию, подвергаются обратной обработке с расширенным спектром посредством модулятора/демодулятора ex452, преобразуются в аналоговый аудиосигнал посредством процессора ex454 аудиосигналов и затем выводятся из модуля ex457 аудиовывода.[0794] 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.

[0795] В режиме передачи данных, текст, данные неподвижных изображений или видеоданные могут передаваться, например, под управлением главного контроллера ex460 через контроллер ex462 ввода из пользовательского интерфейса на основе операции пользовательского интерфейса ex466 основного корпуса. Аналогичная обработка передачи и приема выполняется. В режиме передачи данных, при отправке видео, неподвижного изображения или видео и аудио, процессор ex455 видеосигналов кодирует со сжатием, через способ кодирования движущихся кадров, описанный в вышеприведенных вариантах осуществления, видеосигнал, сохраненный в запоминающем устройстве ex467, или видеосигнал, вводимый из камеры ex465, и передает кодированные видеоданные в мультиплексор/демультиплексор ex453. Процессор ex454 аудиосигналов кодирует аудиосигнал, записанный посредством модуля ex456 аудиоввода, в то время как камера ex465 захватывает видео или неподвижное изображение, и передает кодированные аудиоданные в мультиплексор/демультиплексор ex453. Мультиплексор/демультиплексор ex453 мультиплексирует кодированные видеоданные и кодированные аудиоданные с использованием определенной схемы, модулирует и преобразует данные с использованием модулятора/демодулятора ex452 (схемы модулятора/демодулятора) и приемо-передающего устройства ex451 и передает результат через антенну ex450. Определенная схема может быть предварительно определена.[0795] 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.

[0796] Когда видео, вложенное в почтовом сообщении или в чате, или видео, содержащее ссылку из веб-страницы, принимается, например, для того чтобы декодировать мультиплексированные данные, принимаемые через антенну ex450, мультиплексор/демультиплексор ex453 демультиплексирует мультиплексированные данные, чтобы разделять мультиплексированные данные на поток битов видеоданных и поток битов аудиоданных, предоставляет кодированные видеоданные в процессор ex455 видеосигналов через синхронную шину ex470 и предоставляет кодированные аудиоданные в процессор ex454 аудиосигналов через синхронную шину ex470. Процессор ex455 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся кадров, соответствующего способу кодирования движущихся кадров, описанному в вышеприведенных вариантах осуществления, и видео или неподвижное изображение, включенное в связанный файл движущихся кадров, отображается на дисплее ex458 через контроллер ex459 отображения. Процессор ex454 аудиосигналов декодирует аудиосигнал и выводит аудио из модуля ex457 аудиовывода. Поскольку потоковая передача в режиме реального времени становится все более популярной, могут возникать случаи, в которых воспроизведение аудио может быть социально нецелесообразным, в зависимости от окружения пользователя. Соответственно, в качестве начального значения, может быть предпочтительной конфигурация, в которой только видеоданные воспроизводятся, например, аудиосигнал не воспроизводится; аудио может синхронизироваться и воспроизводиться только тогда, когда принимается ввод, к примеру, когда пользователь щелкает видеоданные.[0796] 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 the 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, for example, no audio signal is reproduced, may be preferred; audio can only sync and play when input is received, such as when the user clicks on video data.

[0797] Хотя смартфон ex115 использован в вышеприведенном примере, другие реализации возможны: приемо-передающий терминал, включающий в себя как кодер, так и декодер; передающий терминал, включающий в себя только кодер; и приемный терминал, включающий в себя только декодер. В описании цифровой широковещательной системы, приводится пример, в котором мультиплексированные данные, полученные в результате мультиплексирования видеоданных с аудиоданными, принимаются или передаются. Тем не менее, мультиплексированные данные могут представлять собой видеоданные, мультиплексированные с данными, отличными от аудиоданных, такими как текстовые данные, связанные с видео. Дополнительно, непосредственно видеоданные, а не мультиплексированные данные могут приниматься или передаваться.[0797] 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.

[0798] Хотя главный контроллер ex460, включающий в себя CPU, описывается как управляющий процессами кодирования или декодирования, различные терминалы зачастую включают в себя графические процессоры (GPU). Соответственно, приемлемой является конфигурация, в которой большая зона обрабатывается сразу посредством использования характеристик с точки зрения производительности GPU через запоминающее устройство, совместно используемое посредством CPU и GPU, либо через запоминающее устройство, включающее в себя адрес, которое управляется таким образом, чтобы обеспечивать возможность широкого использования посредством CPU и GPU, либо через отдельные запоминающие устройства. Это позволяет сокращать время кодирования, поддерживать характер реального времени потока и уменьшать задержку. В частности, обработка, связанная с оценкой движения, фильтрацией для удаления блочности, дискретизированным адаптивным смещением (SAO) и преобразованием/квантованием, может эффективно выполняться посредством GPU вместо CPU, например, в единицах кадров, одновременно.[0798] Although the ex460 main controller, which includes a CPU, is described as controlling encoding or decoding processes, various terminals often include graphics processing units (GPUs). Accordingly, a configuration in which a large area is processed at once by using the 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, or via separate storage devices. 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.

Claims (72)

1. Кодер, содержащий:1. Encoder containing: - процессор, который выполняет обработку информации; и- a processor that performs information processing; And - запоминающее устройство, соединенное с процессором;- a storage device connected to the processor; - при этом процессор, при работе:- while the processor, during operation: - в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирует восстановленную выборку, расположенную внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicates the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample; - формирует первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generates a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images; - задает первое значение коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64;- sets the first coefficient value to zero in response to the first coefficient value less than 64; - формирует второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images; - формирует третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента; и- generates the third coefficient value by summing the first coefficient value with the second coefficient value; And - выводит третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента.- outputs a third reconstructed sample of chrominance component images using the third coefficient value. 2. Кодер по п. 1, в котором: 2. Encoder according to claim 1, in which: - первая восстановленная выборка изображений расположена рядом со второй восстановленной выборкой изображений.- the first restored sample of images is located next to the second restored sample of images. 3. Кодер, содержащий:3. Encoder containing: - модуль разбиения блоков, который, при работе, разбивает первое изображение на множество блоков;- a block splitting module, which, during operation, splits the first image into many blocks; - модуль внутреннего прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных в первое изображение;- an internal prediction module that, in operation, predicts blocks included in the first image using reference blocks included in the first image; - модуль взаимного прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных во второе изображение, отличающееся от первого изображения;- an inter-prediction module which, in operation, predicts blocks included in the first image using reference blocks included in a second image different from the first image; - контурный фильтр, который, при работе, фильтрует блоки, включенные в первое изображение;- a contour filter, which, when in operation, filters the blocks included in the first image; - преобразователь, который, при работе, преобразует ошибку прогнозирования между исходным сигналом и прогнозным сигналом, сформированным посредством модуля внутреннего прогнозирования или модуля взаимного прогнозирования, чтобы формировать коэффициенты преобразования;- a converter that, in operation, converts the prediction error between the original signal and the prediction signal generated by the intra prediction module or the inter prediction module to generate conversion coefficients; - квантователь, который, при работе, квантует коэффициенты преобразования, чтобы формировать квантованные коэффициенты; и- a quantizer, which, when in operation, quantizes the transformation coefficients to generate quantized coefficients; And - энтропийный кодер, который, при работе, переменно кодирует квантованные коэффициенты, чтобы формировать кодированный поток битов, включающий в себя кодированные квантованные коэффициенты и управляющую информацию,- an entropy encoder which, in operation, variably encodes the quantized coefficients to generate a coded bitstream including the encoded quantized coefficients and control information, - при этом контурный фильтр выполняет:- in this case, the contour filter performs: - в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирование восстановленной выборки, расположенной внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample; - формирование первого значения коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images; - установление первого значения коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64;- setting the first coefficient value to zero in response to the first coefficient value less than 64; - формирование второго значения коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images; - формирование третьего значения коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента; и- formation of the third coefficient value by summing the first coefficient value with the second coefficient value; And - вывод третьей восстановленной выборки изображений компонента сигнала цветности с использованием третьего значения коэффициента.- outputting a third reconstructed sample of chrominance signal component images using the third coefficient value. 4. Кодер по п. 3, в котором:4. Encoder according to claim 3, in which: - первая восстановленная выборка изображений расположена рядом со второй восстановленной выборкой изображений.- the first restored sample of images is located next to the second restored sample of images. 5. Декодер, содержащий:5. Decoder containing: - процессор, который выполняет обработку информации; и- a processor that performs information processing; And - запоминающее устройство, соединенное с процессором;- a storage device connected to the processor; - при этом процессор, при работе:- while the processor, during operation: - в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирует восстановленную выборку, расположенную внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicates the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample; - формирует первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generates a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images; - задает первое значение коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64;- sets the first coefficient value to zero in response to the first coefficient value less than 64; - формирует второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images; - формирует третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента; и- generates the third coefficient value by summing the first coefficient value with the second coefficient value; And - выводит третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента.- outputs a third reconstructed sample of chrominance component images using the third coefficient value. 6. Декодер по п. 5, в котором:6. Decoder according to claim 5, in which: - первая восстановленная выборка изображений расположена рядом со второй восстановленной выборкой изображений.- the first restored sample of images is located next to the second restored sample of images. 7. Оборудование декодирования, содержащее:7. Decoding equipment containing: - декодер, который, при работе, декодирует кодированный поток битов, чтобы выводить квантованные коэффициенты;- a decoder which, in operation, decodes the encoded bit stream to output quantized coefficients; - обратный квантователь, который, при работе, обратно квантует квантованные коэффициенты, чтобы выводить коэффициенты преобразования;- an inverse quantizer, which, when in operation, inversely quantizes the quantized coefficients to output the conversion coefficients; - обратный преобразователь, который, при работе, обратно преобразует коэффициенты преобразования, чтобы выводить ошибку прогнозирования;- an inverse converter, which, when in operation, inversely converts the conversion coefficients to output the prediction error; - модуль внутреннего прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных в первое изображение;- an internal prediction module that, in operation, predicts blocks included in the first image using reference blocks included in the first image; - модуль взаимного прогнозирования, который, при работе, прогнозирует блоки, включенные в первое изображение, с использованием опорных блоков, включенных во второе изображение, отличающееся от первого изображения;- an inter-prediction module which, in operation, predicts blocks included in the first image using reference blocks included in a second image different from the first image; - контурный фильтр, который, при работе, фильтрует блоки, включенные в первое изображение; и- a contour filter, which, when in operation, filters the blocks included in the first image; And - вывод, который, при работе, выводит кадр, включающий в себя первое изображение,- an output which, when operated, outputs a frame including the first image, - при этом контурный фильтр выполняет:- in this case, the contour filter performs: - в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублирование восстановленной выборки, расположенной внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample; - формирование первого значения коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images; - установление первого значения коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64;- setting the first coefficient value to zero in response to the first coefficient value less than 64; - формирование второго значения коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images; - формирование третьего значения коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента; и- formation of the third coefficient value by summing the first coefficient value with the second coefficient value; And - вывод третьей восстановленной выборки изображений компонента сигнала цветности с использованием третьего значения коэффициента.- outputting a third reconstructed sample of chrominance signal component images using the third coefficient value. 8. Оборудование декодирования по п. 7, в котором:8. Decoding equipment according to claim 7, in which: - первая восстановленная выборка изображений расположена рядом со второй восстановленной выборкой изображений.- the first restored sample of images is located next to the second restored sample of images. 9. Способ кодирования, содержащий этапы, на которых:9. An encoding method containing the steps of: - в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублируют восстановленную выборку, расположенную внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample; - формируют первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images; - задают первое значение коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64;- setting the first coefficient value equal to zero in response to the first coefficient value less than 64; - формируют второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chroma component images; - формируют третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента; и- the third value of the coefficient is formed by summing the first value of the coefficient with the second value of the coefficient; And - выводят третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента.- outputting a third reconstructed sample of chrominance signal component images using the third coefficient value. 10. Способ декодирования, содержащий этапы, на которых:10. A decoding method comprising the steps of: - в ответ на первую восстановленную выборку изображений, расположенную за пределами виртуальной границы, дублируют восстановленную выборку, расположенную внутри и рядом с виртуальной границей, с тем чтобы формировать первую восстановленную выборку изображений;- in response to the first reconstructed image sample located outside the virtual boundary, duplicating the reconstructed sample located within and adjacent to the virtual boundary so as to generate the first reconstructed image sample; - формируют первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости;- generating a first coefficient value by applying a CCALF (Cross Component Adaptive Contour Filtering) process to the first reconstructed sample of luminance signal component images; - задают первое значение коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64;- setting the first coefficient value equal to zero in response to the first coefficient value less than 64; - формируют второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности;- generating a second coefficient value by applying an ALF (adaptive loop filtering) process to the second reconstructed sample of chrominance component images; - формируют третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента; и- the third value of the coefficient is formed by summing the first value of the coefficient with the second value of the coefficient; And - выводят третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента.- outputting a third reconstructed sample of chrominance signal component images using the third coefficient value.
RU2022102649A 2019-08-08 2020-08-07 Video encoding system and method RU2817290C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/884,430 2019-08-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024107370A Division RU2024107370A (en) 2019-08-08 2020-08-07 SYSTEM AND METHOD FOR VIDEO CODING

Publications (2)

Publication Number Publication Date
RU2022102649A RU2022102649A (en) 2023-09-11
RU2817290C2 true RU2817290C2 (en) 2024-04-12

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2641230C1 (en) * 2011-11-07 2018-01-16 Кэнон Кабусики Кайся Method and device for optimisation of coding/decoding compensation offsets for set of restored image samples

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2641230C1 (en) * 2011-11-07 2018-01-16 Кэнон Кабусики Кайся Method and device for optimisation of coding/decoding compensation offsets for set of restored image samples

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOTRA A. et al., CE5-2: Loop filter line buffer reduction, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0180-v1, 14th Meeting: Geneva, 19-27 March 2019. TAQUET J. et al., Non-linear Adaptive Loop Filter, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-M0385, 13th Meeting: Marrakech, 9-18 Jan. 2019. *
MISRA K. et al., Cross-Component Adaptive Loop Filter for chroma, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O0636_r1, 15th Meeting: Gothenburg, 3-12 July 2019. *

Similar Documents

Publication Publication Date Title
WO2021025165A1 (en) System and method for video coding
WO2021054424A1 (en) System and method for video coding
JP2023126578A (en) Image encoder and image decoder
JP7389283B2 (en) Encoding device and decoding device
JP2023164617A (en) Image encoder, image decoder and bit stream generation device
WO2021025169A1 (en) System and method for video coding
JP2023112213A (en) Encoding device, decoding device, encoding method, and decoding method
JP7483836B2 (en) Encoding method, decoding method, encoding device, and decoding device
WO2020250874A1 (en) Encoding device, decoding device, encoding method, and decoding method
WO2021045130A1 (en) System and method for video coding
JP2023168625A (en) Decoding device and decoding method
WO2021025168A1 (en) System and method for video coding
JP7373040B2 (en) Decoding device and encoding device
WO2020218582A1 (en) Coding device, decoding device, coding method, and decoding method
JP7337222B2 (en) Encoding device and decoding device
KR20220062526A (en) Encoding apparatus, decoding apparatus, encoding method, and decoding method
JP2024063232A (en) Encoding device and encoding method
WO2021049593A1 (en) System and method for video coding
WO2020218578A1 (en) Coding device, decoding device, coding method, and decoding method
JP7194199B2 (en) Encoding device, decoding device, encoding method and decoding method
JP2023001298A (en) Decoding device and decoding method
WO2021025167A1 (en) System and method for video coding
WO2020218581A1 (en) Coding device, decoding device, coding method, and decoding method
RU2817290C2 (en) Video encoding system and method
RU2819086C2 (en) Video encoding system and method