WO2020057559A1 - 一种解码、编码方法及其设备 - Google Patents

一种解码、编码方法及其设备 Download PDF

Info

Publication number
WO2020057559A1
WO2020057559A1 PCT/CN2019/106496 CN2019106496W WO2020057559A1 WO 2020057559 A1 WO2020057559 A1 WO 2020057559A1 CN 2019106496 W CN2019106496 W CN 2019106496W WO 2020057559 A1 WO2020057559 A1 WO 2020057559A1
Authority
WO
WIPO (PCT)
Prior art keywords
image block
motion information
current image
information
motion
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/CN2019/106496
Other languages
English (en)
French (fr)
Inventor
陈方栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Publication of WO2020057559A1 publication Critical patent/WO2020057559A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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
    • 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
    • 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

Definitions

  • the present application relates to the technical field of video encoding and decoding, and in particular, to a decoding and encoding method and a device thereof.
  • a complete video encoding method may include prediction, transformation, quantization, entropy encoding, and filtering.
  • predictive coding includes intra-frame coding and inter-frame coding.
  • Inter-frame coding uses the correlation of the video time domain to predict the pixels of the current image by using the pixels adjacent to the encoded image to achieve the purpose of effectively removing video time-domain redundancy.
  • the application provides a decoding and encoding method and a device thereof, which solve the problems of low prediction quality, prediction error, and the like, which can improve decoding efficiency, reduce decoding delay, and improve encoding and decoding performance.
  • This application provides a decoding method, which is applied to a decoding end, and the method includes:
  • Selecting candidate motion information from the motion information list determining original motion information of the current image block according to the selected candidate motion information and difference information of the current image block;
  • This application provides an encoding method, which is applied to an encoding end, and the method includes:
  • Selecting candidate motion information from the motion information list determining original motion information of the current image block according to the selected candidate motion information and difference information of the current image block;
  • This application provides a decoding device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; and the processor is configured to execute the machine-executable Execute instructions to implement the method described above.
  • This application provides a coding-side device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; and the processor is configured to execute the machine- Execute instructions to implement the method described above.
  • the target motion information of the current image block can be determined according to the original motion information, and encoding / decoding is performed according to the original motion information or the target motion information, instead of directly performing the original motion information.
  • Encoding / decoding thereby improving the accuracy of motion information, solving problems such as poor prediction quality, prediction errors, and improving encoding performance / decoding performance.
  • the above manner can also help to improve encoding efficiency / decoding efficiency and reduce encoding delay / decoding delay.
  • FIG. 1 is a flowchart of a decoding method according to an embodiment of the present application
  • 2A-2C are flowcharts of candidate image blocks in an embodiment of the present application.
  • 3A-3E are schematic diagrams of templates in an embodiment of the present application.
  • FIG. 4 is a flowchart of a decoding method according to an embodiment of the present application.
  • FIG. 5 is a flowchart of an encoding method according to an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a video coding framework in an embodiment of the present application.
  • FIG. 7 is a structural diagram of a decoding device in an embodiment of the present application.
  • FIG. 8 is a structural diagram of an encoding device in an embodiment of the present application.
  • FIG. 9 is a hardware structure diagram of a decoder device in an embodiment of the present application.
  • FIG. 10 is a hardware structural diagram of an encoding end device in an embodiment of the present application.
  • first, second, third, etc. may be used to describe various information in the embodiments of the present application, the information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
  • word “if” can be interpreted as “at” or “at " or "in response to a determination”.
  • a motion vector (Motion Vector, MV) can be used to represent the relative displacement between the current image block of the current frame video image and the reference image block of the reference frame video image. For example, there is a strong time-domain correlation between the video image A of the current frame and the video image B of the reference frame.
  • the video image B can be moved. Search to find the image block B1 (for example, the reference image block) that most closely matches the image block A1, and determine the relative displacement between the image block A1 and the image block B1, which is also the motion vector of the image block A1.
  • the encoding end may send the motion vector to the decoding end, instead of sending the image block A1 to the decoding end, the decoding end may obtain the image block A1 according to the motion vector and the image block B1. Obviously, since the number of bits occupied by the motion vector is less than the number of bits occupied by the image block A1, the above manner can save a large number of bits.
  • the spatial correlation between candidate image blocks can also be used to predict the motion vector of image block A1.
  • the motion vector of the image block A2 adjacent to the image block A1 may be determined as the motion vector of the image block A1.
  • the encoding end can send the index value of the image block A2 to the decoding end, and the decoding end can determine the motion vector of the image block A2 based on the index value, which is the motion vector of the image block A1. Since the number of bits occupied by the index value of the image block A2 is less than the number of bits occupied by the motion vector, the above manner can be beneficial to saving bits.
  • the motion vector of the image block A2 and the motion vector of the image block A1 may not be consistent, therefore, the motion vector of the image block A2 is determined as the motion of the image block A1 Vector, there are problems such as low prediction quality and prediction error.
  • the method may involve the following concepts:
  • Motion Vector In inter-frame coding, a motion vector is used to represent the relative displacement between the current image block of the current frame video image and the reference image block of the reference frame video image. For example, there is a strong time-domain correlation between video image A of the current frame and video image B of the reference frame.
  • motion search can be performed in video image B. Find the image block B1 (reference image block) that most closely matches the image block A1, and determine the relative displacement between the image block A1 and the image block B1, which is also the motion vector of the image block A1.
  • each divided image block has a corresponding motion vector transmitted to the decoding end.
  • the motion vector of each image block is independently encoded and transmitted, especially if it is divided into a large number of small image blocks, it will consume a lot of Bits.
  • the spatial correlation between adjacent image blocks can be used to predict the motion vector of the current image block to be encoded according to the motion vector of the adjacent encoded image block, and then the prediction difference is Encoding, which can help reduce the number of bits representing the motion vector.
  • Motion Information Since the motion vector indicates the position offset between the current image block and a reference image block, in order to accurately obtain the information pointing to the image block, in addition to the motion vector, it is necessary to refer to the index information of the frame image to indicate which one to use Reference frame image.
  • a reference frame image list can usually be established, and the reference frame image index information indicates that the current image block uses the reference frame image in the reference frame image list.
  • an index value can also be used to indicate which reference image list is used. This index value can be referred to as the reference direction.
  • motion-related information such as motion vectors, reference frame indexes, and reference directions can be collectively referred to as motion information.
  • the coding process is performed on an image-by-image block basis.
  • the reconstruction information of the surrounding encoded image blocks can be used.
  • the template refers to the decoding information of a fixed shape around the current image block (adjacent areas in the time domain or the spatial domain).
  • the template is exactly the same at the encoding end and the decoding end. Therefore, some operations performed by the template at the encoding end can obtain completely consistent results at the decoding end, that is, the information derived by the encoding end based on the template can be obtained at the decoding end. Lossless recovery without the need to pass additional information, thereby further reducing the number of transmitted bits.
  • Rate-Distortion Optimized There are two major indicators for evaluating coding efficiency: code rate and PSNR (Peak Signal to Noise Ratio). The smaller the bit stream, the larger the compression rate and the larger the PSNR. , The better the quality of the reconstructed image, when the mode is selected, the discrimination formula is essentially a comprehensive evaluation of the two.
  • J (mode) D + ⁇ * R, where D stands for Distortion and can usually be measured using the SSE index.
  • SSE refers to the average of the difference between the reconstructed image block and the source image. Square sum; ⁇ is a Lagrangian multiplier, and R is the actual number of bits required for image block coding in this mode, including the sum of the bits required for coding mode information, motion information, and residuals.
  • Intra prediction and inter prediction (intraprediction and interprediction) technology Intra prediction refers to the use of spatially adjacent image blocks of the current image block (such as the same image with the current image block) to reconstruct the pixel values for prediction Encoding, and inter prediction refers to the use of reconstructed pixel values of time-domain neighboring image blocks of the current image block (in a different frame image from the current image block) for predictive encoding.
  • CTU Coding Tree Unit
  • a frame of image can be divided into several disjoint CTUs first, and each CTU determines whether to further divide into smaller blocks based on the actual situation.
  • FIG. 1 is a schematic flowchart of a decoding method, which can be applied to a decoding end and may include:
  • Step 101 Obtain a motion model of a current image block.
  • the motion model may include, but is not limited to, a 2-parameter motion model (such as a 2-parameter motion vector), a 4-parameter motion model (such as a 4-parameter affine model), a 6-parameter motion model (such as an affine model), An 8-parameter motion model (such as a projection model).
  • Step 102 Create a motion information list of the current image block according to the motion model.
  • Step 103 Select candidate exercise information from the exercise information list.
  • Step 104 Determine original motion information of the current image block according to the selected candidate motion information and difference information of the current image block. Specifically, before step 104, the difference information of the current image block may be obtained first, and then the original motion information of the current image block is determined according to the candidate motion information and the difference information.
  • the difference information may be a difference in motion information, and the difference information is not limited.
  • Step 105 Determine target motion information of the current image block according to the original motion information.
  • the target motion information may be motion information different from the original motion information.
  • Step 106 Decode the encoded bit stream according to the original motion information or the target motion information.
  • the target motion information of the current image block may be determined according to the original motion information and decoded according to the original motion information or the target motion information, instead of decoding directly based on the original motion information. It is conducive to improving the accuracy of motion information, solving problems such as low prediction quality, prediction errors, etc., and is conducive to improving decoding performance, improving decoding efficiency, and reducing decoding delay.
  • acquiring the motion model of the current image block may include, but is not limited to, acquiring the motion model of the current image block according to the mode information of the current image block.
  • the mode information may include size information of the current image block. Based on this, if the size information of the current image block is smaller than a preset size, it can be determined that the motion model of the current image block is a 2-parameter motion model.
  • the motion model of the current image block is a 4-parameter motion model or a 6-parameter motion model, of course, it can also be a motion model with other parameters; or,
  • the size information of the image block is not less than the preset size, and the motion model of the current image block may also be determined in other ways.
  • the motion model of the current image block is obtained by encoding the first instruction information in the bit stream.
  • acquiring the motion model of the current image block may include, but is not limited to, acquiring first indication information from the encoded bit stream, where the first indication information is used to indicate the motion model; then, the first indication information may be obtained according to the first indication.
  • the information obtains the motion model of the current image block. For example, if the encoding end uses a 2-parameter motion model, the first indication added by the encoding end to the encoded bit stream is the first identifier. If the encoding end uses a 4-parameter motion model, the encoding end adds the encoding bit stream.
  • the first indication information of is the second identifier, and so on.
  • the decoder obtains the first indication information from the encoded bit stream, if the first indication information is the first identifier, it is determined that the motion model is a 2-parameter motion model, and if the first indication information is the second identifier, Then it is determined that the motion model is a 4-parameter motion model, and so on.
  • the encoding end may obtain the motion model of the current image block according to the mode information of the current image block. For specific methods, refer to the decoding end, and details are not described herein again.
  • the encoder can use each motion model (such as a 2-parameter motion model, a 4-parameter motion model, and a 6-parameter motion model) to precode the bit stream in turn, and then determine each The coding performance of the motion model, and then the motion model with the best coding performance is determined as the motion model of the current image block.
  • each motion model such as a 2-parameter motion model, a 4-parameter motion model, and a 6-parameter motion model
  • the first indication information can be added to the encoded bit stream, and the first indication information can be used for the motion model of the current image block.
  • Step 102 Establishing a motion information list of the current image block according to the motion model, which may include:
  • Step 1021 Determine a candidate image block corresponding to the current image block according to the motion model.
  • Step 1022 Determine candidate motion information of the current image block according to the motion information of the candidate image block.
  • the motion information of the candidate image block includes a motion vector and a motion direction corresponding to the fixed reference frame.
  • Step 1023 Add the candidate motion information of the current image block to the motion information list.
  • multiple candidate image blocks corresponding to the current image block may be determined according to the motion model, and candidate motion information of the current image block is obtained based on each candidate image block.
  • multiple candidate motion information may be added to the motion information list
  • the exercise information list may include multiple candidate exercise information.
  • the candidate image block includes one or any combination of the following: in the current frame where the current image block is located, an image block adjacent to the current image block; the current image In the current frame where the block is located, an image block that is not adjacent to the current image block; image blocks in the adjacent frame of the current frame where the current image block is located, for example, in the adjacent frame of the current frame where the current image block is located, and the current image block The reference image block at the same position, and the adjacent image block of the reference image block.
  • the motion information of the candidate image block may be determined as alternative motion information of the current image block. For example, in the current frame where the current image block is located, the motion information of the image block adjacent to the current image block (decoded motion information) ) To determine the candidate motion information of the current image block; determine the motion information (decoded motion information) of the image block that is not adjacent to the current image block in the current frame where the current image block is located as the candidate of the current image block Motion information; determining motion information (decoded motion information) of image blocks in adjacent frames of the current frame where the current image block is located as candidate motion information of the current image block.
  • the motion information of the candidate image blocks can also be fine-tuned (such as +1 the x component of the motion vector, -1 the x component of the motion vector, +1 the y component of the motion vector, and y component of the motion vector- 1 etc., without limitation), to obtain new motion information, and determine the new motion information as candidate motion information of the current image block.
  • the default motion information can also be determined as the candidate motion information of the current image block, such as zero vector, zero reference frame index, and unidirectional motion direction.
  • the motion information of the candidate image block may be the original motion information of the candidate image block or the target motion information of the candidate image block.
  • the candidate motion information of the current image block may be determined according to the original motion information of the candidate image block; and / or, if the candidate image block is in front of the current image block
  • a decoding unit may determine candidate motion information of the current image block according to the original motion information of the candidate image block.
  • target motion information of the candidate image block when decoding the current image block, target motion information of the candidate image block may be obtained, and candidate motion information of the current image block may be determined according to the target motion information of the candidate image block. Specifically, if the target motion information of the candidate image block already exists, the target motion information of the candidate image block may be obtained, and the target motion information of the candidate image block (the determination method of the target motion information of the candidate image block may be related to the current image). The method of determining the target motion information of a block is the same or different, and is not repeated here.) Determine the candidate motion information of the current image block; if there is no target motion information of the candidate image block, the original motion information of the candidate image block can be obtained. The candidate motion information of the current image block is determined according to the original motion information of the candidate image block.
  • the candidate image block adopts a motion information adjustment method (for example, the target motion information is obtained from the original motion information), and the decoding process of the candidate image block has ended, the candidate image block can be obtained Therefore, the target motion information of the candidate image block is determined as the candidate motion information of the current image block.
  • a motion information adjustment method for example, the target motion information is obtained from the original motion information
  • the decoding process of the candidate image block is not completed (for example, if the candidate image block is in the same decoding unit of the current image block and the candidate image block is in the previous decoding unit of the current image block, the decoding process may not be completed), then no candidate is obtained
  • the target motion information of the image block therefore, the original motion information of the candidate image block is determined as the candidate motion information of the current image block, instead of determining the target motion information of the candidate image block as the candidate motion information of the current image block.
  • the decoding unit may be a maximum allowed decoding block, such as a maximum decoding unit (CTU).
  • CTU maximum decoding unit
  • the original motion information of the candidate image block may be adjusted, and the candidate motion of the current image block may be determined according to the adjusted motion information.
  • Information (such as determining the adjusted motion information as candidate motion information); and / or, adjusting the target motion information of the candidate image block, and determining the candidate motion information of the current image block based on the adjusted motion information (such as Determining the adjusted exercise information as candidate exercise information).
  • the fine-tuning of the motion information of the candidate image block may include: performing transformation processing on the motion information of the candidate image block in a specified direction, performing weighting and other transformation processing, and there is no limitation on this.
  • the candidate motion information addition order of the current image block corresponding to the motion information of each candidate image block may be determined according to the positional relationship between each candidate image block and the current image block. Further, according to the addition, In sequence, each candidate sport information is added to the sport information list in turn until the number of candidate sport information in the sport information list reaches a preset number.
  • the order of adding candidate motion information may be: in the current frame where the current image block is located, candidate motion information corresponding to the motion information of an image block adjacent to the current image block; in the current frame where the current image block is located, Alternative motion information corresponding to motion information of image blocks that are not adjacent to the image block; alternative motion information corresponding to motion information of image blocks in adjacent frames of the current frame where the current image block is located; based on the motion information of the candidate image block Motion information obtained after fine-tuning; default motion information.
  • each candidate sport information can be added to the sport information list in turn.
  • it can be compared with the alternative exercise information in the exercise information list. If the two are the same, the alternative exercise information is not added to the exercise information list; if the two are different , You can add the candidate sport information to the sport information list to prevent the same candidate sport information from appearing in the sport information list as much as possible; and so on, until the number of candidate sport information in the sport information list reaches a preset Quantity N, no alternative exercise information is added.
  • Embodiment 5 The motion model is a non-two-parameter motion model, such as a four-parameter motion model, or a six-parameter motion model, or an eight-parameter motion model. then:
  • the candidate image block may include, but is not limited to, an image block adjacent to the current image block in the current frame where the current image block is located; wherein the motion model of the candidate image block may be the same as the motion model of the current image block, and
  • the candidate image block includes multiple sub-blocks, and different sub-blocks correspond to the same or different motion information.
  • the motion model of the current image block is a 4-parameter motion model
  • an image block of the 4-parameter motion model may be selected from adjacent image blocks, and the selected image block is used as a candidate image block.
  • step 1022 from the motion information of a plurality of sub-blocks of the candidate image block, motion information that matches the parameters of the motion model can be selected, and the candidate motion information of the current image block can be determined according to the selected motion information.
  • the motion model is a 4-parameter motion model
  • the number of parameter matching of the motion model is 2
  • the motion model is a 6-parameter motion model
  • the number of parameter matching of the motion model is 3
  • the motion model is an 8-parameter motion Model
  • the number of parameter matching for the motion model is 4; and so on.
  • selecting motion information that matches the parameters of the motion model from the motion information of multiple sub-blocks of the candidate image block may include:
  • Method 1 Select the motion information of the upper-left sub-block (such as the upper-left sub-block) and the motion information of the upper-right sub-block (such as the upper-right sub-block) of the candidate image block.
  • FIG. 2A is a flowchart of a candidate image block in an embodiment of the present application.
  • image block A0, image block A1, image block B0, image block B1, and image block B2 are candidate image blocks. From the motion information of all subblocks of the candidate image block, the top left subblock can be selected. Motion information and motion information of the upper right sub-block.
  • Method 2 For the candidate image block located on the upper side of the current image block, selecting the motion information of the lower left subblock (such as the lower left corner subblock) and the lower right subblock (such as the lower right corner subblock) of the candidate image block; For candidate image blocks that are not located on the upper side of the current image block, the motion information of the upper left subblock (such as the upper left corner subblock) and the upper right subblock (such as the upper right corner subblock) of the candidate image block are selected.
  • the motion information of the upper left subblock such as the upper left corner subblock
  • the upper right subblock such as the upper right corner subblock
  • FIG. 2B is a flowchart of a candidate image block in an embodiment of the present application.
  • image block B0, image block B1, and image block B2 are candidate image blocks located on the upper side of the current image block.
  • the motion of the lower left sub-block can be selected from the motion information of all sub-blocks of the candidate image block.
  • image block A0 and image block A1 are candidate image blocks that are not located on the upper side of the current image block.
  • the motion information of the upper left subblock and the upper right can be selected from the motion information of all subblocks of the candidate image block.
  • the motion information of the square block wherein, when the candidate image block and the current image block are not in the same decoding unit (CTU), the foregoing manner may be adopted.
  • CTU decoding unit
  • Method 3 For the candidate image block located on the upper side of the current image block, selecting the motion information of the lower left subblock (such as the lower left corner subblock) and the lower right subblock (such as the lower right corner subblock) of the candidate image block; For candidate image blocks that are not located on the upper side of the current image block, the motion information of the upper right subblock (such as the upper right corner subblock) and the lower right subblock (such as the lower right corner subblock) of the candidate image block are selected.
  • the motion information of the upper right subblock such as the upper right corner subblock
  • the lower right subblock such as the lower right corner subblock
  • FIG. 2C is a flowchart of a candidate image block in an embodiment of the present application.
  • image block B0, image block B1, and image block B2 are candidate image blocks located on the upper side of the current image block.
  • the motion of the lower left sub-block can be selected from the motion information of all sub-blocks of the candidate image block.
  • Information and motion information of the lower right sub-block are candidate image blocks that are not located on the upper side of the current image block.
  • the motion information and the right of the upper right sub-block can be selected from the motion information of all sub-blocks of the candidate image block. Motion information of the lower sub-block.
  • CTU decoding unit
  • sub-block selection may also be performed in any combination of the above three methods.
  • selecting motion information that matches the parameters of the motion model from the motion information of multiple sub-blocks of the candidate image block may further include: selecting a candidate image block.
  • the motion information of the upper left sub-block such as the upper-left sub-block
  • the motion information of the upper-right sub-block such as the upper-right sub-block
  • the motion information of the lower-left sub-block such as the lower-left sub-block.
  • selecting motion information that matches the parameters of the motion model from the motion information of multiple sub-blocks of the candidate image block may further include: selecting the upper-left child of the candidate image block.
  • Motion information of a block (such as the upper-left sub-block), motion information of the upper-right sub-block (such as the upper-right sub-block), motion information of the lower-left sub-block (such as the lower-left sub-block), and lower-right sub-block (such as the lower-right sub-block) Sports information.
  • the above selection method is only an example, and there is no limitation on this.
  • determining alternative motion information of the current image block according to the selected motion information may include: 4-parameters from point (x, y) to point (vx, vy)
  • the four parameter values of (a, b, e, f) can be determined using the motion information (such as motion vectors) of the two sub-blocks of the candidate image block, and these four parameter values can be used as the motion model of the current image block. Parameters.
  • the four parameters of the current image block can be obtained as follows: For image block B2, if the motion information in the lower left corner is (x0, y0), The motion information of the lower right corner is (x1, y1). Assuming that the width of the image block B2 is W, and the coordinates of the lower left corner of the image block B2 are (0, 0), then the coordinates of the lower right corner of the image block B2 is (w, 0). ).
  • the lower left corner subblock can move from (0,0) to (x0, y0), and the lower right corner subblock can move from (w, 0) to (w + x1, y1), that is,
  • selecting alternative motion information from the motion information list may include: selecting alternative motion information from the motion information list according to the motion information index; wherein the motion information index may be from an encoded bit stream Or the motion information index may be a default index (such as 1). For example, if the motion information index is 1, the first candidate motion information is selected from the motion information list.
  • the default index may be directly determined as the motion information index.
  • the second indication information may be obtained from the encoded bit stream, and the second indication information is used to indicate a motion information index. For example, if the encoding end uses the second candidate motion information in the motion information list, the second indication information added by the encoding end to the encoded bit stream is 2, which indicates the second candidate motion information in the motion information list. And so on. Based on this, after the decoder obtains the second indication information from the encoded bit stream, if the second indication information is 2, it determines that the motion information index is 2, which indicates the second candidate motion information.
  • the encoding end in order to determine the motion information index, may directly determine the default index as the motion information index; or, the encoding end may use each candidate motion information in the motion information list in turn to pre-encode the bit stream. Then, the coding performance of each candidate motion information is determined based on the rate-distortion principle, and then the position of the candidate motion information with the best coding performance in the motion information list is determined as the motion information index.
  • the above methods are just two examples, and there is no limitation on this.
  • Embodiment 7 Before step 104, the method may further include: obtaining difference information of the current image block. Specifically, selecting difference information from the difference list according to the difference information index; multiple difference values are configured in the difference list. Information; the difference information index is obtained from the encoded bit stream, or the difference information index is the default difference index. For example, if the difference information index is 1, the first difference information is selected from the difference list.
  • a difference list can be configured on the encoding end / decoding end according to experience.
  • the difference list is configured with multiple difference information, and the difference information can be 0, such as no difference, or non-zero. Make restrictions.
  • the default difference index may be directly determined as the difference information index.
  • the third indication information may be obtained from the encoded bit stream, and the third indication information is used to indicate the difference information index. For example, if the encoding end uses the first difference information in the difference list, the third indication information added by the encoding end to the encoded bit stream is 1, which indicates the first difference information in the difference list. analogy. Based on this, after acquiring the third indication information from the encoded bit stream, if the third indication information is 1, it determines that the difference information index is 1, which indicates the first difference information in the difference list.
  • the encoding end may directly determine the default difference index as the difference information index; or, the encoding end may use each difference information in the difference list in turn to Precoding is performed, and then the coding performance of each difference information is determined based on the rate-distortion principle, and then the position of the difference information with the best coding performance in the difference list is determined as the difference information index.
  • the foregoing determination method of the difference information index is only two examples, and there is no limitation on this.
  • determining the original motion information of the current image block according to the selected candidate motion information and the difference information of the current image block may include: according to the candidate motion information and the first weight, the difference information and the first Two weights determine the original motion information of the current image block.
  • the values of a and b can be adjusted in real time or fixed values, and the values of a and b can be configured or trained according to experience. In addition, the values of a and b may be equal or different.
  • determining the target motion information of the current image block according to the original motion information may include, but is not limited to: step 1051, obtaining a template of the current image block; step 1052, based on the template of the current image block, using the The original motion information is the central search target motion information.
  • the original motion information after obtaining the original motion information, the original motion information may not be used as the final motion information of the current image block, but target motion information different from the original motion information may be obtained according to the original motion information.
  • the target motion information is different from the current The motion information of the image block is the closest, so the target motion information can be used as the final motion information of the current image block.
  • the above method of “using the target motion information as the final motion information of the current image block” can help solve the problem that the prediction quality is not high and the prediction Problems such as errors.
  • obtaining a template of a current image block may include:
  • Method 1 Use the original motion information of the current image block to obtain the template of the current image block.
  • the original motion information (such as decoded motion information) of the current image block can be used to determine the predicted value of the current image block; a template of the current image block is obtained according to the predicted value of the current image block, for example, the current image block's The predicted value is determined as a template of the current image block.
  • each image block is decoded one by one. Therefore, the decoded motion information of the current image block can be used to determine the prediction value of the current image block.
  • the prediction value can be the reconstruction information and / or prediction of the current image block.
  • the reconstruction information may include luminance value, chrominance value, etc.
  • the prediction information may be an intermediate value capable of obtaining reconstruction information. If the intermediate value A can be used to obtain a luminance value, the intermediate value A is prediction information. Make restrictions.
  • Method 2 Obtain the motion information of the surrounding image blocks of the current image block (the surrounding image blocks in the spatial domain or the surrounding image blocks in the time domain, which are not limited), and use the motion information of the surrounding image blocks of the current image block. Gets the template of the current image block. Specifically, the motion information of the surrounding image blocks (such as decoded motion information) is used to determine the prediction value of the surrounding image blocks; according to the prediction values of the surrounding image blocks, a template of the current image block is obtained, such as determining the prediction values of the surrounding image blocks. The template for the current image block.
  • the motion information of the surrounding image blocks is known, therefore, the motion information of the surrounding image blocks, such as the motion vector and Reference the frame index, etc., and use the motion information of the surrounding image blocks to determine the predicted values of the surrounding image blocks.
  • the predicted values may be reconstruction information and / or prediction information of the surrounding image blocks.
  • the reconstruction information may include luminance values, chrominance values, etc.
  • the prediction information may be an intermediate value capable of obtaining reconstruction information. For example, if a luminance value can be obtained by using the intermediate value A, the intermediate value A is prediction information, and there is no limitation on this. Then, the prediction value of the surrounding image block is determined as a template of the current image block.
  • the motion information of the surrounding image block is the original motion information of the surrounding image block.
  • Method 3 Acquire the motion information of the surrounding image blocks of the current image block, and use the motion information of the surrounding image blocks of the current image block to obtain the template of the current image block. Specifically, when the motion information includes a motion vector and a reference frame index of a surrounding image block, a reference frame image corresponding to the surrounding image block is determined according to the reference frame index; and the surrounding frame is obtained from the reference frame image according to the motion vector. A reference image block corresponding to the image block, and a template of the current image block is obtained according to the reference image block.
  • the motion information of the surrounding image blocks is the original motion information of the surrounding image blocks.
  • the surrounding image blocks may include M first surrounding image blocks and N second surrounding image blocks, where M is a natural number greater than or equal to 1, N is a natural number greater than or equal to 0, or M is greater than or A natural number equal to 0, and N is a natural number greater than or equal to 1; the first surrounding image block is located on the upper side of the current image block, and the second surrounding image block is located on the left side of the current image block.
  • Using the motion information of the surrounding image blocks of the current image block to obtain a template of the current image block may include: determining the first template according to the motion vector prediction mode and motion information of the M first surrounding image blocks; Determine the second template of the motion vector prediction mode and motion information of the image block; determine the first template as the template of the current image block; or determine the second template as the template of the current image block; or determine the first template and the first The two templates are determined as the template of the current image block after stitching.
  • the first template when M is a natural number greater than or equal to 1, and N is 0, the first template may be determined according to the motion vector prediction mode and motion information of the M first surrounding image blocks, and the first template may be determined as the current image block. Template.
  • N is a natural number greater than or equal to 1, and M is 0, a second template may be determined according to the motion vector prediction mode and motion information of N second surrounding image blocks, and the second template may be determined as a template of the current image block. .
  • a first template may be determined according to the motion vector prediction mode and motion information of the M first surrounding image blocks, and according to the N second surrounding images Block motion vector prediction mode and motion information, determine the second template, determine the first template as the template of the current image block; or determine the second template as the template of the current image block; or stitch the first template and the second template It is then determined as the template of the current image block.
  • the first surrounding image block includes an adjacent image block and / or a second-neighboring image block on the upper side of the current image block; the prediction mode of the adjacent image block is an inter mode or an intra mode; and the prediction mode of the second-neighbor image block is Inter mode.
  • the first surrounding image block may include at least one adjacent image block whose prediction mode is inter mode, for example, all adjacent image blocks on the upper side of the current image block, or the first adjacent image on the upper side of the current image block. Block, or any one or more adjacent image blocks above the current image block.
  • the first surrounding image block may further include at least one second neighboring image block whose prediction mode is the inter mode, for example, on the upper side of the current image block. All neighboring image blocks of, or the first neighboring image block above the current image block, or any one or more neighboring image blocks above the current image block.
  • the first surrounding image block may further include adjacent image blocks in the intra mode, for example, in the first frame on the upper side of the current image block. Adjacent image blocks of the pattern, all adjacent image blocks of the intra mode on the upper side of the current image block, and so on.
  • the above is only an example of the first surrounding image block, which is not limited.
  • the second surrounding image block includes an adjacent image block and / or a second-neighboring image block on the left side of the current image block; the prediction mode of the adjacent image block is an inter mode or an intra mode; and the prediction mode of the second-neighboring image block is Inter mode.
  • the second surrounding image block may include at least one adjacent image block whose prediction mode is inter mode, for example, all adjacent image blocks to the left of the current image block, or the first adjacent image to the left of the current image block. Block, or any one or more adjacent image blocks to the left of the current image block.
  • the second surrounding image block may further include at least one second image block whose prediction mode is the inter mode, for example, the left side of the current image block All neighboring image blocks of, or the first neighboring image block to the left of the current image block, or any one or more neighboring image blocks to the left of the current image block.
  • the second surrounding image block may also include adjacent image blocks in the intra mode, for example, in the first frame on the left side of the current image block. The adjacent image blocks of the pattern, the adjacent image blocks of all intra-frame modes to the left of the current image block, and so on.
  • the above is only an example of the second surrounding image block, which is not limited.
  • the adjacent image blocks of the current image block include, but are not limited to, spatially adjacent image blocks of the current image block (for example, adjacent image blocks in the same frame of video image); or time-domain adjacent image blocks of the current image block. (Such as adjacent image blocks in different frames of video image).
  • the second-neighbor image block of the current image block includes, but is not limited to, the spatially-neighbor image block of the current image block (for example, the second-neighbor image block in the same frame of video image); or the time-domain next-neighbor image block (for example, Second-neighboring image blocks in different frames of video images).
  • the first template when M is greater than 1, may include M sub-templates or P sub-templates, and is stitched from M sub-templates or P sub-templates, and P may be the first surrounding image block in the inter mode. , P is less than or equal to M.
  • the first template when the M first surrounding image blocks are all surrounding image blocks in the inter mode, the first template includes M sub-templates and is formed by splicing the M sub-templates.
  • the first template may include M sub-templates (for example, each surrounding image block corresponds to one Sub-templates), and are stitched from M sub-templates, or the first template includes P sub-templates (for example, P sub-templates corresponding to the surrounding image blocks of P inter-frame modes), and is stitched from P sub-templates.
  • the first template may include a first sub-template, which may be determined according to a motion vector prediction mode and motion information of a first surrounding image block on the upper side of the current image block; or The first sub-template may be determined according to a motion vector prediction mode and motion information of any surrounding image block on the upper side of the current image block.
  • the first surrounding image block includes at least one neighboring image block or a second neighboring image block whose prediction mode is the inter mode
  • the first template when M is equal to 1, includes the neighboring image blocks of the inter mode or The first sub-template corresponding to the next neighboring image block.
  • the motion information may include a motion vector and a reference frame index of the first surrounding image block, and determining the first template according to the motion vector prediction modes and motion information of the M first surrounding image blocks may include:
  • the i-th surrounding image block of the M first surrounding image blocks when it is determined that the motion vector prediction mode of the i-th surrounding image block is an inter mode, the i-th surrounding can be determined according to the reference frame index The reference frame image corresponding to the image block; further, the reference image block corresponding to the i-th surrounding image block may also be determined from the reference frame image according to the motion vector of the i-th surrounding image block; where the reference image block is related to The relative position offset of the i-th surrounding image block can be matched with the motion vector of the i-th surrounding image block; further, the size can be obtained according to the determined reference image block as the first horizontal length and the first vertical length The image block as the i-th sub-template included in the first template.
  • the i-th surrounding image block when it is determined that the motion vector prediction mode of the i-th surrounding image block is an intra mode, the i-th surrounding image block may be set as a default The value (for example, a default pixel value, and the default value may be a brightness value pre-configured based on experience) for padding. Further, based on the image blocks filled with default values, an image block having a first horizontal length and a first vertical length can be obtained as an i-th sub-template included in the first template.
  • the value for example, a default pixel value, and the default value may be a brightness value pre-configured based on experience
  • Case 3 For the i-th surrounding image block of the M first surrounding image blocks, when it is determined that the motion vector prediction mode of the i-th surrounding image block is an intra mode, it may be based on the corresponding i-th surrounding image block.
  • the reference frame index determines the reference frame image corresponding to the i-th surrounding image block; further, the reference image corresponding to the i-th surrounding image block can be determined from the reference frame image according to the motion vector corresponding to the i-th surrounding image block Piece.
  • the relative position offset between the reference image block and the i-th surrounding image block matches the motion vector corresponding to the i-th surrounding image block (including equal or approximately equal); further, it can be obtained according to the determined reference image block.
  • the image block with the size of the first horizontal length and the first vertical length is used as the i-th sub-template included in the first template; wherein the reference frame index and motion vector corresponding to the i-th surrounding image block are the i-th surrounding image block. Reference frame index and motion vector of neighboring image blocks.
  • the first horizontal length and the horizontal length of the first surrounding image block satisfy a first proportional relationship (such as 1: 1, 1: 2, 2: 1, etc., which is not limited), or the horizontal length of the current image block Meet the second proportional relationship (such as 1: 1, 1: 2, 2: 1, etc.), or be equal to the first preset length (configured according to experience).
  • the first vertical length and the vertical length of the first surrounding image block satisfy a third proportional relationship (such as 1: 1, 1: 2, 2: 1, etc.), or the vertical length of the current image block satisfies a fourth proportional relationship (such as 1 : 1, 1: 2, 2: 1, etc.), or equal to a second preset length (for example, a length configured according to experience).
  • the first proportional relationship, the second proportional relationship, the third proportional relationship, and the fourth proportional relationship may be set to be the same or different.
  • the first preset length and the second preset length may be set to be the same or different.
  • the second template when N is greater than 1, may include N sub-templates or R sub-templates, and is spliced from N sub-templates or R sub-templates, and R may be the second surrounding image block in the inter-frame mode. Number, R is less than or equal to N.
  • the second template when the N second surrounding image blocks are all surrounding image blocks in the inter mode, the second template includes N sub-templates and is formed by splicing the N sub-templates.
  • the second template may include N sub-templates (for example, each surrounding image block corresponds to a sub- Template), and is spliced from N sub-templates, or the second template includes R sub-templates (for example, R sub-templates corresponding to the surrounding image blocks of R inter-frame modes), and is spliced from R sub-templates.
  • the second template may include a second sub-template, which may be determined according to a motion vector prediction mode and motion information of a first surrounding image block on the left side of the current image block; or The second sub-template may be determined according to a motion vector prediction mode and motion information of any surrounding image block on the left side of the current image block.
  • the second surrounding image block includes at least one neighboring image block or the next neighboring image block whose prediction mode is the inter mode
  • the second template includes the neighboring image blocks of the inter mode or The second sub-template corresponding to the next-neighbor image block.
  • the motion information may include a motion vector and a reference frame index of the second surrounding image block, and determining the second template according to the motion vector prediction mode and motion information of the N second surrounding image blocks may include:
  • the i-th surrounding image block of the N second surrounding image blocks when it is determined that the motion vector prediction mode of the i-th surrounding image block is an inter mode, the i-th surrounding can be determined according to the reference frame index The reference frame image corresponding to the image block; further, the reference image block corresponding to the i-th surrounding image block may also be determined from the reference frame image according to the motion vector of the i-th surrounding image block; where the reference image block is related to The relative position offset of the i-th surrounding image block can be matched with the motion vector of the i-th surrounding image block; further, the size can be obtained as the second horizontal length and the second vertical length according to the determined reference image block The image block as the i-th sub-template included in the second template.
  • the i-th surrounding image block when it is determined that the motion vector prediction mode of the i-th surrounding image block is an intra mode, the i-th surrounding image block may be set as a default The value (for example, a default pixel value, and the default value may be a brightness value pre-configured based on experience) for padding. Further, based on the image blocks filled with the default values, image blocks having a second horizontal length and a second vertical length can be obtained as the i-th sub-template included in the second template.
  • the value for example, a default pixel value, and the default value may be a brightness value pre-configured based on experience
  • the corresponding i-th surrounding image block may be The reference frame index determines the reference frame image corresponding to the i-th surrounding image block; further, the reference image corresponding to the i-th surrounding image block can be determined from the reference frame image according to the motion vector corresponding to the i-th surrounding image block Block, wherein the relative position offset between the reference image block and the i-th surrounding image block matches the motion vector corresponding to the i-th surrounding image block (including equal or approximately equal); further, the determined reference image Block to obtain an image block of the second horizontal length and the second vertical length as the i-th sub-template included in the first template; wherein the reference frame index and motion vector corresponding to the i-th surrounding image block are the i-th surrounding Reference frame indexes and motion vectors of neighboring image blocks of the image block.
  • the second horizontal length and the horizontal length of the second surrounding image block satisfy a fifth proportional relationship (such as 1: 1, 1: 2, 2: 1, etc., which is not limited), or the horizontal length of the current image block Meet the sixth proportional relationship (such as 1: 1, 1: 2, 2: 1, etc.), or be equal to the third preset length (configured according to experience).
  • the second vertical length and the vertical length of the second surrounding image block satisfy a seventh proportional relationship (such as 1: 1, 1: 2, 2: 1, etc.), or the vertical length of the current image block satisfies an eighth proportional relationship (such as 1) : 1, 1: 2, 2: 1, etc.), or equal to a fourth preset length (for example, a length configured based on experience).
  • the fifth proportional relationship, the sixth proportional relationship, the seventh proportional relationship, and the eighth proportional relationship may be set to be the same or different.
  • the third preset length and the fourth preset length may be set to be the same or different.
  • 3A-3E are schematic diagrams of templates in an embodiment of the present application. The following describes the template of the current image block in detail in combination with several specific application scenarios.
  • the surrounding image blocks may include: adjacent image blocks of all inter-frame modes on the upper side of the current image block, and adjacent image blocks of all inter-frame modes on the left side of the current image block.
  • the image block A3 and image block A4 in the inter mode can be determined as the current image block A1.
  • the image block A2 in the inter mode can be determined as the surrounding image block of the current image block A1.
  • a template of the current image block A1 is obtained according to the motion information of the image block A2, the motion information of the image block A3, and the motion information of the image block A4.
  • the reference frame image corresponding to image block A2 is determined according to the reference frame index, and image block B2 corresponding to image block A2 is selected from the reference frame image.
  • Image block B2 is moved according to the motion vector of image block A2 to obtain
  • the reference image block B2 'corresponding to the image block A2 can be obtained by the same way.
  • the reference image block B3' corresponding to the image block A3 and the reference image block B4 'corresponding to the image block A4 can be obtained, as shown in FIG. 3B.
  • a template of the current image block A1 is obtained from the reference image block B2 ', the reference image block B3', and the reference image block B4 '.
  • the horizontal length of the upper template of the current image block A1 is W and the vertical length is S.
  • the value of W can be configured according to experience, and the value of S can be configured according to experience.
  • the values of W and S are both No restrictions.
  • the value of W can be the horizontal length of the current image block A1, the horizontal length of the surrounding image block A2, or 2 times the horizontal length of the current image block A1, etc .
  • the value of S can be the value of the surrounding image block A2.
  • the vertical length or 1/3 of the vertical length of the surrounding image block A2.
  • the horizontal length of the surrounding image block A2 is taken as an example, for example, W is the horizontal length of the reference image block B2 '; and the S value is 1/3 of the vertical length of the surrounding image block A2. For example, S is 1/3 of the longitudinal length of the reference image block B2 '.
  • the horizontal length of the template on the left side of the current image block A1 is R and the vertical length is H.
  • the value of R can be configured based on experience, and the value of H can be configured based on experience.
  • the value of H can be the vertical length of the current image block A1, or the vertical length of the surrounding image block A3, etc .
  • the value of R can be the horizontal length of the surrounding image block A3, or the horizontal length of the surrounding image block A3. 1/3 and so on.
  • FIG. 3C it is a schematic diagram of a template corresponding to the reference image block B3 '. Taking the value of H as the vertical length of the surrounding image block A3 as an example, and the value of R as the horizontal length of the surrounding image block A3. Take 1/3 as an example.
  • the prediction mode of the surrounding image block is determined.
  • the sub-template is no longer generated, or it is filled according to the default value (such as the default pixel value, which can be a brightness value pre-configured according to experience), and is used as the i-th sub-template of the upper template.
  • the default value such as the default pixel value, which can be a brightness value pre-configured according to experience
  • the motion information (such as motion vector and reference frame index) of the i-th surrounding image block can be obtained, and a template with a horizontal length of wi and a vertical length of S is generated based on the motion vector and the reference frame index.
  • a template with a horizontal length of wi and a vertical length of S is generated based on the motion vector and the reference frame index.
  • the prediction mode of the surrounding image block is determined.
  • the sub-template is no longer generated, or it is filled according to the default value (such as the default pixel value, which can be a brightness value pre-configured according to experience), as the i-th sub-template of the left template.
  • the default value such as the default pixel value, which can be a brightness value pre-configured according to experience
  • the motion information (such as motion vector and reference frame index) of the i-th surrounding image block can be obtained.
  • a template with a horizontal length of R and a vertical length of hi can be generated.
  • the i-th child template of the template on the left Specifically, if the motion vector is MV and the reference frame index is idx, a rectangular block with a relative position offset of MV and a horizontal length of R and a vertical length of hi can be found in the idx reference image of the current frame as the left The i-th child template of the side template.
  • the upper template can be stitched from all the sub templates on the upper side
  • the left template can be stitched from all the sub templates on the left
  • the upper template and the left template are stitched into the template of the current image block.
  • the surrounding image block may include: a neighboring image block of the first inter mode on the upper side of the current image block, and a neighboring image of the first inter mode on the left of the current image block Piece.
  • the image block A3 may be determined as a surrounding image block of the current image block A1. If the first image block A2 on the upper side is in an inter mode, the image block A2 may be determined as a surrounding image block of the current image block A1.
  • the surrounding image blocks are the image block A2 and the image block A3
  • the template of the current image block A1 is obtained according to the motion information of the image block A2 and the motion information of the image block A3.
  • the obtaining method refer to the application scenario 1, and details are not described herein again.
  • the horizontal length of the upper template of the current image block A1 is W and the vertical length is S.
  • the value of W can be configured according to experience, and the value of S can be configured according to experience.
  • the values of W and S are both No restrictions.
  • the value of W can be the horizontal length of the current image block A1, or the horizontal length of the surrounding image block A2, etc .
  • the value of S can be the vertical length of the surrounding image block A2, or the vertical length of the surrounding image block A2. 1/3 length and so on.
  • FIG. 3E a schematic diagram of a template corresponding to the reference image block B2 'is shown.
  • the horizontal length of the template on the left side of the current image block A1 is R and the vertical length is H.
  • the value of R can be configured based on experience, and the value of H can be configured based on experience.
  • the value of R and H can be the vertical length of the current image block A1, or the vertical length of the surrounding image block A3, etc .
  • the value of R can be the horizontal length of the surrounding image block A3, or it can be the value of the surrounding image block A3. 1/3 of the horizontal length.
  • FIG. 3E it is a schematic diagram of a template corresponding to the reference image block B3 '.
  • the surrounding image blocks may include adjacent image blocks in the inter mode on the upper side of the current image block, and the next adjacent image blocks in the inter mode on the upper side of the current image block (for example, when the adjacent image block is in the intra mode, select this
  • the adjacent image block corresponds to the current image block that is the second-neighboring image block), the adjacent image block in the inter mode on the left side of the current image block, and the second-neighbor image block on the left side of the current image block.
  • the surrounding image block may include the current image block The next neighboring image block in the inter-frame mode on the upper side; if the first adjacent image block on the left side of the current image block is in the intra mode and the image block on the left side of the first adjacent image block is in the inter mode, Then, the surrounding image block may include a next-neighbor image block in an inter mode on the left side of the current image block.
  • step 1052 searching for target motion information centered on the original motion information based on a template of the current image block may include, but is not limited to, the following steps:
  • step 1052A1 the original motion information is determined as the central motion information.
  • Step 1052A2 determining edge motion information corresponding to the center motion information.
  • the edge motion information may be different from the center motion information.
  • the original motion information may include an original motion vector
  • the central motion information may include a central motion vector
  • the edge motion information may include an edge motion vector
  • Determining the edge motion vector corresponding to the central motion vector may include: shifting the central motion vector (x, y) in different directions by S, so as to obtain the edge motion vector (xS, y) and the edge in different directions.
  • the center motion vector (x, y) can be shifted to the left by S to obtain the edge motion vector (xS, y); in the horizontal direction, the center motion vector (x, y) can be shifted to the right.
  • the initial value of S can be configured according to experience, for example, it can be 2, 4, 8, 16, and so on.
  • edge motion vector is edge motion vector (7, 3), edge motion vector (3, 7), edge motion vector (-1, 3), and edge motion.
  • the center motion information in order to search for the edge motion information corresponding to the center motion information, is used as the center to perform a search of up, down, left, and right shifts; in another example, no directionless Instead of searching along the direction of the original motion information.
  • Step 1052A3 Obtain the prediction performance of the central motion information (center motion vector) according to the template of the current image block, and obtain the prediction performance of the edge motion information (edge motion vector) according to the current image block template.
  • Obtaining the prediction performance of the central motion vector according to the template of the current image block may include, but is not limited to, determining the prediction performance of the central motion vector according to the parameter information of the template of the current image block and the parameter information of the first target reference block.
  • the first target reference block may be an image block obtained after a reference image block corresponding to the template is offset based on a central motion vector.
  • the prediction performance of the central motion vector may be determined according to the parameter information of the template and the parameter information of the first target reference block.
  • the foregoing parameter information may be a brightness value; or may be a brightness value and a chrominance value.
  • the brightness value of the template of the current image block and the brightness value of the first target reference block may be obtained first. For example, after obtaining the template of the current image block, the brightness value of each pixel of the template can be obtained, and the reference image block of the template can be obtained.
  • the central motion vector ( 3, 3) Move the reference image block to obtain the image block X corresponding to the reference image block (for example, move the reference image block to the right by 3 pixels and move it upward by 3 pixels, and record the processed image block as an image Block X), and the image block X is the first target reference block, and the brightness value of each pixel point of the image block X can be obtained.
  • SAD is the sum of available absolute differences used to represent the prediction performance of the central motion vector.
  • TM i represents the brightness value of the i-th pixel of the template
  • TMP i represents the brightness value of the i-th pixel of the image block X
  • M represents the total number of pixels.
  • the average of the luma value prediction performance SAD and the chroma value prediction performance CSAD is the prediction performance of the central motion vector.
  • CSAD is the sum of available absolute differences, which is used to represent the chroma value prediction performance of the central motion vector
  • CTM i is the chroma value of the i-th pixel of the template
  • CTMP i is the chroma of the i-th pixel of the image block X Value
  • Mc represents the total number of pixels.
  • Obtaining the prediction performance of the edge motion vector according to the template of the current image block may include, but is not limited to, determining the prediction performance of the edge motion vector according to the parameter information of the template of the current image block and the parameter information of the second target reference block.
  • the second target reference block may be an image block obtained after the reference image block corresponding to the template is offset based on the edge motion vector.
  • the prediction performance of the edge motion vector may be determined according to the parameter information of the template and the parameter information of the second target reference block.
  • the foregoing parameter information may be a brightness value; or may be a brightness value and a chrominance value.
  • Case 2 is similar to Case 1, except that in Case 1, the reference image block of the template is moved using the edge motion vector to obtain the second target reference block, and the prediction performance of the edge motion vector is obtained using the second target reference block.
  • the reference image block of the template is moved using the central motion vector to obtain a first target reference block, and the prediction performance of the central motion vector is obtained using the first target reference block.
  • Step 1052A4 Determine target motion information (such as a target motion vector) from the center motion information and the edge motion information according to the prediction performance of the center motion information and the edge motion information.
  • target motion information such as a target motion vector
  • a motion vector with the best prediction performance may be selected from the center motion vector and the edge motion vector; when the motion vector with the best prediction performance is not the original motion vector, the motion vector with the best prediction performance may be determined as Target motion vector; when the motion vector with the best prediction performance is the original motion vector, the motion vector with the best prediction performance can be selected from the center motion vector and the edge motion vector, and the motion vector with the best prediction performance is determined as Target motion vector.
  • Embodiment 12 For step 1052, in another embodiment, searching for target motion information centered on the original motion information based on a template of the current image block may include, but is not limited to, the following steps:
  • Step 1052B1 determining the original motion information as the central motion information.
  • Step 1052B2 determining edge motion information corresponding to the center motion information.
  • Step 1052B3 Obtain the prediction performance of the central motion information according to the template of the current image block, and obtain the prediction performance of the edge motion information according to the template of the current image block.
  • steps 1052B1 to 1052B3 refer to steps 1052A1 to 1052A3, and details are not described herein again.
  • Step 1052B determine whether the iteration end condition of the target motion information is satisfied.
  • step 1052B6 If yes, go to step 1052B6; if not, go to step 1052B5.
  • the iteration end condition may include, but is not limited to, the number of iterations reaching the number threshold, or the execution time reaching the time threshold, or the parameter S has been modified to a preset value, such as 1.
  • step 1052B5 the motion information with the best prediction performance is selected from the center motion information and the edge motion information, and the motion information with the best prediction performance is determined as the center motion information, and the process returns to step 1052B2.
  • the value of the parameter S may be an initial value, such as 16.
  • the value of parameter S is adjusted, such as the last parameter S minus 2 or the last parameter S half. There is no restriction on this, as long as it is less than the last parameter S. Subsequent adjustment is taken as half of the previous parameter S as an example. Therefore, when step 1052B2 is executed for the second time, the value of parameter S is 8; when step 1052B2 is executed for the third time, the value of parameter S is 4; and so on.
  • step 1052B2 After adjusting the value of the parameter S, it is determined whether the adjusted parameter S is less than or equal to a preset value, such as 1. If not, step 1052B2 is performed based on the adjusted parameter S, and the process is not described again. If yes, the value of the parameter S is set to 1, and step 1052B2 is performed based on the parameter S (for example, the value 1), and when the execution reaches step 1052B4, the determination result is that the iteration end condition is satisfied.
  • a preset value such as 1.
  • Step 1052B6 Determine target motion information (such as a target motion vector) from the center motion information and the edge motion information according to the prediction performance of the center motion information and the edge motion information.
  • target motion information such as a target motion vector
  • step 1052B6 For the processing of step 1052B6, refer to step 1052A4, and details are not described herein again.
  • the current image block is a bidirectional inter prediction block
  • the original motion information includes a first reference frame and a second reference frame corresponding to the current image block, and a first motion vector corresponding to the first reference frame.
  • the second motion vector corresponding to the second reference frame see FIG. 4, which is a flowchart of a decoding method according to an embodiment of the present application.
  • the method may include:
  • Step 401 Obtain a first initial reference block (image block in the first reference frame) corresponding to the current image block from the first reference frame according to the first motion vector, and obtain an AND block from the second reference frame according to the second motion vector.
  • the second initial reference block (the image block in the second reference frame) corresponding to the current image block.
  • Step 402 Based on the similarity between the first initial reference block and the second initial reference block, in the first reference frame, the first target reference block is searched according to multiple offset directions and offsets with the first motion vector as the center. (Image block in the first reference frame), in the second reference frame, with the second motion vector as the center, search for the second target reference block (the image in the second reference frame) according to a plurality of offset directions and offsets Piece).
  • the similarity between the first target reference block and the second target reference block meets a preset requirement.
  • the similarity between the first initial reference block and the second initial reference block may be determined in the following manner: using a bilinear interpolation method to determine the predicted value of the first initial reference block and the predicted value of the second initial reference block; The downsampling processing result of the prediction value of the first initial reference block and the prediction value of the second initial reference block is obtained, and based on the downsampling processing result, SAD (sum of abstract) of the first initial reference block and the second initial reference block is determined. difference (absolute difference sum) or MRSAD (mean removed difference of mean absolute difference), determining the similarity between the first initial reference block and the second initial reference block based on SAD or MRSAD, that is, the SAD Or MRSAD may be the similarity.
  • a first initial reference block corresponding to the current image block is determined from the first reference frame according to the first central motion vector, and a first prediction value of the first initial reference block is determined.
  • a second initial reference block corresponding to the current image block is determined from the second reference frame according to the second central motion vector, and a second prediction value of the second initial reference block is determined.
  • a third initial reference block corresponding to the current image block is determined from the first reference frame according to the first edge motion vector, and a third prediction value of the third initial reference block is determined.
  • a fourth initial reference block corresponding to the current image block is determined from the second reference frame according to the second edge motion vector, and a fourth prediction value of the fourth initial reference block is determined.
  • the first similarity may be determined according to the first predicted value and the second predicted value
  • the second similarity may be determined according to the third predicted value and the fourth predicted value.
  • the first target reference block and the second target reference block may be determined according to the first similarity and the second similarity. Specifically, if the first similarity is higher than the second similarity, the first initial reference block is determined as the first target reference block, and the second initial reference block is determined as the second target reference block; if the second similarity is Above the first similarity, the third initial reference block may be determined as the first target reference block, and the fourth initial reference block may be determined as the second target reference block.
  • the steps of determining the first target reference block and the second target reference block according to the first similarity and the second similarity may be performed; if not, if the first similarity is higher than the second similarity Degree, a step of determining a first edge motion vector corresponding to the first center motion vector and a second edge motion vector corresponding to the second center motion vector may be performed; if the second similarity is higher than the first similarity, then Determine the first edge motion vector as the first center motion vector, determine the second edge motion vector as the second center motion vector, and execute the determination of the first edge motion vector corresponding to the first center motion vector and the second center motion The vector corresponds to the step of the second edge motion vector.
  • the first similarity may include but is not limited to SAD or MRSAD
  • the second similarity may include but is not limited to SAD or MRSAD.
  • determining the first similarity according to the first predicted value and the second predicted value includes: downsampling the first predicted value and the second predicted value, and using the first predicted value after the downsampling And the second predicted value after downsampling to determine the first similarity; determining the second similarity according to the third predicted value and the fourth predicted value, including: the third predicted value and the fourth predicted value can be down-sampled, using The third predicted value after downsampling and the fourth predicted value after downsampling determine the second similarity.
  • an interpolation strategy in which the number of horizontal and vertical taps is less than or equal to N (N is preferably 2 (bilinear interpolation), of course, N can also be other values, and there is no limitation on this) is determined.
  • the corresponding first prediction value of an initial reference block; an interpolation strategy where the number of horizontal and vertical taps is less than or equal to N may be used to determine the corresponding second prediction value of the second initial reference block; both the horizontal and vertical tap numbers may be used
  • An interpolation strategy of less than or equal to N determines the corresponding third predicted value of the third initial reference block; an interpolation strategy of both horizontal and vertical tap numbers less than or equal to N may be used to determine the corresponding fourth predicted value of the fourth initial reference block.
  • determining the first edge motion vector corresponding to the first center motion vector and the second edge motion vector corresponding to the second center motion vector may include: Mode 1: Offset the first center motion vector Processing (including direction and offset) to obtain a first edge motion vector; and performing offset processing on the second center motion vector to obtain a second edge motion vector.
  • Method 2 Perform offset processing on the first center motion vector to obtain the first edge motion vector; and derive the second edge motion vector and the second center motion vector based on the difference between the first edge motion vector and the first center motion vector.
  • a difference using the difference and the second center motion vector to determine a second edge motion vector; for example, if the first edge motion vector and the first center motion vector correspond to a difference A, the second edge motion vector and the second center The motion vector is the difference A, so the second edge motion vector is the sum of the second center motion vector and the difference A; for another example, if the first edge motion vector and the first center motion vector correspond to the difference A, the second The edge motion vector and the second center motion vector are -1 * difference A. Therefore, the second edge motion vector is the difference between the second center motion vector and the difference A.
  • Step 403 Determine the motion information of the first target reference block as the target motion information of the current image block, and determine the motion information of the second target reference block as the target motion information of the current image block.
  • Embodiment 14 There may be original motion information M in the current image block, and the original motion information M may include a first motion vector M1 and a second motion vector M2.
  • the first motion vector M1 may correspond to the reference frame A1
  • the second motion vector M2 may correspond to the reference frame A2.
  • the first motion vector M1 is determined as the first central motion vector T1
  • the second motion vector M2 is determined as the second central motion vector T2.
  • the first center motion vector T1 is shifted S in a certain direction to obtain a first edge motion vector W1
  • the second center motion vector T2 is shifted S in a certain direction to obtain a second edge motion vector W2; of course, the above only determines the edge Examples of exercise information are not limited.
  • the first initial reference block corresponding to the current image block may be determined from the reference frame A1 according to the first central motion vector T1, and the first prediction value of the first initial reference block may be determined.
  • an interpolation strategy in which the number of horizontal and vertical taps is less than or equal to N may be used to determine the first prediction value of the first initial reference block, such as the first prediction value (such as the pixel value) of each pixel in the first initial reference block.
  • the first prediction value such as the pixel value
  • the search is a sub-pixel search, for example, the minimum accuracy of the search is less than 1 pixel, the pixels in the first initial reference block may not be integer pixels, such as 0.75, etc.
  • an interpolation strategy with both horizontal and vertical taps less than N can be used.
  • the above interpolation strategy is bilinear interpolation
  • the strategy, that is, the first prediction value (such as the pixel value) of the pixel 0.75 can be determined by using a bilinear interpolation strategy.
  • the first predicted value may be determined by using four real pixel values around the pixel point 0.75.
  • the second initial reference block corresponding to the current image block may be determined from the reference frame A2 according to the second central motion vector T2, and the second prediction value of the second initial reference block may be determined.
  • a third initial reference block corresponding to the current image block is determined from the reference frame A1 according to the first edge motion vector W1, and a third prediction value of the third initial reference block is determined.
  • a fourth initial reference block corresponding to the current image block is determined from the reference frame A2 according to the second edge motion vector W2, and a fourth prediction value of the fourth initial reference block is determined.
  • the similarity degree 1 may be determined according to the first predicted value and the second predicted value
  • the similarity degree 2 may be determined according to the third predicted value and the fourth predicted value.
  • the predicted values of pixels P1-P100 can be down-sampled, and the predicted values of pixels Q1-Q100 can be down-sampled.
  • the down-sampling rate is 1, the result of down-sampling is pixels P1-P100.
  • the results of the downsampling are the predicted values of pixels P1-P25, the predicted values of pixels Q1-Q25; and so on.
  • the absolute value of the difference between the predicted value of P1 and the predicted value of Q1 can be calculated, such as X1, and the prediction of P2 is calculated.
  • the similarity 2 can be determined in the above manner.
  • the similarity degree 1 is determined as follows: First, down-sample the predicted values of pixels P1-P100, and down-sample the predicted values of pixels Q1-Q100. For example, if The downsampling rate is 4, and the results of the downsampling are the predicted values of pixels P1-P25 and the predicted values of pixels Q1-Q25.
  • the motion vector T1 re-searches for the first edge motion vector W3 (different from the above-mentioned first edge motion vector W1), and searches for the second edge motion vector W4 (different from the above-mentioned second edge motion vector W2) based on the first center motion vector T2.
  • the above steps are performed again based on the first center motion vector T1, the first edge motion vector W3, the first center motion vector T2, and the second edge motion vector W4, and details are not described herein again.
  • the first edge motion vector W1 is determined as the first center motion vector T3
  • the second edge motion vector W2 is determined as the second center motion vector T4
  • the first center motion vector T3 Re-search the first edge motion vector W5, and re-search the second edge motion vector W6 according to the second center motion vector T4, based on the first center motion vector T3, the first edge motion vector W5, the first center motion vector T4, and the second edge
  • the motion vector W6 performs the foregoing steps again, and details are not described herein again.
  • the first target reference block and the second target reference block After determining whether the end condition is satisfied, if yes, determine the first target reference block and the second target reference block according to the first similarity and the second similarity (such as similarity 1 and similarity 2). If the degree of similarity 1 is higher than the degree of similarity 2, the first initial reference block may be determined as the first target reference block, and the second initial reference block may be determined as the second target reference block; if the degree of similarity 2 is higher than the degree of similarity 1 , The third initial reference block may be determined as the first target reference block, and the fourth initial reference block may be determined as the second target reference block.
  • the first target reference block and the second target reference block according to the first similarity and the second similarity (such as similarity 1 and similarity 2). If the degree of similarity 1 is higher than the degree of similarity 2, the first initial reference block may be determined as the first target reference block, and the second initial reference block may be determined as the second target reference block; if the degree of similarity 2 is higher than the degree of similarity
  • the original motion information includes a first original motion vector and a second original motion vector corresponding to the current image block; and determining the target motion information of the current image block based on the original motion information may include, but is not limited to:
  • the first target motion vector of the current image block is determined according to the first original motion vector, and the specific determination method is described in the foregoing embodiment; then, the difference between the first original motion vector and the first target motion vector is determined; and the second original motion vector is determined And the difference to determine a second target motion vector; and determine target motion information according to the first target motion vector and the second target motion vector.
  • the reference direction of the original motion information may be bidirectional, for example, the original motion information may include a first original motion vector and a second original motion vector.
  • the first original motion vector is (V0x, V0y) and the second original motion vector is (V1x, V1y).
  • the first original motion vector (V0x, V0y) as an example.
  • the implementation manners of Embodiments 9 to 14 may be adopted to determine the first target motion vector corresponding to the first original motion vector. There is no limitation on the determination process. It is assumed that the first target motion vector is (V0x + offset_x, V0y + offset_y ).
  • the difference between the first target motion vector and the first original motion vector can be determined as (offset_x, offset_y), and then the correspondence between the second original motion vector (V1x, V1y) can be directly derived through (offset_x, offset_y)
  • the second target motion vector for example, the second target motion vector may be (V1x-offset_x, V1y-offset_y).
  • the above is only an example, and there is no limitation on this.
  • first target motion vector V0x + offset_x, V0y + offset_y
  • second target motion vector V1x-offset_x, V1y-offset_y
  • decoding the encoded bitstream according to the original motion information or the target motion information may include: the decoding end may obtain fourth instruction information from the encoded bitstream, and the fourth instruction information is used to indicate that the original bitstream is adopted.
  • the motion information decodes the encoded bitstream, or the target motion information is used to decode the encoded bitstream.
  • the above method is only an example, and there is no limitation on this.
  • the fourth indication information added by the encoding end to the encoded bit stream may be the first identifier, which indicates that the original motion information is used to encode the bit stream.
  • the target motion information encodes the bit stream
  • the fourth indication information added by the encoding end to the encoded bit stream may be a second identifier, which indicates that the target motion information is used to encode the bit stream.
  • the original motion information can be used to pre-encode the bit stream, and the target motion information is used to pre-encode the bit stream.
  • the encoding performance of the original motion information and the encoding of the target motion information can be determined based on the rate-distortion principle. performance. If the encoding performance of the original motion information is better than the encoding performance of the target motion information, it is determined that the original motion information is used to encode the bit stream; if the encoding performance of the target motion information is better than the encoding performance of the original motion information, the target motion information comparison is determined Special streams are encoded.
  • the above method is only an example, and there is no limitation on this.
  • Embodiment 17 After step 106, the final motion information of the current image block may also be determined. For example, if the encoded bit stream is decoded according to the original motion information, the original motion information is stored as the final motion information; or if the encoded bit stream is decoded according to the target motion information, the target motion information is stored as the final motion information; The final motion information is used as a reference for decoding subsequent image blocks, that is, during the processing of other image blocks, the final motion information may be referred to.
  • Embodiment 18 is a diagrammatic representation of Embodiment 18:
  • FIG. 5 is a schematic flowchart of an encoding method, which can be applied to an encoding end and may include:
  • Step 501 Obtain a motion model of a current image block.
  • the motion model may include, but is not limited to, a 2-parameter motion model (such as a 2-parameter motion vector), a 4-parameter motion model (such as a 4-parameter affine model), a 6-parameter motion model (such as an affine model), An 8-parameter motion model (such as a projection model).
  • Step 502 Create a motion information list of the current image block according to the motion model.
  • Step 503 Select candidate exercise information from the exercise information list.
  • Step 504 Determine the original motion information of the current image block according to the selected candidate motion information and the difference information of the current image block. Specifically, before step 104, the difference information of the current image block may be obtained first, and then the original motion information of the current image block is determined according to the candidate motion information and the difference information.
  • Step 505 Determine target motion information of the current image block according to the original motion information.
  • the target motion information may be motion information different from the original motion information.
  • Step 506 Code the current image block according to the original motion information or the target motion information.
  • the target motion information of the current image block can be determined according to the original motion information, and encoded based on the original motion information or the target motion information, instead of directly encoding based on the original motion information.
  • This improves the accuracy of motion information, solves problems such as low prediction quality, prediction errors, etc., improves encoding performance, improves encoding efficiency, and reduces encoding delay.
  • a motion model of the current image block is obtained.
  • a motion information list of the current image block is established according to the motion model.
  • select candidate motion information from the motion information list For an implementation manner, refer to Embodiment 6, and details are not described herein again.
  • the difference information of the current image block may be obtained.
  • the original motion information of the current image block is determined according to the selected candidate motion information and difference information.
  • Embodiment 8 and details are not described herein again.
  • the target motion information of the current image block is determined according to the original motion information. For an implementation manner, refer to Embodiment 9-15, and details are not described herein again.
  • the current image block is encoded according to the original motion information or the target motion information. For an implementation manner, refer to Embodiment 16.
  • the final motion information of the current image block can also be determined. For example, if the current image block is encoded according to the original motion information, the original motion information is stored as the final motion information; or if the current image block is encoded according to the target motion information, the target motion information is stored as the final motion information.
  • the final motion information is used for coding reference of subsequent image blocks, that is, during processing of other image blocks, the final motion information may be referred to, and there is no limitation on this.
  • the above-mentioned encoding method may be implemented by using a video encoding framework.
  • the video decoding framework is similar to FIG. 6, and details are not described herein.
  • the video encoding framework / video decoding framework may include intra prediction, motion estimation / motion compensation, reference image buffer, in-loop filtering, reconstruction, transform, quantization, inverse transform, back quantization, entropy encoder, etc. Module.
  • the above-mentioned encoding method can be realized through the cooperation of these modules; on the decoding side, the above-mentioned decoding method can be realized through the cooperation of these modules.
  • an embodiment of the present application further proposes a decoding device, which is applied to the decoding end.
  • a decoding device As shown in FIG. 7, it is a structural diagram of the device.
  • the device includes:
  • An obtaining module 71 configured to obtain a motion model of a current image block
  • a establishing module 72 configured to establish a motion information list of a current image block according to the motion model
  • a selection module 73 configured to select candidate exercise information from the exercise information list
  • a determining module 74 configured to determine original motion information of the current image block according to the selected candidate motion information and difference information of the current image block;
  • a decoding module 75 is configured to decode an encoded bit stream according to the original motion information or the target motion information.
  • an embodiment of the present application further proposes an encoding device, which is applied to the encoding end.
  • the device includes:
  • An acquisition module 81 which acquires a motion model of a current image block
  • a establishing module 82 for establishing a motion information list of the current image block according to the motion model
  • a selection module 83 selecting candidate exercise information from the exercise information list
  • the determining module 84 determines original motion information of the current image block according to the selected candidate motion information and difference information of the current image block; and,
  • the encoding module 85 encodes a current image block according to the original motion information or the target motion information.
  • the processor 91 includes a processor 91 and a machine-readable storage medium 92.
  • the machine-readable storage medium 92 stores machine-executable instructions, such as decoding instructions, that can be executed by the processor 91.
  • the processor 91 is configured to: Machine-executable instructions are executed to implement the decoding method disclosed in the above example of the present application.
  • an embodiment of the present application further provides a machine-readable storage medium.
  • the machine-readable storage medium stores several computer instructions.
  • the present invention can be implemented. Apply for the decoding method disclosed in the above example.
  • the processor 93 includes a processor 93 and a machine-readable storage medium 94.
  • the machine-readable storage medium 94 stores machine-executable instructions, such as coded instructions, that can be executed by the processor 93.
  • the processor 93 is configured to: Machine-executable instructions are executed to implement the encoding method disclosed in the above example of the present application.
  • an embodiment of the present application further provides a machine-readable storage medium.
  • the machine-readable storage medium stores several computer instructions.
  • the present invention can be implemented. Apply for the encoding method disclosed in the above example.
  • the machine-readable storage medium may be any electronic, magnetic, optical, or other physical storage device, and may contain or store information, such as executable instructions, data, and so on.
  • the machine-readable storage medium may be: RAM (Radom Access Memory), volatile memory, non-volatile memory, flash memory, storage drive (such as hard drive), solid state hard disk, any type of storage disk (Such as optical discs, DVDs, etc.), or similar storage media, or a combination thereof.
  • the system, device, module, or unit described in the foregoing embodiments may be specifically implemented by a computer chip or entity, or a product with a certain function.
  • a typical implementation device is a computer, and the specific form of the computer may be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email sending and receiving device, and a game control Desk, tablet computer, wearable device, or a combination of any of these devices.
  • the embodiments of the present application may be provided as a method, a system, or a computer program product. Therefore, this application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the embodiments of the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
  • computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
  • these computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured article including the instruction device,
  • the instruction device implements the functions specified in a flowchart or a plurality of processes and / or a block or a block of the block diagram.
  • These computer program instructions may also be loaded on a computer or other programmable data processing device, so that a series of operation steps are performed on the computer or other programmable device to generate a computer-implemented process, and thus the computer or other programmable device executes
  • the instructions provide steps for implementing the functions specified in one or more flowcharts and / or one or more blocks of the block diagrams.

