IP Library Granted Patent US 9,838,692
Granted Patent B2
US 9,838,692 · App. 13/418,107 · Granted Dec 5, 2017

Detecting availabilities of neighboring video units for video coding

Inventors: Bo Zhou (San Diego, CA); Gurunath Ramaswamy (San Diego, CA); Karthic Veera (San Diego, CA); Peisong Chen (San Diego, CA); Muhammed Zeyd Coban (Carlsbad, CA); Junchen Du (San Diego, CA); Suhail Jalil (Poway, CA)
Assignee: QUALCOMM Incorporated
H04N19/13H04N19/192H04N19/423H04N19/91H04N19/96
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 9,838,692
App. No.
13/418,107
Granted
Dec 5, 2017
Kind
B2
Abstract

As part of a video encoding or decoding operation on video data, a video coder performs a coding operation for a current video unit of the video data. As part of performing the coding operation for the current video unit, the video coder determines the availabilities of one or more video units that neighbor the current video unit. In order to determine the availability of a video unit that neighbors the current video unit, the video coder identifies, based on availabilities of video units that neighbor a parent video unit of the current video unit, an entry in a lookup table. The identified entry indicates the availability of the video unit that neighbors the current video unit. The video coder then performs a coding operation on the current video unit based on whether the video unit that neighbors the current video unit is available.

Claims (96)

1. A method for coding video data, the method comprising:

identifying, based on availabilities of video units that neighbor a grandparent video unit of a current video unit, a first entry in a lookup table, the video units that neighbor the grandparent video unit including a below-left neighbor of the grandparent video unit, a left neighbor of the grandparent video unit, an above-left neighbor of the grandparent video unit, an above neighbor of the grandparent video unit, and an above-right neighbor of the grandparent video unit, the current video unit being within a picture of the video data, the identified first entry indicating availabilities of a plurality of video units that neighbor a parent video unit of the current video unit, the plurality of video units that neighbor the parent video unit including a below-left neighbor of the parent video unit, a left neighbor of the parent video unit, an above-left neighbor of the parent video unit, an above neighbor of the parent video unit, and an above-right neighbor of the parent video unit, wherein the grandparent video unit is a parent video unit of the parent video unit of the current video unit, and the parent video unit of the current video unit is not a tree block;

identifying, based on the availabilities of the video units that neighbor the parent video unit, a second, different entry in the lookup table, the second entry indicating availabilities of a plurality of video units that neighbor the current video unit, the plurality of video units that neighbor the current video unit including a below-left neighbor of the current video unit, a left neighbor of the current video unit, an above-left neighbor of the current video unit, an above neighbor of the current video unit, and an above-right neighbor of the current video unit; and

performing a coding operation on the current video unit using data associated with a video unit that neighbors the current video unit based on determining the video unit that neighbors the current video unit is available.

2. The method of claim 1 , wherein performing the coding operation on the current video unit comprises:

selecting, based on the data associated with the video unit that neighbors the current video unit, a context model; and

performing, based on the selected context model, an entropy coding operation on data associated with the current video unit.

3. The method of claim 1 , wherein the current video unit is a coding unit or a transform unit.

4. The method of claim 1 , further comprising:

determining whether the current video unit is a tree block; and

based on the current video unit not being a tree block, determining the availabilities of the plurality of the video units that neighbor the parent video unit of the current video unit.

5. The method of claim 4 , wherein determining the availabilities of the plurality of video units that neighbor the parent video unit of the current video unit comprises recursively performing operations to determine the availabilities of video units that neighbor ancestor video units of the current video unit.

6. The method of claim 4 , wherein determining the availabilities of the plurality of the video units that neighbor the parent video unit of the current video unit comprises performing a non-recursive operation to determine the availabilities of video units that neighbor ancestor video units of the current video unit.

7. The method of claim 1 , further comprising:

based on the grandparent video unit being a tree block, determining the availabilities of the video units that neighbor the grandparent video unit based on a position of the grandparent video unit within the picture.

