WO2020181428A1 - 预测方法、编码器、解码器及计算机存储介质 - Google Patents

预测方法、编码器、解码器及计算机存储介质 Download PDF

Info

Publication number
WO2020181428A1
WO2020181428A1 PCT/CN2019/077536 CN2019077536W WO2020181428A1 WO 2020181428 A1 WO2020181428 A1 WO 2020181428A1 CN 2019077536 W CN2019077536 W CN 2019077536W WO 2020181428 A1 WO2020181428 A1 WO 2020181428A1
Authority
WO
WIPO (PCT)
Prior art keywords
coding
block
mode
affine motion
coding block
Prior art date
Application number
PCT/CN2019/077536
Other languages
English (en)
French (fr)
Inventor
梁凡
曹思琪
曹健
Original Assignee
Oppo广东移动通信有限公司
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 Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2019/077536 priority Critical patent/WO2020181428A1/zh
Priority to CN201980093457.2A priority patent/CN113597767A/zh
Priority to EP19918532.3A priority patent/EP3930327A4/en
Publication of WO2020181428A1 publication Critical patent/WO2020181428A1/zh
Priority to US17/468,552 priority patent/US11917159B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the embodiments of the present application relate to the technical field of video coding and decoding, and in particular to a prediction method, an encoder, a decoder, and a computer storage medium.
  • High Efficiency Video Coding is to adapt to high resolution and high frame rate video, and the efficiency improvement for typical screen content coding is not very high. Therefore, in view of the high contrast, limited color data, and more repetitive areas of screen content, an extended coding standard-Screen Content Coding (SCC), has been proposed on the basis of HEVC.
  • SCC Standard-Screen Content Coding
  • coding unit the basic block unit used for video coding
  • CU the basic block unit used for video coding
  • pixels in the CU share the same coding parameters to improve coding efficiency.
  • a newly proposed encoding and decoding technology is affine motion estimation and compensation, which can effectively track more complex motions, such as rotation, scaling, and deformation of moving objects, and is currently mainly used in inter-frame prediction type screen content encoding.
  • the existing scheme generally adopts the intra block copy (Intra Block Copy, IBC) coding mode, which only considers the two-dimensional (Two-Deimensional, 2D) translational motion model, resulting in further coding. Optimization space.
  • IBC Intra Block Copy
  • the embodiments of the application provide a prediction method, encoder, decoder, and computer storage medium.
  • By adding affine motion estimation it solves the non-translational scaling, rotation, and deformation of the intra-frame prediction type coding block in the screen image.
  • the phenomenon of motion further reduces the number of coding bits, thereby saving the coding rate.
  • an embodiment of the present application provides a prediction method, which is applied to an encoder, and the method includes:
  • a candidate list corresponding to the coding mode is established; wherein, the coding mode includes a first affine motion mode or a second affine motion mode, and the candidate list
  • the reference block in is spatially adjacent to the coding block, and the reference block is coded using the first affine motion mode or the second affine motion mode;
  • an embodiment of the present application provides a prediction method, which is applied to a decoder, and the method includes:
  • the coding mode includes a first affine motion mode or a second affine motion mode
  • a candidate list corresponding to the coding mode is established; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first affine motion mode or The second affine motion mode is encoded;
  • an embodiment of the present application provides an encoder, the encoder includes: a first establishment unit, a first estimation unit, and an encoding prediction unit, wherein:
  • the first establishing unit is configured to establish a candidate list corresponding to the coding mode for the coding mode adopted by the coding block in the original image frame; wherein, the coding mode includes a first affine motion mode or a second affine motion mode.
  • An affine motion mode where a reference block in the candidate list is spatially adjacent to the coding block, and the reference block is coded using a first affine motion mode or a second affine motion mode;
  • the first estimation unit is configured to perform affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block;
  • the coding prediction unit is configured to perform predictive coding on the coding block based on the coding parameters corresponding to the coding block.
  • an embodiment of the present application provides a decoder, the decoder includes: a determining unit, a second establishing unit, a second estimation unit, and a decoding prediction unit, wherein:
  • the determining unit is configured to determine an encoding mode adopted by the encoding block for an encoding block in an original image frame; wherein, the encoding mode includes a first affine motion mode or a second affine motion mode;
  • the second establishing unit is configured to establish a candidate list corresponding to the coding mode based on the determined coding mode; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block Encoding is performed using the first affine motion mode or the second affine motion mode;
  • the second estimation unit is configured to obtain the decoding parameter corresponding to the coding block according to the candidate list corresponding to the coding mode;
  • the decoding prediction unit is configured to perform predictive decoding on the coding block based on the decoding parameter corresponding to the coding block.
  • an embodiment of the present application provides an encoder, the encoder includes: a first memory and a first processor; wherein,
  • the first memory is configured to store a computer program that can run on the first processor
  • the first processor is configured to execute the steps of the method described in the first aspect when running the computer program.
  • an embodiment of the present application provides a decoder, the decoder includes: a second memory and a second processor; wherein,
  • the second memory is configured to store a computer program that can run on the second processor
  • the second processor is configured to execute the steps of the method described in the second aspect when running the computer program.
  • an embodiment of the present application provides a computer storage medium, wherein the computer storage medium stores a prediction program, and when the prediction program is executed by a first processor, the steps of the method described in the first aspect are implemented, Or when executed by the second processor, the steps of the method described in the second aspect are implemented.
  • the embodiments of the application provide a prediction method, an encoder, a decoder, and a computer storage medium.
  • the encoder establishes an encoding mode corresponding to the encoding mode for the encoding mode adopted by the encoding block in the original image frame.
  • the coding mode includes a first affine motion mode or a second affine motion mode
  • the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first Encoding in an affine motion mode or a second affine motion mode
  • performing affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block
  • Corresponding coding parameters perform predictive coding on the coding block
  • the decoder determines the coding mode adopted by the coding block
  • the coding mode includes the first affine motion mode or the second affine Motion mode
  • a candidate list corresponding to the coding mode is established; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first affine Encoding in the motion mode or the second affine motion mode; obtaining the
  • Figure 1 is a schematic structural diagram of an IBC mode provided by related technical solutions
  • FIG. 2 is a schematic flowchart of a prediction method provided by an embodiment of this application.
  • 3(a) and 3(b) are schematic diagrams of a non-translational motion structure of a coding block provided by an embodiment of the application;
  • FIG. 4(a) is a schematic diagram of motion vectors of at least two control points associated with a coding block provided by an embodiment of this application;
  • Figure 4(b) is a schematic diagram of motion vector samples of each sub-block in a coding block provided by an embodiment of the application;
  • FIG. 5 is a schematic structural diagram of constructing a candidate list based on five adjacent blocks according to an embodiment of the application
  • FIG. 6 is a schematic flowchart of another prediction method provided by an embodiment of the application.
  • FIG. 7 is a schematic diagram of the composition structure of an encoder provided by an embodiment of the application.
  • FIG. 8 is a schematic diagram of a specific hardware structure of an encoder provided by an embodiment of the application.
  • FIG. 9 is a schematic diagram of the composition structure of a decoder provided by an embodiment of the application.
  • FIG. 10 is a schematic diagram of a specific hardware structure of a decoder provided by an embodiment of the application.
  • JVET The Joint Video Exploration Team
  • VCEG Video Coding Experts Group
  • ITU-T International Telecommunication Union’s Telecommunication Standardization Sector
  • MPEG Moving Picture Experts Group
  • ISO International Organization for Standardization
  • IEC International Electrotechnical Commission
  • JEM Joint Exploration Test Model
  • VVC Versatile Video Coding
  • JVET has added many new tools to it, such as: Hybrid tree structure (Quadtree with nested multi-type tree, MT; it is composed of quadtree (Quad Tree, QT), Binary Tree (BT) and Trigeminal Tree (TT) structure), Affine motion compensation, Sub-Block Based Temporal Motion Vector Prediction , SbTMVP), adaptive motion vector accuracy (Advanced Motion Vector Resolution, AMVR), etc.
  • Hybrid tree structure Quadtree with nested multi-type tree, MT; it is composed of quadtree (Quad Tree, QT), Binary Tree (BT) and Trigeminal Tree (TT) structure
  • Affine motion compensation Sub-Block Based Temporal Motion Vector Prediction , SbTMVP
  • adaptive motion vector accuracy Advanced Motion Vector Resolution, AMVR
  • the basic principle of video coding and compression is to use the correlation between the space domain, time domain and codewords to remove redundancy as much as possible.
  • the current popular coding method is to use a block-based hybrid video coding framework to achieve video coding compression through steps such as prediction (including intra-frame prediction and inter-frame prediction), transformation, quantization, and entropy coding.
  • This coding framework has strong vitality, and HEVC still uses this block-based hybrid video coding framework.
  • the SCC coding standard was expanded on the basis of HEVC, and its standardization work was basically completed in 2016.
  • coding technologies such as IBC, Palette Mode (PLT), Adaptive Color Transform (ACT), and AMVR are newly added to improve coding efficiency.
  • SCC is used for intra prediction, in addition to the traditional intra prediction (Conventional Intra Prediction, CIP) mode, it can also include the IBC mode.
  • the IBC mode is a coding method similar to motion compensation.
  • the reference block that the coding block matches, and is represented by a block vector (Block Vector, BV).
  • the IBC mode will be described in detail below in conjunction with Figure 1.
  • FIG. 1 shows a schematic structural diagram of an IBC mode provided by related technical solutions; as shown in Figure 1, the slash-filled area is the search area (that is, the encoded area of the current image frame), and the black shaded blocks are respectively.
  • the distance between the current coding block (Current CU) and the matching best prediction block (Best Block Predictor) from the current coding block to the best matching prediction block is called the block vector (Block Vector). , BV).
  • the IBC coding technology proposed for the screen content coding. The basic idea is similar to the traditional inter-frame motion estimation.
  • the reference block matching the coding block is searched in the coded area of the current frame, and the distance between the two blocks is obtained. This distance is called a block vector and is based on the block vector. Obtain the prediction residual, and finally encode the coding block.
  • the IBC mode is mainly adopted for the coding of screen content, which can also be referred to as a coding picture reference (CPR) mode.
  • CPR coding picture reference
  • the IBC mode can be divided into IBC Non-Merge mode and IBC Merge mode, and both of these modes are applicable to coding blocks less than or equal to 16 ⁇ 16.
  • this IBC mode since the reference block matching the coded block is still obtained based on the translational motion model, this IBC mode only has a higher coding efficiency for the repetitive blocks in the screen content; In the scene of screen content encoding, there are also complex motion situations such as scaling, rotation, and deformation, resulting in further optimization of encoding prediction.
  • the embodiment of the present application provides a prediction method. Based on the IBC mode, the translational motion model is replaced with an affine motion model; because of the addition of affine motion estimation, it solves the problem of coding blocks of intra-frame prediction in screen images.
  • the existence of non-translational motion phenomena such as scaling, rotation, and deformation further reduces the number of coding bits, thereby saving the coding rate.
  • the prediction method provided in the embodiment of the present application can be applied not only to the encoder, but also to the decoder, and even the encoder and the decoder can function at the same time, which is not specifically limited in the embodiment of the present application.
  • FIG. 2 shows an example of the flow of a prediction method provided by an embodiment of the present application.
  • the method is applied to an encoder, and the method may include:
  • S201 For the coding mode adopted by the coding block in the original image frame, establish a candidate list corresponding to the coding mode; wherein, the coding mode includes a first affine motion mode or a second affine motion mode, and The reference block in the candidate list is spatially adjacent to the coding block, and the reference block is coded using the first affine motion mode or the second affine motion mode;
  • S202 Perform affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain coding parameters corresponding to the coding block;
  • S203 Perform predictive coding on the coding block based on the coding parameters corresponding to the coding block.
  • affine motion estimation specifically refers to non-translational motion estimation, which is used to solve the phenomenon of non-translational motion such as scaling, rotation, and deformation existing in the coding block of the intra prediction type in the screen image.
  • “perform affine motion estimation on the coding block according to the candidate list” you can obtain multiple sets of coding parameters in the coding mode; respectively calculate coding prediction costs for different coding parameters, In order to obtain the coding prediction costs corresponding to different coding parameters; select the minimum value among these coding prediction costs, and use a set of coding parameters corresponding to the minimum value as the coding parameters corresponding to the coding mode, so that the coding block Perform predictive coding.
  • the calculation of coding prediction cost can refer to the calculation of rate distortion cost (Rate Distortion Cost, RD cost), or the calculation of sum of absolute difference cost (Sum of Absolute Differences Cost, SAD cost), or refers to the calculation of the cost of the number of bits to be transmitted (for example, the sum of the prediction residual and the number of bits required to transmit a set of BVs of the coding block), which is not specifically limited in the embodiment of the present application.
  • the coding block is the coding block to be coded in the original image frame, and the intra-frame prediction type is set. The following will mainly describe the first affine motion mode and the second affine motion mode in detail.
  • a candidate list corresponding to the coding mode is first established according to the coding mode adopted by the coding block; wherein, the coding mode includes the first affine motion Mode or second affine motion mode, the reference block in the candidate list is spatially adjacent to the coding block, and the reference block is coded using the first affine motion mode or the second affine motion mode; Then perform affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block; finally, perform predictive coding on the coding block based on the coding parameters corresponding to the coding block; Since the embodiment of the application adds affine motion estimation, it can solve the non-translational complex motion conditions such as scaling, rotation, and deformation of the intra prediction type coding block in the screen image, further reducing the number of coding bits, and saving The encoding rate.
  • affine motion estimation is a new technology of the inter prediction type.
  • inter-frame prediction is based on the motion compensation of the coding block.
  • the translational motion model is usually used for translational motion estimation, that is, it is assumed that the motion vectors (MV) of all pixels in a coding block are the same.
  • the block vector at the top left corner of the coding block is replaced; however, in actual applications, the coding block will also have non-translational motions such as scaling motion, rotation motion, and deformation motion, as shown in Figure 3(a) and Figure 3(b) respectively.
  • the rotation motion of and the zoom motion of the coding block; where ⁇ is the zoom coefficient, and the value of ⁇ is specifically set according to actual conditions, and the embodiment of the application does not specifically limit it.
  • affine motion estimation is motion compensation through the MV of the control point.
  • control points there are two modes of representation of control points, such as two control points and three control points; the coding block can use the MV of the control point to find the corresponding reference block (or called the mapping block) in the reference frame.
  • Figure 4(a) shows a schematic diagram of motion vectors of at least two control points associated with an encoding block provided by an embodiment of the present application; when the encoding block uses two control points, that is, the upper left corner and the upper right corner
  • the motion vectors of the two vertices as shown in Figure 4(a) with It is also called the four-parameter affine model; when the coding block adopts three control points, the motion vectors of the three vertices in the upper left corner, the upper right corner and the lower left corner are shown in Figure 4(a) with Also called the six-parameter affine model.
  • the motion vector of each 4 ⁇ 4 sub-block in the coding block can be derived by formula (1);
  • the motion vector of each 4 ⁇ 4 sub-block in the coding block can be derived by formula (2);
  • w and h represent the width and height of the coding block respectively, and the motion vector of the top left corner vertex The motion vector of the top right vertex The motion vector of the vertex at the bottom left corner The motion vector corresponding to each pixel (x, y) in the coding block
  • the code stream sent from the encoder to the decoder also includes two identifiers: Affine_Flag and Affine Type_Flag; here, Affine_Flag is used to identify whether the code block uses inter-frame Affine motion estimation compensation; Affine Type_Flag is used to identify the affine model used by the coding block.
  • the Affine_Flag value when the Affine_Flag value is set to 1, it means that the coding block uses inter-frame affine motion estimation compensation; when the Affine_Flag value is set to 0, it means that the coding block does not use inter-frame affine motion estimation compensation; and when Affine Type_Flag When the value is set to 1, it means that the affine model used by the coding block is a six-parameter affine model; when the Affine Type_Flag value is set to 0, it means that the affine model used by the coding block is a four-parameter affine model.
  • Figure 4(b) shows a schematic diagram of motion vector samples of each sub-block in a coding block provided by an embodiment of the present application; wherein, for the motion vector samples of each sub-block shown in Figure 4(b), First, apply the motion compensation difference filter, and then combine the motion vector derived from equation (1) or equation (2) to complete the coding prediction of each sub-block. Therefore, the use of affine motion compensation can better describe the complex motion situation.
  • the embodiment of the present application applies affine motion estimation to the coding block based on the intra-frame prediction type, thereby further reducing the number of coding bits, thereby increasing the coding code. rate.
  • the method further includes:
  • the original image frame is set as a reference frame corresponding to the coding block, so that the coding block adopts the first affine motion mode or the second affine motion mode for intra-frame prediction coding.
  • the method further includes:
  • the coding mode adopted by the coding block is the first affine motion mode , Setting the value of the merge identifier Merge_Flag of the coding block to the first value;
  • the Merge_Flag value of the coding block is set to a second value; wherein the first value is different from the second value.
  • the encoding block is set to the intra prediction type, that is, the original image frame itself needs to be set as the reference frame of the encoding block.
  • the image type needs to be modified to P frame first, and then the current original image frame needs to be placed at the end of REF_PIC_LIST_0 as a reference frame for encoding prediction.
  • the reference frame of the coded block is the original image frame and the coded block is coded using Intra Block Copy with Affine (IBCAffine)
  • the coding mode is the first affine motion mode
  • the reference frame of the coding block is the original image frame and the coding block is coded using Intra Block Copy with Affine Merge (IBCAffine Merge) based on affine motion merge
  • IBCAffine Merge Intra Block Copy with Affine Merge
  • different identifiers can also be set to distinguish.
  • traditional coding modes such as IBC Non-Merge mode and IBC Merge mode, etc.
  • the embodiments of this application can be distinguished by the newly added first identifier (indicated by IBCAffine_Flag).
  • the value of IBCAffine_Flag can be set to the first value; when the coding mode of the embodiment of the present application is adopted, the value of IBCAffine_Flag can be set to the second value; wherein, the first value Different from the second value.
  • the embodiment of the present application may use the newly added second identifier to distinguish, or reuse the existing Merge_Flag identifier to distinguish; in this application
  • the multiplexing of the Merge_Flag identifier will be described as an example.
  • the coding mode is the first affine motion mode
  • the Merge_Flag value of the coding block is set to the first value
  • the coding mode is the first affine motion mode
  • the coding is The Merge_Flag value of the block is set to a second value; wherein the first value is different from the second value.
  • the first value can be represented by numbers, letters or a combination of letters
  • the second value can also be represented by numbers, letters or a combination of letters, but the first value and the second value are different.
  • the first value may be 1, and the second value may be 0; or, the first value may be true, and the second value may be false; however, the embodiment of the present application does not specifically limit it.
  • the embodiment of the present application can also multiplex two identifiers of the inter-frame affine motion mode (represented by Affine_Flag and Affine Type_Flag) .
  • Affine_Flag value is used to distinguish whether the coding block uses affine motion estimation compensation
  • Affine Type_Flag value is used to distinguish the affine model used by the coding block.
  • the Affine_Flag value when the Affine_Flag value is set to the first value, it means that the coding block uses affine motion estimation compensation, that is, the coding mode of the coding block can be the first affine motion mode or the second affine motion mode; when the Affine_Flag value is set to The second value indicates that the coding block does not use affine motion estimation compensation, that is, the coding mode of the coding block can be IBC mode; and when the Affine Type_Flag value is set to the first value, it means that the affine model used by the coding block is six.
  • Parametric affine model when the Affine Type_Flag value is set to the second value, it means that the affine model used by the coding block is a four-parameter affine model; here, the first value can be 1 or true, and the second value can be 0 or false.
  • the establishing a candidate list corresponding to the coding mode includes:
  • the adjacent blocks of the coding block are sequentially accessed in the first preset order to obtain a first candidate set; wherein, the first candidate set includes two phases Adjacent blocks, and the two adjacent blocks are both coded using the first affine motion mode or the second affine motion mode;
  • a first candidate list corresponding to the first affine motion mode is established; wherein, the first reference block in the first candidate list is obtained from the first candidate set .
  • FIG. 5 shows a schematic structural diagram of constructing a candidate list based on five adjacent blocks according to an embodiment of the present application.
  • the first affine motion mode for the five adjacent blocks A, B, C, D, and E shown in FIG. 5, in accordance with the first preset order (such as D->A, C->B-> E) to access these five adjacent blocks in sequence; when the adjacent blocks are encoded in the first affine motion mode or the second affine motion mode, that is, the value of IBCAffine_Flag is true and the value of Affine_Flag is also true.
  • the adjacent blocks meet the candidate requirements, and the motion vectors of at least two control points of the adjacent blocks can be used as a set of motion vector predictors (Motion Vector Predictor, MVP) of the coding block.
  • MVP Motion Vector Predictor
  • a phase that meets the candidate requirements can be selected from the adjacent blocks (D and A) on the left side of the coding block and the adjacent blocks (C, B, and E) above the coding block.
  • the neighboring block is used as the first reference block in the first candidate list, and then the motion vectors of at least two control points of the neighboring block are used as a set of MVPs corresponding to the first reference block to form the first candidate list.
  • the performing affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block includes:
  • the coding mode is the first affine motion mode
  • traverse the first candidate list to obtain the motion vector prediction values of at least two control points corresponding to each first reference block in the first candidate list
  • the first coding parameter represents a group with the smallest coding prediction cost obtained by the coding block in the first affine motion mode Coding parameters
  • the performing predictive coding on the coding block based on the coding parameters corresponding to the coding block includes:
  • the motion vector prediction values of at least two control points corresponding to each first reference block are respectively used as the starting point of the affine search, and the affine motion estimation calculation is performed on the coding block to obtain the coding block
  • the motion vector of the corresponding position control point including:
  • the updated motion vector is used as the motion vector of the position control point corresponding to the coding block.
  • the first candidate list is first traversed to obtain the motion vector prediction values of at least two control points corresponding to each first reference block in the first candidate list;
  • the motion vector prediction values of at least two control points corresponding to the first reference block are the starting point of the affine search, and the affine motion search is performed; among them, in the affine search process, you can try a four-parameter affine model or a six-parameter Affine model.
  • ⁇ x i and ⁇ y i represent the motion vector of the coding block, which is not linearly changed, but determined by the 4 parameters (a, b, ⁇ 0 , ⁇ 1 ) in the following formula (4) ,
  • a and b respectively represent the translational components of the pixel coordinates in the reference frame after the encoding block is rotated and transformed; ⁇ 0 , ⁇ 1 represent the parameters in the rotation matrix after the encoding block is scaled and transformed by the coefficient ⁇ ; Means Transpose from row vector to column vector.
  • G xi and G yi represent gradient values, which are calculated by Sobel gradient.
  • the prediction error of any pixel (x i , y i ) in the coding block can be calculated by the following formula (6),
  • first coded block 0 represents an arbitrary pixel point (x i, y i) of the prediction error
  • first term represents coded block any pixel (x i, y i) in the original image frame and the reference frame between Matching error
  • the second term represents the gradient matrix of the predicted value of the pixel at the corresponding position in the reference frame.
  • the motion vector of the position control point corresponding to the coding block can be derived according to equation (1); if the current selection is the six-parameter affine model, you can Derive the motion vector of the position control point corresponding to the coding block according to formula (2); then perform iterative operations according to the gradient of the predicted value and the matching error.
  • the iterative operation process is used to update the motion vector; when the number of iterative operations meets the preset At the threshold of the number of times, the prediction error at this time is the smallest, and the obtained motion vector is the motion vector after the final demand update.
  • the preset number threshold is a preset number of iterations required to measure the minimum prediction error.
  • the preset times threshold may be 5; for the six-parameter affine model, the preset times threshold may be 4; in practical applications, the preset times threshold may be based on actual The situation is specifically set, and the embodiment of the present application does not specifically limit it.
  • the block vector based on affine motion estimation (Block Vector with Affine Model, BVAffi) of the coding block in the first affine motion mode needs to meet the following condition: the control point is based on the reference point found by BVAffi ( Expressed by refPoint), and the rest of the corner points (pixels other than the control point among the four points Left-Top, Right-Top, Left-Bottom, Right-Bottom) according to formula (1) or formula (2)
  • the reference point (represented by refPoint) found by deriving the motion vector must have been encoded.
  • the reference point and the coding block may also be located in the same coding tree unit (Coding Tree Unit, CTU).
  • cost may be equal to the sum of the prediction residual and the number of bits required to transmit a set of BVAffi of the coding block; in this way, a set of coding parameters with the smallest cost is selected for storage according to the calculation result; among them, in the first affine
  • the first coding parameters corresponding to the coding block include Affine_Flag value, Affine Type_Flag value, Merge_Flag value, MVP index, Motion Vector Difference (MVD) between BVAffi and MVP, and prediction residuals.
  • the establishing a candidate list corresponding to the coding mode includes:
  • the neighboring blocks of the coding block are sequentially accessed in a second preset order to obtain a second candidate set; wherein, the second candidate set includes at least one phase Neighboring blocks, and the at least one neighboring block is coded using the first affine motion mode or the second affine motion mode;
  • the first preset order indicates the order of accessing adjacent blocks in the first affine motion mode
  • the second preset order indicates the order of accessing adjacent blocks in the second affine motion mode. Both can be Is different.
  • the first preset order may adopt the order of D->A, C->B->E
  • the second preset order may adopt The order of A->B->C->D->E.
  • the neighboring block and the coding block have a spatial neighbor relationship.
  • the second affine motion mode still referring to Fig. 5, for the five adjacent blocks A, B, C, D, and E shown in Fig. 5, according to the second preset order (such as A->B-> C->D->E) sequentially access these five adjacent blocks; when the adjacent blocks are encoded in the first affine motion mode or the second affine motion mode, that is, the value of IBCAffine_Flag is true and the value of Affine_Flag Also true, at this time the neighboring block meets the candidate requirements, the motion vectors of at least two control points of the neighboring block can be used as a set of motion vector predictor (MVP) of the coding block; The motion vectors of at least two control points of the neighboring blocks are used as a group of MVPs corresponding to the second reference block to form a second candidate list.
  • MVP motion vector predictor
  • the performing affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block includes:
  • the coding mode is the second affine motion mode
  • traverse the second candidate list to obtain the motion vector prediction values of at least two control points corresponding to each second reference block in the second candidate list
  • the second coding parameter represents a group with the smallest coding prediction cost obtained by the coding block in the second affine motion mode Coding parameters
  • the performing predictive coding on the coding block based on the coding parameters corresponding to the coding block includes:
  • the second candidate list is first traversed to obtain the motion vector prediction values of at least two control points corresponding to each second reference block in the second candidate list;
  • the motion vector prediction values of at least two control points corresponding to the second reference block try a four-parameter affine model or a six-parameter affine model for affine motion estimation; specifically, if a four-parameter affine model is used, then choose to use (1) To derive the motion vector of the position control point corresponding to the current coding block; if a six-parameter affine model is used, then choose to use formula (2) to derive the motion vector of the position control point corresponding to the current coding block.
  • cost can be equal to the sum of the prediction residual and the number of bits required to transmit a set of BVAffi of the code block; that is, the set of codes with the smallest cost is selected according to the calculation result
  • the parameters are saved; wherein, in the second affine motion mode, the second coding parameters corresponding to the coding block include the Affine_Flag value, the Affine Type_Flag value, the Merge_Flag value, the MVP index, and the prediction residual.
  • the difference between the first affine motion mode and the second affine motion mode is that the former uses the motion vector prediction values of at least two control points of the first reference block in the first candidate list as the search starting point for affine Motion search, and then perform affine motion estimation according to formula (1) or formula (2); while the latter can directly multiplex the motion vector prediction values of at least two control points of the second reference block in the second candidate list, thereby directly Perform affine motion estimation according to equation (1) or equation (2).
  • the method further includes:
  • the code stream includes at least a group of coding parameters with the smallest coding prediction cost obtained by the coding block in the coding mode through non-translational motion estimation, and the coding parameters It contains at least the value of Merge_Flag.
  • the encoder is also required to send the code stream corresponding to the encoding block to the decoder.
  • the encoder only needs to obtain the first encoding parameters (such as Affine_Flag value, Affine Type_Flag value, Merge_Flag value, MVP index, MVD, and The prediction residual, etc.) is written into the code stream, and then the code stream is sent to the decoder; where the MVP index here refers to the index in the first candidate list of a group of MVPs finally selected and used by the coding block.
  • the encoder For the second affine motion mode, on the encoder side, the encoder only needs to obtain the second encoding parameters in the encoding mode (such as Affine_Flag value, Affine Type_Flag value, Merge_Flag value, MVP index, prediction residual, etc.) Write it into the code stream, and then send the code stream to the decoder; where the MVP index here refers to the index in the second candidate list of a group of MVPs finally selected and used by the coding block. In this way, according to the code stream sent by the encoder, the reconstructed pixel value corresponding to each pixel in the encoding block can be obtained subsequently on the decoder side.
  • the second encoding parameters in the encoding mode such as Affine_Flag value, Affine Type_Flag value, Merge_Flag value, MVP index, prediction residual, etc.
  • This embodiment provides a prediction method, which is applied to the encoder; for the coding mode adopted by the coding block in the original image frame, a candidate list corresponding to the coding mode is established; wherein, the coding mode includes the first An affine motion mode or a second affine motion mode, the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first affine motion mode or the second affine motion mode Performing coding; performing affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block; performing the coding block on the coding block based on the coding parameters corresponding to the coding block Predictive coding; in this way, because the embodiment of the application adds affine motion estimation, it can solve the non-translational complex motion conditions such as scaling, rotation, and deformation of the intra prediction type coding block in the screen image, and further reduce the coding The number of bits, thereby saving the coding rate.
  • FIG. 6 shows an example of the flow of another prediction method provided by an embodiment of the present application.
  • the method is applied to a decoder, and the method may include:
  • S601 For an encoding block in an original image frame, determine an encoding mode adopted by the encoding block; wherein the encoding mode includes a first affine motion mode or a second affine motion mode;
  • S602 Based on the determined coding mode, establish a candidate list corresponding to the coding mode; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first affine motion Mode or the second affine motion mode for encoding;
  • S604 Perform predictive decoding on the coding block based on the decoding parameter corresponding to the coding block.
  • the coding mode adopted by the coding block is first determined; wherein, the coding mode includes the first affine motion mode or the second affine motion Mode; then based on the determined coding mode, a candidate list corresponding to the coding mode is established; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first affine Motion mode or the second affine motion mode; then according to the candidate list corresponding to the coding mode, the decoding parameter corresponding to the coding block is obtained; finally, the coding block is determined based on the decoding parameter corresponding to the coding block Perform predictive decoding; because the embodiment of the application adds affine motion estimation, it can solve the non-translational complex motion conditions such as scaling, rotation, and deformation of the intra-prediction type coding block in the screen image, and further reduce the coding bit Count, and save the code rate.
  • the encoder will send the code stream corresponding to the encoding block to the decoder.
  • the Merge_Flag value in the code stream is used to distinguish the coding mode used by the coding block, and the coding parameters in the code stream are used to indicate the coding prediction obtained by the coding block through non-translational motion estimation in the coding mode A set of coding parameters with the least cost.
  • the decoding parameters can be determined based on the coding parameters in the code stream and the candidate list. Since the encoding parameters are a set of encoding parameters with the smallest encoding prediction cost obtained by the encoding block through non-translational motion estimation in this encoding mode, the decoding parameters obtained according to the encoding parameters and the candidate list are also the encoding parameters in the encoding mode. A set of decoding parameters with the smallest coding prediction cost obtained through non-translational motion estimation in the coding mode.
  • the method before the determining the coding mode adopted by the coding block, the method further includes:
  • the code stream includes at least a set of coding parameters with the smallest coding prediction cost obtained by the coding block through non-translational motion estimation in the coding mode, and the coding parameters It contains at least the value of Merge_Flag.
  • the method further includes:
  • the coding block adopts inter-frame prediction coding.
  • the determining the coding mode adopted by the coding block includes:
  • the reference frame of the coding block is the original image frame and the Merge_Flag value is the first value, determining that the coding mode adopted by the coding block is the first affine motion mode
  • the coding mode adopted by the coding block is the second affine motion mode; wherein, the first value is equal to The second value is different.
  • first value can be represented by numbers, letters or a combination of letters
  • second value can also be represented by numbers, letters or a combination of letters, but the first value and the second value are different.
  • the first value may be 1, and the second value may be 0; or, the first value may be true, and the second value may be false; however, the embodiment of the present application does not specifically limit it.
  • the coding of the coding block is determined at this time
  • the mode is the first affine motion mode or the second affine motion mode; if the judgment result is no, it is determined that the coding block adopts inter-frame prediction coding, for example, the coding mode can adopt the existing inter-frame affine motion in related technical solutions mode.
  • the value of Merge_Flag can be determined; specifically, when the value of Merge_Flag is the first value, it is determined that the coding mode adopted by the coding block is the first value.
  • Affine motion mode when the value of Merge_Flag is the second value, it is determined that the coding mode adopted by the coding block is the second affine motion mode; in addition, the distinction of the affine model used by the coding block can also be determined by determining Affine Type_Flag value; specifically, when the Affine Type_Flag value is set to the first value, it means that the affine model used by the coding block is a six-parameter affine model; when the Affine Type_Flag value is set to the second value, it means the affine model used by the coding block is The affine model is a four-parameter affine model; here, the first value can be 1 or true, and the second value can be 0 or false.
  • the establishing a candidate list corresponding to the coding mode based on the determined coding mode includes:
  • the adjacent blocks of the coding block are sequentially accessed in the first preset order to obtain a first candidate set; wherein, the first candidate set includes two phases Adjacent blocks, and the two adjacent blocks are both coded using the first affine motion mode or the second affine motion mode;
  • a first candidate list corresponding to the first affine motion mode is established; wherein, the first reference block in the first candidate list is obtained from the first candidate set .
  • the obtaining the decoding parameter corresponding to the coding block according to the candidate list corresponding to the coding mode includes:
  • the coding mode is the first affine motion mode
  • the first coding parameter A coding parameter represents a group of coding parameters with the smallest coding prediction cost obtained by non-translational motion estimation of the coding block in the first affine motion mode
  • the performing predictive decoding on the coded block based on the decoding parameter corresponding to the coded block includes:
  • the corresponding first candidate list may be established on the decoder side according to the method of establishing the first candidate list on the encoder side.
  • the first coding parameters corresponding to the coding block include Affine_Flag value, Affine Type_Flag value, Merge_Flag value, MVP index, MVD and prediction residual, etc., this can be combined with the first candidate list and pass the code stream
  • the BVAffi of the encoding block can be obtained; according to the BVAffi, the predicted pixel value corresponding to each pixel of the encoding block can be obtained; plus the prediction residual in the code stream, the position of each pixel in the encoding block can be obtained. Corresponding reconstructed pixel value; thus realizing the decoding process of the coded block.
  • the establishing a candidate list corresponding to the coding mode based on the determined coding mode includes:
  • the neighboring blocks of the coding block are sequentially accessed in a second preset order to obtain a second candidate set; wherein, the second candidate set includes at least one phase Neighboring blocks, and the at least one neighboring block is coded using the first affine motion mode or the second affine motion mode;
  • the obtaining the decoding parameter corresponding to the coding block according to the candidate list corresponding to the coding mode includes:
  • the coding mode is the second affine motion mode
  • the second coding parameter represents a set of coding parameters with the smallest coding prediction cost obtained by non-translational motion estimation of the coding block in the second affine motion mode
  • the performing predictive decoding on the coded block based on the decoding parameter corresponding to the coded block includes:
  • the corresponding second candidate list can be established on the decoder side according to the method of establishing the second candidate list on the encoder side.
  • the coding block directly multiplexes the coding parameters of adjacent blocks, so there is no need to transmit MVD.
  • the second coding parameters corresponding to the coding block include Affine_Flag value, Affine Type_Flag value, Merge_Flag value, MVP index, and Prediction residuals, etc., which can be combined with the second candidate list to directly obtain the BVAffi of the coding block through the MVP index in the code stream; according to the BVAffi, the predicted pixel value corresponding to each pixel of the coding block can be obtained; plus the code stream With the prediction residuals, the reconstructed pixel value corresponding to each pixel in the coding block can be obtained; thus, the decoding processing of the coding block is also realized.
  • This embodiment provides a prediction method, which is applied to a decoder; for a coding block in an original image frame, the coding mode adopted by the coding block is determined; wherein, the coding mode includes a first affine motion mode Or the second affine motion mode; based on the determined coding mode, establish a candidate list corresponding to the coding mode; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block is Encoding using the first affine motion mode or the second affine motion mode; according to the candidate list corresponding to the encoding mode, the decoding parameter corresponding to the encoding block is obtained; based on the decoding parameter corresponding to the encoding block, the The coding block is predicted and decoded; because the embodiment of the application adds affine motion estimation, it can solve the non-translational complex motion conditions such as scaling, rotation, and deformation of the coding block of the intra prediction type in the screen image, and further reduce The number of coding bits is reduced, and the
  • FIG. 7 shows the composition structure of an encoder 70 provided by an embodiment of the present application, which may include: a first establishment unit 701, a first estimation unit 702, and an encoding prediction Unit 703; where,
  • the first establishing unit 701 is configured to establish a candidate list corresponding to the coding mode for the coding mode adopted by the coding block in the original image frame; wherein, the coding mode includes the first affine motion mode or the first affine motion mode.
  • a second affine motion mode where the reference block in the candidate list is spatially adjacent to the coding block, and the reference block is coded using the first affine motion mode or the second affine motion mode;
  • the first estimation unit 702 is configured to perform affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain the coding parameters corresponding to the coding block;
  • the coding prediction unit 703 is configured to perform predictive coding on the coding block based on the coding parameters corresponding to the coding block.
  • the encoder 70 further includes a setting unit 704 configured to set the original image frame as a reference frame corresponding to the encoding block, so that the encoding block adopts the first affine The motion mode or the second affine motion mode performs intra prediction encoding.
  • the setting unit 704 is further configured to determine when the reference frame of the coding block is the original image frame and the coding block is coded using an intra-block copy technique based on affine motion.
  • the coding mode adopted by the coding block is the first affine motion mode, and the Merge_Flag value of the coding block is set to the first value; and when the reference frame of the coding block is the original image frame and the coding block is
  • the coding mode adopted by the coding block is the second affine motion mode
  • the Merge_Flag value of the coding block is set to the second value; wherein, the The first value is different from the second value.
  • the first establishing unit 701 is specifically configured to sequentially access adjacent blocks of the encoding block in a first preset order when the encoding mode is the first affine motion mode, to obtain the first Candidate set; wherein, the first candidate set includes two adjacent blocks, and the two adjacent blocks are both encoded using the first affine motion mode or the second affine motion mode; and based on the The first candidate set establishes a first candidate list corresponding to the first affine motion mode; wherein the first reference block in the first candidate list is obtained from the first candidate set.
  • the first estimation unit 702 is specifically configured to traverse the first candidate list to obtain each first candidate list in the first candidate list when the encoding mode is the first affine motion mode.
  • the motion vector prediction values of at least two control points corresponding to the reference block; and the motion vector prediction values of the at least two control points corresponding to each first reference block are used as the starting point of the affine search to simulate the coding block.
  • the encoding block encodes a group of encoding parameters with the smallest prediction cost in the motion vector obtained in the first affine motion mode;
  • the coding prediction unit 703 is specifically configured to perform predictive coding on the coding block based on the first coding parameter corresponding to the coding block.
  • the first estimation unit 702 is specifically configured to calculate that at least one pixel of the coding block is in the corresponding reference frame based on the motion vector prediction values of at least two control points corresponding to each first reference block. And performing an iterative operation on the matching error of at least one pixel of the coding block between the original image frame and the reference frame and the gradient matrix of the predicted value, and updating the motion vector according to the iterative operation; And when the number of iterative operations meets the preset number threshold, an updated motion vector is obtained; and the updated motion vector is used as the motion vector of the position control point corresponding to the coding block.
  • the first establishing unit 701 is specifically configured to sequentially access the neighboring blocks of the coding block in a second preset order when the coding mode is the second affine motion mode to obtain the second A candidate set; wherein the second candidate set includes at least one neighboring block, and the at least one neighboring block is coded using the first affine motion mode or the second affine motion mode; and based on the The second candidate set is to establish a second candidate list corresponding to the second affine motion mode; wherein, the second reference block in the second candidate list is obtained from the second candidate set.
  • the first estimation unit 702 is specifically configured to traverse the second candidate list to obtain each second candidate list in the second candidate list when the coding mode is the second affine motion mode.
  • Motion vector prediction values of at least two control points corresponding to the reference block and based on the motion vector prediction values of the at least two control points corresponding to each second reference block, calculating the motion vector of the position control point corresponding to the coding block;
  • the coding prediction unit 703 is specifically configured to perform predictive coding on the coding block based on the second coding parameter corresponding to the coding block.
  • the encoder 70 further includes a sending unit 705 configured to send a code stream corresponding to the coding block; wherein the code stream at least includes that the coding block is in the coding mode A set of coding parameters with the smallest coding prediction cost obtained through non-translational motion estimation, and the coding parameters at least include a Merge_Flag value.
  • a "unit" may be a part of a circuit, a part of a processor, a part of a program, or software, etc., of course, may also be a module, or may be non-modular.
  • the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this embodiment is essentially or It is said that the part that contributes to the related technology or all or part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium and includes several instructions to make a computer device (which can be A personal computer, a server, or a network device, etc.) or a processor (processor) execute all or part of the steps of the method described in this embodiment.
  • the aforementioned storage media include: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
  • This embodiment provides a computer storage medium that stores a prediction program that, when executed by a first processor, implements the steps of any one of the methods described in the first embodiment.
  • FIG. 8 shows the specific hardware structure of the encoder 70 provided by the embodiment of the present application, which may include: a first network interface 801, a first memory 802, and a first Processor 803; the components are coupled together through the first bus system 804.
  • the first bus system 804 is used to implement connection and communication between these components.
  • the first bus system 804 also includes a power bus, a control bus, and a status signal bus.
  • various buses are marked as the first bus system 804 in FIG. 8. among them,
  • the first network interface 801 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
  • the first memory 802 is configured to store a computer program that can run on the first processor 803;
  • the first processor 803 is configured to execute: when the computer program is running:
  • a candidate list corresponding to the coding mode is established; wherein, the coding mode includes a first affine motion mode or a second affine motion mode, and the candidate list
  • the reference block in is spatially adjacent to the coding block, and the reference block is coded using the first affine motion mode or the second affine motion mode;
  • the first memory 802 in the embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be a random access memory (Random Access Memory, RAM), which is used as an external cache.
  • RAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • DDRSDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • Enhanced SDRAM, ESDRAM Synchronous Link Dynamic Random Access Memory
  • Synchlink DRAM Synchronous Link Dynamic Random Access Memory
  • DRRAM Direct Rambus RAM
  • the first processor 803 may be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in the first processor 803 or instructions in the form of software.
  • the above-mentioned first processor 803 may be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC application specific integrated circuit
  • FPGA ready-made programmable gate array
  • the methods, steps, and logical block diagrams disclosed in the embodiments of the present application can be implemented or executed.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the first memory 802, and the first processor 803 reads the information in the first memory 802, and completes the steps of any one of the methods described in the first embodiment in combination with its hardware.
  • the embodiments described herein can be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof.
  • the processing unit can be implemented in one or more Application Specific Integrated Circuits (ASIC), Digital Signal Processing (DSP), Digital Signal Processing Equipment (DSP Device, DSPD), programmable Logic device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), general-purpose processors, controllers, microcontrollers, microprocessors, and others for performing the functions described in this application Electronic unit or its combination.
  • ASIC Application Specific Integrated Circuits
  • DSP Digital Signal Processing
  • DSP Device Digital Signal Processing Equipment
  • PLD programmable Logic Device
  • PLD Field-Programmable Gate Array
  • FPGA Field-Programmable Gate Array
  • the technology described herein can be implemented through modules (such as procedures, functions, etc.) that perform the functions described herein.
  • the software codes can be stored in the memory and executed by the processor.
  • the memory can be implemented in the processor or external to the processor.
  • the first processor 803 is further configured to execute the steps of the method in any one of the foregoing Embodiments when the computer program is running.
  • FIG. 9 shows the composition structure of a decoder 90 provided by an embodiment of the present application, which may include: a determining unit 901, a second establishing unit 902, and a second estimation unit 903 and the decoding prediction unit 904, where
  • the determining unit 901 is configured to determine the coding mode adopted by the coding block for the coding block in the original image frame; wherein, the coding mode includes a first affine motion mode or a second affine motion mode;
  • the second establishing unit 902 is configured to establish a candidate list corresponding to the coding mode based on the determined coding mode; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference The block is coded using the first affine motion mode or the second affine motion mode;
  • the second estimation unit 903 is configured to obtain the decoding parameter corresponding to the coding block according to the candidate list corresponding to the coding mode;
  • the decoding prediction unit 904 is configured to perform predictive decoding on the coding block based on the decoding parameter corresponding to the coding block.
  • the decoder 90 further includes a receiving unit 905 configured to receive a code stream corresponding to the encoding block; wherein, the code stream at least includes that the encoding block is in the encoding mode A set of coding parameters with the smallest coding prediction cost obtained through non-translational motion estimation, and the coding parameters at least include a Merge_Flag value.
  • the decoder 90 further includes a determining unit 906 configured to determine whether the original image frame corresponds to the encoding block after receiving the code stream corresponding to the encoding block.
  • a determining unit 906 configured to determine whether the original image frame corresponds to the encoding block after receiving the code stream corresponding to the encoding block.
  • the determining unit 901 is further configured to determine that the encoding block adopts the first affine motion mode or the second affine motion mode for intra-frame prediction encoding when the original image frame is a reference frame corresponding to the encoding block And when the original image frame is not a reference frame corresponding to the coding block, determining that the coding block adopts inter-frame prediction coding.
  • the determining unit 901 is specifically configured to determine that the encoding mode adopted by the encoding block is the first value when the reference frame of the encoding block is the original image frame and the Merge_Flag value is the first value.
  • An affine motion mode and when the reference frame of the coding block is the original image frame and the Merge_Flag value is the second value, determining that the coding mode adopted by the coding block is the second affine motion mode; wherein , The first value is different from the second value.
  • the second establishing unit 902 is specifically configured to sequentially access adjacent blocks of the encoding block in a first preset order when the encoding mode is the first affine motion mode, to obtain the first Candidate set; wherein, the first candidate set includes two adjacent blocks, and the two adjacent blocks are both encoded using the first affine motion mode or the second affine motion mode; and based on the The first candidate set establishes a first candidate list corresponding to the first affine motion mode; wherein the first reference block in the first candidate list is obtained from the first candidate set.
  • the second estimation unit 903 is specifically configured to, when the coding mode is the first affine motion mode, after receiving the code stream corresponding to the coding block, obtain from the code stream A first coding parameter corresponding to the coding block; wherein, the first coding parameter represents a group of coding parameters with the smallest coding prediction cost obtained by non-translational motion estimation of the coding block in the first affine motion mode; Obtaining a first decoding parameter corresponding to the coding block based on the first candidate list and the first coding parameter;
  • the decoding prediction unit 904 is specifically configured to perform predictive decoding on the coding block based on the first decoding parameter corresponding to the coding block.
  • the second establishing unit 902 is specifically configured to sequentially access adjacent blocks of the encoding block in a second preset order when the encoding mode is the second affine motion mode, to obtain the second A candidate set; wherein the second candidate set includes at least one neighboring block, and the at least one neighboring block is coded using the first affine motion mode or the second affine motion mode; and based on the The second candidate set is to establish a second candidate list corresponding to the second affine motion mode; wherein, the second reference block in the second candidate list is obtained from the second candidate set.
  • the second estimation unit 903 is specifically configured to obtain the code stream from the code stream after receiving the code stream corresponding to the code block when the coding mode is the second affine motion mode.
  • the second coding parameter corresponding to the coding block wherein the second coding parameter represents a group of coding parameters with the smallest coding prediction cost obtained by the coding block in the second affine motion mode through non-translational motion estimation;
  • the decoding prediction unit 904 is specifically configured to perform predictive decoding on the coding block based on the second decoding parameter corresponding to the coding block.
  • This embodiment provides a computer storage medium that stores a prediction program that, when executed by a second processor, implements the steps of any one of the methods described in the second embodiment.
  • FIG. 10 shows the specific hardware structure of the decoder 90 provided by the embodiment of the present application, which may include: a second network interface 1001, a second memory 1002, and a second Processor 1003; each component is coupled together through a second bus system 1004.
  • the second bus system 1004 is used to implement connection and communication between these components.
  • the second bus system 1004 also includes a power bus, a control bus, and a status signal bus.
  • various buses are marked as the second bus system 1004 in FIG. 10. among them,
  • the second network interface 1001 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
  • the second memory 1002 is configured to store a computer program that can run on the second processor 1003;
  • the second processor 1003 is configured to execute: when the computer program is running:
  • the coding mode includes a first affine motion mode or a second affine motion mode
  • a candidate list corresponding to the coding mode is established; wherein the reference block in the candidate list is spatially adjacent to the coding block, and the reference block adopts the first affine motion mode or The second affine motion mode is encoded;
  • the second processor 1003 is further configured to execute the steps of the method described in any one of the foregoing embodiment 2 when running the computer program.
  • the hardware function of the second memory 1002 is similar to that of the first memory 802, and the hardware function of the second processor 1003 is similar to that of the first processor 803; detailed description is omitted here.
  • the encoder on the encoder side, establishes a candidate list corresponding to the encoding mode for the encoding mode adopted by the encoding block in the original image frame; wherein, the encoding mode includes the first affine motion Mode or second affine motion mode, the reference block in the candidate list is spatially adjacent to the coding block, and the reference block is coded using the first affine motion mode or the second affine motion mode; Perform affine motion estimation on the coding block according to the candidate list corresponding to the coding mode to obtain coding parameters corresponding to the coding block; perform predictive coding on the coding block based on the coding parameters corresponding to the coding block; On the decoder side, the decoder determines the encoding mode adopted by the encoding block; wherein, the encoding mode includes the first affine motion mode or the second affine motion mode; and based on the determined encoding mode, establishes a connection with the encoding mode Corresponding candidate list

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例公开了一种预测方法、编码器、解码器及计算机存储介质,该方法应用于编码器,该方法包括:针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;基于所述编码块对应的编码参数,对所述编码块进行预测编码。

