RU2778099C1 - Method and device for video encoding and decoding, using inter-prediction - Google Patents
Method and device for video encoding and decoding, using inter-prediction Download PDFInfo
- Publication number
- RU2778099C1 RU2778099C1 RU2021137067A RU2021137067A RU2778099C1 RU 2778099 C1 RU2778099 C1 RU 2778099C1 RU 2021137067 A RU2021137067 A RU 2021137067A RU 2021137067 A RU2021137067 A RU 2021137067A RU 2778099 C1 RU2778099 C1 RU 2778099C1
- Authority
- RU
- Russia
- Prior art keywords
- block
- sample
- affine
- prediction
- sub
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 claims description 65
- 238000005070 sampling Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000005286 illumination Methods 0.000 description 63
- 238000000034 method Methods 0.000 description 26
- 230000003287 optical Effects 0.000 description 26
- 230000002457 bidirectional Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 108060000351 ALYREF Proteins 0.000 description 12
- 238000007906 compression Methods 0.000 description 11
- 230000001131 transforming Effects 0.000 description 9
- 230000003044 adaptive Effects 0.000 description 8
- 238000000926 separation method Methods 0.000 description 7
- 241000023320 Luma <angiosperm> Species 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 241001442055 Vipera berus Species 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 240000004282 Grewia occidentalis Species 0.000 description 3
- 230000000903 blocking Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000001154 acute Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001419 dependent Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 230000000750 progressive Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe field of technology to which the invention relates
[1] Настоящее раскрытие относится к кодированию и декодированию видео и, в частности, к инструменту кодирования для повышения эффективности сжатия интер-предсказания.[1] The present disclosure relates to video encoding and decoding, and in particular, to an encoding tool for improving inter-prediction compression efficiency.
Уровень техникиState of the art
[2] Поскольку объем видеоданных больше, чем объем речевых данных или данных статического изображения, для хранения или передачи видеоданных без обработки для сжатия требуется много аппаратных ресурсов, включая память. Соответственно, при хранении или передаче видеоданных видеоданные обычно сжимаются с использованием кодировщика для хранения или передачи. Затем декодер принимает сжатые видеоданные, распаковывает и воспроизводит видеоданные. Процедуры сжатия для такого видео включают H.264/AVC и высокоэффективное кодирование видео (HEVC), которое повышает эффективность кодирования по сравнению с H.264/AVC примерно на 40%.[2] Since the amount of video data is larger than the amount of voice data or still image data, storage or transmission of video data without processing for compression requires a lot of hardware resources, including memory. Accordingly, when storing or transmitting video data, the video data is typically compressed using an encoder for storage or transmission. The decoder then receives the compressed video data, decompresses and plays back the video data. Compression procedures for such video include H.264/AVC and High Efficiency Video Coding (HEVC), which improves coding efficiency by about 40% over H.264/AVC.
[3] Однако размер изображения, разрешение и частота кадров постепенно увеличиваются, и, соответственно, увеличивается также объем данных, которые необходимо кодировать. Соответственно, требуется новая процедура сжатия, имеющая лучшую эффективность кодирования и более высокое качество изображения, чем существующая процедура сжатия.[3] However, the image size, resolution, and frame rate gradually increase, and accordingly, the amount of data that needs to be encoded also increases. Accordingly, a new compression procedure having better coding efficiency and higher image quality than the existing compression procedure is required.
[4] В кодировании видео для повышения эффективности сжатия видео в основном используется кодирование с предсказанием. Существуют интра-предсказание для предсказания целевого блока, который должен быть закодирован, на основе предварительно восстановленных отсчетов в текущем изображении, и интер-предсказание для предсказания текущего блока с использованием предварительно восстановленного опорного изображения. В частности, интер-предсказание широко используется для кодирования видео, поскольку оно демонстрирует превосходные характеристики сжатия по сравнению с интра-предсказанием.[4] Video coding mainly uses predictive coding to increase the efficiency of video compression. There are intra prediction for predicting a target block to be encoded based on previously reconstructed samples in the current picture, and inter prediction for predicting the current block using a previously reconstructed reference picture. In particular, inter-prediction is widely used for video coding because it exhibits superior compression performance compared to intra-prediction.
[5] Настоящее раскрытие предусматривает инструмент кодирования для повышения эффективности сжатия существующего интер-предсказания.[5] The present disclosure provides a coding tool for improving the compression efficiency of an existing inter-prediction.
[6] В частности, настоящее раскрытие относится к инструменту кодирования для повышения эффективности сжатия при интер-предсказании и, в одном аспекте, относится к инструменту кодирования, способному компенсировать различные движения объекта, включая движение поступательного движения.[6] In particular, the present disclosure relates to an encoding tool for improving compression efficiency in inter-prediction and, in one aspect, relates to an encoding tool capable of compensating for various motions of an object, including translational motion.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
[7] В соответствии с одним аспектом настоящего раскрытия, предоставляется способ декодирования видео для декодирования последовательности кодированных изображений на поблочной основе. Способ включает в себя установление, на уровне последовательности, разрешено ли аффинное предсказание движения, посредством декодирования первого синтаксического элемента высокого уровня из битового потока; установление, на уровне изображения, разрешен ли каждый из по меньшей мере одного инструмента кодирования, посредством декодирования одного или более вторых элементов синтаксиса высокого уровня для каждого из по меньшей мере одного инструмента кодирования из битового потока в зависимости от первого элемента синтаксиса высокого уровня, причем по меньшей мере один инструмент кодирования включает в себя поотсчетную корректировку отсчетов аффинного предсказания движения; когда установление на уровне последовательности указывает, что аффинное предсказание движения разрешено, определение множество векторов движения контрольных точек целевого блока, кодированных с использованием аффинного предсказание движения, и генерирование отсчетов аффинного предсказания для каждого из субблоков в целевом блоке посредством выполнения аффинного предсказания движения в единице субблоков с использованием векторов движения контрольных точек; и когда на основе установления на уровне изображения установлено, что поотсчетная корректировка отсчетов аффинного предсказания движения разрешена для текущего изображения, содержащего целевой блок, модификацию значений отсчетов в отсчетах аффинного предсказания посредством компенсации движения в соответствии с положением отсчета в каждом из субблоков на основе векторов движения контрольных точек целевого блока.[7] According to one aspect of the present disclosure, a video decoding method for decoding a sequence of encoded pictures on a block-by-block basis is provided. The method includes determining, at a sequence level, whether affine motion prediction is enabled by decoding a first high-level syntax element from a bitstream; determining, at the image level, whether each of the at least one encoding tool is enabled by decoding one or more second high-level syntax elements for each of the at least one encoding tool from the bitstream depending on the first high-level syntax element, wherein at least one coding tool includes a sample-by-sample adjustment of affine motion prediction samples; when setting at the sequence level indicates that affine motion prediction is enabled, determining a plurality of motion vectors of control points of the target block encoded using affine motion prediction, and generating affine prediction samples for each of the sub-blocks in the target block by performing affine motion prediction in a unit of sub-blocks with using motion vectors of control points; and when, based on the picture level establishment, it is determined that affine motion prediction sample-by-sample adjustment is allowed for the current image containing the target block, modifying the sample values in the affine prediction samples by motion compensation according to the sample position in each of the sub-blocks based on the motion vectors of the reference target block points.
[8] В соответствии с другим аспектом настоящего раскрытия, предоставляется устройство декодирования видео для декодирования последовательности кодированных изображений на поблочной основе. Устройство включает в себя декодер конфигурированный: устанавливать, на уровне последовательности, разрешено ли аффинное предсказание движения, посредством декодирования первого синтаксического элемента высокого уровня из битового потока; и устанавливать, на уровне изображения, разрешен ли каждый из по меньшей мере одного инструмента кодирования, посредством декодирования одного или нескольких вторых элементов синтаксиса высокого уровня для каждого из по меньшей мере одного инструмента кодирования из битового потока в зависимости от первого элемента синтаксиса высокого уровня. В частности, по меньшей мере один инструмент кодирования включает поотсчетное корректирование отсчетов аффинного предсказания движения. [8] According to another aspect of the present disclosure, a video decoding apparatus is provided for decoding a sequence of encoded pictures on a block-by-block basis. The apparatus includes a decoder configured to: determine, at a sequence level, whether affine motion prediction is enabled by decoding a first high-level syntax element from a bitstream; and determining, at the image level, whether each of the at least one encoding tool is enabled by decoding one or more second high level syntax elements for each of the at least one encoding tool from the bitstream depending on the first high level syntax element. In particular, the at least one coding tool includes a sample-by-sample correction of the affine motion prediction samples.
[9] Устройство также включает в себя предиктор, конфигурированный определять, когда установление на уровне последовательности указывает, что аффинное предсказание движения разрешено, множество векторов движения контрольных точек целевого блока, кодированных с использованием аффинного предсказания движения, и генерировать отсчеты аффинного предсказания для каждого субблока в целевом блоке путем выполнения аффинного предсказания движения на посубблочной основе с использованием векторов движения контрольных точек. В ответ на идентификацию, основанную на установление на уровне изображения, что поотсчетная корректировка отсчетов аффинного предсказания движения разрешена для текущего изображения, содержащего целевой блок, предиктор конфигурирован модифицировать значения отсчетов аффинного предсказания путем компенсации движения в соответствии с положением отсчета в каждом из сублоков на основе векторов движения контрольных точек целевого блока.[9] The apparatus also includes a predictor configured to determine, when a sequence-level assertion indicates that affine motion prediction is enabled, a plurality of motion vectors of target block checkpoints encoded using affine motion prediction, and generate affine prediction samples for each sub-block in target block by performing affine motion prediction on a sub-block basis using motion vectors of control points. In response to identifying based on establishing at the image level that sample-by-sample adjustment of affine motion prediction samples is enabled for the current image containing the target block, the predictor is configured to modify affine prediction sample values by motion compensation according to the position of the sample in each of the vector-based sub-blocks. movement of control points of the target block.
[10] В соответствии с другим аспектом настоящего раскрытия, предоставляется способ кодирования последовательности кодированных изображений на поблочной основе. Способ включает в себя кодирование, в заголовке последовательности, первого синтаксического элемента высокого уровня в уровне последовательности, для указания, отключены ли как аффинное предсказание движения, так и по меньшей мере один инструмент кодирования, при этом по меньшей мере один инструмент кодирования включает в себя поотсчетную корректировку отсчетов аффинного предсказания движения; в зависимости от первого элемента синтаксиса высокого уровня, кодирование одного или более вторых элементов синтаксиса высокого уровня, указывающих на установление уровня последовательности или уровня изображения в отношении разрешения кодирования каждого из по меньшей мере одного инструмента кодирования; когда первый элемент синтаксиса высокого уровня указывает, что как аффинное предсказание движения, так и по меньшей мере одно средство кодирования не отключены, определение векторов движения контрольных точек для целевого блока, подлежащего кодированию, и генерирование отсчетов аффинного предсказания для каждого из субблоков посредством выполнения посубблочного аффинного предсказания движения с использованием векторов движения контрольных точек; и когда поотсчетная корректировка отсчетов аффинного предсказания движения разрешена для текущего изображения, содержащего целевой блок, модификацию значений отсчетов в отсчетах аффинного предсказания посредством компенсации движения в соответствии с положением отсчета в каждом из субблоков на основе векторов движения контрольных точек целевого блока. [10] In accordance with another aspect of the present disclosure, a method for encoding a sequence of encoded pictures on a block basis is provided. The method includes encoding, in a sequence header, a first high-level syntax element in the sequence level to indicate whether both affine motion prediction and at least one coding tool are disabled, wherein the at least one coding tool includes a count-wise adjusting affine motion prediction readings; depending on the first high level syntax element, encoding one or more second high level syntax elements indicating the establishment of a sequence level or a picture level with respect to the encoding resolution of each of the at least one encoding tool; when the first high-level syntax element indicates that both affine motion prediction and at least one encoder are not disabled, determining the motion vectors of the checkpoints for the target block to be encoded and generating affine prediction samples for each of the sub-blocks by performing a sub-block affine motion prediction using control point motion vectors; and when the sample-by-sample adjustment of the affine motion prediction samples is enabled for the current image containing the target block, modifying the sample values in the affine prediction samples by motion compensation according to the position of the sample in each of the sub-blocks based on the motion vectors of the checkpoints of the target block.
Краткое описание чертежейBrief description of the drawings
[11] Фиг. 1 - примерная блочная схема устройства кодирования видео, выполненного с возможностью осуществления процедур согласно настоящему раскрытию.[11] FIG. 1 is an exemplary block diagram of a video encoding apparatus capable of performing the procedures of the present disclosure.
[12] Фиг. 2 в качестве примера показывает структуру разделения блоков с использованием структуры QTBTTT.[12] FIG. 2 shows a block division structure using the QTBTTT structure as an example.
[13] Фиг. 3 в качестве примера показывает множество режимов интра-предсказания.[13] FIG. 3 shows a plurality of intra-prediction modes by way of example.
[14] Фиг. 4 в качестве примера показывает соседние блоки вокруг текущего блока.[14] FIG. 4 shows neighboring blocks around the current block as an example.
[15] Фиг. 5 - примерная блочная схема устройства декодирования видео, выполненного с возможностью реализации технологии согласно настоящему раскрытию.[15] FIG. 5 is an exemplary block diagram of a video decoding apparatus capable of implementing the technology of the present disclosure.
[16] Фиг. 6 - примерная схема, иллюстрирующая концепцию оптического потока с двойным предсказанием, предусмотренную настоящим раскрытием.[16] FIG. 6 is an exemplary diagram illustrating the dual prediction optical stream concept of the present disclosure.
[17] Фиг. 7 - примерная схема, иллюстрирующая способ получения градиента для отсчета границы блока в двунаправленном оптическом потоке.[17] FIG. 7 is an exemplary diagram illustrating a method for obtaining a gradient for a block boundary reference in a bidirectional optical flow.
[18] Фиг. 8A - 8B и 9 - примерные схемы, иллюстрирующие аффинное предсказание движения, предусмотренное настоящим раскрытием.[18] FIG. 8A-8B and 9 are exemplary diagrams illustrating the affine motion prediction provided by the present disclosure.
[19] Фиг. 10 - примерная схема, иллюстрирующая способ получения кандидатов на слияние для аффинного предсказания движения из векторов поступательного движения соседних блоков.[19] FIG. 10 is an exemplary diagram illustrating a method for deriving affine motion prediction merge candidates from translational motion vectors of neighboring blocks.
[20] Фиг. 11A - 11c - примерные схемы, иллюстрирующие способ получения параметра компенсации освещенности согласно варианту осуществления компенсации освещенности, предусмотренному настоящим раскрытием.[20] FIG. 11A-11c are exemplary diagrams illustrating a method for obtaining a light compensation parameter according to the light compensation embodiment of the present disclosure.
[21] Фиг. 12A - 12B - примерные схемы, иллюстрирующие способ разделения целевого блока на множество областей согласно другому варианту осуществления компенсации освещения, предусмотренному настоящим раскрытием.[21] FIG. 12A-12B are exemplary diagrams illustrating a method for dividing a target block into a plurality of areas according to another embodiment of lighting compensation provided by the present disclosure.
[22] Фиг. 13 - примерная схема, иллюстрирующая способ определения опорных отсчетов, которые должны использоваться для получения параметров компенсации, когда целевой блок разделен на четыре области, согласно другому варианту осуществления компенсации освещенности, предусмотренному настоящим раскрытием.[22] FIG. 13 is an exemplary diagram illustrating a method for determining reference samples to be used to obtain compensation parameters when a target block is divided into four regions, according to another embodiment of illumination compensation provided by the present disclosure.
[23] Фиг. 14 и 15 - примерные схемы, иллюстрирующие способ осуществления компенсации освещенности с использованием параметров компенсации освещенности для четырех областей, когда целевой блок разделен на четыре области, согласно другому варианту осуществления компенсации освещенности, предусмотренному настоящим раскрытием.[23] FIG. 14 and 15 are exemplary diagrams illustrating a method for performing light compensation using four area light compensation parameters when a target block is divided into four areas, according to another embodiment of light compensation provided by the present disclosure.
[24] Фиг. 16 и 17 - примерные схемы, иллюстрирующие способ осуществления компенсации освещенности для каждой области, когда целевой блок разделен на две области, согласно другому варианту осуществления компенсации освещенности, предусмотренному настоящим раскрытием.[24] FIG. 16 and 17 are exemplary diagrams illustrating a method for performing illumination compensation for each region when a target block is divided into two regions, according to another embodiment of illumination compensation provided by the present disclosure.
[25] Фиг. 18 - примерные схемы, иллюстрирующие способ осуществления компенсации освещенности для каждой области, когда целевой блок разделен на множество областей, более чем четыре области, согласно другому варианту осуществления компенсации освещенности, предусмотренной настоящим раскрытием.[25] FIG. 18 are exemplary diagrams illustrating a method for performing per-area illumination compensation when a target block is divided into a plurality of areas, more than four areas, according to another embodiment of illumination compensation provided by the present disclosure.
Подробное описаниеDetailed description
[26] Далее вариант осуществления настоящего изобретения будет подробно описан со ссылкой на приложенные чертежи. Следует отметить, что при добавлении цифровых обозначений к составляющим элементам на соответствующих чертежах одинаковые цифровые обозначения обозначают одинаковые элементы, даже если элементы показаны на разных чертежах. Кроме того, в последующем описании настоящего раскрытия подробное описание известных функций и конфигураций, включенных в настоящий документ, будет опущено, чтобы не оттенять предмет настоящего раскрытия.[26] Hereinafter, an embodiment of the present invention will be described in detail with reference to the attached drawings. It should be noted that when adding numerals to the constituent elements in the respective drawings, the same numerals indicate the same elements, even if the elements are shown in different drawings. In addition, in the following description of the present disclosure, a detailed description of known functions and configurations included herein will be omitted so as not to overshadow the subject matter of the present disclosure.
[27] Фиг. 1 - примерная блочная схема устройства кодирования видео, выполненного с возможностью реализации технологии согласно настоящему раскрытию. Далее устройство кодирования виде и элементы устройства будут описаны со ссылкой на фиг. 1.[27] FIG. 1 is an exemplary block diagram of a video encoding device capable of implementing the technology of the present disclosure. Next, the video encoding device and elements of the device will be described with reference to FIG. one.
[28] Устройство кодирования видео включает в себя разделитель 110 блоков, предиктор 120, вычитатель 130, преобразователь 140, квантователь 145, модуль 150 переупорядочения, энтропийный кодер 155, обратный квантователь 160, обратный преобразователь 165, сумматор 170, модуль 180 петлевого фильтра и память 190.[28] The video encoding apparatus includes a
[29] Каждый элемент устройства кодирования видео может быть реализован в виде аппаратного или программного обеспечения или комбинации аппаратного и программного обеспечения. Функции соответствующих элементов могут быть реализованы в виде программного обеспечения, и микропроцессор может быть реализован для выполнения функций программного обеспечения, соответствующих соответствующим элементам.[29] Each element of the video encoding device may be implemented in hardware or software, or a combination of hardware and software. The functions of the respective elements may be implemented in software, and the microprocessor may be implemented to perform the software functions corresponding to the respective elements.
[30] Одно видео состоит из одной или нескольких последовательностей, включающих множество изображений. Каждое изображение разбивается на множество областей, и для каждой области выполняется кодирование. Например, одно изображение разбивается на один или более фрагментов и/или секций. В частности, один или более тайлов могут быть определены как группа тайлов. Каждый тайл и/или слайс разделяют на одну или более единиц дерева кодирования (CTU). И каждую CTU разделяют на одну или более единиц кодирования (CU) древовидной структурой. Информация, применяемая к каждой CU, кодируют как синтаксис CU, а информацию, применяемая к CU, включенным в одну общую CTU, кодируют как синтаксис CTU. Кроме того, информация, применяемая ко всем блокам в одном слайсе в целом, кодируется как синтаксис заголовка слайса, а информация, применяемая ко всем блокам, составляющим одно или несколько изображений, кодируется в наборе параметров изображения (PPS) или заголовке изображения. [30] One video consists of one or more sequences, including multiple images. Each image is divided into a plurality of regions, and encoding is performed for each region. For example, one image is divided into one or more fragments and/or sections. In particular, one or more tiles may be defined as a group of tiles. Each tile and/or slice is divided into one or more coding tree units (CTUs). And each CTU is divided into one or more coding units (CU) in a tree structure. Information applied to each CU is encoded as a CU syntax, and information applied to CUs included in one common CTU is encoded as a CTU syntax. In addition, information applicable to all blocks in one slice as a whole is encoded as slice header syntax, and information applicable to all blocks constituting one or more pictures is encoded in a picture parameter set (PPS) or picture header.
[31] Кроме того, информация, на которую ссылается последовательность, состоящая из множества изображений в общем, кодируется в наборе параметров последовательности (SPS). Кроме того, информация, применяемая к одному тайлу или группе тайлов в общем мозаичного изображения, может кодироваться как синтаксис заголовка тайла или группы тайлов. Синтаксисы, включенные в SPS, PPS, заголовок слайса и заголовок тайла или группы тайлов, могут называться синтаксисами высокого уровня.[31] In addition, information referenced by a sequence consisting of a plurality of pictures in general is encoded in a sequence parameter set (SPS). In addition, information applied to a single tile or group of tiles in a common tile image may be encoded as a tile or group of tiles header syntax. The syntaxes included in the SPS, PPS, slice header, and tile or tile group header may be referred to as high-level syntaxes.
[32] Разделитель 110 блоков выполнен с возможностью определения размера единицы (CTU) дерева кодирования. Информация о размере CTU (размер CTU) кодируется как синтаксис набора SPS или набора PPS и передается в устройство декодирования видео. Кроме того, разделитель 110 блоков конфигурирован разделять каждое изображение, составляющее видео, на множество CTU, имеющих заданный размер, а затем рекурсивно разделять CTU с использованием древовидной структуры. В древовидной структуре листовой узел служит в качестве единицы (CU) кодирования, которая является базовой единицей кодирования.[32] The
[33] Древовидная структура может быть деревом квадрантов (QuadTree (QT), в которой узел (или родительский узел) разделен на четыре субузла (или дочерние узлы) одинакового размера, двоичным деревом (BinaryTree (BT)), в котором узел разделен на два субузла, троичным деревом (TernaryTree (TT)), в котором узел разделен на три подузла в соотношении 1: 2: 1, или структура, образованная комбинацией двух или более из структуры QT, структуры BT, и структуры ТТ. Например, может использоваться структура, включающая дерево квадрантов и двоичное дерево (QTBT), или структура, включающая дерево квадрантов и двоичное дерево троичное дерево (QTBTTT). Здесь BTTT может в совокупности называться деревом множественного типа (MTT).[33] The tree structure can be a quadtree (QuadTree (QT)), in which a node (or parent node) is divided into four subnodes (or child nodes) of the same size, a binary tree (BinaryTree (BT)) in which a node is divided into two a subnode, a TernaryTree (TT) in which a node is divided into three subnodes in a 1:2:1 ratio, or a structure formed by a combination of two or more of a QT structure, a BT structure, and a TT structure. For example, the structure quadtree and binary tree (QTBT), or a quadtree and binary tree structure ternary tree (QTBTTT) Here, BTTT may be collectively referred to as a multiple type tree (MTT).
[34] На фиг. 2 в качестве примера показана древовидная структура разделения QTBTTT. Как показано на фиг. 2, CTU может быть первоначально разделена в структуре QT. Разделение QT может повторяться до тех пор, пока размер блока разделения не достигнет минимального размера блока MinQTSize листового узла, разрешенного в структуре QT. Первый флаг (QT_split_flag), указывающий, разделен ли каждый узел структуры QT на четыре узла нижнего уровня, кодируется энтропийным кодером 155 и сигнализируется в устройство декодирования видео. Если концевой узел структуры QT, равен или меньше, чем максимальный размер блока корневого узла (MaxBTSize), разрешенного в структуре BT, он может быть дополнительно разделен на одну или более структуры BT или структуры TT. Структура BT и/или структура TT может иметь множество направлений разделения. Например, может быть два направления, а именно направление, в котором блок узла разделяется по горизонтали, и направление, в котором блок разделяется по вертикали. [34] FIG. 2 shows the QTBTTT partition tree structure as an example. As shown in FIG. 2, the CTU may be initially divided in the QT structure. A QT split may be repeated until the split box size reaches the minimum leaf node size MinQTSize allowed in the QT structure. The first flag (QT_split_flag) indicating whether each node of the QT structure is split into four lower layer nodes is encoded by the
[35] Как показано на фиг. 2, когда начинается разделение MTT, второй флаг (mtt_split_flag), указывающий, разделены ли узлы, флаг, указывающий направление разделения (вертикальное или горизонтальное) в случае разделения, и/или флаг, указывающий тип разделения (двоичное или троичное) кодируются энтропийным кодером 155 и сигнализируются в устройство декодирования видео. В качестве альтернативы, перед кодированием первого флага (QT_split_flag), указывающего, разделен ли каждый узел на 4 узла нижнего слоя, может быть закодирован флаг разделения CU (split_cu_flag), указывающий, разделен ли узел. Когда значение флага разделения CU (split_cu_flag) указывает, что разделение не выполняется, блок узла становится конечным узлом в структуре дерева разделения и обслуживает единицу кодирования (CU), которая является базовой единицей кодирования. Когда значение флага разделения CU (split_cu_flag) указывает, что разделение выполнено, устройство кодирования видео начинает кодирование флагов способом, описанным выше, начиная с первого флага.[35] As shown in FIG. 2, when MTT splitting starts, a second flag (mtt_split_flag) indicating whether the nodes are split, a flag indicating the splitting direction (vertical or horizontal) in case of splitting, and/or a flag indicating the type of splitting (binary or ternary) are encoded by the
[36] Когда QTBT используется в качестве другого примера древовидной структуры, может быть два типа разделения, которые представляют собой тип горизонтального разделения блока на два блока одинакового размера (т. е. симметричное горизонтальное разделение) и тип вертикального разделения блока на два блока одинакового размера (т. е. симметричное вертикальное разделение). Флаг разделения (split_flag), указывающий, разделен ли каждый узел структуры BT на блок нижнего слоя, и информация о типе разделения, указывающая тип разделения, кодируются энтропийным кодером 155 и сигнализируются в устройство декодирования видео. Возможен дополнительный тип разбиения блока узла на два асимметричных блока. Тип асимметричного разделения может включать в себя тип разделения блока на два прямоугольных блока с соотношением размеров 1: 3 или тип диагонального разделения блока узла.[36] When QTBT is used as another example of a tree structure, there can be two types of partitioning, which are a type of horizontal partitioning of a block into two blocks of the same size (i.e., symmetrical horizontal partitioning) and a type of vertical partitioning of a block into two blocks of the same size (i.e. symmetrical vertical separation). A split flag (split_flag) indicating whether each node of the BT structure is divided into a lower layer block and split type information indicating the split type are encoded by the
[37] Кроме того, CU могут иметь различные размеры в соответствии с разделением CTU на QTBT или QTBTTT. В дальнейшем блок, соответствующий CU (то есть листовому узлу QTBTTT), который должен быть закодирован или декодирован, называется «текущим блоком». Поскольку используется разделение QTBTTT, форма текущего блока может быть квадратной или прямоугольной. Предиктор 120 предсказывает текущий блок, чтобы сгенерировать блок предсказания. Предиктор 120 включает в себя интра-предиктор 122 и интер- предиктор 124.[37] In addition, CUs may have different sizes according to the division of CTU into QTBT or QTBTTT. Hereinafter, a block corresponding to a CU (ie, a QTBTTT leaf node) to be encoded or decoded is referred to as a "current block". Because the QTBTTT division is used, the shape of the current block can be square or rectangular.
[38] Модуль 122 внутреннего предсказания конфигурирован для предсказания отсчетов в текущем блоке с использованием отсчетов (опорных отсчетов), расположенных вокруг текущего блока в текущем изображении, включающем текущий блок. Существует множество режимов интра-предсказания согласно направлениям предсказания. Например, как показано на фиг. 3, множество режимов интра-предсказания может включать в себя два ненаправленных режима, которые включают в себя планарный режим и режим DC, и 65 направленных режимов. Соседние отсчеты и используемое уравнение определяются по-разному для каждого режима предсказания.[38] The
[39] Интра-предиктор 122 может быть конфигурирован для определения режима интра-предсказания, который будет использоваться при кодировании текущего блока. В некоторых примерах интра-предиктор 122 может быть конфигурирован кодировать текущий блок с использованием нескольких режимов интра-предсказания и выбирать для использования подходящий режим интра-предсказания из проверенных режимов. Например, интра-предиктор 122 может быть конфигурирован вычислять значения скоростного искажения с использованием анализа скорости-искажения нескольких протестированных режимов интра-предсказания и выбирать режим интра-предсказания, который имеет лучшие характеристики скорости-искажения среди протестированных режимов.[39]
[40] Интра-предиктор 122 конфигурирован для одного режима интра-предсказания из множества режимов интра-предсказания и предсказывает текущий блок, используя соседние пиксели (опорные пиксели) и уравнение, определенное согласно выбранному режиму интра-предсказания. Информация о выбранном режиме интра-предсказания кодируется энтропийным кодером 155 и передается в устройство декодирования видео. Интер-предиктор 124 конфигурирован для предсказания блока предсказания для текущего блока посредством компенсации движения. Кроме того, интер-предиктор 124 конфигурирован искать блок, наиболее похожий на текущий блок в опорном изображении, которое был кодировано и декодировано раньше, чем текущее изображение, и генерирует блок предсказания для текущего блока, используя найденный блок. [40] The
[41] Затем интер-предиктор конфигурирован для генерации вектора движения, соответствующего смещению между текущим блоком в текущем изображении и блоком предсказания в опорном изображении. В целом, оценку движения выполняют для компонента яркости, а вектор движения, вычисленный на основе компонента яркости, используется как для компонента яркости, так и для компонента цветности. Информация о движении, включающая в себя информацию об опорном изображении и информацию о векторе движения, используемую для предсказания текущего блока, кодируется энтропийным кодером 155 и передается в устройство декодирования видео.[41] The inter-predictor is then configured to generate a motion vector corresponding to an offset between the current block in the current picture and the prediction block in the reference picture. In general, motion estimation is performed for the luminance component, and a motion vector calculated from the luminance component is used for both the luminance component and the chrominance component. Motion information including reference picture information and motion vector information used to predict the current block is encoded by the
[42] Интер-предиктор 124 может быть конфигурирован для выполнения интерполяции на основе опорного изображения или опорного блока, чтобы повысить точность предсказания. Другими словами, суботсчеты между двумя последовательными целыми отсчетами интерполируются путем применения коэффициентов фильтра к множеству последовательных целых отсчетов, включая два целых отсчета. Когда операция поиска блока, наиболее похожего на текущий блок, выполняется на интерполированном опорном изображении, вектор движения может быть выражен с уровнем точности дробной единицы отсчета, а не с уровнем точности целой единицы отсчета. [42] Inter-predictor 124 may be configured to perform interpolation based on a reference image or reference block to improve prediction accuracy. In other words, sub-samples between two consecutive integer samples are interpolated by applying the filter coefficients to a plurality of consecutive integer samples, including two integer samples. When a search operation for a block most similar to the current block is performed on the interpolated reference picture, the motion vector may be expressed with a fractional unit of count precision level rather than with an integer unit of count precision level.
[43] Точность или разрешение вектора движения могут быть установлены по-разному для каждой целевой кодируемой области, например, для каждой единицы, такой как слайс, тайл, CTU или CU. Когда применяется такое адаптивное разрешение вектора движения, информация о разрешении вектора движения, которая должна применяться к каждой целевой области, должна передаваться для каждой целевой области. Например, когда целевая область является CU, передается информация о разрешении вектора движения, применяемом к каждой CU. Информация о разрешении вектора движения может быть информацией, указывающей точность разности векторов движения, которая будет описана далее.[43] The motion vector accuracy or resolution may be set differently for each target encoded area, for example, for each unit such as slice, tile, CTU, or CU. When such adaptive motion vector resolution is applied, motion vector resolution information to be applied to each target area must be transmitted for each target area. For example, when the target area is a CU, motion vector resolution information applied to each CU is transmitted. The motion vector resolution information may be information indicating the accuracy of the motion vector difference, which will be described later.
[44] Интер-предиктор 124 может быть конфигурирован для выполнения интер-предсказания с использованием двойного предсказания. При двунаправленном предсказании интер-предиктор 124 использует два опорных изображения и два вектора движения, представляющие положения блоков, наиболее похожих на текущий блок в соответствующих опорных изображениях. Интер-предиктор 124 конфигурирован для выбора первого опорного изображения и второго опорного изображения из списка 0 опорных изображений (RefPicList0) и списка 1 опорных изображений (RefPicList1), соответственно, для поиска блоков, похожих на текущий блок, в соответствующих опорных изображениях, и генерирования первого опорного блока и второго опорного блока. Затем интер-предиктор 124 конфигурирован для генерации блока предсказания для текущего блока путем усреднения или взвешивания первого опорного блока и второго опорного блока. Затем интер-предиктор 124 конфигурирован для передачи информации о движении, включая информацию о двух опорных изображениях и двух векторах движения, используемых для предсказания текущего блока, в кодер 150. [44]
[45] В частности, RefPicList0 может состоять из изображений, предшествующих текущему изображению в порядке отображения среди восстановленных изображений, а RefPicList1 может состоять из изображений, следующих за текущим изображением в порядке отображения среди восстановленных изображений. Однако варианты осуществления этим не ограничиваются. Предварительно восстановленные изображения, следующие за текущим изображением в порядке отображения, могут быть дополнительно включены в RefPicList0, и, наоборот, предварительно восстановленные изображения, предшествующие текущему изображению, могут быть дополнительно включены в RefPicList1.[45] In particular, RefPicList0 may be composed of images preceding the current image in display order among recovered images, and RefPicList1 may be composed of images following the current image in display order among recovered images. However, the embodiments are not limited to this. Pre-restored pictures following the current picture in display order may be further included in RefPicList0, and conversely, pre-restored pictures preceding the current picture may be further included in RefPicList1.
[46] Для минимизации количества битов, необходимых для кодирования информации о движении, могут использоваться различные способы. Например, когда опорное изображение и вектор движения текущего блока такие же, как опорное изображение и вектор движения соседнего блока, информация о движении текущего блока может быть передана в устройство декодирования посредством кодирования информации для идентификации соседнего блока. Этот способ называется «режимом слияния».[46] Various techniques can be used to minimize the number of bits required to encode motion information. For example, when the reference picture and the motion vector of the current block are the same as the reference picture and the motion vector of the neighboring block, the motion information of the current block can be transmitted to the decoding apparatus by encoding information for identifying the neighboring block. This method is called "merge mode".
[47] В режиме слияния интер-предиктор 124 выбирает предопределенное количество блоков кандидатов на слияние (в дальнейшем именуемых «кандидатами на слияние») из числа соседних блоков текущего блока. Как показано на фиг. 4, все или часть левого блока L, верхнего блока A, верхнего правого блока AR, нижнего левого блока BL и верхнего левого блока AL, которые являются смежными с текущим блоком в текущем изображении, могут использоваться в качестве соседних блоков для получения кандидатов на слияние. Кроме того, блок, расположенный в опорном изображении (который может быть таким же или отличным от опорного изображения, используемого для предсказания текущего блока), кроме текущего изображения, в котором расположен текущий блок, может использоваться в качестве кандидата на слияние. Например, совмещенный блок, который находится в том же положении, что и текущий блок, или блоки, смежные с совмещенным блоком в опорном изображении, могут дополнительно использоваться в качестве кандидатов на слияние.[47] In the merge mode, inter-predictor 124 selects a predetermined number of merge candidate blocks (hereinafter referred to as "merge candidates") from among neighboring blocks of the current block. As shown in FIG. 4, all or part of the left block L, the top block A, the top right block AR, the bottom left block BL, and the top left block AL that are adjacent to the current block in the current picture can be used as adjacent blocks to obtain merge candidates. In addition, a block located in a reference picture (which may be the same or different from the reference picture used to predict the current block) other than the current picture in which the current block is located may be used as a merging candidate. For example, a merged block that is in the same position as the current block, or blocks adjacent to the merged block in the reference picture, may further be used as merge candidates.
[48] Интер-предиктор 124 конфигурирует список слияния, включающий в себя заранее определенное количество кандидатов на слияние, используя такие соседние блоки. Интер-предиктор 124 выполнен с возможностью выбора кандидата на слияние для использования в качестве информации о движении для текущего блока из числа кандидатов на слияние, включенных в список слияния, и генерирования информации индекса слияния для идентификации выбранных кандидатов. Сгенерированная информация индекса слияния кодируется кодером 155 и передается в устройство декодирования.[48] The
[49] Другой способ кодирования информации о движении - это режим AMVP. В режиме AMVP интер-предиктор 124 конфигурирован для получения предсказанных кандидатов вектора движения для вектора движения текущего блока с использованием соседних блоков текущего блока. Все или часть из левого блока L, верхнего блока А, верхнего правого блока AR, нижнего левого блока BL и верхнего левого блока AL, которые являются смежными с текущим блоком в текущем изображении на фиг. 2, могут использоваться в качестве соседних блоков, используемых для получения предсказанных кандидатов векторов движения. Кроме того, блок, расположенный в опорном изображении (которое может быть таким же или отличным от опорного изображения, используемого для предсказания текущего блока), отличном от текущего изображения, включающего в себя текущий блок, может использоваться в качестве соседних блоков, используемых для получения предсказанных кандидатов векторов движения. Например, могут использоваться совмещенный блок, который находится в том же положении, что и текущий блок, или блоки, смежные с совмещенным блоком в опорном изображении.[49] Another way to encode traffic information is the AMVP mode. In the AMVP mode,
[50] Интер-предиктор 124 конфигурирован для получения предсказанных кандидатов векторов движения с использованием векторов движения соседних блоков и определения предсказанного вектора движения для вектора движения текущего блока с использованием предсказанных кандидатов векторов движения. Затем вычисляют разность векторов движения путем вычитания предсказанного вектора движения из вектора движения текущего блока.[50] The inter-predictor 124 is configured to obtain predicted motion vector candidates using the motion vectors of adjacent blocks and determine a predicted motion vector for the motion vector of the current block using the predicted motion vector candidates. Then, the motion vector difference is calculated by subtracting the predicted motion vector from the motion vector of the current block.
[51] Предсказанный вектор движения может быть получен путем применения заранее определенной функции (например, функции для вычисления медианы, среднего значения и т.п.) к предсказанным кандидатам векторов движения. В частности, устройство декодирования видео также "знает" предопределенную функцию. Поскольку соседние блоки, используемые для получения предсказанных кандидатов векторов движения, уже были кодированы и декодированы, устройство декодирования видео также уже "знает" векторы движения соседних блоков. Соответственно, устройству кодирования видео не требуется кодировать информацию для идентификации предсказанных кандидатов векторов движения. Следовательно, в этом случае кодируется информация о разности векторов движения и информация об опорном изображении, используемом для предсказания текущего блока.[51] The predicted motion vector can be obtained by applying a predetermined function (eg, a function for calculating the median, mean, and the like) to the predicted motion vector candidates. In particular, the video decoding apparatus also "knows" the predefined function. Since the neighboring blocks used to obtain the predicted motion vector candidates have already been encoded and decoded, the video decoder also already "knows" the motion vectors of the neighboring blocks. Accordingly, the video encoding device does not need to encode information to identify the predicted motion vector candidates. Therefore, in this case, motion vector difference information and information about a reference picture used to predict the current block are encoded.
[52] Предсказываемый вектор движения может быть определен путем выбора любого одного из предсказанных кандидатов векторов движения. В частности, информация для идентификации выбранного предсказанного кандидата вектора движения дополнительно кодируется вместе с информацией о разности векторов движения и информацией об опорном изображении, которые предназначены для использования для предсказания текущего блока.[52] The predicted motion vector may be determined by selecting any one of the predicted candidate motion vectors. Specifically, information for identifying a selected motion vector predicted candidate is further coded along with motion vector difference information and reference picture information to be used for prediction of the current block.
[53] Вычитатель 130 конфигурирован для вычитания блока предсказания, сгенерированного интра-предиктором 122 или интер-предиктором 124, из текущего блока для генерирования остаточного блока. Преобразователь 140 может быть конфигурирован для разделения остаточного блока на один или несколько субблоков и применения преобразования к одному или нескольким субблокам, тем самым преобразуя остаточные значения блоков преобразования из области отчетов в область частот. В области частот преобразованные блоки называются блоками коэффициентов или блоками преобразования, содержащими одно или более значений коэффициентов преобразования. Ядро двумерного преобразования может использоваться для преобразования, а ядра одномерного преобразования могут использоваться для горизонтального преобразования и вертикального преобразования соответственно. Ядра преобразования могут быть основаны на дискретном косинусном преобразовании (DCT), дискретном синусоидальном преобразовании (DST) или другом подобном[53]
[54] Преобразователь 140 может быть конфигурирован для преобразования остаточных сигналов в остаточном блоке с использованием всего размера остаточного блока в качестве единицы преобразования. В качестве альтернативы, остаточный блок может быть разделен на множество субблоков, и остаточные сигналы в субблоках могут быть преобразованы с использованием субблока в качестве единицы преобразования.[54]
[55] Преобразователь 140 может быть выполнен с возможностью индивидуального преобразования остаточного блока в горизонтальном направлении и вертикальном направлении. Для преобразования могут использоваться различные типы функций преобразования или матриц преобразования. Например, пары функций преобразования для горизонтального преобразования и вертикального преобразования могут быть определены как набор множественных преобразований (MTS). Преобразователь 140 может быть конфигурирован для выбора одой пары функций преобразования, имеющих наибольшую эффективность преобразования в MTS, и преобразования остаточного блока в горизонтальном и вертикальном направлениях соответственно. Информация (mts_idx) о паре функций преобразования, выбранных в MTS, кодируется энтропийным кодером 155 и передается в устройство декодирования видео.[55] The
[56] Квантователь 145 конфигурирован для квантования коэффициентов преобразования, выводимых из преобразователя 140, с использованием параметров квантования, и вывода квантованных коэффициентов преобразования в энтропийный кодер 155. Для некоторых блоков или кадров, квантователь 145 может быть конфигурирован для непосредственного квантования соответствующего остаточного блока без преобразования. Квантователь 145 может быть конфигурирован для применения различных коэффициентов квантования (значений масштабирования) согласно положениям коэффициентов преобразования в блоке преобразования. Матрица квантованных коэффициентов, применяемых к двумерно скомпонованным квантованным коэффициентам преобразования, может быть кодирована и сигнализирована в устройство декодирования видео.[56] The
[57] Модуль 150 переупорядочения может быть конфигурирован для пересортировки значений коэффициентов для квантованного остаточного значения. Модуль 150 переупорядочения может быть конфигурирован для преобразования двумерного массива коэффициентов в одномерную последовательность коэффициентов посредством сканирования коэффициентов. Например, модуль150 переупорядочения может быть конфигурирован для сканирования коэффициентов от коэффициента прямого тока (DC) до коэффициента в высокочастотной области с использованием зигзагообразного сканирования или диагонального сканирования для вывода одномерной последовательности коэффициентов. В зависимости от размера единицы преобразования и режима интра-предсказания, вертикальное сканирование, при котором двумерный массив коэффициентов сканируется в направлении столбцов, или горизонтальное сканирование, в котором двумерные блочные коэффициенты сканирование в направлении сток, может использоваться вместо зигзагообразного сканирования. Другими словами, используемый режим сканирования может быть определен среди зигзагообразного сканирования, диагонального сканирования, вертикального сканирования и горизонтального сканирования в соответствии с размером единицы преобразования и режимом интра- предсказания.[57] The
[58] Энтропийный кодер 155 конфигурирован для кодирования одномерных квантованных коэффициентов преобразования, выводимых из модуля 150 переупорядочения, с использованием различных процедур кодирования, таких как контекстно-зависимый адаптивный двоичный арифметический код (CABAC) и экспоненциальный код Голомба, для генерации битового потока. Энтропийный кодер 155 конфигурирован для кодирования информации, такой как размер CTU, флаг разделения CU, флаг разделения QT, тип разделения MTT и направление разделения MTT, которые связаны с разделением блоков, так что устройство декодирования видео может разделять блок так же, как в устройстве кодирования видео. [58] The
[59] Кроме того, энтропийный кодер 155 конфигурирован для кодирования информации о типе предсказания, указывающей, закодирован ли текущий блок посредством интра-предсказания или интер-предсказания, и кодирует информацию интра-предсказания (т. е. информацию о режиме интра-предсказания) или информация интер-предсказания (индекс слияния для режима слияния, информацию об индексе опорного изображения и разность векторов движения для режима AMVP) согласно типу предсказания. Энтропийный кодер 155 также кодирует информацию, относящуюся к квантованию, то есть информацию о параметрах квантования и информацию о матрице квантования.[59] In addition, the
[60] Обратный квантователь 160 конфигурирован для обратного квантования квантованных коэффициентов преобразования, выводимых из квантователя 145, для генерации коэффициентов преобразования. Обратный преобразователь 165 конфигурирован для преобразования коэффициентов преобразования, выводимых из обратного квантователя 160, из частотной области в пространственную область, и для восстановления остаточного блока. [60] The
[61] Кроме того, сумматор 170 конфигурирован для добавления восстановленного остаточного блока к блоку предсказания, сгенерированному предиктором 120, для восстановления текущего блока. Отсчеты в восстановленном текущем блоке используются в качестве опорных отсчетов при выполнении интра-предсказания следующего блока. Модуль 180 петлевого фильтра конфигурирован для фильтрации восстановленных отсчетов для уменьшения артефактов блочности, артефактов звонка и артефактов размытия, генерируемых из-за поблочного предсказания и преобразования/квантования. Модуль 180 петлевого фильтра может включать в себя по меньшей мере фильтр 182 удаления блочности, фильтр 184 с адаптивным смещением отсчета (SAO) и адаптивный петлевой фильтр (ALF) 186.[61] In addition, the
[62] Фильтр 182 удаления блочности конфигурирован для фильтрации границы между восстановленными блоками, чтобы удалить артефакт блочности, вызванный поблочным кодированием/декодированием, а фильтр 184 SAO выполняет дополнительную фильтрацию видео, отфильтрованного с удалением блочности. SAO-фильтр 184 представляет собой фильтр, используемый для компенсации разницы между восстановленным отсчетом и исходным отсчетом, вызванной кодированием с потерями, и выполняет фильтрацию таким образом, что добавляет соответствующее смещение к каждому восстановленному отсчету. ALF 186 конфигурирован для выполнения фильтрации целевого отсчета, подлежащего фильтрации, путем применения коэффициентов фильтрации к целевому отсчету и соседним отсчетам целевого отсчета. ALF 186 может быть конфигурирован разделять отсчеты, включенные в изображение, на заранее определенные группы, а затем определять один фильтр, который должен быть применен к соответствующей группе, для дифференциального осуществления фильтрации в каждой группе. Информация о коэффициентах фильтра, которые должны использоваться для ALF, может кодироваться и передаваться в устройство декодирования видео.[62] The
[63] Восстановленные блоки, отфильтрованные через модуль 180 петлевого фильтра, сохраняются в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в изображении, подлежащим последующему кодированию.[63] The reconstructed blocks filtered through the
[64] Фиг. 5 - примерная функциональная блочная схема устройства декодирования видео, выполненного с возможностью реализации технологии согласно настоящему раскрытию. Далее устройство декодирования виде и элементы устройства будут описаны со ссылкой на фиг. 5. Устройство декодирования видео может включать в себя энтропийный декодер 510, модуль 515 переупорядочения, обратный квантователь 520, обратный преобразователь 530, предиктор 540, сумматор 550, модуль 560 петлевого фильтра и память 570.[64] FIG. 5 is an exemplary functional block diagram of a video decoding apparatus capable of implementing the technology of the present disclosure. Next, the video decoding device and elements of the device will be described with reference to FIG. 5. The video decoding apparatus may include an
[65] Подобно устройству кодирования видео с фиг. 1, каждый элемент устройства декодирования видео может быть реализован в виде аппаратного обеспечения, программного обеспечения или комбинации аппаратного и программного обеспечения. Кроме того, функция каждого элемента может быть реализована в программном обеспечении, а микропроцессор может быть реализован для выполнения функции программного обеспечения, соответствующей каждому элементу. [65] Similar to the video encoding device of FIG. 1, each element of a video decoding apparatus may be implemented in hardware, software, or a combination of hardware and software. In addition, the function of each element may be implemented in software, and the microprocessor may be implemented to perform a software function corresponding to each element.
[66] Энтропийный декодер 510 конфигурирован для определения текущего блока, который должен быть декодирован, путем декодирования битового потока , сгенерированного устройством кодирования видео, и извлечения информации, относящейся к блочному разделению, и извлечения информации предсказания и информации остаточного сигнала и т.п., необходимых для восстановления текущего блока. Кроме того, энтропийный декодер 510 конфигурирован для извлечения информации о размере CTU из набора параметров последовательности (SPS) или набора параметров изображения (PPS), определяет размер CTU и разбивает изображение на единицы CTU определенного размера. Затем декодер конфигурирован определять CTU как самый верхний уровень, то есть корневой узел, древовидной структуры, и извлекать информацию о разделении CTU для разделения CTU с использованием древовидной структуры.[66] The
[67] Например, когда CTU разделяется с использованием структуры QTBTTT, первый флаг (QT_split_flag), связанный с разделением QT, извлекается для разделения каждого узла на четыре узла подуровня. Для узла, соответствующего конечному узлу QT, извлекаются второй флаг (MTT_split_flag) и информация о направлении разделения (вертикальное / горизонтальное) и/или о типе разделения (двоичное/троичное), относящиеся к разделению MTT для разделения соответствующего листового узла в структуре MTT. Соответственно, каждый узел ниже листового узла QT рекурсивно разделяется в структуре BT или TT.[67] For example, when the CTU is split using the QTBTTT structure, the first flag (QT_split_flag) associated with QT split is extracted to split each node into four sublayer nodes. For a node corresponding to a QT leaf node, a second flag (MTT_split_flag) and split direction (vertical/horizontal) and/or split type (binary/ternary) information related to the MTT split are extracted to split the corresponding leaf node in the MTT structure. Accordingly, each node below a QT leaf node is recursively split in a BT or TT structure.
[68] В качестве другого примера, когда CTU разделяют с использованием структуры QTBTTT, может быть извлечен флаг разделения CU (split_cu_flag), указывающий, следует ли разделить CU. Когда соответствующий блок разделен, может быть извлечен первый флаг (QT_split_flag). В операции разделения ноль или более рекурсивных МТТ-разделений может происходить для каждого узла после нулевого или более рекурсивных QT-разделений. Например, CTU может быть конфигурирована так, чтобы непосредственно подвергаться MTT-разделению без QT-разделения или многократно подвергаться только QT-разделению.[68] As another example, when the CTU is split using the QTBTTT structure, a CU split flag (split_cu_flag) indicating whether the CU should be split can be retrieved. When the corresponding block is split, the first flag (QT_split_flag) can be extracted. In a split operation, zero or more recursive MTT splits may occur for each node after zero or more recursive QT splits. For example, the CTU may be configured to directly undergo an MTT separation without a QT separation, or repeatedly undergo only a QT separation.
[69] В качестве другого примера, когда CTU разделяют с использованием структуры QTBT, извлекают первый флаг (QT_split_flag), связанный с QT-разделением, и каждый узел разделяют на четыре узла нижнего уровня. Затем извлекается флаг разделения (split_flag), указывающий, разделяется ли узел, соответствующий листовому узлу QT, дополнительно в BT и информацию о направлении разделения.[69] As another example, when the CTU is split using the QTBT structure, the first flag (QT_split_flag) associated with the QT split is extracted, and each node is split into four lower layer nodes. Then, a split flag (split_flag) indicating whether the node corresponding to the QT leaf node is further split in BT and split direction information is extracted.
[70] Как только текущий блок, подлежащий декодированию, определен посредством разделения в древовидной структуре, энтропийный декодер 510 конфигурирован извлекать информацию о типе предсказания, указывающую, является ли текущий блок интра-предсказанным или интер-предсказанным. Когда информация о типе предсказания указывает на интра-предсказание, энтропийный декодер 510 конфигурирован для извлечения синтаксического элемента для информации интра-предсказания (режим интра-предсказания) для текущего блока. Когда информация о типе предсказания указывает на интер-предсказание, энтропийный декодер 510 конфигурирован извлекать элемент синтаксиса для информации интер-предсказания, то есть информацию, указывающую вектор движения и опорное изображение, на которое ссылается вектор движения.[70] Once the current block to be decoded is determined by splitting in the tree structure, the
[71] Энтропийный декодер 510 также конфигурирован для извлечения информации о квантованных коэффициентах преобразования текущего блока в качестве информации, относящейся к квантованию, и информации об остаточных сигналах. Модуль 515 переупорядочения может быть конфигурирован для изменения последовательности одномерных квантованных коэффициентов преобразования, энтропийно декодированных энтропийным декодером 510, на двумерный массив коэффициентов (то есть блок) в порядке, обратном сканированию коэффициентов, выполняемому устройством кодирования видео.[71] The
[72] Обратный квантователь 520 выполнен с возможностью обратного квантования квантованных коэффициентов преобразования с использованием параметра квантования. Обратный квантователь 520 может быть конфигурирован для применения различных коэффициентов квантования (значений масштабирования) к квантованным коэффициентам преобразования, размещенным в двух измерениях. Обратный квантователь 520 может быть конфигурирован для выполнения обратного квантования путем применения матрицы коэффициентов квантования (значений масштабирования) от устройства кодирования видео к двумерному массиву квантованных коэффициентов преобразования.[72] The
[73] Обратный преобразователь 530 выполнен с возможностью обратного преобразования обратно квантованных коэффициентов преобразования из частотной области в пространственную для восстановления остаточных сигналов, тем самым генерируя восстановленный остаточный блок для текущего блока. Кроме того, когда применяется MTS, обратный преобразователь 530 конфигурирован для определения функций преобразования или матриц преобразования, которые должны применяться в горизонтальном и вертикальном направлениях, соответственно, с использованием информации MTS (mts_idx), передаваемой из устройства кодирования видео, и использования определенных функций преобразования для обратного преобразования коэффициентов преобразования в блоке преобразования в горизонтальном и вертикальном направлениях.[73] The
[74] Предиктор 540 может включать в себя интра-предиктор 542 и интер- предиктор 544. Интра-предиктор 542 активируют, когда тип предсказания текущего блока является интра-предсказанием, а интер-предиктор 544 активируют, когда тип предсказания текущего блока является интер-предсказанием. Интра-предиктор 542 конфигурирован для определения режима интра-предсказания текущего блока среди множества режимов интра- предсказания на основе элемента синтаксиса для режима интра- предсказания, извлеченного из энтропийного декодера 510, и предсказания текущего блока с использованием опорных отсчетов вокруг текущего блока в соответствии с режимом интра-предсказания.[74]
[75] Интер-предиктор 544 конфигурирован для определения вектора движения текущего блока и опорного изображения, на которое ссылается вектор движения, с использованием элемента синтаксиса для режима интра-предсказания, извлеченного из энтропийного декодера 510, и предсказания текущего блока на основе вектора движения и опорного изображения. Сумматор 550 конфигурирован для восстановления текущего блока путем добавления остаточного блока, выводимого из обратного преобразователя, и блока предсказания, выводимого из интер-предиктора или интра-предиктора. Отсчеты в восстановленном текущем блоке используются в качестве опорных отсчетов при интра-предсказании блока, подлежащего декодированию следующим.[75] The
[76] Модуль 560 петлевого фильтра может включать в себя по меньшей мере один из фильтра 562 удаления блочности, фильтра 564 SAO и фильтра 566 ALF. Фильтр 562 удаления блочности фильтрует границу между восстановленными блоками для удаления артефактов блочности, вызванных поблочным декодированием. SAO-фильтр 564 конфигурирован для выполнения фильтрации способом добавления восстановленного блока после фильтрации удаления блочности к соответствующим смещениям, чтобы компенсировать разницу между восстановленным отсчетом и исходным отсчетом, вызванную кодированием с потерями. ALF 566 конфигурирован для выполнения фильтрации целевого отсчета, подлежащего фильтрации, путем применения коэффициентов фильтрации к целевому отсчету и соседним отсчетам целевого отсчета. ALF 566 может быть конфигурирован разделять отсчеты в изображении на заранее определенные группы, а затем определять один фильтр, который должен быть применен к соответствующей группе, для дифференциального осуществления фильтрации в каждой группе. Коэффициент фильтрации ALF определяется на основе информации о коэффициенте фильтрации, декодированной из битового потока.[76]
[77] Восстановленный блок, отфильтрованный через модуль 560 петлевого фильтра, сохраняется в памяти 570. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в подлежащем последующему кодированию изображении.[77] The reconstructed block, filtered through the
[78] Следующее раскрытие относится к инструментам кодирования для улучшения характеристик сжатия интер-предсказания, которые могут управляться интер-предиктором 124 устройства кодирования видео и интер-предиктором 544 устройства декодирования видео. Используемый здесь термин «целевой блок» может иметь то же значение, что и термины «текущий блок» или «единица кодирования (CU)», использованные выше, или может означать частичную область CU.[78] The following disclosure relates to coding tools for improving inter-prediction compression performance that can be controlled by
[79] I. Двунаправленный оптический поток[79] I. Bi-directional optical flow
[80] Двунаправленный оптический поток - это метод дополнительной компенсации перемещений отчетов, предсказанных с использованием двунаправленного предсказания движения, при условии, что отсчеты или объекты, составляющие видео, перемещаются с постоянной скоростью и что значения отсчетов мало меняются.[80] Bidirectional optical flow is a technique for additionally compensating for the movements of reports predicted using bidirectional motion prediction, provided that the samples or objects that make up the video move at a constant speed and that the values of the samples change little.
[81] Фиг. 6 представляет собой примерную схему, иллюстрирующую основную концепцию BIO. Предполагается, что двунаправленные векторы движения MV0 и MV1, указывающие на соответствующие области (т. е. опорные блоки), наиболее похожие на подлежащий кодированию целевой блок в текущем изображении, были определены в опорных изображениях Ref0 и Ref1 посредством (нормального) двунаправленного предсказания движения для целевого блока. Два вектора движения имеют значения, представляющие движение всего целевого блока. В примере на фиг. 6, P0 представляет собой отсчет в опорном изображении Ref0, указанный вектором движения MV0 и соответствующий отсчету P в целевом блоке, а P1 представляет собой отсчет в опорном изображении Ref1, указанный вектором движения MV1 и соответствующий отсчету P в целевом блоке. [81] FIG. 6 is an exemplary diagram illustrating the basic concept of BIO. It is assumed that the bidirectional motion vectors MV0 and MV1 pointing to the respective regions (i.e., reference blocks) most similar to the target block to be encoded in the current picture have been determined in the reference pictures Ref0 and Ref1 by (normal) bidirectional motion prediction for target block. The two motion vectors have values representing the motion of the entire target block. In the example in FIG. 6, P0 is a sample in reference picture Ref0 indicated by motion vector MV0 and corresponding to sample P in the target block, and P1 is a sample in reference picture Ref1 indicated by motion vector MV1 and corresponding to sample P in the target block.
[82] Кроме того, предполагается, что движение для отсчета P на фиг. 6 немного отличается от общего движения целевого блока. Например, когда объект, расположенный в отсчете A в Ref0 на фиг. 6 перемещается к отсчету B в Ref1 через отсчет P в целевом блоке текущего изображения, отсчет A и отсчет B могут иметь значения, очень похожие друг на друга. Кроме того, в этом случае точкой в Ref0, наиболее похожей на отсчет P в целевом блоке, является не P0, указанный двунаправленным вектором движения MV0, а отсчет A, сдвинутый от P0 на предопределенный вектор смещения (vxt0, vyt1). Точкой в Ref1, наиболее похожей на отсчет P в целевом блоке, является не P1, указанный двунаправленным вектором движения MV1, а отсчет B, который был сдвинут от P1 на заданный вектор смещения (-vxt0, -vyt1). В частности, t0 и t1 обозначают расстояния Ref0 и Ref1 по оси времени по отношению к текущему изображению, соответственно, и вычисляются на основе счетчика порядка изображений (POC). Далее (vx, vy) называется «оптическим потоком».[82] In addition, it is assumed that the movement for the reference P in FIG. 6 is slightly different from the general movement of the target block. For example, when an object located at sample A in Ref0 in FIG. 6 moves to sample B in Ref1 via sample P in the target block of the current picture, sample A and sample B can have values very similar to each other. Also, in this case, the point in Ref0 most similar to the P sample in the target block is not P0 indicated by the bidirectional motion vector MV0, but the A sample offset from P0 by the predefined offset vector (vxt0, vyt1). The point in Ref1 that most closely resembles the reference P in the target block is not P1, indicated by the bidirectional motion vector MV1, but reference B, which has been shifted from P1 by the given offset vector (-vxt0, -vyt1). In particular, t0 and t1 denote the distances Ref0 and Ref1 along the time axis with respect to the current image, respectively, and are calculated based on a picture order counter (POC). Hereinafter (vx, vy) is called "optical flow".
[83] При предсказании значения отсчета P текущего блока в текущем изображении два опорных отсчета A и B обеспечивают более точное предсказание, чем опорные отсчеты P0 и P1, указанные двунаправленными векторами движения MV0 и MV1. В частности, I(0) (i,j) обозначает значение отсчета в опорном изображении Ref0, указанного вектором движения MV0 в качестве соответствующего отсчету (i,j) в целевом блоке, и I (1) (i ,j) обозначает значение отсчета в опорном изображении Ref1, указанного вектором движения MV1 в качестве соответствующего отсчету (i,j) в целевом блоке.[83] When predicting the sample value P of the current block in the current picture, the two reference samples A and B provide more accurate prediction than the reference samples P0 and P1 indicated by the bidirectional motion vectors MV0 and MV1. Specifically, I(0)(i,j) denotes the value of the sample in the reference picture Ref0 indicated by the motion vector MV0 as corresponding to the sample (i,j) in the target block, and I(1)(i,j) denotes the value of the sample in the reference picture Ref1 indicated by the motion vector MV1 as corresponding to the sample (i,j) in the target block.
[84] Значение отсчета A в опорном изображении Ref0, указанное вектором движения BIO (vx, vy) как соответствующее отсчету в целевом блоке, может быть определено как I(0) (i+ vxt0, j +vyt0), а значение отсчета B в опорном изображении Ref1 может быть определено как I(1)(i -vxt1, j- vyt1).Здесь, когда линейная аппроксимация выполняется с использованием только члена первого порядка ряда Тейлора, A и B могут быть выражены как уравнение 1.[84] The value of sample A in the reference picture Ref0 indicated by the motion vector BIO (vx, vy) as corresponding to the sample in the target block may be determined as I(0) (i+ vxt0, j +vyt0), and the value of sample B in the reference image Ref1 can be defined as I(1)(i -vxt1, j-vyt1). Here, when the linear approximation is performed using only the first order term of the Taylor series, A and B can be expressed as
Уравнение 1
[85] где Ix(k) и Iy(k) (k = 0, 1) - значения градиента в горизонтальном и вертикальном направлениях в положении (i, j) в Ref0 и Ref1. Кроме того, t0 и t1 обозначают расстояния по оси времени для Ref0 и Ref1 относительно текущего изображения, соответственно, и рассчитываются на основе POC: t0 = POC(текущее) - POC(Ref0) и t1 = POC(Ref1)- POC (текущий).[85] where Ix(k) and Iy(k) (k = 0, 1) are the gradient values in the horizontal and vertical directions at position (i, j) in Ref0 and Ref1. In addition, t0 and t1 denote the time axis distances for Ref0 and Ref1 relative to the current image, respectively, and are calculated based on POC: t0 = POC(current) - POC(Ref0) and t1 = POC(Ref1) - POC(current) .
[86] Двунаправленный оптический поток (vx, vy) каждого отсчета в блоке определяется как решение, которое минимизирует Δ, которое определяется как разница между отсчетом A и отсчетом B. При этом Δ может быть определена в уравнении 2 с использованием линейного приближения из A и B, полученных из уравнения 1.[86] The bi-directional optical flow (vx, vy) of each sample in a block is defined as the solution that minimizes Δ, which is defined as the difference between sample A and sample B. Here, Δ can be determined in
Уравнение 2
[87] Для простоты, положение (i, j) отсчета опущено в каждом члене уравнения 2.[87] For simplicity, the position (i, j) of the reference is omitted in each term of
[88] Для реализации более надежной оценки оптического потока предполагается, что движение локально согласуется с соседними отсчетами. Для BIO - вектора движения для отсчета (i, j), который в настоящее время должен быть предсказан, учитываются разности Δ в уравнении 2 для всех отсчетов (i ', j'), присутствующих в маске Ω определенного размера, центрированной по отсчету (i, j). То есть оптический поток для текущего отсчета (i, j) может быть определен как вектор, минимизирующий целевую функцию Φ(vx, vy), представляющую собой сумму квадратов разностей Δ[i', j'] полученных для соответствующих отсчетов в маске Ω, как показано в уравнении 3.[88] To implement a more reliable estimate of the optical flow, it is assumed that the movement is locally consistent with neighboring samples. For the BIO, the motion vector for the sample (i, j) currently to be predicted, the differences Δ in
Уравнение 3Equation 3
[89] Двунаправленный оптический поток согласно настоящему раскрытию может применяться в случае, когда одно из двух опорных изображений, используемых для двунаправленного предсказания, предшествует текущему изображению в порядке отображения, другое следует за текущим изображением, а расстояния от двух опорных изображений до текущего изображения равны друг другу, то есть разницы в счетчике порядка изображений (РОС) между каждым опорным изображением и текущим изображением равны друг другу. Следовательно, t0 и t1 можно игнорировать.[89] Bidirectional optical flow according to the present disclosure can be applied in the case where one of the two reference pictures used for bidirectional prediction precedes the current picture in the display order, the other follows the current picture, and the distances from the two reference pictures to the current picture are equal to each other. to each other, that is, the differences in the picture order counter (POC) between each reference picture and the current picture are equal to each other. Therefore, t0 and t1 can be ignored.
[90] Кроме того, двунаправленный оптический поток согласно настоящему раскрытию может применяться только к компонентам яркости. Двунаправленный оптический поток согласно настоящему раскрытию выполняется на основе субблоков, а не на основе пикселей, для целевого блока, к которому применяется двунаправленное предсказание. В нижеследующем описании для простоты предполагается, что субблок, который может иметь различные размеры 2x2, 4x4 и 8x8, имеет размер 4x4.[90] In addition, the bidirectional optical flow according to the present disclosure can only be applied to the luminance components. The bi-directional optical flow according to the present disclosure is performed on a sub-block basis, not a pixel basis, for a target block to which bi-directional prediction is applied. In the following description, for simplicity, it is assumed that the sub-unit, which may have different sizes of 2x2, 4x4 and 8x8, has a size of 4x4.
[91] Перед выполнением оптического потока интер-предиктор 124 устройства кодирования видео генерирует два опорных блока для целевого блока с использованием вышеупомянутого двунаправленного предсказания. Первый опорный блок из двух опорных блоков представляет собой блок, состоящий из предсказанных отсчетов, сгенерированных из опорного изображения Ref0 с использованием первого вектора MV0 движения целевого блока, а второй опорный блок представляет собой блок, состоящий из предсказанных отсчетов, сгенерированных из опорного изображения Ref1 с использованием вектора MV1 движения.[91] Before executing the optical stream, the inter-predictor 124 of the video encoder generates two reference blocks for the target block using the aforementioned bidirectional prediction. The first reference block of the two reference blocks is a block composed of predicted samples generated from reference picture Ref0 using the first motion vector MV0 of the target block, and the second reference block is a block composed of predicted samples generated from reference picture Ref1 using motion vector MV1.
[92] Интер-предиктор 124 конфигурирован для вычисления (vx, vy), называемого оптическим потоком, для каждого из субблоков 4x4, составляющих целевой блок, с использованием значений горизонтального и вертикального градиента предсказанных отсчетов в первом опорном блоке и во втором опорном блоке. Оптический поток (vx, vy) определяется таким образом, чтобы разница между предсказанными отсчетами из опорного изображения Ref0 и предсказанными отсчетами из опорного изображения Ref1 была минимизирована. Интер-предиктор 124 конфигурирован для получения смещения отсчета для модификации двунаправленных предсказанных отсчетов для субблока 4x4 с использованием (vx, vy), вычисленного для субблока 4x4, и градиентов предсказанных отсчетов в субблоке 4x4.[92] The inter-predictor 124 is configured to calculate (vx, vy), called optical flow, for each of the 4x4 subblocks constituting the target block using the horizontal and vertical gradient values of the predicted samples in the first reference block and in the second reference block. The optical flow (vx, vy) is determined such that the difference between the predicted samples from the reference picture Ref0 and the predicted samples from the reference picture Ref1 is minimized.
[94] В частности, интер-предиктор 124 вычисляет горизонтальный и вертикальный градиенты значений отсчетов в положении (i, j) с использованием уравнения 4.[94] In particular, the inter-predictor 124 calculates the horizontal and vertical gradients of the sample values at position (i, j) using
Уравнение 4
где k равно 0 или 1, а I (0) (i,j) и I (1) (i,j) обозначают значения отсчетов в положении (i,j) в первом опорном блоке и во втором опорном блоке , соответственно. Кроме того, Shift1 - это значение, полученное из битовой глубины компонента яркости, например, shift1 = max(6, bitDepth-6).where k is 0 or 1 and I (0) (i,j) and I (1) (i,j) denote the values of the samples at position (i,j) in the first reference block and in the second reference block, respectively. Also, Shift1 is a value derived from the bit depth of the luma component, for example, shift1 = max(6, bitDepth-6).
[95] Чтобы получить градиент отсчета, расположенного на границе каждого опорного блока, необходимы отсчеты за пределами границы первого опорного блока и второго опорного блока. Соответственно, как показано на фиг. 7, каждый опорный блок расширен на один столбец влево и вправо и на одну строку вверх и вниз. Чтобы уменьшить объем вычислений, каждый отсчет в расширенной части может быть заполнен отсчетом или целым отсчетом в ближайшем положении в опорном блоке. Кроме того, градиенты в положении отсчета за пределами границы каждого опорного блока могут быть дополнены градиентами, соответствующими отсчетам в ближайшем положении.[95] To obtain the gradient of the sample located on the boundary of each reference block, samples outside the boundary of the first reference block and the second reference block are needed. Accordingly, as shown in FIG. 7, each anchor block is extended one column to the left and right, and one row up and down. To reduce the amount of computation, each sample in the extended portion can be filled with a sample or an integer sample at the nearest position in the reference block. In addition, gradients at a sample position outside the boundary of each reference block can be padded with gradients corresponding to samples at the nearest position.
[96] Интер-предиктор 124 конфигурирован для вычисления S1, S2, S3, S5 и S6, соответствующих автокорреляции и взаимной корреляции градиентов, с использованием горизонтальных и вертикальных градиентов в окне 6x6, перекрывающем субблок 4x4, как показано на фиг. 7.[96] Inter-predictor 124 is configured to calculate S1, S2, S3, S5, and S6 corresponding to autocorrelation and cross-correlation of gradients using horizontal and vertical gradients in a 6x6 window spanning a 4x4 subblock as shown in FIG. 7.
Уравнение 5Equation 5
[97] где Ω обозначает окно, перекрывающее субблок. Кроме того, как показано в уравнении 6 ниже, Ψx(i,j) обозначает сумму значений горизонтального градиента в положении (i,j) в первом опорном блоке и втором опорном блоке, Ψy (i,j) обозначает сумму значений вертикального градиента в положении (i,j) в первом опорном блоке и во втором опорном блоке, а θ(i,j) обозначает разницу между значением отсчета в положении (i,j) во втором опорном блоке и значение отсчета в положении (i,j) в первом опорном блоке.[97] where Ω denotes a window spanning a subblock. In addition, as shown in
Уравнение 6
[98] где na и nb являются значениями, полученными из битовой глубины, и имеют значения min(1, bitDepth-11) и min(4, bitDepth-8).[98] where na and nb are values derived from bit depth and have the values min(1, bitDepth-11) and min(4, bitDepth-8).
[99] Интер-предиктор 124 конфигурирован для вычисления оптических потоков (vx, vy) для субблока 4x4 с использованием уравнения 7 на основе S1, S2, S3, S5 и S6.[99] The inter-predictor 124 is configured to calculate the optical flows (vx, vy) for the 4x4 subblock using Equation 7 based on S1, S2, S3, S5, and S6.
Уравнение 7Equation 7
[100] где , , и . является функцией округления, и .[100] where , , and . is the rounding function, and .
[101] Смещение отсчета для модификации предсказываемого отсчета в каждом положении отсчета (x, y) в субблоке 4x4 в целевом блоке может быть вычислено с использованием оптического потока, рассчитанного для субблока 4x4, и значений градиента в положении отсчета (x, y), как показано в уравнении 8. В уравнении 8 rnd() представляет собой операцию округления.[101] The sample offset for modifying the predicted sample at each sample position (x, y) in the 4x4 subblock in the target block can be calculated using the optical flow calculated for the 4x4 subblock and the gradient values at the sample position (x, y) as shown in
Уравнение 8
[102] Интер-предиктор 124 выполнен с возможностью генерировать окончательный предсказанный отсчет pred(x, y) с использованием смещения отсчета b(x, y) в положении (x, y) и предсказанных отсчетов I (0) (x,y) и I (1) (x,y) в первом опорном блоке и во втором опорном блоке, как в уравнении 9.[102] The
Уравнение 9Equation 9
[103] где сдвиг равен Max(3, 15-BitDepth), а Ooffset представляет собой значение для операции округления и составляет половину сдвига.[103] where the offset is Max(3, 15-BitDepth) and Ooffset is the value for the round operation and is half the offset.
[104] Как описано выше, метод двунаправленного оптического потока использует значения отсчетов, предсказанных с использованием информации о движении (два вектора движения и два опорных изображения), используемых для двунаправленного предсказания. Следовательно, интер-предиктор 544 устройства декодирования видео также может быть конфигурирован для осуществления двунаправленного оптического потока таким же образом, как и устройство кодирования видео, с использованием информации движения (векторов движения, опорных изображений) для двунаправленного предсказания, полученных от устройства кодирования видео. При этом не требуется, чтобы устройство кодирования видео сигнализировало дополнительную информацию для процесса двунаправленного оптического потока устройству декодирования видео.[104] As described above, the bidirectional optical flow method uses sample values predicted using motion information (two motion vectors and two reference images) used for bidirectional prediction. Therefore, the inter-predictor 544 of the video decoder can also be configured to implement bidirectional optical flow in the same manner as the video encoder using motion information (motion vectors, reference pictures) for bidirectional prediction received from the video encoder. This does not require the video encoding device to signal additional information for the bidirectional optical flow process to the video decoding device.
[105] II. Аффинное предсказание движения[105] II. Affine motion prediction
[106] Вышеописанное интер-предсказание представляет собой предсказание движения, отражающее модель поступательного движения. Другими словами, это метод предсказания движения в горизонтальном направлении (направление оси x) и вертикальном направлении (направление оси y). Однако на практике в дополнение к поступательному движению могут быть различные типы движений, такие как вращение, увеличение или уменьшение масштаба. Один аспект настоящего раскрытия предусматривает аффинное предсказание движения, способное охватывать такие различные типы движений.[106] The above-described inter-prediction is a motion prediction reflecting a forward motion model. In other words, it is a method for predicting movement in the horizontal direction (x-axis direction) and the vertical direction (y-axis direction). However, in practice, in addition to translational motion, there may be various types of motion such as rotation, zooming in or out. One aspect of the present disclosure provides for affine motion prediction capable of covering such different types of motion.
[107] Фиг. 8A - 8B - примерные схемы, иллюстрирующие аффинное предсказание движения. Для аффинного предсказания движения могут быть два типа моделей. Одна из них - это модель, использующая векторы движения двух контрольных точек верхнего левого угла и верхнего правого угла целевого блока, который должен быть кодирован в текущий момент, то есть четырех параметров, как показано на фиг. 8А. Другая модель представляет собой модель, использующую векторы движения трех контрольных точек верхнего левого угла, верхнего правого угла и нижнего левого угла целевого блока, то есть шесть параметров, как показано на фиг. 8B.[107] FIG. 8A-8B are exemplary diagrams illustrating affine motion prediction. For affine motion prediction, there can be two types of models. One of them is a model using the motion vectors of the two control points of the upper left corner and the upper right corner of the target block to be encoded at the moment, that is, four parameters, as shown in FIG. 8A. Another model is a model using the motion vectors of the three control points of the upper left corner, the upper right corner and the lower left corner of the target block, that is, six parameters, as shown in FIG. 8B.
[108] Аффинная модель с четырьмя параметрами выражается уравнением 10. Движение в положении (x, y) отсчета в целевом блоке можно рассчитать по уравнению 10. Здесь предполагается, что положение вышеприведенного левого отсчета целевого блока равна (0, 0).[108] The four-parameter affine model is expressed by
Уравнение10
[109] Аффинная модель с шестью параметрами выражается уравнением 11. Движение в положении (x, y) отсчета в целевом блоке можно рассчитать по уравнению 11.[109] A six-parameter affine model is expressed by Equation 11. Movement at the position (x, y) of the reference in the target block can be calculated from Equation 11.
Уравнение 11Equation 11
[110] где (mv0x, mv0y) - вектор движения контрольной точки в левом верхнем углу, (mv1x, mv1y) - вектор движения контрольной точки в правом верхнем углу, а (mv2x, mv2y) - вектор движения контрольной точки в левом нижнем углу. W - константа, определяемая по длине целевого блока по горизонтали, а H - константа, определяемая по длине целевого блока по вертикали.[110] where (mv0x, mv0y) is the motion vector of the control point in the upper left corner, (mv1x, mv1y) is the motion vector of the control point in the upper right corner, and (mv2x, mv2y) is the motion vector of the control point in the lower left corner. W is a constant given by the horizontal length of the target box, and H is a constant given by the vertical length of the target box.
[111] Аффинное предсказание движения может выполняться для каждого отсчета в целевом блоке с использованием вектора движения, рассчитанного по уравнению 10 или 11. В качестве альтернативы, чтобы уменьшить вычислительную сложность, предсказание может выполняться для каждого субблока, отделенного от целевого блока, как показано на фиг. 9. Например, размер субблока может быть 4x4, 2x2 или 8x8. В примерном варианте осуществления, приведенном ниже, аффинное предсказание движения для целевого блока выполняется на основе субблока 4x4.Этот пример предназначен только для удобства объяснения, и настоящее раскрытие им не ограничивается.[111] Affine motion prediction may be performed for each sample in the target block using the motion vector calculated by
[112] При аффинном предсказании движения на основе субблоков вектор движения (аффинный вектор движения) каждого субблока вычисляется путем подстановки центрального положения каждого субблока в (x, y) в уравнении 10 или 11. В частности, центральное положение может быть фактической центральной точкой субблока или нижним правым положением отсчета центральной точки. Например, в случае субблока 4x4, в котором координаты нижнего левого отсчета равны (0, 0), положение центра субблока может быть (1,5, 1,5) или (2, 2). Предсказываемый блок для каждого субдблока генерируется с использованием аффинного вектора движения (mvx, mvy) субблока.[112] In subblock-based affine motion prediction, the motion vector (affine motion vector) of each subblock is calculated by substituting the center position of each subblock into (x, y) in
[113] Векторы движения (mvx,mvy) могут иметь точность в 1/16 отсчета. В частности, вектор движения (mvx, mvy), вычисленный по уравнению 10 или 11, может быть округлен до 1/16 единиц отсчета. Адаптивное разрешение вектора движения может применяться к аффинному предсказанию движения, как и в обычном интер-предсказании. В частности, информация о разрешении вектора движения целевого блока, то есть о точности вектора движения, передается для каждого целевого блока.[113] The motion vectors (mvx,mvy) can be accurate to 1/16 of a sample. In particular, the motion vector (mvx, mvy) calculated from
[114] Аффинное предсказание движения может выполняться не только для компонента яркости, но также для компонента цветности. В случае формата видео 4: 2: 0, когда аффинное предсказание движения для компонента яркости выполняется на основе субблока 4x4, аффинное предсказание движения для компонента цветности может выполняться на основе субблока 2x2. Вектор движения (mvx, mvy) каждого субблока компонента цветности может быть получен из вектора движения соответствующего компонента яркости. В качестве альтернативы, размер субблока для аффинного предсказания движения для компонента цветности может быть таким же, как и для компонента яркости.[114] Affine motion prediction can be performed not only for the luminance component, but also for the chrominance component. In the case of a 4:2:0 video format, when affine motion prediction for the luma component is performed based on a 4x4 subblock, affine motion prediction for the chrominance component may be performed based on a 2x2 subblock. The motion vector (mvx, mvy) of each chrominance component subblock may be derived from the motion vector of the corresponding luma component. Alternatively, the sub-block size for affine motion prediction for the chrominance component may be the same as for the luma component.
[115] Когда аффинное предсказание движения для компонента яркости выполняется на основе субблока 4x4, аффинное предсказание движения для компонента цветности также выполняется на основе субблока 4x4. В этом случае, поскольку субблок 4x4 для компонента цветности соответствует четырем субблокам 4x4 для компонента яркости, вектор движения (mvx, mvy) для субблока компонента цветности может быть рассчитан путем вычисления среднего значения векторов движения для компонента цветности из четырех соответствующих субдблоков компонента яркости.[115] When affine motion prediction for the luminance component is performed based on the 4x4 subblock, affine motion prediction for the chrominance component is also performed based on the 4x4 subblock. In this case, since the 4x4 chrominance subblock corresponds to four 4x4 luma subblocks, the motion vector (mvx,mvy) for the chrominance subblock can be calculated by calculating the average value of the chroma component motion vectors from the four corresponding luma component subblocks.
[116] Устройство кодирования видео выполняет интра-предсказание, интер-предсказание (предсказание поступательного движения), аффинное предсказание движения и т.п. и вычисляет стоимость скорость-искажение (RD), чтобы выбрать оптимальный способ предсказания. Для выполнения аффинного предсказания интер-предиктор 124 устройства кодирования видео определяет, какой из двух типов моделей использовать, и определяет две или три контрольные точки в соответствии с определенным типом. Интер-предиктор 124 вычисляет вектор движения (mvx, mvy) для каждого из субблоков 4x4 в целевом блоке, используя векторы движения контрольных точек. Затем он выполняет компенсацию движения в опорном изображении на посубблочной основе, используя вектор движения (mvx,mvy) каждого субблока, чтобы сгенерировать предсказанный блок для каждого субблока в целевом блоке.[116] The video encoding device performs intra-prediction, inter-prediction (progressive motion prediction), affine motion prediction, and the like. and calculates the rate-distortion (RD) cost to select the optimal prediction method. To perform affine prediction, the
[117] Энтропийный кодер 155 устройства кодирования видео конфигурирован для кодирования связанных аффинных элементов синтаксиса, включая флаг, указывающий, применяется ли аффинное предсказание движения к целевому блоку, информацию о типе, указывающую тип аффинной модели, и информацию о движении, указывающую вектор движения каждой контрольной точки, и передачи этого на устройство декодирования видео. Информация о типе и информация о движении относительно контрольных точек могут передаваться, когда выполняется аффинное предсказание движения, и может передаваться столько векторов движения контрольных точек, сколько определено в соответствии с информацией о типе. Кроме того, когда применяется адаптивное разрешение вектора движения, передается информация о разрешении вектора движения об аффинном векторе движения целевого блока.[117] The
[118] Устройство декодирования видео конфигурировано для определения типа аффинной модели и векторов движения контрольных точек с использованием сигнализированных элементов синтаксиса и вычисления вектора движения (mvx, mvy) для каждого субблока 4x4 в целевом блоке с использованием уравнения 10 или 11. Когда сообщается информация о разрешении вектора движения об аффинном векторе движения целевого блока, вектор движения (mvx, mvy) корректируется до точности, определяемой информацией о разрешении вектора движения, посредством таких операций, как округление.[118] The video decoder is configured to determine the affine model type and checkpoint motion vectors using the signaled syntax elements and calculate the motion vector (mvx, mvy) for each 4x4 subblock in the target
[119] Устройство декодирования видео выполнено с возможностью генерировать предсказанный блок для каждого субблока путем выполнения компенсации движения в опорном изображении с использованием вектора движения (mvx, mvy) для каждого субблока. Чтобы уменьшить количество битов, требуемых для кодирования векторов движения контрольных точек, может быть применен способ, который используется в вышеописанном обычном интер-предсказании (предсказании поступательного движения).[119] The video decoding apparatus is configured to generate a predicted block for each sub-block by performing motion compensation in a reference picture using a motion vector (mvx, mvy) for each sub-block. In order to reduce the number of bits required to encode the motion vectors of the control points, the method used in the above-described conventional inter-prediction (forward motion prediction) can be applied.
[120] В качестве примера, в режиме слияния интер-предиктор 124 устройства кодирования видео конфигурирован получать вектор движения каждой контрольной точки из соседних блоков целевого блока. Например, интер-предиктор 124 конфигурирован для генерации списка кандидатов на слияние путем получения заранее определенного количества кандидатов на слияние из соседних отсчетов L, BL, A, AR и AL целевого блока, проиллюстрированного на фиг. 4. Каждый из кандидатов на слияние, включенных в список, соответствует паре векторов движения из двух или трех контрольных точек.[120] As an example, in the merge mode, the inter-predictor 124 of the video encoder is configured to obtain the motion vector of each control point from neighboring blocks of the target block. For example,
[121] Во-первых, интер-предиктор 124 конфигурирован для получения кандидата на слияние из векторов движения контрольных точек соседних блоков, предсказанных в аффинном режиме, среди соседних блоков. В некоторых вариантах осуществления количество кандидатов на слияние, полученных из соседних блоков, предсказанных в аффинном режиме, может быть ограничено. Например, интер-предиктор 124 может быть конфигурирован для получения двух кандидатов на слияние из соседних блоков, предсказанных в аффинном режиме: один из L и BL и один из A, AR и AL. Приоритет может быть назначен в порядке L и BL и в порядке A, AR и AL. Когда общее количество кандидатов на слияние больше или равно 3, интер-предиктор 124 может быть конфигурирован для получения необходимого количества кандидатов на слияние из векторов поступательного движения соседних блоков.[121] First, the inter-predictor 124 is configured to derive a merge candidate from the affine-predicted neighboring blocks motion vectors of control points among neighboring blocks. In some embodiments, the number of merge candidates derived from neighboring blocks predicted in affine mode may be limited. For example, inter-predictor 124 can be configured to produce two affine-predicted neighbor merge candidates: one from L and BL and one from A, AR, and AL. Priority can be assigned in the order L and BL and in the order A, AR and AL. When the total number of merge candidates is greater than or equal to 3, inter-predictor 124 may be configured to obtain the required number of merge candidates from the translation vectors of neighboring blocks.
[122] Фиг. 10 - примерная схема, иллюстрирующая способ получения кандидатов на слияние для аффинного предсказания движения из векторов поступательного движения соседних блоков. Интер-предиктор 124 конфигурирован для получения векторов движения CPMV1, CPMV2, CPMV3 контрольной точки из соседней группы блоков {B2, B3, A2}, соседней группы блоков {B1, B0} и соседней группы блоков {A1, A0 }, соответственно. Например, приоритеты в каждой группе соседних блоков могут быть назначены в порядке B2, B3, A2, порядке B1 и B0 и порядке A1 и A0. Кроме того, другой вектор движения CPMV4 контрольной точки получается из совместно расположенного блока T в опорном изображении. Интер-предиктор 124 выполнен с возможностью генерировать столько кандидатов на слияние, сколько необходимо, посредством комбинаций двух или трех векторов движения контрольных точек среди четырех векторов движения контрольных точек. Приоритеты комбинаций назначаются, как показано ниже. Элементы в каждой группе перечислены в порядке векторов движения контрольных точек верхнего левого угла, верхнего правого угла и нижнего левого угла.[122] FIG. 10 is an exemplary diagram illustrating a method for deriving affine motion prediction merge candidates from translational motion vectors of neighboring blocks.
{CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4}, {CPMV1, CPMV2}, {CPMV1, CPMV3}{CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4}, {CPMV1, CPMV2}, {CPMV1, CPMV3}
[123] Интер-предиктор 124 конфигурирован выбирать кандидата на слияние в списке кандидатов на слияние и выполнять аффинное предсказание движения для целевого блока. Когда выбранный кандидат состоит из двух векторов движения контрольных точек, аффинное предсказание движения выполняется с использованием модели с четырьмя параметрами. С другой стороны, когда выбранный кандидат состоит из трех векторов движения контрольных точек, аффинное предсказание движения выполняется с использованием модели с шестью параметрами. Энтропийный кодер 155 устройства кодирования видео конфигурирован для кодирования индексной информации, указывающей на кандидата на слияние, выбранного из кандидатов на слияние в списке кандидатов на слияние, и сигнализирования его устройству декодирования видео.[123] The
[124] Энтропийный декодер 510 устройства декодирования видео конфигурирован для декодирования индексной информации, сигнализированный от устройства кодирования видео. Интер-предиктор 544 устройства декодирования видео составляет список кандидатов на слияние таким же образом, что и устройство кодирования видео, и выполняет аффинное предсказание движения с использованием векторов движения контрольных точек, соответствующих кандидату на слияние, указанному индексной информацией.[124] The
[125] В качестве другого примера, в режиме AMVP интер-предиктор 124 устройства кодирования видео конфигурирован определять тип аффинной модели и векторов движения контрольных точек для целевого блока. Затем интер-предиктор 124 конфигурирован вычислять разности векторов движения, которые являются разностями между фактическими векторами движения контрольных точек целевого блока и предсказанными векторами движения соответствующих контрольных точек, и передачи разностей векторов движения, которые соответственно соответствуют контрольным точкам. [125] As another example, in the AMVP mode, the
[126] Соответственно, интер-предиктор 124 устройства кодирования видео конфигурирует список из заранее определенного количества аффинных AMVP. Когда целевой блок относится к типу с 4 параметрами, каждый из кандидатов, включенных в список, состоит из пары векторов движения двух контрольных точек. С другой стороны, когда целевой блок относится к типу с 6 параметрами, каждый кандидат, включенный в список, составлен из пары векторов движения трех контрольных точек. Список аффинных AMVP может быть получен с использованием векторов движения контрольных точек или векторов поступательного движения соседних блоков способом, аналогичным способу создания списка кандидатов на слияние, описанному выше.[126] Accordingly, the
[127] Однако для получения кандидатов для включения в список аффинных AMVP может существовать ограничение рассмотрения только соседних блоков, которые опираются на то же опорное изображение, что и целевой блок, среди соседних блоков на фиг. 4.[127] However, in order to obtain candidates for inclusion in the affine AMVP list, there may be a restriction to consider only neighboring blocks that rely on the same reference image as the target block among neighboring blocks in FIG. four.
[128] Кроме того, в режиме AMVP следует учитывать тип аффинной модели целевого блока. Когда тип аффинной модели целевого блока представляет собой тип с 4 параметрами, устройство кодирования видео конфигурируется для получения двух векторов движения контрольных точек (вектора движения контрольной точки верхнего левого угла и вектора движения контрольной точки правого верхнего угла целевого блока) с использованием аффинной модели соседнего блока. Когда тип аффинной модели целевого блока представляет собой тип с 6 параметрами, устройство получает три вектора движения контрольной точки (верхний левый угол, верхний правый угол и нижний левый вектор движения контрольной точки целевого блока) с использованием аффинной модели соседнего блока.[128] In addition, in the AMVP mode, the affine model type of the target block should be taken into account. When the target block affine model type is a 4-parameter type, the video encoding device is configured to obtain two control point motion vectors (upper left control point motion vector and upper right control point motion vector of the target block) using the neighboring block affine model. When the target block affine model type is a 6-parameter type, the device obtains three control point motion vectors (upper left corner, upper right corner, and lower left control point motion vector of the target block) using the neighbor block affine model.
[129] Когда соседний блок относится к типу с 4 параметрами, два или три вектора движения контрольной точки предсказываются в соответствии с типом аффинной модели целевого блока с использованием двух векторов движения контрольных точек соседнего блока. Например, может использоваться аффинная модель соседнего блока, выраженная Уравнением 10. В Уравнении 10 (mv0x, mv0y) и (mv1x, mv1y) заменяются векторами движения контрольной точки в верхнем левом и правом верхнем углу соседнего блока соответственно. В частности, в W подставляется горизонтальная длина соседнего блока. Предсказываемый вектор движения для каждой контрольной точки целевого блока может быть получен путем ввода в (x, y) разницы между положением соответствующей контрольной точки целевого блока и положением верхнего левого угла соседнего блока.[129] When a neighboring block is of a 4-parameter type, two or three checkpoint motion vectors are predicted according to the target block's affine model type using the two checkpoint motion vectors of the neighboring block. For example, the affine neighbor block model expressed by
[130] Когда соседний блок относится к типу с 6 параметрами, два или три вектора движения контрольной точки предсказываются в соответствии с типом аффинной модели целевого блока с использованием трех векторов движения контрольных точек соседнего блока. Например, может использоваться аффинная модель соседнего блока, выраженная Уравнением 11. В уравнении11(mv0x,mv0y),(mv1x, mv1y)и(mv2x, mv2y) заменяются векторами движения контрольной точки левого верхнего угла, правого верхнего угла и левого нижнего угла соседнего блока, соответственно. В частности, W и H заменены на длину по горизонтали и длину по вертикали соседнего блока, соответственно. Предсказываемый вектор движения для каждой контрольной точки целевого блока может быть получен путем ввода в (x, y) разницы между положением соответствующей контрольной точки целевого блока и положением верхнего левого угла соседнего блока.[130] When the neighbor block is of the 6-parameter type, two or three checkpoint motion vectors are predicted according to the target block affine model type using the three checkpoint motion vectors of the neighbor block. For example, the affine neighbor block model expressed by Equation 11 may be used. In Equation 11, (mv0x,mv0y), (mv1x, mv1y) and (mv2x, mv2y) are replaced by the control point motion vectors of the upper left corner, upper right corner and lower left corner of the neighboring block , respectively. In particular, W and H are replaced by the horizontal length and vertical length of the neighboring block, respectively. The predicted motion vector for each control point of the target block can be obtained by entering in (x, y) the difference between the position of the corresponding control point of the target block and the position of the upper left corner of the neighboring block.
[131] Интер-предиктор 124 устройства кодирования видео конфигурирован выбирать одного кандидата в списке аффинных AMVP и генерировать разность векторов движения между вектором движения каждой фактической контрольной точки и предсказанным вектором движения соответствующей контрольной точки выбранного кандидата. Энтропийный кодер 155 устройства кодирования видео конфигурирован для кодирования информации о типе, указывающей тип аффинной модели целевого блока, индексной информации, указывающей на кандидата, выбранного среди кандидатов в списке аффинных AMVP, и разности векторов движения, соответствующей каждой контрольной точке, и для сигнализирования этого в устройство декодирования видео.[131] The
[132] Интер-предиктор 544 устройства декодирования видео конфигурирован для определения типа аффинной модели с использованием информации, сигнализируемой из устройства кодирования видео, и генерирования разности векторов движения для каждой контрольной точки. Затем интер-предиктор конфигурирован генерировать аффинный список AMVP таким же образом, что и устройство кодирования видео, и выбирать кандидата, указанного индексной информацией, переданной в аффинном списке AMVP. Интер-предиктор 544 устройства декодирования видео конфигурирован для вычисления вектора движения каждой контрольной точки путем добавления предсказанного вектора движения каждой контрольной точки выбранного кандидата и соответствующей разности векторов движения.[132] The
[133] III. Поблочная корректировка отсчетов аффинного предсказания движения[133] III. Block-wise adjustment of affine motion prediction samples
[134] Выше было описано посубблочное аффинное предсказание движения для целевого блока. Другой аспект настоящего раскрытия относится к корректировке, на поотсчетной основе, значений отсчетов предсказанных отсчетов, сгенерированных посубблочным аффинным предсказанием движения. Движение по положению каждого отсчета дополнительно компенсируется в каждом субблоке, что составляет основу аффинного предсказания движения.[134] Sub-block affine motion prediction for a target block has been described above. Another aspect of the present disclosure relates to adjusting, on a sample basis, sample values of predicted samples generated by sub-block affine motion prediction. Movement by the position of each sample is additionally compensated in each sub-block, which forms the basis of affine motion prediction.
[135] Когда значения отсчетов в любом субблоке, сгенерированном в результате посубблочного аффинного предсказания движения для целевого блока, равны I(x, y), устройство кодирования видео вычисляет горизонтальный и вертикальный градиенты gx (i, j) и gy (i, j) в каждом положении отсчетов. Уравнение 12 можно использовать для расчета градиентов.[135] When the sample values in any sub-block generated as a result of sub-block affine motion prediction for the target block are equal to I(x, y), the video coding device calculates horizontal and vertical gradients gx (i, j) and gy (i, j) at each reading position.
Уравнение 12
[136] Смещение отсчета ΔI(i, j) для корректировки отсчета предсказания вычисляется по следующему уравнению.[136] Count offset ΔI(i, j) for adjusting the prediction count is calculated by the following equation.
Уравнение 13Equation 13
[137] где Δmv(i,j) обозначает смещение движения, то есть разницу между аффинным вектором движения в отсчете (i, j) и аффинным вектором движения в центральном положении субблока, и может быть вычислено посредством Уравнения 10 или 11 в зависимости от типа аффинной модели целевого блока. Другими словами, Δmv(i, j) может быть вычислено из уравнения 10 или 11 путем вычитания вектора движения, заданного, когда положение центра субблока подставляется в (x, y) из вектора движения, заданного, когда (i, j) подставляется в (х, у). Кроме того, Δmv(i, j) можно рассчитать из уравнения, которое получается путем замены (x, y) в уравнениях 11 и 12 смещением по горизонтали и вертикали от положения центра субблока до положения отсчета (i,j) и удаления последнего члена «+ mv0x» и «+ mv0y». Центральное положение может быть фактической центральной точкой субблока или может быть нижним правым положением отсчета центральной точки.[137] where Δmv(i,j) denotes the motion offset, i.e. the difference between the affine motion vector at the reference (i, j) and the affine motion vector at the center position of the subblock, and can be calculated by
[138] Вектор движения каждой контрольной точки целевого блока, используемый для расчета Δmv(i, j), и разница между положением отсчета (i, j) и положением центра субблока одинаковы для всех субблоков. Соответственно, значения Δmv(i, j) могут быть рассчитаны только для одного субблока, например, первого субблока, и могут повторно использоваться для других субблоков.[138] The motion vector of each control point of the target block used to calculate Δmv(i, j) and the difference between the reference position (i, j) and the position of the center of the sub-block are the same for all sub-blocks. Accordingly, the values of Δmv(i, j) can only be calculated for one subblock, such as the first subblock, and can be reused for other subblocks.
[139] Методика согласно настоящему раскрытию основана на предположении, что объект движется с постоянной скоростью и изменение значений отсчета является плавным. Следовательно, вариации отсчета в горизонтальном направлении и величина изменения отсчета в вертикальном направлении получаются путем умножения компонента x(Δmvx) и компонента y (Δmvy) Δmv(i, j) на значения горизонтального и вертикального градиента отсчета, соответственно. Смещение ΔI(i,j) отсчета вычисляется путем сложения двух вариантов отсчета. Окончательное значение предсказываемого отсчета рассчитывается следующим образом.[139] The technique according to the present disclosure is based on the assumption that the object is moving at a constant speed and the change in the values of the reference is smooth. Therefore, the variation in the horizontal direction and the amount of change in the vertical direction are obtained by multiplying the x(Δmvx) component and the y (Δmvy) component of Δmv(i, j) by the horizontal and vertical reading gradient values, respectively. The offset ΔI(i,j) of the reference is calculated by adding two variants of the reference. The final value of the predicted count is calculated as follows.
Уравнение 14
[140] Когда применяется поотсчетная корректировка для отсчетов аффинного предсказания движения, интер-предиктор 124 устройства кодирования видео и интер-предиктор 544 устройства декодирования видео выполняют вышеописанный процесс для корректирования значений отсчетов предсказанных отсчетов, сгенерированных с помощью аффинного предсказания движения. Значения градиента получаются из предсказанных отсчетов, сгенерированных посредством аффинного предсказания движения, а Δmv(i, j) получается из векторов движения контрольных точек целевого блока. Следовательно, не требуется, чтобы устройство кодирования видео сигнализировало дополнительную информацию для процесса настоящей методики в устройство декодирования видео.[140] When sample-by-sample correction is applied to affine motion prediction samples, the inter-predictor 124 of the video coding device and the inter-predictor 544 of the video decoder perform the above-described process to correct sample values of the predicted samples generated by affine motion prediction. The gradient values are obtained from the predicted samples generated by affine motion prediction, and Δmv(i, j) is obtained from the motion vectors of the control points of the target block. Therefore, the video encoding device is not required to signal additional information for the process of the present technique to the video decoding device.
[141] IV. Компенсация локальной освещенности для отсчетов аффинного предсказания движения[141] IV. Local Illumination Compensation for Affine Motion Prediction Samples
[142] Методика компенсации локальной освещенности представляет собой метод кодирования, компенсирующий изменение освещенности между целевым блоком и предсказываемым блоком с помощью линейной модели. Интер-предиктор 124 устройства кодирования видео конфигурирован для определения опорного блока в опорном изображении с использованием вектора движения (вектора поступательного движения) целевого блока и получения параметров линейной модели для компенсации освещенности с использованием предварительно восстановленных отсчетов вокруг (на верхней и левой сторонах) опорного блока и предварительно восстановленных отсчетов вокруг (на верхней и левой сторонах) целевого блока.[142] The local illumination compensation technique is an encoding technique that compensates for the change in illumination between a target block and a predicted block using a linear model. The
[143] Когда предварительно восстановленные отсчеты вокруг опорного блока обозначаются как x, а соответствующие предварительно восстановленные отсчета вокруг целевого блока обозначаются как y, параметры «A» и «b» выводятся, как в уравнении 15, так что сумма квадратов разностей между y и (Ax + b) минимизируется.[143] When the pre-recovered samples around the reference block are denoted as x, and the corresponding pre-recovered samples around the target block are denoted as y, the parameters "A" and "b" are output as in equation 15, so that the sum of the squared differences between y and ( Ax + b) is minimized.
Уравнение 15Equation 15
[144] Окончательные предсказанные отсчеты генерируются путем применения веса A и смещения b к отсчетам в предсказываемомблоке (опорном блоке), сгенерированном вектором движения целевого блока, как показано в уравнении 16. В уравнении 16 pred[x][y] - это предсказанный отсчет в положении (x, y), сгенерированная вектором движения целевого блока, а predLIC[x][y] - это конечный предсказанный отсчет после компенсации освещенности.[144] The final predicted samples are generated by applying weight A and offset b to the samples in the predicted block (reference block) generated by the motion vector of the target block, as shown in
Уравнение 16
[145] Другой аспект настоящего раскрытия относится к методике комбинирования метода компенсации освещения с аффинным предсказанием движения.[145] Another aspect of the present disclosure relates to a technique for combining a lighting compensation technique with affine motion prediction.
[146] Как описано выше, когда посубблочное аффинное предсказание движения применяется к целевому блоку, вектор движения генерируется для каждого из субблоков. Параметры компенсации освещенности могут быть получены с использованием соответствующего вектора движения для каждого субблока, а затем компенсация освещенности может выполняться в модуле субблоков с использованием соответствующего вектора движения. Это, однако, не только увеличивает сложность вычислений, но и вызывает проблему с задержкой. Поскольку восстановленные отсчеты в каждом субблоке необходимы для компенсации освещенности следующего субблока, процесс компенсации освещенности для субблока должен быть приостановлен до тех пор, пока не будет восстановлен соседний субблок (то есть до тех пор, пока не будут восстановлены и блок предсказания, и остаточный блок для субблока). Настоящее раскрытие направлено на решение таких проблем.[146] As described above, when sub-block affine motion prediction is applied to a target block, a motion vector is generated for each of the sub-blocks. Light compensation parameters may be obtained using the respective motion vector for each sub-block, and then illumination compensation may be performed in the sub-block module using the respective motion vector. This, however, not only increases the computational complexity, but also causes a latency problem. Since the reconstructed samples in each subblock are needed to compensate for the illumination of the next subblock, the illumination compensation process for the subblock must be suspended until the adjacent subblock is restored (i.e., until both the prediction block and the residual block for subblock). The present disclosure is directed to solving such problems.
[147] Фиг. 11A-11C показывают различные примеры определения положения опорного блока для получения параметра компенсации освещения согласно варианту осуществления настоящего раскрытия. В этом варианте осуществления выводится один набор параметров компенсации освещенности (A, b) для целевого блока, и один и тот же параметр применяется ко всем субблокам в целевом блоке. То есть весь целевой блок модифицируется одним набором параметров компенсации освещенности.[147] FIG. 11A-11C show various examples of determining the position of a reference block to obtain a lighting compensation parameter according to an embodiment of the present disclosure. In this embodiment, one set of illumination compensation parameters (A, b) for the target block is output, and the same parameter is applied to all sub-blocks in the target block. That is, the entire target block is modified with one set of light compensation parameters.
[148] Как показано на фиг. 11А интер-предиктор 124 устройства кодирования видео может быть конфигурирован для определения положения опорного блока в опорном изображении с использованием аффинного вектора движения субблока, расположенного в верхнем левом углу целевого блока или вектор движения контрольной точки в верхнем левом углу целевого блока. Предварительно восстановленные отсчета вокруг определенного опорного блока используются для получения параметров. В качестве альтернативы, как показано на фиг. 11B, положение опорного блока может быть определено с использованием аффинного вектора движения центрального субблока в целевом блоке. Как только положение опорного блока определено, параметр компенсации освещенности выводится с использованием предварительно восстановленных отсчетов, примыкающих к верхней и левой сторонам опорного блока, и соответствующих предварительно восстановленных отсчетов, примыкающих к верхней и левой сторонам целевого блока.[148] As shown in FIG. 11A, inter-predictor 124 of the video encoder may be configured to determine the position of a reference block in a reference picture using the affine motion vector of a sub-block located at the upper left corner of the target block or the motion vector of a checkpoint at the upper left corner of the target block. Pre-recovered readings around a specific reference block are used to obtain parameters. Alternatively, as shown in FIG. 11B, the position of the reference block may be determined using the affine motion vector of the center subblock in the target block. Once the position of the reference block is determined, the illumination compensation parameter is derived using the pre-recovered samples adjacent to the top and left sides of the reference block and the corresponding pre-recovered samples adjacent to the top and left sides of the target block.
[149] В качестве другого примера можно использовать множество субблоков в целевом блоке. Как показано на фиг. 11С интер-предиктор 124 определяет опорный субблок, соответствующий каждому граничному субблоку, используя аффинные векторы движения субблоков (граничных субблоков), расположенных на границе в целевом блоке. Отсчеты для получения параметра компенсации освещенности извлекаются из предварительно восстановленных отсчетов, смежных с граничными субблоками в целевом блоке и соответствующих опорных субблоках, соответственно. Для субблоков, расположенных на верхней границе в целевом блоке, и соответствующих опорных субблоков отсчеты извлекаются из предварительно восстановленных отсчетов, примыкающих к верхней стороне. Для субблоков, расположенных на левой границе в целевом блоке, и соответствующих опорных субблоков отсчеты извлекаются из предварительно восстановленных отсчетов, примыкающих к левой стороне.[149] As another example, a plurality of sub-blocks in a target block can be used. As shown in FIG. 11C,
[150] В настоящем варианте осуществления, поскольку параметр компенсации освещенности выводится с использованием предварительно построенных отсчетов вокруг целевого блока и предварительно построенных отсчетов вокруг опорного блока, вышеупомянутая проблема задержки может быть решена. Однако применение только одного параметра компенсации освещенности к целевому блоку, к которому применяется посубблочное аффинное предсказание движения, потенциально может привести к более низкой эффективности кодирования.Другой вариант осуществления, описанный ниже, приводит к увеличению эффективности кодирования в обмен на небольшое увеличение сложности.[150] In the present embodiment, since the illumination compensation parameter is derived using pre-built samples around the target block and pre-built samples around the reference block, the aforementioned delay problem can be solved. However, applying only one illuminance compensation parameter to a target block to which sub-block affine motion prediction is applied can potentially result in lower coding efficiency. Another embodiment, described below, results in an increase in coding efficiency in exchange for a slight increase in complexity.
[151] Согласно другому варианту осуществления настоящего раскрытия, интер-предиктор 124 устройства кодирования видео разделяет целевой блок на множество областей. Каждая область включает в себя по крайней мере один субблок, который является единицей, в которой выполняется аффинное предсказание движения. Интер-предиктор 124 конфигурирован для вычисления параметров компенсации освещенности для множества областей и выполняет компенсацию освещенности в единицах областей или субблоков в целевом блоке на основе вычисленных параметров компенсации освещенности.[151] According to another embodiment of the present disclosure, the
1. Разделение целевого блока1. Separation of the target block
[152] Интер-предиктор 124 устройства кодирования видео конфигурирован для разделения целевого блока на множество областей, каждая из которых включает в себя один или более субблоков, которые являются единицами, в которых выполняется аффинное предсказание движения.[152] The
[153] Целевой блок может быть разделен с использованием векторов движения контрольных точек целевого блока. Фиг. 12A-12B являются примерами разделения целевого блока с использованием векторов движения контрольных точек. Ссылаясь на фиг. 12A, когда угол между вектором MV0 движения контрольной точки верхнего левого угла и вектором MV1 движения контрольной точки верхнего правого угла целевого блока представляет собой тупой угол (более 90 градусов), целевой блок разделяется по вертикали. Например, целевой блок может быть разделен на две области. В противном случае целевой блок не разделяется по вертикали. Ссылаясь на фиг. 12B, когда угол между вектором MV0 движения контрольной точки верхнего левого угла и вектором MV2 движения контрольной точки нижнего левого угла представляет собой тупой угол, целевой блок разделяется по горизонтали, например, на две половины. В противном случае целевой блок не разделяется по горизонтали. Когда тип аффинной модели целевого блока соответствует 4 параметрам, вектор MV2 движения контрольной точки нижнего левого угла может быть получен путем ввода координат отсчета нижнего левого угла целевого блока в (x, y) в Уравнении 1.[153] The target block may be divided using the motion vectors of the checkpoints of the target block. Fig. 12A-12B are examples of target block division using checkpoint motion vectors. Referring to FIG. 12A, when the angle between the upper-left reference point motion vector MV0 and the upper-right reference point motion vector MV1 of the target block is an obtuse angle (more than 90 degrees), the target block is vertically divided. For example, the target block can be divided into two regions. Otherwise, the target block is not split vertically. Referring to FIG. 12B, when the angle between the upper left reference point motion vector MV0 and the lower left reference point motion vector MV2 is an obtuse angle, the target block is horizontally divided, for example, into two halves. Otherwise, the target block is not split horizontally. When the affine model type of the target block corresponds to 4 parameters, the motion vector MV2 of the lower left corner reference point can be obtained by inputting the reference coordinates of the lower left corner of the target block in (x, y) in
[154] На основе угла, образованного векторами движения контрольной точки, интер-предиктор 124 либо пропускает разделение целевого блока, либо разделяет целевой блок на две области (левую область и правую область в случае вертикального разделения и верхнюю область и нижнюю область в случае горизонтального разделения) или на 4 области. Когда скалярное произведение двух векторов меньше 0, угол является тупым. Соответственно интер-предиктор 124 может определить, является ли угол между векторами движения контрольной точки тупым углом, на основе скалярного произведения двух векторов.[154] Based on the angle formed by the motion vectors of the checkpoint, the
[155] Хотя в приведенном выше примере показано, что целевой блок разделяется, когда угол между векторами движения двух контрольных точек представляет собой тупой угол, блок может быть разделен, когда угол представляет собой острый угол (угол меньше 90 градусов). Кроме того, размер целевого блока может учитываться при разделении целевого блока. Например, когда длина по горизонтали превышает установленное пороговое значение, целевой блок разделяется по вертикали. Когда длина по вертикали превышает предварительно установленноепороговое значение, целевой блок разделяется по горизонтали. Чтобы разделить целевой блок, можно использовать как размер целевого блока, так и угол между векторами движения контрольной точки.[155] Although the above example shows that the target block is split when the angle between the motion vectors of the two control points is an obtuse angle, the block can be split when the angle is an acute angle (angle less than 90 degrees). In addition, the size of the target block may be taken into account when splitting the target block. For example, when the horizontal length exceeds the set threshold, the target block is split vertically. When the vertical length exceeds a preset threshold, the target block is split horizontally. Both the size of the target block and the angle between the motion vectors of the control point can be used to split the target block.
[156] Например, устройство кодирования видео может быть конфигурировано для определения необходимости разделения блока на основе угла между векторами движения контрольных точек только тогда, когда горизонтальная и/или вертикальная длина целевого блока больше предварительно установленного порогового значения. В качестве другого примера, когда длина по горизонтали превышает предварительно установленное пороговое значение, устройство кодирования видео может быть конфигурировано определять необходимость вертикального разделения блока на основе угла между векторами движения контрольной точки левого верхнего угла и правого верхнего угла целевого блока. Кроме того, когда длина по вертикали превышает заданное пороговое значение, устройство может быть конфигурировано определять необходимость разделения блока по вертикали на основе угла между векторами движения контрольной точки левого верхнего угла и левого нижнего угла целевого блока.[156] For example, the video encoder may be configured to determine whether to split a block based on the angle between the motion vectors of the control points only when the horizontal and/or vertical length of the target block is greater than a predetermined threshold. As another example, when the horizontal length exceeds a predetermined threshold, the video encoding device may be configured to determine whether to vertically split the block based on the angle between the top left and top right control point motion vectors of the target block. In addition, when the vertical length exceeds a predetermined threshold, the device can be configured to determine whether to split the block vertically based on the angle between the top left corner and bottom left control point motion vectors of the target block.
[157] Хотя было описано, что целевой блок разделяется на множество областей на основе векторов движения контрольных точек целевого блока, варианты осуществления не ограничиваются этим. Например, аффинные векторы движения верхнего левого субблока, верхнего правого субблока и нижнего левого субблока в целевом блоке могут использоваться вместо вектора MV0 движения контрольной точки левого верхнего угла, вектора MV1 движения контрольной точки верхнего правого угла и вектора MV2 движения контрольной точки нижнего левого угла.[157] Although it has been described that the target block is divided into a plurality of regions based on the motion vectors of the checkpoints of the target block, the embodiments are not limited to this. For example, the affine motion vectors of the top left sub-box, the top right sub-box, and the bottom left sub-box in the target box can be used instead of the top left anchor point motion vector MV0, the top right anchor point motion vector MV1, and the lower left corner anchor motion vector MV2.
[158] В то время как фиг. 12A-12B показано, что целевой блок разделяется пополам в горизонтальном или вертикальном направлении, варианты осуществления не ограничиваются этим. Например, целевой блок может разделяться на множество блоков в горизонтальном направлении и/или множество блоков в вертикальном направлении. Альтернативно, целевой блок может разделяться на субблоки, в которых было выполнено аффинное предсказание движения. В этом случае один субблок составляет одну область.[158] While FIG. 12A-12B show that the target block is split in half in the horizontal or vertical direction, the embodiments are not limited to this. For example, the target block may be divided into a plurality of blocks in the horizontal direction and/or a plurality of blocks in the vertical direction. Alternatively, the target block may be divided into sub-blocks in which affine motion prediction has been performed. In this case, one subblock constitutes one area.
[159] Каждая область разделения из целевого блока должна быть больше или равна размеру субблока, в котором было выполнено аффинное предсказание движения. Другими словами, каждая область должна состоять из одного или нескольких субблоков. Например, если размер субблока равен 4x4, размер области равен 2m x 2n (где m и n - целые числа, большие или равные 2).[159] Each split area from the target block must be greater than or equal to the size of the sub-block in which affine motion prediction was performed. In other words, each area must consist of one or more sub-blocks. For example, if the sub-block size is 4x4, the area size is 2m x 2n (where m and n are integers greater than or equal to 2).
[160] Когда целевой блок не разделяется, параметры компенсации освещенности могут быть получены согласно первому варианту осуществления, описанному выше. Далее, в случае, когда целевой блок разделяется, будет описан способ получения параметров компенсации освещенности.[160] When the target block is not divided, the illumination compensation parameters can be obtained according to the first embodiment described above. Next, in the case where the target block is divided, a method for obtaining illumination compensation parameters will be described.
2. Получение параметров компенсации освещенности и компенсация освещенности2. Get Light Compensation Parameters and Light Compensation
[161] Устройство кодирования видео конфигурировано для вычисления параметров компенсации освещенности, соответственно соответствующих множеству областей. Компенсация освещенности выполняется в единицах областей или субблоков в целевом блоке с использованием множества параметров компенсации освещенности. Устройство кодирования видео конфигурировано для определения для каждой из множества областей предварительно построенных отсчетов (опорных отсчетов) в текущем изображении и опорном изображении, которые должны использоваться для получения параметров компенсации. Опорные отсчеты в текущем изображении выбираются из предварительно построенных отсчетов, смежных с целевым блоком. Для области, отстоящей от левой границы целевого блока, в качестве опорных выбираются предварительно построенные отсчеты, смежные с левой стороной целевого блока. Для области, отстоящей от верхней границы целевого блока, в качестве опорных выбирают предварительно построенные отсчеты, смежные с верхней стороной целевого блока.[161] The video encoding device is configured to calculate illumination compensation parameters corresponding to the plurality of areas. Light compensation is performed in units of areas or sub-blocks in the target block using a plurality of light compensation parameters. The video encoding device is configured to determine, for each of the plurality of pre-built sample areas (reference samples) in the current picture and the reference picture, to be used to obtain the compensation parameters. Reference samples in the current image are selected from pre-built samples adjacent to the target block. For the area separated from the left border of the target block, pre-constructed samples adjacent to the left side of the target block are selected as reference ones. For the area separated from the upper boundary of the target block, pre-constructed readings adjacent to the upper side of the target block are selected as reference ones.
[162] Опорные отсчеты в опорном изображении могут быть выбраны с использованием векторов движения контрольных точек целевого блока или одного или более векторов движения, полученных из векторов движения контрольных точек. Далее будет подробно описан способ получения параметров компенсации освещенности и осуществления компенсации освещенности в соответствии с различными типами разделения целевого блока.[162] The reference samples in the reference image may be selected using the motion vectors of the control points of the target block or one or more motion vectors derived from the motion vectors of the control points. Next, a method for obtaining illumination compensation parameters and performing illumination compensation according to various types of separation of the target block will be described in detail.
[163] 2-1. Когда целевой блок разделяется на 4 области[163] 2-1. When the target block is split into 4 areas
[164] Во-первых, в качестве примера будет описан случай, когда целевой блок , имеющий длину по горизонтали и длину по вертикали, равные W и H, разделяется в горизонтальном и вертикальном направлениях и, таким образом, состоит из четырех областей. Устройство кодирования видео конфигурировано для определения предварительно построенных отсчетов (опорных отсчетов) в текущем изображении и опорном изображении, которые должны использоваться для получения параметров компенсации для каждой области.[164] First, a case will be described as an example where a target block having a horizontal length and a vertical length equal to W and H is divided in the horizontal and vertical directions, and thus consists of four regions. The video encoding device is configured to determine prebuilt samples (reference samples) in the current picture and the reference picture to be used to obtain compensation parameters for each area.
Фиг. 13 является примерной схемой, иллюстрирующей способ определения опорных отсчетов, которые должны использоваться для получения параметров компенсации. Для верхней левой области в целевом блоке устройство кодирования видео выбирает от T0 до Tw/2-1 рядом с верхней стороной верхней левой области и от L0 до LH/2-1 рядом с левой стороной верхней левой области в текущем изображении в качестве опорных отсчетов, которые будут использоваться для получения параметров компенсации. Затем опорная область, соответствующая верхней левой области опорного изображения, определяется с использованием репрезентативного вектора движения верхней левой области, а затем в качестве опорных отсчетов выбираются предварительно построенные отсчеты, смежные с верхней и левой сторонами опорной области. В частности, репрезентативный вектор движения верхней левой области может быть вектором MV0 движения контрольной точки верхнего левого угла целевого блока.Fig. 13 is an exemplary diagram illustrating a method for determining reference samples to be used to obtain compensation parameters. For the upper left region in the target block, the video encoder selects T0 to Tw/2-1 near the upper side of the upper left region and L0 to LH/2-1 near the left side of the upper left region in the current picture as reference samples, which will be used to obtain compensation parameters. Then, a reference area corresponding to the top left area of the reference image is determined using the representative motion vector of the top left area, and then the prebuilt samples adjacent to the top and left sides of the reference area are selected as the reference samples. In particular, the representative motion vector of the upper left region may be the motion vector MV0 of the reference point of the upper left corner of the target block.
[166] Для верхней правой области устройство кодирования видео конфигурировано выбирать от Tw/2 до Tw-1 рядом с верхней стороной верхней правой области в качестве по меньшей мере некоторых опорных отсчетов, которые должны использоваться для получения параметров компенсации. В частности, L0 - LH /2-1, смежные с левой стороной целевого блока, могут быть дополнительно выбраны в качестве опорных отсчетов. Поскольку нет предварительно построенных отсчетов, смежных с левой стороной верхней правой области, от L0 до LH/2-1 на левой стороне целевого блока можно заполнить в качестве опорных отсчетов с левой стороны верхней правой области. [166] For the upper right region, the video encoder is configured to select Tw/2 to Tw-1 near the upper side of the upper right region as at least some reference samples to be used to obtain the compensation parameters. In particular, L0 - LH /2-1 adjacent to the left side of the target block may be additionally selected as reference samples. Since there are no prebuilt samples adjacent to the left side of the upper right region, L0 to LH/2-1 on the left side of the target block can be filled in as reference samples on the left side of the upper right region.
[167] Затем устройство кодирования видео конфигурировано определять опорную область, соответствующую верхней правой области в опорном изображении, с использованием репрезентативного вектора движения верхней правой области, и выбирает предварительно построенные отсчеты, смежные с верхней стороной опорной области, в качестве опорных отсчетов, используемых для получения параметров компенсации. Когда дополнительно выбираются от L0 до LH/2-1, смежные с левой стороной целевого блока, устройство кодирования видео может дополнительно выбирать предварительно построенные отсчеты, смежные с левой стороной опорной области, в качестве опорных отсчетов. В частности, репрезентативный вектор движения верхней правой области может быть вектором MV1 движения контрольной точки правого верхнего угла целевого блока.[167] Then, the video encoding device is configured to determine the reference area corresponding to the top right area in the reference picture using the representative motion vector of the top right area, and selects prebuilt samples adjacent to the top side of the reference area as the reference samples used to obtain compensation parameters. When L0 to LH/2-1 adjacent to the left side of the target block are further selected, the video coding apparatus may further select prebuilt samples adjacent to the left side of the reference area as reference samples. Specifically, the upper right area representative motion vector may be the upper right corner reference point motion vector MV1 of the target block.
[168] Для нижней левой области устройство кодирования видео выбирает от LH/2 до LH-1 рядом с левой стороной нижней левой области в качестве по меньшей мере некоторых опорных отсчетов. Дополнительно могут быть выбраны от T0 до Tw/2-1, смежные с верхней стороной целевого блока. Затем устройство кодирования видео конфигурировано определять опорную область, соответствующую нижней левой области в опорном изображении, с использованием репрезентативного вектора движения нижней левой области, и выбирать предварительно построенные отсчеты, смежные с левой стороной опорной области в качестве опорных отсчетов. Когда дополнительно выбирается от T0 до Tw/2-1, смежные с верхней стороной целевого блока, устройство кодирования видео может быть конфигурировано дополнительно выбирать предварительно построенные отсчеты, смежные с верхней стороной опорной области. Здесь репрезентативный вектор движения верхней левой области может быть вектором MV1 движения контрольной точки нижнего левого угла целевого блока.[168] For the lower left region, the video encoder selects LH/2 to LH-1 near the left side of the lower left region as at least some reference samples. Additionally, T0 to Tw/2-1 adjacent to the top side of the target block can be selected. Then, the video encoding device is configured to determine the reference area corresponding to the bottom left area in the reference image using the representative motion vector of the bottom left area, and select prebuilt samples adjacent to the left side of the reference area as the reference samples. When T0 to Tw/2-1 adjacent to the top side of the target block is further selected, the video encoder may be configured to further select prebuilt samples adjacent to the top side of the reference area. Here, the representative motion vector of the upper left region may be the motion vector MV1 of the reference point of the lower left corner of the target block.
[169] Как только опорные отсчеты для каждой из верхней левой, верхней правой и нижней левой областей в целевом блоке определены, устройство кодирования видео конфигурировано получать параметр компенсации освещенности для каждой области путем соответствующего ввода опорных отсчетов, выбранных из опорного изображения, и опорные отсчеты, выбранные из текущего изображения, в x и y Уравнения 15.Параметр компенсации освещенности для нижней правой области может быть получен из параметров компенсации освещенности верхней левой, верхней правой и нижней левой областей. Например, параметр компенсации освещенности нижней правой области может быть установлен равным среднему значению параметров компенсации освещенности верхней правой и нижней левой областей.[169] Once the reference samples for each of the upper left, upper right, and lower left regions in the target block are determined, the video encoding device is configured to obtain the illumination compensation parameter for each region by appropriately inputting the reference samples selected from the reference image, and the reference samples selected from the current image, in x and y Equations 15. The illumination compensation parameter for the lower right region can be obtained from the illumination compensation parameters of the upper left, upper right, and lower left regions. For example, the light compensation parameter of the lower right region may be set to the average of the light compensation parameters of the upper right and lower left regions.
[170] Альтернативно, устройство кодирования видео может быть конфигурировано определять репрезентативный вектор движения для нижней правой области и получать параметр компенсации освещенности для нижней правой области с использованием репрезентативного вектора движения. Репрезентативный вектор движения для правой нижней области может быть вектором движения контрольной точки в правом нижнем углу целевого блока. Устройство кодирования видео может быть конфигурировано получать вектор движения контрольной точки нижнего правого угла целевого блока путем замены координаты (W-1, H-1) отсчета нижнего правого угла (отсчет нижнего правого угла нижней правой области) в целевом блоке для (x, y) в Уравнении 10 или 11. [170] Alternatively, the video encoding device may be configured to determine a representative motion vector for the lower right region and obtain a light compensation parameter for the lower right region using the representative motion vector. The representative motion vector for the lower right region may be the motion vector of the control point in the lower right corner of the target block. The video encoder may be configured to obtain the motion vector of the target block's lower right corner reference point by replacing the coordinate (W-1, H-1) of the lower right corner sample (lower right corner sample of the lower right region) in the target block for (x, y) in
[171] Нет заранее построенных отсчетов, смежных с правой нижней частью целевого блока. Следовательно, от Tw/2 до Tw-1 и от LH/2 до LH-1, смежные к верхней и левой сторонам целевого блока, используются в качестве опорных отсчетов для получения параметров компенсации. Затем определяется опорная область в опорном изображении на основе вектора движения контрольной точки нижнего правого угла целевого блока, и в качестве опорных отсчетов выбираются предварительно построенные отсчеты, смежные с верхней и левой сторонами опорной области. Устройство кодирования видео получает параметр компенсации освещенности для нижней правой области, используя Уравнение 15 с выбранными опорными отсчетами.[171] There are no pre-built samples adjacent to the bottom right of the target block. Therefore, Tw/2 to Tw-1 and LH/2 to LH-1 adjacent to the top and left sides of the target block are used as reference samples to obtain the compensation parameters. Then, a reference area in the reference image is determined based on the motion vector of the control point of the lower right corner of the target block, and pre-built samples adjacent to the top and left sides of the reference area are selected as reference samples. The video encoder obtains the illumination compensation parameter for the lower right region using Equation 15 with selected reference samples.
[172] В вышеприведенном примере для определения опорных отсчетов в опорном изображении для получения параметра компенсации используется репрезентативный вектор движения каждой области. В качестве примера используются векторы движения контрольной точки (т. е. параметры для аффинного предсказания движения). Однако варианты осуществления не ограничиваются этим. Репрезентативный вектор движения каждой области может быть вектором движения, полученным из векторов движения контрольных точек целевого блока.[172] In the above example, a representative motion vector of each area is used to determine the reference samples in the reference image to obtain the compensation parameter. Reference point motion vectors (i.e. parameters for affine motion prediction) are used as an example. However, the embodiments are not limited to this. The representative motion vector of each region may be a motion vector obtained from the motion vectors of the control points of the target block.
[173] В примерном варианте осуществления репрезентативный вектор движения каждой области может быть вектором движения предопределенном положении, полученным из векторов движения контрольных точек целевого блока. Например, аффинные векторы движения 4x4 верхнего левого, верхнего правого, нижнего левого и нижнего правого субблоков в целевом блоке, предварительно сгенерированном при аффинном предсказании движения, могут использоваться как репрезентативные векторы движения верхней левой, верхней правой, нижней левой и нижней правой области соответственно. В качестве другого примера, аффинный вектор движения в центральной точке каждой из верхней левой, верхней правой, нижней левой и нижней правой области может использоваться в качестве репрезентативного вектора движения каждой области. Аффинный вектор движения в центральной точке каждой области может быть сгенерирован путем замены (x, y) положением центра каждой области в Уравнении 10 или 11.[173] In an exemplary embodiment, the representative motion vector of each region may be a motion vector of a predetermined position obtained from motion vectors of control points of the target block. For example, the 4x4 affine motion vectors of the top left, top right, bottom left, and bottom right sub-blocks in a target block previously generated by affine motion prediction can be used as representative top left, top right, bottom left, and bottom right motion vectors, respectively. As another example, the affine motion vector at the center point of each of the top left, top right, bottom left, and bottom right regions may be used as a representative motion vector of each region. The affine motion vector at the center point of each region can be generated by replacing (x, y) with the position of the center of each region in
[174] В другом примерном варианте осуществления среднее значение аффинных векторов движения субблоков в каждой области может использоваться в качестве репрезентативного вектора движения соответствующей области. В качестве другого способа определения опорных отсчетов, которые должны использоваться в опорном изображении для получения параметров компенсации, вместо репрезентативного вектора движения каждой области могут использоваться аффинные векторы движения субблоков в каждой области. Другими словами, опорные блоки 4x4 в положениях, указанных аффинными векторами движения субблоков 4x4 в каждой области, могут быть определены в опорном изображении, а предварительно построенные пиксели, смежные с верхней и левой сторонами опорных блоков 4x4, могут быть выбраны в качестве опорных пикселей.[174] In another exemplary embodiment, the average of the affine motion vectors of the sub-blocks in each region may be used as a representative motion vector of the corresponding region. As another way of determining the reference samples to be used in the reference image to obtain the compensation parameters, instead of the representative motion vector of each area, the affine motion vectors of the sub-blocks in each area can be used. In other words, the 4x4 reference blocks at the positions indicated by the affine motion vectors of the 4x4 sub-blocks in each region may be defined in the reference image, and the prebuilt pixels adjacent to the top and left sides of the 4x4 reference blocks may be selected as reference pixels.
[175] Фиг. 14 является примерной схемой для описания способа выполнения компенсации освещенности с использованием параметров компенсации освещенности для четырех областей целевого блока. Каждая область включает в себя один или несколько субблоков, которые представляют собой единицы, в которых выполняется аффинное преобразование. В примере на фиг. 14, верхняя левая область TL, верхняя правая область TR, нижняя левая область BL и нижняя правая область BR целевого блока включают в себя по четыре субблока (субблок 4 × 4). Устройство кодирования видео конфигурировано для выполнения компенсации освещенности для предсказываемых отсчетов в соответствующей области (предсказываемые отсчеты, сгенерированные посредством аффинного предсказания движения) с использованием параметра компенсации освещенности каждой области. Каждый субблок может компенсироваться с использованием параметра компенсации освещенности области, которой принадлежит субблок. Например, четыре субблока, включенные в верхнюю левую область, компенсируются с использованием параметров компенсации освещенности (A0, b0) верхней левой области.[175] FIG. 14 is an exemplary diagram for describing a method for performing light compensation using light compensation parameters for four areas of the target block. Each area includes one or more sub-blocks, which are the units in which the affine transformation is performed. In the example in FIG. 14, the upper left region TL, upper right region TR, lower left region BL, and lower right region BR of the target block each each include four subblocks (4×4 subblock). The video encoding device is configured to perform illuminance compensation for predictive samples in the corresponding area (predictive samples generated by affine motion prediction) using the illuminance compensation parameter of each area. Each sub-block may be compensated using the illumination compensation parameter of the area to which the sub-block belongs. For example, four sub-blocks included in the upper left region are compensated using the illumination compensation parameters (A0, b0) of the upper left region.
[176] В некоторых других вариантах осуществления устройство кодирования видео может быть конфигурировано интерполировать параметры компенсации освещенности, которые соответственно соответствуют субблокам в каждой области, с использованием параметров компенсации освещенности четырех областей TL, TR, BL и BR, а затем выполнять компенсацию освещенности на каждом субблоке с использованием интерполированного параметра компенсации освещенности. Как описано выше, параметр компенсации освещенности каждой области может быть получен из репрезентативного вектора движения области. Однако репрезентативный вектор движения может не отражать движение всех субблоков в соответствующей области. [176] In some other embodiments, the video encoder may be configured to interpolate the illumination compensation parameters that respectively correspond to sub-blocks in each region using the illumination compensation parameters of the four regions TL, TR, BL, and BR, and then perform illumination compensation on each sub-block using an interpolated light compensation parameter. As described above, the illumination compensation parameter of each area can be obtained from the representative motion vector of the area. However, the representative motion vector may not reflect the motion of all sub-blocks in the respective area.
[177] Например, параметры компенсации освещенности соответствующих областей могут быть получены из векторов движения контрольных точек верхнего левого, верхнего правого, нижнего левого и нижнего правого угла целевого блока или аффинных векторов движения из 4x4 верхнего левого, верхнего правого, нижнего левого и нижнего правого субблоков целевого блока. В частности, движение верхнего левого, верхнего правого, нижнего левого и нижнего правого субблоков 4x4 может иметь большее влияние на получение параметров компенсации освещенности. Соответственно, устройство кодирования видео может быть конфигурировано для получения параметров компенсации освещенности соответствующих субблоков посредством интерполяции с использованием параметров компенсации освещенности соответствующих областей.[177] For example, the illumination compensation parameters of the respective areas can be obtained from the motion vectors of control points of the top left, top right, bottom left, and bottom right corners of the target block, or affine motion vectors from 4x4 top left, top right, bottom left, and bottom right subblocks. target block. In particular, the movement of the top left, top right, bottom left, and bottom right 4x4 subblocks may have a greater effect on obtaining the illumination compensation parameters. Accordingly, the video encoding device may be configured to obtain the illumination compensation parameters of the respective sub-blocks by interpolation using the illumination compensation parameters of the respective areas.
[178] Фиг. 15 представляет собой примерную схему, иллюстрирующей способ интерполяции параметров компенсации освещенности субблоков с использованием параметров компенсации освещенности соответствующих областей. (A0, b0) - (A3, b3) - параметры компенсации освещенности соответствующих областей, полученные из векторов движения контрольных точек левого верхнего угла, правого верхнего угла, левого нижнего угла и правого нижнего угла целевого блока соответственно, или из аффинных векторов движения 4x4 верхнего левого, верхнего правого, нижнего левого и нижнего правого субблоков целевого блока. Кроме того, предполагается, что (A0, b0) является параметром компенсации освещенности верхнего левого субблока 4x4 в верхней левой области целевого блока. Аналогично, предполагается, что от (A1, b1) до (A3, b3) являются параметрами компенсации освещенности верхнего правого субблока 4x4 в верхней правой области, параметром компенсации освещенности нижнего левого субблока 4x4 в нижней левой области и параметром компенсации освещенности нижнего правого субблока 4x4 в нижней правой области. Другими словами, предполагается, что (A0, b0) - (A3, b3) являются параметрами компенсации четырех угловых субблоков целевого блока.[178] FIG. 15 is an exemplary diagram illustrating a method for interpolating the illumination compensation parameters of sub-blocks using the illumination compensation parameters of the respective areas. (A0, b0) - (A3, b3) - illumination compensation parameters of the corresponding areas, obtained from the motion vectors of the control points of the upper left corner, upper right corner, lower left corner and lower right corner of the target block, respectively, or from the 4x4 affine motion vectors of the upper left, top right, bottom left, and bottom right subblocks of the target block. In addition, it is assumed that (A0, b0) is the illumination compensation parameter of the top left 4x4 subblock in the top left region of the target block. Similarly, it is assumed that (A1, b1) to (A3, b3) are the light compensation parameters of the top right 4x4 sub-box in the upper right region, the light compensation parameter of the lower left 4x4 sub-box in the lower left region, and the light compensation parameter of the lower right 4x4 sub-box in lower right area. In other words, it is assumed that (A0, b0) - (A3, b3) are the compensation parameters of the four corner sub-blocks of the target block.
[179] Устройство кодирования видео интерполирует параметры компенсации других субблоков, используя параметры компенсации четырех угловых субблоков. Может быть выполнена билинейная интерполяция с использованием четырех угловых субблоков или линейная интерполяция. Например, субблоки в первой строке целевого блока могут быть интерполированы с использованием (A0, b0) и (A2, b2). Субблоки в первом столбце целевого блока могут быть интерполированы с использованием (A0, b0) и (A2, b2). Таким образом получают параметры компенсации всех субблоков.[179] The video coding device interpolates the compensation parameters of other sub-blocks using the compensation parameters of the four corner sub-blocks. Bilinear interpolation using four corner subblocks or linear interpolation can be performed. For example, the sub-blocks in the first row of the target block may be interpolated using (A0, b0) and (A2, b2). The sub-blocks in the first column of the target block can be interpolated using (A0, b0) and (A2, b2). In this way, the compensation parameters of all sub-blocks are obtained.
[180] В частности, коэффициент фильтрации или весовой коэффициент, используемый для интерполяции, может быть установлен в соответствии с разницей между положениями угловых субблоков и положениями целевого субблока (или расстоянием между угловыми субблоками и целевым субблоком). Меньшей разнице в положении присваивается больший вес.[180] In particular, the filter factor or weight factor used for interpolation may be set according to the difference between the positions of the corner subblocks and the positions of the target subblock (or the distance between the corner subblocks and the target subblock). A smaller difference in position is given more weight.
[181] В качестве альтернативы, коэффициент фильтрации или вес, используемые для интерполяции, могут быть установлены в соответствии с разницей между векторами движения, используемыми для получения параметров компенсации угловых субблоков (векторы движения контрольной точки верхнего левого, верхнего правого, нижнего левого и нижнего правого углов, или аффинные векторы движения верхнего левого, верхнего правого, нижнего левого и нижнего правого субблоков 4x4 целевого блока) и аффинный вектор движения целевого субблока. Меньшей разнице векторов движения присваивается больший вес.[181] Alternatively, the filter coefficient or weight used for interpolation may be set in accordance with the difference between the motion vectors used to obtain the corner subblock compensation parameters (the motion vectors of the upper left, upper right, lower left, and lower right reference points). corners, or affine motion vectors of the top left, top right, bottom left, and bottom right 4x4 subblocks of the target block) and the affine motion vector of the target subblock. A smaller difference in motion vectors is assigned more weight.
[182] 2.2 Когда целевой блок разделяется на две области[182] 2.2 When the target block is divided into two areas
[183] Даже когда целевой блок разделяется на две области, параметр компенсации освещенности каждой области может быть получен таким же образом, как когда целевой блок разделяется на четыре области. Например, ссылаясь на фиг. 16, устройство кодирования видео выбирает в качестве опорных отсчетов в текущем изображении для получения параметра компенсации верхней области предварительно построенные отсчеты от T0 до Tw-1, смежные с верхней стороной верхней области, и предварительно построенные отсчеты от L0 до LH/2-1, смежные с левой стороной верхней области. Затем устройство кодирования видео конфигурировано определять опорную область в опорном изображении с использованием репрезентативного вектора движения верхней области и выбирать предварительно построенные отсчеты, смежные с верхней и левой сторонами опорной области, в качестве опорных отсчетов.[183] Even when the target block is divided into two areas, the illumination compensation parameter of each area can be obtained in the same manner as when the target block is divided into four areas. For example, referring to FIG. 16, the video encoding device selects, as reference samples in the current picture to obtain the upper region compensation parameter, the prebuilt samples T0 to Tw-1 adjacent to the upper side of the upper region, and the prebuilt samples L0 to LH/2-1 adjacent with the left side of the top area. Then, the video encoding apparatus is configured to determine the reference area in the reference image using the representative motion vector of the top area, and select prebuilt samples adjacent to the top and left sides of the reference area as the reference samples.
[184] Репрезентативный вектор движения верхней области может быть вектором движения контрольной точки левого верхнего угла целевого блока. В качестве альтернативы, это может быть вектор движения, полученный из векторов движения контрольных точек целевого блока. Например, может использоваться аффинный вектор движения верхнего левого субблока 4x4 в верхней области или может использоваться аффинный вектор движения, соответствующий центральной точке верхней области. В другом примере среднее значение аффинных векторов движения субблоков в каждой области может использоваться в качестве репрезентативного вектора движения соответствующей области.[184] The representative motion vector of the top region may be the motion vector of the control point of the upper left corner of the target block. Alternatively, it may be a motion vector derived from the motion vectors of the control points of the target block. For example, an affine motion vector of the top left 4x4 subblock in the top region may be used, or an affine motion vector corresponding to the center point of the top region may be used. In another example, the average of the affine motion vectors of the sub-blocks in each region may be used as a representative motion vector of the corresponding region.
[185] Устройство кодирования видео конфигурировано для выбора в качестве опорных отсчетов в текущем изображении для получения параметра компенсации нижней области предварительно построенных отсчетов T0 - Tw-1, смежных с верхней стороной целевого блока, и предварительно построенных отсчетов LH/2 - LH-1, смежных с левой стороной нижней области. Затем устройство кодирования видео конфигурировано определять опорную область в опорном изображении с использованием репрезентативного вектора движения нижней области и выбирать предварительно построенные отсчеты , смежные с верхней и левой сторонами опорной области, в качестве опорных отсчетов.[185] The video coding device is configured to select as reference samples in the current picture to obtain a lower area compensation parameter of T0 - Tw-1 pre-built samples adjacent to the top side of the target block and LH/2 - LH-1 pre-built samples, adjacent to the left side of the bottom area. Then, the video encoding apparatus is configured to determine the reference area in the reference image using the representative motion vector of the bottom area, and select prebuilt samples adjacent to the top and left sides of the reference area as the reference samples.
[186] Репрезентативный вектор движения нижней области может быть вектором движения контрольной точки левого нижнего угла целевого блока. В качестве альтернативы, это может быть вектор движения, полученный из векторов движения контрольных точек целевого блока. Например, может использоваться аффинный вектор движения нижнего левого субблока 4x4 в нижней области или может использоваться аффинный вектор движения, соответствующий центральной точке нижней области. В качестве другого примера, среднее значение аффинных векторов движения субблоков в нижней области может использоваться в качестве репрезентативного вектора движения нижней области.[186] The representative motion vector of the lower region may be the motion vector of the control point of the lower left corner of the target block. Alternatively, it may be a motion vector derived from the motion vectors of the control points of the target block. For example, an affine motion vector of the lower left 4x4 subblock in the lower region may be used, or an affine motion vector corresponding to the center point of the lower region may be used. As another example, the average of the affine motion vectors of the sub-blocks in the bottom region can be used as a representative motion vector of the bottom region.
[187] В вышеприведенном примере в качестве способа определения опорных отсчетов в опорном изображении, используемом для получения параметра компенсации, используется репрезентативный вектор движения каждой области. Однако аффинные векторы движения субблоков в каждой области могут использоваться вместо репрезентативного вектора движения каждой области. То есть для каждой области опорные блоки 4x4 в положениях, указанных аффинными векторами движения субблоков 4x4, могут быть определены в опорном изображении, а предварительно построенные пиксели, смежные с верхней и левой сторонами опорных блоков 4x4, могут быть выбраны в качестве опорных пикселей.[187] In the above example, a representative motion vector of each area is used as a method for determining reference samples in a reference image used to obtain a compensation parameter. However, the affine motion vectors of the sub-blocks in each region may be used instead of the representative motion vector of each region. That is, for each region, 4x4 reference blocks at the positions indicated by the affine motion vectors of the 4x4 sub-blocks can be determined in the reference image, and prebuilt pixels adjacent to the top and left sides of the 4x4 reference blocks can be selected as reference pixels.
[188] Для каждой области устройство кодирования видео конфигурировано вводить опорные отсчеты, выбранные в опорном изображении, и опорные отсчеты, выбранные в текущем изображении, в x и y в Уравнении 15, соответственно, для получения параметров компенсации для соответствующих областей. Кроме того, устройство кодирования видео выполняет компенсацию освещенности для отсчетов предсказания в соответствующей области (отсчеты предсказания, сгенерированные посредством аффинного предсказания движения), используя параметр компенсации освещенности каждой области. Каждый субблок может компенсироваться с использованием параметра компенсации освещенности области, которой принадлежит субблок.[188] For each region, the video encoding device is configured to input the reference samples selected in the reference picture and the reference samples selected in the current picture in x and y in Equation 15, respectively, to obtain compensation parameters for the respective regions. In addition, the video encoding apparatus performs illumination compensation for prediction samples in the corresponding area (prediction samples generated by affine motion prediction) using the illumination compensation parameter of each area. Each sub-block may be compensated using the illumination compensation parameter of the area to which the sub-block belongs.
[189] Альтернативно, устройство кодирования видео может быть конфигурировано для интерполяции параметров компенсации освещенности, которые соответствуют субблокам, с использованием параметров компенсации освещенности соответствующих областей, и для выполнения компенсации освещенности для каждого субблока с использованием интерполированных параметров, как в случае, когда целевой блок разделен на четыре области.[189] Alternatively, the video coding device may be configured to interpolate the illumination compensation parameters that correspond to sub-blocks using the illumination compensation parameters of the respective areas, and to perform illumination compensation for each sub-block using the interpolated parameters, as in the case where the target block is divided into four areas.
[190] Интерполяция может применяться, когда репрезентативный вектор движения каждой области, используемый для получения параметра компенсации, связан с конкретным положениемв каждой области. Например, векторы движения контрольной точки верхнего левого и нижнего левого углов целевого блока или аффинные векторы движения верхнего левого и нижнего левого субблоков 4x4 целевого блока могут использоваться в качестве репрезентативных векторов движения. В частности, параметры компенсации двух областей рассматриваются как параметры компенсации освещенности верхних левого и нижнего левого угловых субблоков TL и BL в целевом блоке, как показано на фиг. 17.[190] Interpolation may be applied when each region's representative motion vector, used to obtain the compensation parameter, is associated with a specific position in each region. For example, the control point motion vectors of the top left and bottom left corners of the target block or the affine motion vectors of the top left and bottom left 4x4 subblocks of the target block can be used as representative motion vectors. Specifically, the compensation parameters of the two regions are considered as the illumination compensation parameters of the upper left and lower left corner subblocks TL and BL in the target block, as shown in FIG. 17.
[191] Устройство кодирования видео может быть конфигурировано для интерполяции параметра компенсации целевого субблока путем применения весового коэффициента к параметрам компенсации (A0, b0) верхней области и параметрам компенсации (A2, b2) нижней области. В частности, вес может быть назначен согласно расстоянию между верхним левым и нижним левым угловыми субблоками в целевом блоке и целевом субблоке. В качестве альтернативы он может быть установленв соответствии с разницей между векторами движения, используемыми для получения параметров компенсации двух областей (векторы движения контрольной точки левого верхнего и левого нижнего углов целевого блока или аффинные векторы движения верхнего левого и нижнего левого субблока 4x4 целевого блока) и аффинный вектор движения целевого субблока. По мере уменьшения разницы между векторами движения вес увеличивается.[191] The video encoding device may be configured to interpolate the compensation parameter of the target sub-block by applying a weighting factor to the compensation parameters (A0, b0) of the upper region and the compensation parameters (A2, b2) of the lower region. In particular, the weight may be assigned according to the distance between the top left and bottom left corner subblocks in the target block and the target subblock. Alternatively, it can be set according to the difference between the motion vectors used to obtain the compensation parameters of the two regions (the motion vectors of the target block's upper left and lower left corner reference point, or the affine motion vectors of the target block's upper left and lower left 4x4 subblock) and the affine motion vector of the target subblock. As the difference between the motion vectors decreases, the weight increases.
[192] Даже когда целевой блок разделяется по вертикали на две области, может использоваться тот же метод, что и при горизонтальном разделении целевого блока на две области. В частности, репрезентативные векторы движения двух областей (левая область и правая область) могут быть, например, векторами движения контрольной точки левого верхнего угла и верхнего правого угла целевого блока или аффинными векторами движения векторы движения верхнего левого и верхнего правого субблоков 4x4 целевого блока. Альтернативно, аффинный вектор движения центральной точки каждой области или среднее значение аффинных векторов движения субблоков каждой области может использоваться в качестве репрезентативного вектора движения каждой области. Другие операции являются такими же, как и в случае горизонтального разделения, описанного выше, или могут быть явно выведены из него, поэтому их дальнейшее подробное описание опущено.[192] Even when the target block is vertically divided into two regions, the same method as when the target block is horizontally divided into two regions can be used. In particular, the representative motion vectors of the two regions (left region and right region) may be, for example, the motion vectors of the control point of the upper left corner and the upper right corner of the target block, or the affine motion vectors of the motion vectors of the upper left and upper right 4x4 subblocks of the target block. Alternatively, the affine motion vector of the center point of each region or the average of the affine motion vectors of the sub-blocks of each region may be used as a representative motion vector of each region. Other operations are the same as in the case of the horizontal split described above, or can be explicitly derived from it, so their further detailed description is omitted.
[193] 2.3 Когда целевой блок разбивается более чем на 4 субблока[193] 2.3 When the target block is split into more than 4 subblocks
[194] Как описано выше, целевой блок может быть разделен на 2m и 2n блоков (где m и n являются целыми числами, большими или равными 2) в горизонтальном и вертикальном направлениях. Например, целевой блок может быть разделен на субблоки, которые являются единицами, в которых выполняется аффинное предсказание движения. Этот случай проиллюстрирован на фиг. 18. Ссылаясь на фиг. 18, устройство кодирования видео выводит параметры компенсации освещенности для верхней левой области TL, верхней правой области TR, нижней левой области BL и нижней правой области BR целевого блока, используя способ, описанный в разделе 2.1.[194] As described above, the target block may be divided into 2m and 2n blocks (where m and n are integers greater than or equal to 2) in the horizontal and vertical directions. For example, the target block may be divided into sub-blocks, which are units in which affine motion prediction is performed. This case is illustrated in FIG. 18. Referring to FIG. 18, the video encoding device outputs the illumination compensation parameters for the upper left region TL, upper right region TR, lower left region BL, and lower right region BR of the target block using the method described in section 2.1.
[195] Для остальных областей, отличных от этих четырех областей, параметры компенсации освещенности остальных областей могут быть получены путем применения интерполяции, описанной в разделе 2.1. Альтернативно, для остальных областей параметры компенсации освещенности могут быть получены таким же образом, как и в случае верхней левой области TL, верхней правой области TR, нижней левой области BL и нижней правой области BR. Например, для области А устройство кодирования видео выбирает предварительно построенные отсчеты, расположенные на верхней стороне области А и смежные с целевым блоком, и предварительно построенные отсчеты, расположенные на левой стороне области А и смежные с целевым блоком, в качестве опорных пикселей в текущем изображении. Кроме того, опорные отсчеты в опорном изображении выбираются с использованием вектора движения контрольной точки в верхнем левом углу области A, аффинного вектора движения субблока 4x4, расположенного в верхнем левом углу области A, или аффинного вектора движения центральной точки области A. Параметр компенсации освещенности области A выводится с использованием выбранных опорных отсчетов.[195] For areas other than these four areas, the illumination compensation parameters of the remaining areas can be obtained by applying the interpolation described in section 2.1. Alternatively, for the remaining regions, the illumination compensation parameters can be obtained in the same manner as for the upper left region TL, upper right region TR, lower left region BL, and lower right region BR. For example, for area A, the video coding device selects prebuilt samples located on the top side of area A and adjacent to the target block, and prebuilt samples located on the left side of area A and adjacent to the target block, as reference pixels in the current image. In addition, reference samples in the reference image are selected using the motion vector of the control point in the upper left corner of area A, the affine motion vector of the 4x4 sub-block located in the upper left corner of area A, or the affine motion vector of the center point of area A. Light compensation parameter of area A derived using the selected reference readings.
[196] Описанная выше методика компенсации освещенности - это методика, использующая вектор движения, который может быть получен с помощью предварительно построенных отсчетов и аффинного предсказания движения. Соответственно, устройство декодирования видео может быть конфигурировано для выполнения компенсации освещенности таким же образом, как и устройство кодирования видео. Не требуется, чтобы устройство кодирования видео сигнализировало дополнительную информацию для процесса компенсации освещенности устройству декодирования видео.[196] The illumination compensation technique described above is a technique using a motion vector that can be obtained using pre-built samples and affine motion prediction. Accordingly, the video decoding apparatus may be configured to perform light compensation in the same manner as the video encoding apparatus. The video encoding device is not required to signal additional information for the illumination compensation process to the video decoding device.
[197] Описанная выше методика компенсации освещенности может использоваться вместе с другими инструментами кодирования для компенсации движения целевого блока в единицах субблоков в дополнение к аффинному предсказанию движения. Например, это может быть применено к двунаправленному оптическому потоку. Устройство кодирования видео и устройство декодирования видео могут быть конфигурированы для генерирования отсчетов предсказания для каждого субблока путем выполнения двунаправленного оптического потока на посубблочной основе для целевого блока и дополнительно могут быть конфигурированы для выполнения вышеупомянутой компенсации освещения на отсчетах предсказания в целевом блоке. Методика компенсации освещения, применяемая к двунаправленному оптическому потоку, такая же, как методика компенсации освещения, описанная выше, за исключением следующего.[197] The illumination compensation technique described above can be used in conjunction with other coding tools to compensate for motion of a target block in units of subblocks, in addition to affine motion prediction. For example, this can be applied to bidirectional optical flow. The video encoding device and the video decoding device may be configured to generate prediction samples for each sub-block by performing bi-directional optical flow on a sub-block basis for the target block, and may further be configured to perform the above illumination compensation on the prediction samples in the target block. The illumination compensation technique applied to the bidirectional optical flow is the same as the illumination compensation technique described above, except for the following.
[198] В методике компенсации освещенности, описанном выше, векторы движения контрольной точки целевого блока или аффинные векторы движения субблоков используются для разделения целевого блока и вычисления репрезентативного вектора движения каждой области, отделенной от целевого блока. Однако в случае двунаправленного оптического потока нет ни вектора движения контрольной точки, ни аффинного вектора движения. Соответственно, когда методика компенсации освещенности применяется к двунаправленному оптическому потоку, оптические потоки (vx, vy) субблоков используются вместо векторов движения контрольных точек или аффинных векторов движения субблоков.[198] In the illumination compensation technique described above, the motion vectors of the control point of the target block or the affine motion vectors of sub-blocks are used to separate the target block and calculate a representative motion vector of each area separated from the target block. However, in the case of bidirectional optical flow, there is neither a reference point motion vector nor an affine motion vector. Accordingly, when the illumination compensation technique is applied to a bidirectional optical flow, the optical flows (vx, vy) of the subblocks are used instead of the motion vectors of the control points or the affine motion vectors of the subblocks.
[199] V. Сигнализирование синтаксиса[199] V. Syntax Signaling
[200] Другой аспект настоящего раскрытия относится к способу сигнализирования синтаксисов высокого уровня для управления включением/выключением различных средств, описанных выше. Вышеописанное аффинное предсказание движения, корректировка на отсчетной основе отсчетов аффинного предсказания движения, адаптивное разрешение вектора движения и компенсация освещенности являются инструментами кодирования, используемыми для повышения эффективности кодирования видео. Однако для конкретного контента, такого как, например, экранный контент, вышеупомянутые различные инструменты кодирования могут не способствовать повышению производительности сжатия. Соответственно, сигнализирование на основе единицы кодирования о том, следует ли применять каждое средство кодирования, или решение на основе единицы кодирования о том, следует ли применять каждое средство кодирования, может скорее ухудшить эффективность кодирования или увеличить вычислительную сложность. Настоящее раскрытие раскрывает методику сигнализирования для эффективного управления вышеописанными инструментами кодирования.[200] Another aspect of the present disclosure relates to a method for signaling high-level syntaxes for controlling the on/off of the various means described above. The above-described affine motion prediction, affine motion prediction sample-based correction, adaptive motion vector resolution, and illumination compensation are coding tools used to improve video coding efficiency. However, for specific content such as, for example, screen content, the aforementioned various encoding tools may not improve compression performance. Accordingly, signaling based on a coding unit whether to apply each coding means or deciding based on a coding unit whether to use each coding means may rather degrade coding efficiency or increase computational complexity. The present disclosure discloses a signaling technique for efficiently managing the coding tools described above.
[201] Для кодирования последовательности изображений устройство кодирования видео конфигурировано кодировать первый синтаксический элемент уровня высокого уровня последовательности, указывающий, отключено ли множество инструментов кодирования. Первый элемент синтаксиса высокого уровня может быть закодирован в заголовке последовательности, то есть SPS. В частности, множество инструментов кодирования включает в себя аффинное предсказание движения, а также включает в себя, по меньшей мере, одно из следующего: поотсчетную корректировку для отсчетов аффинного предсказания движения, адаптивное разрешение вектора движения и компенсацию освещенности.[201] To encode a sequence of images, the video encoding device is configured to encode the first high-level syntax element of the sequence indicating whether a plurality of encoding tools are disabled. The first element of the high-level syntax may be encoded in the sequence header, i.e. SPS. In particular, the plurality of coding tools includes affine motion prediction and also includes at least one of sample-by-sample correction for affine motion prediction samples, adaptive motion vector resolution, and illumination compensation.
[202] Когда первый элемент синтаксиса высокого уровня указывает, что все множество инструментов кодирования отключено, никакие инструменты кодирования не применяются к кодированию последовательности. Другими словами, описанные выше инструменты кодирования не применяются ни к каким изображениям в последовательности. Когда первый элемент синтаксиса высокого уровня указывает, что множество инструментов кодирования не отключено, множество инструментов кодирования может использоваться для кодирования соответствующей последовательности. Например, аффинное предсказание движения может быть применено ко всем изображениям в последовательности. Соответственно, устройство кодирования видео может кодировать флаг единицы кодирования, указывающий, применялось ли кодирование с использованием аффинного предсказания движения к каждой из единиц кодирования, и передавать его в устройство декодирования видео. [202] When the first element of the high-level syntax indicates that the entire set of encoding tools is disabled, no encoding tools are applied to the encoding of the sequence. In other words, the encoding tools described above are not applied to any images in the sequence. When the first high-level syntax element indicates that the encoding tool set is not disabled, the encoding tool set may be used to encode the corresponding sequence. For example, affine motion prediction can be applied to all images in a sequence. Accordingly, the video encoding apparatus may encode a coding unit flag indicating whether or not affine motion prediction encoding has been applied to each of the coding units and transmit it to the video decoding apparatus.
[203] Когда флагом единицы кодирования указано, что аффинное предсказание движения было применено к соответствующей единице кодирования, устройство декодирования видео может быть конфигурировано выполнять вышеописанное аффинное предсказание движения на единице кодирования. Когда первый элемент синтаксиса высокого уровня указывает, что множество инструментов кодирования не отключено, устройство кодирования видео может быть конфигурировано кодировать один или более вторых элементов синтаксиса высокого уровня, указывающих, допустимо ли каждое средство кодирования по меньшей мере в части множества инструментов кодирования на уровне последовательности или на уровне изображения.[203] When the coding unit flag indicates that affine motion prediction has been applied to the corresponding coding unit, the video decoding apparatus may be configured to perform the above-described affine motion prediction on the coding unit. When the first high-level syntax element indicates that the coding tool set is not disabled, the video encoding device may be configured to encode one or more second high-level syntax elements indicating whether each coding tool is valid in at least a portion of the coding tool set at the sequence level, or at the image level.
[204] В некоторых вариантах осуществления для кодирования одного или более вторых синтаксических элементов высокого уровня устройство кодирования видео кодирует для каждого инструмента кодирования флаг уровня последовательности, указывающий, разрешен ли соответствующий инструмент кодирования в SPS. Когда флаг уровня последовательности указывает, что соответствующий инструмент кодирования не разрешен, соответствующий инструмент кодирования не используется для кодирования изображений, принадлежащих последовательности. Кроме того, устройство кодирования видео конфигурировано для кодирования флага уровня изображения, указывающего, разрешен ли соответствующий инструмент кодирования в заголовке изображения (т. е. PPS) каждого из изображений, принадлежащих последовательности, в зависимости от значения флага уровня последовательности. [204] In some embodiments, to encode one or more second high-level syntax elements, the video encoder encodes, for each encoding tool, a sequence level flag indicating whether the corresponding encoding tool is allowed in the SPS. When the sequence level flag indicates that the corresponding encoding tool is not allowed, the corresponding encoding tool is not used to encode images belonging to the sequence. In addition, the video encoding device is configured to encode a picture level flag indicating whether a corresponding encoding tool is allowed in the picture header (ie, PPS) of each of the pictures belonging to the sequence, depending on the value of the sequence level flag.
[205] Например, когда флаг уровня последовательности указывает, что соответствующий инструмент кодирования разрешен на уровне последовательности, кодируется флаг уровня изображения для указания, разрешен ли соответствующий инструмент кодирования на уровне изображения. Когда первый элемент синтаксиса высокого уровня указывает, что все множество инструментов кодирования отключено, или флаг уровня последовательности указывает, что соответствующее средство кодирования не разрешено на уровне последовательности, флаг уровня изображения отдельно не кодируется. В частности, устройство декодирования видео выполнено с возможностью автоматического установления флага уровня изображения на значение, указывающее, что соответствующий инструмент кодирования не разрешен.[205] For example, when the sequence level flag indicates that the corresponding encoding tool is allowed at the sequence level, an image level flag is encoded to indicate whether the corresponding encoding tool is allowed at the image level. When the first high-level syntax element indicates that the entire set of encoding tools is disabled, or the sequence level flag indicates that the corresponding encoding facility is not allowed at the sequence level, the image level flag is not separately encoded. In particular, the video decoding apparatus is configured to automatically set the picture level flag to a value indicating that the corresponding encoding tool is not allowed.
[026] Флаги уровня изображения для средств кодирования, отличных от аффинного предсказания движения, могут передаваться в зависимости от флага уровня изображения для аффинного предсказания движения. Когда флаг уровня изображения для аффинного предсказания движения указывает, что аффинное предсказания движения не разрешено на уровне изображения, флаги уровня изображения для других инструментов кодирования не кодируются, и другие инструменты кодирования не разрешены на уровне изображения. Когда флаги уровня изображения для других инструментов кодирования не включены в битовый поток, устройство декодирования видео конфигурировано устанавливать каждый флаг уровня изображения в значение, указывающее, что соответствующие инструменты кодирования не разрешены на уровне изображения.[026] Image level flags for coding means other than affine motion prediction may be transmitted depending on the image level flag for affine motion prediction. When the image level flag for affine motion prediction indicates that affine motion prediction is not enabled at the image level, the image level flags for other encoding tools are not encoded, and other encoding tools are not allowed at the image level. When the image level flags for other encoding tools are not included in the bitstream, the video decoding apparatus is configured to set each image level flag to a value indicating that the corresponding encoding tools are not allowed in the image level.
[207] Устройство декодирования видео может быть конфигурировано устанавливать на уровне изображения, разрешать ли соответствующее средство кодирования, из флага уровня изображения, сигнализируемого из устройства кодирования видео, или флага уровня изображения, значение которого устанавливается автоматически. Второй синтаксический элемент высокого уровня для аффинного предсказания движения может быть опущен. В частности, то, разрешено ли аффинное предсказание движения на уровне последовательности, контролируется первым синтаксисом высокого уровня. Устройство декодирования видео конфигурировано декодировать первый синтаксис высокого уровня от устройства кодирования видео, а затем определять, разрешать ли аффинное предсказание движения на уровне последовательности.[207] The video decoder may be configured to set at the image level whether to enable the corresponding encoding means from the image level flag signaled from the video encoding device or the image level flag whose value is set automatically. The second high-level syntax element for affine motion prediction may be omitted. In particular, whether affine motion prediction is enabled at the sequence level is controlled by the first high-level syntax. The video decoder is configured to decode the first high-level syntax from the video encoder and then determine whether to enable sequence-level affine motion prediction.
[208] В соответствии с вышеописанной структурой синтаксиса устройство кодирования видео может быть конфигурировано для адаптивного определения того, разрешать ли использование инструментов кодирования на уровне последовательности и уровне изображения. Кроме того, устройство декодирования видео может быть выполнено с возможностью адаптивного определения того, разрешать ли инструменты кодирования на уровне последовательности и уровне изображения путем декодирования синтаксисов, переданных от устройства кодирования видео.[208] In accordance with the syntax structure described above, the video encoding device may be configured to adaptively determine whether to allow the use of coding tools at the sequence level and the picture level. In addition, the video decoder may be configured to adaptively determine whether to enable sequence level and picture level encoding tools by decoding the syntaxes transmitted from the video encoding device.
[209] В некоторых других вариантах осуществления для кодирования одного или более вторых синтаксических элементов высокого уровня флаг уровня изображения вышеописанного варианта осуществления может быть заменен флагом уровня слайса. Другими словами, когда флаг уровня последовательности указывает, что соответствующее средство кодирования разрешено на уровне последовательности, устройство кодирования видео кодирует в заголовке слайса флаг уровня слайса для указания, разрешено ли соответствующее средство кодирования на уровне слайса. Когда флаг уровня последовательности указывает, что соответствующий инструмент кодирования не разрешен, флаг уровня слайса не кодируется. Устройство кодирования видео может быть выполнено с возможностью адаптивного определения того, разрешать ли использовать инструменты кодирования на уровне последовательности и уровне слайса. Устройство декодирования видео может быть конфигурировано для определения того, разрешить ли использование каждого инструмента на уровне слайса с помощью флага уровня слайса.[209] In some other embodiments, to encode one or more second high-level syntax elements, the image level flag of the above embodiment may be replaced with a slice level flag. In other words, when the sequence level flag indicates that the corresponding encoder is allowed at the sequence level, the video encoder encodes in the slice header a slice level flag to indicate whether the corresponding encoder is allowed at the slice level. When the sequence level flag indicates that the corresponding encoding tool is not allowed, the slice level flag is not encoded. The video encoding device may be configured to adaptively determine whether to allow the use of encoding tools at the sequence level and the slice level. The video decoder may be configured to determine whether to allow the use of each tool at the slice level with the slice level flag.
[210] В некоторых других вариантах осуществления для кодирования одного или более вторых элементов синтаксиса высокого уровня флаг уровня последовательности может быть опущен. Флаг уровня изображения или флаг уровня слайса сигнализируется в зависимости от первого элемента синтаксиса высокого уровня. Когда первый элемент синтаксиса высокого уровня указывает, что разрешено множество инструментов кодирования , флаг уровня изображения или флаг уровня слайса кодируется в заголовке изображения или заголовке слайса.[210] In some other embodiments, the sequence level flag may be omitted to encode one or more second high-level syntax elements. A picture level flag or a slice level flag is signaled depending on the first element of the high level syntax. When the first element of the high-level syntax indicates that multiple encoding tools are allowed, an image level flag or a slice level flag is encoded in the image header or slice header.
[211] Следует понимать, что описанные выше примерные варианты осуществления могут быть реализованы множеством различных способов. Функции, описанные в одном или нескольких примерах, могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Следует понимать, что описанные здесь функциональные компоненты были помечены как «модуль», чтобы еще больше подчеркнуть их независимость от реализации.[211] It should be understood that the exemplary embodiments described above may be implemented in many different ways. The functions described in one or more examples may be implemented in hardware, software, firmware, or any combination thereof. It should be understood that the functional components described here have been labeled "module" to further emphasize their implementation independence.
[212] Различные способы или функции, приведенные в настоящем описании, могут быть реализованы как инструкции, хранящиеся на энергонезависимом носителе информации, которые могут быть прочитаны и выполнены одним или более процессорами. Невременный носитель записи включает в себя, например, все типы записывающих устройств, в которых данные хранятся в форме, читаемой компьютерной системой. Например, невременные носители записи включают в себя носители, такие как стираемая программируемая постоянная память (EPROM), флэш-накопители, оптические приводы, магнитные жесткие диски и твердотельные накопители (SSD).[212] Various methods or functions described herein may be implemented as instructions stored on a non-volatile storage medium that can be read and executed by one or more processors. A non-transitory recording medium includes, for example, all types of recording devices in which data is stored in a form readable by a computer system. For example, non-transitory recording media includes media such as erasable programmable read-only memory (EPROM), flash drives, optical drives, magnetic hard disks, and solid state drives (SSDs).
[213] Хотя примерные варианты осуществления были описаны в иллюстративных целях, специалисты в данной области техники поймут, что возможны различные модификации и изменения, не выходящие за рамки идеи и объема вариантов осуществления. Примерные варианты осуществления были описаны для краткости и ясности. Соответственно, рядовой специалист поймет, что объем вариантов осуществления не ограничивается вариантами осуществления, явно описанными выше, но включает формулу изобретения и ее эквиваленты.[213] While the exemplary embodiments have been described for illustrative purposes, those skilled in the art will appreciate that various modifications and changes are possible without departing from the spirit and scope of the embodiments. Exemplary embodiments have been described for brevity and clarity. Accordingly, one of ordinary skill in the art will appreciate that the scope of the embodiments is not limited to the embodiments expressly described above, but includes the claims and their equivalents.
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУCROSS-REFERENCE TO RELATED APPLICATION
В данной заявке испрашивается приоритет корейских патентных заявок №№ 10-2019-0070633, 10-2019-0082010 и 10-2020-0072332, поданных соответственно 14 июня 2019 г., 8 июля 2019 г. и 15 июня 2020 г., все содержание из которых включены в настоящий документ посредством ссылки.This application claims priority of Korean Patent Applications Nos. 10-2019-0070633, 10-2019-0082010 and 10-2020-0072332, filed respectively on June 14, 2019, July 8, 2019, and June 15, 2020, all contents of which are incorporated herein by reference.
Claims (47)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0070633 | 2019-06-14 | ||
KR10-2019-0082010 | 2019-07-08 | ||
KR10-2020-0072332 | 2020-06-15 |
Related Child Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022121745A Division RU2806279C2 (en) | 2019-06-14 | 2020-06-15 | Method and device for encoding and decoding video using inter-prediction |
RU2022121747A Division RU2802844C2 (en) | 2019-06-14 | 2020-06-15 | Method and device for encoding and decoding video using inter-prediction |
RU2022121755A Division RU2801342C2 (en) | 2019-06-14 | 2020-06-15 | Method and device for encoding and decoding video using inter-prediction |
RU2022121749A Division RU2806280C2 (en) | 2019-06-14 | 2020-06-15 | Method and device for encoding and decoding video using inter-prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2778099C1 true RU2778099C1 (en) | 2022-08-15 |
RU2778099C9 RU2778099C9 (en) | 2022-09-12 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017065525A2 (en) * | 2015-10-13 | 2017-04-20 | 삼성전자 주식회사 | Method and device for encoding or decoding image |
US20170214932A1 (en) * | 2014-07-18 | 2017-07-27 | Mediatek Singapore Pte. Ltd | Method of Motion Vector Derivation for Video Coding |
WO2017200771A1 (en) * | 2016-05-16 | 2017-11-23 | Qualcomm Incorporated | Affine motion prediction for video coding |
US20180270500A1 (en) * | 2017-03-14 | 2018-09-20 | Qualcomm Incorporated | Affine motion information derivation |
US20190110075A1 (en) * | 2017-10-09 | 2019-04-11 | Google Llc | Video coding using parameterized motion model |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170214932A1 (en) * | 2014-07-18 | 2017-07-27 | Mediatek Singapore Pte. Ltd | Method of Motion Vector Derivation for Video Coding |
WO2017065525A2 (en) * | 2015-10-13 | 2017-04-20 | 삼성전자 주식회사 | Method and device for encoding or decoding image |
WO2017200771A1 (en) * | 2016-05-16 | 2017-11-23 | Qualcomm Incorporated | Affine motion prediction for video coding |
US20180270500A1 (en) * | 2017-03-14 | 2018-09-20 | Qualcomm Incorporated | Affine motion information derivation |
US20190110075A1 (en) * | 2017-10-09 | 2019-04-11 | Google Llc | Video coding using parameterized motion model |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114128285B (en) | Method and apparatus for encoding and decoding video using inter prediction | |
US11432002B2 (en) | Method and apparatus for encoding and decoding video using inter-prediction | |
KR20210040787A (en) | Method and Apparatus for Encoding and Decoding Video by Using Inter Prediction | |
RU2778099C1 (en) | Method and device for video encoding and decoding, using inter-prediction | |
RU2778099C9 (en) | Method and device for video encoding and decoding, using inter-prediction | |
US20220385940A1 (en) | Method and apparatus for encoding and decoding video using inter-prediction | |
RU2801342C2 (en) | Method and device for encoding and decoding video using inter-prediction | |
RU2806280C2 (en) | Method and device for encoding and decoding video using inter-prediction | |
RU2802844C2 (en) | Method and device for encoding and decoding video using inter-prediction | |
RU2806279C2 (en) | Method and device for encoding and decoding video using inter-prediction | |
US11785247B2 (en) | Method and apparatus for encoding and decoding video using inter-prediction | |
CN116097648A (en) | Method for predicting quantization parameter used in video encoding/decoding device | |
CN116113973A (en) | Video encoding and decoding using deep learning based inter prediction |