RU2808631C2 - Maintaining tables for storing candidates for prediction of motion vector based on history - Google Patents

Maintaining tables for storing candidates for prediction of motion vector based on history Download PDF

Info

Publication number
RU2808631C2
RU2808631C2 RU2021111407A RU2021111407A RU2808631C2 RU 2808631 C2 RU2808631 C2 RU 2808631C2 RU 2021111407 A RU2021111407 A RU 2021111407A RU 2021111407 A RU2021111407 A RU 2021111407A RU 2808631 C2 RU2808631 C2 RU 2808631C2
Authority
RU
Russia
Prior art keywords
motion
block
candidates
prediction
list
Prior art date
Application number
RU2021111407A
Other languages
Russian (ru)
Other versions
RU2021111407A (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 RU2021111407A publication Critical patent/RU2021111407A/en
Application granted granted Critical
Publication of RU2808631C2 publication Critical patent/RU2808631C2/en

Links

Abstract

FIELD: video encoding/decoding.
SUBSTANCE: video processing method is proposed, comprising: determining, during conversion between a first block of visual media data and a corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode; determining, based on at least one table storing history-based motion vector prediction (HMVP) candidates that include motion information based on previously encoded blocks, motion information of at least one sub-part of the first block; transforming the first block using certain motion information.
EFFECT: increase in the efficiency of encoding/decoding.
16 cl, 42 dwg, 4 tbl

Description

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

Данный документ относится к технологиям кодирования и декодирования видео и изображений.This document relates to video and image encoding and decoding technologies.

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

На цифровое видео приходится самая большая доля использования полосы пропускания в Интернете и других сетях цифровой связи. Ожидается, что по мере увеличения количества подключенных пользовательских устройств, способных принимать и отображать видео, потребность в полосе пропускания для использования цифрового видео будет продолжать расти.Digital video accounts for the largest share of bandwidth usage on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, the demand for bandwidth for digital video use is expected to continue to increase.

Раскрытие сущности изобретенияDisclosure of the invention

Раскрытые технологии могут использоваться в вариантах осуществления декодера или кодера видео или изображения, в которых используются геометрические разбиения с помощью предсказания вектора движения на основе истории (HMVP).The disclosed technologies may be used in embodiments of a video or image decoder or encoder that utilize geometric partitions using history-based motion vector prediction (HMVP).

В одном примерном аспекте раскрыт способ обработки видео. Способ включает в себя определение процессором того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния; определение процессором первой подчасти и второй подчасти для первого видеоблока на основе определения того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, причем одна или обе из первой подчасти или второй подчасти являются непрямоугольными и неквадратными частями первого видеоблока; и дополнительную обработку первого видеоблока с использованием первой подчасти и второй подчасти.In one exemplary aspect, a method for processing video is disclosed. The method includes determining by the processor that the first video block is internally encoded or externally encoded without merging; determining by the processor a first subpart and a second subpart for the first video block based on determining that the first video block is internally encoded or externally encoded without merging, wherein one or both of the first subpart or the second subpart is non-rectangular and non-square portions of the first video block; and further processing the first video block using the first sub-part and the second sub-part.

В другом примерном аспекте способ обработки видео включает в себя определение процессором того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния; определение процессором первой подчасти и второй подчасти для первого видеоблока, причем одна или обе из первой подчасти или второй подчасти являются непрямоугольными и неквадратными частями первого видеоблока; и дополнительную обработку первого видеоблока с использованием первой подчасти и второй подчасти, при этом по меньшей мере одна подчасть не является внешне кодированной со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.In another exemplary aspect, a method of processing video includes determining by a processor that a first video block is internally encoded or externally encoded without merging; determining by the processor a first subpart and a second subpart for the first video block, wherein one or both of the first subpart or the second subpart are non-rectangular and non-square portions of the first video block; and further processing the first video block using the first sub-part and the second sub-part, wherein the at least one sub-part is not externally encoded with or without merging and uses the current image as a reference image.

В другом примерном аспекте способ обработки видео включает в себя определение процессором того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния; определение процессором первой подчасти и второй подчасти для первого видеоблока, причем одна или обе из первой подчасти или второй подчасти являются непрямоугольными и неквадратными частями первого видеоблока; и дополнительную обработку первого видеоблока с использованием первой подчасти и второй подчасти, причем дополнительная обработка первого видеоблока с использованием первой подчасти и второй подчасти основана на интер- или внутренне кодированной информации о несмежных пространственных видеоблоках по отношению к первому видеоблоку.In another exemplary aspect, a method of processing video includes determining by a processor that a first video block is internally encoded or externally encoded without merging; determining by the processor a first subpart and a second subpart for the first video block, wherein one or both of the first subpart or the second subpart are non-rectangular and non-square portions of the first video block; and further processing the first video block using the first sub-part and the second sub-part, wherein the additional processing of the first video block using the first sub-part and the second sub-part is based on inter- or intra-encoded information about non-contiguous spatial video blocks with respect to the first video block.

В другом примерном аспекте способ обработки видео включает в себя определение того, что первый видеоблок кодирован в режиме треугольной части (TPM) с использованием треугольной части предсказания первого видеоблока, и что второй видеоблок кодируется с использованием не-TPM, использующего часть нетреугольного предсказания второго видеоблока; дополнительную обработку первого видеоблока и второго видеоблока с использованием сохраненных кандидатов HMVP и сохранение кандидатов HMVP, ассоциированных с первым видеоблоком и вторым видеоблоком.In another exemplary aspect, a video processing method includes determining that a first video block is encoded in a triangular portion mode (TPM) using the triangular prediction portion of the first video block, and that a second video block is encoded in a non-TPM using the non-triangular prediction portion of the second video block; further processing the first video block and the second video block using the stored HMVP candidates; and storing the HMVP candidates associated with the first video block and the second video block.

В другом примерном аспекте способ обработки видео включает в себя определение процессором того, что первый видеоблок включает в себя части предсказания, которые являются непрямоугольными и неквадратными частями первого видеоблока; идентификацию кандидата HMVP; добавление одного или множества кандидатов движения, полученных из кандидата HMVP, в список слияния, ассоциированный с видеоблоками, которые включают в себя части предсказания, которые являются непрямоугольными и неквадратными; и дополнительную обработку первого видеоблока с использованием списка слияния.In another exemplary aspect, a method of processing video includes determining by a processor that a first video block includes prediction portions that are non-rectangular and non-square portions of the first video block; identification of the HMVP candidate; adding one or more motion candidates obtained from the HMVP candidate to a merge list associated with video blocks that include prediction portions that are non-rectangular and non-square; and further processing the first video block using the merge list.

В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных множества подчастей для текущего блока; определение информации внешнего предсказания множества подчастей; преобразование текущего блока с использованием информации внешнего предсказания множества подчастей; и где текущий блок является внутренне кодированным, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.In another exemplary aspect, a method of processing video includes: determining, during conversion between a current block of visual media data and a corresponding encoded representation of visual media data, a plurality of subparts for the current block; determining inter prediction information of the plurality of sub-parts; transforming the current block using inter prediction information of the plurality of sub-parts; and where the current block is intra-coded and at least one of the plurality of sub-parts is a non-rectangular and non-square sub-part.

В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных множества подчастей для текущего блока; определение информации о движении множества подчастей; преобразование текущего блока с использованием информации о движении множества подчастей; и где текущий блок не является внешне кодированным со слиянием, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.In another exemplary aspect, a method of processing video includes: determining, during conversion between a current block of visual media data and a corresponding encoded representation of visual media data, a plurality of subparts for the current block; determining information about the movement of multiple sub-parts; transforming the current block using motion information of the plurality of sub-parts; and where the current block is not externally merge encoded and at least one of the plurality of subparts is a non-rectangular and non-square subpart.

В другом примерном аспекте способ обработки видео включает в себя: преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разделен несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; обработку первой подчасти в режиме внутренне кодирования; и обработку второй подчасти в режиме внешне кодирования.In another exemplary aspect, a method of processing video includes: converting between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is divided into multiple subparts according to a partitioning pattern, wherein the first subpart has a non-rectangular, non-square shape; processing the first subpart in internal coding mode; and processing the second sub-part in an externally encoding mode.

В другом примерном аспекте способ обработки видео включает в себя: преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разделен несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; где по меньшей мере одна из множества подчастей внешне кодирована со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.In another exemplary aspect, a method of processing video includes: converting between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is divided into multiple subparts according to a partitioning pattern, wherein the first subpart has a non-rectangular, non-square shape; wherein at least one of the plurality of sub-parts is externally encoded with or without merging and uses the current image as a reference image.

В другом примерном аспекте способ обработки видео включает в себя: преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается несколько подчастей в соответствии с шаблоном разбиения, при этом первое разбиение предсказания имеет непрямоугольную, неквадратную форму; и преобразование с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках.In another exemplary aspect, a method for processing video includes: converting between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is partitioned into multiple subparts according to a partitioning pattern, wherein the first prediction partition has a non-rectangular, non-square shape; and transforming using inter- or intra-encoded information about one or more spatial blocks.

В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения; определение, на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения на основе истории (HMVP), которые включают в себя информацию о движении на основе ранее кодированных блоков, информации о движении по меньшей мере одной подчасти первого блока; преобразование первого блока с использованием определенной информации о движении.In another exemplary aspect, a method of processing video includes: determining, during conversion between a first block of visual media data and a corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode; determining, based on at least one table storing history-based motion vector prediction (HMVP) candidates that include motion information based on previously encoded blocks, motion information of at least one sub-part of the first block; transforming the first block using certain motion information.

В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения; определение информации о движении по меньшей мере одной подчасти первого блока; преобразование первого блока с использованием информации о движении по меньшей мере одной подчасти; причем определение информации о движении по меньшей мере одной подчасти содержит использование по меньшей мере одного кандидата предсказания вектора движения на основе истории (HMVP), который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения и определения информации о движении из списка кандидатов движения.In another exemplary aspect, a method of processing video includes: determining, during conversion between a first block of visual media data and a corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode; determining motion information of at least one sub-part of the first block; transforming the first block using motion information of the at least one sub-part; wherein determining the motion information of the at least one sub-part comprises using at least one history-based motion vector prediction (HMVP) candidate that includes the motion information based on the previously encoded block to create a list of motion candidates and determine the motion information from list of movement candidates.

В другом примерном аспекте вышеописанный способ может быть реализован устройством видеокодера, которое содержит процессор.In another exemplary aspect, the above-described method may be implemented by a video encoder device that includes a processor.

В другом примерном аспекте вышеописанный способ может быть реализован устройством видеодекодера, которое содержит процессор.In another exemplary aspect, the above-described method may be implemented by a video decoder device that includes a processor.

В еще одном примерном аспекте эти способы могут быть воплощены в виде инструкций, исполняемых процессором и хранящихся на машиночитаемом носителе программ.In yet another exemplary aspect, these methods may be embodied in instructions executable by a processor and stored on a computer-readable program medium.

Эти и другие аспекты дополнительно описаны в настоящем документе.These and other aspects are further described herein.

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

Фиг.1 – пример процесса получения для создания списка кандидатов слияния.Figure 1 is an example of a retrieval process for creating a list of merge candidates.

Фиг.2 – пример позиций пространственных кандидатов слияния.Figure 2 is an example of the positions of spatial merger candidates.

Фиг.3 – пример пар кандидатов, подлежащих проверке на избыточность пространственного кандидата слияния.Figure 3 is an example of candidate pairs to be tested for redundancy of a spatial merge candidate.

Фиг.4 – пример позиций второй PU разбиений N×2N и 2N×N.Figure 4 is an example of the positions of the second PU partitions N×2N and 2N×N.

Фиг.5 – пример масштабирования вектора движения для временного кандидата слияния.Figure 5 is an example of motion vector scaling for a temporary merge candidate.

Фиг.6 – пример позиций кандидатов для временных кандидатов C0 и C1 слияния.Fig. 6 is an example of candidate positions for temporary merge candidates C0 and C1.

Фиг.7 – пример объединенного кандидата слияния с би-предсказанием.Figure 7 is an example of a merged bi-prediction fusion candidate.

Фиг.8 – пример процесса получения для кандидатов предсказания вектора движения.FIG. 8 is an example of a process for obtaining motion vector predictions for candidates.

Фиг.9 – пример масштабирования вектора движения для пространственного кандидата вектора движения.Figure 9 is an example of motion vector scaling for a spatial motion vector candidate.

Фиг.10 – пример предсказания движения ATMVP для CU.Fig. 10 is an example of ATMVP motion prediction for a CU.

Фиг.11 – пример одной CU с четырьмя подблоками (AD) и его соседними блоками (a-d).Fig. 11 is an example of one CU with four sub-blocks (AD) and its neighboring blocks (a-d).

Фиг.12 – пример блок-схемы кодирования с различной точностью MV.Fig. 12 is an example of a block diagram of coding with different MV precision.

Фиг.13 – примеры разбиения CU на две треугольные единицы предсказания (два типа разбиения).FIG. 13 shows examples of partitioning a CU into two triangular prediction units (two types of partitioning).

Фиг.14 – пример позиций соседних блоков.Fig. 14 is an example of the positions of neighboring blocks.

Фиг.15 – пример CU, применяющего 1-ю группу весовых коэффициентов.Fig. 15 is an example of a CU applying the 1st group of weighting coefficients.

Фиг.16 – пример хранения вектора движения.Fig. 16 is an example of storing a motion vector.

Фиг.17 – пример соседних блоков (A и L), используемых для выбора контекста при кодировании флага TPM.FIG. 17 is an example of adjacent blocks (A and L) used for context selection when encoding a TPM flag.

Фиг.18 – пример подблоков, где применяется OBMC.FIG. 18 is an example of subblocks where OBMC is applied.

Фиг.19 – пример соседних выборок, используемых для получения параметров IC.FIG. 19 is an example of adjacent samples used to obtain IC parameters.

Фиг.20 – пример упрощенной модели аффинного движения.Fig. 20 is an example of a simplified model of affine motion.

Фиг.21 – пример аффинного MVF для каждого подблока.Fig. 21 is an example of an affine MVF for each subblock.

Фиг.22 – пример (а) 4-параметрической аффинной модели и (b) 6-параметрической аффинной модели.Fig. 22 is an example of (a) a 4-parameter affine model and (b) a 6-parameter affine model.

Фиг.23 – пример MVP для AF_INTER.Fig. 23 is an example of MVP for AF_INTER.

Фиг.24 – пример кандидатов для AF_MERGE.Fig. 24 is an example of candidates for AF_MERGE.

Фиг.25 – пример позиции кандидатов для режима аффинного слияния.Fig. 25 is an example of the candidate position for the affine merge mode.

Фиг.26 – пример траектории оптического потока.Fig. 26 is an example of an optical flow trajectory.

Фиг.27 – пример BIO расширения блока w/o: a) позиции доступа находятся вне блока; b) заполнение используется во избежание излишнего обращения к памяти и вычислений.Fig. 27 is an example of a BIO extension of a block w/o: a) access positions are outside the block; b) padding is used to avoid unnecessary memory accesses and computations.

Фиг.28 – пример DMVR на основе двустороннего согласования с шаблоном.FIG. 28 is an example of DMVR based on two-way template matching.

Фиг.29 – блок-схема примера устройства обработки видео.FIG. 29 is a block diagram of an example of a video processing apparatus.

Фиг.30 – блок-схема примерной реализации видеокодера.FIG. 30 is a block diagram of an exemplary implementation of a video encoder.

Фиг.31 – блок-схема последовательности операций для примера способа обработки видео.Fig. 31 is a flowchart for an example of a video processing method.

Фиг.32 – блок-схема последовательности операций для примера способа обработки видео.Fig. 32 is a flowchart for an example of a video processing method.

Фиг.33 – блок-схема последовательности операций для примера способа обработки видео.Fig. 33 is a flowchart for an example of a video processing method.

Фиг.34 – блок-схема последовательности операций для примера способа обработки видео.Fig. 34 is a flowchart for an example of a video processing method.

Фиг.35 – блок-схема последовательности операций для примера способа обработки видео.Fig. 35 is a flowchart for an example of a video processing method.

Фиг.36 – блок-схема последовательности операций для примера способа обработки видео.Fig. 36 is a flowchart for an example of a video processing method.

Фиг.37 – блок-схема последовательности операций для примера способа обработки видео.Fig. 37 is a flowchart for an example of a video processing method.

Фиг.38 – блок-схема последовательности операций для примера способа обработки видео.Fig. 38 is a flowchart for an example of a video processing method.

Фиг.39 – блок-схема последовательности операций для примера способа обработки видео.Fig. 39 is a flowchart for an example of a video processing method.

Фиг.40 – блок-схема последовательности операций для примера способа обработки видео.Fig. 40 is a flowchart for an example of a video processing method.

Фиг.41 - блок-схема последовательности операций для примера способа обработки видео.Fig. 41 is a flowchart for an example of a video processing method.

Фиг.42 – блок-схема последовательности операций для примера способа обработки видео.Fig. 42 is a flowchart for an example of a video processing method.

Осуществление изобретенияCarrying out the invention

В данном документе представлены различные технологии, которые могут использоваться в декодере битовых потоков видео или изображения для улучшения качества восстановленного или декодированного цифрового видео или цифровых изображений. Для краткости термин "видео" используется в данном документе для обозначения как последовательности изображений (традиционно называемых видео), так и отдельных изображений. Кроме того, видеокодер позволяет также реализовать эти технологии в процессе кодирования для восстановления декодированных кадров, используемых для дальнейшего кодирования.This document presents various technologies that can be used in a video or image bitstream decoder to improve the quality of reconstructed or decoded digital video or digital images. For brevity, the term "video" is used herein to refer to both a sequence of images (traditionally called a video) and individual images. In addition, the video encoder also allows these technologies to be implemented during the encoding process to recover decoded frames used for further encoding.

Заголовки разделов используются в данном документе для упрощения понимания и не ограничивают варианты осуществления и технологии соответствующими разделами. Таким образом, варианты осуществления из одного раздела могут быть объединены с вариантами осуществления из других разделов.Section headings are used herein for ease of understanding and are not intended to limit the embodiments and technologies to their respective sections. Thus, embodiments from one section may be combined with embodiments from other sections.

1. Краткое изложение сущности изобретения1. Summary of the invention

Данный патентный документ относится к технологиям кодирования видео. В частности, он относится к кодированию вектора движения в условиях геометрического разбиения при кодировании видео. Его можно применить к существующему стандарту кодирования видео, например, к HEVC, или к стандарту (универсальному кодированию видео), который должен быть окончательно утвержден. Он может быть также применим к будущим стандартам кодирования видео или видеокодекам.This patent document relates to video encoding technologies. In particular, it relates to motion vector encoding under geometric partitioning conditions in video encoding. It can be applied to an existing video encoding standard, such as HEVC, or to a standard (Universal Video Coding) that is yet to be finalized. It may also be applicable to future video coding standards or video codecs.

2. Предшествующий уровень техники2. Prior art

Стандарты кодирования видео развивались, главным образом, благодаря развитию хорошо известных стандартов ITU-T и ISO/IEC. ITU-T выпустил стандарты H.261 и H.263, ISO/IEC выпустил стандарты MPEG-1 и MPEG-4 Visual, и эти две организации совместно выпустили стандарты H.262/MPEG-2 Video, H.264/MPEG-4 усовершенствованное кодирование видео (AVC) и H.265/HEVC. Начиная со стандарта H.262, стандарты кодирования видео основываются на структуре гибридного кодирования видео, в которой используются временное предсказание плюс кодирование с преобразованием. Для исследования будущих технологий кодирования видео за рамками HEVC в 2015 году совместно с VCEG и MPEG была основана объединенная группа экспертов по исследованию видео (JVET). С тех пор JVET было принято много новых способов, которые включены в эталонное программное обеспечение под названием модель совместных исследований (JEM). В апреле 2018 года была создана объединенная группа экспертов по исследованию видео (JVET) между VCEG (Q6/16) и ISO/IEC JTC1 SC29/WG11 (MPEG) для работы над стандартом VVC, нацеленным на снижение скорости передачи данных на 50% по сравнению с HEVC.Video encoding standards have evolved primarily through the development of the well-known ITU-T and ISO/IEC standards. ITU-T released the H.261 and H.263 standards, ISO/IEC released the MPEG-1 and MPEG-4 Visual standards, and the two organizations jointly released the H.262/MPEG-2 Video, H.264/MPEG-4 standards advanced video coding (AVC) and H.265/HEVC. Starting with the H.262 standard, video coding standards are based on a hybrid video coding structure that uses temporal prediction plus transform coding. To explore future video encoding technologies beyond HEVC, the Joint Video Experts Team (JVET) was founded in 2015 with VCEG and MPEG. Since then, JVET has adopted many new techniques that are included in reference software called the Collaborative Exploration Model (JEM). In April 2018, the Joint Video Expert Team (JVET) was established between VCEG (Q6/16) and ISO/IEC JTC1 SC29/WG11 (MPEG) to work on a VVC standard aimed at reducing data rates by 50% compared to with HEVC.

На фиг.30 показана блок-схема примерной реализации видеокодера. На фиг.30 показано, что реализация кодера имеет встроенный тракт обратной связи, в котором видеокодер также выполняет функциональные возможности декодирования видео (восстанавливая сжатое представление видеоданных для использования при кодировании следующих видеоданных).FIG. 30 is a block diagram of an exemplary implementation of a video encoder. 30 shows that the encoder implementation has a built-in feedback path in which the video encoder also performs video decoding functionality (reconstructing a compressed representation of the video data for use in encoding the next video data).

2.1 Внешнее предсказание в HEVC/H.2652.1 Inter-prediction in HEVC/H.265

Каждая внешне предсказанная PU имеет параметры движения для одного или двух списков опорных изображений. Параметры движения включают в себя вектор движения и индекс опорного изображения. Использование одного из двух списков опорных изображений также может сигнализироваться с помощью inter_pred_idc. Векторы движения могут быть явно закодированы как дельты по отношению к предикторам.Each externally predicted PU has motion parameters for one or two reference image lists. Motion parameters include motion vector and reference image index. The use of one of the two reference picture lists may also be signaled using inter_pred_idc. Motion vectors can be explicitly coded as deltas with respect to the predictors.

Когда CU кодируются в режиме пропуска, одна PU ассоциируется с CU, и отсутствуют какие-либо существенные остаточные коэффициенты, дельта некодированных векторов движения или индекс опорного кадра. Режим слияния точно определяется, в результате чего параметры движения для текущей PU получаются из соседних PU, включая пространственные и временные кандидаты. Режим слияния может применяться к любой внешне предсказанный PU, а не только к режиму пропуска. Альтернативой режиму слияния является явная передача параметров движения, где вектор движения (если быть более точным, разность векторов движения по сравнению с предиктором вектора движения), соответствующий индекс опорного кадра для каждого списка опорных изображений и использование списка опорных изображений сигнализируются в явном виде для каждой PU. В настоящем раскрытии такой режим называется улучшенным предсказанием вектора движения (AMVP).When CUs are encoded in skip mode, one PU is associated with the CU, and there are no significant residual coefficients, uncoded motion vector delta, or reference frame index. The fusion mode is precisely determined, whereby the motion parameters for the current PU are obtained from neighboring PUs, including spatial and temporal candidates. Merge mode can be applied to any externally predicted PU, not just skip mode. An alternative to the fusion mode is the explicit transmission of motion parameters, where the motion vector (more precisely, the difference of motion vectors compared to the motion vector predictor), the corresponding reference frame index for each reference picture list, and the use of the reference picture list are signaled explicitly for each PU . In the present disclosure, such a mode is called enhanced motion vector prediction (AMVP).

Когда сигнализация указывает, что должен использоваться один из двух списков опорных изображений, PU создается из одного блока выборок. Это называется "уни-предсказанием". Уни-предсказание доступно как для P-слайсов, так и для B-слайсов.When signaling indicates that one of two reference picture lists should be used, a PU is created from one block of samples. This is called "uni-prediction". Uni-prediction is available for both P-slices and B-slices.

Когда сигнализация указывает, что должны использоваться оба списка опорных изображений, PU создается из двух блоков выборок. Это упоминается как "би-предсказание". Би-предсказание доступно только для B-слайсов.When signaling indicates that both reference picture lists should be used, a PU is created from two sample blocks. This is referred to as "bi-prediction". Bi-prediction is only available for B-slices.

В последующем тексте представлены подробные сведения о режимах внешнего предсказания, определенных в HEVC. Описание начинается с режима слияния.The following text provides details of the inter-prediction modes defined in HEVC. The description begins with the merge mode.

2.1.1. Список опорных изображений2.1.1. List of reference images

В HEVC термин "внешнее предсказание" используется для обозначения предсказания, полученного из элементов данных (например, значений выборок или векторов движения) опорных изображений, которые отличаются от текущего декодированного изображения. Как и в H.264/AVC, изображение может быть предсказано из множества опорных изображений. Опорные изображения, которые используются для внешнего предсказания, объединены в один или несколько списков опорных изображений. Опорный индекс указывает то, какое из опорных изображений в списке следует использовать для создания сигнала предсказания.In HEVC, the term "external prediction" is used to refer to a prediction derived from data elements (eg, sample values or motion vectors) of reference pictures that are different from the currently decoded picture. As in H.264/AVC, a picture can be predicted from multiple reference pictures. The reference pictures that are used for inter-prediction are combined into one or more reference picture lists. The reference index indicates which of the reference pictures in the list should be used to create the prediction signal.

Один список опорных изображений, список 0, используется для P-слайса, и два списка опорных изображений, список 0 и список 1, используются для B-слайсов. Следует отметить, что контрольные изображения, включенные в список 0/1, могут быть из прошлых и будущих изображений с точки зрения порядка захвата/отображения.One reference picture list, list 0, is used for the P-slice, and two reference picture lists, list 0 and list 1, are used for the B-slice. It should be noted that the reference pictures included in the 0/1 list may be from past and future pictures in terms of capture/display order.

2.1.2 Режим слияния2.1.2 Merge mode

2.1.2.1 Получение кандидатов для режима слияния2.1.2.1 Obtaining candidates for merge mode

Когда PU предсказывается с использованием режима слияния, индекс, указывающий на запись в списке кандидатов слияния, анализируется из битового потока и используется для извлечения информации о движении. Построение этого списка точно определено в стандарте HEVC и может быть кратко изложено в соответствии со следующей последовательностью этапов:When a PU is predicted using the merge mode, an index pointing to an entry in the merge candidate list is parsed from the bitstream and used to extract motion information. The construction of this list is precisely defined in the HEVC standard and can be summarized according to the following sequence of steps:

Этап 1: Получение исходных кандидатовStep 1: Obtaining Initial Candidates

Этап 1.1: Получение пространственных кандидатовStep 1.1: Obtaining spatial candidates

Этап 1.2: Проверка на избыточность для пространственных кандидатовStep 1.2: Redundancy check for spatial candidates

Этап 1.3: Получение временных кандидатовStage 1.3: Obtaining temporary candidates

Этап 2: Добавление дополнительных кандидатовStep 2: Adding Additional Candidates

Этап 2.1: Создание кандидатов с би-предсказаниемStep 2.1: Generating bi-prediction candidates

Этап 2.2: Вставка кандидатов с нулевым движениемStep 2.2: Inserting Zero Motion Candidates

Эти этапы также схематично изображены на фиг.1. Для получения пространственного кандидата слияния выбирается максимум четыре кандидата слияния из кандидатов, которые расположены в пяти разных позициях. Для получения временного кандидата слияния из двух кандидатов выбирается максимум один кандидат слияния. Так как в декодере предполагается постоянное количество кандидатов для каждой PU, дополнительные кандидаты вырабатываются тогда, когда количество кандидатов не достигает максимального количества кандидатов слияния (MaxNumMergeCand), которое сигнализируется в заголовке слайса. Так как количество кандидатов является постоянным, индекс лучшего кандидата слияния кодируется с использованием усеченной унарной бинаризации (TU). Если размер CU равен 8, все PU текущей CU совместно используют один список кандидатов слияния, который идентичен списку кандидатов слияния блока предсказания размером 2N×2N.These steps are also schematically depicted in FIG. 1. To obtain a spatial fusion candidate, a maximum of four fusion candidates are selected from candidates that are located at five different positions. To obtain a temporary merge candidate, a maximum of one merge candidate is selected from two candidates. Since the decoder assumes a constant number of candidates for each PU, additional candidates are produced when the number of candidates does not reach the maximum number of merge candidates (MaxNumMergeCand), which is signaled in the slice header. Since the number of candidates is constant, the index of the best merge candidate is encoded using truncated unary binarization (TU). If the CU size is 8, all PUs of the current CU share one merge candidate list, which is identical to the 2N×2N prediction block merge candidate list.

Далее подробно описываются операции, связанные с вышеупомянутыми этапами.The following describes in detail the operations associated with the above steps.

На фиг.1 показан пример процесса получения для построения списка кандидатов слияния.Figure 1 shows an example of a retrieval process for constructing a list of merge candidates.

2.1.2.2. Получение пространственных кандидатов2.1.2.2. Retrieving spatial candidates

При получении пространственных кандидатов слияния максимум четыре кандидата слияния выбираются среди кандидатов, расположенных в позициях, изображенных на фиг.2. Порядок получения является следующим: A1, B1, B0, A0 и B2. Позиция B2 рассматривается только тогда, когда любая PU из позиции A1, B1, B0, A0 недоступна (например, так как она принадлежит другому слайсу или тайлу) или внутренне кодирована. После того, как добавлен кандидат в позиции A1, добавление оставшихся кандидатов подлежит проверке на избыточность, которая гарантирует, что кандидаты с одинаковой информацией о движении исключены из списка, поэтому повышается эффективность кодирования. Чтобы уменьшить вычислительную сложность, не все возможные пары кандидатов рассматриваются в упомянутой проверке на избыточность. Вместо этого рассматриваются только пары, связанные стрелкой, показанной на фиг.3, и кандидат добавляется в список только в том случае, если соответствующий кандидат, используемый для проверки на избыточность, не имеет такой же информации о движении. Еще одним источником дублированной информации о движении является "вторая PU", ассоциированная с разбиениями, которые отличаются от 2Nx2N. В качестве примера на фиг.4 показана вторая PU для случая N×2N и 2N×N, соответственно. Когда текущая PU разделена как N×2N, кандидат в позиции A1 не рассматривается для построения списка. В некоторых вариантах осуществления добавление этого кандидата может привести к двум блокам предсказания, имеющим одинаковую информацию о движении, которая является избыточной для того, чтобы иметь только одну PU в блоке кодирования. Аналогичным образом, позиция B1 не учитывается тогда, когда текущая PU разделена как 2N×N. Фактически, добавление этого кандидата приведет к двум единицам предсказания, имеющим одинаковую информацию о движении, которая является избыточной, чтобы иметь только одну PU в единице кодирования. Аналогичным образом, позиция B1 не рассматривается, когда текущая PU разделена как 2N×N.When obtaining spatial fusion candidates, a maximum of four fusion candidates are selected from the candidates located at the positions shown in FIG. 2. The order of receipt is as follows: A 1 , B 1 , B 0 , A 0 and B 2 . Position B 2 is considered only when any PU from position A 1 , B 1 , B 0 , A 0 is not available (for example, because it belongs to another slice or tile) or is internally encoded. Once a candidate at position A 1 is added, the addition of the remaining candidates is subject to a redundancy check, which ensures that candidates with the same motion information are eliminated from the list, so coding efficiency is improved. To reduce computational complexity, not all possible candidate pairs are considered in the redundancy check mentioned. Instead, only pairs connected by the arrow shown in Fig. 3 are considered, and a candidate is added to the list only if the corresponding candidate used for redundancy testing does not have the same motion information. Another source of duplicate motion information is the "second PU" associated with partitions other than 2Nx2N. As an example, FIG. 4 shows the second PU for the N×2N and 2N×N cases, respectively. When the current PU is partitioned as N×2N, the candidate at position A 1 is not considered for list construction. In some embodiments, adding this candidate may result in two prediction blocks having the same motion information, which is redundant to having only one PU in a coding block. Similarly, position B 1 is not taken into account when the current PU is divided as 2N×N. In fact, adding this candidate will result in two prediction units having the same motion information, which is redundant to have only one PU in a coding unit. Likewise, position B 1 is not considered when the current PU is divided as 2N×N.

На фиг.2 показан пример позиций пространственных кандидатов слияния.Figure 2 shows an example of the positions of spatial merge candidates.

На фиг.3 показан пример пар кандидатов, подлежащих проверке на избыточность пространственного кандидата слияния.Figure 3 shows an example of candidate pairs to be tested for redundancy of a spatial merge candidate.