8. The method of claim 1 , wherein the identified second entry comprises a series of values, each respective value of the series of values indicating a respective availability of a respective video unit that neighbors the current video unit.

9. The method of claim 1 , wherein the lookup table includes entries for multiple combinations of availabilities of the plurality of video units that neighbor the parent video unit of the current video unit.

10. The method of claim 9 , wherein the lookup table includes entries for other child video units of the parent video unit of the current video unit, the entries for the other child video units indicating availabilities of video units that neighbor the other child video units.

11. The method of claim 1 , wherein the coding operation is part of an encoding operation.

12. The method of claim 11 ,

wherein performing the coding operation on the current video unit comprises generating prediction data for the current video unit based on one or more pixel values of the video unit that neighbors the current video unit; and

wherein the method further comprises:

generating, based on the prediction data for the current video unit, residual data for the current video unit;

applying one or more transforms to the residual data to generate one or more transform coefficient blocks; and

outputting a bitstream that contains encoded data that represent the one or more transform coefficient blocks.

13. The method of claim 1 , wherein the coding operation is part of a decoding operation.

14. The method of claim 13 ,

wherein performing the coding operation on the current video unit comprises generating prediction data for the current video unit based on one or more pixel values of the video unit that neighbors the current video unit; and

wherein the method further comprises:

decoding residual data for the current video unit;

reconstructing pixel values for the current video unit based on the prediction data for the current video unit and the residual data for the current video unit; and

outputting the picture, the picture including the pixel values for the current video unit.

15. The method of claim 1 , further comprising performing the method on a wireless communication device,

wherein the wireless communication device comprises:

a memory configured to store the video data; and

a processor configured to execute instructions to process the video data stored in said memory; and

wherein at least one of:

the coding operation is an encoding operation that encodes the current video unit and the device comprises a transmitter configured to transmit encoded video data including an encoded representation of a picture that contains the current video unit; or

the coding operation is a decoding operation and the device comprises a receiver configured to receive the encoded video data that includes the encoded representation of the picture that contains the current video unit.

16. The method of claim 15 , wherein the wireless communication device is a cellular telephone and the encoded video data is transmitted by the transmitter or received by the receiver and modulated according to a wireless communication protocol.

17. A video coding apparatus comprising:

one or more data storage media configured to store video data; and

one or more processors configured to:

identify, based on availabilities of video units that neighbor a grandparent video unit of a current video unit of the video data, a first entry in a lookup table, the video units that neighbor the grandparent video unit including a below-left neighbor of the grandparent video unit, a left neighbor of the grandparent video unit, an above-left neighbor of the grandparent video unit, an above neighbor of the grandparent video unit, and an above-right neighbor of the grandparent video unit, the current video unit being within a picture, the identified first entry indicating availabilities of a plurality of video units that neighbor a parent video unit of the current video unit, the plurality of video units that neighbor the parent video unit including a below-left neighbor of the parent video unit, a left neighbor of the parent video unit, an above-left neighbor of the parent video unit, an above neighbor of the parent video unit, and an above-right neighbor of the parent video unit, wherein the grandparent video unit is a parent video unit of the parent video unit of the current video unit, and the parent video unit of the current video unit is not a tree block;

identify, based on the availabilities of the plurality of video units that neighbor the parent video unit, a second, different entry in the lookup table, the second entry indicating availabilities of a plurality of video units that neighbor the current video unit, the plurality of video units that neighbor the current video unit including a below-left neighbor of the current video unit, a left neighbor of the current video unit, an above-left neighbor of the current video unit, an above neighbor of the current video unit, and an above-right neighbor of the current video unit; and

perform a coding operation on the current video unit using data associated with a video unit that neighbors the current video unit based on determining the video unit that neighbors the current video unit is available.

18. The video coding apparatus of claim 17 , wherein the one or more processors are configured to:

select, based on the data associated with the video unit that neighbors the current video unit, a context model; and

