IP Library Granted Patent US 8,761,245
Granted Patent B2
US 8,761,245 · App. 12/974,940 · Granted Jun 24, 2014

Content adaptive motion compensation filtering for high efficiency video coding

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,761,245
App. No.
12/974,940
Granted
Jun 24, 2014
Kind
B2
Abstract

A system and method for adaptive motion filtering to improve subpel motion prediction efficiency of interframe motion compensated video coding is described. The technique uses a codebook approach that is efficient in search complexity to look-up best motion filter set from a pre-calculated codebook of motion filter coefficient set. In some embodiments, the search complexity is further reduced by partitioning the complete codebook into a small base codebook and a larger virtual codebook, such that the main calculations for search only need to be performed on the base codebook.

Claims (37)

1. A video-encoder-device-implemented method for encoding an adaptive motion-compensation filter set for a plurality of subpel positions for predicting portions of an encoded video frame, the method comprising:

obtaining, by the video encoder device, a codebook comprising a multiplicity of motion-compensation filters grouped into a plurality of subpel-position groups that respectively correspond to the plurality of subpel positions, each of the plurality of subpel-position groups comprising a plurality of motion-compensation filters suitable for interpolating portions of a picture at a corresponding one of the plurality of subpel positions, the plurality of motion-compensation filters comprising a base codebook of filter sets and a virtual codebook of filter sets, the virtual codebook of filter sets comprising combinations of filters selected from the base codebook of filter sets;

obtaining, by the video encoder device, an unencoded frame of video for encoding by the video encoder device;

selecting a portion of the frame of video as a picture partition according to a partitioning mode;

encoding, by the video encoder device, the selected picture partition to a bitstream; and

during encoding of the picture partition, the video encoder device:

selecting from the codebook a subset of the plurality of motion-compensation filters as being well-adapted for predicting the picture partition, the selected subset comprising one from each of the plurality of subpel-position groups; and

including in the bitstream a code identifying the picture partitioning mode and a subpel-filter code identifying the selected subset of the plurality of motion-compensation filters within the codebook.

2. The method of claim 1 , wherein selecting the subset of the plurality of motion-compensation filters comprises selecting one of a plurality of pre-determined subsets of the plurality of motion-compensation filters.

3. The method of claim 2 , wherein the code identifying the picture partitioning mode included in the bitstream comprises an index identifying the selected subset among the plurality of pre-determined subsets.

4. The method of claim 2 , wherein selecting the one of the plurality of pre-determined subsets of the plurality of motion-compensation filters comprises:

for the picture partition, determining a multiplicity of individual coding gains for the multiplicity of motion-compensation filters;

using the determined multiplicities of individual coding gains, determining an aggregate coding gain for each of the plurality of pre-determined subsets of the plurality of motion-compensation filters as applied to the picture partition; and

selecting one of the plurality of pre-determined subsets as having a favorable aggregate coding gain for the picture partition.

5. The method of claim 4 , further comprising:

determining a default aggregate coding gain for a default filter set applied to the picture partition, the default picture set comprising a plurality of default subpel motion-compensation filters corresponding respectively to the plurality of subpel positions;

determining that the favorable aggregate coding gain is more favorable than the default aggregate coding gain; wherein,

the default filter set is the base codebook of filter sets.

6. The method of claim 1 , further comprising:

obtaining a plurality of integer-position motion-compensation filters; and

during encoding of at least the picture partition, the video encoder device selecting one of the plurality of integer-position motion-compensation filters as being well-adapted for predicting the picture partition.

7. The method of claim 6 , further comprising:

determining that the selected one of the plurality of integer-position motion-compensation filters provides better coding gain than the selected subset of the plurality of motion-compensation filters; and

including in the bitstream generated by the video encoder device:

an integer-filter code identifying the selected one of the plurality of integer-position motion-compensation filters; and

an integer-filter flag indicating that the integer-filter code is included in the bitstream for at least the portion of the frame of video.

8. The method of claim 6 , wherein the codebook further comprises the plurality of integer-position motion-compensation filters as the base codebook of filter sets.

9. The method of claim 6 , wherein obtaining the plurality of integer-position motion-compensation filters comprises obtaining an integer-position codebook.

10. The method of claim 1 , wherein obtaining the codebook comprises:

obtaining a plurality of base motion-compensation filters corresponding respectively to the plurality of subpel positions;

generating a plurality of virtual subpel-position group filters corresponding respectively to the plurality of subpel positions by performing at least steps (i), (ii), and (iii) for each of the plurality of subpel positions:

(i) iteratively selecting combinations of filters from the base motion-compensation filters to generate a multiplicity of refined motion-compensation filters corresponding to the current subpel position;

(ii) determining coding gains corresponding respectively to the base motion-compensation filters and synthesizing coding gains of the multiplicity of refined motion-compensation filters;

(iii) according to the determined and synthesized coding gains, selecting from the generated multiplicity of refined motion-compensation filters a subpel-position group of good-performing motion-compensation filters corresponding to the current subpel position as the virtual codebook filter set.

11. The method of claim 10 , further comprising selecting a plurality of subsets of good-performing motion-compensation filters, each subset comprising one good-performing motion-compensation filter selected from each of the plurality of subpel-position groups.

12. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, perform the method of claim 1 .

13. A video-encoding apparatus comprising a processor and a storage medium storing instructions that, when executed by the processor, perform the method of claim 1 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2012
From: REALNETWORKS, INC.
To: INTEL CORPORATION
Reel/Frame 028752/0734 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2011
From: PURI, ATUL; SOCEK, DANIEL; CHOI, CHANG-KEE
To: REALNETWORKS, INC
Reel/Frame 025941/0950 →