WO2017005128A1 - 图像预测方法和相关设备 - Google Patents

图像预测方法和相关设备 Download PDF

Info

Publication number
WO2017005128A1
WO2017005128A1 PCT/CN2016/087750 CN2016087750W WO2017005128A1 WO 2017005128 A1 WO2017005128 A1 WO 2017005128A1 CN 2016087750 W CN2016087750 W CN 2016087750W WO 2017005128 A1 WO2017005128 A1 WO 2017005128A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
pixel unit
motion vector
phase
image block
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/CN2016/087750
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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
Priority to KR1020207031100A priority Critical patent/KR102390695B1/ko
Priority to AU2016290017A priority patent/AU2016290017B2/en
Priority to CN201680037454.3A priority patent/CN107710761B/zh
Priority to JP2017567671A priority patent/JP6776276B2/ja
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to SG11201710800QA priority patent/SG11201710800QA/en
Priority to EP24150152.7A priority patent/EP4373087A3/en
Priority to KR1020207002729A priority patent/KR102173475B1/ko
Priority to KR1020187001663A priority patent/KR102073638B1/ko
Priority to PL16820779.3T priority patent/PL3306934T3/pl
Priority to RU2018143851A priority patent/RU2699258C2/ru
Priority to MX2021003800A priority patent/MX2021003800A/es
Priority to MX2018000067A priority patent/MX381112B/es
Priority to BR112018000085-0A priority patent/BR112018000085B1/pt
Priority to MYPI2017704989A priority patent/MY191714A/en
Priority to EP16820779.3A priority patent/EP3306934B1/en
Priority to RU2018103787A priority patent/RU2675092C1/ru
Priority to ES16820779T priority patent/ES2982272T3/es
Priority to KR1020227013389A priority patent/KR102549824B1/ko
Publication of WO2017005128A1 publication Critical patent/WO2017005128A1/zh
Priority to US15/855,005 priority patent/US10560714B2/en
Priority to ZA2018/00017A priority patent/ZA201800017B/en
Anticipated expiration legal-status Critical
Priority to US16/734,586 priority patent/US10771809B2/en
Priority to US17/012,658 priority patent/US11240529B2/en
Priority to US17/556,579 priority patent/US11831902B2/en
Priority to US18/494,259 priority patent/US12341989B2/en
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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • 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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • 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
    • 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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Definitions

  • the present invention relates to the field of video coding and video decoding, and in particular to an image prediction method and related equipment.
  • the basic principle of video coding compression is to use the correlation between airspace, time domain and codewords to remove redundancy as much as possible.
  • the current popular practice is to use a block-based hybrid video coding framework to implement video coding compression through prediction (including intra prediction and inter prediction), transform, quantization, and entropy coding.
  • This coding framework shows a strong vitality, and HEVC still uses this block-based hybrid video coding framework.
  • motion estimation/motion compensation is a key technique that affects encoding/decoding performance.
  • the existing motion estimation/motion compensation algorithms are basically block motion compensation algorithms based on the translational motion model.
  • the existing interframe prediction mainly uses block-based motion compensation prediction based on the translational motion model (English: motion compensation).
  • Some non-translational motion models (such as affine motion models) designed for non-translational motion are also being proposed.
  • the prior art uses the low-precision motion vector and the affine motion model of the two control points of the current image block to perform pixel value prediction to obtain low-precision pixel prediction values of the current image block.
  • it is necessary to perform an interpolation filtering operation by using an interpolation filter.
  • the accuracy of the pixel prediction value of the current image block obtained this time is the same as the accuracy of the motion vector of the two control points. If you need to obtain a higher precision pixel prediction value of the current image block, you need to further use the bilinear interpolation filter to predict the lower precision pixel of the obtained current image block. Perform secondary interpolation filtering.
  • the embodiments of the present invention provide an image prediction method and related equipment, so as to reduce the number of intermediate buffers and memory operations required for interpolation filtering in the image prediction process, and reduce the computational complexity of the image prediction process.
  • a first aspect of the embodiments of the present invention provides an image prediction method, including:
  • the value of the N is a preset fixed-size value, and the Q is less than or equal to the N.
  • the movement of the N pairs of the W control points is utilized in the motion model
  • the horizontal component or the vertical component of one motion vector in the vector is magnified by N times; or in the motion model, the N is used to amplify the motion vector component difference of any two of the W control points. Times.
  • interpolation using a phase number Q is utilized
  • the filter performs interpolation filtering on pixels of the corresponding reference pixel unit in the reference image for each of the P pixel units, including:
  • the calculating, by using a motion vector of each of the P pixel units, The phase of each of the P pixel units includes: calculating a phase of each of the P pixel units by using a motion vector of each of the P pixel units according to the following formula ,
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of a motion vector of 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block.
  • the phase comprises a horizontal phase and a vertical phase
  • the determining, based on the phase of the each pixel unit, an interpolation filter whose phase number of the corresponding pixel unit is Q includes: determining a level of a phase of the corresponding pixel unit as Q based on a horizontal phase of each of the pixel units An interpolation filter that determines a corresponding phase based on the vertical phase of each of the pixel units a vertical interpolation filter having a phase number of pixels of Q, wherein a filter coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, wherein a filter coefficient used by the vertical interpolation filter The vertical phase corresponds.
  • the determining, by using the determined interpolating filter pair corresponding to the number of phases of each pixel unit, is corresponding to The pixel unit performs interpolation filtering on pixels of the corresponding reference pixel unit in the reference image, including:
  • the motion model is a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shear motion model, a scaled motion model, a perspective motion model, or a bilinear motion model.
  • the W is equal to 2
  • the motion model is expressed as:
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the W is equal to 3
  • the motion model is expressed as:
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the W control points The motion vector predicts a motion vector of an encoded image block or a decoded image block around the current image block with a precision of 1/n pixel precision.
  • the image prediction method application In the video encoding process or in the video decoding process.
  • a second aspect of the embodiments of the present invention provides an image prediction apparatus, including:
  • a first determining unit configured to determine a motion vector of the W control points in the current image block
  • a calculating unit configured to calculate, by using a motion model and a motion vector of the W control points, a motion vector of P pixel units of the current image block, where the determined motion vectors of the W control points are The accuracy is 1/n pixel precision, and the calculated accuracy of the motion vector of each of the P pixel units is 1/N pixel precision, and the P pixel units are the current image block.
  • a motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image, the W, the n, and the N An integer greater than 1, the N is greater than the n, and the P is a positive integer;
  • An interpolation filtering unit configured to perform interpolation filtering on pixels of corresponding reference pixel units in the reference image for each pixel unit of the P pixel units by using an interpolation filter with a phase number Q to obtain the P pixels a pixel prediction value for each pixel unit in the cell, the Q being an integer greater than the n.
  • the value of the N is a preset fixed size value, and the Q is less than or equal to the N.
  • the movement of the N pairs of the W control points is utilized in the motion model
  • the horizontal component or the vertical component of one motion vector in the vector is magnified by N times; or in the motion model, the N is used to amplify the motion vector component difference of any two of the W control points. Times.
  • the interpolation filtering unit is specifically used Calculating the motion vector of each of the P pixel units Determining a phase of each of the P pixel units, determining, based on a phase of each of the pixel units, an interpolation filter having a phase number Q of the corresponding pixel unit, a filter coefficient used by the interpolation filter and the Corresponding to the phase; performing interpolation filtering on pixels of the corresponding reference pixel unit in the reference image by using the determined interpolation filter corresponding to the number of phases of each pixel unit as Q.
  • the P is calculated by using a motion vector of each of the P pixel units
  • the interpolation filtering unit is specifically configured to calculate the P pixel units by using motion vectors of each of the P pixel units according to the following formula The phase of each pixel unit in it,
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of a motion vector of 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block.
  • the phase includes a horizontal phase and a vertical phase
  • the interpolation filtering unit is specifically configured to determine a corresponding pixel based on a horizontal phase of each of the pixel units a horizontal interpolation filter whose number of phases is Q
  • a vertical interpolation filter whose phase number of the corresponding pixel unit is Q is determined based on the vertical phase of each pixel unit
  • filter coefficients used by the horizontal interpolation filter correspond to the vertical phase.
  • the interpolation filter pair corresponding to the determined number of phases of each pixel unit is Q
  • the side of the corresponding pixel unit that performs interpolation filtering on the pixels of the corresponding reference pixel unit in the reference image The interpolation filtering unit is specifically configured to perform horizontal interpolation filtering on pixels of the corresponding reference pixel unit in the reference image by using a horizontal interpolation filter whose phase number corresponding to the determined pixel unit i is Q And obtaining a horizontal interpolation filtering result; performing vertical interpolation filtering on the horizontal interpolation filtering result by using a vertical interpolation filter whose phase number corresponding to the pixel unit i is Q, to obtain a pixel of the pixel unit i a predicted value, wherein the pixel unit i is any one of the P pixel units;
  • the interpolation filtering unit is specifically configured to vertically perform pixels of the corresponding reference pixel unit in the reference image by using a vertical interpolation filter whose phase number corresponding to the determined pixel unit j is Q Performing interpolation filtering to obtain a vertical interpolation filtering result; performing horizontal interpolation filtering on the horizontal interpolation filtering result by using the determined horizontal interpolation filter corresponding to the pixel number j of the pixel unit j to obtain the pixel unit j a pixel prediction value, wherein the pixel unit j is any one of the P pixel units.
  • the motion model is a translational motion model, an affine motion model, a rotational motion model, a scaled motion model, a parabolic motion model, a shear motion model, a perspective motion model, or a bilinear motion model.
  • the W is equal to 2
  • the motion model is expressed as:
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the motion model is expressed as:
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the W control points The motion vector predicts a motion vector of an encoded image block or a decoded image block around the current image block with a precision of 1/n pixel precision.
  • the image prediction device The application is applied to a video encoding device or the image predicting device is applied to a video decoding device.
  • An embodiment of the present invention further provides an image prediction apparatus, including: a processor and a memory.
  • the image prediction device may, for example, also include a network interface.
  • the memory is used to store instructions
  • the processor is configured to execute the instructions
  • the network interface is configured to communicate with other devices under the control of the processor.
  • a processor is configured to determine a motion vector of the W control points in the current image block; and calculate a motion vector of the P pixel units of the current image block by using the motion model and the motion vector of the W control points.
  • the accuracy of the motion vector of the determined W control points is 1/n pixel precision, and the accuracy of the motion vector of each of the P pixel units is 1/N pixel precision.
  • the P pixel units are part or all of the pixel units of the current image block, and the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image,
  • the W, the n and the N are integers greater than 1, the N is greater than the n, and the P is a positive integer; using an interpolation filter having a phase number Q for the P pixel units
  • Each pixel unit performs interpolation filtering on pixels of corresponding reference pixel units in the reference image to obtain pixel prediction values for each of the P pixel units, wherein the Q is an integer greater than the n .
  • embodiments of the present invention also provide a computer readable storage medium storing program code for image prediction.
  • the program code includes instructions for performing an image prediction method.
  • the motion model and the motion vector of 1/n pixel precision of the W control points are used to calculate 1/1 of each pixel unit of the current image block.
  • N-precision motion vector, N is greater than n, that is, the calculated motion vector of each pixel unit of the current image block is higher than the determined motion vector of the W control points. Precision.
  • a higher precision motion vector of each pixel unit of the current image block is used to determine a corresponding reference pixel unit of each pixel unit of the current image block in the reference image, utilizing An interpolation filter having a phase number Q (Q greater than n) performs interpolation filtering on pixels of corresponding pixel units of the reference image unit in each pixel unit of the current image block to obtain pixels of each pixel unit of the current image block.
  • the above method is beneficial Reducing the number of interpolation filters required to obtain a higher-precision pixel prediction value of the current image block (for example, an intermediate process of obtaining low-precision pixel prediction values by low-precision interpolation filtering may be omitted), thereby facilitating reduction of interpolation during image prediction
  • the number of intermediate buffers and memory operations required for filtering which in turn facilitates the computational complexity of the image prediction process.
  • FIG. 1 is a schematic diagram of partitioning of several image blocks according to an embodiment of the present invention
  • FIG. 2 is a schematic flowchart of an image prediction method according to an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of motion vector prediction of a control point according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart of another image prediction method according to an embodiment of the present disclosure.
  • FIG. 3 is a schematic diagram of an entire pixel position and a sub-pixel position according to an embodiment of the present invention
  • FIG. 4 is a schematic flowchart diagram of another image prediction method according to an embodiment of the present disclosure.
  • FIG. 5 is a schematic diagram of an image prediction apparatus according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of another image prediction apparatus according to an embodiment of the present invention.
  • the embodiments of the present invention provide an image prediction method and related equipment, so as to reduce the number of intermediate buffers and memory operations required for interpolation filtering in the image prediction process, and reduce the computational complexity of the image prediction process.
  • the video sequence consists of a series of pictures (English: picture), the picture is further divided into slices (English: slice), and the slice is further divided into blocks (English: block).
  • the video coding is performed in units of blocks, and can be encoded from left to right and from top to bottom line from the upper left corner position of the picture.
  • the concept of block is further extended.
  • the MB can be further divided into a plurality of prediction blocks (English: partition) that can be used for predictive coding.
  • coding unit English: coding unit, abbreviation: CU
  • prediction unit English: prediction unit, abbreviation: PU
  • transform unit English: transform unit, abbreviation: TU
  • CU PU or TU
  • the PU can correspond to a prediction block and is the basic unit of predictive coding.
  • the CU is further divided into a plurality of PUs according to a division mode.
  • the TU can correspond to a transform block and is a basic unit for transforming the prediction residual.
  • High-performance video coding English: high efficiency video coding, abbreviated: HEVC
  • HEVC high efficiency video coding
  • the size of a coding unit may include four levels of 64 ⁇ 64, 32 ⁇ 32, 16 ⁇ 16, and 8 ⁇ 8, and coding units of each level may be divided into different according to intra prediction and inter prediction.
  • the size of the prediction unit. 1 - a and FIG. The corresponding prediction unit division method.
  • the skip mode and the direct mode are effective tools for improving coding efficiency, and are used at low bit rates.
  • the blocks of the coding mode can account for more than half of the entire coding sequence.
  • skip mode only need By passing a skip mode flag in the code stream, the motion vector of the current image block can be derived by using the peripheral motion vector, and the value of the reference block is directly copied according to the motion vector as the reconstructed value of the current image block.
  • the encoder can derive the motion vector of the current image block by using the peripheral motion vector, and directly copy the value of the reference block as the predicted value of the current image block according to the motion vector, and use the predicted value pair at the encoding end.
  • the current image block is encoded and predicted.
  • high-performance video coding English: high efficiency video coding, abbreviated: HEVC
  • HEVC high efficiency video coding
  • AMVP adaptive motion vector prediction
  • the fusion code constructs a candidate motion information set by using motion information (including motion vector (MV) and prediction direction and reference frame index) of the coded block around the current coding block, and by comparison, Selecting the candidate motion information with the highest coding efficiency as the motion information of the current coding block, finding the prediction value of the current coding block in the reference frame, performing prediction coding on the current coding block, and at the same time, indicating which peripheral coded block is selected from the representation.
  • the index value of the motion information is written to the code stream.
  • the adaptive motion vector prediction mode when used, by using the motion vector of the peripheral coded block as the predicted value of the current coded block motion vector, a motion vector with the highest coding efficiency may be selected to predict the motion vector of the current coded block, and An index value indicating which peripheral motion vector is selected is written to the video stream.
  • the image prediction method provided by the embodiment of the present invention is described below.
  • the execution body of the image prediction method provided by the embodiment of the present invention is a video coding device or a video decoding device, where the video coding device or the video decoding device may be any output or A device that stores video, such as a laptop, tablet, PC, cell phone, or video server.
  • an image prediction method may include: determining motion vectors of W control points in a current image block; calculating the current by using a motion model and motion vectors of the W control points a motion vector of P pixel units of the image block, wherein the determined motion vector of the W control points has an accuracy of 1/n pixel precision, and each of the calculated P pixel units The accuracy of the motion vector of the pixel unit is 1/N pixel precision, and the P pixel units are part or all of the pixel unit of the current image block, wherein each of the P pixel units a motion vector of the pixel unit is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image, wherein the W, the n, and the N are integers greater than 1, and the N is greater than the n, P is a positive integer; interpolating a pixel of a corresponding reference pixel unit in the reference image for each of the P pixel units by using an interpolation filter having a
  • FIG. 2-a is a schematic flowchart diagram of an image prediction method according to an embodiment of the present invention.
  • an image prediction method provided by an embodiment of the present invention may include:
  • the P pixel units are part or all of the pixel units of the current image block.
  • the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image. Therefore, the motion vector of each of the P pixel units can be utilized to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image.
  • the accuracy of the determined motion vectors of the W control points is 1/n pixel precision.
  • the accuracy of the motion vector of each of the P pixel units calculated is 1/N pixel precision.
  • W, the n and the N are integers greater than one.
  • the N is greater than the n.
  • the P is a positive integer.
  • N is greater than n, the accuracy of the calculated motion vector of each of the P pixel units is higher than the accuracy of the determined motion vectors of the W control points. That is, a relatively high-precision motion vector of P pixel units of the current image block is obtained.
  • the motion vector of the W control points is predicted from a motion vector of the coded image block or the decoded image block around the current image block with a precision of 1/n pixel precision.
  • the W control points include a control point LT, a control point RT, and a control.
  • Point LB the motion vector of the control point LT is predicted from a motion vector that can be predicted from the image blocks A, B, and C with an accuracy of 1/n pixel precision.
  • the motion vector of the control point RT is predicted from a motion vector that can be predicted from the image blocks D and E with an accuracy of 1/n pixel precision.
  • the motion vector of the control point LB is predicted from a motion vector that can be predicted from the image blocks F and G with an accuracy of 1/n pixel precision.
  • the accuracy of the predicted value is also 1/n pixel precision
  • the control point of the 1/n pixel precision may be The difference between the motion vector and the corresponding predicted value is written into the code stream.
  • the motion model may be, for example, a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shear motion model, a scale motion model, a perspective motion model, or Bilinear motion models, etc.
  • Q is an integer greater than the n.
  • the value of the N may be a preset fixed-size value, and the Q may be greater than or equal to the N.
  • the value of N may be a preset fixed-size value, indicating that the motion vector of the P image unit of the current image block is obtained by using a motion model and a motion vector of the W control points, There is no necessary relationship with the size of the current image block. That is to say, based on the scheme of the present embodiment, for example, it is possible to obtain a preset fixed-precision pixel prediction value without performing an intermediate process of obtaining a low-precision pixel prediction value by low-precision interpolation filtering.
  • the W can be equal to 2, 3, 4, 5, 6, 8, or other values.
  • the P can be equal to 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64 or other values.
  • the Q can be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 or other values.
  • the N can be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 or other values.
  • n can be equal to 8, 2, 4 or other values.
  • the N may be an integer power of 2, and of course the N may be other positive integers.
  • the pixel unit in each embodiment of the present invention may include one or more pixels, for example, the pixel unit may be a 2*2 pixel block, a 2*1 pixel block, a 2*1 pixel block, and a 4*4 pixel. Block or 4*2 pixel block, etc.
  • control points in the embodiments of the present invention may include one or more pixels, for example, the control points may be 2*2 pixel blocks, 2*1 pixel blocks, 2*1 pixel blocks, and 4*4 pixels. Block or 4*2 pixel block, etc.
  • the motion model and the motion vector of 1/n pixel precision of the W control points are used to calculate 1/N of each pixel unit of the current image block.
  • a pixel-precision motion vector, N is greater than n, that is, the calculated accuracy of the motion vector of each pixel unit of the current image block is higher than the accuracy of the determined motion vector of the W control points.
  • a higher precision motion vector of each pixel unit of the current image block is used to determine a corresponding reference pixel unit of each pixel unit of the current image block in the reference image, utilizing An interpolation filter having a phase number Q (Q greater than n) performs interpolation filtering on pixels of corresponding pixel units of the reference image unit in each pixel unit of the current image block to obtain pixels of each pixel unit of the current image block.
  • the horizontal component or the vertical component of one of the motion vectors of the W control points is amplified by N times in the motion model by using the N; or
  • the motion model component difference of any two of the W control points is amplified by N times using the N in the motion model.
  • the motion model may be expressed, for example, if the W is equal to 2:
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the motion model may be expressed as:
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the above example is illustrated by using an affine motion model as an example, for using a translational motion model, a rotational motion model, a shear motion model, a scaled motion model, a perspective motion model, a parabolic motion model, or a bilinear motion.
  • the case of the model, etc. can be based on the corresponding motion model and so on, and will not be described here.
  • a general manifestation of a sports model can be as follows:
  • the accuracy of the motion vector (v ix , v iy ) of the control point is 1/n pixel precision.
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • determining, by using a motion vector of each of the P pixel units, each of the P pixel units in a reference image may include: calculating an integer pixel position of each of the P pixel units by using a motion vector of each of the P pixel units; using the P pixel units a motion vector of each of the pixel units, in the reference image, a reference pixel unit corresponding to an integer pixel position of each of the P pixel units, wherein the referenced image is found in the reference image
  • a reference pixel unit corresponding to an integer pixel position of each of the P pixel units is a reference pixel unit in the reference image for each of the P pixel units.
  • the entire pixel position of the pixel unit i can be calculated by using the motion vector of the pixel unit i in the P pixel units; and the whole of the pixel unit i is searched in the reference image by using the motion vector of the pixel unit i.
  • a reference pixel unit corresponding to the pixel position wherein the reference pixel unit corresponding to the integer pixel position of the pixel unit i found in the reference image is the reference pixel unit of the pixel unit i in the reference image.
  • the pixel unit i may be any one of the P pixel units.
  • a corresponding reference pixel unit in the reference image may be determined in a similar manner to the pixel unit i described above.
  • the calculating, by using the motion vector of each of the P pixel units, the integer pixel position of each of the P pixel units comprises:
  • the M log 2 N, (xInt, yInt) represents the integer pixel position coordinates of the pixel unit of the current image block with coordinates (x, y), the v Nx representation a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block, the v Ny indicating a 1/N pixel of a pixel unit having a coordinate of (x, y) in the current image block Accurate motion vector vertical flat component.
  • performing interpolation filtering on pixels of the corresponding reference pixel unit in the reference image for each of the P pixel units by using an interpolation filter having a phase number Q includes:
  • the phase of the pixel unit i can be calculated by using the motion vector of the pixel unit i in the P pixel units, and the interpolation filter corresponding to the phase number of the pixel unit i is determined based on the phase of the pixel unit i.
  • the filter coefficients used by the interpolation filter correspond to the phases; and the pixels of the corresponding reference pixel units in the reference image are interpolated by the interpolation filter of the phase number Q corresponding to the determined pixel unit i.
  • the pixel unit i may be any one of the P pixel units.
  • interpolation filtering can be performed in a similar manner to the pixel unit i described above.
  • each of the P pixel units is utilized a motion vector, calculating a phase of each of the P pixel units: calculating the P pixel units by using motion vectors of each of the P pixel units according to the following formula The phase of each pixel unit in it,
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of a motion vector of 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block.
  • the phase includes a horizontal phase and a vertical phase, wherein the determining, based on the phase of each of the pixel units, an interpolation of a phase number of the corresponding pixel unit is Q
  • the filter includes: a horizontal interpolation filter that determines a phase number of the corresponding pixel unit as Q based on a horizontal phase of each of the pixel units, and determines a phase number of the corresponding pixel unit as Q based on a vertical phase of each of the pixel units
  • a vertical interpolation filter wherein the horizontal interpolation filter corresponds to the horizontal phase using a filter coefficient, wherein the vertical interpolation filter uses a filter coefficient corresponding to the vertical phase.
  • a horizontal interpolation filter whose phase number of the pixel unit i is Q may be determined based on the horizontal phase of the pixel unit i, and vertical interpolation filtering of the pixel number of the pixel unit i is determined based on the vertical phase of the pixel unit i
  • the filter coefficients used by the horizontal interpolation filter correspond to the horizontal phase of the pixel unit i
  • the filter coefficients used by the vertical interpolation filter correspond to the vertical phase of the pixel unit i.
  • the pixel unit i may be any one of the P pixel units.
  • an interpolation filter having a phase number Q can be determined in a similar manner to the pixel unit i described above.
  • the pixel of the corresponding reference pixel unit of the corresponding pixel unit in the reference image is performed by using the determined interpolation filter whose phase number corresponding to each pixel unit is Q Interpolation filtering, including:
  • the pixel prediction value of the pixel unit can be obtained by performing one interpolation filtering on the pixel of the reference pixel unit of the pixel unit.
  • determining the motion vector of the W control points in the current image block includes:
  • each of the motion information unit sets e is selected from each of the W control points At least part of the motion information unit in the candidate motion information unit set, each merged motion information unit in the merged motion information unit set e includes a motion vector;
  • the accuracy of each motion vector in the candidate motion information unit set may be 1/n pixel precision.
  • the image prediction method can be applied to a video encoding process or the image prediction method can be applied to a video decoding process.
  • FIG. 3-a is a schematic flowchart diagram of another image prediction method according to another embodiment of the present invention.
  • the image prediction method provided by another embodiment of the present invention may include:
  • the video encoding device determines W control points in the current image block.
  • the video encoding device determines a motion vector of the W control points.
  • the determining, by the video encoding device, the motion vector of the W control points may include: determining a set of candidate motion information units corresponding to each of the W control points; wherein each of the control points corresponds to The candidate motion information unit includes at least one motion information unit of the candidate; determining a combined motion information unit set e including the W motion information units, wherein each of the motion information unit sets e is selected from the At least part of the motion information unit in the candidate motion information unit set corresponding to each of the W control points, each merged motion information unit in the merged motion information unit set e includes a motion vector;
  • the W motion vectors in the information unit set e perform prediction or motion estimation to obtain motion vectors of the W control points, or the W motion vectors included in the combined motion information unit set e are the W control points. Sport vector.
  • the accuracy of each motion vector in the candidate motion information unit set may be 1/n pixel precision.
  • the video encoding apparatus calculates a motion vector of P pixel units of the current image block by using a motion model and a motion vector of the W control points.
  • P is a positive integer
  • W and the N are integers greater than 1.
  • the P pixel units are part or all of the pixel units of the current image block.
  • the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image. Therefore, the motion vector of each of the P pixel units can be utilized to determine a corresponding reference pixel of the corresponding pixel unit in the reference image. unit.
  • the accuracy of the determined motion vectors of the W control points is 1/n pixel precision.
  • the accuracy of the motion vector of each of the P pixel units calculated is 1/N pixel precision.
  • W, the n and the N are integers greater than one.
  • the N is greater than the n.
  • the P is a positive integer.
  • N is greater than n, the accuracy of the calculated motion vector of each of the P pixel units is higher than the accuracy of the determined motion vectors of the W control points. That is, a relatively high-precision motion vector of P pixel units of the current image block is obtained.
  • the motion vector of the W control points is predicted from a motion vector of the coded image block or the decoded image block around the current image block with a precision of 1/n pixel precision.
  • the accuracy of the predicted value is also 1/n pixel precision, and the motion vector of the control point of 1/n pixel precision can be used.
  • the difference from the corresponding predicted value is written into the code stream.
  • the W motion vector prediction difference values obtained in the code stream and the motion vector prediction accuracy of the decoded image block around the current image block are 1/n pixel precision, and the W control points are obtained. /n pixel precision motion vector.
  • the motion model may be, for example, a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shear motion model, a scale motion model, a perspective motion model, or Bilinear motion models, etc.
  • the motion model may be expressed, for example, if the W is equal to 2:
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the motion model may be expressed as:
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the above example is illustrated by using an affine motion model as an example, for using a translational motion model, a rotational motion model, a shear motion model, a scaled motion model, a perspective motion model, a parabolic motion model, or a bilinear motion.
  • the case of the model, etc. can be based on the corresponding motion model and so on, and will not be described here.
  • the video encoding device utilizes a motion vector of each of the P pixel units
  • Each of the P pixel units is a corresponding reference pixel unit in the reference image.
  • determining, by using a motion vector of each of the P pixel units, each of the P pixel units in a reference image may include: calculating an integer pixel position of each of the P pixel units by using a motion vector of each of the P pixel units; using the P pixel units a motion vector of each of the pixel units, in the reference image, a reference pixel unit corresponding to an integer pixel position of each of the P pixel units, wherein the referenced image is found in the reference image
  • a reference pixel unit corresponding to an integer pixel position of each of the P pixel units is a reference pixel unit in the reference image for each of the P pixel units.
  • the entire pixel position of the pixel unit i can be calculated by using the motion vector of the pixel unit i in the P pixel units; and the whole of the pixel unit i is searched in the reference image by using the motion vector of the pixel unit i.
  • a reference pixel unit corresponding to the pixel position wherein the reference pixel unit corresponding to the integer pixel position of the pixel unit i found in the reference image is the reference pixel unit of the pixel unit i in the reference image.
  • the pixel unit i may be any one of the P pixel units.
  • a corresponding reference pixel unit in the reference image may be determined in a similar manner to the pixel unit i described above.
  • the calculating, by using the motion vector of each of the P pixel units, the integer pixel position of each of the P pixel units comprises:
  • the M log 2 N, (xInt, yInt) represents the integer pixel position coordinates of the pixel unit of the current image block with coordinates (x, y), the v Nx representation a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block, the v Ny indicating a 1/N pixel of a pixel unit having a coordinate of (x, y) in the current image block Accurate motion vector vertical flat component.
  • the square in Figure 3-b represents the point at which the current position is adjacent to the entire pixel location, and the triangle represents the sub-pixel point.
  • the video encoding apparatus performs interpolation filtering on pixels of the corresponding reference pixel unit in the reference image by using an interpolation filter with a phase number Q to obtain the P pixel units.
  • Q is an integer greater than the n.
  • the value of the N may be a preset fixed-size value, and the Q may be greater than or equal to the N.
  • the value of N may be a preset fixed-size value, indicating that the motion vector of the P image unit of the current image block is obtained by using a motion model and a motion vector of the W control points, There is no necessary relationship with the size of the current image block. That is to say, based on the scheme of the present embodiment, for example, it is possible to obtain a preset fixed-precision pixel prediction value without performing an intermediate process of obtaining a low-precision pixel prediction value by low-precision interpolation filtering.
  • the W can be equal to 2, 3, 4, 5, 6, 8, or other values.
  • the P can be equal to 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64 or other values.
  • the Q can be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 or other values.
  • the N can be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 or other values.
  • n can be equal to 8, 2, 4 or other values.
  • the N may be an integer power of 2, and of course the N may be other positive integers.
  • the interpolating filter having a phase number Q is used to perform interpolation filtering on pixels of the corresponding reference pixel unit in the reference image for each of the P pixel units, including :
  • the phase of the pixel unit i can be calculated by using the motion vector of the pixel unit i in the P pixel units, and the interpolation filter corresponding to the phase number of the pixel unit i is determined based on the phase of the pixel unit i.
  • the filter coefficients used by the interpolation filter correspond to the phases; and the pixels of the corresponding reference pixel units in the reference image are interpolated by the interpolation filter of the phase number Q corresponding to the determined pixel unit i.
  • the pixel unit i may be any one of the P pixel units.
  • interpolation filtering can be performed in a similar manner to the pixel unit i described above.
  • calculating a phase of each of the P pixel units by using a motion vector of each of the P pixel units includes: using the following formula Calculating a phase of each of the P pixel units by a motion vector of each of the P pixel units,
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of a motion vector of 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block.
  • the phase includes a horizontal phase and a vertical phase, wherein the determining, based on the phase of each of the pixel units, an interpolation of a phase number of the corresponding pixel unit is Q
  • the filter includes: a horizontal interpolation filter that determines a phase number of the corresponding pixel unit as Q based on a horizontal phase of each of the pixel units, and determines a phase number of the corresponding pixel unit as Q based on a vertical phase of each of the pixel units Vertical interpolation filter, wherein the horizontal interpolation filter is used A filter coefficient corresponds to the horizontal phase, wherein the vertical interpolation filter uses a filter coefficient corresponding to the vertical phase.
  • a horizontal interpolation filter whose phase number of the pixel unit i is Q may be determined based on the horizontal phase of the pixel unit i, and vertical interpolation filtering of the pixel number of the pixel unit i is determined based on the vertical phase of the pixel unit i
  • the filter coefficients used by the horizontal interpolation filter correspond to the horizontal phase of the pixel unit i
  • the filter coefficients used by the vertical interpolation filter correspond to the vertical phase of the pixel unit i.
  • the pixel unit i may be any one of the P pixel units.
  • an interpolation filter having a phase number Q can be determined in a similar manner to the pixel unit i described above.
  • the determining, by using the determined interpolation coefficient of the number of phases corresponding to each pixel unit, is a corresponding reference pixel unit of the corresponding pixel unit in the reference image.
  • the pixels are interpolated and filtered, including:
  • the pixel prediction value of the pixel unit can be obtained by performing one interpolation filtering on the pixel of the reference pixel unit of the pixel unit.
  • the video encoding apparatus may predict, by using an original pixel value of P pixel units of the current image block and a pixel value of the P pixel units, a prediction residual of the current image block.
  • Video coding device can present the current picture The prediction residual of the block is written to the video stream.
  • the video encoding apparatus calculates the 1/n pixel precision motion vector of the W control points by using the motion model, and calculates 1/1 of each pixel unit of the current image block.
  • N-precision motion vector, N is greater than n, that is, the calculated motion vector of each pixel unit of the current image block is higher than the determined motion vector of the W control points. Precision.
  • a higher precision motion vector of each pixel unit of the current image block is used to determine a corresponding reference pixel unit of each pixel unit of the current image block in the reference image, utilizing An interpolation filter having a phase number Q (Q greater than n) performs interpolation filtering on pixels of corresponding pixel units of the reference image unit in each pixel unit of the current image block to obtain pixels of each pixel unit of the current image block.
  • FIG. 4 is a schematic flowchart diagram of another image prediction method according to another embodiment of the present invention.
  • another image prediction method provided by another embodiment of the present invention may include:
  • the video decoding device determines W control points in the current image block.
  • the video decoding device determines a motion vector of the W control points.
  • the determining, by the video decoding device, the motion vector of the W control points may include: determining a set of candidate motion information units corresponding to each of the W control points; wherein each of the control points corresponds to The candidate motion information unit includes at least one motion information unit of the candidate; determining a combined motion information unit set e including the W motion information units, wherein each of the motion information unit sets e is selected from the At least part of the motion information unit in the candidate motion information unit set corresponding to each of the W control points, each merged motion information unit in the merged motion information unit set e includes a motion vector;
  • the W motion vectors in the information unit set e perform prediction or motion estimation to obtain motion vectors of the W control points, or the merge
  • the W motion vectors included in the motion information unit set e are the motion vectors of the W control points.
  • the accuracy of each motion vector in the candidate motion information unit set may be 1/n pixel precision.
  • the video decoding device calculates a motion vector of P pixel units of the current image block by using a motion model and a motion vector of the W control points.
  • P is a positive integer
  • W and the N are integers greater than 1.
  • the P pixel units are part or all of the pixel units of the current image block.
  • the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image. Therefore, the motion vector of each of the P pixel units can be utilized to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image.
  • the accuracy of the determined motion vectors of the W control points is 1/n pixel precision.
  • the accuracy of the motion vector of each of the P pixel units calculated is 1/N pixel precision.
  • W, the n and the N are integers greater than one.
  • the N is greater than the n.
  • the P is a positive integer.
  • N is greater than n, the accuracy of the calculated motion vector of each of the P pixel units is higher than the accuracy of the determined motion vectors of the W control points. That is, a relatively high-precision motion vector of P pixel units of the current image block is obtained.
  • the motion vector of the W control points is predicted from a motion vector of the coded image block or the decoded image block around the current image block with a precision of 1/n pixel precision.
  • n is a positive integer and the n is less than the N.
  • the accuracy of the predicted value is also 1/n pixel precision, and the motion vector of the control point of 1/n pixel precision can be used.
  • the difference from the corresponding predicted value is written into the code stream.
  • the motion model may be, for example, a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shear motion model, a scale motion model, a perspective motion model, or Bilinear motion models, etc.
  • the motion model may be expressed, for example, if the W is equal to 2:
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the motion model may be expressed as:
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the above example is illustrated by using an affine motion model as an example, for using a translational motion model, a rotational motion model, a shear motion model, a scaled motion model, a perspective motion model, a parabolic motion model, or a bilinear motion.
  • the case of the model, etc. can be based on the corresponding motion model and so on, and will not be described here.
  • the video decoding device determines, by using a motion vector of each of the P pixel units, a corresponding reference pixel unit in each of the P pixel units in a reference image.
  • determining, by using a motion vector of each of the P pixel units, each of the P pixel units in a reference image may include: calculating an integer pixel position of each of the P pixel units by using a motion vector of each of the P pixel units; using the P pixel units a motion vector of each of the pixel units, in the reference image, a reference pixel unit corresponding to an integer pixel position of each of the P pixel units, wherein the referenced image is found in the reference image
  • a reference pixel unit corresponding to an integer pixel position of each of the P pixel units is a reference pixel unit in the reference image for each of the P pixel units.
  • the entire pixel position of the pixel unit i can be calculated by using the motion vector of the pixel unit i in the P pixel units; and the whole of the pixel unit i is searched in the reference image by using the motion vector of the pixel unit i.
  • a reference pixel unit corresponding to the pixel position wherein the reference pixel unit corresponding to the integer pixel position of the pixel unit i found in the reference image is the reference pixel unit of the pixel unit i in the reference image.
  • the pixel unit i may be any one of the P pixel units.
  • a corresponding reference pixel unit in the reference image may be determined in a similar manner to the pixel unit i described above.
  • the calculating, by using the motion vector of each of the P pixel units, the integer pixel position of each of the P pixel units comprises:
  • the M log 2 N, (xInt, yInt) represents the integer pixel position coordinates of the pixel unit of the current image block with coordinates (x, y), the v Nx representation a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block, the v Ny indicating a 1/N pixel of a pixel unit having a coordinate of (x, y) in the current image block Accurate motion vector vertical flat component.
  • the video decoding device performs interpolation filtering on pixels of the reference pixel unit in the reference image by using an interpolation filter with a phase number Q, to obtain the P pixel units.
  • Q is an integer greater than the n.
  • the value of the N may be a preset fixed-size value, and the Q may be greater than or equal to the N.
  • the value of N may be a preset fixed-size value, indicating that the motion vector of the P image unit of the current image block is obtained by using a motion model and a motion vector of the W control points, There is no necessary relationship with the size of the current image block. That is to say, based on the scheme of the present embodiment, for example, it is possible to obtain a preset fixed-precision pixel prediction value without performing an intermediate process of obtaining a low-precision pixel prediction value by low-precision interpolation filtering.
  • the W can be equal to 2, 3, 4, 5, 6, 8, or other values.
  • the P can be equal to 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64 or other values.
  • the Q can be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 or other values.
  • the N can be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 or other values.
  • n can be equal to 8, 2, 4 or other values.
  • the N may be an integer power of 2, and of course the N may be other positive integers.
  • the interpolating filter having a phase number Q is used to perform interpolation filtering on pixels of the corresponding reference pixel unit in the reference image for each of the P pixel units, including :
  • the phase of the pixel unit i can be calculated by using the motion vector of the pixel unit i in the P pixel units, and the interpolation filter corresponding to the phase number of the pixel unit i is determined based on the phase of the pixel unit i.
  • the filter coefficients used by the interpolation filter correspond to the phases; and the pixels of the corresponding reference pixel units in the reference image are interpolated by the interpolation filter of the phase number Q corresponding to the determined pixel unit i.
  • the pixel unit i may be any one of the P pixel units.
  • interpolation filtering can be performed in a similar manner to the pixel unit i described above.
  • calculating a phase of each of the P pixel units by using a motion vector of each of the P pixel units includes: using the following formula Calculating a phase of each of the P pixel units by a motion vector of each of the P pixel units,
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of a motion vector of 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block.
  • the phase includes a horizontal phase and a vertical a straight phase
  • the determining, based on the phase of the each pixel unit, an interpolation filter having a phase number Q of the corresponding pixel unit comprising: determining a phase number of the corresponding pixel unit based on a horizontal phase of each of the pixel units a horizontal interpolation filter of Q, a vertical interpolation filter determining a phase number of the corresponding pixel unit as Q based on a vertical phase of each of the pixel units, wherein the horizontal interpolation filter uses a filter coefficient and the level Phase correspondence, wherein the vertical interpolation filter uses filter coefficients corresponding to the vertical phase.
  • a horizontal interpolation filter whose phase number of the pixel unit i is Q may be determined based on the horizontal phase of the pixel unit i, and vertical interpolation filtering of the pixel number of the pixel unit i is determined based on the vertical phase of the pixel unit i
  • the filter coefficients used by the horizontal interpolation filter correspond to the horizontal phase of the pixel unit i
  • the filter coefficients used by the vertical interpolation filter correspond to the vertical phase of the pixel unit i.
  • the pixel unit i may be any one of the P pixel units.
  • an interpolation filter having a phase number Q can be determined in a similar manner to the pixel unit i described above.
  • the determining, by using the determined interpolation coefficient of the number of phases corresponding to each pixel unit, is a corresponding reference pixel unit of the corresponding pixel unit in the reference image.
  • the pixels are interpolated and filtered, including:
  • phase of the pixel unit is single phase (ie, only horizontal phase or vertical phase)
  • performing pixel interpolation on the pixels of the reference pixel unit of the pixel unit can obtain the pixel prediction value of the pixel unit.
  • the video decoding apparatus reconstructs the current image block by using the predicted pixel value of the current image block and the prediction residual of the current image block in the video code stream.
  • the video decoding device calculates the 1/n pixel precision motion vector of the W control points by using the motion model, and calculates 1/1 of each pixel unit of the current image block.
  • N-precision motion vector, N is greater than n, that is, the calculated motion vector of each pixel unit of the current image block is higher than the determined motion vector of the W control points. Precision.
  • a higher precision motion vector of each pixel unit of the current image block is used to determine a corresponding reference pixel unit of each pixel unit of the current image block in the reference image, utilizing An interpolation filter having a phase number Q (Q greater than n) performs interpolation filtering on pixels of corresponding pixel units of the reference image unit in each pixel unit of the current image block to obtain pixels of each pixel unit of the current image block.
  • the determining the merged motion information unit set e including the W motion information units may include: determining, from among the A candidate motion information unit sets, a combined motion information unit set e including W motion information units; Each motion information unit included in each candidate merged motion information unit set in the set of candidate motion information units is selected from a candidate motion information unit set corresponding to each of the W control points. At least part of the motion information unit that meets the constraint, the A is a positive integer, wherein the set of A candidate motion information units are different from each other, and each candidate combined motion information in the A candidate motion information unit set The unit set includes W motion information units.
  • the A candidate combined motion information units The set satisfies at least one of the first condition, the second condition, the third condition, the fourth condition, and the fifth condition,
  • the first condition includes that the motion mode of the current image block indicated by the motion information unit in any one of the candidate motion information unit sets in the A candidate motion information unit set is a non-translation motion.
  • the second condition includes that the two motion information units in the one candidate motion information unit set in the A candidate combined motion information unit set have the same prediction direction.
  • the third condition includes that the reference frame indexes corresponding to the two motion information units in any one of the candidate motion information unit sets in the A candidate combined motion information unit set are the same.
  • the fourth condition includes that an absolute value of a difference value of motion vector horizontal components of two motion information units in any one of the candidate motion information unit sets in the A candidate motion information unit set is less than or equal to a horizontal component threshold, or And an absolute value of a difference between a motion information unit of one of the candidate motion information unit sets and a motion vector horizontal component of the control point Z in the set of candidate motion information units is less than or equal to a horizontal component threshold.
  • the control point Z of the current image block is different from any one of the W control points.
  • the fifth condition includes that the absolute value of the difference between the motion vector vertical components of the two motion information units in any one of the candidate motion information unit sets in the A candidate motion information unit set is less than or equal to the vertical component threshold. Or the absolute value of the difference between any one of the motion information unit of one of the candidate motion information unit sets and the motion vector vertical component of the control point Z is less than or equal to A horizontal component threshold, the control point Z of the current image block being different from any one of the W control points.
  • the determining, by the video encoding apparatus, the merged motion information unit set e including the W motion information units from among the A candidate motion information unit sets may include: based on a distortion or a rate The distortion cost determines a combined motion information unit set e including W motion vectors from among the A candidate motion information unit sets.
  • the rate distortion cost corresponding to the merged motion information unit set e is less than or equal to the rate distortion cost corresponding to any one of the combined motion information unit sets except the combined motion information unit set e in the foregoing A candidate combined motion information unit sets.
  • the distortion corresponding to the combined motion information unit set e is less than or equal to the distortion corresponding to any one of the combined motion information unit sets except the combined motion information unit set e in the A candidate motion information unit set.
  • the rate-distortion cost corresponding to a certain candidate combined motion information unit set may be, for example, utilized.
  • the distortion corresponding to a certain candidate combined motion information unit set (for example, the combined motion information unit set e in the A candidate motion information unit set) in the foregoing A candidate combined motion information unit set, for example, may be an image block.
  • Distortion ie, distortion between the original pixel value of the image block and the predicted pixel value.
  • the original pixel value of the image block (such as the current image block) and the pixel value prediction of the image block by using the certain candidate combined motion information unit set (for example, the merged motion information unit set e)
  • the resulting distortion between the predicted pixel values of the image block may be, for example, the original pixel value of the image block (eg, the current image block) and the set of combined motion information units using the certain candidate (eg, the combined motion information unit set) e) a squared error sum (SSD) or absolute error sum (SAD) or error between the predicted pixel values of the image block resulting from pixel value prediction for the image block and or other distortion parameters capable of measuring distortion.
  • SSD squared error sum
  • SAD absolute error sum
  • the W control points include an upper left control point, an upper right control point, a lower left control point, and one of the W control points in the central control point a1 of the current image block.
  • the upper left control point of the current image block is an upper left vertex of the current image block or a pixel block in the current image block that includes an upper left vertex of the current image block; a lower left control point of the current image block Is included in the lower left vertex of the current image block or in the current image block a pixel block of a lower left vertex of the front image block; an upper right control point of the current image block is an upper right vertex of the current image block or a pixel block of the current image block including an upper right vertex of the current image block;
  • the central prime sample a1 of the current image block is a central pixel of the current image block or a pixel block of the current image block that includes a central pixel of the current image block.
  • the set of candidate motion information units corresponding to the upper left control point of the current image block includes motion information units of x1 pixel units, where the x1 pixel units include At least one pixel unit adjacent to an upper left control point space of the current image block (eg, graphics blocks A, B, and C in FIG. 2-b) and/or at least one upper left control point of the current image block The pixel unit adjacent to the domain, the x1 being a positive integer.
  • the x1 pixel unit may include a pixel unit having the same position as an upper left control point of the current image block among video frames adjacent to a time domain of a video frame to which the current image block belongs, the current image At least one of a spatially adjacent pixel unit on the left side of the block, a spatially adjacent pixel unit on the upper left of the current image block, and a spatially adjacent pixel unit on the upper side of the current image block.
  • the candidate motion information unit set corresponding to the upper right control point of the current image block includes motion information units of x2 pixel units, where the x2 pixel units include At least one pixel unit adjacent to an upper right control point spatial domain of the current image block (eg, graphics blocks E and D in FIG. 2-b, etc.) and/or at least one upper right control point time domain of the current image block Adjacent pixel units, wherein the x2 is a positive integer.
  • the x2 pixel unit may include a pixel unit that is the same as an upper right control point position of the current image block among video frames adjacent to a video frame time domain to which the current image block belongs, the current image At least one of a spatially adjacent pixel unit on the right side of the block, a spatially adjacent pixel unit on the upper right of the current image block, and a spatially adjacent pixel unit on the upper side of the current image block.
  • the set of candidate motion information units corresponding to the lower left control point of the current image block includes motion information units of x3 pixel units, wherein the x3 pixel units include at least one spatial domain of the lower left control point of the current image block.
  • the x3 pixel units may include a time domain adjacent to a video frame to which the current image block belongs Among the video frames, the same pixel unit as the lower left control point of the current image block, the left spatial adjacent pixel unit of the current image block, the lower left spatial adjacent pixel unit of the current image block, and At least one of the spatially adjacent pixel units of the lower side of the current image block.
  • the set of candidate motion information units corresponding to the central control point a1 of the current image block includes motion information units of x5 pixel units, where the x5 pixel units are One of the pixel units is the pixel unit a2.
  • the position of the central control point a1 in the video frame to which the current image block belongs is the same as the position of the pixel unit a2 in the adjacent video frame of the video frame to which the current image block belongs, and the x5 is A positive integer.
  • Table 1 exemplifies the correspondence between the filter coefficients of the 64-phase interpolation filter whose gain scaling factor is 256 and the phase of the pixel unit.
  • Table 2 exemplifies the correspondence between the filter coefficients of the 64-phase interpolation filter whose gain scaling factor is 64 and the pixel unit phase.
  • Phase Filter coefficient 0 ⁇ 0,0,0,64,0,0,0,0 ⁇
  • the horizontal interpolation filtering result S can be expressed as follows:
  • the filtered result S can be interpolated to obtain a predicted pixel value of the pixel unit, wherein the offset can be any integer.
  • Tables 3 and 4 give a comparison of some test performances of the conventional scheme and the scheme of the embodiment of the present invention.
  • Table 3 gives the test performance of the conventional scheme
  • Table 4 gives the test performance of the scheme of some embodiments of the present invention.
  • an embodiment of the present invention provides an image prediction apparatus 500, which may include: a first determining unit 510, a calculating unit 520, and an interpolation filtering unit 540.
  • the first determining unit 510 is configured to determine motion vectors of W control points in the current image block.
  • a calculating unit 520 configured to calculate, by using a motion model and a motion vector of the W control points, a motion vector of P pixel units of the current image block, where the determined motion vector of the W control points
  • the accuracy is 1/n pixel precision
  • the calculated accuracy of the motion vector of each of the P pixel units is 1/N pixel precision
  • the P pixel units are the current image block.
  • the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image, wherein the W, the n, and the N are greater than 1.
  • the interpolation filtering unit 540 is configured to perform interpolation filtering on pixels of the reference pixel unit in the reference image for each of the P pixel units by using an interpolation filter with a phase number Q to obtain the P pixels.
  • the pixel prediction value for each pixel unit in the cell is configured to perform interpolation filtering on pixels of the reference pixel unit in the reference image for each of the P pixel units by using an interpolation filter with a phase number Q to obtain the P pixels.
  • the pixel prediction value for each pixel unit in the cell is configured to perform interpolation filtering on pixels of the reference pixel unit in the reference image for each of the P pixel units by using an interpolation filter with a phase number Q to obtain the P pixels.
  • the image prediction apparatus 500 may further include: a second determining unit 530, configured to determine, by using a motion vector of each of the P pixel units, each of the P pixel units The corresponding reference pixel unit in the reference image.
  • a second determining unit 530 configured to determine, by using a motion vector of each of the P pixel units, each of the P pixel units The corresponding reference pixel unit in the reference image.
  • the value of the N is a preset fixed size value, and the Q is less than or equal to the N.
  • the horizontal component or the vertical component of one of the motion vectors of the W control points is amplified by N times in the motion model by using the N Or using the N to multiply the motion vector component difference of any two of the W control points by N times in the motion model.
  • the second determining unit 530 is specifically configured to: calculate, by using motion vectors of each of the P pixel units, an integer pixel position of each of the P pixel units; a motion vector of each of the pixel units, in the reference image, a reference pixel unit corresponding to an integer pixel position of each of the P pixel units, wherein the reference pixel is found in the reference image
  • a reference pixel unit corresponding to an integer pixel position of each of the P pixel units is a reference pixel unit in a reference image of each of the P pixel units.
  • the second determining unit 530 is specifically configured to:
  • the interpolation filtering unit is specifically configured to calculate a phase of each of the P pixel units by using a motion vector of each of the P pixel units, based on each of the pixel units
  • the phase determines an interpolation filter whose phase number of the corresponding pixel unit is Q, the interpolation filter corresponding to the phase using a filter coefficient; and an interpolation filter using the determined phase number corresponding to each pixel unit as Q And performing interpolation filtering on pixels of corresponding reference pixel units in the reference image of the corresponding pixel unit.
  • the interpolation filtering unit is specifically configured to calculate a phase of each of the P pixel units by using a motion vector of each of the P pixel units according to a formula
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of a motion vector of 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block.
  • the phase includes a horizontal phase and a vertical phase
  • the interpolation filtering unit is specifically configured to determine a corresponding pixel based on a horizontal phase of each of the pixel units a horizontal interpolation filter whose number of phases is Q, a vertical interpolation filter whose phase number of the corresponding pixel unit is Q is determined based on the vertical phase of each pixel unit, and filter coefficients used by the horizontal interpolation filter Corresponding to the horizontal phase, the vertical interpolation filter uses filter coefficients corresponding to the vertical phase.
  • each of the determined The interpolation filter corresponding to the pixel number corresponding to the pixel unit performs interpolation filtering on the pixels of the corresponding reference pixel unit in the reference image, and the interpolation filtering unit is specifically configured to:
  • the motion model is a translational motion model, an affine motion model, a rotational motion model, a scaling motion model, a parabolic motion model, a shear motion model, and a perspective motion model.
  • bilinear motion model is a translational motion model, an affine motion model, a rotational motion model, a scaling motion model, a parabolic motion model, a shear motion model, and a perspective motion model.
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the motion vector of the W control points is predicted to be 1/n pixel precision from the coded image block or the decoded image block in the periphery of the current image block. Sport vector.
  • the image prediction apparatus 500 is applied to a video encoding apparatus or the image prediction apparatus 500 is applied to a video decoding apparatus.
  • the image prediction device 600 can be any need to output and play video Devices such as laptops, tablets, personal computers, mobile phones, etc.
  • the image prediction apparatus 500 calculates the pixel unit of the current image block by using the motion model and the motion vector of the 1/n pixel precision of the W control points.
  • a motion vector of 1/N pixel precision, N is greater than n, that is, the calculated accuracy of the motion vector of each pixel unit of the current image block is higher than the determined W control points. The accuracy of the motion vector.
  • a higher precision motion vector of each pixel unit of the current image block is used to determine a corresponding reference pixel unit of each pixel unit of the current image block in the reference image, utilizing An interpolation filter having a phase number Q (Q greater than n) performs interpolation filtering on pixels of corresponding pixel units of the reference image unit in each pixel unit of the current image block to obtain pixels of each pixel unit of the current image block.
  • FIG. 6 is a structural block diagram of an image prediction apparatus 600 according to another embodiment of the present invention.
  • the image prediction apparatus 600 may include at least one processor 601, a memory 605, and at least one communication bus 602. Among them, the communication bus 602 is used to implement connection communication between these components.
  • the image prediction device 600 may optionally include at least one network interface 604 and/or a user interface 603, and the user interface 603 may include a display (eg, Holographic, cathode ray tube, or Projector). Click on a device (such as a mouse or trackball touchpad or touch screen, etc.), a camera and/or a pickup, and the like.
  • a display eg, Holographic, cathode ray tube, or Projector
  • Click on a device such as a mouse or trackball touchpad or touch screen, etc.
  • a camera and/or a pickup and the like.
  • the memory 605 can include read only memory and random access memory and provides instructions and data to the processor 601.
  • a portion of the memory 605 may also include a non-volatile random access memory.
  • the memory 605 stores the following elements, executable modules or data structures, or a subset thereof, or their extension set:
  • the operating system 6051 includes various system programs for implementing various basic services and processing hardware-based tasks.
  • the application module 6052 includes various applications for implementing various application services.
  • the processor 601 is configured to determine a motion vector of W control points in the current image block by calling a program or instruction stored in the memory 605; using the motion model and the motion of the W control points Calculating a motion vector of P pixel units of the current image block, the determined motion vector of the W control points has a precision of 1/n pixel precision, and the calculated P pixel units
  • the accuracy of the motion vector of each of the pixel units is 1/N pixel precision, the P pixel units being part or all of the pixel units of the current image block, and each of the P pixel units
  • the motion vector is used to determine a corresponding reference pixel unit of the corresponding pixel unit in the reference image, wherein the W, the n, and the N are integers greater than 1, the N is greater than the n, and the P is positive
  • the value of the N is a preset fixed size value, and the Q is less than or equal to the N.
  • the horizontal component or the vertical component of one of the motion vectors of the W control points is amplified by N times in the motion model by using the N Or using the N to multiply the motion vector component difference of any two of the W control points by N times in the motion model.
  • the processor determines, by using a motion vector of each of the P pixel units, each of the P pixel units in a reference image.
  • the reference pixel unit includes:
  • a reference pixel unit corresponding to an entire pixel position of the pixel unit is a reference pixel unit in the reference image for each of the P pixel units.
  • the processor calculates, by using motion vectors of each of the P pixel units, each of the P pixel units.
  • the entire pixel location includes:
  • the processor performs, by using an interpolation filter with a phase number Q, a pixel of the reference pixel unit in the reference image for each of the P pixel units.
  • Interpolation filtering including:
  • the processor calculates a phase of each of the P pixel units by using a motion vector of each of the P pixel units.
  • the method includes: calculating, by using a motion vector of each of the P pixel units, a phase of each of the P pixel units according to a formula,
  • the M log 2 N
  • the X′ represents a horizontal phase of a pixel unit whose coordinates are (x, y) in the current image block
  • the Y′ Representing a vertical phase of a pixel unit having coordinates (x, y) in a current image block
  • the v Nx represents a motion vector of 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny represents a vertical vector component of the motion vector of 1/N pixel precision of the pixel unit of coordinates (x, y) in the current image block.
  • the phase includes a horizontal phase and a vertical phase
  • the processor determines, according to a phase of the each pixel unit, an interpolation of a phase number of the corresponding pixel unit to Q.
  • the filter includes: a horizontal interpolation filter that determines a phase number of the corresponding pixel unit as Q based on a horizontal phase of each of the pixel units, and determines a phase number of the corresponding pixel unit as Q based on a vertical phase of each of the pixel units
  • a vertical interpolation filter wherein a filter coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, wherein a filter coefficient used by the vertical interpolation filter corresponds to the vertical phase.
  • the processor uses the determined interpolation filter of the number of phases corresponding to each of the pixel units to be a corresponding reference pixel unit of the corresponding pixel unit in the reference image.
  • the pixels are interpolated and filtered, including:
  • the motion model is a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shear motion model, a scale motion model, and a perspective motion model.
  • bilinear motion model is a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shear motion model, a scale motion model, and a perspective motion model.
  • the L represents the width or height of the current image block
  • (v 0x , v 0y ) and (v 1x , v 1y ) represent motion vectors of 1/n pixel precision of 2 control points
  • the v Nx A motion vector horizontal component representing a 1/N pixel precision of a pixel unit having coordinates (x, y) in the current image block
  • the v Ny indicating 1/N of a pixel unit having coordinates (x, y) in the current image block Pixel-accurate motion vector vertical flat component.
  • the V Nx represents a motion vector horizontal component of a 1/N pixel precision of a pixel unit having a coordinate of (x, y) in the current image block
  • the v Ny represents that the coordinate in the current image block is (x, y)
  • the vertical vector component of the motion vector of 1/N pixel precision of the pixel unit, (v 0x , v 0y ), (v 1x , v 1y ) and (v 2x , v 2y ) represent the 1/n pixel precision of the three control points Motion vector
  • the w represents the width of the current image block
  • h represents the height of the current image block.
  • the motion vector of the W control points is predicted to be 1/n pixel precision from the coded image block or the decoded image block in the periphery of the current image block. Sport vector.
  • the value of the N is a preset fixed value.
  • the image prediction apparatus 600 is applied to a video encoding apparatus or the image prediction apparatus 600 is applied to a video decoding apparatus.
  • the image prediction device 600 can be any device that needs to output and play video, such as a notebook computer, a tablet computer, a personal computer, a mobile phone, and the like.
  • the image prediction apparatus 600 calculates the pixel unit of the current image block by using the motion model and the motion vector of the 1/n pixel precision of the W control points.
  • a motion vector of 1/N pixel precision, N is greater than n, that is, the calculated accuracy of the motion vector of each pixel unit of the current image block is higher than the determined W control points. The accuracy of the motion vector.
  • a higher precision motion vector of each pixel unit of the current image block is used to determine a corresponding reference pixel unit of each pixel unit of the current image block in the reference image, utilizing An interpolation filter having a phase number Q (Q greater than n) performs interpolation filtering on pixels of corresponding pixel units of the reference image unit in each pixel unit of the current image block to obtain pixels of each pixel unit of the current image block.
  • the disclosed device may be It's way to achieve it.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or may be Integrate into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be electrical or otherwise.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • the technical solution of the present invention which is essential or contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic disk, or an optical disk, and the like. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