Description

预测方法、编码器、解码器及计算机存储介质 技术领域
本申请实施例涉及视频编解码技术领域,尤其涉及一种预测方法、编码器、解码器及计算机存储介质。
背景技术
随着科学技术的快速发展,人们对视频观看和处理的要求越来越高,尤其是人们对屏幕内容视频(Screen Content Video,SCV)的需求日益增多。而高效率视频编码(High Efficiency Video Coding,HEVC)是为了适应高分辨率和高帧率的视频,对于典型的屏幕内容编码的效率提升并不是很高。因此,针对屏幕内容所具有的高对比度、有限色彩数据和较多重复区域等特点,在HEVC的基础上,已经提出了扩展的编码标准-屏幕内容编码(Screen Content Coding,SCC)。
在大部分编码标准中,自适应帧间/帧内预测是基于块来使用的。例如,SCC编码标准中,用于视频编码的基本块单元称为编码单元(Coding Unit,CU),CU中的像素共享相同的编码参数,以提高编码效率。针对最新提出的一个编解码技术是仿射运动估计与补偿,其能够有效地追踪更复杂的运动,比如旋转、缩放和运动对象的变形,目前主要应用于帧间预测类型的屏幕内容编码。而针对帧内预测类型,现有方案普遍采用的是帧内块复制(Intra Block Copy,IBC)编码模式,它仅考虑了二维(Two-Deimensional,2D)平移运动模型,导致编码还具有进一步的优化空间。
发明内容
本申请实施例提供一种预测方法、编码器、解码器及计算机存储介质,通过增加仿射运动估计,解决了屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移运动的现象,进一步降低了编码比特数,进而节省了编码码率。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种预测方法,所述方法应用于编码器,所述方法包括:
针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
基于所述编码块对应的编码参数,对所述编码块进行预测编码。
第二方面,本申请实施例提供了一种预测方法,所述方法应用于解码器,所述方法包括:
针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
基于所述编码块对应的解码参数,对所述编码块进行预测解码。
第三方面,本申请实施例提供了一种编码器,所述编码器包括:第一建立单元、第一估计单元和编码预测单元,其中,
所述第一建立单元,配置为针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
所述第一估计单元,配置为根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
所述编码预测单元,配置为基于所述编码块对应的编码参数,对所述编码块进行预测编码。
第四方面,本申请实施例提供了一种解码器,所述解码器包括:确定单元、第二建立单元、第二估计单元和解码预测单元,其中,
所述确定单元,配置为针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
所述第二建立单元,配置为基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
所述第二估计单元,配置为根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
所述解码预测单元,配置为基于所述编码块对应的解码参数,对所述编码块进行预测解码。
第五方面,本申请实施例提供了一种编码器,所述编码器包括:第一存储器和第一处理器;其中,
所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
所述第一处理器,用于在运行所述计算机程序时,执行如第一方面所述方法的步骤。
第六方面,本申请实施例提供了一种解码器,所述解码器包括:第二存储器和第二处理器;其中,
所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
所述第二处理器,用于在运行所述计算机程序时,执行如第二方面所述方法的步骤。
第七方面,本申请实施例提供了一种计算机存储介质,其中,所述计算机存储介质存储有预测程序,所述预测程序被第一处理器执行时实现如第一方面所述方法的步骤、或者被第二处理器执行时实现如第二方面所述方法的步骤。
本申请实施例提供了一种预测方法、编码器、解码器及计算机存储介质,在编码器侧,编码器针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;基于所述编码块对应的编码参数,对所述编码块进行预测编码;在解码器侧,解码器确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;基于所述编码块对应的解码参数,对所述编码块进行预测解码;由于在编码器侧增加了仿射运动估计,这样可以解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移运动的现象,进一步降低了编码比特数,进而节省了编码码率。
附图说明
图1为相关技术方案提供的一种IBC模式的结构示意图;
图2为本申请实施例提供的一种预测方法的流程示意图;
图3(a)和图3(b)为本申请实施例提供的一种编码块的非平移运动的结构示意图;
图4(a)为本申请实施例提供的一种编码块相关联的至少两个控制点的运动矢量示意图;
图4(b)为本申请实施例提供的一种编码块内每个子块的运动向量样本示意图;
图5为本申请实施例提供的一种基于五个相邻块构建候选列表的结构示意图;
图6为本申请实施例提供的另一种预测方法的流程示意图;
图7为本申请实施例提供的一种编码器的组成结构示意图;
图8为本申请实施例提供的一种编码器的具体硬件结构示意图;
图9为本申请实施例提供的一种解码器的组成结构示意图;
图10为本申请实施例提供的一种解码器的具体硬件结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
联合视频研究组(Joint Video Exploration Team,JVET)于2015年10月由国际电信联盟电信标准分局(ITU Telecommunication Standardization Sector,ITU-T)的视频编码专家组(Video Coding Experts Group,VCEG)和国际化标准组织(International Organization for Standardization,ISO)/国际电工委员会(International Electro technical Commission,IEC)的动态图像专家组(Moving Picture Experts Group,MPEG)所成立的一个工作组,该工作组的任务是制定下一代的视频编码标准。联合探索测试模型(Joint Exploration Test Model,JEM)为通用的参考软件平台,不同编码工具基于此平台验证。2018年4月,JVET正式命名下一代视频编码标准为多功能视频编码(Versatile Video Coding,VVC),其相应的测试模型为VTM。2018年7月,JEVT在第11次会议上建立了VVC工作草案2和VTM2的算法描述和编码方法。其中,在原先HEVC测试模型(HEVC Test Model,HM)的基础上,JVET在其中添加了许多新的工具,例如:混合树结构(Quadtree with nested multi-type tree,MT;它是由四叉树(Quad Tree,QT)、二叉树(Binary Tree,BT)和三叉树(Trigeminal Tree,TT)结构组成)、仿射运动补偿、基于子块的时域运动向量预测(Sub-Block Based Temporal Motion Vector Prediction,SbTMVP)、自适应运动向量精度(Advanced Motion Vector Resolution,AMVR)等。
视频编码压缩的基本原理是利用空域、时域和码字之间的相关性,尽可能去除冗余。目前流行的编码方式是采用基于块的混合视频编码框架,通过预测(包括帧内预测和帧间预测)、变换、量化以及熵编码等步骤来实现视频编码压缩。这种编码框架具有很强的生命力,HEVC也仍然沿用这种基于块的混合视频编码框架。
根据屏幕内容特点,在HEVC的基础上扩展出了SCC编码标准,其标准化工作在2016年已经基本完成。在SCC编码标准中,新增加了IBC、调色板模式(Palette Mode,PLT)和自适应色彩变换(Adaptive ColorTransform,ACT)以及AMVR等编码技术,以提高编码效率。当SCC作帧内预测时,除了传统帧内预测(Conventional Intra Prediction,CIP)模式之外,还可以包括IBC模式,IBC模式是一种类似于运动补偿的编码方法,在当前帧内找到与当前编码块相匹配的参考块,并且以块向量(Block Vector,BV)来表示。下面将结合图1对IBC模式进行详细介绍。
参见图1,其示出了相关技术方案提供的一种IBC模式的结构示意图;如图1所示,斜杠填充区域为搜索区域(即当前图像帧的已编码区域),黑色阴影块分别为当前的编码块(Current CU)和与之匹配的最佳预测块(Best Block Predictor),从当前的编码块指向与之匹配的最佳预测块之间的距离,称之为块向量(Block Vector,BV)。在现有的HEVC扩展标准——HEVC-SCC编码标准中,针对屏幕内容编码所提出的IBC编码技术。其基本思想类似于传统的帧间运动估计,在当前帧的已编码区域中搜索与编码块相匹配的参考块,得到两个块之间的距离,该距离称为块向量,再基于块向量获取预测残差,最后对该编码块进行编码。
在最新的VVC参考模型BMS2.1采用的方案中,针对屏幕内容的编码,主要采用IBC模式,也可以称之为编码图像参考(Coding Picture Reference,CPR)模式。这里,IBC模式又可以分为IBC Non-Merge模式和IBC Merge模式,且这两种模式都适用于小于或等于16×16的编码块。然而,在IBC模式中,由于与编码块相匹配的参考块仍然是基于平移运动模型来得到的,导致这种IBC模式只是对屏幕内容中重复出现的块所对应的编码效率较高;而在屏幕内容编码的场景中,同样存在缩放、旋转和变形等复杂运动情况,导致编码预测还具有进一步的优化空间。
本申请实施例提供了一种预测方法,在IBC模式的基础上,将平移运动模型替换为仿射运动模型;由于增加了仿射运动估计,从而解决了屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移运动的现象,进一步降低了编码比特数,进而节省了编码码率。其中,本申请实施例所提供的预测方法,不仅可以应用于编码器,还可以应用于解码器,甚至也可以编码器和解码器同时作用,本申请实施例不作具体限定。
下面将结合附图对本申请各实施例进行详细描述。
实施例一
参见图2,其示出了本申请实施例提供的一种预测方法的流程示例,该方法应用于编码器,该方法可以包括:
S201:针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所 述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
S202:根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
S203:基于所述编码块对应的编码参数,对所述编码块进行预测编码。
需要说明的是,仿射运动估计具体是指非平移运动估计,用于解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移运动的现象。在确定编码模式之后,“根据所述候选列表对所述编码块进行仿射运动估计”,可以获取到该编码模式下的多组编码参数;针对不同的编码参数分别进行编码预测代价的计算,以得到不同的编码参数所对应的编码预测代价;在这些编码预测代价中选取出最小值,并将该最小值所对应的一组编码参数作为该编码模式所对应的编码参数,从而对编码块进行预测编码。这里,编码预测代价的计算,可以是指率失真代价(Rate Distortion Cost,RD cost)的计算,也可以是指绝对差值总和代价(Sum of Absolute Differences Cost,SAD cost)的计算,还可以是指待传输比特数代价(比如预测残差以及传输编码块的一组BV所需的比特数之和)的计算,本申请实施例不作具体限定。
还需要说明的是,对于编码块而言,在编码器侧存在有很多种编码模式;其中,对于帧内预测类型而言,不仅包括IBC Non-Merge模式和IBC Merge模式,而且还可以包括第一仿射运动模式和第二仿射运动模式;对于帧间预测类型而言,可以包括帧间仿射运动模式。在本申请实施例中,编码块为原始图像帧中待编码的编码块,而且设置的是帧内预测类型,下面将主要对第一仿射运动模式和第二仿射运动模式进行详细描述。
在本申请实施例中,针对原始图像帧中的编码块,首先根据该编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;然后根据所述编码模式对应的候选列表对该编码块进行仿射运动估计,得到所述编码块对应的编码参数;最后基于所述编码块对应的编码参数,对所述编码块进行预测编码;由于本申请实施例增加了仿射运动估计,从而可以解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移的复杂运动情况,进一步降低了编码比特数,进而节省了编码码率。
可以理解地,仿射运动估计是帧间预测类型的一种新技术。在HEVC中,帧间预测是基于编码块的运动补偿,通常是采用平移运动模型进行平移运动估计,即假设一个编码块内所有像素点的运动向量(Motion Vector,MV)是相同的,一般由编码块左上角顶点的块矢量替代;但是在实际应用中,编码块还会存在缩放运动、旋转运动和变形运动等非平移运动,如图3(a)和图3(b)分别表示编码块的旋转运动和编码块的缩放运动;其中,ρ为缩放系数,ρ的取值根据实际情况具体设定,本申请实施例不作具体限定。
这里,仿射运动估计是通过控制点的MV进行运动补偿的。其中,控制点的表示方式有两种模式,比如两个控制点和三个控制点;编码块可以利用控制点的MV在参考帧中找到与之对应的参考块(或者称为映射块)。参见图4(a),其示出了本申请实施例提供的一种编码块相关联的至少两个控制点的运动矢量示意图;当编码块采用两个控制点时,即左上角和右上角两个顶点的运动向量,即图4(a)中所示的
Figure PCTCN2019077536-appb-000001
Figure PCTCN2019077536-appb-000002
也称之四参数仿射模型;当编码块采用三个控制点时,即左上角、右上角和左下角三个顶点的运动向量,即图4(a)中所示的
Figure PCTCN2019077536-appb-000003
Figure PCTCN2019077536-appb-000004
也称之六参数仿射模型。
若采用四参数仿射模型,则可以通过式(1)来推导编码块中每个4×4子块的运动向量;
Figure PCTCN2019077536-appb-000005
若采用六参数仿射模型,则可以通过式(2)来推导编码块中每个4×4子块的运动向量;
Figure PCTCN2019077536-appb-000006
其中,w和h分别表示编码块的宽度和高度,左上角顶点的运动向量
Figure PCTCN2019077536-appb-000007
右上角顶点的运动向量
Figure PCTCN2019077536-appb-000008
左下角顶点的运动向量
Figure PCTCN2019077536-appb-000009
编码块中每个像素点(x,y)对应的运动向量
Figure PCTCN2019077536-appb-000010
其中,对于帧间仿射运动模式来说,在由编码器发送至解码器的码流中还包括有两个标识符:Affine_Flag和Affine Type_Flag;这里,Affine_Flag用于标识编码块是否使用帧间的仿射运动估计补偿;Affine Type_Flag用于标识编码块所使用的仿射模型。具体地,当Affine_Flag值设置为1时,表示编码块使用帧间的仿射运动估计补偿;当Affine_Flag值设置为0时,表示编码块不使用帧间的仿射运动估计补偿;而当Affine Type_Flag值设置为1时,表示编码块所使用的仿射模型为六参数仿射模型;当Affine Type_Flag值设置为0时,表示编码块所使用的仿射模型为四参数仿射模型。
参见图4(b),其示出了本申请实施例提供的一种编码块内每个子块的运动向量样本示意图;其中,针对图4(b)所示的每个子块的运动向量样本,首先应用运动补偿差值滤波器,再结合式(1)或者式(2)所推导出的运动向量,可以完成对每个子块的编码预测。因此,使用仿射运动补偿能够更好地描述复杂运动情况,本申请实施例将仿射运动估计应用到基于帧内预测类型的编码块中,从而可以进一步降低编码比特数,进而提高了编码码率。
在一些实施例中,针对原始图像帧中的编码块所采用的编码模式,在所述建立与所述编码模式对应的候选列表之前,所述方法还包括:
将所述原始图像帧设置为所述编码块对应的参考帧,以使所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码。
进一步地,针对原始图像帧中的编码块所采用的编码模式,在所述建立与所述编码模式对应的候选列表之前,所述方法还包括:
当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第一仿射运动模式,将所述编码块的合并标识符Merge_Flag值设置为第一值;
当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动合并的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第二仿射运动模式,将所述编码块的Merge_Flag值设置为第二值;其中,所述第一值与所述第二值不同。
需要说明的是,由于编码块设置的是帧内预测类型,也就是说,需要将原始图像帧自身设置为编码块的参考帧。以测试序列中的I帧为例,首先需要将图像类型修改为P帧,然后还需要将当前的原始图像帧放置在REF_PIC_LIST_0末尾作为编码预测时的参考帧。
这样,如果编码块的参考帧为所述原始图像帧且该编码块采用基于仿射运动的帧内块复制技术(Intra Block Copy with Affine,IBCAffine)进行编码时,可以确定出该编码块采用的编码模式为第一仿射运动模式;如果编码块的参考帧为所述原始图像帧且该编码块采用基于仿射运动合并的帧内块复制技术(Intra Block Copy with Affine Merge,IBCAffineMerge)进行编码时,确定所述编码块采用的编码模式为第二仿射运动模式。
还需要说明的是,为了后续对编码模式的准确区分,还可以通过设置不同的标识符(Flag)以进行区分。具体地,为了区分采用传统的编码模式(比如IBC Non-Merge模式和IBC Merge模式等)与采用本申请实施例的编码模式(比如第一仿射运动模式和第二仿射运动模式等),本申请实施例可以通过新增加的第一标识符(用IBCAffine_Flag表示)进行区分。示例性地,当采用传统的编码模式时,可以将IBCAffine_Flag值设置为第一值;当采用本申请实施例的编码模式时,可以将IBCAffine_Flag值设置为第二值;其中,所述第一值与所述第二值不同。
另外,为了区分第一仿射运动模式和第二仿射运动模式,本申请实施例可以通过新增加的第二标识符进行区分,也可以复用已经存在的Merge_Flag标识符进行区分;在本申请实施例中,将以复用Merge_Flag标识符为例进行描述。示例性地,当所述编码模式为第一仿射运动模式时,将所述编码块的Merge_Flag值设置为第一值;当所述编码模式为第一仿射运动模式时,将所述编码块的Merge_Flag值设置为第二值;其中,所述第一值与所述第二值不同。
在本申请实施例中,第一值可以用数字、字母或者字母组合表示,第二值也可以用数字、字母或者字母组合表示,但是第一值与第二值不相同。其中,第一值可以是1,第二值可以是0;或者,第一值可以是true,第二值可以是false;但是本申请实施例不作具体限定。
除了第一标识符(用IBCAffine_Flag表示)和第二标识符(用Merge_Flag表示)之外,本申请实施例还可以复用帧间仿射运动模式的两个标识符(用Affine_Flag和Affine Type_Flag表示)。其中,Affine_Flag值用于区分编码块是否使用仿射运动估计补偿,Affine Type_Flag值用于区分编码块所使用的仿射模型。具体地,当Affine_Flag值设置为第一值时,表示编码块使用仿射运动估计补偿,即编码块的编码模式可以是第一仿射运动模式或者第二仿射运动模式;当Affine_Flag值设置为第二值时,表示编码块不使用仿射运动估计补偿,即编码块的编码模式可以是IBC模式;而当Affine Type_Flag值设置为第一值时,表示编码块所使用的仿射模型为六参数仿射模型;当Affine Type_Flag值设置为第二值时,表示编码块所使用的仿射模型为四参数仿射模型;这里,第一值可以是1或者true,第二值可以是0或者false。
举例来说,假定第一值为true,第二值为false;那么当编码块的编码模式采用第一仿射运动模式时,此时IBCAffine_Flag值设置为true,Affine_Flag值设置为true,且Merge_Flag值设置为true;当编码块的编码模式采用第二仿射运动模式时,此时IBCAffine_Flag值也设置为true,Affine_Flag值也设置为true,而Merge_Flag值设置为false。
在一些实施例中,所述建立与所述编码模式对应的候选列表,包括:
当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
需要说明的是,相邻块与编码块具有空间相邻关系。参见图5,其示出了本申请实施例提供的一种基于五个相邻块构建候选列表的结构示意图。对于第一仿射运动模式来说,针对图5所示的A、B、C、D和E五个相邻块,按照第一预设顺序(比如D->A、C->B->E的顺序)依次进行访问这五个相邻块;当相邻块采用第一仿射运动模式或者第二仿射运动模式进行编码时,即IBCAffine_Flag值为true,Affine_Flag值也为true,此时相邻块符合候选需求,可以将该相邻块的至少两个控制点的运动矢量作为编码块的一组运动矢量预测值(Motion Vector Predictor,MVP)。这样,对于第一仿射运动模式而言,可以从编码块左边的相邻块(D和A)以及编码块上边的相邻块(C、B和E)中各自选取一个符合候选要求的相邻块作为第一候选列表中的第一参考块,然后将该相邻块的至少两个控制点的运动矢量作为第一参考块对应的一组MVP,以此构成第一候选列表。
进一步地,所述根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数,包括:
当所述编码模式为第一仿射运动模式时,遍历所述第一候选列表,获取所述第一候选列表中每个第一参考块对应的至少两个控制点的运动向量预测值;
分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,对所述编码块进行仿射运动估计的计算,得到所述编码块对应位置控制点的运动向量;
从所述运动向量中,获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下所得到的编码预测代价最小的一组编码参数;
所述基于所述编码块对应的编码参数,对所述编码块进行预测编码,包括:
基于所述编码块对应的第一编码参数,对所述编码块进行预测编码。
进一步地,所述分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,对所述编码块进行仿射运动估计的计算,得到所述编码块对应位置控制点的运动向量,包括:
基于每个第一参考块对应的至少两个控制点的运动向量预测值,计算所述编码块至少一个像素点在对应的参考帧中的预测值;
对所述编码块至少一个像素点在所述原始图像帧与参考帧之间的匹配误差以及所述预测值的梯度矩阵进行迭代运算,根据所述迭代运算更新运动向量;
当所述迭代运算的次数满足预设次数阈值时,得到更新后的运动向量;
将更新后的运动向量作为所述编码块对应位置控制点的运动向量。
需要说明的是,在第一仿射运动模式下,首先遍历第一候选列表,获取第一候选列表中每个第一参考块对应的至少两个控制点的运动向量预测值;然后分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,进行仿射运动搜索;其中,在仿射搜索过程中,可以分别尝试四参数仿射模型或者六参数仿射模型。
具体地,针对编码块中任意像素点(x i,y i),对应在参考帧中对应位置的像素点预测值s i用式(3) 表示,
s i=s'(x i+△x i,y i+△y i)                                  (3)
其中,△x i、△y i表示编码块的运动向量,它不是线性变化的,而是由下述式(4)中的4个参数(a、b、ω 0、ω 1)所决定的,
Figure PCTCN2019077536-appb-000011
其中,a、b分别表示编码块经过旋转变换后在参考帧中像素点坐标的平动分量;ω 0、ω 1表示编码块进行系数ρ的缩放变换后旋转矩阵中的参数;
Figure PCTCN2019077536-appb-000012
表示
Figure PCTCN2019077536-appb-000013
由行向量转置为列向量。
对上述式(3)进行一阶泰勒展开后,得到式(5),如下所示,
Figure PCTCN2019077536-appb-000014
其中,G xi和G yi表示梯度值,它们是通过Sobel梯度计算得到的。根据式(5),编码块中任意像素点(x i,y i)的预测误差可以通过下述的式(6)计算得到,
Figure PCTCN2019077536-appb-000015
其中,第0项表示编码块中任意像素点(x i,y i)的预测误差,第1项表示编码块中任意像素点(x i,y i)在原始图像帧和参考帧之间的匹配误差,第2项表示参考帧中对应位置的像素点预测值的梯度矩阵。
这样,先以第一候选列表中每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,根据当前所选择的四参数仿射模型或者六参数仿射模型进行仿射运动估计的计算,比如若当前选择的是四参数仿射模型,可以根据式(1)来推导编码块对应位置控制点的运动向量;若当前选择的是六参数仿射模型,可以根据式(2)来推导编码块对应位置控制点的运动向量;再根据上述预测值的梯度以及匹配误差进行迭代运算,该迭代运算过程是用于更新运动向量;当迭代运算的次数满足预设次数阈值时,此时的预测误差最小,所得到的运动向量就是最终需求更新后的运动向量。
还需要说明的是,预设次数阈值是预先设定的衡量预测误差最小所需求的迭代次数。在本申请实施例中,对于四参数仿射模型,预设次数阈值可以为5;而对于六参数仿射模型,预设次数阈值可以为4;在实际应用中,预设次数阈值可以根据实际情况进行具体设置,本申请实施例不作具体限定。
其中,在上述迭代过程中,编码块在第一仿射运动模式下的基于仿射运动估计的块向量(Block Vector with Affine Model,BVAffi)需要满足如下条件:控制点根据BVAffi找到的参考点(用refPoint表示)、以及其余的corner点(用Left-Top、Right-Top、Left-Bottom、Right-Bottom四个点中除了控制点之外的像素点)根据式(1)或者式(2)推导得到的运动向量而找到的参考点(用refPoint表示),都需要已经过编码处理。另外,为了降低编码的复杂度,参考点还可以和编码块位于同一个编码树单元(Coding Tree Unit,CTU)内。
在尝试过四参数仿射模型和六参数仿射模型的仿射运动估计之后,从这些运动向量中,分别计算该编码块对应的编码预测代价,所得到的计算结果用cost表示;在本申请实施例中,cost可以等于预测残差以及传输该编码块的一组BVAffi所需要的比特数之和;这样,根据计算结果选择cost最小的一组编码参数进行保存;其中,在第一仿射运动模式下,编码块对应的第一编码参数包括有Affine_Flag值、Affine Type_Flag值、Merge_Flag值、MVP索引、BVAffi和MVP之间的差值(Motion Vector Difference,MVD)以及预测残差等。
在一些实施例中,所述建立与所述编码模式对应的候选列表,包括:
当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
需要说明的是,第一预设顺序表示在第一仿射运动模式下访问相邻块的顺序,第二预设顺序表示在第二仿射运动模式下访问相邻块的顺序,两者可以是不同的。在本申请实施例中,以图5所示的五个相邻块为例,第一预设顺序可以采用D->A、C->B->E的顺序,第二预设顺序可以采用A->B->C->D->E的顺序。
还需要说明的是,相邻块与编码块具有空间相邻关系。对于第二仿射运动模式来说,仍然参见图5,针对图5所示的A、B、C、D和E五个相邻块,按照第二预设顺序(比如A->B->C->D->E的顺序)依次进行访问这五个相邻块;当相邻块采用第一仿射运动模式或者第二仿射运动模式进行编码时,即IBCAffine_Flag值为true,Affine_Flag值也为true,此时相邻块符合候选需求,可以将该相邻块的至少两个控制点的运动矢量作为编码块的一组运动矢量预测值(Motion Vector Predictor,MVP);然后将该相邻块的至少两个控制点的运动矢量作为第二参考块对应的一组MVP,以此构成第二候选列表。
进一步地,所述根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数,包括:
当所述编码模式为第二仿射运动模式时,遍历所述第二候选列表,获取所述第二候选列表中每个第二参考块对应的至少两个控制点的运动向量预测值;
基于每个第二参考块对应的至少两个控制点的运动向量预测值,计算得到所述编码块对应位置控制点的运动向量;
从所述运动向量中,获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下所得到的编码预测代价最小的一组编码参数;
所述基于所述编码块对应的编码参数,对所述编码块进行预测编码,包括:
基于所述编码块对应的第二编码参数,对所述编码块进行预测编码。
需要说明的是,在第二仿射运动模式下,首先遍历第二候选列表,获取第二候选列表中每个第二参考块对应的至少两个控制点的运动向量预测值;然后根据每个第二参考块对应的至少两个控制点的运动向量预测值分别尝试四参数仿射模型或者六参数仿射模型进行仿射运动估计;具体地,如果使用四参数仿射模型,那么选择使用式(1)来推导当前编码块对应位置控制点的运动向量;如果使用六参数仿射模型,那么选择使用式(2)来推导当前编码块对应位置控制点的运动向量。从所得到的运动向量中,分别计算该编码块对应的编码预测代价,然后从这些编码预测代价中选取最小值,可以将最小值所对应的一组编码参数进行返回;其中,编码预测代价的计算结果用cost表示,在本申请实施例中,cost可以等于预测残差以及传输该编码块的一组BVAffi所需要的比特数之和;也就是说,根据计算结果选择cost最小的一组编码参数进行保存;其中,在第二仿射运动模式下,编码块对应的第二编码参数包括有Affine_Flag值、Affine Type_Flag值、Merge_Flag值、MVP索引以及预测残差等。
总体来说,第一仿射运动模式与第二仿射运动模式的区别是,前者是以第一候选列表中第一参考块的至少两个控制点的运动向量预测值作为搜索起点进行仿射运动搜索,然后根据式(1)或者式(2)进行仿射运动估计;而后者是可以直接复用第二候选列表中第二参考块的至少两个控制点的运动向量预测值,从而直接根据式(1)或者式(2)进行仿射运动估计。
在一些实施例中,在所述基于所述编码块对应的编码参数,对所述编码块进行预测编码之后,所述方法还包括:
发送所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
需要说明的是,在对该编码块进行预测编码之后,还需要编码器将该编码块对应的码流发送到解码器。具体地,对于第一仿射运动模式,在编码器侧,编码器只需要将所得到的该编码模式下的第一编码参数(比如Affine_Flag值、Affine Type_Flag值、Merge_Flag值、MVP索引、MVD以及预测残差等)写入到码流中,然后将该码流发送到解码器;其中,此处的MVP索引是指该编码块最终选择使用的一组MVP在第一候选列表中的索引。对于第二仿射运动模式,在编码器侧,编码器只需要将所得到的该编码模式下的第二编码参数(比如Affine_Flag值、Affine Type_Flag值、Merge_Flag 值、MVP索引以及预测残差等)写入到码流中,然后将该码流发送到解码器;其中,此处的MVP索引是指该编码块最终选择使用的一组MVP在第二候选列表中的索引。这样,根据编码器所发送的码流,后续在解码器侧可以得到该编码块中每一个像素所对应的重建像素值。
本实施例提供了一种预测方法,该方法应用于编码器;针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;基于所述编码块对应的编码参数,对所述编码块进行预测编码;这样,由于本申请实施例增加了仿射运动估计,从而可以解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移的复杂运动情况,进一步降低了编码比特数,进而节省了编码码率。
实施例二
参见图6,其示出了本申请实施例提供的另一种预测方法的流程示例,该方法应用于解码器,该方法可以包括:
S601:针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
S602:基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
S603:根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
S604:基于所述编码块对应的解码参数,对所述编码块进行预测解码。
需要说明的是,针对原始图像帧中的编码块,在解码器侧,首先确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;然后基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;再根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;最后基于所述编码块对应的解码参数,对所述编码块进行预测解码;由于本申请实施例增加了仿射运动估计,从而可以解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移的复杂运动情况,进一步降低了编码比特数,进而节省了编码码率。
还需要说明的是,在对该编码块进行预测编码之后,编码器会将该编码块对应的码流发送到解码器。所述码流中的Merge_Flag值用于区分该编码块所采用的编码模式,所述码流中的编码参数用于表示所述编码块在该编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数。
这样,在解码器侧,解码参数可以根据码流中的编码参数和候选列表共同确定得到的。由于编码参数是由编码块在该编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,从而根据编码参数和候选列表得到的解码参数,该解码参数也是编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组解码参数。
在一些实施例中,在所述确定所述编码块所采用的编码模式之前,所述方法还包括:
接收所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
进一步地,在所述确定所述编码块所采用的编码模式之前,所述方法还包括:
在接收到所述编码块对应的码流之后,判断将所述原始图像帧是否为所述编码块对应的参考帧;
当所述原始图像帧为所述编码块对应的参考帧时,确定所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码;
当所述原始图像帧不是所述编码块对应的参考帧时,确定所述编码块采用帧间预测编码。
进一步地,所述确定所述编码块所采用的编码模式,包括:
当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第一值时,确定所述编码块采用的编码模式为第一仿射运动模式;
当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第二值时,确定所述编码块采用的编码模式为第二仿射运动模式;其中,所述第一值与所述第二值不同。
需要说明的是,第一值可以用数字、字母或者字母组合表示,第二值也可以用数字、字母或者 字母组合表示,但是第一值与第二值是不同的。其中,第一值可以是1,第二值可以是0;或者,第一值可以是true,第二值可以是false;但是本申请实施例不作具体限定。
还需要说明的是,在解码器接收到码流之后,由于码流中的编码参数除了包含有Merge_Flag之外,还复用了帧间仿射运动模式的两个标识符(用Affine_Flag和Affine Type_Flag表示)。如果Affine_Flag值为第一值,表明了编码块采用了仿射运动模型,此时还需要判断原始图像帧是否为该编码块对应的参考帧;如果判断结果为是,此时确定编码块的编码模式是第一仿射运动模式或者第二仿射运动模式;如果判断结果为否,此时确定编码块采用帧间预测编码,比如编码模式可以采用相关技术方案中已有的帧间仿射运动模式。而对于第一仿射运动模式和第二仿射运动模式之间的区别,可以通过判断Merge_Flag值;具体地,当Merge_Flag值为第一值时,确定所述编码块采用的编码模式为第一仿射运动模式;当Merge_Flag值为第二值时,确定所述编码块采用的编码模式为第二仿射运动模式;另外,对于编码块所使用的仿射模型的区分,还可以通过判断Affine Type_Flag值;具体地,当Affine Type_Flag值设置为第一值时,表示编码块所使用的仿射模型为六参数仿射模型;当Affine Type_Flag值设置为第二值时,表示编码块所使用的仿射模型为四参数仿射模型;这里,第一值可以是1或者true,第二值可以是0或者false。
在一些实施例中,所述基于确定的编码模式,建立与所述编码模式对应的候选列表,包括:
当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
进一步地,所述根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数,包括:
当所述编码模式为第一仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;
基于所述第一候选列表以及所述第一编码参数,得到所述编码块对应的第一解码参数;
所述基于所述编码块对应的解码参数,对所述编码块进行预测解码,包括:
基于所述编码块对应的第一解码参数,对所述编码块进行预测解码。
需要说明的是,对于第一仿射运动模式来说,可以按照编码器侧建立第一候选列表的方法,在解码器侧建立对应的第一候选列表。由于第一仿射运动模式中,编码块对应的第一编码参数包括有Affine_Flag值、Affine Type_Flag值、Merge_Flag值、MVP索引、MVD以及预测残差等,这样可以结合第一候选列表,通过码流中的MVP索引和MVD得到编码块的BVAffi;根据BVAffi,可以得到编码块每一个像素所对应的预测像素值;再加上码流中的预测残差,就可以得到编码块中每一个像素所对应的重建像素值;从而实现了对编码块的解码处理。
在一些实施例中,所述基于确定的编码模式,建立与所述编码模式对应的候选列表,包括:
当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
进一步地,所述根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数,包括:
当所述编码模式为第二仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;
基于所述第二候选列表以及所述第二编码参数,得到所述编码块对应的第二解码参数;
所述基于所述编码块对应的解码参数,对所述编码块进行预测解码,包括:
基于所述编码块对应的第二解码参数,对所述编码块进行预测解码。
需要说明的是,对于第二仿射运动模式来说,同样可以按照编码器侧建立第二候选列表的方法,在解码器侧建立对应的第二候选列表。由于第二仿射运动模式中,该编码块直接复用相邻块的编码参数,因此无需传输MVD,编码块对应的第二编码参数包括有Affine_Flag值、Affine Type_Flag值、Merge_Flag值、MVP索引以及预测残差等,这样可以结合第二候选列表,通过码流中的MVP索引直接得到编码块的BVAffi;根据BVAffi,可以得到编码块每一个像素所对应的预测像素值;再加上 码流中的预测残差,就可以得到编码块中每一个像素所对应的重建像素值;从而也实现了对编码块的解码处理。
本实施例提供了一种预测方法,该方法应用于解码器;针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;基于所述编码块对应的解码参数,对所述编码块进行预测解码;由于本申请实施例增加了仿射运动估计,从而可以解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移的复杂运动情况,进一步降低了编码比特数,进而节省了编码码率。
实施例三
基于前述实施例一相同的发明构思,参见图7,其示出了本申请实施例提供的一种编码器70的组成结构,可以包括:第一建立单元701、第一估计单元702和编码预测单元703;其中,
所述第一建立单元701,配置为针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
所述第一估计单元702,配置为根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
所述编码预测单元703,配置为基于所述编码块对应的编码参数,对所述编码块进行预测编码。
在上述方案中,参见图7,所述编码器70还包括设置单元704,配置为将所述原始图像帧设置为所述编码块对应的参考帧,以使所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码。
在上述方案中,所述设置单元704,还配置为当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第一仿射运动模式,将所述编码块的Merge_Flag值设置为第一值;以及当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动合并的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第二仿射运动模式,将所述编码块的Merge_Flag值设置为第二值;其中,所述第一值与所述第二值不同。
在上述方案中,所述第一建立单元701,具体配置为当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
在上述方案中,所述第一估计单元702,具体配置为当所述编码模式为第一仿射运动模式时,遍历所述第一候选列表,获取所述第一候选列表中每个第一参考块对应的至少两个控制点的运动向量预测值;以及分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,对所述编码块进行仿射运动估计的计算,得到所述编码块对应位置控制点的运动向量;以及从所述运动向量中,获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下所得到的运动向量中编码预测代价最小的一组编码参数;
所述编码预测单元703,具体配置为基于所述编码块对应的第一编码参数,对所述编码块进行预测编码。
在上述方案中,所述第一估计单元702,具体配置为基于每个第一参考块对应的至少两个控制点的运动向量预测值,计算所述编码块至少一个像素点在对应的参考帧中的预测值;以及对所述编码块至少一个像素点在所述原始图像帧与参考帧之间的匹配误差以及所述预测值的梯度矩阵进行迭代运算,根据所述迭代运算更新运动向量;以及当所述迭代运算的次数满足预设次数阈值时,得到更新后的运动向量;以及将更新后的运动向量作为所述编码块对应位置控制点的运动向量。
在上述方案中,所述第一建立单元701,具体配置为当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中, 所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
在上述方案中,所述第一估计单元702,具体配置为当所述编码模式为第二仿射运动模式时,遍历所述第二候选列表,获取所述第二候选列表中每个第二参考块对应的至少两个控制点的运动向量预测值;以及基于每个第二参考块对应的至少两个控制点的运动向量预测值,计算得到所述编码块对应位置控制点的运动向量;以及从所述运动向量中,获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下所得到的运动向量中编码预测代价最小的一组编码参数;
所述编码预测单元703,具体配置为基于所述编码块对应的第二编码参数,对所述编码块进行预测编码。
在上述方案中,参见图7,所述编码器70还包括发送单元705,配置为发送所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供了一种计算机存储介质,该计算机存储介质存储有预测程序,所述预测程序被第一处理器执行时实现前述实施例一中任一项所述方法的步骤。
基于上述编码器70的组成以及计算机存储介质,参见图8,其示出了本申请实施例提供的编码器70的具体硬件结构,可以包括:第一网络接口801、第一存储器802和第一处理器803;各个组件通过第一总线系统804耦合在一起。可理解,第一总线系统804用于实现这些组件之间的连接通信。第一总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为第一总线系统804。其中,
第一网络接口801,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器802,用于存储能够在第一处理器803上运行的计算机程序;
第一处理器803,用于在运行所述计算机程序时,执行:
针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
基于所述编码块对应的编码参数,对所述编码块进行预测编码。
可以理解,本申请实施例中的第一存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的第一存储器802旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器803可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法 的各步骤可以通过第一处理器803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器803可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器802,第一处理器803读取第一存储器802中的信息,结合其硬件完成前述实施例一中任一项所述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器803还配置为在运行所述计算机程序时,执行前述实施例一中任一项所述方法的步骤。
实施例四
基于前述实施例二相同的发明构思,参见图9,其示出了本申请实施例提供的一种解码器90的组成结构,可以包括:确定单元901、第二建立单元902、第二估计单元903和解码预测单元904,其中,
所述确定单元901,配置为针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
所述第二建立单元902,配置为基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
所述第二估计单元903,配置为根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
所述解码预测单元904,配置为基于所述编码块对应的解码参数,对所述编码块进行预测解码。
在上述方案中,参见图9,所述解码器90还包括接收单元905,配置为接收所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
在上述方案中,参见图9,所述解码器90还包括判断单元906,配置为在接收到所述编码块对应的码流之后,判断将所述原始图像帧是否为所述编码块对应的参考帧;
所述确定单元901,还配置为当所述原始图像帧为所述编码块对应的参考帧时,确定所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码;以及当所述原始图像帧不是所述编码块对应的参考帧时,确定所述编码块采用帧间预测编码。
在上述方案中,所述确定单元901,具体配置为当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第一值时,确定所述编码块采用的编码模式为第一仿射运动模式;以及当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第二值时,确定所述编码块采用的编码模式为第二仿射运动模式;其中,所述第一值与所述第二值不同。
在上述方案中,所述第二建立单元902,具体配置为当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
在上述方案中,所述第二估计单元903,具体配置为当所述编码模式为第一仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第一编码参数;其中, 所述第一编码参数表示所述编码块在第一仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;基于所述第一候选列表以及所述第一编码参数,得到所述编码块对应的第一解码参数;
所述解码预测单元904,具体配置为基于所述编码块对应的第一解码参数,对所述编码块进行预测解码。
在上述方案中,所述第二建立单元902,具体配置为当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
在上述方案中,所述第二估计单元903,具体配置为当所述编码模式为第二仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;基于所述第二候选列表以及所述第二编码参数,得到所述编码块对应的第二解码参数;
所述解码预测单元904,具体配置为基于所述编码块对应的第二解码参数,对所述编码块进行预测解码。
本实施例提供了一种计算机存储介质,该计算机存储介质存储有预测程序,所述预测程序被第二处理器执行时实现前述实施例二中任一项所述方法的步骤。
基于上述解码器90的组成以及计算机存储介质,参见图10,其示出了本申请实施例提供的解码器90的具体硬件结构,可以包括:第二网络接口1001、第二存储器1002和第二处理器1003;各个组件通过第二总线系统1004耦合在一起。可理解,第二总线系统1004用于实现这些组件之间的连接通信。第二总线系统1004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为第二总线系统1004。其中,
第二网络接口1001,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1002,用于存储能够在第二处理器1003上运行的计算机程序;
第二处理器1003,用于在运行所述计算机程序时,执行:
针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
基于所述编码块对应的解码参数,对所述编码块进行预测解码。
可选地,作为另一个实施例,第二处理器1003还配置为在运行所述计算机程序时,执行前述实施例二中任一项所述方法的步骤。
可以理解,第二存储器1002与第一存储器802的硬件功能类似,第二处理器1003与第一处理器803的硬件功能类似;这里不再详述。
需要说明的是:本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例中,在编码器侧,编码器针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;基于所述编码块对应的编码参数,对所述编码块进行预测编码;在解码器侧,解码器确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述 候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;基于所述编码块对应的解码参数,对所述编码块进行预测解码;由于在编码器侧增加了仿射运动估计,这样可以解决屏幕图像中帧内预测类型的编码块所存在的缩放、旋转以及变形等非平移运动的现象,进一步降低了编码比特数,进而节省了编码码率。

