RU2820339C2 - Hmvc for affine mode and motion vector prediction mode sbtmvp - Google Patents

Hmvc for affine mode and motion vector prediction mode sbtmvp Download PDF

Info

Publication number
RU2820339C2
RU2820339C2 RU2021138280A RU2021138280A RU2820339C2 RU 2820339 C2 RU2820339 C2 RU 2820339C2 RU 2021138280 A RU2021138280 A RU 2021138280A RU 2021138280 A RU2021138280 A RU 2021138280A RU 2820339 C2 RU2820339 C2 RU 2820339C2
Authority
RU
Russia
Prior art keywords
information data
motion information
blocks
block
motion
Prior art date
Application number
RU2021138280A
Other languages
Russian (ru)
Other versions
RU2021138280A (en
Inventor
Антуан РОБЕРТ
Фабрис ЛЕЛЕАННЕК
Танги ПУАРЬЕ
Франк ГАЛПИН
Original Assignee
Интердиджитал Вс Холдингз Франс, Сас
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интердиджитал Вс Холдингз Франс, Сас filed Critical Интердиджитал Вс Холдингз Франс, Сас
Publication of RU2021138280A publication Critical patent/RU2021138280A/en
Application granted granted Critical
Publication of RU2820339C2 publication Critical patent/RU2820339C2/en

Links

Abstract

FIELD: physics.
SUBSTANCE: invention relates to encoding and decoding a video image based on motion vectors determined from previously encoded or decoded blocks. Result is achieved by the fact that the device for encoding or decoding blocks of the current image encodes sub-blocks of the first block of the current image. Sub-blocks are encoded or decoded based on motion vectors determined in accordance with motion information data associated with the first block. At the second stage, the set of second movement information data is determined depending on the first movement information data. Said second motion information data is added to a motion information data list which is used to determine motion information data for subsequent blocks of the current image for encoding or decoding.
EFFECT: high efficiency of compressing video image.
22 cl, 8 dwg

Description

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

По меньшей мере один из настоящих вариантов осуществления в целом относится к способу или устройству для кодирования или декодирования видео, и, более конкретно, к способу или устройству для кодирования и декодирования блоков видеоизображения на основании векторов движения, определенных из ранее кодированных или декодированных блоков.At least one of the present embodiments generally relates to a method or apparatus for encoding or decoding video, and more particularly to a method or apparatus for encoding and decoding video blocks based on motion vectors determined from previously encoded or decoded blocks.

Предшествующий уровень техники настоящего изобретенияBACKGROUND OF THE INVENTION

Для достижения высокой эффективности сжатия схемы кодирования изображений и видео обычно используют предсказание, включая предсказание вектора движения, и преобразование, чтобы использовать пространственную и временную избыточность в видеосодержимом. В целом, внутрикадровое или межкадровое предсказание используется для применения внутри- или межкадровой корреляции, а затем разности между исходным изображением и предсказанным изображением, часто называемые ошибками предсказания или остатками предсказания, подвергаются преобразованию, квантованию и энтропийному кодированию. Для восстановления видео сжатые данные декодируются посредством обратных процессов, соответствующих энтропийному кодированию, квантованию, преобразованию и предсказанию.To achieve high compression efficiency, image and video coding schemes typically use prediction, including motion vector prediction, and transform to exploit spatial and temporal redundancy in video content. In general, intra- or inter-frame prediction is used to apply intra- or inter-frame correlation, and then the differences between the original image and the predicted image, often called prediction errors or prediction residuals, are transformed, quantized, and entropy encoded. To reconstruct video, the compressed data is decoded through inverse processes corresponding to entropy encoding, quantization, transform, and prediction.

Недавнее дополнение к технологии высокого сжатия предусматривает использование модели движения, основанной на аффинном моделировании и/или на предикторах временного вектора движения на основании подблоков (SbTMVP). В частности, эти модели используются для компенсации движения при кодировании и декодировании видеоизображений. В общем, аффинное моделирование - это модель, использующая по меньшей мере два параметра, таких как, например, два вектора движения контрольной точки (CPMV), представляющих движение в соответствующих углах блока изображения, что позволяет получить поле движения для всего блока изображения для моделирования, например, поворота и гомотетии (масштабирования). Поле движения обычно дискретизируется в набор векторов движения, связанных с подблоками блока.A recent addition to high compression technology involves the use of a motion model based on affine modeling and/or subblock-based temporal motion vector predictors (SbTMVPs). In particular, these models are used to compensate for motion during encoding and decoding of video images. In general, affine modeling is a model that uses at least two parameters, such as, for example, two control point motion vectors (CPMVs), representing motion at the corresponding corners of an image block, which allows the motion field for the entire image block to be obtained for modeling. for example, rotation and homothety (scaling). The motion field is usually discretized into a set of motion vectors associated with the subblocks of the block.

Последние разработки в этой области также предусматривают использование метода предсказания вектора движения на основании истории (HMVP), где кандидат HMVP определяется как информация о движении ранее закодированного блока. Во время процесса кодирования/декодирования ведется таблица с несколькими кандидатами HMVP. При появлении блока, подвергнутого межкадровому кодированию не на основании подблоков, соответствующая информация о движении добавляется к последней записи таблицы как новый кандидат HMVP. Эти кандидаты могут быть использованы для кодирования/декодирования последующих блоков, в частности, соседних блоков.Recent developments in this area also involve the use of history-based motion vector prediction (HMVP) technique, where a candidate HMVP is defined as the motion information of a previously encoded block. During the encoding/decoding process, a table with several HMVP candidates is maintained. When a non-subblock inter-coded block occurs, the corresponding motion information is added to the last table entry as a new HMVP candidate. These candidates can be used for encoding/decoding subsequent blocks, in particular neighboring blocks.

Однако, поскольку в список HMVP попадают только блоки, подвергнутые межкадровому кодированию не основании подблоков, когда блок для кодирования или декодирования окружен блоками, подвергнутыми межкадровому кодированию на основании подблоков, этот блок не может воспользоваться векторами движения ранее закодированных/декодированных блоков. У этой задачи еще нет решения.However, since only blocks intercoded on a non-subblock basis are included in the HMVP list, when a block to encode or decode is surrounded by blocks intercoded on a subblock basis, the block cannot take advantage of the motion vectors of previously encoded/decoded blocks. There is no solution to this problem yet.

Краткое раскрытие настоящего изобретенияBrief Disclosure of the Present Invention

Недостатки и проблемы предшествующего уровня техники устраняются общими аспектами, описанными в настоящем документе, которые направлены на хранение информации о движении, связанной с блоками, подвергнутыми межкадровому кодированию на основании подблоков, для кодирования и декодирования последующих блоков. Согласно первому аспекту предлагается способ. Способ предусматривает стадии декодирования подблоков первого блока текущего изображения. Подблоки декодируют на основании векторов движения, определенных в соответствии с первыми данными информации о движении, связанными с первым блоком. Способ также предусматривает определение набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении; и добавление этого набора вторых данных информации о движении в список данных информации о движении. Элементы указанного списка могут быть использованы для определения данных информации о движении для второго блока текущего изображения.The shortcomings and problems of the prior art are addressed by the general aspects described herein that address the storage of motion information associated with blocks subjected to inter-frame coding on a sub-block basis for encoding and decoding of subsequent blocks. According to a first aspect, a method is provided. The method involves the stages of decoding subblocks of the first block of the current image. The subblocks are decoded based on motion vectors determined in accordance with the first motion information data associated with the first block. The method also includes determining a set of second motion information data depending on said first motion information data; and adding this set of second motion information data to the motion information data list. Elements of said list may be used to determine motion information data for a second block of the current image.

Согласно другому аспекту предлагается второй способ. Способ предусматривает стадии кодирования подблоков первого блока текущего изображения. Подблоки кодируют на основании векторов движения, определенных в соответствии с первыми данными информации о движении, связанными с первым блоком. Способ также предусматривает определение набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении; и добавление этого набора вторых данных информации о движении в список данных информации о движении. Элементы указанного списка могут быть использованы для определения данных информации о движении для второго блока текущего изображения.According to another aspect, a second method is proposed. The method involves the stages of encoding subblocks of the first block of the current image. The sub-blocks are encoded based on motion vectors determined in accordance with the first motion information data associated with the first block. The method also includes determining a set of second motion information data depending on said first motion information data; and adding this set of second motion information data to the motion information data list. Elements of said list may be used to determine motion information data for a second block of the current image.

Согласно другому аспекту предлагается устройство. Устройство содержит процессор. Процессор может быть выполнен с возможностью кодирования блоков текущего изображения видео или декодирование битового потока путем выполнения одного из вышеупомянутых способов.According to another aspect, an apparatus is provided. The device contains a processor. The processor may be configured to encode blocks of the current video image or decode the bitstream by performing one of the above methods.

Согласно другому общему аспекту по меньшей мере одного варианта осуществления предлагается устройство, содержащее устройство согласно любому из вариантов осуществления декодирования; и по меньшей мере одно из (i) антенны, выполненной с возможностью приема сигнала, причем сигнал содержит декодированные блоки изображения, (ii) ограничителя полосы, выполненного с возможностью ограничения принятого сигнала полосой частот, содержащей декодированные блоки изображения, и (iii) дисплея, выполненного с возможностью отображения выходного сигнала, представляющего декодированные блоки изображения.According to another general aspect of at least one embodiment, an apparatus is provided, comprising an apparatus according to any one of the decoding embodiments; and at least one of (i) an antenna configured to receive a signal, the signal comprising decoded image blocks, (ii) a band limiter configured to limit the received signal to a frequency band containing the decoded image blocks, and (iii) a display, configured to display an output signal representing the decoded image blocks.

Согласно другому общему аспекту по меньшей мере одного варианта осуществления предлагается постоянный машиночитаемый носитель данных, содержащий информационное содержимое, сгенерированное в соответствии с любым из описанных вариантов осуществления или вариантов кодирования.According to another general aspect of at least one embodiment, a non-transitory computer-readable storage medium is provided containing information content generated in accordance with any of the described embodiments or encoding options.

Согласно другому общему аспекту по меньшей мере одного варианта осуществления предлагается сигнал, содержащий видеоданные, сгенерированные в соответствии с любым из описанных вариантов осуществления или вариантов кодирования.According to another general aspect of at least one embodiment, a signal is provided comprising video data generated in accordance with any of the described embodiments or encoding options.

Согласно другому общему аспекту по меньшей мере одного варианта осуществления битовый поток форматируют так, чтобы он содержал информационное содержимое, сгенерированное в соответствии с любым из описанных вариантов осуществления или вариантов кодирования.In another general aspect of at least one embodiment, the bitstream is formatted to contain information content generated in accordance with any of the described embodiments or encoding options.

Согласно другому общему аспекту по меньшей мере одного варианта осуществления предлагается компьютерный программный продукт, содержащий инструкции, которые, при исполнении программы компьютером, обеспечивают выполнение компьютером любого из описанных вариантов осуществления или вариантов декодирования.According to another general aspect of at least one embodiment, a computer program product is provided containing instructions that, when executed by a computer, cause the computer to perform any of the described embodiments or decoding options.

Эти и другие аспекты, признаки и преимущества общих аспектов станут очевидными из следующего подробного описания иллюстративных вариантов осуществления, которое следует читать в связи с прилагаемыми чертежами.These and other aspects, features and advantages of the general aspects will become apparent from the following detailed description of the illustrative embodiments, which should be read in connection with the accompanying drawings.

Краткое описание фигурBrief description of the figures

На фиг. 1 изображен кодер;In fig. 1 shows an encoder;

на фиг. 2 изображена принципиальная схема видеодекодера;in fig. 2 shows a schematic diagram of a video decoder;

на фиг. 3 изображена принципиальная схема примера системы, в которой реализованы различные аспекты и варианты осуществления;in fig. 3 is a schematic diagram of an example system in which various aspects and embodiments are implemented;

на фиг. 4 изображены структуры дерева кодирования и единиц дерева кодирования (CTU), используемые для представления сжатых изображений, например, в соответствии со стандартом сжатия видео HEVC;in fig. 4 illustrates coding tree and coding tree unit (CTU) structures used to represent compressed images, for example, in accordance with the HEVC video compression standard;

на фиг. 5А и 5В изображено поле вектора аффинного движения на основании подблоков 4×4 для двух и трех контрольных точек соответственно;in fig. 5A and 5B depict the affine motion vector field based on 4x4 subblocks for two and three control points, respectively;

на фиг. 7 схематически изображен способ 70 кодирования/декодирования блоков текущего изображения.in fig. 7 is a schematic diagram of a method 70 for encoding/decoding blocks of a current image.

Подробное раскрытие настоящего изобретенияDetailed Disclosure of the Present Invention

Общие аспекты, описанные в настоящем документе, относятся к области сжатия видео. Эти аспекты направлены на повышение эффективности сжатия по сравнению с существующими системами сжатия видео.The general aspects described in this document relate to the field of video compression. These aspects aim to improve compression efficiency compared to existing video compression systems.

В настоящем изобретении описываются различные аспекты, в том числе средства, признаки, варианты осуществления, модели, подходы и т. д. Многие из этих аспектов описаны подробно и, по меньшей мере, чтобы показать отдельные характеристики, часто описаны таким образом, что кажутся ограниченными. Однако это сделано для ясности описания и не ограничивает применение или сущность этих аспектов. Фактически, все из различных аспектов могут быть скомбинированы и взаимозаменены для предоставления дополнительных аспектов. Более того, аспекты могут быть скомбинированы и взаимозаменены с аспектами, описанными в ранее поданных документах.The present invention describes various aspects, including means, features, embodiments, models, approaches, etc. Many of these aspects are described in detail and, at least to show certain characteristics, are often described in such a way as to appear limited . However, this is for clarity of description and does not limit the application or substance of these aspects. In fact, all of the different aspects can be combined and interchanged to provide additional aspects. Moreover, aspects may be combined and interchanged with aspects described in previously filed documents.

Аспекты, описанные и предложенные в настоящей заявке, могут быть реализованы во множестве различных форм. На фиг. 1, 2 и 3 ниже представлены некоторые варианты осуществления, однако возможны и другие варианты осуществления, и описание фиг. 1, 2 и 3 не ограничивает объем вариантов реализации. По меньшей мере один из аспектов в целом относится к кодированию и декодированию видео, и по меньшей мере один другой аспект в целом относится к передаче сгенерированного или кодированного битового потока. Эти и другие аспекты могут быть реализованы как способ, устройство, машиночитаемый носитель данных, на котором хранятся инструкции для кодирования или декодирования видеоданных согласно любому из описанных способов, и/или машиночитаемый носитель данных, на котором хранится битовый поток, сгенерированных согласно любому из описанных способов.The aspects described and proposed herein may be implemented in a variety of different forms. In fig. 1, 2 and 3 below show some embodiments, however, other embodiments are possible, and the description of FIG. 1, 2 and 3 do not limit the scope of implementation options. At least one aspect generally relates to video encoding and decoding, and at least one other aspect generally relates to transmission of the generated or encoded bit stream. These and other aspects may be implemented as a method, apparatus, computer-readable storage medium on which instructions for encoding or decoding video data according to any of the described methods are stored, and/or a computer-readable storage medium on which a bit stream generated according to any of the described methods is stored. .

В настоящем изобретении термины «восстановленный» и «декодированный» могут использоваться взаимозаменяемым образом, термины «пиксель» и «отсчет» могут использоваться взаимозаменяемым образом, термины «графическое изображение», «изображение» и «кадр» могут использоваться взаимозаменяемым образом. Обычно, но не обязательно, термин «восстановленный» используется на стороне кодера, «декодированный» используется на стороне декодера.In the present invention, the terms "reconstructed" and "decoded" can be used interchangeably, the terms "pixel" and "sample" can be used interchangeably, the terms "graphics", "image" and "frame" can be used interchangeably. Typically, but not necessarily, the term "reconstructed" is used on the encoder side, "decoded" is used on the decoder side.

В настоящем документе описаны различные способы, и каждый из способов предусматривает одну или несколько стадий или этапов для выполнения описанного способа. Если конкретный порядок стадий или этапов не нужен для надлежащей реализации способа, порядок и/или использование конкретных стадий и/или этапов могут быть изменены или скомбинированы.Various methods are described herein, and each method provides one or more steps or steps for performing the described method. If a particular order of steps or steps is not needed to properly implement the method, the order and/or use of specific steps and/or steps can be changed or combined.

Различные способы и другие аспекты, описанные в настоящей заявке, могут использоваться для изменения модулей, например, модулей 170 и 275 компенсации движения видеокодера 100 и декодера 200, как показано на фиг. 1 и фиг. 2. Более того, настоящие аспекты не ограничены VVC или HEVC, и могут применяться, например, к другим стандартам и рекомендациям, которые уже существуют или будут разработаны в будущем, и к расширениям любых таких стандартов и рекомендаций (включая VVC и HEVC). Если не указано иное, или если это технически возможно, аспекты, описанные в настоящей заявке, могут использоваться по отдельности или в комбинации.Various methods and other aspects described herein can be used to modify modules, such as motion compensation modules 170 and 275, of video encoder 100 and decoder 200, as shown in FIG. 1 and fig. 2. Moreover, these aspects are not limited to VVC or HEVC, and may apply, for example, to other standards and recommendations that already exist or will be developed in the future, and to extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise indicated, or if technically feasible, the aspects described herein may be used alone or in combination.

На фиг. 1 изображен кодер 100. Возможны вариации этого кодера 100, но кодер 100 описан ниже для ясности без описания всех ожидаемых вариаций.In fig. 1 depicts an encoder 100. Variations of this encoder 100 are possible, but the encoder 100 is described below for clarity without describing all the expected variations.

Перед кодированием видеопоследовательность может быть подвергнута обработке 101 перед кодированием, например, применению преобразования цвета к входному цветному изображению (например, преобразования из RGB 4:4:4 в YCbCr 4:2:0), или преобразованию со сжатием компонентов входного изображения для получения распределения сигнала, более устойчивого к сжатию (например, с использованием выравнивания гистограммы одного из компонентов цвета). Метаданные могут быть связаны с предварительной обработкой и прикреплены к битовому потоку.Before encoding, the video sequence may be subjected to pre-encoding processing 101, such as applying a color transform to the input color image (e.g., converting from RGB 4:4:4 to YCbCr 4:2:0), or compressing the components of the input image to obtain a distribution signal that is more resistant to compression (for example, using histogram equalization of one of the color components). Metadata can be associated with preprocessing and attached to the bitstream.

В кодере 100 изображение кодируется посредством элементов кодера, как описано ниже. Изображение, подлежащее кодированию, разбивается (102) и обрабатывается в виде единиц, например, CU. Каждая единица кодируется, например, с помощью внутри- или межкадрового режима. Когда единица кодируется во внутрикадровом режиме, выполняется внутрикадровое предсказание (160). В межкадровом режиме выполняются оценка движения (175) и компенсация (170). Кодер решает (105), какой режим использовать для кодирования единицы - внутрикадровый или межкадровый, и указывает решение о выборе внутрикадрового/межкадрового режима, например, посредством флага режима предсказания. Остатки предсказания вычисляются, например, путем вычитания (110) предсказанного блока из исходного блока изображения.In encoder 100, an image is encoded by encoder elements, as described below. The image to be encoded is divided (102) and processed in the form of units, for example, CU. Each unit is encoded, for example, using an intra- or inter-frame mode. When a 1 is encoded in intra-frame mode, intra-frame prediction (160) is performed. In interframe mode, motion estimation (175) and compensation (170) are performed. The encoder decides 105 whether to use intra-frame or inter-frame mode to encode the unit, and indicates the intra/inter-frame mode selection decision, for example, through a prediction mode flag. The prediction residuals are calculated, for example, by subtracting (110) the predicted block from the original image block.

Остатки предсказания затем подвергают преобразованию (125) и квантованию (130). Квантованные коэффициенты преобразования, а также векторы движения и другие элементы синтаксиса, подвергают энтропийному кодированию (145) для вывода битового потока. Кодер может пропускать преобразование и применять квантование непосредственно к не подвергнутому преобразованию остаточному сигналу. Кодер может обходить как преобразование, так и квантование, т. е. остаток кодируется непосредственно без применения процессов преобразования или квантования.The prediction residuals are then transformed (125) and quantized (130). The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy encoded (145) to output the bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can bypass both transformation and quantization, i.e., the remainder is encoded directly without applying transformation or quantization processes.

Кодер декодирует кодированный блок для обеспечения опорного блока для дальнейших предсказаний. Квантованные коэффициенты преобразования подвергаются деквантованию (140) и обратному преобразованию (150) для декодирования остатков предсказания. За счет комбинирования (155) декодированных остатков предсказания и предсказанного блока восстанавливают блок изображения. Фильтры внутри петли (165) применяются к восстановленному изображению для выполнения, например, удаления блочности/фильтрации SAO (адаптивного смещения отсчетов) для уменьшения артефактов кодирования. Подвергнутое фильтрации графическое изображение хранится в буфере (180) опорных изображений.The encoder decodes the coded block to provide a reference block for further predictions. The quantized transform coefficients are dequantized (140) and inverted (150) to decode the prediction residuals. By combining (155) the decoded prediction residues and the predicted block, the image block is reconstructed. Filters within the loop (165) are applied to the reconstructed image to perform, for example, deblocking/SAO (sample adaptive offset) filtering to reduce encoding artifacts. The filtered graphic image is stored in a reference picture buffer (180).

На фиг. 2 изображена принципиальная схема видеодекодера 200. В декодере 200 битовый поток декодируется посредством элементов декодера, как описано ниже. Видеодекодер 200 в целом выполняет операцию декодирования, обратную операции кодирования, как показано на фиг. 1. Кодер 100 также в целом выполняет декодирование видео как часть кодирования видеоданных.In fig. 2 is a schematic diagram of a video decoder 200. In the decoder 200, a bit stream is decoded by decoder elements as described below. The video decoder 200 generally performs a decoding operation inverse to the encoding operation, as shown in FIG. 1. Encoder 100 also generally performs video decoding as part of the encoding of video data.

В частности, входные данные декодера включают битовый поток видео, который может быть сгенерирован видеокодером 100. Битовый поток сначала подвергается энтропийному декодированию (230) для получения коэффициентов преобразования, векторов движения и другой кодированной информации. Информация о разбиении изображения указывает, как разбивается изображение. Декодер, таким образом, может разделять (235) изображение согласно информации о разбиении декодированного изображения. Коэффициенты преобразования подвергаются деквантованию (240) и обратному преобразованию (250) для декодирования остатков предсказания. За счет комбинирования (255) декодированных остатков предсказания и предсказанного блока восстанавливают блок изображения. Предсказанный блок может быть получен (270) на основании внутрикадрового предсказания (260) или предсказания с компенсацией движения (т. е. межкадрового предсказания) (275). Фильтры внутри петли (265) применяются к восстановленному графическому изображению. Подвергнутое фильтрации графическое изображение хранится в буфере (280) опорных изображений.Specifically, the decoder input includes a video bitstream that can be generated by video encoder 100. The bitstream is first subjected to entropy decoding (230) to obtain transform coefficients, motion vectors, and other encoded information. Image splitting information specifies how the image is split. The decoder can thus partition (235) the image according to the partitioning information of the decoded image. The transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residuals. By combining (255) the decoded prediction residues and the predicted block, the image block is reconstructed. The predicted block may be obtained (270) based on intra-prediction (260) or motion-compensated prediction (ie, inter-prediction) (275). Filters within the loop (265) are applied to the reconstructed graphic image. The filtered graphic image is stored in a reference picture buffer (280).

Декодированное изображение может быть дополнительно подвергнуто обработке (285) после декодирования, например, обратному преобразованию цвета (например, преобразованию из YCbCr 4:2:0 в RGB 4:4:4) или обратному преобразованию со сжатием, выполняющему действие, обратное процессу преобразования со сжатием, выполняемому при обработке (101) перед кодированием. Обработка после декодирования может использовать метаданные, полученные при обработке перед кодированием и переданные в битовом потоке.The decoded image may be further subjected to post-decoding processing 285, such as an inverse color conversion (eg, YCbCr 4:2:0 to RGB 4:4:4 conversion) or an inverse compression conversion that performs the inverse of the conversion process. compression performed during processing (101) before encoding. Post-decoding processing may use metadata obtained from pre-encoding processing and carried in the bitstream.

На фиг. 3 изображена принципиальная схема примера системы, в которой реализованы различные аспекты и варианты осуществления. Система 1000 может быть реализована как устройство, содержащее различные компоненты, описанные ниже, и выполнена с возможностью выполнения одного или нескольких аспектов, описанных в этом документе. Примеры таких устройств включают, без ограничения, различные электронные устройства, такие как персональные компьютеры, ноутбуки, смартфоны, планшетные компьютеры, цифровые мультимедийные телевизионные приставки, цифровые телевизионные приемники, персональные системы видеозаписи, подключенные бытовые приборы и серверы. Элементы системы 1000, по отдельности или в комбинации, могут быть реализованы в одной интегральной схеме (IC), нескольких IC и/или дискретных компонентах. Например, согласно по меньшей мере одному варианту осуществления элементы обработки и кодера/декодера системы 1000 распределены среди нескольких IC и/или дискретных компонентов. Согласно различным вариантам осуществления система 1000 с возможностью связи соединена с одной или несколькими другими системами или другими электронными устройствами посредством, например, шины связи или посредством выделенных портов ввода и/или вывода. Согласно различным вариантам осуществления система 1000 выполнена с возможностью реализации одного или нескольких аспектов, описанных в настоящем документе.In fig. 3 depicts a schematic diagram of an example system in which various aspects and embodiments are implemented. System 1000 may be implemented as a device comprising various components described below and configured to perform one or more of the aspects described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptops, smartphones, tablet computers, digital media set-top boxes, digital television receivers, personal video recording systems, connected home appliances and servers. The elements of system 1000, individually or in combination, may be implemented in a single integrated circuit (IC), multiple ICs, and/or discrete components. For example, according to at least one embodiment, the processing and encoder/decoder elements of the system 1000 are distributed among multiple ICs and/or discrete components. In various embodiments, the system 1000 is communicatively connected to one or more other systems or other electronic devices through, for example, a communications bus or through dedicated input and/or output ports. According to various embodiments, system 1000 is configured to implement one or more of the aspects described herein.

Система 1000 содержит по меньшей мере один процессор 1010, выполненный с возможностью исполнения инструкций, загруженных на него, для реализации, например, различных аспектов, описанных в настоящем документе. Процессор 1010 может содержать встроенное запоминающее устройство, интерфейс ввода/вывода и различные другие схемы, известные в уровне техники. Система 1000 содержит по меньшей мере одно запоминающее устройство 1020 (например, энергозависимое запоминающее устройство и/или энергонезависимое запоминающее устройство). Система 1000 содержит устройство 1040 хранения данных, которое может содержать энергонезависимое запоминающее устройство и/или энергозависимое запоминающее устройство, включая без ограничения, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), постоянное запоминающее устройство (ROM), программируемое постоянное запоминающее устройство (PROM), оперативное запоминающее устройство (RAM), динамическое оперативное запоминающее устройство (DRAM), статическое оперативное запоминающее устройство (SRAM), флеш-память, накопитель на магнитных дисках и/или накопитель на оптических дисках. Устройство 1040 хранения данных может включать внутреннее устройство хранения данных, подключаемое устройство хранения данных (включая съемные и несъемные устройства хранения данных) и/или устройство хранения данных с доступом через сеть, в качестве неограничивающих примеров.System 1000 includes at least one processor 1010 configured to execute instructions loaded thereon to implement, for example, various aspects described herein. Processor 1010 may include on-chip storage, an input/output interface, and various other circuitry known in the art. System 1000 includes at least one storage device 1020 (eg, volatile memory and/or non-volatile memory). System 1000 includes a data storage device 1040, which may include nonvolatile memory and/or volatile memory, including, but not limited to, electrically erasable programmable read only memory (EEPROM), read only memory (ROM), programmable read only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, magnetic disk drive and/or optical disk drive. Storage device 1040 may include internal storage, plug-in storage (including removable and non-removable storage), and/or network-accessible storage, as non-limiting examples.

