WO2014107961A1 - 运动矢量预测值列表构建方法和视频编解码方法及装置 - Google Patents

运动矢量预测值列表构建方法和视频编解码方法及装置 Download PDF

Info

Publication number
WO2014107961A1
WO2014107961A1 PCT/CN2013/082035 CN2013082035W WO2014107961A1 WO 2014107961 A1 WO2014107961 A1 WO 2014107961A1 CN 2013082035 W CN2013082035 W CN 2013082035W WO 2014107961 A1 WO2014107961 A1 WO 2014107961A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
vector predictor
list
value
zero
Prior art date
Application number
PCT/CN2013/082035
Other languages
English (en)
French (fr)
Inventor
林永兵
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2014107961A1 publication Critical patent/WO2014107961A1/zh

Links

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
    • 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

Definitions

  • the present invention relates to the field of image processing technologies, and in particular, to a motion vector predictor list construction method and a video codec method and apparatus.
  • HEVC High Efficient Video Coding
  • 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.
  • a video sequence includes a series of pictures, the pictures are further divided into slices, and the slices are further divided into blocks.
  • the video encoding is in block units and can be encoded from left to right and from top to bottom line from the top left position of the picture.
  • MB macroblocks
  • MB can be further divided into multiple prediction blocks (artition, which can be used for predictive coding).
  • coding units CU, Coding Unit
  • Basic concepts such as unit (PU, Prediction Unit) and transform unit (TU, Transform Unit) are functionally divided into multiple units and described in a new tree-based structure.
  • a CU can be divided into smaller CUs according to a quadtree, and smaller CUs can continue to be divided to form a quadtree structure.
  • CU is similar to macro block MB or code block.
  • a basic unit for dividing and encoding a code image; a PU may correspond to a prediction block and is a basic unit of predictive coding.
  • the CU is further divided into a plurality of PUs according to the division mode; the TU may correspond to the transform block, and is a basic unit for transforming the prediction residual.
  • CTB Coding Tree Block
  • the pre-draft is based on the mechanism of Motion Compensated Prediction (MCP).
  • MCP Motion Compensated Prediction
  • the current image block finds a corresponding reference block in the reference image based on a motion vector (MV, Motion vector), which is a predicted value of the current image block.
  • MV Motion Vector
  • the current image block has two or more motion vectors, and the motion vectors can be used to obtain a plurality of reference blocks from two or more reference images, and the reference blocks are used to obtain prediction values of the current image block, such as Their average value is used as the predicted value of the current image block.
  • the current picture code allows for a plurality of reference pictures, which may form a reference picture list efPicList), from which a reference picture of the current picture block may be selected for predictive coding.
  • the motion vector of the current coded block points to the reference picture.
  • P slice there is a reference picture list
  • the motion vector of the block in the P slice points to a reference picture in the reference picture list; and for the B slice, there are up to 2 reference picture lists, B s
  • the block in 1 ice allows two MVs to point to the reference images in the two reference image lists.
  • the method of MV prediction + coding prediction difference can be used.
  • the motion vector predictor (MVP, MV predictor) of the current image block can be obtained by the MV prediction technique. 0 MV prediction is performed in both the encoding and decoding processes to obtain the same MVP, and the matching of encoding and decoding is achieved.
  • the SVC (Scalable Video Coding) standard in the HEVC standard is a layered coding technology that supports multi-layer coding and supports video scalability in the airspace, time domain, and signal-to-noise ratio.
  • a layer involved in the SVC standard may be divided into a base layer (BL) and an enhancement layer (EL), wherein the number of enhancement layers may include a plurality.
  • BL base layer
  • EL enhancement layer
  • an inter-layer prediction (ILP) technique is also utilized.
  • Each layer is - Video sequences, multiple layers have the same or similar video content, and there is a great correlation between the layers.
  • ILP technology can well remove these correlations and improve the coding compression performance of the enhancement layer.
  • the image of BL can be used as an additional reference image for the EL.
  • the Zero value MVP may point to the reference image from BL.
  • the role of zero MVP is not fully utilized in the existing technology mechanisms. Zero MVP is added to the end of MVP l i s t only when the number of MVP does not meet the length requirement of MVP l i s t. Research and practice have found that the existing technology does not adapt well to the characteristics of SVC coding, which limits the improvement of compression coding performance.
  • Embodiments of the present invention provide a motion vector predictor list construction method, a video codec method, and related devices, in order to improve video compression coding performance.
  • a first aspect of the present invention provides a method for constructing a motion vector predictor list, which may include: obtaining N motion vector predictors corresponding to a first image block;
  • the motion vector predictor list Constructing a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor a time domain motion vector predictor and M spatial domain motion vector predictors, wherein the zero value motion vector predictor and the position of the M air domain motion vector predictor in the motion vector predictor list are located in the time domain
  • the reference image pointed to by the zero-value motion vector predictor is from an image layer different from the image layer in which the first image block is located, and the position of the motion vector predictor list corresponds to the front position The smaller the index number.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictors; or the zero-value motion vector predictor is in the motion vector predictor list a position between the first spatial domain motion vector predictor and the second spatial motion vector predictor, the M spatial motion vector predictor comprising the first spatial motion vector predictor and the second spatial motion vector predictor .
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the inter-layer motion vector predictor is located at a start position in the motion vector predictor list.
  • the zero value motion vector prediction value is directed to The reference image is from an adjacent image layer of the image layer in which the first image block is located.
  • the zero value motion vector prediction value is directed to The reference image comes from the base layer.
  • a second aspect of the present invention provides a method for constructing a motion vector predictor list, including: obtaining N motion vector predictors corresponding to a first image block;
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor
  • the time domain motion vector predictor and the M spatial domain motion vector predictor are used to indicate the number of bits indicated by the first position of the position of the zero value motion vector predictor in the motion vector predictor list, which is smaller than And a number of bits indicated by a second position indicating a position of the time domain motion vector predictor in the motion vector predictor list; indicating that the first spatial motion vector predictor is in the motion vector predictor list
  • the number of bits indicated by the third position of the location is smaller than the number of bits indicated by the second location indicating the location of the time domain motion vector predictor in the motion vector predictor list, where a spatial domain motion vector prediction value is any one of the M spatial domain motion vector predictors, and the zero-value motion vector predictor is pointed to A reference image from the first image block is located image layer different image layers.
  • the number of bits indicated by the first location is smaller than the number of bits indicated by the third location; or, the number of bits indicated by the first location is greater than the number of bits indicated by the fourth location and less than the number of bits indicated by the fifth location, where
  • the fourth location indication is used to indicate a location of the second spatial domain motion vector predictor in the motion vector predictor list
  • the fifth location indication is used to indicate the third airspace motion
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the sixth position indication The number of bits is smaller than the number of bits indicated by the third position and the number of bits indicated by the second position, and the sixth position indication is used to indicate the position of the inter-layer motion vector predictor in the motion vector predictor list.
  • a third aspect of the present invention provides a video encoding method, including:
  • the motion vector predictor list Constructing a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor a time domain motion vector predictor and M spatial domain motion vector predictors, wherein the zero value motion vector predictor and the position of the M air domain motion vector predictor in the motion vector predictor list are located in the time domain
  • the reference image pointed to by the zero-value motion vector predictor is from an image layer different from the image layer in which the first image block is located, and the position of the motion vector predictor list corresponds to the front position The smaller the index number
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictors; or the zero-value motion vector predictor is in the motion vector predictor list a position between the first spatial domain motion vector predictor and the second spatial motion vector predictor, the M spatial motion vector predictor comprising the first spatial motion vector predictor and the second spatial motion vector predictor .
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the inter-layer motion vector predictor is located at a start position in the motion vector predictor list.
  • a fourth aspect of the present invention provides a video decoding method, including:
  • the first location indication is used to indicate a location of a motion vector predictor of the first image block in the motion vector predictor list; N motion vector predictors corresponding to an image block;
  • the motion vector predictor list Constructing a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor a time domain motion vector predictor and M spatial domain motion vector predictors, wherein the zero value motion vector predictor and the position of the M air domain motion vector predictor in the motion vector predictor list are located in the time domain
  • the reference image pointed to by the zero-value motion vector predictor is from an image layer different from the image layer in which the first image block is located, and the position of the motion vector predictor list corresponds to the front position The smaller the index number
  • the first image block is decoded based on the determined motion vector predictor of the first image block.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictors; or the zero-value motion vector predictor is in the motion vector predictor list a position between the first spatial domain motion vector predictor and the second spatial motion vector predictor, the M spatial motion vector predictor comprising the first spatial motion vector predictor and the second spatial motion vector predictor .
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the inter-layer The motion vector predictor is located at a starting position in the motion vector predictor list.
  • a fifth aspect of the present invention provides a motion vector predictor list construction apparatus, including: an obtaining unit, configured to obtain N motion vector predictors corresponding to a first image block;
  • a first list construction unit configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors
  • the value includes a zero value motion vector predictor, a time domain motion vector predictor, and M spatial domain motion vector predictors, the zero value motion vector predictor and the M spatial domain motion vector predictor being in the motion vector predictor list a position in the time domain motion vector predictor, the reference image pointed to by the zero-value motion vector predictor is from an image layer different from an image layer in which the first image block is located, the motion vector predictor
  • the index corresponding to the position in the top of the list is smaller.
  • the reference image pointed by the zero-value motion vector predictor obtained by the obtaining unit is from a base layer.
  • a sixth aspect of the present invention provides a motion vector predictor list construction apparatus, including: an obtaining unit, which obtains N motion vector predictors corresponding to a first image block;
  • a second list construction unit configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors
  • the value includes a zero value motion vector predictor, a time domain motion vector predictor, and M spatial domain motion vector predictors for indicating a first position of the zero value motion vector predictor in the motion vector predictor list a number of bits indicated by the location, less than a number of bits indicating a second location indicating a location of the time domain motion vector predictor in the motion vector predictor list; indicating that the first spatial motion vector predictor is The number of bits indicated by the third position of the position in the motion vector predictor list is smaller than the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list a number of bits, wherein the first spatial motion vector predictor is any one of the M spatial motion vector predictors, and the zero-value motion vector
  • the reference picture prediction value points to the first image from the image layer located block
  • a seventh aspect of the present invention provides a video encoder, including:
  • An obtaining unit configured to obtain N motion vector predictors corresponding to the first image block
  • a first list construction unit configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors
  • the value includes a zero value motion vector predictor, a time domain motion vector predictor, and M spatial domain motion vector predictors, the zero value motion vector predictor and the M spatial domain motion vector predictor being in the motion vector predictor list a position in the time domain motion vector predictor, the reference image pointed to by the zero-value motion vector predictor is from an image layer different from an image layer in which the first image block is located, the motion vector predictor
  • the index corresponding to the position in the top of the list is smaller;
  • a motion vector predictor determining unit configured to determine a motion vector predictor of the first image block based on the motion vector predictor list
  • a coding unit configured to encode the first image block based on a motion vector predictor of the first image block determined by the motion vector predictor determining unit.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M air-space motion vector predictors; or a position of the zero-value motion vector predictor in the motion vector predictor list is located between the first spatial domain motion vector predictor and the second spatial domain motion vector predictor, the M spatial domain motion vector predictor including the first The spatial motion vector predictor and the second spatial motion vector predictor.
  • An eighth aspect of the present invention provides a video decoder, including:
  • a receiving unit configured to receive the encoded first image block and the first location indication, where the first location indication is used to indicate a location of the motion vector predictor of the first image block in the motion vector predictor list ;
  • a obtaining unit configured to obtain N motion vector predictors corresponding to the first image block;
  • a first list building unit configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector The predicted value list records the N motion vector predictors, the N motion vector predictors including a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial motion vector predictors, the zero-value motion
  • the vector prediction value and the position of the M spatial motion vector predictor in the motion vector predictor list are located before the time domain motion vector predictor, and the reference image pointed to by the zero-value motion vector predictor is from An image layer different from an image layer in which the first image block is located, wherein an index number corresponding to a position higher in the motion vector predictor list is smaller;
  • a motion vector predictor determining unit configured to determine a motion vector predictor of the first image block based on the first location indication and the motion vector predictor list;
  • a decoding unit configured to decode the first image block based on a motion vector predictor of the first image block determined by the motion vector predictor determining unit.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictors; or the zero-value motion vector predictor is in the motion vector predictor list a position between the first spatial domain motion vector predictor and the second spatial motion vector predictor, the M spatial motion vector predictor comprising the first spatial motion vector predictor and the second spatial motion vector predictor .
  • a motion vector of N prediction blocks corresponding to the first coding block is obtained; and a motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N Motion vectors of predicted blocks, motion vectors of N prediction blocks include zero-value motion vector predictors, time-domain motion vector predictors and M-space motion vector predictors, zero-value motion vector predictors and M-space motion vector predictions The position of the value in the motion vector predictor list is before the time domain motion vector predictor.
  • the zero-value motion vector predictor Since the importance of the zero-value motion vector predictor is fully considered, the zero-value motion vector predictor is placed in the front position in the motion vector predictor list, and thus, It is beneficial to improve the probability that the zero-value motion vector predictor is selected as the motion vector of the first coded block, thereby contributing to better inter-layer prediction of the zero-valued motion vector predictor, thereby improving the MV prediction accuracy and improving Video encoding compression performance.
  • FIG. 1 is a schematic flow chart of a method for constructing a motion vector predictor list according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a positional relationship between a current image block and a reference image block according to an embodiment of the present invention
  • Figure 2-b is a schematic diagram of an MVP list according to an embodiment of the present invention.
  • FIG. 2 is a schematic diagram of another MVP list according to an embodiment of the present invention.
  • FIG. 2-d is a schematic diagram of another MVP list according to an embodiment of the present invention.
  • FIG. 2-e is a schematic diagram of another MVP list according to an embodiment of the present invention.
  • FIG. 2-f is a schematic diagram of another MVP list according to an embodiment of the present invention.
  • FIG. 2-g is a schematic diagram of another MVP list according to an embodiment of the present invention.
  • FIG. 3 is a schematic flowchart of another method for constructing a motion vector predictor list according to an embodiment of the present invention.
  • FIG. 4 is a schematic flowchart of a video encoding method according to an embodiment of the present invention.
  • FIG. 5 is a schematic flowchart of a video decoding method according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic flowchart of another video encoding method according to an embodiment of the present invention
  • FIG. 7 is a schematic flowchart of another video decoding method according to an embodiment of the present invention
  • FIG. 9 is a schematic diagram of a video processing device according to an embodiment of the present invention
  • FIG. 1 is a schematic diagram of another apparatus for constructing a motion vector predictor list according to an embodiment of the present invention
  • FIG. 11 is a schematic diagram of another video processing device according to an embodiment of the present invention.
  • FIG. 12 is a schematic diagram of a video encoder according to an embodiment of the present invention.
  • FIG. 13 is a schematic diagram of another video encoder according to an embodiment of the present disclosure.
  • FIG. 14 is a schematic diagram of another video encoder according to an embodiment of the present invention.
  • FIG. 15 is a schematic diagram of another video encoder according to an embodiment of the present disclosure.
  • 16 is a schematic diagram of a video decoder according to an embodiment of the present invention.
  • FIG. 17 is a schematic diagram of another video decoder according to an embodiment of the present disclosure.
  • FIG. 18 is a schematic diagram of another video decoder according to an embodiment of the present invention.
  • FIG. 19 is a schematic diagram of another video decoder according to an embodiment of the present invention. detailed description
  • Embodiments of the present invention provide a motion vector predictor list construction method, a video codec method, and related devices, in order to improve video compression coding performance.
  • the method may include: obtaining N motion vector predictors corresponding to the first image block; constructing a motion vector predictor list corresponding to the first image block, where the motion vector The predicted value list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors, and the zero motion vector predictor And the position of the M spatial motion vector predictor in the motion vector predictor list is located before the time domain motion vector predictor, and the reference image pointed by the zero-value motion vector predictor is from the image of the first image block
  • the layer of different image layers has a smaller index number corresponding to the position in the motion vector predictor list.
  • FIG. 1 is a schematic flowchart of a method for constructing a motion vector predictor list according to an embodiment of the present invention.
  • a method for constructing a motion vector predictor list provided by an embodiment of the present invention may include the following contents:
  • a motion vector predictor (MVP) of a first image block (which may be regarded as a current image block) includes a spatial domain MVP (SMVP, Spa t ia l MVP ) and a time domain.
  • MVP MVP
  • SMVP refers to an MV corresponding to a reference block of an adjacent position of the current image block, and the reference block is in the same image as the current image block.
  • TMVP is an MV value obtained according to a time domain reference image of a current image block.
  • the so-called time domain means that the image of the current image block and the reference image of the current image block are at different time positions on the time axis of the video sequence.
  • the MV time domain distance refers to the distance between the reference image pointed by the MV and the image of the current image block, that is, the P0C difference value.
  • the MV of the reference block may be scaled according to the time domain distance to obtain the MVP of the current image block.
  • the N motion vector predictors corresponding to the obtained first image block may include: a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial domain motion vector predictors, where the zero-value motion vector predictor
  • the reference image pointed to is from an image layer that is different from the image layer in which the first image block is located. Among them, the predicted values of M airspace motion vectors are different.
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, where the N motion vector predictors include a zero-value motion vector predictor and a time domain.
  • the motion vector predictor and the M spatial motion vector predictors, the position of the zero-value motion vector predictor and the M spatial motion vector predictor in the motion vector predictor list are located before the time-domain motion vector predictor.
  • the smaller the index number corresponding to the position in the motion vector predictor list the more the index number of each position in the motion vector predictor list is incremented from the start position. For example, the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index number corresponding to the position is incremented in turn.
  • N may be equal to 5, 6, 7 or 8 or other possible values
  • M may be equal to 2, 3, 4 or 5 or other possible values, of course M is less than N.
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the reference image pointed to by the zero-value motion vector predictor may be from the base layer.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictor; or the zero-value motion vector predictor is predicted in the motion vector.
  • the position in the value list is located between the first spatial domain motion vector predictor and the second spatial motion vector predictor, and the M spatial motion vector predictor includes the first spatial motion vector predictor and the second spatial motion vector predictor.
  • the N motion vector predictors may further include an inter-layer motion vector predictor (which may not be used), where the inter-layer motion vector predictor may be located in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the predicted value of the inter-layer motion vector may be Obtained based on motion vectors of other image layers (eg, base layers).
  • HEVC adopts a method based on multi-motion vector competition to improve the motion vector prediction accuracy and improve the coding compression performance.
  • the principle of multi-motion vector competition is to obtain a plurality of motion vectors (including an MV value and an index value of a reference image pointed by the MV) according to a plurality of encoded reference blocks of the current image block, and the plurality of motion vectors are arranged in a certain order. Placed in the list, called the MVP list, you can assign an index number to each motion vector (the index number can be used to indicate its position in the MVP list).
  • the decoding end can also construct an MVP list according to the motion vector of the decoded reference block of the current image block, and the MVP list constructed by the decoding end is identical to the MVP list constructed by the encoding end, so that the decoded index number is used to decode
  • the terminal may determine a motion vector as the motion vector predictor of the current image block from the MVP list constructed therefrom.
  • HEVC has several inter-frame prediction modes. Most of these modes can be constructed by multi-motion vector competition to construct MVP list for current image block MV prediction.
  • the reference block of the current image block includes a spatial reference block and a time domain reference block (co-location), where the motion vector corresponding to the spatial reference block is called a spatial motion vector, and the motion vector corresponding to the time domain reference block is called Domain motion vector.
  • a spatial motion vector the motion vector corresponding to the spatial reference block
  • Domain motion vector the motion vector corresponding to the time domain reference block.
  • the constructed MVP list records these spatial domain motion vectors and time domain motion vectors (ie, the MVP of the current image block).
  • the HEVC standard SVC standard is a layered coding technology that supports multi-layer (leg lTi-layer) coding.
  • the image of BL can be used as an additional reference image for the EL.
  • the 0 value MVP may point to the reference image from the BL.
  • a zero value MVP has a special use in layering or SVC coding.
  • EL and BL have a strong correlation, and Inter-layer prediction can remove this correlation and improve coding compression performance.
  • the role of the zero MVP is fully considered. Instead of placing the zero MVP at the end of the MVP list, the zero MVP is placed in the front position of the MVP list, and thus, It is beneficial to improve the probability that the zero MVP is selected as the motion vector of the current coding block, thereby facilitating the better inter-layer prediction of the zero MVP pointing to other layers, thereby improving the MV prediction accuracy and improving the video coding compression. performance.
  • the reference image block AO is an image block corresponding to the lower left corner position of the current image block
  • the reference image block A1 is an image block corresponding to the lower left corner position of the current image block
  • the reference image block B0 is the current image block.
  • the reference image block B1 is an image block corresponding to the upper right corner position of the current image block; the reference image block B2 is an image block corresponding to the upper left corner position of the current image block.
  • A0, Al, B0, Bl, B2 may be inter-coded (Inter) coded image blocks, or may be intra- (Intra) coded image blocks.
  • the Inter coded image block has MV (including the MV value size and the corresponding reference image index pointed to by it), and the Intra coded image block has no MV.
  • the time domain motion vector predictor (TMVP: Tempora l MVP) is an MV obtained based on the time domain reference image of the current image block, and the time domain refers to the image of the current image block and the reference image of the current image block.
  • the reference image pointed by the inter-layer motion vector predictor may be from the image layer where the first image block is located, and the ILMVP may be obtained based on motion vectors of other image layers (eg, the base layer), where ILMVP may or may not be available. use.
  • Motion vector predictor list The index number corresponding to the position of the top position of China and Vietnam is smaller.
  • Figure 2-b shows a possible MVP list, where Zero MVP is located before SMVP, and SMVP (including SMVP-AO, SMVP-A SMVP-B0 and SMVP-B1, etc.)
  • the different SMVPs are MVs corresponding to A0, Al, B0, and B1.
  • the number of SMVPs can also be 2 or 3 or other numbers.
  • the IMMVP is located at the beginning of the MVP list.
  • Figure 2-c shows another possible MVP list, where ILMVP is assumed to be unavailable, so ILMVP is not recorded in the MVP list, Zero MVP is located at the beginning of the MVP list, and SMVP is located. Before TMVP.
  • Figure 2-d shows another possible MVP list, where Zero MVP is located after SMVP, Zero MVP is located before TMVP, and ILMVP is located at the beginning of MVP list.
  • Figure 2-e shows another possible MVP list, where ILMVP is assumed to be unavailable, so ILMVP is not recorded in the MVP list, Zero MVP is located after SMVP, and Zero MVP is located before TMVP.
  • Figure 2-f shows another possible MVP list, where Zero MVP is located between each SMVP (Figure 2-f takes the Zero MVP between SMVP-A1 and SMVP-B1 as an example). Of course, Zero MVP can also be between the other two SMVPs, and so on.
  • the SMVP is located before the TMVP, and the ILMVP is located at the beginning of the MVP list.
  • Figure 2-g shows another possible MVP list, where ILMVP is assumed to be unavailable, so ILMVP is not recorded in the MVP list, and Zero MVP is located between each SMVP ( Figure 2-g For example, the Zero MVP is located between SMVP-A1 and SMVP-B1. Of course, the Zero MVP can also be between the other two SMVPs, and so on.
  • the SMVP is located before the TMVP, and the ILMVP is located at the beginning of the MVP list.
  • the above example is mainly based on the merge mode in HEVC SVC. In fact, the same applies to the motion vector list construction methods involved in skip and AMVP mode. In addition to HEVC SVC In addition to the standard, the same applies to the motion vector list construction method involved in other codec techniques involving layering (leg i-layer).
  • the motion vectors of the N prediction blocks corresponding to the first coding block are obtained; and the motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N
  • the motion vector of the prediction block, the motion vector of the N prediction blocks includes a zero-value motion vector prediction value, a time-domain motion vector prediction value, and M spatial-domain motion vector prediction values, a zero-value motion vector prediction value, and M spatial domain motion vector prediction values.
  • the position in the motion vector predictor list is before the time domain motion vector predictor.
  • the zero-value motion vector predictor is placed at the front position in the motion vector predictor list, so that it is advantageous to increase the zero-value motion vector predictor to be selected as the first
  • the probability of a motion vector of a coded block which in turn helps to better play the inter-layer prediction of the zero-valued motion vector predictor, thereby improving the MV prediction accuracy and improving the video coding compression performance.
  • the method may include: obtaining N motion vector predictors corresponding to the first image block; constructing a motion vector predictor list corresponding to the first image block, where the motion vector The predicted value list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial motion vector predictors for indicating the zero-value motion.
  • the number of bits indicated by the first position of the position of the vector prediction value in the motion vector predictor list is smaller than the second position indication for indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the number of bits indicated by the third position indicating the position of the first spatial motion vector predictor in the motion vector predictor list is smaller than the motion vector predictor used to indicate the time domain motion vector predictor
  • the number of bits indicated by the second position of the position in the list of values, wherein, the first The spatial motion vector predictor is any one of the above M spatial motion vector predictors, and the zero-value motion vector predictor points to a reference image from an image layer different from the image layer in which the first image block is located.
  • FIG. 3 is another motion vector predictive value list structure according to an embodiment of the present invention.
  • another motion vector predictor list construction method provided by an embodiment of the present invention may include the following content:
  • the obtained N motion vector predictors corresponding to the first image block may include: a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial domain motion vector predictors, where The reference image pointed to by the above-mentioned zero-value motion vector predictor is derived from an image layer different from the image layer in which the first image block is located. Among them, the predicted values of M airspace motion vectors are different.
  • N may be equal to 5, 6, 7 or 8 or other possible values
  • M may be equal to 2, 3, 4 or 5 or other possible values, of course M is less than N.
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, and is used to indicate that the zero-value motion vector predictor is in the motion vector predictor list.
  • the number of bits indicated by the first position of the location is smaller than the number of bits indicated by the second location indicating the location of the time domain motion vector predictor in the motion vector predictor list;
  • the number of bits indicated by the third position of the position of the motion vector predictor in the motion vector predictor list is smaller than the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the number of bits indicated, the first spatial domain motion vector prediction value is any one of the above M spatial domain motion vector prediction values.
  • different positions of the motion vector predictor list may be indicated by using different bit number position indications, and the corresponding number of motion vector predictor lists may be determined according to the number of bits indicated by the position. position. For example, the number of bits indicated by the corresponding position of the position in the motion vector predictor list is smaller or larger. Of course, it is also possible that the number of bits indicated by the corresponding position in the middle position of the motion vector predictor list is smaller or larger. Large, of course, can be other variations of the coding end and the decoding end, or even there may be no rules.
  • the number of bits indicated by the first location is smaller than the number of bits indicated by the third location; or, the number of bits indicated by the first location is greater than the number of bits indicated by the fourth location and less than the bit indicated by the fifth location a fourth position indication for indicating a second spatial motion vector prediction
  • the value is in a position in the motion vector predictor list, and the fifth position indication is used to indicate that the third spatial motion vector predictor is located in the motion vector predictor list, and the M spatial motion vector predictor includes the second The spatial motion vector predictor and the third spatial motion vector predictor.
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the number of bits indicated by the sixth position is smaller than the number of bits indicated by the third position and the number of bits indicated by the second position
  • the sixth position indication is used to indicate the position of the inter-layer motion vector predictor in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (e.g., base layer).
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the reference image pointed to by the zero-value motion vector predictor may be from the base layer.
  • the motion vectors of the N prediction blocks corresponding to the first coding block are obtained; and the motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N
  • the motion vector of the prediction block, the motion vector of the N prediction blocks includes a zero-value motion vector prediction value, a time-domain motion vector prediction value, and M spatial-domain motion vector prediction values, a zero-value motion vector prediction value, and M spatial domain motion vector prediction values.
  • the number of bits indicated by the position of the position in the motion vector predictor list is less than the number of bits indicated by the position of the position of the time domain motion vector predictor in the motion vector predictor list.
  • the zero-value motion vector predictor is placed in the motion vector predictor list where the position indication bit number is smaller, thus facilitating the improvement of the zero-value motion vector predictor value.
  • the probability of selecting the motion vector of the first coding block further helps to better play the inter-layer prediction of the zero-value motion vector predictor, thereby improving the MV prediction accuracy and improving the video coding compression performance.
  • An embodiment of the video coding method of the present invention may include: obtaining N motion vector predictors corresponding to the first image block; constructing a motion vector predictor list corresponding to the first image block, where the motion vector predictor list record The above N motion vector predictors, the above N motion vectors
  • the quantity prediction value includes a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial-domain motion vector predictors, and the zero-value motion vector predictor and the M-space motion vector predictor are in the motion vector predictor list.
  • the position of the zero-value motion vector predictor is from the image layer different from the image layer where the first image block is located before the time domain motion vector predictor is located; the first image is determined based on the motion vector predictor list.
  • a motion vector predictor of the block encoding the first image block based on the determined motion vector predictor of the first image block.
  • FIG. 4 is a schematic flow chart of a video encoding method according to an embodiment of the present invention.
  • a video coding provided by an embodiment of the present invention may include the following content:
  • the obtained N motion vector predictors corresponding to the first image block may include: a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial domain motion vector predictors, where The reference image pointed to by the above-mentioned zero-value motion vector predictor is derived from an image layer different from the image layer in which the first image block is located. Among them, the predicted values of M airspace motion vectors are different.
  • N may be equal to 5, 6, 7 or 8 or other possible values
  • M may be equal to 2, 3, 4 or 5 or other possible values, of course M is less than N.
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, where the zero motion vector predictor and the M spatial motion vector predictors are The position in the motion vector predictor list is located before the time domain motion vector predictor; wherein, the smaller the index number corresponding to the front position in the motion vector predictor list, the index number of each position in the motion vector predictor list is from The starting position starts to increase in order.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index number corresponding to the position is sequentially incremented.
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the reference image pointed to by the zero-value motion vector predictor may be from the base layer.
  • the above-described zero-value motion vector predictor is predicted in the motion vector described above.
  • the position in the value list is located before the M spatial motion vector predictor; or the position of the zero motion vector predictor in the motion vector predictor list is located in the first spatial motion vector predictor and the second spatial motion vector predictor.
  • the M spatial domain motion vector predictors include a first spatial motion vector predictor and a second spatial motion vector predictor.
  • the N motion vector predictors may further include an inter-layer motion vector predictor (which may not be used), where the inter-layer motion vector predictor may be located in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (e.g., base layer).
  • a motion vector predictor of the first image block Determine, according to the foregoing motion vector predictor list, a motion vector predictor of the first image block.
  • a corresponding correspondence may be calculated for each motion vector predictor in each of the foregoing motion vector predictor lists.
  • the rate distortion cost, the motion vector predictor corresponding to the minimum rate distortion cost can be selected as the motion vector predictor of the first image block.
  • the motion vectors of the N prediction blocks corresponding to the first coding block are obtained; and the motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N
  • the motion vector of the prediction block, the motion vector of the N prediction blocks includes a zero-value motion vector prediction value, a time-domain motion vector prediction value, and M spatial-domain motion vector prediction values, a zero-value motion vector prediction value, and M spatial domain motion vector prediction values.
  • the position in the motion vector predictor list is before the time domain motion vector predictor.
  • the zero-value motion vector predictor is placed at the front position in the motion vector predictor list, so that it is advantageous to increase the zero-value motion vector predictor to be selected as the first
  • the probability of a motion vector of a coded block which in turn helps to better play the inter-layer prediction of the zero-valued motion vector predictor, thereby improving the MV prediction accuracy and improving the video coding compression performance.
  • the method may include: receiving the encoded first picture And a first position indication, where the first position indication is used to indicate a position of the motion vector predictor of the first image block in the motion vector predictor list; and the N motion vector predictions corresponding to the first image block are obtained.
  • a motion vector predictor list corresponding to the first image block, where the motion vector predictor list records the N motion vector predictors, where the N motion vector predictors include a zero-value motion vector predictor, a time domain a motion vector predictor and M spatial motion vector predictors, wherein the zero-value motion vector predictor and the position of the M-space motion vector predictor in the motion vector predictor list are located before the time-domain motion vector predictor,
  • the reference image pointed to by the zero-value motion vector predictor is derived from an image layer different from the image layer in which the first image block is located, and the motion vector predictor value of the first image block is determined based on the first position indication and the motion vector predictor list;
  • the determined motion vector predictor of the first image block decodes the first image block.
  • FIG. 5 is a schematic flowchart of another video decoding method according to an embodiment of the present invention.
  • another video decoding provided by an embodiment of the present invention may include the following content:
  • the first location indication is used to indicate a location of a motion vector predictor of the first image block in the motion vector predictor list
  • the obtained N motion vector predictors corresponding to the first image block may include: a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial domain motion vector predictors, where The reference image pointed to by the above-mentioned zero-value motion vector predictor is derived from an image layer different from the image layer in which the first image block is located. Among them, the predicted values of M airspace motion vectors are different.
  • N may be equal to 5, 6, 7 or 8 or other possible values
  • M may be equal to 2, 3, 4 or 5 or other possible values, of course M is less than N.
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, where the N motion vector predictors include a zero-value motion vector predictor and a time domain.
  • a motion vector predictor and M spatial motion vector predictors the zero-value motion vector predictor and the M spatial motion vector predictors in the motion vector prediction
  • the position in the value list is located before the time domain motion vector predictor, and the reference image pointed to by the zero value motion vector predictor is from an image layer different from the image layer in which the first image block is located; wherein, the The smaller the index number corresponding to the previous position, the index number of each position in the motion vector predictor list is sequentially incremented from the start position.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index number corresponding to the position is sequentially incremented.
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the reference image pointed to by the zero-value motion vector predictor may be from the base layer.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictor; or the zero-value motion vector predictor is predicted in the motion vector.
  • the position in the value list is located between the first spatial domain motion vector predictor and the second spatial motion vector predictor, and the M spatial motion vector predictor includes the first spatial motion vector predictor and the second spatial motion vector predictor.
  • the N motion vector predictors may further include an inter-layer motion vector predictor (which may not be used), where the inter-layer motion vector predictor may be located in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (e.g., base layer).
  • the motion vectors of the N prediction blocks corresponding to the first coding block are obtained; and the motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N
  • the motion vector of the prediction block, the motion vector of the N prediction blocks includes a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial motion vector predictors, a zero-value motion vector
  • the position prediction value and the position of the M spatial motion vector predictor in the motion vector predictor list are located before the time domain motion vector predictor.
  • the zero-value motion vector predictor is placed at the front position in the motion vector predictor list, so that it is advantageous to increase the zero-value motion vector predictor to be selected as the first
  • the probability of a motion vector of a coded block which in turn helps to better play the inter-layer prediction of the zero-valued motion vector predictor, thereby improving the MV prediction accuracy and improving the video coding compression performance.
  • An embodiment of the video encoding method of the present invention may include: obtaining N motion vector predictors corresponding to the first image block; constructing a motion vector predictor list corresponding to the first image block, wherein the motion vector predictor list records the foregoing N motion vector predictors, the N motion vector predictors including a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors for indicating the zero value motion vector predictor in the motion
  • the number of bits indicated by the first position of the position in the vector predictor list is smaller than the number of bits indicated by the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list; And indicating, by the third position indicating the position of the first spatial domain motion vector predictor in the motion vector predictor list, a number of bits smaller than a position indicating that the time domain motion vector predictor is located in the motion vector predictor list.
  • the number of bits indicated by the second position, wherein the first spatial motion vector predictor Any one of the M spatial motion vector predictors, the reference image pointed to by the zero-value motion vector predictor is from an image layer different from the image layer in which the first image block is located; and determining the first based on the motion vector predictor list a motion vector predictor of the image block; encoding the first image block based on the determined motion vector predictor of the first image block.
  • FIG. 6 is a schematic flowchart of another video encoding method according to an embodiment of the present invention.
  • another video coding provided by an embodiment of the present invention may include the following content:
  • the obtained N motion vector predictors corresponding to the first image block may include: a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial domain motion vector predictors, where The reference image pointed to by the above-mentioned zero-value motion vector predictor is derived from the first map An image layer that is different from the image layer in which the block is located. Among them, the predicted values of M airspace motion vectors are different.
  • the above N may be equal to 5, 6, 7, or 8 or other possible values
  • M may be equal to 2, 3, 4, or 5 or other possible values
  • M is less than N.
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, and is used to indicate that the zero-value motion vector predictor is in the motion vector predictor list.
  • the number of bits indicated by the first position of the location is smaller than the number of bits indicated by the second location indicating the location of the time domain motion vector predictor in the motion vector predictor list;
  • the number of bits indicated by the third position of the position of the motion vector predictor in the motion vector predictor list is smaller than the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the number of bits indicated, the first spatial domain motion vector prediction value is any one of the above M spatial domain motion vector prediction values.
  • different positions of the motion vector predictor list may be indicated by using different bit number position indications, and the corresponding number of motion vector predictor lists may be determined according to the number of bits indicated by the position. position. For example, the number of bits indicated by the corresponding position of the position in the motion vector predictor list is smaller or larger. Of course, it is also possible that the number of bits indicated by the corresponding position in the middle position of the motion vector predictor list is smaller or larger. Large, of course, can be other variations of the coding end and the decoding end, or even there may be no rules.
  • the number of bits indicated by the first location is smaller than the number of bits indicated by the third location; or, the number of bits indicated by the first location is greater than the number of bits indicated by the fourth location and less than the bit indicated by the fifth location
  • a fourth position indication indicating a position of the second spatial domain motion vector predictor in the motion vector predictor list, and a fifth position indication indicating that the third spatial motion vector predictor is in the motion vector predictor
  • the position of the M spatial motion vector predictors includes the second spatial domain motion vector predictor and the third spatial domain motion vector predictor.
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the number of bits indicated by the sixth position is smaller than the number of bits indicated by the third position and the number of bits indicated by the second position a sixth position indication for indicating the above-mentioned inter-layer motion vector predictor in the above The position in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (eg, base layer).
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the reference image pointed to by the zero-value motion vector predictor may be from the base layer.
  • a motion vector predictor of the first image block Determine, according to the foregoing motion vector predictor list, a motion vector predictor of the first image block.
  • a corresponding correspondence may be calculated for each motion vector predictor in each of the foregoing motion vector predictor lists.
  • the rate distortion cost, the motion vector predictor corresponding to the minimum rate distortion cost can be selected as the motion vector predictor of the first image block.
  • the motion vectors of the N prediction blocks corresponding to the first coding block are obtained; and the motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N
  • the motion vector of the prediction block, the motion vector of the N prediction blocks includes a zero-value motion vector prediction value, a time-domain motion vector prediction value, and M spatial-domain motion vector prediction values, a zero-value motion vector prediction value, and M spatial domain motion vector prediction values.
  • the number of bits indicated by the position of the position in the motion vector predictor list is less than the number of bits indicated by the position of the position of the time domain motion vector predictor in the motion vector predictor list.
  • the zero-value motion vector predictor is placed in the motion vector predictor list where the position indication bit number is smaller, thus facilitating the improvement of the zero-value motion vector predictor value.
  • the probability of selecting the motion vector of the first coding block further helps to better play the inter-layer prediction of the zero-value motion vector predictor, thereby improving the MV prediction accuracy and improving the video coding compression performance.
  • the method may include: receiving the encoded first image block and the seventh position indication, wherein the seventh position indication is used to indicate that the motion vector predictor of the first image block is in motion The position in the vector predictor list; obtain the N corresponding to the first image block a motion vector predictor; constructing a motion vector predictor list corresponding to the first image block, wherein the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor
  • the domain motion vector predictor and the M spatial motion vector predictors are used to indicate the number of bits indicated by the first position of the position of the zero-value motion vector predictor in the motion vector predictor list, which is smaller than a number of bits indicated by a second position of the position of the domain motion vector predictor in the motion vector predictor list; a third position indicating a position of the first spatial motion vector predictor in the motion vector predictor list The number of indicated bits is smaller than a number of bits indicated by
  • FIG. 7 is a schematic flowchart of another video decoding method according to an embodiment of the present invention.
  • another video decoding provided by an embodiment of the present invention may include the following content:
  • the obtained N motion vector predictors corresponding to the first image block may include: a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial domain motion vector predictors, where The reference image pointed to by the above-mentioned zero-value motion vector predictor is derived from an image layer different from the image layer in which the first image block is located. Among them, the predicted values of M airspace motion vectors are different.
  • N may be equal to 5, 6, 7 or 8 or other possible values
  • M may be equal to 2, 3, 4 or 5 or other possible values, of course M is less than N.
  • a motion vector predictor list corresponding to the first image block where the motion vector predictor list records the N motion vector predictors, and is used to indicate the zero-value motion vector pre-
  • the number of bits indicated by the first position of the measured position in the motion vector predictor list is smaller than the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the number of bits indicated by the second position of the position in the list, and the first spatial domain motion vector prediction value is any one of the M spatial motion vector predictors.
  • different positions of the motion vector predictor list may be indicated by using different bit number position indications, and the corresponding number of motion vector predictor lists may be determined according to the number of bits indicated by the position. position. For example, the number of bits indicated by the corresponding position of the position in the motion vector predictor list is smaller or larger. Of course, it is also possible that the number of bits indicated by the corresponding position in the middle position of the motion vector predictor list is smaller or larger. Large, of course, can be other variations of the coding end and the decoding end, or even there may be no rules.
  • the number of bits indicated by the first location is smaller than the number of bits indicated by the third location; or, the number of bits indicated by the first location is greater than the number of bits indicated by the fourth location and less than the bit indicated by the fifth location
  • a fourth position indication indicating a position of the second spatial domain motion vector predictor in the motion vector predictor list, and a fifth position indication indicating that the third spatial motion vector predictor is in the motion vector predictor
  • the position of the M spatial motion vector predictors includes the second spatial domain motion vector predictor and the third spatial domain motion vector predictor.
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the number of bits indicated by the sixth position is smaller than the number of bits indicated by the third position and the number of bits indicated by the second position
  • the sixth position indication is used to indicate the position of the inter-layer motion vector predictor in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (e.g., base layer).
  • the reference image pointed by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the above The reference image pointed to by the zero-value motion vector predictor may come from the base layer.
  • the seventh position indication may be the same or different than the first position indication, the second position indication, the third position indication, the fourth position indication, the fifth position indication or the sixth position indication.
  • the motion vectors of the N prediction blocks corresponding to the first coding block are obtained; and the motion vector prediction value list corresponding to the first coding block is constructed, where the motion vector prediction value list records N
  • the motion vector of the prediction block, the motion vector of the N prediction blocks includes a zero-value motion vector prediction value, a time-domain motion vector prediction value, and M spatial-domain motion vector prediction values, a zero-value motion vector prediction value, and M spatial domain motion vector prediction values.
  • the number of bits indicated by the position of the position in the motion vector predictor list is less than the number of bits indicated by the position of the position of the time domain motion vector predictor in the motion vector predictor list.
  • the zero-value motion vector predictor is placed in the motion vector predictor list where the position indication bit number is smaller, thus facilitating the improvement of the zero-value motion vector predictor value.
  • the probability of selecting the motion vector of the first coding block further helps to better play the inter-layer prediction of the zero-value motion vector predictor, thereby improving the MV prediction accuracy and improving the video coding compression performance.
  • an embodiment of the present invention provides a motion vector predictor list construction apparatus 800, which may include: an obtaining unit 810 and a first list building unit 820.
  • the obtaining unit 810 is configured to obtain N motion vector predictors corresponding to the first image block, where the first list constructing unit 820 is configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector prediction is performed.
  • the value list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M nulls. a domain motion vector predictor, wherein the zero-value motion vector predictor and the position of the M-space motion vector predictor in the motion vector predictor list are located before the time-domain motion vector predictor, and the zero-value motion vector predictor
  • the reference image pointed to is from an image layer that is different from the image layer in which the first image block is located.
  • the index number corresponding to the position in the motion vector predictor list the more the index number of each position in the motion vector predictor list is incremented from the start position.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index numbers corresponding to the positions are sequentially incremented.
  • N may be equal to 5, 6, 7 or 8 or other possible values
  • M may be equal to 2, 3, 4 or 5 or other possible values, of course M is less than N.
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the present invention, the reference image pointed to by the above-described zero-value motion vector predictor obtained by unit 810 is derived from the base layer.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictor; or the zero-value motion vector predictor is predicted in the motion vector.
  • the position in the value list is located between the first spatial domain motion vector predictor and the second spatial motion vector predictor, and the M spatial motion vector predictor includes the first spatial motion vector predictor and the second spatial motion vector predictor.
  • the N motion vector predictors may further include an inter-layer motion vector predictor (which may not be used), where the inter-layer motion vector predictor may be located in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (e.g., base layer).
  • the reference image pointed to by the above-described zero-value motion vector predictor obtained by the obtaining unit 810 is derived from the base layer.
  • FIG. 9 is a schematic structural diagram of a video processing device according to the present invention.
  • the video processing device of this embodiment includes at least one bus 901, at least one processor 902 connected to the bus 901, and connected to the bus 901. At least one memory 903.
  • the processor 902 calls, by using the bus 901, the code stored in the memory 903 to obtain N motion vector predictors corresponding to the first image block; and constructs a motion vector predictor list corresponding to the first image block, where the motion is
  • the vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors, and the zero motion vector predictor
  • the value and the position of the M spatial motion vector predictor in the motion vector predictor list are located before the time domain motion vector predictor, and the reference image pointed by the zero value motion vector predictor is from the first image block Image layers with different image layers.
  • the index number corresponding to the position in the motion vector predictor list the more the index number of each position in the motion vector predictor list is incremented from the start position.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index number corresponding to the position is sequentially incremented.
  • FIG. 9 is only a schematic diagram of the structure of a video processing device provided by the present invention, and the specific structure may be adjusted according to actual conditions.
  • FIG. 10 illustrates another motion vector predictor list construction apparatus 1000 according to an embodiment of the present invention, which may include: an obtaining unit 101 0 and a second list building unit 1020.
  • the obtaining unit 101 0 obtains N motion vector predictors corresponding to the first image block, and the second list constructing unit 1020 is configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector predictor
  • the list records the N motion vector predictors, and the N motion vector predictors include a zero-value motion vector predictor, a time-domain motion vector predictor, and M spatial motion vector predictors for indicating the zero-value motion vector prediction.
  • the number of bits indicated by the first position of the position in the value list is smaller than the number of bits indicated by the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list;
  • the number of bits indicated by the third position of the position of the spatial motion vector predictor in the motion vector predictor list is smaller than the number indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the number of bits indicated by the two positions, wherein the first spatial motion vector predictor is any one of the M spatial motion vector predictors, and the reference image pointed by the zero-value motion vector predictor is from the first image block Image layers with different image layers.
  • different positions of the motion vector predictor list may be indicated by using different bit number position indications, and the corresponding number of motion vector predictor lists may be determined according to the number of bits indicated by the position. position. For example, the number of bits indicated by the corresponding position of the position in the motion vector predictor list is smaller or larger. Of course, it is also possible that the number of bits indicated by the corresponding position in the middle position of the motion vector predictor list is smaller or larger. Large, of course, can be other variations of the coding end and the decoding end, or even there may be no rules.
  • the number of bits indicated by the first location is smaller than the number of bits indicated by the third location; or, the number of bits indicated by the first location is greater than the number of bits indicated by the fourth location and less than the bit indicated by the fifth location
  • a fourth position indication indicating a position of the second spatial domain motion vector predictor in the motion vector predictor list, and a fifth position indication indicating that the third spatial motion vector predictor is in the motion vector predictor
  • the position of the M spatial motion vector predictors includes the second spatial domain motion vector predictor and the third spatial domain motion vector predictor.
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the number of bits indicated by the sixth position is smaller than the number of bits indicated by the third position and the number of bits indicated by the second position
  • the sixth position indication is used to indicate the position of the inter-layer motion vector predictor in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (e.g., base layer).
  • the reference image pointed to by the above-mentioned zero-value motion vector predictor may be An adjacent image layer from the image layer where the first image block is located. In some embodiments of the present invention, the reference image pointed to by the above-described zero-value motion vector predictor obtained by the obtaining unit 1010 is from the base layer.
  • FIG. 11 is a schematic structural diagram of a video processing device according to the present invention. As shown in FIG. 11, the video processing device of this embodiment includes at least one bus 1101, at least one processor 1102 connected to the bus 1101, and a bus 1101. At least one memory 1103.
  • the processor 1102 calls the code stored in the memory 1103 to obtain N motion vector predictors corresponding to the first image block through the bus 1101; and constructs a motion vector predictor list corresponding to the first image block, where the motion is
  • the vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors for indicating the zero value.
  • the number of bits indicated by the first position of the position of the motion vector predictor in the motion vector predictor list is smaller than the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • FIG. 11 is only a schematic diagram of the structure of a video processing device provided by the present invention, and the specific structure may be adjusted according to actual conditions.
  • FIG. 12 illustrates a video encoder 1200 according to an embodiment of the present invention, which may include: an obtaining unit 121 0, a first list building unit 1220, a motion vector determining unit 1230, and an encoding unit 1240.
  • the obtaining unit 1210 is configured to obtain N motion vector predictors corresponding to the first image block.
  • the first list constructing unit 1220 is configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector prediction is performed.
  • the value list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors, and the zero motion vector predictor and the zero motion vector predictor.
  • the position of the M spatial motion vector predictor in the motion vector predictor list is located before the time domain motion vector predictor, and the reference image pointed by the zero value motion vector predictor is from the image layer where the first image block is located. Different image layers.
  • the index number corresponding to the position in the motion vector predictor list the more the index number of each position in the motion vector predictor list is incremented from the start position.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index number corresponding to the position is sequentially incremented.
  • a motion vector determining unit 1230 configured to determine a motion vector predictor of the first image block based on the motion vector predictor list
  • the encoding unit 1240 is configured to encode the first image block based on the motion vector predictor of the first image block determined by the motion vector determining unit 1230.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictor; or the zero-value motion vector predictor is in the motion vector.
  • the position in the predicted value list is located between the first spatial domain motion vector predictor and the second spatial motion vector predictor, and the M spatial motion vector predictor includes the first spatial motion vector predictor and the second spatial motion vector predictor.
  • FIG. 13 is a schematic structural diagram of a video encoder according to the present invention.
  • the video encoder of this embodiment includes at least one bus 1 301 and at least one processor 1 302 connected to the bus 1 301. And at least one memory 1 303 connected to the bus 1 301.
  • the processor 1 302 calls the code stored in the memory 1 303 through the bus 1 301 to obtain N motion vector predictors corresponding to the first image block; and constructs a motion vector predictor list corresponding to the first image block, where And the motion vector predictor list records the N motion vector predictors, where the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors, and the zero value
  • the motion vector predictor and the position of the M spatial motion vector predictor in the motion vector predictor list are located before the time domain motion vector predictor, and the reference image pointed by the zero-value motion vector predictor is from the first a different image layer of the image layer in which the image block is located; determining a motion vector predictor value of the first image block based on the motion vector predictor list; and encoding the first image block based on the determined motion vector predictor of the first image block.
  • the index number corresponding to the position in the motion vector predictor list the more the index number of each position in the motion vector predictor list is incremented from the start position.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index number corresponding to the position is sequentially incremented.
  • Fig. 13 is only a schematic diagram of the structure of the computer system provided by the present invention, and the specific structure can be adjusted according to the actual situation.
  • FIG. 14 illustrates another video encoder 1400 according to an embodiment of the present invention, which may include:
  • the obtaining unit 141 0, the second list constructing unit 1420, the motion vector determining unit 1430, and the encoding unit 1440.
  • the obtaining unit 1410 is configured to obtain N motion vector predictors corresponding to the first image block
  • the second list constructing unit 1420 is configured to construct a motion vector predictor column corresponding to the first image block.
  • a table wherein the motion vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors.
  • a number of bits indicated by the first position indicating the position of the zero-value motion vector predictor in the motion vector predictor list is smaller than that used to indicate that the time-domain motion vector predictor is in the motion vector predictor list.
  • the reference image pointed to by the predicted value comes from an image layer different from the image layer in which the first image block is located.
  • the motion vector determining unit 1430 is configured to determine a motion vector predictor of the first image block based on the motion vector predictor list.
  • the encoding unit 1440 is configured to encode the first image block based on the motion vector predictor of the first image block determined by the motion vector determining unit 1430.
  • different positions of the motion vector predictor list may be indicated by using different bit number position indications, and the corresponding number of motion vector predictor lists may be determined according to the number of bits indicated by the position. position. For example, the number of bits indicated by the corresponding position of the position in the motion vector predictor list is smaller or larger. Of course, it is also possible that the number of bits indicated by the corresponding position in the middle position of the motion vector predictor list is smaller or larger. Large, of course, can be other variations of the coding end and the decoding end, or even there may be no rules.
  • the number of bits indicated by the first location is smaller than the number of bits indicated by the third location; or, the number of bits indicated by the first location is greater than the number of bits indicated by the fourth location and less than the bit indicated by the fifth location
  • a fourth position indication indicating a position of the second spatial domain motion vector predictor in the motion vector predictor list, and a fifth position indication indicating that the third spatial motion vector predictor is in the motion vector predictor
  • the position of the M spatial motion vector predictors includes the second spatial domain motion vector predictor and the third spatial domain motion vector predictor.
  • the N motion vector predictors further include an inter-layer motion vector predictor, where the number of bits indicated by the sixth position is smaller than the number of bits indicated by the third position and the number of bits indicated by the second position
  • the sixth position indication is used to indicate the position of the inter-layer motion vector predictor in the motion vector predictor list.
  • the reference image pointed by the inter-layer motion vector predictor is from the image layer where the first image block is located.
  • the inter-layer motion vector predictor may be obtained based on motion vectors of other image layers (eg, base layer).
  • the reference image pointed to by the zero-value motion vector predictor may be from an adjacent image layer of the image layer where the first image block is located. In some embodiments of the invention, the reference image pointed to by the zero-value motion vector predictor may be from the base layer.
  • the video encoder of this embodiment includes at least one bus 1501, at least one processor 1502 connected to the bus 1501, and a bus 1501. At least one memory 1503.
  • the processor 1502 calls, by using the bus 1501, the code stored in the memory 1503 to obtain N motion vector predictors corresponding to the first image block; and constructs a motion vector predictor list corresponding to the first image block, where the motion is
  • the vector predictor list records the N motion vector predictors, and the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors for indicating the zero value.
  • the number of bits indicated by the first position of the position of the motion vector predictor in the motion vector predictor list is smaller than the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the vector prediction value is any one of the above M spatial motion vector predictors,
  • the reference image pointed to by the zero-value motion vector predictor is derived from an image layer different from the image layer in which the first image block is located; determining a motion vector predictor value of the first image block based on the motion vector predictor list; The motion vector predictor of an image block encodes the first image block.
  • the video encoder provided in this embodiment may be used to perform the corresponding execution of the video encoder in the technical solution of the method embodiment shown in FIG. 6, and the implementation principle and technical effects thereof are similar, and details are not described herein again.
  • Figure 15 is only a schematic diagram of the structure of a computer system provided by the present invention, and the specific structure can be adjusted according to actual conditions.
  • the video encoder of the present invention can be deployed, for example, in a digital camera, cell phone, television, computer, or other device capable of video playback and/or video recording using the HEVC standard.
  • FIG. 16 shows a video decoder 1600 according to an embodiment of the present invention, which may include: a receiving unit 1610, an obtaining unit 1620, a second list building unit 1630, a motion vector determining unit 1640, and a decoding unit 1650.
  • the receiving unit 1610 is configured to receive the encoded first image block and the first location indication, where the first location indication is used to indicate a location of the motion vector predictor of the first image block in the motion vector predictor list;
  • the obtaining unit 1620 is configured to obtain N motion vector predictors corresponding to the first image block.
  • the first list constructing unit 1630 is configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector predictor list is configured. Recording the N motion vector predictors, the N motion vector predictors including a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors, the zero motion vector predictor and the M The position of the spatial motion vector predictor in the motion vector predictor list is located before the time domain motion vector predictor, and the reference image pointed to by the zero-value motion vector predictor is different from the image layer where the first image block is located.
  • the image layer wherein, the smaller the index number corresponding to the position in the motion vector predictor list, the index number of each position in the motion vector predictor list is sequentially incremented from the start position.
  • the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the position corresponding to the subsequent The index number is incremented in turn.
  • a motion vector determining unit 1640 configured to determine a motion vector predictor of the first image block based on the first location indication and the motion vector predictor list;
  • the decoding unit 1650 is configured to decode the first image block based on the motion vector predictor of the first image block determined by the motion vector determining unit 1640.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictor; or the zero-value motion vector predictor is in the motion vector.
  • the position in the predicted value list is located between the first spatial domain motion vector predictor and the second spatial motion vector predictor, and the M spatial motion vector predictor includes the first spatial motion vector predictor and the second spatial motion vector predictor.
  • FIG. 17 is a schematic structural diagram of a video decoder according to the present invention.
  • the video decoder of this embodiment includes at least one bus 1701, at least one processor 1702 connected to the bus 1701, and a bus 1701. At least one memory 1703.
  • the processor 1702 calls the code stored in the memory 1703 for receiving the encoded first image block and the first position indication, wherein the first position indication is used to indicate the motion vector of the first image block.
  • the N motion vector predictors, the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors, and the zero motion vector predictor and the M airspace.
  • the position of the motion vector predictor in the motion vector predictor list is located before the time domain motion vector predictor, and the reference image pointed to by the zero-value motion vector predictor is from an image layer different from the image layer in which the first image block is located. Determining the first based on the first location indication and the motion vector predictor list described above a motion vector predictor of the image block; decoding the first image block based on the determined motion vector predictor of the first image block.
  • the smaller the index number corresponding to the position in the motion vector predictor list the more the index number of each position in the motion vector predictor list is incremented from the start position. For example, the index number corresponding to the start position of the motion vector predictor list may be 0 or 1, and the index numbers corresponding to the positions are sequentially incremented.
  • the video decoder provided in this embodiment may be used to perform the corresponding execution of the video encoder in the technical solution of the method embodiment shown in FIG. 5, and the implementation principle and technical effects thereof are similar, and details are not described herein again.
  • Figure 17 is only a schematic diagram of the structure of a computer system provided by the present invention, and the specific structure can be adjusted according to actual conditions.
  • FIG. 18 illustrates another video decoder 1800 according to an embodiment of the present invention, which may include:
  • the receiving unit 1810, the obtaining unit 1820, the second list constructing unit 1830, the motion vector determining unit 1840, and the decoding unit 1850 are the receiving unit 1810, the obtaining unit 1820, the second list constructing unit 1830, the motion vector determining unit 1840, and the decoding unit 1850.
  • the receiving unit 1810 is configured to receive the encoded first image block and the first location indication, where the first location indication is used to indicate a location of the motion vector predictor of the first image block in the motion vector predictor list;
  • the obtaining unit 1820 is configured to obtain N motion vector predictors corresponding to the first image block
  • the second list constructing unit 1830 is configured to construct a motion vector predictor list corresponding to the first image block, where the motion vector predictor list is used.
  • the number of bits indicated by the first position of the position in the motion vector predictor list is smaller than the number of bits indicated by the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list a number of bits indicating a third position indicating a position of the first spatial domain motion vector predictor in the motion vector predictor list, less than a value indicating that the time domain motion vector predictor is in the motion vector predictor list
  • the vector prediction value is any one of the M spatial motion vector predictor predictors corresponding to the first image block
  • a motion vector determining unit 1840 configured to determine a motion vector predictor of the first image block based on the first location indication and the motion vector predictor list;
  • the decoding unit 1850 is configured to decode the first image block based on the motion vector predictor of the first image block determined by the motion vector determining unit 1840.
  • the position of the zero-value motion vector predictor in the motion vector predictor list is located before the M spatial motion vector predictor; or the zero-value motion vector predictor is in the motion vector.
  • the position in the predicted value list is located between the first spatial domain motion vector predictor and the second spatial motion vector predictor, and the M spatial motion vector predictor includes the first spatial motion vector predictor and the second spatial motion vector predictor.
  • FIG. 19 is a schematic structural diagram of a video decoder according to the present invention.
  • the video decoder of this embodiment includes at least one bus 1901, at least one processor 1902 connected to the bus 1901, and a bus 1901.
  • the processor 1902 calls the code stored in the memory 1903 via the bus 1901 for receiving the encoded first image block and the first position indication, wherein the first position indication is used to indicate the motion vector of the first image block.
  • the N motion vector predictors, the N motion vector predictors include a zero motion vector predictor, a time domain motion vector predictor, and M spatial motion vector predictors for indicating the zero value motion vector predictor in the foregoing
  • the number of bits indicated by the first position of the position in the motion vector predictor list is smaller than the bit indicated by the second position indicating the position of the time domain motion vector predictor in the motion vector predictor list.
  • the number of bits indicated by the second position of the location, wherein the first spatial motion vector predictor is any one of the M spatial motion vector predictors, and the reference image pointed to by the zero motion vector predictor is from the reference image An image layer different from an image layer in which the first image block is located; determining a motion vector predictor value of the first image block based on the first position indication and the motion vector predictor list; and determining a motion vector predictor value of the first image block based on the determined The first image block is decoded.
  • the video decoder provided in this embodiment may be used to perform the corresponding execution of the video encoder in the technical solution of the method embodiment shown in FIG. 7.
  • the implementation principle and the technical effect are similar, and details are not described herein again.
  • Figure 19 is only a schematic diagram of the structure of a computer system provided by the present invention, and the specific structure can be adjusted according to actual conditions.
  • the video decoder of the present invention may be deployed, for example, in a digital camera, cell phone, television, computer, or other device capable of video playback and/or video recording using the HEVC standard.
  • the embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium can store a program, and the program includes some or all of the steps of the motion vector predictor list construction method described in the foregoing method embodiment.
  • the embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium can store a program, and the program includes some or all of the steps of the video encoding method described in the foregoing method embodiments.
  • the embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium can store a program, and the program includes some or all of the steps of the video decoding method described in the foregoing method embodiments.
  • the disclosed apparatus may be implemented in other ways.
  • 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 Integration 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 objectives 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 function 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 may contribute 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 USB flash drive, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic disk, or an optical disk, and the like, which can store program codes. medium.

Abstract

本发明实施例公开了运动矢量预测值列表构建方法和视频编解码方法及相关装置。一种运动矢量预测值列表构建方法包括:获得第一图像块对应的N个运动矢量预测值;构建第一图像块对应的运动矢量预测值列表,运动矢量预测值列表记录了N个运动矢量预测值,N个运动矢量预测值包括零值运动矢量预测值、时域运动矢量预测值和M个空域运动矢量预测值,零值运动矢量预测值和M个空域运动矢量预测值在运动矢量预测值列表中的位置位于时域运动矢量预测值之前,零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像层,运动矢量预测值列表中越靠前的位置所对应的索引号越小。本发明实施例提供的方案有利于提升视频压缩编码性能。

Description

运动矢量预测值列表构建方法和视频编解码方法及装置 技术领域
本发明涉及图像处理技术领域, 具体涉及运动矢量预测值列表构建方法 和视频编解码方法及装置。
背景技术
随着光电采集技术的发展及不断增长的高清数字视频需求, 视频数据量 越来越大, 有限异构的传输带宽、 多样化的视频应用不断地对视频编码效率 提出了更高的需求, 高性能视频编码(HEVC, High Efficient Video Coding) 标准的制定工作因需启动。
视频编码压缩的基本原理是利用空域、 时域和码字之间的相关性, 尽可 能去除冗余。 目前流行做法是采用基于块的混合视频编码框架,通过预测(包 括帧内预测和帧间预测)、 变换、 量化、 熵编码等步骤实现视频编码压缩。 这 种编码框架, 显示了很强的生命力, HEVC也仍沿用这种基于块的混合视频编 码框架。
在上述编码框架中, 视频序列 ( sequence ) 包括一系列图像( picture ), 图像被进一步划分为切片 (slice), slice再被划分为块(block )。 视频编码 以块为单位, 可从 picture 的左上角位置开始从左到右从上到下一行一行进 行编码处理。 在一些新的视频编码标准中, Block 的概念被进一步扩展。 在 H.264 标准中有宏块 (MB, Macro Block), MB 可进一步划分成多个预测块 ( artition,可用于预测编码),在 HEVC标准中,采用编码单元(CU, Coding Unit), 预测单元(PU, Prediction Unit )和变换单元( TU, Transform Unit ) 等基本概念,从功能上划分了多种 Unit, 并采用全新的基于树结构进行描述。 比如 CU可以按照四叉树进行划分为更小的 CU,而更小的 CU还可以继续划分, 从而形成一种四叉树结构。 对于 PU和 TU也有类似的树结构。 无论 CU, PU还 是 TU, 本质上都属于块 block的概念, CU类似于宏块 MB或编码块, 是对编 码图像进行划分和编码的基本单元; PU可对应预测块, 是预测编码的基本单 元。 对 CU按照划分模式进一步划分成多个 PU; TU可对应变换块, 是对预测 残差进行变换的基本单元。 HEVC 标准中则可把它们统称为编码树块(CTB, Coding Tree Block )等。
顿间预则基于运动 卜偿预则 ( MCP, Motion Compensated Prediction ) 的机制进行。 当前图像块根据运动矢量(MV, Motion vector)在参考图像中 找到对应的参考块, 该参考块作为当前图像块的一个预测值。 在双向预测编 码中当前图像块有两个或多个运动矢量, 可以利用这些运动矢量从两个或多 个参考图像中获得多个参考块, 利用这些参考块获得当前图像块的预测值, 比如他们的平均值作为当前图像块的预测值。 当前 picture编码允许有多个 参考图象, 这多个参考图象可形成一个参考图象列表 efPicList ), 可从 RefPicList 中选择一个作为当前图像块的参考图象进行预测编码。 当前编码 块的运动矢量指向该参考图象。 如 P slice编码时, 有一个参考图象列表, P slice中的 block的运动矢量指向该参考图象列表中的一个参考图象;而对于 B slice允许有最多 2个参考图象列表, B s 1 ice中的 block允许有两个 MV, 分别指向这两个参考图象列表中的参考图象。
实践中为节约对当前图像块的运动矢量的编码比特开销, 可采用 MV预测 +编码预测差值的方法进行。 可通过 MV预测技术获得当前图像块的运动矢量 预测值(MVP, MV predictor )0 MV预测在编码和解码过程中都执行, 以获得 相同的 MVP , 实现编码和解码的匹配。
HEVC标准中的扩展编码(SVC, Scalable video coding )标准是一种分 层编码技术, 支持多层(multi-layer )编码, 支持视频在空域、 时域和信噪 比等方面的可伸缩性。 SVC标准涉及的层(layer)可分为基本层(BL, Base Layer )和增强层 (EL, Enhancement Layer), 其中, 增强层的数量可包括多 个。 对于 EL的编码, 除了可利用当前 layer中的空域和时域预测技术外, 还 了利用层间预测 ( ILP, inter-layer predict ion )技术。 每个 layer是——个 视频序列, 多个层具有相同或相近的视频内容, 各层间存在很大的相关性。
ILP技术可很好地去除这些相关性, 提高增强层的编码压缩性能。
在 HEVC SVC的一种实现方式中, 可以把 BL的图像作为 EL的一个额外参 考图像。 这种情况下零(Zero )值 MVP可能指向来自于 BL的参考图像。 而现 有技术的机制中并未充分利用 zero MVP的作用。只在 MVP个数不满足 MVP l i s t 的长度要求时才将 zero MVP加入 MVP l i s t的末尾。 研究和实践发现, 现有 技术不能很好的适应 SVC编码的特性, 限制了压缩编码性能的提升。
发明内容
本发明实施例提供运动矢量预测值列表构建方法和视频编解码方法及相 关装置, 以期提升视频压缩编码性能。
本发明第一方面提供一种运动矢量预测值列表构建方法, 可包括: 获得第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量 预测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 所 述零值运动矢量预测值和所述 M个空域运动矢量预测值在所述运动矢量预测 值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测 值所指向的参考图像来自于与所述第一图像块所在图像层不同的图像层, 所 述运动矢量预测值列表中越靠前的位置所对应的索引号越小。
结合第一方面, 在第一种可能的实施方式中,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢 量预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预 测值之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值 和所述第二空域运动矢量预测值。
结合第一方面或第一方面的第一种可能的实施方式, 在第二种可能的实 施方式中, 所述 N个运动矢量预测值还包括层间运动矢量预测值, 其中, 所 述层间运动矢量预测值位于所述运动矢量预测值列表中的起始位置。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种 可能的实施方式, 在第三种可能的实施方式中, 所述零值运动矢量预测值所 指向的参考图像, 来自于所述第一图像块所在图像层的相邻图像层。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种 可能的实施方式, 在第四种可能的实施方式中, 所述零值运动矢量预测值所 指向的参考图像来自于基本层。
本发明第二方面提供一种运动矢量预测值列表构建方法, 包括: 获得第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量 预测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 用 于指示所述零值运动矢量预测值在所述运动矢量预测值列表中所处位置的第 一位置指示的比特数, 小于用于指示所述时域运动矢量预测值在所述运动矢 量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一空域运动 矢量预测值在所述运动矢量预测值列表中所处位置的第三位置指示的比特 数, 小于用于指示所述时域运动矢量预测值在所述运动矢量预测值列表中所 处位置的第二位置指示的比特数, 其中, 所述第一空域运动矢量预测值为所 述 M个空域运动矢量预测值中的任意一个, 所述零值运动矢量预测值所指向 的参考图像来自于与所述第一图像块所在图像层不同的图像层。
结合第二方面, 在第一种可能的实施方式中,
所述第一位置指示的比特数小于所述第三位置指示的比特数; 或者, 所 述第一位置指示的比特数大于第四位置指示的比特数且小于第五位置指示的 比特数, 其中, 所述第四位置指示用于指示第二空域运动矢量预测值在所述 运动矢量预测值列表中所处位置, 所述第五位置指示用于指示第三空域运动 矢量预测值在所述运动矢量预测值列表中所处位置, 所述 M个空域运动矢量 预测值包括所述第二空域运动矢量预测值和所述第三空域运动矢量预测值。
结合第二方面或第二方面的第一种可能的实施方式, 在第二种可能的实 施方式中, 所述 N个运动矢量预测值还包括层间运动矢量预测值, 其中, 第 六位置指示的比特数小于第三位置指示的比特数和第二位置指示的比特数, 所述第六位置指示用于指示所述层间运动矢量预测值在所述运动矢量预测值 列表中所处位置。
本发明第三方面提供一种视频编码方法, 包括:
获得第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量 预测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 所 述零值运动矢量预测值和所述 M个空域运动矢量预测值在所述运动矢量预测 值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测 值所指向的参考图像来自于与所述第一图像块所在图像层不同的图像层, 所 述运动矢量预测值列表中越靠前的位置所对应的索引号越小;
基于所述运动矢量预测值列表确定所述第一图像块的运动矢量预测值; 基于确定出的所述第一图像块的运动矢量预测值对所述第一图像块进行 编码。
结合第三方面, 在第一种可能的实施方式中,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢 量预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预 测值之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值 和所述第二空域运动矢量预测值。
结合第三方面或第三方面的第一种可能的实施方式, 在第二种可能的实 施方式中, 所述 N个运动矢量预测值还包括层间运动矢量预测值, 其中, 所 述层间运动矢量预测值位于所述运动矢量预测值列表中的起始位置。
本发明第四方面提供一种视频解码方法, 包括:
接收已编码的第一图像块和第一位置指示, 其中, 所述第一位置指示用 于指示出第一图像块的运动矢量预测值在运动矢量预测值列表中所处位置; 获得所述第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量 预测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 所 述零值运动矢量预测值和所述 M个空域运动矢量预测值在所述运动矢量预测 值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测 值所指向的参考图像来自于与所述第一图像块所在图像层不同的图像层, 所 述运动矢量预测值列表中越靠前的位置所对应的索引号越小;
基于所述第一位置指示和所述运动矢量预测值列表确定所述第一图像块 的运动矢量预测值;
基于确定出的所述第一图像块的运动矢量预测值对所述第一图像块进行 解码。
结合第四方面, 在第一种可能的实施方式中,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢 量预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预 测值之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值 和所述第二空域运动矢量预测值。
结合第四方面或第四方面的第一种可能的实施方式, 在第二种可能的实 施方式中, 所述 N个运动矢量预测值还包括层间运动矢量预测值, 其中, 所 述层间运动矢量预测值位于所述运动矢量预测值列表中的起始位置。 本发明第五方面提供一种运动矢量预测值列表构建装置, 包括: 获得单元, 用于获得第一图像块对应的 N个运动矢量预测值;
第一列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列 表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 所述零值运动矢量预测值和所述 M个空域运动矢量预测 值在所述运动矢量预测值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测值所指向的参考图像来自于与所述第一图像块所在图 像层不同的图像层, 所述运动矢量预测值列表中越靠前的位置所对应的索引 号越小。
结合第五方面, 在第一种可能的实施方式中, 所述获得单元获得的所述 零值运动矢量预测值所指向的参考图像来自于基本层。
本发明第六方面提供一种运动矢量预测值列表构建装置, 包括: 获得单元, 获得第一图像块对应的 N个运动矢量预测值;
第二列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列 表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 用于指示所述零值运动矢量预测值在所述运动矢量预测 值列表中所处位置的第一位置指示的比特数, 小于用于指示所述时域运动矢 量预测值在所述运动矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一空域运动矢量预测值在所述运动矢量预测值列表中所处位置的 第三位置指示的比特数, 小于用于指示所述时域运动矢量预测值在所述运动 矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 所述第一空域 运动矢量预测值为所述 M个空域运动矢量预测值中的任意一个, 所述零值运 动矢量预测值所指向的参考图像来自于与所述第一图像块所在图像层不同的 图像层。 结合第六方面, 在第一种可能的实施方式中, 所述获得单元获得的所述 零值运动矢量预测值所指向的参考图像来自于基本层。
本发明第七方面提供一种视频编码器, 包括:
获得单元, 用于获得第一图像块对应的 N个运动矢量预测值;
第一列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列 表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 所述零值运动矢量预测值和所述 M个空域运动矢量预测 值在所述运动矢量预测值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测值所指向的参考图像来自于与所述第一图像块所在图 像层不同的图像层, 所述运动矢量预测值列表中越靠前的位置所对应的索引 号越小;
运动矢量预测值确定单元, 用于基于所述运动矢量预测值列表确定所述 第一图像块的运动矢量预测值;
编码单元, 用于基于所述运动矢量预测值确定单元确定出的所述第一图 像块的运动矢量预测值对所述第一图像块进行编码。
结合第七方面, 在第一种可能的实施方式中, 所述零值运动矢量预测值 在所述运动矢量预测值列表中的位置位于所述 M个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于第 一空域运动矢量预测值和第二空域运动矢量预测值之间, 所述 M个空域运动 矢量预测值包括所述第一空域运动矢量预测值和所述第二空域运动矢量预测 值。
本发明第八方面提供一种视频解码器, 包括:
接收单元, 用于接收已编码的第一图像块和第一位置指示, 其中, 所述 第一位置指示用于指示出第一图像块的运动矢量预测值在运动矢量预测值列 表中所处位置; 获得单元, 用于获得所述第一图像块对应的 N个运动矢量预测值; 第一列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列 表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 所述零值运动矢量预测值和所述 M个空域运动矢量预测 值在所述运动矢量预测值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测值所指向的参考图像来自于与所述第一图像块所在图 像层不同的图像层, 所述运动矢量预测值列表中越靠前的位置所对应的索引 号越小;
运动矢量预测值确定单元, 用于基于所述第一位置指示和所述运动矢量 预测值列表确定所述第一图像块的运动矢量预测值;
解码单元, 用于基于所述运动矢量预测值确定单元确定出的所述第一图 像块的运动矢量预测值对所述第一图像块进行解码。
结合第八方面, 在第一种可能的实施方式中,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢 量预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预 测值之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值 和所述第二空域运动矢量预测值。
由上可见, 本发明实施例技术方案中, 获得第一编码块对应的 N个预测 块的运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢 量预测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值 运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运 动矢量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中的位置位 于时域运动矢量预测值之前。 由于充分的考虑了零值运动矢量预测值重要性, 将零值运动矢量预测值置于运动矢量预测值列表中的靠前位置, 如此, 则有 利于提高零值运动矢量预测值被选作第一编码块的运动矢量的几率, 进而有 助于更好地发挥零值运动矢量预测值的层间预测作用, 进而有利于提高 MV预 测精度, 提升视频编码压缩性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面 描述中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1 是本发明实施例提供的一种运动矢量预测值列表构建方法的流程示 意图;
图 2-a是本发明实施例提供的一种当前图像块和参考图像块的位置关系 示意图;
图 2-b是本发明实施例提供的一种 MVP list的示意图;
图 2-c是本发明实施例提供的另一种 MVP list的示意图;
图 2-d是本发明实施例提供的另一种 MVP list的示意图;
图 2-e是本发明实施例提供的另一种 MVP list的示意图;
图 2-f是本发明实施例提供的另一种 MVP list的示意图;
图 2-g是本发明实施例提供的另一种 MVP list的示意图;
图 3是本发明实施例提供的另一种运动矢量预测值列表构建方法的流程 示意图;
图 4是本发明实施例提供的一种视频编码方法的流程示意图;
图 5是本发明实施例提供的一种视频解码方法的流程示意图;
图 6是本发明实施例提供的另一种视频编码方法的流程示意图; 图 7是本发明实施例提供的另一种视频解码方法的流程示意图; 图 8是本发明实施例提供的一种运动矢量预测值列表构建装置的示意图; 图 9是本发明实施例提供的一种视频处理设备的示意图; 图 1 o是本发明实施例提供的另一种运动矢量预测值列表构建装置的示意 图;
图 11是本发明实施例提供的另一种视频处理设备的示意图;
图 12是本发明实施例提供的一种视频编码器的示意图;
图 1 3是本发明实施例提供的另一种视频编码器的示意图;
图 14是本发明实施例提供的另一种视频编码器的示意图;
图 15是本发明实施例提供的另一种视频编码器的示意图;
图 16是本发明实施例提供的一种视频解码器的示意图;
图 17是本发明实施例提供的另一种视频解码器的示意图;
图 18是本发明实施例提供的另一种视频解码器的示意图;
图 19是本发明实施例提供的另一种视频解码器的示意图。 具体实施方式
本发明实施例提供运动矢量预测值列表构建方法和视频编解码方法及相 关装置, 以期提升视频压缩编码性能。
为了使本技术领域的人员更好地理解本发明方案, 下面将结合本发明实 施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分的实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例, 都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语 "第一"、 "第二"、 "第三" "第四" 等(如果存在)是用于区别类似的对象, 而不必用于描述特 定的顺序或先后次序。 应该理解这样使用的数据在适当情况下可以互换, 以 便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外 的顺序实施。 此外, 术语 "包括" 和 "具有" 以及他们的任何变形, 意图在 于覆盖不排他的包含, 例如, 包含了一系列步骤或单元的过程、 方法、 系统、 产品或设备不必限于清楚地列出的那些步骤或单元, 而是可包括没有清楚地 列出的或对于这些过程、 方法、 产品或设备固有的其它步骤或单元。
本发明运动矢量预测值列表构建方法的一个实施例, 方法可包括: 获得 第一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动矢量预 测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、时域运动矢量预测值和 M 个空域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空域运动矢量 预测值在上述运动矢量预测值列表中的位置位于上述时域运动矢量预测值之 前, 上述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图 像层不同的图像层, 运动矢量预测值列表中越靠前的位置所对应的索引号越 小。
首先参见图 1 ,图 1是本发明实施例提供的一种运动矢量预测值列表构建 方法的流程示意图。 如图 1 所示, 本发明实施例提供的一种运动矢量预测值 列表构建方法可包括以下内容:
101、 获得第一图像块对应的 N个运动矢量预测值。
在本发明的一些实施例中, 第一图像块(可看做是当前图像块) 的运动 矢量预测值(MVP, Mot ion vector predictor )包括空域 MVP ( SMVP, Spa t ia l MVP )和时域 MVP ( TMVP, Tempora l MVP )等。 其中, SMVP指当前图像块的相 邻位置的参考块对应的 MV, 该参考块与当前图像块在同一图像内。 TMVP是根 据当前图像块的时域参考图像获取的 MV值, 所谓时域, 指当前图像块所在的 图像与当前图像块的参考图象, 在视频序列时间轴上处于不同时间位置, 该 位置可采用图像命令计数 ( POC, Picture Order Count )表示。 其中, MV时 域距离指 MV指向的参考图像和当前图像块所在图像之间的距离,即 P0C差值。 在获取 TMVP过程中, 可对参考块的 MV根据时域距离进行缩放以得到当前图 像块的 MVP。 其中, 获得的第一图像块对应的 N个运动矢量预测值可包括: 零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 其中, 上述 零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不同 的图像层。 其中, M个空域运动矢量预测值各不相同。
102、 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量 预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包括 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 上 述零值运动矢量预测值和上述 M个空域运动矢量预测值在上述运动矢量预测 值列表中的位置位于上述时域运动矢量预测值之前。 其中, 运动矢量预测值 列表中越靠前的位置所对应的索引号越小, 运动矢量预测值列表中各位置的 索引号从起始位置开始依次递增。 例如, 运动矢量预测值列表的起始位置对 应的索引号可为 0或 1 , 之后位置对应的索引号依次递增。
在本发明的一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
在本发明一些实施例中, 上述零值运动矢量预测值在上述运动矢量预测 值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值运 动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量预 测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括第 一空域运动矢量预测值和第二空域运动矢量预测值。
在本发明一些实施例中, 上述 N个运动矢量预测值还可包括层间运动矢 量预测值(也可能不可用于), 其中, 上述层间运动矢量预测值可位于上述运 动矢量预测值列表中的起始位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
HEVC采用基于多运动矢量竟争的方法, 提高了运动矢量预测精度, 从而 提升编码压缩性能。 多运动矢量竟争的原理是, 根据当前图像块的多个已编 码参考块获得多个运动矢量(包括 MV值和 MV指向的参考图象的索引值), 将 这多个运动矢量按照一定顺序置入列表之中, 称为 MVP列表(list), 可给每 个运动矢量分配索引号 (该索引号可用于指示其在 MVP list 中的位置)。 对 当前图像块编码时, 从这多个 MVP 当中选择一个最佳的运动矢量作为当前图 像块的运动矢量预测值, 并把选中的 MVP在 MVP list中的索引号写入码流; 解码端可解码获得该索引号, 解码端也可根据当前图像块的已解码参考块的 运动矢量构造 MVP list, 解码端构造的 MVP list与编码端构造的 MVP list 一致, 这样利用解码得到的索引号, 解码端可用从其构造的 MVP list中确定 一个运动矢量作为当前图像块的运动矢量预测值。 HEVC有几种帧间预测模式, 这些模式大都可采用多运动矢量竟争的方法构建 MVP list, 用于当前图像块 MV预测。 当前图像块的参考块包含空域参考块和时域参考块( co-location), 其中, 空域参考块对应的运动矢量称之为空域运动矢量, 而时域参考块对应 的运动矢量称之为时域运动矢量。 一般的对于 merge/skip模式, 允许 4个候 选的空域运动矢量和 1个候选的时域运动矢量; 对于 AMVP模式, 允许 2个候 选的空域运动矢量和 1个候选的时域运动矢量。 构建的 MVP list记录有这些 空域运动矢量和时域运动矢量(即当前图像块的 MVP )。
其中, HEVC标准的 SVC标准是一种分层编码技术,支持多层(腿 lti-layer ) 编码。 发明人研究和实践发现, 在 HEVC SVC 的一种实现方式中, 可以把 BL 的图像作为 EL的一个额外参考图像。 这种情况下, 0值 MVP有可能指向来自 于 BL的参考图像。 在这种情况下, 0值 MVP在分层或 SVC编码中有特殊用处。 EL和 BL有着很强的相关性, 层间预测技术 ( Inter-layer prediction) 可以 去除这种相关性, 提高编码压缩性能。 当 BL和 EL有着相同的图像分辨率时, 如 SVC中的 SNR scalability,则 EL和 BL中每个 block的像素位置——对应, 像素的相对位移为 0 , 因此, 可利用一个从 EL指向 BL的具有零值的 MV (即 zero MV )进行高效的预测, 较好地去除 EL和 BL的相关性, 提升编码压缩性 能。 当 BL和 EL具有不同的图像分辨率时,如 SVC中的 spat ia l sca labi l i ty, 可对作为 EL参考图像的 BL进行插值, 获得与 EL相同的图像尺寸或分辨率, 进行层间预测, 因此在这种情况下 zero MVP仍然可以发挥有效的预测作用。 因此, 在本发明实施例的技术方案中, 则充分的考虑利用 zero MVP的作用, 不将 zero MVP置于 MVP l i s t的末尾, 而是将 zero MVP置于 MVP l i s t中的 靠前位置, 如此, 则有利于提高 zero MVP被选作当前编码块的运动矢量的几 率, 进而有助于更好地发挥指向其它层的 zero MVP的层间预测作用, 进而有 利于提高 MV预测精度, 提升视频编码压缩性能。
下面结合附图举例构建的几种 MVP l i s t。
参见图 2-a , 假设将 A0、 Al、 B0、 Bl、 B2作为第一图像块(可看做是当 前图像块)的相邻参考图像块, 即空域参考图像块, 空域参考图像块的 MV看 做是第一图像块的 SMVP。 其中, 如图 2所示, 参考图像块 AO为当前图像块的 左下角位置对应的图像块; 参考图像块 A1为当前图像块的左下角位置对应的 图像块; 参考图像块 B0为当前图像块的右上角位置对应的图像块。 参考图像 块 B1为当前图像块的右上角位置对应的图像块; 参考图像块 B2为当前图像 块的左上角位置对应的图像块。其中, A0、 Al、 B0、 Bl、 B2有可能是帧间( Inter ) 已编码图像块, 也有可能是帧内 (Intra ) 已编码图像块。 其中, Inter 已编 码图像块有 MV (包括 MV值大小和其指向的对应参考图象索引), 而 Intra已 编码图像块没有 MV。 其中, 时域运动矢量预测值 ( TMVP: Tempora l MVP )是 基于当前图像块的时域参考图象获得的 MV, 所谓时域, 指当前图像块所在的 图像与当前图像块的参考图象, 在视频序列的时间轴上处于不同位置, 或者 处于不同 layer。 其中, 层间运动矢量预测值( ILMVP )所指向的参考图像可 能来自于第一图像块所在图像层, ILMVP可能基于其它图像层 (例如基本层) 的运动矢量得到, 其中 ILMVP可能可用也可能不可用。 运动矢量预测值列表 中越靠前的位置所对应的索引号越小。
参见图 2-b, 图 2-b示出了一种可能的 MVP list, 其中, Zero MVP位于 SMVP之前, 而 SMVP (包括 SMVP-AO, SMVP-A SMVP-B0和 SMVP-B1等 4个各 不相同的 SMVP, 分别为 A0、 Al、 B0、 B1对应的 MV, 当然, SMVP的数量也可 为 2或 3或其它个数)位于 TMVP之前, 位于 MVP list起始位置的是 ILMVP。
参见图 2-c,图 2-c示出了另一种可能的 MVP list,其中,此处假设 ILMVP 不可用, 因此 MVP list中不记录 ILMVP, Zero MVP位于 MVP list起始位置, 而 SMVP位于 TMVP之前。
参见图 2-d, 图 2-d示出了另一种可能的 MVP list, 其中, Zero MVP位 于 SMVP之后, Zero MVP位于 TMVP之前, ILMVP位于 MVP list起始位置。
参见图 2-e,图 2-e示出了另一种可能的 MVP list,其中,此处假设 ILMVP 不可用, 因此 MVP list中不记录 ILMVP, Zero MVP位于 SMVP之后, Zero MVP 位于 TMVP之前。
参见图 2-f, 图 2-f 示出了另一种可能的 MVP list, 其中, Zero MVP位 于各 SMVP之间 (图 2-f 以 Zero MVP位于 SMVP-A1和 SMVP-B1之间为例, 当 然 Zero MVP亦可介于其它两个 SMVP之间, 以此类推 ), SMVP位于 TMVP之前, ILMVP位于 MVP list起始位置。
参见图 2-g,图 2-g示出了另一种可能的 MVP list,其中,此处假设 ILMVP 不可用, 因此 MVP list中不记录 ILMVP, Zero MVP位于各 SMVP之间 (图 2-g 以 Zero MVP位于 SMVP-A1和 SMVP-B1之间为例, 当然 Zero MVP亦可介于其 它两个 SMVP之间, 以此类推), SMVP位于 TMVP之前, ILMVP位于 MVP list 起始位置。
可以理解, 上述举例仅为说明, 在实际应用中, 空域参考图像块的选取 个数和位置均可能灵活的调整, 并不限于上述举例。
以上示例, 主要以 HEVC SVC中的 merge mode为例。 实际上, 对于 skip 和 AMVP mode中涉及的运动矢量列表构造方法, 也同样适用。 除了 HEVC SVC 标准外, 对于其他涉及分层(腿 l t i-layer )的编解码技术中涉及的运动矢量 列表构方法, 也同样适用。
由上可见, 本实施例技术方案中, 获得第一编码块对应的 N个预测块的 运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢量预 测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运动矢 量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中的位置位于时 域运动矢量预测值之前。 由于充分的考虑了零值运动矢量预测值重要性, 将 零值运动矢量预测值置于运动矢量预测值列表中的靠前位置, 如此, 则有利 于提高零值运动矢量预测值被选作第一编码块的运动矢量的几率, 进而有助 于更好地发挥零值运动矢量预测值的层间预测作用, 进而有利于提高 MV预测 精度, 提升视频编码压缩性能。
本发明运动矢量预测值列表构建方法的一个实施例, 方法可包括: 获得 第一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动矢量预 测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、时域运动矢量预测值和 M 个空域运动矢量预测值, 用于指示上述零值运动矢量预测值在上述运动矢量 预测值列表中所处位置的第一位置指示的比特数, 小于用于指示上述时域运 动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特 数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列表中所处位 置的第三位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上述 运动矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域 运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上述零值运 动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像 层。
首先参见图 3 ,图 3是本发明实施例提供的另一种运动矢量预测值列表构 建方法的流程示意图。 如图 3 所示, 本发明实施例提供的另一种运动矢量预 测值列表构建方法可包括以下内容:
301、 获得第一图像块对应的 N个运动矢量预测值。
在本发明的一些实施例中, 获得的第一图像块对应的 N个运动矢量预测 值可包括: 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量 预测值, 其中, 上述零值运动矢量预测值所指向的参考图像来自于与第一图 像块所在图像层不同的图像层。 其中, M个空域运动矢量预测值各不相同。
在本发明的一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
302、 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量 预测值列表记录了上述 N个运动矢量预测值, 用于指示上述零值运动矢量预 测值在上述运动矢量预测值列表中所处位置的第一位置指示的比特数, 小于 用于指示上述时域运动矢量预测值在上述运动矢量预测值列表中所处位置的 第二位置指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量 预测值列表中所处位置的第三位置指示的比特数, 小于用于指示上述时域运 动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特 数, 第一空域运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个。
在本发明的一些实施例中, 运动矢量预测值列表的不同位置, 可使用不 同比特数的位置指示来进行指示, 根据位置指示的比特数可确定出其指示的 运动矢量预测值列表中的相应位置。 例如, 运动矢量预测值列表中越靠前的 位置的对应位置指示的比特数越小或越大, 当然, 也可能运动矢量预测值列 表中越靠中间的位置的对应位置指示的比特数越小或越大, 当然可以能是编 码端和解码端约定的其它变化规律, 甚至也可能没有可循规律。
在本发明的一些实施例中, 第一位置指示的比特数小于第三位置指示的 比特数; 或者, 第一位置指示的比特数大于第四位置指示的比特数且小于第 五位置指示的比特数, 其中, 第四位置指示用于指示第二空域运动矢量预测 值在上述运动矢量预测值列表中所处位置, 第五位置指示用于指示第三空域 运动矢量预测值在上述运动矢量预测值列表中所处位置, 上述 M个空域运动 矢量预测值包括第二空域运动矢量预测值和第三空域运动矢量预测值。
在本发明的一些实施例中, 上述 N个运动矢量预测值还包括层间运动矢 量预测值, 其中, 第六位置指示的比特数小于第三位置指示的比特数和第二 位置指示的比特数, 第六位置指示用于指示上述层间运动矢量预测值在上述 运动矢量预测值列表中所处位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
由上可见, 本实施例技术方案中, 获得第一编码块对应的 N个预测块的 运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢量预 测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运动矢 量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中所处位置的位 置指示的比特数, 小于时域运动矢量预测值在运动矢量预测值列表中所处位 置的位置指示的比特数。 由于充分的考虑了零值运动矢量预测值重要性, 将 零值运动矢量预测值置于运动矢量预测值列表中位置指示比特数更小的位 置, 如此则有利于提高零值运动矢量预测值被选作第一编码块的运动矢量的 几率, 进而有助于更好地发挥零值运动矢量预测值的层间预测作用, 进而有 利于提高 MV预测精度, 提升视频编码压缩性能。
本发明视频编码方法的一个实施例, 方法可包括: 获得第一图像块对应 的 N个运动矢量预测值; 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢 量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢 量预测值, 上述零值运动矢量预测值和上述 M个空域运动矢量预测值在上述 运动矢量预测值列表中的位置位于上述时域运动矢量预测值之前, 上述零值 运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图 像层; 基于上述运动矢量预测值列表确定第一图像块的运动矢量预测值; 基 于确定出的第一图像块的运动矢量预测值对第一图像块进行编码。
首先参见图 4 ,图 4是本发明实施例提供的一种视频编码方法的流程示意 图。 如图 4所示, 本发明实施例提供的一种视频编码可包括以下内容:
401、 获得第一图像块对应的 N个运动矢量预测值。
在本发明的一些实施例中, 获得的第一图像块对应的 N个运动矢量预测 值可包括: 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量 预测值, 其中, 上述零值运动矢量预测值所指向的参考图像来自于与第一图 像块所在图像层不同的图像层。 其中, M个空域运动矢量预测值各不相同。
在本发明的一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
402、 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量 预测值列表记录了上述 N个运动矢量预测值, 上述零值运动矢量预测值和上 述 M个空域运动矢量预测值在上述运动矢量预测值列表中的位置位于上述时 域运动矢量预测值之前; 其中, 运动矢量预测值列表中越靠前位置所对应的 索引号越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递 增。 例如, 运动矢量预测值列表的起始位置对应的索引号可为 0或 1 , 之后位 置对应的索引号依次递增。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
在本发明一些实施例中, 上述零值运动矢量预测值在上述运动矢量预测 值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值运 动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量预 测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括第 一空域运动矢量预测值和第二空域运动矢量预测值。
在本发明一些实施例中, 上述 N个运动矢量预测值还可包括层间运动矢 量预测值(也可能不可用于), 其中, 上述层间运动矢量预测值可位于上述运 动矢量预测值列表中的起始位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
403、 基于上述运动矢量预测值列表确定第一图像块的运动矢量预测值; 在本发明的一些实施例中, 可针对每个上述运动矢量预测值列表中的每 个运动矢量预测值计算得到对应的率失真代价, 可选择最小的率失真代价所 对应的运动矢量预测值, 作为第一图像块的运动矢量预测值。
404、 基于确定出的第一图像块的运动矢量预测值对第一图像块进行编 码。
由上可见, 本实施例技术方案中, 获得第一编码块对应的 N个预测块的 运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢量预 测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运动矢 量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中的位置位于时 域运动矢量预测值之前。 由于充分的考虑了零值运动矢量预测值重要性, 将 零值运动矢量预测值置于运动矢量预测值列表中的靠前位置, 如此, 则有利 于提高零值运动矢量预测值被选作第一编码块的运动矢量的几率, 进而有助 于更好地发挥零值运动矢量预测值的层间预测作用, 进而有利于提高 MV预测 精度, 提升视频编码压缩性能。
本发明视频解码方法的一个实施例, 方法可包括: 接收已编码的第一图 像块和第一位置指示, 其中, 第一位置指示用于指示出第一图像块的运动矢 量预测值在运动矢量预测值列表中所处位置; 获得第一图像块对应的 N个运 动矢量预测值; 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运 动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测 值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测 值, 上述零值运动矢量预测值和上述 M个空域运动矢量预测值在上述运动矢 量预测值列表中的位置位于上述时域运动矢量预测值之前, 上述零值运动矢 量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像层, 基于第一位置指示和上述运动矢量预测值列表确定第一图像块的运动矢量预 测值; 基于确定出的第一图像块的运动矢量预测值对第一图像块进行解码。
首先参见图 5 ,图 5是本发明实施例提供的另一种视频解码方法的流程示 意图。 如图 5所示, 本发明实施例提供的另一种视频解码可包括以下内容:
501、 接收已编码的第一图像块和第一位置指示,
其中, 第一位置指示用于指示出第一图像块的运动矢量预测值在运动矢 量预测值列表中所处位置;
502、 获得第一图像块对应的 N个运动矢量预测值;
在本发明的一些实施例中, 获得的第一图像块对应的 N个运动矢量预测 值可包括: 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量 预测值, 其中, 上述零值运动矢量预测值所指向的参考图像来自于与第一图 像块所在图像层不同的图像层。 其中, M个空域运动矢量预测值各不相同。
在本发明一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M 可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
503、 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量 预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包括 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 上 述零值运动矢量预测值和上述 M个空域运动矢量预测值在上述运动矢量预测 值列表中的位置位于上述时域运动矢量预测值之前, 上述零值运动矢量预测 值所指向的参考图像来自于与第一图像块所在图像层不同的图像层; 其中, 运动矢量预测值列表中越靠前的位置所对应的索引号越小, 运动矢量预测值 列表中各位置的索引号从起始位置开始依次递增。 例如, 运动矢量预测值列 表的起始位置对应的索引号可为 0或 1 , 之后位置对应的索引号依次递增。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
在本发明一些实施例中, 上述零值运动矢量预测值在上述运动矢量预测 值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值运 动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量预 测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括第 一空域运动矢量预测值和第二空域运动矢量预测值。
在本发明一些实施例中, 上述 N个运动矢量预测值还可包括层间运动矢 量预测值(也可能不可用于), 其中, 上述层间运动矢量预测值可位于上述运 动矢量预测值列表中的起始位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
504、 基于第一位置指示和上述运动矢量预测值列表确定第一图像块的运 动矢量预测值。
505、 基于确定出的第一图像块的运动矢量预测值对第一图像块进行解 码。
由上可见, 本实施例技术方案中, 获得第一编码块对应的 N个预测块的 运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢量预 测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运动矢 量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中的位置位于时 域运动矢量预测值之前。 由于充分的考虑了零值运动矢量预测值重要性, 将 零值运动矢量预测值置于运动矢量预测值列表中的靠前位置, 如此, 则有利 于提高零值运动矢量预测值被选作第一编码块的运动矢量的几率, 进而有助 于更好地发挥零值运动矢量预测值的层间预测作用, 进而有利于提高 MV预测 精度, 提升视频编码压缩性能。
本发明视频编码方法的一个实施例, 方法可包括: 获得第一图像块对应 的 N个运动矢量预测值; 构建第一图像块对应的运动矢量预测值列表, 上述 运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预 测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预 测值, 用于指示上述零值运动矢量预测值在上述运动矢量预测值列表中所处 位置的第一位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上 述运动矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一 空域运动矢量预测值在上述运动矢量预测值列表中所处位置的第三位置指示 的比特数, 小于用于指示上述时域运动矢量预测值在上述运动矢量预测值列 表中所处位置的第二位置指示的比特数, 其中, 第一空域运动矢量预测值为 上述 M个空域运动矢量预测值中的任意一个, 上述零值运动矢量预测值所指 向的参考图像来自于与第一图像块所在图像层不同的图像层; 基于上述运动 矢量预测值列表确定第一图像块的运动矢量预测值; 基于确定出的第一图像 块的运动矢量预测值对第一图像块进行编码。
首先参见图 6 ,图 6是本发明实施例提供的另一种视频编码方法的流程示 意图。 如图 6所示, 本发明实施例提供的另一种视频编码可包括以下内容:
601、 获得第一图像块对应的 N个运动矢量预测值。
在本发明的一些实施例中, 获得的第一图像块对应的 N个运动矢量预测 值可包括: 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量 预测值, 其中, 上述零值运动矢量预测值所指向的参考图像来自于与第一图 像块所在图像层不同的图像层。 其中, M个空域运动矢量预测值各不相同。 在本发明的一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
602、 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量 预测值列表记录了上述 N个运动矢量预测值, 用于指示上述零值运动矢量预 测值在上述运动矢量预测值列表中所处位置的第一位置指示的比特数, 小于 用于指示上述时域运动矢量预测值在上述运动矢量预测值列表中所处位置的 第二位置指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量 预测值列表中所处位置的第三位置指示的比特数, 小于用于指示上述时域运 动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特 数, 第一空域运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个。
在本发明的一些实施例中, 运动矢量预测值列表的不同位置, 可使用不 同比特数的位置指示来进行指示, 根据位置指示的比特数可确定出其指示的 运动矢量预测值列表中的相应位置。 例如, 运动矢量预测值列表中越靠前的 位置的对应位置指示的比特数越小或越大, 当然, 也可能运动矢量预测值列 表中越靠中间的位置的对应位置指示的比特数越小或越大, 当然可以能是编 码端和解码端约定的其它变化规律, 甚至也可能没有可循规律。
在本发明的一些实施例中, 第一位置指示的比特数小于第三位置指示的 比特数; 或者, 第一位置指示的比特数大于第四位置指示的比特数且小于第 五位置指示的比特数, 其中, 第四位置指示用于指示第二空域运动矢量预测 值在上述运动矢量预测值列表中所处位置, 第五位置指示用于指示第三空域 运动矢量预测值在上述运动矢量预测值列表中所处位置, 上述 M个空域运动 矢量预测值包括第二空域运动矢量预测值和第三空域运动矢量预测值。
在本发明的一些实施例中, 上述 N个运动矢量预测值还包括层间运动矢 量预测值, 其中, 第六位置指示的比特数小于第三位置指示的比特数和第二 位置指示的比特数, 第六位置指示用于指示上述层间运动矢量预测值在上述 运动矢量预测值列表中所处位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
603、 基于上述运动矢量预测值列表确定第一图像块的运动矢量预测值; 在本发明的一些实施例中, 可针对每个上述运动矢量预测值列表中的每 个运动矢量预测值计算得到对应的率失真代价, 可选择最小的率失真代价所 对应的运动矢量预测值, 作为第一图像块的运动矢量预测值。
604、 基于确定出的第一图像块的运动矢量预测值对第一图像块进行编 码。
由上可见, 本实施例技术方案中, 获得第一编码块对应的 N个预测块的 运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢量预 测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运动矢 量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中所处位置的位 置指示的比特数, 小于时域运动矢量预测值在运动矢量预测值列表中所处位 置的位置指示的比特数。 由于充分的考虑了零值运动矢量预测值重要性, 将 零值运动矢量预测值置于运动矢量预测值列表中位置指示比特数更小的位 置, 如此则有利于提高零值运动矢量预测值被选作第一编码块的运动矢量的 几率, 进而有助于更好地发挥零值运动矢量预测值的层间预测作用, 进而有 利于提高 MV预测精度, 提升视频编码压缩性能。
本发明视频解码方法的另一个实施例, 方法可包括: 接收已编码的第一 图像块和第七位置指示, 其中, 第七位置指示用于指示出第一图像块的运动 矢量预测值在运动矢量预测值列表中所处位置; 获得第一图像块对应的 N个 运动矢量预测值; 构建第一图像块对应的运动矢量预测值列表, 上述运动矢 量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包 括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 用于指示上述零值运动矢量预测值在上述运动矢量预测值列表中所处位置的 第一位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上述运动 矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一空域运 动矢量预测值在上述运动矢量预测值列表中所处位置的第三位置指示的比特 数, 小于用于指示上述时域运动矢量预测值在上述运动矢量预测值列表中所 处位置的第二位置指示的比特数, 其中, 第一空域运动矢量预测值为上述 M 个空域运动矢量预测值中的任意一个, 上述零值运动矢量预测值所指向的参 考图像来自于与第一图像块所在图像层不同的图像层; 基于第七位置指示和 上述运动矢量预测值列表确定第一图像块的运动矢量预测值; 基于确定出的 第一图像块的运动矢量预测值对第一图像块进行解码。
首先参见图 7 ,图 7是本发明实施例提供的另一种视频解码方法的流程示 意图。 如图 7所示, 本发明实施例提供的另一种视频解码可包括以下内容:
701、 接收已编码的第一图像块和第七位置指示, 其中, 第七位置指示用 于指示出第一图像块的运动矢量预测值在运动矢量预测值列表中所处位置;
702、 获得第一图像块对应的 N个运动矢量预测值。
在本发明的一些实施例中, 获得的第一图像块对应的 N个运动矢量预测 值可包括: 零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量 预测值, 其中, 上述零值运动矢量预测值所指向的参考图像来自于与第一图 像块所在图像层不同的图像层。 其中, M个空域运动矢量预测值各不相同。
在本发明的一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
703、 构建第一图像块对应的运动矢量预测值列表, 其中, 上述运动矢量 预测值列表记录了上述 N个运动矢量预测值, 用于指示上述零值运动矢量预 测值在上述运动矢量预测值列表中所处位置的第一位置指示的比特数, 小于 用于指示上述时域运动矢量预测值在上述运动矢量预测值列表中所处位置的 第二位置指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量 预测值列表中所处位置的第三位置指示的比特数, 小于用于指示上述时域运 动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特 数, 第一空域运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个。
在本发明的一些实施例中, 运动矢量预测值列表的不同位置, 可使用不 同比特数的位置指示来进行指示, 根据位置指示的比特数可确定出其指示的 运动矢量预测值列表中的相应位置。 例如, 运动矢量预测值列表中越靠前的 位置的对应位置指示的比特数越小或越大, 当然, 也可能运动矢量预测值列 表中越靠中间的位置的对应位置指示的比特数越小或越大, 当然可以能是编 码端和解码端约定的其它变化规律, 甚至也可能没有可循规律。
在本发明的一些实施例中, 第一位置指示的比特数小于第三位置指示的 比特数; 或者, 第一位置指示的比特数大于第四位置指示的比特数且小于第 五位置指示的比特数, 其中, 第四位置指示用于指示第二空域运动矢量预测 值在上述运动矢量预测值列表中所处位置, 第五位置指示用于指示第三空域 运动矢量预测值在上述运动矢量预测值列表中所处位置, 上述 M个空域运动 矢量预测值包括第二空域运动矢量预测值和第三空域运动矢量预测值。
在本发明的一些实施例中, 上述 N个运动矢量预测值还包括层间运动矢 量预测值, 其中, 第六位置指示的比特数小于第三位置指示的比特数和第二 位置指示的比特数, 第六位置指示用于指示上述层间运动矢量预测值在上述 运动矢量预测值列表中所处位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
704、 基于第七位置指示和上述运动矢量预测值列表确定第一图像块的运 动矢量预测值。
可以理解的是, 第七位置指示可与第一位置指示、 第二位置指示、 第三 位置指示、 第四位置指示、 第五位置指示或第六位置指示相同或不同。
705、 基于确定出的第一图像块的运动矢量预测值对第一图像块进行解 码。
由上可见, 本实施例技术方案中, 获得第一编码块对应的 N个预测块的 运动矢量; 构建第一编码块对应的运动矢量预测值列表, 其中, 运动矢量预 测值列表记录了 N个预测块的运动矢量, N个预测块的运动矢量包括零值运动 矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 零值运动矢 量预测值和 M个空域运动矢量预测值在运动矢量预测值列表中所处位置的位 置指示的比特数, 小于时域运动矢量预测值在运动矢量预测值列表中所处位 置的位置指示的比特数。 由于充分的考虑了零值运动矢量预测值重要性, 将 零值运动矢量预测值置于运动矢量预测值列表中位置指示比特数更小的位 置, 如此则有利于提高零值运动矢量预测值被选作第一编码块的运动矢量的 几率, 进而有助于更好地发挥零值运动矢量预测值的层间预测作用, 进而有 利于提高 MV预测精度, 提升视频编码压缩性能。
为便于更好的实施例本发明实施例的上述方案, 下面还提供用于实施上 述方案的相关装置。
参见图 8 , 本发明实施例提供一种运动矢量预测值列表构建装置 800, 可 包括: 获得单元 810和第一列表构建单元 820。
其中, 获得单元 810 , 用于获得第一图像块对应的 N个运动矢量预测值; 第一列表构建单元 820 , 用于构建第一图像块对应的运动矢量预测值列 表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空域运动矢量预测 值在上述运动矢量预测值列表中的位置位于上述时域运动矢量预测值之前, 上述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层 不同的图像层。 其中, 运动矢量预测值列表中越靠前的位置所对应的索引号 越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递增。 例 如运动矢量预测值列表的起始位置对应的索引号可为 0或 1 ,之后位置对应的 索引号依次递增。
在本发明的一些实施例中, 上述 N可等于 5、 6、 7或 8或其它可能的值, M可等于 2、 3、 4或 5或其它可能的值, 当然 M小于 N。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明的一些实施例中, 获 得单元 810获得的上述零值运动矢量预测值所指向的参考图像来自于基本层。
在本发明一些实施例中, 上述零值运动矢量预测值在上述运动矢量预测 值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值运 动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量预 测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括第 一空域运动矢量预测值和第二空域运动矢量预测值。
在本发明一些实施例中, 上述 N个运动矢量预测值还可包括层间运动矢 量预测值(也可能不可用于), 其中, 上述层间运动矢量预测值可位于上述运 动矢量预测值列表中的起始位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
在本发明的一些实施例中, 获得单元 810获得的上述零值运动矢量预测 值所指向的参考图像来自于基本层。
可以理解的是, 本实施例的运动矢量预测值列表构建装置 800 的各功能 模块的功能可根据图 1 所示方法实施例中的方法具体实现, 其具体实现过程 可以参照上述方法实施例的相关描述, 此处不再贅述。
图 9为本发明提供的一种视频处理设备的结构示意图, 如图 9所示, 本 实施例的视频处理设备包括至少一个总线 901、与总线 901相连的至少一个处 理器 902以及与总线 901相连的至少一个存储器 903。
其中, 处理器 902通过总线 901 , 调用存储器 903中存储的代码以用于获 得第一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动矢量 预测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测 值, 上述 N个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测 值和 M个空域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空域运 动矢量预测值在上述运动矢量预测值列表中的位置位于上述时域运动矢量预 测值之前, 上述零值运动矢量预测值所指向的参考图像来自于与第一图像块 所在图像层不同的图像层。 运动矢量预测值列表中越靠前的位置所对应的索 引号越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递增。 例如运动矢量预测值列表的起始位置对应的索引号可为 0或 1 ,之后位置对应 的索引号依次递增。
本实施例提供的视频处理设备, 可以用于执行图 1 所示方法实施例的技 术方案中视频处理设备对应执行的部分, 其实现原理和技术效果与之类似, 此处不再贅述。 图 9仅为本发明提供的视频处理设备的结构的一种示意图, 具体结构可根据实际进行调整。
参见图 10 ,图 10示出本发明实施例提供另一种运动矢量预测值列表构建 装置 1000 , 可包括: 获得单元 101 0和第二列表构建单元 1020。
其中, 获得单元 101 0 , 获得第一图像块对应的 N个运动矢量预测值; 第二列表构建单元 1020 , 用于构建第一图像块对应的运动矢量预测值列 表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 用于指示上述零值运动矢量预测值在上述运动矢量预测 值列表中所处位置的第一位置指示的比特数, 小于用于指示上述时域运动矢 量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列表中所处位置的 第三位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上述运动 矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域运动 矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上述零值运动矢 量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像层。
在本发明的一些实施例中, 运动矢量预测值列表的不同位置, 可使用不 同比特数的位置指示来进行指示, 根据位置指示的比特数可确定出其指示的 运动矢量预测值列表中的相应位置。 例如, 运动矢量预测值列表中越靠前的 位置的对应位置指示的比特数越小或越大, 当然, 也可能运动矢量预测值列 表中越靠中间的位置的对应位置指示的比特数越小或越大, 当然可以能是编 码端和解码端约定的其它变化规律, 甚至也可能没有可循规律。
在本发明的一些实施例中, 第一位置指示的比特数小于第三位置指示的 比特数; 或者, 第一位置指示的比特数大于第四位置指示的比特数且小于第 五位置指示的比特数, 其中, 第四位置指示用于指示第二空域运动矢量预测 值在上述运动矢量预测值列表中所处位置, 第五位置指示用于指示第三空域 运动矢量预测值在上述运动矢量预测值列表中所处位置, 上述 M个空域运动 矢量预测值包括第二空域运动矢量预测值和第三空域运动矢量预测值。
在本发明的一些实施例中, 上述 N个运动矢量预测值还包括层间运动矢 量预测值, 其中, 第六位置指示的比特数小于第三位置指示的比特数和第二 位置指示的比特数, 第六位置指示用于指示上述层间运动矢量预测值在上述 运动矢量预测值列表中所处位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明的一些实施例中, 获 得单元 1010 获得的上述零值运动矢量预测值所指向的参考图像来自于基本 层。
可以理解的是, 本实施例的运动矢量预测值列表构建装置 1000的各功能 模块的功能可根据图 3 所示方法实施例中的方法具体实现, 其具体实现过程 可以参照上述方法实施例的相关描述, 此处不再贅述。
图 11为本发明提供的一种视频处理设备的结构示意图, 如图 11所示, 本实施例的视频处理设备包括至少一个总线 1101、与总线 1101相连的至少一 个处理器 1102以及与总线 1101相连的至少一个存储器 1103。
其中, 处理器 1102通过总线 1101 , 调用存储器 1103中存储的代码以用 于获得第一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动 矢量预测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量 预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量 预测值和 M个空域运动矢量预测值, 用于指示上述零值运动矢量预测值在上 述运动矢量预测值列表中所处位置的第一位置指示的比特数, 小于用于指示 上述时域运动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置 指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列 表中所处位置的第三位置指示的比特数, 小于用于指示上述时域运动矢量预 测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上 述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不 同的图像层。
本实施例提供的视频处理设备, 可以用于执行图 3 所示方法实施例的技 术方案中视频处理设备对应执行的部分, 其实现原理和技术效果与之类似, 此处不再贅述。 图 11仅为本发明提供的视频处理设备的结构的一种示意图, 具体结构可根据实际进行调整。 参见图 12 , 图 12示出本发明实施例提供一种视频编码器 1200 , 可包括: 获得单元 121 0、 第一列表构建单元 1220、 运动矢量确定单元 1230、 编码 单元 1240。
其中, 获得单元 1210 , 用于获得第一图像块对应的 N个运动矢量预测值; 第一列表构建单元 1220 , 用于构建第一图像块对应的运动矢量预测值列 表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空域运动矢量预测 值在上述运动矢量预测值列表中的位置位于上述时域运动矢量预测值之前, 上述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层 不同的图像层。 其中, 运动矢量预测值列表中越靠前的位置所对应的索引号 越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递增。 例 如运动矢量预测值列表的起始位置对应的索引号可为 0或 1 ,之后位置对应的 索引号依次递增。
运动矢量确定单元 1230 , 用于基于上述运动矢量预测值列表确定第一图 像块的运动矢量预测值;
编码单元 1240 ,用于基于运动矢量确定单元 1230确定出的第一图像块的 运动矢量预测值对第一图像块进行编码。
在本发明的一些实施例中, 上述零值运动矢量预测值在上述运动矢量预 测值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值 运动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量 预测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括 第一空域运动矢量预测值和第二空域运动矢量预测值。
可以理解的是, 本实施例的视频编码器 1200的各功能模块的功能可根据 图 4 所示方法实施例中的方法具体实现, 其具体实现过程可以参照上述方法 实施例的相关描述, 此处不再贅述。 图 1 3为本发明提供的一种视频编码器的结构示意图, 如图 1 3所示, 本 实施例的视频编码器包括至少一个总线 1 301、与总线 1 301相连的至少一个处 理器 1 302以及与总线 1 301相连的至少一个存储器 1 303。
其中, 处理器 1 302通过总线 1 301 , 调用存储器 1 303中存储的代码以用 于获得第一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动 矢量预测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量 预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量 预测值和 M个空域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空 域运动矢量预测值在上述运动矢量预测值列表中的位置位于上述时域运动矢 量预测值之前 , 上述零值运动矢量预测值所指向的参考图像来自于与第一图 像块所在图像层不同的图像层; 基于上述运动矢量预测值列表确定第一图像 块的运动矢量预测值; 基于确定出的第一图像块的运动矢量预测值对第一图 像块进行编码。 其中, 运动矢量预测值列表中越靠前的位置所对应的索引号 越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递增。 例 如运动矢量预测值列表的起始位置对应的索引号可为 0或 1 ,之后位置对应的 索引号依次递增。
本实施例提供的视频编码器, 可以用于执行图 4 所示方法实施例的技术 方案中视频编码器对应执行的部分, 其实现原理和技术效果与之类似, 此处 不再贅述。 图 1 3仅为本发明提供的计算机系统的结构的一种示意图, 具体结 构可根据实际进行调整。
参见图 14 , 图 14示出本发明实施例提供另一种视频编码器 1400 , 可包 括:
获得单元 141 0、 第二列表构建单元 1420、 运动矢量确定单元 1430、 编码 单元 1440。
其中, 获得单元 1410 , 用于获得第一图像块对应的 N个运动矢量预测值; 第二列表构建单元 1420 , 用于构建第一图像块对应的运动矢量预测值列 表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 用于指示上述零值运动矢量预测值在上述运动矢量预测 值列表中所处位置的第一位置指示的比特数, 小于用于指示上述时域运动矢 量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列表中所处位置的 第三位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上述运动 矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域运动 矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上述零值运动矢 量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像层。
运动矢量确定单元 1430 , 用于基于上述运动矢量预测值列表确定第一图 像块的运动矢量预测值。
编码单元 1440,用于基于运动矢量确定单元 1430确定出的第一图像块的 运动矢量预测值对第一图像块进行编码。
在本发明的一些实施例中, 运动矢量预测值列表的不同位置, 可使用不 同比特数的位置指示来进行指示, 根据位置指示的比特数可确定出其指示的 运动矢量预测值列表中的相应位置。 例如, 运动矢量预测值列表中越靠前的 位置的对应位置指示的比特数越小或越大, 当然, 也可能运动矢量预测值列 表中越靠中间的位置的对应位置指示的比特数越小或越大, 当然可以能是编 码端和解码端约定的其它变化规律, 甚至也可能没有可循规律。
在本发明的一些实施例中, 第一位置指示的比特数小于第三位置指示的 比特数; 或者, 第一位置指示的比特数大于第四位置指示的比特数且小于第 五位置指示的比特数, 其中, 第四位置指示用于指示第二空域运动矢量预测 值在上述运动矢量预测值列表中所处位置, 第五位置指示用于指示第三空域 运动矢量预测值在上述运动矢量预测值列表中所处位置, 上述 M个空域运动 矢量预测值包括第二空域运动矢量预测值和第三空域运动矢量预测值。 在本发明的一些实施例中, 上述 N个运动矢量预测值还包括层间运动矢 量预测值, 其中, 第六位置指示的比特数小于第三位置指示的比特数和第二 位置指示的比特数, 第六位置指示用于指示上述层间运动矢量预测值在上述 运动矢量预测值列表中所处位置。 其中, 上述层间运动矢量预测值所指向的 参考图像来自于第一图像块所在图像层。 其中, 上述层间运动矢量预测值可 基于其它图像层 (例如基本层) 的运动矢量得到。
在本发明一些实施例中, 上述零值运动矢量预测值所指向的参考图像可 来自于第一图像块所在图像层的相邻图像层。 在本发明一些实施例中, 上述 零值运动矢量预测值所指向的参考图像可来自于基本层。
可以理解的是, 本实施例的视频编码器 1400的各功能模块的功能可根据 图 6 所示方法实施例中的方法具体实现, 其具体实现过程可以参照上述方法 实施例的相关描述, 此处不再贅述。
图 15为本发明提供的一种视频编码器的结构示意图, 如图 15所示, 本 实施例的视频编码器包括至少一个总线 1501、与总线 1501相连的至少一个处 理器 1502以及与总线 1501相连的至少一个存储器 1503。
其中, 处理器 1502通过总线 1501 , 调用存储器 1503中存储的代码以用 于获得第一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动 矢量预测值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量 预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量 预测值和 M个空域运动矢量预测值, 用于指示上述零值运动矢量预测值在上 述运动矢量预测值列表中所处位置的第一位置指示的比特数, 小于用于指示 上述时域运动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置 指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列 表中所处位置的第三位置指示的比特数, 小于用于指示上述时域运动矢量预 测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上 述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不 同的图像层; 基于上述运动矢量预测值列表确定第一图像块的运动矢量预测 值; 基于确定出的第一图像块的运动矢量预测值对第一图像块进行编码。
本实施例提供的视频编码器, 可以用于执行图 6 所示方法实施例的技术 方案中视频编码器对应执行的部分, 其实现原理和技术效果与之类似, 此处 不再贅述。 图 15仅为本发明提供的计算机系统的结构的一种示意图, 具体结 构可根据实际进行调整。
可以理解的是, 本发明视频编码器例如可以部署于数码相机、 手机、 电 视机、 电脑或者可采用 HEVC标准的其它能够进行视频播放和 /或视频录制的 设备之中。
参见图 16 , 图 16示出本发明实施例提供一种视频解码器 1600 , 可包括: 接收单元 1610、 获得单元 1620、 第二列表构建单元 1630、 运动矢量确定 单元 1640和解码单元 1650。
接收单元 1610 , 用于接收已编码的第一图像块和第一位置指示, 其中, 第一位置指示用于指示出第一图像块的运动矢量预测值在运动矢量预测值列 表中所处位置;
获得单元 1620 , 用于获得第一图像块对应的 N个运动矢量预测值; 第一列表构建单元 1630 , 用于构建第一图像块对应的运动矢量预测值列 表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空域运动矢量预测 值在上述运动矢量预测值列表中的位置位于上述时域运动矢量预测值之前, 上述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图像层 不同的图像层; 其中, 运动矢量预测值列表中越靠前的位置所对应的索引号 越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递增。 例 如运动矢量预测值列表的起始位置对应的索引号可为 0或 1 ,之后位置对应的 索引号依次递增。
运动矢量确定单元 1640 , 用于基于第一位置指示和上述运动矢量预测值 列表确定第一图像块的运动矢量预测值;
解码单元 1650 ,用于基于运动矢量确定单元 1640确定出的第一图像块的 运动矢量预测值对第一图像块进行解码。
在本发明的一些实施例中, 上述零值运动矢量预测值在上述运动矢量预 测值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值 运动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量 预测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括 第一空域运动矢量预测值和第二空域运动矢量预测值。
可以理解的是, 本实施例的视频解码器 1600的各功能模块的功能可根据 图 5 所示方法实施例中的方法具体实现, 其具体实现过程可以参照上述方法 实施例的相关描述, 此处不再贅述。
图 17为本发明提供的一种视频解码器的结构示意图, 如图 17所示, 本 实施例的视频解码器包括至少一个总线 1701、与总线 1701相连的至少一个处 理器 1702以及与总线 1701相连的至少一个存储器 1703。
其中, 处理器 1702通过总线 1701 , 调用存储器 1703中存储的代码以用 于接收已编码的第一图像块和第一位置指示, 其中, 第一位置指示用于指示 出第一图像块的运动矢量预测值在运动矢量预测值列表中所处位置; 获得第 一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动矢量预测 值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、时域运动矢量预测值和 M 个空域运动矢量预测值, 上述零值运动矢量预测值和上述 M个空域运动矢量 预测值在上述运动矢量预测值列表中的位置位于上述时域运动矢量预测值之 前, 上述零值运动矢量预测值所指向的参考图像来自于与第一图像块所在图 像层不同的图像层; 基于第一位置指示和上述运动矢量预测值列表确定第一 图像块的运动矢量预测值; 基于确定出的第一图像块的运动矢量预测值对第 一图像块进行解码。 其中, 运动矢量预测值列表中越靠前的位置所对应的索 引号越小, 运动矢量预测值列表中各位置的索引号从起始位置开始依次递增。 例如运动矢量预测值列表的起始位置对应的索引号可为 0或 1 ,之后位置对应 的索引号依次递增。
本实施例提供的视频解码器, 可以用于执行图 5 所示方法实施例的技术 方案中视频编码器对应执行的部分, 其实现原理和技术效果与之类似, 此处 不再贅述。 图 17仅为本发明提供的计算机系统的结构的一种示意图, 具体结 构可根据实际进行调整。
参见图 18 , 图 18示出本发明实施例提供另一种视频解码器 1800 , 可包 括:
接收单元 1810、 获得单元 1820、 第二列表构建单元 1830、 运动矢量确定 单元 1840和解码单元 1850。
接收单元 1810 , 用于接收已编码的第一图像块和第一位置指示, 其中, 第一位置指示用于指示出第一图像块的运动矢量预测值在运动矢量预测值列 表中所处位置;
获得单元 1820 , 用于获得第一图像块对应的 N个运动矢量预测值; 第二列表构建单元 1830 , 用于构建第一图像块对应的运动矢量预测值列 表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N 个运动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空 域运动矢量预测值, 用于指示上述零值运动矢量预测值在上述运动矢量预测 值列表中所处位置的第一位置指示的比特数, 小于用于指示上述时域运动矢 量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列表中所处位置的 第三位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上述运动 矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域运动 矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上述零值运动矢 量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像层。
运动矢量确定单元 1840 , 用于基于第一位置指示和上述运动矢量预测值 列表确定第一图像块的运动矢量预测值;
解码单元 1850 ,用于基于运动矢量确定单元 1840确定出的第一图像块的 运动矢量预测值对第一图像块进行解码。
在本发明的一些实施例中, 上述零值运动矢量预测值在上述运动矢量预 测值列表中的位置位于上述 M个空域运动矢量预测值之前; 或者, 上述零值 运动矢量预测值在上述运动矢量预测值列表中的位置位于第一空域运动矢量 预测值和第二空域运动矢量预测值之间, 上述 M个空域运动矢量预测值包括 第一空域运动矢量预测值和第二空域运动矢量预测值。
可以理解的是, 本实施例的视频解码器 1800的各功能模块的功能可根据 图 7 所示方法实施例中的方法具体实现, 其具体实现过程可以参照上述方法 实施例的相关描述, 此处不再贅述。
图 19为本发明提供的一种视频解码器的结构示意图, 如图 19所示, 本 实施例的视频解码器包括至少一个总线 1901、与总线 1901相连的至少一个处 理器 1902以及与总线 1901相连的至少一个存储器 1903。
其中, 处理器 1902通过总线 1901 , 调用存储器 1903中存储的代码以用 于接收已编码的第一图像块和第一位置指示, 其中, 第一位置指示用于指示 出第一图像块的运动矢量预测值在运动矢量预测值列表中所处位置; 获得第 一图像块对应的 N个运动矢量预测值; 构建第一图像块对应的运动矢量预测 值列表, 其中, 上述运动矢量预测值列表记录了上述 N个运动矢量预测值, 上述 N个运动矢量预测值包括零值运动矢量预测值、时域运动矢量预测值和 M 个空域运动矢量预测值, 用于指示上述零值运动矢量预测值在上述运动矢量 预测值列表中所处位置的第一位置指示的比特数, 小于用于指示上述时域运 动矢量预测值在上述运动矢量预测值列表中所处位置的第二位置指示的比特 数; 用于指示第一空域运动矢量预测值在上述运动矢量预测值列表中所处位 置的第三位置指示的比特数, 小于用于指示上述时域运动矢量预测值在上述 运动矢量预测值列表中所处位置的第二位置指示的比特数, 其中, 第一空域 运动矢量预测值为上述 M个空域运动矢量预测值中的任意一个, 上述零值运 动矢量预测值所指向的参考图像来自于与第一图像块所在图像层不同的图像 层; 基于第一位置指示和上述运动矢量预测值列表确定第一图像块的运动矢 量预测值; 基于确定出的第一图像块的运动矢量预测值对第一图像块进行解 码。
本实施例提供的视频解码器, 可以用于执行图 7 所示方法实施例的技术 方案中视频编码器对应执行的部分, 其实现原理和技术效果与之类似, 此处 不再贅述。 图 19仅为本发明提供的计算机系统的结构的一种示意图, 具体结 构可根据实际进行调整。
可以理解的是, 本发明视频解码器例如可以部署于数码相机、 手机、 电 视机、 电脑或者可采用 HEVC标准的其它能够进行视频播放和 /或视频录制的 设备之中。
本发明实施例还提供一种计算机存储介质, 其中, 该计算机存储介质可 存储有程序, 该程序执行时包括上述方法实施例中记载的运动矢量预测值列 表构建方法的部分或全部步骤。
本发明实施例还提供一种计算机存储介质, 其中, 该计算机存储介质可 存储有程序, 该程序执行时包括上述方法实施例中记载的视频编码方法部分 或全部步骤。
本发明实施例还提供一种计算机存储介质, 其中, 该计算机存储介质可 存储有程序, 该程序执行时包括上述方法实施例中记载的视频解码方法的部 分或全部步骤。
需要说明的是, 对于前述的各方法实施例, 为了简单描述, 故将其都表 述为一系列的动作组合, 但是本领域技术人员应该知悉, 本发明并不受所描 述的动作顺序的限制, 因为依据本发明, 某些步骤可以采用其他顺序或者同 时进行。 其次, 本领域技术人员也应该知悉, 说明书中所描述的实施例均属 于优选实施例, 所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中, 对各个实施例的描述都各有侧重, 某个实施例中没有 详述的部分, 可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的装置, 可通过 其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性的, 例如所 述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方 式, 例如多个单元或组件可以结合或者可以集成到另一个系统, 或一些特征 可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦合 或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信连接, 可以 是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作 为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。
另外, 在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个单 元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用软件功能单 元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售 或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本 发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的 全部或部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个 存储介质中, 包括若干指令用以使得一台计算机设备(可为个人计算机、 服 务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括: U盘、 只读存储器(ROM, Read-Only Memory ), 随机 存取存储器(RAM, Random Acces s Memory ), 移动硬盘、 磁碟或者光盘等各 种可以存储程序代码的介质。
以上所述, 以上实施例仅用以说明本发明的技术方案, 而非对其限制; 尽管参照前述实施例对本发明进行了详细的说明, 本领域的普通技术人员应 当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其 中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技术方案 的本质脱离本发明各实施例技术方案的精神和范围。

Claims

权利 要求 书
1、 一种运动矢量预测值列表构建方法, 其特征在于, 包括:
获得第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预 测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括零值 运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 所述零值 运动矢量预测值和所述 M个空域运动矢量预测值在所述运动矢量预测值列表中 的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测值所指向的 参考图像来自于与所述第一图像块所在图像层不同的图像层, 所述运动矢量预 测值列表中越靠前的位置所对应的索引号越小。
2、 根据权利要求 1所述的方法, 其特征在于,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M 个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢量 预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预测值 之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值和所述 第二空域运动矢量预测值。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述 N个运动矢量预测 值还包括层间运动矢量预测值, 其中, 所述层间运动矢量预测值位于所述运动 矢量预测值列表中的起始位置。
4、 根据权利要求 1至 3任一项所述的方法, 其特征在于, 所述零值运动矢 量预测值所指向的参考图像, 来自于所述第一图像块所在图像层的相邻图像层。
5、 根据权利要求 1至 3任一项所述的方法, 其特征在于, 所述零值运动矢 量预测值所指向的参考图像来自于基本层。
6、 一种运动矢量预测值列表构建方法, 其特征在于, 包括:
获得第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预 测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括零值 运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 用于指示 所述零值运动矢量预测值在所述运动矢量预测值列表中所处位置的第一位置指 示的比特数, 小于用于指示所述时域运动矢量预测值在所述运动矢量预测值列 表中所处位置的第二位置指示的比特数; 用于指示第一空域运动矢量预测值在 所述运动矢量预测值列表中所处位置的第三位置指示的比特数, 小于用于指示 所述时域运动矢量预测值在所述运动矢量预测值列表中所处位置的第二位置指 示的比特数, 其中, 所述第一空域运动矢量预测值为所述 M个空域运动矢量预 测值中的任意一个, 所述零值运动矢量预测值所指向的参考图像来自于与所述 第一图像块所在图像层不同的图像层。
7、 根据权利要求 6所述的方法, 其特征在于,
所述第一位置指示的比特数小于所述第三位置指示的比特数; 或者, 所述 第一位置指示的比特数大于第四位置指示的比特数且小于第五位置指示的比特 数, 其中, 所述第四位置指示用于指示第二空域运动矢量预测值在所述运动矢 量预测值列表中所处位置, 所述第五位置指示用于指示第三空域运动矢量预测 值在所述运动矢量预测值列表中所处位置, 所述 M个空域运动矢量预测值包括 所述第二空域运动矢量预测值和所述第三空域运动矢量预测值。
8、 根据权利要求 6或 7所述的方法, 其特征在于, 所述 N个运动矢量预测 值还包括层间运动矢量预测值, 其中, 第六位置指示的比特数小于第三位置指 示的比特数和第二位置指示的比特数, 所述第六位置指示用于指示所述层间运 动矢量预测值在所述运动矢量预测值列表中所处位置。
9、 一种视频编码方法, 其特征在于, 包括:
获得第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预 测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括零值 运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 所述零值 运动矢量预测值和所述 M个空域运动矢量预测值在所述运动矢量预测值列表中 的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测值所指向的 参考图像来自于与所述第一图像块所在图像层不同的图像层, 所述运动矢量预 测值列表中越靠前的位置所对应的索引号越小;
基于所述运动矢量预测值列表确定所述第一图像块的运动矢量预测值; 基于确定出的所述第一图像块的运动矢量预测值对所述第一图像块进行编 码。
10、 根据权利要求 9所述的方法, 其特征在于,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M 个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢量 预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预测值 之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值和所述 第二空域运动矢量预测值。
11、 根据权利要求 9或 1 0所述的方法, 其特征在于, 所述 N个运动矢量预 测值还包括层间运动矢量预测值, 其中, 所述层间运动矢量预测值位于所述运 动矢量预测值列表中的起始位置。
12、 一种视频解码方法, 其特征在于, 包括:
接收已编码的第一图像块和第一位置指示, 其中, 所述第一位置指示用于 指示出第一图像块的运动矢量预测值在运动矢量预测值列表中所处位置;
获得所述第一图像块对应的 N个运动矢量预测值;
构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预 测值列表记录了所述 N个运动矢量预测值, 所述 N个运动矢量预测值包括零值 运动矢量预测值、 时域运动矢量预测值和 M个空域运动矢量预测值, 所述零值 运动矢量预测值和所述 M个空域运动矢量预测值在所述运动矢量预测值列表中 的位置位于所述时域运动矢量预测值之前, 所述零值运动矢量预测值所指向的 参考图像来自于与所述第一图像块所在图像层不同的图像层, 所述运动矢量预 测值列表中越靠前的位置所对应的索引号越小;
基于所述第一位置指示和所述运动矢量预测值列表确定所述第一图像块的 运动矢量预测值;
基于确定出的所述第一图像块的运动矢量预测值对所述第一图像块进行解 码。
1 3、 根据权利要求 12所述的方法, 其特征在于,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M 个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢量 预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预测值 之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值和所述 第二空域运动矢量预测值。
14、 根据权利要求 12或 1 3所述的方法, 其特征在于, 所述 N个运动矢量 预测值还包括层间运动矢量预测值, 其中, 所述层间运动矢量预测值位于所述 运动矢量预测值列表中的起始位置。
15、 一种运动矢量预测值列表构建装置, 其特征在于, 包括:
获得单元, 用于获得第一图像块对应的 N个运动矢量预测值;
第一列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N个运 动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动 矢量预测值, 所述零值运动矢量预测值和所述 M个空域运动矢量预测值在所述 运动矢量预测值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运 动矢量预测值所指向的参考图像来自于与所述第一图像块所在图像层不同的图 像层, 所述运动矢量预测值列表中越靠前的位置所对应的索引号越小。
16、 根据权利要求 15所述的装置, 其特征在于, 所述获得单元获得的所述 零值运动矢量预测值所指向的参考图像来自于基本层。
17、 一种运动矢量预测值列表构建装置, 其特征在于, 包括: 获得单元, 获得第一图像块对应的 N个运动矢量预测值;
第二列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N个运 动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动 矢量预测值, 用于指示所述零值运动矢量预测值在所述运动矢量预测值列表中 所处位置的第一位置指示的比特数, 小于用于指示所述时域运动矢量预测值在 所述运动矢量预测值列表中所处位置的第二位置指示的比特数; 用于指示第一 空域运动矢量预测值在所述运动矢量预测值列表中所处位置的第三位置指示的 比特数, 小于用于指示所述时域运动矢量预测值在所述运动矢量预测值列表中 所处位置的第二位置指示的比特数, 其中, 所述第一空域运动矢量预测值为所 述 M个空域运动矢量预测值中的任意一个, 所述零值运动矢量预测值所指向的 参考图像来自于与所述第一图像块所在图像层不同的图像层。
18、 根据权利要求 17所述的装置, 其特征在于, 所述获得单元获得的所述 零值运动矢量预测值所指向的参考图像来自于基本层。
19、 一种视频编码器, 其特征在于, 包括:
获得单元, 用于获得第一图像块对应的 N个运动矢量预测值;
第一列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N个运 动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动 矢量预测值, 所述零值运动矢量预测值和所述 M个空域运动矢量预测值在所述 运动矢量预测值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运 动矢量预测值所指向的参考图像来自于与所述第一图像块所在图像层不同的图 像层, 所述运动矢量预测值列表中越靠前的位置所对应的索引号越小;
运动矢量预测值确定单元, 用于基于所述运动矢量预测值列表确定所述第 一图像块的运动矢量预测值;
编码单元, 用于基于所述运动矢量预测值确定单元确定出的所述第一图像 块的运动矢量预测值对所述第一图像块进行编码。
20、 根据权利要求 19所述的视频编码器, 其特征在于,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M 个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢量 预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预测值 之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值和所述 第二空域运动矢量预测值。
21、 一种视频解码器, 其特征在于, 包括:
接收单元, 用于接收已编码的第一图像块和第一位置指示, 其中, 所述第 一位置指示用于指示出第一图像块的运动矢量预测值在运动矢量预测值列表中 所处位置;
获得单元, 用于获得所述第一图像块对应的 N个运动矢量预测值; 第一列表构建单元, 用于构建所述第一图像块对应的运动矢量预测值列表, 其中, 所述运动矢量预测值列表记录了所述 N个运动矢量预测值, 所述 N个运 动矢量预测值包括零值运动矢量预测值、 时域运动矢量预测值和 M个空域运动 矢量预测值, 所述零值运动矢量预测值和所述 M个空域运动矢量预测值在所述 运动矢量预测值列表中的位置位于所述时域运动矢量预测值之前, 所述零值运 动矢量预测值所指向的参考图像来自于与所述第一图像块所在图像层不同的图 像层, 所述运动矢量预测值列表中越靠前的位置所对应的索引号越小;
运动矢量预测值确定单元, 用于基于所述第一位置指示和所述运动矢量预 测值列表确定所述第一图像块的运动矢量预测值;
解码单元, 用于基于所述运动矢量预测值确定单元确定出的所述第一图像 块的运动矢量预测值对所述第一图像块进行解码。
22、 根据权利要求 21所述的视频解码器, 其特征在于,
所述零值运动矢量预测值在所述运动矢量预测值列表中的位置位于所述 M 个空域运动矢量预测值之前; 或者, 所述零值运动矢量预测值在所述运动矢量 预测值列表中的位置位于第一空域运动矢量预测值和第二空域运动矢量预测值 之间, 所述 M个空域运动矢量预测值包括所述第一空域运动矢量预测值和所述 第二空域运动矢量预测值。
PCT/CN2013/082035 2013-01-09 2013-08-22 运动矢量预测值列表构建方法和视频编解码方法及装置 WO2014107961A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310007667.XA CN103079067B (zh) 2013-01-09 2013-01-09 运动矢量预测值列表构建方法和视频编解码方法及装置
CN201310007667.X 2013-01-09

Publications (1)

Publication Number Publication Date
WO2014107961A1 true WO2014107961A1 (zh) 2014-07-17

Family

ID=48155463

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/082035 WO2014107961A1 (zh) 2013-01-09 2013-08-22 运动矢量预测值列表构建方法和视频编解码方法及装置

Country Status (2)

Country Link
CN (1) CN103079067B (zh)
WO (1) WO2014107961A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103079067B (zh) * 2013-01-09 2016-03-09 华为技术有限公司 运动矢量预测值列表构建方法和视频编解码方法及装置
CN104717510B (zh) 2013-12-13 2018-08-17 华为技术有限公司 用于图像处理的方法和装置
CN103747264B (zh) * 2014-01-03 2017-10-17 华为技术有限公司 预测运动矢量的方法、编码设备和解码设备
KR101908205B1 (ko) 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
WO2016165069A1 (en) * 2015-04-14 2016-10-20 Mediatek Singapore Pte. Ltd. Advanced temporal motion vector prediction in video coding
CN108172168B (zh) * 2017-12-22 2019-11-15 深圳市华星光电半导体显示技术有限公司 一种补偿表压缩方法
US10652550B2 (en) 2017-12-22 2020-05-12 Shenzhen China Star Optoelectronics Semiconductor Display Technology Co., Ltd. Compensation table compressing method
CN111163322B (zh) * 2020-01-08 2022-08-30 绍兴文理学院 对基于历史运动矢量的索引进行映射的编码及解码方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093585A1 (ja) * 2011-01-07 2012-07-12 株式会社エヌ・ティ・ティ・ドコモ 動きベクトルの予測符号化方法、予測符号化装置、及び予測符号化プログラム、並びに、動きベクトルの予測復号方法、予測復号装置、及び、予測復号プログラム
US20120195368A1 (en) * 2011-01-27 2012-08-02 Qualcomm Incorporated Performing motion vector prediction for video coding
US20120307903A1 (en) * 2011-05-31 2012-12-06 Panasonic Corporation Moving picture coding method, moving picture coding apparatus, moving picture decoding method, moving picture decoding apparatus, and moving picture coding and decoding apparatus
CN103079067A (zh) * 2013-01-09 2013-05-01 华为技术有限公司 运动矢量预测值列表构建方法和视频编解码方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611881B (zh) * 2011-01-19 2014-06-25 华为技术有限公司 参考运动矢量获取方法、模块及编、解码装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093585A1 (ja) * 2011-01-07 2012-07-12 株式会社エヌ・ティ・ティ・ドコモ 動きベクトルの予測符号化方法、予測符号化装置、及び予測符号化プログラム、並びに、動きベクトルの予測復号方法、予測復号装置、及び、予測復号プログラム
US20120195368A1 (en) * 2011-01-27 2012-08-02 Qualcomm Incorporated Performing motion vector prediction for video coding
US20120307903A1 (en) * 2011-05-31 2012-12-06 Panasonic Corporation Moving picture coding method, moving picture coding apparatus, moving picture decoding method, moving picture decoding apparatus, and moving picture coding and decoding apparatus
CN103079067A (zh) * 2013-01-09 2013-05-01 华为技术有限公司 运动矢量预测值列表构建方法和视频编解码方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHI , ZHONGBO ET AL.: "CGS Quality Scalability for HEVC", 2011 IEEE 13TH INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING (MMSP, 19 October 2011 (2011-10-19) *

Also Published As

Publication number Publication date
CN103079067A (zh) 2013-05-01
CN103079067B (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
WO2014107961A1 (zh) 运动矢量预测值列表构建方法和视频编解码方法及装置
CN111955007B (zh) 视频解码的方法和装置
JP6419808B2 (ja) ビデオコーディングのための照明補償を処理すること
WO2016155576A1 (zh) 图像编解码方法和相关装置
TWI679882B (zh) 具區塊向量衍生區塊內複製編碼方法及系統
US9491458B2 (en) Scalable video coding prediction with non-causal information
CN112789852A (zh) 基于历史的图像编码方法及其设备
TW201924343A (zh) 視訊寫碼中之仿射預測
JP2015529065A (ja) スケーラブルビデオコーディングおよび3dビデオコーディングのための多重仮説動き補償
TWI527440B (zh) 在視訊寫碼中針對高效率視訊寫碼(hevc)延伸之多層之低複雜度支援
TW201509171A (zh) 對多層視訊寫碼之層間預測信令之最佳化
CN112823521A (zh) 使用基于历史的运动信息的图像编码方法及其装置
TW201218774A (en) Adaptive motion resolution for video coding
US9420285B2 (en) Inter-layer mode derivation for prediction in scalable video coding
TW201249215A (en) Motion vector prediction in video coding
TWI504239B (zh) 針對基於高效率視訊寫碼之可縮放寫碼之運動場升頻取樣
JP6526574B2 (ja) レイヤ間シンタックス予測制御
KR20210111859A (ko) Dmvr 기반의 인터 예측 방법 및 장치
JP2016537843A (ja) Mv−hevcにおけるビュー間依存タイプ
JP2016525317A (ja) Vps内のビットレート情報およびピクチャレート情報のシグナリング
JP2022536383A (ja) 単純化されたmpmリスト生成方法を用いる画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
CN113519161A (zh) 处理视频信号用于帧间预测的方法和设备
CN111903123B (zh) 基于帧间预测模式的图像处理方法和用于该方法的装置
WO2014048372A1 (zh) 用于图像处理的方法、装置、编码器和解码器
US20210274163A1 (en) Method for coding intra-prediction mode, and device for same

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13870629

Country of ref document: EP

Kind code of ref document: A1