На Фиг.4 показан пример позиций для второй PU из разбиений N×2N и 2N×N.Figure 4 shows an example of positions for the second PU from N×2N and 2N×N partitions.

2.1.2.3. Получение временных кандидатов2.1.2.3. Getting temporary candidates

На этом этапе в список добавляется только один кандидат. В частности, при получении этого временного кандидата слияния масштабированный вектор движения получается на основе совмещенной PU, принадлежащей изображению, которое имеет наименьшую разницу POC с текущим изображением в данном списке опорных изображений. Список опорных изображений, который должен использоваться для получения совмещенной PU, явно сигнализируется в заголовке слайса. Получается масштабированный вектор движения для временного кандидата слияния, который проиллюстрирован пунктирной линией на фиг.5 и который масштабируется относительно вектора движения совмещенной PU с использованием расстояний POC, tb и td, где tb определяется как разность POC между опорным изображением текущего изображения и текущего изображения, и td определяется как разность POC между опорным изображением совмещенного изображения и совмещенным изображением. Индекс опорного изображения временного кандидата слияния устанавливается равным нулю. Практическая реализация процесса масштабирования описана в спецификации HEVC. Для B-слайса два вектора движения, один для списка 0 опорных изображений, и другой для списка 1 опорных изображений, получаются и объединяются для выработки кандидата слияния с би-предсказанием.At this stage, only one candidate is added to the list. Specifically, when obtaining this temporary fusion candidate, a scaled motion vector is obtained based on the fused PU belonging to the image that has the smallest POC difference with the current image in the given reference image list. The list of reference pictures that should be used to obtain the combined PU is explicitly signaled in the slice header. A scaled motion vector for the temporary fusion candidate is obtained, which is illustrated by the dashed line in FIG. 5, and which is scaled relative to the motion vector of the fused PU using the POC distances, tb and td, where tb is defined as the difference in POC between the reference image of the current image and the current image, and td is defined as the POC difference between the reference image of the fusion image and the fusion image. The reference image index of the temporary merge candidate is set to zero. The practical implementation of the scaling process is described in the HEVC specification. For a B-slice, two motion vectors, one for reference picture list 0 and the other for reference picture list 1, are obtained and combined to generate a bi-prediction fusion candidate.

На фиг.5 показан пример масштабирования вектора движения для кандидата временного слияния.Figure 5 shows an example of motion vector scaling for a temporal fusion candidate.

В совмещенной PU (Y), принадлежащей к опорному кадру, позиции для временного кандидата выбираются между кандидатами С0 и С1, как показано на фиг.6. Если PU в позиции С0 недоступна, внутренне кодирована или находится за пределами текущей CTU, используется позиция C1. В иных случаях позиция С0 используется при получении временного кандидата слияния.In the combined PU (Y) belonging to the reference frame, positions for the temporary candidate are selected between candidates C 0 and C 1 , as shown in FIG. 6. If the PU at position C0 is not available, is internally encoded, or is outside the current CTU, position C1 is used. In other cases, position C 0 is used when obtaining a temporary merge candidate.

На фиг.6 показан пример позиций кандидатов для временных кандидатов C0 и C1 слияния.FIG. 6 shows an example of candidate positions for temporary merge candidates C0 and C1 .

2.1.2.4. Вставка дополнительных кандидатов2.1.2.4. Inserting Additional Candidates

Помимо пространственно-временных кандидатов слияния существует два дополнительных типа кандидатов слияния: объединенный кандидат слияния с би-предсказанием и нулевой кандидат слияния. Объединенные кандидаты слияния с би-предсказанием вырабатываются с использованием пространственно-временных кандидатов слияния. Объединенный кандидат слияния с двунаправленным предсказанием используется только для B-слайса. Объединенные кандидаты с би-предсказанием вырабатываются путем объединения параметров движения из первого списка опорных изображений одного исходного кандидата с параметрами движения из второго списка опорных изображений другого исходного кандидата. Если эти два кортежа будут предоставлять разные гипотезы движения, они сформируют новый кандидат с би-предсказанием. В качестве примера на фиг.7 показан случай, когда два кандидата в исходном списке (слева), которые имеют mvL0 и refIdxL0 или mvL1 и refIdxL1, используются для создания объединенного кандидата слияния с би-предсказанием, добавленного в окончательный список (справа). Существует множество правил относительно комбинаций, которые рассматриваются для выработки этих дополнительных кандидатов слияния.In addition to spatiotemporal fusion candidates, there are two additional types of fusion candidates: a bi-predictive fusion candidate and a null fusion candidate. Bi-predictive fusion candidates are generated using spatio-temporal fusion candidates. The merged bidirectional prediction merge candidate is used for B-slice only. Merged bi-prediction candidates are generated by combining motion parameters from a first reference picture list of one source candidate with motion parameters from a second reference picture list of another source candidate. If the two tuples provide different motion hypotheses, they will form a new bi-prediction candidate. As an example, FIG. 7 shows a case where two candidates in the original list (left) that have mvL0 and refIdxL0 or mvL1 and refIdxL1 are used to create a combined bi-prediction fusion candidate added to the final list (right). There are many rules regarding the combinations that are considered to generate these additional fusion candidates.

На фиг.7 показан пример объединенного кандидата слияния с би-предсказанием.Figure 7 shows an example of a merged bi-prediction fusion candidate.

Нулевые кандидаты движения вставляются для заполнения оставшихся записей в списке кандидатов слияния и, следовательно, достигают максимальной емкости MaxNumMergeCand. Эти кандидаты имеют нулевое пространственное смещение и индекс опорного изображения, который начинается с нуля и увеличивается каждый раз, когда новый кандидат нулевого движения добавляется в список. Количество опорных кадров, используемых этими кандидатами, равно одному и двум для однонаправленного предсказания (уни-предсказания) и двунаправленного предсказания (би-предсказания), соответственно. Наконец, для этих кандидатов не выполняется проверка на избыточность.Null motion candidates are inserted to fill the remaining entries in the merge candidate list and hence reach the maximum capacity of MaxNumMergeCand. These candidates have a spatial offset of zero and a reference image index that starts at zero and is incremented each time a new zero motion candidate is added to the list. The number of reference frames used by these candidates is one and two for unidirectional prediction (uni-prediction) and bidirectional prediction (bi-prediction), respectively. Finally, no redundancy check is performed on these candidates.

2.1.2.5. Области оценки движения для параллельной обработки2.1.2.5. Motion estimation areas for parallel processing

Чтобы ускорить процесс кодирования, оценка движения может выполняться параллельно, в результате чего векторы движения для всех единиц предсказания внутри заданной области получаются одновременно. Получение кандидатов слияния из пространственного соседства может мешать параллельной обработке, так как одна единица предсказания не может получать параметры движения из соседней PU до тех пор, пока не будет завершена ассоциированная с ней оценка движения. Чтобы смягчить компромисс между эффективностью кодирования и задержкой при обработке, HEVC определяет область оценки движения (MER), размер которой сигнализируется в наборе параметров изображения с использованием синтаксического элемента "log2_parallel_merge_level_minus2". Когда MER определена, кандидаты слияния, попадающие в одну и ту же область, помечаются как недоступные и, следовательно, не рассматриваются при построении списка.To speed up the encoding process, motion estimation can be performed in parallel, resulting in motion vectors for all prediction units within a given region being obtained simultaneously. Receiving fusion candidates from a spatial neighborhood can interfere with parallel processing since one prediction unit cannot obtain motion parameters from a neighboring PU until its associated motion estimation is completed. To mitigate the trade-off between encoding efficiency and processing latency, HEVC defines a motion estimation region (MER), the size of which is signaled in the image parameter set using the "log2_parallel_merge_level_minus2" syntax element. Once the MER is determined, merge candidates that fall in the same region are marked as unavailable and hence are not considered when constructing the list.

2.1.3. AMVP2.1.3. AMVP

В AMVP используется пространственно-временная корреляция вектора движения с соседними PU, которая используется для явной передачи параметров движения. Для каждого списка опорных изображений создается список кандидатов вектора движения путем сначала проверки доступности левых, верхних временных соседних позиций PU, удаления избыточных кандидатов и добавления нулевого вектора, чтобы сделать список кандидатов с постоянной длиной. Затем кодер может выбрать лучший предиктор из списка кандидатов и передать соответствующий индекс, указывающий выбранный кандидат. По аналогии с сигнализацией индекса слияния индекс лучшего кандидата вектора движения кодируется с использованием усеченного унарного кода. Максимальное значение, которое должно быть закодировано в этом случае, равно 2 (смотри фиг.8). В следующих разделах представлены подробности о процессе получения кандидата предсказания вектора движения.AMVP uses spatio-temporal correlation of the motion vector with neighboring PUs, which is used to communicate motion parameters explicitly. For each reference image list, a motion vector candidate list is created by first checking the availability of the left, top temporal neighboring PU positions, removing redundant candidates, and adding a null vector to make a constant-length candidate list. The encoder can then select the best predictor from the list of candidates and pass the corresponding index indicating the selected candidate. Similar to merge index signaling, the index of the best motion vector candidate is encoded using a truncated unary code. The maximum value that must be encoded in this case is 2 (see FIG. 8). The following sections provide details about the process of obtaining a motion vector prediction candidate.

2.1.3.1 Получение кандидатов AMVP2.1.3.1 Receiving AMVP candidates

На фиг.8 обобщенно показан процесс получения кандидата предсказания вектора движения.FIG. 8 summarizes the process of obtaining a motion vector prediction candidate.

При предсказании вектора движения рассматриваются два типа кандидатов вектора движения: пространственный кандидат вектора движения и временный кандидат вектора движения. Для получения кандидатов векторов движения в конечном итоге получаются два кандидата вектора движения на основе векторов движения каждой PU, расположенной в пяти разных позициях, как ранее показано на фиг.2.In motion vector prediction, two types of motion vector candidates are considered: a spatial motion vector candidate and a temporal motion vector candidate. To obtain motion vector candidates, two motion vector candidates are ultimately obtained based on the motion vectors of each PU located at five different positions, as previously shown in Fig. 2.

Для получения временных кандидатов вектора движения один кандидат вектора движения выбирается из двух кандидатов, которые получаются на основе двух разных совмещенных позиций. После составления первого списка пространственно-временных кандидатов удаляются дублированные кандидаты вектора движения в списке. Если число потенциальных кандидатов больше двух, из списка удаляются кандидаты вектора движения, чей индекс опорного изображения в ассоциированном списке опорных изображений больше 1. Если количество пространственно-временных кандидатов вектора движения меньше двух, в список добавляются дополнительные кандидаты нулевого вектора движения.To obtain temporary motion vector candidates, one motion vector candidate is selected from two candidates that are obtained based on two different aligned positions. After the first list of spatiotemporal candidates is compiled, duplicate motion vector candidates in the list are removed. If the number of potential candidates is greater than two, motion vector candidates whose reference picture index in the associated reference picture list is greater than 1 are removed from the list. If the number of spatiotemporal motion vector candidates is less than two, additional zero motion vector candidates are added to the list.

2.1.3.2. Пространственные кандидаты векторов движения2.1.3.2. Spatial candidates of motion vectors

При получении пространственных кандидатов векторов движения рассматривается максимум два кандидата из пяти потенциальных кандидатов, которые получены из PU, расположенных в позициях, как ранее показано на фиг.2, причем эти позиции совпадают с позициями слияния движения. Порядок получения для левой стороны текущей PU определяется как A0, A1, масштабированный A0, масштабированный A1. Порядок получения для указанной выше стороны текущей PU определяется как B0, B1, B2, масштабированный B0, масштабированный B1, масштабированный B2. Таким образом, для каждой стороны существует четыре случая, которые можно использовать в качестве кандидата вектора движения: два случая, когда не требуется использовать пространственное масштабирование, и два случая, когда используется пространственное масштабирование. Четыре различных случая кратко изложены следующим образом:When obtaining spatial motion vector candidates, a maximum of two candidates are considered out of five potential candidates, which are obtained from PUs located at positions as previously shown in FIG. 2, these positions being the same as the motion fusion positions. The acquisition order for the left side of the current PU is defined as A0, A1, scaled A0, scaled A1. The acquisition order for the above side of the current PU is defined as B0, B1, B2, scaled B0, scaled B1, scaled B2. Thus, for each side, there are four cases that can be used as motion vector candidates: two cases where spatial scaling is not required and two cases where spatial scaling is used. The four different cases are summarized as follows:

При отсутствии пространственного масштабированияIn the absence of spatial scaling

(1) Один и тот же список опорных изображений и один и тот же индекс опорных изображений (один и тот же POC)(1) Same reference picture list and same reference picture index (same POC)

(2) Другой список опорных изображений, но одно и то же опорное изображение (такой же POC)(2) Different list of reference pictures, but the same reference picture (same POC)

При наличии пространственного масштабированияIn the presence of spatial scaling

(3) Один и тот же список опорных изображений, но другое опорное изображение (другой POC)(3) Same reference picture list, but different reference picture (different POC)

(4) Другой список опорных изображений, и другое опорное изображение (другой POC)(4) Another reference picture list, and another reference picture (different POC)

Сначала проверяются случаи отсутствия пространственного масштабирования, а затем случаи, которые допускают пространственное масштабирование. Пространственное масштабирование рассматривается тогда, когда POC отличается между опорным изображением соседней PU и опорным изображением текущей PU независимо от списка опорных изображений. Если все PU левых кандидатов недоступны или имеют внутренне кодирование, допускается масштабирование для вышеупомянутого вектора движения, чтобы способствовать параллельному получению левого и верхнего MV-кандидатов. В иных случаях пространственное масштабирование для вышеуказанного вектора движения не допускается.Cases that lack spatial scaling are tested first, followed by cases that allow spatial scaling. Spatial scaling is considered when the POC differs between the reference image of a neighboring PU and the reference image of the current PU, regardless of the list of reference images. If all left candidate PUs are unavailable or internally encoded, scaling is allowed for the above motion vector to facilitate parallel acquisition of left and top candidate MVs. In other cases, spatial scaling for the above motion vector is not allowed.

На фиг.9 показан пример масштабирования вектора движения для пространственного кандидата вектора движения.FIG. 9 shows an example of motion vector scaling for a spatial motion vector candidate.

В процессе пространственного масштабирования вектор движения соседней PU масштабируется таким же образом, как и при временном масштабировании, как показано на фиг.9. Одно отличие состоит в том, что список опорных изображений и индекс текущей PU задаются как входные данные, при этом фактический процесс масштабирования является таким же, как и при временном масштабировании.In the spatial scaling process, the motion vector of the neighboring PU is scaled in the same way as in temporal scaling, as shown in Fig. 9 . One difference is that the list of reference images and the index of the current PU are given as input, and the actual scaling process is the same as in temporal scaling.

2.1.3.3. Временные кандидаты векторов движения2.1.3.3. Temporary Motion Vector Candidates

Кроме опорного изображения индекса получения все процессы для получения временных кандидатов слияния являются такими же, как для получения пространственных кандидатов векторов движения (смотри фиг.6). Индекс опорного изображения сигнализируется в декодер.Apart from the acquisition index reference image, all processes for obtaining temporal fusion candidates are the same as for obtaining spatial motion vector candidates (see FIG. 6). The reference picture index is signaled to the decoder.

2.2. Новые способы внешнего предсказания в JEM2.2. New ways of external prediction in JEM

2.2.1. Предсказание вектора движения на основе под-CU2.2.1. Sub-CU Based Motion Vector Prediction

В JEM при использовании QTBT каждая CU может иметь не более одного набора параметров движения для каждого направления предсказания. Два способа предсказания вектора движения на уровне под-CU рассматриваются в кодере посредством разбиения большой CU на под-CU и получения информации о движении для всех под-CU большой CU. Способ предсказания альтернативных временных векторов движения (ATMVP) позволяет каждой CU извлекать многочисленные наборы информации о движении из многочисленных блоков меньшего размера, чем текущая CU в совмещенном опорном изображении. В способе предсказания пространственно-временных векторов движения (STMVP) векторы движения под-CU получаются рекурсивно с использованием предиктора временного вектора движения и соседнего вектора движения. In JEM, when using QTBT, each CU can have at most one set of motion parameters for each prediction direction. Two methods of motion vector prediction at the sub-CU level are considered in the encoder by dividing the large CU into sub-CUs and obtaining motion information for all sub-CUs of the large CU. The Alternate Temporal Motion Vector Prediction (ATMVP) method allows each CU to extract multiple sets of motion information from multiple blocks smaller than the current CU in a co-located reference picture. In the spatio-temporal motion vector prediction (STMVP) method, sub-CU motion vectors are obtained recursively using a temporal motion vector predictor and a neighboring motion vector.

Чтобы сохранить более точное поле движения для предсказания движения под-CU, можно отключить сжатие движения для опорных кадров.To maintain a more accurate motion field for sub-CU motion prediction, you can disable motion compression for reference frames.

На фиг.10 показан пример предсказания движения ATMVP для CU.FIG. 10 shows an example of ATMVP motion prediction for a CU.

2.2.1.1. Альтернативное предсказание временного вектора движения2.2.1.1. Alternative prediction of temporal motion vector

В способе альтернативного временного предсказания вектора движения (ATMVP) предсказание временного вектора движения (TMVP) векторов движения модифицируется путем извлечения многочисленных наборов информации о движении (включая векторы движения и опорные индексы) из блоков, меньших по размеру, чем текущая CU. Под-CU представляют собой квадратные блоки размером N×N (по умолчанию для N установлено значение 4).In the alternative temporal motion vector prediction (ATMVP) method, the temporal motion vector prediction (TMVP) of motion vectors is modified by extracting multiple sets of motion information (including motion vectors and reference indices) from blocks smaller in size than the current CU. Sub-CUs are N×N square blocks (N is set to 4 by default).

ATMVP предсказывает векторы движения под-CU в CU в два этапа. На первом этапе идентифицируется соответствующий блок в опорном кадре с помощью так называемого временного вектора. Опорное изображение называется изображением источника движения. На втором этапе разделяется текущая CU на под-CU, и получаются векторы движения, а также опорные индексы каждой под-CU из блока, соответствующего каждой под-CU.ATMVP predicts sub-CU motion vectors in CUs in two steps. In the first step, the corresponding block in the reference frame is identified using a so-called time vector. The reference image is called the motion source image. The second step divides the current CU into sub-CUs and obtains the motion vectors as well as the reference indices of each sub-CU from the block corresponding to each sub-CU.

На первом этапе опорное изображение и соответствующий блок определяются с помощью информации о движении пространственных соседних блоков текущей CU. Во избежание процесса повторного сканирования соседних блоков, используется первый кандидат слияния в списке кандидатов слияния текущей CU. Первый доступный вектор движения, а также ассоциированный с ним опорный индекс устанавливается на временной вектор, а индекс устанавливается на изображение источника движения. Таким образом, в ATMVP соответствующий блок может быть более точно идентифицирован по сравнению с TMVP, где соответствующий блок (иногда называемый совмещенным блоком) всегда находится в нижней правой или центральной позиции по отношению к текущей CU.In the first stage, the reference image and the corresponding block are determined using the motion information of the spatial neighboring blocks of the current CU. To avoid the process of rescanning neighboring blocks, the first merge candidate in the current CU's merge candidate list is used. The first available motion vector, as well as its associated reference index, is set to the time vector, and the index is set to the motion source image. Thus, in ATMVP, the corresponding block can be more accurately identified compared to TMVP, where the corresponding block (sometimes called a co-located block) is always in the lower right or center position with respect to the current CU.

На втором этапе соответствующий блок под-CU идентифицируется с помощью временного вектора в изображении источника движения путем добавления к координате текущей CU временного вектора. Для каждой под-CU информация о движении ее соответствующего блока (наименьшая сетка движения, которая охватывает центральную выборку) используется для получения информации о движении для под-CU. После того, как информация о движении соответствующего блока N×N идентифицирована, она преобразуется в векторы движения и опорные индексы текущей под-CU таким же образом, как TMVP в HEVC, при этом применяются масштабирование движения и другие процедуры. Например, декодер проверяет, выполняется ли условие малой задержки (то есть меньше ли значения POC всех опорных изображений текущего изображения, чем значения РОС текущего изображения) и, возможно, использует вектор движения MVx (вектор движения, соответствующий списку X опорных изображений) для предсказания вектора MVy движения (при X, равном 0 или 1, и Y, равном 1-X) для каждой под-CU.In the second step, the corresponding sub-CU is identified with a time vector in the motion source image by adding the time vector to the coordinate of the current CU. For each sub-CU, the motion information of its corresponding block (the smallest motion grid that spans the center sample) is used to obtain the motion information for the sub-CU. Once the motion information of the corresponding N×N block is identified, it is converted into motion vectors and reference indices of the current sub-CU in the same way as TMVP in HEVC, and motion scaling and other procedures are applied. For example, the decoder checks whether a low latency condition is satisfied (that is, whether the POC values of all reference pictures of the current picture are less than the POC values of the current picture) and optionally uses a motion vector MV x (a motion vector corresponding to a list of X reference pictures) to make a prediction motion vector MV y (with X equal to 0 or 1 and Y equal to 1-X) for each sub-CU.

2.2.1.2. Пространственно-временное предсказание вектора движения (STMVP)2.2.1.2. Spatio-temporal motion vector prediction (STMVP)

В этом способе векторы движения под-CU получаются рекурсивно, следуя порядку сканирования растра. Фиг.11 иллюстрирует эту концепцию. Рассмотрим CU размером 8×8, которая содержит четыре под-CU A, B, C и D размером 4×4. Соседние блоки размером 4×4 в текущем кадре помечены как a, b, c и d.In this method, the sub-CU motion vectors are obtained recursively by following the raster scanning order. Figure 11 illustrates this concept. Consider a CU of size 8x8 that contains four sub-CUs A, B, C and D of size 4x4. Adjacent 4x4 blocks in the current frame are labeled a, b, c, and d.

Получение движения для под-CU A начинается с идентификации двух его пространственных соседей. Первый сосед представляет собой блок размером N×N над под-CU A (блок c). Если этот блок c недоступен или внутренне кодирован, проверяются другие блоки N×N над под-CU A (слева направо, начиная с блока c). Второй сосед представляет собой блок слева от под-CU A (блок b). Если блок b недоступен или внутренне кодирован, проверяются другие блоки слева от под-CU A (сверху вниз, начиная с блока b). Информация о движении, полученная из соседних блоков для каждого списка, масштабируется в соответствии с первым опорным кадром для данного списка. Затем предиктор временного вектора движения (TMVP) подблока A получается, следуя той же процедуре получения TMVP, как определено в HEVC. Информация о движении совмещенного блока в местоположении D извлекается и масштабируется, соответственно. Наконец, после извлечения и масштабирования информации о движении все доступные векторы движения (до 3) усредняются отдельно для каждого списка опорных изображений. Усредненный вектор движения назначается как вектор движения текущей под-CU.Retrieving motion for sub-CU A begins with identifying its two spatial neighbors. The first neighbor is an N×N block above the sub-CU A (block c). If this block c is not available or internally encoded, other N×N blocks above sub-CU A are checked (from left to right, starting from block c). The second neighbor is the block to the left of sub-CU A (block b). If block b is not available or internally encoded, other blocks to the left of sub-CU A are checked (from top to bottom, starting with block b). The motion information obtained from neighboring blocks for each list is scaled according to the first reference frame for that list. The temporal motion vector predictor (TMVP) of subblock A is then obtained by following the same TMVP derivation procedure as defined in HEVC. The motion information of the aligned block at location D is extracted and scaled accordingly. Finally, after motion information is extracted and scaled, all available motion vectors (up to 3) are averaged separately for each reference image list. The averaged motion vector is assigned as the motion vector of the current sub-CU.

2.2.1.3. Сигнализация режима предсказания движения под-CU2.2.1.3. Sub-CU motion prediction mode signaling

Режимы под-CU активированы как дополнительные кандидаты слияния, и дополнительный элемент синтаксиса не требуется для сигнализации режимов. Два дополнительных кандидата слияния добавляются в список кандидатов слияния каждой CU, чтобы представить режим ATMVP и режим STMVP. Если набор параметров последовательности указывает, что ATMVP и STMVP включены, то используются до семи кандидатов слияния. Логика кодирования дополнительных кандидатов слияния является такой же, как и для кандидатов слияния в HM, что означает, что для каждой CU в P или B слайсе требуются еще две проверки RD для двух дополнительных кандидатов слияния.The sub-CU modes are activated as additional merge candidates, and no additional syntax element is required to signal the modes. Two additional merge candidates are added to each CU's merge candidate list to represent the ATMVP mode and the STMVP mode. If the sequence parameter set specifies that ATMVP and STMVP are enabled, then up to seven merge candidates are used. The logic for encoding additional merge candidates is the same as for merge candidates in HM, which means that for each CU in a P or B slice, two more RD checks are required for two additional merge candidates.

В JEM все бины индекса слияния представляют собой контекст, кодированный с помощью CABAC. В HEVC только первый бин кодируется контекстно, а остальные бины кодируются в обход контекста.In JEM, all merge index bins represent CABAC encoded context. In HEVC, only the first bin is context-encoded, and the remaining bins are context-bypassed.

2.2.2. Адаптивное разрешение разности векторов движения2.2.2. Adaptive Motion Vector Difference Resolution

В HEVC разности векторов движения (MVD) (между вектором движения и предсказываемым вектором движения PU) передаются в единицах в одну четверть выборки яркости, когда use_integer_mv_flag равен 0 в заголовке слайса. В JEM вводится локально адаптивное разрешение вектора движения (LAMVR). В JEM MVD может быть закодировано в единицах в одну четверть выборки яркости, целочисленные выборки яркости или четыре выборки яркости. Управление разрешением MVD осуществляется на уровне единицы кодирования (CU), и флаги разрешения MVD условно сигнализируются для каждой CU, которая имеет по меньшей мере один ненулевой компонент MVD.In HEVC, motion vector differences (MVD) (between the motion vector and the PU's predicted motion vector) are transmitted in units of one-quarter luminance sample when use_integer_mv_flag is 0 in the slice header. JEM introduces locally adaptive motion vector resolution (LAMVR). In JEM, MVD can be encoded in units of one-quarter luminance samples, integer luminance samples, or four luminance samples. MVD resolution control is performed at the coding unit (CU) level, and MVD resolution flags are conditionally signaled for each CU that has at least one non-zero MVD component.

Для CU, которая имеет по меньшей мере один ненулевой компонент MVD, первый флаг сигнализируется для того, чтобы указать, используется ли точность MV в одну четверть выборки яркости в CU. Когда первый флаг (равный 1) указывает, что точность MV в одну четверть выборки яркости не используется, сигнализируется другой флаг, чтобы указать, используется ли точность MV в целочисленные выборки яркости или точность MV в четыре выборки яркости.For a CU that has at least one non-zero MVD component, the first flag is signaled to indicate whether the MV precision of one-quarter luminance sampling is used in the CU. When the first flag (equal to 1) indicates that the MV precision of one quarter luminance sample is not used, another flag is signaled to indicate whether the MV precision of integer luminance samples or the MV precision of four luminance samples is used.

Когда первый флаг разрешения MVD CU равен нулю или не кодирован для CU (что означает, что все MVD в CU равны нулю), для CU используется разрешение MV в одну четверть яркости. Когда CU использует точность MV целочисленной выборки яркости или точность MV четырех выборок яркости, MVP в списке кандидатов AMVP для CU округляются до соответствующей точности.When the first MVD resolution flag of a CU is zero or not encoded for the CU (meaning all MVDs in the CU are zero), the MV resolution of one quarter brightness is used for the CU. When the CU uses the MV precision of an integer luma sample or the MV precision of four luma samples, the MVPs in the AMVP candidate list for the CU are rounded to the corresponding precision.

В кодере проверки RD на уровне CU используются для определения того, какое разрешение MVD должно использоваться для CU. То есть проверка RD на уровне CU выполняется три раза для каждого разрешения MVD. Для увеличения скорости кодера в JEM применяются следующие схемы кодирования.In the encoder, CU-level RD checks are used to determine which MVD resolution should be used for the CU. That is, the CU-level RD check is performed three times for each MVD resolution. To increase encoder speed, JEM uses the following encoding schemes.

Во время проверки RD CU с нормальным разрешением MVD в одну четверть яркости сохраняется информация о движении текущей CU (точность целочисленной выборки яркости). Сохраненная информация о движении (после округления) используется в качестве начальной точки для дальнейшего уточнения вектора движения с малым диапазоном во время проверки RD для одной и той же CU с целочисленной выборкой яркости и разрешением MVD с 4 выборками яркости, поэтому трудоемкий процесс оценки движения не дублируется три раза.During the RD CU test with normal MVD resolution of one quarter luminance, motion information of the current CU (integer luminance sampling precision) is stored. The stored motion information (after rounding) is used as a starting point for further low-range motion vector refinement during RD inspection for the same CU with integer luminance sampling and MVD resolution with 4 luminance samples, so the time-consuming motion estimation process is not duplicated three times.

Проверка RD блока CU с разрешением MVD с 4 выборками яркости вызывается условно. Для CU, когда разрешение MVD целочисленной выборки яркости с издержками RD намного больше, чем разрешение MVD в одну четверть выборки яркости, проверка RD разрешения MVD 4-х выборок яркости для CU пропускается.The RD check of a CU with MVD resolution with 4 brightness samples is called conditionally. For a CU, when the MVD resolution of an integer luminance sample with RD overhead is much larger than the MVD resolution of one-quarter luminance sample, the RD check of the MVD resolution of 4 luminance samples for the CU is skipped.

Процесс кодирования показан на фиг.12. Сначала тестируется MV 1/4 pel, издержки RD вычисляются и обозначаются как RDCost0, затем проверяется целочисленный MV, и издержки RD обозначаются как RDCost1. Если RDCost1 < th * RDCost0 (где th – положительная величина), то проверяется MV 4-pel; в противном случае MV 4-pel пропускается. В принципе, информация о движении, издержки RD и т.д. уже известны для MV 1/4 pel при проверке целочисленного MV или MV 4-pel, которые можно повторно использовать для ускорения процесса кодирования целочисленного MV или MV 4 pel.The encoding process is shown in Fig. 12. First, the 1/4 pel MV is tested, the RD cost is calculated and denoted as RDCost0, then the integer MV is tested, and the RD cost is denoted as RDCost1. If RDCost1 < th * RDCost0 (where th is a positive value), then MV 4-pel is checked; otherwise MV 4-pel is skipped. Basically, traffic information, RD costs, etc. are already known for MV 1/4 pel when checking integer MV or MV 4-pel, which can be reused to speed up the encoding process of integer MV or MV 4 pel.

2.2.3. Режим треугольного предсказания2.2.3. Triangle Prediction Mode

Концепция режима треугольного предсказания (TPM) состоит во введении нового треугольного разбиения для предсказания с компенсацией движения. Как показано на фиг.13, он разбивает CU на две треугольные единицы предсказания, в диагональном или обратном диагональном направлении. Каждый модуль предсказания треугольной формы в CU интерпредсказывается с использованием своего собственного вектора движения уни-предсказания и индекса опорного кадра, которые получаются из списка кандидатов уни-предсказания. Процесс адаптивного взвешивания выполняется по отношению к диагональному краю после предсказания единиц треугольного предсказания. Затем процесс преобразования и квантования применяется ко всей CU. Следует отметить, что этот режим применяется только к режимам пропуска и слияния.The concept of Triangular Prediction Mode (TPM) is to introduce a new triangular partition for motion compensated prediction. As shown in FIG. 13, it splits the CU into two triangular prediction units, in the diagonal or reverse diagonal direction. Each triangular shape prediction module in the CU is interpredicted using its own uni-prediction motion vector and reference frame index, which are obtained from the uni-prediction candidate list. The adaptive weighting process is performed with respect to the diagonal edge after predicting the triangular prediction units. The conversion and quantization process is then applied to the entire CU. It should be noted that this mode only applies to skip and merge modes.

2.2.3.1 Список кандидатов уни-предсказания для TPM2.2.3.1 List of uni-prediction candidates for TPM

Список кандидатов уни-предсказания состоит из пяти кандидатов векторов движения уни-предсказания. Он получен из семи соседних блоков, включая пять пространственных соседних блоков (1-5) и два временных совмещенных блока (6-7), как показано на фиг.14. Векторы движения семи соседних блоков собираются и помещаются в список кандидатов уни-предсказания в соответствии с порядком векторов движения уни-предсказания, вектора движения L0 векторов движения с би-предсказанием, вектора движения L1 векторов движения с би-предсказанием и усредненного вектора движения векторов движения L0 и L1 векторов движения би-предсказания. Если количество кандидатов меньше пяти, в список добавляется нулевой вектор движения.The uni-prediction candidate list consists of five uni-prediction motion vector candidates. It is derived from seven adjacent blocks, including five spatial adjacent blocks (1-5) and two temporal adjacent blocks (6-7), as shown in FIG. 14. The motion vectors of seven neighboring blocks are collected and placed into a uni-prediction candidate list according to the order of the uni-prediction motion vectors, the L0 motion vector of the bi-prediction motion vectors, the L1 motion vector of the bi-prediction motion vectors, and the average motion vector of the L0 motion vectors. and L1 bi-prediction motion vectors. If the number of candidates is less than five, a zero motion vector is added to the list.

Более конкретно, ниже приведены следующие этапы:More specifically, the following are the steps:

Получить кандидаты движения из A1, B1, B0, A0, B2, Col и Col2 (соответствующих блоку 1-7 на фиг.14) без каких-либо операций усечения.Obtain motion candidates from A1, B1, B0, A0, B2, Col and Col2 (corresponding to block 1-7 in Fig. 14) without any truncation operations.

Установить переменную numCurrMergeCand = 0Set variable numCurrMergeCand = 0

Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой уни-предсказание (либо из списка 0, либо из списка 1), он добавляется в список слияния с numCurrMergeCand, увеличенным на 1. Такие добавленные кандидаты движения называются "первоначально уни-предсказанными кандидатами".For each motion candidate derived from A1, B1, B0, A0, B2, Col, and Col2, and numCurrMergeCand is less than 5, if the motion candidate is a uni-prediction (either from list 0 or list 1), it is added to the list merging with numCurrMergeCand increased by 1. Such added motion candidates are called "originally uni-predicted candidates".

Применяется полное усечение.Full truncation is applied.

Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой би-предсказание, информация о движении из списка 0 добавляется в список слияния (то есть, изменяется на уни-предсказание из списка 0), и numCurrMergeCand увеличивается на 1. Такие добавленные кандидаты движения называются "предсказанным кандидатом из усеченного списка 0".For each motion candidate derived from A1, B1, B0, A0, B2, Col, and Col2, and numCurrMergeCand is less than 5, if the motion candidate is a bi-prediction, the motion information from list 0 is added to the merge list (i.e., modified by uni-prediction from list 0), and numCurrMergeCand is incremented by 1. Such added motion candidates are called "predicted candidate from truncated list 0".

Применяется полное усечение.Full truncation is applied.

Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой би-предсказание, информация о движении из списка 1 добавляется в список слияния (то есть, изменяется на уни-предсказание из списка 1), и numCurrMergeCand увеличивается на 1. Такие добавленные кандидаты движения называются "предсказанным кандидатом из усеченного списка 1".For each motion candidate derived from A1, B1, B0, A0, B2, Col, and Col2, and numCurrMergeCand is less than 5, if the motion candidate is a bi-prediction, the motion information from list 1 is added to the merge list (i.e., modified by uni-prediction from list 1), and numCurrMergeCand is incremented by 1. Such added motion candidates are called "predicted candidate from truncated list 1".

Применяется полное усечение.Full truncation is applied.

Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой би-предсказание,For each motion candidate derived from A1, B1, B0, A0, B2, Col and Col2, and numCurrMergeCand is less than 5, if the motion candidate is a bi-prediction,

Если слайс QP опорного изображения из списка 0 меньше слайса QP опорного изображения из списка 1, информация о движении из списка 1 сначала масштабируется до списка 0 опорного изображения, и среднее значение двух MV (одно получается из первоначального списка 0, а другое представляет собой масштабированный MV из списка 1) добавляется в список слияния, который является усредненным уни-предсказанием из кандидата движения из списка 0 и numCurrMergeCand, увеличенного на 1.If the QP slice of the reference picture from list 0 is smaller than the QP slice of the reference picture from list 1, the motion information from list 1 is first scaled to the reference picture list 0, and the average of the two MVs (one is obtained from the original list 0 and the other is the scaled MV from list 1) is added to the merge list, which is the average of the uni-prediction from the motion candidate from list 0 and numCurrMergeCand increased by 1.

В противном случае информация о движении из списка 0 сначала масштабируется до опорного изображения из списка 1, и среднее значение двух MV (одно получается из исходного списка 1, и другое представляет собой масштабированный MV из списка 0) добавляется в список слияния, который является усредненным уни-предсказанием из кандидата движения из списка 1, и numCurrMergeCand, увеличенного на 1.Otherwise, the motion information from list 0 is first scaled to the reference image from list 1, and the average of the two MVs (one is obtained from the original list 1, and the other is the scaled MV from list 0) is added to the merge list, which is the averaged uni -prediction from a motion candidate from list 1, and numCurrMergeCand increased by 1.

Применяется полное усечение.Full truncation is applied.

Если numCurrMergeCand меньше 5, добавляются кандидаты нулевого вектора движения.If numCurrMergeCand is less than 5, zero motion vector candidates are added.

2.2.3.2. Процесс адаптивного взвешивания2.2.3.2. Adaptive Weighing Process

После предсказания каждой треугольной единицы предсказания процесс адаптивного взвешивания применяется к диагональному краю между двумя единицами треугольного предсказания, чтобы получить окончательное предсказание для всей CU. Две группы весовых коэффициентов определяются следующим образом:After predicting each triangular prediction unit, an adaptive weighting process is applied to the diagonal edge between two triangular prediction units to obtain the final prediction for the entire CU. The two groups of weighting coefficients are defined as follows:

1-я группа весовых коэффициентов: {7/8, 6/8, 4/8, 2/8, 1/8} и {7/8, 4/8, 1/8} используется для выборок яркости и цветности, соответственно;1st group of weighting coefficients: {7/8, 6/8, 4/8, 2/8, 1/8} and {7/8, 4/8, 1/8} are used for luma and chrominance samples, respectively ;

2-я группа весовых коэффициентов: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} и {6/8, 4/8, 2/8 } используется для выборок яркости и цветности, соответственно.2nd group of weighting coefficients: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} and {6/8, 4/8, 2/8} used for luma and chrominance samples, respectively.