Система 1000 содержит модуль 1030 кодера/декодера, выполненный с возможностью, например, обработки данных для предоставления кодированного видео или декодированного видео, и модуль 1030 кодера/декодера может содержать свой собственный процессор и запоминающее устройство. Модуль 1030 кодера/декодера представляет модуль (модули), который может быть включен в устройство для выполнения функций кодирования и/или декодирования. Как известно, устройство может содержать один или оба из модулей кодирования и декодирования. Дополнительно модуль 1030 кодера/декодера может быть реализован как отдельный элемент системы 1000 или может быть включен в процессор 1010 как комбинация аппаратного обеспечения и программного обеспечения, что известно специалистам в данной области техники.The system 1000 includes an encoder/decoder module 1030 configured to, for example, process data to provide encoded video or decoded video, and the encoder/decoder module 1030 may include its own processor and memory. Encoder/decoder module 1030 represents module(s) that may be included in a device to perform encoding and/or decoding functions. As is known, the device may include one or both of encoding and decoding modules. Additionally, the encoder/decoder module 1030 may be implemented as a separate element of the system 1000 or may be included in the processor 1010 as a combination of hardware and software, as is known to those skilled in the art.

Программный код, который должен быть загружен в процессор 1010 или кодер/декодер 1030 для выполнения различных аспектов, описанных в настоящем документе, может храниться в устройстве 1040 хранения данных, а затем может быть загружен в запоминающее устройство 1020 для исполнения процессором 1010. В соответствии с различными вариантами осуществления одно или несколько из процессора 1010, запоминающего устройства 1020, устройства 1040 хранения данных и модуля 1030 кодера/декодера может хранить один или несколько из различных объектов во время выполнения процессов, описанных в настоящем документе. Такие сохраненные объекты могут включать, без ограничения, входное видео, декодированное видео или части декодированного видео, битовый поток, матрицы, переменные и промежуточные или конечные результаты обработки уравнений, формул, операций и логики действий.Program code that must be loaded into processor 1010 or encoder/decoder 1030 to perform various aspects described herein may be stored in storage device 1040 and then may be loaded into storage device 1020 for execution by processor 1010. According to In various embodiments, one or more of processor 1010, memory 1020, storage device 1040, and encoder/decoder module 1030 may store one or more of various objects while performing the processes described herein. Such stored objects may include, but are not limited to, input video, decoded video or portions of decoded video, bitstream, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and action logic.