Claims (37)

  1. 一种预测方法,所述方法应用于编码器,所述方法包括:
    针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
    基于所述编码块对应的编码参数,对所述编码块进行预测编码。
  2. 根据权利要求1所述的方法,其中,针对原始图像帧中的编码块所采用的编码模式,在所述建立与所述编码模式对应的候选列表之前,所述方法还包括:
    将所述原始图像帧设置为所述编码块对应的参考帧,以使所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码。
  3. 根据权利要求2所述的方法,其中,针对原始图像帧中的编码块所采用的编码模式,在所述建立与所述编码模式对应的候选列表之前,所述方法还包括:
    当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第一仿射运动模式,将所述编码块的合并标识符Merge_Flag值设置为第一值;
    当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动合并的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第二仿射运动模式,将所述编码块的Merge_Flag值设置为第二值;其中,所述第一值与所述第二值不同。
  4. 根据权利要求1至3任一项所述的方法,其中,所述建立与所述编码模式对应的候选列表,包括:
    当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
  5. 根据权利要求4所述的方法,其中,所述根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数,包括:
    当所述编码模式为第一仿射运动模式时,遍历所述第一候选列表,获取所述第一候选列表中每个第一参考块对应的至少两个控制点的运动向量预测值;
    分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,对所述编码块进行仿射运动估计的计算,得到所述编码块对应位置控制点的运动向量;
    从所述运动向量中,获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下所得到的编码预测代价最小的一组编码参数;
    所述基于所述编码块对应的编码参数,对所述编码块进行预测编码,包括:
    基于所述编码块对应的第一编码参数,对所述编码块进行预测编码。
  6. 根据权利要求5所述的方法,其中,所述分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,对所述编码块进行仿射运动估计的计算,得到所述编码块对应位置控制点的运动向量,包括:
    基于每个第一参考块对应的至少两个控制点的运动向量预测值,计算所述编码块至少一个像素点在对应的参考帧中的预测值;
    对所述编码块至少一个像素点在所述原始图像帧与参考帧之间的匹配误差以及所述预测值的梯度矩阵进行迭代运算,根据所述迭代运算更新运动向量;
    当所述迭代运算的次数满足预设次数阈值时,得到更新后的运动向量;
    将更新后的运动向量作为所述编码块对应位置控制点的运动向量。
  7. 根据权利要求1至6任一项所述的方法,其中,所述建立与所述编码模式对应的候选列表,包括:
    当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
  8. 根据权利要求7所述的方法,其中,所述根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数,包括:
    当所述编码模式为第二仿射运动模式时,遍历所述第二候选列表,获取所述第二候选列表中每个第二参考块对应的至少两个控制点的运动向量预测值;
    基于每个第二参考块对应的至少两个控制点的运动向量预测值,计算得到所述编码块对应位置控制点的运动向量;
    从所述运动向量中,获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下所得到的编码预测代价最小的一组编码参数;
    所述基于所述编码块对应的编码参数,对所述编码块进行预测编码,包括:
    基于所述编码块对应的第二编码参数,对所述编码块进行预测编码。
  9. 根据权利要求1至8任一项所述的方法,其中,在所述基于所述编码块对应的编码参数,对所述编码块进行预测编码之后,所述方法还包括:
    发送所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
  10. 一种预测方法,所述方法应用于解码器,所述方法包括:
    针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
    基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
    基于所述编码块对应的解码参数,对所述编码块进行预测解码。
  11. 根据权利要求10所述的方法,其中,在所述确定所述编码块所采用的编码模式之前,所述方法还包括:
    接收所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
  12. 根据权利要求11所述的方法,其中,在所述确定所述编码块所采用的编码模式之前,所述方法还包括:
    在接收到所述编码块对应的码流之后,判断将所述原始图像帧是否为所述编码块对应的参考帧;
    当所述原始图像帧为所述编码块对应的参考帧时,确定所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码;
    当所述原始图像帧不是所述编码块对应的参考帧时,确定所述编码块采用帧间预测编码。
  13. 根据权利要求12所述的方法,其中,所述确定所述编码块所采用的编码模式,包括:
    当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第一值时,确定所述编码块采用的编码模式为第一仿射运动模式;
    当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第二值时,确定所述编码块采用的编码模式为第二仿射运动模式;其中,所述第一值与所述第二值不同。
  14. 根据权利要求10至13任一项所述的方法,其中,所述基于确定的编码模式,建立与所述编码模式对应的候选列表,包括:
    当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
  15. 根据权利要求14所述的方法,其中,所述根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数,包括:
    当所述编码模式为第一仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中 获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;
    基于所述第一候选列表以及所述第一编码参数,得到所述编码块对应的第一解码参数;
    所述基于所述编码块对应的解码参数,对所述编码块进行预测解码,包括:
    基于所述编码块对应的第一解码参数,对所述编码块进行预测解码。
  16. 根据权利要求10至15任一项所述的方法,其中,所述基于确定的编码模式,建立与所述编码模式对应的候选列表,包括:
    当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
  17. 根据权利要求16所述的方法,其中,所述根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数,包括:
    当所述编码模式为第二仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;
    基于所述第二候选列表以及所述第二编码参数,得到所述编码块对应的第二解码参数;
    所述基于所述编码块对应的解码参数,对所述编码块进行预测解码,包括:
    基于所述编码块对应的第二解码参数,对所述编码块进行预测解码。
  18. 一种编码器,所述编码器包括:第一建立单元、第一估计单元和编码预测单元,其中,
    所述第一建立单元,配置为针对原始图像帧中的编码块所采用的编码模式,建立与所述编码模式对应的候选列表;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    所述第一估计单元,配置为根据所述编码模式对应的候选列表对所述编码块进行仿射运动估计,得到所述编码块对应的编码参数;
    所述编码预测单元,配置为基于所述编码块对应的编码参数,对所述编码块进行预测编码。
  19. 根据权利要求18所述的编码器,其中,所述编码器还包括设置单元,配置为将所述原始图像帧设置为所述编码块对应的参考帧,以使所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码。
  20. 根据权利要求19所述的编码器,其中,所述设置单元,还配置为当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第一仿射运动模式,将所述编码块的Merge_Flag值设置为第一值;以及当所述编码块的参考帧为所述原始图像帧且所述编码块采用基于仿射运动合并的帧内块复制技术进行编码时,确定所述编码块采用的编码模式为第二仿射运动模式,将所述编码块的Merge_Flag值设置为第二值;其中,所述第一值与所述第二值不同。
  21. 根据权利要求18至20任一项所述的编码器,其中,所述第一建立单元,具体配置为当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
  22. 根据权利要求21所述的编码器,其中,所述第一估计单元,具体配置为当所述编码模式为第一仿射运动模式时,遍历所述第一候选列表,获取所述第一候选列表中每个第一参考块对应的至少两个控制点的运动向量预测值;以及分别以每个第一参考块对应的至少两个控制点的运动向量预测值为仿射搜索的起点,对所述编码块进行仿射运动估计的计算,得到所述编码块对应位置控制点的运动向量;以及从所述运动向量中,获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下所得到的运动向量中编码预测代价最小的一组编码参数;
    所述编码预测单元,具体配置为基于所述编码块对应的第一编码参数,对所述编码块进行预测编码。
  23. 根据权利要求22所述的编码器,其中,所述第一估计单元,具体配置为基于每个第一参考块对应的至少两个控制点的运动向量预测值,计算所述编码块至少一个像素点在对应的参考帧中的预测值;以及对所述编码块至少一个像素点在所述原始图像帧与参考帧之间的匹配误差以及所述预测值的梯度矩阵进行迭代运算,根据所述迭代运算更新运动向量;以及当所述迭代运算的次数满足预设次数阈值时,得到更新后的运动向量;以及将更新后的运动向量作为所述编码块对应位置控制点的运动向量。
  24. 根据权利要求18至23任一项所述的编码器,其中,所述第一建立单元,具体配置为当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
  25. 根据权利要求24所述的编码器,其中,所述第一估计单元,具体配置为当所述编码模式为第二仿射运动模式时,遍历所述第二候选列表,获取所述第二候选列表中每个第二参考块对应的至少两个控制点的运动向量预测值;以及基于每个第二参考块对应的至少两个控制点的运动向量预测值,计算得到所述编码块对应位置控制点的运动向量;以及从所述运动向量中,获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下所得到的运动向量中编码预测代价最小的一组编码参数;
    所述编码预测单元,具体配置为基于所述编码块对应的第二编码参数,对所述编码块进行预测编码。
  26. 根据权利要求18至25任一项所述的编码器,其中,所述编码器还包括发送单元,配置为发送所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
  27. 一种解码器,所述解码器包括:确定单元、第二建立单元、第二估计单元和解码预测单元,其中,
    所述确定单元,配置为针对原始图像帧中的编码块,确定所述编码块所采用的编码模式;其中,所述编码模式包括第一仿射运动模式或者第二仿射运动模式;
    所述第二建立单元,配置为基于确定的编码模式,建立与所述编码模式对应的候选列表;其中,所述候选列表中的参考块与所述编码块空间相邻,且所述参考块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;
    所述第二估计单元,配置为根据所述编码模式对应的候选列表,得到所述编码块对应的解码参数;
    所述解码预测单元,配置为基于所述编码块对应的解码参数,对所述编码块进行预测解码。
  28. 根据权利要求27所述的解码器,其中,所述解码器还包括接收单元,配置为接收所述编码块对应的码流;其中,所述码流至少包括所述编码块在所述编码模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数,所述编码参数中至少包含有Merge_Flag值。
  29. 根据权利要求28所述的解码器,其中,所述解码器还包括判断单元,配置为在接收到所述编码块对应的码流之后,判断将所述原始图像帧是否为所述编码块对应的参考帧;
    所述确定单元,还配置为当所述原始图像帧为所述编码块对应的参考帧时,确定所述编码块采用第一仿射运动模式或者第二仿射运动模式进行帧内预测编码;以及当所述原始图像帧不是所述编码块对应的参考帧时,确定所述编码块采用帧间预测编码。
  30. 根据权利要求29所述的解码器,其中,所述确定单元,具体配置为当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第一值时,确定所述编码块采用的编码模式为第一仿射运动模式;以及当所述编码块的参考帧为所述原始图像帧且所述Merge_Flag值为第二值时,确定所述编码块采用的编码模式为第二仿射运动模式;其中,所述第一值与所述第二值不同。
  31. 根据权利要求27至30任一项所述的解码器,其中,所述第二建立单元,具体配置为当所述编码模式为第一仿射运动模式时,按照第一预设顺序依次访问所述编码块的相邻块,得到第一候选集合;其中,所述第一候选集合中包括两个相邻块,且所述两个相邻块均是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第一候选集合,建立与所述第一仿射运动模式对应的第一候选列表;其中,所述第一候选列表中的第一参考块是从所述第一候选集合中得到的。
  32. 根据权利要求31所述的解码器,其中,所述第二估计单元,具体配置为当所述编码模式为 第一仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第一编码参数;其中,所述第一编码参数表示所述编码块在第一仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;基于所述第一候选列表以及所述第一编码参数,得到所述编码块对应的第一解码参数;
    所述解码预测单元,具体配置为基于所述编码块对应的第一解码参数,对所述编码块进行预测解码。
  33. 根据权利要求27至32任一项所述的解码器,其中,所述第二建立单元,具体配置为当所述编码模式为第二仿射运动模式时,按照第二预设顺序依次访问所述编码块的相邻块,得到第二候选集合;其中,所述第二候选集合中包括至少一个相邻块,且所述至少一个相邻块是采用第一仿射运动模式或者第二仿射运动模式进行编码的;以及基于所述第二候选集合,建立与所述第二仿射运动模式对应的第二候选列表;其中,所述第二候选列表中的第二参考块是从所述第二候选集合中得到的。
  34. 根据权利要求33所述的解码器,其中,所述第二估计单元,具体配置为当所述编码模式为第二仿射运动模式时,在接收到所述编码块对应的码流之后,从所述码流中获取所述编码块对应的第二编码参数;其中,所述第二编码参数表示所述编码块在第二仿射运动模式下通过非平移运动估计所得到的编码预测代价最小的一组编码参数;基于所述第二候选列表以及所述第二编码参数,得到所述编码块对应的第二解码参数;
    所述解码预测单元,具体配置为基于所述编码块对应的第二解码参数,对所述编码块进行预测解码。
  35. 一种编码器,所述编码器包括:第一存储器和第一处理器;其中,
    所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
    所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至9任一项所述方法的步骤。
  36. 一种解码器,所述解码器包括:第二存储器和第二处理器;其中,
    所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
    所述第二处理器,用于在运行所述计算机程序时,执行如权利要求10至17任一项所述方法的步骤。
  37. 一种计算机存储介质,其中,所述计算机存储介质存储有预测程序,所述预测程序被第一处理器执行时实现如权利要求1至9任一项所述方法的步骤、或者被第二处理器执行时实现如权利要求10至17任一项所述方法的步骤。