Группа весовых коэффициентов выбирается на основе сравнения векторов движения двух блоков треугольного предсказания. 2-ая группа весовых коэффициентов используется тогда, когда опорные изображения двух блоков треугольного предсказания отличаются друг от друга, или их разность векторов движения превышает 16 пикселей. В противном случае используется первая группа весовых коэффициентов. Пример показан на фиг.15.A group of weighting coefficients is selected based on a comparison of the motion vectors of two triangular prediction blocks. The 2nd group of weight coefficients is used when the reference images of two triangular prediction blocks are different from each other, or their motion vector difference exceeds 16 pixels. Otherwise, the first group of weighting coefficients is used. An example is shown in Fig. 15.

2.2.3.3. Хранение вектора движения2.2.3.3. Motion vector storage

Векторы движения (Mv1 и Mv2 на фиг.16) блоков треугольного предсказания хранятся в сетках 4×4. Для каждой сетки 4×4 сохраняется вектор движения либо с уни-предсказанием, либо с би-предсказанием, в зависимости от позиции сетки 4×4 в CU. Как показано на фиг.16, вектор движения с уни-предсказанием, Mv1 или Mv2, сохраняется для сетки 4×4, расположенной в невзвешенной области (то есть не на диагональном крае). С другой стороны, вектор движения с би-предсказанием сохраняется для сетки 4×4, расположенной во взвешенной области. Вектор движения с двунаправленным предсказанием получается из Mv1 и Mv2 в соответствии со следующими правилами:The motion vectors (Mv1 and Mv2 in FIG. 16) of the triangular prediction blocks are stored in 4x4 grids. For each 4x4 grid, a motion vector is stored with either uni-prediction or bi-prediction, depending on the position of the 4x4 grid in the CU. As shown in FIG. 16, the uni-prediction motion vector, Mv1 or Mv2, is stored for a 4x4 grid located in the unweighted region (ie, not on the diagonal edge). On the other hand, the bi-predictive motion vector is stored for a 4x4 grid located in the weighted region. The bidirectional predicted motion vector is obtained from Mv1 and Mv2 according to the following rules:

В случае, когда Mv1 и Mv2 имеют вектор движения с разных направлений (L0 или L1), Mv1 и Mv2 просто объединяются для образования вектора движения с би-предсказанием.In the case where Mv1 and Mv2 have a motion vector from different directions (L0 or L1), Mv1 and Mv2 are simply combined to form a bi-predictive motion vector.

В случае, когда как Mv1, так и Mv2 исходят из одного направления L0 (или L1),In the case where both Mv1 and Mv2 originate from the same direction L0 (or L1),

Если опорное изображение Mv2 является таким же, как изображение в списке L1 (или L0) опорных изображений, Mv2 масштабируется до изображения Mv1. Mv1 и масштабированный Mv2 объединяются для образования вектора движения с би-предсказанием.If the reference picture Mv2 is the same as the picture in the reference picture list L1 (or L0), Mv2 is scaled to the picture Mv1. Mv1 and scaled Mv2 are combined to form a bi-predictive motion vector.

Если опорное изображение Mv1 является таким же, как изображение в списке L1 (или L0) опорных изображений, Mv1 масштабируется до изображения Mv2. Масштабированное Mv1 и Mv2 объединяются для образования вектора движения с би-предсказанием.If the reference picture Mv1 is the same as the picture in the reference picture list L1 (or L0), Mv1 is scaled to the picture Mv2. The scaled Mv1 and Mv2 are combined to form a bi-predictive motion vector.

В противном случае для взвешенной области сохраняется только Mv1.Otherwise, only Mv1 is stored for the weighted region.

2.2.3.4. Сигнализация режима треугольного предсказания (TPM)2.2.3.4. Triangle Prediction Mode (TPM) signaling

Сначала может быть просигнализирован однобитовый флаг для указания того, используется ли TPM. После этого дополнительно сигнализируются указания двух шаблонов разбиения (как показано на фиг.13) и выбранные индексы слияния для каждого из двух разбиений.First, a one-bit flag may be signaled to indicate whether the TPM is in use. Thereafter, the indications of the two partition patterns (as shown in FIG. 13) and the selected merge indices for each of the two partitions are further signaled.

2.2.3.4.1 Сигнализация флага TPM2.2.3.4.1 TPM flag signaling

Обозначим ширину и высоту одного блока яркости W и H, соответственно. Если W*H < 64, режим треугольного предсказания отключен.Let's denote the width and height of one brightness block by W and H, respectively. If W*H < 64, triangular prediction mode is disabled.

Когда один блок кодируется в аффинном режиме, режим треугольного предсказания также отключается. When one block is encoded in affine mode, the triangular prediction mode is also disabled.

Когда один блок кодируется в режиме слияния, однобитовый флаг может сигнализироваться для указания того, включен или отключен режим треугольного предсказания для блока.When one block is encoded in merge mode, a one-bit flag may be signaled to indicate whether triangular prediction mode is enabled or disabled for the block.

Флаг кодируется с 3 контекстами на основе следующего уравнения:The flag is encoded with 3 contexts based on the following equation:

Индекс Ctx = ((доступный левый блок L && L кодируется с помощью TPM?) 1: 0)Index Ctx = ((available left block L && L encoded with TPM?) 1:0)

+ ((доступный вышеуказанный блок A && A кодируется с помощью TPM?) 1: 0);+((available above block A && A is encoded with TPM?) 1:0);

2.2.3.4.2. Сигнализация указания двух шаблонов разбиения (как показано на фиг.13) и выбранных индексов слияния для каждого из двух разбиений2.2.3.4.2. Signaling the indication of two partition patterns (as shown in FIG. 13) and selected merge indices for each of the two partitions

Следует отметить, что шаблоны разбиения, индексы слияния двух разбиений кодируются совместно. Ограничением является то, что два разбиения не могут использовать один и тот же опорный индекс. Таким образом, существует 2 (шаблона разбиения) * N (максимальное количество кандидатов слияния) * (N-1) возможных вариантов, где N установлено равным 5. Кодируется одно указание, выполняется отображение между типами разбиения, и два индекса слияния получаются из массива, определенного ниже:It should be noted that the partition patterns, merging indices of two partitions are encoded together. The limitation is that two partitions cannot use the same reference index. So there are 2 (partition patterns) * N (maximum number of merge candidates) * (N-1) possible options, where N is set to 5. One hint is encoded, a mapping is performed between partition types, and two merge indices are obtained from the array. defined below:

const uint8_t g_TriangleCombination [TRIANGLE_MAX_NUM_CANDS] [3] = {const uint8_t g_TriangleCombination [TRIANGLE_MAX_NUM_CANDS] [3] = {

{0, 1, 0}, {1, 0, 1}, {1, 0, 2}, {0, 0, 1}, {0, 2, 0},{0, 1, 0}, {1, 0, 1}, {1, 0, 2}, {0, 0, 1}, {0, 2, 0},

{1, 0, 3}, {1, 0, 4}, {1, 1, 0}, {0, 3, 0}, {0, 4, 0},{1, 0, 3}, {1, 0, 4}, {1, 1, 0}, {0, 3, 0}, {0, 4, 0},

{0, 0, 2}, {0, 1, 2}, {1, 1, 2}, {0, 0, 4}, {0, 0, 3},{0, 0, 2}, {0, 1, 2}, {1, 1, 2}, {0, 0, 4}, {0, 0, 3},

{0, 1, 3}, {0, 1, 4}, {1, 1, 4}, {1, 1, 3}, {1, 2, 1},{0, 1, 3}, {0, 1, 4}, {1, 1, 4}, {1, 1, 3}, {1, 2, 1},

{1, 2, 0}, {0, 2, 1}, {0, 4, 3}, {1, 3, 0}, {1, 3, 2},{1, 2, 0}, {0, 2, 1}, {0, 4, 3}, {1, 3, 0}, {1, 3, 2},

{1, 3, 4}, {1, 4, 0}, {1, 3, 1}, {1, 2, 3}, {1, 4, 1},{1, 3, 4}, {1, 4, 0}, {1, 3, 1}, {1, 2, 3}, {1, 4, 1},

{0, 4, 1}, {0, 2, 3}, {1, 4, 2}, {0, 3, 2}, {1, 4, 3},{0, 4, 1}, {0, 2, 3}, {1, 4, 2}, {0, 3, 2}, {1, 4, 3},

{0, 3, 1}, {0, 2, 4}, {1, 2, 4}, {0, 4, 2}, {0, 3, 4}};{0, 3, 1}, {0, 2, 4}, {1, 2, 4}, {0, 4, 2}, {0, 3, 4}};

Тип разбиения (45 градусов или 135 градусов) = g_TriangleCombination[просигнализированное указание][0];Split type (45 degrees or 135 degrees) = g_TriangleCombination[signaled hint][0];

Индекс слияния кандидата A = g_TriangleCombination[просигнализированное указание][1];Candidate A merge index = g_TriangleCombination[signaled hint][1];

Индекс слияния кандидата B = g_TriangleCombination[просигнализированное указание][2].Candidate B merge index = g_TriangleCombination[signaled hint][2].

Как только получены два кандидата A и B движения, информация о движении двух разбиений (PU1 и PU2) может быть установлена либо из A, либо из B. То, использует ли PU1 информацию о движении кандидата слияния A или B, зависит от направлений предсказания двух кандидатов движения. В таблице 1 представлены соотношения между двумя полученными кандидатами A и B движения при двух разбиениях.Once two motion candidates A and B are received, the motion information of the two partitions (PU1 and PU2) can be established from either A or B. Whether PU1 uses the motion information of merge candidate A or B depends on the prediction directions of the two candidates of the movement. Table 1 presents the relationships between the two obtained motion candidates A and B for two partitions.

Таблица 1. Получение информации о движении при разбиении от полученных двух кандидатов слияния (A, B)Table 1. Obtaining motion information during partitioning from the resulting two merge candidates (A, B)

Предсказываемое направление APredicted direction A Предсказываемое направление BPredicted direction B Информация о движении PU1PU1 traffic information Информация о движении PU2Traffic information PU2 L0L0 L0L0 A (L0)A (L0) B (L0)B (L0) L1L1 L1L1 B (L1)B (L1) A (L1)A (L1) L0L0 L1L1 A (L0)A (L0) B (L1)B (L1) L1L1 L0L0 B (L0)B (L0) A (L1)A (L1)

2.2.3.4.3. Энтропийное кодирование указания (обозначенного merge_triangle_idx)2.2.3.4.3. Entropy encoding of an indication (denoted merge_triangle_idx)

merge_triangle_idx находится в диапазоне [0, 39] включительно. Экспоненциальный код Голомба (EG) K-го порядка используется для бинаризации merge_triangle_idx, когда K установлен в 1.merge_triangle_idx is in the range [0, 39] inclusive. A K-th order exponential Golomb (EG) code is used to binarize merge_triangle_idx when K is set to 1.

EG k-ого порядка EG kth order

Чтобы кодировать большие числа меньшим количеством битов (за счет использования большего количества битов для кодирования меньших чисел), это можно обобщить, используя неотрицательный целочисленный параметр k. Чтобы кодировать неотрицательное целое число x в экспоненциальном коде Голомба k-ого порядка:To encode larger numbers with fewer bits (at the expense of using more bits to encode smaller numbers), this can be generalized by using a non-negative integer parameter k. To encode a non-negative integer x in the kth order exponential Golomb code:

кодировать с использованием экспоненциального кода Голомба 0-ого порядка, описанного выше, затемencode using the 0th order exponential Golomb code described above, then

кодировать x mod 2k в двоичном формате encode x mod 2 k in binary

Таблица 2: Примеры кодирования с использованием экспоненциального кода Голомба k-ого порядкаTable 2: Examples of coding using k-th order exponential Golomb code

xx k=0k=0 k=1k=1 k=2k=2 xx k=0k=0 k=1k=1 k=2k=2 00 11 1010 100100 1010 00010110001011 001100001100 0111001110 11 010010 11eleven 101101 11eleven 00011000001100 001101001101 0111101111 22 011011 01000100 110110 1212 00011010001101 001110001110 00100000010000 33 0010000100 01010101 111111 1313 00011100001110 001111001111 00100010010001 44 0010100101 01100110 0100001000 1414 00011110001111 0001000000010000 00100100010010 55 0011000110 01110111 0100101001 1515 000010000000010000 0001000100010001 00100110010011 66 0011100111 001000001000 0101001010 1616 000010001000010001 0001001000010010 00101000010100 77 00010000001000 001001001001 0101101011 1717 000010010000010010 0001001100010011 00101010010101 88 00010010001001 001010001010 0110001100 1818 000010011000010011 0001010000010100 00101100010110 99 00010100001010 001011001011 0110101101 1919 000010100000010100 0001010100010101 00101110010111

2.2.4. Компенсация движения перекрывающихся блоков2.2.4. Compensating for motion of overlapping blocks

Компенсация движения перекрывающихся блоков (OBMC) ранее использовалась в H.263. В JEM, в отличие от H.263, OBMC можно включать и выключать, используя синтаксис на уровне CU. Когда OBMC используется в JEM, OBMC выполняется для всех границ блока компенсации движения (MC), кроме правой и нижней границ CU. Более того, она применяется как для компонентов яркости, так и для компонентов цветности. В JEM блок MC соответствует блоку кодирования. Когда CU кодируется в режиме под-CU (включает в себя слияние под-CU, аффинный режим и режим FRUC), каждый подблок CU является блоком MC. Чтобы обрабатывать границы CU единообразным образом, OBMC выполняется на уровне подблока для всех границ блока MC, где размер подблока устанавливается равным 4×4, как показано на фиг.18.Overlapping block motion compensation (OBMC) was previously used in H.263. In JEM, unlike H.263, OBMC can be turned on and off using CU-level syntax. When OBMC is used in JEM, OBMC is performed on all motion compensation (MC) block boundaries except the right and bottom CU boundaries. Moreover, it applies to both luma and chrominance components. In JEM, the MC block corresponds to the encoding block. When a CU is encoded in sub-CU mode (including sub-CU merging, affine mode, and FRUC mode), each CU sub-block is an MC block. To handle CU boundaries in a uniform manner, OBMC is performed at the sub-block level for all MC block boundaries, where the sub-block size is set to 4x4, as shown in FIG. 18.

Когда OBMC применяется к текущему подблоку, помимо текущих векторов движения, векторы движения четырех связанных соседних подблоков, если они доступны и не идентичны текущему вектору движения, также используются для получения блока предсказания для текущего подблока. Эти многочисленные блоки предсказания на основе многочисленных векторов движения объединяются для выработки окончательного сигнала предсказания текущего подблока.When OBMC is applied to the current sub-block, in addition to the current motion vectors, the motion vectors of the four associated neighboring sub-blocks, if available and not identical to the current motion vector, are also used to obtain the prediction block for the current sub-block. These multiple prediction blocks based on multiple motion vectors are combined to produce a final prediction signal of the current subblock.

Блок предсказания, основанный на векторах движения соседнего подблока, обозначается как PN, где N указывает индекс для соседнего верхнего, нижнего, левого и правого подблоков, и блок предсказания на основе векторов движения текущего подблока обозначается как PC. Когда PN основан на информации о движении соседнего подблока, который содержит ту же информацию движения, что и текущий подблок, OBMC не выполняется из PN. В иных случаях каждая выборка PN добавляется к той же выборке в PC, то есть четыре строки/столбца PN добавляются в PC. Весовые коэффициенты {1/4, 1/8, 1/16, 1/32} используются для PN, и весовые коэффициенты {3/4, 7/8, 15/16, 31/32} используются для PC. Исключением являются маленькие блоки MC (то есть когда высота или ширина блока кодирования равна 4, или CU кодируется в режиме под-CU), для которых только две строки/столбца PN добавляются в PC. В этом случае весовые коэффициенты {1/4, 1/8} используются для PN, и весовые коэффициенты {3/4, 7/8} используются для PC. Для PN, выработанного на основе векторов движения соседнего по вертикали (по горизонтали) подблока, выборки в той же строке (столбце) PN добавляются в PC с тем же весовым коэффициентом.A prediction block based on the motion vectors of a neighboring sub-block is denoted as P N , where N indicates an index for the adjacent top, bottom, left and right sub-blocks, and a prediction block based on the motion vectors of the current sub-block is denoted as P C . When P N is based on the motion information of a neighboring subblock that contains the same motion information as the current subblock, OBMC is not performed from P N . Otherwise, each sample P N is added to the same sample in P C , that is, four rows/columns of P N are added to P C . Weights {1/4, 1/8, 1/16, 1/32} are used for P N , and weights {3/4, 7/8, 15/16, 31/32} are used for P C . The exception is small MC blocks (that is, when the encoding block height or width is 4, or the CU is encoded in sub-CU mode), for which only two rows/columns P N are added to P C . In this case, weights {1/4, 1/8} are used for P N and weights {3/4, 7/8} are used for P C . For P N generated based on the motion vectors of a vertically (horizontally) adjacent subblock, samples in the same row (column) of P N are added to P C with the same weighting factor.

В JEM для CU с размером, меньшим или равным 256 выборкам яркости, сигнализируется флаг уровня CU для того, чтобы указать, применяется или нет OBMC для текущей CU. Для CU размером более 256 выборок яркости или не закодированных в режиме AMVP по умолчанию применяется OBMC. В кодере, когда OBMC применяется для CU, его влияние учитывается на этапе оценки движения. Сигнал предсказания, сформированный OBMC с использованием информации о движении верхнего соседнего блока и левого соседнего блока, используется для компенсации верхней и левой границ исходного сигнала текущей CU, и затем применяется нормальный процесс оценки движения.In JEM, for a CU with a size less than or equal to 256 luma samples, a CU level flag is signaled to indicate whether or not OBMC is applied for the current CU. For CUs larger than 256 luma samples or not AMVP encoded, OBMC is used by default. In the encoder, when OBMC is applied to a CU, its influence is taken into account in the motion estimation stage. The prediction signal generated by the OBMC using the motion information of the top neighbor block and the left neighbor block is used to compensate the top and left boundaries of the original signal of the current CU, and then the normal motion estimation process is applied.

2.2.5. Компенсация локальной освещенности2.2.5. Local illumination compensation

Компенсация локальной освещенности (LIC) основана на линейной модели для изменений освещенности с использованием коэффициента масштабирования a и смещения b, и она включается или выключается адаптивно для каждой единицы кодирования (CU), кодированной в режиме внешне кодирования.Local illuminance compensation (LIC) is based on a linear model for illuminance variations using a scaling factor a and an offset b, and is turned on or off adaptively for each coding unit (CU) encoded in externally encoded mode.

Когда LIC применяется для CU, способ наименьших квадратов ошибок используется для получения параметров a и b с использованием соседних выборок текущей CU и их соответствующих опорных выборок. Более конкретно, как показано на фиг.19, в опорном изображении используются субдискретизированные (с субдискретизацией 2:1) соседние выборки CU и соответствующие выборки (идентифицированные с помощью информации о движении текущей CU или под-CU). Параметры IC получаются и применяются отдельно для каждого направления предсказания.When LIC is applied to a CU, the least squares error method is used to obtain the parameters a and b using the neighboring samples of the current CU and their corresponding reference samples. More specifically, as shown in FIG. 19, the reference picture uses subsampled (2:1 downsampled) neighboring CU samples and corresponding samples (identified by motion information of the current CU or sub-CU). The IC parameters are obtained and applied separately for each prediction direction.

Когда CU кодируется в режиме слияния, флаг LIC копируется из соседних блоков аналогично копированию информации о движении в режиме слияния; в противном случае для CU сигнализируется флаг LIC, чтобы указать, применяется или нет LIC.When a CU is encoded in merge mode, the LIC flag is copied from neighboring blocks in a similar manner to copying motion information in merge mode; otherwise, the LIC flag is signaled to the CU to indicate whether LIC is applied or not.

Когда LIC включена для изображения, необходима дополнительная проверка RD на уровне CU, чтобы определить, применяется или нет LIC для CU. Когда LIC включена для CU, для поиска движения целочисленного пикселя и поиска движения дробного пикселя вместо SAD и SATD используются, соответственно, средняя-удаленная сумма абсолютной разности (MR-SAD) и средняя-удаленная сумма абсолютной разности, полученной с помощью преобразования Адамара (MR-SATD).When LIC is enabled for an image, an additional RD check at the CU level is required to determine whether or not LIC is applied to the CU. When LIC is enabled for CU, mean-remote sum of absolute difference (MR-SAD) and mean-remote sum of absolute difference (MR) are used instead of SAD and SATD for integer pixel motion search and fractional pixel motion search, respectively. -SATD).

Чтобы снизить сложность кодирования, в JEM применяется следующая схема кодирования.To reduce coding complexity, JEM uses the following coding scheme.

LIC отключается для всего изображения, когда нет очевидного изменения освещенности между текущим изображением и его опорными изображениями. Для того, чтобы определить эту ситуацию, в кодере вычисляются гистограммы текущего изображения и каждого опорного изображения текущего изображения. Если разность гистограмм между текущим изображением и каждым опорным изображением текущего изображения меньше заданного порога, LIC отключается для текущего изображения; в противном случае LIC включается для текущего изображения.LIC is disabled for the entire image when there is no obvious change in illumination between the current image and its reference images. To determine this situation, the encoder calculates histograms of the current image and each reference image of the current image. If the histogram difference between the current image and each reference image of the current image is less than a specified threshold, LIC is disabled for the current image; otherwise, LIC is enabled for the current image.

2.2.6. Предсказание компенсации аффинного движения2.2.6. Affine motion compensation prediction

В HEVC для предсказания компенсации движения (MCP) применяется только модель поступательного движения. В реальном мире существует множество видов движения, например, увеличение/уменьшение, поворот, перспективные движения и другие виды неравномерного движения. В JEM применяется упрощенное предсказание компенсации движения с аффинным преобразованием. Как показано на фиг.20, аффинное поле движения блока описывается двумя векторами движения контрольной точки.In HEVC, only the translational motion model is used for motion compensation prediction (MCP). In the real world, there are many types of motion, such as zoom in/out, rotation, perspective motion, and other types of uneven motion. JEM uses simplified motion compensation prediction with an affine transformation. As shown in Fig. 20, the affine motion field of a block is described by two motion vectors of the control point.

Векторное поле (MVF) движения блока описывается следующим уравнением:The vector field (MVF) of block motion is described by the following equation:

(1-a) (1-a)

Для 6-парметрического аффинного кандидатаFor a 6-parameter affine candidate

(1-b) (1-b)

где (v0x, v0y) – вектор движения контрольной точки в верхнем левом углу, (v1x, v1y) – вектор движения контрольной точки в верхнем правом углу, и (v2x, v2y) – вектор движения контрольной точки в нижнем левом углу, (x, y) представляет координату репрезентативной точки относительно левой верхней выборки в текущем блоке. В VTM репрезентативная точка определяется как центральная позиция подблока, например, когда координата левого верхнего угла подблока относительно верхней левой выборки в текущем блоке равна (xs, ys), координата репрезентативной точки определяется как (xs+2, ys+2).where (v 0x , v 0y ) is the movement vector of the control point in the upper left corner, (v 1x , v 1y ) is the movement vector of the control point in the upper right corner, and (v 2x , v 2y ) is the movement vector of the control point in the lower left corner, (x, y) represents the coordinate of the representative point relative to the top left sample in the current block. In VTM, a representative point is defined as the center position of a subblock, for example, when the coordinate of the upper left corner of a subblock relative to the upper left sample in the current block is (xs, ys), the coordinate of the representative point is defined as (xs+2, ys+2).

Для дальнейшего упрощения предсказания компенсации движения применяется предсказание аффинного преобразования на основе подблоков. Размер подблока получается, как в уравнении (2), где MvPre – точность доли вектора движения (1/16 в JEM), (v2x, v2y) – вектор движения нижней левой контрольной точки, вычисленный согласно уравнению (1).To further simplify motion compensation prediction, subblock-based affine transformation prediction is applied. The sub-block size is obtained as in equation (2), where MvPre is the motion vector fraction precision (1/16 in JEM), (v 2x , v 2y ) is the motion vector of the bottom left control point calculated according to equation (1).

(2) (2)

После получения M и N из уравнения (2), они должны быть скорректированы в сторону уменьшения, если необходимо сделать их делителями w и h, соответственно.After obtaining M and N from equation (2), they must be adjusted downward if necessary to make them divisors of w and h, respectively.

Чтобы получить вектор движения каждого подблока M×N, вектор движения центральной выборки каждого подблока, как показано на фиг.21, вычисляется в соответствии с уравнением (1) и округляется до точности доли 1/16. Затем интерполяционные фильтры компенсации движения, упомянутые в данном документе, применяются для выработки предсказания каждого подблока с полученным вектором движения.To obtain the motion vector of each M×N sub-block, the motion vector of the center sample of each sub-block, as shown in FIG. 21, is calculated according to Equation (1) and rounded to a precision of 1/16. Then, the motion compensation interpolation filters mentioned herein are applied to generate a prediction of each sub-block with the resulting motion vector.

После MCP вектор движения высокой точности каждого подблока округляется и сохраняется с той же точностью, что и нормальный вектор движения.After MCP, the high-precision motion vector of each sub-block is rounded and stored with the same precision as the normal motion vector.

2.2.6.1. Режим AF_INTER 2.2.6.1. AF_INTER mode

В JEM существует два режима аффинного движения: режим AF_INTER и режим AF_MERGE. Для CU с шириной и высотой больше 8 может применяться режим AF_INTER. В битовом потоке сигнализируется аффинный флаг на уровне CU, чтобы указать, используется ли режим AF_INTER. В этом режиме список кандидатов с парой векторов движения создается с использованием соседних блоков. Как показано на фиг.23, выбирается из векторов движения блока A, B или C. Вектор движения из соседнего блока масштабируется в соответствии со списком опорных изображений и соотношением между POC опорного изображения для соседнего блока, POC опорного изображения для текущей CU и POC текущей CU. Подход к выбору из соседнего блока D и E является аналогичным. Если количество списков кандидатов меньше 2, список дополняется парой векторов движения, составленной путем дублирования каждого из кандидатов AMVP. Когда список кандидатов больше 2, кандидаты сначала сортируются в соответствии с совместимостью соседних векторов движения (например, на основе подобия двух векторов движения в паре кандидатов), и сохраняются только первые два кандидата. Проверка издержек RD используется для определения, какой кандидат из пары векторов движения выбран в качестве предсказания вектора движения контрольной точки (CPMVP) текущей CU. Индекс, указывающий позицию CPMVP в списке кандидатов, сигнализируется в битовом потоке. После определения CPMVP текущей аффинной CU применяется оценка аффинного движения и определяется вектор движения контрольной точки (CPMV). Затем разность CPMV и CPMVP сигнализируется в битовом потоке.There are two affine motion modes in JEM: AF_INTER mode and AF_MERGE mode. For CUs with width and height greater than 8, the AF_INTER mode can be used. An affine flag is signaled in the bitstream at the CU level to indicate whether the AF_INTER mode is used. In this mode, a list of candidates with a pair of motion vectors created using adjacent blocks. As shown in Fig. 23, is selected from the motion vectors of block A, B, or C. The motion vector from the adjacent block is scaled according to the list of reference pictures and the relationship between the POC of the reference picture for the neighboring block, the POC of the reference picture for the current CU, and the POC of the current CU. Selection approach from the adjacent block D and E is similar. If the number of candidate lists is less than 2, the list is supplemented with a pair of motion vectors constructed by duplicating each of the AMVP candidates. When the candidate list is larger than 2, the candidates are first sorted according to the compatibility of adjacent motion vectors (e.g., based on the similarity of two motion vectors in a candidate pair), and only the first two candidates are retained. The RD overhead test is used to determine which candidate of a pair of motion vectors is selected as the reference motion vector prediction (CPMVP) of the current CU. An index indicating the position of the CPMVP in the candidate list is signaled in the bit stream. Once the CPMVP of the current affine CU is determined, the affine motion estimate is applied and the control point motion vector (CPMV) is determined. The difference between CPMV and CPMVP is then signaled in the bitstream.