Согласно некоторым вариантам осуществления запоминающее устройство внутри процессора 1010 и/или модуля 1030 кодера/декодера используется для хранения инструкций и обеспечения работающего запоминающего устройства для обработки, которая необходима во время кодирования или декодирования. Однако согласно другим вариантам осуществления запоминающее устройство, внешнее по отношению к обрабатывающему устройству (например, обрабатывающее устройство может быть либо процессором 1010, либо модулем 1030 кодера/декодера), используется для одной или нескольких из этих функций. Внешнее запоминающее устройство может представлять собой запоминающее устройство 1020 и/или устройство 1040 хранения данных, например, динамическое энергозависимое запоминающее устройство и/или энергонезависимую флеш-память. Согласно некоторым вариантам осуществления внешняя энергонезависимая флеш-память используется для хранения операционной системы, например, телевизора. Согласно по меньшей мере одному варианту осуществления быстрое внешнее динамическое энергозависимое запоминающее устройство, такое как RAM, используется как работающее запоминающее устройство для операций кодирования и декодирования видео, например, для MPEG-2 (MPEG относится к Экспертной группе по движущимся изображениям, MPEG-2 также называется ISO/IEC 13818, и 13818-1 также известно как Н.222, и 13818-2 также известно как Н.262), HEVC (HEVC относится к высокоэффективному видеокодированию, также известному как Н.265 и MPEG-H часть 2), или VVC (универсальное кодирование видео, новый стандарт, разработанный JVET, объединенной командой видеоэкспертов).In some embodiments, storage within processor 1010 and/or encoder/decoder module 1030 is used to store instructions and provide operating memory for processing that is needed during encoding or decoding. However, in other embodiments, a storage device external to the processing device (eg, the processing device may be either a processor 1010 or an encoder/decoder module 1030) is used for one or more of these functions. The external storage device may be a storage device 1020 and/or a data storage device 1040, such as dynamic volatile memory and/or non-volatile flash memory. In some embodiments, external non-volatile flash memory is used to store an operating system, such as a television. In at least one embodiment, a fast external dynamic volatile memory device, such as RAM, is used as runtime memory for video encoding and decoding operations, for example, for MPEG-2 (MPEG refers to the Moving Picture Experts Group, MPEG-2 also called ISO/IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H part 2) , or VVC (Versatile Video Coding, a new standard developed by JVET, a joint team of video experts).

Ввод в элементы системы 1000 может быть обеспечен посредством различных устройств ввода, как указано в блоке 1130. Такие устройства ввода включают, без ограничения, (i) радиочастотную (RF) часть, которая принимает RF сигнал, переданный, например, по беспроводной связи радиостанцией, (ii) входной разъем компонента (СОМР) (или набор входных разъемов СОМР), (iii) входной разъем универсальной последовательной шины (USB), и/или (iv) входной разъем мультимедийного интерфейса высокой четкости (HDMI). Input to elements of the system 1000 may be provided through various input devices, as indicated at block 1130. Such input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted, for example, wirelessly by a radio station, (ii) a component input connector (COMP) (or set of COMP input connectors), (iii) a universal serial bus (USB) input connector, and/or (iv) a high-definition multimedia interface (HDMI) input connector.

Согласно различным вариантам осуществления устройства ввода блока 1130 содержат связанные соответствующие элементы обработки ввода, как известно в данной области техники. Например, RF часть может быть связана с элементами, подходящими для (i) выбора желаемой частоты (также называемой выбором сигнала, или ограничением сигнала полосой частот), (ii) преобразования с понижением частоты выбранного сигнала, (iii) повторное ограничение более узкой полосой частот для выбора (например) полосы частот сигнала, которая может считаться каналом согласно некоторым вариантам осуществления, (iv) демодуляции сигнала, подвергнутого преобразованию с понижением частоты и ограничению полосы, (v) выполнения исправления ошибок и (vi) демультиплексирования для выбора желаемого потока пакетов данных. RF часть различных вариантов осуществления содержит один или несколько элементов для выполнения этих функций, например, частотные селекторы, селекторы сигналов, ограничители полосы, селекторы каналов, фильтры, преобразователи с понижением частоты, демодуляторы, блоки исправления ошибок и демультиплексоры. RF часть может содержать блок настройки, который выполняет некоторые из этих функций, включая, например, преобразование с понижением частоты принятого сигнала до более низкой частоты (например, промежуточной частоты или частоты около основной полосы) или основной полосы. Согласно одному варианту осуществления с телевизионной приставкой RF часть и ее связанный элемент обработки ввода принимает RF сигнал, переданный по проводной среде (например, кабелю), и выполняет выбор частоты путем фильтрации, преобразования с понижением частоты и повторной фильтрации до желаемой полосы частот. Согласно различным вариантам осуществления порядок вышеописанных (и других) элементов изменен, некоторые из этих элементов удалены и/или добавлены другие элементы, выполняющие аналогичные или другие функции. Добавление элементов может включать вставку элементов между существующими элементами, например, вставку усилителей и аналого-цифрового преобразователя. Согласно различным вариантам осуществления RF часть содержит антенну.According to various embodiments, the input devices of block 1130 include associated corresponding input processing elements, as is known in the art. For example, the RF portion may be associated with elements suitable for (i) selecting a desired frequency (also called signal selection, or band-limiting the signal), (ii) down-converting the selected signal, (iii) re-band-limiting the selected signal. for selecting (for example) a frequency band of a signal that may be considered a channel according to some embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired stream of data packets . The RF portion of various embodiments contains one or more elements to perform these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, frequency downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs some of these functions, including, for example, downconverting the received signal to a lower frequency (eg, intermediate or near baseband frequency) or baseband. In one set-top box embodiment, the RF portion and its associated input processing element receives an RF signal transmitted over a wired medium (eg, cable) and performs frequency selection by filtering, down-converting, and re-filtering to a desired frequency band. According to various embodiments, the order of the above (and other) elements is changed, some of these elements are removed, and/or other elements are added that perform similar or different functions. Adding elements may involve inserting elements between existing elements, such as inserting amplifiers and an analog-to-digital converter. According to various embodiments, the RF portion includes an antenna.

Дополнительно разъемы USB и/или HDMI могут содержать соответствующие процессоры интерфейса для соединения системы 1000 с другими электронными устройствами посредством соединений USB и/или HDMI. Следует понимать, что различные аспекты обработки ввода, например, исправления ошибок Рида Соломона, могут быть реализованы, например, в пределах отдельной IC обработки ввода или внутри процессора 1010 при необходимости. Аналогично, аспекты обработки интерфейса USB или HDMI могут быть реализованы в отдельных IC интерфейса или в процессоре 1010 по мере необходимости. Демодулированный, с исправленными ошибками и демультиплексированный поток предоставляется в различные элементы обработки, в том числе, например, процессор 1010 и кодер/декодер 1030, которые работают в сочетании с запоминающим устройством элементами хранения для обработки потока данных по мере необходимости для представления на устройства вывода.Additionally, the USB and/or HDMI connectors may include appropriate interface processors for connecting the system 1000 to other electronic devices via USB and/or HDMI connections. It should be understood that various aspects of input processing, such as Reed Solomon error correction, may be implemented, for example, within a separate input processing IC or within processor 1010 as needed. Likewise, the processing aspects of the USB or HDMI interface may be implemented in separate interface ICs or processor 1010 as needed. The demodulated, error-corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 1010 and encoder/decoder 1030, which operate in conjunction with memory storage elements to process the data stream as needed for presentation to output devices.