perform, based on the selected context model, an entropy coding operation on data associated with the current video unit.

19. The video coding apparatus of claim 17 , wherein the current video unit is a coding unit or a transform unit.

20. The video coding apparatus of claim 17 , wherein the one or more processors are configured to:

determine whether the current video unit is a tree block; and

based on the current video unit not being a tree block, determine the availabilities of the plurality of video units that neighbor the parent video unit of the current video unit.

21. The video coding apparatus of claim 20 , wherein the one or more processors are configured to recursively perform operations to determine the availabilities of video units that neighbor ancestor video units of the current video unit.

22. The video coding apparatus of claim 20 , wherein the one or more processors are configured to perform a non-recursive operation to determine the availabilities of video units that neighbor ancestor video units of the current video unit.

23. The video coding apparatus of claim 17 , wherein the one or more processors are configured to:

based on the grandparent video unit being a tree block, determine the availabilities of the video units that neighbors the grandparent video unit based on a position of the grandparent video unit within the picture.

24. The video coding apparatus of claim 17 , wherein the identified second entry comprises a series of values, each respective value of the series of values indicating a respective availability of a respective video unit that neighbors the current video unit.

25. The video coding apparatus of claim 17 , wherein the lookup table includes entries for multiple combinations of the availabilities of the plurality of video units that neighbor the parent video unit of the current video unit.

26. The video coding apparatus of claim 25 , wherein the lookup table includes entries for other child video units of the parent video unit of the current video unit, the entries for the other child video units indicating availabilities of video units that neighbor the other child video units.

27. The video coding apparatus of claim 17 , wherein the coding operation is part of an encoding operation.

28. The video coding apparatus of claim 27 , wherein the one or more processors are configured to:

generate prediction data for the current video unit based on one or more pixel values of the video unit that neighbors the current video unit;

generate residual data for the current video unit based on the prediction data for the current video unit;

apply one or more transforms to the residual data to generate one or more transform coefficient blocks; and

output a bitstream that contains encoded data that represent the one or more transform coefficient blocks.

29. The video coding apparatus of claim 17 , wherein the coding operation is part of a decoding operation.

30. The video coding apparatus of claim 29 , wherein the one or more processors are configured to:

generate prediction data for the current video unit based on one or more pixel values of the video unit that neighbors the current video unit;

decode residual data for the current video unit;

reconstruct pixel values for the current video unit based on the prediction data for the current video unit and the residual data for the current video unit; and

output the picture, the picture including the pixel values for the current video unit.

31. The video coding apparatus of claim 17 , wherein the video coding apparatus is a wireless communication device, and at least one of:

the coding operation is an encoding operation that encodes the current video unit and the video coding apparatus further comprises a transmitter configured to transmit encoded video data including an encoded representation of a picture that contains the current video unit; or

the coding operation is a decoding operation and the video coding apparatus further comprises a receiver configured to receive the encoded video data that includes the encoded representation of the picture that contains the current video unit.

32. The apparatus of claim 31 , wherein the wireless communication device is a cellular telephone and the encoded video data is transmitted by the transmitter or received by the receiver and modulated according to a wireless communication protocol.

33. A video coding apparatus for coding video data, the video coding apparatus comprising:

means for identifying, based on availabilities of video units that neighbor a grandparent video unit of a current video unit, a first entry in a lookup table, the current video unit being within a picture of the video data, the video units that neighbor the grandparent video unit including a below-left neighbor of the grandparent video unit, a left neighbor of the grandparent video unit, an above-left neighbor of the grandparent video unit, an above neighbor of the grandparent video unit, and an above-right neighbor of the grandparent video unit, the identified first entry indicating availabilities of a plurality of video units that neighbor a parent video unit of the current video unit, the plurality of video units that neighbor the parent video unit including a below-left neighbor of the parent video unit, a left neighbor of the parent video unit, an above-left neighbor of the parent video unit, an above neighbor of the parent video unit, and an above-right neighbor of the parent video unit, wherein the grandparent video unit is a parent video unit of the parent video unit of the current video unit, and the parent video unit of the current video unit is not a tree block;