В режиме AF_INTER, когда используется 4-/6-параметрический аффинный режим, требуются 2/3 контрольных точки, и, следовательно, 2/3 MVD должны быть кодированы для этих контрольных точек, как показано на фиг.22. Предлагается получать MV следующим образом, то есть mvd1 и mvd2 предсказываются из mvd0.In AF_INTER mode, when 4-/6-parameter affine mode is used, 2/3 control points are required, and therefore 2/3 MVDs must be encoded for these control points, as shown in FIG. 22. It is proposed to obtain MV as follows, that is, mvd 1 and mvd 2 are predicted from mvd0.

где , mvdi и mv1 представляют собой предсказываемый вектор движения, разность векторов движения и вектор движения верхнего левого пикселя (i = 0), верхнего правого пикселя (i = 1) или левого нижнего пикселя (i = 2.), соответственно, как показано на фиг.22 (b). Следует отметить, что сложение двух векторов движения (например, mvA(xA, yA) и mvB(xB, yB)) равно суммированию двух компонентов по отдельности, то есть newMV = mvA + mvB, и два компонента newMV устанавливаются в (xA + xB) и (yA + yB), соответственно.Where , mvd i and mv 1 represent the predicted motion vector, the difference of motion vectors, and the motion vector of the top left pixel (i = 0), top right pixel (i = 1), or bottom left pixel (i = 2.), respectively, as shown in Fig. 22(b). It should be noted that the addition of two motion vectors (e.g. mvA(xA, yA) and mvB(xB, yB)) is equal to the addition of the two components separately, that is, newMV = mvA + mvB, and the two newMV components are set to (xA + xB ) and (yA + yB), respectively.

2.2.6.2. Режим AF_MERGE2.2.6.2. AF_MERGE mode

Когда CU применяется в режиме AF_MERGE, она получает первый блок, кодированный в аффинном режиме, из действительных соседних восстановленных блоков. Как показано на фиг.24a, порядок выбора для блока-кандидата представляет собой следующее: слева, сверху, сверху справа, слева снизу, сверху слева. Если соседний левый нижний блок A кодирован в аффинном режиме, как показано на фиг.24b, вычисляются векторы движения , и в верхнем левом углу, верхнем правом углу и левом нижнем углу блока CU, который содержит блок A. И вектор движения в верхнем левом углу текущей CU вычисляется согласно , и . Во-вторых, вычисляется вектор движения в правом верхнем углу текущей CU.When the CU is applied in AF_MERGE mode, it obtains the first affine-mode encoded block from the valid neighboring reconstructed blocks. As shown in FIG. 24a, the selection order for a candidate block is left, top, top right, bottom left, top left. If the adjacent lower left block A is encoded in affine mode, as shown in Fig. 24b, the motion vectors are calculated , And in the upper left corner, upper right corner and lower left corner of the CU block that contains block A. And the motion vector in the upper left corner of the current CU is calculated according to , And . Secondly, the vector is calculated movement in the upper right corner of the current CU.

После того, как получены CPMV текущей CU и , в соответствии с уравнением (1) упрощенной модели аффинного движения, вырабатывается MVF текущей CU. Чтобы определить, кодирована ли текущая CU в режиме AF_MERGE, в битовом потоке сигнализируется аффинный флаг в том случае, когда имеется по меньшей мере один соседний блок, кодированный в аффинном режиме.Once the CPMV of the current CU is received And , according to Equation (1) of the simplified affine motion model, the MVF of the current CU is generated. To determine whether the current CU is AF_MERGE encoded, an affine flag is signaled in the bitstream when there is at least one adjacent block encoded in affine mode.

Список кандидатов аффинного слияния создается на следующих этапов:The list of affine fusion candidates is created in the following steps:

Вставить унаследованные аффинные кандидатыInsert legacy affine candidates

Унаследованный аффинный кандидат означает, что кандидат получен из модели аффинного движения его действительного соседнего аффинного кодированного блока. В общем случае, как показано на фиг.25, порядок сканирования позиций кандидатов является следующим: A1, B1, B0, A0 и B2.A legacy affine candidate means that the candidate is derived from the affine motion model of its actual neighboring affine coded block. In general, as shown in FIG. 25, the scanning order of candidate positions is A1, B1, B0, A0 and B2.

После того, как кандидат получен, выполняется процесс полного усечения, чтобы проверить, был ли вставлен в список одинаковый кандидат. Если одинаковый кандидат существует, полученный кандидат отбрасывается.Once a candidate is received, a full truncation process is performed to check whether the same candidate has been inserted into the list. If an identical candidate exists, the resulting candidate is discarded.

Вставить построенные аффинные кандидатыInsert constructed affine candidates

Если количество кандидатов в списке кандидатов аффинного слияния меньше, чем MaxNumAffineCand (в этом сообщении установлено значение 5), построенные аффинные кандидаты вставляются в список кандидатов. Фраза "построенный аффинный кандидат" означает, что кандидат создается путем объединения информации о движении соседей каждой контрольной точки.If the number of candidates in the affine fusion candidate list is less than MaxNumAffineCand (set to 5 in this message), the constructed affine candidates are inserted into the candidate list. The phrase “constructed affine candidate” means that the candidate is created by combining the motion information of the neighbors of each reference point.

Информация о движении для контрольных точек сначала получается из указанных пространственных соседей и временных соседей, показанных на фиг.25. CPk (k = 1, 2, 3, 4) представляет собой k-ю контрольную точку. A0, A1, A2, B0, B1, B2 и B3 – пространственные позиции для предсказания CPk (k = 1, 2, 3); T – временная позиция для предсказания CP4.Motion information for reference points is first obtained from the specified spatial neighbors and temporal neighbors shown in FIG. 25. CPk (k = 1, 2, 3, 4) represents the kth control point. A0, A1, A2, B0, B1, B2 and B3 – spatial positions for CPk prediction (k = 1, 2, 3); T is the time position for CP4 prediction.

Координаты CP1, CP2, CP3 и CP4 представляют собой (0, 0), (W, 0), (H, 0) и (W, H), соответственно, где W и H – ширина и высота текущего блока.The coordinates of CP1, CP2, CP3 and CP4 are (0, 0), (W, 0), (H, 0) and (W, H), respectively, where W and H are the width and height of the current block.

Информация о движении каждой контрольной точки получается в соответствии со следующим порядком приоритета:Information about the movement of each control point is obtained in accordance with the following order of priority:

Для CP1 приоритетом проверки является B2->B3-> A2. B2 используется, если он доступен. В противном случае, если B2 не доступен, используется B3. Если одновременно недоступны B2 и B3, используется A2. Если все три кандидата недоступны, информация о движении CP1 не может быть получена.For CP1, the check priority is B2->B3->A2. B2 is used if available. Otherwise, if B2 is not available, B3 is used. If B2 and B3 are both unavailable, A2 is used. If all three candidates are unavailable, CP1 traffic information cannot be obtained.

Для CP2 приоритетом проверки является B1-> B0.For CP2 the test priority is B1->B0.

Для CP3 приоритетом проверки является A1-> A0.For CP3, the test priority is A1->A0.

Для CP4 используется T.For CP4, T is used.

Во-вторых, комбинации контрольных точек используются для построения аффинного кандидата слияния.Secondly, combinations of checkpoints are used to construct an affine merge candidate.

Информация о движении трех контрольных точек необходима для построения 6-параметрического аффинного кандидата. Три контрольные точки можно выбрать из одной из следующих четырех комбинаций ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). Комбинации {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} будут преобразованы в 6-параметрическую модель движения, представленную верхней левой, верхней правой и нижней левой контрольными точками.Information about the motion of the three control points is necessary to construct a 6-parameter affine candidate. The three control points can be selected from one of the following four combinations ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). The combinations {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} will be converted into a 6-parameter motion model represented by the upper left, upper right and lower left control points.

Информация о движении двух контрольных точек необходима для построения 4-параметрического аффинного кандидата. Две контрольные точки можно выбрать из одной из следующих шести комбинаций ({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}). Комбинации {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4} будут преобразованы в 4-параметрическую модель движения, представленную верхней левой и верхней правой контрольными точками.Information about the motion of two control points is necessary to construct a 4-parameter affine candidate. The two control points can be selected from one of the following six combinations ({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}). The combinations {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4} will be converted into a 4-parameter motion model represented by the top left and top right control points.

Комбинации построенных аффинных кандидатов вставляются в список кандидатов в следующем порядке:Combinations of constructed affine candidates are inserted into the candidate list in the following order:

{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4}, {CP2, CP4}, {CP3, CP4}{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4}, {CP2, CP4}, {CP3, CP4}

Для контрольного списка X (X равен 0 или 1) комбинации контрольный индекс с наивысшим коэффициентом использования в контрольных точках выбирается в качестве контрольного индекса списка X, и векторы движения, которые указывают на разностное опорное изображение, будут масштабированы.For checklist X (X is 0 or 1) combination, the check index with the highest utilization rate in check points is selected as the check index of list X, and the motion vectors that point to the difference reference image will be scaled.

После того, как кандидат получен, выполняется процесс полного усечения, чтобы проверить, был ли вставлен в список одинаковый кандидат. Если одинаковый кандидат существует, полученный кандидат отбрасывается.Once a candidate is received, a full truncation process is performed to check whether the same candidate has been inserted into the list. If an identical candidate exists, the resulting candidate is discarded.

Заполнение нулевыми векторами движенияFilling with zero motion vectors

Если количество кандидатов в списке кандидатов аффинного слияния меньше 5, нулевые векторы движения с нулевыми опорными индексами вставляются в список кандидатов то тех пор, пока не будет заполнен список.If the number of candidates in the affine fusion candidate list is less than 5, zero motion vectors with zero support indices are inserted into the candidate list until the list is full.

2.2.7. Двунаправленный оптический поток2.2.7. Bidirectional optical flow

Двунаправленный оптический поток (BIO) представляет собой уточнение движения по выборкам, которое выполняется поверх поблочной компенсации движения для би-предсказания. Уточнение движения на уровне выборки не использует сигнализацию.Bidirectional optical flow (BIO) is a sample-based motion refinement that is performed on top of block-based motion compensation for bi-prediction. Sample-level motion refinement does not use signaling.

Пусть I(k) будет значением яркости из опорного изображения k (k=0, 1) после компенсации движения блока, и обозначим и как горизонтальные и вертикальные составляющие градиента I(k), соответственно. Предполагая, что оптический поток является действительным, векторное поле движения задается уравнениемLet I (k) be the brightness value from reference image k (k=0, 1) after block motion compensation, and denote And as horizontal and vertical components of the gradient I (k) , respectively. Assuming that the optical flow is real, the vector field motion is given by the equation

(3) (3)

Объединение этого уравнения оптического потока с эрмитовой интерполяцией для траектории движения каждой выборки приводит к уникальному полиному третьего порядка, который соответствует как значениям I(k) функции, так и производным и на концах. Значение этого полинома при t=0 является предсказанием BIO:Combining this optical flow equation with Hermitian interpolation for each sample path results in a unique third-order polynomial that corresponds to both the values of the I (k) function and the derivatives And at the ends. The value of this polynomial at t=0 is the BIO prediction:

(3)(3)

В данном документе и обозначают расстояния до опорных кадров, как показано на фиг.26. Расстояния и вычисляются на основе POC для Ref0 и Ref1: τ0=POC(текущий) − POC(Ref0), τ1= POC(Ref1) − POC(текущий). Если оба предсказания исходят из одного и того же временного направления (либо из прошлого, либо из будущего), то знаки являются разными (то есть ). В этом случае BIO применяется только в тех случаях, когда предсказание не относится к одному и тому же моменту времени (то есть ), обе упомянутые области имеют ненулевое движение (), и векторы движения блоков пропорциональны временному расстоянию ().In this document And indicate the distances to the reference frames, as shown in Fig. 26. Distances And are calculated based on POC for Ref0 and Ref1: τ 0 =POC(current) − POC(Ref0), τ 1 = POC(Ref1) − POC(current). If both predictions come from the same time direction (either the past or the future), then the signs are different (i.e. ). In this case, BIO only applies in cases where the prediction does not refer to the same point in time (i.e. ), both mentioned areas have non-zero motion ( ), and the movement vectors of the blocks are proportional to the time distance ( ).

Векторное поле движения определяется путем минимизации разности между значениями в точках А и В (в точках пересечения траекторий движения и плоскостей опорных кадров на фиг.9). Модель использует только первый линейный член локального разложения Тейлора для :Vector field motion is determined by minimizing the difference between the values at points A and B (at the intersection points of the motion trajectories and the planes of the reference frames in Fig.9). The model uses only the first linear term of the local Taylor expansion for :

(5) (5)

Все значения в уравнении (5) зависят от местоположения выборки, которое до сих пор было опущено в обозначениях. Предполагая, что движение согласовано в локальной окружающей области, мы минимизируем квадратное окно размером (2M+1)×(2M+1) с центром в текущей предсказанной точке , где M равно 2:All values in equation (5) are location dependent samples, which has been omitted in the notation so far. Assuming motion is consistent in the local surrounding region, we minimize the square window size (2M+1)×(2M+1) centered on the current predicted point , where M is equal to 2:

(6) (6)

Для этой задачи оптимизации JEM использует упрощенный подход, выполняя сначала минимизацию в вертикальном направлении, а затем в горизонтальном направлении. Это приводит к уравнению:For this optimization problem, JEM uses a simplified approach by first performing minimization in the vertical direction and then in the horizontal direction. This leads to the equation:

(7) (7)

(8) (8)

где,Where,

(9) (9)

Во избежание деления на ноль или на очень маленькое значение в уравнения (7) и (8) вводятся параметры регуляризации r и m.To avoid division by zero or a very small value, regularization parameters r and m are introduced into equations (7) and (8).

(10) (10)

(11) (eleven)

Здесь – битовая глубина выборок видео.Here – bit depth of video samples.

Чтобы сохранить доступ к памяти для BIO таким же, как для регулярной компенсации движения с би-предсказанием, все значения предсказания и градиентов вычисляются только для позиций внутри текущего блока. В уравнении (9) квадратное окно размером (2M+1)×(2M+1) с центром в текущей предсказываемой точке на границе предсказываемого блока необходимо для доступа к позициям за пределами блока (как показано на фиг.27(a)). В JEM значения вне блока устанавливаются равными ближайшему доступному значению внутри блока. Например, его можно реализовать в виде заполнения, как показано на фиг.27(b).To keep memory access for BIO the same as for regular bi-prediction motion compensation, all prediction and gradient values are calculated only for positions within the current block. In equation (9), the square window of size (2M+1)×(2M+1) centered at the current predicted point on the boundary of the predicted block is necessary to access positions outside the block (as shown in Fig. 27(a)). In JEM values outside the block are set equal to the nearest available value inside the block. For example, it can be implemented as a padding, as shown in Fig. 27(b).

При использовании BIO возможно, что поле движения может быть уточнено для каждой выборки. Чтобы уменьшить вычислительную сложность, в JEM используется блочная конструкция BIO. Уточнение движения рассчитывается на основе блока 4×4. В блочном BIO значения sn в уравнении (9) для всех выборок в блоке 4×4 агрегируются, и затем агрегированные значения sn используются для смещения полученных векторов движения BIO для блока 4×4. Более конкретно, для получения BIO на основе блоков используется следующая формула:When using BIO, it is possible that the motion field can be refined for each sample. To reduce computational complexity, JEM uses a block-based BIO design. Motion refinement is calculated based on a 4x4 block. In block BIO, the s n values in equation (9) for all samples in a 4x4 block are aggregated, and then the aggregated s n values are used to offset the resulting BIO motion vectors for the 4x4 block. More specifically, the following formula is used to obtain block-based BIO:

(12)(12)

где bk обозначает набор выборок, принадлежащих k-му блоку 4×4 предсказанного блока. sn в уравнениях (7) и (8) заменяются на ((sn,bk) >> 4) для получения ассоциированных смещений вектора движения.where b k denotes the set of samples belonging to the kth 4x4 block of the predicted block. s n in equations (7) and (8) are replaced by ((s n,bk ) >> 4) to obtain the associated motion vector displacements.

В некоторых сценариях многочисленные MV BIO могут быть ненадежными из-за шума или нерегулярного движения. Таким образом, в BIO величина многочисленных MV ограничена пороговым значением thBIO. Пороговое значение определяется на основе того, поступают ли с одного направления все опорные изображения текущего изображения. Если все опорные изображения текущего изображения поступают с одного направления, значение порога устанавливается равным ; в иных случаях устанавливается значение .In some scenarios, multiple MV BIOs may be unreliable due to noise or irregular movement. Thus, in BIO, the magnitude of numerous MVs is limited by the thBIO threshold. The threshold value is determined based on whether all reference images of the current image are coming from the same direction. If all reference images of the current image come from the same direction, the threshold value is set to ; in other cases the value is set .

Градиенты для BIO вычисляются одновременно с интерполяцией компенсации движения с использованием операций, соответствующих процессу компенсации движения HEVC (2D разделяемый FIR). Входным сигналом для этого 2D разделяемого FIR является такая же выборка опорного кадра, как для процесса компенсации движения и дробной позиции (fracX, fracY) согласно дробной части вектора движения блока. В случае сигнала горизонтального градиента, он сначала интерполируется по вертикали с использованием BIOfilterS, соответствующего дробной позиции fracY со сдвигом демасштабирования d−8, затем градиентный фильтр BIOfilterG применяется в горизонтальном направлении, соответствующем дробной позиции fracX со сдвигом демасштабирования 18−d. В случае вертикального градиента , сначала применяется градиентный фильтр по вертикали с использованием BIOfilterG, соответствующего дробной позиции fracY со сдвигом демасштабирования d−8, затем выполняется смещение сигнала с использованием BIOfilterS в горизонтальном направлении, соответствующего дробной позиции fracX со сдвигом демасштабирования 18−d. Длина интерполяционного фильтра для вычисления градиентов BIOfilterG и смещения BIOfilterF сигнала является более короткой (имеет 6 отводов) для того, чтобы поддерживать сложность на приемлемом уровне. В таблице 3 указаны фильтры, используемые для вычисления градиентов для различных дробных позиций вектора движения блока в BIO. В таблице 4 указаны интерполяционные фильтры, используемые для выработки сигнала предсказания в BIO.Gradients for BIO are calculated simultaneously with motion compensation interpolation using operations corresponding to the HEVC (2D shared FIR) motion compensation process. The input signal to this 2D shared FIR is the same reference frame sample as for the motion compensation process and the fractional position (fracX, fracY) according to the fractional part of the block motion vector. In case of signal horizontal gradient, it is first interpolated vertically using a BIOfilterS corresponding to the fractional position of fracY with a descale offset of d−8, then the gradient filter BIOfilterG is applied in the horizontal direction corresponding to the fractional position of fracX with a descale offset of 18−d. In the case of a vertical gradient , first applies a gradient filter in the vertical direction using BIOfilterG corresponding to the fractional position of fracY with a descale offset of d−8, then shifts the signal using BIOfilterS in the horizontal direction corresponding to the fractional position of fracX with a descale offset of 18−d. The length of the interpolation filter for calculating the gradients BIOfilterG and the offset BIOfilterF of the signal is shorter (has 6 taps) in order to keep the complexity at an acceptable level. Table 3 lists the filters used to compute gradients for various fractional block motion vector positions in BIO. Table 4 lists the interpolation filters used to generate the prediction signal in BIO.

Таблица 3. Фильтры для вычисления градиентов в BIOTable 3. Filters for calculating gradients in BIO

Положение дробного пикселя Fractional pixel position Интерполяционный фильтр для градиента (BIOfilterG))Interpolation filter for gradient (BIOfilterG) 00 {8,−39,−3,46,−17,5}{8,−39,−3.46,−17.5} 1/161/16 {8,−32,−13,50,−18,5}{8,−32,−13.50,−18.5} 1/81/8 {7,−27,−20,54,−19,5}{7,−27,−20.54,−19.5} 3/163/16 {6,−21,−29,57,−18,5}{6,−21,−29.57,−18.5} 1/41/4 {4,−17,−36,60,−15,4}{4,−17,−36.60,−15.4} 5/165/16 {3,−9,−44,61,−15,4}{3,−9,−44.61,−15.4} 3/83/8 {1,−4,−48,61,−13,3}{1,−4,−48.61,−13.3} 7/167/16 {0,1,−54,60,−9,2}{0.1,−54.60,−9.2} 1/21/2 {−1,4,−57,57,−4,1}{−1.4,−57.57,−4.1}

Таблица 4. Интерполяционные фильтры для выработки сигнала предсказания в BIOTable 4. Interpolation filters for generating a prediction signal in BIO

Дробное положение пикселяFractional pixel position Интерполяционный фильтр для сигнала предсказания (BIOfilterS)Interpolation filter for prediction signal (BIOfilterS) 00 {0,0,64,0,0,0}{0,0,64,0,0,0} 1/161/16 {1,−3,64,4,−2,0}{1,−3.64,4,−2.0} 1/81/8 {1,−6,62,9,−3,1}{1,−6,62,9,−3,1} 3/163/16 {2,−8,60,14,−5,1}{2,−8,60,14,−5,1} 1/41/4 {2,−9,57,19,−7,2}{2,−9.57,19,−7.2} 5/165/16 {3,−10,53,24,−8,2}{3,−10,53,24,−8,2} 3/83/8 {3,−11,50,29,−9,2}{3,−11,50,29,−9,2} 7/167/16 {3,−11,44,35,−10,3}{3,−11,44,35,−10,3} 1/21/2 {3,−10,35,44,−11,3}{3,−10,35,44,−11,3}

В JEM BIO применяется ко всем блокам с би-предсказанием, когда два предсказания получаются из разных опорных изображений. Когда LIC включена для CU, BIO отключен.In JEM, BIO is applied to all bi-prediction blocks when two predictions are obtained from different reference images. When LIC is enabled for a CU, BIO is disabled.

В JEM OBMC применяется для блока после нормального процесса MC. Чтобы уменьшить вычислительную сложность, BIO не применяется во время процесса OBMC. Это означает, что BIO применяется только в процессе MC для блока тогда, когда используется его собственный MV, и не применяется в процессе MC тогда, когда во время процесса OBMC используется MV соседнего блока.In JEM, OBMC is applied to a block after the normal MC process. To reduce computational complexity, BIO is not applied during the OBMC process. This means that BIO is only applied in the MC process for a block when its own MV is used, and is not applied in the MC process when the MV of an adjacent block is used during the OBMC process.

2.2.8. Уточнение вектора движения на стороне декодера2.2.8. Motion vector refinement on the decoder side

В операции би-предсказания для предсказания одной области блока два блока предсказания, сформированные с использованием вектора движения (MV) из списка 0 (list0) и MV из списка 1 (list1), соответственно, объединяются для формирования единого сигнала предсказания. В способе уточнения вектора движения на стороне декодера (DMVR) два вектора движения би-предсказания дополнительно уточняются в процессе двустороннего согласования с шаблоном. Двустороннее согласование с шаблоном применяется в декодере для выполнения поиска на основе искажения между двусторонним шаблоном и восстанавливаемыми выборками в опорных изображениях для того, чтобы получить уточненный MV без передачи дополнительной информации о движении.In a bi-prediction operation for predicting one block region, two prediction blocks generated using a motion vector (MV) from list 0 (list0) and MV from list 1 (list1), respectively, are combined to form a single prediction signal. In the decoder-side motion vector refinement (DMVR) method, two bi-prediction motion vectors are further refined through a two-way template matching process. Two-way template matching is used in the decoder to perform a distortion-based search between the two-way template and reconstructed samples in the reference images in order to obtain a refined MV without transmitting additional motion information.

В DMVR двусторонний шаблон вырабатывается в виде взвешенной комбинации (то есть усредненной) из двух блоков предсказания, из начального MV0 из list0 и MV1 из list1, соответственно, как показано на фиг.28. Операция согласования с шаблоном состоит из вычисления меры издержек между выработанным шаблоном и областью выборки (вокруг начального блока предсказания) в опорном изображении. Для каждого из двух опорных изображений MV, который имеет минимальные издержки шаблона, считается обновленным MV из этого списка для замены исходного. В JEM для каждого списка отыскивается девять кандидатов MV. Девять кандидатов MV включают в себя исходный MV и 8 окружающих MV со смещением одной выборки яркости относительно исходного MV либо в горизонтальном, либо в вертикальном направлении, либо в обоих направлениях. Наконец, два новых MV, то есть MV0’и MV1’, как показано на фиг.28, используются для выработки окончательных результатов би-предсказания. Сумма абсолютных разностей (SAD) используется в качестве меры издержек. Следует отметить, что при вычислении издержек блока предсказания, выработанного одним окружающим MV, округленный MV (до целого числа pel) фактически используется для получения блока предсказания вместо реального MV.In DMVR, the two-way template is generated as a weighted combination (ie, average) of two prediction blocks, the initial MV0 of list0 and MV1 of list1, respectively, as shown in FIG. 28. The template matching operation consists of calculating a measure of the overhead between the generated template and the sample region (around the initial prediction block) in the reference image. For each of the two reference images, the MV that has the minimum template overhead is considered to be an updated MV from this list to replace the original one. In JEM, nine MV candidates are found for each list. The nine candidate MVs include the original MV and 8 surrounding MVs with one luminance sample offset from the original MV in either the horizontal or vertical direction or both. Finally, two new MVs, i.e., MV0' and MV1', as shown in Fig. 28, are used to generate the final bi-prediction results. Sum of absolute differences (SAD) is used as a measure of cost. It should be noted that when calculating the overhead of a prediction block produced by one surrounding MV, the rounded MV (to an integer pel) is actually used to obtain the prediction block instead of the actual MV.

DMVR применяется для режима слияния би-предсказания с одним MV из опорного изображения в прошлом и другим MV из опорного изображения в будущем без передачи дополнительных элементов синтаксиса. В JEM, когда LIC, аффинное движение, FRUC или кандидат слияния суб-CU включены для CU, DMVR не применяется.DMVR is used for bi-prediction fusion mode with one MV from a reference picture in the past and another MV from a reference picture in the future without passing additional syntax elements. In JEM, when LIC, affine motion, FRUC, or a sub-CU fusion candidate is enabled for a CU, DMVR does not apply.

Предсказание вектора движения на основе LUT, базирующееся на раскрытой технологии, которая позволяет улучшить как существующие, так и будущие стандарты кодирования видео, поясняется на следующих примерах, описанных для различных реализаций. Так как LUT позволяют выполнять процесс кодирования/декодирования на основе исторических данных (например, блоков, которые были обработаны), предсказание вектора движения на основе LUT также может называться способом предсказания вектора движения на основе истории (HMVP). В способе предсказания вектора движения на основе LUT во время процесса кодирования/декодирования ведутся одна или несколько таблиц с информацией о движении из ранее кодированных блоков. Эти кандидаты движения, хранящиеся в LUT, называются кандидатами HMVP. Во время кодирования/декодирования одного блока ассоциированная информация о движении в LUT может добавляться в списки кандидатов движения (например, в списки кандидатов слияния/AMVP) и после кодирования/декодирования одного блока LUT может обновляться. Затем обновленные LUT используются для кодирования последующих блоков. Таким образом, обновление кандидатов движения в LUT основано на порядке кодирования/декодирования блоков. Приведенные ниже примеры следует рассматривать как примеры, объясняющие общие концепции. Эти примеры не следует толковать в узком смысле. Кроме того, эти примеры можно комбинировать любым способом.LUT-based motion vector prediction based on the disclosed technology, which improves both current and future video coding standards, is illustrated through the following examples described for various implementations. Since LUTs allow the encoding/decoding process to be performed based on historical data (eg, blocks that have been processed), LUT-based motion vector prediction can also be called a history-based motion vector prediction (HMVP) method. In the LUT-based motion vector prediction method, one or more tables of motion information from previously encoded blocks are maintained during the encoding/decoding process. These motion candidates stored in the LUT are called HMVP candidates. During encoding/decoding of one block, associated motion information in the LUT may be added to motion candidate lists (eg, merge/AMVP candidate lists) and after encoding/decoding of one block, the LUT may be updated. The updated LUTs are then used to encode subsequent blocks. Thus, the update of motion candidates in the LUT is based on the encoding/decoding order of the blocks. The examples below should be considered examples to explain general concepts. These examples should not be interpreted in a narrow sense. Moreover, these examples can be combined in any way.

3. Примеры проблем, решаемых с помощью вариантов осуществления3. Examples of Problems Solved by Embodiments

В конфигурации треугольного разбиения один блок может быть разделен на два разбиения. Чтобы сэкономить пропускную способность памяти из-за компенсации движения, необходимо, чтобы два разбиения были уни-предсказуемыми. В процессе компенсации движения би-предсказание используется для диагонального края, и уни-предсказание используется для всех остальных частей. Если для каждого разбиения разрешено би-предсказание, то выборки, расположенные на диагональном крае, будут иметь четыре MV: два из одного разбиения и два из другого разбиения. У такой конфигурации имеются следующие проблемы:In a triangular partition configuration, one block can be divided into two partitions. To save memory bandwidth due to motion compensation, the two partitions need to be uni-predictable. In the motion compensation process, bi-prediction is used for the diagonal edge, and uni-prediction is used for all other parts. If bi-prediction is allowed for each partition, then samples located on the diagonal edge will have four MVs: two from one partition and two from another partition. This configuration has the following problems:

В процессе создания списка слияния проверяются только пространственные соседние блоки и временные блоки.During the merge list creation process, only spatial neighbors and temporal blocks are checked.

Технология предсказания вектора движения на основе истории не разрешена для треугольного разбиения.History-based motion vector prediction technology is not allowed for triangular partitioning.

Как обращаться с режимом треугольного разбиения в режиме внутриблочного копирования неизвестно.It is unknown how to handle triangular split mode in intrablock copy mode.

4. Примеры вариантов осуществления4. Examples of embodiments

Предложенные технологии могут быть применены к любым неквадратным/непрямоугольным разбиениям, например, к геометрическим разбиениям. В последующем описании мы используем "режим треугольного разбиения", чтобы представить его в качестве примера режима неквадратного/непрямоугольного разбиения (TPM). Следует отметить, что могут применяться и другие виды разбиений.The proposed technologies can be applied to any non-square/non-rectangular partitions, for example, to geometric partitions. In the following description, we use "triangular partitioning mode" to represent it as an example of the non-square/non-rectangular partitioning mode (TPM). It should be noted that other types of partitions can be used.

Технологии, подробно изложенные ниже, следует рассматривать как примеры для объяснения общих концепций. Эти технологии не следует толковать в узком смысле. Кроме того, эти технологии согласно изобретению могут быть объединены любым способом. Обозначим размер блока как W×H.The technologies detailed below should be considered as examples to explain general concepts. These technologies should not be interpreted in a narrow sense. Moreover, these technologies according to the invention can be combined in any way. Let's denote the block size as W×H.

1. Вместо того, чтобы всегда применять режим треугольного предсказания с режимом слияния, предлагается включить режим треугольного предсказания для внутренне кодированных блоков или внешне кодированных блоков без слияния.1. Instead of always using triangular prediction mode with merge mode, it is proposed to enable triangular prediction mode for intra-coded blocks or outer-coded blocks without merging.

а) В одном примере два разбиения предсказываются в разных режимах внешнего предсказания.a) In one example, two partitions are predicted in different inter-prediction modes.

b) Кроме того, альтернативно могут быть дополнительно отфильтрованы значения предсказания выборок вдоль краевых границ.b) Alternatively, the prediction values of the samples along the edge boundaries may be further filtered.

c) В одном примере информация о движении (такая как MV) двух треугольных разбиений не может предсказать друг друга;c) In one example, the motion information (such as MV) of two triangular partitions cannot predict each other;