Landscapes

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

Abstract

本申请提供一种解码、编码方法及其设备,该方法包括:获取当前图像块的运动模型;根据所述运动模型建立所述当前图像块的运动信息列表;从所述运动信息列表中选择备选运动信息;根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;根据所述原始运动信息确定所述当前图像块的目标运动信息;根据所述原始运动信息或所述目标运动信息对编码比特流进行解码。

Description

一种解码、编码方法及其设备 技术领域
本申请涉及视频编解码技术领域,尤其涉及一种解码、编码方法及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码包括帧内编码和帧间编码,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。
发明内容
本申请提供了一种解码、编码方法及其设备,解决了预测质量不高,预测错误等问题,可以提高解码效率,降低解码时延,提高编解码性能。
本申请提供一种解码方法,应用于解码端,所述方法包括:
获取当前图像块的运动模型;
根据所述运动模型建立所述当前图像块的运动信息列表;
从所述运动信息列表中选择备选运动信息;根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;
根据所述原始运动信息确定所述当前图像块的目标运动信息;
根据所述原始运动信息或所述目标运动信息对编码比特流进行解码。
本申请提供一种编码方法,应用于编码端,所述方法包括:
获取当前图像块的运动模型;
根据所述运动模型建立所述当前图像块的运动信息列表;
从所述运动信息列表中选择备选运动信息;根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;
根据所述原始运动信息确定所述当前图像块的目标运动信息;
根据所述原始运动信息或所述目标运动信息对当前图像块进行编码。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的方法。
本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的方法。
由以上技术方案可见,本申请实施例中,可以根据原始运动信息确定当前图像块的目标运动信息,并根据该原始运动信息或者该目标运动信息进行编码/解码,而不是直接根据原始运动信息进行编码/解码,从而提高运动信息的精度,解决预测质量不高,预测错误等问题,并提高编码性能/解码性能。上述方式还可以有利于提高编码效率/解码效率,并减少编码时延/解码时延。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的解码方法的流程图;
图2A-图2C是本申请一种实施方式中的候选图像块的流程图;
图3A-图3E是本申请一种实施方式中的模板示意图;
图4是本申请一种实施方式中的解码方法的流程图;
图5是本申请一种实施方式中的编码方法的流程图;
图6是本申请一种实施方式中的视频编码框架的示意图;
图7是本申请一种实施方式中的解码装置的结构图;
图8是本申请一种实施方式中的编码装置的结构图;
图9是本申请一种实施方式中的解码端设备的硬件结构图;
图10是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在帧间编码中,可以使用运动矢量(Motion Vector,MV)表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移。例如,当前帧的视频图像A与参考帧的视频图像B存在很强的时域相关性,在需要传输视频图像A的图像块A1(当前图像块)时,则可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1(例如参考图像块),并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢量。
编码端可以将运动矢量发送给解码端,不是将图像块A1发送给解码端,解码端可以根据运动矢量和图像块B1得到图像块A1。显然,由于运动矢量占用的比特数小于图像块A1占用的比特数,因此,上述方式可以节约大量比特。
但是,若将视频图像A划分成大量图像块,在传输每个图像块的运动矢量时,也会占用比较多的比特。为了节约比特,还可以利用候选图像块之间的空间相关性,预测图像块A1的运动矢量。例如,可以将与图像块A1相邻的图像块A2的运动矢量,确定为图像块A1的运动矢量。基于此,编码端可以将图像块A2的索引值发送给解码端,而解码端可以基于该索引值确定图像块A2的运动矢量,就是图像块A1的运动矢量。由于图像块A2的索引值占用的比特数小于运动矢量占用的比特数,因此,上述方式可以有利于节约比特。
由于图像块A1的运动与图像块A2的运动可能存在差异,例如图像块A2的运动矢量与图像块A1的运动矢量可能并不一致,因此,将图像块A2的运动矢量确定为图像块A1的运动矢量,存在预测质量不高,预测错误等问题。
未解决上述问题,本申请实施例中提出一种解码、编码方法,该方法可以涉及如下概念:
运动矢量(Motion Vector,MV):在帧间编码中,使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移。例如,当前帧的视频图像A与参考帧的视频图像B存在很强的时域相关性,在传输视频图像A的图像块A1(当前图像块)时,可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1(参考图像块),并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢量。其中,每个划分的图像块都有相应的运动矢量传送到解码端,如果对每个图像块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量图像块,则消耗相当多的比特。为降低用于编码运动矢量的比特数,可以利用相邻图像块之间的空间相关性,根据相邻已编码图像块的运动矢量对当前待编码图像块的运动矢量进行预测,然后对预测差进行编码,这样可以有利于降低表示运动矢量的比特数。
运动信息(Motion Information):由于运动矢量表示当前图像块与某个参考图像块的位置偏移,为了准确获取指向图像块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
模板(Template):在视频编码技术中,编码过程是按照逐个图像块进行的,在进行当前图像块的编码时,周围已编码图像块的重建信息是可被利用的。模板指当前图像块周围(时域或空域的相邻区域)固定形状的解码信息。在编码端和解码端,模板是完全一样的,因此,在编码端利用模板进行的一些操作,在解码端可获得完全一致的结果,也就是说,编码端基于模板推导的信息可以在解码端无损恢复,而不需要传递额外信息,从而进一步减少传输比特数。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
帧内预测与帧间预测(intra prediction and inter prediction)技术:帧内预测是指,可以利用当前图像块的空域相邻图像块(例如与当前图像块处于同一帧图像)的重建像素值进行预测编码,而帧间预测是指,可以利用当前图像块的时域相邻图像块(与当前图像块处于不同帧图像)的重建像素值进行预测编码。
CTU(Coding Tree Unit,编码树单元),是编码端支持的最大编码单元、以及解码端支持的最大解码单元。进 一步的,一帧图像可以先分成若干个不相交的CTU,每个CTU再基于实际情况确定是否进一步划分成更小的块。
以下结合几个具体的实施例,对上述解码方法、编码方法进行详细说明。
实施例1:
参见图1所示,为解码方法的流程示意图,可以应用于解码端,可以包括:
步骤101,获取当前图像块的运动模型。该运动模型可以包括但不限于:2参数的运动模型(如2参数的运动矢量)、4参数的运动模型(如4参数的仿射模型)、6参数的运动模型(如仿射模型)、8参数的运动模型(如投影模型)。
步骤102,根据该运动模型建立当前图像块的运动信息列表。
步骤103,从该运动信息列表中选择备选运动信息。
步骤104,根据选择的备选运动信息和当前图像块的差值信息确定当前图像块的原始运动信息。具体的,步骤104之前,可以先获取当前图像块的差值信息,然后,才根据备选运动信息和差值信息确定当前图像块的原始运动信息。
其中,该差值信息可以是运动信息差值,对此差值信息不做限制。
步骤105,根据该原始运动信息确定当前图像块的目标运动信息。其中,该目标运动信息可以是一个与该原始运动信息不同的运动信息。
步骤106,根据原始运动信息或目标运动信息对编码比特流进行解码。
由以上技术方案可见,本申请实施例中,可以根据原始运动信息确定当前图像块的目标运动信息,并根据该原始运动信息或者该目标运动信息进行解码,而不是直接根据原始运动信息进行解码,从而有利于提高运动信息的精度,解决预测质量不高,预测错误等问题,并有利于提高解码性能,提高解码效率,减少解码时延。
实施例2:
针对步骤101,获取当前图像块的运动模型,可以包括但不限于:根据当前图像块的模式信息获取当前图像块的运动模型。具体的,该模式信息可以包括当前图像块的尺寸信息,基于此,若当前图像块的尺寸信息小于预设尺寸,则可以确定当前图像块的运动模型是2参数的运动模型。若当前图像块的尺寸信息不小于预设尺寸,则可以确定当前图像块的运动模型是4参数的运动模型或6参数的运动模型,当然,也可以为其它参数的运动模型;或者,若当前图像块的尺寸信息不小于预设尺寸,也可以采用其它方式确定当前图像块的运动模型,例如,通过编码比特流中的第一指示信息,获取当前图像块的运动模型。
在另一个例子中,获取当前图像块的运动模型,可以包括但不限于:从编码比特流中获取第一指示信息,该第一指示信息用于指示运动模型;然后,可以根据该第一指示信息获取当前图像块的运动模型。例如,若编码端采用2参数的运动模型,则编码端在编码比特流中添加的第一指示信息是第一标识,若编码端采用4参数的运动模型,则编码端在编码比特流中添加的第一指示信息是第二标识,以此类推。基于此,解码端在从编码比特流中获取到第一指示信息后,若第一指示信息是第一标识,则确定运动模型是2参数的运动模型,若第一指示信息是第二标识,则确定运动模型是4参数的运动模型,以此类推。
其中,针对编码端,为了确定当前图像块的运动模型,编码端可以根据当前图像块的模式信息获取当前图像块的运动模型,具体方式参见解码端,在此不再赘述。在另一个例子中,编码端可以依次使用每个运动模型(如2参数的运动模型、4参数的运动模型、6参数的运动模型)对比特流进行预编码,然后基于率失真原则确定每个运动模型的编码性能,然后将编码性能最优的运动模型,确定为当前图像块的运动模型。当然,上述方式只是确定运动模型的两个示例,编码端还可以采用其它方式确定运动模型,在此不再详加赘述。
进一步的,编码端确定当前图像块的运动模型之后,就可以在编码比特流中添加第一指示信息,而第一指示信息可以用于当前图像块的运动模型。
实施例3:
步骤102,根据运动模型建立当前图像块的运动信息列表,可以包括:
步骤1021,根据运动模型确定与当前图像块对应的候选图像块。
步骤1022,根据候选图像块的运动信息确定当前图像块的备选运动信息。其中,候选图像块的运动信息包括固定参考帧对应的运动矢量、运动方向等。
步骤1023,将当前图像块的备选运动信息添加到运动信息列表。
其中,可以根据运动模型确定与当前图像块对应的多个候选图像块,基于每个候选图像块得到当前图像块的备选运动信息,这样,可以将多个备选运动信息添加到运动信息列表,例如运动信息列表可以包括多个备选运动信息。
实施例4:当运动模型为2参数的运动模型时,针对步骤1021,候选图像块包括以下之一或者任意组合:当前图像块所在当前帧中,与当前图像块相邻的图像块;当前图像块所在当前帧中,与当前图像块未相邻的图像块;当前图像块所在当前帧的相邻帧中的图像块,例如,当前图像块所在当前帧的相邻帧中,与当前图像块的位置相同的 参考图像块,及该参考图像块的相邻图像块。
针对步骤1022,可以将候选图像块的运动信息确定为当前图像块的备选运动信息,如将当前图像块所在当前帧中,与当前图像块相邻的图像块的运动信息(已解码运动信息),确定为当前图像块的备选运动信息;将当前图像块所在当前帧中,与当前图像块未相邻的图像块的运动信息(已解码运动信息),确定为当前图像块的备选运动信息;将当前图像块所在当前帧的相邻帧中的图像块的运动信息(已解码运动信息),确定为当前图像块的备选运动信息。
此外,还可以对上述候选图像块的运动信息进行微调(如将运动矢量的x分量+1,将运动矢量的x分量-1,将运动矢量的y分量+1,将运动矢量的y分量-1等,对此不做限制),得到新的运动信息,并将这些新的运动信息确定为当前图像块的备选运动信息。还可以将默认运动信息确定为当前图像块的备选运动信息,如零矢量、零参考帧索引,运动方向为单向等。
在一个例子中,上述候选图像块的运动信息,可以是候选图像块的原始运动信息,也可以是候选图像块的目标运动信息。例如,若候选图像块处于当前图像块的同一个解码单元,则可以根据候选图像块的原始运动信息确定当前图像块的备选运动信息;和/或,若候选图像块处于当前图像块的前一个解码单元,则可以根据候选图像块的原始运动信息确定当前图像块的备选运动信息。
又例如,在对当前图像块进行解码时,可以获取候选图像块的目标运动信息,并根据候选图像块的目标运动信息确定当前图像块的备选运动信息。具体的,若已经存在候选图像块的目标运动信息,则可以获取候选图像块的目标运动信息,并根据候选图像块的目标运动信息(候选图像块的目标运动信息的确定方式,可以与当前图像块的目标运动信息的确定方式相同或不同,在此不再赘述)确定当前图像块的备选运动信息;若未存在候选图像块的目标运动信息,则可以获取候选图像块的原始运动信息,并根据候选图像块的原始运动信息确定当前图像块的备选运动信息。
其中,在对当前图像块进行解码时,若候选图像块采用了运动信息调整方法(例如通过原始运动信息得到目标运动信息),且候选图像块的解码过程已经结束,则可以获取到候选图像块的目标运动信息,因此,将候选图像块的目标运动信息确定为当前图像块的备选运动信息。若候选图像块的解码过程未结束(如候选图像块处于当前图像块的同一个解码单元,候选图像块处于当前图像块的前一个解码单元时,解码过程可能未结束),则未获取到候选图像块的目标运动信息,因此,将候选图像块的原始运动信息确定为当前图像块的备选运动信息,而不是将候选图像块的目标运动信息确定为当前图像块的备选运动信息。
其中,上述解码单元可以为允许的最大解码块,如最大解码单元(CTU)。
在一个例子中,在对候选图像块的运动信息进行微调,得到新的运动信息时,可以对候选图像块的原始运动信息进行调整,并根据调整后的运动信息确定当前图像块的备选运动信息(如将调整后的运动信息确定为备选运动信息);和/或,对候选图像块的目标运动信息进行调整,并根据调整后的运动信息确定当前图像块的备选运动信息(如将调整后的运动信息确定为备选运动信息)。
其中,对候选图像块的运动信息进行微调,可以包括:对候选图像块的运动信息进行指定方向上的伸缩、进行加权等变换处理,对此不做限制。
针对步骤1023,可以根据每个候选图像块与当前图像块的位置关系,确定每个候选图像块的运动信息对应的当前图像块的备选运动信息的添加顺序;进一步的,可以根据所述添加顺序,依次将每个备选运动信息添加到运动信息列表,直到所述运动信息列表中的备选运动信息的数量达到预设数量。
例如,备选运动信息的添加顺序可以依次为:当前图像块所在当前帧中,与当前图像块相邻的图像块的运动信息对应的备选运动信息;当前图像块所在当前帧中,与当前图像块未相邻的图像块的运动信息对应的备选运动信息;当前图像块所在当前帧的相邻帧中的图像块的运动信息对应的备选运动信息;基于候选图像块的运动信息进行微调后获得的运动信息;默认运动信息。
基于上述备选运动信息的添加顺序,可以依次将每个备选运动信息添加到运动信息列表。在将备选运动信息添加到运动信息列表时,可以与运动信息列表中的备选运动信息进行比较,若二者相同,则不将该备选运动信息添加到运动信息列表;若二者不同,则可以将该备选运动信息添加到运动信息列表,以尽可能防止运动信息列表中出现相同的备选运动信息;以此类推,直到运动信息列表中的备选运动信息的数量达到预设数量N,则不再添加备选运动信息。
实施例5:运动模型为非2参数的运动模型,如运动模型为4参数的运动模型、或运动模型为6参数的运动模型、或运动模型为8参数的运动模型。则:
针对步骤1021,候选图像块可以包括但不限于:当前图像块所在当前帧中,与当前图像块相邻的图像块;其中,候选图像块的运动模型可以与当前图像块的运动模型相同,且候选图像块包括多个子块,不同子块对应相同或不同的运动信息。例如,若当前图像块的运动模型是4参数的运动模型,则可以从相邻图像块中选择4参数的运动模型的图像块,将选择的图像块作为候选图像块。
针对步骤1022,可以从候选图像块的多个子块的运动信息中,选择与该运动模型的参数匹配数量的运动信息,并根据选择的运动信息确定当前图像块的备选运动信息。其中,若运动模型为4参数的运动模型,则运动模型的参数匹配数量为2;若运动模型为6参数的运动模型,则运动模型的参数匹配数量为3;若运动模型为8参数的运动模型,则运动模型的参数匹配数量为4;以此类推。
在一个例子中,若运动模型为4参数的运动模型,从候选图像块的多个子块的运动信息中,选择与该运动模型的参数匹配数量的运动信息,可以包括:
方式一、选择候选图像块的左上方子块(如左上角子块)的运动信息和右上方子块(如右上角子块)的运动信息。
图2A是本申请一种实施方式中的候选图像块的流程图。参见图2A所示,图像块A0、图像块A1、图像块B0、图像块B1和图像块B2是候选图像块,可以从候选图像块的所有子块的运动信息中,选择左上方子块的运动信息和右上方子块的运动信息。
方式二、针对位于当前图像块上侧的候选图像块,选择候选图像块的左下方子块(如左下角子块)的运动信息和右下方子块(如右下角子块)的运动信息;针对不位于当前图像块上侧的候选图像块,选择候选图像块的左上方子块(如左上角子块)的运动信息和右上方子块(如右上角子块)的运动信息。
图2B是本申请一种实施方式中的候选图像块的流程图。参见图2B所示,图像块B0、图像块B1和图像块B2是位于当前图像块上侧的候选图像块,可以从候选图像块的所有子块的运动信息中,选择左下方子块的运动信息和右下方子块的运动信息。参见图2B所示,图像块A0和图像块A1是不位于当前图像块上侧的候选图像块,可以从候选图像块的所有子块的运动信息中,选择左上方子块的运动信息和右上方子块的运动信息。其中,在候选图像块与当前图像块不在同一个解码单元(CTU)时,可以采用上述方式。
方式三、针对位于当前图像块上侧的候选图像块,选择候选图像块的左下方子块(如左下角子块)的运动信息和右下方子块(如右下角子块)的运动信息;针对不位于当前图像块上侧的候选图像块,选择候选图像块的右上方子块(如右上角子块)的运动信息和右下方子块(如右下角子块)的运动信息。
图2C是本申请一种实施方式中的候选图像块的流程图。参见图2C所示,图像块B0、图像块B1和图像块B2是位于当前图像块上侧的候选图像块,可以从候选图像块的所有子块的运动信息中,选择左下方子块的运动信息和右下方子块的运动信息。参见图2C所示,图像块A0和图像块A1是不位于当前图像块上侧的候选图像块,可以从候选图像块的所有子块的运动信息中,选择右上方子块的运动信息和右下方子块的运动信息。其中,在候选图像块与当前图像块不在同一个解码单元(CTU)时,可以采用上述方式。
当然,也可以按照上述三种方式的任意组合进行子块的选择。
在一个例子中,若运动模型为6参数的运动模型,从候选图像块的多个子块的运动信息中,选择与该运动模型的参数匹配数量的运动信息,还可以包括:选择候选图像块的左上方子块(如左上角子块)的运动信息、右上方子块(如右上角子块)的运动信息、左下方子块(如左下角子块)的运动信息。此外,若运动模型为8参数的运动模型,从候选图像块的多个子块的运动信息中,选择与该运动模型的参数匹配数量的运动信息,还可以包括:选择候选图像块的左上方子块(如左上角子块)的运动信息、右上方子块(如右上角子块)的运动信息、左下方子块(如左下角子块)的运动信息、右下方子块(如右下角子块)的运动信息。当然,上述选择方式只是一个示例,对此不做限制。
在一个例子中,若运动模型为4参数的运动模型,根据选择的运动信息确定当前图像块的备选运动信息,可以包括:从点(x,y)到点(vx,vy)的4参数仿射变换可以表示为:vx=ax-by+e;vy=bx+ay+f,(a,b,e,f)就是仿射模型参数,上述实施例中的4参数的运动模型,这个4参数就是(a,b,e,f)。基于此,可以利用候选图像块的两个子块的运动信息(例如运动矢量)确定(a,b,e,f)这四个参数值,再将这四个参数值作为当前图像块的运动模型的参数。
具体的,基于候选图像块(以图像块B2为例)的两个子块,可以通过如下方式得到当前图像块的4参数:针对图像块B2,若左下角的运动信息为(x0,y0),右左下角的运动信息为(x1,y1),假设图像块B2的宽为W,图像块B2的左下角的坐标为(0,0),则图像块B2的右下角的坐标为(w,0)。
因此,左下角子块可以从(0,0)运动到(x0,y0),而右下角子块可以从(w,0)运动到(w+x1,y1),也就是说,
Figure PCTCN2019106496-appb-000001
通过解上述方程,就可以得到(a,b,e,f)这四个参数值:
Figure PCTCN2019106496-appb-000002
实施例6:针对步骤103,从运动信息列表中选择备选运动信息,可以包括:根据运动信息索引从该运动信息列表中选择备选运动信息;其中,该运动信息索引可以是从编码比特流中获取的,或者,该运动信息索引可以是默认索引(如1)。例如,若运动信息索引是1,从运动信息列表中选择第一个备选运动信息。
在一个例子中,可以直接将默认索引确定为运动信息索引。在另一个例子中,可以从编码比特流中获取第二指示信息,第二指示信息用于指示运动信息索引。例如,若编码端采用运动信息列表中的第2个备选运动信息,则编码端在编码比特流中添加的第二指示信息是2,表示运动信息列表中的第2个备选运动信息,以此类推。基于此,解码端在从编码比特流中获取到第二指示信息后,若第二指示信息是2,则确定运动信息索引是2,表示第2个备选运动信息。
其中,针对编码端,为了确定运动信息索引,编码端可以直接将默认索引确定为运动信息索引;或者,编码端可以依次使用运动信息列表中的每个备选运动信息,对比特流进行预编码,然后,基于率失真原则确定每个备选运动信息的编码性能,然后,将编码性能最优的备选运动信息在运动信息列表中的位置,确定为运动信息索引。当然, 上述方式只是两个示例,对此不做限制。
实施例7:步骤104之前,还可以包括:获取当前图像块的差值信息,具体的,根据差值信息索引从差值列表中选择差值信息;该差值列表中配置有多个差值信息;该差值信息索引是从编码比特流中获取的,或者,差值信息索引是默认差值索引。例如,若差值信息索引是1,从差值列表中选择第一个差值信息。
其中,可以根据经验在编码端/解码端配置差值列表,该差值列表配置有多个差值信息,该差值信息可以为0,例如无差值,也可以不为0,对此不做限制。
在一个例子中,可以直接将默认差值索引确定为差值信息索引。在另一个例子中,可以从编码比特流中获取第三指示信息,第三指示信息用于指示差值信息索引。例如,若编码端采用差值列表中的第1个差值信息,则编码端在编码比特流中添加的第三指示信息是1,表示差值列表中的第1个差值信息,以此类推。基于此,解码端在从编码比特流中获取到第三指示信息后,若第三指示信息是1,则确定差值信息索引是1,表示差值列表中的第1个差值信息。
其中,针对编码端,为了确定差值信息索引,编码端可以直接将默认差值索引确定为差值信息索引;或者,编码端可以依次使用差值列表中的每个差值信息,对比特流进行预编码,然后,基于率失真原则确定每个差值信息的编码性能,然后,将编码性能最优的差值信息在差值列表中的位置,确定为差值信息索引。当然,上述差值信息索引的确定方式只是两个示例,对此不做限制。
实施例8:针对步骤104,根据选择的备选运动信息和当前图像块的差值信息确定当前图像块的原始运动信息,可以包括:根据备选运动信息和第一权重,差值信息和第二权重,确定当前图像块的原始运动信息。具体的,通过备选运动信息和差值信息的线性加权,确定当前图像块的原始运动信息。例如,原始运动信息=a*备选运动信息+b*差值信息。a为第一权重,b为第二权重。
其中,a和b的值可以实时调整,也可以是固定值,a和b的值可以根据经验配置或者训练得到。此外,a和b的值可以相等也可以不等。
实施例9:针对步骤105,根据该原始运动信息确定当前图像块的目标运动信息,可以包括但不限于:步骤1051,获取当前图像块的模板;步骤1052,基于当前图像块的模板,以该原始运动信息为中心搜索目标运动信息。
本实施例中,在得到原始运动信息后,可以不将原始运动信息作为当前图像块的最终运动信息,而是根据原始运动信息获取与原始运动信息不同的目标运动信息,目标运动信息是与当前图像块的运动信息最接近的,因此,可以将目标运动信息作为当前图像块的最终运动信息。显然,与“将原始运动信息作为当前图像块的最终运动信息”的方式相比,上述“将目标运动信息作为当前图像块的最终运动信息”的方式,可以有利于解决预测质量不高,预测错误等问题。
实施例10:针对步骤1051,获取当前图像块的模板,可以包括:
方式一、利用当前图像块的原始运动信息获取当前图像块的模板。具体的,可以利用当前图像块的原始运动信息(如已解码运动信息),确定当前图像块的预测值;根据当前图像块的预测值,获取当前图像块的模板,例如,将当前图像块的预测值确定为当前图像块的模板。其中,在解码过程中,对每个图像块逐一解码,因此,可以利用当前图像块的已解码运动信息确定当前图像块的预测值,该预测值可以是当前图像块的重建信息和/或预测信息,该重建信息可以包括亮度值、色度值等,该预测信息可以是能够获取重建信息的中间值,若能够利用中间值A获取到亮度值,则中间值A是预测信息,对此不做限制。
方式二、获取当前图像块的周围图像块(当前图像块的空域周围图像块或时域周围图像块,对此不做限制)的运动信息,并利用当前图像块的周围图像块的运动信息,获取当前图像块的模板。具体的,利用周围图像块的运动信息(如已解码运动信息),确定周围图像块的预测值;根据周围图像块的预测值,获取当前图像块的模板,如将周围图像块的预测值确定为当前图像块的模板。
其中,在对当前图像块进行解码时,由于当前图像块的周围图像块已经完成解码,例如周围图像块的运动信息为已知,因此,可以直接获取周围图像块的运动信息,如运动矢量和参考帧索引等,并利用周围图像块的运动信息确定周围图像块的预测值,该预测值可以是周围图像块的重建信息和/或预测信息,该重建信息可以包括亮度值、色度值等,该预测信息可以是能够获取重建信息的中间值,例如,若能够利用中间值A获取到亮度值,则中间值A是预测信息,对此不做限制。然后,将周围图像块的预测值确定为当前图像块的模板。
其中,若周围图像块采用了运动信息调整方法(在一示例中,通过原始运动信息得到目标运动信息),则周围图像块的运动信息是周围图像块的原始运动信息。
方式三、获取当前图像块的周围图像块的运动信息,并利用当前图像块的周围图像块的运动信息,获取当前图像块的模板。具体的,当运动信息包括周围图像块的运动矢量和参考帧索引时,则根据该参考帧索引确定该周围图像块对应的参考帧图像;根据该运动矢量从该参考帧图像中获取与该周围图像块对应的参考图像块,并根据该参考图像块获取该当前图像块的模板。
其中,若周围图像块采用了运动信息调整方法(例如通过原始运动信息得到目标运动信息),则周围图像块的运动信息是周围图像块的运原始运动信息。
在一个例子中,周围图像块可以包括M个第一周围图像块和N个第二周围图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数;第一周围图像 块位于当前图像块上侧,第二周围图像块位于当前图像块左侧。
利用当前图像块的周围图像块的运动信息,获取当前图像块的模板,可以包括:根据M个第一周围图像块的运动矢量预测模式和运动信息,确定第一模板;根据N个第二周围图像块的运动矢量预测模式和运动信息,确定第二模板;将第一模板确定为当前图像块的模板;或者,将第二模板确定为当前图像块的模板;或者,将第一模板和第二模板拼接之后确定为当前图像块的模板。
例如,当M为大于或等于1的自然数,N为0时,可以根据M个第一周围图像块的运动矢量预测模式和运动信息,确定第一模板,并将第一模板确定为当前图像块的模板。当N为大于或等于1的自然数,M为0时,可以根据N个第二周围图像块的运动矢量预测模式和运动信息,确定第二模板,并将第二模板确定为当前图像块的模板。当M为大于或等于1的自然数,N为大于或等于1的自然数,则可以根据M个第一周围图像块的运动矢量预测模式和运动信息,确定第一模板,根据N个第二周围图像块的运动矢量预测模式和运动信息,确定第二模板,将第一模板确定为当前图像块的模板;或将第二模板确定为当前图像块的模板;或将第一模板和第二模板拼接之后确定为当前图像块的模板。
其中,第一周围图像块包括当前图像块上侧的相邻图像块和/或次邻图像块;相邻图像块的预测模式为帧间模式或者帧内模式;次邻图像块的预测模式为帧间模式。例如,第一周围图像块可以包括至少一个预测模式为帧间模式的相邻图像块,例如,当前图像块上侧的所有相邻图像块、或当前图像块上侧的第一个相邻图像块、或当前图像块上侧的任意一个或多个相邻图像块。此外,若当前图像块上侧的相邻图像块均为帧内模式时,则第一周围图像块还可以包括至少一个预测模式为帧间模式的次邻图像块,例如,当前图像块上侧的所有次邻图像块,或当前图像块上侧的第一个次邻图像块,或当前图像块上侧的任意一个或多个次邻图像块。此外,若当前图像块上侧存在帧内模式的相邻图像块时,则第一周围图像块还可以包括帧内模式的相邻图像块,例如,当前图像块上侧的第一个帧内模式的相邻图像块,当前图像块上侧的所有帧内模式的相邻图像块等。当然,上述只是第一周围图像块的示例,对此不做限制。
其中,第二周围图像块包括当前图像块左侧的相邻图像块和/或次邻图像块;相邻图像块的预测模式为帧间模式或者帧内模式;次邻图像块的预测模式为帧间模式。例如,第二周围图像块可以包括至少一个预测模式为帧间模式的相邻图像块,例如,当前图像块左侧的所有相邻图像块、或当前图像块左侧的第一个相邻图像块、或当前图像块左侧的任意一个或多个相邻图像块。此外,若当前图像块左侧的相邻图像块均为帧内模式时,则第二周围图像块还可以包括至少一个预测模式为帧间模式的次邻图像块,例如,当前图像块左侧的所有次邻图像块,或当前图像块左侧的第一个次邻图像块,或当前图像块左侧的任意一个或多个次邻图像块。此外,若当前图像块左侧存在帧内模式的相邻图像块时,则第二周围图像块还可以包括帧内模式的相邻图像块,例如,当前图像块左侧的第一个帧内模式的相邻图像块,当前图像块左侧的所有帧内模式的相邻图像块等。当然,上述只是第二周围图像块的示例,对此不做限制。
其中,当前图像块的相邻图像块包括但不限于:当前图像块的空域相邻图像块(例如同一帧视频图像中的相邻图像块);或者,当前图像块的时域相邻图像块(例如不同帧视频图像中的相邻图像块)。当前图像块的次邻图像块包括但不限于:当前图像块的空域次邻图像块(例如同一帧视频图像中的次邻图像块);或者,当前图像块的时域次邻图像块(例如不同帧视频图像中的次邻图像块)。
在一个例子中,当M大于1时,则第一模板可以包括M个子模板或者P个子模板,且由M个子模板或者P个子模板拼接而成,P可以为帧间模式的第一周围图像块的数量,P小于或等于M。例如,当M个第一周围图像块均为帧间模式的周围图像块时,则第一模板包括M个子模板,由M个子模板拼接而成。当M个第一周围图像块包括P个帧间模式的周围图像块、并包括M-P个帧内模式的周围图像块时,则第一模板可以包括M个子模板(例如每个周围图像块对应一个子模板),且由M个子模板拼接而成,或者,第一模板包括P个子模板(例如P个帧间模式的周围图像块对应的P个子模板),且由P个子模板拼接而成。
此外,当M等于1时,则第一模板可以包括第一子模板,该第一子模板可以是根据当前图像块上侧的首个周围图像块的运动矢量预测模式和运动信息确定的;或者,第一子模板可以是根据当前图像块上侧的任意一个周围图像块的运动矢量预测模式和运动信息确定的。其中,由于第一周围图像块包括至少一个预测模式为帧间模式的相邻图像块或次邻图像块,因此,M等于1时,第一模板包括的是帧间模式的相邻图像块或次邻图像块对应的第一子模板。
运动信息可以包括第一周围图像块的运动矢量和参考帧索引,根据M个第一周围图像块的运动矢量预测模式和运动信息,确定第一模板,可以包括:
情况一、针对M个第一周围图像块中的第i个周围图像块,当确定第i个周围图像块的运动矢量预测模式为帧间模式时,则可以根据参考帧索引确定第i个周围图像块对应的参考帧图像;进一步的,还可以根据第i个周围图像块的运动矢量,从该参考帧图像中确定第i个周围图像块对应的参考图像块;其中,该参考图像块与第i个周围图像块的相对位置偏移,可以与第i个周围图像块的运动矢量相匹配;进一步的,还可以根据确定的参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为第一模板包括的第i个子模板。
情况二、针对M个第一周围图像块中的第i个周围图像块,当确定第i个周围图像块的运动矢量预测模式为帧内模式时,则可以将第i个周围图像块按照默认值(例如,默认像素值,默认值可以是根据经验预先配置的亮度值)进行填充。进一步的,基于默认值填充后的图像块,可以获取尺寸为第一横向长度和第一纵向长度的图像块作为第一模板包括的第i个子模板。
情况三、针对M个第一周围图像块中的第i个周围图像块,当确定第i个周围图像块的运动矢量预测模式为帧 内模式时,则可以根据第i个周围图像块对应的参考帧索引,确定第i个周围图像块对应的参考帧图像;进一步的,可以根据第i个周围图像块对应的运动矢量,从该参考帧图像中确定第i个周围图像块对应的参考图像块。其中,该参考图像块与第i个周围图像块的相对位置偏移与第i个周围图像块对应的运动矢量相匹配(包含相等或近似相等);进一步,可以根据确定的参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为第一模板包括的第i个子模板;其中,第i个周围图像块对应的参考帧索引和运动矢量,是第i个周围图像块的相邻图像块的参考帧索引和运动矢量。
其中,第一横向长度与第一周围图像块的横向长度满足第一比例关系(如1:1,1:2,2:1等,对此不做限制),或者与当前图像块的横向长度满足第二比例关系(如1:1,1:2,2:1等),或者等于第一预设长度(根据经验配置)。第一纵向长度与第一周围图像块的纵向长度满足第三比例关系(如1:1,1:2,2:1等),或者与当前图像块的纵向长度满足第四比例关系(如1:1,1:2,2:1等),或者等于第二预设长度(例如根据经验配置的长度)。此外,第一比例关系、第二比例关系、第三比例关系和第四比例关系之间可以设置为相同,也可以不同。第一预设长度和第二预设长度可以设置为相同,也可以不同。
在一个例子中,当N大于1时,则第二模板可以包括N个子模板或者R个子模板,且由N个子模板或者R个子模板拼接而成,R可以为帧间模式的第二周围图像块的数量,R小于或等于N。例如,当N个第二周围图像块均为帧间模式的周围图像块时,第二模板包括N个子模板,由N个子模板拼接而成。当N个第二周围图像块包括R个帧间模式的周围图像块、并包括N-R个帧内模式的周围图像块,则第二模板可以包括N个子模板(例如每个周围图像块对应一个子模板),且由N个子模板拼接而成,或者,第二模板包括R个子模板(例如R个帧间模式的周围图像块对应的R个子模板),且由R个子模板拼接而成。
此外,当N等于1时,则第二模板可以包括第二子模板,该第二子模板可以是根据当前图像块左侧的首个周围图像块的运动矢量预测模式和运动信息确定的;或者,第二子模板可以是根据当前图像块左侧的任意一个周围图像块的运动矢量预测模式和运动信息确定的。其中,由于第二周围图像块包括至少一个预测模式为帧间模式的相邻图像块或次邻图像块,因此,N等于1时,第二模板包括的是帧间模式的相邻图像块或次邻图像块对应的第二子模板。
运动信息可以包括第二周围图像块的运动矢量和参考帧索引,根据N个第二周围图像块的运动矢量预测模式和运动信息,确定第二模板,可以包括:
情况一、针对N个第二周围图像块中的第i个周围图像块,当确定第i个周围图像块的运动矢量预测模式为帧间模式时,则可以根据参考帧索引确定第i个周围图像块对应的参考帧图像;进一步的,还可以根据第i个周围图像块的运动矢量,从该参考帧图像中确定第i个周围图像块对应的参考图像块;其中,该参考图像块与第i个周围图像块的相对位置偏移,可以与第i个周围图像块的运动矢量相匹配;进一步的,还可以根据确定的参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为第二模板包括的第i个子模板。
情况二、针对N个第二周围图像块中的第i个周围图像块,当确定第i个周围图像块的运动矢量预测模式为帧内模式时,则可以将第i个周围图像块按照默认值(例如,默认像素值,默认值可以是根据经验预先配置的亮度值)进行填充。进一步的,基于默认值填充后的图像块,则可以获取尺寸为第二横向长度和第二纵向长度的图像块作为第二模板包括的第i个子模板。
情况三、针对N个第二周围图像块中的第i个周围图像块,当确定第i个周围图像块的运动矢量预测模式为帧内模式时,则可以根据第i个周围图像块对应的参考帧索引,确定第i个周围图像块对应的参考帧图像;进一步的,可以根据第i个周围图像块对应的运动矢量,从该参考帧图像中确定第i个周围图像块对应的参考图像块,其中,该参考图像块与第i个周围图像块的相对位置偏移与第i个周围图像块对应的运动矢量相匹配(包含相等或近似相等);进一步的,可以根据确定的参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为第一模板包括的第i个子模板;其中,第i个周围图像块对应的参考帧索引和运动矢量,是第i个周围图像块的相邻图像块的参考帧索引和运动矢量。
其中,第二横向长度与第二周围图像块的横向长度满足第五比例关系(如1:1,1:2,2:1等,对此不做限制),或者与当前图像块的横向长度满足第六比例关系(如1:1,1:2,2:1等),或者等于第三预设长度(根据经验配置)。第二纵向长度与第二周围图像块的纵向长度满足第七比例关系(如1:1,1:2,2:1等),或者与当前图像块的纵向长度满足第八比例关系(如1:1,1:2,2:1等),或者等于第四预设长度(例如根据经验配置的长度)。此外,第五比例关系、第六比例关系、第七比例关系和第八比例关系之间可以设置为相同,也可以不同。第三预设长度和第四预设长度可以设置为相同,也可以不同。
图3A-图3E是本申请一种实施方式中的模板示意图。以下结合几个具体应用场景,对当前图像块的模板进行详细说明。
应用场景1:参见图3A所示,周围图像块可以包括:当前图像块上侧的所有帧间模式的相邻图像块,当前图像块左侧的所有帧间模式的相邻图像块。
对于当前图像块A1,若左侧存在帧间模式的相邻图像块,例如,图像块A3和图像块A4,则可以将帧间模式的图像块A3和图像块A4确定为当前图像块A1的周围图像块。类似的,若上侧存在帧间模式的相邻图像块,例如,图像块A2,则可以将帧间模式的图像块A2确定为当前图像块A1的周围图像块。
在周围图像块为图像块A2、A3和A4时,根据图像块A2的运动信息、图像块A3的运动信息和图像块A4的运动信息,获取当前图像块A1的模板。针对图像块A2,根据参考帧索引确定图像块A2对应的参考帧图像,从参考帧图像中选取与图像块A2对应的图像块B2,根据图像块A2的运动矢量对图像块B2进行移动,得到与图像块 A2对应的参考图像块B2’,同理,可以得到图像块A3对应的参考图像块B3’,图像块A4对应的参考图像块B4’,参见图3B所示。根据参考图像块B2’、参考图像块B3’和参考图像块B4’获得当前图像块A1的模板。
在一个例子中,假设当前图像块A1上侧模板的横向长度为W,纵向长度为S,W的取值可以根据经验配置,S的取值可以根据经验配置,对于W和S的取值均不做限制。例如,W的取值可以为当前图像块A1的横向长度,为周围图像块A2的横向长度,或为当前图像块A1的横向长度的2倍等;S的取值可以为周围图像块A2的纵向长度,或为周围图像块A2的纵向长度的1/3等。在此基础上,参见图3C所示,为参考图像块B2’对应的模板示意图。在图3C中,是以W取值为周围图像块A2的横向长度为例,例如W为参考图像块B2’的横向长度;是以S取值为周围图像块A2的纵向长度的1/3为例,例如S为参考图像块B2’的纵向长度的1/3。
假设当前图像块A1左侧模板的横向长度为R,纵向长度为H,R的取值可以根据经验配置,H的取值可以根据经验配置,对于R和H的取值均不做限制。例如,H的取值可以为当前图像块A1的纵向长度,或为周围图像块A3的纵向长度等;R的取值可以为周围图像块A3的横向长度,或为周围图像块A3的横向长度的1/3等。在此基础上,参见图3C所示,为参考图像块B3’对应的模板示意图,是以H取值为周围图像块A3的纵向长度为例,以R取值为周围图像块A3的横向长度的1/3为例。
同理,参考图像块B4’对应的模板也可以参见图3C所示,在此不再赘述。
在一个例子中,假设当前图像块上侧有M个不同模式的周围图像块,则针对第i个周围图像块,假设其横向长度为wi,则判断该周围图像块的预测模式。
若为帧内模式,则不再生成子模板,或者,按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,作为上侧模板的第i个子模板。
若为帧间模式,则可以获取第i个周围图像块的运动信息(如运动矢量和参考帧索引等),基于该运动矢量和该参考帧索引生成横向长度为wi,纵向长度为S的模板,作为上侧模板的第i个子模板。具体的,若运动矢量为MV,参考帧索引为idx,则可以在当前帧的第idx个参考图像中找到相对位置偏移为MV的横向长度为wi,纵向长度为S的矩形块,作为上侧模板的第i个子模板。
假设当前图像块左侧有N个不同模式的周围图像块,则针对第i个周围图像块,假设纵向长度为hi,横向长度为R,则判断该周围图像块的预测模式。
若为帧内模式,则不再生成子模板,或者,按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,作为左侧模板的第i个子模板。
若为帧间模式,则可以获取第i个周围图像块的运动信息(如运动矢量和参考帧索引等),基于该运动矢量和该参考帧索引生成横向长度为R,纵向长度为hi的模板,作为左侧模板的第i个子模板。具体的,若运动矢量为MV,参考帧索引为idx,则可以在当前帧的第idx个参考图像中找到相对位置偏移为MV的横向长度为R,纵向长度为hi的矩形块,作为左侧模板的第i个子模板。
进一步的,上侧模板可以由上侧的所有子模板拼接而成,左侧模板可以由左侧的所有子模板拼接而成,上侧模板和左侧模板就拼接成当前图像块的模板。
应用场景2:参见图3D所示,周围图像块可以包括:当前图像块上侧的第一个帧间模式的相邻图像块,当前图像块左侧的第一个帧间模式的相邻图像块。
对于当前图像块A1,若左侧的第一个图像块A3是帧间模式,则可以将图像块A3确定为当前图像块A1的周围图像块。若上侧的第一个图像块A2是帧间模式,则可以将图像块A2确定为当前图像块A1的周围图像块。在周围图像块为图像块A2和图像块A3时,根据图像块A2的运动信息和图像块A3的运动信息,获取当前图像块A1的模板,获取方式参见应用场景1,在此不再赘述。
在一个例子中,假设当前图像块A1上侧模板的横向长度为W,纵向长度为S,W的取值可以根据经验配置,S的取值可以根据经验配置,对于W和S的取值均不做限制。例如,W的取值可以为当前图像块A1的横向长度,或可以为周围图像块A2的横向长度等;S的取值可以为周围图像块A2的纵向长度,或为周围图像块A2的纵向长度的1/3等。参见图3E所示,为参考图像块B2’对应的模板示意图。
假设当前图像块A1左侧模板的横向长度为R,纵向长度为H,R的取值可以根据经验配置,H的取值可以根据经验配置,对于R和H的取值均不做限制。例如,H的取值可以为当前图像块A1的纵向长度,或可以为周围图像块A3的纵向长度等;R的取值可以为周围图像块A3的横向长度,或可以为周围图像块A3的横向长度的1/3等。在此基础上,参见图3E所示,为参考图像块B3’对应的模板示意图。
当然,上述应用场景1和应用场景2只是两个示例,对此不做限制。例如,周围图像块可以包括当前图像块上侧的帧间模式的相邻图像块、当前图像块上侧的帧间模式的次邻图像块(例如相邻图像块为帧内模式时,选择该相邻图像块对应的与当前图像块是次邻的图像块)、当前图像块左侧的帧间模式的相邻图像块、当前图像块左侧的次邻图像块。又例如,若当前图像块上侧的第一个相邻图像块为帧内模式,且该第一个相邻图像块上侧的图像块为帧间模式,则周围图像块可以包括当前图像块上侧的帧间模式的次邻图像块;若当前图像块左侧的第一个相邻图像块为帧内模式,且该第一个相邻图像块左侧的图像块为帧间模式,则周围图像块可以包括当前图像块左侧的帧间模式的次邻图像块。
实施例11:针对步骤1052,在一个实施方式中,基于当前图像块的模板,以该原始运动信息为中心搜索目标运 动信息,可以包括但不限于如下步骤:
步骤1052A1,将原始运动信息确定为中心运动信息。
步骤1052A2,确定与中心运动信息对应的边缘运动信息。
其中,该边缘运动信息可以与该中心运动信息不同。
在一个例子中,该原始运动信息可以包括原始运动矢量,该中心运动信息可以包括中心运动矢量,该边缘运动信息可以包括边缘运动矢量。
其中,确定与该中心运动矢量对应的边缘运动矢量,可以包括:将该中心运动矢量(x,y)向不同方向偏移S,从而可以得到不同方向的边缘运动矢量(x-S,y)、边缘运动矢量(x+S,y)、边缘运动矢量(x,y+S)、边缘运动矢量(x,y-S)。例如,在水平方向上,可以将中心运动矢量(x,y)向左偏移S,得到边缘运动矢量(x-S,y);在水平方向上,可以将中心运动矢量(x,y)向右偏移S,得到边缘运动矢量(x+S,y);在垂直方向上,可以将中心运动矢量(x,y)向上偏移S,得到边缘运动矢量(x,y+S);在垂直方向上,可以将中心运动矢量(x,y)向下偏移S,得到边缘运动矢量(x,y-S)。
其中,S的初始值可以根据经验配置,如可以为2、4、8、16等。
假设中心运动矢量为(3,3),S为4,则边缘运动矢量为边缘运动矢量(7,3)、边缘运动矢量(3,7)、边缘运动矢量(-1,3)、边缘运动矢量(3,-1)。
在上述实施例中,为了搜索与中心运动信息对应的边缘运动信息,是以中心运动信息为中心,进行上、下、左、右偏移的搜索;在另一个例子中,可以不进行无方向的搜索,而是沿着原始运动信息的方向进行搜索。
步骤1052A3,根据当前图像块的模板获得中心运动信息(中心运动矢量)的预测性能,根据当前图像块模板获得边缘运动信息(边缘运动矢量)的预测性能。
情况一,根据当前图像块的模板获得中心运动矢量的预测性能,可以包括但不限于:根据当前图像块的模板的参数信息以及第一目标参考块的参数信息,确定中心运动矢量的预测性能,该第一目标参考块可以为所述模板对应的参考图像块基于中心运动矢量进行偏移之后获得的图像块。具体的,可以根据模板的参数信息和第一目标参考块的参数信息,确定中心运动矢量的预测性能。
其中,上述参数信息可以为亮度值;或者,可以为亮度值和色度值。
假设参数信息为亮度值,为了确定中心运动矢量的预测性能,可以先获取当前图像块的模板的亮度值、第一目标参考块的亮度值。例如,在得到当前图像块的模板后,可以获取模板的每个像素点的亮度值,并获取该模板的参考图像块,假设中心运动矢量为(3,3),则可以利用中心运动矢量(3,3)移动该参考图像块,得到与参考图像块对应的图像块X(如对参考图像块向右移动3个像素点,向上移动3个像素点,将处理后的图像块记为图像块X),而图像块X就是第一目标参考块,且可以获取图像块X的每个像素点的亮度值。
基于模板的每个像素点的亮度值、图像块X的每个像素点的亮度值,可以采用如下公式确定中心运动矢量的预测性能:
Figure PCTCN2019106496-appb-000003
SAD是可用绝对差总和,用于表示中心运动矢量的预测性能。TM i表示模板的第i个像素点的亮度值,TMP i表示图像块X的第i个像素点的亮度值,M表示像素点的总数量。
假设参数信息为亮度值和色度值,则利用如下公式
Figure PCTCN2019106496-appb-000004
确定中心运动矢量的亮度值预测性能SAD,并采用如下公式确定中心运动矢量的色度值预测性能:
Figure PCTCN2019106496-appb-000005
亮度值预测性能SAD和色度值预测性能CSAD的平均值,就是中心运动矢量的预测性能。其中,CSAD是可用绝对差总和,用于表示中心运动矢量的色度值预测性能,CTM i表示模板第i个像素点的色度值,CTMP i表示图像块X第i个像素点的色度值,Mc表示像素点总数量。
情况二,根据当前图像块的模板获得边缘运动矢量的预测性能,可以包括但不限于:根据当前图像块的模板的参数信息以及第二目标参考块的参数信息,确定边缘运动矢量的预测性能,该第二目标参考块可以为模板对应的参考图像块基于边缘运动矢量进行偏移之后获得的图像块。具体的,可以根据模板的参数信息和第二目标参考块的参数信息,确定边缘运动矢量的预测性能。
其中,上述参数信息可以为亮度值;或者,可以为亮度值和色度值。
情况二与情况一类似,区别在于:在情况一中,利用边缘运动矢量移动模板的参考图像块,得到第二目标参考块,并利用第二目标参考块获得边缘运动矢量的预测性能,而情况二中,利用中心运动矢量移动模板的参考图像块,得到第一目标参考块,并利用第一目标参考块获得中心运动矢量的预测性能。
步骤1052A4,根据中心运动信息的预测性能和边缘运动信息的预测性能,从中心运动信息和边缘运动信息中确定目标运动信息(如目标运动矢量)。
具体的,可以从中心运动矢量和边缘运动矢量中选择预测性能最优的运动矢量;当该预测性能最优的运动矢量不是原始运动矢量时,则可以将该预测性能最优的运动矢量确定为目标运动矢量;当该预测性能最优的运动矢量是原始运动矢量时,则可以从中心运动矢量和边缘运动矢量中选择预测性能次优的运动矢量,并将预测性能次优的运动矢量确定为目标运动矢量。
实施例12:针对步骤1052,在另一个实施方式中,基于当前图像块的模板,以该原始运动信息为中心搜索目标运动信息,可以包括但不限于如下步骤:
步骤1052B1,将原始运动信息确定为中心运动信息。
步骤1052B2,确定与中心运动信息对应的边缘运动信息。
步骤1052B3,根据当前图像块的模板获得中心运动信息的预测性能,并根据当前图像块的模板获得边缘运动信息的预测性能。
步骤1052B1至步骤1052B3参见步骤1052A1至步骤1052A3,在此不再赘述。
步骤1052B4,判断是否满足目标运动信息的迭代结束条件。
如果是,则可以执行步骤1052B6;如果否,则可以执行步骤1052B5。
其中,迭代结束条件可以包括但不限于:迭代次数达到次数阈值,或者,执行时间达到时间阈值,或者,参数S已经被修改为预设数值,如1。
当然,上述只是迭代结束条件的几个示例,对此迭代结束条件不做限制。
步骤1052B5,从中心运动信息和边缘运动信息中选择预测性能最优的运动信息,将预测性能最优的运动信息确定为中心运动信息,返回步骤1052B2。
其中,当第一次执行步骤1052B2时,参数S的取值可以为初始值,如16。再次执行步骤1052B2时,对参数S取值进行调整,如调整为上次参数S减去2,或调整为上次参数S的一半,对此不做限制,只要小于上次参数S即可,后续以调整为上次参数S的一半为例。因此,当第二次执行步骤1052B2时,则参数S的取值为8;当第三次执行步骤1052B2时,则参数S的取值为4;以此类推。
其中,在对参数S的取值进行调整后,判断调整后的参数S是否小于等于预设数值,如1。如果否,则基于调整后的参数S执行步骤1052B2,对此过程不再赘述。如果是,则将参数S的取值设置为1,并基于该参数S(例如取值1)执行步骤1052B2,而在执行到步骤1052B4时,判断结果为满足迭代结束条件。
步骤1052B6,根据中心运动信息的预测性能和边缘运动信息的预测性能,从中心运动信息和边缘运动信息中确定目标运动信息(如目标运动矢量)。
其中,步骤1052B6的处理可以参见步骤1052A4,在此不再重复赘述。
实施例13:针对步骤105,当前图像块为双向帧间预测块,所述原始运动信息包括当前图像块对应的第一参考帧和第二参考帧,以及第一参考帧对应的第一运动矢量、第二参考帧对应的第二运动矢量;参见图4所示,为本申请一种实施方式中的解码方法的流程图,针对根据原始运动信息确定当前图像块的目标运动信息,可以包括:
步骤401,根据第一运动矢量从第一参考帧中获取与当前图像块对应的第一初始参考块(第一参考帧中的图像块),根据第二运动矢量从第二参考帧中获取与当前图像块对应的第二初始参考块(第二参考帧中的图像块)。
步骤402,基于第一初始参考块和第二初始参考块的相似度,在第一参考帧中,以第一运动矢量为中心,按照多个偏移方向和偏移量搜索第一目标参考块(第一参考帧中的图像块),在第二参考帧中,以第二运动矢量为中心,按照多个偏移方向和偏移量搜索第二目标参考块(第二参考帧中的图像块)。其中,第一目标参考块和第二目标参考块的相似度满足预设要求。
在一个例子中,第一初始参考块和第二初始参考块的相似度可以通过以下方式确定:采用双线性插值方式确定第一初始参考块的预测值和第二初始参考块的预测值;获取第一初始参考块的预测值和第二初始参考块的预测值的下采样处理结果,基于所述下采样处理结果,确定第一初始参考块和第二初始参考块的SAD(sum of abstract difference,绝对差总和)或MRSAD(mean removed sum of abstract difference,去均值绝对误差和),基于SAD或MRSAD确定第一初始参考块和第二初始参考块的相似度,也就是说,所述SAD或MRSAD可以是所述相似度。
为了搜索第一目标参考块和第二目标参考块,可以采用如下方式:
将第一运动矢量确定为第一中心运动矢量,并将第二运动矢量确定为第二中心运动矢量;然后,确定与第一中心运动矢量对应的第一边缘运动矢量,并确定与第二中心运动矢量对应的第二边缘运动矢量。然后,根据第一中心运动矢量从第一参考帧中确定当前图像块对应的第一初始参考块,确定第一初始参考块的第一预测值。根据第二中心运动矢量从第二参考帧中确定当前图像块对应的第二初始参考块,确定第二初始参考块的第二预测值。根据第一边缘运动矢量从第一参考帧中确定当前图像块对应的第三初始参考块,确定第三初始参考块的第三预测值。根据第二边缘运动矢量从第二参考帧中确定当前图像块对应的第四初始参考块,确定第四初始参考块的第四预测值。
进一步的,可以根据第一预测值与第二预测值确定第一相似度,并根据第三预测值与第四预测值,确定第二相似度。然后,可以根据第一相似度和第二相似度,确定第一目标参考块和第二目标参考块。具体的,若第一相似度 高于第二相似度,则将第一初始参考块确定为第一目标参考块,将第二初始参考块确定为第二目标参考块;若该第二相似度高于该第一相似度,则可以将第三初始参考块确定为第一目标参考块,将第四初始参考块确定为第二目标参考块。
在一个例子中,在根据第一相似度和第二相似度,确定第一目标参考块和第二目标参考块之前,还可以判断是否满足结束条件(如迭代次数达到次数阈值,或执行时间达到时间阈值等);如果是,则可以执行根据第一相似度和第二相似度,确定第一目标参考块和第二目标参考块的步骤;如果否,若第一相似度高于第二相似度,则可以执行确定与第一中心运动矢量对应的第一边缘运动矢量、与第二中心运动矢量对应的第二边缘运动矢量的步骤;若第二相似度高于第一相似度,则可以将第一边缘运动矢量确定为第一中心运动矢量,将第二边缘运动矢量确定为第二中心运动矢量,并执行确定与第一中心运动矢量对应的第一边缘运动矢量、与第二中心运动矢量对应的第二边缘运动矢量的步骤。
在上述实施例中,第一相似度可以包括但不限于SAD或者MRSAD,第二相似度可以包括但不限于为SAD或MRSAD。
在上述实施例中,根据第一预测值与第二预测值,确定第一相似度,包括:可以对第一预测值和第二预测值进行下采样,并利用下采样后的第一预测值和下采样后的第二预测值确定第一相似度;根据第三预测值与第四预测值,确定第二相似度,包括:可以对第三预测值和第四预测值进行下采样,利用下采样后的第三预测值和下采样后的第四预测值确定第二相似度。
在上述实施例中,可以采用水平和竖直抽头数均小于等于N的插值策略(N优选为2(双线性插值),当然,N也可以为其它数值,对此不做限制)确定第一初始参考块的对应的第一预测值;可以采用水平和竖直抽头数均小于等于N的插值策略确定第二初始参考块的对应的第二预测值;可以采用水平和竖直抽头数均小于等于N的插值策略确定第三初始参考块的对应的第三预测值;可以采用水平和竖直抽头数均小于等于N的插值策略确定第四初始参考块的对应的第四预测值。
在上述实施例中,确定与第一中心运动矢量对应的第一边缘运动矢量、与第二中心运动矢量对应的第二边缘运动矢量,可以包括:方式1:对第一中心运动矢量进行偏移处理(包括方向和偏移量),得到第一边缘运动矢量;对第二中心运动矢量进行偏移处理,得到第二边缘运动矢量。方式2:对第一中心运动矢量进行偏移处理,得到第一边缘运动矢量;根据第一边缘运动矢量与第一中心运动矢量的差值,推导第二边缘运动矢量与第二中心运动矢量的差值,利用该差值与第二中心运动矢量,确定第二边缘运动矢量;例如,若第一边缘运动矢量与第一中心运动矢量对应差值A,则第二边缘运动矢量与第二中心运动矢量是差值A,因此,第二边缘运动矢量为第二中心运动矢量与差值A的和;又例如,若第一边缘运动矢量与第一中心运动矢量对应差值A,则第二边缘运动矢量与第二中心运动矢量是-1*差值A,因此,第二边缘运动矢量为第二中心运动矢量与差值A的差。
步骤403,将第一目标参考块的运动信息确定为当前图像块的目标运动信息,并将第二目标参考块的运动信息确定为当前图像块的目标运动信息。
实施例14:当前图像块可以存在原始运动信息M,该原始运动信息M可以包括第一运动矢量M1和第二运动矢量M2。其中,该第一运动矢量M1可以对应参考帧A1,该第二运动矢量M2可以对应参考帧A2。
将第一运动矢量M1确定为第一中心运动矢量T1,将第二运动矢量M2确定为第二中心运动矢量T2。将第一中心运动矢量T1向某方向偏移S,得到第一边缘运动矢量W1,将第二中心运动矢量T2向某方向偏移S,得到第二边缘运动矢量W2;当然,上述只是确定边缘运动信息的示例,对此不做限制。
其中,可以根据第一中心运动矢量T1从参考帧A1中确定当前图像块对应的第一初始参考块,并确定该第一初始参考块的第一预测值。其中,可以采用水平和竖直抽头数均小于等于N的插值策略确定第一初始参考块的第一预测值,例如第一初始参考块中的每个像素点的第一预测值(如像素值,可以是亮度值、色素值等);具体的,搜索若为分像素搜索,例如搜索的最小精度小于1个像素,则第一初始参考块中的像素点可能不是整数像素点,如0.75等,因此,为了获知这个像素点的像素值,就可以采用水平和竖直抽头数均小于N的插值策略,例如,若水平和竖直抽头数均为2,则上述插值策略是双线性插值策略,也就是说,可以采用双线性插值策略确定像素点0.75的第一预测值(如像素值)。例如,可以利用像素点0.75四周的四个真实存在的像素值来决定第一预测值。
其中,可以根据第二中心运动矢量T2从参考帧A2中确定当前图像块对应的第二初始参考块,并确定该第二初始参考块的第二预测值。根据第一边缘运动矢量W1从参考帧A1中确定当前图像块对应的第三初始参考块,并确定该第三初始参考块的第三预测值。根据第二边缘运动矢量W2从参考帧A2中确定当前图像块对应的第四初始参考块,并确定该第四初始参考块的第四预测值。
进一步的,可以根据第一预测值与第二预测值确定相似度1,并根据第三预测值与第四预测值确定相似度2。在确定相似度1和相似度2时,若相似度1和相似度2为SAD,针对第一中间图像块中的每个像素点(如P1-P100)和第二中间图像块中的每个像素点(如Q1-Q100),则采用如下方式确定相似度1:
首先,可以对像素点P1-P100的预测值进行下采样,并对像素点Q1-Q100的预测值进行下采样,例如,若下采样率为1,则下采样的结果是像素点P1-P100的预测值、像素点Q1-Q100的预测值;若下采样率为2,则下采样的结果是像素点P1-P50的预测值、像素点Q1-Q50的预测值;若下采样率为4,则下采样的结果是像素点P1-P25的预测值、像素点Q1-Q25的预测值;以此类推。
假设下采样的结果是像素点P1-P25的预测值、像素点Q1-Q25的预测值,则可以计算P1的预测值与Q1的预测 值的差值的绝对值,如X1,计算P2的预测值与Q2的预测值的差值的绝对值,如X2,以此类推,计算P25的预测值与Q25的预测值的差值的绝对值,如X25,然后,对X1、X2...X25取平均值,这个平均值就是SAD,也就是相似度1。同理,可以采用上述方式确定相似度2。
在确定相似度1和相似度2时,若相似度1和相似度2为MRSAD,针对第一中间图像块中的每个像素点(如P1-P100)和第二中间图像块中的每个像素点(如Q1-Q100),则采用如下方式确定相似度1:首先,对像素点P1-P100的预测值进行下采样,并对像素点Q1-Q100的预测值进行下采样,例如,若下采样率为4,则下采样的结果是像素点P1-P25的预测值、像素点Q1-Q25的预测值。
确定P1-P25的预测值的均值A,确定Q1-Q25的预测值的均值B;计算P1的预测值与均值A的差值C1,Q1的预测值与均值B的差值D1,并计算差值C1与差值D2的差值的绝对值,如Y1,以此类推,计算P25的预测值与均值A的差值C25,Q25的预测值与均值B的差值D25,并计算差值C25与差值D25的差值的绝对值,如Y25,然后,对Y1、Y2...Y25取平均值,这个平均值就是MRSAD,也就是相似度1。同理,可以采用上述方式确定相似度2。
在确定出相似度1和相似度2后,判断是否满足结束条件;如果否,若相似度1高于相似度2(相似度的值越小,则相似度越高),则根据第一中心运动矢量T1重新搜索第一边缘运动矢量W3(与上述第一边缘运动矢量W1不同),并根据第一中心运动矢量T2重新搜索第二边缘运动矢量W4(与上述第二边缘运动矢量W2不同),基于第一中心运动矢量T1、第一边缘运动矢量W3、第一中心运动矢量T2、第二边缘运动矢量W4重新执行上述步骤,在此不再赘述。若相似度2高于相似度1,则将第一边缘运动矢量W1确定为第一中心运动矢量T3,将第二边缘运动矢量W2确定为第二中心运动矢量T4,根据第一中心运动矢量T3重新搜索第一边缘运动矢量W5,根据第二中心运动矢量T4重新搜索第二边缘运动矢量W6,基于第一中心运动矢量T3、第一边缘运动矢量W5、第一中心运动矢量T4、第二边缘运动矢量W6重新执行上述步骤,在此不再赘述。
在判断是否满足结束条件后,如果是,则根据第一相似度和第二相似度(如相似度1和相似度2)确定第一目标参考块和第二目标参考块。若相似度1高于相似度2,则可以将第一初始参考块确定为第一目标参考块,并将第二初始参考块确定为第二目标参考块;若相似度2高于相似度1,则可以将第三初始参考块确定为第一目标参考块,并将第四初始参考块确定为第二目标参考块。
实施例15:针对步骤105,原始运动信息包括当前图像块对应的第一原始运动矢量和第二原始运动矢量;所述根据原始运动信息确定当前图像块的目标运动信息,可以包括但不限于:根据该第一原始运动矢量确定当前图像块的第一目标运动矢量,具体确定方式参见上述实施例;然后,确定第一原始运动矢量与第一目标运动矢量的差值;根据第二原始运动矢量和所述差值确定第二目标运动矢量;根据第一目标运动矢量和第二目标运动矢量确定目标运动信息。
例如,原始运动信息的参考方向可以是双向,例如原始运动信息可以包括第一原始运动矢量和第二原始运动矢量。假设第一原始运动矢量为(V0x,V0y),第二原始运动矢量为(V1x,V1y),对于原始运动信息的某一个运动信息分量,以第一原始运动矢量(V0x,V0y)为例,可以采用实施例9-实施例14的实现方式,确定第一原始运动矢量对应的第一目标运动矢量,对此确定过程不做限制,假设第一目标运动矢量为(V0x+offset_x,V0y+offset_y)。
在此基础上,可以确定第一目标运动矢量与第一原始运动矢量的差值为(offset_x,offset_y),然后,可以通过(offset_x,offset_y)直接推导第二原始运动矢量(V1x,V1y)对应的第二目标运动矢量,例如,第二目标运动矢量可以为(V1x-offset_x,V1y-offset_y),当然,上述只是示例,对此不做限制。
进一步的,可以将第一目标运动矢量(V0x+offset_x,V0y+offset_y)和第二目标运动矢量(V1x-offset_x,V1y-offset_y),确定为目标运动信息。
实施例16:针对步骤106,根据原始运动信息或目标运动信息对编码比特流进行解码,可以包括:解码端可以从编码比特流中获取第四指示信息,该第四指示信息用于指示采用原始运动信息对编码比特流进行解码,或者,采用目标运动信息对编码比特流进行解码。当然,上述方式只是示例,对此不做限制。
例如,若编码端采用原始运动信息对比特流进行编码,则编码端在编码比特流中添加的第四指示信息可以为第一标识,表示采用原始运动信息对比特流进行编码;若编码端采用目标运动信息对比特流进行编码,则编码端在编码比特流中添加的第四指示信息可以为第二标识,表示采用目标运动信息对比特流进行编码。基于此,解码端在从编码比特流中获取到第四指示信息后,若第四指示信息为第一标识,则可以根据原始运动信息对编码比特流进行解码;若第四指示信息为第二标识,则可以根据目标运动信息对编码比特流进行解码。
其中,针对编码端,可以采用原始运动信息对比特流进行预编码,并采用目标运动信息对比特流进行预编码,这样,可以基于率失真原则确定原始运动信息的编码性能和目标运动信息的编码性能。若原始运动信息的编码性能优于目标运动信息的编码性能,则确定采用原始运动信息对比特流进行编码;若目标运动信息的编码性能优于原始运动信息的编码性能,则确定目标运动信息对比特流进行编码。当然,上述方式只是一个示例,对此不做限制。
实施例17:在步骤106之后,还可以确定当前图像块的最终运动信息。例如,若根据原始运动信息对编码比特流进行解码,则将原始运动信息存储为最终运动信息;或者,若根据目标运动信息对编码比特流进行解码,则将目标运动信息存储为最终运动信息;其中,最终运动信息用于后续图像块的解码参考,也就是说,在其它图像块的处理过程中,可以参考该最终运动信息。
实施例18:
参见图5所示,为编码方法的流程示意图,可以应用于编码端,可以包括:
步骤501,获取当前图像块的运动模型。该运动模型可以包括但不限于:2参数的运动模型(如2参数的运动矢量)、4参数的运动模型(如4参数的仿射模型)、6参数的运动模型(如仿射模型)、8参数的运动模型(如投影模型)。
步骤502,根据该运动模型建立当前图像块的运动信息列表。
步骤503,从该运动信息列表中选择备选运动信息。
步骤504,根据选择的备选运动信息和当前图像块的差值信息确定当前图像块的原始运动信息。具体的,步骤104之前,可以先获取当前图像块的差值信息,然后,才根据备选运动信息和差值信息确定当前图像块的原始运动信息。
步骤505,根据该原始运动信息确定当前图像块的目标运动信息。其中,该目标运动信息可以是一个与该原始运动信息不同的运动信息。
步骤506,根据原始运动信息或目标运动信息对当前图像块进行编码。
由以上技术方案可见,本申请实施例中,可以根据原始运动信息确定当前图像块的目标运动信息,并根据该原始运动信息或者该目标运动信息进行编码,而不是直接根据原始运动信息进行编码,从而提高运动信息的精度,解决预测质量不高,预测错误等问题,并提高编码性能,提高编码效率,减少编码时延。
实施例19:
针对步骤501,获取当前图像块的运动模型,其实现方式可以参见实施例2,在此不再赘述。针对步骤502,根据运动模型建立当前图像块的运动信息列表,其实现方式可以参见实施例3-实施例5,在此不再赘述。针对步骤503,从运动信息列表中选择备选运动信息,其实现方式可以参见实施例6,在此不再赘述。
步骤504之前,可以获取当前图像块的差值信息,具体实现方式可以参见实施例7,在此不再赘述。针对步骤504,根据选择的备选运动信息和差值信息确定当前图像块的原始运动信息,其实现方式可以参见实施例8,在此不再赘述。
针对步骤505,根据该原始运动信息确定当前图像块的目标运动信息,其实现方式可以参见实施例9-15,在此不再赘述。针对步骤506,根据原始运动信息或目标运动信息对当前图像块进行编码,其实现方式可以参见实施例16。
在根据原始运动信息或目标运动信息对当前图像块进行编码后,还可以确定当前图像块的最终运动信息。例如,若根据原始运动信息对当前图像块进行编码,则将原始运动信息存储为最终运动信息;或者,若根据目标运动信息对当前图像块进行编码,则将目标运动信息存储为最终运动信息。
其中,最终运动信息用于后续图像块的编码参考,也就是说,在其它图像块的处理过程中,可以参考该最终运动信息,对此不做限制。
实施例20:
参见图6所示,为视频编码框架,可以使用视频编码框架实现上述编码方法,此外,视频解码框架与图6类似,在此不再赘述,可以使用视频解码框架实现上述解码方法。具体的,在视频编码框架/视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、返量化、熵编码器等模块。在编码端,通过这些模块的配合,可以实现上述编码方法;在解码端,通过这些模块的配合,可以实现上述解码方法。
实施例21:
基于与上述方法同样的申请构思,本申请实施例还提出一种解码装置,应用于解码端,如图7所示,为所述装置的结构图,所述装置包括:
获取模块71,用于获取当前图像块的运动模型;
建立模块72,用于根据所述运动模型建立当前图像块的运动信息列表;
选择模块73,用于从所述运动信息列表中选择备选运动信息;
确定模块74,用于根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;以及,
根据所述原始运动信息确定所述当前图像块的目标运动信息;
解码模块75,用于根据所述原始运动信息或所述目标运动信息对编码比特流进行解码。
实施例22:
基于与上述方法同样的申请构思,本申请实施例还提出一种编码装置,应用于编码端,如图8所示,为所述装置的结构图,所述装置包括:
获取模块81,获取当前图像块的运动模型;
建立模块82,根据所述运动模型建立所述当前图像块的运动信息列表;
选择模块83,从所述运动信息列表中选择备选运动信息;
确定模块84,根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;以及,
根据所述原始运动信息确定所述当前图像块的目标运动信息;
编码模块85,根据所述原始运动信息或所述目标运动信息对当前图像块进行编码。
实施例23:
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图9所示。包括:处理器91和机器可读存储介质92,其中:所述机器可读存储介质92存储有能够被所述处理器91执行的机器可执行指令,例如解码指令;所述处理器91用于执行机器可执行指令,以实现本申请上述示例公开的解码方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的解码方法。
实施例24:
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图10所示。包括:处理器93和机器可读存储介质94,其中:所述机器可读存储介质94存储有能够被所述处理器93执行的机器可执行指令,例如编码指令;所述处理器93用于执行机器可执行指令,以实现本申请上述示例公开的编码方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的编码方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (27)

  1. 一种解码方法,应用于解码端,包括:
    获取当前图像块的运动模型;
    根据所述运动模型建立所述当前图像块的运动信息列表;
    从所述运动信息列表中选择备选运动信息;
    根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;
    根据所述原始运动信息确定所述当前图像块的目标运动信息;
    根据所述原始运动信息或所述目标运动信息对编码比特流进行解码。
  2. 根据权利要求1所述的方法,还包括:
    若根据所述原始运动信息对所述编码比特流进行解码,则将所述原始运动信息存储为最终运动信息;
    或者,若根据所述目标运动信息对所述编码比特流进行解码,则将所述目标运动信息存储为最终运动信息。
  3. 根据权利要求1所述的方法,其特征在于,所述获取当前图像块的运动模型,包括:
    根据所述当前图像块的模式信息获取所述当前图像块的运动模型。
  4. 根据权利要求3所述的方法,其特征在于,
    所述模式信息包括尺寸信息,
    根据所述当前图像块的模式信息获取所述当前图像块的运动模型,包括:当所述当前图像块的尺寸信息小于预设尺寸时,确定所述当前图像块的运动模型是2参数的运动模型。
  5. 根据权利要求1所述的方法,其特征在于,所述获取当前图像块的运动模型,包括:
    从所述编码比特流中获取第一指示信息,所述第一指示信息用于指示所述运动模型;
    根据所述第一指示信息获取所述当前图像块的运动模型。
  6. 根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述运动模型建立所述当前图像块的运动信息列表,包括:
    根据所述运动模型确定与所述当前图像块对应的候选图像块;
    根据所述候选图像块的运动信息确定所述当前图像块的所述备选运动信息;
    将所述当前图像块的所述备选运动信息添加到所述运动信息列表。
  7. 根据权利要求6所述的方法,其特征在于,所述运动模型为2参数的运动模型,所述候选图像块包括以下之一或者任意组合:
    所述当前图像块所在当前帧中,与所述当前图像块相邻的图像块;
    所述当前图像块所在当前帧中,与所述当前图像块未相邻的图像块;
    所述当前图像块所在当前帧的相邻帧中的图像块。
  8. 根据权利要求7所述的方法,其特征在于,所述根据所述候选图像块的运动信息确定所述当前图像块的备选运动信息,包括:
    若所述候选图像块处于所述当前图像块的同一个解码单元,则根据所述候选图像块的原始运动信息确定所述当前图像块的所述备选运动信息;和/或,
    若所述候选图像块处于所述当前图像块的前一个解码单元,则根据所述候选图像块的原始运动信息确定所述当前图像块的所述备选运动信息。
  9. 根据权利要求7所述的方法,其特征在于,所述根据所述候选图像块的运动信息确定所述当前图像块的所述备选运动信息,包括:
    获取所述候选图像块的所述目标运动信息,并
    根据所述候选图像块的所述目标运动信息确定所述当前图像块的所述备选运动信息。
  10. 根据权利要求7所述的方法,其特征在于,所述根据所述候选图像块的运动信息确定所述当前图像块的所述备选运动信息,包括:
    对所述候选图像块的所述原始运动信息进行调整,并根据调整后的运动信息确定所述当前图像块的所述备选运动信息;和/或,
    对所述候选图像块的所述目标运动信息进行调整,并根据调整后的运动信息确定所述当前图像块的所述备选运动信息。
  11. 根据权利要求7所述的方法,其特征在于,所述将所述当前图像块的所述备选运动信息添加到所述运动信息列表,包括:
    根据每个所述候选图像块与所述当前图像块的位置关系,确定每个所述候选图像块的运动信息对应的所述当前图像块的所述备选运动信息的添加顺序;
    根据所述添加顺序,依次将每个所述备选运动信息添加到所述运动信息列表,直到所述运动信息列表中的所述备选运动信息的数量达到预设数量。
  12. 根据权利要求6所述的方法,其特征在于,
    所述运动模型为非2参数的运动模型,
    所述候选图像块包括当前图像块所在当前帧中与当前图像块相邻的图像块,且所述候选图像块的运动模型与所述当前图像块的运动模型相同,
    所述候选图像块包括多个子块,不同子块对应相同或不同的运动信息;
    根据所述候选图像块的运动信息确定所述当前图像块的备选运动信息,包括:
    从所述候选图像块的多个子块的所述运动信息中,选择与所述运动模型的参数匹配数量的运动信息,
    根据选择的所述运动信息确定所述当前图像块的所述备选运动信息。
  13. 根据权利要求12所述的方法,其特征在于,
    若所述运动模型为4参数的运动模型,则所述运动模型的参数匹配数量为2;
    若所述运动模型为6参数的运动模型,则所述运动模型的参数匹配数量为3;
    若所述运动模型为8参数的运动模型,则所述运动模型的参数匹配数量为4。
  14. 根据权利要求12所述的方法,其特征在于,所述运动模型为4参数的运动模型,所述从所述候选图像块的多个子块的运动信息中,选择与所述运动模型的参数匹配数量的运动信息,包括:
    选择所述候选图像块的左上方子块的运动信息和右上方子块的运动信息;或者,
    针对位于所述当前图像块上侧的所述候选图像块,选择所述候选图像块的左下方子块的运动信息和右下方子块的运动信息;针对不位于所述当前图像块上侧的所述候选图像块,选择所述候选图像块的左上方子块的运动信息和右上方子块的运动信息,或,选择所述候选图像块的右上方子块的运动信息和右下方子块的运动信息。
  15. 根据权利要求1-14任一项所述的方法,其特征在于,所述从所述运动信息列表中选择备选运动信息,包括:
    根据运动信息索引从所述运动信息列表中选择所述备选运动信息;
    其中,所述运动信息索引是从所述编码比特流中获取的,或者,所述运动信息索引是默认索引。
  16. 根据权利要求1-15任一项所述的方法,其特征在于,所述根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息之前,所述方法还包括:
    根据差值信息索引从差值列表中选择所述差值信息;
    其中,所述差值列表中配置有多个所述差值信息;
    所述差值信息索引是从所述编码比特流中获取的,或者,所述差值信息索引是默认差值索引。
  17. 根据权利要求1-16任一项所述的方法,其特征在于,根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息,包括:
    根据选择的所述备选运动信息和第一权重,以及所述当前图像块的所述差值信息和第二权重,确定所述当前图像块的所述原始运动信息。
  18. 根据权利要求1-17任一项所述的方法,其特征在于,所述根据所述原始运动信息确定所述当前图像块的目标运动信息,包括:
    获取所述当前图像块的模板;
    基于所述模板,以所述原始运动信息为中心搜索所述目标运动信息。
  19. 根据权利要求18所述的方法,其特征在于,所述获取所述当前图像块的模板,包括:
    利用所述当前图像块的所述原始运动信息,获取所述当前图像块的模板;或者,
    获取所述当前图像块的周围图像块的运动信息,并利用所述当前图像块的周围图像块的运动信息,获取所述当前图像块的模板。
  20. 根据权利要求19所述的方法,其特征在于,
    所述周围图像块包括M个第一周围图像块和N个第二周围图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数;
    所述第一周围图像块位于所述当前图像块上侧,所述第二周围图像块位于所述当前图像块左侧;
    所述利用所述当前图像块的周围图像块的运动信息,获取所述当前图像块的模板,包括:
    根据M个所述第一周围图像块的运动矢量预测模式和运动信息确定第一模板;
    根据N个所述第二周围图像块的运动矢量预测模式和运动信息确定第二模板;
    将所述第一模板确定为所述当前图像块的模板,或者将所述第二模板确定为所述当前图像块的模板,或者将所述第一模板和所述第二模板拼接之后确定为所述当前图像块的模板。
  21. 根据权利要求18所述的方法,其特征在于,所述基于所述模板,以所述原始运动信息为中心搜索所述目标运动信息,包括:
    将所述原始运动信息确定为中心运动信息;
    确定与所述中心运动信息对应的边缘运动信息;
    根据所述模板获得所述中心运动信息的预测性能和所述边缘运动信息的预测性能;
    根据所述中心运动信息的预测性能和所述边缘运动信息的预测性能,从所述中心运动信息和所述边缘运动信息中确定所述目标运动信息。
  22. 根据权利要求1-17任一项所述的方法,其特征在于,
    所述当前图像块为双向帧间预测块,
    所述原始运动信息包括所述当前图像块对应的第一参考帧和第二参考帧,以及所述第一参考帧对应的第一运动矢量、所述第二参考帧对应的第二运动矢量;
    所述根据所述原始运动信息确定所述当前图像块的目标运动信息,包括:
    根据所述第一运动矢量从所述第一参考帧中获取与所述当前图像块对应的第一初始参考块,根据所述第二运动矢量从所述第二参考帧中获取与所述当前图像块对应的第二初始参考块;
    基于所述第一初始参考块和所述第二初始参考块的相似度,在所述第一参考帧中,以所述第一运动矢量为中心,按照多个偏移方向和偏移量搜索第一目标参考块,在所述第二参考帧中,以所述第二运动矢量为中心,按照多个偏移方向和偏移量搜索第二目标参考块,所述第一目标参考块和所述第二目标参考块的相似度满足预设要求;
    将所述第一目标参考块的运动信息和所述第二目标参考块的运动信息确定为所述当前图像块的所述目标运动信息。
  23. 根据权利要求22所述的方法,其特征在于,所述第一初始参考块和所述第二初始参考块的相似度通过以下方式确定:
    采用水平和竖直抽头数均小于等于N的插值策略确定所述第一初始参考块的预测值和所述第二初始参考块的预测值,所述N为大于等于2的正整数;
    获取所述第一初始参考块的预测值和所述第二初始参考块的预测值的下采样处理结果,基于所述下采样处理结果,确定所述第一初始参考块和所述第二初始参考块的SAD或MRSAD,基于SAD或MRSAD确定所述第一初始参考块和所述第二初始参考块的相似度。
  24. 根据权利要求1-17任一项所述的方法,其特征在于,
    所述原始运动信息包括所述当前图像块对应的第一原始运动矢量和第二原始运动矢量;
    所述根据所述原始运动信息确定所述当前图像块的目标运动信息,包括:
    根据所述第一原始运动矢量确定所述当前图像块的第一目标运动矢量;
    确定所述第一原始运动矢量与所述第一目标运动矢量的差值;
    根据所述第二原始运动矢量和所述差值确定第二目标运动矢量;
    根据所述第一目标运动矢量和所述第二目标运动矢量确定目标运动信息。
  25. 一种编码方法,应用于编码端,包括:
    获取当前图像块的运动模型;
    根据所述运动模型建立所述当前图像块的运动信息列表;
    从所述运动信息列表中选择备选运动信息;
    根据选择的所述备选运动信息和所述当前图像块的差值信息确定所述当前图像块的原始运动信息;
    根据所述原始运动信息确定所述当前图像块的目标运动信息;
    根据所述原始运动信息或所述目标运动信息对当前图像块进行编码。
  26. 一种解码端设备,包括处理器和机器可读存储介质,
    所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
    所述处理器用于执行机器可执行指令,以实现权利要求1-24任一所述的方法。
  27. 一种编码端设备,包括处理器和机器可读存储介质,
    所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
    所述处理器用于执行机器可执行指令,以实现权利要求25所述的方法。