Различные элементы системы 1000 могут быть предусмотрены в интегрированном корпусе, в интегрированном корпусе, различные элементы могут быть взаимосвязаны и передавать данные между ними, используя подходящее соединение, например, внутреннюю шину, как известно в данной области техники, включая шину между интегральными схемами (I2C), проводку и печатные платы.The various elements of the system 1000 may be provided in an integrated package, in an integrated package, the various elements may be interconnected and transmit data between them using a suitable connection, such as an internal bus, as is known in the art, including an inter-integrated circuit (I2C) bus. , wiring and printed circuit boards.

Система 1000 содержит интерфейс 1050 связи, который обеспечивает связь с другими устройствами через канал 1060 связи. Интерфейс 1050 связи может содержать, без ограничения, приемопередатчик, выполненный с возможностью передачи и получения данных по каналу 1060 связи. Интерфейс 1050 связи может включать, без ограничения, модем или сетевую карту, а канал 1060 связи может быть реализован, например, в проводной и/или беспроводной среде.System 1000 includes a communications interface 1050 that allows communication with other devices through a communications link 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data over the communication channel 1060. Communication interface 1050 may include, but is not limited to, a modem or network card, and communication link 1060 may be implemented, for example, in a wired and/or wireless environment.

Данные передаются в потоковом режиме или иным образом передаются в систему 1000 в различных вариантах осуществления с помощью беспроводной сети, такой как сеть Wi-Fi, например IEEE 802.11 (IEEE обозначает Институт инженеров по электротехнике и радиоэлектронике). Сигнал Wi-Fi этих вариантов осуществления получен по каналу 1060 связи и интерфейсу 1050 связи, которые адаптированы для передач по Wi-Fi. Канал 1060 связи этих вариантов осуществления обычно соединен с точкой доступа или маршрутизатором, которые обеспечивают доступ к внешним сетям, включая Интернет, для обеспечения потоковой передачи и другой передачи по технологии Over-the-top. Согласно другим вариантам осуществления потоковые данные передаются в систему 1000 с использованием телевизионной приставки, которая доставляет данные по подключению HDMI входного блока 1130. Согласно другим вариантам осуществления потоковые данные передаются в систему 1000 с помощью RF соединения с входным блоком 1130. Как указано выше, согласно различным вариантам осуществления данные передаются не в потоковом режиме. Дополнительно, согласно различным вариантам осуществления используются беспроводные сети, отличающиеся от Wi-Fi, например, сотовая сеть или сеть Bluetooth.Data is streamed or otherwise communicated to the system 1000 in various embodiments using a wireless network, such as a Wi-Fi network, such as IEEE 802.11 (IEEE stands for Institute of Electrical and Electronics Engineers). The Wi-Fi signal of these embodiments is received over a communication channel 1060 and a communication interface 1050, which are adapted for Wi-Fi transmissions. The link 1060 of these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to enable streaming and other over-the-top transmissions. According to other embodiments, the streaming data is transmitted to the system 1000 using a set-top box that delivers the data over an HDMI connection of the input unit 1130. According to other embodiments, the streaming data is transmitted to the system 1000 using an RF connection to the input unit 1130. As stated above, according to various In embodiments, the data is not streamed. Additionally, various embodiments utilize wireless networks other than Wi-Fi, such as a cellular network or a Bluetooth network.

Система 1000 может выдавать выходной сигнал на различные устройства вывода, включая дисплей 1100, громкоговорители 1110 и другие периферийные устройства 1120. Дисплей 1100 согласно различным вариантам осуществления включает один или несколько из, например, сенсорного дисплея, дисплея на органических светодиодах (OLED), изогнутого дисплея и/или складного дисплея. Дисплей 1100 может быть предназначен для телевизора, планшета, ноутбука сотового телефона (мобильного телефона) или другого устройства. Дисплей 1100 также может объединен с другими компонентами (например, как в смартфоне) или быть отдельным (например, внешний монитор для ноутбука). Другие периферийные устройства 1120 включают в различных примерах вариантов осуществления одно или несколько из отдельного цифрового видеодиска (или цифрового универсального диска) (DVR, для обоих терминов), проигрывателя дисков, стереосистемы и/или системы подсветки. Согласно различным вариантам осуществления используется одно или несколько периферийных устройств 1120, которые обеспечивают функцию на основании вывода системы 1000. Например, проигрыватель дисков выполняет функцию воспроизведения вывода системы 1000.The system 1000 may provide output to various output devices, including a display 1100, speakers 1110, and other peripheral devices 1120. The display 1100, according to various embodiments, includes one or more of, for example, a touch display, an organic light-emitting diode (OLED) display, a curved display and/or foldable display. The display 1100 may be for a television, tablet, laptop, cell phone (mobile phone), or other device. The display 1100 may also be integrated with other components (such as in a smartphone) or stand alone (such as an external monitor for a laptop). Other peripheral devices 1120 include, in various example embodiments, one or more of a single digital video disc (or digital versatile disc) (DVR, for both terms), a disc player, a stereo system, and/or a lighting system. According to various embodiments, one or more peripheral devices 1120 are used that provide a function based on the output of the system 1000. For example, a disc player performs the function of reproducing the output of the system 1000.

Согласно различным вариантам осуществления управляющие сигналы передаются между системой 1000 и дисплеем 1100, громкоговорителями 1110 или другими периферийными устройствами 1120 с помощью такой сигнальной информации, как AV.Link, Consumer Electronics Control (CEC), или других протоколов связи, которые обеспечивают управление между устройствами с вмешательством пользователя или без него. Устройства вывода могут быть соединены с возможностью связи с системой 1000 посредством выделенных соединений через соответствующие интерфейсы 1070, 1080 и 1090. Альтернативно устройства вывода могут быть соединены с системой 1000 с помощью канала 1060 связи посредством интерфейса 1050 связи. Дисплей 1100 и громкоговорители 1110 могут быть встроены в один блок с другим компонентами системы 1000 в электронном устройстве, таком как, например, телевизор. Согласно различным вариантам осуществления интерфейс 1070 дисплея содержит драйвер дисплея, такой как, например, микросхема контроллера синхронизации (Т Con).In various embodiments, control signals are transmitted between the system 1000 and the display 1100, speakers 1110, or other peripheral devices 1120 using signaling information such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that provide control between devices with with or without user intervention. The output devices may be communicatively coupled to the system 1000 via dedicated connections through respective interfaces 1070, 1080, and 1090. Alternatively, the output devices may be communicatively coupled to the system 1000 via a communications link 1060 via communications interface 1050. The display 1100 and speakers 1110 may be integrated with other system components 1000 in an electronic device such as, for example, a television. According to various embodiments, display interface 1070 includes a display driver, such as, for example, a timing controller (T Con) chip.

Дисплей 1100 и громкоговоритель 1110 могут альтернативно быть отделены от одного или нескольких из других компонентов, например, если RF часть ввода 1130 является частью отдельной телевизионной приставки. Согласно различным вариантам осуществления, в которых дисплей 1100 и громкоговорители 1110 являются внешними компонентами, выходной сигнал может передаваться посредством выделенных выходных соединений, включая, например, порты HDMI, порты USB или выводы СОМР.The display 1100 and speaker 1110 may alternatively be separate from one or more of the other components, for example, if the RF input portion 1130 is part of a separate set-top box. According to various embodiments in which the display 1100 and speakers 1110 are external components, the output signal may be provided via dedicated output connections including, for example, HDMI ports, USB ports, or COMP pins.

Варианты осуществления могут осуществляться посредством компьютерного программного обеспечения, реализованного процессором 1010, или аппаратного обеспечения, или посредством комбинации аппаратного обеспечения и программного обеспечения. В качестве неограничивающего примера варианты осуществления могут быть реализованы посредством одной или нескольких интегральных схем. Запоминающее устройство 1020 может представлять собой любой тип, соответствующий технической среде и, может быть реализовано с использованием любой подходящей технологии хранения данных, такой как оптические запоминающие устройства, магнитные запоминающие устройства, запоминающие устройства на полупроводниках, несъемное запоминающее устройство и съемное запоминающее устройство, в качестве неограничивающих примеров. Процессор 1010 может представлять собой любой тип, соответствующий технической среде, и может охватывать один или несколько из микропроцессоров, компьютеров общего назначения, компьютеров специального назначения и процессоров на основе многоядерной архитектуры, в качестве неограничивающих примеров.Embodiments may be implemented through computer software implemented by processor 1010, or hardware, or a combination of hardware and software. By way of non-limiting example, embodiments may be implemented by one or more integrated circuits. The storage device 1020 may be any type appropriate to the technical environment and may be implemented using any suitable storage technology such as optical storage devices, magnetic storage devices, semiconductor storage devices, non-removable storage device and removable storage device, as non-limiting examples. Processor 1010 may be any type appropriate to the technical environment and may include one or more of microprocessors, general purpose computers, special purpose computers, and multi-core processors, as non-limiting examples.

На фиг. 4 изображены структуры дерева кодирования и единиц дерева кодирования (CTU), используемые для представления сжатых изображений, например, в соответствии со стандартом сжатия видео HEVC. В стандартах сжатия видео, как в HEVC, временное предсказание с компенсацией движения используется для применения избыточности, которая существует между последовательными изображениями видео. Вектор движения связан с каждой единицей предсказания (PU), входящей в CTU. Набор CTU изображения представлен в виде дерева кодирования в сжатой области. Это разделение CTU методом квадродерева, где каждый лист называется единицей кодирования (CU). Каждой CU задаются некоторые параметры внутрикадрового или межкадрового предсказания (информация о предсказании). Для этого CU пространственно разбивается на одну или несколько единиц предсказания (PU), причем каждой PU присваивается некоторая информация о предсказании. Режим внутрикадрового или межкадрового предсказания присваивается на уровне CU. В HEVC каждой PU присваивается один вектор движения. Этот вектор движения используется для временного предсказания с компенсацией движения рассматриваемой PU. Поэтому в стандарте сжатия видео, таком как HEVC, модель движения, которая связывает предсказанный блок и его опорный блок, заключается в переносе.In fig. 4 illustrates coding tree and coding tree unit (CTU) structures used to represent compressed images, for example, in accordance with the HEVC video compression standard. In video compression standards like HEVC, motion-compensated temporal prediction is used to exploit the redundancy that exists between successive video images. A motion vector is associated with each prediction unit (PU) included in the CTU. A set of image CTUs is represented as an encoding tree in a compressed region. This is a quadtree division of CTUs, where each leaf is called a coding unit (CU). Each CU is given some intra- or inter-prediction parameters (prediction information). To do this, the CU is spatially partitioned into one or more prediction units (PUs), with each PU assigned some prediction information. The intra- or inter-frame prediction mode is assigned at the CU level. In HEVC, each PU is assigned one motion vector. This motion vector is used for motion-compensated temporal prediction of the PU in question. Therefore, in a video compression standard such as HEVC, the motion model that relates the predicted block and its reference block is a transfer.

На фиг. 5А и 5В изображено поле вектора аффинного движения на основании подблоков 4×4 для двух и трех контрольных точек соответственно. В недавнем дополнении к стандартам сжатия видео, например, в тестовой модели объединенной исследовательской модели (JEM) и более поздней модели VVC (универсального кодирования видео), разработанной группой JVET (объединенная группа по исследованию видео), поддерживаются некоторые более функциональные модели движения для улучшения временного предсказания. С этой целью PU может быть пространственно разделена на под-PU, и более функциональная модель может быть использована для присвоения каждой под-PU специального вектора движения. CU больше не делится на PU или TU, а некоторые данные о движении непосредственно присваиваются каждой CU. В новой конфигурации кодека CU может быть разделена на под-CU, и для каждой под-CU может быть вычислен вектор движения. Одной из новых моделей движения, представленных в JEM, является аффинная модель, которая заключается в использовании аффинной модели для представления векторов движения в CU.In fig. 5A and 5B depict the affine motion vector field based on 4x4 subblocks for two and three control points, respectively. Recent additions to video compression standards, such as the Joint Exploration Model (JEM) benchmark and the more recent VVC (Video Encoding) model developed by the Joint Video Research Team (JVET), support some more functional motion models to improve temporal predictions. To this end, the PU can be spatially divided into sub-PUs, and a more functional model can be used to assign each sub-PU a dedicated motion vector. The CU is no longer divided into PUs or TUs, and some motion data is directly assigned to each CU. In the new codec configuration, the CU can be divided into sub-CUs, and a motion vector can be calculated for each sub-CU. One of the new motion models introduced in JEM is the affine model, which consists of using an affine model to represent motion vectors in the CU.