PCT/CN2019/077536 2019-03-08 2019-03-08 预测方法、编码器、解码器及计算机存储介质 WO2020181428A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/CN2019/077536 WO2020181428A1 (zh) 2019-03-08 2019-03-08 预测方法、编码器、解码器及计算机存储介质
CN201980093457.2A CN113597767A (zh) 2019-03-08 2019-03-08 预测方法、编码器、解码器及计算机存储介质
EP19918532.3A EP3930327A4 (en) 2019-03-08 2019-03-08 PREDICTION PROCESS, ENCODER, DECODER, AND COMPUTER STORAGE MEDIA
US17/468,552 US11917159B2 (en) 2019-03-08 2021-09-07 Prediction method, encoder, decoder and computer storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/077536 WO2020181428A1 (zh) 2019-03-08 2019-03-08 预测方法、编码器、解码器及计算机存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/468,552 Continuation US11917159B2 (en) 2019-03-08 2021-09-07 Prediction method, encoder, decoder and computer storage medium

Publications (1)

Publication Number Publication Date
WO2020181428A1 true WO2020181428A1 (zh) 2020-09-17

Family

ID=72427166

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/077536 WO2020181428A1 (zh) 2019-03-08 2019-03-08 预测方法、编码器、解码器及计算机存储介质