PCT/CN2019/106496 2018-09-20 2019-09-18 一种解码、编码方法及其设备 Ceased WO2020057559A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811102907.3 2018-09-20
CN201811102907.3A CN110933426B (zh) 2018-09-20 2018-09-20 一种解码、编码方法及其设备

Publications (1)

Publication Number Publication Date
WO2020057559A1 true WO2020057559A1 (zh) 2020-03-26

Family

ID=69855593

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/106496 Ceased WO2020057559A1 (zh) 2018-09-20 2019-09-18 一种解码、编码方法及其设备

Country Status (2)

Country Link
CN (2) CN114866777B (zh)
WO (1) WO2020057559A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114007078B (zh) * 2020-07-03 2022-12-23 杭州海康威视数字技术股份有限公司 一种运动信息候选列表的构建方法、装置及其设备
CN111885389B (zh) * 2020-07-24 2021-08-24 腾讯科技(深圳)有限公司 一种多媒体数据编码方法、装置及存储介质
WO2022021310A1 (zh) * 2020-07-31 2022-02-03 深圳市大疆创新科技有限公司 编码方法、装置、计算处理设备、计算机程序及存储介质
CN113709499B (zh) * 2020-08-20 2022-12-23 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114598889B (zh) * 2020-12-03 2023-03-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113794889B (zh) 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
CN116847088B (zh) * 2023-08-24 2024-04-05 深圳传音控股股份有限公司 图像处理方法、处理设备及存储介质
CN119728987A (zh) * 2023-09-26 2025-03-28 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080240247A1 (en) * 2007-03-29 2008-10-02 Samsung Electronics Co., Ltd. Method of encoding and decoding motion model parameters and video encoding and decoding method and apparatus using motion model parameters
CN103716631A (zh) * 2012-09-29 2014-04-09 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
CN104363451A (zh) * 2014-10-27 2015-02-18 华为技术有限公司 图像预测方法及相关装置
CN106454378A (zh) * 2016-09-07 2017-02-22 中山大学 一种基于变形运动模型的帧率上转换视频编码方法及系统
CN106537915A (zh) * 2014-07-18 2017-03-22 联发科技(新加坡)私人有限公司 用于视频编码的运动向量导出的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101023676B (zh) * 2004-07-20 2012-06-27 高通股份有限公司 用于时间视频压缩中运动矢量预测的方法和设备
JP2006279573A (ja) * 2005-03-29 2006-10-12 Sanyo Electric Co Ltd 符号化装置と方法、ならびに復号装置と方法
JP4868539B2 (ja) * 2008-03-03 2012-02-01 Kddi株式会社 動画像符号化装置および復号装置
CN102215387B (zh) * 2010-04-09 2013-08-07 华为技术有限公司 视频图像处理方法以及编/解码器
CN102685504B (zh) * 2011-03-10 2015-08-19 华为技术有限公司 视频图像的编解码方法、编码装置、解码装置及其系统
CN102158709B (zh) * 2011-05-27 2012-07-11 山东大学 一种解码端可推导的运动补偿预测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080240247A1 (en) * 2007-03-29 2008-10-02 Samsung Electronics Co., Ltd. Method of encoding and decoding motion model parameters and video encoding and decoding method and apparatus using motion model parameters
CN103716631A (zh) * 2012-09-29 2014-04-09 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
CN106537915A (zh) * 2014-07-18 2017-03-22 联发科技(新加坡)私人有限公司 用于视频编码的运动向量导出的方法
CN104363451A (zh) * 2014-10-27 2015-02-18 华为技术有限公司 图像预测方法及相关装置
CN106454378A (zh) * 2016-09-07 2017-02-22 中山大学 一种基于变形运动模型的帧率上转换视频编码方法及系统

Also Published As

Publication number Publication date
CN110933426B (zh) 2022-03-01
CN114866777A (zh) 2022-08-05
CN114866777B (zh) 2024-11-22
CN110933426A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
CN112468812B (zh) 一种编解码方法、装置及其设备
WO2020134968A1 (zh) 一种编解码方法及其设备
CN110933426B (zh) 一种解码、编码方法及其设备
WO2020001591A1 (zh) 一种解码、编码方法及其设备
WO2020001624A1 (zh) 一种运动矢量确定方法和设备
CN113766234B (zh) 一种解码、编码方法、装置及其设备
CN112543322B (zh) 一种解码、编码方法、装置及其设备
WO2020007306A1 (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: 19861385

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19861385

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19861385

Country of ref document: EP

Kind code of ref document: A1