Поле аффинного движения для 2 контрольных точек на фиг. 5А, также называемое 4-параметрической аффинной моделью, состоит из значений компонентов вектора движения для каждого положения (х, у) внутри рассматриваемого блока в соответствии с уравнением [ур. 1]:Affine motion field for 2 control points in Fig. 5A, also called the 4-parameter affine model, consists of the values of the motion vector components for each position (x, y) within the block under consideration according to the equation [Eq. 1]:

, ,

где (v0x, v0y) и (v1x, v1y) - так называемые векторы движения 51А и 52А контрольных точек, используемые для генерирования поля аффинного движения, (v0x, v0y) - контрольная точка левого верхнего угла вектора движения, (v1x, v1y) - контрольная точка правого верхнего угла вектора движения.where (v 0x , v 0y ) and (v 1x , v 1y ) are the so-called motion vectors 51A and 52A of control points used to generate the affine motion field, (v 0x , v 0y ) is the control point of the upper left corner of the motion vector, (v 1x , v 1y ) - control point of the upper right corner of the motion vector.

Модель с 3 контрольными точками, как показано на фиг. 5В, называемая 6-параметрической моделью аффинного движения, также может быть использована для представления поля движения на основании подблоков для данной единицы кодирования. Поле движения в случае 6-параметрической аффинной модели вычисляется как в уравнении [ур. 2], где (v0x, v0y) - вектор 51В, (v1x, v1y) - вектор 52В и (v2x, v2y) - вектор 53В.Model with 3 control points as shown in Fig. 5B, called the 6-parameter affine motion model, can also be used to represent the motion field based on subblocks for a given coding unit. The motion field in the case of a 6-parameter affine model is calculated as in equation [eq. 2], where (v 0x , v 0y ) is vector 51B, (v 1x , v 1y ) is vector 52B and (v 2x , v 2y ) is vector 53B.

На практике для поддержания сложности на приемлемом уровне, один и тот же вектор движения вычисляется для пикселей подблока 4×4 (под-CU) рассматриваемой CU, как показано на фиг. 5А и фиг. 5В. Вектор аффинного движения вычисляется из векторов движения контрольных точек в положении центра каждого подблока. Таким образом, полученные векторы движения представляются с точностью 1/16 пикселя. В результате единица предсказания (PU) единицы кодирования в аффинном режиме создается посредством предсказания с компенсацией движения каждого подблока со своим собственным вектором движения. Компенсация аффинного движения может использоваться 2 способами в тестовой модели VVC (VTM): аффинное AMVP и аффинное слияние. Они представлены ниже.In practice, to keep the complexity at an acceptable level, the same motion vector is calculated for the pixels of a 4x4 sub-block (sub-CU) of the CU in question, as shown in FIG. 5A and FIG. 5V. The affine motion vector is calculated from the motion vectors of the control points at the center position of each sub-block. Thus, the resulting motion vectors are represented with an accuracy of 1/16 pixel. As a result, a prediction unit (PU) of an affine mode coding unit is created by motion-compensated prediction of each sub-block with its own motion vector. Affine motion compensation can be used in 2 ways in the VVC test model (VTM): affine AMVP and affine fusion. They are presented below.

В VTM CU, размер которой больше 8×8, может быть предсказан в режиме аффинной AMVP. Об этом сигнализирует флаг в битовом потоке, закодированном на уровне CU. Генерирование поля аффинного движения для этой межкадровой CU предусматривает определение векторов движения контрольных точек (CPMV), которые получаются декодером путем сложения разности векторов движения и предсказания вектора движения контрольной точки (CPMVP). CPMVP - это пара (для 4-параметрической аффинной модели, заданной 2 векторами движения контрольных точек) или тройка (для 6-параметрической аффинной модели, заданной 3 векторами движения контрольных точек) векторов движения, используемых в качестве предикторов CPMV текущей CU. CPMVP текущей CU может быть унаследовано от аффинных соседних CU (как в режиме аффинного слияния). Пространственное положение, из которого извлекаются унаследованные CPMVP, выбирается из упорядоченного списка заданных кандидатных положений. Унаследованное CPMVP считается действительным, если его опорное изображение равно опорному изображению текущей CU.In VTM, a CU whose size is larger than 8x8 can be predicted in affine AMVP mode. This is signaled by a flag in the bit stream encoded at the CU level. Generating the affine motion field for this interframe CU involves determining reference point motion vectors (CPMVs), which are obtained by the decoder by adding the difference of motion vectors and reference point motion vector prediction (CPMVP). A CPMVP is a pair (for a 4-parameter affine model defined by 2 control point motion vectors) or a triple (for a 6-parameter affine model defined by 3 control point motion vectors) of motion vectors used as predictors of the CPMV of the current CU. The CPMVP of the current CU can be inherited from affine neighboring CUs (as in affine merge mode). The spatial location from which the legacy CPMVPs are retrieved is selected from an ordered list of predetermined candidate locations. A legacy CPMVP is considered valid if its reference picture is equal to the reference picture of the current CU.

В режиме аффинного слияния флаг на уровне CU указывает, использует ли CU в режиме слияния компенсацию аффинного движения. Если да, то в JEM среди упорядоченного списка заданных кандидатных положений выбирается первая доступная соседняя CU, которая была закодирована в аффинном режиме. После получения первой соседней CU в аффинном режиме, CPMVP текущей CU может быть унаследовано от этой аффинной соседней CU. Извлекаются 3 вектора движения из левого верхнего, правого верхнего и левого нижнего углов соседней аффинной CU. На основании этих трех векторов движения два или три CPMV верхнего левого, верхнего правого и/или нижнего левого углов текущей CU выводятся следующим образом.In affine fusion mode, a flag at the CU level indicates whether the CU in fusion mode uses affine motion compensation. If so, JEM selects the first available neighboring CU that has been affine-mode encoded from the ordered list of given candidate positions. After receiving the first neighbor CU in affine mode, the CPMVP of the current CU can be inherited from that affine neighbor CU. 3 motion vectors are extracted from the upper left, upper right and lower left corners of the adjacent affine CU. Based on these three motion vectors, two or three CPMVs of the upper left, upper right and/or lower left corners of the current CU are output as follows.

Для CU с 4-параметрическим аффинным режимом 2 CPMV текущего CU выводятся следующим образом:For a CU with 4-parameter affine mode, the 2 CPMVs of the current CU are output as follows:

Для CU с 6-параметрическим аффинным режимом 3 вектора движения контрольных точек текущей CU выводятся следующим образом:For a CU with 6-parameter affine mode, the 3 control point motion vectors of the current CU are output as follows:

о O

Когда векторы движения контрольных точек и/или текущей CU получены, поле движения внутри текущей CU вычисляется на основании подблоков 4×4 посредством модели уравнения [ур. 1] или [ур. 2]. Таким образом, аффинная модель может рассматриваться как модель на основании подблоков.When the motion vectors of control points and/or of the current CU are obtained, the motion field inside the current CU is calculated based on the 4x4 sub-blocks through the equation model [Eq. 1] or [eq. 2]. Thus, the affine model can be considered as a subblock-based model.

Начиная с VTM-3.0, кандидат SbTMVP (предиктор временного вектора движения на основании подблоков, также называемый ATMVP) является частью списка аффинного слияния как первый кандидат подблока, который оценивается в процессе оптимизации скорости-искажения в режиме аффинного слияния. SbTMVP предсказывает векторы движения подблоков 8×8 в пределах текущей CU, собирая информацию о движении соответствующих подблоков в совместно расположенном изображении, как обычный предиктор TMVP.Starting with VTM-3.0, the SbTMVP candidate (subblock-based temporal motion vector predictor, also called ATMVP) is part of the affine fusion list as the first subblock candidate that is evaluated in the rate-distortion optimization process in affine fusion mode. SbTMVP predicts the motion vectors of 8x8 sub-blocks within the current CU by collecting the motion information of the corresponding sub-blocks in a co-located image, like a regular TMVP predictor.

На фиг. 6 показан пример обновления списка в способе HMVP. Начиная с версии VTM-3.0 был также введен инструмент предсказания вектора движения на основании истории (HMVP). Выражение «на основании истории» заключается в ведении списка, состоящего из множества единиц информации о движении (векторы движения, связанный опорный кадр, индекс BCW, …), которые были использованы для кодирования/декодирования CU, предшествующих текущей CU. Каждый раз, когда кодируется/декодируется неаффинная и не треугольная межкадровая CU, то есть блок, не основанный на подблоках, соответствующая информация о движении вставляется в конец списка, как новый кандидат HMVP. Как показано на фиг. 6, при вставке нового кандидата движения в таблицу используется ограниченное правило FIFO, где сначала применяется проверка избыточности, чтобы найти, есть ли идентичное HMVP в таблице. Если оно найдено, идентичное HMVP удаляется из таблицы, и все последующие кандидаты HMVP перемещаются вперед, т. е. с индексами, уменьшенными на 1.In fig. 6 shows an example of updating a list in the HMVP method. As of VTM-3.0, the History-Based Motion Vector Prediction (HMVP) tool was also introduced. The expression "based on history" is to maintain a list consisting of multiple motion information items (motion vectors, associated reference frame, BCW index, ...) that were used to encode/decode CUs preceding the current CU. Every time a non-affine and non-triangular interframe CU, i.e., a non-subblock based block, is encoded/decoded, the corresponding motion information is inserted at the end of the list as a new HMVP candidate. As shown in FIG. 6, when inserting a new motion candidate into the table, a constrained FIFO rule is used, where redundancy check is first applied to find whether there is an identical HMVP in the table. If found, the identical HMVP is removed from the table and all subsequent HMVP candidates are moved forward, i.e., with indices reduced by 1.

Кандидаты HMVP могут быть использованы в процессе построения списка кандидатов на слияние. Последние несколько кандидатов HMVP в таблице проверяются по порядку и вставляются в список кандидатов после кандидата TMVP. Обрезка применяется к кандидатам HMVP для пространственного или временного кандидата слияния, исключая кандидата движения подблоков (т. е. ATMVP).HMVP candidates can be used in the process of constructing a list of merge candidates. The last few HMVP candidates in the table are checked in order and inserted into the candidate list after the TMVP candidate. Pruning is applied to the HMVP candidates for the spatial or temporal merge candidate, excluding the subblock motion candidate (i.e., ATMVP).

Согласно настоящим принципам информация о движении, относящаяся к межкадровым CU, кодированным с использованием режима на основании подблоков, то есть блокам, для которых подблоки декодируются на основании векторов движения, определенных в соответствии с данными информации о движении, связанными с блоком, добавляется в список данных информации о движении, подобный списку HMVP. Элементы указанного списка используются для определения данных информации о движении для последующих блоков того же текущего изображения. Поскольку аффинный режим и режим SbTMVP используют компенсацию движения на основании подблоков, для каждой CU, закодированной в режиме на основании подблоков, хранится несколько векторов движения. Положение внутри CU, т. е. подблок, из которого подбирается вектор движения для сохранения в списке, может влиять на показатели BD.According to the present principles, motion information related to inter-frame CUs encoded using the sub-block based mode, that is, blocks for which sub-blocks are decoded based on motion vectors determined according to the motion information data associated with the block, is added to the data list traffic information similar to the HMVP list. The elements of the specified list are used to determine motion information data for subsequent blocks of the same current image. Since the affine mode and SbTMVP mode use sub-block based motion compensation, multiple motion vectors are stored for each CU encoded in the sub-block based mode. The position within the CU, i.e., the subblock from which the motion vector is selected to be stored in the list, can influence the BD performance.

В настоящее время информация о движении, поступающая из CU, кодированных с помощью режима на основании подблоков или треугольных режимов, не учитывается при построении и обновлении списка HMVP. Согласно настоящим принципам ни одна, одна или несколько единиц данных информации о движении, определенных в соответствии с межблочными CU, кодированными с помощью режима на основании подблоков, вставляются в список HMVP как обычная межкадровая информация о движении.Currently, motion information coming from CUs encoded using sub-block or triangular modes is not taken into account when constructing and updating the HMVP list. According to the present principles, none, one or more motion information data units defined in accordance with inter-block CUs encoded using the sub-block based mode are inserted into the HMVP list as normal inter-frame motion information.