i) Альтернативно информация о движении (например, MV) одного треугольного разбиения может использоваться для предсказания другого разбиения.i) Alternatively, the motion information (eg, MV) of one triangular partition can be used to predict another partition.

2. Предлагается, что, когда один блок разделен на два геометрических разбиения, одно разбиение можно кодировать в режиме внешнего предсказания, и другое разбиение можно кодировать в режиме внешнего предсказания.2. It is proposed that when one block is divided into two geometric partitions, one partition can be encoded in an inter prediction mode, and the other partition can be encoded in an inter prediction mode.

а) В одном примере для разбиения с внешне кодированием может также применяться би-предсказание.a) In one example, bi-prediction may also be used for externally encoded partitioning.

b) В одном примере такой способ может быть просигнализирован тогда, когда текущий блок закодирован в режиме слияния, то есть для внешне кодированного разбиения информация о движении сигнализируется с помощью индекса слияния.b) In one example, such a method may be signaled when the current block is encoded in merge mode, that is, for an externally encoded partition, motion information is signaled using the merge index.

c) Кроме того, в качестве альтернативы, могут быть дополнительно отфильтрованы значения предсказания выборок вдоль краевых границ.c) Additionally, as an alternative, the prediction values of the samples along the edge boundaries can be further filtered.

d) В одном примере может применяться только поднабор режимов внешнего предсказания.d) In one example, only a subset of inter prediction modes may be used.

i) Поднаборы для двух разбиений могут быть разными.i) The subsets for the two partitions may be different.

ii) Поднаборы могут зависеть от позиции разбиения.ii) Subsets may depend on the partition position.

iii) Поднаборы могут зависеть от размера блока и/или формы блока.iii) Subsets may depend on the block size and/or block shape.

3. Как описано в пп.1 и 2, внешне кодированный блок со слиянием или без слияния может использовать текущее изображение в качестве опорного изображения.3. As described in claims 1 and 2, the externally coded block with or without merging may use the current picture as a reference picture.

4. Предлагается, чтобы при кодировании одного блока в режиме треугольного разбиения внешне/внутренне кодированная информация несмежных пространственных блоков также могла бы рассматриваться в качестве предикторов для кодирования текущего блока.4. It is proposed that when encoding one block in the triangular partition mode, the externally/internally encoded information of non-adjacent spatial blocks could also be considered as predictors for encoding the current block.

а) В одном примере может использоваться информация о движении несмежных пространственных блоков.a) One example may use information about the motion of non-adjacent spatial blocks.

b) В одном примере может использоваться режим внешнего предсказания несмежных пространственных блоков.b) In one example, a non-contiguous spatial block inter prediction mode may be used.

c) В качестве альтернативы, кодированная информация временных блоков может дополнительно использоваться для кодирования одного блока с TPM.c) Alternatively, the encoded time block information may be further used to encode one block with a TPM.

5. Предлагается добавлять кандидаты движения, полученные из кандидатов HMVP, в процессе создания списка слияния для TPM-кодированных блоков, где кандидат HMVP (предсказание вектора движения на основе истории) является информацией о движении, унаследованной или полученной из ранее кодированных блоков.5. It is proposed to add motion candidates derived from HMVP candidates in the process of creating a merge list for TPM-encoded blocks, where the HMVP (History-Based Motion Vector Prediction) candidate is motion information inherited or derived from previously encoded blocks.

Ведение таблиц для хранения кандидатов HMVPMaintaining tables to store HMVP candidates

а) Ведение кандидатов HMVP и/или обновление таблиц для хранения и/или кандидатов HMVP может быть таким же, как HMVP для нормального вектора движения.a) Maintaining HMVP candidates and/or updating storage tables and/or HMVP candidates may be the same as HMVP for a normal motion vector.

b) В одном примере для хранения кандидатов HMVP можно вести одну и ту же таблицу, которая может использоваться как для не-TPM-кодированных блоков, так и для TPM-кодированных блоков.b) In one example, the same table can be maintained for storing HMVP candidates and can be used for both non-TPM encoded blocks and TPM encoded blocks.

i) В одном примере информация о движении, используемая TPM, не помещается в хранилище HMVP. Таблицы HMVP не обновляются после кодирования/декодирования TPM-кодированного блока.i) In one example, the traffic information used by the TPM does not fit into the HMVP storage. HMVP tables are not updated after encoding/decoding a TPM-encoded block.

c) В одном примере отдельные таблицы можно вести для хранения кандидатов HMVP для кодирования TPM-кодированных блоков.c) In one example, separate tables may be maintained to store HMVP candidates for encoding TPM-encoded blocks.

i) Таблицы можно вести для хранения кандидатов HMVP с информацией о движении исключительно из TPM-кодированных блоков.i) Tables can be maintained to store HMVP candidates with traffic information exclusively from TPM-encoded blocks.

ii) Две таблицы можно вести для хранения уни- и би-предсказанных кандидатов HMVP, соответственно.ii) Two tables can be maintained to store the uni- and bi-predicted HMVP candidates, respectively.

iii) Две таблицы можно вести для хранения информации о движении первого и второго разбиений, соответственно.iii) Two tables can be maintained to store the movement information of the first and second partitions respectively.

iv) Две таблицы можно вести для хранения информации о движении из списка 0 и списка 1 информации о движении, соответственно.iv) Two tables can be maintained to store traffic information from list 0 and list 1 of traffic information respectively.

v) В качестве альтернативы, три таблицы можно вести для хранения уни-предсказанных кандидатов из списка 0, уни-предсказанных кандидатов из L1 и би-предсказанных кандидатов HMVP, соответственно.v) Alternatively, three tables can be maintained to store uni-predicted candidates from list 0, uni-predicted candidates from L1 and bi-predicted HMVP candidates, respectively.

d) После кодирования с помощью TPM-кодированного блока таблицы для хранения кандидатов HMVP могут не обновляться.d) After encoding with a TPM-encoded block, the tables for storing HMVP candidates may not be updated.

i) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении первого разбиения.i) Alternatively, one/more tables for storing HMVP candidates may be updated with information about the movement of the first partition.

ii) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении второго разбиения.ii) Alternatively, one/more tables for storing HMVP candidates may be updated with information about the movement of the second partition.

iii) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении из обоих разбиений путем добавления двух кандидатов HMVP.iii) Alternatively, one/more tables for storing HMVP candidates can be updated with traffic information from both partitions by adding two HMVP candidates.

iv) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении из обоих разбиений путем добавления одного кандидата HMVP (например, когда два разбиения предсказаны из двух списков опорных изображений).iv) Alternatively, one/more tables for storing HMVP candidates can be updated with motion information from both splits by adding one HMVP candidate (eg, when two splits are predicted from two reference picture lists).

v) То, добавить ли один или два кандидата движения в таблицу HMVP, может зависеть от того, предсказаны ли два разбиения из одних и тех же списков опорных изображений и/или одного и того же опорного изображения.v) Whether one or two motion candidates are added to the HMVP table may depend on whether two splits are predicted from the same reference picture lists and/or the same reference picture.

vi) То, добавить ли информацию о движении первого или второго разбиения в таблицу HMVP, может зависеть от разницы POC между опорными изображениями и текущим изображением.vi) Whether to add motion information of the first or second split to the HMVP table may depend on the POC difference between the reference pictures and the current picture.

е) Когда отдельные таблицы хранятся для кодирования TPM-кодированных блоков и не-TPM- кодированных блоков, обновление таблиц может быть вызвано на основе режима одного блока.f) When separate tables are kept for encoding TPM-encoded blocks and non-TPM-encoded blocks, table updates may be caused on a single block mode basis.

i) В одном примере после декодирования TPM-кодированного блока, информация о движении может использоваться для обновления таблицы для кодирования TPM-кодированных блоков.i) In one example, after decoding a TPM-encoded block, the motion information may be used to update a table for encoding the TPM-encoded blocks.

ii) В одном примере после декодирования не-TPM-кодированного блока, информация о движении может использоваться для обновления таблицы для кодирования не-TPM-кодированных блоков.ii) In one example, after decoding a non-TPM-encoded block, the motion information may be used to update a table for encoding the non-TPM-encoded blocks.

iii) Кроме того, в качестве альтернативы, после декодирования не-TPM-кодированного блока, информация о движении может использоваться для обновления таблицы для кодирования TPM-кодированных блоков.iii) Additionally, as an alternative, after decoding a non-TPM encoded block, the motion information may be used to update the table for encoding the TPM encoded blocks.

Использование кандидатов HMVP в TPM-кодированных блокахUsing HMVP Candidates in TPM-Encoded Blocks

f) Кандидат HMVP может быть напрямую добавлен в список слияния для TPM-кодированных блоков.f) The HMVP candidate can be directly added to the merge list for TPM-encoded blocks.

i) В качестве альтернативы, один кандидат HMVP может использоваться для получения двух кандидатов движения, например, один представляет собой уни-предсказание с информацией о движении из списка 0, и другой - с уни-предсказанием с информацией о движении из списка 1 кандидата HMVP.i) Alternatively, one HMVP candidate can be used to obtain two motion candidates, for example, one is a uni-prediction with motion information from list 0, and the other is a uni-prediction with motion information from list 1 of the HMVP candidate.

ii) Усечение может применяться при вставке кандидата движения, полученного/унаследованного от кандидата HMVP, с другими кандидатами движения, полученными/унаследованными от пространственных или временных блоков.ii) Truncation may be applied when inserting a motion candidate derived/inherited from an HMVP candidate with other motion candidates derived/inherited from spatial or temporal blocks.

iii) Усечение может применяться при вставке кандидата движения, полученного/унаследованного от кандидата HMVP, с кандидатом движения, полученным/унаследованным от другого кандидата HMVP.iii) Truncation can be applied when inserting a motion candidate derived/inherited from an HMVP candidate with a motion candidate derived/inherited from another HMVP candidate.

iv) Усечение может применяться при вставке кандидата движения, полученного/унаследованного от кандидата HMVP, с другим кандидатом движения, полученным/унаследованным от одного и того же кандидата HMVP.iv) Truncation may be used when inserting a motion candidate derived/inherited from an HMVP candidate with another motion candidate derived/inherited from the same HMVP candidate.

g) В одном примере один или несколько кандидатов движения, полученных из одного или множества кандидатов HMVP, могут быть добавлены после кандидатов движения, полученных из пространственных и/или временных блоков, таких как блок 1-7, показанный на фиг.14. В этом случае кандидат HMVP обрабатывается таким же образом, как и другие кандидаты пространственного/временного слияния.g) In one example, one or more motion candidates derived from one or a plurality of HMVP candidates may be added after motion candidates derived from spatial and/or temporal blocks, such as block 1-7 shown in FIG. 14. In this case, the HMVP candidate is processed in the same way as other spatial/temporal merge candidates.

h) Кандидаты движения, унаследованные/полученные из кандидатов HMVP, могут быть добавлены в список слияния сразу после или перед конкретным этапом в процессе создания списка слияния, который основан на информации о движении пространственных/временных блоков.h) Motion candidates inherited/derived from HMVP candidates can be added to the merge list immediately after or before a specific step in the merge list creation process, which is based on the motion information of space/time blocks.

i) В качестве альтернативы, кандидаты движения, унаследованные/полученные из кандидатов HMVP, могут быть добавлены в список слияния сразу после или перед несколькими заданными этапами.i) Alternatively, motion candidates inherited/derived from HMVP candidates can be added to the merge list immediately after or before several specified steps.

ii) В одном примере один или несколько кандидатов HMVP с уни-предсказанием могут быть добавлены сразу после всех первоначально предсказанных кандидатов с текущей конфигурацией.ii) In one example, one or more uni-prediction HMVP candidates may be added immediately after all originally predicted candidates with the current configuration.

iii) В одном примере один или несколько кандидатов HMVP с уни-предсказанием из L0 или би-предсказанием могут быть добавлены сразу после всех предсказанных кандидатов из усеченного списка 0. Кроме того, в качестве альтернативы, если кандидат HMVP имеет би-предсказание, храниться может только информация о движении из списка 0.iii) In one example, one or more HMVP candidates with a uni-prediction from L0 or a bi-prediction may be added immediately after all predicted candidates from the truncated list 0. Additionally, as an alternative, if the HMVP candidate has a bi-prediction, the storage may only traffic information from list 0.

iv) В одном примере один или несколько кандидатов HMVP с уни-предсказанием из L1 или би-предсказанием могут быть добавлены сразу после всех предсказанных кандидатов из усеченного списка 1. Кроме того, в качестве альтернативы, если кандидат HMVP имеет би-предсказание, храниться может только информация о движении из списка 1.iv) In one example, one or more HMVP candidates with uni-prediction from L1 or bi-prediction may be added immediately after all predicted candidates from truncated list 1. Additionally, as an alternative, if the HMVP candidate has a bi-prediction, the storage may only traffic information from list 1.

v) В одном примере один или несколько кандидатов HMVP могут быть добавлены сразу после всего усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1.v) In one example, one or more HMVP candidates may be added immediately after the entire averaged uni-prediction of motion candidates from list 0 or list 1.

vi) В одном примере один или несколько кандидатов HMVP могут быть добавлены сразу перед всем усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1.vi) In one example, one or more HMVP candidates may be added immediately before the entire averaged uni-prediction of list 0 or list 1 motion candidates.

i) Кандидаты движения, унаследованные/полученные из кандидатов HMVP, могут быть добавлены в список слияния с чередованием с кандидатами движения, унаследованными/полученными из информации о движении пространственных/временных блоков.i) Motion candidates inherited/derived from HMVP candidates may be added to an interleaved merge list with motion candidates inherited/derived from space/time block motion information.

j) В одном примере кандидаты движения, полученные из списка 0 и списка 1 каждого кандидата HMVP, могут быть добавлены по порядку перед кандидатами движения, полученными из списка 0 и списка 1 другого кандидата HMVP.j) In one example, motion candidates obtained from List 0 and List 1 of each HMVP candidate may be added in order before the motion candidates obtained from List 0 and List 1 of another HMVP candidate.

k) В одном примере кандидаты движения, полученные из списка 0 первого набора кандидатов HMVP, могут быть добавлены по порядку перед теми кандидатами движения, которые были получены из списка 1 второго набора кандидатов HMVP.k) In one example, motion candidates obtained from List 0 of the first HMVP candidate set may be added in order before those motion candidates obtained from List 1 of the second HMVP candidate set.

i) В одном примере первый набор и второй набор представляют собой один и тот же набор, то есть все доступные кандидаты HMVP.i) In one example, the first set and the second set are the same set, that is, all available HMVP candidates.

ii) В качестве альтернативы, первый набор и второй набор могут быть разными, например, первый набор кандидатов HMVP включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием; в то время как второй набор кандидатов HMVP включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием.ii) Alternatively, the first set and the second set may be different, for example, the first set of HMVP candidates includes HMVP candidates with uni-prediction from list 0 and bi-prediction; while the second set of HMVP candidates includes list 1 uni-prediction and bi-prediction HMVP candidates.

iii) Количество кандидатов HMVP, ассоциированных с первым и вторым наборами, может быть разным.iii) The number of HMVP candidates associated with the first and second sets may be different.

l) Кандидаты HMVP из списка LX могут сначала масштабироваться до списка L(1-X) и затем использоваться для списка L(1-X).l) HMVP candidates from the LX list can be first scaled to the L(1-X) list and then used for the L(1-X) list.

i) Масштабированные кандидаты могут быть вставлены после всех других кандидатов.i) Scaled candidates can be inserted after all other candidates.

ii) Масштабированные кандидаты могут быть вставлены после всех других кандидатов, кроме временных кандидатов.ii) Scaled candidates can be inserted after all other candidates except temporary candidates.

m) Порядок проверки кандидатов HMVP, которые должны использоваться для получения кандидатов движения, которые будут добавлены в список слияния TPM, может зависеть от индексов кандидатов HMVP.m) The order in which the HMVP candidates are checked to be used to obtain motion candidates to be added to the TPM merge list may depend on the HMVP candidate indices.

i) В качестве альтернативы, этот порядок может зависеть от направлений предсказания.i) Alternatively, this order may depend on the prediction directions.

ii) В качестве альтернативы, это порядок может зависеть от информации о движении.ii) Alternatively, this order may depend on motion information.

6. Количество HMVP для проверки в процессе создания списка слияния TPM может быть определено заранее, например, 5.6. The number of HMVPs to check during the TPM merge list creation process can be defined in advance, for example, 5.

а) Количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, может зависеть от размера блока/формы блока/количества доступных кандидатов перед проверкой кандидатов HMVP.a) The number of HMVP candidates to be checked during the TPM merge list creation process may depend on the block size/block shape/number of available candidates before checking the HMVP candidates.

b) Количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, может сигнализироваться в SPS/VPS/PPS/заголовке изображения/заголовке слайса/заголовке группы тайлов/строках CTU/CTU/группе CTU.b) The number of HMVP candidates to be checked during the TPM merge list creation process may be signaled in the SPS/VPS/PPS/Image Header/Slice Header/Tile Group Header/CTU Lines/CTU/CTU Group.

c) Когда часть доступных кандидатов HMVP должна быть проверена в процессе создания списка слияния в TPM, выбор кандидатов HMVP может зависеть от направления предсказания/информации MV/индекса опорного изображения/расстояний POC опорного изображения и текущего изображения кандидата и/или индекса кандидата.c) When a portion of the available HMVP candidates must be checked during the merge list creation process in the TPM, the selection of HMVP candidates may depend on the prediction direction/MV information/reference picture index/POC distances of the reference picture and the current candidate picture and/or candidate index.

7. То, применять ли и как применять HMVP к TPM-кодированному блоку, может зависеть от размера блока (например, ширины и/или высоты, соотношения ширины и высоты) или формы блока (например, квадратной или неквадратной).7. Whether and how to apply HMVP to a TPM-encoded block may depend on the size of the block (eg, width and/or height, aspect ratio) or the shape of the block (eg, square or non-square).

8. Предложенные способы могут быть также применимы к другим типам списков кандидатов движения (например, к списку AMVP) для геометрических разбиений.8. The proposed methods can also be applied to other types of motion candidate lists (for example, the AMVP list) for geometric partitions.

9. Размер таблицы HMVP (то есть может быть сохранено максимальное количество кандидатов движения на основе истории) может зависеть от функции одного или множества размеров списка кандидатов движения.9. The size of the HMVP table (ie, the maximum number of motion candidates can be stored based on history) may depend on a function of one or multiple motion candidate list sizes.

а) В одном примере размер таблицы HMVP может зависеть от размера регулярного списка слияния, размера списка слияния TPM, размера списка слияния IBC, размера регулярного списка интер-AMVP, размера регулярного списка интер-IBC и т.д.a) In one example, the size of the HMVP table may depend on the size of the regular merge list, the size of the TPM merge list, the size of the IBC merge list, the size of the inter-AMVP regular list, the size of the inter-IBC regular list, etc.

b) В одном примере размер таблицы HMVP может зависеть от тех списков кандидатов движения, которые обращаются к одной и той же таблице HMVP.b) In one example, the size of the HMVP table may depend on those motion candidate lists that access the same HMVP table.

c) В одном примере функция может быть функцией Max(значения входных параметров), которая возвращает максимальное значение среди множества значений входных параметров.c) In one example, the function may be a Max(input parameter values) function that returns the maximum value among a set of input parameter values.

d) В одном примере размер таблицы HMVP может быть определен как Max(размер регулярного списка слияния минус K0, размер списка слияния TPM минус K1, размер списка слияния IBC минус K2).d) In one example, the size of the HMVP table can be defined as Max(regular merge list size minus K0, TPM merge list size minus K1, IBC merge list size minus K2).

i) В одном примере K0 = K1 = K2 = 1.i) In one example, K0 = K1 = K2 = 1.

10. Размер таблицы HMVP (то есть может быть сохранено максимальное количество кандидатов движения на основе истории) может зависеть от функции одного или большего количества кандидатов HMVP (обозначенных numHMVP), которые могут быть добавлены в списки кандидатов движения.10. The size of the HMVP table (ie, the maximum number of history-based motion candidates can be stored) may depend on the function of one or more HMVP candidates (denoted numHMVP) that may be added to the motion candidate lists.

а) В одном примере этот размер таблицы HMVP может зависеть от количества кандидатов HMVP, которые могут быть добавлены в списки кандидатов движения (например, регулярный список слияния, список слияния TPM, список слияния IBC, регулярный список интер-AMVP, регулярный список интер-IBC и т.д.).a) In one example, this HMVP table size may depend on the number of HMVP candidates that may be added to the movement's candidate lists (e.g., regular merge list, TPM merge list, IBC merge list, regular inter-AMVP list, regular inter-IBC list etc.).

b) В одном примере функция может быть функцией Max(значения входных параметров), которая возвращает максимальное значение среди множества значений входных параметров.b) In one example, the function may be a Max(input parameter values) function that returns the maximum value among a set of input parameter values.

c) В одном примере размер таблицы HMVP может быть определен как Max(numHMVP для регулярного списка слияния минус K0, numHMVP для регулярного списка AMVP минус K1).c) In one example, the size of the HMVP table can be defined as Max(numHMVP for regular merge list minus K0, numHMVP for regular AMVP list minus K1).

ii) В одном примере K0 = 1, и K1 = 0.ii) In one example, K0 = 1, and K1 = 0.

d) В одном примере размер таблицы HMVP может быть определен как Max(numHMVP для регулярного списка слияния минус K0, numHMVP для списка слияния TPM минус K1, numHMVP для размера списка слияния IBC минус K2).d) In one example, the size of the HMVP table can be defined as Max(numHMVP for regular merge list minus K0, numHMVP for TPM merge list minus K1, numHMVP for IBC merge list size minus K2).

iii) В одном примере K0 = K1 = K2 = 1.iii) In one example, K0 = K1 = K2 = 1.

11. Размер таблицы HMVP для одного режима кодирования может отличаться от размера таблицы HMVP для другого режима кодирования и может зависеть от размера списка кандидатов движения.11. The size of the HMVP table for one encoding mode may be different from the size of the HMVP table for another encoding mode and may depend on the size of the motion candidate list.

а) В одном примере размер таблицы HMVP для списков регулярного слияния и слияния TPM может зависеть от размера регулярного списка слияния.a) In one example, the size of the HMVP table for the regular merge and TPM merge lists may depend on the size of the regular merge list.

iv) В одном примере размер таблицы HMVP может быть равен размеру регулярного списка слияния минус K0, например, K0 = 1.iv) In one example, the size of the HMVP table could be equal to the size of the regular merge list minus K0, for example, K0 = 1.

b) В одном примере размер таблицы HMVP для списков регулярного слияния и слияния TPM может зависеть от размера регулярного списка слияния и размера списка слияния TPM.b) In one example, the size of the HMVP table for the regular merge and TPM merge lists may depend on the size of the regular merge list and the size of the TPM merge list.

v) В одном примере размер таблицы HMVP может быть определен как Max(размер регулярного списка слияния минус K0, размер списка слияния TPM минус K1).v) In one example, the size of the HMVP table can be defined as Max(regular merge list size minus K0, TPM merge list size minus K1).

vi) В одном примере таблица HVMP для нормального интер-AMVP следует за таблицей, которая используется для списков регулярного слияния и слияния TPM.vi) In one example, the HVMP table for normal inter-AMVP follows the table that is used for the regular merge and TPM merge lists.

c) В одном примере размер таблицы HMVP для блоков, кодированных IBC, зависит от этого размера для регулярного списка слияния и/или списка слияния TPM.c) In one example, the size of the HMVP table for IBC encoded blocks depends on that size for the regular merge list and/or TPM merge list.

vii) Например, размер таблицы HMVP для блоков, кодированных IBC, равен размеру для регулярного списка слияния и/или списка слияния TPM.vii) For example, the size of the HMVP table for IBC encoded blocks is equal to the size for a regular merge list and/or a TPM merge list.

viii) В качестве альтернативы, размер таблицы HMVP для блоков слияния/AVMP с кодированием IBC может зависеть от размера списка кандидатов слияния IBC/AMVP.viii) Alternatively, the size of the HMVP table for IBC encoded merge/AVMP blocks may depend on the size of the IBC/AMVP merge candidate list.

d) Указания размеров таблицы HMVP могут передаваться в битовом потоке.d) HMVP table size indications may be carried in a bit stream.

ix) Когда просигнализированный размер равен 0, кандидаты HMVP не вставляются ни в какие списки кандидатов движения.ix) When the signaled size is 0, HMVP candidates are not inserted into any motion candidate lists.

x) В одном примере размер таблицы HMVP не может быть равен 0.x) In one example, the size of the HMVP table cannot be 0.

xi) В качестве альтернативы, сигнализируется размер таблицы HMVP минус K0, например, K0 = 1.xi) Alternatively, the size of the HMVP table minus K0 is signaled, e.g. K0 = 1.

12. Указания количества разрешенных кандидатов HMVP, которые могут быть добавлены в списки кандидатов движения, могут передаваться в битовом потоке.12. Indications of the number of allowed HMVP candidates that may be added to motion candidate lists may be transmitted in the bit stream.

а) В одном примере для каждого режима (например, для IBC или не-IBC; слияния без AMVP) указание количества разрешенных кандидатов HMVP может сигнализироваться независимым образом.a) In one example, for each mode (eg, IBC or non-IBC; non-AMVP mergers), an indication of the number of allowed HMVP candidates may be signaled independently.

b) В качестве альтернативы, указания количества разрешенных кандидатов HMVP могут сигнализироваться посредством предсказания.b) Alternatively, indications of the number of allowed HMVP candidates may be signaled via prediction.

c) Кроме того, в качестве альтернативы, размеры таблицы HMVP могут зависеть от разрешенного количества кандидатов HMVP.c) Additionally, as an alternative, the HMVP table sizes may depend on the number of HMVP candidates allowed.

d) Например, количество разрешенных кандидатов HMVP, которое может быть добавлено в списки кандидатов движения, не может быть равным 0.d) For example, the number of allowed HMVP candidates that can be added to a movement's candidate lists cannot be 0.

е) В качестве альтернативы, может быть просигнализировано количество разрешенных кандидатов HMVP, которое может быть добавлено в списки кандидатов движения минус K0, например, K0 = 1.f) Alternatively, the number of allowed HMVP candidates that can be added to the motion candidate lists minus K0 can be signaled, e.g. K0 = 1.

f) В качестве альтернативы, может применяться кодирование с предсказанием количества разрешенных кандидатов HMVP, которое может быть добавлено в список кандидатов движения (обозначенный numHMVP), и количества максимальных кандидатов движения в списке кандидатов движения (обозначенных numMotionList).f) Alternatively, predictive coding may be applied to the number of allowed HMVP candidates that can be added to the motion candidate list (denoted numHMVP) and the number of maximum motion candidates in the motion candidate list (denoted numMotionList).

12) В одном примере может быть кодирована разница между numMotionList и numHMVP.12) One example could encode the difference between numMotionList and numHMVP.

13) В одном примере может быть кодирована разница между (numMotionList-K0) и numHMVP, например, K0 = 1.13) One example could encode the difference between (numMotionList-K0) and numHMVP, e.g. K0 = 1.

13. Количество разрешенных кандидатов HMVP, которое может быть добавлено в списки кандидатов движения, может зависеть от размеров списка кандидатов движения.13. The number of permitted HMVP candidates that can be added to a movement's candidate lists may depend on the size of the movement's candidate list.

а) В одном примере оно может быть получено из соответствующего размера списка кандидатов движения, такого как (размер списка минус K0), например, K0 = 0 или 1.a) In one example, it can be obtained from the appropriate size of the motion candidate list, such as (list size minus K0), e.g. K0 = 0 or 1.

b) В одном примере это количество может быть получено из размера соответствующей таблицы HMVP, которая используется списком кандидатов движения, например, (размер таблицы минус K0), например, K0 = 0 или 1.b) In one example, this quantity may be derived from the size of the corresponding HMVP table that is used by the motion candidate list, e.g. (table size minus K0), e.g. K0 = 0 or 1.

14. Соответствующий битовый поток должен удовлетворять тому, что количество разрешенных кандидатов HMVP, которые могут быть добавлены в список кандидатов движения, не превышает количества максимальных кандидатов движения в списке кандидатов движения.14. The corresponding bitstream shall satisfy that the number of allowed HMVP candidates that can be added to the motion candidate list does not exceed the number of maximum motion candidates in the motion candidate list.

а) В качестве альтернативы, соответствующий битовый поток должен удовлетворять тому, что в список кандидатов движения могут быть добавлены разрешенные кандидаты HMVP, количество которых не превышает (количества максимальных кандидатов движения в списке кандидатов движения минус K0), например, K0 = 1.a) Alternatively, the corresponding bitstream shall satisfy that allowed HMVP candidates can be added to the motion candidate list, the number of which does not exceed (the number of maximum motion candidates in the motion candidate list minus K0), e.g., K0 = 1.

На фиг.29 показана блок-схема устройства 2900 обработки видео. Устройство 2900 можно использовать для реализации одного или более способов, описанных в данном документе. Устройство 2900 может быть воплощено в смартфоне, планшетном компьютере, компьютере, приемнике Интернета вещей (IoT) и т.д. Устройство 2900 может включать в себя один или более процессоров 2902, одно или более устройств 2904 памяти и аппаратные средства 2906 обработки видео. Один или более процессоров 2902 могут быть выполнены с возможностью реализации одного или более способов, описанных в настоящем документе. Одно или более устройств 2904 памяти могут быть использованы для хранения данных и кода, используемых для реализации способов и технологий, описанных в данном документе. Аппаратные средства 2906 обработки видео могут использоваться для реализации в аппаратных схемах некоторых технологий, описанных в данном документе.FIG. 29 shows a block diagram of a video processing apparatus 2900. Apparatus 2900 may be used to implement one or more of the methods described herein. The device 2900 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. Apparatus 2900 may include one or more processors 2902, one or more memory devices 2904, and video processing hardware 2906. One or more processors 2902 may be configured to implement one or more of the methods described herein. One or more memory devices 2904 may be used to store data and code used to implement the methods and technologies described herein. Video processing hardware 2906 may be used to implement in hardware circuits some of the technologies described herein.

На фиг.31 показана блок-схема последовательности операций способа 3100 обработки видео. Способ 3100 включает в себя определение (3105) того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, определение (3110) первой подчасти предсказания и второй подчасти предсказания для первого видеоблока на основе определения того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, причем одна или обе из первой подчасти предсказания или второй подчасти предсказания являются непрямоугольными и неквадратными частями первого видеоблока, и дополнительную обработку (3115) первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания.FIG. 31 is a flowchart of a video processing method 3100. Method 3100 includes determining (3105) that the first video block is internally coded or externally coded without merging, determining (3110) a first prediction subpart and a second prediction subpart for the first video block based on determining that the first video block is internally coded or externally coded without merging, wherein one or both of the first prediction sub-part or the second prediction sub-part are non-rectangular and non-square portions of the first video block, and further processing (3115) of the first video block using the first prediction sub-part and the second prediction sub-part.

На фиг.32 показана блок-схема последовательности операций способа 3200 обработки видео. Способ 3200 включает в себя определение (3205) того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, определение (3210) первой подчасти предсказания и второй подчасти предсказания для первого видеоблока, причем одна или обе из: первой подчасти предсказания или второй подчасти предсказания являются непрямоугольными и неквадратными частями первого видеоблока, и дополнительную обработку (3215) первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания, причем по меньшей мере одна часть предсказания является внешне кодированной со слиянием или без слияния с использованием текущего изображения в качестве опорного изображения.FIG. 32 is a flowchart of a video processing method 3200. Method 3200 includes determining (3205) that the first video block is intra-encoded or externally encoded without merging, determining (3210) a first prediction sub-part and a second prediction sub-part for the first video block, wherein one or both of the first prediction sub-part or the second prediction sub-part are non-rectangular and non-square portions of the first video block, and further processing (3215) of the first video block using the first prediction sub-part and the second prediction sub-part, wherein at least one prediction part is externally encoded with or without merging using the current image as a reference image.

На фиг.33 показана блок-схема последовательности операций способа 3300 обработки видео. Способ 3300 включает в себя определение (3305) того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, определение (3310) первой подчасти предсказания и второй подчасти предсказания для первого видеоблока, причем одна или обе из: первой подчасти предсказания или второй подчасти предсказания являются непрямоугольными и неквадратными частями первого видеоблока, и дополнительную обработку (3315) первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания, причем дополнительная обработка первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания основана на интра- или внешне кодированной информации о несмежных пространственных блоках по отношению к первому видеоблоку.FIG. 33 is a flowchart of a video processing method 3300. Method 3300 includes determining (3305) that the first video block is intra-encoded or externally encoded without merging, determining (3310) a first prediction sub-part and a second prediction sub-part for the first video block, wherein one or both of the first prediction sub-part or the second prediction sub-part are non-rectangular and non-square portions of the first video block, and further processing (3315) of the first video block using a first prediction sub-part and a second prediction sub-part, wherein additional processing of the first video block using the first prediction sub-part and the second prediction sub-part is based on intra- or externally encoded information about non-adjacent spatial blocks in relation to the first video block.

