IP Library Granted Patent US 8,520,732
Granted Patent B2
US 8,520,732 · App. 13/617,268 · Granted Aug 27, 2013

Adaptive coding of video block prediction mode

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,520,732
App. No.
13/617,268
Granted
Aug 27, 2013
Kind
B2
Abstract

This disclosure describes techniques for coding of header information of video blocks. In particular, the techniques of this disclosure select one of a plurality of prediction modes for use in generating a prediction block of a video block of a coding unit, the plurality of prediction modes including unidirectional prediction modes and multi-directional prediction modes that combine at least two unidirectional prediction modes. An encoding device encodes the prediction mode of the current video block based on prediction modes of one or more previously encoded video blocks of the coding unit. Likewise, a decoding unit receives encoded video data of a video block of a coding unit and decodes the encoded video data to identify one of a plurality of prediction modes for use in generating a prediction block of the video block based on prediction modes of one or more previously decoded video blocks of the coding unit.

Claims (109)

1. A method of encoding video data, the method comprising:

selecting from a set of intra prediction modes for a current video block one of a plurality of intra prediction modes for use in generating a prediction block of a video block of a coding unit; and

encoding the intra prediction mode of the current video block based on intra prediction modes of one or more previously encoded video blocks of the coding unit, wherein encoding the intra prediction mode comprises:

if the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks, then:

encoding a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks, and

encoding at least one additional bit representing the intra prediction mode to indicate which of the one or more previously encoded video blocks has the same intra prediction mode as the intra prediction mode of the current video block; and

if the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks, then:

encoding a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks,

removing from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously encoded video blocks when the one or more previously encoded video blocks have different intra prediction modes,

removing from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously encoded video blocks and at least one additional intra prediction mode that is not an intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode,

renumbering intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes for the current video block, and

encoding a codeword that identifies the intra prediction mode identifier corresponding to the intra prediction mode of the current video block.

2. The method of claim 1 , further comprising selecting one of a plurality of coding contexts for use in encoding the intra prediction mode of the current video block based on the intra prediction modes of the one or more previously encoded video blocks of the coding unit, wherein encoding comprises encoding according to the selected coding context.

3. The method of claim 1 , wherein the one or more previously encoded video blocks comprise a left neighboring block and an upper neighboring block.

4. The method of claim 1 , wherein encoding the codeword comprises performing a context adaptive binary arithmetic coding (CABAC) process.

5. The method of claim 1 , further comprising:

subtracting the intra prediction block generated using the selected intra prediction mode from the current video block to form a residual block;

selecting a transform to apply to the residual block based on the selected intra prediction mode; and

applying the selected transform to the residual block to generate residual transform coefficients.

6. A device that encodes video data, the device comprising:

a prediction unit that selects one of a plurality of intra prediction modes for use in generating a prediction block of a current video block of a coding unit; and

an entropy encoding unit that encodes the intra prediction mode of the current video block based on intra prediction modes of one or more previously encoded video blocks of the coding unit, wherein:

if the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks, then:

the entropy encoding unit encodes a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks, and

the entropy encoding unit encodes at least one additional bit representing the intra prediction mode to indicate which of the one or more previously encoded video blocks has the same intra prediction mode as the intra prediction mode of the current video block; and

if the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks, then:

the entropy encoding unit encodes a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks,

the entropy encoding unit removes from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously encoded video blocks when the one or more previously encoded video blocks have different intra prediction modes,

the entropy encoding unit removes from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously encoded video blocks and at least one additional intra prediction mode that is not an intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode,

the entropy encoding unit renumbers intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes for the current video block, and

the entropy encoding unit encodes a codeword that identifies the intra prediction mode identifier corresponding to the intra prediction mode of the current video block.

7. The device of claim 6 , wherein the entropy encoding unit selects one of a plurality of coding contexts for use in encoding the intra prediction mode of the current video block based on the intra prediction modes of the one or more previously encoded video blocks of the coding unit and encodes the intra prediction mode according to the selected coding context.