Настоящие принципы применимы к каждому из режимов кодирования подблоков. Режимы кодирования подблоков не ограничиваются 3 режимами VTM-5.0: (i) аффинное AMVP, (ii) аффинное слияние и (iii) SbTMVP; но распространяются на все уже известные режимы на основании подблоков, такие как планарный вектор движения, регрессия, треугольный, FRUC, переплетенный аффинный и т. д., а также на все новые режимы на основании подблоков, которые могут быть предложены в будущем. Можно рассматривать только один из этих режимов на основании подблоков при экономии списка HMVP, или комбинацию режимов (как, например, оба аффинных режима), или комбинацию всех режимов на основании подблоков.These principles apply to each of the subblock encoding modes. Subblock encoding modes are not limited to the 3 modes of VTM-5.0: (i) affine AMVP, (ii) affine fusion, and (iii) SbTMVP; but applies to all already known sub-block-based modes such as planar motion vector, regression, triangular, FRUC, intertwined affine, etc., as well as any new sub-block-based modes that may be offered in the future. One may consider only one of these subblock modes while saving the HMVP list, or a combination of modes (such as both affine modes), or a combination of all subblock modes.

На фиг. 7 схематически изображен способ 70 кодирования/декодирования блоков текущего изображения. На стадии 71 кодируют/декодируют первый блок, подлежащий кодированию/декодированию в соответствии с режимом на основании подблоков. Векторы движения, используемые для кодирования/декодирования подблоков первого блока, определяются в соответствии с информацией о движении, содержащейся в CU самого первого блока, как показано, например, на фиг. 5А и 5В. Данные информации о движении включают различные данные, используемые для предсказания движения, например, векторы движения, связанный опорный кадр, индекс BCW и т. д.In fig. 7 is a schematic diagram of a method 70 for encoding/decoding blocks of a current image. At step 71, the first block to be encoded/decoded in accordance with the sub-block based mode is encoded/decoded. Motion vectors used for encoding/decoding subblocks of the first block are determined in accordance with the motion information contained in the CU of the very first block, as shown, for example, in FIG. 5A and 5B. The motion information data includes various data used for motion prediction, such as motion vectors, associated reference frame, BCW index, etc.

Согласно настоящим принципам на стадии 72 определяют набор вторых данных информации о движении в зависимости от указанных первых данных информации о движении; количество определенных единиц данных информации о движении в наборе может быть равно нулю, одному или более. Выбор размера этого набора определяется эффективностью этого выбора для процесса кодирования/декодирования. Он параметризуется и совместно применяется кодером и декодером. Соответствующие параметры могут быть закодированы в заголовках видеопотока.According to the present principles, at step 72, a set of second motion information data is determined depending on said first motion information data; the number of specific motion information data units in the set may be zero, one, or more. The choice of the size of this set is determined by the efficiency of this choice for the encoding/decoding process. It is parameterized and shared between the encoder and decoder. The corresponding parameters can be encoded in the headers of the video stream.

Согласно одному варианту осуществления вторая информация о движении создается с использованием данных первой информации о движении, то есть информации о движении, связанной с первым блоком. Вектор движения второй информации о движении определяется в зависимости от подмножества векторов движения, определенных для подблоков первого блока. Подблоки, предоставляющие свой вектор движения для комбинации (т. е. в зависимости от векторов движения), выбираются в соответствии с их положением в первом блоке. Например, выбирается уникальный подблок, например, подблок, расположенный в центре первого блока (например, в случае деления подблока 4×4 это подблок [1,1] или [1,2]), а зависимость является функцией тождества. Таким образом, вектор движения определенных вторых данных информации о движении является вектором движения выбранного подблока. В другом примере вектор движения вторых данных информации о движении представляет собой среднее из векторов движения двух или трех или четырех векторов движения подблоков, выбранных по распределению их положений в пределах первого блока, например, два центральных подблока или три подблока: два в верхних углах и один в внизу в центре или четыре подблока в углах первого блока. Зависимость может отличаться от среднего значения. Выбор зависимости и положений выбранных подблоков определяются эффективностью этого выбора для процесса кодирования/декодирования. Он параметризуется и совместно применяется кодером и декодером. Соответствующие параметры могут быть закодированы в заголовках видеопотока.According to one embodiment, the second motion information is created using data from the first motion information, that is, the motion information associated with the first block. A motion vector of the second motion information is determined depending on a subset of motion vectors determined for the subblocks of the first block. The subblocks that provide their motion vector for the combination (i.e., depending on the motion vectors) are selected according to their position in the first block. For example, a unique subblock is selected, such as the subblock located at the center of the first block (for example, in the case of a 4x4 subblock division, it is the [1,1] or [1,2] subblock), and the dependency is an identity function. That is, the motion vector of the determined second motion information data is the motion vector of the selected subblock. In another example, the motion vector of the second motion information data is the average of the motion vectors of two or three or four motion vectors of sub-blocks selected by the distribution of their positions within the first block, for example, two central sub-blocks or three sub-blocks: two in the upper corners and one in the bottom center or four sub-blocks in the corners of the first block. The relationship may differ from the average value. The choice of dependency and the positions of the selected sub-blocks are determined by the efficiency of this choice for the encoding/decoding process. It is parameterized and shared between the encoder and decoder. The corresponding parameters can be encoded in the headers of the video stream.

Согласно другому варианту осуществления вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения первых данных информации о движении. Например, для первого блока, закодированного/декодированного в соответствии с 4-параметрической аффинной моделью, вектор движения вторых данных информации о движении может быть средневзвешенным значением двух векторов контрольных точек. Ноль, одна или более единиц данных информации о движении могут быть определены в соответствии с этим вариантом реализации с различными функциями и/или различными параметрами.According to another embodiment, the second motion information data includes a motion vector determined depending on the motion vectors of the first motion information data. For example, for the first block encoded/decoded according to the 4-parameter affine model, the motion vector of the second motion information data may be a weighted average of two reference point vectors. Zero, one or more motion information data units may be defined according to this embodiment with different functions and/or different parameters.

Согласно варианту, применимому к двум вышеуказанным вариантам осуществления, выбранная зависимость векторов движения и/или положение выбранных подблоков зависит от размера первого блока и/или размера подблоков. Например, если первый блок меньше заданного размера (например, 128×128, 64×64, 32×32 или 16×16), то зависимость представляет собой функцию тождества и выбранный подблок выбирается в центре первого блока; если же первый блок больше заданного размера, то зависимость представляет собой средневзвешенное значение (весовые коэффициенты зависят от размера первого блока) двух векторов подблоков в углах первого блока.According to an option applicable to the above two embodiments, the selected motion vector relationship and/or the position of the selected sub-blocks depends on the size of the first block and/or the size of the sub-blocks. For example, if the first block is smaller than a given size (for example, 128x128, 64x64, 32x32, or 16x16), then the constraint is an identity function and the selected subblock is selected at the center of the first block; if the first block is larger than a given size, then the dependence is a weighted average (weighting coefficients depend on the size of the first block) of two vectors of subblocks in the corners of the first block.

Согласно одному варианту количество определяемых единиц вторых данных информации о движении зависит от размера первого блока и/или от размера подблоков. Например, если размер первого блока меньше заданного размера, вторые данные о движении не определяются. В другом примере подблоки первого блока могут быть разделены на области фиксированного размера (например, 64×64, 32×32 или 16×16) или адаптируемого размера, например, области, которые делят CU подблока на 2, 4 или 8. Для этих областей определяются одни вторые данные информации о движении в соответствии с одним из вариантов осуществления и вышеуказанным вариантом. Например, если области имеют фиксированный размер 32×32, то для CU подблока 16×32 определяется только одна единица вторых данных информации о движении, а для CU подблока 64×64 определяется четыре единицы вторых данных информации о движении. В другом примере, если области имеют адаптируемый размер и делят CU подблока на четыре области, то всегда сохраняются четыре единицы данных информации о движении, для CU подблока 16×32 - по одной для каждой области 8×16, а для CU подблока 64×64 - по одной для каждой области 32×32.In one embodiment, the number of second motion information data units to be determined depends on the size of the first block and/or the size of the subblocks. For example, if the size of the first block is smaller than the specified size, the second motion data is not determined. In another example, the subblocks of the first block may be divided into areas of a fixed size (for example, 64x64, 32x32, or 16x16) or an adaptable size, for example, areas that divide the CU of the subblock into 2, 4, or 8. For these areas one second motion information data is determined in accordance with one of the embodiments and the above embodiment. For example, if the areas have a fixed size of 32×32, then only one unit of second motion information data is determined for a CU of a 16×32 subblock, and four units of second motion information data are determined for a CU of a 64×64 subblock. In another example, if the areas are of an adaptable size and divide the sub-block CU into four areas, then four motion information data units are always stored, for a 16x32 sub-block CU one for each 8x16 region, and for a 64x64 sub-block CU - one for each 32x32 area.

Выбор количества определяемых вторых данных информации о движении и различных функций для их определения определяется эффективностью этого выбора для процесса кодирования/декодирования. Он параметризуется и совместно применяется кодером и декодером. Соответствующие параметры могут быть закодированы в заголовках видеопотока. Например, эффективным выбором может быть определение одних данных информации о движении с вектором движения расположенного по центру подблока только для подблоков, площадь которых больше или равна 256 квадратным пикселям.The choice of the amount of second motion information data to be determined and the various functions for determining it is determined by the efficiency of this choice for the encoding/decoding process. It is parameterized and shared between the encoder and decoder. The corresponding parameters can be encoded in the headers of the video stream. For example, an effective choice may be to define motion information data alone with the motion vector of the centered subblock only for subblocks whose area is greater than or equal to 256 square pixels.

На стадии 73 способа 70 на фиг. 7 определенный набор данных информации о движении добавляют в список данных информации о движении, например, в список HMVP тестовой модели VCC. Этот список определяется тем, что его элементы используются для определения данных информации о движении для последующих блоков указанного текущего изображения, подлежащих кодированию/декодированию.At step 73 of method 70 in FIG. 7, the determined motion information data set is added to the motion information data list, for example, the HMVP list of the VCC test model. This list is defined in that its elements are used to determine motion information data for subsequent blocks of the specified current image to be encoded/decoded.

Различные варианты реализации предусматривают декодирование. «Декодирование» в контексте настоящей заявки может охватывать все или часть процессов, выполняемых, например, в отношении принятой кодированной последовательности для получения конечного вывода, подходящего для отображения. Согласно различным вариантам осуществления такие процессы включают один или несколько из процессов, обычно выполняемых декодером, например, энтропийное декодирование, обратное квантование, обратное преобразование и дифференциальное декодирование. Согласно различным вариантам осуществления такие процессы также или альтернативно включают процессы, выполняемые декодером различных вариантов реализации, описанных в настоящей заявке, например, работу со списками данных информации о движении для подачи в модули 170 и 275 предсказания движения на фиг. 1 и фиг. 2.Various implementations involve decoding. "Decoding" in the context of this application may cover all or part of the processes performed, for example, on a received encoded sequence to obtain a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processes also or alternatively include processes performed by the decoder of various embodiments described herein, for example, operating lists of motion information data for supply to motion prediction modules 170 and 275 in FIG. 1 and fig. 2.

В качестве дополнительных примеров, согласно одному варианту осуществления «декодирование» относится только к энтропийному декодированию, согласно другому варианту осуществления «декодирование» относится только к дифференциальному декодированию, и согласно другому варианту осуществления «декодирование» относится к комбинации энтропийного декодирования и дифференциального декодирования. То, относится ли фраза «процесс декодирования» конкретно к подмножеству операций или в целом к процессу декодирования в более широком смысле, будет ясно на основе контекста конкретных описаний и, как полагается, будет понятно специалистам в данной области техники.As further examples, in one embodiment, “decoding” refers only to entropy decoding, in another embodiment, “decoding” refers only to differential decoding, and in another embodiment, “decoding” refers to a combination of entropy decoding and differential decoding. Whether the phrase “decoding process” refers specifically to a subset of operations or generally to the decoding process more broadly will be clear based on the context of the specific descriptions and is expected to be clear to those skilled in the art.