Country Status (4)

Country Link
US (1) US11917159B2 (zh)
EP (1) EP3930327A4 (zh)
CN (1) CN113597767A (zh)
WO (1) WO2020181428A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113853783B (zh) * 2019-05-25 2023-12-15 北京字节跳动网络技术有限公司 对帧内块复制编解码的块的块矢量的编解码
CN110798683B (zh) * 2019-08-26 2022-05-27 腾讯科技(深圳)有限公司 数据解码方法、装置和数据编码方法、装置
CN113938690B (zh) * 2021-12-03 2023-10-31 北京达佳互联信息技术有限公司 视频编码方法、装置、电子设备及存储介质
CN114125442B (zh) * 2022-01-29 2022-05-03 腾讯科技(深圳)有限公司 屏幕视频编码模式确定方法、编码方法、装置和计算设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559669A (zh) * 2015-09-29 2017-04-05 华为技术有限公司 图像预测的方法及装置
WO2018047668A1 (ja) * 2016-09-12 2018-03-15 ソニー株式会社 画像処理装置および画像処理方法
CN108271023A (zh) * 2017-01-04 2018-07-10 华为技术有限公司 图像预测方法和相关设备
US20180316929A1 (en) * 2017-04-28 2018-11-01 Qualcomm Incorporated Gradient based matching for motion search and derivation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2561507B (en) * 2016-01-07 2021-12-22 Mediatek Inc Method and apparatus for affine merge mode prediction for video coding system
CN111556323B (zh) * 2016-02-06 2022-05-13 华为技术有限公司 图像编解码方法及装置
US20190335191A1 (en) * 2017-01-12 2019-10-31 Sony Corporation Image processing device and image processing method
KR102472053B1 (ko) * 2017-08-03 2022-11-28 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559669A (zh) * 2015-09-29 2017-04-05 华为技术有限公司 图像预测的方法及装置
WO2018047668A1 (ja) * 2016-09-12 2018-03-15 ソニー株式会社 画像処理装置および画像処理方法
CN108271023A (zh) * 2017-01-04 2018-07-10 华为技术有限公司 图像预测方法和相关设备
US20180316929A1 (en) * 2017-04-28 2018-11-01 Qualcomm Incorporated Gradient based matching for motion search and derivation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3930327A4 *

