IP Library › Granted Patent US 9,215,473
Granted Patent B2
US 9,215,473 · App. 13/357,386 · Granted Dec 15, 2015

Sub-slices in video coding

Inventors: Muhammed Zeyd Coban (Carlsbad, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/436H04N19/13H04N19/174H04N19/197H04N19/70H04N19/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,215,473
App. No.
13/357,386
Granted
Dec 15, 2015
Kind
B2
Abstract

A video encoder partitions a slice of a picture into a plurality of sub-slices. When the video encoder encodes the slice, the video encoder generates a coded slice that includes coded sub-slices that correspond to the sub-slices. Each of the sub-slices can be parsed independently of each other one of the sub-slices and can be reconstructed independently of each other one of the sub-slices. Accordingly, a video decoder may parse two or more of the sub-slices in parallel and decode two or more of the sub-slices in parallel.

Claims (155)

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

encoding a slice of a picture in the video data to form a coded slice,

the slice comprising multiple treeblocks,

the slice being partitioned into a plurality of sub-slices,

each respective sub-slice of the plurality of sub-slices comprising multiple treeblocks of the slice, and

encoding the slice comprising:

including, in the coded slice, a plurality of coded sub-slices,

each respective one of the coded sub-slices corresponding to a respective sub-slice from the plurality of sub-slices, and

each of the sub-slices can be entropy decoded independently of each other one of the sub-slices and each of the sub-slices can be reconstructed independently of each other one of the sub-slices, and

including, in the coded slice, a slice header including all information signaling starting byte positions or byte sizes of the coded sub-slices.

2. The method of claim 1 , wherein the coded slice comprises the slice header and the coded sub-slices include sub-slice headers, each of the sub-slice headers including fewer syntax elements than the slice header.

3. The method of claim 1 , further comprising generating a coded slice network abstraction layer (NAL) unit that contains the coded slice.

4. The method of claim 1 ,

wherein each of the sub-slices is entropy decodable without using information from any other sub-slice of the picture, and

wherein each of the sub-slices is intra-decodable without information from any other sub-slice of the picture.

5. The method of claim 4 , further comprising, for each of the coded sub-slices, using one or more context models to perform entropy encoding operations on data in the coded sub-slice, wherein none of the context models are selected based on information generated during entropy encoding operations on data in other ones of the coded sub-slices.

6. The method of claim 1 , wherein the slice is a first slice of the picture, said method further comprising:

partitioning the picture into the first slice and a second slice; and

partitioning the first slice into the plurality of sub-slices.

7. The method of claim 1 , further comprising, for each sub-slice in the plurality of sub-slices, encoding the sub-slice such that generation of prediction data for intra predicted coding units (CUs) of the sub-slice does not depend on pixel values of CUs in any other one of the sub-slices.

8. The method of claim 1 , further comprising, for each sub-slice in the plurality of sub-slices, encoding the sub-slice such that prediction of intra prediction modes of each intra-predicted CU of the sub-slice does not depend on an intra prediction mode of a CU in any other one of the sub-slices.

9. The method of claim 1 , further comprising, for each sub-slice in the plurality of sub-slices, signaling motion information of prediction units (PUs) of inter predicted CUs in the sub-slice such that prediction of the motion information of the PUs of the inter predicted CUs of the sub-slice does not depend on motion information of PUs outside the sub-slice.

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

receiving a coded slice, the coded slice being an encoded form of a slice of a picture in the video data, the slice comprising multiple treeblocks, the slice including a first sub-slice and a second sub-slice, each of the first sub-slice and the second sub-slice comprising multiple treeblocks of the slice, the coded slice comprising a first coded sub-slice and a second coded sub-slice that correspond to the first sub-slice and the second sub-slice respectively, wherein the first and second coded sub-slices are encoded such that the first and second sub-slices can be entropy decoded independently of each other and can be reconstructed independently of each other;

parsing the first and second sub-slices in parallel using position signaling information in a slice header of the coded slice to extract the first and second coded sub-slices from the coded slices, wherein the position signaling information indicates starting byte positions or byte sizes of the first and second coded sub-slices; and

reconstructing the first and second sub-slices in parallel.

11. The method of claim 10 , wherein the coded slice includes the slice header and slice data, the slice data including the first and second coded sub-slices, the first coded sub-slice including a first sub-slice header, the second coded sub-slice including a second sub-slice header, both the first and second sub-slice headers including fewer syntax elements than the slice header.

12. The method of claim 10 , the receiving the coded slice comprising:

receiving a coded slice network abstraction layer (NAL) unit that contains the coded slice.

13. The method of claim 10 , the parsing the first and second sub-slices comprising:

extracting the first and second coded sub-slices from the coded slice;

performing an entropy decoding operation on data in the first coded sub-slice; and

performing an entropy decoding operation on data in the second coded sub-slice.

14. The method of claim 13 ,

the performing the entropy decoding operation on the data in the first coded sub-slice comprises:

using one or more context models to entropy decode the data in the first coded sub-slice, wherein the first coded sub-slice is encoded such that selection of the one or more context models used to entropy decode the data in the first coded sub-slice does not depend on information from the second coded sub-slice; and

the performing the entropy decoding operation on the data in the second coded sub-slice comprises:

using one or more context models to entropy decode the data in the second coded sub-slice, wherein the second coded sub-slice is encoded such that selection of the one or more context models used to entropy decode the data in the second coded sub-slice does not depend on information from the first coded sub-slice.

15. The method of claim 14 ,

the performing the entropy decoding operation on the data in the first coded sub-slice further comprises:

performing a Context-Adaptive Binary Arithmetic Coding (CABAC) operation on the data in the first coded sub-slice; and

the performing the entropy decoding operation on the data in the second coded sub-slice further comprises:

performing the CABAC operation on the data in the second coded sub-slice.

16. The method of claim 10 , the reconstructing the first and second sub-slices comprising:

generating prediction data for each intra-predicted coding unit (CU) in the first sub-slice, wherein the first coded sub-slice is encoded such that generation of the prediction data for intra-predicted CUs in the first sub-slice does not depend on pixel values of CUs in the second sub-slice; and

generating prediction data for each intra-predicted CU in the second sub-slice, wherein the second coded sub-slice is encoded such that generation of the prediction data for intra-predicted CUs in the second sub-slice does not depend on pixel values of CUs in the first sub-slice.

17. The method of claim 10 , the reconstructing the first and second sub-slices comprising:

predicting intra prediction modes for each intra-predicted CU in the first sub-slice without accessing intra prediction mode information of a CU in any other sub-slice of the picture; and

predicting intra prediction modes for each intra-predicted CU in the second sub-slice without accessing intra prediction mode information of a CU in any other sub-slice of the picture.

18. The method of claim 10 , the reconstructing the first and second sub-slices comprising:

predicting motion information for prediction units (PUs) of inter predicted CUs in the first sub-slice, wherein the first coded sub-slice is encoded such that prediction of the motion information for the PUs of the inter predicted CUs in the first sub-slice does not depend on motion information of PUs in the second sub-slice; and

predicting motion information for PUs of inter predicted CUs in the second sub-slice, wherein the second coded sub-slice is encoded such that prediction of the motion information for the PUs of the inter predicted CUs in the second sub-slice does not depend on motion information of PUs in the first sub-slice.

19. A video encoding apparatus that comprises:

a memory configured to store video data; and

one or more processors that are configured to:

encode a slice of a picture to form a coded slice of the video data,

the slice comprising multiple treeblocks,

the slice being partitioned into a plurality of sub-slices,

each respective sub-slice of the plurality of sub-slices comprising multiple treeblocks of the slice, and

to encode the slice, the one or more processors:

include, in the coded slice, a plurality of coded sub-slices,

 each respective one of the coded sub-slices corresponding to a respective sub-slice from the plurality of sub-slices, and

 each of the sub-slices can be entropy decoded independently of each other one of the sub-slices and each of the sub-slices can be reconstructed independently of each other one of the sub-slices, and

include, in the coded slice, a slice header including all information signaling starting byte positions or byte sizes of the coded sub-slices.

20. The video encoding apparatus of claim 19 , wherein the coded slice comprises the slice header and the coded sub-slices include sub-slice headers, each of the sub-slice headers including fewer syntax elements than the slice header.

21. The video encoding apparatus of claim 19 , wherein the one or more processors are configured to:

generate a coded slice network abstraction layer (NAL) unit that contains the coded slice.

22. The video encoding apparatus of claim 19 ,

wherein each of the sub-slices is entropy decodable without using information from any other sub-slice of the picture, and

wherein each of the sub-slices is intra-decodable without information from any other sub-slice of the picture.

23. The video encoding apparatus of claim 19 , wherein, for each of the coded sub-slices, the one or more processors are configured to:

use one or more context models to perform entropy encoding operations on data in the coded sub-slice, wherein none of the context models are selected based on information generated during entropy encoding operations on data in other ones of the coded sub-slices.

24. The video encoding apparatus of claim 19 , wherein the slice is a first slice of the picture, and the one or more processors are further configured to:

partition the picture into the first slice and a second slice; and

partition the first slice into the plurality of sub-slices.

25. The video encoding apparatus of claim 19 , wherein, for each sub-slice in the plurality of sub-slices, the one or more processors are configured to:

encode the sub-slice such that generation of prediction data for intra predicted coding units (CUs) of the sub-slice does not depend on pixel values of CUs in any other one of the sub-slices.

26. The video encoding apparatus of claim 19 , wherein, for each sub-slice in the plurality of sub-slices, the one or more processors are configured to:

encode the sub-slice such that prediction of intra prediction modes of each intra-predicted CU of the sub-slice does not depend on an intra prediction mode of a CU in any other one of the sub-slices.

27. The video encoding apparatus of claim 19 , wherein, for each sub-slice in the plurality of sub-slices, the one or more processors are configured to:

signal motion information for prediction units (PUs) of inter predicted CUs in the sub-slice such that prediction of the motion information of the PUs of the inter predicted CUs of the sub-slice does not depend on motion information of PUs outside the sub-slice.

28. A video decoding apparatus comprising:

a memory; and

one or more processors configured to:

receive a coded slice of video data, the coded slice being an encoded form of a slice of a picture, the slice comprising multiple treeblocks, the slice including a first sub-slice and a second sub-slice, each of the first sub-slice and the second sub-slice comprising multiple treeblocks of the slice, the coded slice comprising a first coded sub-slice and a second coded sub-slice that correspond to the first sub-slice and the second sub-slice respectively, wherein the first and second coded sub-slices are encoded such that the first and second sub-slices can be entropy decoded independently of each other and can be reconstructed independently of each other;

parse the first and second sub-slices in parallel using position signaling information in a slice header of the coded slice to extract the first and second coded sub-slices from the coded slices, wherein the position signaling information indicates starting byte positions or byte sizes of the first and second coded sub-slices;

reconstruct the first and second sub-slices in parallel; and

store the reconstructed video data for the picture in the memory.

29. The video decoding apparatus of claim 28 , wherein the coded slice includes the slice header and slice data, the slice data including the first and second coded sub-slices, the first coded sub-slice including a first sub-slice header, the second coded sub-slice including a second sub-slice header, both the first and second sub-slice headers including fewer syntax elements than the slice header.

30. The video decoding apparatus of claim 28 , wherein the one or more processors are configured to receive a coded slice network abstraction layer (NAL) unit that contains the coded slice.

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

extract the first and second coded sub-slices from the coded slice;

perform an entropy decoding operation on data in the first coded sub-slice; and

perform an entropy decoding operation on data in the second coded sub-slice.

32. The video decoding apparatus of claim 31 ,

to perform the entropy decoding operation on the data in the first coded sub-slice, the one or more processors:

use one or more context models to entropy decode the data in the first coded sub-slice, wherein the first coded sub-slice is encoded such that selection of the one or more context models used to entropy decode the data in the first coded sub-slice does not depend on information from the second coded sub-slice; and

to perform the entropy decoding operation on the data in the second coded sub-slice, the one or more processors:

use one or more context models to entropy decode the data in the second coded sub-slice, wherein the second coded sub-slice is encoded such that selection of the one or more context models used to entropy decode the data in the second coded sub-slice does not depend on information from the first coded sub-slice.

33. The video decoding apparatus of claim 32 ,

to perform the entropy decoding operation on the data in the first coded sub-slice, the one or more processors:

perform a Context-Adaptive Binary Arithmetic Coding (CABAC) operation on the data in the first coded sub-slice; and

to perform the entropy decoding operation on the data in the second coded sub-slice, the one or more processors:

perform the CABAC operation on the data in the second coded sub-slice.

34. The video decoding apparatus of claim 28 , wherein to reconstruct the first and second sub-slices, the one or more processors:

generate prediction data for each intra-predicted coding unit (CU) in the first sub-slice, wherein the first coded sub-slice is encoded such that generation of the prediction data for intra-predicted CUs in the first sub-slice does not depend on pixel values of CUs in the second sub-slice; and

generate prediction data for each intra-predicted CU in the second sub-slice, wherein the second coded sub-slice is encoded such that generation of the prediction data for intra-predicted CUs in the second sub-slice does not depend on pixel values of CUs in the first sub-slice.

35. The video decoding apparatus of claim 28 , wherein to reconstruct the first and second sub-slices, the one or more processors:

predict intra prediction modes for each intra-predicted CU in the first sub-slice without accessing intra prediction mode information of a CU in any other sub-slice of the picture; and

predict intra prediction modes for each intra-predicted CU in the second sub-slice without accessing intra prediction mode information of a CU in any other sub-slice of the picture.

36. The video decoding apparatus of claim 28 , wherein to reconstruct the first and second sub-slices, the one or more processors:

predict motion information for prediction units (PUs) of inter predicted CUs in the first sub-slice, wherein the first coded sub-slice is encoded such that prediction of the motion information for the PUs of the inter predicted CUs in the first sub-slice does not depend on motion information of PUs in the second sub-slice; and

predict motion information for PUs of inter predicted CUs in the second sub-slice, wherein the second coded sub-slice is encoded such that prediction of the motion information for the PUs of the inter predicted CUs in the second sub-slice does not depend on motion information of PUs in the first sub-slice.

37. A video encoding apparatus comprising:

means for encoding a slice of a picture in video data to form a coded slice,

the slice comprising multiple treeblocks,

the slice being partitioned into a plurality of sub-slices,

each respective sub-slice of the plurality of sub-slices comprising multiple treeblocks of the slice, and

encoding the slice comprising:

including, in the coded slice, a plurality of coded sub-slices,

each respective one of the coded sub-slices corresponding to a respective sub-slice from the plurality of sub-slices, and

each of the sub-slices can be entropy decoded independently of each other one of the sub-slices and each of the sub-slices can be reconstructed independently of each other one of the sub-slices, and

means for including, in the coded slice, a slice header including all information signaling starting byte positions or byte sizes of the coded sub-slices.

38. A video decoding apparatus comprising:

means for receiving a coded slice, the coded slice being an encoded form of a slice of a picture, the slice comprising multiple treeblocks, the slice including a first sub-slice and a second sub-slice, each of the first sub-slice and the second sub-slice comprising multiple treeblocks of the slice, the coded slice comprising a first coded sub-slice and a second coded sub-slice that correspond to the first sub-slice and the second sub-slice respectively, wherein the first and second coded sub-slices are encoded such that the first and second sub-slices can be entropy decoded independently of each other and can be reconstructed independently of each other;

means for parsing the first and second sub-slices in parallel using position signaling information in a slice header of the coded slice to extract the first and second coded sub-slices from the coded slices, wherein the position signaling information indicates starting byte positions or byte sizes of the first and second coded sub-slices; and

means for reconstructing the first and second sub-slices in parallel.

39. A non-transitory computer storage medium that stores computer-executable instructions that configure one or more processors to:

encode a slice of a picture in video data to form a coded slice,

the slice comprising multiple treeblocks,

the slice being partitioned into a plurality of sub-slices,

each respective sub-slice of the plurality of sub-slices comprising multiple treeblocks of the slice, and

as part of encoding the slice:

include, in the coded slice, a plurality of coded sub-slices,

each respective one of the coded sub-slices corresponding to a respective sub-slice from the plurality of sub-slices, and

each of the sub-slices can be entropy decoded independently of each other one of the sub-slices and each of the sub-slices can be reconstructed independently of each other one of the sub-slices, and

include, in the coded slice, a slice header including all information signaling starting byte positions or byte sizes of the coded sub-slices.

40. A non-transitory computer storage medium that stores computer-executable instructions that configure one or more processors to:

receive a coded slice, the coded slice being an encoded form of a slice of a picture, the slice comprising multiple treeblocks, the slice including a first sub-slice and a second sub-slice, each of the first sub-slice and the second sub-slice comprising multiple treeblocks of the slice, the coded slice comprising a first coded sub-slice and a second coded sub-slice that correspond to the first sub-slice and the second sub-slice respectively, wherein the first and second coded sub-slices are encoded such that the first and second sub-slices can be entropy decoded independently of each other and can be reconstructed independently of each other;

parse the first and second sub-slices in parallel using position signaling information in a slice header of the coded slice to extract the first and second coded sub-slices from the coded slices, wherein the position signaling information indicates starting byte positions or byte sizes of the first and second coded sub-slices; and

reconstruct the first and second sub-slices in parallel.

41. The method of claim 1 , wherein the coded slice comprises the slice header and coded sub-slice headers, wherein syntax elements common to the sub-slices are included in the slice header and omitted from the sub-slice headers.

42. The method of claim 10 , wherein the coded slice comprises the slice header and coded sub-slice headers, wherein syntax elements common to the sub-slices are included in the slice header and omitted from the sub-slice headers.

43. The method of claim 1 , wherein the coded slice comprises sub-slice headers for each of the sub-slices, the sub-slice headers comprising Context Adaptive Binary Arithmetic Coding (CABAC) initialization indicators.

44. The method of claim 10 , wherein the coded slice comprises sub-slice headers for each of the sub-slices, the sub-slice headers comprising Context Adaptive Binary Arithmetic Coding (CABAC) initialization indicators.

45. The video encoding apparatus of claim 19 , wherein the video encoding apparatus comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless handset.

46. The video decoding apparatus of claim 28 , wherein the video decoding apparatus comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless handset.

47. The video encoding apparatus of claim 19 , further comprising a camera configured to capture the video data.

48. The video decoding apparatus of claim 28 , further comprising a display configured to display the decoded video data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2012
From: COBAN, MUHAMMED ZEYD; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 027587/0224 →
Continuity (3)
Provisional Application 61436560 · Jan 26, 2011
Provisional Application 61450473 · Mar 8, 2011
Related Publication 20120189049A1 · Jul 26, 2012