На фиг.34 показана блок-схема последовательности операций способа 3400 обработки видео. Способ 3400 включает в себя определение (3405) того, что первый видеоблок кодируется в режиме треугольной части (TPM) с использованием треугольной части предсказания первого видеоблока, и что второй видеоблок кодируется с использованием не-TPM, использующей нетреугольную часть предсказания второго видеоблока, дополнительную обработку (3410) первого видеоблока и второго видеоблока с использованием сохраненных кандидатов HMVP и сохранение (3415) кандидатов HMVP, ассоциированных с первым видеоблоком и вторым видеоблоком.FIG. 34 is a flowchart of a video processing method 3400. Method 3400 includes determining (3405) that the first video block is encoded in a triangular portion mode (TPM) using the triangular portion of the prediction of the first video block, and that the second video block is encoded in a non-TPM using the non-triangular portion of the prediction of the second video block, further processing (3410) the first video block and the second video block using the stored HMVP candidates; and storing (3415) the HMVP candidates associated with the first video block and the second video block.

На фиг.35 показана блок-схема последовательности операций способа 3500 обработки видео. Способ 3500 включает в себя определение (3505) того, что первый видеоблок включает в себя части предсказания, которые являются непрямоугольными и неквадратными частями первого видеоблока, идентификацию (3510) кандидата HMVP, добавление (3515) одного или более кандидатов движения, полученных из кандидата HMVP, в список слияния, ассоциированный с видеоблоками, которые включают в себя части предсказания, которые являются непрямоугольными и неквадратными, и дополнительную обработку (3520) первого видеоблока с использованием списка слияния.FIG. 35 is a flowchart of a video processing method 3500. Method 3500 includes determining (3505) that the first video block includes prediction portions that are non-rectangular and non-square portions of the first video block, identifying (3510) an HMVP candidate, adding (3515) one or more motion candidates derived from the HMVP candidate , to a merge list associated with video blocks that include prediction portions that are non-rectangular and non-square, and further processing (3520) of the first video block using the merge list.

Что касается способов 3100, 3200, 3300, 3400 и 3500, некоторые примеры определения кандидата для кодирования и их использования описаны в разделе 4 настоящего документа. Например, как описано в разделе 4, видеоблоки могут обрабатываться с использованием частей предсказания, которые являются неквадратными и непрямоугольными.With respect to methods 3100, 3200, 3300, 3400, and 3500, some examples of determining encoding candidates and their use are described in section 4 of this document. For example, as described in Section 4, video blocks can be processed using prediction parts that are non-square and non-rectangular.

Что касается способов 3100, 3200, 3300, 3400 и 3500, видеоблок может быть кодирован в битовом потоке видео, в котором эффективность битов может быть достигнута путем использования правила выработки битового потока, которое относится к предсказанию информации о движении.As for methods 3100, 3200, 3300, 3400 and 3500, a video block may be encoded in a video bitstream, in which bit efficiency can be achieved by using a bitstream generation rule that relates to motion information prediction.

Способы могут включать в себя определение информации изображения первой подчасти предсказания с использованием первого режима внешнего предсказания; и определение информации изображения второй подчасти предсказания с использованием второго режима внешнего предсказания, при этом первый режим внешнего предсказания отличается от второго режима внешнего предсказания.The methods may include determining image information of a first prediction sub-part using a first inter prediction mode; and determining image information of the second prediction sub-part using a second inter prediction mode, wherein the first inter prediction mode is different from the second inter prediction mode.

Способы могут включать в себя фильтрацию значений предсказания, которые относятся к первой подчасти предсказания и второй подчасти предсказания, вдоль крайней границы между первой частью предсказания и второй частью предсказания.The methods may include filtering prediction values that relate to a first prediction sub-part and a second prediction sub-part along an extreme boundary between the first prediction part and the second prediction part.

Способы могут включать в себя определение процессором первой информации о движении первой подчасти предсказания; и определение процессором второй информации о движении для второй подчасти предсказания, причем первая информация о движении определяется без использования второй информации о движении, и вторая информация о движении определяется без использования первой информации о движении.The methods may include: a processor determining first motion information of a first prediction sub-part; and determining by the processor second motion information for the second prediction sub-part, wherein the first motion information is determined without using the second motion information, and the second motion information is determined without using the first motion information.

Способы могут включать в себя определение процессором первой информации о движении первой подчасти предсказания; и определение процессором второй информации о движении для второй подчасти предсказания, причем вторая информация о движении определяется с использованием первой информации о движении.The methods may include: a processor determining first motion information of a first prediction sub-part; and determining, by the processor, second motion information for the second prediction sub-part, wherein the second motion information is determined using the first motion information.

Способы могут включать в себя обработку первой подчасти предсказания с помощью кодирования в режиме внутреннего предсказания; и обработку второй подчасти предсказания с помощью кодирования в режиме внешнего предсказания.The methods may include processing the first prediction sub-part using intra prediction mode coding; and processing the second prediction sub-part using inter prediction mode coding.

Способы могут включать в себя то, что обработка второй подчасти предсказания включает в себя применение би-предсказания.The methods may include the processing of the second prediction sub-part including applying a bi-prediction.

Способы могут включать в себя то, что обработка второй подчасти предсказания включает в себя определение информации о движении, просигнализированной с помощью индекса слияния.The methods may include that processing the second prediction sub-part includes determining motion information signaled by the fusion index.

Способы могут включать в себя фильтрацию значений предсказания, которые относятся к первой подчасти предсказания и второй подчасти предсказания, вдоль крайней границы между первой частью предсказания и второй частью предсказания.The methods may include filtering prediction values that relate to a first prediction sub-part and a second prediction sub-part along an extreme boundary between the first prediction part and the second prediction part.

Способы могут включать в себя использование поднабора кодирования в режиме внешнего предсказания.The methods may include using a subset of inter-prediction mode coding.

Способы могут включать в себя то, что первая подчасть предсказания и вторая подчасть предсказания ассоциируются с разными поднаборами кодирования в режиме внешнего предсказания.The methods may include the first prediction subpart and the second prediction subpart being associated with different inter prediction mode encoding subsets.

Способы могут включать в себя то, что первая подчасть предсказания и вторая подчасть предсказания ассоциируются с разными поднаборами кодирования в режиме внутренне кодирования на основе позиций первой подчасти предсказания и второй подчасти предсказания.The methods may include associating the first prediction sub-part and the second prediction sub-part with different encoding subsets in an intra-coding mode based on the positions of the first prediction sub-part and the second prediction sub-part.

Способы могут включать в себя то, что первая подчасть предсказания и вторая подчасть предсказания ассоциируются с разными поднаборами кодирования в режиме внутренне кодирования на основе одного или множества из: размера первого видеоблока или формы первого видеоблока.The methods may include the first prediction subpart and the second prediction subpart being associated with different intra-mode encoding subsets based on one or a plurality of: the size of the first video block or the shape of the first video block.

Способы могут включать в себя то, что внешне или внутренне кодированная информация несмежных пространственных видеоблоков включает в себя информацию о движении несмежных пространственных видеоблоков.The methods may include that the externally or internally encoded information of the non-contiguous spatial video blocks includes motion information of the non-contiguous spatial video blocks.

Способы могут включать в себя использование режима внешнего предсказания несмежных пространственных видеоблоков.The methods may include using an inter-prediction mode of non-contiguous spatial video blocks.

Способы могут включать в себя использование кодированной информации временных блоков.The methods may include using encoded time block information.

Способы могут включать в себя добавление кандидатов предсказания вектора движения (HMVP) на основе истории в список кандидатов предсказания вектора движения, причем кандидаты HMVP включают в себя информацию о движении на основе ранее кодированных видеоблоков; и декодирование первого видеоблока на основе кандидатов HMVP.The methods may include adding history-based motion vector prediction (HMVP) candidates to a list of motion vector prediction candidates, the HMVP candidates including motion information based on previously encoded video blocks; and decoding the first video block based on the HMVP candidates.

Способы могут включать в себя то, что кандидаты HMVP хранятся в таблице, и информация о движении, используемая TPM, не хранится в таблице.Methods may include HMVP candidates being stored in a table, and motion information used by the TPM not being stored in the table.

Способы могут включать в себя то, что таблица не обновляется после кодирования или декодирования первого видеоблока с использованием TPM.Methods may include the table not being updated after the first video block is encoded or decoded using the TPM.

Способы могут включать в себя то, что кандидаты HMVP хранятся в первой таблице и во второй таблице, причем первая таблица хранит кандидаты HMVP для TPM, и вторая таблица хранит кандидаты HMVP для не-TPM.The methods may include storing HMVP candidates in a first table and a second table, the first table storing HMVP candidates for TPMs and the second table storing HMVP candidates for non-TPMs.

Способы могут включать в себя то, что одна из первой или второй таблиц хранит уни-предсказанные кандидаты HMVP, а другая хранит би-предсказанные кандидаты HMVP.The methods may include one of the first or second tables storing uni-predicted HMVP candidates and the other storing bi-predicted HMVP candidates.

Способы могут включать в себя то, что одна из первой таблицы или второй таблицы хранит информацию о движении первой подчасти разбиения, а другая хранит информацию о движении второй подчасти разбиения.The methods may include one of the first table or the second table storing information about the movement of the first subpartition, and the other storing information about the movement of the second subpartition.

Способы могут включать в себя то, что одна из первой таблицы или второй таблицы хранит информацию о движении из списка 0, а другая хранит информацию о движении из списка 1.The methods may include one of the first table or the second table storing motion information from list 0 and the other storing motion information from list 1.

Способы могут включать в себя то, что первая таблица хранит уни-предсказанные кандидаты HMVP из списка 0, вторая таблица хранит уни-предсказанные кандидаты HMVP из списка 1, и третья таблица хранит би-предсказанные кандидаты HMVP.The methods may include the first table storing uni-predicted HMVP candidates from list 0, the second table storing uni-predicted HMVP candidates from list 1, and the third table storing bi-predicted HMVP candidates.

Способы могут включать в себя то, что таблицы для хранения кандидатов HMVP не обновляются на основании того, что одна или обе из первой подчасти предсказания или второй подчасти предсказания являются частями с непрямоугольной и неквадратной геометрией первого видеоблока.The methods may include not updating tables for storing HMVP candidates based on the fact that one or both of the first prediction sub-part or the second prediction sub-part are non-rectangular and non-square geometry parts of the first video block.

Способы могут включать в себя обновление одной или множества из первой таблицы или второй таблицы для хранения кандидатов HMVP с информацией о движении первой подчасти разбиения.The methods may include updating one or a plurality of the first table or the second table for storing HMVP candidates with information about the movement of the first subpartition.

Способы могут включать в себя обновление одной или множества из первой таблицы или второй таблицы для хранения кандидатов HMVP с информацией о движении второй подчасти разбиения.The methods may include updating one or a plurality of the first table or the second table for storing HMVP candidates with information about the movement of the second subpartition.

Способы могут включать в себя обновление одной или множества из первой таблицы или второй таблицы для хранения кандидатов HMVP с информацией о движении первой подчасти разбиения и информацией о движении второй подчасти разбиения.The methods may include updating one or a plurality of the first table or the second table for storing HMVP candidates with motion information of the first subpartition and motion information of the second subpartition.

Способы могут включать в себя определение того, что первая подчасть разбиения и вторая подчасть разбиения предсказаны из двух списков опорных изображений; и обновление одной или множества таблиц для хранения кандидатов HMVP с информацией о движении одного кандидата HMVP на основе определения того, что первая часть разбиения и вторая часть разбиения предсказаны из двух списков опорных изображений.The methods may include determining that a first partition subpart and a second partition subpart are predicted from two reference picture lists; and updating one or more tables for storing HMVP candidates with information about the movement of one HMVP candidate based on determining that the first partition part and the second partition part are predicted from the two reference picture lists.

Эти способы могут включать в себя определение того, что первая часть разбиения и вторая часть разбиения предсказаны с использованием одного и того же списка опорных изображений или одного и того же опорного изображения, при этом таблицы обновляются на основе определения того, что первая часть разбиения и вторая часть разбиения предсказаны с использованием одного и того же списка опорных изображений или одного и того же опорного изображения.These methods may include determining that the first partition part and the second partition part are predicted using the same list of reference pictures or the same reference picture, wherein the tables are updated based on the determination that the first partition part and the second partition part of the partition are predicted using the same list of reference pictures or the same reference picture.

Способы могут включать в себя определение разницы последовательности изображений (POC) между опорным изображением и текущим изображением, причем информация о движении первой подчасти разбиения или второй подчасти разбиения добавляется в одну или несколько таблиц на основе разницы POC.The methods may include determining a picture sequence (POC) difference between a reference picture and a current picture, wherein motion information of the first tile sub-part or the second tile sub-part is added to one or more tables based on the POC difference.

Способы могут включать в себя определение характеристик относительно кодирования первого видеоблока; и обновление одной или обеих первой таблицы или второй таблицы на основе характеристик относительно кодирования первого видеоблока.The methods may include determining characteristics regarding the encoding of the first video block; and updating one or both of the first table or the second table based on characteristics regarding the encoding of the first video block.

Способы могут включать в себя использование информации о движении для обновления таблицы, ассоциированной с видеоблоками TPM после декодирования видеоблока TPM.The methods may include using motion information to update a table associated with TPM video blocks after decoding the TPM video block.

Способы могут включать в себя использование информации о движении для обновления таблицы, ассоциированной с видеоблоками не-TPM, после декодирования видеоблока не-TPM.The methods may include using motion information to update a table associated with non-TPM video blocks after decoding the non-TPM video block.

Способы могут включать в себя использование информации о движении для обновления таблицы, ассоциированной с видеоблоками TPM, после декодирования видеоблока не-TPM.The methods may include using motion information to update a table associated with TPM video blocks after decoding a non-TPM video block.

Способы могут включать в себя определение первого кандидата движения и второго кандидата движения из кандидата HMVP, при этом один из первого кандидата слияния или второго кандидата слияния представляет собой уни-предсказание с информацией о движении из списка 0 кандидата HMVP, а другой представляет собой универсальное предсказание с информацией о движении из списка 1 кандидата HMVP.The methods may include determining a first motion candidate and a second motion candidate from the HMVP candidate, wherein one of the first fusion candidate or the second fusion candidate is a uni-prediction with motion information from HMVP candidate list 0, and the other is a uni-prediction with information about the movement from the list of HMVP candidates.

Способы могут включать в себя усечение на основе вставки кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на пространственных или временных видеоблоках.The methods may include trimming based on insertion of a motion candidate obtained from an HMVP candidate with other motion candidates that are based on spatial or temporal video blocks.

Способы могут включать в себя усечение на основе вставки кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на других кандидатах HMVP.The methods may include trimming based on insertion of a motion candidate derived from an HMVP candidate with other motion candidates that are based on other HMVP candidates.

Способы могут включать в себя усечение на основе вставки кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на кандидате HMVP.The methods may include trimming based on insertion of a motion candidate derived from an HMVP candidate with other motion candidates that are based on the HMVP candidate.

Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP, ассоциированного с первым видеоблоком, в список слияния после кандидатов движения, полученных из одного или обоих пространственных или временных видеоблоков.The methods may include adding motion candidates obtained from an HMVP candidate associated with a first video block to a merge list after motion candidates obtained from one or both spatial or temporal video blocks.

Способы могут включать в себя добавление кандидата движения, полученного из кандидата HMVP, в список слияния после или до процесса создания списка слияния на основе информации о движении пространственных или временных видеоблоков.The methods may include adding a motion candidate obtained from the HMVP candidate to a merge list after or before the process of creating a merge list based on motion information of spatial or temporal video blocks.

Способы могут включать в себя добавление кандидата движения, полученного из кандидата HMVP, в список слияния после или перед заданным этапом.The methods may include adding a motion candidate derived from the HMVP candidate to the merge list after or before a given step.

Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP с уни-предсказанием, после других первоначально уни-предсказанных кандидатов.The methods may include adding motion candidates derived from the uni-prediction HMVP candidate after the other initially uni-predicted candidates.

Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP с уни-предсказанием из списка 0 или би-предсказанием, после предсказанных кандидатов из усеченного списка 0.The methods may include adding motion candidates derived from the uni-prediction list 0 or bi-prediction HMVP candidate after the predicted candidates from the truncated list 0.

Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP с уни-предсказанием из списка 1 или би-предсказанием после предсказанных кандидатов из усеченного списка 1.The methods may include adding motion candidates derived from the uni-prediction HMVP candidate from list 1 or bi-prediction after the predicted candidates from truncated list 1.

Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP, после усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1.The methods may include adding motion candidates obtained from the HMVP candidate after averaging the uni-prediction from motion candidates from list 0 or list 1.

Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP, перед усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1.The methods may include adding motion candidates obtained from the HMVP candidate before the average uni-prediction from motion candidates from list 0 or list 1.

Способы могут включать в себя то, что кандидаты движения, полученные из кандидатов HMVP, добавляются в список слияния в соответствии с чередованием с кандидатами движения, которые основаны на информации о движении пространственных или временных видеоблоков по отношению к первому видеоблоку.The methods may include adding motion candidates obtained from the HMVP candidates to a merge list in accordance with the interleave with motion candidates that are based on motion information of spatial or temporal video blocks relative to the first video block.

Способы могут включать в себя то, что кандидаты движения, полученные из списка 0 и списка 1 кандидата HMVP, добавляются по порядку перед кандидатами движения, полученными из списка 1 другого кандидата HMVP. The methods may include adding motion candidates obtained from list 0 and list 1 of an HMVP candidate in order before motion candidates obtained from list 1 of another HMVP candidate.

Способы могут включать в себя то, что кандидаты движения, полученные из списка 0 первого набора кандидатов HMVP, добавляются по порядку перед кандидатами движения, полученными из списка 1 второго набора кандидатов HMVP.The methods may include adding motion candidates obtained from list 0 of the first HMVP candidate set in order before motion candidates obtained from list 1 of the second HMVP candidate set.

Способы могут включать в себя то, что первый набор и второй набор являются одинаковыми, причем первый набор и второй набор включают в себя все доступные кандидаты HMVP.The methods may include the first set and the second set being the same, wherein the first set and the second set include all available HMVP candidates.

Способы могут включать в себя то, что первый набор и второй набор являются разными, первый набор включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием, второй набор включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием.The methods may include the first set and the second set being different, the first set including list 0 uni-prediction and bi-prediction HMVP candidates, the second set including list 1 uni-prediction HMVP candidates and bi-prediction.

Способы могут включать в себя то, что первый набор включает в себя первое количество кандидатов HMVP, второй набор включает в себя второе количество кандидатов HMVP, причем первое количество и второе количество являются разными.The methods may include the first set including a first number of HMVP candidates, the second set including a second number of HMVP candidates, the first number and the second number being different.

Способы могут включать в себя то, что масштабированный кандидат движения может быть получен из кандидата HMVP путем масштабирования его вектора движения из списка LX - списка L(1-X), и масштабированному кандидату движения назначается масштабированный вектор движения и список L(1-Х).The methods may include that the scaled motion candidate can be obtained from the HMVP candidate by scaling its motion vector from the LX list - the L(1-X) list, and the scaled motion candidate is assigned the scaled motion vector and the L(1-X) list. .

Способы могут включать в себя то, что масштабированные кандидаты движения, полученные из кандидатов HMVP, вставляются после других кандидатов движения, полученных из кандидатов HMVP.The methods may include having scaled motion candidates derived from the HMVP candidates inserted after other motion candidates derived from the HMVP candidates.

Способы могут включать в себя то, что масштабированные кандидаты движения, полученные из кандидатов HMVP, вставляются перед временными кандидатами.The methods may include having scaled motion candidates derived from the HMVP candidates inserted before the temporal candidates.

Способы могут включать в себя то, что порядок проверки кандидатов HMVP, добавляемых в список слияния, основан на индексах кандидатов HMVP.The methods may include having the order of checking HMVP candidates added to the merge list based on HMVP candidate indices.

Способы могут включать в себя то, что порядок проверки кандидатов HMVP, добавляемых в список слияния, основан на направлениях предсказания.The methods may include having the order of checking HMVP candidates added to the merge list based on prediction directions.

Способы могут включать в себя порядок проверки кандидатов HMVP, добавляемых в список слияния, на основе информации о движении.The methods may include a procedure for screening HMVP candidates added to the merge list based on the traffic information.

Способы могут включать в себя то, что заранее определено количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM.The methods may include having a predetermined number of HMVP candidates to be checked during the TPM merge list creation process.

Способы могут включать в себя то, что количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, основано на размере блока первого видеоблока, форме блока первого видеоблока или количестве кандидатов, доступных перед проверкой кандидатов HMVP.The methods may include having the number of HMVP candidates to be checked during the TPM merge list creation process based on the block size of the first video block, the block shape of the first video block, or the number of candidates available before checking the HMVP candidates.

Способы могут включать в себя то, что количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, сигнализируется в наборе параметров видео (VPS), наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке изображения, заголовке группы тайлов, заголовке слайса, группе строк единиц дерева кодирования (CTU), CTU или группе CTU.The methods may include that the number of HMVP candidates to be checked during the TPM merge list creation process is signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a picture header, a tile group header , slice header, coding tree unit (CTU) line group, CTU, or CTU group.

Способы могут включать в себя то, что отбор кандидатов HMVP основан на направлении предсказания, информации о векторе движения (MV), индексе опорного изображения, расстояниях POC опорного изображения и текущем изображении одного или обоих из: кандидата или индекса кандидата.The methods may include the selection of HMVP candidates based on the prediction direction, motion vector (MV) information, reference picture index, POC distances of the reference picture, and the current picture of one or both of the candidate or the candidate index.

Способы могут включать в себя то, что применение HMVP совместно с первым видеоблоком основано на размере блока первого видеоблока или форме блока первого видеоблока.The methods may include applying the HMVP in conjunction with the first video block based on the block size of the first video block or the block shape of the first video block.

Способы могут включать в себя то, что непрямоугольные и неквадратные части являются треугольными.The methods may include the non-rectangular and non-square portions being triangular.

Следует принимать во внимание, что раскрытые технологии могут быть воплощены в кодерах или декодерах видео для повышения эффективности сжатия, когда сжатые блоки кодирования имеют форму, значительно отличающуюся от традиционных квадратных блоков или прямоугольных блоков, которые имеют частично квадратную форму. Например, новые инструменты кодирования, которые используют длинные или высокие блоки кодирования, такие как блоки размером 4x32 или 32x4, могут извлечь выгоду из раскрытых технологий.It should be appreciated that the disclosed technologies may be implemented in video encoders or decoders to improve compression efficiency when the compressed encoding blocks have a shape significantly different from traditional square blocks or rectangular blocks that are partially square in shape. For example, new encoding tools that use long or tall encoding blocks, such as 4x32 or 32x4 blocks, may benefit from the disclosed technologies.

На фиг.36 показана блок-схема последовательности операций способа 3600 обработки видео. Способ 3600 включает в себя определение (3605) во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных множества подчастей для текущего блока; определение (3610) информации внешнего предсказания для множества подчастей; и преобразование (3615) текущего блока с использованием информации внешнего предсказания множества подчастей; и где текущий блок является внутренне кодированным, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью. Следует отметить, что эта подчасть может быть эквивалентна описанной выше части предсказания.FIG. 36 is a flowchart of a video processing method 3600. Method 3600 includes determining (3605) during conversion between a current block of visual media data and a corresponding encoded representation of visual media data a plurality of subparts for the current block; determining (3610) inter prediction information for a plurality of sub-parts; and transforming (3615) the current block using inter prediction information of the plurality of sub-parts; and where the current block is intra-coded and at least one of the plurality of sub-parts is a non-rectangular and non-square sub-part. It should be noted that this sub-part may be equivalent to the prediction part described above.

В некоторых реализациях в способе 3600 могут быть выполнены дополнительные модификации. Например, определение информации внешнего предсказания множества подчастей содержит: определение первой информации внешнего предсказания первой подчасти в множества подчастях с использованием первого режима внешнего предсказания; определение второй информации внешнего предсказания второй подчасти в множества подчастях с использованием второго режима внешнего предсказания; где первый режим внешнего предсказания отличается от второго режима внешнего предсказания. Первая информация внешнего предсказания определяется с использованием первого поднабора режимов внешнего предсказания, и вторая информация внешнего предсказания определяется с использованием второго поднабора режимов внешнего предсказания; где первый поднабор режимов внешнего предсказания отличается от второго поднабора режимов внешнего предсказания. Поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции, размера и формы первой подчасти и/или второй подчасти. Определение информации внешнего предсказания множества подчастей дополнительно содержит: фильтрацию предсказываемых значений выборок по крайней границе по меньшей мере одной из множества подчастей. Первая информация внешнего предсказания первой подчасти из множества подчастей определяется без использования второй информации внешнего предсказания второй подчасти из множества подчастей, и вторая информация внешнего предсказания второй подчасти определяется без использования первой информации внешнего предсказания первой подчасти. Первая информация внешнего предсказания первой подчасти из множества подчастей определяется с использованием второй информации внешнего предсказания второй подчасти из множества подчастей, и/или вторая информация внешнего предсказания второй подчасти определяется с использованием первой информации внешнего предсказания первой подчасти.In some implementations, further modifications may be made to method 3600. For example, determining inter prediction information of a plurality of sub-parts comprises: determining first inter prediction information of a first sub-part in a plurality of sub-parts using a first inter prediction mode; determining second inter prediction information of a second sub-part in the plurality of sub-parts using a second inter prediction mode; where the first inter prediction mode is different from the second inter prediction mode. The first inter prediction information is determined using a first subset of inter prediction modes, and the second inter prediction information is determined using a second subset of inter prediction modes; where the first subset of inter prediction modes is different from the second subset of inter prediction modes. The subset of inter-prediction modes is based on at least one of the position, size and shape of the first sub-part and/or the second sub-part. Defining the external prediction information of the plurality of subparts further comprises: filtering the predicted values of the samples along an extreme boundary of at least one of the plurality of subparts. The first inter prediction information of the first sub-part of the plurality of sub-parts is determined without using the second inter prediction information of the second sub-part of the plurality of sub-parts, and the second inter prediction information of the second sub-part is determined without using the first inter prediction information of the first sub-part. The first inter prediction information of the first sub-part of the plurality of sub-parts is determined using the second inter prediction information of the second sub-part of the plurality of sub-parts, and/or the second inter prediction information of the second sub-part is determined using the first inter prediction information of the first sub-part.

На фиг.37 показана блок-схема последовательности операций способа 3700 обработки видео. Способ 3700 включает в себя определение (3705), во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, множества подчастей для текущего блока; определение (3710) информации о движении множества подчастей; преобразование (3715) текущего блока с использованием информации о движении множества подчастей; и где текущий блок не является внешне кодированным без слиянием, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.FIG. 37 is a flowchart of a video processing method 3700. Method 3700 includes determining (3705), during conversion between a current block of visual media data and a corresponding encoded representation of visual media data, a plurality of subparts for the current block; determining (3710) information about the movement of the plurality of sub-parts; transforming (3715) the current block using the motion information of the plurality of sub-parts; and where the current block is not externally encoded without merging, and at least one of the plurality of subparts is a non-rectangular and non-square subpart.

В некоторых реализациях в способе 3700 могут быть выполнены дополнительные модификации. Например, определение информации о движении множества подчастей содержит: определение первой информации о движении первой подчасти в множества подчастях с использованием первого режима внешнего предсказания; определение второй информации о движении второй подчасти в множества подчастях с использованием второго режима внешнего предсказания. Определение внешнего предсказания множества подчастей дополнительно содержит: фильтрацию предсказываемых значений выборок по крайней границе по меньшей мере одной из множества подчастей. Первая информация о движении первой подчасти определяется без использования второй информации о движении второй подчасти, и вторая информация о движении второй подчасти определяется без использования первой информации о движении первой подчасти. Первая информация о движении первой подчасти определяется с использованием второй информации о движении второго предсказания, и/или вторая информация о движении второй подчасти определяется с использованием первой информации о движении первой подчасти.In some implementations, further modifications may be made to the method 3700. For example, determining motion information of a plurality of sub-parts comprises: determining first motion information of a first sub-part in a plurality of sub-parts using a first inter-prediction mode; determining second motion information of the second sub-part in the plurality of sub-parts using a second inter-prediction mode. The definition of external prediction of a plurality of subparts further comprises: filtering the predicted values of the samples along the extreme boundary of at least one of the plurality of subparts. First motion information of the first sub-part is determined without using second motion information of the second sub-part, and second motion information of the second sub-part is determined without using first motion information of the first sub-part. First motion information of the first sub-part is determined using second motion information of the second prediction, and/or second motion information of the second sub-part is determined using first motion information of the first sub-part.

На фиг.38 показана блок-схема последовательности операций способа 3800 обработки видео. Способ 3800 включает в себя преобразование (3805) между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; обработку (3810) первой подчасти в режиме внутренне кодирования; и обработку (3815) второй подчасти в режиме внешне кодирования.FIG. 38 is a flowchart of a video processing method 3800. Method 3800 includes a transformation (3805) between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is split into multiple sub-parts according to a split pattern, the first sub-part having a non-rectangular, non-square shape; processing (3810) the first subpart in an internal encoding mode; and processing (3815) the second sub-part in an external encoding mode.

В некоторых реализациях в способе 3800 могут быть выполнены дополнительные модификации. Например, вторая подчасть обрабатывается с применением би-предсказания; сигнализация информации о движении с помощью индекса слияния в ответ на кодирование текущего блока в режиме слияния; и определение информации о движении первой подчасти предсказания с использованием поднабора режима внешнего предсказания. Поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции первой подчасти предсказания, размера первой подчасти предсказания и формы первой подчасти предсказания.In some implementations, further modifications may be made to the method 3800. For example, the second subpart is processed using bi-prediction; signaling motion information using a merge index in response to encoding of the current block in merge mode; and determining motion information of the first prediction sub-part using the inter-prediction mode subset. The subset of inter-prediction modes is based on at least one of: a position of the first prediction sub-part, a size of the first prediction sub-part, and a shape of the first prediction sub-part.

На фиг.39 показана блок-схема последовательности операций способа 3900 обработки видео. Способ 3900 включает в себя преобразование (3905) между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; где по меньшей мере одна из множества подчастей является внешне кодированной со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.FIG. 39 is a flowchart of a video processing method 3900. Method 3900 includes a transformation (3905) between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is split into multiple sub-parts according to a split pattern, wherein the first sub-part has a non-rectangular, non-square shape; where at least one of the plurality of sub-parts is externally encoded with or without merging and uses the current image as a reference image.

На фиг.40 показана блок-схема последовательности операций способа 4000 обработки видео. Способ 4000 включает в себя преобразование (4005) между текущим блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, причем текущий блок разбивается на множество подчастей в соответствии с шаблоном разбиения, при этом первое разбиение предсказания имеет непрямоугольную, неквадратную форму; и преобразование (4010) с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках.FIG. 40 is a flowchart of a video processing method 4000. Method 4000 includes a transformation 4005 between a current block of visual media data and a corresponding encoded representation of the visual media data, the current block being partitioned into a plurality of sub-parts according to a partitioning pattern, wherein the first prediction partition has a non-rectangular, non-square shape; and transforming (4010) using inter- or intra-encoded information about one or more spatial blocks.

В некоторых реализациях в способе 4000 могут быть выполнены дополнительные модификации. Например, интер- или внутренне кодированная информация одного или более пространственных блоков содержит информацию о движении одного или более пространственных блоков. Преобразование текущего блока с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках содержит: преобразование текущего блока с использованием режима внешнего предсказания одного или более пространственных блоков. В этом случае используется кодированная информация временных блоков.In some implementations, further modifications may be made to method 4000. For example, the inter- or intra-encoded information of one or more spatial blocks contains information about the movement of one or more spatial blocks. Converting a current block using inter- or intra-encoded information about one or more spatial blocks comprises: transforming a current block using an inter-prediction mode of one or more spatial blocks. In this case, encoded time block information is used.