8. The device of claim 6 , wherein the one or more previously encoded video blocks comprise a left neighboring block and an upper neighboring block.

9. The device of claim 6 , wherein the entropy encoding unit encodes the codeword by performing a context adaptive binary arithmetic coding (CABAC) process.

10. The device of claim 6 , further comprising a transform unit that selects a transform to apply to a residual block based on the selected prediction mode and applies the selected transform to the residual block to generate residual transform coefficients, wherein the entropy encoding unit encodes the residual transform coefficients.

11. The device of claim 6 , wherein the device comprises a wireless communication device.

12. The device of claim 6 , wherein the device comprises an integrated circuit device.

13. A device that encodes video data, the device comprising:

means for selecting from a set of intra prediction modes for a current video block one of a plurality of intra prediction modes for use in generating a prediction block of a video block of a coding unit; and

means for encoding the intra prediction mode of the current video block based on intra prediction modes of one or more previously encoded video blocks of the coding unit;

means for encoding a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks if the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks;

means for encoding at least one additional bit representing the intra prediction mode to indicate which of the one or more previously encoded video blocks has the same intra prediction mode as the intra prediction mode of the current video block in response to the intra prediction mode of the current video block being the same as one of the intra prediction modes of the one or more previously encoded video blocks;

means for encoding a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks;

means for removing from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously encoded video blocks when the one or more previously encoded video blocks have different intra prediction modes in response to the intra prediction mode of the current video block not being the same as any of the intra prediction modes of the one or more previously encoded video blocks and in response to the intra prediction mode of the current video block being the same as one of the intra prediction modes of the one or more previously encoded video blocks;

means for removing from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously encoded video blocks and at least one additional intra prediction mode that is not an intra prediction mode of the one or more previously encoded video blocks in response to two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode and in response to the intra prediction mode of the current video block being the same as one of the intra prediction modes of the one or more previously encoded video blocks;

means for renumbering intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes in response to the intra prediction mode of the current video block being the same as one of the intra prediction modes of the one or more previously encoded video blocks, and

means for encoding a codeword that identifies the intra prediction mode identifier corresponding to the intra prediction mode of the current video block in response to the intra prediction mode of the current video block being the same as one of the intra prediction modes of the one or more previously encoded video blocks.

14. A non-transitory computer readable storage medium storing instruction that upon execution cause one or more processors to:

select from a set of intra prediction modes for a current video block one of a plurality of intra prediction modes for use in generating a prediction block of a video block of a coding unit; and

encode the intra prediction mode of the current video block based on intra prediction modes of one or more previously encoded video blocks of the coding unit, wherein the instructions cause the one or more processors to encode the intra prediction mode of the current block by:

if the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks, then:

encode a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is the same as one of the intra prediction modes of the one or more previously encoded video blocks, and

encode at least one additional bit representing the intra prediction mode to indicate which of the one or more previously encoded video blocks has the same intra prediction mode as the intra prediction mode of the current video block; and

if the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks, then:

encode a first bit representing the intra prediction mode to indicate that the intra prediction mode of the current video block is not the same as any of the intra prediction modes of the one or more previously encoded video blocks,

remove from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously encoded video blocks when the one or more previously encoded video blocks have different intra prediction modes,

remove from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously encoded video blocks and at least one additional intra prediction mode that is not an intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode,

renumber intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes for the current video block, and

encode a codeword that identifies the intra prediction mode identifier corresponding to the intra prediction mode of the current video block.

15. A method of decoding video data, the method comprising:

receiving encoded video data of a current video block of a coding unit; and

decoding the encoded video data to identify from a set of intra prediction modes for the current video block one of a plurality of intra prediction modes for use in generating a prediction block of the current video block based on intra prediction modes of one or more previously decoded video blocks of the coding unit, comprising:

if, based on a first encoded bit representing the intra prediction mode, the intra prediction mode is one of the intra prediction modes of the one or more previously decoded video blocks, then identifying which of the one or more previously decoded video blocks has the same intra prediction mode as the intra prediction mode for use in generating the intra prediction block of the current video block based on at least one additional encoded bit representing the intra prediction mode, and

if, based on a first encoded bit representing the intra prediction mode, the intra prediction mode is not any of the intra prediction modes of the one or more previously decoded video blocks, then:

removing from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously decoded video blocks when the one or more previously decoded video blocks have different intra prediction modes,

removing from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously decoded video blocks and at least one additional intra prediction mode that is not the intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode,

renumbering intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes for the current video block, and

decoding a codeword to identify the intra prediction mode identifier corresponding to the intra prediction mode for use in generating a prediction block of the current video block.

16. The method of claim 15 , further comprising selecting one of a plurality of coding contexts for use in decoding the intra prediction mode of the current video block based on the intra prediction modes of the one or more previously decoded video blocks of the coding unit, wherein decoding comprises decoding according to the selected coding context.

17. The method of claim 15 , wherein the one or more previously encoded video blocks comprise a left neighboring block and an upper neighboring block.

18. The method of claim 15 , wherein decoding the codeword comprises performing a context adaptive binary arithmetic coding (CABAC) process.

19. The method of claim 15 , further comprising:

selecting an inverse transform to apply to residual transform coefficients of the current video block based on the identified intra prediction mode; and

applying the selected inverse transform to the residual transform coefficients of the current video block to generate residual data.

20. A device for decoding video data, the device comprising:

an entropy decoding unit that decodes encoded video data of a current video block of a coding unit to identify one of a plurality of intra prediction modes for use in generating a prediction block of the current video block based on intra prediction modes of one or more previously decoded video blocks of the coding unit; and

a prediction unit that generates the intra prediction block using the decoded prediction mode, wherein:

if, based on a first encoded bit representing the intra prediction mode, the intra prediction mode is one of the intra prediction modes of the one or more previously decoded video blocks, the entropy decoding unit identifies which of the one or more previously decoded video blocks has the same intra prediction mode as the intra prediction mode for use in generating the intra prediction block of the current video block based on at least one additional encoded bit representing the intra prediction mode, and for the current video block, the entropy decoding unit selects the intra prediction mode of the identified previously decoded video block; and

if, based on a first encoded bit representing the intra prediction mode, the intra prediction mode is not any of the intra prediction modes of the one or more previously decoded video blocks, then:

the entropy decoding unit removes from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously decoded video blocks when the one or more previously decoded video blocks have different intra prediction modes,

the entropy decoding unit removes from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously decoded video blocks and at least one additional intra prediction mode that is not the intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode,

the entropy decoding unit renumbers intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes for the current video block, and

the entropy decoding unit decodes a codeword to identify the intra prediction mode identifier corresponding to the intra prediction mode for use in generating a prediction block of the current video block.

21. The device of claim 20 , wherein the entropy decoding unit selects one of a plurality of coding contexts for use in decoding the intra prediction mode of the current video block based on the intra prediction modes of the one or more previously decoded video blocks of the coding unit, wherein decoding comprises decoding according to the selected coding context.

22. The device of claim 20 , wherein the one or more previously encoded video blocks comprise a left neighboring block and an upper neighboring block.

23. The device of claim 20 , wherein the entropy decoding unit decodes the codeword using a context adaptive binary arithmetic coding (CABAC) process.

24. The device of claim 20 , further comprising an inverse transform unit that:

selects an inverse transform to apply to residual transform coefficients of the current video block based on the identified intra prediction mode; and

applies the selected inverse transform to the residual transform coefficients of the current video block to generate a residual data.

25. The device of claim 20 , wherein the device comprises a wireless communication device.

26. The device of claim 20 , wherein the device comprises an integrated circuit device.