Различные варианты реализации предусматривают кодирование. Аналогично вышеприведенному описанию «декодирования», «кодирование», используемое в настоящей заявке, может охватывать все или часть процессов, выполняемых, например, в отношении входной видеопоследовательности для создания кодированного битового потока. Согласно различным вариантам осуществления такие процессы включают один или несколько из процессов, обычно выполняемых кодером, например, разбиение, дифференциальное кодирование, преобразование, квантование и энтропийное кодирование. Согласно различным вариантам осуществления такие процессы также или альтернативно включают процессы, выполняемые кодером различных вариантов реализации, описанных в настоящей заявке, например, работу со списками данных информации о движении для подачи в модули 170 и 275 предсказания движения на фиг. 1 и фиг. 2.Various implementations involve coding. Similar to the above description of “decoding,” “encoding” as used herein may encompass all or part of the processes performed, for example, on an input video sequence to create an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, such as partitioning, differential encoding, transform, quantization, and entropy encoding. In various embodiments, such processes also or alternatively include processes performed by the encoder of the various embodiments described herein, for example, operating lists of motion information data for supply to motion prediction modules 170 and 275 in FIG. 1 and fig. 2.

В качестве дополнительных примеров, согласно одному варианту осуществления «кодирование» относится только к энтропийному кодированию, согласно другому варианту осуществления «кодирование» относится только к дифференциальному кодированию, и согласно другому варианту осуществления «кодирование» относится к комбинации дифференциального кодирования и энтропийного кодирования. То, относится ли фраза «процесс кодирования» конкретно к подмножеству операций или в целом к процессу кодирования в более широком смысле, будет ясно на основе контекста конкретных описаний и, как полагается, будет понятно специалистам в данной области техники.As further examples, in one embodiment, “encoding” refers only to entropy encoding, in another embodiment, “encoding” refers only to differential encoding, and in another embodiment, “encoding” refers to a combination of differential encoding and entropy encoding. Whether the phrase “encoding process” refers specifically to a subset of operations or generally to the encoding process more generally will be clear based on the context of the specific descriptions and is expected to be clear to those skilled in the art.

Следует отметить, что элементы синтаксиса, используемые в настоящем документе, являются описательными терминами. Таким образом, они не препятствуют использованию других имен элементов синтаксиса.It should be noted that the syntax elements used in this document are descriptive terms. Thus, they do not prevent the use of other syntax element names.

Если фигура представлена в виде блок-схемы, следует понимать, что она также предоставляет структурную схему соответствующего устройства. Аналогично, когда фигура представлен в виде структурной схемы, следует понимать, что он также предоставляет блок-схему соответствующего способа/процесса.Where a figure is presented in block diagram form, it should be understood that it also provides a block diagram of the corresponding device. Likewise, when a figure is presented in the form of a block diagram, it should be understood that it also provides a flow diagram of the corresponding method/process.

Варианты реализации и аспекты, описанные в настоящем документе, могут быть реализованы, например, в способе или процессе, устройстве, программно реализованной программе, потоке данных или сигнале. Даже если описание ведется только в контексте единственной формы реализации (например, описание только в качестве способа), реализация описанных признаков также может быть выполнена в других формах (например, как устройство или программа). Устройство может быть реализовано, например, в виде соответствующего аппаратного обеспечения, программного обеспечения и программно-аппаратного обеспечения. Способы могут быть реализованы, например, процессором, который относится к устройствам обработки в целом, включая, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые ассистенты («PDA») и другие устройства, которые облегчают обмен информацией между конечными пользователями.The embodiments and aspects described herein may be implemented, for example, in a method or process, apparatus, firmware, data stream, or signal. Even if the description is only in the context of a single form of implementation (eg, described only as a method), the implementation of the described features may also be made in other forms (eg, as a device or program). The device may be implemented, for example, in the form of corresponding hardware, software and firmware. The methods may be implemented, for example, by a processor, which refers to processing devices in general, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communications devices, such as, for example, computers, cellular phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate the exchange of information between end users.

Ссылка на «один вариант осуществления» или «вариант осуществления» или «один вариант реализации» или «вариант реализации», а также другие их вариации, означает, что конкретный признак, структура, характеристика и т. д., описанные в связи с вариантом осуществления, включены по меньшей мере в один вариант осуществления. Таким образом, фразы «согласно одному варианту осуществления» или «согласно варианту осуществления» или «согласно одному варианту реализации» или «согласно варианту реализации», а также любые другие вариации в различных местах в настоящей заявке не обязательно все относятся к одному и тому же варианту осуществления.Reference to “one embodiment” or “an embodiment” or “one embodiment” or “an embodiment”, as well as other variations thereof, means that the particular feature, structure, characteristic, etc. described in connection with the embodiment implementation are included in at least one embodiment. Thus, the phrases "according to one embodiment" or "according to an embodiment" or "according to one embodiment" or "according to an embodiment", as well as any other variations in various places in this application do not necessarily all refer to the same thing embodiment.

Кроме того, настоящая заявка может относиться к «определению» различных фрагментов информации. Определение информации может включать одно или несколько из, например, оценки информации, вычисления информации, предсказания информации или извлечения информации из запоминающего устройства.In addition, the present application may relate to "defining" various pieces of information. Determining information may include one or more of, for example, evaluating information, calculating information, predicting information, or retrieving information from a storage device.

Кроме того, настоящая заявка может относиться к «осуществлению доступа» к различным фрагментам информации. Осуществление доступа к информации может включать одно или несколько из, например, получения информации, извлечения информации (например, из запоминающего устройства), сохранения информации, перемещения информации, копирования информации, вычисления информации, определения информации, предсказания информации или оценки информации.In addition, the present application may refer to "accessing" various pieces of information. Accessing information may include one or more of, for example, retrieving information, retrieving information (eg, from a storage device), storing information, moving information, copying information, calculating information, determining information, predicting information, or evaluating information.

Кроме того, настоящая заявка может относиться к «получению» различных фрагментов информации. Получение, как и «осуществление доступа», является широким термином. Получение информации может включать один или несколько из, например, осуществления доступа к информации или извлечение информации (например, из запоминающего устройства). Кроме того, «получение» обычно участвует, так или иначе, во время таких операций, как, например, хранение информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, предсказание информации или оценка информации.In addition, the present application may refer to "obtaining" various pieces of information. Obtaining, like “accessing,” is a broad term. Receiving information may include one or more of, for example, accessing information or retrieving information (eg, from a storage device). In addition, "receiving" is usually involved in one way or another during operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, computing information, determining information, predicting information, or evaluating information.

Следует понимать, что использование любого из следующего: «/», «и/или» и «по меньшей мере один из», например, в случаях «А/В», «А и/или В» и «по меньшей мере одно из А и В», предназначено для охвата выбора только первого перечисленного варианта (А), или выбора только второго перечисленного варианта (В), или выбора обоих вариантов (А и В). В качестве дополнительного примера в случаях «А, В и/или С» и «по меньшей мере одно из А, В и С», такая фраза охватывает выбор только первого перечисленного варианта (А), выбор только второго перечисленного варианта (В), или выбор только третьего перечисленного варианта (С), или выбор первого и второго перечисленных вариантов (А и В), или выбор только первого и третьего перечисленных вариантов (А и С), или выбор только второго и третьего перечисленных вариантов (В и С), или выбор всех трех вариантов (А, В и С). Это объяснение может быть расширено, так как является очевидным для специалиста в данной области техники, на столько объектов, сколько перечислено.It should be understood that the use of any of the following: "/", "and/or" and "at least one of", for example, in the cases of "A/B", "A and/or B" and "at least one of A and B" is intended to cover the selection of only the first option listed (A), or the selection of only the second option listed (B), or the selection of both options (A and B). As a further example, in the cases of "A, B and/or C" and "at least one of A, B and C", such phrase covers the selection of only the first listed option (A), the selection of only the second listed option (B), or selecting only the third option listed (C), or selecting only the first and second options listed (A and B), or selecting only the first and third options listed (A and C), or selecting only the second and third options listed (B and C) , or selecting all three options (A, B and C). This explanation can be extended, since it is obvious to a person skilled in the art, to as many objects as listed.

Также в контексте настоящего документа выражение «сигнализация» относится, среди прочего, к указанию чего-либо соответствующему декодеру. Например, согласно некоторым вариантам осуществления кодер сообщает конкретный один из множества параметров для определения вторых данных информации из кодированных блоков режима на основании подблоков. Таким образом, согласно одному варианту осуществления одинаковый параметр используется как на стороне кодера, так и на стороне декодера. Таким образом, например, кодер может передавать (явным образом сигнализировать) конкретный параметр на декодер, вследствие чего декодер может использовать этот же конкретный параметр. И наоборот, если декодер уже имеет конкретный параметр, а также другие, то сигнализация может использоваться без передачи (неявно сигнализировать), чтобы просто дать знать декодеру и выбрать конкретный параметр. За счет избегания передачи любых фактических функций, согласно различным вариантам осуществления обеспечивается экономия битов. Следует понимать, что сигнализация может быть осуществлена различными способами. Например, один или несколько элементов синтаксиса, флагов и т. д. используются для сигнализации информации на соответствующий декодер согласно различным вариантам осуществления. Хотя выше описана глагольная форма слова «сигнализация», слово «сигнал» также может использоваться в данном документе как существительное.Also in the context of this document, the expression "signaling" refers, among other things, to indicating something to the corresponding decoder. For example, according to some embodiments, the encoder reports a particular one of a plurality of parameters for determining second information data from the encoded mode blocks based on the subblocks. Thus, according to one embodiment, the same parameter is used on both the encoder side and the decoder side. Thus, for example, an encoder can communicate (explicitly signal) a particular parameter to a decoder, whereby the decoder can use that same particular parameter. Conversely, if the decoder already has a particular parameter as well as others, then signaling can be used without transmission (implicit signaling) to simply let the decoder know and select the specific parameter. By avoiding transferring any actual functions, various embodiments achieve bit savings. It should be understood that signaling can be accomplished in a variety of ways. For example, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder according to various embodiments. Although the verb form of the word “signal” is described above, the word “signal” can also be used as a noun herein.

Как будет очевидно специалисту в данной области техники, варианты реализации могут создавать различные сигналы, отформатированные для переноса информации, которая может быть, например, сохранена или передаваться. Информация может включать, например, инструкции для выполнения способа, или данные, созданные в одном из описанных вариантов реализации. Например, сигнал может быть отформатирован для переноса битового потока описанного варианта осуществления. Такой сигнал может быть отформатирован, например, в качестве электромагнитной волны (например, с использованием радиочастотной части спектра) или в качестве сигнала основной полосы. Форматирование может включать, например, кодирование потока данных и модулирование несущей с кодированным потоком данных. Информация о том, что сигнал несет, может представлять собой, например, аналоговую или цифровую информацию. Сигнал может быть передан по различным проводным или беспроводным каналам, как известно. Сигнал может храниться на читаемом процессором носителе.As will be apparent to one skilled in the art, embodiments may create various signals formatted to carry information that may, for example, be stored or transmitted. The information may include, for example, instructions for performing a method, or data generated in one of the described embodiments. For example, the signal may be formatted to carry the bit stream of the described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (eg, using the radio frequency portion of the spectrum) or as a baseband signal. Formatting may include, for example, encoding the data stream and modulating the carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal can be transmitted through various wired or wireless channels, as is known. The signal may be stored on processor-readable media.

Claims (39)

