US9118929B2 - Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus - Google Patents

Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus Download PDF

Info

Publication number
US9118929B2
US9118929B2 US14/601,247 US201514601247A US9118929B2 US 9118929 B2 US9118929 B2 US 9118929B2 US 201514601247 A US201514601247 A US 201514601247A US 9118929 B2 US9118929 B2 US 9118929B2
Authority
US
United States
Prior art keywords
coding unit
coding
sub
vectors
derivation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US14/601,247
Other versions
US20150131724A1 (en
Inventor
Jian-Liang Lin
Yu-Pao Tsai
Shaw-Min Lei
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HFI Innovation Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/048,893 external-priority patent/US8971400B2/en
Application filed by MediaTek Inc filed Critical MediaTek Inc
Priority to US14/601,247 priority Critical patent/US9118929B2/en
Assigned to MEDIATEK INC. reassignment MEDIATEK INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEI, SHAW-MIN, LIN, JIAN-LIANG, TSAI, YU-PAO
Publication of US20150131724A1 publication Critical patent/US20150131724A1/en
Application granted granted Critical
Publication of US9118929B2 publication Critical patent/US9118929B2/en
Priority to CN201610023800.4A priority patent/CN105812819B/en
Assigned to HFI INNOVATION INC. reassignment HFI INNOVATION INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MEDIATEK INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/547Motion estimation performed in a transform domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to video processing regarding motion compensation, and more particularly, to a method for performing hybrid multihypothesis prediction during video coding of a coding unit, and to an associated apparatus.
  • Motion estimation/compensation is a technique utilized in encoding and decoding of video data for video compression.
  • a current picture can be represented in terms of some portions of one or more reference pictures, where the reference pictures may be previous in time or even from the future.
  • images can be accurately synthesized from previously transmitted/stored images through motion compensation, and the compression efficiency can be improved.
  • the designs regarding newer standards have been introduced to further improve the compression efficiency.
  • An exemplary embodiment of a method for performing multihypothesis prediction during video coding of a coding unit comprises: processing a plurality of sub-coding units in the coding unit; and performing disparity vector (DV) derivation when the coding unit is processed by a three-dimensional (3D) or multi-view coding tool or performing block vector (BV) derivation when the coding unit is processed by intra picture block copy (IntraBC) mode. More particularly, the step of performing DV or BV derivation further comprises: deriving a plurality of vectors for multihypothesis prediction of a specific sub-coding in the coding unit from at least one other sub-coding/coding unit.
  • the plurality of vectors are selecting from at least two DVs, at least two BVs, or a combination of DV, BV and MV. At least one of the vectors is the DV or BV of the at least one other sub-coding/coding unit coded before the corresponding DV or BV is derived for multihypothesis prediction of the specific sub-coding unit.
  • the method further comprises performing multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors, where the step of performing multihypothesis prediction on the specific sub-coding unit further comprises utilizing a linear combination of a plurality of pixel values derived from the plurality of vectors as a predicted pixel value of the specific sub-coding unit.
  • An exemplary embodiment of an apparatus for performing multihypothesis prediction during video coding of a coding unit comprises a processing circuit arranged to perform video coding on the coding unit, where the processing circuit comprises a preprocessing module and at least one coding module.
  • the preprocessing module is arranged to process a plurality of sub-coding units in the coding unit and perform DV derivation or BV derivation. More particularly, the preprocessing module derives a plurality of vectors for multihypothesis prediction of a specific sub-coding unit in the coding unit from at least one other sub-coding/coding unit.
  • At least one of the vectors is the DV or BV of the at least one other sub-coding/coding unit coded before the corresponding DV or BV is derived for multihypothesis prediction of the specific sub-coding unit, and performs multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors, where the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the plurality of vectors as a predicted pixel value of the specific sub-coding unit.
  • the at least one coding module is arranged to perform video coding on the coding unit based upon the multihypothesis prediction performed by the preprocessing module.
  • FIG. 1A is a diagram of an apparatus for performing hybrid multihypothesis prediction during video coding of a coding unit according to a first embodiment of the present invention.
  • FIG. 1B illustrates the inter/intra prediction module 110 shown in FIG. 1A according to an embodiment of the present invention.
  • FIG. 1C illustrates exemplary multihypothesis motion-compensated prediction operations of the inter/intra prediction module shown in FIG. 1A according to an embodiment of the present invention.
  • FIG. 2 is a flowchart of a method for performing hybrid multihypothesis prediction during video coding of a coding unit according to an embodiment of the present invention.
  • FIG. 3 illustrates exemplary coded blocks involved with the method shown in FIG. 2 according to an embodiment of the present invention.
  • FIG. 4 illustrates some implementation details involved with the method shown in FIG. 2 according to an embodiment of the present invention.
  • FIGS. 5A-5B illustrate exemplary types of hybrid multihypothesis prediction that are involved with the method shown in FIG. 2 according to different embodiments of the present invention.
  • FIG. 5C illustrates some implementation details involved with the method shown in FIG. 2 according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of a decoding process involved with the method shown in FIG. 2 according to an embodiment of the present invention.
  • FIG. 7A illustrates exemplary partitions based on a transform size according to different embodiments of the present invention.
  • FIGS. 7B-7D illustrate exemplary sources for obtaining motion vectors that are involved with the method shown in FIG. 2 according to some embodiments of the present invention.
  • FIGS. 8A-8B illustrate exemplary sources for obtaining at least one motion vector of a remaining portion that differs from the portion of the sub-coding units involved with the method shown in FIG. 2 according to some embodiments of the present invention.
  • FIGS. 9A-9C illustrate respective flowcharts of some decoding processes involved with the method shown in FIG. 2 according to different embodiments of the present invention.
  • FIG. 1A illustrates a diagram of an apparatus 100 for performing hybrid multihypothesis prediction during video coding of a coding unit according to a first embodiment of the present invention.
  • the apparatus 100 comprises an inter/intra prediction module 110 (labeled “Inter/Intra Prediction” in FIG. 1A ), an arithmetic unit 120 , a transform and quantization module 130 (labeled “Transform & Quantization” in FIG. 1A ), an entropy coding circuit 140 (labeled “Entropy Coding” in FIG. 1A ), an inversed transform and inversed quantization module 150 (labeled “Inversed Transform & Inversed Quantization” in FIG.
  • the inter/intra prediction module 110 mentioned above may comprise a multihypothesis inter prediction circuit 112 (labeled “Multihypothesis Inter Prediction” in FIG. 1B ), an inter prediction circuit 114 (labeled “Inter Prediction” in FIG. 1B ), an intra prediction circuit 116 (labeled “Intra Prediction” in FIG. 1B ), and a switching circuit 118 .
  • the apparatus 100 can perform video encoding on an original signal 109 , in order to generate an output signal carrying coding results, such as the output of the entropy coding circuit 140 .
  • the original signal 109 may represent input video carrying data of the coding unit, and the output of the entropy coding circuit 140 can be an output bitstream (or bit stream).
  • the inter/intra prediction module 110 is arranged to perform inter/intra prediction, and more particularly, to perform multihypothesis inter prediction, inter prediction, and intra prediction by utilizing the multihypothesis inter prediction circuit 112 , the inter prediction circuit 114 , and the intra prediction circuit 116 shown in FIG. 1B , respectively.
  • the arithmetic unit 120 is arranged to perform an arithmetic operation such as a subtraction operation on the original signal 109 (which may represent the input video carrying data of the coding unit, for example) and the prediction signal 119 generated by the inter/intra prediction module 110 .
  • the transform and quantization module 130 , the entropy coding circuit 140 , the inversed transform and inversed quantization module 150 , and the reconstruction circuit 160 are arranged to perform transform and quantization, entropy coding, inversed transform and inversed quantization, and reconstruction operations, respectively.
  • the reconstruction circuit 160 generates a reconstructed signal 169 carrying reconstructed results of the reconstruction operations.
  • the deblocking filter 170 is arranged to perform deblocking filtering on the reconstructed signal 169 , in order to generate a deblocked signal 179 carrying deblocked video data for being temporarily stored into the frame buffer 180 , and the inter/intra prediction module 110 is capable of accessing the deblocked video data carried by a restored signal 189 from the frame buffer 180 .
  • This is for illustrative purposes only, and is not meant to be a limitation of the present invention.
  • the reconstructed results carried by the reconstructed signal 169 can be temporarily stored in the frame buffer 180 , and the inter/intra prediction module 110 is capable of accessing the reconstructed results through the restored signal 189 .
  • the multihypothesis inter prediction circuit 112 is arranged to perform multihypothesis inter prediction according to the original signal 109 and the restored signal 189 to generate a multihypothesis inter prediction output 113
  • the inter prediction circuit 114 is arranged to perform inter prediction according to the original signal 109 and the restored signal 189 to generate an inter prediction output 115
  • the intra prediction circuit 116 is arranged to perform intra prediction according to the original signal 109 and the reconstructed signal 169 to generate an intra prediction output 117
  • the switching circuit 118 is arranged to dynamically select one of the multihypothesis inter prediction output 113 , the inter prediction output 115 , and the intra prediction output 117 as the prediction signal 119 mentioned above.
  • the apparatus 100 can be implemented with a processing circuit arranged to perform video coding on the coding unit, where the processing circuit may comprise a preprocessing module comprising the inter/intra prediction module 110 , and may further comprise at least one coding module comprising the arithmetic unit 120 , the transform and quantization module 130 , the entropy coding circuit 140 , the inversed transform and inversed quantization module 150 , the reconstruction circuit 160 , and the deblocking filter 170 . More particularly, one or more components of the apparatus 100 can be implemented with digital signal processing techniques.
  • the apparatus 100 can be implemented by utilizing at least one program module.
  • the processing circuit can be a processor executing a plurality of program modules, where the processor executing a first portion of program modules can perform the same or similar operations of the preprocessing module mentioned above, and the processor executing a second portion of program modules can perform the same or similar operations of the coding module mentioned above.
  • the apparatus 100 is capable of performing video coding in units of coding units.
  • the coding units can be 16 ⁇ 16 macroblocks (MBs).
  • the coding units can be coding units of a specific size, where the specific size may be determined in advance, and it is unnecessary that the specific size is equivalent to that of the macroblocks.
  • predicting one or more motion vectors for the coding unit may be required.
  • the coding format is complicated, in order to achieve high performance of coding (e.g.
  • the preprocessing module mentioned above is capable of dividing the aforementioned coding unit into a plurality of sub-coding units (e.g. various kinds of partitions within the coding unit, such as square or non-square partitions) and is capable of performing motion vector derivation of a portion of the sub-coding units.
  • the preprocessing module can derive a plurality of motion vectors for multihypothesis motion-compensated prediction of a specific sub-coding unit of the portion of the sub-coding units from at least one other sub-coding/coding unit (and more particularly, at least one coded sub-coding/coding unit), and perform multihypothesis motion-compensated prediction on the specific sub-coding unit according to the aforementioned motion vectors, where the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the aforementioned motion vectors as a predicted pixel value of the specific sub-coding unit.
  • the aforementioned at least one coding module is arranged to perform video coding on the coding unit based upon the multihypothesis motion-compensated prediction performed by the preprocessing module.
  • FIG. 1C illustrates exemplary multihypothesis motion-compensated prediction operations of the inter/intra prediction module 110 shown in FIG. 1A according to an embodiment of the present invention.
  • a set of notations F(t 0 ⁇ 3), F(t 0 ⁇ 2), F(t 0 ⁇ 1), and F(t 0 ) represents a portion of a plurality of subsequent frames ⁇ F(t) ⁇ , with the frame F(t 0 ) being the current frame.
  • the current frame F(t 0 ) comprises a plurality of coding units ⁇ CU(t 0 ) ⁇ , and a coding unit CU(t 0 ) may comprise a plurality of sub-coding units ⁇ SCU(t 0 ) ⁇ , where the notation v k may represent one of the aforementioned motion vectors for multihypothesis motion-compensated prediction of the specific sub-coding unit such as the sub-coding unit SCU(t 0 ) shown in FIG. 1C .
  • the preprocessing module mentioned above respectively obtains the motion vectors ⁇ v k ⁇ from at least one other sub-coding/coding unit (e.g.
  • the preprocessing module utilizes the motion vectors of the at least one other sub-coding/coding unit as the motion vectors ⁇ v k ⁇ for multihypothesis motion-compensated prediction of the specific sub-coding unit.
  • the preprocessing module can perform multihypothesis motion-compensated prediction on the specific sub-coding unit such as the sub-coding unit SCU(t 0 ) shown in FIG. 1C according to the plurality of motion vectors ⁇ v k ⁇ .
  • the preprocessing module can utilize a linear combination of a plurality of pixel values derived from the aforementioned motion vectors, such as the reference pixel values ⁇ r ⁇ of some reference pixels, as a predicted pixel value ⁇ p of the specific sub-coding unit, and more particularly, the predicted pixel value ⁇ p of a specific predicted pixel within the specific sub-coding unit.
  • the linear combination can be a weighted summation of the plurality of pixel values, which means the preprocessing module calculates the weighted summation of the plurality of pixel values to derive the predicted pixel value of the specific sub-coding unit.
  • the specific predicted pixel having the predicted pixel value ⁇ p belongs to the i th sub-coding unit (e.g. the sub-coding unit SCU(t 0 ) shown in FIG. 1C ) and is located at the position x (e.g.
  • the motion vectors ⁇ v k ⁇ may comprise the motion vectors v A and v B of sub-coding units A and B of other coding unit(s) within the current frame F(t 0 ) and the motion vector v T of a sub-coding unit T of a coding unit CU(t 0 ⁇ 1) within another frame such as the previous frame F(t 0 ⁇ 1).
  • the aforementioned other coding unit (or sub-coding unit) within the current frame F(t 0 ) is a coded coding unit (or sub-coding unit) or a motion compensated coding unit/sub-coding unit.
  • the coding unit CU(t 0 ⁇ 1) can be a collocated block with respect to the coding unit CU(t 0 ).
  • the preprocessing module can blend/mix the partial images indicated by the motion vectors ⁇ v k ⁇ such as v A , v B , and v T in order to generate a weighted summation image, and utilize the weighted summation image as the predicted partial image of the specific sub-coding unit such as the sub-coding unit SCU(t 0 ) shown in FIG. 1C .
  • the preprocessing module can calculate an average of the plurality of pixel values to derive the predicted pixel value ⁇ p of the specific sub-coding unit, which means any two of the weighted parameters ⁇ h k (i, x) ⁇ are equal to each other. Please refer to FIG. 2 for further details regarding the above-disclosed operations.
  • FIG. 2 is a flowchart of a method 910 for performing hybrid multihypothesis prediction during video coding of a coding unit according to an embodiment of the present invention.
  • the method 910 can be applied to the apparatus 100 shown in FIG. 1A , and more particularly, to the processing circuit mentioned above. The method is described as follows.
  • Step 912 the preprocessing module mentioned above processes a plurality of sub-coding units such as the sub-coding units ⁇ SCU(t 0 ) ⁇ in the coding unit CU(t 0 ) (e.g. the coding unit under consideration) and performs motion vector derivation of a portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ (e.g. the aforementioned portion of the sub-coding units).
  • a plurality of sub-coding units such as the sub-coding units ⁇ SCU(t 0 ) ⁇ in the coding unit CU(t 0 ) (e.g. the coding unit under consideration) and performs motion vector derivation of a portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ (e.g. the aforementioned portion of the sub-coding units).
  • the preprocessing module derives a plurality of motion vectors, such as the motion vectors ⁇ v k ⁇ disclosed above, for multihypothesis motion-compensated prediction of the specific sub-coding unit SCU(t 0 ) of the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ from one or more other sub-coding/coding units.
  • the coding unit CU(t 0 ) can be a block under processing (labeled “Processed block” in FIG. 3 ), and the specific sub-coding unit SCU(t 0 ) can be a sub-block SB, where the shaded portions illustrated in FIG.
  • the coded blocks ⁇ CB ⁇ may comprise a left coded block CB L , an upper left coded block CB UL , an upper coded block CB U , and an upper right coded block CB UR .
  • the motion vectors ⁇ v k ⁇ may comprise motion vectors of at least a portion (e.g. a portion or all) of the coded blocks ⁇ CB ⁇ , such as one or more of the coded blocks CB L , CB UL , CB U , and CB UR .
  • the preprocessing unit processes a plurality of sub-coding units such as a left sub-coding unit and a right sub-coding unit of the coding unit, or an upper sub-coding unit and a lower sub-coding unit of the coding unit.
  • the preprocessing unit derives a plurality of motion vectors for multihypothesis motion-compensated prediction of the left sub-coding unit/right sub-coding unit/upper sub-coding unit/lower sub-coding unit from at least one other sub-coding/coding unit.
  • the at least one other sub-coding/coding unit may be spatial sub-coding/coding unit (e.g. a sub-coding unit of a neighboring coding unit) or a temporal sub-coding/coding unit (e.g.
  • the above mentioned motion vectors may be derived from a single sub-coding/coding unit, for example, the motion vectors are List 0 motion vector and List 1 motion vector of the same sub-coding unit of a neighboring coding unit.
  • the preprocessing module may perform motion vector derivation of the portion of the sub-coding units based on an explicit flag. For example, the motion vector(s) of a particular spatial sub-coding unit is selected for multihypothesis motion compensated prediction of the specific sub-coding unit according to the explicit flag.
  • the aforementioned preprocessing module performs multihypothesis motion-compensated prediction on the specific sub-coding unit SCU(t 0 ) according to the plurality of motion vectors ⁇ v k ⁇ .
  • the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the motion vectors ⁇ v k ⁇ , such as the linear combination of the reference pixel values ⁇ r ⁇ of the reference pixels, as the predicted pixel value ⁇ p of the specific sub-coding unit.
  • each coding unit e.g.
  • the coding unit CU(t 0 )) can be a block, and more particularly, a block comprising an array of pixels, such as an extended macroblock, a macroblock, or a portion of a macroblock.
  • a sub-coding unit can be referred to as a sub-block.
  • the aforementioned preprocessing module can perform multihypothesis motion-compensated prediction on the block under processing (labeled “Processed block” in FIG. 3 ) according to the motion vectors ⁇ v k ⁇ disclosed above, where the preprocessing module can blend/mix the reference pixel values ⁇ r ⁇ derived from the motion vectors of at least a portion (e.g.
  • the coded blocks ⁇ CB ⁇ can be motion-compensated blocks.
  • Step 912 and Step 914 shown in FIG. 2 can be altered.
  • the operation of Step 914 can be performed first, and then the operation of Step 912 can be performed.
  • the preprocessing module obtains the plurality of motion vectors ⁇ v k ⁇ for multihypothesis motion compensated prediction of the aforementioned specific sub-coding unit SCU(t 0 ) by performing motion estimation.
  • the preprocessing module can further utilize a linear combination of a plurality of pixel values ⁇ r ⁇ associated to the plurality of motion vectors ⁇ v k ⁇ as the predicted pixel value ⁇ p of the specific sub-coding unit SCU(t 0 ). For example, in a situation where the specific predicted pixel having the predicted pixel value ⁇ p is located at the position x (e.g.
  • the preprocessing module of this variation can optimize the estimated motion vector v 0 by finding the best status among other possible statuses of the estimated motion vector v 0 .
  • the linear combination of this variation can be the weighted summation ⁇ k ⁇ K (h k (x) ⁇ r (x+v k ))+h 0 (x) ⁇ r (x+v 0 ) with the estimated motion vector v 0 having been obtained, and therefore, the preprocessing module can utilize the weighted summation ⁇ k ⁇ K (h k (x) ⁇ r (x+v k ))+h 0 (x) ⁇ r (x+v 0 ) as the predicted pixel value ⁇ p of the specific sub-coding unit SCU(t 0 ). Similar descriptions are not repeated in detail for this variation.
  • the other sub-coding/coding unit mentioned in Step 912 is a coded sub-coding/coding unit.
  • the other sub-coding/coding unit mentioned in Step 912 comprises at least one spatially coded sub-coding/coding unit (e.g. one or more of the coded blocks ⁇ CB ⁇ in the current frame F(t 0 ), or one or more coded sub-blocks within the block under processing) and/or at least one temporally coded sub-coding/coding unit (e.g. one or more coded sub-blocks/blocks in another frame that differs from the current frame F(t 0 )).
  • the other sub-coding/coding unit mentioned in Step 912 is a motion-compensated sub-coding/coding unit.
  • the motion vectors ⁇ v k ⁇ can be obtained from motion estimation.
  • FIG. 4 illustrates some implementation details involved with the method 910 shown in FIG. 2 according to an embodiment of the present invention.
  • the coded blocks CB L , CB UL , CB U , and CB UR can be the same as those shown in FIG. 3 , respectively.
  • the sub-coding units ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7 , and ⁇ 8 belong to the left coded block CB L
  • the sub-coding units ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7 , and ⁇ 8 belong to the upper coded block CB U
  • the sub-coding units ⁇ 9 and ⁇ belong to the upper right coded block CB UR and the upper left coded block CB UL , respectively.
  • the other sub-coding/coding unit mentioned in Step 912 may comprise one or more sub-coding units of one or more other coding units, such as one or more of the sub-coding units ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7 , ⁇ 8 , ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7 , ⁇ 8 , ⁇ 9 , ⁇ , and may further comprise the remaining portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ , such as those darkly shaded sub-blocks within the block under processing (labeled “Processed block” in FIG.
  • the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ mentioned in Step 912 can be those lightly shaded sub-blocks within the block under processing.
  • the plurality of motion vectors ⁇ v k ⁇ mentioned in Step 912 may comprise at least one motion vector (e.g. one or more motion vectors) of the remaining portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ , where the aforementioned at least one motion vector is typically derived before the plurality of motion vectors ⁇ v k ⁇ is derived.
  • the aforementioned at least one motion vector (e.g. one or more motion vectors) can be estimated first.
  • sub-coding units within the remaining portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ can be referred to as the remaining sub-coding units (or the remaining sub-blocks, in a situation where each coding unit is a block), and sub-coding units within the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ mentioned in Step 912 can be referred to as the MHP (which means multihypothesis prediction) direct sub-coding units (or the MHP direct sub-blocks, in a situation where each coding unit is a block) since the motion vectors for multihypothesis motion compensation of each MHP direct sub-coding unit such as the specific sub-coding unit SCU(t 0 ) are directly derived from others (e.g.
  • the aforementioned portion comprising the MHP direct sub-coding units (or the MHP direct sub-blocks, in a situation where each coding unit is a block) can be referred to as the MHP direct portion.
  • FIGS. 5A-5B illustrate exemplary types of hybrid multihypothesis prediction that are involved with the method 910 shown in FIG. 2 according to different embodiments of the present invention.
  • the preprocessing module can dynamically determine internal/external arrangement of the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ mentioned in Step 912 (i.e. the MHP direct portion). More particularly, the preprocessing module can determine the distribution of the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ among other portion(s) of the sub-coding units ⁇ SCU(t 0 ) ⁇ based on a predetermined pattern, an implicit flag, or an explicit flag.
  • the preprocessing module can determine the distribution/arrangement of the MHP direct portion and the remaining portion within the coding unit CU(t 0 ).
  • the aforementioned types of hybrid multihypothesis prediction comprise a top type, a bottom type, a left type, and a right type.
  • the distribution/arrangement shown in the left half and the right half of FIG. 5A may respectively correspond to the top type and the bottom type
  • the distribution/arrangement shown in the left half and the right half of FIG. 5B may respectively correspond to the left type and the right type, where the MHP direct portion and the remaining portion are respectively labeled “MHP” and “REM” in each of these embodiments for better comprehension.
  • the preprocessing module may derive an implicit flag for determining the distribution of the MHP direct portion from a bitstream carrying the coding unit, motion vectors of coded sub-coding/coding units, a motion vector variance of the coded sub-coding/coding units, a quantization parameter (QP) value, a bit-rate, a reconstructed residual signal of the coded sub-coding/coding units, a transmitted discrete cosine transform (DCT) coefficient, a motion partition type, a block size, statistical data, or any combination of the above.
  • QP quantization parameter
  • DCT transmitted discrete cosine transform
  • a coding unit can be divided into only two portions such as the upper portion and the lower portion within the coding unit shown in FIG. 5C , i.e. the MHP direct portion labeled “MHP” and the remaining portion labeled “REM” in this embodiment, respectively.
  • the preprocessing module can derive at least one motion vector from at least one other sub-coding/coding unit, such as one or more sub-coding units of at least one other coding unit (e.g. the shaded sub-coding units shown in FIG.
  • the motion vectors thereof form a spatial motion vector set, which is labeled “Spatial MV set”) and one or more collocated sub-coding units corresponding to the upper portion, or derive at least one motion vector from one or more other sub-coding/coding units indicated by at least one explicit flag.
  • spatial MV set spatial motion vector set
  • the preprocessing module derives at least one motion vector from one or more other sub-coding/coding units indicated by at least one explicit flag
  • the preprocessing module derives one or two motion vectors from this sub-coding unit in the upper left coded block CB UL .
  • this sub-coding unit if this sub-coding unit is bi-predictive, there are two motion vectors available (more particularly, a motion vector of List 0 and a motion vector of List 1); otherwise (i.e. this sub-coding unit is not bi-predictive), there is only one motion vector available.
  • the preprocessing module can utilize the aforementioned one or two motion vectors of this sub-coding unit as motion vector(s) of the upper portion. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to some variations of these embodiments, the preprocessing module can calculate a motion vector of the upper portion by utilizing a linear combination of the two motion vectors mentioned above.
  • FIG. 6 is a flowchart of a decoding process involved with the method 910 shown in FIG. 2 according to an embodiment of the present invention.
  • the decoding process is described as follows.
  • Step 922 the aforementioned preprocessing module reads a parameter inter_partitioning_idc, where the parameter inter_partitioning_idc means the partitioning type.
  • Step 923 the preprocessing module checks whether the number of partitioning units of the partitioning type mentioned in Step 922 is equal to 2. When the number of partitioning units of that partitioning type is equal to 2, Step 924 is entered; otherwise, a certain step which is not illustrated (for simplicity) is entered.
  • Step 924 the preprocessing module reads a flag MHP_Flag, where the flag MHP_Flag indicates whether to perform multihypothesis prediction.
  • Step 925 the preprocessing module checks whether the flag MHP_Flag is equal to 1. When the flag MHP_Flag is equal to 1, Step 925 is entered; otherwise, a certain step which is not illustrated (for simplicity) is entered.
  • Step 926 the preprocessing module reads a flag Partition Flag, where the flag MHP_Flag indicates a partition type, such as one of the types disclosed in the embodiments shown in FIGS. 5A-5B .
  • Step 928 the preprocessing module reads a flag MV_Set_Flag, where the flag MV_Set_Flag indicates a specific motion vector set (or a specific set of motion vectors) to be selected from a plurality of motion vector sets (or a plurality of sets of motion vectors).
  • the preprocessing module reads the MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
  • the MVD(s) can be difference(s) between original motion vector(s) and motion vector predictor(s), for purposes of decreasing transmission bandwidth.
  • the MVD(s) can be difference(s) between a current motion vector and previous motion vector(s).
  • Step 940 the preprocessing module performs post processing comprising some operations required for completing the decoding process.
  • FIG. 7A illustrates exemplary partitions based on a transform size according to different embodiments of the present invention.
  • the preprocessing module can dynamically determine internal/external arrangement of the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ mentioned in Step 912 (i.e. the MHP direct portion). More particularly, in this embodiment, the preprocessing module can determine the size of the specific sub-coding unit SCU(t 0 ) to be a transform size regarding video coding of the coding unit CU(t 0 ), and more particularly, determine the size of each sub-coding unit of the portion of the sub-coding units ⁇ SCU(t 0 ) ⁇ (i.e. the size of each of the MHP direct sub-coding units) to be the transform size regarding video coding of the coding unit CU(t 0 ) (e.g. 4 by 4, 8 by 8, and so on).
  • FIGS. 7B-7D illustrate exemplary sources for obtaining motion vectors that are involved with the method 910 shown in FIG. 2 according to some embodiments of the present invention.
  • the preprocessing module can select the specific motion vector set from the plurality of motion vector sets according to the flag MV_Set_Flag mentioned in Step 928 , where the plurality of motion vector sets may comprise at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and/or at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • the aforementioned at least one spatial motion vector set may comprise the spatial motion vector set ⁇ v s, k ⁇ (labeled “Spatial MV set ⁇ v s, k ⁇ ”), where the spatial motion vector set ⁇ v s, k ⁇ may comprise the respective motion vectors of some of the closest sub-coding units within the left coded block CB L with regard to the specific sub-coding unit SCU(t 0 ), and may further comprise the respective motion vectors of some of the closest sub-coding units within the remaining portion (labeled “REM”) with regard to the specific sub-coding unit SCU(t 0 ).
  • REM the respective motion vectors of some of the closest sub-coding units within the remaining portion
  • the aforementioned at least one temporal motion vector set may comprise the temporal motion vector set ⁇ v T, k ⁇ (labeled “Temporal MV set ⁇ v T, k ⁇ ”), where the temporal motion vector set ⁇ v T, k ⁇ may comprise the motion vector(s) of a collocated sub-coding unit (e.g. the collocated sub-block shown in FIG. 7C ) with regard to the specific sub-coding unit SCU(t 0 ), and may further comprise the respective motion vectors of some adjacent/neighboring sub-coding units of the collocated sub-coding unit.
  • the temporal motion vector set may comprise List 0 motion vector and List 1 motion vector of a collocated sub-coding unit.
  • the aforementioned at least one spatial motion vector set may comprise the spatial motion vector set ⁇ v S1, k ⁇ (labeled “Spatial MV set ⁇ v S1, k ⁇ ”) and the spatial motion vector set ⁇ v S2, k ⁇ (labeled “Spatial MV set ⁇ v S2, k ⁇ ”).
  • the spatial motion vector set ⁇ v S1, k ⁇ may comprise the respective motion vectors of one or more closest sub-coding units within the left coded block CB L with regard to the specific sub-coding unit SCU(t 0 ), and may further comprise the respective motion vectors of one or more closest sub-coding units within the upper coded block CB U with regard to the specific sub-coding unit SCU(t 0 ).
  • the spatial motion vector set ⁇ v S2, k ⁇ may comprise the respective motion vectors of one or more closest sub-coding units within the remaining portion (labeled “REM”) with regard to the specific sub-coding unit SCU(t 0 ).
  • FIGS. 8A-8B illustrate exemplary sources for obtaining at least one motion vector of the remaining portion (labeled “REM”) according to some embodiments of the present invention.
  • the motion vector of the remaining portion can be derived by utilizing some related art methods such as those complying with H.264 specifications, based upon the motion vectors v A , v B , and v C of the sub-coding units A, B, and C illustrated in FIG. 8A .
  • the motion vector of the remaining portion can be derived by utilizing some related art methods such as those complying with H.264 specifications, based upon the motion vectors v A , v B , and v C of the sub-coding units A, B, and C illustrated in any of the left half and the right half of FIG. 8B .
  • FIGS. 9A-9C illustrate respective flowcharts of some decoding processes involved with the method 910 shown in FIG. 2 according to different embodiments of the present invention.
  • Steps 922 , 923 , 924 , 925 , and 926 are the same as those of the embodiment shown in FIG. 6
  • Step 940 - 1 , 940 - 2 , and 940 - 3 may be the same as or similar to Step 940 of the embodiment shown in FIG. 6 .
  • the remaining steps of these decoding processes are described as follows.
  • the preprocessing module reads a flag Spatiotemporal_Flag, where the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • the preprocessing module reads the MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
  • the MVD(s) can be difference(s) between original motion vector(s) and motion vector predictor(s), for purposes of decreasing transmission bandwidth.
  • the MVD(s) can be difference(s) between a current motion vector and previous motion vector(s).
  • Step 934 - 1 the preprocessing module determines the transform size mentioned above.
  • Step 936 - 1 the preprocessing module calculates MVP(s) (which means motion vector predictor(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
  • MVP(s) which means motion vector predictor(s)
  • the preprocessing module reads a flag Spatiotemporal_Flag, where the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • Step 932 - 2 the preprocessing module determines the transform size mentioned above.
  • the preprocessing module reads the MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
  • the MVD(s) can be difference(s) between original motion vector(s) and motion vector offset(s), for purposes of decreasing transmission bandwidth.
  • the preprocessing module reads a flag Spatiotemporal_Flag, where the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
  • Step 932 - 3 the preprocessing module calculate B.mv using a predefined method, where the notation B.mv may represent the motion vector of the sub-coding unit B for calculating the remaining portion of the embodiment shown in FIG. 8A .
  • Step 934 - 3 the preprocessing module reads MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
  • Step 936 - 3 the preprocessing module determines the transform size mentioned above.
  • the encoders and decoders can properly perform hybrid multihypothesis prediction, and more particularly, can properly perform multihypothesis motion compensation on the sub-coding unit(s) of the MHP direct portion within the coding unit under consideration with ease, while the remaining portion can be processed according to the related art methods such as those complying with H.264 specifications.
  • both the motion vector prediction operations and the multihypothesis motion compensation operations can be performed without introducing any related art problem such as low coding efficiency.
  • the multihypothesis prediction operations described above can also be used in three-dimensional (3D) video coding, multi-view video coding, and screen content coding.
  • 3D video coding There are many coding tools have been developed for 3D video coding and multi-view video coding to exploit inter-view redundancy between adjacent views.
  • a coding tool known as Disparity-compensated prediction (DCP) in 3D and multi-view video coding is used for inter-view prediction.
  • DCP refers data in previously coded pictures of other views in the same access unit, which is similar to motion-compensated prediction (MCP) that refers data in previously coded pictures of the same view in different time instance.
  • MCP motion-compensated prediction
  • the vector used for DCP is termed as disparity vector (DV), which is analog to motion vector (MV) used in MCP.
  • MV can be predicted by motion vector predictor (MVP) in Inter, Merge, or Skip mode.
  • MVP motion vector predictor
  • a plurality of motion vectors are derived for the specific sub-coding unit, where at least one motion vector is the motion vector of one other coded sub-coding or coding unit.
  • a plurality of pixel values are derived from the plurality of motion vectors, and a predicted pixel value for the specific sub-coding unit is calculated utilizing a linear combination of the plurality of pixel values.
  • DV can be predicted by disparity vector predictor (DVP) candidates derived from spatial neighboring blocks or temporal collocated block that also use inter-view reference picture.
  • DVP disparity vector predictor
  • a plurality of DVs are derived, where at least one DV is the DV of one other coded sub-coding or coding unit.
  • the one other sub-coding/coding unit is coded before the corresponding DV is derived for multihypothesis prediction of the specific sub-coding unit.
  • the plurality of DVs are used to derive a plurality of pixel values, and a linear combination of the plurality of pixel values is calculated as a predicted pixel value for the specific sub-coding unit.
  • the linear combination is simply an average operation, so the predicted pixel value for the specific sub-coding unit is calculated by averaging the plurality of pixel values derived by a plurality of DVs.
  • the disparity vector derivation can be performed based on an explicit flag or based on implicit method. For example, a flag is incorporated in the bitstream for a specific sub-coding unit to indicate which one or more other coded sub-coding or coding unit is referred to. Two or more DVs of the indicated coded sub-coding or coding unit are used to derived pixel values, for example, a List 0 DV and a List 1 DV of a single coded sub-coding or coding unit are used.
  • a combination, such as an average, of the derived pixel values is calculated as the predicted pixel value for the specific sub-coding unit.
  • the one or more other coded sub-coding or coding unit for DV derivation can be a neighboring sub-coding/coding unit, for example, it can be a spatially coded sub-coding/coding unit, temporal coded sub-coding/coding unit, or disparity-compensated sub-coding/coding unit.
  • the one or more other coded sub-coding or coding unit can be a disparity-compensated sub-coding/coding unit in another view.
  • one or more of the DV is derived from a remaining portion of the same coding unit.
  • the multihypothesis prediction for a specific sub-coding unit includes at least one DV and at least one MV, where the DV is the DV of one other coded sub-coding or coding unit and the MV is the MV of the other coded sub-coding or coding unit or the same sub-coding or coding unit.
  • the one other sub-coding/coding unit is coded before the corresponding DV is derived for multihypothesis prediction of the specific sub-coding unit.
  • Two or more vectors including at least one DV and at least one MV of the indicated coded sub-coding or coding unit are used to derived pixel values, for example, a List 0 DV and a List 1 MV of a single coded sub-coding or coding unit are used.
  • a combination, such as an average, of the derived pixel values is calculated as the predicted pixel value for the specific sub-coding unit.
  • the previously described DV derivation and predicted pixel value calculation can be applied to various 3D or multi-view coding tools, such as disparity-compensated prediction (DVP), inter-view motion prediction, inter-view residual prediction, view synthesis prediction (VSP).
  • Inter-view motion prediction is used to share the previously encoded motion information of reference views.
  • a DV for the current block is derived first, and then a prediction block in the already coded picture in the reference view is located by adding the DV to the location of the current block. If the prediction block is coded using MCP, the associated motion parameters can be used as candidate motion parameters for the current block in the current view.
  • the derived DV can also be directly used as a candidate DV for DCP.
  • Inter-view residual allows sharing of previously coded residual information of adjacent views, the residual signal of the current prediction block can be predicted by the residual signals of the corresponding blocks in the inter-view pictures.
  • the corresponding blocks can be located by respective DVs.
  • View Synthesis Prediction VSP is a technique to remove inter-view redundancies among video signal from different viewpoints, in which synthetic signal is used as references to predict a current picture.
  • VSP View Synthesis Prediction
  • HTM-7.0 there exists a process to derive a disparity vector predictor, known as NBDV (Neighboring Block Disparity Vector).
  • NBDV Neighboring Block Disparity Vector
  • the procedure to derive the virtual depth can be applied for VSP to locate the corresponding depth block in a coded view.
  • the fetched depth block may have the same size of the current prediction unit (PU), and it will then be used to do backward warping for the current PU.
  • PU current prediction unit
  • IntraBC intra prediction block copy
  • IntraBC is a block matching technique in which a coding unit (CU) is predicted as a displacement from an already-reconstructed block of samples in the same picture.
  • IntraBC mode is effective for screen content video since it removes redundancy from repeating patterns which typically occur in regions text and/or still graphics in the picture.
  • a block vector (BV) is used in IntraBC mode to represent a spatial relationship between a current block and a reference block.
  • the BV in IntraBC mode is equivalent to the motion vector (MV) in inter prediction mode.
  • a plurality of vectors such as two or more block vectors (BVs) or at least one BV and at least one MV, are derived for a specific sub-coding unit in a coding unit, and at least one BV is the BV of one other coded sub-coding or coding unit.
  • a plurality of pixel values are derived from the plurality of vectors, and a predicted pixel value for the specific sub-coding unit is calculated utilizing a linear combination of the plurality of pixel values.
  • the linear combination can be an average operation.
  • the one other sub-coding/coding unit is coded before the corresponding BV is derived for multihypothesis prediction of the specific sub-coding unit.
  • the one other coded sub-coding or coding unit for BV derivation can be a neighboring sub-coding/coding unit, for example, it can be a spatially coded sub-coding/coding unit, temporal coded sub-coding/coding unit, or disparity-compensated sub-coding/coding unit.
  • the BV derivation can be performed based on an explicit flag, for example having a flag in the bitstream to indicate which coded sub-coding/coding unit is used for BV derivation.
  • One or more of the vector can be derived from a remaining portion of the same coding unit.
  • the plurality of vectors is derived from a single sub-coding unit/coding unit. For example, one of the plurality of vectors is List 0 vector, and another one of the plurality of vectors is List 1 vector.
  • Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both.
  • an embodiment of the present invention can be a circuit integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein.
  • An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein.
  • DSP Digital Signal Processor
  • the invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention.
  • the software code or firmware code may be developed in different programming languages and different formats or styles.
  • the software code may also be compiled for different target platforms.
  • different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.

Landscapes

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

Abstract

A method and apparatus for performing hybrid multihypothesis prediction during video coding of a coding unit includes: processing a plurality of sub-coding units in the coding unit; and performing disparity vector (DV) derivation when the coding unit is processed by a 3D or multi-view coding tool or performing block vector (BV) derivation when the coding unit is processed by intra picture block copy (IntraBC) mode. The step of performing DV or BV derivation includes deriving a plurality of vectors for multihypothesis motion-compensated prediction of a specific sub-coding unit from at least one other sub-coding/coding unit. The one other sub-coding/coding unit is coded before the corresponding DV or BV is derived for multihypothesis motion-compensated prediction of the specific sub-coding unit. A linear combination of a plurality of pixel values derived from the plurality of vectors is used as a predicted pixel value of the specific sub-coding unit.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part application and claims the benefit of U.S. non-provisional application Ser. No. 13/048,893, which was filed on Mar. 16, 2011 and entitled “METHOD FOR PERFORMING HYBRID MULTIHYPOTHESIS PREDICTION DURING VIDEO CODING OF A CODING UNIT, AND ASSOCIATED APPARATUS” and is incorporated herein by reference. The non-provisional application Ser. No. 13/048,893 claims the benefit of U.S. provisional application No. 61/323,948, which was filed on Apr. 14, 2010 and entitled “MULTIHYPOTHESIS PREDICTION IN VIDEO CODING” and is incorporated herein by reference.
BACKGROUND
The present invention relates to video processing regarding motion compensation, and more particularly, to a method for performing hybrid multihypothesis prediction during video coding of a coding unit, and to an associated apparatus.
Motion estimation/compensation is a technique utilized in encoding and decoding of video data for video compression. With the aid of motion estimation/compensation, a current picture can be represented in terms of some portions of one or more reference pictures, where the reference pictures may be previous in time or even from the future. Typically, images can be accurately synthesized from previously transmitted/stored images through motion compensation, and the compression efficiency can be improved. As the coding techniques progresses, the designs regarding newer standards have been introduced to further improve the compression efficiency.
SUMMARY
It is therefore an objective of the claimed invention to provide a method for performing multihypothesis prediction during video coding of a coding unit, and to provide an associated apparatus, in order to improve the compression efficiency of video processing.
An exemplary embodiment of a method for performing multihypothesis prediction during video coding of a coding unit comprises: processing a plurality of sub-coding units in the coding unit; and performing disparity vector (DV) derivation when the coding unit is processed by a three-dimensional (3D) or multi-view coding tool or performing block vector (BV) derivation when the coding unit is processed by intra picture block copy (IntraBC) mode. More particularly, the step of performing DV or BV derivation further comprises: deriving a plurality of vectors for multihypothesis prediction of a specific sub-coding in the coding unit from at least one other sub-coding/coding unit. The plurality of vectors are selecting from at least two DVs, at least two BVs, or a combination of DV, BV and MV. At least one of the vectors is the DV or BV of the at least one other sub-coding/coding unit coded before the corresponding DV or BV is derived for multihypothesis prediction of the specific sub-coding unit. In addition, the method further comprises performing multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors, where the step of performing multihypothesis prediction on the specific sub-coding unit further comprises utilizing a linear combination of a plurality of pixel values derived from the plurality of vectors as a predicted pixel value of the specific sub-coding unit.
An exemplary embodiment of an apparatus for performing multihypothesis prediction during video coding of a coding unit comprises a processing circuit arranged to perform video coding on the coding unit, where the processing circuit comprises a preprocessing module and at least one coding module. The preprocessing module is arranged to process a plurality of sub-coding units in the coding unit and perform DV derivation or BV derivation. More particularly, the preprocessing module derives a plurality of vectors for multihypothesis prediction of a specific sub-coding unit in the coding unit from at least one other sub-coding/coding unit. At least one of the vectors is the DV or BV of the at least one other sub-coding/coding unit coded before the corresponding DV or BV is derived for multihypothesis prediction of the specific sub-coding unit, and performs multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors, where the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the plurality of vectors as a predicted pixel value of the specific sub-coding unit. In addition, the at least one coding module is arranged to perform video coding on the coding unit based upon the multihypothesis prediction performed by the preprocessing module.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is a diagram of an apparatus for performing hybrid multihypothesis prediction during video coding of a coding unit according to a first embodiment of the present invention.
FIG. 1B illustrates the inter/intra prediction module 110 shown in FIG. 1A according to an embodiment of the present invention.
FIG. 1C illustrates exemplary multihypothesis motion-compensated prediction operations of the inter/intra prediction module shown in FIG. 1A according to an embodiment of the present invention.
FIG. 2 is a flowchart of a method for performing hybrid multihypothesis prediction during video coding of a coding unit according to an embodiment of the present invention.
FIG. 3 illustrates exemplary coded blocks involved with the method shown in FIG. 2 according to an embodiment of the present invention.
FIG. 4 illustrates some implementation details involved with the method shown in FIG. 2 according to an embodiment of the present invention.
FIGS. 5A-5B illustrate exemplary types of hybrid multihypothesis prediction that are involved with the method shown in FIG. 2 according to different embodiments of the present invention.
FIG. 5C illustrates some implementation details involved with the method shown in FIG. 2 according to an embodiment of the present invention.
FIG. 6 is a flowchart of a decoding process involved with the method shown in FIG. 2 according to an embodiment of the present invention.
FIG. 7A illustrates exemplary partitions based on a transform size according to different embodiments of the present invention.
FIGS. 7B-7D illustrate exemplary sources for obtaining motion vectors that are involved with the method shown in FIG. 2 according to some embodiments of the present invention.
FIGS. 8A-8B illustrate exemplary sources for obtaining at least one motion vector of a remaining portion that differs from the portion of the sub-coding units involved with the method shown in FIG. 2 according to some embodiments of the present invention.
FIGS. 9A-9C illustrate respective flowcharts of some decoding processes involved with the method shown in FIG. 2 according to different embodiments of the present invention.
DETAILED DESCRIPTION
Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. Also, the term “couple” is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Please refer to FIG. 1A, which illustrates a diagram of an apparatus 100 for performing hybrid multihypothesis prediction during video coding of a coding unit according to a first embodiment of the present invention. The apparatus 100 comprises an inter/intra prediction module 110 (labeled “Inter/Intra Prediction” in FIG. 1A), an arithmetic unit 120, a transform and quantization module 130 (labeled “Transform & Quantization” in FIG. 1A), an entropy coding circuit 140 (labeled “Entropy Coding” in FIG. 1A), an inversed transform and inversed quantization module 150 (labeled “Inversed Transform & Inversed Quantization” in FIG. 1A), a reconstruction circuit 160 (labeled “REC” in FIG. 1A), a deblocking filter 170, and a frame buffer 180. Referring to FIG. 1B, the inter/intra prediction module 110 mentioned above may comprise a multihypothesis inter prediction circuit 112 (labeled “Multihypothesis Inter Prediction” in FIG. 1B), an inter prediction circuit 114 (labeled “Inter Prediction” in FIG. 1B), an intra prediction circuit 116 (labeled “Intra Prediction” in FIG. 1B), and a switching circuit 118.
According to the embodiment shown in FIG. 1A, the apparatus 100 can perform video encoding on an original signal 109, in order to generate an output signal carrying coding results, such as the output of the entropy coding circuit 140. For example, the original signal 109 may represent input video carrying data of the coding unit, and the output of the entropy coding circuit 140 can be an output bitstream (or bit stream). In addition, the inter/intra prediction module 110 is arranged to perform inter/intra prediction, and more particularly, to perform multihypothesis inter prediction, inter prediction, and intra prediction by utilizing the multihypothesis inter prediction circuit 112, the inter prediction circuit 114, and the intra prediction circuit 116 shown in FIG. 1B, respectively.
As shown in FIG. 1A, the arithmetic unit 120 is arranged to perform an arithmetic operation such as a subtraction operation on the original signal 109 (which may represent the input video carrying data of the coding unit, for example) and the prediction signal 119 generated by the inter/intra prediction module 110. In addition, the transform and quantization module 130, the entropy coding circuit 140, the inversed transform and inversed quantization module 150, and the reconstruction circuit 160 are arranged to perform transform and quantization, entropy coding, inversed transform and inversed quantization, and reconstruction operations, respectively. As a result, the reconstruction circuit 160 generates a reconstructed signal 169 carrying reconstructed results of the reconstruction operations. Additionally, the deblocking filter 170 is arranged to perform deblocking filtering on the reconstructed signal 169, in order to generate a deblocked signal 179 carrying deblocked video data for being temporarily stored into the frame buffer 180, and the inter/intra prediction module 110 is capable of accessing the deblocked video data carried by a restored signal 189 from the frame buffer 180. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to some variations of this embodiment, in a situation where the deblocking filter 170 and the deblocking filtering thereof can be omitted, the reconstructed results carried by the reconstructed signal 169 can be temporarily stored in the frame buffer 180, and the inter/intra prediction module 110 is capable of accessing the reconstructed results through the restored signal 189.
Referring to FIG. 1B, the multihypothesis inter prediction circuit 112 is arranged to perform multihypothesis inter prediction according to the original signal 109 and the restored signal 189 to generate a multihypothesis inter prediction output 113, the inter prediction circuit 114 is arranged to perform inter prediction according to the original signal 109 and the restored signal 189 to generate an inter prediction output 115, and the intra prediction circuit 116 is arranged to perform intra prediction according to the original signal 109 and the reconstructed signal 169 to generate an intra prediction output 117, where the switching circuit 118 is arranged to dynamically select one of the multihypothesis inter prediction output 113, the inter prediction output 115, and the intra prediction output 117 as the prediction signal 119 mentioned above.
In practice, at least a portion (e.g. a portion or all) of the apparatus 100 can be implemented by utilizing hardware circuits. For example, the apparatus 100 can be implemented with a processing circuit arranged to perform video coding on the coding unit, where the processing circuit may comprise a preprocessing module comprising the inter/intra prediction module 110, and may further comprise at least one coding module comprising the arithmetic unit 120, the transform and quantization module 130, the entropy coding circuit 140, the inversed transform and inversed quantization module 150, the reconstruction circuit 160, and the deblocking filter 170. More particularly, one or more components of the apparatus 100 can be implemented with digital signal processing techniques. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to some variations of this embodiment, at least a portion of the apparatus 100 can be implemented by utilizing at least one program module. For example, the processing circuit can be a processor executing a plurality of program modules, where the processor executing a first portion of program modules can perform the same or similar operations of the preprocessing module mentioned above, and the processor executing a second portion of program modules can perform the same or similar operations of the coding module mentioned above.
No matter whether at least a portion (e.g. a portion or all) of the apparatus 100 is implemented by utilizing hardware circuits or by utilizing at least one program module, the apparatus 100 is capable of performing video coding in units of coding units. For example, the coding units can be 16×16 macroblocks (MBs). In another example, the coding units can be coding units of a specific size, where the specific size may be determined in advance, and it is unnecessary that the specific size is equivalent to that of the macroblocks. During processing one of the coding units of at least one image, such as the aforementioned coding unit, predicting one or more motion vectors for the coding unit may be required. In a situation where the coding format is complicated, in order to achieve high performance of coding (e.g. encoding or decoding), it is suggested not to extravagantly spend too much time on digging into calculations of some motion vectors that are required in a preprocessing phase before main coding processing. According to this embodiment, the preprocessing module mentioned above is capable of dividing the aforementioned coding unit into a plurality of sub-coding units (e.g. various kinds of partitions within the coding unit, such as square or non-square partitions) and is capable of performing motion vector derivation of a portion of the sub-coding units. More particularly, the preprocessing module can derive a plurality of motion vectors for multihypothesis motion-compensated prediction of a specific sub-coding unit of the portion of the sub-coding units from at least one other sub-coding/coding unit (and more particularly, at least one coded sub-coding/coding unit), and perform multihypothesis motion-compensated prediction on the specific sub-coding unit according to the aforementioned motion vectors, where the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the aforementioned motion vectors as a predicted pixel value of the specific sub-coding unit. In addition, the aforementioned at least one coding module is arranged to perform video coding on the coding unit based upon the multihypothesis motion-compensated prediction performed by the preprocessing module.
FIG. 1C illustrates exemplary multihypothesis motion-compensated prediction operations of the inter/intra prediction module 110 shown in FIG. 1A according to an embodiment of the present invention. In this embodiment, a set of notations F(t0−3), F(t0−2), F(t0−1), and F(t0) represents a portion of a plurality of subsequent frames {F(t)}, with the frame F(t0) being the current frame. The current frame F(t0) comprises a plurality of coding units {CU(t0)}, and a coding unit CU(t0) may comprise a plurality of sub-coding units {SCU(t0)}, where the notation vk may represent one of the aforementioned motion vectors for multihypothesis motion-compensated prediction of the specific sub-coding unit such as the sub-coding unit SCU(t0) shown in FIG. 1C. Thus, the preprocessing module mentioned above respectively obtains the motion vectors {vk} from at least one other sub-coding/coding unit (e.g. one or more other sub-coding/coding units), which means the preprocessing module utilizes the motion vectors of the at least one other sub-coding/coding unit as the motion vectors {vk} for multihypothesis motion-compensated prediction of the specific sub-coding unit. According to this embodiment, the preprocessing module can perform multihypothesis motion-compensated prediction on the specific sub-coding unit such as the sub-coding unit SCU(t0) shown in FIG. 1C according to the plurality of motion vectors {vk}.
In general, the preprocessing module can utilize a linear combination of a plurality of pixel values derived from the aforementioned motion vectors, such as the reference pixel values {Ψr} of some reference pixels, as a predicted pixel value Ψp of the specific sub-coding unit, and more particularly, the predicted pixel value Ψp of a specific predicted pixel within the specific sub-coding unit. Please note that the linear combination can be a weighted summation of the plurality of pixel values, which means the preprocessing module calculates the weighted summation of the plurality of pixel values to derive the predicted pixel value of the specific sub-coding unit. For example, in a situation where the specific predicted pixel having the predicted pixel value Ψp belongs to the ith sub-coding unit (e.g. the sub-coding unit SCU(t0) shown in FIG. 1C) and is located at the position x (e.g. a vector indicating the position, such as a two dimensional vector on the image plane of the current frame F(t0)), the predicted pixel value Ψp can be rewritten as Ψp(i, x), and the predicted pixel value Ψp(i, x) can be express as follows:
Ψp(i,x)=ΣkεK(h k(i,xr(x+v k));
where the index k may vary within the set K, with the notation hk(i, x) representing a weighted parameter associated to the index k. For example, in a situation where the number of possible values of k is greater than one, the summation of the weighted parameters {hk(i, x)} can be equal to one, for simplicity.
As shown in FIG. 1C, in a situation where any two of respective weighted parameters for pixel values are equal to each other, the motion vectors {vk} may comprise the motion vectors vA and vB of sub-coding units A and B of other coding unit(s) within the current frame F(t0) and the motion vector vT of a sub-coding unit T of a coding unit CU(t0−1) within another frame such as the previous frame F(t0−1). More particularly, the aforementioned other coding unit (or sub-coding unit) within the current frame F(t0) is a coded coding unit (or sub-coding unit) or a motion compensated coding unit/sub-coding unit. For example, in a situation where the coding units are blocks, the coding unit CU(t0−1) can be a collocated block with respect to the coding unit CU(t0). As a result, by applying the weighted parameters {hk(i, x)} to the reference pixel values {Ψr}, the preprocessing module can blend/mix the partial images indicated by the motion vectors {vk} such as vA, vB, and vT in order to generate a weighted summation image, and utilize the weighted summation image as the predicted partial image of the specific sub-coding unit such as the sub-coding unit SCU(t0) shown in FIG. 1C. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to a variation of this embodiment, the preprocessing module can calculate an average of the plurality of pixel values to derive the predicted pixel value Ψp of the specific sub-coding unit, which means any two of the weighted parameters {hk(i, x)} are equal to each other. Please refer to FIG. 2 for further details regarding the above-disclosed operations.
FIG. 2 is a flowchart of a method 910 for performing hybrid multihypothesis prediction during video coding of a coding unit according to an embodiment of the present invention. The method 910 can be applied to the apparatus 100 shown in FIG. 1A, and more particularly, to the processing circuit mentioned above. The method is described as follows.
In Step 912, the preprocessing module mentioned above processes a plurality of sub-coding units such as the sub-coding units {SCU(t0)} in the coding unit CU(t0) (e.g. the coding unit under consideration) and performs motion vector derivation of a portion of the sub-coding units {SCU(t0)} (e.g. the aforementioned portion of the sub-coding units). In particular, the preprocessing module derives a plurality of motion vectors, such as the motion vectors {vk} disclosed above, for multihypothesis motion-compensated prediction of the specific sub-coding unit SCU(t0) of the portion of the sub-coding units {SCU(t0)} from one or more other sub-coding/coding units. According to an embodiment of the present invention, such as that shown in FIG. 3, the coding unit CU(t0) can be a block under processing (labeled “Processed block” in FIG. 3), and the specific sub-coding unit SCU(t0) can be a sub-block SB, where the shaded portions illustrated in FIG. 3 may represent at least a portion of coded blocks {CB}. Referring to FIG. 3, the coded blocks {CB} may comprise a left coded block CBL, an upper left coded block CBUL, an upper coded block CBU, and an upper right coded block CBUR. For example, the motion vectors {vk} may comprise motion vectors of at least a portion (e.g. a portion or all) of the coded blocks {CB}, such as one or more of the coded blocks CBL, CBUL, CBU, and CBUR. In some other examples, the preprocessing unit processes a plurality of sub-coding units such as a left sub-coding unit and a right sub-coding unit of the coding unit, or an upper sub-coding unit and a lower sub-coding unit of the coding unit. The preprocessing unit derives a plurality of motion vectors for multihypothesis motion-compensated prediction of the left sub-coding unit/right sub-coding unit/upper sub-coding unit/lower sub-coding unit from at least one other sub-coding/coding unit. The at least one other sub-coding/coding unit may be spatial sub-coding/coding unit (e.g. a sub-coding unit of a neighboring coding unit) or a temporal sub-coding/coding unit (e.g. a collocated sub-coding/coding unit). The above mentioned motion vectors may be derived from a single sub-coding/coding unit, for example, the motion vectors are List 0 motion vector and List 1 motion vector of the same sub-coding unit of a neighboring coding unit. The preprocessing module may perform motion vector derivation of the portion of the sub-coding units based on an explicit flag. For example, the motion vector(s) of a particular spatial sub-coding unit is selected for multihypothesis motion compensated prediction of the specific sub-coding unit according to the explicit flag.
In Step 914, the aforementioned preprocessing module performs multihypothesis motion-compensated prediction on the specific sub-coding unit SCU(t0) according to the plurality of motion vectors {vk}. In particular, the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the motion vectors {vk}, such as the linear combination of the reference pixel values {Ψr} of the reference pixels, as the predicted pixel value Ψp of the specific sub-coding unit. For example, each coding unit (e.g. the coding unit CU(t0)) can be a block, and more particularly, a block comprising an array of pixels, such as an extended macroblock, a macroblock, or a portion of a macroblock. Thus, a sub-coding unit can be referred to as a sub-block. According to an embodiment of the present invention, such as that shown in FIG. 3, the aforementioned preprocessing module can perform multihypothesis motion-compensated prediction on the block under processing (labeled “Processed block” in FIG. 3) according to the motion vectors {vk} disclosed above, where the preprocessing module can blend/mix the reference pixel values {Ψr} derived from the motion vectors of at least a portion (e.g. a portion or all) of the coded blocks {CB}, such as one or more of the coded blocks CBL, CBUL, CBU, and CBUR. In this embodiment, the coded blocks {CB} can be motion-compensated blocks.
Please note that, according to an embodiment of the present invention, such as a variation of the embodiment shown in FIG. 2, the order of performing operations of Step 912 and Step 914 shown in FIG. 2 can be altered. For example, in order to perform video coding in accordance with some new coding standard(s), the operation of Step 914 can be performed first, and then the operation of Step 912 can be performed.
According to a variation of the embodiment shown in FIG. 2, in Step 912, the preprocessing module obtains the plurality of motion vectors {vk} for multihypothesis motion compensated prediction of the aforementioned specific sub-coding unit SCU(t0) by performing motion estimation. In addition, in Step 914, the preprocessing module can further utilize a linear combination of a plurality of pixel values {Ψr} associated to the plurality of motion vectors {vk} as the predicted pixel value Ψp of the specific sub-coding unit SCU(t0). For example, in a situation where the specific predicted pixel having the predicted pixel value Ψp is located at the position x (e.g. a vector indicating the position, such as a two dimensional vector on the image plane of the current frame F(t0)), the predicted pixel value Ψp can be rewritten as Ψp(x), and the predicted pixel value Ψp(x) can be express as follows:
Ψp(x)=ΣkεK(h k(xr(x+v k))+h 0(xr(x+v 0);
where the index k may vary within the set K, with the notation hk(x) representing the weighted parameter associated to the index k, and the estimated motion vector v0 is the motion vector to be estimated during motion estimation, with the notation h0(x) representing the weighted parameter associated to the suffix 0 of the estimated motion vector v0.
For example, the preprocessing module of this variation can optimize the estimated motion vector v0 by finding the best status among other possible statuses of the estimated motion vector v0. Thus, the linear combination of this variation can be the weighted summation ΣkεK(hk(x)Ψr(x+vk))+h0 (x)Ψr(x+v0) with the estimated motion vector v0 having been obtained, and therefore, the preprocessing module can utilize the weighted summation ΣkεK(hk(x)Ψr(x+vk))+h0(x)Ψr(x+v0) as the predicted pixel value Ψp of the specific sub-coding unit SCU(t0). Similar descriptions are not repeated in detail for this variation.
In some embodiments such as variations of the embodiment shown in FIG. 3, the other sub-coding/coding unit mentioned in Step 912 is a coded sub-coding/coding unit. For example, in a portion of these variations, the other sub-coding/coding unit mentioned in Step 912 comprises at least one spatially coded sub-coding/coding unit (e.g. one or more of the coded blocks {CB} in the current frame F(t0), or one or more coded sub-blocks within the block under processing) and/or at least one temporally coded sub-coding/coding unit (e.g. one or more coded sub-blocks/blocks in another frame that differs from the current frame F(t0)). In another example, in a portion of these variations, the other sub-coding/coding unit mentioned in Step 912 is a motion-compensated sub-coding/coding unit. According to some of these variations, the motion vectors {vk} can be obtained from motion estimation.
FIG. 4 illustrates some implementation details involved with the method 910 shown in FIG. 2 according to an embodiment of the present invention. For better comprehension, the coded blocks CBL, CBUL, CBU, and CBUR can be the same as those shown in FIG. 3, respectively. Referring to FIG. 4, the sub-coding units α1, α2, α3, α4, α5, α6, α7, and α8 belong to the left coded block CBL, the sub-coding units β1, β2, β3, β4, β5, β6, β7, and β8 belong to the upper coded block CBU, and the sub-coding units β9 and δ belong to the upper right coded block CBUR and the upper left coded block CBUL, respectively.
In this embodiment, the other sub-coding/coding unit mentioned in Step 912 may comprise one or more sub-coding units of one or more other coding units, such as one or more of the sub-coding units {α1, α2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9, δ}, and may further comprise the remaining portion of the sub-coding units {SCU(t0)}, such as those darkly shaded sub-blocks within the block under processing (labeled “Processed block” in FIG. 4), where the portion of the sub-coding units {SCU(t0)} mentioned in Step 912 can be those lightly shaded sub-blocks within the block under processing. More particularly, the plurality of motion vectors {vk} mentioned in Step 912 may comprise at least one motion vector (e.g. one or more motion vectors) of the remaining portion of the sub-coding units {SCU(t0)}, where the aforementioned at least one motion vector is typically derived before the plurality of motion vectors {vk} is derived. In practice, the aforementioned at least one motion vector (e.g. one or more motion vectors) can be estimated first.
For brevity, sub-coding units within the remaining portion of the sub-coding units {SCU(t0)} can be referred to as the remaining sub-coding units (or the remaining sub-blocks, in a situation where each coding unit is a block), and sub-coding units within the portion of the sub-coding units {SCU(t0)} mentioned in Step 912 can be referred to as the MHP (which means multihypothesis prediction) direct sub-coding units (or the MHP direct sub-blocks, in a situation where each coding unit is a block) since the motion vectors for multihypothesis motion compensation of each MHP direct sub-coding unit such as the specific sub-coding unit SCU(t0) are directly derived from others (e.g. from the other sub-coding/coding unit mentioned above). In addition, the aforementioned portion comprising the MHP direct sub-coding units (or the MHP direct sub-blocks, in a situation where each coding unit is a block) can be referred to as the MHP direct portion.
FIGS. 5A-5B illustrate exemplary types of hybrid multihypothesis prediction that are involved with the method 910 shown in FIG. 2 according to different embodiments of the present invention. In these embodiments, the preprocessing module can dynamically determine internal/external arrangement of the portion of the sub-coding units {SCU(t0)} mentioned in Step 912 (i.e. the MHP direct portion). More particularly, the preprocessing module can determine the distribution of the portion of the sub-coding units {SCU(t0)} among other portion(s) of the sub-coding units {SCU(t0)} based on a predetermined pattern, an implicit flag, or an explicit flag. That is, the preprocessing module can determine the distribution/arrangement of the MHP direct portion and the remaining portion within the coding unit CU(t0). For example, suppose that the aforementioned types of hybrid multihypothesis prediction comprise a top type, a bottom type, a left type, and a right type. The distribution/arrangement shown in the left half and the right half of FIG. 5A may respectively correspond to the top type and the bottom type, and the distribution/arrangement shown in the left half and the right half of FIG. 5B may respectively correspond to the left type and the right type, where the MHP direct portion and the remaining portion are respectively labeled “MHP” and “REM” in each of these embodiments for better comprehension.
The preprocessing module may derive an implicit flag for determining the distribution of the MHP direct portion from a bitstream carrying the coding unit, motion vectors of coded sub-coding/coding units, a motion vector variance of the coded sub-coding/coding units, a quantization parameter (QP) value, a bit-rate, a reconstructed residual signal of the coded sub-coding/coding units, a transmitted discrete cosine transform (DCT) coefficient, a motion partition type, a block size, statistical data, or any combination of the above.
In some embodiments, such as that shown in FIG. 5C, a coding unit can be divided into only two portions such as the upper portion and the lower portion within the coding unit shown in FIG. 5C, i.e. the MHP direct portion labeled “MHP” and the remaining portion labeled “REM” in this embodiment, respectively. Regarding the motion vector derivation of the upper portion, the preprocessing module can derive at least one motion vector from at least one other sub-coding/coding unit, such as one or more sub-coding units of at least one other coding unit (e.g. the shaded sub-coding units shown in FIG. 5C, where the motion vectors thereof form a spatial motion vector set, which is labeled “Spatial MV set”) and one or more collocated sub-coding units corresponding to the upper portion, or derive at least one motion vector from one or more other sub-coding/coding units indicated by at least one explicit flag. For example, in a situation where the preprocessing module derives at least one motion vector from one or more other sub-coding/coding units indicated by at least one explicit flag, when the explicit flag indicates that the sub-coding unit in the upper left coded block CBUL is the source of motion vector(s) to be derived, the preprocessing module derives one or two motion vectors from this sub-coding unit in the upper left coded block CBUL. In this embodiment, if this sub-coding unit is bi-predictive, there are two motion vectors available (more particularly, a motion vector of List 0 and a motion vector of List 1); otherwise (i.e. this sub-coding unit is not bi-predictive), there is only one motion vector available. No matter whether there are two motion vectors available or there is only one motion vector available, the preprocessing module can utilize the aforementioned one or two motion vectors of this sub-coding unit as motion vector(s) of the upper portion. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to some variations of these embodiments, the preprocessing module can calculate a motion vector of the upper portion by utilizing a linear combination of the two motion vectors mentioned above.
FIG. 6 is a flowchart of a decoding process involved with the method 910 shown in FIG. 2 according to an embodiment of the present invention. The decoding process is described as follows.
In Step 922, the aforementioned preprocessing module reads a parameter inter_partitioning_idc, where the parameter inter_partitioning_idc means the partitioning type.
In Step 923, the preprocessing module checks whether the number of partitioning units of the partitioning type mentioned in Step 922 is equal to 2. When the number of partitioning units of that partitioning type is equal to 2, Step 924 is entered; otherwise, a certain step which is not illustrated (for simplicity) is entered.
In Step 924, the preprocessing module reads a flag MHP_Flag, where the flag MHP_Flag indicates whether to perform multihypothesis prediction.
In Step 925, the preprocessing module checks whether the flag MHP_Flag is equal to 1. When the flag MHP_Flag is equal to 1, Step 925 is entered; otherwise, a certain step which is not illustrated (for simplicity) is entered.
In Step 926, the preprocessing module reads a flag Partition Flag, where the flag MHP_Flag indicates a partition type, such as one of the types disclosed in the embodiments shown in FIGS. 5A-5B.
In Step 928, the preprocessing module reads a flag MV_Set_Flag, where the flag MV_Set_Flag indicates a specific motion vector set (or a specific set of motion vectors) to be selected from a plurality of motion vector sets (or a plurality of sets of motion vectors).
In Step 930, the preprocessing module reads the MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above. For example, the MVD(s) can be difference(s) between original motion vector(s) and motion vector predictor(s), for purposes of decreasing transmission bandwidth. In another example, the MVD(s) can be difference(s) between a current motion vector and previous motion vector(s).
In Step 940, the preprocessing module performs post processing comprising some operations required for completing the decoding process.
FIG. 7A illustrates exemplary partitions based on a transform size according to different embodiments of the present invention. As mentioned, the preprocessing module can dynamically determine internal/external arrangement of the portion of the sub-coding units {SCU(t0)} mentioned in Step 912 (i.e. the MHP direct portion). More particularly, in this embodiment, the preprocessing module can determine the size of the specific sub-coding unit SCU(t0) to be a transform size regarding video coding of the coding unit CU(t0), and more particularly, determine the size of each sub-coding unit of the portion of the sub-coding units {SCU(t0)} (i.e. the size of each of the MHP direct sub-coding units) to be the transform size regarding video coding of the coding unit CU(t0) (e.g. 4 by 4, 8 by 8, and so on).
FIGS. 7B-7D illustrate exemplary sources for obtaining motion vectors that are involved with the method 910 shown in FIG. 2 according to some embodiments of the present invention. In these embodiments, the preprocessing module can select the specific motion vector set from the plurality of motion vector sets according to the flag MV_Set_Flag mentioned in Step 928, where the plurality of motion vector sets may comprise at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and/or at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
Referring to FIG. 7B, the aforementioned at least one spatial motion vector set may comprise the spatial motion vector set {vs, k} (labeled “Spatial MV set {vs, k}”), where the spatial motion vector set {vs, k} may comprise the respective motion vectors of some of the closest sub-coding units within the left coded block CBL with regard to the specific sub-coding unit SCU(t0), and may further comprise the respective motion vectors of some of the closest sub-coding units within the remaining portion (labeled “REM”) with regard to the specific sub-coding unit SCU(t0).
Referring to FIG. 7C, the aforementioned at least one temporal motion vector set may comprise the temporal motion vector set {vT, k} (labeled “Temporal MV set {vT, k}”), where the temporal motion vector set {vT, k} may comprise the motion vector(s) of a collocated sub-coding unit (e.g. the collocated sub-block shown in FIG. 7C) with regard to the specific sub-coding unit SCU(t0), and may further comprise the respective motion vectors of some adjacent/neighboring sub-coding units of the collocated sub-coding unit. For example, the temporal motion vector set may comprise List 0 motion vector and List 1 motion vector of a collocated sub-coding unit.
Referring to FIG. 7D, the aforementioned at least one spatial motion vector set may comprise the spatial motion vector set {vS1, k} (labeled “Spatial MV set {vS1, k}”) and the spatial motion vector set {vS2, k} (labeled “Spatial MV set {vS2, k}”). In this embodiment, the spatial motion vector set {vS1, k} may comprise the respective motion vectors of one or more closest sub-coding units within the left coded block CBL with regard to the specific sub-coding unit SCU(t0), and may further comprise the respective motion vectors of one or more closest sub-coding units within the upper coded block CBU with regard to the specific sub-coding unit SCU(t0). In addition, the spatial motion vector set {vS2, k} may comprise the respective motion vectors of one or more closest sub-coding units within the remaining portion (labeled “REM”) with regard to the specific sub-coding unit SCU(t0).
FIGS. 8A-8B illustrate exemplary sources for obtaining at least one motion vector of the remaining portion (labeled “REM”) according to some embodiments of the present invention. For example, the motion vector of the remaining portion can be derived by utilizing some related art methods such as those complying with H.264 specifications, based upon the motion vectors vA, vB, and vC of the sub-coding units A, B, and C illustrated in FIG. 8A. In some other examples, the motion vector of the remaining portion can be derived by utilizing some related art methods such as those complying with H.264 specifications, based upon the motion vectors vA, vB, and vC of the sub-coding units A, B, and C illustrated in any of the left half and the right half of FIG. 8B.
FIGS. 9A-9C illustrate respective flowcharts of some decoding processes involved with the method 910 shown in FIG. 2 according to different embodiments of the present invention. In these embodiments, Steps 922, 923, 924, 925, and 926 are the same as those of the embodiment shown in FIG. 6, and Step 940-1, 940-2, and 940-3 may be the same as or similar to Step 940 of the embodiment shown in FIG. 6. The remaining steps of these decoding processes are described as follows.
Referring to FIG. 9A, in Step 928-1, the preprocessing module reads a flag Spatiotemporal_Flag, where the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
In Step 932-1, the preprocessing module reads the MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above. For example, the MVD(s) can be difference(s) between original motion vector(s) and motion vector predictor(s), for purposes of decreasing transmission bandwidth. In another example, the MVD(s) can be difference(s) between a current motion vector and previous motion vector(s).
In Step 934-1, the preprocessing module determines the transform size mentioned above.
In Step 936-1, the preprocessing module calculates MVP(s) (which means motion vector predictor(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
Referring to FIG. 9B, in Step 928-2, the preprocessing module reads a flag Spatiotemporal_Flag, where the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
In Step 932-2, the preprocessing module determines the transform size mentioned above.
In Step 934-2, the preprocessing module reads the MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above. For example, the MVD(s) can be difference(s) between original motion vector(s) and motion vector offset(s), for purposes of decreasing transmission bandwidth.
Referring to FIG. 9C, in Step 928-3, the preprocessing module reads a flag Spatiotemporal_Flag, where the flag Spatiotemporal_Flag indicates spatial/temporal motion vector set configurations, such as configurations for selecting one or more motion vector sets from the aforementioned at least one spatial motion vector set (e.g. one or more sets of spatial motion vectors) and the aforementioned at least one temporal motion vector set (e.g. one or more sets of temporal motion vectors).
In Step 932-3, the preprocessing module calculate B.mv using a predefined method, where the notation B.mv may represent the motion vector of the sub-coding unit B for calculating the remaining portion of the embodiment shown in FIG. 8A.
In Step 934-3, the preprocessing module reads MVD(s) (which means motion vector difference(s)) for non-MHP partition(s) such as the remaining portion mentioned above.
In Step 936-3, the preprocessing module determines the transform size mentioned above.
It is an advantage of the present invention that the encoders and decoders can properly perform hybrid multihypothesis prediction, and more particularly, can properly perform multihypothesis motion compensation on the sub-coding unit(s) of the MHP direct portion within the coding unit under consideration with ease, while the remaining portion can be processed according to the related art methods such as those complying with H.264 specifications. As a result of utilizing the present invention method and apparatus, both the motion vector prediction operations and the multihypothesis motion compensation operations can be performed without introducing any related art problem such as low coding efficiency.
The multihypothesis prediction operations described above can also be used in three-dimensional (3D) video coding, multi-view video coding, and screen content coding. There are many coding tools have been developed for 3D video coding and multi-view video coding to exploit inter-view redundancy between adjacent views. A coding tool known as Disparity-compensated prediction (DCP) in 3D and multi-view video coding is used for inter-view prediction. DCP refers data in previously coded pictures of other views in the same access unit, which is similar to motion-compensated prediction (MCP) that refers data in previously coded pictures of the same view in different time instance. The vector used for DCP is termed as disparity vector (DV), which is analog to motion vector (MV) used in MCP.
MV can be predicted by motion vector predictor (MVP) in Inter, Merge, or Skip mode. According to the above mentioned multihypothesis prediction operation, when bi-directional prediction is enabled for a specific sub-coding unit, a plurality of motion vectors are derived for the specific sub-coding unit, where at least one motion vector is the motion vector of one other coded sub-coding or coding unit. A plurality of pixel values are derived from the plurality of motion vectors, and a predicted pixel value for the specific sub-coding unit is calculated utilizing a linear combination of the plurality of pixel values.
Similarly, DV can be predicted by disparity vector predictor (DVP) candidates derived from spatial neighboring blocks or temporal collocated block that also use inter-view reference picture. In the case of bi-directional prediction for a specific sub-coding unit, a plurality of DVs are derived, where at least one DV is the DV of one other coded sub-coding or coding unit. The one other sub-coding/coding unit is coded before the corresponding DV is derived for multihypothesis prediction of the specific sub-coding unit. The plurality of DVs are used to derive a plurality of pixel values, and a linear combination of the plurality of pixel values is calculated as a predicted pixel value for the specific sub-coding unit.
In an embodiment of the present invention, the linear combination is simply an average operation, so the predicted pixel value for the specific sub-coding unit is calculated by averaging the plurality of pixel values derived by a plurality of DVs. The disparity vector derivation can be performed based on an explicit flag or based on implicit method. For example, a flag is incorporated in the bitstream for a specific sub-coding unit to indicate which one or more other coded sub-coding or coding unit is referred to. Two or more DVs of the indicated coded sub-coding or coding unit are used to derived pixel values, for example, a List 0 DV and a List 1 DV of a single coded sub-coding or coding unit are used. A combination, such as an average, of the derived pixel values is calculated as the predicted pixel value for the specific sub-coding unit. The one or more other coded sub-coding or coding unit for DV derivation can be a neighboring sub-coding/coding unit, for example, it can be a spatially coded sub-coding/coding unit, temporal coded sub-coding/coding unit, or disparity-compensated sub-coding/coding unit. The one or more other coded sub-coding or coding unit can be a disparity-compensated sub-coding/coding unit in another view. In another embodiment, one or more of the DV is derived from a remaining portion of the same coding unit.
In another embodiment of the present invention, the multihypothesis prediction for a specific sub-coding unit includes at least one DV and at least one MV, where the DV is the DV of one other coded sub-coding or coding unit and the MV is the MV of the other coded sub-coding or coding unit or the same sub-coding or coding unit. The one other sub-coding/coding unit is coded before the corresponding DV is derived for multihypothesis prediction of the specific sub-coding unit. Two or more vectors including at least one DV and at least one MV of the indicated coded sub-coding or coding unit are used to derived pixel values, for example, a List 0 DV and a List 1 MV of a single coded sub-coding or coding unit are used. A combination, such as an average, of the derived pixel values is calculated as the predicted pixel value for the specific sub-coding unit.
The previously described DV derivation and predicted pixel value calculation can be applied to various 3D or multi-view coding tools, such as disparity-compensated prediction (DVP), inter-view motion prediction, inter-view residual prediction, view synthesis prediction (VSP). Inter-view motion prediction is used to share the previously encoded motion information of reference views. For deriving candidate motion parameters for a current block in a dependent view, a DV for the current block is derived first, and then a prediction block in the already coded picture in the reference view is located by adding the DV to the location of the current block. If the prediction block is coded using MCP, the associated motion parameters can be used as candidate motion parameters for the current block in the current view. The derived DV can also be directly used as a candidate DV for DCP. Inter-view residual allows sharing of previously coded residual information of adjacent views, the residual signal of the current prediction block can be predicted by the residual signals of the corresponding blocks in the inter-view pictures. The corresponding blocks can be located by respective DVs. View Synthesis Prediction (VSP) is a technique to remove inter-view redundancies among video signal from different viewpoints, in which synthetic signal is used as references to predict a current picture. In 3D-HEVC test model, HTM-7.0, there exists a process to derive a disparity vector predictor, known as NBDV (Neighboring Block Disparity Vector). The derived disparity vector is then used to fetch a depth block in the depth image of the reference view. The procedure to derive the virtual depth can be applied for VSP to locate the corresponding depth block in a coded view. The fetched depth block may have the same size of the current prediction unit (PU), and it will then be used to do backward warping for the current PU.
The multihypothesis prediction operations described above can also be used in intra prediction block copy (IntraBC) mode. IntraBC is a block matching technique in which a coding unit (CU) is predicted as a displacement from an already-reconstructed block of samples in the same picture. IntraBC mode is effective for screen content video since it removes redundancy from repeating patterns which typically occur in regions text and/or still graphics in the picture. A block vector (BV) is used in IntraBC mode to represent a spatial relationship between a current block and a reference block. The BV in IntraBC mode is equivalent to the motion vector (MV) in inter prediction mode.
In an embodiment of applying the multihypothese prediction operation in IntraBC mode, a plurality of vectors such as two or more block vectors (BVs) or at least one BV and at least one MV, are derived for a specific sub-coding unit in a coding unit, and at least one BV is the BV of one other coded sub-coding or coding unit. A plurality of pixel values are derived from the plurality of vectors, and a predicted pixel value for the specific sub-coding unit is calculated utilizing a linear combination of the plurality of pixel values. The linear combination can be an average operation. The one other sub-coding/coding unit is coded before the corresponding BV is derived for multihypothesis prediction of the specific sub-coding unit. The one other coded sub-coding or coding unit for BV derivation can be a neighboring sub-coding/coding unit, for example, it can be a spatially coded sub-coding/coding unit, temporal coded sub-coding/coding unit, or disparity-compensated sub-coding/coding unit. The BV derivation can be performed based on an explicit flag, for example having a flag in the bitstream to indicate which coded sub-coding/coding unit is used for BV derivation. One or more of the vector can be derived from a remaining portion of the same coding unit. In an embodiment, the plurality of vectors is derived from a single sub-coding unit/coding unit. For example, one of the plurality of vectors is List 0 vector, and another one of the plurality of vectors is List 1 vector.
The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be a circuit integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (21)

What is claimed is:
1. A method for performing multihypothesis prediction during video coding of a coding unit, the method comprising:
processing a plurality of sub-coding units in the coding unit;
performing disparity vector (DV) derivation when the coding unit is processed by a three-dimensional (3D) or multi-view coding tool, or performing block vector (BV) derivation when the coding unit is processed by intra picture block copy (IntraBC) mode, wherein the step of performing DV or BV derivation further comprises:
deriving a plurality of vectors for multihypothesis prediction of a specific sub-coding unit in the coding unit, wherein the plurality of vectors are selecting from at least two DVs, at least two BVs, or a combination of DV, BV, and motion vector (MV), at least one of the vectors is the DV or BV of one other sub-coding/coding unit, and the one other sub-coding/coding unit is coded before the corresponding DV or BV is derived for multihypothesis prediction of the specific sub-coding unit; and
performing multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors, wherein the step of performing multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors further comprises:
utilizing a linear combination of a plurality of pixel values derived from the plurality of vectors as a predicted pixel value of the specific sub-coding unit.
2. The method of claim 1, wherein the step of performing multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors further comprises:
calculating an average of the plurality of pixel values to derive the predicted pixel value of the specific sub-coding unit.
3. The method of claim 1, wherein the step of performing disparity vector derivation or block vector derivation further comprises:
performing disparity vector derivation based on an explicit flag when the coding unit is processed by the 3D or multi-view coding tool, or performing block vector derivation based on an explicit flag when the coding unit is processed by the intra picture block copy mode.
4. The method of claim 1, wherein the plurality of vectors are derived from a remaining portion of the sub-coding units in the coding unit.
5. The method of claim 1, wherein the at least one other sub-coding/coding unit comprises at least one spatially coded sub-coding/coding unit and/or at least one temporally coded sub-coding/coding unit.
6. The method of claim 1, wherein the at least one other sub-coding/coding unit is a disparity-compensated sub-coding/coding unit for DV derivation.
7. The method of claim 1, wherein the at least one other sub-coding/coding unit is processed by the intra picture block copy mode for BV derivation.
8. The method of claim 1, wherein the at least one other sub-coding unit/coding unit is a sub-coding unit in a neighboring coding unit.
9. The method of claim 1, wherein the at least one other sub-coding unit/coding unit is a disparity-compensated sub-coding/coding unit in another view.
10. The method of claim 1, wherein the plurality of vectors are derived from a single sub-coding unit/coding unit.
11. The method of claim 1, wherein one of the plurality of vectors is List 0 vector, and another one of the plurality of vectors is List 1 vector.
12. An apparatus for performing multihypothesis prediction during video coding of a coding unit, the apparatus comprising:
a processing circuit arranged to perform video coding on the coding unit, wherein the processing circuit comprises:
a preprocessing module arranged to process a plurality of sub-coding units in the coding unit and perform disparity vector (DV) derivation when the coding unit is processed by a three-dimensional (3D) or multi-view coding tool, or perform block vector (BV) derivation when the coding unit is processed by intra picture block copy (IntraBC) mode, wherein the preprocessing module derives a plurality of vectors for multihypothesis prediction of a specific sub-coding unit of the portion of the sub-coding units, wherein the plurality of vectors are selecting from at least two DVs, at least two BVs, or a combination of DV, BV, and motion vector (MV), wherein at least one of the vectors is the DV or BV of one other sub-coding/coding unit and the one other sub-coding/coding unit is coded before the corresponding DV or BV is derived for multihypothesis prediction of the specific sub-coding unit, and performs multihypothesis prediction on the specific sub-coding unit according to the plurality of vectors, and the preprocessing module utilizes a linear combination of a plurality of pixel values derived from the plurality of vectors as a predicted pixel value of the specific sub-coding unit; and
at least one coding module arranged to perform video coding on the coding unit based upon the multihypothesis prediction performed by the preprocessing module.
13. The apparatus of claim 12, wherein the preprocessing module calculates an average of the plurality of pixel values to derive the predicted pixel value of the specific sub-coding unit.
14. The apparatus of claim 12, wherein the preprocessing module performs disparity vector derivation based on an explicit flag when the coding unit is processed by the 3D or multi-view coding tool.
15. The apparatus of claim 12, wherein the preprocessing module performs block vector derivation based on an explicit flag when the coding unit is processed by the IntraBC mode.
16. The apparatus of claim 12, wherein the preprocessing module derives the vectors from a remaining portion of the sub-coding units in the coding unit.
17. The apparatus of claim 12, wherein the at least one other sub-coding/coding unit comprises at least one spatially coded sub-coding/coding unit and/or at least one temporally coded sub-coding/coding unit.
18. The apparatus of claim 12, wherein the at least one other sub-coding/coding unit is a disparity-compensated sub-coding/coding unit when the preprocessing module performs DV derivation.
19. The apparatus of claim 12, wherein the at least one other sub-coding/coding unit is processed by the intra picture block copy mode when the preprocessing module performs BV derivation.
20. The apparatus of claim 12, wherein the plurality of vectors are derived from a single sub-coding unit/coding unit.
21. The apparatus of claim 12, wherein one of the plurality of vectors is List 0 vector, and another one of the plurality of vectors is List 1 vector.
US14/601,247 2010-04-14 2015-01-21 Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus Active US9118929B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/601,247 US9118929B2 (en) 2010-04-14 2015-01-21 Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
CN201610023800.4A CN105812819B (en) 2015-01-21 2016-01-14 Execute the method and device for blending together multiple hypothesis motion compensation prediction

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32394810P 2010-04-14 2010-04-14
US13/048,893 US8971400B2 (en) 2010-04-14 2011-03-16 Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US14/601,247 US9118929B2 (en) 2010-04-14 2015-01-21 Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/048,893 Continuation-In-Part US8971400B2 (en) 2010-04-14 2011-03-16 Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus

Publications (2)

Publication Number Publication Date
US20150131724A1 US20150131724A1 (en) 2015-05-14
US9118929B2 true US9118929B2 (en) 2015-08-25

Family

ID=53043796

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/601,247 Active US9118929B2 (en) 2010-04-14 2015-01-21 Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus

Country Status (1)

Country Link
US (1) US9118929B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150085932A1 (en) * 2012-04-24 2015-03-26 Mediatek Inc. Method and apparatus of motion vector derivation for 3d video coding
US20150382019A1 (en) * 2013-04-09 2015-12-31 Mediatek Inc. Method and Apparatus of View Synthesis Prediction in 3D Video Coding
US10027981B2 (en) 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
US10187654B2 (en) 2013-12-16 2019-01-22 Samsung Electronics Co., Ltd. Method and device for forward multiple-hypothesis encoding/decoding of image block
US10448026B1 (en) * 2018-07-09 2019-10-15 Tencent America LLC Method and apparatus for block vector signaling and derivation in intra picture block compensation
US11463707B2 (en) 2018-02-02 2022-10-04 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2728146T3 (en) 2012-01-20 2019-10-22 Sun Patent Trust Video coding and decoding procedures and apparatus using temporal motion vector prediction
WO2013114860A1 (en) 2012-02-03 2013-08-08 パナソニック株式会社 Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
WO2013132792A1 (en) 2012-03-06 2013-09-12 パナソニック株式会社 Method for coding video, method for decoding video, device for coding video, device for decoding video, and device for coding/decoding video
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
EP3024240A4 (en) * 2013-07-18 2017-03-22 Samsung Electronics Co., Ltd. Intra scene prediction method of depth image for interlayer video decoding and encoding apparatus and method
US10567799B2 (en) * 2014-03-07 2020-02-18 Qualcomm Incorporated Simplified sub-prediction unit (sub-PU) motion parameter inheritance (MPI)
TWI749297B (en) * 2018-02-28 2021-12-11 弗勞恩霍夫爾協會 Composed prediction and restricted merge
CN118590651A (en) 2018-11-13 2024-09-03 北京字节跳动网络技术有限公司 Multiple hypotheses for sub-block prediction block
US11647187B2 (en) * 2018-11-30 2023-05-09 Interdigital Madison Patent Holdings, Sas Triangle and multi-hypothesis combination for video coding and decoding
CN113366853B (en) 2019-02-02 2024-08-02 北京字节跳动网络技术有限公司 Buffer initialization for intra block copying in video codec
WO2020156547A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer resetting for intra block copy in video coding
CN113545068B (en) 2019-03-01 2023-09-15 北京字节跳动网络技术有限公司 Order-based update for intra block copying in video codec
CN117395439A (en) * 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 Direction-based prediction for intra block copying in video codec
KR20240132530A (en) 2019-03-04 2024-09-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Implementation aspects in intra block copy in video coding
CA3146016C (en) 2019-07-06 2024-05-07 Beijing Bytedance Network Technology Co., Ltd. Virtual prediction buffer for intra block copy in video coding
CN114175633B (en) 2019-07-10 2023-12-29 北京字节跳动网络技术有限公司 Sample identification for intra block copying in video codec
JP2022539887A (en) 2019-07-11 2022-09-13 北京字節跳動網絡技術有限公司 Bitstream Conformance Constraints for Intra-Block Copies in Video Coding
WO2024044404A1 (en) * 2022-08-26 2024-02-29 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices using intra block copy for video coding

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060268166A1 (en) 2005-05-26 2006-11-30 Frank Bossen Method and apparatus for coding motion and prediction weighting parameters
US7236634B2 (en) 2003-02-04 2007-06-26 Semiconductor Technology Academic Research Center Image encoding of moving pictures
TW200837663A (en) 2007-03-13 2008-09-16 Univ Nat Taiwan Constant picture quality bit rate control system for a multiple-video encoder in single video signal source and the method
US20080303892A1 (en) * 2007-06-11 2008-12-11 Samsung Electronics Co., Ltd. Method and apparatus for generating block-based stereoscopic image format and method and apparatus for reconstructing stereoscopic images from block-based stereoscopic image format
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US20110142132A1 (en) * 2008-08-04 2011-06-16 Dolby Laboratories Licensing Corporation Overlapped Block Disparity Estimation and Compensation Architecture
US20110255598A1 (en) 2010-04-14 2011-10-20 Jian-Liang Lin Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US20110310956A1 (en) 2010-06-22 2011-12-22 Jian-Liang Lin Methods for controlling video decoder to selectively skip one or more video frames and related signal processing apparatuses thereof
US8085845B2 (en) 2003-08-26 2011-12-27 Thomson Licensing Method and apparatus for encoding hybrid intra-inter coded blocks
US20130002816A1 (en) * 2010-12-29 2013-01-03 Nokia Corporation Depth Map Coding
US20130329800A1 (en) * 2012-06-07 2013-12-12 Samsung Electronics Co., Ltd. Method of performing prediction for multiview video processing
US20140028793A1 (en) * 2010-07-15 2014-01-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Hybrid video coding supporting intermediate view synthesis
US20140139627A1 (en) 2012-11-20 2014-05-22 Qualcomm Incorporated Adaptive luminance compensation in three dimensional video coding
US20140314147A1 (en) * 2013-04-12 2014-10-23 Nokia Corporation Harmonized inter-view and view synthesis prediction for 3d video coding

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236634B2 (en) 2003-02-04 2007-06-26 Semiconductor Technology Academic Research Center Image encoding of moving pictures
US8085845B2 (en) 2003-08-26 2011-12-27 Thomson Licensing Method and apparatus for encoding hybrid intra-inter coded blocks
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US8457203B2 (en) 2005-05-26 2013-06-04 Ntt Docomo, Inc. Method and apparatus for coding motion and prediction weighting parameters
US20060268166A1 (en) 2005-05-26 2006-11-30 Frank Bossen Method and apparatus for coding motion and prediction weighting parameters
TW200837663A (en) 2007-03-13 2008-09-16 Univ Nat Taiwan Constant picture quality bit rate control system for a multiple-video encoder in single video signal source and the method
US20080303892A1 (en) * 2007-06-11 2008-12-11 Samsung Electronics Co., Ltd. Method and apparatus for generating block-based stereoscopic image format and method and apparatus for reconstructing stereoscopic images from block-based stereoscopic image format
US20110142132A1 (en) * 2008-08-04 2011-06-16 Dolby Laboratories Licensing Corporation Overlapped Block Disparity Estimation and Compensation Architecture
US20110255598A1 (en) 2010-04-14 2011-10-20 Jian-Liang Lin Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US20110255600A1 (en) * 2010-04-14 2011-10-20 Jian-Liang Lin Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus
US20110310956A1 (en) 2010-06-22 2011-12-22 Jian-Liang Lin Methods for controlling video decoder to selectively skip one or more video frames and related signal processing apparatuses thereof
US20140028793A1 (en) * 2010-07-15 2014-01-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Hybrid video coding supporting intermediate view synthesis
US20130002816A1 (en) * 2010-12-29 2013-01-03 Nokia Corporation Depth Map Coding
US20130329800A1 (en) * 2012-06-07 2013-12-12 Samsung Electronics Co., Ltd. Method of performing prediction for multiview video processing
US20140139627A1 (en) 2012-11-20 2014-05-22 Qualcomm Incorporated Adaptive luminance compensation in three dimensional video coding
US20140314147A1 (en) * 2013-04-12 2014-10-23 Nokia Corporation Harmonized inter-view and view synthesis prediction for 3d video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Markus Flierl et al., Multihypothesis Motion Pictures for H.26L, Video Coding Experts Group, ITU-T SG.16, Jan. 9-12, 2001, pp. 1-8, XP030003169, Eibsee, Germany.
Markus Flierl et al., Rate-Constrained Multihypothesis Prediction for Motion-Compensated Video Compression, IEEE Transactions on Circuits and Systems for Video Technology, 2002/11, pp. 957-969, XP002694274, vol. 12. No. 11, IEEE, NY, US.

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150085932A1 (en) * 2012-04-24 2015-03-26 Mediatek Inc. Method and apparatus of motion vector derivation for 3d video coding
US20150382019A1 (en) * 2013-04-09 2015-12-31 Mediatek Inc. Method and Apparatus of View Synthesis Prediction in 3D Video Coding
US9961370B2 (en) * 2013-04-09 2018-05-01 Hfi Innovation Inc. Method and apparatus of view synthesis prediction in 3D video coding
US10187654B2 (en) 2013-12-16 2019-01-22 Samsung Electronics Co., Ltd. Method and device for forward multiple-hypothesis encoding/decoding of image block
US10027981B2 (en) 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
US11463707B2 (en) 2018-02-02 2022-10-04 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
US10448026B1 (en) * 2018-07-09 2019-10-15 Tencent America LLC Method and apparatus for block vector signaling and derivation in intra picture block compensation
US20200014934A1 (en) * 2018-07-09 2020-01-09 Tencent America LLC Method and apparatus for block vector signaling and derivation in intra picture block compensation
US10869043B2 (en) * 2018-07-09 2020-12-15 Tencent America LLC Method and apparatus for block vector signaling and derivation in intra picture block compensation

Also Published As

Publication number Publication date
US20150131724A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
US9118929B2 (en) Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
CN110809887B (en) Method and apparatus for motion vector modification for multi-reference prediction
US8837592B2 (en) Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US8971400B2 (en) Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US11350129B2 (en) Method and device for encoding and decoding a video bitstream using a selected motion vector
JP5970609B2 (en) Method and apparatus for unified disparity vector derivation in 3D video coding
US20150172714A1 (en) METHOD AND APPARATUS of INTER-VIEW SUB-PARTITION PREDICTION in 3D VIDEO CODING
US20150365649A1 (en) Method and Apparatus of Disparity Vector Derivation in 3D Video Coding
US20150365698A1 (en) Method and Apparatus for Prediction Value Derivation in Intra Coding
US10298951B2 (en) Method and apparatus of motion vector prediction
US20140348242A1 (en) Image coding apparatus, image decoding apparatus, and method and program therefor
US20150358644A1 (en) Video encoding apparatus and method, video decoding apparatus and method, and programs therefor
WO2017036422A1 (en) Method and apparatus of prediction offset derived based on neighbouring area in video coding
CN105812819B (en) Execute the method and device for blending together multiple hypothesis motion compensation prediction

Legal Events

Date Code Title Description
AS Assignment

Owner name: MEDIATEK INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIN, JIAN-LIANG;TSAI, YU-PAO;LEI, SHAW-MIN;REEL/FRAME:034765/0433

Effective date: 20150106

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: HFI INNOVATION INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MEDIATEK INC.;REEL/FRAME:039348/0714

Effective date: 20160628

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8