means for identifying, based on the availabilities of the video units that neighbor the parent video unit, a second, different entry in the lookup table, the second entry indicating availabilities of a plurality of video units that neighbor the current video unit, the plurality of video units that neighbor the current video unit including a below-left neighbor of the current video unit, a left neighbor of the current video unit, an above-left neighbor of the current video unit, an above neighbor of the current video unit, and an above-right neighbor of the current video unit; and

means for performing a coding operation on the current video unit using data associated with a video unit that neighbors the current video unit based on determining the video unit that neighbors the current video unit is available.

34. The video coding apparatus of claim 33 further comprising:

means for determining whether the current video unit is a tree block; and

means for recursively performing operations to determine the availabilities of video units that neighbor ancestor video units of the current video unit based on the current video unit not being a tree block.

35. The video coding apparatus of claim 33 , wherein the identified second entry comprises a series of values, each respective value of the series of values indicating a respective availability of a respective video unit that neighbors the current video unit.

36. The video coding apparatus of claim 33 , wherein the coding operation is part of an encoding operation.

37. The video coding apparatus of claim 33 , wherein the coding operation is part of a decoding operation.

38. A non-transitory computer-readable medium having stored thereon instructions that, when executed, cause one or more processors to:

identify, based on availabilities of video units that neighbor a grandparent video unit of a current video unit, a first entry in a lookup table, the video units that neighbor the grandparent video unit including a below-left neighbor of the grandparent video unit, a left neighbor of the grandparent video unit, an above-left neighbor of the grandparent video unit, an above neighbor of the grandparent video unit, and an above-right neighbor of the grandparent video unit, the current video unit being within a picture, the identified first entry indicating availabilities of a plurality of video units that neighbor a parent video unit of the current video unit, the plurality of video units that neighbor the parent video unit including a below-left neighbor of the parent video unit, a left neighbor of the parent video unit, an above-left neighbor of the parent video unit, an above neighbor of the parent video unit, and an above-right neighbor of the parent video unit, wherein the grandparent video unit is a parent video unit of the parent video unit of the current video unit, and the parent video unit of the current video unit is not a tree block, and

identify, based on the availabilities of the video units that neighbor the parent video unit, a second, different entry in the lookup table, the second entry indicating availabilities of a plurality of video units that neighbor the current video unit, the plurality of video units that neighbor the current video unit including a below-left neighbor of the current video unit, a left neighbor of the current video unit, an above-left neighbor of the current video unit, an above neighbor of the current video unit, and an above-right neighbor of the current video unit; and

perform a coding operation on the current video unit using data associated with a video unit that neighbors the current video unit based on determining the video unit that neighbors the current video unit is available.

39. The non-transitory computer-readable medium of claim 38 , wherein the instructions cause the one or more processors to:

determine whether the current video unit is a tree block; and

recursively perform operations to determine availabilities of video units that neighbor ancestor video units of the current video unit based on the current video unit not being a tree block.

40. The non-transitory computer-readable medium of claim 38 , wherein the identified second entry comprises a series of values, each respective value of the series of values indicating a respective availability of a respective video unit that neighbors the current video unit.

41. The non-transitory computer-readable medium of claim 38 , wherein the coding operation is part of an encoding operation.

42. The non-transitory computer-readable medium of claim 38 , wherein the coding operation is part of a decoding operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2012
From: ZHOU, BO; RAMASWAMY, GURUNATH; VEERA, KARTHIC; CHEN, PEISONG; COBAN, MUHAMMED ZEYD; DU, JUNCHEN; JALIL, SUHAIL
To: QUALCOMM INCORPORATED
Reel/Frame 027848/0392 →
Continuity (2)
Provisional Application 61548630 · Oct 18, 2011
Related Publication 20130094580A1 · Apr 18, 2013