1. Способ декодирования блоков текущего изображения, предусматривающий:1. A method for decoding blocks of the current image, providing: - декодирование подблоков первого блока текущего изображения, причем указанные подблоки декодируют на основании векторов движения, определенных в соответствии с первыми данными информации о движении, связанными с указанным первым блоком;- decoding sub-blocks of a first block of the current image, said sub-blocks being decoded based on motion vectors determined in accordance with first motion information data associated with said first block; - определение набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении, причем вторые данные информации о движении определяются в зависимости от первых данных информации о движении; и- determining a set of second motion information data depending on said first motion information data, the second motion information data being determined depending on the first motion information data; And - добавление указанного набора вторых данных информации о движении в список данных информации о движении, причем элементы указанного списка используются для определения данных информации о движении для второго блока указанного текущего изображения.- adding said set of second motion information data to the list of motion information data, wherein elements of said list are used to determine motion information data for a second block of said current image. 2. Способ по п. 1, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения выбранных подблоков указанного первого блока, причем указанные выбранные подблоки находятся в заданных положениях внутри указанного первого блока.2. The method of claim 1, wherein the second motion information data comprises a motion vector determined depending on motion vectors of selected sub-blocks of said first block, said selected sub-blocks being at predetermined positions within said first block. 3. Способ по п. 1, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения, причем указанные векторы движения находятся в указанных первых данных информации о движении.3. The method of claim 1, wherein the second motion information data comprises a motion vector determined depending on the motion vectors, said motion vectors being in said first motion information data. 4. Способ по п. 1 или 2, в котором указанная зависимость от векторов движения зависит от размера указанного первого блока или от размера указанных подблоков.4. The method according to claim 1 or 2, wherein said dependence on motion vectors depends on the size of said first block or on the size of said sub-blocks. 5. Способ по любому из пп. 1-3, в котором указанный набор вторых данных информации о движении содержит некоторое количество элементов, причем указанное количество элементов зависит от размера указанного первого блока или от размера указанных подблоков.5. Method according to any one of paragraphs. 1-3, wherein said set of second motion information data contains a number of elements, wherein said number of elements depends on the size of said first block or on the size of said sub-blocks. 6. Устройство для декодирования блоков текущего изображения, причем устройство содержит процессор, выполненный с возможностью:6. A device for decoding blocks of the current image, the device comprising a processor configured to: - декодирования подблоков первого блока текущего изображения, причем указанные подблоки декодируются на основании векторов движения, определенных в соответствии с первыми данными информации о движении, связанными с указанным первым блоком;- decoding sub-blocks of a first block of the current image, said sub-blocks being decoded based on motion vectors determined in accordance with first motion information data associated with said first block; - определения набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении, причем вторые данные информации о движении определяются в зависимости от первых данных информации о движении; и- determining a set of second motion information data depending on said first motion information data, the second motion information data being determined depending on the first motion information data; And - добавления указанного набора вторых данных информации о движении в список данных информации о движении, причем элементы указанного списка используются для определения данных информации о движении для второго блока указанного текущего изображения.- adding said set of second motion information data to a list of motion information data, wherein elements of said list are used to determine motion information data for a second block of said current image. 7. Устройство по п. 6, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения выбранных подблоков указанного первого блока, причем указанные выбранные подблоки находятся в заданных положениях внутри указанного первого блока.7. The apparatus of claim 6, wherein the second motion information data comprises a motion vector determined depending on motion vectors of selected sub-blocks of said first block, said selected sub-blocks being at predetermined positions within said first block. 8. Устройство по п. 6, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения, причем указанные векторы движения находятся в указанных первых данных информации о движении.8. The apparatus of claim 6, wherein the second motion information data comprises a motion vector determined depending on motion vectors, said motion vectors being in said first motion information data. 9. Устройство по п. 7 или 8, в котором указанная зависимость от векторов движения зависит от размера указанного первого блока или от размера указанных подблоков.9. The device according to claim 7 or 8, wherein said dependence on motion vectors depends on the size of said first block or on the size of said sub-blocks. 10. Устройство по любому из пп. 6-8, в котором указанный набор вторых данных информации о движении содержит некоторое количество элементов, причем указанное количество элементов зависит от размера указанного первого блока или от размера указанных подблоков.10. Device according to any one of paragraphs. 6-8, wherein said set of second motion information data contains a number of elements, wherein said number of elements depends on the size of said first block or the size of said sub-blocks. 11. Устройство связи пользователя, содержащее:11. User communication device containing: - устройство по любому из пп. 6-10; и- device according to any one of paragraphs. 6-10; And - по меньшей мере одно из (i) антенны, выполненной с возможностью приема сигнала, причем сигнал содержит декодированные блоки изображения, (ii) ограничителя полосы, выполненного с возможностью ограничения принятого сигнала полосой частот, содержащей декодированные блоки изображения, и (iii) дисплея, выполненного с возможностью отображения выходного сигнала, представляющего декодированные блоки изображения.- at least one of (i) an antenna configured to receive a signal, the signal comprising decoded image blocks, (ii) a band limiter configured to limit the received signal to a frequency band containing the decoded image blocks, and (iii) a display, configured to display an output signal representing the decoded image blocks. 12. Способ кодирования блоков текущего изображения, предусматривающий:12. A method for encoding blocks of the current image, providing: - кодирование подблоков первого блока текущего изображения, причем указанные подблоки кодируют на основании векторов движения, определенных в соответствии с первыми данными информации о движении, связанными с указанным первым блоком;- encoding sub-blocks of a first block of the current image, said sub-blocks being encoded based on motion vectors determined in accordance with first motion information data associated with said first block; - определение набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении, причем вторые данные информации о движении определяются в зависимости от первых данных информации о движении; и- determining a set of second motion information data depending on said first motion information data, the second motion information data being determined depending on the first motion information data; And - добавление указанного набора вторых данных информации о движении в список данных информации о движении, причем элементы указанного списка используются для определения данных информации о движении для второго блока указанного текущего изображения.- adding said set of second motion information data to the list of motion information data, wherein elements of said list are used to determine motion information data for a second block of said current image. 13. Способ по п. 12, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения выбранных подблоков указанного первого блока, причем указанные выбранные подблоки находятся в заданных положениях внутри указанного первого блока.13. The method of claim 12, wherein the second motion information data comprises a motion vector determined depending on motion vectors of selected sub-blocks of said first block, said selected sub-blocks being at predetermined positions within said first block. 14. Способ по п. 12, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения, причем указанные векторы движения находятся в указанных первых данных информации о движении.14. The method of claim 12, wherein the second motion information data comprises a motion vector determined depending on the motion vectors, said motion vectors being in said first motion information data. 15. Способ по п. 13 или 14, в котором указанная зависимость от векторов движения зависит от размера указанного первого блока или от размера указанных подблоков.15. The method of claim 13 or 14, wherein said dependence on motion vectors depends on the size of said first block or on the size of said sub-blocks. 16. Способ по любому из пп. 12-14, в котором указанный набор вторых данных информации о движении содержит некоторое количество элементов, причем указанное количество элементов зависит от размера указанного первого блока или от размера указанных подблоков.16. Method according to any one of paragraphs. 12-14, wherein said set of second motion information data comprises a number of elements, wherein said number of elements depends on the size of said first block or the size of said sub-blocks. 17. Устройство для кодирования блоков текущего изображения, причем устройство содержит процессор, выполненный с возможностью:17. A device for encoding blocks of the current image, the device comprising a processor configured to: - кодирования подблоков первого блока текущего изображения, причем указанные подблоки кодируются на основании векторов движения, определенных в соответствии с данными информации о движении, связанными с указанным первым блоком;- encoding sub-blocks of a first block of the current image, said sub-blocks being encoded based on motion vectors determined in accordance with motion information data associated with said first block; - определения набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении, причем вторые данные информации о движении определяются в зависимости от первых данных информации о движении; и- determining a set of second motion information data depending on said first motion information data, the second motion information data being determined depending on the first motion information data; And - добавления указанного набора вторых данных информации о движении в список данных информации о движении, причем элементы указанного списка используются для определения данных информации о движении для второго блока указанного текущего изображения.- adding said set of second motion information data to a list of motion information data, wherein elements of said list are used to determine motion information data for a second block of said current image. 18. Устройство по п. 17, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения выбранных подблоков указанного первого блока, причем указанные выбранные подблоки находятся в заданных положениях внутри указанного первого блока.18. The apparatus of claim 17, wherein the second motion information data comprises a motion vector determined depending on motion vectors of selected sub-blocks of said first block, said selected sub-blocks being at predetermined positions within said first block. 19. Устройство по п. 17, в котором вторые данные информации о движении содержат вектор движения, определенный в зависимости от векторов движения, причем указанные векторы движения находятся в указанных первых данных информации о движении.19. The apparatus of claim 17, wherein the second motion information data comprises a motion vector determined depending on motion vectors, said motion vectors being in said first motion information data. 20. Устройство по п. 18 или 19, в котором указанная зависимость от векторов движения зависит от размера указанного первого блока или от размера указанных подблоков.20. The device according to claim 18 or 19, wherein said dependence on motion vectors depends on the size of said first block or on the size of said sub-blocks. 21. Устройство по любому из пп. 17-20, в котором указанный набор вторых данных информации о движении содержит некоторое количество элементов, причем указанное количество элементов зависит от размера указанного первого блока или от размера указанных подблоков.21. The device according to any one of paragraphs. 17-20, wherein said set of second motion information data comprises a number of elements, wherein said number of elements depends on the size of said first block or the size of said sub-blocks. 22. Читаемый процессором носитель данных, содержащий инструкции для переноса информационного содержимого для кодирования блоков текущего изображения, для воспроизведения с использованием процессора, причем данные получают посредством:22. A processor-readable storage medium containing instructions for carrying information content for encoding blocks of a current image for reproduction using the processor, the data being obtained by: - кодирования подблоков первого блока текущего изображения, причем указанные подблоки кодируют на основании векторов движения, определенных в соответствии с первыми данными информации о движении, связанными с указанным первым блоком;- encoding sub-blocks of a first block of the current image, said sub-blocks being encoded based on motion vectors determined in accordance with first motion information data associated with said first block; - определения набора вторых данных информации о движении в зависимости от указанных первых данных информации о движении, причем вторые данные информации о движении определяются в зависимости от первых данных информации о движении; и- determining a set of second motion information data depending on said first motion information data, the second motion information data being determined depending on the first motion information data; And - добавления указанного набора вторых данных информации о движении в список данных информации о движении, причем элементы указанного списка используются для определения данных информации о движении для второго блока указанного текущего изображения.- adding said set of second motion information data to a list of motion information data, wherein elements of said list are used to determine motion information data for a second block of said current image.
RU2021138280A 2019-06-25 2020-06-18 Hmvc for affine mode and motion vector prediction mode sbtmvp RU2820339C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP19305843.5 2019-06-25

Publications (2)

Publication Number Publication Date
RU2021138280A RU2021138280A (en) 2023-07-25
RU2820339C2 true RU2820339C2 (en) 2024-06-03

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1968326A2 (en) * 2007-02-02 2008-09-10 Samsung Electronics Co., Ltd. Motion compensated frame rate upconversion in a video decoder
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017130696A1 (en) * 2016-01-29 2017-08-03 シャープ株式会社 Prediction image generation device, moving image decoding device, and moving image encoding device
WO2017148345A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
WO2018061563A1 (en) * 2016-09-27 2018-04-05 シャープ株式会社 Affine motion vector derivation device, prediction image generation device, moving image decoding device, and moving image coding device
RU2675092C1 (en) * 2015-07-03 2018-12-14 Хуавей Текнолоджиз Ко., Лтд. Method for predicting the image and the device for predicting the image

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1968326A2 (en) * 2007-02-02 2008-09-10 Samsung Electronics Co., Ltd. Motion compensated frame rate upconversion in a video decoder
RU2675092C1 (en) * 2015-07-03 2018-12-14 Хуавей Текнолоджиз Ко., Лтд. Method for predicting the image and the device for predicting the image
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017130696A1 (en) * 2016-01-29 2017-08-03 シャープ株式会社 Prediction image generation device, moving image decoding device, and moving image encoding device
WO2017148345A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
WO2018061563A1 (en) * 2016-09-27 2018-04-05 シャープ株式会社 Affine motion vector derivation device, prediction image generation device, moving image decoding device, and moving image coding device

Similar Documents

Publication Publication Date Title
JP7420807B2 (en) Ordering motion vector predictor candidates in merge list
AU2019354653B2 (en) Generalized bi-prediction and weighted prediction
KR20210134034A (en) Method and apparatus for video encoding and decoding using subblock-based local lighting compensation
US11962753B2 (en) Method and device of video coding using local illumination compensation (LIC) groups
US20230232037A1 (en) Unified process and syntax for generalized prediction in video coding/decoding
EP3706421A1 (en) Method and apparatus for video encoding and decoding based on affine motion compensation
KR20210069715A (en) Affine mode signaling in video encoding and decoding
KR20210062055A (en) Method and apparatus for video encoding and decoding using bidirectional prediction
KR20210093918A (en) Triangular and multi-hypothesis combinations for video coding and decoding
EP4218240A1 (en) Template matching prediction for versatile video coding
JP2024059909A (en) Method and device for image encoding and decoding - Patents.com
US20210360273A1 (en) Method and apparatus for video encoding and decoding using list of predictor candidates
EP3668100A1 (en) Method and device for picture encoding and decoding
US20230023837A1 (en) Subblock merge candidates in triangle merge mode
RU2820339C2 (en) Hmvc for affine mode and motion vector prediction mode sbtmvp
KR20220088939A (en) Deep intra prediction of image blocks
CN112703733A (en) Translation and affine candidates in a unified list
US20220264147A1 (en) Hmvc for affine and sbtmvp motion vector prediction modes
RU2815092C2 (en) Wide-angle intra-frame prediction with subsections
US20230156190A1 (en) Signaling of merge indices for triangle partitions
CN118339830A (en) Method and apparatus for picture encoding and decoding