Method for signaling mixed NAL unit type and subpicture partitioning coded video stream
A method, computer program, and computer system is provided for coding video data. Video data including one or more subpictures is received. A network abstraction layer (NAL) unit type associated with each of the one or more subpictures is identified based on checking a flag corresponding to mixed NAL units in the one or more subpictures. The video data is decoded based on the identified NAL unit types.
1. A method for decoding video data, executable by a processor, comprising:
receiving video data comprising one or more pictures;
determining whether motion vector scaling is disabled across multiple pictures;
based on determining that motion vector scaling is not disabled, determining a motion vector scaling process for a current picture based on at least one of an access unit associated with the current picture or a picture order count (POC) associated with the current picture; and
decoding the video data based on the determined motion vector scaling process and whether an vps_poc_cycle_au syntax is signaled with the video data and indicating a poc_cycle_au used for all of the multiple pictures,
wherein a first value of the vps_poc_cycle_au syntax indicates that the POC value increases uniformly per access unit (AU), a slice_poc_cycle_au syntax is not explicitly signaled, and a value of an access unit count (AUC) for each AU is calculated by dividing a value of the POC by the vps_poc_cycle_au syntax, and
wherein a second value of the vps_poc_cycle_au syntax indicates that the POC value does not increase uniformly per AU, and in a case of the second value, a vps_access_unit_cnt syntax is not signaled with the video data, a slice_access_unit_cnt syntax is signaled in a slice header for each slice or picture, and the value of the AUC is calculated by dividing a value of the POC by a slice_poc_cycle_au syntax.
2. The method of claim 1 , wherein determining whether motion vector scaling is disabled comprises determining that motion vector scaling is disabled across multiple pictures associated with a same access unit.
3. The method of claim 2 , wherein based on determining that motion vector scaling is disabled across multiple pictures associated with the same access unit, the method further comprises:
determining that a reference picture associated with the current picture is associated with the same access unit as the current picture; and
based on determining that the reference picture associated with the current picture is associated with the same access unit as the current picture, disabling the motion vector scaling process for temporal motion vector prediction for the current picture.
4. The method of claim 3 , wherein disabling that the motion vector scaling process for the temporal motion vector prediction for the current picture comprises a motion vector scaling function for the current picture returning a value of one.
5. The method of claim 1 , wherein motion vector scaling is disabled based on determining that a spatial resolution of a reference picture is different from a spatial resolution of the current picture.
6. The method of claim 5 , wherein based on determining that motion vector scaling is not disabled, the motion vector scaling process is based on a picture order count difference between the reference picture and the current picture and a ratio of the spatial resolution of the reference picture to the spatial resolution of the current picture.
7. The method of claim 1 , wherein determining the motion vector scaling process for the current picture comprises:
based on determining that a poc_cycle_au associated with the access unit associated with the current picture has a non-uniform value, the motion vector scaling process for the current picture is based on a difference in the access unit associated the current picture and an access unit associated with a reference picture; and
based on determining that the poc_cycle_au associated with the access unit associated with the current picture has a uniform value, the motion vector scaling process for the current picture is based on a picture order count difference between the reference picture and the current picture.
8. An apparatus for decoding video data, the apparatus comprising:
at least one memory configured to store program code; and
at least one processor configured to read the program code and operate as instructed by the program code, the program code comprising:
receiving code configured to cause the at least one processor to receive video data comprising one or more pictures;
first determining code configured to cause the at least one processor to determine whether motion vector scaling is disabled across multiple pictures;
second determining code configured to cause the at least one processor to determine, based on determining that motion vector scaling is not disabled, a motion vector scaling process for a current picture based on at least one of an access unit associated with the current picture or a picture order count associated with the current picture; and
decoding code configured to cause the at least one processor to decode the video data based on the determined motion vector scaling process and whether an vps_poc_cycle_au syntax is signaled with the video data and indicating a poc_cycle_au used for all of the multiple pictures,
wherein a first value of the vps_poc_cycle_au syntax indicates that the POC value increases uniformly per access unit (AU), a slice_poc_cycle_au syntax is not explicitly signaled, and a value of an access unit count (AUC) for each AU is calculated by dividing a value of the POC by the vps_poc_cycle_au syntax, and
wherein a second value of the vps_poc_cycle_au syntax indicates that the POC value does not increase uniformly per AU, and in a case of the second value, a vps_access_unit_cnt syntax is not signaled with the video data, a slice_access_unit_cnt syntax is signaled in a slice header for each slice or picture, and the value of the AUC is calculated by dividing a value of the POC by a slice_poc_cycle_au syntax.
9. The apparatus of claim 8 , determining whether motion vector scaling is disabled comprises determining that motion vector scaling is disabled across multiple pictures associated with a same access unit.
10. The apparatus of claim 9 , wherein based on determining that motion vector scaling is disabled across multiple pictures associated with the same access unit, the program code further comprises:
third determining code configured to cause the at least one processor to determine that a reference picture associated with the current picture is associated with the same access unit as the current picture; and
disabling code configured to cause the at least one processor to disable, based on determining that the reference picture associated with the current picture is associated with the same access unit as the current picture, the motion vector scaling process for temporal motion vector prediction for the current picture.
11. The apparatus of claim 10 , wherein the disabling code comprises a motion vector scaling function for the current picture returning a value of one.
12. The apparatus of claim 8 , wherein motion vector scaling is disabled based on determining that a spatial resolution of a reference picture is different from a spatial resolution of the current picture.
13. The apparatus of claim 12 , wherein based on determining that motion vector scaling is not disabled, the motion vector scaling process is based on a picture order count difference between the reference picture and the current picture and a ratio of the spatial resolution of the reference picture to the spatial resolution of the current picture.
14. The apparatus of claim 8 , wherein the second determining code further comprises:
based on determining that a poc_cycle_au associated with the access unit associated with the current picture has a non-uniform value, the motion vector scaling process for the current picture is based on a difference in the access unit associated the current picture and an access unit associated with a reference picture; and
based on determining that the poc_cycle_au associated with the access unit associated with the current picture has a uniform value, the motion vector scaling process for the current picture is based on a picture order count difference between the reference picture and the current picture.
15. A non-transitory computer readable medium storing instructions that, when executed by at least one processor for decoding video data, cause the at least one processor to:
receive video data comprising one or more pictures;
determine whether motion vector scaling is disabled across multiple pictures;
based on determining that motion vector scaling is not disabled, determine a motion vector scaling process for a current picture based on at least one of an access unit associated with the current picture or a picture order count associated with the current picture; and
decode the video data based on the determined motion vector scaling process and whether an vps_poc_cycle_au syntax is signaled with the video data and indicating a poc_cycle_au used for all of the multiple pictures,
wherein a first value of the vps_poc_cycle_au syntax indicates that the POC value increases uniformly per access unit (AU), a slice_poc_cycle_au syntax is not explicitly signaled, and a value of an access unit count (AUC) for each AU is calculated by dividing a value of the POC by the vps_poc_cycle_au syntax, and
wherein a second value of the vps_poc_cycle_au syntax indicates that the POC value does not increase uniformly per AU, and in a case of the second value, a vps_access_unit_cnt syntax is not signaled with the video data, a slice_access_unit_cnt syntax is signaled in a slice header for each slice or picture, and the value of the AUC is calculated by dividing a value of the POC by a slice_poc_cycle_au syntax.
16. The non-transitory computer readable medium of claim 15 , wherein determining whether motion vector scaling is disabled comprises determining that motion vector scaling is disabled across multiple pictures associated with a same access unit.
17. The non-transitory computer readable medium of claim 16 , wherein based on determining that motion vector scaling is disabled across multiple pictures associated with the same access unit, the instructions further comprise:
determining that a reference picture associated with the current picture is associated with the same access unit as the current picture; and
based on determining that the reference picture associated with the current picture is associated with the same access unit as the current picture, disabling the motion vector scaling process for temporal motion vector prediction for the current picture.
18. The non-transitory computer readable medium of claim 15 , wherein motion vector scaling is disabled based on determining that a spatial resolution of a reference picture is different from a spatial resolution of the current picture.
19. The non-transitory computer readable medium of claim 18 , wherein based on determining that motion vector scaling is not disabled, the motion vector scaling process is based on a picture order count difference between the reference picture and the current picture and a ratio of the spatial resolution of the reference picture to the spatial resolution of the current picture.
20. The non-transitory computer readable medium of claim 15 , wherein determining the motion vector scaling process for the current picture comprises:
based on determining that a poc_cycle_au associated with the access unit associated with the current picture has a non-uniform value, the motion vector scaling process for the current picture is based on a difference in the access unit associated the current picture and an access unit associated with a reference picture; and
based on determining that the poc_cycle_au associated with the access unit associated with the current picture has a uniform value, the motion vector scaling process for the current picture is based on a picture order count difference between the reference picture and the current picture.