IP Library Granted Patent US 9,113,172
Granted Patent B2
US 9,113,172 · App. 13/350,239 · Granted Aug 18, 2015

Techniques for describing temporal coding structure

Inventors: Danny Hong (New York, NY); Jill Boyce (Manalapan, NJ)
Assignee: Vidyo, Inc.
H04N19/58H04N19/18H04N19/31H04N19/40H04N19/436H04N19/54H04N19/573H04N19/61H04N19/70
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,113,172
App. No.
13/350,239
Granted
Aug 18, 2015
Kind
B2
Abstract

The disclosed subject matter describes a new pattern description that can be part of an SEI message or a parameter set, and can be used to describe a temporal picture coding structure and associated bitrates and frame rates. The knowledge of the coding structure can benefit transraters, bitstream extractors, and digital video recorders. Decoders can utilize the coding structure information for example, to decode pictures in parallel, using multiple threads/cores.

Claims (63)

1. A method for video coding in an encoder, comprising:

determining a coding structure comprising, for each of num_pictures_in_sop_minus — 1+1 coded pictures, a picture type (primary_pic_type), and a value indicative of a temporal layer of the picture (temporal_num), num_pictures_in_sop_minus 1 having a value larger than 0;

encoding, in a Supplementary Enhancement Information (SEI) message, a value indicative of a number of pictures in a pattern (num_pictures_in_sop_minus — 1 );

encoding, in the SEI message, a pattern description indicative of at least a prediction structure of a plurality of coded pictures, the pattern description comprising a table of num_pictures_in_sop_minus — 1+1 entries representing the coding structure, each entry comprising the picture type (primary_pic_type) and the value indicative of a temporal layer (temporal_num) of a picture represented by the table entry, the table including at least a first entry and a second entry, the first entry associated with a picture picA and including a value primary_pic_type_A and a value temporal_num_A, the second entry associated with a picture picB and including a value primary_pic_type_B and a value temporal_num_B, primary_pic_type_A being different from primary_pic_type_B, picB can depend on picA only when temporal_num_A is less than or equal to temporal_num_B,

encoding the SEI messages into a coded video bitstream complying with HEVC; and

encoding at least one set of pictures according to the coding structure into the coded video bistream, the set of pictures including at least one first coded picture of a first picture type other than Independent Decoder Refresh (IDR) picture.

2. The method of claim 1 , the pattern description further including at least one of:

a number of patterns between two IDR/I pictures (num_sop_in_gop);

a flag indicating a coded picture is used as a reference picture (ref_flag);

a value indicative of a display order for a picture (display_num);

a value indicative of an average frame rate (average_frame_rate); and

a value indicative of an average bit rate (average_bit_trate).

3. A method of operation comprising:

at an encoder,

determining a coding structure comprising, for each of num_pictures_in_sop_minus — 1+1 coded pictures, a picture type (primary_pic_type), and a value indicative of a temporal layer of the picture (temporal_num) num_pictures_in_sop_minus 1 having a value larger than 0;

encoding, in a Supplementary Enhancement Information (SEI) message, a value indicative of a number of pictures in a pattern (num_pictures_in_sop_minus — 1);

encoding, in the SEI message, a pattern description indicative of at least a prediction structure of a plurality of coded pictures, the pattern description comprising a table of num_pictures_in_sop_minus — 1+1 entries representing the coding structure, each entry comprising the picture type (primary_pic_type) and the value indicative of a temporal layer (temporal_num) of a picture represented by the table entry, the table including at least a first entry and a second entry, the first entry associated with a picture picA and including a value primary_pic_type_A and a value temporal_num_A, the second entry associated with a picture picB and including a value primary_pic_type_B and a value temporal_num_B, primary_pic_type_A being different from primary_pic_type_B, picB can depend on picA only when temporal_num_A is less than or equal to temporal_num_B,

encoding the SEI message into a coded video bitstream complying with HEVC, and

