IP Library Granted Patent US 8,804,816
Granted Patent B2
US 8,804,816 · App. 13/221,489 · Granted Aug 12, 2014

Video encoding enhancements

Inventors: Bin Li (Hefei, CN); Jizheng Xu (Beijing, CN); Feng Wu (Beijing, CN)
Assignee: Microsoft Corporation
H04N19/00072H04N19/00212H04N19/00884H04N19/00551H04N19/00969
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,804,816
App. No.
13/221,489
Granted
Aug 12, 2014
Kind
B2
Abstract

Techniques for implementing video encoding enhancements may increase video encoding efficiency. One of the techniques may involve the use of an exception value and a maximum index value in inter-prediction coding lookup table to enhance the combined coding of an inter-prediction direction and a reference frame index for a coding unit. Another of the techniques may include adaptively ordering the encoding of a split flag value and a skip flag value for a coding unit. An additional technique may include providing a uniform approach to adaptively combined code the coded block flag (CBF) values for transform or coding units of images that are used with the Residue Quad-tree (RQT) information to represent residue information.

Claims (51)

1. A computer-readable storage device storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:

establishing a lookup table that includes entries used for combined coding of an inter-prediction direction and one or more corresponding frame index values for an inter-prediction of pixel data of a coding unit in a frame;

providing an additional entry to the lookup table that indicates that a corresponding number of index values in at least one group of frames exceeds a predetermined value; and

implementing a maximum index value for the lookup table based at least on a number of frames in each group of frames used in the inter-prediction of pixel data for the coding unit.

2. The computer-readable storage device of claim 1 wherein the implementing includes implementing the maximum index value for the lookup table based on the number of frames in each group of frames used in the inter-prediction of pixel data for the coding unit and whether pixel data in a prior frame to the frame is used during the inter-prediction of the pixel data of the coding unit in the frame.

3. The computer-readable storage device of claim 1 , further comprising computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:

combined coding the inter-prediction direction and the one or more corresponding frame index values using the lookup table when prediction units surrounding the coding unit do not use pixel data from a reference frame with a reference index value equal to or greater than the predetermined value; and

coding the inter-prediction direction and the one or more corresponding frame index values separately when at least one of the prediction units surrounding the coding unit uses the pixel data from the reference frame with the reference index value equal to or greater than the predetermined value.

4. The computer-readable storage device of claim 1 , wherein each entry in the lookup table includes a value that correlates with a unique combination of the inter-prediction direction and one or more corresponding frame index values.

5. The computer-readable storage device of claim 1 , wherein the establishing the lookup table includes ordering the entries in the lookup table based at least on one of a probability of a corresponding value in each entry occurring during the combined coding or whether pixel data in a prior frame to the frame is used during the inter-prediction of the pixel data of the coding unit in the frame.

6. The computer-readable storage device of claim 1 , further comprising computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:

determining a first quantity of coding units in a group of coding units that are split into sub-units and a second quantity of coding units in the group of coding units that are unsplit and in skip mode;

encoding a split flag before a skip flag for a particular coding unit in the group of coding units when the first quantity is greater than the second quantity; and

encoding the skip flag before the split flag for the particular coding unit in the group of coding units when the first quantity is less than or equal to the second quantity.

7. The computer-readable storage device of claim 1 , further comprising computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:

determining a first quantity of coding units in a frame surrounding a particular coding unit that are split into sub-units and a second quantity of coding units in the frame surrounding the particular coding unit that are unsplit and in skip mode;

encoding a split flag before a skip flag for the particular coding unit in the group of coding units when the first quantity is greater than the second quantity; and

encoding the skip flag before the split flag for the particular coding unit in the group of coding units when the first quantity is less than or equal to the second quantity.

8. The computer-readable storage device of claim 1 , further comprising computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:

coding a quad-tree for a residue of an inter-coded transform unit;

combined coding coded block flag (CBF) values associated with color space components of an intra-coded transform unit when the inter-coded transform unit is not split into sub-units; and

combined coding the CBF values associated with the color space components that belong to each unsplit sub-unit of the intra-coded transform unit when the inter-coded transform unit is split into sub-units.

9. A computer-implemented method, comprising:

determining, at a computing device, a first quantity of at least one coding unit associated with a particular coding unit that are split into sub-units and a second quantity of at least one coding unit associated with the particular coding unit that are unsplit and in skip mode, the particular coding unit is a part of a group of coding units of a frame;