На фиг.41 показана блок-схема последовательности операций способа 4100 обработки видео. Способ 4100 включает в себя определение (4105), во время преобразования между первым блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, первого блока, кодированного в режиме геометрического разбиения; определение (4110), на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения (HMVP) на основе истории, которые включают в себя информацию о движении на основе ранее кодированных блоков, информации о движении по меньшей мере одной подчасти первого блока; преобразование (4115) первого блока с использованием определенной информации о движении.FIG. 41 is a flowchart of a video processing method 4100. Method 4100 includes determining (4105), during conversion between a first block of visual media data and a corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode; determining (4110), based on at least one table storing history-based motion vector prediction (HMVP) candidates that include motion information based on previously encoded blocks, motion information of at least one sub-part of the first block; transforming (4115) the first block using the determined motion information.

В некоторых реализациях в способе 4100 могут быть выполнены дополнительные модификации. Например, первый блок, кодируемый в режиме геометрического разбиения, содержит: разбиение первого блока на несколько подчастей; причем по меньшей мере одна из множества частей является непрямоугольной и неквадратной частью. Определение, во время преобразования между вторым блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, информации о движении второго блока на основе такой же таблицы, которая используется для первого блока, и во втором блоке не используется режим геометрического разбиения. Информация о движении, используемая первым блоком, воздерживается от сохранения по меньшей мере в одной таблице. По меньшей мере одна таблица не обновляется после преобразования первого блока. По меньшей мере одна таблица включает в себя несколько таблиц, которые ведутся для хранения кандидатов HMVP для блоков в режиме геометрического разбиения. По меньшей мере для одной таблицы сохраненные кандидаты HMVP имеют только информацию о движении в соответствии с информацией, используемой блоками в режиме геометрического разбиения. По меньшей мере одна таблица включает в себя две таблицы, которые ведутся для хранения уни-предсказанных кандидатов HMVP и би-предсказанных кандидатов HMVP, соответственно. По меньшей мере одна таблица включает в себя две таблицы, которые ведутся для хранения информации о движении первой подчасти и второй подчасти первого блока, соответственно. По меньшей мере одна таблица включает в себя две таблицы, которые ведутся для хранения информации о движении из списка 0 и списка 1, соответственно. По меньшей мере одна таблица включает в себя три таблицы, которые ведутся для хранения уни-предсказанных кандидатов HMVP из списка 0, уни-предсказанных кандидатов HMVP из списка 1 и би-предсказанных кандидатов HMVP, соответственно. По меньшей мере одна таблица обновляется информацией о движении части подчастей первого блока. По меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти, причем первая подчасть и вторая подчасть являются подчастями первого блока. По меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти путем добавления одного кандидата HMVP. То, обновить ли по меньшей мере одну таблицу путем добавления одного или двух кандидатов движения, зависит от того, используют ли первая подчасть и вторая подчасть один и тот же список опорных изображений или одно и тот же опорное изображение. То, обновить ли по меньшей мере одну таблицу путем добавления информации о движении первой подчасти или второй подчасти, зависит от разницы подсчета последовательности изображений (POC) между опорным изображением и текущим изображением. После обработки блока с непрямоугольной и неквадратной частью информация о движении блока с непрямоугольной и неквадратной частью используется для обновления таблицы, которая ведется для хранения кандидатов HMVP для блока с непрямоугольной и неквадратной частью. После обработки блока без непрямоугольной и неквадратной части информация о движении блока без непрямоугольной и неквадратной части используется для обновления таблицы, которая ведется для хранения кандидатов HMVP для блока без непрямоугольной и неквадратной части. После обработки блока без непрямоугольной и неквадратной части информация о движении блока без непрямоугольной и неквадратной части используется для обновления таблицы, которая ведется для хранения кандидатов предсказания вектора движения (HMVP) для блока с непрямоугольной и неквадратной частью. Режим геометрического разбиения содержит режим треугольного разбиения. Способ применим к другим видам списков кандидатов движения.In some implementations, further modifications may be made to method 4100. For example, the first block encoded in geometric partitioning mode contains: partitioning the first block into several subparts; wherein at least one of the plurality of portions is a non-rectangular and non-square portion. Determining, during conversion between the second block of visual media data and the corresponding encoded representation of the visual media data, motion information of the second block based on the same table that is used for the first block, and the second block does not use a geometric partitioning mode. The motion information used by the first block is refrained from being stored in at least one table. At least one table is not updated after the first block is converted. The at least one table includes a plurality of tables that are maintained to store HMVP candidates for geometric partitioning mode blocks. For at least one table, the stored HMVP candidates have only motion information in accordance with the information used by the blocks in the geometric partitioning mode. The at least one table includes two tables that are maintained for storing uni-predicted HMVP candidates and bi-predicted HMVP candidates, respectively. The at least one table includes two tables that are maintained for storing movement information of the first subpart and the second subpart of the first block, respectively. The at least one table includes two tables that are maintained for storing movement information from list 0 and list 1, respectively. The at least one table includes three tables that are maintained for storing uni-predicted HMVP candidates from list 0, uni-predicted HMVP candidates from list 1, and bi-predicted HMVP candidates, respectively. The at least one table is updated with information about the movement of a portion of the subparts of the first block. The at least one table is updated with movement information of the first sub-part and movement information of the second sub-part, wherein the first sub-part and the second sub-part are sub-parts of the first block. The at least one table is updated with the first subpart movement information and the second subpart movement information by adding one HMVP candidate. Whether to update the at least one table by adding one or two motion candidates depends on whether the first subpart and the second subpart use the same reference picture list or the same reference picture. Whether to update the at least one table by adding motion information of the first sub-part or the second sub-part depends on the picture sequence count (POC) difference between the reference picture and the current picture. After processing a non-rectangular and non-square block, the motion information of the non-rectangular and non-square block is used to update a table that is maintained to store HMVP candidates for the non-rectangular and non-square block. After processing a block without a non-rectangular and non-square part, the movement information of the block without a non-rectangular and non-square part is used to update a table that is maintained to store HMVP candidates for the block without a non-rectangular and non-square part. After processing a block without a non-rectangular and non-square part, the motion information of the block without a non-rectangular and non-square part is used to update a table that is maintained to store motion vector prediction (HMVP) candidates for the block with a non-rectangular and non-square part. The geometric partition mode contains a triangular partition mode. The method is applicable to other types of motion candidate lists.

На фиг.42 показана блок-схема последовательности операций способа 4200 обработки видео. Способ 4200 включает в себя определение (4205), во время преобразования между первым блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, первого блока, кодированного в режиме геометрического разбиения; определение (4210) информации о движении по меньшей мере одной подчасти первого блока; преобразование (4215) первого блока с использованием информации о движении по меньшей мере одной подчасти; причем определение информации о движении по меньшей мере одной подчасти содержит использование по меньшей мере одного кандидата предсказания вектора движения на основе истории (HMVP), который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения и определения информации о движении из списка кандидатов движения.FIG. 42 is a flowchart of a video processing method 4200. Method 4200 includes determining (4205), during conversion between a first block of visual media data and a corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode; determining (4210) motion information of at least one sub-part of the first block; transforming (4215) the first block using motion information of the at least one sub-part; wherein determining the motion information of the at least one sub-part comprises using at least one history-based motion vector prediction (HMVP) candidate that includes the motion information based on the previously encoded block to create a list of motion candidates and determine the motion information from list of movement candidates.

В некоторых реализациях в способе 4200 могут быть выполнены дополнительные модификации. Например, первый блок, кодированный в режиме геометрического разбиения, содержит: разбиение первого блока несколько подчастей; причем по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной частью. По меньшей мере, один кандидат HMVP добавляется непосредственно в список кандидатов движения. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: использование одного кандидата HMVP для определения первого кандидата движения и второго кандидата движения, причем один из первого кандидата движения и второго кандидата движения представляет собой уни-предсказание с информацией о движении из списка 0 кандидата HMVP, и другой из первого кандидата движения и второго кандидата движения представляет собой уни-предсказание с информацией о движении из списка 1 кандидата HMVP; усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на пространственных или временных видеоблоках; усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на других кандидатах HMVP; и усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на кандидате HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после кандидатов движения, полученных из одного или обоих пространственных или временных блоков. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед заранее определенным этапом в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед несколькими заранее определенными этапами в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием, в список кандидатов движения после всех первоначально уни-предсказанных кандидатов. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из кандидата HMVP, с уни-предсказанием из списка 0 или би-предсказанием, в список кандидатов движения после усеченного списка 0 предсказанных кандидатов. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, с уни-предсказанием из списка 1 или би-предсказанием, в список кандидатов движения после усеченного списка 1 предсказанных кандидатов. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения после усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения перед усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения в соответствии с чередованием с кандидатами движения, которые основаны на информации о движении пространственных или временных блоков по отношению к текущему блоку. Полученный кандидат движения из кандидата HMVP устанавливается равным кандидату HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из списка 0 и списка 1 кандидата HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 0 и списка 1 другого кандидата HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из списка 0 первого набора кандидатов HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 1 второго набора кандидатов HMVP. Первый набор и второй набор являются одинаковыми. Первый набор и второй набор являются разными, первый набор включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием, и второй набор включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием. Первый набор включает в себя первое количество кандидатов HMVP, второй набор включает в себя второе количество кандидатов HMVP, и первое количество и второе количество являются разными. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: масштабирование кандидатов HMVP из списка LX-списка L(1-X) для выработки масштабированных кандидатов HMVP, которые используются для L(1-X). Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP, и перед временными кандидатами. Порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на индексах кандидатов HMVP. Порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на направлениях предсказания. Порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на информации о движении. Количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, заранее определено. Количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, основано на размере блока текущего блока, форме блока текущего блока или количестве кандидатов, доступных перед проверкой кандидатов HMVP. Количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, сигнализируется в наборе параметров видео (VPS), наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке изображения, заголовке группы тайлов, заголовке слайса, группе строк единиц дерева кодирования (CTU), CTU или группе CTU. Кандидаты HMVP, выбранные для проверки в списке кандидатов движения, основаны по меньшей мере на одном из: направления предсказания, информации о векторе движения (MV), индекса опорного кадра, расстояний РОС опорного изображения и текущего изображения кандидата и индекса кандидата. Применение HMVP к текущему блоку основано на размере блока текущего блока или форме блока текущего блока. Список кандидатов движения содержит список слияния. Список кандидатов движения применим к другим видам списков кандидатов движения, за исключением списка кандидатов слияния. In some implementations, further modifications may be made to method 4200. For example, the first block encoded in geometric partition mode contains: a partition of the first block into several subparts; wherein at least one of the plurality of sub-portions is a non-rectangular and non-square portion. At least one HMVP candidate is added directly to the movement's candidate list. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a list of motion candidates comprises: using one HMVP candidate to determine a first motion candidate and a second motion candidate, wherein one of the first motion candidate and the second the motion candidate is a uni-prediction with motion information from HMVP candidate list 0, and the other of the first motion candidate and the second motion candidate is a uni-prediction with motion information from HMVP candidate list 1; truncation in response to insertion of a motion candidate derived from the HMVP candidate with other motion candidates that are based on spatial or temporal video blocks; truncation in response to insertion of a motion candidate derived from an HMVP candidate with other motion candidates that are based on other HMVP candidates; and truncation in response to inserting a motion candidate derived from the HMVP candidate with other motion candidates that are based on the HMVP candidate. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises: adding at least one motion candidate obtained from the HMVP candidate to the motion candidate list after the motion candidates obtained from one or both spatial or temporal blocks. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises: adding at least one motion candidate derived from the HMVP candidate to the motion candidate list after or before a predetermined step in the process of creating a list of motion candidates based on motion information of spatial or temporal blocks. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises: adding at least one motion candidate derived from the HMVP candidate to the motion candidate list after or before several in advance certain steps in the process of creating a list of motion candidates based on motion information of spatial or temporal blocks. Using at least one HMVP candidate that includes motion information based on the previously encoded block to create a motion candidate list comprises: adding at least one motion candidate derived from the uni-prediction HMVP candidate to the motion candidate list after all initially uni-predicted candidates. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a list of motion candidates comprises: adding at least one motion candidate derived from the HMVP candidate with uni-prediction from list 0 or bi-prediction, to the list of motion candidates after the truncated list of 0 predicted candidates. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a list of motion candidates comprises: adding at least one motion candidate derived from the HMVP candidate with uni-prediction from list 1 or bi -prediction, into the list of motion candidates after the truncated list of 1 predicted candidates. Using at least one HMVP candidate that includes motion information based on the previously encoded block to create a motion candidate list comprises: adding at least one motion candidate derived from the at least one HMVP candidate to the motion candidate list after an average uni-prediction from motion candidates from list 0 or list 1. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises: adding at least one candidate motion derived from at least one HMVP candidate to a list of motion candidates before averaging the uni-prediction from motion candidates from list 0 or list 1. Using at least one HMVP candidate that includes motion information based on a previously encoded block for creating a motion candidate list, comprises: adding at least one motion candidate obtained from the HMVP candidate to the motion candidate list in accordance with the interleaving with motion candidates that are based on motion information of spatial or temporal blocks with respect to the current block. The resulting motion candidate from the HMVP candidate is set equal to the HMVP candidate. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises: adding at least one motion candidate obtained from HMVP candidate list 0 and list 1 to the motion candidate list before the motion candidates obtained from list 0 and list 1 of another HMVP candidate. Using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises: adding at least one motion candidate obtained from list 0 of the first HMVP candidate set to the motion candidate list before motion candidates obtained from list 1 of the second set of HMVP candidates. The first set and the second set are the same. The first set and the second set are different, the first set includes HMVP candidates with list 0 uni-prediction and bi-prediction, and the second set includes HMVP candidates with list 1 uni-prediction and bi-prediction. The first set includes a first number of HMVP candidates, the second set includes a second number of HMVP candidates, and the first number and the second number are different. Using at least one HMVP candidate that includes motion information based on the previously encoded block to generate a list of motion candidates comprises: scaling the HMVP candidates from the LX-list L(1-X) to generate scaled HMVP candidates that are used for L(1-X). Using at least one HMVP candidate that includes motion information based on the previously encoded block to create a list of motion candidates comprises: adding scaled HMVP candidates after other motion candidates derived from the HMVP candidates. Using at least one HMVP candidate that includes motion information based on the previously encoded block to create a list of motion candidates comprises: adding the scaled HMVP candidates after other motion candidates derived from the HMVP candidates and before the temporary candidates. The screening order for HMVP candidates added to a movement's candidate list is based on the HMVP candidate indices. The order of checking HMVP candidates added to the motion candidate list is based on the prediction directions. The screening process for HMVP candidates added to a movement's candidate list is based on the movement's information. The number of HMVP candidates to be screened during the motion candidate list creation process is predetermined. The number of HMVP candidates to be checked during the motion candidate list creation process is based on the block size of the current block, the block shape of the current block, or the number of candidates available before checking the HMVP candidates. The number of HMVP candidates to be checked during the motion candidate list creation process is signaled in the Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Picture Header, Tile Group Header, Slice Header, Tree Unit Row Group coding (CTU), CTU or CTU group. The HMVP candidates selected for verification in the motion candidate list are based on at least one of: prediction direction, motion vector (MV) information, reference frame index, DOC distances of the reference image and the current candidate image, and candidate index. Applying HMVP to the current block is based on the block size of the current block or the block shape of the current block. The motion candidate list contains a merge list. The motion candidate list is applicable to other kinds of motion candidate lists except the merge candidate list.

Некоторые особенности, предпочтительно реализованные в некоторых вариантах осуществления, теперь будут раскрыты в формате, основанном на пунктах. Certain features preferably implemented in some embodiments will now be disclosed in a clause-based format.

(1) Способ обработки видео, содержащий этапы, на которых:(1) A method for processing video, comprising the steps of:

определяют, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, множество подчастей текущего блока;determining, during conversion between the current block of visual media data and the corresponding encoded representation of the visual media data, a plurality of subparts of the current block;

определяют информацию внешнего предсказания для множества подчастей;determining inter prediction information for the plurality of sub-parts;

преобразуют текущий блок с использованием информации внешнего предсказания множества подчастей; причемtransforming the current block using inter prediction information of the plurality of sub-parts; and

текущий блок является внутренне кодированным, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.the current block is internally encoded, and at least one of the plurality of subparts is a non-rectangular and non-square subpart.

(2) Способ по (1), в котором этап определения информации внешнего предсказания множества подчастей содержит подэтапы, на которых:(2) The method according to (1), in which the step of determining inter prediction information of a plurality of sub-parts comprises sub-steps of:

определяют первую информацию внешнего предсказания первой подчасти из множества подчастей с использованием первого режима внешнего предсказания;determining first inter prediction information of the first sub-part of the plurality of sub-parts using a first inter prediction mode;

определяют вторую информацию внешнего предсказания второй подчасти из множества подчастей с использованием второго режима внешнего предсказания; причемdetermining second inter prediction information of a second sub-part of the plurality of sub-parts using a second inter prediction mode; and

первый режим внешнего предсказания отличается от второго режима внешнего предсказания.the first inter prediction mode is different from the second inter prediction mode.

(3) Способ по (2), в котором первая информация внешнего предсказания определяется с использованием первого поднабора режимов внешнего предсказания, а вторая информация внешнего предсказания определяется с использованием второго поднабора режимов внешнего предсказания; при этом(3) The method of (2), wherein the first inter prediction information is determined using the first subset of inter prediction modes, and the second inter prediction information is determined using the second subset of inter prediction modes; wherein

первый поднабор режимов внешнего предсказания отличается от второго поднабора режимов внешнего предсказания.the first subset of inter prediction modes is different from the second subset of inter prediction modes.

(4) Способ по (3), в котором поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции, размера и формы первой подчасти и/или второй подчасти.(4) The method of (3), wherein the subset of inter prediction modes is based on at least one of the position, size and shape of the first sub-part and/or the second sub-part.

(5) Способ по любому из (1)-(4), в котором этап определения информации внешнего предсказания множества подчастей дополнительно содержит подэтап, на котором:(5) The method as in any one of (1) to (4), wherein the step of determining inter prediction information of the plurality of sub-parts further comprises a substep of:

осуществляют фильтрацию предсказываемых значений выборок вдоль крайней границы по меньшей мере одной из множества подчастей.filtering the predicted sample values along the extreme boundary of at least one of the plurality of subparts.

(6) Способ по любому из (1)-(5), в котором первая информация внешнего предсказания первой подчасти из множества подчастей определяется без использования второй информации внешнего предсказания второй подчасти из множества подчастей, а вторая информация внешнего предсказания второй подчасти определяется без использования первой информации внешнего предсказания первой подчасти.(6) The method as in any one of (1) to (5), wherein the first inter prediction information of a first sub-part of the plurality of sub-parts is determined without using the second inter prediction information of the second sub-part of the plurality of sub-parts, and the second inter prediction information of the second sub-part is determined without using the first external prediction information of the first sub-part.

(7) Способ по любому из пп.1-5, в котором первая информация внешнего предсказания первой подчасти из множества подчастей определяется с использованием второй информации внешнего предсказания второй подчасти из множества подчастей, и/или вторая информация внешнего предсказания второй подчасти определяется с использованием первой информации внешнего предсказания первой подчасти.(7) The method according to any one of claims 1 to 5, wherein the first inter prediction information of the first sub-part of the plurality of sub-parts is determined using the second inter prediction information of the second sub-part of the plurality of sub-parts, and/or the second inter prediction information of the second sub-part is determined using the first external prediction information of the first sub-part.

(8) Способ обработки видео, содержащий этапы, на которых:(8) A method for processing video, comprising the steps of:

определяют, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, множество подчастей текущего блока;determining, during conversion between the current block of visual media data and the corresponding encoded representation of the visual media data, a plurality of subparts of the current block;

определяют информацию о движении множества подчастей;determine information about the movement of the plurality of sub-parts;

преобразуют текущий блок с использованием информации о движении множества подчастей; причемtransforming the current block using information about the movement of the plurality of sub-parts; and

текущий блок не является внешне кодированным со слиянием, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.the current block is not externally merge encoded, and at least one of the plurality of subparts is a non-rectangular and non-square subpart.

(9) Способ по (8), в котором этап определения информации о движении множества подчастей содержит подэтапы, на которых:(9) The method according to (8), in which the stage of determining information about the movement of a plurality of subparts contains substages in which:

определяют первую информацию о движении первой подчасти из множества подчастей с использованием первого режима внешнего предсказания;determining first motion information of the first sub-part of the plurality of sub-parts using a first inter-prediction mode;

определяют вторую информацию о движении второй подчасти из множества подчастей с использованием второго режима внешнего предсказания.determining second motion information of a second sub-part of the plurality of sub-parts using a second inter-prediction mode.

(10) Способ по любому из (8)-(9), в котором определение внешнего предсказания множества подчастей дополнительно содержит:(10) The method according to any one of (8)-(9), wherein the external prediction definition of the plurality of sub-parts further comprises:

фильтрацию предсказываемых значений выборок вдоль крайней границы по меньшей мере одной из множества подчастей.filtering the predicted sample values along an extreme boundary of at least one of the plurality of subparts.

(11) Способ по любому из (8)-(9), в котором первая информация о движении первой подчасти определяется без использования второй информации о движении второй подчасти, и вторая информация о движении второй подчасти определяется без использования первой информации о движении первой подчасти.(11) The method as in any one of (8) to (9), wherein the first motion information of the first sub-part is determined without using the second motion information of the second sub-part, and the second motion information of the second sub-part is determined without using the first motion information of the first sub-part.

(12) Способ по любому из (8)-(9), в котором первая информация о движении первой подчасти определяется с использованием второй информации о движении второго предсказания, и/или вторая информация о движении второй подчасти определяется с использованием первой информации о движении первой подчасти.(12) The method as in any one of (8) to (9), wherein the first motion information of the first sub-part is determined using the second motion information of the second prediction, and/or the second motion information of the second sub-part is determined using the first motion information of the first subparts

(13) Способ обработки видео, содержащий:(13) A video processing method comprising:

преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разделен несколько подчастей в соответствии с шаблоном разбиения, где первая подчасть имеет непрямоугольную, неквадратную форму;converting between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is divided into several sub-parts according to a partitioning pattern, where the first sub-part has a non-rectangular, non-square shape;

обработку первой подчасти в режиме внутренне кодирования; иprocessing the first subpart in internal coding mode; And

обработку второй подчасти в режиме внешне кодирования.processing of the second subpart in external coding mode.

(14) Способ по (13), в котором вторая подчасть обрабатывается путем применения би-предсказания.(14) The method according to (13), in which the second subpart is processed by applying bi-prediction.

(15) Способ по (13) или (14), дополнительно содержит:(15) The method according to (13) or (14), additionally contains:

сигнализацию информации о движении с индексом слияния в ответ на кодирование текущего блока в режиме слияния.signaling motion information with a merge index in response to encoding of the current block in merge mode.

(16) Способ по любому из (13)-(15), дополнительно содержит:(16) The method according to any of (13)-(15), additionally contains:

определение информации о движении первой подчасти предсказания с использованием поднабора режима внешнего предсказания.determining motion information of the first prediction sub-part using a subset of the inter-prediction mode.

(17) Способ по (16), в котором поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции первой подчасти предсказания, размера первой подчасти предсказания и формы первой подчасти предсказания.(17) The method of (16), wherein the subset of inter prediction modes is based on at least one of: a position of the first prediction sub-part, a size of the first prediction sub-part, and a shape of the first prediction sub-part.

(18) Способ обработки видео, содержащий:(18) A video processing method comprising:

преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбит на несколько подчастей в соответствии с шаблоном разбиения, где первая подчасть имеет непрямоугольную, неквадратную форму;converting between a current block of visual media data and a corresponding encoded representation of the visual media data, the current block being split into multiple sub-parts according to a partitioning pattern, wherein the first sub-part has a non-rectangular, non-square shape;

где по меньшей мере одна из множества подчастей является внешне кодированной со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.where at least one of the plurality of sub-parts is externally encoded with or without merging and uses the current image as a reference image.

(19) Способ обработки видео, содержащий:(19) A video processing method comprising:

преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается на несколько подчастей в соответствии с шаблоном разбиения, при этом первое разбиение предсказания имеет непрямоугольную, неквадратную форму;converting between a current block of visual media data and a corresponding encoded representation of the visual media data, wherein the current block is partitioned into multiple sub-parts according to a partitioning pattern, wherein the first prediction partition has a non-rectangular, non-square shape;

и преобразование с использованием внешне или внутренне кодированной информации одного или более пространственных блоков.and transforming using the externally or internally encoded information of the one or more spatial blocks.

(20) Способ по (19), в котором внешне или внутренне кодированная информация одного или более пространственных блоков содержит информацию о движении одного или более пространственных блоков.(20) The method according to (19), in which the externally or internally encoded information of one or more spatial blocks contains information about the movement of one or more spatial blocks.

(21) Способ по (19), в котором преобразование текущего блока с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках содержит:(21) The method according to (19), in which the transformation of the current block using inter- or intra-encoded information about one or more spatial blocks contains:

преобразование текущего блока с использованием режима внешнего предсказания одного или более пространственных блоков.transforming the current block using the inter-prediction mode of one or more spatial blocks.

(22) Способ по (19), в котором используется кодированная информация временных блоков.(22) The method according to (19), in which the encoded information of time blocks is used.

(23) Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа, изложенного в любом из (1)-(22).(23) A video processing device comprising a processor configured to implement the method set forth in any of (1) to (22).

(24) Устройство по (23), в котором устройство представляет собой видеокодер.(24) The device according to (23), in which the device is a video encoder.

(25) Устройство по (23), в котором устройство представляет собой видеодекодер.(25) The device according to (23), in which the device is a video decoder.

(26) Машиночитаемый носитель записи, на котором записана программа, содержащая код, причем программа предназначена для процессора, чтобы выполнять способ, изложенный в любом из (1)-(22).(26) A computer-readable recording medium on which a program containing code is recorded, the program being configured for a processor to perform the method set forth in any of (1) to (22).

Некоторые особенности, предпочтительно реализованные в некоторых вариантах осуществления, теперь будут раскрыты в формате, основанном на пунктах.Certain features preferably implemented in some embodiments will now be disclosed in a clause-based format.

(1) Способ обработки видео, содержащий этапы, на которых:(1) A method for processing video, comprising the steps of:

определяют, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первый блок, кодированный в режиме геометрического разбиения;determining, during conversion between the first block of visual media data and the corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode;

определяют, на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения (HMVP) на основе истории, включающие в себя информацию о движении на основе ранее кодированных блоков, информацию о движении по меньшей мере одной подчасти первого блока;determining, based on at least one table storing history-based motion vector prediction (HMVP) candidates including motion information based on previously encoded blocks, motion information of at least one sub-part of the first block;

преобразуют первый блок с использованием определенной информации о движении.transforming the first block using the determined motion information.

(2) Способ по (1), в котором первый блок, кодируемый в режиме геометрического разбиения, содержит:(2) The method according to (1), in which the first block encoded in the geometric partitioning mode contains:

разбиение первого блока на множество подчастей; при этомsplitting the first block into many subparts; wherein

по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной частью.at least one of the plurality of sub-portions is a non-rectangular and non-square portion.

(3) Способ по (1), дополнительно содержащий этап, на котором:(3) The method according to (1), further comprising the step of:

определяют, во время преобразования между вторым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, информацию о движении второго блока на основе одной и той же таблицы, используемой для первого блока, причемdetermining, during conversion between the second block of visual media data and the corresponding encoded representation of the visual media data, motion information of the second block based on the same table used for the first block, wherein

второй блок не использует режим геометрического разбиения.the second block does not use geometric partitioning mode.

(4) Способ по любому из (1)-(3), в котором информация о движении, используемая первым блоком, не сохраняется по меньшей мере в одной таблице.(4) The method as in any one of (1) to (3), wherein the motion information used by the first block is not stored in the at least one table.

(5) Способ по любому из (1)-(4), в котором по меньшей мере одна таблица не обновляется после преобразования первого блока.(5) The method as in any one of (1) to (4), wherein the at least one table is not updated after the first block is converted.

(6) Способ по любому из (1)-(5), в котором по меньшей мере одна таблица включает в себя множество таблиц, ведущихся для хранения кандидатов HMVP для блоков в режиме геометрического разбиения.(6) The method as in any one of (1) to (5), wherein the at least one table includes a plurality of tables maintained for storing HMVP candidates for geometric partitioning mode blocks.

(7) Способ по (6), в котором, по меньшей мере для одной таблицы, сохраненные кандидаты HMVP имеют только информацию о движении в соответствии с информацией о движении, используемой блоками в режиме геометрического разбиения.(7) The method according to (6), wherein, for at least one table, the stored HMVP candidates have only motion information according to the motion information used by the blocks in the geometric partitioning mode.

(8) Способ по любому из (1)-(7), в котором по меньшей мере одна таблица включает в себя две таблицы, ведущиеся для хранения уни-предсказанных кандидатов HMVP и би-предсказанных кандидатов HMVP, соответственно.(8) The method as in any one of (1) to (7), wherein the at least one table includes two tables maintained for storing uni-predicted HMVP candidates and bi-predicted HMVP candidates, respectively.

(9) Способ по любому из (1)-(8), в котором по меньшей мере одна таблица включает в себя две таблицы, ведущиеся для хранения информации о движении первой подчасти и второй подчасти первого блока, соответственно.(9) The method as in any one of (1) to (8), wherein the at least one table includes two tables maintained for storing movement information of the first sub-part and the second sub-part of the first block, respectively.

(10) Способ по любому из (1)-(9), в котором по меньшей мере одна таблица включает в себя две таблицы, ведущиеся для хранения информации о движении из списка 0 и списка 1, соответственно.(10) The method as in any one of (1) to (9), wherein the at least one table includes two tables maintained for storing traffic information from list 0 and list 1, respectively.

(11) Способ по любому из (1)-(10), в котором по меньшей мере одна таблица включает в себя три таблицы, ведущиеся для хранения уни-предсказанных кандидатов HMVP из списка 0, уни-предсказанных кандидатов HMVP из списка 1 и би-предсказанных кандидатов HMVP, соответственно.(11) The method as in any one of (1) to (10), wherein the at least one table includes three tables maintained for storing uni-predicted HMVP candidates from list 0, uni-predicted HMVP candidates from list 1, and bi -predicted HMVP candidates, respectively.

(12) Способ по любому из (1)-(11), в котором по меньшей мере одна таблица обновляется информацией о движении части подчастей первого блока.(12) The method according to any one of (1) to (11), wherein the at least one table is updated with information about the movement of a portion of the subparts of the first block.

(13) Способ по любому из (1)-(12), в котором по меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти, причем первая подчасть и вторая подчасть представляют собой подчасти первого блока.(13) The method as in any one of (1) to (12), wherein the at least one table is updated with movement information of the first sub-part and movement information of the second sub-part, wherein the first sub-part and the second sub-part are sub-parts of the first block.

(14) Способ по (13), в котором по меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти посредством добавления одного кандидата HMVP.(14) The method according to (13), wherein the at least one table is updated with the movement information of the first sub-part and the movement information of the second sub-part by adding one HMVP candidate.

(15) Способ по (14), в котором то, обновлять ли по меньшей мере одну таблицу посредством добавления одного или двух кандидатов движения, зависит от того, используют ли, первая подчасть и вторая подчасть, один и тот же список опорных изображений или одно и то же опорное изображение.(15) The method of (14), wherein whether to update the at least one table by adding one or two motion candidates depends on whether the first subpart and the second subpart use the same reference picture list or one and the same reference image.

(16) Способ по (14), в котором то, обновлять ли по меньшей мере одну таблицу посредством добавления информации о движении первой подчасти или второй подчасти, зависит от разницы подсчета последовательности изображений (POC) между опорным изображением и текущим изображением.(16) The method of (14), wherein whether to update the at least one table by adding motion information of the first sub-part or the second sub-part depends on a picture sequence count (POC) difference between the reference picture and the current picture.

(17) Способ по любому из (1)-(16), в котором способ дополнительно содержит этап, на котором:(17) The method according to any one of (1) to (16), wherein the method further comprises the step of:

используют, после этапа обработки блока с непрямоугольной и неквадратной частью, информацию о движении блока с непрямоугольной и неквадратной частью для обновления таблицы, ведущеся для хранения кандидатов HMVP для блока с непрямоугольной и неквадратной частью.using, after the non-rectangular and non-square block processing step, the motion information of the non-rectangular and non-square block to update a table maintained to store HMVP candidates for the non-rectangular and non-square block.

(18) Способ по любому из (1)-(16), дополнительно содержащий этап, на котором:(18) The method according to any one of (1)-(16), further comprising the step of:

используют, после этапа обработки блока без непрямоугольной и неквадратной части, информацию о движении блока без непрямоугольной и неквадратной части для обновления таблицы, ведущейся для хранения кандидатов HMVP для блока без непрямоугольной и неквадратной части.using, after the step of processing the block without a non-rectangular and non-square part, the movement information of the block without a non-rectangular and non-square part to update a table maintained to store HMVP candidates for the block without a non-rectangular and non-square part.