encoding at least one set of pictures according to the coding structure into the coded video bistream, the set of pictures including at least one first coded picture of a first picture type other than Independent Decoder Refresh (IDR) picture; and

at a Media Aware Network Element connected to the encoder over a network, intercepting and decoding the pattern description.

4. The method of claim 3 , further comprising:

receiving at least one picture, and

based on the received and decoding pattern description, at least one of: discarding and transrating the picture.

5. A method for video decoding in a decoder comprising:

decoding, from a coded video bitstream complying with HEVC, a first coded picture of a first picture type other than Independent Decoder Refresh (IDR) picture, the first coded picture including a Supplementary Enhancement Information (SEI) message comprising a pattern description indicative of at least a prediction structure of a plurality of coded pictures including the first coded picture, the pattern description comprising:

at least one value num_pictures_in_sop_minus — 1 indicative of the number of coded pictures represented in the pattern description, num_pictures_in_sop_minus — 1 having a value larger than 0 , and

a table of num_pictures_in_sop_minus — 1+1 entries, each entry comprising a picture type (primary_pic_type), and a value indicative of a temporal layer (temporal_num) of a picture represented by the table entry, the table including at least a first entry and a second entry, the first entry associated with a picture picA and including a value primary_pic_type_A and a value temporal_num_A, the second entry associated with a picB and including a value primary_pic_type_B and a value temporal_num_B, primary_pic_type_A being different from primary_pic_type_B, picB can depend on picA only when temporal_num_A is less than or equal to temporal_num_B; and

decoding at least one n-th picture, where n is between 1 and num_pictures_in_sop_minus — 1, the n-th picture being n−1 pictures in the future of the first picture, and the n-th picture having

a primary picture type and a temporal layer the same as the values primary_pic_type and temporal_num, respectively, in the n-th entry of the table.

6. The method of claim 5 , further comprising:

decoding in parallel at least two of the num_pictures_in_sop_minus — 1 pictures based on independency of the two pictures, the independency of the two coded pictures being derived from the decoded pattern description, and the two coded pictures being predictively coded.

7. A method for video coding in an encoder, comprising:

determining a coding structure comprising, for each of num_pictures_in_sop_minus — 1+1 coded pictures, a picture type (primary_pic_type), and a value indicative of a temporal layer of the picture (temporal_num) num_pictures_in_sop_minus — 1 having a value larger than 0;

encoding, in a parameter set, a value indicative of a number of pictures in a pattern (num_pictures_in_sop_minus — 1);

encoding, in the parameter set, a pattern description indicative of at least a prediction structure of plurality of coded pictures, the pattern description comprising a table of num_pictures_in_sop_minus — 1+1 entries representing the coding structure, each entry comprising the picture type (primary_pic_type) and the value indicative of a temporal layer (temporal_num)of a picture represented by the table entry, the table including at least a first entry and a second entry, the first entry associated with a picture picA and including a value primary_pic_type_A and a value temporal_num_A, the second entry associated with a picture picB and including a value primary_pic_type_B and a value temporal_num_B, primary_pic_type_A being different from primary_pic_type_B, picB can depend on picA only when temporal_num_A is less than or equal to temporal_num_B,

encoding the SEI message into a coded video bitstream complying with HEVC, and

encoding at least one set of pictures according to the coding structure, into the coded video bistream, the set of pictures including at least one first coded picture of a first picture type other than Independent Decoder Refresh (IDR) picture.

8. The method of claim 7 , the pattern description further including at least one of:

a number of patterns between two IDR/I pictures (num_sop_in_gop);

a flag indicating a coded picture is used as a reference picture (ref_flag);

a value indicative of a display order for a picture (display_num);

a value indicative of an average frame rate (average_frame_rate); and

a value indicative of an average bit rate (average_bit_trate).

9. A method of operation comprising:

at an encoder,

determining a coding structure comprising, for each of num_pictures_in_sop_minus — 1+1 coded pictures, a picture type (primary_pic_type), and a value indicative of a temporal layer of the picture (temporal_num) num_pictures_in_sop_minus — 1 having a value larger than 0;