encoding, at the computing device, a split flag before a skip flag for the particular coding unit in the group of coding units when the first quantity is greater than the second quantity; and

encoding, at the computing device, the skip flag before the split flag for the particular coding unit in the group of coding units when the first quantity is less than or equal to the second quantity.

10. The computer-implemented method of claim 9 , wherein one or more coding units associated with the particular coding unit includes one or more coding units in a group of coding units of a slice to which the particular coding unit belongs or one or more coding units in the frame that surrounds the particular coding unit.

11. The computer-implemented method of claim 10 , wherein encoding the split flag before the skip flag when the particular coding unit is split into additional sub-units uses less data than encoding the skip flag before the split flag, and wherein encoding the skip flag before the skip flag when the particular coding unit is unsplit and in skip mode uses less data than encoding the split flag before the skip flag.

12. The computer-implemented method of claim 10 , wherein the one or more coding units in the frame includes a surrounding coding unit that meets a predetermined size threshold for the slice.

13. The computer-implemented method of claim 9 , wherein the split flag indicates whether the particular coding unit is split into the sub-units or is unsplit, and the skip flag indicates whether the particular coding unit is in skip mode or not in skip mode.

14. A computing device, comprising:

one or more processors; and

a memory that includes a plurality of computer-executable components, the plurality of computer-executable components comprising:

an encoder component that encodes a quad-tree for a residue of an inter-coded unit or a intra-coded unit; and

a flag coding component that, for a intra-coded unit, performs acts comprising:

combined coding coded block flag (CBF) values associated with color space components of the intra-coded unit using an adaptive technique when the inter-coded unit is not split into sub-units; and

combined coding the CBF values associated with the color space components that belong to each unsplit sub-unit of the intra-coded unit when the intra-coded unit is split into sub-units.

15. The computing device of claim 14 , wherein the combined coding the CBF values associate with the color space components that belong to each unsplit sub-unit further comprises:

when the inter-coded unit has one unsplit sub-unit, combined coding coded block flag (CBF) values of Y, U, and V components of the one unsplit sub-unit using the adaptive technique, the Y component is a luma component in a YUV color space, and the U and V components are chrominance components in the YUV color space;

when the intra-coded unit has two unsplit sub-units, combined coding a corresponding set of two CBF values belonging to each of the Y, U, and V components of the two unsplit sub-units without the adaptive technique;

when the intra-coded unit has three unsplit sub-units, combined coding a corresponding set of three CBF values belonging to each of the Y, U, and V components of the two unsplit sub-units without the adaptive technique; and

when the intra-coded unit has four unsplit sub-units, combined coding at least a corresponding set of four CBF values belonging to the Y components of the four unsplit sub-units and combined code the set of two CBF values belong to a UV CBF root of the U and V components of the intra-coded unit using the adaptive technique.

16. The computing device of claim 15 , further comprising, when the intra-coded unit has four unsplit sub-units, combined code another set of four CBF values belonging to the U components or the V components of the four unsplit sub-units when a CBF value of the U CBF root or a CBF value of the V CBF root is not zero.

17. The computing device of claim 15 , wherein the combining coding performed for the two unsplit sub-units, the combined coding performed for the three unsplit sub-units, and the combined coding performed for the four unsplit sub-units are accomplished using different coding schemes.

18. The computing device of claim 14 , wherein the flag coding component, for a inter-coded unit, performs acts comprising:

combined coding CBF values of a YUV CBF root of Y, U, and V components of the inter-coded unit using the adaptive technique;

encoding the CBF value of a U component or a V component belonging to the inter-coded unit separately when an additional corresponding U component or an additional corresponding V component in an upper layer to the layer that includes the inter-coded unit has a particular CBF value;

when the inter-coded unit includes one, two, or three unsplit sub-units, encoding the CBF values of the respective Y components of the inter-coded unit separately; and

when the inter-coded unit includes four unsplit sub-units, combined coding the CBF values of the Y components of the four unsplit sub-units using the adaptive technique.

19. The computing device of claim 14 , wherein the adaptive technique swaps a currently used coding value in a lookup table with a preceding coding value in the lookup table.

20. The computer-readable storage device of claim 1 , wherein the lookup table includes values that correspond to at least one of forward prediction, backward prediction, or bi-prediction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2011
From: LI, BIN; XU, JIZHENG; WU, FENG
To: MICROSOFT CORPORATION
Reel/Frame 026831/0123 →
Continuity (1)
Related Publication 20130051452A1 · Feb 28, 2013