WO2024117693A1 - Procédé et dispositif de codage vidéo utilisant de manière adaptative un filtre de compensation de mouvement dans une prédiction basée sur un modèle affine - Google Patents
Procédé et dispositif de codage vidéo utilisant de manière adaptative un filtre de compensation de mouvement dans une prédiction basée sur un modèle affine Download PDFInfo
- Publication number
- WO2024117693A1 WO2024117693A1 PCT/KR2023/019149 KR2023019149W WO2024117693A1 WO 2024117693 A1 WO2024117693 A1 WO 2024117693A1 KR 2023019149 W KR2023019149 W KR 2023019149W WO 2024117693 A1 WO2024117693 A1 WO 2024117693A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- subblock
- control point
- current block
- block
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 316
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 title claims abstract description 180
- 238000000034 method Methods 0.000 title claims abstract description 90
- 239000013598 vector Substances 0.000 claims abstract description 286
- 230000001419 dependent effect Effects 0.000 claims 2
- 230000009466 transformation Effects 0.000 description 27
- 238000013139 quantization Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 20
- 238000001914 filtration Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 13
- 239000000284 extract Substances 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 241000723655 Cowpea mosaic virus Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 208000034188 Stiff person spectrum disease Diseases 0.000 description 1
- 229920010524 Syndiotactic polystyrene Polymers 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 208000012112 ischiocoxopodopatellar syndrome Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000002490 spark plasma sintering Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
Definitions
- the present disclosure relates to a video coding method and device that adaptively uses a motion compensation filter in affine model-based prediction.
- video data Since video data has a larger amount of data than audio data or still image data, it requires a lot of hardware resources, including memory, to store or transmit it without processing for compression.
- an encoder when storing or transmitting video data, an encoder is used to compress the video data and store or transmit it, and a decoder receives the compressed video data, decompresses it, and plays it.
- video compression technologies include H.264/AVC, HEVC (High Efficiency Video Coding), and VVC (Versatile Video Coding), which improves coding efficiency by about 30% or more compared to HEVC.
- the affine model derives a geometric relationship for the object signal or background signal in the video that changes according to the movement of the camera or object in space and time, models the relationship, and then uses the modeled relationship as a reference signal. and apply to the original signal.
- a geometric model is calculated according to a method of deriving a control point motion vector based on the surrounding motion vectors. Additionally, motion compensation of the current block is performed by dividing the current block into subblocks and calculating the motion vector of each subblock.
- a method of performing motion compensation on a subblock basis based on an affine model reduces computational complexity compared to a method of performing motion compensation on a pixel basis, but has the disadvantage of lowering prediction accuracy. Therefore, in order to improve video coding efficiency and video quality, it is necessary to consider ways to improve prediction accuracy when predicting in subblock units using an affine model.
- the purpose is to provide a video coding method and device that adaptively adjusts the pixel positions of the reference block of each subblock based on the control point motion vectors of the affine model and applies a motion compensation filter to the adjusted pixel positions.
- the step of decoding affine model information and control point motion vector information of the current block from a bitstream where the affine model information indicates the form of an affine model, and the control point motion vector information includes a prediction method and control point motion vector differences of the control point motion vector of the current block; determining the form of the affine model based on the affine model information; Deriving control point motion vectors of the current block based on the affine model and the control point motion vector information; generating a motion vector of a subblock using control point motion vectors of the current block, wherein the subblock is generated according to division of the current block; Obtaining geometric model parameters of the subblock, wherein the geometric model parameters are defined based on control point motion vectors of the subblock and the motion vector of the subblock; Generating a reference block from a reference picture using the motion vector of the subblock; calculating positions of reference pixels in
- the step of determining affine model information of the current block and a method of predicting a control point motion vector where the affine model information represents the form of the affine model; determining the form of the affine model based on the affine model information; Deriving control point motion vectors of the current block based on the affine model; generating a motion vector of a subblock using control point motion vectors of the current block, wherein the subblock is generated according to division of the current block; determining a geometric model parameter of the subblock, wherein the geometric model parameter is defined based on control point motion vectors of the subblock and a motion vector of the subblock; Generating a reference block from a reference picture using the motion vector of the subblock; calculating positions of reference pixels in the reference block based on the geometric model parameters; Generating a prediction block of the current block by applying an interpolation filter to
- a computer-readable recording medium stores a bitstream generated by an image encoding method, wherein the image encoding method includes affine model information of a current block and a control point motion vector. ), wherein the affine model information indicates the form of the affine model; determining the form of the affine model based on the affine model information; Deriving control point motion vectors of the current block based on the affine model; generating a motion vector of a subblock using control point motion vectors of the current block, wherein the subblock is generated according to division of the current block; determining a geometric model parameter of the subblock, wherein the geometric model parameter is defined based on control point motion vectors of the subblock and a motion vector of the subblock; Generating a reference block from a reference picture using the motion vector of the subblock; calculating positions of reference pixels in the reference block based on the geometric model parameters; Generating a prediction block of the current block by applying an interpolation filter to
- the pixel positions of the reference block of each subblock are adaptively adjusted based on the control point motion vectors of the affine model.
- FIG. 1 is an example block diagram of a video encoding device that can implement the techniques of the present disclosure.
- Figure 2 is a diagram for explaining a method of dividing a block using the QTBTTT (QuadTree plus BinaryTree TernaryTree) structure.
- 3A and 3B are diagrams showing a plurality of intra prediction modes including wide-angle intra prediction modes.
- Figure 4 is an example diagram of neighboring blocks of the current block.
- Figure 5 is an example block diagram of a video decoding device that can implement the techniques of the present disclosure.
- Figure 6 is an example diagram illustrating calculation of an affine model on a pixel basis, according to an embodiment of the present disclosure.
- Figure 7 is an example diagram showing the calculation of an affine model using a center vector according to an embodiment of the present disclosure.
- Figure 8 is an example diagram showing calculation of an affine model in subblock units, according to an embodiment of the present disclosure.
- Figure 9 is an exemplary diagram showing a part of an image decoding device for affine model-based prediction according to an embodiment of the present disclosure.
- 10A and 10B are exemplary diagrams illustrating motion compensation in decimal point position pixels according to an embodiment of the present disclosure.
- 11A and 11B are exemplary diagrams illustrating motion compensation in decimal point position pixels according to another embodiment of the present disclosure.
- FIG. 12 is a flowchart illustrating a method by which an image encoding device encodes a current block, according to an embodiment of the present disclosure.
- FIG. 13 is a flowchart showing a method by which an image decoding device restores a current block, according to an embodiment of the present disclosure.
- FIG. 1 is an example block diagram of a video encoding device that can implement the techniques of the present disclosure.
- the video encoding device and its sub-configurations will be described with reference to the illustration in FIG. 1.
- the image encoding device includes a picture division unit 110, a prediction unit 120, a subtractor 130, a transform unit 140, a quantization unit 145, a rearrangement unit 150, an entropy encoding unit 155, and an inverse quantization unit. It may be configured to include (160), an inverse transform unit (165), an adder (170), a loop filter unit (180), and a memory (190).
- Each component of the video encoding device may be implemented as hardware or software, or may be implemented as a combination of hardware and software. Additionally, the function of each component may be implemented as software and a microprocessor may be implemented to execute the function of the software corresponding to each component.
- One image consists of one or more sequences including a plurality of pictures. Each picture is divided into a plurality of regions and encoding is performed for each region. For example, one picture is divided into one or more tiles and/or slices. Here, one or more tiles can be defined as a tile group. Each tile or/slice is divided into one or more Coding Tree Units (CTUs). And each CTU is divided into one or more CUs (Coding Units) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in one CTU is encoded as the syntax of the CTU.
- CTUs Coding Tree Units
- information commonly applied to all blocks within one slice is encoded as the syntax of the slice header, and information applied to all blocks constituting one or more pictures is a picture parameter set (PPS) or picture parameter set. Encoded in the header. Furthermore, information commonly referenced by multiple pictures is encoded in a sequence parameter set (SPS). And, information commonly referenced by one or more SPSs is encoded in a video parameter set (VPS). Additionally, information commonly applied to one tile or tile group may be encoded as the syntax of a tile or tile group header. Syntax included in the SPS, PPS, slice header, tile, or tile group header may be referred to as high level syntax.
- the picture division unit 110 determines the size of the CTU.
- Information about the size of the CTU (CTU size) is encoded as SPS or PPS syntax and transmitted to the video decoding device.
- the picture division unit 110 divides each picture constituting the image into a plurality of CTUs with a predetermined size and then recursively divides the CTUs using a tree structure. .
- the leaf node in the tree structure becomes the CU, the basic unit of encoding.
- the tree structure is QuadTree (QT), in which the parent node is divided into four child nodes (or child nodes) of the same size, or BinaryTree, in which the parent node is divided into two child nodes. , BT), or a TernaryTree (TT) in which the parent node is divided into three child nodes in a 1:2:1 ratio, or a structure that mixes two or more of these QT structures, BT structures, and TT structures.
- QTBT QuadTree plus BinaryTree
- QTBTTT QuadTree plus BinaryTree TernaryTree
- BTTT may be combined and referred to as MTT (Multiple-Type Tree).
- Figure 2 is a diagram to explain a method of dividing a block using the QTBTTT structure.
- the CTU can first be divided into a QT structure. Quadtree splitting can be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT.
- the first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of the lower layer is encoded by the entropy encoder 155 and signaled to the image decoding device. If the leaf node of QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, it may be further divided into either the BT structure or the TT structure. In the BT structure and/or TT structure, there may be multiple division directions.
- a second flag indicates whether the nodes have been split, and if split, an additional flag indicating the splitting direction (vertical or horizontal) and/or the splitting type (Binary). Or, a flag indicating Ternary) is encoded by the entropy encoding unit 155 and signaled to the video decoding device.
- a CU split flag (split_cu_flag) indicating whether the node is split is encoded. It could be. If the CU split flag (split_cu_flag) value indicates that it is not split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a CU (coding unit), which is the basic unit of coding. When the CU split flag (split_cu_flag) value indicates splitting, the video encoding device starts encoding from the first flag in the above-described manner.
- QTBT When QTBT is used as another example of a tree structure, there are two types: a type that horizontally splits the block of the node into two blocks of the same size (i.e., symmetric horizontal splitting) and a type that splits it vertically (i.e., symmetric vertical splitting). Branches may exist.
- a split flag (split_flag) indicating whether each node of the BT structure is divided into blocks of a lower layer and split type information indicating the type of division are encoded by the entropy encoder 155 and transmitted to the video decoding device.
- split_flag split flag
- the asymmetric form may include dividing the block of the corresponding node into two rectangular blocks with a size ratio of 1:3, or may include dividing the block of the corresponding node diagonally.
- a CU can have various sizes depending on the QTBT or QTBTTT division from the CTU.
- the block corresponding to the CU i.e., leaf node of QTBTTT
- the 'current block' the block corresponding to the CU (i.e., leaf node of QTBTTT) to be encoded or decoded
- the shape of the current block may be rectangular as well as square.
- the prediction unit 120 predicts the current block and generates a prediction block.
- the prediction unit 120 includes an intra prediction unit 122 and an inter prediction unit 124.
- each current block in a picture can be coded predictively.
- prediction of the current block is performed using intra prediction techniques (using data from the picture containing the current block) or inter prediction techniques (using data from pictures coded before the picture containing the current block). It can be done.
- Inter prediction includes both one-way prediction and two-way prediction.
- the intra prediction unit 122 predicts pixels within the current block using pixels (reference pixels) located around the current block within the current picture including the current block.
- the plurality of intra prediction modes may include two non-directional modes including a planar mode and a DC mode and 65 directional modes.
- the surrounding pixels and calculation formulas to be used are defined differently for each prediction mode.
- the directional modes (67 to 80, -1 to -14 intra prediction modes) shown by dotted arrows in FIG. 3B can be additionally used. These may be referred to as “wide angle intra-prediction modes”.
- the arrows point to corresponding reference samples used for prediction and do not indicate the direction of prediction. The predicted direction is opposite to the direction indicated by the arrow.
- Wide-angle intra prediction modes are modes that perform prediction in the opposite direction of a specific directional mode without transmitting additional bits when the current block is rectangular. At this time, among the wide-angle intra prediction modes, some wide-angle intra prediction modes available for the current block may be determined according to the ratio of the width and height of the rectangular current block.
- intra prediction modes 67 to 80 are available when the current block is in the form of a rectangle whose height is smaller than its width
- wide-angle intra prediction modes with angles larger than -135 degrees are available.
- Intra prediction modes (-1 to -14 intra prediction modes) are available when the current block has a rectangular shape with a width greater than the height.
- the intra prediction unit 122 can determine the intra prediction mode to be used to encode the current block.
- intra prediction unit 122 may encode the current block using multiple intra prediction modes and select an appropriate intra prediction mode to use from the tested modes. For example, the intra prediction unit 122 calculates rate-distortion values using rate-distortion analysis for several tested intra-prediction modes and has the best rate-distortion characteristics among the tested modes. You can also select intra prediction mode.
- the intra prediction unit 122 selects one intra prediction mode from a plurality of intra prediction modes and predicts the current block using surrounding pixels (reference pixels) and an operation formula determined according to the selected intra prediction mode.
- Information about the selected intra prediction mode is encoded by the entropy encoding unit 155 and transmitted to the video decoding device.
- the inter prediction unit 124 generates a prediction block for the current block using a motion compensation process.
- the inter prediction unit 124 searches for a block most similar to the current block in a reference picture that has been encoded and decoded before the current picture, and generates a prediction block for the current block using the searched block. Then, a motion vector (MV) corresponding to the displacement between the current block in the current picture and the prediction block in the reference picture is generated.
- MV motion vector
- motion estimation is performed on the luma component, and a motion vector calculated based on the luma component is used for both the luma component and the chroma component.
- Motion information including information about reference pictures and motion vectors used to predict the current block is encoded by the entropy encoding unit 155 and transmitted to the video decoding device.
- the inter prediction unit 124 may perform interpolation on a reference picture or reference block to increase prediction accuracy. That is, subsamples between two consecutive integer samples are interpolated by applying filter coefficients to a plurality of consecutive integer samples including the two integer samples. If the process of searching for the block most similar to the current block is performed for the interpolated reference picture, the motion vector can be expressed with precision in decimal units rather than precision in integer samples.
- the precision or resolution of the motion vector may be set differently for each target area to be encoded, for example, slice, tile, CTU, CU, etc.
- AMVR adaptive motion vector resolution
- information about the motion vector resolution to be applied to each target area must be signaled for each target area. For example, if the target area is a CU, information about the motion vector resolution applied to each CU is signaled.
- Information about motion vector resolution may be information indicating the precision of a differential motion vector, which will be described later.
- the inter prediction unit 124 may perform inter prediction using bi-prediction.
- bidirectional prediction two reference pictures and two motion vectors indicating the position of the block most similar to the current block within each reference picture are used.
- the inter prediction unit 124 selects the first reference picture and the second reference picture from reference picture list 0 (RefPicList0) and reference picture list 1 (RefPicList1), respectively, and searches for a block similar to the current block within each reference picture. Create a first reference block and a second reference block. Then, the first reference block and the second reference block are averaged or weighted to generate a prediction block for the current block.
- reference picture list 0 may be composed of pictures before the current picture in display order among the restored pictures
- reference picture list 1 may be composed of pictures after the current picture in display order among the restored pictures.
- relief pictures after the current picture may be additionally included in reference picture list 0, and conversely, relief pictures before the current picture may be additionally included in reference picture list 1. may be included.
- the motion information of the current block can be transmitted to the video decoding device by encoding information that can identify the neighboring block. This method is called ‘merge mode’.
- the inter prediction unit 124 selects a predetermined number of merge candidate blocks (hereinafter referred to as 'merge candidates') from neighboring blocks of the current block.
- the surrounding blocks for deriving merge candidates include the left block (A0), bottom left block (A1), top block (B0), and top right block (B1) adjacent to the current block in the current picture. ), and all or part of the upper left block (B2) can be used.
- a block located within a reference picture (which may be the same or different from the reference picture used to predict the current block) rather than the current picture where the current block is located may be used as a merge candidate.
- a block co-located with the current block within the reference picture or blocks adjacent to the co-located block may be additionally used as merge candidates. If the number of merge candidates selected by the method described above is less than the preset number, the 0 vector is added to the merge candidates.
- the inter prediction unit 124 uses these neighboring blocks to construct a merge list including a predetermined number of merge candidates.
- a merge candidate to be used as motion information of the current block is selected from among the merge candidates included in the merge list, and merge index information to identify the selected candidate is generated.
- the generated merge index information is encoded by the entropy encoding unit 155 and transmitted to the video decoding device.
- Merge skip mode is a special case of merge mode. After performing quantization, when all transformation coefficients for entropy encoding are close to zero, only peripheral block selection information is transmitted without transmitting residual signals. By using merge skip mode, relatively high coding efficiency can be achieved in low-motion images, still images, screen content images, etc.
- merge mode and merge skip mode are collectively referred to as merge/skip mode.
- AMVP Advanced Motion Vector Prediction
- the inter prediction unit 124 uses neighboring blocks of the current block to derive predicted motion vector candidates for the motion vector of the current block.
- the surrounding blocks used to derive predicted motion vector candidates include the left block (A0), bottom left block (A1), top block (B0), and top right block adjacent to the current block in the current picture shown in FIG. All or part of B1), and the upper left block (B2) can be used. Additionally, a block located within a reference picture (which may be the same or different from the reference picture used to predict the current block) rather than the current picture where the current block is located will be used as a surrounding block used to derive prediction motion vector candidates. It may be possible.
- a block co-located with the current block within the reference picture or blocks adjacent to the co-located block may be used. If the number of motion vector candidates is smaller than the preset number by the method described above, the 0 vector is added to the motion vector candidates.
- the inter prediction unit 124 derives predicted motion vector candidates using the motion vectors of the neighboring blocks, and determines a predicted motion vector for the motion vector of the current block using the predicted motion vector candidates. Then, the predicted motion vector is subtracted from the motion vector of the current block to calculate the differential motion vector.
- the predicted motion vector can be obtained by applying a predefined function (eg, median, average value calculation, etc.) to the predicted motion vector candidates.
- a predefined function eg, median, average value calculation, etc.
- the video decoding device also knows the predefined function.
- the neighboring blocks used to derive predicted motion vector candidates are blocks for which encoding and decoding have already been completed, the video decoding device also already knows the motion vectors of the neighboring blocks. Therefore, the video encoding device does not need to encode information to identify the predicted motion vector candidate. Therefore, in this case, information about the differential motion vector and information about the reference picture used to predict the current block are encoded.
- the predicted motion vector may be determined by selecting one of the predicted motion vector candidates.
- information for identifying the selected prediction motion vector candidate is additionally encoded, along with information about the differential motion vector and information about the reference picture used to predict the current block.
- the subtractor 130 generates a residual block by subtracting the prediction block generated by the intra prediction unit 122 or the inter prediction unit 124 from the current block.
- the converter 140 converts residual signals in a residual block containing pixel values in the spatial domain into transform coefficients in the frequency domain.
- the conversion unit 140 may convert the residual signals in the residual block by using the entire size of the residual block as a conversion unit, or divide the residual block into a plurality of subblocks and perform conversion by using the subblocks as a conversion unit. You may.
- the residual signals can be converted by dividing them into two subblocks, a transform area and a non-transformation region, and using only the transform region subblock as a transform unit.
- the transformation area subblock may be one of two rectangular blocks with a size ratio of 1:1 based on the horizontal axis (or vertical axis).
- a flag indicating that only the subblock has been converted (cu_sbt_flag), directional (vertical/horizontal) information (cu_sbt_horizontal_flag), and/or position information (cu_sbt_pos_flag) are encoded by the entropy encoding unit 155 and signaled to the video decoding device.
- the size of the transform area subblock may have a size ratio of 1:3 based on the horizontal axis (or vertical axis), and in this case, a flag (cu_sbt_quad_flag) that distinguishes the corresponding division is additionally encoded by the entropy encoding unit 155 to encode the image. Signaled to the decryption device.
- the transformation unit 140 can separately perform transformation on the residual block in the horizontal and vertical directions.
- various types of transformation functions or transformation matrices can be used.
- a pair of transformation functions for horizontal transformation and vertical transformation can be defined as MTS (Multiple Transform Set).
- the conversion unit 140 may select a conversion function pair with the best conversion efficiency among MTSs and convert the residual blocks in the horizontal and vertical directions, respectively.
- Information (mts_idx) about the transformation function pair selected from the MTS is encoded by the entropy encoder 155 and signaled to the video decoding device.
- the quantization unit 145 quantizes the transform coefficients output from the transform unit 140 using a quantization parameter and outputs the quantized transform coefficients to the entropy encoding unit 155.
- the quantization unit 145 may directly quantize a residual block related to a certain block or frame without conversion.
- the quantization unit 145 may apply different quantization coefficients (scaling values) depending on the positions of the transform coefficients within the transform block.
- the quantization matrix applied to the quantized transform coefficients arranged in two dimensions may be encoded and signaled to the video decoding device.
- the rearrangement unit 150 may rearrange coefficient values for the quantized residual values.
- the rearrangement unit 150 can change a two-dimensional coefficient array into a one-dimensional coefficient sequence using coefficient scanning.
- the realignment unit 150 can scan from DC coefficients to coefficients in the high frequency region using zig-zag scan or diagonal scan to output a one-dimensional coefficient sequence.
- a vertical scan that scans a two-dimensional coefficient array in the column direction or a horizontal scan that scans the two-dimensional block-type coefficients in the row direction may be used instead of the zig-zag scan. That is, the scan method to be used among zig-zag scan, diagonal scan, vertical scan, and horizontal scan may be determined depending on the size of the transformation unit and the intra prediction mode.
- the entropy encoding unit 155 uses various encoding methods such as CABAC (Context-based Adaptive Binary Arithmetic Code) and Exponential Golomb to encode the one-dimensional quantized transform coefficients output from the reordering unit 150.
- CABAC Context-based Adaptive Binary Arithmetic Code
- Exponential Golomb Exponential Golomb to encode the one-dimensional quantized transform coefficients output from the reordering unit 150.
- a bitstream is created by encoding the sequence.
- the entropy encoder 155 encodes information such as CTU size, CU split flag, QT split flag, MTT split type, and MTT split direction related to block splitting, so that the video decoding device can encode blocks in the same way as the video coding device. Allow it to be divided.
- the entropy encoding unit 155 encodes information about the prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and generates intra prediction information (i.e., intra prediction) according to the prediction type.
- Information about the mode) or inter prediction information coding mode of motion information (merge mode or AMVP mode), merge index in case of merge mode, information on reference picture index and differential motion vector in case of AMVP mode
- the entropy encoding unit 155 encodes information related to quantization, that is, information about quantization parameters and information about the quantization matrix.
- the inverse quantization unit 160 inversely quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients.
- the inverse transform unit 165 restores the residual block by converting the transform coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain.
- the adder 170 restores the current block by adding the restored residual block and the prediction block generated by the prediction unit 120. Pixels in the restored current block are used as reference pixels when intra-predicting the next block.
- the loop filter unit 180 restores pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. that occur due to block-based prediction and transformation/quantization. Perform filtering on them.
- the loop filter unit 180 is an in-loop filter and may include all or part of a deblocking filter 182, a Sample Adaptive Offset (SAO) filter 184, and an Adaptive Loop Filter (ALF) 186. there is.
- the deblocking filter 182 filters the boundaries between restored blocks to remove blocking artifacts caused by block-level encoding/decoding, and the SAO filter 184 and ALF 186 perform deblocking filtering. Additional filtering is performed on the image.
- the SAO filter 184 and the ALF 186 are filters used to compensate for differences between restored pixels and original pixels caused by lossy coding.
- the SAO filter 184 improves not only subjective image quality but also coding efficiency by applying an offset in units of CTU.
- the ALF 186 performs filtering on a block basis, distinguishing the edge and degree of change of the block and applying different filters to compensate for distortion.
- Information about filter coefficients to be used in ALF may be encoded and signaled to a video decoding device.
- the restored block filtered through the deblocking filter 182, SAO filter 184, and ALF 186 is stored in the memory 190.
- the reconstructed picture can be used as a reference picture for inter prediction of blocks in the picture to be encoded later.
- the video encoding device can store the bitstream of encoded video data in a non-transitory recording medium or transmit it to the video decoding device using a communication network.
- FIG. 5 is an example block diagram of a video decoding device that can implement the techniques of the present disclosure.
- the video decoding device and its sub-configurations will be described with reference to FIG. 5.
- the image decoding device includes an entropy decoding unit 510, a rearrangement unit 515, an inverse quantization unit 520, an inverse transform unit 530, a prediction unit 540, an adder 550, a loop filter unit 560, and a memory ( 570).
- each component of the video decoding device may be implemented as hardware or software, or may be implemented as a combination of hardware and software. Additionally, the function of each component may be implemented as software and a microprocessor may be implemented to execute the function of the software corresponding to each component.
- the entropy decoder 510 decodes the bitstream generated by the video encoding device, extracts information related to block division, determines the current block to be decoded, and provides prediction information and residual signals needed to restore the current block. Extract information about
- the entropy decoder 510 extracts information about the CTU size from a Sequence Parameter Set (SPS) or Picture Parameter Set (PPS), determines the size of the CTU, and divides the picture into CTUs of the determined size. Then, the CTU is determined as the highest layer of the tree structure, that is, the root node, and the CTU is divided using the tree structure by extracting the division information for the CTU.
- SPS Sequence Parameter Set
- PPS Picture Parameter Set
- the first flag (QT_split_flag) related to the division of the QT first extracts the first flag (QT_split_flag) related to the division of the QT and split each node into four nodes of the lower layer. And, for the node corresponding to the leaf node of QT, the second flag (mtt_split_flag) and split direction (vertical / horizontal) and/or split type (binary / ternary) information related to the split of MTT are extracted and the leaf node is divided into MTT.
- each node may undergo 0 or more repetitive MTT divisions after 0 or more repetitive QT divisions. For example, MTT division may occur immediately in the CTU, or conversely, only multiple QT divisions may occur.
- the first flag (QT_split_flag) related to the division of the QT is extracted and each node is divided into four nodes of the lower layer. And, for the node corresponding to the leaf node of QT, a split flag (split_flag) indicating whether to further split into BT and split direction information are extracted.
- the entropy decoding unit 510 determines the current block to be decoded using division of the tree structure, it extracts information about the prediction type indicating whether the current block is intra-predicted or inter-predicted.
- prediction type information indicates intra prediction
- the entropy decoder 510 extracts syntax elements for intra prediction information (intra prediction mode) of the current block.
- prediction type information indicates inter prediction
- the entropy decoder 510 extracts syntax elements for inter prediction information, that is, information indicating a motion vector and a reference picture to which the motion vector refers.
- the entropy decoding unit 510 extracts information about quantized transform coefficients of the current block as quantization-related information and information about residual signals.
- the reordering unit 515 re-organizes the sequence of one-dimensional quantized transform coefficients entropy decoded in the entropy decoding unit 510 into a two-dimensional coefficient array (i.e., in reverse order of the coefficient scanning order performed by the image encoding device). block).
- the inverse quantization unit 520 inversely quantizes the quantized transform coefficients and inversely quantizes the quantized transform coefficients using a quantization parameter.
- the inverse quantization unit 520 may apply different quantization coefficients (scaling values) to quantized transform coefficients arranged in two dimensions.
- the inverse quantization unit 520 may perform inverse quantization by applying a matrix of quantization coefficients (scaling values) from an image encoding device to a two-dimensional array of quantized transform coefficients.
- the inverse transform unit 530 inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore the residual signals, thereby generating a residual block for the current block.
- the inverse transformation unit 530 when the inverse transformation unit 530 inversely transforms only a partial area (subblock) of the transformation block, a flag (cu_sbt_flag) indicating that only the subblock of the transformation block has been transformed, and directionality (vertical/horizontal) information of the subblock (cu_sbt_horizontal_flag) ) and/or by extracting the position information (cu_sbt_pos_flag) of the subblock, and inversely transforming the transformation coefficients of the corresponding subblock from the frequency domain to the spatial domain to restore the residual signals, and for the area that has not been inversely transformed, the residual signals are set to “0”. By filling in the values, the final residual block for the current block is created.
- the inverse transform unit 530 determines a transformation function or transformation matrix to be applied in the horizontal and vertical directions, respectively, using the MTS information (mts_idx) signaled from the video encoding device, and uses the determined transformation function. Inverse transformation is performed on the transformation coefficients in the transformation block in the horizontal and vertical directions.
- the prediction unit 540 may include an intra prediction unit 542 and an inter prediction unit 544.
- the intra prediction unit 542 is activated when the prediction type of the current block is intra prediction
- the inter prediction unit 544 is activated when the prediction type of the current block is inter prediction.
- the intra prediction unit 542 determines the intra prediction mode of the current block among a plurality of intra prediction modes from the syntax elements for the intra prediction mode extracted from the entropy decoder 510, and provides a reference around the current block according to the intra prediction mode. Predict the current block using pixels.
- the inter prediction unit 544 uses the syntax elements for the inter prediction mode extracted from the entropy decoder 510 to determine the motion vector of the current block and the reference picture to which the motion vector refers, and uses the motion vector and the reference picture to determine the motion vector of the current block. Use it to predict the current block.
- the adder 550 restores the current block by adding the residual block output from the inverse transform unit 530 and the prediction block output from the inter prediction unit 544 or intra prediction unit 542. Pixels in the restored current block are used as reference pixels when intra-predicting a block to be decoded later.
- the loop filter unit 560 may include a deblocking filter 562, a SAO filter 564, and an ALF 566 as an in-loop filter.
- the deblocking filter 562 performs deblocking filtering on the boundaries between restored blocks to remove blocking artifacts that occur due to block-level decoding.
- the SAO filter 564 and the ALF 566 perform additional filtering on the reconstructed block after deblocking filtering to compensate for the difference between the reconstructed pixels and the original pixels caused by lossy coding. do.
- the filter coefficient of ALF is determined using information about the filter coefficient decoded from the non-stream.
- the restoration block filtered through the deblocking filter 562, SAO filter 564, and ALF 566 is stored in the memory 570.
- the reconstructed picture is later used as a reference picture for inter prediction of blocks in the picture to be encoded.
- This embodiment relates to encoding and decoding of images (videos) as described above. More specifically, when predicting the current block in subblock units based on an affine model, Provided is a video coding method and device that adaptively adjusts the pixel positions of the reference block of each subblock based on control point motion vectors of an affine model and applies a motion compensation filter to the adjusted pixel positions.
- the following embodiments may be performed by the inter prediction unit 124 in a video encoding apparatus. Additionally, it may be performed by the inter prediction unit 544 in a video decoding apparatus.
- the video encoding device may generate signaling information related to this embodiment in terms of rate distortion optimization when encoding the current block.
- the video encoding device can encode signaling information using the entropy encoding unit 155 and then transmit it to the video decoding device.
- the video decoding device can decode signaling information related to decoding the current block from the bitstream using the entropy decoding unit 510.
- 'target block' may be used with the same meaning as the current block or coding unit (CU). or. 'Target block' may mean a partial area of a coding unit.
- the fact that the value of one flag is true indicates that the flag is set to 1. Additionally, the value of one flag being false indicates a case where the flag is set to 0.
- the affine model derives a geometric relationship for object signals or background signals in the video that change according to the movement of the camera or object in space and time, models the relationship, and then models the relationship. The relationship is applied to the reference signal and the original signal.
- a relationship representing a three-dimensional affine model for the same object is perfectly derived, perfect prediction is possible using that relationship.
- perfect predictions are only theoretically possible.
- prediction errors can be compensated using prediction signals and difference signals predicted based on modeling.
- the affine model-based prediction method has the effect of improving coding efficiency by relying on the improvement of prediction accuracy, but causes the problem of increasing computational complexity for calculating the affine model.
- Figure 6 is an example diagram illustrating calculation of an affine model on a pixel basis, according to an embodiment of the present disclosure.
- the video decoding device predicts the corresponding control point motion vector (CPMV) using the motion vector of the block adjacent to the position corresponding to the vertex (A, B, C) of the current block.
- the video decoding device models a geometric transformation relationship between the current block and the prediction block, that is, an affine model, using control point motion vectors, and then performs prediction of the current block based on the modeled transformation relationship.
- CPMV control point motion vector
- a 6-parameter model using control point motion vectors of three points A, B, and C is presented, but depending on the embodiment, a 4-parameter model using control point motion vectors of two points A, B or A, C. This can be used.
- the motion vector ( mv It can be expressed as 2.
- W and H represent the width and height of the current block.
- (cpmv ix , cpmv iy ) represents the ith control point motion vector.
- the predicted value for each pixel of the current block can be predicted using a motion vector calculated according to Equation 1 or Equation 2.
- CPMVP4 may be defined for position D, as shown in the example of FIG. 6. Since location D is a pixel that has not yet been restored, the motion vector of a co-located pixel in the reference picture can be used as CPMVP4.
- CPMVP represents a control point motion vector predictor in affine AMVP mode.
- affine merge mode motion vector difference (MVD) is not transmitted, so CPMVP is the same as CPMV.
- affine AMVP mode motion vector differences are transmitted, so CPMV can be calculated by adding CPMVP and MVD.
- FIG. 6 shows a method using a combination among the control point motion vector predictor generation methods in the affine AMVP mode. Affine merge mode and affine AMVP mode are described later.
- Figure 7 is an example diagram showing the calculation of an affine model using a center vector according to an embodiment of the present disclosure.
- the image decoding device may perform block unit prediction using each control point motion vector as the center vector, as shown in the example of FIG. 7.
- the current block can be divided into 4 blocks.
- blocks using each control point motion vector as a center vector can be predicted according to the same motion vector. Therefore, prediction accuracy may be lower compared to an embodiment in which calculation is performed on a pixel basis, but calculation complexity can be reduced.
- Figure 8 is an example diagram showing calculation of an affine model in subblock units, according to an embodiment of the present disclosure.
- an image decoding device may perform prediction on a subblock basis, as shown in the example of FIG. 8. If the horizontal or vertical size of the current block is larger than the horizontal or vertical size of the subblock, the video decoding device may divide the current block into subblocks. The video decoding device derives a control point motion vector from each vertex position of each subblock using the control point motion vectors of the current block, and then derives one representative motion vector from the control point motion vectors of each subblock. do. The video decoding device generates a prediction block in subblock units using the derived representative motion vector, and then combines the prediction blocks in subblock units to generate the first prediction block of the current block.
- the video decoding device calculates the motion vector of each subblock by substituting the center position of each subblock into (x,y) in Equation 1 or Equation 2.
- the center position may be the actual center point of the subblock or the lower right sample position of the center point.
- the center position of the subblock may be (1.5,1.5) or (2,2).
- the video decoding device generates a prediction block in subblock units using the derived motion vector, and then combines the prediction blocks in subblock units to generate the first prediction block of the current block.
- the image decoding device may generate a second prediction block by filtering the first prediction block. Thereafter, the image decoding device may generate the final prediction block of the current block using one of the first prediction block and the second prediction block.
- affine merge mode and affine AMVP mode are referred to as control point motion vector prediction methods.
- the inter prediction unit 124 of the video encoding device configures a predefined number (eg, 5) of affine merge candidate lists.
- the image encoding device derives inherited affine merge candidates from neighboring blocks of the target block.
- a merge candidate list is generated by deriving a predefined number of inheritance affine merge candidates from the surrounding samples (A0, A1, B0, B1, B2) of the target block shown in FIG. 4.
- Each of the inherited affine merge candidates included in the candidate list corresponds to a combination of two or three CPMVs.
- the video encoding device derives an inheritance affine merge candidate from the control point motion vectors of the neighboring blocks of the target block predicted in affine mode.
- the number of merge candidates derived from neighboring blocks predicted in affine mode may be limited.
- the image encoding device can derive a total of two inheritance affine merge candidates, one from A0 and A1 and one from B0, B1, and B2, from neighboring blocks predicted in affine mode.
- the priorities may be A0, A1, and B0, B1, B2.
- the video encoding device may derive the insufficient number of affine merge candidates constructed from the translational motion vectors of the surrounding blocks, as shown in the example of FIG. 6. You can.
- the video encoding device derives one control point motion vector CPMV1, CPMV2, and CPMV3 from the neighboring block group ⁇ B2, B3, A2 ⁇ , the neighboring block group ⁇ B1, B0 ⁇ , and the neighboring block group ⁇ A1, A0 ⁇ .
- the priorities within each neighboring block group may be in the order of B2, B3, A2, B1, B0, and A1, A0.
- another control point motion vector CPMV4 is derived from the co-located block C0 in the reference picture.
- the video encoding device combines two or three control point motion vectors among the four control point motion vectors to generate the insufficient number of combination affine merge candidates.
- the priorities of the union are as follows. Elements within each group are listed in the order of upper left, upper right, and lower left control point motion vectors.
- the video encoding device may add a zero motion vector as a candidate.
- the video encoding device selects a merge candidate from the merge candidate list and determines a merge index indicating this.
- the video encoding device performs affine motion prediction for the target block using the selected merge candidate. If the merge candidate consists of two control point motion vectors, affine motion prediction is performed using a 4-parameter model. On the other hand, when the merge candidate consists of three control point motion vectors, affine motion prediction is performed using a 6-parameter model.
- the video encoding device encodes the merge index and signals it to the video decoding device.
- the video decoding device decodes the merge index.
- the inter prediction unit 544 of the video decoding device constructs a merge candidate list in the same manner as the video encoding device and performs affine motion prediction using control point motion vectors corresponding to the merge candidate indicated by the merge index.
- the inter prediction unit 124 of the video encoding device determines the form of the affine model for the target block and the actual control point motion vectors accordingly.
- the video encoding device calculates the MVD, which is the difference between the actual control point motion vector for each control point and the MVP (i.e., control point motion vector predictor) of each control point, and then encodes the MVD of each control point.
- the inter prediction unit 124 configures a predefined number (eg, two) of affine AMVP candidate lists.
- the candidates included in the list each consist of a pair of two control point motion vectors.
- the candidates included in the list each consist of a pair of three control point motion vectors.
- the affine AMVP candidate list can be derived similarly to the method of constructing the affine merge candidate list described above.
- the video encoding device checks whether the reference picture of the inherited affine AMVP candidate and the reference picture of the current block are the same.
- the inherited affine AMVP candidate may be a block predicted in affine mode among the neighboring blocks (A0, A1, B0, B1, B2) of the target block shown in FIG. 4, as in the affine merge mode described above.
- the video encoding device adds the corresponding inherited affine AMVP candidate.
- the video encoding device checks whether the reference picture of all CPMVs of the combination affine AMVP candidate and the reference picture of the current block are the same.
- all CPMVPs of the combined affine AMVP candidate can be derived from the motion vectors of the surrounding samples shown in FIG. 6, as in the affine merge mode described above. If the reference picture of all CPMVPs of the combinatorial affine AMVP candidate is the same as the reference picture of the current block, the video encoding device adds the corresponding combinatorial affine AMVP candidate.
- the affine model form of the target block must be considered.
- the video encoding device uses the affine model of the surrounding block to derive two control point motion vectors (upper left and upper right control point motion vectors of the target block). If the affine model type of the target block is a 6-parameter type, three control point motion vectors (upper left, upper right, and lower left control point motion vectors of the target block) are derived using the affine model of the surrounding blocks.
- the video encoding device adds a translational motion vector as an affine AMVP candidate.
- the video encoding device adds the zero motion vector as an affine AMVP candidate.
- the video encoding device selects one candidate from the affine AMVP list and determines a candidate index indicating the selected candidate. At this time, each control point motion vector of the selected candidate corresponds to each control point motion vector predictor. In terms of optimizing coding efficiency, the video encoding device determines the actual control point motion vector for each control point of the target block and then calculates the MVD between the actual control point motion vector and the control point motion vector predictor. The video encoding device encodes the affine model form of the target block, the candidate index, and the MVD of each control point and signals them to the video decoding device.
- the image decoding device decodes the affine model form, candidate index, and MVD of each control point.
- the inter prediction unit 544 of the video decoding device generates an affine AMVP list in the same manner as the video encoding device, and selects a candidate indicated by a candidate index within the affine AMVP list.
- the video decoding device restores each control point motion vector by adding each control point motion vector predictor of the selected candidate and the corresponding MVD.
- An image decoding device performs affine motion prediction using the restored control point motion vectors.
- Figure 9 is an exemplary diagram showing a part of an image decoding device for affine model-based prediction according to an embodiment of the present disclosure.
- the video decoding device can determine an affine model, perform prediction of the current block based on the determined affine model, and finally generate a restored block of the current block.
- What is illustrated in FIG. 9 may be performed by the entropy decoding unit 510, the inter prediction unit 544, and the adder 550 of the image decoding device. Meanwhile, the same operations as illustrated in FIG. 9 may be performed by the picture segmentation unit 110, prediction unit 120, and adder 170 of the video encoding device.
- the video decoding device uses encoding information parsed from the bitstream, but the video encoding device may use encoding information set from a higher level in terms of minimizing rate distortion.
- this embodiment will be described focusing on the video decoding device.
- the inter prediction unit 544 includes an affine model determination unit 910, a control point motion vector generation unit 920, a motion vector generation unit 930, a reference block pixel position calculation unit 940, and It may include all or part of the prediction performance unit 950.
- the video encoding device transmits all or part of the affine model application flag, affine model information, control point motion vector information, and residual block.
- the affine model application flag indicates whether the current block is a block predicted according to affine model-based prediction.
- the entropy decoder 510 can decode all or part of the affine model application flag, affine model information, control point motion vector prediction method information, residual block , and reference picture index from the bitstream transmitted by the video encoding device. there is.
- the affine model application flag indicates whether the current block is a block predicted according to affine model-based prediction.
- the information of the affine prediction model indicates the type of affine model, that is, whether it is a 4-parameter model or a 6-parameter model.
- the control point motion vector information includes information related to the control point motion vector depending on the affine model, that is, the number of control point motion vectors, a control point motion vector prediction method, and control point motion vector difference values.
- the control point motion vector prediction method may be an affine merge mode or an affine AMVP mode.
- the affine model decision unit 910 determines the form of the affine model based on the information of the affine model, thereby deriving the number of control point motion vectors.
- the control point motion vector generator 920 predicts the control point motion vector for the current block. Based on the relevant syntax and prediction mode information of the surrounding relief/decoding blocks of the current block, the control point motion vector generator 920 determines the number of control point motion vectors of the current block and then generates each control point motion vector predictor.
- related syntax includes control point motion vector prediction method, reference picture index, etc.
- the control point motion vector generator 920 calculates the control point motion vector by adding the control point motion vector difference to the control point motion vector predictor. If the control point motion vector of the affine model is transmitted according to the affine merge mode, the process of adding the control point motion vector predictor and the control point motion vector difference can be omitted.
- the affine merge mode represents a method of determining the control point motion vector to be the same as the surrounding vectors without any motion vector difference.
- the motion vector generator 930 calculates a motion vector using control point motion vectors according to the unit for calculating the motion vector in the current block. For example, when the unit for calculating the motion vector is a subblock, the motion vector can be calculated in subblock units.
- the reference block pixel position calculation unit 940 calculates the positions of reference pixels of the reference block based on the accuracy of the motion vector. At this time, the integer position and fractional position of the reference pixels can be calculated.
- the prediction performing unit 950 performs interpolation filtering on reference pixels at integer positions.
- the prediction unit 950 generates a prediction block of the current block by performing motion compensation by applying an interpolation filter depending on the decimal point positions of the reference pixels to the reference pixels. Thereafter, the prediction performing unit 950 may generate a restored block of the current block by adding the prediction block and the decoded residual block.
- 10A and 10B are exemplary diagrams illustrating motion compensation in decimal point position pixels according to an embodiment of the present disclosure.
- the image decoding device uses the calculated motion vector to determine integer position pixels of the reference block, as shown in the example of FIG. 10b, and performs interpolation filtering on the corresponding pixels to compensate for motion based on fractional position pixels. Perform. That is, using interpolation filtering, the image decoding device changes integer position pixels of the reference block into decimal position pixels according to the accuracy of the motion vector.
- the image decoding device calculates integer position pixels and decimal position pixels according to Equation 3.
- Equation 3 (xSb, ySb) is the integer coordinate of the upper left pixel of the subblock.
- (mvLX[0], mvLY[0]) is the motion vector of the subblock, and IFR (Interpolation Filter Resolution) indicates the accuracy of the motion vector. For example, if the prediction accuracy is 1/16 pel, the IFR is 4. (mvLX[0]>>IFR, mvLY[0]>>IFR) represents the integer part of the motion vector, and (xSb+(mvLX[0]>>IFR), ySb+(mvLY[0]>>IFR)) represents the integer part of the motion vector. Indicates the integer coordinate of the upper left pixel of the reference block.
- (xL, yL) is an integer offset indicating the position of the pixel within the reference block. For example, in the case of a 4 ⁇ 4 subblock, 0 ⁇ xL and yL ⁇ 3 are satisfied.
- srRange is Indicates the motion offset between the reference picture and the current picture, and can generally be 0.
- (xIntL, yIntL) represents the integer position of each pixel in the reference block. As in the examples of FIGS. 10A and 10B, pixels at integer positions exist continuously.
- IBC Intra Block Copy
- searchRanage search range for application of IBC
- srRange is used to correct the search range.
- this disclosure operates in inter prediction, srRange is 0.
- (xFracL, yFracL) represents the fractional part of the motion vector of the subblock.
- the interpolation filter is determined according to the agreement between the video encoding device and the video decoding device. At this time, an interpolation filter with filter coefficients preset according to prediction direction, inter prediction mode, decimal point position, etc. is used. Alternatively, the video encoding device may calculate filter coefficients and transmit the calculated filter coefficients to the video decoding device. A video decoding device can perform interpolation filtering using decoded filter coefficients.
- integer position pixels are compensated with the values of pixels located at the same distance from the integer position pixels (i.e., pixels indicated by hatching).
- the image decoding device after deriving the geometric model parameters of each subblock based on control point motion vectors or decoding the geometric model parameters transmitted by the image encoding device, the image decoding device refers to them using the geometric model parameters. Adaptively changes the integer position of a pixel.
- 11A and 11B are exemplary diagrams illustrating motion compensation in decimal point position pixels according to another embodiment of the present disclosure.
- the video decoding device derives geometric model parameters (SubAP x , SubAP y ) based on control point motion vectors, and changes the integer position of the reference pixel using the derived geometric model parameters to compensate for motion of the subblock Perform.
- the video decoding device calculates the motion vector at the vertex of the subblock from the control point motion vector of the current block.
- the video decoding device uses the calculated motion vectors as the control point motion vector Sub_CPMV of the subblock.
- Control point motion vectors used to derive geometric model parameters for an arbitrary subblock are indicated as Sub_CPMV1, Sub_CPMV2, and Sub_CPMV3.
- Sub_CPMV1, Sub_CPMV2, and Sub_CPMV3 represent the upper left CPMV, upper right CPMV, and lower left CPMV of the subblock, respectively.
- Sub_CPMV1, Sub_CPMV2, and Sub_CPMV3 represent control point motion vectors for the subblock located in the upper left. Therefore, Sub_CPMV1 of the subblock located in the upper left corner is the same as CPMV1 of the current block. Additionally, Sub_CPMV2 of the subblock located at the top right is the same as CPMV2 of the current block, and Sub_CPMV3 of the subblock located at the bottom left is the same as CPMV3 of the current block.
- the image decoding apparatus derives the geometric model parameters (SubAP x , SubAP y ) of the subblock according to Equation 4.
- the horizontal components of Sub_CPMV1 and Sub_CPMV2 are used to calculate the horizontal component SubAP x of the geometric model parameter. For example, if the values of the control point motion vectors SubCPMV 2x , Sub_CPMV 1x , and mvLX[0] of the subblock are different, and mvLX[0] is not 0, the video decoding device sets the geometric model parameters of the subblock according to Equation 4. Derive SubAP x . If this is not the case described above, SubAP x is set to 1. Additionally, the vertical components of Sub_CPMV1 and Sub_CPMV3 are used to calculate the vertical component SubAP y of the geometric model parameter.
- the video decoding device sets the geometric model parameter SubAP y of the subblock according to Equation 4. induce. If this is not the case described above, SubAP y is set to 1. According to the clipping function, the horizontal and vertical components of the geometric model parameters each have a value of 1 or more.
- the image decoding device derives the geometric model parameters (SubAP x , SubAP x ) of the subblock according to Equation 5.
- the horizontal components of Sub_CPMV1 and Sub_CPMV2 are used to calculate the horizontal component SubAP x of the geometric model parameter. For example, if the values of the control point motion vectors SubCPMV 2x , Sub_CPMV 1x , and mvLX[0] of the subblock are different, and mvLX[0] is not 0, the video decoding device sets the geometric model parameters of the subblock according to Equation 5. Derive SubAP x . Additionally, the vertical components of Sub_CPMV1 and Sub_CPMV3 are used to calculate the vertical component SubAP y of the geometric model parameter.
- the video decoding device sets the geometric model parameter SubAP y of the subblock according to Equation 5. induce.
- the horizontal and vertical components of the geometric model parameters each have a value of 1 or more.
- the image decoding device uses the derived geometric model parameters to determine integer position pixels of the reference block, as shown in the examples of FIGS. 11A and 11B, and performs interpolation filtering on the corresponding pixels to perform motion compensation based on decimal position pixels.
- the example in FIG. 11B shows interpolation in the horizontal direction while the vertical component is fixed. Meanwhile, the image decoding device calculates integer position pixels and decimal position pixels according to Equation 6.
- Equation 6 represents the integer coordinates of the upper left pixel of the reference block.
- (xL, yL) is an integer offset indicating the position of the pixel within the reference block, and is scaled to (xL ⁇ SubAP x , yL ⁇ SubAP y ) by the geometric model parameters. Therefore, (xIntL, yIntL) represents the integer position of each pixel in the reference block. Compared to the pixels at integer positions that exist continuously in the examples of FIGS. 10A and 10B, in the examples of FIGS.
- a reference block including pixels at integer positions according to FIG. 11A may be larger than a reference block including pixels at integer positions according to the example of FIG. 10A.
- the interpolation filter is determined according to the agreement between the video encoding device and the video decoding device.
- an interpolation filter with filter coefficients preset according to prediction direction, inter prediction mode, decimal point position, etc. is used.
- the video encoding device may calculate filter coefficients and transmit the calculated filter coefficients to the video decoding device.
- a video decoding device can perform interpolation filtering using decoded filter coefficients.
- Figure 11b describes an example of interpolation in the horizontal direction, but interpolation in the vertical direction can also proceed in the same way.
- the video encoding device may calculate optimal geometric model parameters (SubAP x , SubAP y ) and then transmit the calculated geometric model parameters to the video decoding device.
- the video encoding device configures a set of geometric model parameters (SubAP x , SubAP y ) of subblocks included in the current block into a geometric model parameter list, and then indicates the geometric model parameters in the list for each subblock.
- the index can be transmitted to the video decoding device. After decoding the index, the video decoding device derives the geometric model parameters of each subblock according to the index from the list.
- the video decoding device can perform interpolation filtering on the subblock using the derived geometric model parameters and Equation 6.
- geometric model parameters according to the size of the current block, the size of the reference block, and the difference value of the control point motion vector of the current block may be preset in the form of a mapping table in the video encoding device and the video decoding device.
- the video encoding device and the video decoding device can derive a mapping index using the same method and then perform interpolation filtering using the geometric model parameters indicated by the mapping index.
- the video decoding device may limit the integer position calculated according to the geometric model parameter to within the range according to the fallback mode.
- the fallback mode limits the area to which the control point motion vectors of the current block are applied to a preset range.
- the video decoding device can forcibly change the integer position outside the preset range to the last integer position in the limited range.
- the video decoding device sets SubAP x and SubAP y to 1 and then performs interpolation filtering.
- the video decoding device unconditionally sets SubAP x and SubAP y to 1 without considering the preset range according to the fallback mode, and then performs interpolation filtering.
- FIG. 12 is a flowchart illustrating a method by which an image encoding device encodes a current block, according to an embodiment of the present disclosure.
- the video encoding device determines the affine model information of the current block and the prediction method of the control point motion vector (S1200).
- the affine model information indicates the type of affine model, that is, whether it is a 4-parameter model or a 6-parameter model.
- the control point motion vector prediction method represents affine merge mode or affine AMVP mode. In terms of rate distortion optimization, a method for predicting affine model information and control point motion vectors can be determined.
- the image encoding device determines the form of the affine model based on the affine model information (S1202).
- the video encoding device derives control point motion vectors of the current block based on the affine model (S1204).
- the video encoding device generates a motion vector of a subblock using the control point motion vectors of the current block (S1206).
- the subblock is created by dividing the current block.
- the video encoding device determines the geometric model parameters of the subblock (S1208).
- the geometric model parameters are defined as in Equation 4 based on the control point motion vectors of the subblock, the motion vector of the subblock, and the accuracy of the subblock motion vector.
- the video encoding device calculates the control point motion vectors of the subblock from the control point motion vectors of the current block based on the affine model.
- the video encoding device derives geometric model parameters using the motion vector of the subblock and the control point motion vectors of the subblock.
- the video encoding device generates a reference block from the reference picture using the motion vector of the subblock (S1210).
- the image encoding device calculates the positions of reference pixels in the reference block based on the geometric model parameters (S1212).
- the image encoding device generates the prediction block of the current block by applying an interpolation filter to the reference pixels to generate predicted values of the subblock (S1214).
- the video encoding device encodes the affine model information and the prediction method of the control point motion vector (S1216).
- the video encoding device derives an index indicating a geometric model parameter from a preset geometric model parameter list and then encodes the derived index. Additionally, the image encoding device may generate a residual block by subtracting the prediction block from the original block of the current block, and encode the generated residual block.
- FIG. 13 is a flowchart showing a method by which an image decoding device restores a current block, according to an embodiment of the present disclosure.
- the video decoding device decodes the affine model information of the current block and the control point motion vector information from the bitstream (S1300).
- the affine model information indicates the type of affine model, that is, whether it is a 4-parameter model or a 6-parameter model.
- Control point motion vector information includes a control point motion vector prediction method and control point motion vector differences.
- the control point motion vector prediction method represents affine merge mode or affine AMVP mode.
- the video decoding device determines the form of the affine model based on the affine model information (S1302).
- the video decoding device derives control point motion vectors of the current block based on the affine model and control point motion vector information (S1304).
- the video decoding device generates a motion vector of a subblock using the control point motion vectors of the current block (S1306).
- the subblock is created by dividing the current block.
- the video decoding device acquires the geometric model parameters of the subblock (S1308).
- the geometric model parameters are defined as in Equation 4 based on the control point motion vectors of the subblock, the motion vector of the subblock, and the accuracy of the subblock motion vector.
- an image decoding apparatus calculates control point motion vectors of a subblock from control point motion vectors of the current block based on an affine model.
- the video decoding device derives geometric model parameters using the motion vector of the subblock and the control point motion vectors of the subblock.
- an image decoding device decodes an index indicating a geometric model parameter from a bitstream.
- the video decoding device derives geometric model parameters according to the decoded index from a preset geometric model parameter list.
- the video decoding device generates a reference block from the reference picture using the motion vector of the subblock (S1310).
- the image decoding device calculates the positions of reference pixels in the reference block based on the geometric model parameters (S1312).
- the image decoding device generates the prediction block of the current block by applying an interpolation filter to the reference pixels to generate predicted values of the subblock (S1314).
- the video decoding device decodes the residual block from the bitstream. Afterwards, the image decoding device can generate a restored block of the current block by adding the prediction block and the decoded residual block.
- Non-transitory recording media include, for example, all types of recording devices that store data in a form readable by a computer system.
- non-transitory recording media include storage media such as erasable programmable read only memory (EPROM), flash drives, optical drives, magnetic hard drives, and solid state drives (SSD).
- EPROM erasable programmable read only memory
- SSD solid state drives
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Le présent mode de réalisation concerne un procédé et un dispositif de codage vidéo utilisant de manière adaptative un filtre de compensation de mouvement dans une prédiction basée sur un modèle affine. Dans le présent mode de réalisation, un dispositif de décodage d'image décode des informations de vecteur de mouvement de point de commande et des informations de modèle affine d'un bloc courant. Le dispositif de décodage d'image détermine une forme d'un modèle affine sur la base des informations de modèle affine et dérive des vecteurs de mouvement de point de commande du bloc courant sur la base du modèle affine et des informations de vecteur de mouvement de point de commande. Le dispositif de décodage d'image génère un vecteur de mouvement d'un sous-bloc au moyen des vecteurs de mouvement de point de commande du bloc courant et acquiert un paramètre de modèle géométrique du sous-bloc. Le dispositif de décodage d'image génère un bloc de référence à partir d'une image de référence au moyen du vecteur de mouvement du sous-bloc, et calcule des positions de pixels de référence dans le bloc de référence sur la base du paramètre de modèle géométrique. Le dispositif de décodage d'image applique un filtre d'interpolation aux pixels de référence afin de générer des valeurs de prédiction du sous-bloc, générant ainsi un bloc de prédiction du bloc courant.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0162309 | 2022-11-29 | ||
KR20220162309 | 2022-11-29 | ||
KR10-2023-0163967 | 2023-11-23 | ||
KR1020230163967A KR20240080128A (ko) | 2022-11-29 | 2023-11-23 | 아핀 모델 기반의 예측에서 움직임 보상 필터를 적응적으로 이용하는 비디오 코딩방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024117693A1 true WO2024117693A1 (fr) | 2024-06-06 |
Family
ID=91324520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/019149 WO2024117693A1 (fr) | 2022-11-29 | 2023-11-24 | Procédé et dispositif de codage vidéo utilisant de manière adaptative un filtre de compensation de mouvement dans une prédiction basée sur un modèle affine |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024117693A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200030018A (ko) * | 2018-09-11 | 2020-03-19 | 김기백 | 인터 예측을 이용한 영상 부호화/복호화 방법 및 장치 |
KR20210006306A (ko) * | 2019-07-08 | 2021-01-18 | 현대자동차주식회사 | 인터 예측을 이용하여 비디오를 부호화 및 복호화하는 방법 및 장치 |
KR20210107624A (ko) * | 2018-12-31 | 2021-09-01 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 부호화 장치, 복호 장치, 부호화 방법, 및 복호 방법 |
KR20220038791A (ko) * | 2019-09-23 | 2022-03-29 | 항조우 힉비젼 디지털 테크놀로지 컴퍼니 리미티드 | 인코딩 및 디코딩 방법, 장치 및 기기 |
US20220256185A1 (en) * | 2019-03-19 | 2022-08-11 | Tencent America LLC | Constraining sub-block motion vectors and determining adjustment values based on the constrained sub-block motion vectors |
-
2023
- 2023-11-24 WO PCT/KR2023/019149 patent/WO2024117693A1/fr unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200030018A (ko) * | 2018-09-11 | 2020-03-19 | 김기백 | 인터 예측을 이용한 영상 부호화/복호화 방법 및 장치 |
KR20210107624A (ko) * | 2018-12-31 | 2021-09-01 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 부호화 장치, 복호 장치, 부호화 방법, 및 복호 방법 |
US20220256185A1 (en) * | 2019-03-19 | 2022-08-11 | Tencent America LLC | Constraining sub-block motion vectors and determining adjustment values based on the constrained sub-block motion vectors |
KR20210006306A (ko) * | 2019-07-08 | 2021-01-18 | 현대자동차주식회사 | 인터 예측을 이용하여 비디오를 부호화 및 복호화하는 방법 및 장치 |
KR20220038791A (ko) * | 2019-09-23 | 2022-03-29 | 항조우 힉비젼 디지털 테크놀로지 컴퍼니 리미티드 | 인코딩 및 디코딩 방법, 장치 및 기기 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022186616A1 (fr) | Procédé et appareil de codage vidéo au moyen d'une dérivation d'un mode de prédiction intra | |
WO2022114770A1 (fr) | Procédé et dispositif de prédiction intra utilisant une copie de bloc sur la base d'une transformation géométrique | |
WO2024117693A1 (fr) | Procédé et dispositif de codage vidéo utilisant de manière adaptative un filtre de compensation de mouvement dans une prédiction basée sur un modèle affine | |
WO2024117533A1 (fr) | Procédé et dispositif de codage vidéo utilisant une prédiction basée sur un modèle affine | |
WO2024122886A1 (fr) | Procédé et dispositif de codage vidéo utilisant une déduction de mode de prédiction intra basée sur un modèle adaptatif | |
WO2024034861A1 (fr) | Procédé et dispositif pour un codage vidéo utilisant une prédiction basée sur un modèle | |
WO2024039088A1 (fr) | Procédé et dispositif de codage vidéo utilisant un cc-alf basé sur des relations inter-composantes non linéaires | |
WO2023224290A1 (fr) | Procédé et appareil de sélection d'échantillon de référence pour dériver un modèle de relation inter-composantes en prédiction intra | |
WO2023224280A1 (fr) | Procédé et dispositif de codage vidéo faisant appel à une prédiction mixte de composantes croisées | |
WO2023224289A1 (fr) | Procédé et appareil de codage vidéo faisant appel à une ligne de référence virtuelle | |
WO2023219288A1 (fr) | Procédé d'inter-prédiction de composante de chrominance à l'aide d'une bi-prédiction | |
WO2023219279A1 (fr) | Procédé et appareil de codage vidéo au moyen d'une prédiction inter/intra qui est basée sur une partition géométrique | |
WO2024075983A1 (fr) | Procédé et dispositif de codage vidéo utilisant une prédiction de correspondance de modèle intra basée sur des blocs multiples | |
WO2024122864A1 (fr) | Procédé et dispositif de codage vidéo à l'aide d'un ajustement de modèle pour une prédiction de signe de déplacement | |
WO2024034849A1 (fr) | Procédé et dispositif de codage vidéo utilisant une prédiction de composante de chrominance basée sur une composante de luminance | |
WO2023219301A1 (fr) | Procédé et dispositif de stockage de vecteur de mouvement pour bloc de prédiction intra | |
WO2024034886A1 (fr) | Procédé et dispositif de codage vidéo au moyen du réagencement de signaux de prédiction dans un mode de copie intra-bloc | |
WO2024111851A1 (fr) | Procédé et dispositif de codage vidéo utilisant une prédiction de subdivision intra et un saut de transformée | |
WO2023132510A1 (fr) | Procédé et dispositif de codage vidéo utilisant une fusion améliorée avec différence de vecteur de mouvement | |
WO2022031115A1 (fr) | Codage et décodage d'image par prédiction inter basée sur apprentissage profond | |
WO2023182697A1 (fr) | Procédé et appareil de codage vidéo utilisant un mode palette sur la base d'informations de proximité | |
WO2024150977A1 (fr) | Procédé et dispositif de codage vidéo utilisant des pixels de référence à distance | |
WO2023224279A1 (fr) | Procédé et appareil de codage vidéo utilisant une prédiction de mouvement géométrique | |
WO2024111834A1 (fr) | Procédé et appareil de codage vidéo utilisant une prédiction inter-composantes basée sur un échantillon de référence reconstruit | |
WO2022211463A1 (fr) | Procédé et dispositif de codage vidéo utilisant une précision de prédiction intra adaptative |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23898224 Country of ref document: EP Kind code of ref document: A1 |