27. A device that decodes video data, the device comprising:

means for receiving encoded video data of a current video block of a coding unit; and

means for decoding the encoded video data to identify from a set of intra prediction modes for the current video block one of a plurality of intra prediction modes for use in generating a prediction block of the current video block based on intra prediction modes of one or more previously decoded video blocks of the coding unit;

means for receiving a first encoded bit representing the intra prediction mode;

means for identifying which of the one or more previously decoded video blocks has the same intra prediction mode as the intra prediction mode for use in generating the intra prediction block of the current video block based on at least one additional encoded bit representing the intra prediction mode when the first encoded bit signals the intra prediction mode of the current block is one of the intra prediction modes of the one or more previously decoded video blocks;

means for removing from the set of intra prediction modes for the current block at least the intra prediction modes of the one or more previously decoded video blocks when the one or more previously decoded video blocks have different intra prediction modes and when the first encoded bit signals the intra prediction mode of the current block is not any of the intra prediction modes of the one or more previously decoded video blocks;

means for removing from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously decoded video blocks and at least one additional intra prediction mode that is not the intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode and when the first encoded bit signals the intra prediction mode of the current block is not any of the intra prediction modes of the one or more previously decoded video blocks;

means for renumbering intra prediction mode identifiers for the current video block among the remaining intra prediction modes of the set of intra prediction modes for the current video block when the first encoded bit signals the intra prediction mode of the current block is not any of the intra prediction modes of the one or more previously decoded video blocks;

means for decoding a codeword to identify the intra prediction mode identifier corresponding to the intra prediction mode for use in generating a prediction block of the current video block when the first encoded bit signals the intra prediction mode of the current block is not any of the intra prediction modes of the one or more previously decoded video blocks.

28. A non-transitory computer readable medium storing instruction that upon execution cause one or more processors to:

receive encoded video data of a current video block of a coding unit; and

decode the encoded video data to identify from a set of intra prediction modes for the current video block one of a plurality of intra prediction modes for use in generating a prediction block of the current video block based on intra prediction modes of one or more previously decoded video blocks of the coding unit, wherein the instructions cause the one or more processors to decode the encoded video data by:

if, based on a first encoded bit representing the intra prediction mode, the intra prediction mode is one of the intra prediction modes of the one or more previously decoded video blocks, and if the intra prediction mode of the one or more previously decoded video blocks are not the same, then identify which of the one or more previously decoded video blocks has the same intra prediction mode as the intra prediction mode for use in generating the intra prediction block of the current video block based on at least one additional encoded bit representing the intra prediction mode, and

if, based on a first encoded bit representing the intra prediction mode, the intra prediction mode is not any of the intra prediction modes of the one or more previously decoded video blocks, then:

remove from the set of intra prediction modes for the current video block at least the intra prediction modes of the one or more previously decoded video blocks when the one or more previously decoded video blocks have different intra prediction modes,

remove from the set of intra prediction modes for the current video block the intra prediction modes of the one or more previously decoded video blocks and at least one additional intra prediction mode that is not the intra prediction mode of the one or more previously encoded video blocks when two or more of the previously encoded video blocks of the coding unit have the same intra prediction mode,

renumber intra prediction mode identifiers among the remaining intra prediction modes of the set of intra prediction modes for the current video block, and

decode a codeword to identify the intra prediction mode identifier corresponding to the intra prediction mode for use in generating a prediction block of the current video block.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2022
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 060923/0407 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: VELOS MEDIA, LLC
To: QUALCOMM INCORPORATED
Reel/Frame 057575/0431 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2021
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 057554/0540 →
SECOND AMENDED AND RESTATED MEMBER INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 2, 2018
From: VELOS MEDIA MANAGEMENT, LLC; VELOS MEDIA, LLC
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 045806/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: QUALCOMM INCORPORATED
To: VELOS MEDIA, LLC
Reel/Frame 043173/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2012
From: YE, YAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 028974/0496 →