(19) Способ по (1)-(16), дополнительно содержащий этап, на котором:(19) The method according to (1)-(16), additionally containing the step of:

используют, после этапа обработки блока без непрямоугольной и неквадратной части, информации о движении блока без непрямоугольной и неквадратной части для обновления таблицы, ведущейся для хранения кандидатов предсказания вектора движения (HMVP) для блока с непрямоугольной и неквадратной частью.using, after the step of processing the block without a non-rectangular and non-square portion, the motion information of the block without a non-rectangular and non-square portion to update a table maintained for storing motion vector prediction (HMVP) candidates for the block with a non-rectangular and non-square portion.

(20) Способ по любому из (1)-(19), в котором режим геометрического разбиения содержит режим треугольного разбиения.(20) The method according to any one of (1)-(19), in which the geometric partition mode contains a triangular partition mode.

(21) Способ по любому из (1)-(20), в котором способ применим к другим видам списков кандидатов движения.(21) The method according to any of (1)-(20), in which the method is applicable to other types of motion candidate lists.

(22) Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа по любому из (1)-(21).(22) A video processing device containing a processor configured to implement the method according to any of (1)-(21).

(23) Устройство по (22), в котором устройство представляет собой видеокодер.(23) The device according to (22), in which the device is a video encoder.

(24) Устройство по (22), в котором устройство представляет собой видеодекодер.(24) The device according to (22), in which the device is a video decoder.

(25) Машиночитаемый носитель записи, хранящий программу, содержащую код, причем программа, вызывает, при исполнении процессором, выполнение способа по любому из (1)-(21).(25) A computer-readable recording medium storing a program containing code, wherein the program causes, when executed by a processor, the method of any one of (1) to (21).

Некоторые особенности, предпочтительно реализованные в некоторых вариантах осуществления, теперь будут раскрыты в формате, основанном на пунктах.Certain features preferably implemented in some embodiments will now be disclosed in a clause-based format.

(1) Способ обработки видео, содержащий:(1) A video processing method comprising:

определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения;determining, during conversion between the first block of visual media data and the corresponding encoded representation of the visual media data, a first block encoded in a geometric partitioning mode;

определение информации о движении по меньшей мере одной подчасти первого блока;determining motion information of at least one sub-part of the first block;

преобразование первого блока с использованием информации о движении по меньшей мере одной подчасти; причемtransforming the first block using motion information of the at least one sub-part; and

определение информации о движении по меньшей мере одной подчасти содержит использование по меньшей мере одного кандидата предсказания вектора движения на основе истории (HMVP), который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения и определения информации о движении из списка кандидатов движения.determining motion information of the at least one sub-part comprises using at least one history-based motion vector prediction (HMVP) candidate that includes motion information based on a previously encoded block to create a list of motion candidates and determine motion information from the list candidates of the movement.

(2) Способ по (1), в котором первый блок, кодируемый в режиме геометрического разбиения, содержит:(2) The method according to (1), in which the first block encoded in the geometric partitioning mode contains:

разбиение первого блока на несколько подчастей; причемsplitting the first block into several subparts; and

по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной частью.at least one of the plurality of sub-portions is a non-rectangular and non-square portion.

(3) Способ по (1), в котором(3) The method according to (1), in which

по меньшей мере один кандидат HMVP добавляется непосредственно в список кандидатов движения.at least one HMVP candidate is added directly to the movement's candidate list.

(4) Способ по любому из (1)-(3), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(4) The method as in any one of (1) to (3), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

использованием одного кандидата HMVP для определения первого кандидата движения и второго кандидата движения, причем один из первого кандидата движения и второго кандидата движения представляет собой уни-предсказание с информацией о движении из списка 0 кандидата HMVP, а другой представляет собой уни-предсказание с информацией о движении из списка 1 кандидата HMVP.using one HMVP candidate to determine a first motion candidate and a second motion candidate, wherein one of the first motion candidate and the second motion candidate is a uni-prediction with motion information from HMVP candidate list 0, and the other is a uni-prediction with motion information from list 1 candidate HMVP.

(5) Способ по любому из (1)-(4), дополнительно содержащий:(5) The method according to any one of (1)-(4), further comprising:

усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на пространственных или временных видеоблоках.truncation in response to inserting a motion candidate derived from an HMVP candidate with other motion candidates that are based on spatial or temporal video blocks.

(6) Способ по любому из (1)-(5), дополнительно содержащий:(6) The method according to any one of (1)-(5), further comprising:

усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на других кандидатах HMVP.truncation in response to inserting a motion candidate derived from an HMVP candidate with other motion candidates that are based on other HMVP candidates.

(7) Способ по любому из (1)-(6), дополнительно содержащий:(7) The method according to any one of (1)-(6), further comprising:

усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на кандидате HMVP.truncation in response to inserting a motion candidate derived from an HMVP candidate with other motion candidates that are based on the HMVP candidate.

(8) Способ по любому из (1)-(7), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(8) The method as in any one of (1) to (7), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после кандидатов движения, извлеченных из одного или обоих пространственных или временных блоков.adding at least one motion candidate obtained from the HMVP candidate to the list of motion candidates after the motion candidates extracted from one or both of the spatial or temporal blocks.

(9) Способ по любому из (1)-(8), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(9) The method as in any one of (1) to (8), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед заданным этапом в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков.adding at least one motion candidate obtained from the HMVP candidate to the motion candidate list after or before a given step in the process of creating a motion candidate list based on the motion information of the spatial or time blocks.

10. Способ по любому из (1)-(9), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:10. The method as in any one of (1) to (9), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед несколькими заданными этапами в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков.adding at least one motion candidate obtained from the HMVP candidate to the motion candidate list after or before a plurality of predetermined steps in the process of creating a motion candidate list based on the motion information of the spatial or time blocks.

(11) Способ по любому из (1)-(10), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(11) The method as in any one of (1) to (10), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление, по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием, в список кандидатов движения после всех первоначально предсказанных кандидатов.adding at least one motion candidate derived from the uni-prediction HMVP candidate to the list of motion candidates after all initially predicted candidates.

(12) Способ по любому из (1)-(11), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(12) The method as in any one of (1) to (11), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием из списка 0 или би-предсказанием, в список кандидатов движения после предсказанных кандидатов из усеченного списка 0.adding at least one motion candidate derived from the HMVP candidate with uni-prediction from list 0 or bi-prediction to the list of motion candidates after the predicted candidates from truncated list 0.

(13) Способ по любому из (1)-(12), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(13) The method as in any one of (1) to (12), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием из списка 1 или би-предсказанием, в список кандидатов движения после предсказанных кандидатов из усеченного списка 1.adding at least one motion candidate derived from the uni-prediction candidate from list 1 or bi-prediction HMVP to the list of motion candidates after the predicted candidates from truncated list 1.

(14) Способ по любому из (1)-(13), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(14) The method as in any one of (1) to (13), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения после усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1.adding at least one motion candidate derived from at least one HMVP candidate to the motion candidate list after averaging the uni-prediction from the motion candidates from list 0 or list 1.

(15) Способ по любому из (1)-(14), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(15) The method as in any one of (1) to (14), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения перед усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1.adding at least one motion candidate derived from at least one HMVP candidate to the motion candidate list before the average uni-prediction from the motion candidates from list 0 or list 1.

(16) Способ по любому из (1)-(15), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(16) The method as in any one of (1) to (15), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения в соответствии с чередованием с кандидатами движения, которые основаны на информации о движении пространственных или временных блоков по отношению к текущему блоку.adding at least one motion candidate obtained from the HMVP candidate to the list of motion candidates in accordance with the interleaving with motion candidates that are based on motion information of spatial or temporal blocks with respect to the current block.

(17) Способ по любому из (8)-(16), в котором(17) The method according to any one of (8)-(16), in which

кандидат движения, полученный из кандидата HMVP, устанавливается равным кандидату HMVP.The motion candidate obtained from the HMVP candidate is set equal to the HMVP candidate.

(18) Способ по любому из (1)-(17), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(18) The method as in any one of (1) to (17), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из списка 0 и списка 1 кандидата HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 0 и списка 1 другого кандидата HMVP. adding at least one motion candidate obtained from list 0 and list 1 of the HMVP candidate to the motion candidate list before the motion candidates obtained from list 0 and list 1 of the other HMVP candidate.

(19) Способ по любому из (1)-(18), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(19) The method as in any one of (1) to (18), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление по меньшей мере одного кандидата движения, полученного из списка 0 первого набора кандидатов HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 1 второго набора кандидатов HMVP.adding at least one motion candidate obtained from list 0 of the first HMVP candidate set to the motion candidate list before the motion candidates obtained from list 1 of the second HMVP candidate set.

(20) Способ по (19), в котором первый набор и второй набор являются одинаковыми.(20) Method according to (19), in which the first set and the second set are the same.

(21) Способ по (19), в котором первый набор и второй набор являются разными, и первый набор включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием, причем второй набор включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием.(21) The method according to (19), in which the first set and the second set are different, and the first set includes HMVP candidates with uni-prediction from list 0 and bi-prediction, and the second set includes HMVP candidates with uni-prediction list 1 prediction and bi-prediction.

(22) Способ по (19), в котором первый набор включает в себя первое количество кандидатов HMVP, второй набор включает в себя второе количество кандидатов HMVP, и первое количество и второе количество являются разными.(22) The method according to (19), wherein the first set includes a first number of HMVP candidates, the second set includes a second number of HMVP candidates, and the first number and the second number are different.

(23) Способ по любому из (1)-(22), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(23) The method as in any one of (1) to (22), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

масштабирование кандидатов HMVP из списка LX - списка L(1-X) для выработки масштабированных кандидатов HMVP, которые используются для L(1-X).scaling HMVP candidates from the LX list - the L(1-X) list to produce scaled HMVP candidates that are used for L(1-X).

(24) Способ по (23), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(24) The method of (23), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP.adding scaled HMVP candidates after other motion candidates derived from HMVP candidates.

(25) Способ по (23), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:(25) The method of (23), wherein using at least one HMVP candidate that includes motion information based on a previously encoded block to create a motion candidate list comprises:

добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP, и перед временными кандидатами.adding scaled HMVP candidates after other motion candidates derived from HMVP candidates and before temporal candidates.

(26) Способ по любому из (1)-(25), в котором порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на индексах кандидатов HMVP.(26) The method as in any one of (1) to (25), wherein the order of checking the HMVP candidates added to the motion candidate list is based on the indices of the HMVP candidates.

(27) Способ по любому из (1)-(25), в котором порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на направлениях предсказания.(27) The method as in any one of (1) to (25), wherein the order of checking HMVP candidates added to the motion candidate list is based on prediction directions.

(28) Способ по любому из (1)-(25), в котором порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на информации о движении.(28) The method as in any one of (1) to (25), wherein the order of checking HMVP candidates added to the motion candidate list is based on the motion information.

(29) Способ по любому из (1)-(28), в котором количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, определено заранее.(29) The method as in any one of (1) to (28), wherein the number of HMVP candidates to be checked in the motion candidate list creation process is determined in advance.

(30) Способ по любому из (1)-(28), в котором количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, основано на размере блока текущего блока, форме блока текущего блока или количестве кандидатов, доступных до проверки кандидатов HMVP.(30) The method as in any one of (1) to (28), wherein the number of HMVP candidates to be verified in the motion candidate list creation process is based on the block size of the current block, the block shape of the current block, or the number of candidates available before the HMVP candidates are verified .

(31) Способ по любому из (1)-(28), в котором количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, сигнализируется в наборе параметров видео (VPS), наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке изображения, заголовке группы тайлов, заголовке слайса, группе строк единиц дерева кодирования (CTU), CTU или группе CTU.(31) The method as in any one of (1) to (28), wherein the number of HMVP candidates to be checked in the motion candidate list creation process is signaled in a video parameter set (VPS), a sequence parameter set (SPS), an image parameter set ( PPS), image header, tile group header, slice header, coding tree unit (CTU) line group, CTU, or CTU group.

(32) Способ по любому из (1)-(28), в котором кандидаты HMVP, выбранные для проверки в списке кандидатов движения, основаны по меньшей мере на одном из: направления предсказания, информации о векторе движения (MV), индекса опорного кадра, расстояний РОС опорного изображения и текущего изображения кандидата и индекса кандидата.(32) The method as in any one of (1) to (28), wherein the HMVP candidates selected for checking in the motion candidate list are based on at least one of: prediction direction, motion vector (MV) information, reference frame index , the DOC distances of the reference image and the current candidate image and the candidate index.

(33) Способ по любому из (1)-(28), в котором применение HMVP к текущему блоку основано на размере блока текущего блока или форме блока текущего блока.(33) The method as in any one of (1) to (28), wherein applying the HMVP to the current block is based on the block size of the current block or the block shape of the current block.

(34) Способ по любому из (1)-(33), в котором список кандидатов движения содержит список слияния.(34) The method as in any one of (1) to (33), wherein the motion candidate list contains a merge list.

(35) Способ по любому из (1)-(33), в котором список кандидатов движения применим к другим видам списков кандидатов движения, за исключением списка кандидатов слияния.(35) The method as in any one of (1) to (33), wherein the motion candidate list is applicable to other kinds of motion candidate lists except the merger candidate list.

(36) Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа по любому из (1)-(35).(36) A video processing device containing a processor configured to implement the method according to any of (1)-(35).

(37) Устройство по (36), в котором устройство является видеокодером.(37) Device according to (36), in which the device is a video encoder.

(38) Устройство по (36), в котором устройство является видеодекодером.(38) Device according to (36), in which the device is a video decoder.

(39) Машиночитаемый носитель записи, на котором записана программа, содержащая код, причем программа предназначена для процессора, чтобы выполнять способ по любому из (1)-(35).(39) A computer-readable recording medium on which a program containing code is recorded, the program being configured for a processor to execute the method of any one of (1) to (35).

Раскрытые и другие решения, примеры, варианты осуществления, модули и функциональные операции, описанные в данном документе, могут быть реализованы в цифровых электронных схемах или в компьютерном программном обеспечении, программно-аппаратных средствах или аппаратных средствах, включая структуры, раскрытые в данном документе, и их структурные эквиваленты, или в комбинациях одного или множества из них. Раскрытые и другие варианты осуществления могут быть реализованы в виде одного или множества компьютерных программных продуктов, то есть одного или множества модулей компьютерных программных инструкций, кодированных на машиночитаемом носителе информации, для их исполнения устройством обработки данных или для управления его работой. Машиночитаемой средой может быть машиночитаемое запоминающее устройство, машиночитаемый носитель информации, запоминающее устройство, состав вещества, влияющий на машиночитаемый распространяемый сигнал, или комбинацией одного или множества из них. Термин "устройство обработки данных" охватывает все аппаратные устройства, устройства и машины для обработки данных, включая, посредством примера, программируемый процессор, компьютер и многочисленные процессоры или компьютеры. Устройство может включать в себя, помимо аппаратных средств, код, который создает среду исполнения для рассматриваемой компьютерной программы, например, код, составляющий микропрограммное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию из одного или более из них. Распространяемый сигнал представляет собой искусственно выработанный сигнал, например, генерируемый машиной электрический, оптический или электромагнитный сигнал, который вырабатывается для кодирования информации для передачи в подходящее приемное устройство.The disclosed and other solutions, examples, embodiments, modules and functional operations described herein may be implemented in digital electronic circuits or in computer software, firmware or hardware, including the structures disclosed herein, and their structural equivalents, or combinations of one or more of them. The disclosed and other embodiments may be implemented as one or a plurality of computer program products, that is, one or multiple modules of computer program instructions encoded on a computer-readable storage medium for execution by a data processing device or for controlling the operation thereof. The computer-readable medium may be a computer-readable storage device, a computer-readable storage medium, a storage device, a composition of matter affecting the machine-readable propagation signal, or a combination of one or more of these. The term "data processing device" covers all hardware devices, devices and machines for processing data, including, by example, a programmable processor, a computer and multiple processors or computers. The apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, such as code comprising processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these. The propagated signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal, that is produced to encode information for transmission to a suitable receiving device.

Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий или код) может быть написана на языка программирования любого вида, включая скомпилированные или интерпретируемые языки, и ее можно развернуть в любом виде, в том числе как автономную программу или как модуль, компонент, подпрограмму или другой блок, подходящий для использования в вычислительной среде. Компьютерная программа необязательно соответствует файлу в файловой системе. Программа может храниться в части файла, который содержит другие программы или данные (например, один или несколько сценариев, хранящихся в документе на языке разметки), в одном файле, выделенном рассматриваемой программе, или в множества скоординированных файлах (например, в файлах, в которых хранятся один или более модулей, подпрограмм или частей кода). Компьютерная программа может быть развернута для ее исполнения на одном компьютере или на множества компьютерах, которые расположены в одном месте или распределены по многочисленным местам и связаны между собой сетью связи.A computer program (also known as a program, software, software application, script, or code) can be written in any kind of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module , component, routine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file on a file system. A program may be stored in a portion of a file that contains other programs or data (for example, one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (for example, files in which stores one or more modules, subroutines, or pieces of code). A computer program may be deployed for execution on a single computer or on multiple computers that are located in one location or distributed over multiple locations and interconnected by a communications network.

Процессы и логические потоки, описанные в данном документе, могут выполняться одним или более программируемыми процессорами, исполняющими одну или более компьютерных программ для выполнения функций, оперируя входными данными и вырабатывая выходные данные. Процессы и логические потоки могут также выполняться логической схемой специального назначения, например, программируемой вентильной матрицей (FPGA) или специализированной интегральной схемой (ASIC), и устройство может быть также реализовано в виде них.The processes and logical flows described herein may be executed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and producing output data. Processes and logic flows may also be carried out by special purpose logic circuitry, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC), and the device may also be implemented as these.

Процессоры, подходящие для исполнения компьютерной программы, включают в себя, посредством примера, микропроцессоры как общего, так и специального назначения, и любой один или более процессоров цифрового компьютера любого типа. В общем, процессор будет принимать инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, либо из обоих. Существенными элементами компьютера являются процессор для исполнения инструкций и одно или более запоминающих устройств для хранения инструкций и данных. В общем, компьютер также будет включать в себя или функционально связан для приема данных из или передачи данных в одно или оба устройства хранения большой емкости для хранения данных, например, магнитные, магнитооптические диски или оптические диски. Однако в компьютере такие устройства не обязательны. Машиночитаемые носители информации, подходящие для хранения инструкций и данных компьютерных программ, включают в себя все виды энергонезависимой памяти, носителей информации и запоминающих устройств, в том числе, например, полупроводниковые запоминающие устройства, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут быть дополнены логической схемой специального назначения или включены в нее. Processors suitable for executing a computer program include, by way of example, both general purpose and special purpose microprocessors, and any one or more digital computer processors of any type. In general, the processor will receive instructions and data from read only memory or random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. In general, the computer will also include or be operably coupled to receive data from or transmit data to one or both of large capacity storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks. However, such devices are not necessary in a computer. Computer readable storage media suitable for storing computer program instructions and data include all types of non-volatile memory, storage media and storage devices, including, for example, semiconductor storage devices such as EPROM, EEPROM and flash memory devices; magnetic disks, such as internal hard drives or removable drives; magneto-optical disks; and CD-ROMs and DVD-ROMs. The processor and memory may be supplemented or included with special-purpose logic.

Хотя данный патентный документ содержит много специфичных деталей, их не следует рассматривать не как ограничение объема любого изобретения или того, что может быть заявлено, а скорее как описания признаков, которые могут быть специфичными для конкретных вариантов осуществления конкретных технологий. Некоторые признаки, которые описаны в данном патентном документе в контексте отдельных вариантов осуществления, также могут быть реализованы в виде комбинации в одном варианте осуществления. Напротив, различные признаки, которые описаны в контексте одного варианта осуществления, могут быть также реализованы во множестве вариантов осуществления отдельно или в любой подходящей подкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в определенных комбинациях и даже изначально заявлены как таковые, в некоторых случаях один или более признаков заявленной комбинации могут быть исключены из комбинации, и заявленная комбинация может быть сориентирована на подкомбинацию или вариацию подкомбинации.Although this patent document contains many specific details, they should not be construed as limiting the scope of any invention or what may be claimed, but rather as describing features that may be specific to particular embodiments of particular technologies. Certain features that are described in this patent document in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of one embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as operating in certain combinations and even initially claimed as such, in some cases one or more features of a claimed combination may be excluded from the combination, and the claimed combination may be directed toward a subcombination or a variation of a subcombination.

Аналогичным образом, хотя операции изображены на чертежах в определенном порядке, это не следует понимать как требование того, чтобы такие операции выполнялись в конкретном показанном порядке или в последовательном порядке, или чтобы все проиллюстрированные операции выполнялись для достижения желаемых результатов. Более того, разбиение различных компонентов системы в вариантах осуществления, описанных в данном патентном документе, не следует понимать как требующее такого разбиения во всех вариантах осуществленияLikewise, although operations are depicted in the drawings in a particular order, this should not be understood to require that such operations be performed in the particular order shown or in a sequential order, or that all illustrated operations be performed to achieve the desired results. Moreover, the partitioning of various system components in the embodiments described in this patent document should not be understood to require such partitioning in all embodiments

Выше было описано только несколько реализаций и примеров, и другие реализации, улучшения и изменения могут быть выполнены на основе того, что описано и проиллюстрировано в данном патентном документе.Only a few implementations and examples have been described above, and other implementations, improvements and changes may be made based on what is described and illustrated in this patent document.

Claims (37)

1. Способ обработки видеоданных, содержащий этапы, на которых:1. A method for processing video data, comprising the steps of: определяют, во время преобразования между первым блоком визуальных медиаданных и соответствующим битовым потоком визуальных медиаданных, первый блок, кодированный в режиме геометрического разбиения;determining, during conversion between the first block of visual media data and the corresponding bitstream of visual media data, a first block encoded in a geometric partitioning mode; составляют, на основе таблицы, хранящей одного или более кандидатов движения, ассоциированных с информацией движения на основе ранее кодированных блоков, список кандидатов движения, соответствующий списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);compiling, based on a table storing one or more motion candidates associated with motion information based on previously encoded blocks, a motion candidate list corresponding to the merge candidate list, said table comprising a history-based motion vector prediction (HMVP) table; определяют, содержащийся в битовом потоке, индекс слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока; иdetermining, contained in the bit stream, a geometric partitioning mode merging index for a geometric partitioning of the first block, the geometric partitioning mode merging index and the motion candidate list referring to motion information of the first block; And выполняют преобразование первого блока с использованием информации о движении первого блока.transforming the first block using the motion information of the first block. 2. Способ по п. 1, в котором информация о движении, используемая первым блоком, не сохраняется в указанной таблице.2. The method of claim 1, wherein the motion information used by the first block is not stored in said table. 3. Способ по п. 1, в котором указанная таблица не обновляется после преобразования первого блока.3. The method of claim 1, wherein said table is not updated after the first block is converted. 4. Способ по п. 1, дополнительно содержащий этап, на котором:4. The method according to claim 1, further comprising the step of: определяют, во время преобразования между вторым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, информацию о движении второго блока на основе одной и той же таблицы, используемой для первого блока, причемdetermining, during conversion between the second block of visual media data and the corresponding encoded representation of the visual media data, motion information of the second block based on the same table used for the first block, wherein второй блок кодирован без использования режима геометрического разбиения.the second block is encoded without using the geometric partitioning mode. 5. Способ по п. 1, в котором этап составления списка кандидатов движения, дополнительно, содержит составление списка кандидатов движения на основе кандидатов движения, полученных из пространственных и/или временных блоков.5. The method of claim 1, wherein the step of compiling a list of motion candidates further comprises compiling a list of motion candidates based on the motion candidates obtained from the spatial and/or time blocks. 6. Способ по п. 1, в котором этап составления, на основе таблицы, хранящей одного или более кандидатов движения, ассоциированных с информацией движения на основе предварительно кодированных блоков, списка кандидатов движения, соответствующего списку кандидатов слияния, содержит подэтап, на котором:6. The method of claim 1, wherein the step of constructing, based on a table storing one or more motion candidates associated with motion information based on pre-coded blocks, a motion candidate list corresponding to the merge candidate list, comprises the substep of: добавляют по меньшей мере одного кандидата движения, полученного из таблицы для первого блока.adding at least one motion candidate obtained from the table for the first block. 7. Способ по п. 6, в котором этап добавления кандидатов движения, полученных из таблицы для первого блока, содержит подэтап, на котором: 7. The method of claim 6, wherein the step of adding motion candidates obtained from the table for the first block comprises a substep of: добавляют по меньшей мере один кандидат движения, полученный из таблицы, в список кандидатов движения после получения кандидатов движения от пространственных блоков и/или временных блоков.adding at least one motion candidate obtained from the table to the list of motion candidates after receiving motion candidates from spatial blocks and/or time blocks. 8. Способ по п. 6, в котором по меньшей мере один кандидат движения, полученный из таблицы, установлен равным соответствующему по меньшей мере одному кандидату движения в таблице.8. The method of claim 6, wherein the at least one motion candidate obtained from the table is set equal to the corresponding at least one motion candidate in the table. 9. Способ по п. 6, в котором порядок проверки кандидатов движения в таблице, подлежащей добавлению в список кандидатов движения, основан на указателях кандидатов движения в таблице.9. The method of claim 6, wherein the order of checking motion candidates in the table to be added to the motion candidate list is based on motion candidate indicators in the table. 10. Способ по п. 1, в котором режим геометрического разбиения содержит множество схем разбиения, причем по меньшей мере одна схема разбиения обеспечивает разделение первого блока на две геометрические части, по меньшей мере одна из которых является непрямоугольной и неквадратной.10. The method of claim 1, wherein the geometric partitioning mode comprises a plurality of partitioning schemes, wherein at least one partitioning scheme divides the first block into two geometric parts, at least one of which is non-rectangular and non-square. 11. Способ по п. 1, в котором режим геометрического разбиения содержит режим треугольного разбиения.11. The method according to claim 1, in which the geometric partition mode contains a triangular partition mode. 12. Способ по п. 1, в котором этап преобразования содержит декодирование первого блока из соответствующего битового потока.12. The method of claim 1, wherein the transform step comprises decoding a first block from the corresponding bit stream. 13. Способ по п. 1, в котором этап преобразования содержит кодирование первого блока в соответствующий битовый поток.13. The method of claim 1, wherein the conversion step comprises encoding the first block into a corresponding bitstream. 14. Устройство обработки видеоданных, содержащее процессор и машиночитаемый носитель записи, хранящий инструкции, вызывающие, при исполнении процессором, выполнение процессором:14. A video processing device comprising a processor and a computer-readable recording medium storing instructions that cause, when executed by the processor, execution by the processor: определения, во время преобразования между первым блоком визуальных медиаданных и соответствующим битовым потоком визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения;determining, during conversion between the first block of visual media data and the corresponding bitstream of visual media data, a first block encoded in a geometric partitioning mode; составления, на основе таблицы, хранящей одного или более кандидатов, ассоциированных с информацией движения на основе ранее кодированных блоков, списка кандидатов движения, соответствующего списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);generating, based on a table storing one or more candidates associated with motion information based on previously encoded blocks, a motion candidate list corresponding to the merge candidate list, said table comprising a history-based motion vector prediction (HMVP) table; определения, содержащегося в битовом потоке, индекс слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока; иdetermining, contained in the bitstream, a geometric partitioning mode merging index for a geometric partitioning of the first block, wherein the geometric partitioning mode merging index and the motion candidate list refer to motion information of the first block; And выполнения преобразования первого блока с использованием информации о движении первого блока.performing a transformation of the first block using the motion information of the first block. 15. Машиночитаемый носитель записи, хранящий инструкции, вызывающие выполнение процессором:15. A computer-readable recording medium storing instructions causing the processor to execute: определения, во время преобразования между первым блоком визуальных медиаданных и соответствующим битовым потоком визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения;determining, during conversion between the first block of visual media data and the corresponding bitstream of visual media data, a first block encoded in a geometric partitioning mode; составления, на основе таблицы из одного или более кандидатов, ассоциированных с информацией движения на основе ранее кодированных блоков, списка кандидатов движения, соответствующего списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);generating, based on a table of one or more candidates associated with motion information based on previously encoded blocks, a motion candidate list corresponding to the merge candidate list, said table comprising a history-based motion vector prediction (HMVP) table; определения, содержащегося в битовом потоке, индекса слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока; иdetermining, contained in the bit stream, a geometric partitioning mode merging index for a geometric partitioning of the first block, the geometric partitioning mode merging index and the motion candidate list referring to motion information of the first block; And выполнения преобразования первого блока с использованием информации о движении первого блока.performing a transformation of the first block using the motion information of the first block. 16. Способ сохранения битового потока видео, содержащий этапы, на которых:16. A method for storing a video bitstream, comprising the steps of: определяют, во время генерирования битового потока визуальных медиаданных из первого блока визуальных медиаданных, первый блок, являющийся единицей кодирования, кодированный в режиме геометрического разбиения, являющемся режимом предсказания для блока кодирования;determining, while generating a visual media bitstream from the first visual media block, a first block being a coding unit encoded in a geometric partitioning mode being a prediction mode for the coding block; составляют, на основе таблицы, хранящей одного или более кандидатов движения, ассоциированных с информацией движения на основе ранее кодированных блоков, список кандидатов движения, соответствующий списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);compiling, based on a table storing one or more motion candidates associated with motion information based on previously encoded blocks, a motion candidate list corresponding to the merge candidate list, said table comprising a history-based motion vector prediction (HMVP) table; определяют, содержащийся в битовом потоке, индекс слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока;determining, contained in the bit stream, a geometric partitioning mode merging index for a geometric partitioning of the first block, the geometric partitioning mode merging index and the motion candidate list referring to motion information of the first block; генерируют битовый поток из первого блока с использованием информации движения первого блока; иgenerating a bit stream from the first block using the motion information of the first block; And сохраняют битовый поток на энергонезависимом машиночитаемом носителе записи.storing the bit stream on a non-volatile computer-readable recording medium.
RU2021111407A 2018-11-02 2019-11-04 Maintaining tables for storing candidates for prediction of motion vector based on history RU2808631C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNPCT/CN2018/113716 2018-11-02
CNPCT/CN2019/086174 2019-05-09

Publications (2)

Publication Number Publication Date
RU2021111407A RU2021111407A (en) 2022-10-24
RU2808631C2 true RU2808631C2 (en) 2023-11-30

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2550554C2 (en) * 2011-01-27 2015-05-10 Квэлкомм Инкорпорейтед Predicting movement vector for video coding
US9485520B2 (en) * 2011-04-11 2016-11-01 Texas Instruments Incorporated Parallel motion estimation in video coding
WO2017197126A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2550554C2 (en) * 2011-01-27 2015-05-10 Квэлкомм Инкорпорейтед Predicting movement vector for video coding
US9485520B2 (en) * 2011-04-11 2016-11-01 Texas Instruments Incorporated Parallel motion estimation in video coding
WO2017197126A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RU-LING LIAO еt al, CE10.3.1.b: Triangular prediction unit mode, Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0124-v1, 12th Meeting: Macao, 3-12 Oct. 2018. MAN-SHU CHIANG et al, CE10.1: Combined and multi-hypothesis prediction, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-K0257-v1, 11th Meeting: Ljubljana, 10-18 July 2018. BENJAMIN BROSS еt al, Versatile Video Coding (Draft 3), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L1001-v9, 12th Meeting: Macao, 3-12 Oct. 2018. *

Similar Documents

Publication Publication Date Title
US11122266B2 (en) Table maintenance for HMVP candidate storage
US11070820B2 (en) Condition dependent inter prediction with geometric partitioning
US20220021885A1 (en) Mode dependent motion vector difference precision set
CN113170182B (en) Pruning method under different prediction modes
CN113424525B (en) Size selective application of decoder side refinement tools
JP2023159148A (en) Position-dependent storage device for motion information
KR20210121021A (en) Affine Mode Adaptive Motion Vector Resolution Coding Context
WO2020140862A1 (en) Conditional application of inter prediction with geometric partitioning in video processing
WO2020143742A1 (en) Simplified context modeling for context adaptive binary arithmetic coding
CN113366839B (en) Refinement quantization step in video codec
RU2808631C2 (en) Maintaining tables for storing candidates for prediction of motion vector based on history
WO2020224639A1 (en) Improvement on hmvp table
WO2023274302A1 (en) Recursive prediction unit in video coding
CN113557720A (en) Adaptive weights in multi-hypothesis prediction in video coding