图像预测方法和相关装置。一种图像预测方法包括确定当前图像块中的W个控制点的运动矢量;利用运动模型和W个控制点的运动矢量计算得到当前图像块的P个像素单元的运动矢量,确定的W个控制点的运动矢量的精度为1/n像素精度,计算得到的P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,P个像素单元为当前图像块的部分或全部像素单元,N大于n;利用相位数为Q的插值滤波器对P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到P个像素单元中的每个像素单元的像素预测值,Q大于n。本发明实施例提供技术方案有利于降低图像预测过程的计算复杂度。

Description

图像预测方法和相关设备 技术领域
本发明涉及视频编码和视频解码领域,具体涉及一种图像预测方法和相关设备。
背景技术
随着光电采集技术的发展及不断增长的高清数字视频需求,视频数据量越来越大,有限异构的传输带宽、多样化的视频应用不断地对视频编码效率提出了更高的需求,高性能视频编码(英文:high efficient video coding,缩写:HEVC)标准的制定工作因需启动。
视频编码压缩的基本原理是利用空域、时域和码字之间的相关性,尽可能去除冗余。目前流行做法是采用基于块的混合视频编码框架,通过预测(包括帧内预测和帧间预测)、变换、量化、熵编码等步骤实现视频编码压缩。这种编码框架,显示了很强的生命力,HEVC也仍沿用这种基于块的混合视频编码框架。
在各种视频编/解码方案中,运动估计/运动补偿是一种影响编/解码性能的关键技术。其中,现有很多视频编/解码方案中,一般假设物体的运动是满足平动运动,整个物体的各个部分有相同的运动。现有的运动估计/运动补偿算法基本都是建立在平动运动模型(英文:translational motion model)的基础上的块运动补偿算法。现有帧间预测主要采用基于平动运动模型的基于块的运动补偿预测(英文:motion compensation)。针对非平动运动设计的一些非平动运动模型(例如彷射运动模型)也在逐步提出。
在基于彷射运动模型进行预测的机制中,现有技术利用当前图像块的2个控制点的低精度运动矢量和彷射运动模型进行像素值预测可获得当前图像块的低精度的像素预测值,上述像素值预测的过程中需要利用插值滤波器执行插值滤波操作,这次获得的当前图像块的像素预测值的精度与2个控制点的运动矢量的精度相同。若需获得当前图像块的更高精度的像素预测值,还需要进一步的利用双线性插值滤波器来对已获得的当前图像块的较低精度像素预测值 进行二次插值滤波。
由于现有技术中若利用2个控制点的低精度运动矢量和彷射运动模型来获得当前图像块的高精度像素预测值,那么其间就需要经过至少两步的插值滤波操作(每步插值滤波操作所需中间缓存和内存操作次数都比较多),这使得整体图像预测过程所需中间缓存和内存操作次数可能相对多,计算复杂度变得相对较高。
发明内容
本发明实施例提供应图像预测方法和相关设备,以期能够降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,降低图像预测过程的计算复杂度。
本发明实施例第一方面提供一种图像预测方法,包括:
确定当前图像块中的W个控制点的运动矢量;
利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,其中,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;
利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,所述Q为大于所述n的整数。
结合第一方面,在第一方面的第一种可能的实施方式中,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N 倍。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,包括:
利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位包括:按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
结合第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,所述相位包括水平相位和竖直相位,其中,所述基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,包括:基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应 像素单元的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,其中,所述竖直插值滤波器使用的滤波器系数与所述竖直相位对应。
结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波,包括:
利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,
利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
结合第一方面或第一方面的第一种至六种可能的实施方式中的任意一种可能的实施方式,在第一方面的第七种可能的实施方式中,
所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、抛物线运动模型、剪切运动模型、缩放运动模型、透视运动模型或双线性运动模型。
结合第一方面或第一方面的第一种至七种可能的实施方式中的任意一种可能的实施方式,在第一方面的第八种可能的实施方式中,在所述W等于2的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000001
或,
Figure PCTCN2016087750-appb-000002
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
结合第一方面或第一方面的第一种至七种可能的实施方式中的任意一种可能的实施方式,在第一方面的第九种可能的实施方式中,在所述W等于3的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000003
或,
Figure PCTCN2016087750-appb-000004
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
结合第一方面或第一方面的第一种至九种可能的实施方式中的任意一种可能的实施方式,在第一方面的第十种可能的实施方式中,所述W个控制点的 运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
结合第一方面或第一方面的第一种至十种可能的实施方式中的任意一种可能的实施方式,在第一方面的第十一种可能的实施方式中,所述图像预测方法应用于视频编码过程中或应用于视频解码过程中。
本发明实施例第二方面提供一种图像预测装置,包括:
第一确定单元,用于确定当前图像块中的W个控制点的运动矢量;
计算单元,用于利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;
插值滤波单元,用于利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,所述Q为大于所述n的整数。
结合第二方面,在第二方面的第一种可能的实施方式中,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述插值滤波单元具体用于,利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所 述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器,对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,在利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位的方面,所述插值滤波单元具体用于按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
结合第二方面的第三种可能的实施方式或第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述相位包括水平相位和竖直相位,其中,在基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器的方面,所述插值滤波单元具体用于,基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,所述竖直插值滤波器使用的滤波器系数与所述竖直相位对应。
结合第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,在所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波的方 面,所述插值滤波单元具体用于,利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,所述插值滤波单元具体用于,利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
结合第二方面或第二方面的第一种至六种可能的实施方式中的任意一种可能的实施方式,在第二方面的第七种可能的实施方式中,
所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、缩放运动模型、抛物线运动模型、剪切运动模型、透视运动模型或双线性运动模型。
结合第二方面或第二方面的第一种至七种可能的实施方式中的任意一种可能的实施方式,在第二方面的第八种可能的实施方式中,在所述W等于2的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000005
或,
Figure PCTCN2016087750-appb-000006
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控 制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
结合第二方面或第二方面的第一种至七种可能的实施方式中的任意一种可能的实施方式,在第二方面的第九种可能的实施方式中,在所述W等于3的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000007
或,
Figure PCTCN2016087750-appb-000008
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
结合第二方面或第二方面的第一种至九种可能的实施方式中的任意一种可能的实施方式,在第二方面的第十种可能的实施方式中,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
结合第二方面或第二方面的第一种至十种可能的实施方式中的任意一种可能的实施方式,在第二方面的第十一种可能的实施方式中,所述图像预测装 置应用于视频编码装置中或者所述图像预测装置应用于视频解码装置中。
本发明实施例还提供一种图像预测装置,包括:处理器和存储器。图像预测装置例如还可包括网络接口。其中,所述存储器用于存储指令,所述处理器用于执行所述指令,所述网络接口用于在所述处理器的控制下与其他设备进行通信。
例如处理器,用于确定当前图像块中的W个控制点的运动矢量;利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,其中,所述Q为大于所述n的整数。
此外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于图像预测的程序代码。所述程序代码包括用于执行图像预测方法的指令。
可以看出,本发明实施例提供的图像预测方法中,利用运动模型和所述W个控制点的1/n像素精度的运动矢量,计算得到所述当前图像块的每个像素单元的1/N像素精度的运动矢量,N大于n,也就是说,计算得到的所述当前图像块的每个像素单元的运动矢量的精度,高于所述确定的所述W个控制点的运动矢量的精度。由于先得到了较高精度的运动矢量,当前图像块的每个像素单元的较高精度的运动矢量用于确定所述当前图像块的每个像素单元在参考图像中的对应参考像素单元,利用相位数为Q(Q大于n)的插值滤波器对所述当前图像块的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波以得到当前图像块的每个像素单元的像素预测值,可见通过上述方式有利于 减少预测获得当前图像块较高精度的像素预测值所需插值滤波的次数(例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程),进而有利于降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,进而有利于图像预测过程的计算复杂度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1-a~图1-b为本发明实施例提供的几种图像块的划分示意图;
图2-a为本发明实施例提供的一种图像预测方法的流程示意图;
图2-b为本发明实施例提供的一种控制点的运动矢量预测示意图;
图3-a为本发明实施例提供的另一种图像预测方法的流程示意图;
图3-b为本发明实施例提供的一种整像素位置和亚像素位置的示意图;
图4为本发明实施例提供的另一种图像预测方法的流程示意图;
图5为本发明实施例提供的一种图像预测装置的示意图;
图6为本发明实施例提供的另一种图像预测装置的示意图。
具体实施方式
本发明实施例提供应图像预测方法和相关设备,以期能够降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,降低图像预测过程的计算复杂度。
本发明说明书、权利要求书和附图中出现的术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面先对本发明实施例可能涉及的一些概念进行简单介绍。
在多数编码框架中,视频序列包括一系列图像(英文:picture),图像被进一步划分为切片(英文:slice),slice再被划分为块(英文:block)。视频编码以块为单位,可从picture的左上角位置开始从左到右从上到下一行一行进行编码处理。在一些新的视频编码标准中,block的概念被进一步扩展。在H.264标准中有宏块(英文:macroblock,缩写:MB),MB可进一步划分成多个可用于预测编码的预测块(英文:partition)。其中,在HEVC标准中,采用编码单元(英文:coding unit,缩写:CU),预测单元(英文:prediction unit,缩写:PU)和变换单元(英文:transform unit,缩写:TU)等基本概念,从功能上划分了多种Unit,并采用全新的基于树结构进行描述。比如CU可以按照四叉树进行划分为更小的CU,而更小的CU还可以继续划分,从而形成一种四叉树结构。对于PU和TU也有类似的树结构。无论CU,PU还是TU,本质上都属于块block的概念,CU类似于宏块MB或者编码块,是对编码图像进行划分和编码的基本单元。PU可以对应预测块,是预测编码的基本单元。对CU按照划分模式进一步划分成多个PU。TU可以对应变换块,是对预测残差进行变换的基本单元。高性能视频编码(英文:high efficiency video coding,缩写:HEVC)标准中则可以把它们统一称之为编码树块(英文:coding tree block,缩写:CTB)等等。
在HEVC标准中,编码单元的大小可包括64×64,32×32,16×16和8×8等四个级别,每个级别的编码单元按照帧内预测和帧间预测由可以划分为不同大小的预测单元。其中,例如图1-a和图1-b所示,图1-a举例示出了一种与帧内预测对应的预测单元划分方式,图1-b举例示出了几种与帧间预测对应的预测单元划分方式。
在视频编码技术发展演进过程中,视频编码专家们想了各种方法来利用相邻编解码块之间的时空相关性来努力提高编码效率。在H264/高级视频编码(英文:advanced video coding,缩写:AVC)标准中,跳过模式(skip mode)和直接模式(direct mode)成为提高编码效率的有效工具,在低码率时使用这两种编码模式的块能占到整个编码序列的一半以上。当使用跳过模式时,只需要 在码流中传递一个跳过模式标记,就可以利用周边运动矢量推导得到当前图像块的运动矢量,根据该运动矢量来直接的拷贝参考块的值作为当前图像块的重建值。此外,当使用直接模式时,编码器可以利用周边运动矢量推导得到当前图像块的运动矢量,根据该运动矢量直接拷贝参考块的值作为当前图像块的预测值,在编码端利用该预测值对当前图像块进行编码预测。目前最新的高性能视频编码(英文:high efficiency video coding,缩写:HEVC)标准中,通过引进一些新编码工具,进一步提高视频编码性能。融合编码(merge)模式和自适应运动矢量预测(英文:advanced motion vector prediction,缩写:AMVP)模式是两个重要的帧间预测工具。融合编码(merge)利用当前编码块周边已编码块的运动信息(包括运动矢量(英文:motion vector,缩写:MV)和预测方向和参考帧索引等)构造一个候选运动信息集合,通过比较,可选择出编码效率最高的候选运动信息作为当前编码块的运动信息,在参考帧中找到当前编码块的预测值,对当前编码块进行预测编码,同时,可以把表示选择来自哪个周边已编码块的运动信息的索引值写入码流。当使用自适应运动矢量预测模式时,利用周边已编码块的运动矢量作为当前编码块运动矢量的预测值,可以选定一个编码效率最高的运动矢量来预测当前编码块的运动矢量,并可把表示选定哪个周边运动矢量的索引值写入视频码流。
下面继续探讨本发明实施例的技术方案。
下面先介绍本发明实施例提供的图像预测方法,本发明实施例提供的图像预测方法的执行主体是视频编码装置或视频解码装置,其中,该视频编码装置或视频解码装置可以是任何需要输出或存储视频的装置,如笔记本电脑、平板电脑、个人电脑、手机或视频服务器等设备。
本发明图像预测方法的一个实施例,一种图像预测方法可以包括:确定当前图像块中的W个控制点的运动矢量;利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,其中,所述P个像素单元中的每个 像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,其中,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,所述Q为大于所述n的整数。
请参见图2-a,图2-a为本发明的一个实施例提供的一种图像预测方法的流程示意图。其中,图2-a举例所示,本发明的一个实施例提供的一种图像预测方法可以包括:
201、确定当前图像块中的W个控制点的运动矢量。
202、利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量。
其中,所述P个像素单元为所述当前图像块的部分或全部像素单元。
其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元。因此,可以利用所述P个像素单元中的每个像素单元的运动矢量,确定相应像素单元在参考图像中的对应参考像素单元。
其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度。
其中,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度。
其中,所述W、所述n和所述N为大于1的整数。
其中,所述N大于所述n。所述P为正整数。
其中,由于N大于n,即计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度高于所述确定的所述W个控制点的运动矢量的精度。即获得了所述当前图像块的P个像素单元的相对较高精度的运动矢量。
其中,在本发明一些可能的实施方式中,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
例如参见图2-b举例所示,所述W个控制点包括控制点LT、控制点RT和控 制点LB。其中,控制点LT的运动矢量预测自可预测自图像块A、B和C的精度为1/n像素精度的运动矢量。控制点RT的运动矢量预测自可预测自图像块D和E的精度为1/n像素精度的运动矢量。控制点LB的运动矢量预测自可预测自图像块F和G的精度为1/n像素精度的运动矢量。
其中,在本发明的一些可能的实施方式中,当W个控制点的运动矢量来自于预测值时,该预测值的精度也是1/n像素精度,可把1/n像素精度的控制点的运动矢量和相应预测值的差值写到码流中。
其中,在本发明一些可能的实施方式中,所述运动模型例如可为平动运动模型、仿射运动模型、旋转运动模型、抛物线运动模型、剪切运动模型、缩放运动模型、透视运动模型或双线性运动模型等。
203、利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值。
其中,所述Q为大于所述n的整数。
在本发明一些可能的实施方式中,所述N的取值可以为预设的固定大小的取值,所述Q可大于或等于所述N。其中,当N的取值可以为预设的固定大小的取值,表示利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量的精度,与所述当前图像块的尺寸之间没有必然关系。也就是说,基于本实施例的方案,例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程,便可以获得的预设的固定精度的像素预测值。
例如所述W可等于2、3、4、5、6、8或者其他值。
例如所述P可等于1、2、3、4、5、6、8、10、15、16、21、32、64或者其他值。
例如所述Q可等于128、9、18、24、256、8、10、15、16、21、32、64或者其他值。
例如所述N可等于128、9、18、24、256、8、10、15、16、21、32、64或者其他值。
例如所述n可等于8、2、4或者其他值。
在本发明一些可能的实施方式中,所述N可为2的整数次幂,当然所述N也可为其它正整数。
其中,本发明各实施例中的像素单元可包括一个或多个像素,例如像素单元可以为2*2的像素块、2*1的像素块、2*1的像素块、4*4的像素块或者4*2的像素块等。
其中,本发明各实施例中的控制点可以包括一个或多个像素,例如控制点可以为2*2的像素块、2*1的像素块、2*1的像素块、4*4的像素块或者4*2的像素块等。
由上可见,本实施例提供应图像预测方法中,利用运动模型和所述W个控制点的1/n像素精度的运动矢量,计算得到所述当前图像块的每个像素单元的1/N像素精度的运动矢量,N大于n,也就是说,计算得到的所述当前图像块的每个像素单元的运动矢量的精度,高于所述确定的所述W个控制点的运动矢量的精度。由于先得到了较高精度的运动矢量,当前图像块的每个像素单元的较高精度的运动矢量用于确定所述当前图像块的每个像素单元在参考图像中的对应参考像素单元,利用相位数为Q(Q大于n)的插值滤波器对所述当前图像块的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波以得到当前图像块的每个像素单元的像素预测值,可见通过上述方式有利于减少预测获得当前图像块较高精度的像素预测值所需插值滤波的次数(例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程),进而有利于降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,进而有利于图像预测过程的计算复杂度。
其中,在本发明一些可能的实施方式中,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
举例来说,在本发明一些可能的实施方式中,在所述W等于2的情况下所述运动模型例如可表示为:
Figure PCTCN2016087750-appb-000009
或,
Figure PCTCN2016087750-appb-000010
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
又举例来说,在本发明一些可能的实施方式中,在所述W等于3的情况下所述运动模型例如可表示为:
Figure PCTCN2016087750-appb-000011
或,
Figure PCTCN2016087750-appb-000012
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
其中,上述举例中是以使用彷射运动模型为例来说明的,对于使用平动运动模型、旋转运动模型、剪切运动模型、缩放运动模型、透视运动模型、抛物线运动模型或双线性运动模型等的情况,可基于相应运动模型以此类推,此处不在赘述。
例如,运动模型的一种一般性表现形式可如下:
(vNx,vNy)=f({(vix,viy)|i=0,1,...,M},N,(x,y))。
其中,控制点的运动矢量(vix,viy)的精度是1/n像素精度,为了平衡效果和比特开销,可取n=4,N可表示预先设定的滤波器的相位数,(x,y)是图像块中任意像素单元的坐标值,
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明一些可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量确定所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元,可包括:利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;利用所述P个像素单元中的每个像素单元的运动矢量,在参考图像中查找与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,为所述P个像素单元中的每个像素单元在参考图像中的参考像素单元。
具体例如,可以利用所述P个像素单元中的像素单元i的运动矢量计算得到像素单元i的整像素位置;利用像素单元i的运动矢量,在参考图像中查找与所述像素单元i的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与像素单元i的整像素位置对应的参考像素单元,为像素单元i在参考图像中的参考像素单元。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式,确定其在参考图像中相应的参考像素单元。
其中,在本发明一些可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置包括:
按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;
xInt=[vNx/N],或xInt=vNx>>M;
yInt=[vNy/N],或yInt=vNy>>M;
当N为2的整数次幂的情况下所述M=log2N,(xInt,yInt)表示当前图像块中坐标为(x,y)的像素单元的整像素位置坐标,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
在本发明一些可能的实施方式中,利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波包括:
利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元对应的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
具体例如,可利用所述P个像素单元中的像素单元i的运动矢量,计算得到像素单元i的相位,基于像素单元i的相位确定像素单元i对应的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的像素单元i对应的相位数为Q的插值滤波器对像素单元i在参考图像中的相应参考像素单元的像素进行插值滤波。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式进行插值滤波。
在本发明一些可能实施方式中,利用所述P个像素单元中的每个像素单元 的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位包括:按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1)。
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1)。
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,所述相位包括水平相位和竖直相位,其中,所述基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,包括:基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用滤波器系数与所述水平相位对应,其中,所述竖直插值滤波器使用滤波器系数与所述竖直相位对应。
具体例如,可基于像素单元i的水平相位确定像素单元i的相位数为Q的水平插值滤波器,基于所述像素单元i的竖直相位确定像素单元i的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用的滤波器系数与所述像素单元i的水平相位对应,其中,所述竖直插值滤波器使用的滤波器系数与像素单元i的竖直相位对应。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式确定相位数为Q的插值滤波器。
可选的,在本发明的一些可能的实施方式中,利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波,包括:
利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,
利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
此外,对于像素单元的相位为单相位(即只有水平相位或者竖直相位)的情况,则对像素单元的参考像素单元的像素执行一次插值滤波即可得到该像素单元的像素预测值。
可选的,在本发明一些可能实施方式中,所述确定当前图像块中的W个控制点的运动矢量包括:
确定当前图像块中的W个控制点,确定所述W个控制点之中的每个控制点所对应的候选运动信息单元集;其中,所述每个控制点所对应的候选运动信息单元包括候选的至少一个运动信息单元;
确定包括W个运动信息单元的合并运动信息单元集e,其中,所述合并运动信息单元集e中的每个运动信息单元分别选自所述W个控制点中的每个控制点所对应的候选运动信息单元集中的至少部分运动信息单元,所述合并运动信息单元集e中每个合并运动信息单元包含运动矢量;
对所述合并运动信息单元集e中的W个运动矢量进行预测或运动估计以得到所述W个控制点的运动矢量,或所述合并运动信息单元集e中包括的W个运动矢量为所述W个控制点的运动矢量。
其中,在本发明一些可能实施方式中,候选运动信息单元集中的各运动矢量的精度可为1/n像素精度。
其中,所述图像预测方法可应用于视频编码过程中或者所述图像预测方法可应用于视频解码过程中。
为便于更好的理解本发明实施例的技术方案,下面从编码端和解码端的角度进行举例介绍。
下面先从编码端的角度进行方案描述。
请参见图3-a,图3-a为本发明的另一个实施例提供的另一种图像预测方法的流程示意图。其中,图3-a举例所示,本发明的另一个实施例提供的另一种图像预测方法可以包括:
301、视频编码装置确定当前图像块中的W个控制点。
302、视频编码装置确定W个控制点的运动矢量。
其中,视频编码装置确定W个控制点的运动矢量,可包括:确定所述W个控制点之中的每个控制点所对应的候选运动信息单元集;其中,所述每个控制点所对应的候选运动信息单元包括候选的至少一个运动信息单元;确定包括W个运动信息单元的合并运动信息单元集e,其中,所述合并运动信息单元集e中的每个运动信息单元分别选自所述W个控制点中的每个控制点所对应的候选运动信息单元集中的至少部分运动信息单元,所述合并运动信息单元集e中每个合并运动信息单元包含运动矢量;对所述合并运动信息单元集e中的W个运动矢量进行预测或运动估计以得到所述W个控制点的运动矢量,或所述合并运动信息单元集e中包括的W个运动矢量为所述W个控制点的运动矢量。
其中,在本发明一些可能实施方式中,候选运动信息单元集中的各运动矢量的精度可为1/n像素精度。
303、视频编码装置利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量。
其中,所述P为正整数,所述W和所述N为大于1的整数。
其中,所述P个像素单元为所述当前图像块的部分或全部像素单元。
其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元。因此,可以利用所述P个像素单元中的每个像素单元的运动矢量,确定相应像素单元在参考图像中的对应参考像素 单元。
其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度。
其中,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度。
其中,所述W、所述n和所述N为大于1的整数。
其中,所述N大于所述n。所述P为正整数。
其中,由于N大于n,即计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度高于所述确定的所述W个控制点的运动矢量的精度。即获得了所述当前图像块的P个像素单元的相对较高精度的运动矢量。
其中,在本发明一些可能的实施方式中,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
在本发明的一些可能的实施方式中,当W个控制点的运动矢量来自于预测值时,该预测值的精度也是1/n像素精度,可把1/n像素精度的控制点的运动矢量和相应预测值的差值写到码流中。相应的,在解码端可利用码流中得到的该W个运动矢量预测差值和当前图像块周边已解码图像块的精度为1/n像素精度的运动矢量预测得到这W个控制点的1/n像素精度的运动矢量。
其中,在本发明一些可能的实施方式中,所述运动模型例如可为平动运动模型、仿射运动模型、旋转运动模型、抛物线运动模型、剪切运动模型、缩放运动模型、透视运动模型或双线性运动模型等。
举例来说,在本发明一些可能的实施方式中,在所述W等于2的情况下所述运动模型例如可表示为:
Figure PCTCN2016087750-appb-000013
或,
Figure PCTCN2016087750-appb-000014
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
又举例来说,在本发明一些可能的实施方式中,在所述W等于3的情况下所述运动模型例如可表示为:
Figure PCTCN2016087750-appb-000015
或,
Figure PCTCN2016087750-appb-000016
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
其中,上述举例中是以使用彷射运动模型为例来说明的,对于使用平动运动模型、旋转运动模型、剪切运动模型、缩放运动模型、透视运动模型、抛物线运动模型或双线性运动模型等的情况,可基于相应运动模型以此类推,此处不在赘述。
304、视频编码装置利用所述P个像素单元中的每个像素单元的运动矢量确 定所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元。
可选的,在本发明一些可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量确定所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元,可包括:利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;利用所述P个像素单元中的每个像素单元的运动矢量,在参考图像中查找与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,为所述P个像素单元中的每个像素单元在参考图像中的参考像素单元。
具体例如,可以利用所述P个像素单元中的像素单元i的运动矢量计算得到像素单元i的整像素位置;利用像素单元i的运动矢量,在参考图像中查找与所述像素单元i的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与像素单元i的整像素位置对应的参考像素单元,为像素单元i在参考图像中的参考像素单元。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式,确定其在参考图像中相应的参考像素单元。
其中,在本发明一些可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置包括:
按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;
xInt=[vNx/N],或xInt=vNx>>M。
yInt=[vNy/N],或yInt=vNy>>M。
当N为2的整数次幂的情况下所述M=log2N,(xInt,yInt)表示当前图像块中坐标为(x,y)的像素单元的整像素位置坐标,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平 分量。
如参见图3-b,图3-b中方块表示当前位置其相邻整像素位置的点,三角形表示亚像素点。
305、视频编码装置利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值。
其中,所述Q为大于所述n的整数。
在本发明一些可能的实施方式中,所述N的取值可以为预设的固定大小的取值,所述Q可大于或等于所述N。其中,当N的取值可以为预设的固定大小的取值,表示利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量的精度,与所述当前图像块的尺寸之间没有必然关系。也就是说,基于本实施例的方案,例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程,便可以获得的预设的固定精度的像素预测值。
例如所述W可等于2、3、4、5、6、8或者其他值。
例如所述P可等于1、2、3、4、5、6、8、10、15、16、21、32、64或者其他值。
例如所述Q可等于128、9、18、24、256、8、10、15、16、21、32、64或者其他值。
例如所述N可等于128、9、18、24、256、8、10、15、16、21、32、64或者其他值。
例如所述n可等于8、2、4或者其他值。
在本发明一些可能的实施方式中,所述N可为2的整数次幂,当然所述N也可为其它正整数。
在本发明一些可能的实施方式中,所述利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,包括:
利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像 素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元对应的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
具体例如,可利用所述P个像素单元中的像素单元i的运动矢量,计算得到像素单元i的相位,基于像素单元i的相位确定像素单元i对应的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的像素单元i对应的相位数为Q的插值滤波器对像素单元i在参考图像中的相应参考像素单元的像素进行插值滤波。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式进行插值滤波。
在本发明一些可能实施方式中,利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位包括:按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,所述相位包括水平相位和竖直相位,其中,所述基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,包括:基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用 滤波器系数与所述水平相位对应,其中,所述竖直插值滤波器使用滤波器系数与所述竖直相位对应。
具体例如,可基于像素单元i的水平相位确定像素单元i的相位数为Q的水平插值滤波器,基于所述像素单元i的竖直相位确定像素单元i的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用的滤波器系数与所述像素单元i的水平相位对应,其中,所述竖直插值滤波器使用的滤波器系数与像素单元i的竖直相位对应。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式确定相位数为Q的插值滤波器。
可选的,在本发明的一些可能的实施方式中,所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波,包括:
利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,
利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
此外,对于像素单元的相位为单相位(即只有水平相位或者竖直相位)的情况,则对像素单元的参考像素单元的像素执行一次插值滤波即可得到该像素单元的像素预测值。
306、视频编码装置可利用当前图像块的P个像素单元的原始像素值和P个像素单元的像素值预测得到当前图像块的预测残差。视频编码装置可将当前图 像块的预测残差写入视频码流。
由上可见,在本实施例的方案中,视频编码装置利用运动模型和所述W个控制点的1/n像素精度的运动矢量,计算得到所述当前图像块的每个像素单元的1/N像素精度的运动矢量,N大于n,也就是说,计算得到的所述当前图像块的每个像素单元的运动矢量的精度,高于所述确定的所述W个控制点的运动矢量的精度。由于先得到了较高精度的运动矢量,当前图像块的每个像素单元的较高精度的运动矢量用于确定所述当前图像块的每个像素单元在参考图像中的对应参考像素单元,利用相位数为Q(Q大于n)的插值滤波器对所述当前图像块的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波以得到当前图像块的每个像素单元的像素预测值,可见通过上述方式有利于减少预测获得当前图像块较高精度的像素预测值所需插值滤波的次数(例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程),进而有利于降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,进而有利于图像预测过程的计算复杂度。
下面从解码端的角度进行方案描述。
请参见图4,图4为本发明的另一个实施例提供的另一种图像预测方法的流程示意图。其中,图4举例所示,本发明的另一个实施例提供的另一种图像预测方法可以包括:
401、视频解码装置确定当前图像块中的W个控制点。
402、视频解码装置确定W个控制点的运动矢量。
其中,视频解码装置确定W个控制点的运动矢量,可包括:确定所述W个控制点之中的每个控制点所对应的候选运动信息单元集;其中,所述每个控制点所对应的候选运动信息单元包括候选的至少一个运动信息单元;确定包括W个运动信息单元的合并运动信息单元集e,其中,所述合并运动信息单元集e中的每个运动信息单元分别选自所述W个控制点中的每个控制点所对应的候选运动信息单元集中的至少部分运动信息单元,所述合并运动信息单元集e中每个合并运动信息单元包含运动矢量;对所述合并运动信息单元集e中的W个运动矢量进行预测或运动估计以得到所述W个控制点的运动矢量,或所述合并 运动信息单元集e中包括的W个运动矢量为所述W个控制点的运动矢量。
其中,在本发明一些可能实施方式中,候选运动信息单元集中的各运动矢量的精度可为1/n像素精度。
403、视频解码装置利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量。
其中,所述P为正整数,所述W和所述N为大于1的整数。
其中,所述P个像素单元为所述当前图像块的部分或全部像素单元。
其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元。因此,可以利用所述P个像素单元中的每个像素单元的运动矢量,确定相应像素单元在参考图像中的对应参考像素单元。
其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度。
其中,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度。
其中,所述W、所述n和所述N为大于1的整数。
其中,所述N大于所述n。所述P为正整数。
其中,由于N大于n,即计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度高于所述确定的所述W个控制点的运动矢量的精度。即获得了所述当前图像块的P个像素单元的相对较高精度的运动矢量。
其中,在本发明一些可能的实施方式中,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量,其中,所述n为正整数且所述n小于所述N。
在本发明的一些可能的实施方式中,当W个控制点的运动矢量来自于预测值时,该预测值的精度也是1/n像素精度,可把1/n像素精度的控制点的运动矢量和相应预测值的差值写到码流中。
其中,在本发明一些可能的实施方式中,所述运动模型例如可为平动运动模型、仿射运动模型、旋转运动模型、抛物线运动模型、剪切运动模型、缩放运动模型、透视运动模型或双线性运动模型等。
举例来说,在本发明一些可能的实施方式中,在所述W等于2的情况下所述运动模型例如可表示为:
Figure PCTCN2016087750-appb-000017
或,
Figure PCTCN2016087750-appb-000018
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
又举例来说,在本发明一些可能的实施方式中,在所述W等于3的情况下所述运动模型例如可表示为:
Figure PCTCN2016087750-appb-000019
或,
Figure PCTCN2016087750-appb-000020
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h 表示所述当前图像块的高。
其中,上述举例中是以使用彷射运动模型为例来说明的,对于使用平动运动模型、旋转运动模型、剪切运动模型、缩放运动模型、透视运动模型、抛物线运动模型或双线性运动模型等的情况,可基于相应运动模型以此类推,此处不在赘述。
404、视频解码装置利用所述P个像素单元中的每个像素单元的运动矢量确定所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元。
可选的,在本发明一些可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量确定所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元,可包括:利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;利用所述P个像素单元中的每个像素单元的运动矢量,在参考图像中查找与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,为所述P个像素单元中的每个像素单元在参考图像中的参考像素单元。
具体例如,可以利用所述P个像素单元中的像素单元i的运动矢量计算得到像素单元i的整像素位置;利用像素单元i的运动矢量,在参考图像中查找与所述像素单元i的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与像素单元i的整像素位置对应的参考像素单元,为像素单元i在参考图像中的参考像素单元。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式,确定其在参考图像中相应的参考像素单元。
其中,在本发明一些可能的实施方式中,所述利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置包括:
按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;
xInt=[vNx/N],或xInt=vNx>>M;
yInt=[vNy/N],或yInt=vNy>>M;
当N为2的整数次幂的情况下所述M=log2N,(xInt,yInt)表示当前图像块中坐标为(x,y)的像素单元的整像素位置坐标,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
405、视频解码装置利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值。
其中,所述Q为大于所述n的整数。
在本发明一些可能的实施方式中,所述N的取值可以为预设的固定大小的取值,所述Q可大于或等于所述N。其中,当N的取值可以为预设的固定大小的取值,表示利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量的精度,与所述当前图像块的尺寸之间没有必然关系。也就是说,基于本实施例的方案,例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程,便可以获得的预设的固定精度的像素预测值。
例如所述W可等于2、3、4、5、6、8或者其他值。
例如所述P可等于1、2、3、4、5、6、8、10、15、16、21、32、64或者其他值。
例如所述Q可等于128、9、18、24、256、8、10、15、16、21、32、64或者其他值。
例如所述N可等于128、9、18、24、256、8、10、15、16、21、32、64或者其他值。
例如所述n可等于8、2、4或者其他值。
在本发明一些可能的实施方式中,所述N可为2的整数次幂,当然所述N也可为其它正整数。
在本发明一些可能的实施方式中,所述利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,包括:
利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元对应的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
具体例如,可利用所述P个像素单元中的像素单元i的运动矢量,计算得到像素单元i的相位,基于像素单元i的相位确定像素单元i对应的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的像素单元i对应的相位数为Q的插值滤波器对像素单元i在参考图像中的相应参考像素单元的像素进行插值滤波。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式进行插值滤波。
在本发明一些可能实施方式中,利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位包括:按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1)。
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1)。
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,所述相位包括水平相位和竖 直相位,其中,所述基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,包括:基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用滤波器系数与所述水平相位对应,其中,所述竖直插值滤波器使用滤波器系数与所述竖直相位对应。
具体例如,可基于像素单元i的水平相位确定像素单元i的相位数为Q的水平插值滤波器,基于所述像素单元i的竖直相位确定像素单元i的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用的滤波器系数与所述像素单元i的水平相位对应,其中,所述竖直插值滤波器使用的滤波器系数与像素单元i的竖直相位对应。其中,上述像素单元i可为所述P个像素单元中的任意一个像素单元。例如,对于所述P个像素单元中的每个像素单元,均可按照与上述像素单元i类似的方式确定相位数为Q的插值滤波器。
可选的,在本发明的一些可能的实施方式中,所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波,包括:
利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,
利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
此外,对于像素单元的相位为单相位(即只有水平相位或者竖直相位)的 情况,则对像素单元的参考像素单元的像素执行一次插值滤波即可得到该像素单元的像素预测值。
406、视频解码装置利用当前图像块的预测像素值和视频码流中的当前图像块的预测残差对当前图像块进行重建。
由上可见,在本实施例的方案中,视频解码装置利用运动模型和所述W个控制点的1/n像素精度的运动矢量,计算得到所述当前图像块的每个像素单元的1/N像素精度的运动矢量,N大于n,也就是说,计算得到的所述当前图像块的每个像素单元的运动矢量的精度,高于所述确定的所述W个控制点的运动矢量的精度。由于先得到了较高精度的运动矢量,当前图像块的每个像素单元的较高精度的运动矢量用于确定所述当前图像块的每个像素单元在参考图像中的对应参考像素单元,利用相位数为Q(Q大于n)的插值滤波器对所述当前图像块的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波以得到当前图像块的每个像素单元的像素预测值,可见通过上述方式有利于减少预测获得当前图像块较高精度的像素预测值所需插值滤波的次数(例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程),进而有利于降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,进而有利于图像预测过程的计算复杂度。
下面针对上述实施例中涉及到的确定包括W个运动信息单元的合并运动信息单元集e的一些可能的具体实施方式进行举例。
其中,确定包括W个运动信息单元的合并运动信息单元集e可包括:从A个候选合并运动信息单元集之中确定出包含W个运动信息单元的合并运动信息单元集e;其中,所述A个候选合并运动信息单元集中的每个候选合并运动信息单元集所包含的每个运动信息单元,分别选自所述W个控制点中的每个控制点所对应的候选运动信息单元集中的符合约束条件的至少部分运动信息单元,所述A为正整数,其中,所述A个候选合并运动信息单元集互不相同,所述A个候选合并运动信息单元集中的每个候选合并运动信息单元集包括W个运动信息单元。
可选的,在本发明一些可能实施方式中,所述A个候选合并运动信息单元 集满足第一条件、第二条件、第三条件、第四条件和第五条件之中的至少一个条件,
其中,所述第一条件包括所述A个候选合并运动信息单元集中的任意一个候选合并运动信息单元集中的运动信息单元所指示出的所述当前图像块的运动方式为非平动运动。
所述第二条件包括所述A个候选合并运动信息单元集中的任意一个候选合并运动信息单元集中的2个运动信息单元对应的预测方向相同。
所述第三条件包括所述A个候选合并运动信息单元集中的任意一个候选合并运动信息单元集中的2个运动信息单元对应的参考帧索引相同。
所述第四条件包括所述A个候选合并运动信息单元集中的任意一个候选合并运动信息单元集中的2个运动信息单元的运动矢量水平分量的差值的绝对值小于或等于水平分量阈值,或者,所述A个候选合并运动信息单元集中的任意一个候选合并运动信息单元集中的其中1个运动信息单元和控制点Z的运动矢量水平分量之间的差值的绝对值小于或等于水平分量阈值,所述当前图像块的所述控制点Z不同于所述W个控制点中的任意一个控制点。
所述第五条件包括所述A个候选合并运动信息单元集中的任意一个候选合并运动信息单元集中的2个运动信息单元的运动矢量竖直分量的差值的绝对值小于或等于竖直分量阈值,或者,所述A个候选合并运动信息单元集中的其中一个候选合并运动信息单元集中的任意1个运动信息单元和控制点Z的运动矢量竖直分量之间的差值的绝对值小于或等于水平分量阈值,所述当前图像块的所述控制点Z不同于所述W个控制点中的任意一个控制点。
可选的,在本发明一些可能的实施方式中,视频编码装置从A个候选合并运动信息单元集之中确定出包含W个运动信息单元的合并运动信息单元集e可以包括:基于失真或者率失真代价从A个候选合并运动信息单元集之中确定出包含W个运动矢量的合并运动信息单元集e。
可选的,合并运动信息单元集e对应的率失真代价,小于或等于上述A个候选合并运动信息单元集中除合并运动信息单元集e之外的任意一个合并运动信息单元集对应的率失真代价。
可选的,合并运动信息单元集e对应的失真,小于或者等于上述A个候选合并运动信息单元集中除合并运动信息单元集e之外的任意一个合并运动信息单元集对应的失真。
其中,上述A个候选合并运动信息单元集之中的某个候选合并运动信息单元集(例如上述A个候选合并运动信息单元集中的合并运动信息单元集e)对应的率失真代价例如可以为利用该某个候选合并运动信息单元集(例如合并运动信息单元集e)对图像块(例如当前图像块)进行像素值预测而得到的该图像块的预测像素值所对应的率失真代价。
其中,上述A个候选合并运动信息单元集之中的某个候选合并运动信息单元集(例如上述A个候选合并运动信息单元集中的合并运动信息单元集e)对应的失真,例如可为图像块(如当前图像块)的原始像素值与利用该某个候选合并运动信息单元集(如合并运动信息单元集e)对该图像块进行像素值预测而得到的该图像块的预测像素值之间的失真(即,图像块的原始像素值与预测像素值之间的失真)。
在本发明一些可能的实施方式中,图像块(如当前图像块)的原始像素值与利用该某个候选合并运动信息单元集(例如合并运动信息单元集e)对该图像块进行像素值预测而得到的该图像块的预测像素值之间的失真,具体例如可以为该图像块(例如当前图像块)的原始像素值与利用该某个候选合并运动信息单元集(例如合并运动信息单元集e)对该图像块进行像素值预测而得到的该图像块的预测像素值之间的平方误差和(SSD)或绝对误差和(SAD)或误差和或能够衡量失真的其他失真参量。
下面举例一些确定当前图像块的W个控制点的可能方式。
可选的,在本发明一些可能实施方式中,所述W个控制点包括所述当前图像块的左上控制点、右上控制点、左下控制点和中心控制点a1中的其中W个控制点。
其中,所述当前图像块的左上控制点为所述当前图像块的左上顶点或所述当前图像块中的包含所述当前图像块的左上顶点的像素块;所述当前图像块的左下控制点为所述当前图像块的左下顶点或所述当前图像块中的包含所述当 前图像块的左下顶点的像素块;所述当前图像块的右上控制点为所述当前图像块的右上顶点或者所述当前图像块中的包含所述当前图像块的右上顶点的像素块;所述当前图像块的中心素样本a1为所述当前图像块的中心像素点或所述当前图像块中的包含所述当前图像块的中心像素点的像素块。
可选的,在本发明的一些可能实施方式中,所述当前图像块的左上控制点所对应的候选运动信息单元集包括x1个像素单元的运动信息单元,其中,所述x1个像素单元包括至少一个与所述当前图像块的左上控制点空域相邻的像素单元(例如图2-b中的图形块A、B和C)和/或至少一个与所述当前图像块的左上控制点时域相邻的像素单元,所述x1为正整数。
例如,所述x1个像素单元可包括与所述当前图像块所属的视频帧时域相邻的视频帧之中的与所述当前图像块的左上控制点位置相同的像素单元、所述当前图像块的左边的空域相邻像素单元、所述当前图像块的左上的空域相邻像素单元和所述当前图像块的上边的空域相邻像素单元中的至少一个。
可选的,在本发明的一些可能实施方式中,所述当前图像块的右上控制点所对应的候选运动信息单元集包括x2个像素单元的运动信息单元,其中,所述x2个像素单元包括至少一个与所述当前图像块的右上控制点空域相邻的像素单元(例如图2-b中的图形块E和D等)和/或至少一个与所述当前图像块的右上控制点时域相邻的像素单元,其中,所述x2为正整数。
例如,所述x2个像素单元可包括与所述当前图像块所属的视频帧时域相邻的视频帧之中的与所述当前图像块的右上控制点位置相同的像素单元、所述当前图像块的右边的空域相邻像素单元、所述当前图像块的右上的空域相邻像素单元和所述当前图像块的上边的空域相邻像素单元中的至少一个。
可选的,在本发明一些可能实施方式中,
所述当前图像块的左下控制点所对应的候选运动信息单元集包括x3个像素单元的运动信息单元,其中,所述x3个像素单元包括至少一个与所述当前图像块的左下控制点空域相邻的像素单元和/或至少一个与所述当前图像块的左下控制点时域相邻的像素单元,所述x3为正整数。
例如,所述x3个像素单元可包括与所述当前图像块所属的视频帧时域相邻 的视频帧之中的与所述当前图像块的左下控制点位置相同的像素单元、所述当前图像块的左边的空域相邻像素单元、所述当前图像块的左下的空域相邻像素单元和所述当前图像块的下边的空域相邻像素单元中的至少一个。
可选的,在本发明一些可能实施方式中,所述当前图像块的中心控制点a1所对应的候选运动信息单元集包括x5个像素单元的运动信息单元,其中,所述x5个像素单元中的其中一个像素单元为像素单元a2。
其中,所述中心控制点a1在所述当前图像块所属视频帧中的位置,与所述像素单元a2在所述当前图像块所属视频帧的相邻视频帧中的位置相同,所述x5为正整数。
下面通过表举例像素单元相位和滤波器系数之间的一种对应关系。
其中,表1举例的是增益缩放因子是256的64相位的插值滤波器的滤波器系数和像素单元相位之间的对应关系。
表2举例的是增益缩放因子是64的64相位的插值滤波器的滤波器系数和像素单元相位之间的对应关系。
表1
相位 滤波器系数
0 {0,0,0,256,0,0,0,0}
1 {0,1,-3,256,4,-2,0,0}
2 {0,2,-7,255,8,-3,1,0}
3 {-1,3,-10,255,12,-4,1,0}
4 {-1,4,-13,254,16,-5,2,-1}
5 {-1,5,-16,253,20,-7,2,0}
6 {-1,6,-18,251,25,-9,3,-1}
7 {-2,7,-21,250,29,-10,4,-1}
8 {-2,8,-23,248,34,-12,4,-1}
9 {-2,8,-25,246,38,-13,5,-1}
10 {-2,9,-27,244,43,-15,5,-1}
11 {-2,10,-30,242,48,-16,6,-2}
12 {-2,10,-31,239,52,-17,5,0}
13 {-2,10,-32,237,57,-18,6,-2}
14 {-2,11,-34,234,63,-21,7,-2}
15 {-2,11,-35,231,68,-21,6,-2}
16 {-3,13,-38,228,74,-24,9,-3}
17 {-2,12,-38,224,78,-24,7,-1}
18 {-3,14,-40,221,84,-27,10,-3}
19 {-2,12,-39,217,88,-27,8,-1}
20 {-3,13,-40,213,94,-28,9,-2}
21 {-3,15,-43,210,100,-31,11,-3}
22 {-3,13,-41,205,104,-30,9,-1}
23 {-3,12,-41,201,110,-31,9,-1}
24 {-3,15,-43,197,116,-35,12,-3}
25 {-3,14,-43,192,121,-35,12,-2}
26 {-2,13,-42,187,126,-35,10,-1}
27 {-3,14,-43,183,132,-37,12,-2}
28 {-2,13,-42,178,137,-38,12,-2}
29 {-3,14,-42,173,143,-39,12,-2}
30 {-3,15,-43,169,148,-41,14,-3}
31 {-3,13,-41,163,153,-40,13,-2}
32 {-3,13,-40,158,158,-40,13,-3}
33 {-2,13,-40,153,163,-41,13,-3}
34 {-3,14,-41,148,169,-43,15,-3}
35 {-2,12,-39,143,173,-42,14,-3}
36 {-2,12,-38,137,178,-42,13,-2}
37 {-2,12,-37,132,183,-43,14,-3}
38 {-1,10,-35,126,187,-42,13,-2}
39 {-2,12,-35,121,192,-43,14,-3}
40 {-3,12,-35,116,197,-43,15,-3}
41 {-1,9,-31,110,201,-41,12,-3}
42 {-1,9,-30,104,205,-41,13,-3}
43 {-3,11,-31,100,210,-43,15,-3}
44 {-2,9,-28,94,213,-40,13,-3}
45 {-1,8,-27,88,217,-39,12,-2}
46 {-3,10,-27,84,221,-40,14,-3}
47 {-1,7,-24,78,224,-38,12,-2}
48 {-3,9,-24,74,228,-38,13,-3}
49 {-2,6,-21,68,231,-35,11,-2}
50 {-2,7,-21,63,234,-34,11,-2}
51 {-2,6,-18,57,237,-32,10,-2}
52 {0,5,-17,52,239,-31,10,-2}
53 {-2,6,-16,48,242,-30,10,-2}
54 {-1,5,-15,43,244,-27,9,-2}
55 {-1,5,-13,38,246,-25,8,-2}
56 {-1,4,-12,34,248,-23,8,-2}
57 {-1,4,-10,29,250,-21,7,-2}
58 {-1,3,-9,25,251,-18,6,-1}
59 {0,2,-7,20,253,-16,5,-1}
60 {-1,2,-5,16,254,-13,4,-1}
61 {0,1,-4,12,255,-10,3,-1}
62 {0,1,-3,8,255,-7,2,0}
63 {0,0,-2,4,256,-3,1,0}
表2
相位 滤波器系数
0 {0,0,0,64,0,0,0,0}
1 {0,0,-1,64,1,0,0,0}
2 {0,0,-2,64,3,-1,0,0}
3 {0,1,-2,64,3,-2,0,0}
4 {0,1,-3,63,4,-1,0,0}
5 {0,1,-4,63,5,-2,1,0}
6 {0,1,-4,63,6,-2,1,-1}
7 {0,1,-5,62,7,-2,1,0}
8 {0,2,-6,62,8,-3,1,0}
9 {0,1,-6,62,10,-3,1,-1}
10 {0,2,-7,61,11,-3,1,-1}
11 {-1,3,-7,60,12,-4,1,0}
12 {0,2,-8,60,13,-4,1,0}
13 {0,2,-8,59,14,-4,1,0}
14 {0,3,-8,58,16,-5,1,-1}
15 {0,3,-9,58,17,-5,1,-1}
16 {-1,3,-9,57,18,-6,2,0}
17 {-1,3,-9,56,19,-6,2,0}
18 {-1,3,-10,55,21,-6,2,0}
19 {-1,3,-10,54,22,-7,2,1}
20 {0,3,-10,53,23,-7,2,0}
21 {-1,3,-10,52,25,-7,2,0}
22 {-1,3,-10,51,26,-8,2,1}
23 {0,3,-10,50,27,-8,2,0}
24 {-1,3,-10,49,29,-8,2,0}
25 {-1,3,-10,48,30,-8,2,0}
26 {-1,3,-10,47,32,-9,2,0}
27 {-1,3,-11,46,33,-9,3,0}
28 {-1,3,-10,44,34,-9,3,0}
29 {-1,3,-10,43,36,-9,3,-1}
30 {-1,3,-10,42,37,-10,3,0}
31 {-1,4,-10,41,38,-10,3,-1}
32 {-1,4,-11,40,40,-11,4,-1}
33 {-1,3,-10,38,41,-10,4,-1}
34 {0,3,-10,37,42,-10,3,-1}
35 {-1,3,-9,36,43,-10,3,-1}
36 {0,3,-9,34,44,-10,3,-1}
37 {0,3,-9,33,46,-11,3,-1}
38 {0,2,-9,32,47,-10,3,-1}
39 {0,2,-8,30,48,-10,3,-1}
40 {0,2,-8,29,49,-10,3,-1}
41 {0,2,-8,27,50,-10,3,0}
42 {1,2,-8,26,51,-10,3,-1}
43 {0,2,-7,25,52,-10,3,-1}
44 {0,2,-7,23,53,-10,3,0}
45 {1,2,-7,22,54,-10,3,-1}
46 {0,2,-6,21,55,-10,3,-1}
47 {0,2,-6,19,56,-9,3,-1}
48 {0,2,-6,18,57,-9,3,-1}
49 {-1,1,-5,17,58,-9,3,0}
50 {-1,1,-5,16,58,-8,3,0}
51 {0,1,-4,14,59,-8,2,0}
52 {0,1,-4,13,60,-8,2,0}
53 {0,1,-4,12,60,-7,3,-1}
54 {-1,1,-3,11,61,-7,2,0}
55 {-1,1,-3,10,62,-6,1,0}
56 {0,1,-3,8,62,-6,2,0}
57 {0,1,-2,7,62,-5,1,0}
58 {-1,1,-2,6,63,-4,1,0}
59 {0,1,-2,5,63,-4,1,0}
60 {0,0,-1,4,63,-3,1,0}
61 {0,0,-2,3,64,-2,1,0}
62 {0,0,-1,3,64,-2,0,0}
63 {0,0,0,1,64,-1,0,0}
举例来说,当像素单元的水平相位x=12,如果使用增益缩放因子是256的64相位的插值滤波器,则水平插值滤波结果S可表示如下:
S=((-2)×x0+10×x1+(-31)×x2+239×x2+52×x4+(-17)×x5+5×x6+0×x7)+offset)/256
可插值滤波结果S来得到像素单元的预测像素值,其中,offset可以是任意整数。
下面通过一些测试数据来体现本发明实施例方案的技术效果。
其中,表3和表4给出了传统方案和本发明实施例方案的一些测试性能的对比。表3给出了传统方案测试性能,表4给出了本发明一些实施例方案的测试性能。
表3
Figure PCTCN2016087750-appb-000021
表4
Figure PCTCN2016087750-appb-000022
对比上面的两个表可以发现,本发明实施例的技术方案相对于现有技术在编解码性能上有较大的提高。
下面还提供用于实施上述方案的相关装置。
参见图5,本发明实施例提供一种图像预测装置500,可以包括:第一确定单元510、计算单元520和插值滤波单元540。
第一确定单元510,用于确定当前图像块中的W个控制点的运动矢量。
计算单元520,用于利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元。
其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,其中,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数。
插值滤波单元540,用于利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值。
其中,图像预测装置500还可包括:第二确定单元530,用于利用所述P个像素单元中的每个像素单元的运动矢量确定所述P个像素单元中的每个像素单 元在参考图像中的对应参考像素单元。
可选的,在本发明的一些可能的实施方式中,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
可选的,在本发明的一些可能的实施方式中,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
可选的,在本发明的一些可能的实施方式中,
所述第二确定单元530具体用于:利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;利用所述P个像素单元中的每个像素单元的运动矢量,在参考图像中查找与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,为所述P个像素单元中的每个像素单元在参考图像中的参考像素单元。
可选的,在本发明的一些可能的实施方式中,在利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置的方面,所述第二确定单元530具体用于:
按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;
xInt=[vNx/N],或xInt=vNx>>M;
yInt=[vNy/N],或yInt=vNy>>M;
其中,当N为2的整数次幂的情况下所述M=log2N,(xInt,yInt)表示当前图像块中坐标为(x,y)的像素单元的整像素位置坐标,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,
所述插值滤波单元具体用于,利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,所述插值滤波器使用滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器,对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
可选的,在本发明的一些可能的实施方式中,在利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位的方面,所述插值滤波单元具体用于按照如下公式,所述利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,所述相位包括水平相位和竖直相位,
其中,在基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器的方面,所述插值滤波单元具体用于,基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,所述竖直插值滤波器使用滤波器系数与所述竖直相位对应。
可选的,在本发明的一些可能的实施方式中,在所述利用确定的所述每个 像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波的方面,所述插值滤波单元具体用于,
利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,
利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元;
可选的,在本发明的一些可能的实施方式中,所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、缩放运动模型、抛物线运动模型、剪切运动模型、透视运动模型或双线性运动模型。
可选的,在本发明的一些可能的实施方式中,
在所述W等于2的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000023
或,
Figure PCTCN2016087750-appb-000024
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的 像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,
在所述W等于3的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000025
或,
Figure PCTCN2016087750-appb-000026
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
可选的,在本发明的一些可能的实施方式中,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
可选的,在本发明的一些可能的实施方式中,所述图像预测装置500应用于视频编码装置中或者所述图像预测装置500应用于视频解码装置中。
可以理解的是,本实施例的图像预测装置600的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。图像预测装置600可为任何需要输出、播放视频 的装置,如笔记本电脑,平板电脑、个人电脑、手机等设备。
可以看出,本实施例提供应图像预测方法中,图像预测装置500利用运动模型和所述W个控制点的1/n像素精度的运动矢量,计算得到所述当前图像块的每个像素单元的1/N像素精度的运动矢量,N大于n,也就是说,计算得到的所述当前图像块的每个像素单元的运动矢量的精度,高于所述确定的所述W个控制点的运动矢量的精度。由于先得到了较高精度的运动矢量,当前图像块的每个像素单元的较高精度的运动矢量用于确定所述当前图像块的每个像素单元在参考图像中的对应参考像素单元,利用相位数为Q(Q大于n)的插值滤波器对所述当前图像块的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波以得到当前图像块的每个像素单元的像素预测值,可见通过上述方式有利于减少预测获得当前图像块较高精度的像素预测值所需插值滤波的次数(例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程),进而有利于降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,进而有利于图像预测过程的计算复杂度。
参见图6,图6是本发明的另一实施例提供的图像预测装置600的结构框图。其中,图像预测装置600可包括:至少1个处理器601,存储器605和至少1个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。
其中,该图像预测装置600可选的可以包含至少1个网络接口604和/或用户接口603,用户接口603可以包括显示器(例如全息成像(Holographic)、阴极射线管或者投影(Projector)等)、点击设备(例如鼠标或轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。
其中,存储器605可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器605中的一部分还可以包括非易失性随机存取存储器。
在一些实施方式中,存储器605存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统6051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序模块6052,包含各种应用程序,用于实现各种应用业务。
在本发明的实施例中,通过调用存储器605存储的程序或指令,处理器601用于,确定当前图像块中的W个控制点的运动矢量;利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,其中,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,所述Q为大于所述n的整数。
可选的,在本发明的一些可能的实施方式中,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
可选的,在本发明的一些可能的实施方式中,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
可选的,在本发明的一些可能的实施方式中,处理器利用所述P个像素单元中的每个像素单元的运动矢量确定所述P个像素单元中的每个像素单元在参考图像中的参考像素单元包括:
利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;利用所述P个像素单元中的每个像素单元的运动矢量,在参考图像中查找与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,其中,在参考图像中查找到的与所述P个像素单元中的每个像素单元的整像素位置对应的参考像素单元,为所述P个像素单元中的每个像素单元在参考图像中的参考像素单元。
可选的,在本发明的一些可能的实施方式中,处理器利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元 的整像素位置包括:
按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的整像素位置;
xInt=[vNx/N],或xInt=vNx>>M;
yInt=[vNy/N],或yInt=vNy>>M;
其中,当N为2的整数次幂的情况下所述M=log2N,(xInt,yInt)表示当前图像块中坐标为(x,y)的像素单元的整像素位置坐标,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,处理器利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的参考像素单元的像素进行插值滤波,包括:
利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
可选的,在本发明的一些可能的实施方式中,处理器利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位包括:按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表 示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,所述相位包括水平相位和竖直相位,其中,处理器基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,包括:基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,其中,所述竖直插值滤波器使用的滤波器系数与所述竖直相位对应。
可选的,在本发明的一些可能的实施方式中,处理器利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波,包括:
利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
或者,
利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
可选的,在本发明的一些可能的实施方式中,所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、抛物线运动模型、剪切运动模型、缩放运动模型、透视运动模型或双线性运动模型。
可选的,在本发明的一些可能的实施方式中,
在所述W等于2的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000027
或,
Figure PCTCN2016087750-appb-000028
其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
可选的,在本发明的一些可能的实施方式中,
在所述W等于3的情况下,所述运动模型表示为:
Figure PCTCN2016087750-appb-000029
或,
Figure PCTCN2016087750-appb-000030
其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h 表示所述当前图像块的高。
可选的,在本发明的一些可能的实施方式中,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
可选的,在本发明的一些可能的实施方式中,所述N的取值为预设的固定取值。
可选的,在本发明的一些可能的实施方式中,所述图像预测装置600应用于视频编码装置中或者所述图像预测装置600应用于视频解码装置中。
可以理解的是,本实施例的图像预测装置600的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。图像预测装置600可为任何需要输出、播放视频的装置,如笔记本电脑,平板电脑、个人电脑、手机等设备。
可以看出,本实施例提供应图像预测方法中,图像预测装置600利用运动模型和所述W个控制点的1/n像素精度的运动矢量,计算得到所述当前图像块的每个像素单元的1/N像素精度的运动矢量,N大于n,也就是说,计算得到的所述当前图像块的每个像素单元的运动矢量的精度,高于所述确定的所述W个控制点的运动矢量的精度。由于先得到了较高精度的运动矢量,当前图像块的每个像素单元的较高精度的运动矢量用于确定所述当前图像块的每个像素单元在参考图像中的对应参考像素单元,利用相位数为Q(Q大于n)的插值滤波器对所述当前图像块的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波以得到当前图像块的每个像素单元的像素预测值,可见通过上述方式有利于减少预测获得当前图像块较高精度的像素预测值所需插值滤波的次数(例如可无需执行通过低精度插值滤波来得到低精度像素预测值的中间过程),进而有利于降低图像预测过程中插值滤波所需要的中间缓存和内存操作次数,进而有利于图像预测过程的计算复杂度。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其 它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,其中,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (36)

  1. 一种图像预测方法,其特征在于,包括:
    确定当前图像块中的W个控制点的运动矢量;
    利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,其中,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;
    利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,所述Q为大于所述n的整数。
  2. 根据权利要求1所述的方法,其特征在于,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
  3. 根据权利要求1或2所述的方法,其特征在于,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,包括:
    利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
  5. 根据权利要求4所述的方法,其特征在于,所述利用所述P个像素单元 中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位包括:按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
    X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
    Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
    其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
  6. 根据权利要求4或5所述的方法,其特征在于,所述相位包括水平相位和竖直相位,其中,所述基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,包括:基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,其中,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,其中,所述竖直插值滤波器使用的滤波器系数与所述竖直相位对应。
  7. 根据权利要求6所述的方法,其特征在于,所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波,包括:
    利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
    或者,
    利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单 元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
  8. 根据权利要求1至7任意一项所述的方法,其特征在于,所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、抛物线运动模型、剪切运动模型、缩放运动模型、透视运动模型或双线性运动模型。
  9. 根据权利要求1至8任意一项所述的方法,其特征在于,在所述W等于2的情况下,所述运动模型表示为:
    Figure PCTCN2016087750-appb-100001
    或,
    Figure PCTCN2016087750-appb-100002
    其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
  10. 根据权利要求1至8任一项所述的方法,其特征在于,在所述W等于3的情况下,所述运动模型表示为:
    Figure PCTCN2016087750-appb-100003
    或,
    Figure PCTCN2016087750-appb-100004
    其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
  11. 根据权利要求1至10任一项所述的方法,其特征在于,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
  12. 根据权利要求1至11任一项所述的方法,其特征在于,所述图像预测方法应用于视频编码过程中或应用于视频解码过程中。
  13. 一种图像预测装置,其特征在于,包括:
    第一确定单元,用于确定当前图像块中的W个控制点的运动矢量;
    计算单元,用于利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;
    插值滤波单元,用于利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,其中,所述Q为大于所述n的整数。
  14. 根据权利要求13所述的图像预测装置,其特征在于,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
  15. 根据权利要求13或14所述的图像预测装置,其特征在于,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
  16. 根据权利要求13至15任一项所述的图像预测装置,其特征在于,
    所述插值滤波单元具体用于,利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器,对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
  17. 根据权利要求16所述的图像预测装置,其特征在于,
    在利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位的方面,所述插值滤波单元具体用于按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
    X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
    Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
    其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
  18. 根据权利要求16或17所述的图像预测装置,其特征在于,所述相位包括水平相位和竖直相位,
    其中,在基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器的方面,所述插值滤波单元具体用于,基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,所述竖直插值滤波器使用的滤波器系数与所述竖直相位对应。
  19. 根据权利要求18所述的图像预测装置,其特征在于,在所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波的方面,所述插值滤波单元具体用于,
    利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
    或者,
    利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
  20. 根据权利要求13至19任一项所述的图像预测装置,其特征在于,所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、缩放运动模型、抛物线运动模型、剪切运动模型、透视运动模型或双线性运动模型。
  21. 根据权利要求13至20任一项所述的图像预测装置,其特征在于,在所述W等于2的情况下,所述运动模型表示为:
    Figure PCTCN2016087750-appb-100005
    或,
    Figure PCTCN2016087750-appb-100006
    其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
  22. 根据权利要求13至20任一项所述的图像预测装置,其特征在于,在所述W等于3的情况下,所述运动模型表示为:
    Figure PCTCN2016087750-appb-100007
    或,
    Figure PCTCN2016087750-appb-100008
    其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h 表示所述当前图像块的高。
  23. 根据权利要求13至22任一项所述的图像预测装置,其特征在于,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
  24. 根据权利要求13至23任一项所述的图像预测装置,其特征在于,所述图像预测装置应用于视频编码装置中或者所述图像预测装置应用于视频解码装置中。
  25. 一图像预测装置,其特征在于,包括:存储器和处理器;
    所述处理器用于,确定当前图像块中的W个控制点的运动矢量;利用运动模型和所述W个控制点的运动矢量计算得到所述当前图像块的P个像素单元的运动矢量,其中,所述确定的所述W个控制点的运动矢量的精度为1/n像素精度,所述计算得到的所述P个像素单元中的每个像素单元的运动矢量的精度为1/N像素精度,所述P个像素单元为所述当前图像块的部分或全部像素单元,其中,所述P个像素单元中的每个像素单元的运动矢量用于确定相应像素单元在参考图像中的对应参考像素单元,所述W、所述n和所述N为大于1的整数,所述N大于所述n,所述P为正整数;利用相位数为Q的插值滤波器对所述P个像素单元中的每个像素单元在参考图像中的对应参考像素单元的像素进行插值滤波,以得到所述P个像素单元中的每个像素单元的像素预测值,其中,所述Q为大于所述n的整数。
  26. 根据权利要求25所述的图像预测装置,其特征在于,所述N的取值为预设的固定大小的取值,所述Q小于或等于所述N。
  27. 根据权利要求25或26所述的图像预测装置,其特征在于,在所述运动模型中利用所述N对所述W个控制点的运动矢量中的一个运动矢量的水平分量或者竖直分量放大N倍;或在所述运动模型中利用所述N对所述W个控制点中的任意两个控制点的运动矢量分量差值放大N倍。
  28. 根据权利要求25至27任一项所述的图像预测装置,其特征在于,所述处理器用于利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位,基于所述每个像素单元的相位确定 相应像素单元的相位数为Q的插值滤波器,其中,所述插值滤波器使用的滤波器系数与所述相位对应;利用确定的所述每个像素单元对应的相位数为Q的插值滤波器,对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波。
  29. 根据权利要求28所述的图像预测装置,其特征在于,
    在利用所述P个像素单元中的每个像素单元的运动矢量,计算得到所述P个像素单元中的每个像素单元的相位的方面,所述处理器用于按照如下公式,利用所述P个像素单元中的每个像素单元的运动矢量计算得到所述P个像素单元中的每个像素单元的相位,
    X’=abs(vNx)%N,或X’=vNx&((1<<M)-1);
    Y’=abs(vNy)%N,或Y’=vNy&((1<<M)-1);
    其中,当N为2的整数次幂的情况下所述M=log2N,其中,所述X’表示当前图像块中坐标为(x,y)的像素单元的水平相位,所述Y’表示当前图像块中坐标为(x,y)的像素单元的竖直相位,其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
  30. 根据权利要求28或29所述的图像预测装置,其特征在于,所述相位包括水平相位和竖直相位,
    其中,在基于所述每个像素单元的相位确定相应像素单元的相位数为Q的插值滤波器的方面,所述处理器用于,基于所述每个像素单元的水平相位确定相应像素单元的相位数为Q的水平插值滤波器,基于所述每个像素单元的竖直相位确定相应像素单元的相位数为Q的竖直插值滤波器,所述水平插值滤波器使用的滤波器系数与所述水平相位对应,所述竖直插值滤波器使用的滤波器系数与所述竖直相位对应。
  31. 根据权利要求30所述的图像预测装置,其特征在于,在所述利用确定的所述每个像素单元对应的相位数为Q的插值滤波器对相应像素单元在参考图像中的相应参考像素单元的像素进行插值滤波的方面,
    所述处理器具体用于,利用确定的像素单元i对应的相位数为Q的水平插值滤波器,对所述像素单元i在参考图像中的相应参考像素单元的像素进行水平插值滤波,以得到水平插值滤波结果;利用确定的所述像素单元i对应的相位数为Q的竖直插值滤波器对所述水平插值滤波结果进行竖直插值滤波,以得到所述像素单元i的像素预测值,其中,所述像素单元i为所述P像素单元中的任意1个像素单元;
    或者,
    所述处理器具体用于,利用确定的像素单元j对应的相位数为Q的竖直插值滤波器,对所述像素单元j在参考图像中的相应参考像素单元的像素进行竖直插值滤波,以得到竖直插值滤波结果;利用确定的所述像素单元j对应的相位数为Q的水平插值滤波器对所述水平插值滤波结果进行水平插值滤波,以得到所述像素单元j的像素预测值,其中,所述像素单元j为所述P个像素单元中的任意1个像素单元。
  32. 根据权利要求25至31任一项所述的图像预测装置,其特征在于,所述运动模型为平动运动模型、仿射运动模型、旋转运动模型、缩放运动模型、抛物线运动模型、剪切运动模型、透视运动模型或双线性运动模型。
  33. 根据权利要求25至32任一项所述的图像预测装置,其特征在于,在所述W等于2的情况下,所述运动模型表示为:
    Figure PCTCN2016087750-appb-100009
    或,
    Figure PCTCN2016087750-appb-100010
    其中,所述L表示所述当前图像块的宽或高,(v0x,v0y)和(v1x,v1y)表示2个控制点的1/n像素精度的运动矢量,所述vNx表示当前图像块中坐标为(x,y)的 像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量。
  34. 根据权利要求25至32任一项所述的图像预测装置,其特征在于,在所述W等于3的情况下,所述运动模型表示为:
    Figure PCTCN2016087750-appb-100011
    或,
    Figure PCTCN2016087750-appb-100012
    其中,所述vNx表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量水平分量,所述vNy表示当前图像块中坐标为(x,y)的像素单元的1/N像素精度的运动矢量竖直平分量,(v0x,v0y)、(v1x,v1y)和(v2x,v2y)表示3个控制点的1/n像素精度的运动矢量,所述w表示所述当前图像块的宽,所述h表示所述当前图像块的高。
  35. 根据权利要求25至34任一项所述的图像预测装置,其特征在于,所述W个控制点的运动矢量预测自所述当前图像块周边的已编码图像块或已解码图像块的精度为1/n像素精度的运动矢量。
  36. 根据权利要求25至35任一项所述的图像预测装置,其特征在于,所述图像预测装置应用于视频编码装置中或者所述图像预测装置应用于视频解码装置中。
PCT/CN2016/087750 2015-07-03 2016-06-29 图像预测方法和相关设备 Ceased WO2017005128A1 (zh)

Priority Applications (24)

Application Number Priority Date Filing Date Title
MX2018000067A MX381112B (es) 2015-07-03 2016-06-29 Metodo de prediccion de imagenes y aparato de prediccion de imagenes.
CN201680037454.3A CN107710761B (zh) 2015-07-03 2016-06-29 图像预测方法和相关设备
JP2017567671A JP6776276B2 (ja) 2015-07-03 2016-06-29 画像予測方法および画像予測装置
MYPI2017704989A MY191714A (en) 2015-07-03 2016-06-29 Picture prediction method and picture prediction apparatus
SG11201710800QA SG11201710800QA (en) 2015-07-03 2016-06-29 Picture prediction method and related device
EP24150152.7A EP4373087A3 (en) 2015-07-03 2016-06-29 Picture prediction method and related device
KR1020207002729A KR102173475B1 (ko) 2015-07-03 2016-06-29 픽처 예측 방법 및 픽처 예측 장치
KR1020187001663A KR102073638B1 (ko) 2015-07-03 2016-06-29 픽처 예측 방법 및 픽처 예측 장치
AU2016290017A AU2016290017B2 (en) 2015-07-03 2016-06-29 Picture prediction method and picture prediction apparatus
RU2018143851A RU2699258C2 (ru) 2015-07-03 2016-06-29 Способ прогнозирования изображения и устройство прогнозирования изображения
MX2021003800A MX2021003800A (es) 2015-07-03 2016-06-29 Método de predicción de imágenes y aparato de predicción de imágenes.
BR112018000085-0A BR112018000085B1 (pt) 2015-07-03 2016-06-29 Método e aparelho de previsão de imagem e meio legível por computador
PL16820779.3T PL3306934T3 (pl) 2015-07-03 2016-06-29 Sposób predykcji obrazu i powiązane urządzenie
KR1020207031100A KR102390695B1 (ko) 2015-07-03 2016-06-29 픽처 예측 방법 및 픽처 예측 장치
EP16820779.3A EP3306934B1 (en) 2015-07-03 2016-06-29 Image prediction method and related device
RU2018103787A RU2675092C1 (ru) 2015-07-03 2016-06-29 Способ прогнозирования изображения и устройство прогнозирования изображения
ES16820779T ES2982272T3 (es) 2015-07-03 2016-06-29 Método de predicción de imágenes y dispositivo relacionado
KR1020227013389A KR102549824B1 (ko) 2015-07-03 2016-06-29 픽처 예측 방법 및 픽처 예측 장치
US15/855,005 US10560714B2 (en) 2015-07-03 2017-12-27 Picture prediction method and picture prediction apparatus
ZA2018/00017A ZA201800017B (en) 2015-07-03 2018-01-02 Picture prediction method and picture prediction apparatus
US16/734,586 US10771809B2 (en) 2015-07-03 2020-01-06 Picture prediction method and picture prediction apparatus
US17/012,658 US11240529B2 (en) 2015-07-03 2020-09-04 Picture prediction method and picture prediction apparatus
US17/556,579 US11831902B2 (en) 2015-07-03 2021-12-20 Picture prediction method and picture prediction apparatus
US18/494,259 US12341989B2 (en) 2015-07-03 2023-10-25 Picture prediction method and picture prediction apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510391765.7A CN106331722B (zh) 2015-07-03 2015-07-03 图像预测方法和相关设备
CN201510391765.7 2015-07-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/855,005 Continuation US10560714B2 (en) 2015-07-03 2017-12-27 Picture prediction method and picture prediction apparatus

Publications (1)

Publication Number Publication Date
WO2017005128A1 true WO2017005128A1 (zh) 2017-01-12

Family

ID=57684872

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/087750 Ceased WO2017005128A1 (zh) 2015-07-03 2016-06-29 图像预测方法和相关设备

Country Status (15)

Country Link
US (5) US10560714B2 (zh)
EP (2) EP4373087A3 (zh)
JP (6) JP6776276B2 (zh)
KR (4) KR102173475B1 (zh)
CN (2) CN106331722B (zh)
AU (1) AU2016290017B2 (zh)
ES (1) ES2982272T3 (zh)
HU (1) HUE066376T2 (zh)
MX (3) MX381112B (zh)
MY (1) MY191714A (zh)
PL (1) PL3306934T3 (zh)
RU (2) RU2699258C2 (zh)
SG (1) SG11201710800QA (zh)
WO (1) WO2017005128A1 (zh)
ZA (1) ZA201800017B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019093922A1 (en) * 2017-11-07 2019-05-16 Huawei Technologies Co., Ltd Interpolation filter for an inter prediction apparatus and method for video coding
JP2019528024A (ja) * 2016-08-15 2019-10-03 ノキア テクノロジーズ オーユー ビデオの符号化および復号

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
CN109274974B (zh) 2015-09-29 2022-02-11 华为技术有限公司 图像预测的方法及装置
WO2018131986A1 (ko) 2017-01-16 2018-07-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
CN109729352B (zh) * 2017-10-27 2020-07-21 华为技术有限公司 确定仿射编码块的运动矢量的方法和装置
CN109756737B (zh) * 2017-11-07 2020-11-17 华为技术有限公司 图像预测方法和装置
US11889100B2 (en) 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding
US11570443B2 (en) * 2018-01-25 2023-01-31 Wilus Institute Of Standards And Technology Inc. Method and apparatus for video signal processing using sub-block based motion compensation
CN110166778A (zh) * 2018-02-12 2019-08-23 华为技术有限公司 视频解码方法、视频解码器以及电子设备
WO2019194506A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 어파인 인터 예측에 기반한 영상 코딩 방법 및 그 장치
CN111937399B (zh) * 2018-04-03 2023-07-14 英迪股份有限公司 基于仿射模型的图像编码/解码方法和装置
WO2019244719A1 (en) * 2018-06-18 2019-12-26 Sharp Kabushiki Kaisha Systems and methods for performing affine motion compensation prediction for coding of video data
TWI731345B (zh) 2018-06-19 2021-06-21 大陸商北京字節跳動網絡技術有限公司 模式相依運動向量差精確集
WO2020009449A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
CN115842912A (zh) 2018-08-04 2023-03-24 抖音视界有限公司 不同解码器侧运动矢量推导模式之间的交互
CN110868602B (zh) * 2018-08-27 2024-04-12 华为技术有限公司 视频编码器、视频解码器及相应方法
CN110876065A (zh) * 2018-08-29 2020-03-10 华为技术有限公司 候选运动信息列表的构建方法、帧间预测方法及装置
MX2021002399A (es) 2018-08-28 2021-07-15 Huawei Tech Co Ltd Método y aparato para construir una lista de información de movimiento candidata, método de interpredicción y aparato.
KR102635047B1 (ko) 2018-09-19 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
CN111294601A (zh) * 2018-12-07 2020-06-16 华为技术有限公司 视频图像解码、编码方法及装置
CN120980252A (zh) 2019-01-31 2025-11-18 北京字节跳动网络技术有限公司 对称运动矢量差编解码模式的快速算法
CN118118659A (zh) 2019-01-31 2024-05-31 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
EP3700210A1 (en) * 2019-02-21 2020-08-26 Ateme Method and apparatus for image encoding
SG11202109031TA (en) * 2019-03-18 2021-09-29 Tencent America LLC Method and apparatus for video coding
AU2020250609B2 (en) 2019-04-01 2023-09-07 Beijing Bytedance Network Technology Co., Ltd. Using interpolation filters for history based motion vector prediction
EP3997881A4 (en) 2019-08-20 2022-09-14 Beijing Bytedance Network Technology Co., Ltd. SELECTIVE USE OF ALTERNATIVE INTERPOLATION FILTERS IN VIDEO PROCESSING
CN111260693B (zh) * 2020-01-20 2023-07-28 北京中科晶上科技股份有限公司 一种高空抛物的检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011053655A2 (en) * 2009-10-30 2011-05-05 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
CN103039075A (zh) * 2010-05-21 2013-04-10 Jvc建伍株式会社 图像编码装置、图像编码方法及图像编码程序、以及图像解码装置、图像解码方法及图像解码程序
CN104363451A (zh) * 2014-10-27 2015-02-18 华为技术有限公司 图像预测方法及相关装置
CN104539966A (zh) * 2014-09-30 2015-04-22 华为技术有限公司 图像预测方法及相关装置
CN104661031A (zh) * 2015-02-16 2015-05-27 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
JP2798035B2 (ja) * 1996-01-17 1998-09-17 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
KR100215451B1 (ko) 1996-05-29 1999-08-16 윤종용 임의형태 물체를 포함한 동화상의 부호화 및 복호화시스템
JP4253881B2 (ja) * 1998-07-17 2009-04-15 ソニー株式会社 撮像装置
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
MXPA04006814A (es) 2002-01-14 2004-12-06 Nokia Corp Filtros dinamicos de codificacion.
US8175159B2 (en) * 2002-01-24 2012-05-08 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
JP4102973B2 (ja) 2002-04-24 2008-06-18 日本電気株式会社 動画像の符号化方法および復号化方法、これを用いた装置とプログラム
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7953152B1 (en) * 2004-06-28 2011-05-31 Google Inc. Video compression and encoding method
JP3934151B2 (ja) 2005-06-22 2007-06-20 松下電器産業株式会社 画像生成装置および画像生成方法
CN100496130C (zh) * 2006-01-26 2009-06-03 深圳艾科创新微电子有限公司 视频快速运动估计方法
JP4380638B2 (ja) * 2006-01-31 2009-12-09 トヨタ自動車株式会社 色再現方法
JP4877090B2 (ja) * 2007-06-18 2012-02-15 ソニー株式会社 画像処理装置、画像処理方法、及びプログラム
US8514939B2 (en) * 2007-10-31 2013-08-20 Broadcom Corporation Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing
CN101540902B (zh) * 2008-03-20 2011-02-02 华为技术有限公司 运动矢量的缩放方法和装置、编解码方法和系统
FR2933565A1 (fr) * 2008-07-01 2010-01-08 France Telecom Procede et dispositif de codage d'une sequence d'images mettant en oeuvre une prediction temporelle, signal, support de donnees, procede et dispositif de decodage, et produit programme d'ordinateur correspondants
US8374444B2 (en) 2008-08-06 2013-02-12 Sony Corporation Method and apparatus for providing higher resolution images in an embedded device
CN101902632B (zh) * 2009-05-25 2013-03-20 华为技术有限公司 像素插值滤波方法及装置,解码方法及系统
JP5234368B2 (ja) 2009-09-30 2013-07-10 ソニー株式会社 画像処理装置および方法
BR112012025206B1 (pt) * 2010-04-09 2022-04-12 Mitsubishi Electric Corporation Dispositivo de decodificação de imagem em movimento
JP5686018B2 (ja) * 2010-05-21 2015-03-18 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法および画像符号化プログラム
CN102316317B (zh) 2010-07-10 2013-04-24 华为技术有限公司 一种生成图像预测值的方法和装置
WO2012012582A1 (en) * 2010-07-21 2012-01-26 Dolby Laboratories Licensing Corporation Reference processing using advanced motion models for video coding
US8736767B2 (en) * 2010-09-29 2014-05-27 Sharp Laboratories Of America, Inc. Efficient motion vector field estimation
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
JP2012104945A (ja) * 2010-11-08 2012-05-31 Sony Corp 画像処理装置と画像処理方法およびプログラム
US8761245B2 (en) * 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
MX347117B (es) 2011-06-24 2017-04-11 Mitsubishi Electric Corp Dispositivo de codificación de imagen, dispositivo de decodificación de imagen, método de codificacion de imagen, metodo de decodificación de imagen, y dispositivo de predicción de imagen.
CN103782599A (zh) * 2011-10-17 2014-05-07 株式会社东芝 编码方法和解码方法
EP2785056A4 (en) * 2011-11-24 2016-02-24 Nec Corp VIDEO CODING DEVICE, VIDEO CODING METHOD, AND PROGRAM
US9762904B2 (en) * 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US20130329806A1 (en) * 2012-06-08 2013-12-12 Qualcomm Incorporated Bi-layer texture prediction for video coding
EP4224858B1 (en) 2012-09-26 2025-05-07 Sun Patent Trust Image encoding computer program, image decoding computer program
US9959631B2 (en) * 2014-02-21 2018-05-01 Samsung Electronics Co., Ltd. Tomography apparatus and method for reconstructing tomography image thereof
CN104219520B (zh) * 2014-09-10 2018-11-20 华为技术有限公司 确定图像补偿模式的方法和装置
KR101775556B1 (ko) * 2015-04-06 2017-09-06 삼성전자주식회사 단층 촬영 장치 및 그에 따른 단층 영상 처리 방법
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
CN108886619A (zh) * 2016-01-07 2018-11-23 联发科技股份有限公司 用于视频编解码系统的仿射合并模式预测的方法及装置
EP3414900B1 (en) * 2016-03-15 2025-08-06 HFI Innovation Inc. Method and apparatus of video coding with affine motion compensation
EP3457696B1 (en) * 2016-05-13 2026-03-04 Sharp Kabushiki Kaisha Predicted image generation device, video decoding device and video encoding device
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
WO2018128379A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2018128380A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2018131986A1 (ko) * 2017-01-16 2018-07-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
US20190116376A1 (en) * 2017-10-12 2019-04-18 Qualcomm Incorporated Motion vector predictors using affine motion model in video coding
US11889100B2 (en) * 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding
US10757417B2 (en) * 2018-01-20 2020-08-25 Qualcomm Incorporated Affine motion compensation in video coding
US10652571B2 (en) * 2018-01-25 2020-05-12 Qualcomm Incorporated Advanced motion vector prediction speedups for video coding
US10944984B2 (en) * 2018-08-28 2021-03-09 Qualcomm Incorporated Affine motion prediction
US20200120335A1 (en) * 2018-10-12 2020-04-16 Qualcomm Incorporated Affine candidate derivation for video coding
JP7189069B2 (ja) 2019-04-05 2022-12-13 レンゴー株式会社 蓋体およびこれを備えた包装箱

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011053655A2 (en) * 2009-10-30 2011-05-05 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
CN103039075A (zh) * 2010-05-21 2013-04-10 Jvc建伍株式会社 图像编码装置、图像编码方法及图像编码程序、以及图像解码装置、图像解码方法及图像解码程序
CN104539966A (zh) * 2014-09-30 2015-04-22 华为技术有限公司 图像预测方法及相关装置
CN104363451A (zh) * 2014-10-27 2015-02-18 华为技术有限公司 图像预测方法及相关装置
CN104661031A (zh) * 2015-02-16 2015-05-27 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HUANG, HAN ET AL.: "Affine SKIP and DIRECT Modes for Efficient Video Coding", VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP, 2012, pages 1 - 6, XP032309255 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019528024A (ja) * 2016-08-15 2019-10-03 ノキア テクノロジーズ オーユー ビデオの符号化および復号
US10659802B2 (en) 2016-08-15 2020-05-19 Nokia Technologies Oy Video encoding and decoding
WO2019093922A1 (en) * 2017-11-07 2019-05-16 Huawei Technologies Co., Ltd Interpolation filter for an inter prediction apparatus and method for video coding
US11297324B2 (en) 2017-11-07 2022-04-05 Huawei Technologies Co., Ltd. Interpolation filter for an inter prediction apparatus and method for video coding
US11375199B2 (en) 2017-11-07 2022-06-28 Huawei Technologies Co., Ltd. Interpolation filter for an inter prediction apparatus and method for video coding

Also Published As

Publication number Publication date
EP3306934A1 (en) 2018-04-11
EP3306934B1 (en) 2024-03-06
SG11201710800QA (en) 2018-01-30
JP7557024B2 (ja) 2024-09-26
KR102390695B1 (ko) 2022-04-26
MY191714A (en) 2022-07-09
MX2018000067A (es) 2018-03-16
RU2018143851A3 (zh) 2019-07-17
ES2982272T3 (es) 2024-10-15
KR20220057639A (ko) 2022-05-09
CN106331722A (zh) 2017-01-11
US11240529B2 (en) 2022-02-01
KR102549824B1 (ko) 2023-06-30
US20200145689A1 (en) 2020-05-07
PL3306934T3 (pl) 2024-06-24
US11831902B2 (en) 2023-11-28
JP2018524918A (ja) 2018-08-30
EP3306934A4 (en) 2018-05-23
JP6776276B2 (ja) 2020-10-28
JP7558352B2 (ja) 2024-09-30
ZA201800017B (en) 2019-08-28
EP4373087A2 (en) 2024-05-22
US12341989B2 (en) 2025-06-24
JP7004782B2 (ja) 2022-01-21
KR20180019688A (ko) 2018-02-26
AU2016290017A1 (en) 2018-01-25
BR112018000085A2 (zh) 2018-08-28
MX2021003800A (es) 2023-02-01
KR20200125760A (ko) 2020-11-04
US20240187638A1 (en) 2024-06-06
KR102073638B1 (ko) 2020-02-05
KR20200013266A (ko) 2020-02-06
RU2699258C2 (ru) 2019-09-04
MX2023000807A (es) 2023-02-27
US10560714B2 (en) 2020-02-11
EP4373087A3 (en) 2024-05-29
CN107710761B (zh) 2020-02-14
JP2021022936A (ja) 2021-02-18
US20210058641A1 (en) 2021-02-25
CN106331722B (zh) 2019-04-26
JP2022044613A (ja) 2022-03-17
US20180139468A1 (en) 2018-05-17
JP2022044612A (ja) 2022-03-17
MX381112B (es) 2025-03-12
AU2016290017B2 (en) 2019-07-11
US20220116647A1 (en) 2022-04-14
JP2023164435A (ja) 2023-11-10
JP7335315B2 (ja) 2023-08-29
KR102173475B1 (ko) 2020-11-03
JP2023164434A (ja) 2023-11-10
RU2675092C1 (ru) 2018-12-14
HUE066376T2 (hu) 2024-07-28
JP7335314B2 (ja) 2023-08-29
US10771809B2 (en) 2020-09-08
RU2018143851A (ru) 2019-02-21
CN107710761A (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
JP7335314B2 (ja) 画像予測方法および関連装置
US12382081B2 (en) Picture prediction method and related apparatus
CN107534770B (zh) 图像预测方法和相关设备
WO2017005146A1 (zh) 视频编码和解码方法、视频编码和解码装置
CN109076234A (zh) 图像预测方法和相关设备
HK1243852B (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: 16820779

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017567671

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 11201710800Q

Country of ref document: SG

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: MX/A/2018/000067

Country of ref document: MX

ENP Entry into the national phase

Ref document number: 20187001663

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2016290017

Country of ref document: AU

Date of ref document: 20160629

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2016820779

Country of ref document: EP

Ref document number: 2018103787

Country of ref document: RU

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112018000085

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112018000085

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20180103