Video coding with enhanced support for stream adaptation and splicing
Various techniques for enhanced support of stream adaptation and splicing based on clean random access (CRA) pictures are described. Instead of using a flag in the slice header to indicate that a broken link picture is present, a distinct network abstraction layer (NAL) unit type can be used to indicate the presence of a broken link picture. In some implementations, a first distinct NAL unit type may be used to indicate the presence of a broken link picture with leading pictures, while a second distinct NAL unit type indicates the presence of a broken link picture without leading pictures. In some implementations, a third distinct NAL unit type may be used to indicate the presence of a broken link picture with decodable leading pictures.
1. A method for processing video data, the method comprising:
receiving a first network abstraction layer (NAL) unit comprising a portion of the video data, wherein the first NAL unit comprises a header containing a NAL unit type syntax element for the first NAL unit, wherein a value for the NAL unit type syntax element specifies a type of raw byte sequence payload (RBSP) data structure contained in the first NAL unit;
determining the value for the NAL unit type syntax element for the first NAL unit, wherein the value for the NAL unit type syntax element being equal to a first value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture without leading pictures, wherein the value for the NAL unit type syntax element being equal to a second value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with leading pictures, and wherein the value for the NAL unit type syntax element being equal to a third value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with decodable leading pictures;
based on the value for the NAL unit type syntax element for the first NAL unit, determining whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures; and
outputting the video data based on the determination of whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
2. The method of claim 1 , further comprising:
determining the value for the NAL unit type syntax element for the first NAL unit without performing entropy decoding.
3. The method of claim 1 , further comprising:
in response to determining that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures, activating one or more new parameter sets for decoding the video data.
4. The method of claim 3 , wherein the one or more new parameter sets comprise one or more of an adaptation parameter set (APS), a sequence parameter set (SPS), or a picture parameter set (PPS).
5. The method of claim 3 , wherein an identification (ID) for one of the one or more parameter sets is the same as an ID of an active parameter set for a previously decoded picture.
6. The method of claim 1 , wherein the method is performed by a video decoder, and wherein outputting the video data comprises outputting the video data to a display device.
7. The method of claim 1 , wherein the method is performed by a media aware network element (MANE), and wherein outputting the video data comprises routing a portion of the video data comprising the first NAL unit.
8. A method for processing video data, the method comprising:
receiving a network abstraction layer (NAL) unit comprising a portion of the video data;
determining that a raw byte sequence payload (RBSP) data structure contained in the NAL unit includes slice data for a broken link picture;
determining a value for a NAL unit type syntax element, wherein the value for the NAL unit type syntax element specifies a type of RBSP data structure contained in the NAL unit;
setting the NAL unit type syntax element in a header of the NAL unit to a value that indicates that the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture, wherein a first value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture without leading pictures, wherein a second value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with leading pictures, and wherein a third value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with decodable leading pictures; and
outputting the video data based on the determination of whether the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
9. A device for processing video data, the device comprising:
a memory for storing video data; and
one or more processors configured to:
receive a first network abstraction layer (NAL) unit comprising a portion of the video data, wherein the first NAL unit comprises a header containing a NAL unit type syntax element for the first NAL unit, wherein a value for the NAL unit type syntax element specifies a type of raw byte sequence payload (RBSP) data structure contained in the first NAL unit;
determine the value for the NAL unit type syntax element for the first NAL unit, wherein the value for the NAL unit type syntax element being equal to a first value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture without leading pictures, wherein the value for the NAL unit type syntax element being equal to a second value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with leading pictures, and wherein the value for the NAL unit type syntax element being equal to a third value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with decodable leading pictures;
based on the value for the NAL unit type syntax element for the first NAL unit, determine whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures; and
output the video data based on the determination of whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
10. The device of claim 9 , wherein the one or more processors are further configured to determine the value for the NAL unit type syntax element for the first NAL unit without performing entropy decoding.
11. The device of claim 9 , wherein the one or more processors are further configured to:
in response to determining that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures, activate one or more new parameter sets for coding the video data.
12. The device of claim 11 , wherein the one or more new parameter sets comprise one or more of an adaptation parameter set (APS), a sequence parameter set (SPS), or a picture parameter set (PPS).
13. The device of claim 11 , wherein an identification (ID) for one of the one or more parameter sets is the same as an ID of an active parameter set for a previously decoded picture.
14. The device of claim 9 , wherein the device comprises a video decoder configured to output the video data to a display device.
15. The device of claim 9 , wherein the device comprises a media aware network element (MANE), wherein to output the video data, the MANE is configured to rout a portion of the video data comprising the first NAL unit.
16. The device of claim 9 , wherein the device comprises at least one of an integrated circuit, a microprocessor, a wireless communication device, a desktop computer, a notebook computer, a laptop computer, a tablet computer, a set-top box, a telephone handset, a smart phone, a smart pad, a television, a camera, a display device, a digital media player, a video gaming console, or a video streaming device.
17. A device for processing video data, the device comprising:
a memory for storing video data; and
one or more processors configured to:
receive a network abstraction layer (NAL) unit comprising a portion of the video data;
determine that a raw byte sequence payload (RBSP) data structure contained in the NAL unit includes slice data for a broken link picture;
determine a value for a NAL unit type syntax element, wherein the value for the NAL unit type syntax element specifies a type of RBSP data structure contained in the NAL unit;
set the NAL unit type syntax element in a header of the NAL unit to a value that indicates that the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture, wherein a first value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture without leading pictures, wherein a second value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with leading pictures, and wherein a third value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with decodable leading pictures; and
output the video data based on the determination of whether the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
18. A device for processing video data, the device comprising:
means for receiving a first network abstraction layer (NAL) unit comprising a portion of the video data, wherein the first NAL unit comprises a header containing a NAL unit type syntax element for the first NAL unit, wherein a value for the NAL unit type syntax element specifies a type of raw byte sequence payload (RBSP) data structure contained in the first NAL unit;
means for determining the value for the NAL unit type syntax element for the first NAL unit, wherein the value for the NAL unit type syntax element being equal to a first value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture without leading pictures, wherein the value for the NAL unit type syntax element being equal to a second value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with leading pictures, and wherein the value for the NAL unit type syntax element being equal to a third value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with decodable leading pictures;
means for determining whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures based on the value for the NAL unit type syntax element for the first NAL unit; and
means for outputting the video data based on the determination of whether the of RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
19. A device for processing video data, the device comprising:
means for receiving a network abstraction layer (NAL) unit comprising a portion of the video data;
means for determining that a raw byte sequence payload (RBSP) data structure contained in the NAL unit includes slice data for a broken link picture;
means for determining a value for a NAL unit type syntax element, wherein the value for the NAL unit type syntax element specifies a type of RBSP data structure contained in the NAL unit;
means for setting the NAL unit type syntax element in a header of the NAL unit to a value that indicates that the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture, wherein a first value for the indication of the NAL unit type syntax element indicates that payload data of the RBSP data structure contained in the NAL unit includes slice data for a broken link picture without leading pictures, wherein a second value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with leading pictures, and wherein a third value for of the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with decodable leading pictures; and
means for outputting the video data based on the determination of whether the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
20. A non-transitory computer-readable storage medium storing instructions that when executed by one or more processors cause the one or more processors to:
receive a first network abstraction layer (NAL) unit comprising a portion of the video data, wherein the first NAL unit comprises a header containing a NAL unit type syntax element for the first NAL unit, wherein a value for the NAL unit type syntax element specifies a type of raw byte sequence payload (RBSP) data structure contained in the first NAL unit;
determine the value for the NAL unit type syntax element for the first NAL unit, wherein the value for the NAL unit type syntax element being equal to a first value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture without leading pictures, wherein the value for the NAL unit type syntax element being equal to a second value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with leading pictures, and wherein the value for the NAL unit type syntax element being equal to a third value indicates that the RBSP data structure contained in the first NAL unit includes slice data for a broken link picture with decodable leading pictures;
based on the value for the NAL unit type syntax element for the first NAL unit, determine whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures; and
output the video data based on the determination of whether the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
21. A non-transitory computer-readable storage medium storing instructions that when executed by one or more processors cause the one or more processors to:
receive a network abstraction layer (NAL) unit comprising a portion of the video data;
determine that a raw byte sequence payload (RBSP) data structure contained in the NAL unit includes slice data for a broken link picture;
determine a value for a NAL unit type syntax element, wherein the value for the NAL unit type syntax element specifies a type of RBSP data structure contained in the NAL unit;
set the NAL unit type syntax element in a header of the NAL unit to a value that indicates that the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture, wherein a first value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture without leading pictures, wherein a second value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with leading pictures, and wherein a third value for the NAL unit type syntax element indicates that the RBSP data structure contained in the NAL unit includes slice data for a broken link picture with decodable leading pictures; and
output the video data based on the determination of whether the RBSP data structure contained in the NAL unit includes the slice data for the broken link picture without leading pictures, the slice data for the broken link picture with leading pictures, or the slice data for the broken link picture with decodable leading pictures.
22. The device of claim 9 , further comprising:
a display configured to display decoded video data comprising the broken link picture.
23. The device of claim 18 , further comprising:
means for displaying decoded video data comprising the broken link picture.
24. The device of claim 18 , wherein the device comprises at least one of an integrated circuit, a microprocessor, a wireless communication device, a desktop computer, a notebook computer, a laptop computer, a tablet computer, a set-top box, a telephone handset, a smart phone, a smart pad, a television, a camera, a display device, a digital media player, a video gaming console, or a video streaming device.
25. The method of claim 1 , further comprising:
in response to determining that the NAL unit type for the first NAL unit indicates that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with decodable leading pictures, receiving one or more additional NAL units comprising the decodable leading pictures; and
decoding the one or more additional NAL units comprising the decodable leading pictures.
26. The method of claim 1 , further comprising:
in response to determining that the NAL unit type for the first NAL unit indicates that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with the leading pictures, receiving one or more additional NAL units comprising non-decodable leading pictures; and
discarding the one or more additional NAL units comprising the non-decodable leading pictures.
27. The method of claim 26 , further comprising:
in response to determining that the NAL unit type for the first NAL unit indicates that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with the leading pictures, receiving one or more additional NAL units comprising decodable leading pictures; and
decoding the decodable leading pictures.
28. The method of claim 8 , the method further comprising:
in response to determining that the broken link picture has associated decodable leading pictures and associated non-decodable leading pictures, setting the indication of the NAL unit type to the second value to indicate that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with leading pictures.
29. The method of claim 8 , the method further comprising:
in response to determining that the broken link picture has associated leading pictures and all of the associated leading pictures are decodable leading pictures, setting the indication of the NAL unit type to the third value to indicate that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with decodable leading pictures.
30. The device of claim 9 , wherein the one or more processors are further configured to:
receive one or more additional NAL units comprising the decodable leading pictures in response to determining that the NAL unit type for the first NAL unit indicates that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with decodable leading pictures; and
decode the one or more additional NAL units comprising the decodable leading pictures.
31. The device of claim 9 , wherein the one or more processors are further configured to:
receive one or more additional NAL units comprising non-decodable leading pictures in response to determining that the NAL unit type for the first NAL unit indicates that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with leading pictures; and
discard the one or more additional NAL units comprising the non-decodable leading pictures.
32. The device of claim 31 , wherein the one or more processors are further configured to:
receive one or more additional NAL units comprising decodable leading pictures in response to determining that the NAL unit type for the first NAL unit indicates that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with the leading pictures; and
decode the decodable leading pictures.
33. The device of claim 17 , wherein the one or more processors are further configured to:
set the indication of the NAL unit type to the second value to indicate that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with leading pictures in response to determining that the broken link picture has associated decodable leading pictures and associated non-decodable leading pictures.
34. The device of claim 17 , wherein the one or more processors are further configured to:
set the indication of the NAL unit type to the third value to indicate that the RBSP data structure contained in the first NAL unit includes the slice data for the broken link picture with decodable leading pictures in response to determining that the broken link picture has associated leading pictures and all of the associated leading pictures are decodable leading pictures.