Also Published As

Publication number Publication date
US20220014754A1 (en) 2022-01-13
EP3930327A1 (en) 2021-12-29
CN113597767A (zh) 2021-11-02
EP3930327A4 (en) 2022-06-01
US11917159B2 (en) 2024-02-27

Similar Documents

Publication Publication Date Title
US11159821B2 (en) Method and device for video image processing
CN113170181B (zh) 块内拷贝模式中的仿射继承方法
TWI711300B (zh) 照度補償方法及相應之視訊處理裝置
WO2020181428A1 (zh) 预测方法、编码器、解码器及计算机存储介质
KR101945894B1 (ko) 픽쳐 예측 방법 및 관련 장치
WO2020133115A1 (zh) 编码预测方法、装置及计算机存储介质
US20190058896A1 (en) Method and apparatus of video coding with affine motion compensation
JP7393061B2 (ja) 映像処理方法及び符号化器
TW201742465A (zh) 用於視訊寫碼之仿射運動預測
KR20180019688A (ko) 픽처 예측 방법 및 픽처 예측 장치
CN111131822B (zh) 具有从邻域导出的运动信息的重叠块运动补偿
TW202025727A (zh) 向量預測器清單之產生
WO2022227622A1 (zh) 一种权值可配置的帧间帧内联合预测编解码的方法及装置
KR20210094664A (ko) 비디오 인코딩/디코딩 시스템의 사이드 모션 정교화
CN108449599A (zh) 一种基于面透射变换的视频编码与解码方法
CN113826394A (zh) 帧内块复制模式下自适应运动矢量差分辨率的改进
CN113366831B (zh) 重叠块运动补偿和其他工具之间的协调
WO2021196228A1 (zh) 帧间预测方法、编码器、解码器以及存储介质
KR20240066273A (ko) 비디오 코딩에서 어파인 병합 모드에 대한 후보 도출
CN117501688A (zh) 用于视频处理的方法、设备和介质
TW202145783A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
CN117561714A (zh) 用于视频处理的方法、设备和介质
CN117616754A (zh) 用于视频处理的方法、设备和介质

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: 19918532

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019918532

Country of ref document: EP

Effective date: 20210924