encoding, in a parameter set, a value indicative of a number of pictures in a pattern (num_pictures_in_sop_minus — 1);

encoding, in the parameter set, a pattern description indicative of at least a prediction structure of a plurality of coded pictures, the pattern description comprising a table of num_pictures_in_sop_minus — 1+1 entries representing the coding structure, each entry comprising the picture type (primary_pic_type) and the value indicative of a temporal layer (temporal_num) of a picture represented by the table entry, the table including at least a first entry and a second entry, the first entry associated with a picture picA and including a value primary_pic_type_A and a value temporal_num_A, the second entry associated with a picture picB and including a value primary_pic_type_B and a value temporal_num_B, primary_pic_type_A being different from primary_pic_type_B, picB can depend on picA only when temporal_num_A is less than or equal to temporal_num_B,

encoding the SEI message into a coded video bitstream complying with HEVC, and

encoding at least one set of pictures according to the coding structure into the coded video bistream, set of pictures including at least one first coded picture of a first picture type other than Independent Decoder Refresh (IDR) picture; and

at a Media Aware Network Element connected to the encoder over a network, intercepting and decoding the pattern description.

10. The method of claim 9 , further comprising:

receiving at least one picture, and

based on the received and decoding pattern description, at least one of: discarding and transrating the picture.

11. A method for video decoding in a decoder comprising:

decoding, from a coded video bitstream complying with HEVC, a first coded picture of a first picture type other than Independent Decoder Refresh (IDR) picture, the first coded picture including a Supplementary Enhancement Information (SEI) message comprising a pattern description indicative of at least a prediction structure of a plurality of coded pictures including the first coded picture, the pattern description comprising:

at least one value num_pictures_in_sop_minus — 1 indicative of the number of coded pictures represented in the pattern description, num_pictures_in_sop_minus — 1 having a value larger than 0 , and

a table of num_pictures_in_sop_minus — 1+1 entries each entry comprising a picture type (primary_pic_type), and a value indicative of a temporal layer (temporal_num) of a picture represented by the table entry, the table including at least a first entry and a second entry, the first entry associated with a picture picA and including a value primary_pic_type_A and a value temporal_num_A, the second entry associated with a picture picB and including a value primary_pic_type_B and a value temporal_num_B, primary_pic_type_A being different from primary_pic_type_B, picB can depend on picA only when temporal_num_A is less than or equal to temporal_num_B; and

decoding at least one n-th picture, where n is between 1 and num_pictures_in_sop_minus — 1, the n-th picture being n−1 pictures in the future of the first picture, and the n-th picture having

a primary picture type and a temporal layer of the n-th decoded coded picture is the same as the values primary_pic_type and temporal_num, respectively, in the n-th entry of the table.

12. The method of claim 11 , further comprising:

decoding in parallel at least two of the num_pictures_in_sop_minus — 1 pictures based on independency of the two pictures, the independency of the two coded pictures being derived from the decoded pattern description.

13. A non-transitory computer readable medium comprising executable instructions to direct a processor to perform the methods of one of claims 1 , 2 , 3 , 4 , 5 , 6 , or 7 - 12 .

Assignments (4)
SECURITY INTEREST Recorded Aug 7, 2018
From: VIDYO, INC.
To: ESW HOLDINGS, INC.
Reel/Frame 046737/0421 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2018
From: VENTURE LENDING AND LEASING VI, INC.
To: VIDYO, INC.
Reel/Frame 046634/0325 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: VIDYO, INC.
To: VENTURE LENDING & LEASING VI, INC.
Reel/Frame 029291/0306 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2012
From: HONG, DANNY; BOYCE, JILL
To: VIDYO, INC.
Reel/Frame 027788/0948 →
Continuity (3)
Provisional Application 61432860 · Jan 14, 2011
Provisional Application 61432842 · Jan 14, 2011
Related Publication 20120183060A1 · Jul 19, 2012