The type of reference picture in the reference picture list

By limiting the reference image list in the video decoder, the problem of difficult optimization of encoding errors and bandwidth requirements in the prior art is solved, and more efficient video encoding and better user experience is achieved.

JP7658922B2Active Publication Date: 2025-04-08HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021577989
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-07-03
Filing Date
2020-07-02
Publication Date
2025-04-08
Estimated Expiration
2040-07-02

AI Technical Summary

Technical Problem

When existing video encoding technologies limit reference image lists, it is difficult to effectively reduce encoding errors and bandwidth requirements, especially in communication networks with limited bandwidth.

Method used

Optimize the construction of reference image list by limiting the reference image list in the video decoder, ensuring that specific types of images (such as clean random access images, trailing images, and random access readable images) do not reference leading internal random access point images.

Benefits of technology

This method effectively reduces encoding errors and bandwidth requirements, and improves the efficiency and user experience of video encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007658922000006
    Figure 0007658922000006
  • Figure 0007658922000007
    Figure 0007658922000007
  • Figure 0007658922000008
    Figure 0007658922000008
Patent Text Reader

Abstract

A decoding method includes receiving a coded video bitstream including a current picture; obtaining a first reference picture list and a second reference picture list for each slice of the current picture; determining that the current picture is a clean random access (CRA) picture, where the CRA picture indicates that the picture shall not be referenced, in output order or decoding order, by an entry in the first reference picture list or the second reference picture list that precedes any Intra Random Access Point (IRAP) picture that precedes it in the decoding order; and decoding each slice of the CRA picture based on one or both of the first reference picture list and the second reference picture list.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This patent application claims the benefit of U.S. Provisional Patent Application No. 62 / 870,588, entitled “Types of Reference Pictures in a Reference Picture List,” filed on July 3, 2019 by Ye-Kui Wang et al., which is incorporated herein by reference.

[0002] FIELD This disclosure relates generally to reference picture management in video coding, and more specifically to restricting reference picture lists from including certain types of reference pictures. [Background technology]

[0003] The amount of video data required to depict a relatively short video is substantial, which can create difficulties when the data is streamed or otherwise communicated across a communications network with limited bandwidth capacity. As such, video data is typically compressed before being communicated across modern telecommunications networks. If the video is stored on a storage device, the size of the video can also be an issue since memory resources may be limited. Video compression devices often use software and / or hardware at the source to encode the video data before transmission or storage, thereby reducing the amount of data required to represent a digital video image. The compressed data is then received at the destination by a video decompressor that decodes the video data. With limited network resources and an ever-increasing demand for higher video quality, improved compression and decompression techniques that improve compression ratios with little sacrifice in image quality are desirable. Summary of the Invention [Means for solving the problem]

[0004] A first aspect relates to a method of decoding implemented by a video decoder, the method including: receiving, by the video decoder, a coded video bitstream including a current picture; obtaining, by the video decoder, a first reference picture list and a second reference picture list for each slice of the current picture; determining, by the video decoder, that the current picture is a clean random access (CRA) picture, the CRA picture representing a picture shall not be referenced, in output order or decoding order, by an entry in the first reference picture list or the second reference picture list that precedes any Intra Random Access Point (IRAP) picture preceding it in the decoding order; and decoding, by the video decoder, each slice of the CRA picture based on one or both of the first reference picture list and the second reference picture list.

[0005] The method provides a technique for restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and / or the amount of bandwidth and network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0006] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture precedes the CRA picture in the output order or the decoding order.

[0007] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture starts a coded video sequence (CVS) that includes the CRA picture.

[0008] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the CRA picture is decoded using intra prediction.

[0009] Optionally, in any of the aforementioned aspects, another implementation of an aspect provides that one or more pictures following the CRA picture in the decoding order are decoded using inter prediction.

[0010] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the first reference picture list is specified in RefPicList[0] and the second reference picture list is specified in RefPicList[1].

[0011] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the method further includes displaying an image generated based on the CRA picture on a display of the video decoder.

[0012] A second aspect relates to a method of encoding performed by a video encoder, the method including: obtaining, by the video encoder, a first reference picture list and a second reference picture list, if a current picture includes a clean random access (CRA) picture, where no picture is referenced in output order or decoding order by an entry in the first reference picture list or the second reference picture list that precedes any Intra Random Access Point (IRAP) picture preceding it in the decoding order; encoding, by the video encoder, the CRA picture and one or both of the first and second reference picture lists into a video bitstream; and storing, by the video encoder, the video bitstream pending transmission to a video decoder.

[0013] The method provides a technique for restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0014] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture precedes the CRA picture in the output order or the decoding order.

[0015] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture starts a coded video sequence (CVS) that includes the CRA picture.

[0016] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the CRA picture is encoded using intra prediction.

[0017] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the method further includes encoding one or more pictures that follow the CRA picture in the decoding order using inter prediction.

[0018] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the first reference picture list is specified in RefPicList[0] and the second reference picture list is specified in RefPicList[1].

[0019] Optionally, in any of the preceding aspects, another implementation of this aspect provides further comprising transmitting the video bitstream to the video decoder.

[0020] A third aspect relates to a decoding device, the decoding device including: a receiver configured to receive a coded video bitstream including a current picture, a memory coupled to the receiver, the memory storing instructions, and a processor coupled to the memory, the processor configured to execute the instructions to cause the decoding device to obtain a first reference picture list and a second reference picture list for each slice of the current picture, determine that the current picture is a clean random access (CRA) picture, the CRA picture indicating that a picture shall not be referenced, in output order or decoding order, by an entry in the first reference picture list or the second reference picture list that precedes any Intra Random Access Point (IRAP) picture preceding it in the decoding order, and decode each slice of the CRA picture based on one or both of the first reference picture list and the second reference picture list.

[0021] The decoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0022] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture precedes the CRA picture in the output order or the decoding order.

[0023] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture starts a coded video sequence (CVS) that includes the CRA picture, the CRA picture is decoded using intra prediction, and one or more pictures that follow the CRA picture in the decoding order are decoded using inter prediction.

[0024] Optionally, in any of the preceding aspects, another implementation of this aspect provides further including a display configured to display an image based on the decoded CRA picture.

[0025] A fourth aspect relates to an encoding device, the encoding device comprising: a memory containing instructions; a processor coupled to the memory, the processor configured to execute the instructions to cause the encoding apparatus to: obtain a first reference picture list and a second reference picture list if a current picture includes a clean random access (CRA) picture, where no picture is referenced in output order or decoding order by an entry in the first reference picture list or the second reference picture list that precedes any Intra Random Access Point (IRAP) picture that precedes it in the decoding order; and encode the CRA picture and one or both of the first and second reference picture lists into a video bitstream. and a transmitter coupled to the processor, the transmitter configured to transmit the video bitstream to a video decoder.

[0026] The encoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this manner, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0027] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture precedes the CRA picture in the output order or the decoding order.

[0028] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the preceding IRAP picture precedes the CRA picture in the output order or the decoding order, the CRA picture is encoded using intra prediction, and one or more pictures following the CRA picture in the decoding order are decoded using inter prediction.

[0029] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the memory stores the video bitstream before the transmitter transmits the bitstream to the video decoder.

[0030] A fifth aspect relates to a method of decoding implemented by a video decoder, the method including: receiving, by the video decoder, a coded video bitstream including a current picture; obtaining, by the video decoder, a first reference picture list and a second reference picture list for each slice of the current picture; determining, by the video decoder, that the current picture is a trailing picture that follows, in both decoding order and output order, one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture, the trailing picture indicating that a picture shall not be referenced by an entry in the first reference picture list or the second reference picture list generated by a decoding process for generating unavailable reference pictures for the IRAP picture associated with the current picture; and decoding, by the video decoder, each slice of the trailing picture based on one or both of the first reference picture list and the second reference picture list.

[0031] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating an unavailable reference picture is invoked once per coded picture for a clean random access (CRA) picture with NoOutPutBeforeRecoveryFlag equal to 1 or a gradual decoding refresh (GDR) picture with NoOutPutBeforeRecoveryFlag equal to 1.

[0032] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0033] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture is decoded using intra prediction, and the trailing picture and the one or more leading pictures are decoded using inter prediction.

[0034] A sixth aspect relates to a method of encoding implemented by a video encoder, the method including: obtaining, by the video encoder, a first reference picture list and a second reference picture list when a current picture is a trailing picture following, in both decoding order and output order, one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture, where no picture is referenced by an entry in the first reference picture list or the second reference picture list generated by a decoding process for generating an unavailable reference picture for the IRAP picture associated with the current picture; encoding, by the video encoder, the trailing picture and one or both of the first and second reference picture lists into a video bitstream; and storing, by the video encoder, the video bitstream pending transmission to a video decoder.

[0035] The method provides a technique for restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0036] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0037] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0038] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture is decoded using intra prediction, and the trailing picture and the one or more leading pictures are decoded using inter prediction.

[0039] A seventh aspect relates to a decoding device. A decoding device includes a receiver configured to receive a coded video bitstream including a current picture; a memory coupled to the receiver, the memory storing instructions; and a processor coupled to the memory, the processor configured to execute the instructions to cause the decoding device to obtain a first reference picture list and a second reference picture list for each slice of the current picture, determine that the current picture is a trailing picture that follows one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture in both decoding order and output order, where the trailing picture indicates that a picture shall not be referenced by an entry in the first reference picture list or the second reference picture list generated by a decoding process to generate an unavailable reference picture for the IRAP picture associated with the current picture, and decode each slice of the trailing picture based on one or both of the first reference picture list and the second reference picture list.

[0040] The decoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0041] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0042] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0043] Optionally, in any of the preceding aspects, providing that the same IRAP picture is decoded using intra prediction, and the trailing picture and the one or more leading pictures are decoded using inter prediction.

[0044] An eighth aspect relates to an encoding device, the encoding device including: a memory including instructions; a processor coupled to the memory, the processor configured to execute the instructions to cause the encoding device to obtain a first reference picture list and a second reference picture list when a current picture is a trailing picture following one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture in both decoding order and output order, where a picture is not referenced by an entry in the first reference picture list or the second reference picture list generated by a decoding process to generate an unavailable reference picture for the IRAP picture associated with the current picture; and encode the trailing picture and one or both of the first and second reference picture lists into a video bitstream; and a transmitter coupled to the processor, the transmitter configured to transmit the video bitstream to a video decoder.

[0045] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0046] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0047] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture is encoded into the video bitstream using intra prediction, and the trailing picture and the one or more trailing pictures are encoded using inter prediction.

[0048] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the memory stores the video bitstream before the transmitter transmits the bitstream to the video decoder.

[0049] A ninth aspect relates to a method of decoding implemented by a video decoder, the method including: receiving, by the video decoder, a coded video bitstream including a current picture; obtaining, by the video decoder, a first reference picture list and a second reference picture list for each slice of the current picture; determining, by the video decoder, that the current picture is a trailing picture that follows, in both decoding order and output order, one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture, where the trailing picture indicates that a picture shall not be referenced by an entry in the first reference picture list or the second reference picture list that precedes the same IRAP picture in the output order or the decoding order; and decoding, by the video decoder, each slice of the trailing picture based on one or both of the first reference picture list and the second reference picture list.

[0050] The method of decoding provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0051] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0052] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture is decoded using intra prediction, and the trailing picture and the one or more leading pictures are decoded using inter prediction.

[0053] A tenth aspect relates to a method of encoding implemented by a video encoder, comprising: obtaining, by the video encoder, a first reference picture list and a second reference picture list when a current picture is a trailing picture following one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture in both decoding order and output order, where no picture is referenced by an entry in the first reference picture list or the second reference picture list that precedes the same IRAP picture in the output order or the decoding order; encoding, by the video encoder, the trailing picture and one or both of the first reference picture list and the second reference picture list into the video bitstream; and storing, by the video encoder, the video bitstream pending transmission to a video decoder.

[0054] The encoding method provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0055] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0056] Optionally, in any of the preceding aspects, the same IRAP picture is encoded into the video bitstream using intra prediction, and the trailing picture and the one or more leading pictures are encoded using inter prediction.

[0057] Optionally, in any of the preceding aspects, another implementation of this aspect provides further comprising transmitting the video bitstream to the video decoder.

[0058] An eleventh aspect relates to a decoding device, comprising: a receiver configured to receive a coded video bitstream including a current picture, a memory coupled to the receiver, the memory storing instructions, and a processor coupled to the memory, the processor configured to execute the instructions to cause the decoding device to obtain a first reference picture list and a second reference picture list for each slice of the current picture, determine that the current picture is a trailing picture that follows one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture in both decoding order and output order, the trailing picture indicating that a picture shall not be referenced by an entry in the first reference picture list or the second reference picture list that precedes the same IRAP picture in the output order or the decoding order, and decode each slice of the trailing picture based on one or both of the first reference picture list and the second reference picture list.

[0059] The decoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0060] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0061] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture is decoded using intra prediction, and the trailing picture and the one or more leading pictures are decoded using inter prediction.

[0062] A twelfth aspect relates to an encoding device, the encoding device including: a memory including instructions; a processor coupled to the memory, the processor configured to execute the instructions to cause the encoding device to obtain a first reference picture list and a second reference picture list if a current picture is a trailing picture following one or more leading pictures associated with a same Intra Random Access Point (IRAP) picture in both decoding order and output order, where no picture is referenced by an entry in the first reference picture list or the second reference picture list that precedes the same IRAP picture in the output order or the decoding order; and encode the trailing picture and one or both of the first and second reference pictures into a video bitstream; and a transmitter coupled to the processor, the transmitter configured to transmit the video bitstream to a video decoder.

[0063] The encoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this manner, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0064] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture starts a coded video sequence (CVS) that includes the trailing picture and the one or more leading pictures.

[0065] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the same IRAP picture is encoded into the video bitstream using intra prediction, and the trailing picture and the one or more leading pictures are encoded using inter prediction.

[0066] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the memory stores the video bitstream before the transmitter transmits the bitstream to the video decoder.

[0067] A thirteenth aspect relates to a method of decoding, the method including: receiving, by the video decoder, a coded video bitstream including a current picture, obtaining, by the video decoder, a first reference picture list and a second reference picture list for each slice of the current picture, determining, by the video decoder, that the current picture is a Random Access Decodable Reading (RADL) picture, where the RADL picture represents that there is no active entry in the first reference picture list or the second reference picture list that is any of a Random Access Skip Leading (RASL) picture, a picture generated by a decoding process to generate an unavailable reference picture, and a picture preceding an associated Intra Random Access Point (IRAP) picture in decoding order, and decoding, by the video decoder, each slice of the RADL picture based on one or both of the first reference picture list and the second reference picture list.

[0068] The method provides a technique for restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0069] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0070] A fourteenth aspect relates to a method of encoding, comprising: obtaining, by the video encoder, a first reference picture list and a second reference picture list when a current picture is a Random Access Decodable Reading (RADL) picture, where no active entries are present in the first reference picture list or the second reference picture list that are any of a Random Access Skip Leading (RASL) picture, a picture generated by a decoding process for generating an unavailable reference picture, and a picture preceding an associated Intra Random Access Point (IRAP) picture in decoding order; encoding, by the video encoder, the RADL picture and one or both of the first reference picture list and the second reference picture list into a video bitstream; and storing, by the video encoder, the video bitstream pending transmission to a video decoder.

[0071] The encoding method provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0072] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0073] A fifteenth aspect relates to a decoding device. A decoding device includes a receiver configured to receive a coded video bitstream including a current picture; a memory coupled to the receiver, the memory storing instructions; and a processor coupled to the memory, the processor configured to execute the instructions to cause the decoding device to obtain a first reference picture list and a second reference picture list for each slice of the current picture, determine that the current picture is a Random Access Decodable Reading (RADL) picture, where the RADL picture indicates that an active entry that is any of a Random Access Skip Leading (RASL) picture, a picture generated by a decoding process to generate an unavailable reference picture, and a picture preceding an associated Intra Random Access Point (IRAP) picture in decoding order is not present in the first reference picture list or the second reference picture list, and decode each slice of the RADL picture based on one or both of the first reference picture list and the second reference picture list.

[0074] The decoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0075] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0076] A sixteenth aspect relates to an encoding device, the encoding device including: a memory including instructions; a processor coupled to the memory, the processor configured to execute the instructions to cause the encoding device to obtain a first reference picture list and a second reference picture list when a current picture is a Random Access Decodable Reading (RADL) picture, where no active entry exists in the first reference picture list or the second reference picture list that is any of a Random Access Skip Reading (RASL) picture, a picture generated by a decoding process for generating an unavailable reference picture, and a picture preceding an associated Intra Random Access Point (IRAP) picture in decoding order; and encode the RADL picture and one or both of the first and second reference picture lists into a video bitstream; and a transmitter coupled to the processor, the transmitter configured to transmit the video bitstream to a video decoder.

[0077] The encoding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this manner, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0078] Optionally, in any of the preceding aspects, another implementation of this aspect provides that the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0079] A seventeenth aspect relates to a coding apparatus, the coding apparatus including: a receiver configured to receive pictures for encoding or receive a bitstream for decoding, a transmitter coupled to the receiver, the transmitter configured to transmit the bitstream to a decoder or transmit a decoded image to a display, a memory coupled to at least one of the receiver or the transmitter, the memory configured to store instructions, and a processor coupled to the memory, the processor configured to execute the instructions stored in the memory to perform any of the methods disclosed herein.

[0080] The coding device provides a technique to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0081] An eighteenth aspect relates to a system, the system including an encoder and a decoder in communication with the encoder, the encoder or decoder including a decoding device, encoding device or coding device disclosed herein.

[0082] The system provides techniques to restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this manner, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0083] A nineteenth aspect relates to a means for coding, the means for coding including receiving means configured to receive pictures for encoding or to receive a bitstream for decoding, transmitting means coupled to said receiving means, the transmitting means configured to transmit said bitstream to a decoding means or to transmit a decoded image to a display means, storage means coupled to at least one of said receiving means or said transmitting means, the storage means configured to store instructions, and processing means coupled to a memory, the processing means configured to execute the instructions stored in the storage means to perform any of the methods disclosed herein.

[0084] The coding means provides a technique for restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0085] For clarity, any one of the above-described embodiments may be combined with any one or more of the other above-described embodiments to create new embodiments within the scope of the present disclosure.

[0086] These and other features will be more clearly understood from the following detailed description considered in conjunction with the accompanying drawings and claims. [Brief description of the drawings]

[0087] For a more complete understanding of the present disclosure, reference is now made to the following brief description taken in conjunction with the accompanying drawings and detailed description, in which like reference numerals represent like parts. [Figure 1] FIG. 1 is a flow chart of an exemplary method for coding a video signal. [Diagram 2] FIG. 2 is a schematic diagram of an example coding and decoding (codec) system for video coding. [Diagram 3] FIG. 3 is a schematic diagram illustrating an example video encoder. [Figure 4] FIG. 4 is a schematic diagram illustrating an example video decoder. [Diagram 5] FIG. 5 is a coded video sequence showing the relationship between Intra Random Access Point (IRAP) pictures to leading and trailing pictures in decoding order and presentation order. [Figure 6] FIG. 6 illustrates a video bitstream configured to implement a gradual decoding refresh (GDR) technique. [Figure 7] FIG. 7 is a schematic diagram illustrating undesirable motion estimation when using encoder constraints to support GDR. [Figure 8] FIG. 8 illustrates a video bitstream that is structured to implement a clean random access (CRA) technique. [Figure 9] FIG. 9 is a schematic diagram showing an example of unidirectional inter prediction. [Figure 10] FIG. 10 is a schematic diagram illustrating an example of bi-phase inter prediction. [Figure 11] FIG. 11 is a schematic diagram illustrating an example of an exemplary reference picture list structure. [Figure 12] 12A to 12C are schematic diagrams collectively illustrating an example of interlaced video coding. [Figure 13] FIG. 13 is a schematic diagram illustrating an example of an exemplary coded video sequence (CVS) that uses both interlaced video coding and leading pictures. [Figure 14] FIG. 14 shows a partitioning technique for a picture. [Figure 15] FIG. 15 is one embodiment of a method for decoding. [Figure 16] FIG. 16 is one embodiment of a method of encoding. [Figure 17] FIG. 17 is one embodiment of the decoding. [Figure 18] FIG. 18 is one embodiment of a method of encoding. [Figure 19] FIG. 19 is one embodiment of a method for decoding. [Figure 20] FIG. 20 is one embodiment of a method of encoding. [Figure 21] FIG. 21 is one embodiment of a method for decoding. [Figure 22] FIG. 22 is one embodiment of a method of encoding. [Figure 23] FIG. 23 is a schematic diagram of an example video coding apparatus. [Figure 24] FIG. 24 is a schematic diagram of an embodiment of a means for coding. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0088] First, while exemplary implementations of one or more embodiments are provided below, it should be understood that the disclosed systems and / or methods may be implemented using any number of technologies, whether currently known or in existence. The present disclosure is in no way limited to the exemplary forms, drawings and technologies shown below, including the exemplary designs and implementations shown and described herein, but may be modified within the scope of the appended claims together with the full scope of equivalents thereof.

[0089] The following terms are defined as follows, unless otherwise stated in the context. Specifically, the following definitions are intended to further clarify the present disclosure. However, terms may be described differently in different contexts. Therefore, the following definitions should be considered as supplementary and should not be considered as limiting the definition of the description provided for such terms in the present specification.

[0090] A bitstream is a sequence of bits that includes video data that is compressed for transmission between an encoder and a decoder. An encoder is a device configured to use an encoding process to compress video data into a bitstream. A decoder is a device configured to use a decoding process to reconstruct video data from the bitstream for display. A picture is a sequence of luma samples and / or a sequence of chroma samples that generate a frame or a field thereof. The picture being encoded or decoded may be referred to as the current picture for clarity of discussion. A reference picture is a picture that includes reference samples that may be used by reference according to inter-prediction and / or inter-layer prediction when coding other pictures. A reference picture list is a list of reference pictures used for inter-prediction and / or inter-layer prediction. Some video coding systems use two reference picture lists, which may be denoted as reference picture list 1 and reference picture list 0. A reference picture list structure is an addressable syntax structure that includes multiple reference picture lists. Inter prediction is a mechanism for coding samples of a current picture by referencing displayed samples in a reference picture different from the current picture, where the reference picture and the current picture are in the same layer. A reference picture list structure entry is an addressable location in a reference picture list structure that indicates a reference picture associated with the reference picture list. A slice header is part of a coded slice and contains data elements related to all video data in a tile represented in the slice. A sequence parameter set (SPS) is a parameter set that contains data related to a sequence of pictures. An access unit (AU) is a set of one or more coded pictures associated with the same display time (e.g., the same picture order count) for output from a decoded picture buffer (DPB) (e.g., for display to a user). A decoded video sequence is a series of pictures reconstructed by a decoder in preparation for display to a user.

[0091] In each of the two reference picture lists for bidirectional inter prediction, reference pictures that can be used for inter prediction of the current picture can only be referenced by a number of entries at the head of the list. These entries are called active entries in the list, while the other entries are called inactive entries in the list. Both the number of total entries in the list and the number of active entries can be obtained. Pictures referenced by inactive entries in a reference picture list are not allowed to be referenced by other entries in the reference picture list or any entries in other reference picture lists.

[0092] The following acronyms are used in this specification: Coded Video Sequence (CVS), Decoded Picture Buffer (DPB), Instantaneous Decoding Refresh (IDR), Intra Random Access Point (IRAP), Joint Video Experts Team (JVET), Least Significant Bit (LSB), Most Significant Bit (MSB), Network Abstraction Layer (NAL), Picture Order Count (POC), Raw Byte Sequence Payload (RBSP), Real-time Transport Protocol (RTP), Sequence Parameter Set (SPS), Generic Video Coding (VVC), Working Draft (WD), and Wavelet Parallel Processing (WPP).

[0093] 1 is a flow chart of an exemplary operational method 100 of coding a video signal. Specifically, a video signal is encoded by an encoder. The encoding process compresses the video signal by using various mechanisms to reduce the video file size. The smaller file size allows the compressed video file to be transmitted to a user while reducing the associated bandwidth overhead. A decoder then decodes the compressed video file to reconstruct the original video signal for display to an end user. The decoding process generally closely resembles the encoding process, allowing the decoder to consistently reconstruct the video signal.

[0094] In step 101, a video signal is input to an encoder. For example, the video signal may be an uncompressed video file stored in memory. As another example, the video file may be captured by a video capture device such as a video camera and encoded to support live streaming of the video. The video file may include both audio and video components. The video component includes a series of image frames that, when viewed in succession, give the visual impression of motion. The frames include pixels represented in terms of light, referred to herein as luma components (or luma samples), and color, referred to herein as chroma components (or color samples). In some examples, the frames may also include depth values ​​to support three-dimensional displays.

[0095] At step 103, the video is divided into blocks. Partitioning includes further dividing the pixels in each frame into square and / or rectangular blocks for compression. For example, in High Efficiency Video Coding (HEVC) (also known as H.265 and MPEG-H Part 2), a frame may first be divided into coding tree units (CTUs), which are blocks of a predetermined size (e.g., 64 pixels by 64 pixels). CTUs contain both luma and chroma samples. The coding tree is used to divide the CTUs into blocks, which are then recursively further divided until a configuration is obtained that supports further encoding. For example, the luma component of a frame may be further divided until each block contains relatively uniform illumination values. Also, the chroma component of a frame may be further divided until each block contains relatively uniform color values. Thus, the division mechanism varies depending on the content of the video frame.

[0096] In step 105, various compression mechanisms are used to compress the image blocks partitioned in step 103. For example, inter prediction and / or intra prediction may be used. Intra prediction is designed to take advantage of the fact that objects in a common scene tend to appear in successive frames. Thus, a block depicting an object in a reference frame does not need to be described repeatedly in adjacent frames. In particular, an object such as a table may remain in a constant position across multiple frames. Thus, the table may be described once and adjacent frames may refer back to the reference frame. Pattern matching mechanisms may be used to match objects across multiple frames. Also, moving objects may be represented across multiple frames, for example, due to object motion or camera motion. As a specific example, a video may show a car moving across the screen across multiple frames. Motion vectors may be used to describe such motion. A motion vector is a two-dimensional vector that provides an offset from the coordinates of the object in the frame to the coordinates of the object in the reference frame. Thus, inter prediction may encode an image block in a current frame as a set of motion vectors that indicate an offset from a corresponding block in the reference frame.

[0097] Intra prediction encodes blocks within a common frame. Intra prediction takes advantage of the fact that luma and chroma components tend to be concentrated in a frame. For example, some green spots in a tree tend to be located adjacent to similar green spots. Intra prediction uses multi-directional prediction modes (e.g., 33 in HEVC), planar mode, and direct current (DC) mode. Directional mode indicates that the current block is similar / same as samples of neighboring blocks in the corresponding direction. Planar mode indicates that a series of blocks (e.g., a plane) along a row / column can be interpolated based on neighboring blocks at the end of the row. Planar mode effectively indicates a smooth transition of light / color across the row / column by using a relatively constant slope in changing values. DC mode is used for boundary smoothing, indicating that the block is similar / same as the average value associated with all samples of neighboring blocks associated with the angular direction of the directional prediction mode. Thus, intra prediction blocks can represent image blocks as various related prediction mode values ​​instead of actual values. Also, inter prediction blocks can represent image blocks as motion vector values ​​instead of actual values. In either case, the prediction block may in some cases not exactly represent the image block. The difference is stored in a residual block, to which a transform may be applied to further compress the file.

[0098] In step 107, various filtering techniques may be applied. In HEVC, filters are applied according to an in-loop filtering scheme. The block-based prediction described above may result in the generation of blocky images at the decoder. Also, the block-based prediction scheme may encode a block and then reconstruct the encoded block for later use as a reference block. The in-loop filtering scheme sequentially applies noise suppression filters, deblocking filters, adaptive loop filters, and sample adaptive offset (SAO) filters to the block / frame. These filters mitigate such blocking artifacts so that the encoded file can be accurately reconstructed. Also, these filters mitigate artifacts in the reconstructed reference block, so that the artifacts are less likely to generate additional artifacts in subsequent blocks that are encoded based on the reconstructed reference block.

[0099] Once the video signal has been partitioned, compressed and filtered, the resulting data is encoded into a bitstream at step 109. The bitstream includes any signal data desired to support proper video signal reconstruction at a decoder, in addition to the data described above. For example, such data includes partition data, prediction data, residual blocks and various flags that provide coding instructions to the decoder. The bitstream may be stored in a memory for transmission to a decoder upon request. The bitstream may be broadcast and / or multicast to multiple decoders. The generation of the bitstream is an iterative process. Thus, steps 101, 103, 105, 107 and 109 may occur sequentially and / or simultaneously across many frames and blocks. The order shown in FIG. 1 is shown for clarity and ease of explanation and is not intended to limit the video coding process to a particular order.

[0100] The decoder receives the bitstream and begins the decoding process at step 111. Specifically, the decoder uses an entropy decoding scheme to convert the bitstream into corresponding syntax and video data. The decoder uses syntax data from the bitstream to determine the frame partitioning at step 111. The partitioning should match the result of the block partitioning at step 103. The entropy encoding / decoding used at step 111 will now be described. The encoder makes many choices during the compression process, such as selecting a block partitioning scheme from several possible choices based on the spatial location of values ​​in the input image. A number of bins may be used to convey the exact choices. As used herein, a bin is a binary value that is treated as a variable (e.g., a bit value that can change depending on the context). Entropy coding allows the encoder to discard any options that are clearly not viable for a particular case, leaving a set of permissible options. Each permissible option is assigned a codeword. The length of the codeword is based on the number of allowable options (e.g., one bin for two options, two bins for three to four options, etc.). The encoder then encodes the codeword for the selected option. This scheme reduces the size of the codeword because it is desirable to uniquely indicate a selection from a small subset of allowable choices, as opposed to uniquely indicating a selection from a potentially larger set of all possible choices. The decoder then decodes the selection by determining the set of allowable choices in a similar manner as the encoder. By determining the set of allowable choices, the decoder can read the codeword and identify the selection made by the encoder.

[0101] In step 113, the decoder performs block decoding. Specifically, the decoder uses an inverse transform to generate a residual block. The decoder then uses the residual block and a corresponding prediction block to reconstruct an image block according to the partition. The prediction block may include both intra-prediction blocks and inter-prediction blocks generated in the encoder in step 105. The reconstructed image block is then placed in a frame of the reconstructed video signal according to the partition data determined in step 111. The syntax for step 113 may also be conveyed in the bitstream through entropy coding as described above.

[0102] In step 115, filtering is performed on the frames of the reconstructed video signal in a manner similar to step 107 in the encoder, for example applying noise suppression filters, deblocking filters, adaptive loop filters and SAO filters to the frames to remove blocking artifacts. Once the frames have been filtered, the video signal can be output to a display in step 117 for viewing by an end user.

[0103] 2 is a schematic diagram of an exemplary coding and decoding (codec) system 200 for video coding. Specifically, the codec system 200 provides functionality to support the implementation of the operational method 100. The codec system 200 is generalized to show components used in both an encoder and a decoder. The codec system 200 receives and splits a video signal, as described with respect to steps 101 and 103 of the operational method 100, resulting in a split video signal 201. The codec system 200 then compresses the split video signal 201 into a coded bitstream, as described with respect to steps 105, 107, and 109 of the method 100, when acting as an encoder. When acting as a decoder, the codec system 200 generates an output video signal from the bitstream, as described with respect to steps 111, 113, 115, and 117 of the operational method 100. Codec system 200 includes a general coder control component 211, a transform scaling and quantization component 213, an intra-picture estimation component 215, an intra-picture prediction component 217, a motion compensation component 219, a motion estimation component 221, a scaling and inverse transform component 229, a filter control analysis component 227, an in-loop filter component 225, a decoded picture buffer component 223, and a header formatting and context adaptive binary arithmetic coding (CABAC) component 231. Such components are coupled as shown. In FIG. 2, the black lines indicate the movement of data to be encoded / decoded, while the dashed lines indicate the movement of control data that controls the operation of the other components. All of the components of codec system 200 may be present in an encoder. A decoder may include a subset of the components of codec system 200.For example, the decoder may include an intra-picture prediction component 217, a motion compensation component 219, a scaling and inverse transform component 229, an in-loop filter component 225, and a decoded picture buffer component 223. These components will now be described.

[0104] The partitioned video signal 201 is a captured video sequence that has been partitioned into blocks of pixels by a coding tree. The coding tree uses various partitioning modes to further partition the blocks of pixels into smaller blocks of pixels. These blocks can then be further partitioned into smaller blocks. The blocks can be referred to as nodes on the coding tree. Large parent nodes are partitioned into smaller child nodes. The number of times a node is partitioned is referred to as the depth of the node / coding tree. In some cases, the partitioned blocks can be included in a coding unit (CU). For example, a CU can be a subpart of a CTU that includes a luma block, a red-difference chroma (Cr) block, and a blue-difference chroma (Cb) block along with corresponding syntax instructions for the CU. The partitioning modes can include a binary tree (BT), a triple tree (TT), and a quad tree (QT), which are each used to partition a node into two, three, or four child nodes of different shapes depending on the partitioning mode used. The segmented video signal 201 is forwarded to a general coder control component 211, a transform scaling and quantization component 213, an intra-picture estimation component 215, a filter control analysis component 227 and a motion estimation component 221 for compression.

[0105] The general coder control component 211 is configured to make decisions related to coding the images of the video sequence into a bitstream according to application constraints. For example, the general coder control component 211 manages the optimization of bitrate / bitstream size versus reconstruction quality. Such decisions may be made based on storage / bandwidth availability and image resolution requirements. The general coder control component 211 also manages buffer utilization in light of transmission rate to mitigate buffer under-run and over-run issues. To manage these issues, the general coder control component 211 manages segmentation, prediction, and filtering by other components. For example, the general coder control component 211 may dynamically increase compression complexity to increase resolution and bandwidth usage or decrease compression complexity to decrease resolution and bandwidth usage. Thus, the general coder control component 211 controls other components of the codec system 200 to balance bitrate concerns and video signal reconstruction quality. The general coder control component 211 generates control data that controls the operation of other components. Control data is also forwarded to the header format and CABAC component 231 to be encoded into the bitstream to convey parameters for decoding at the decoder.

[0106] The segmented video signal 201 is also sent to a motion estimation component 221 and a motion compensation component 219 for inter prediction. A frame or slice of the segmented video signal 201 may be divided into multiple video blocks. The motion estimation component 221 and the motion compensation component 219 perform inter predictive coding of the received video blocks relative to one or more blocks in one or more reference frames to provide temporal prediction. The codec system 200 may perform multiple coding passes, for example to select an appropriate coding mode for each block of video data.

[0107] The motion estimation component 221 and the motion compensation component 219 may be highly integrated, but are illustrated separately for conceptual purposes. Motion estimation performed by the motion estimation component 221 is a process of generating motion vectors that estimate motion for video blocks. A motion vector may indicate, for example, the displacement of a coded object relative to a predictive block. A predictive block is a block that is found to closely match a block to be coded in terms of pixel differences. A predictive block is also called a reference block. Such pixel differences may be determined by sum of absolute differences (SAD), sum of squared differences (SSD), or other difference metrics. HEVC uses several coded objects including CTUs, coding tree blocks (CTBs), and CUs. For example, a CTU may be divided into CTBs, which are divided into CBs for inclusion in a CU. A CU may be encoded as a prediction unit (PU) that contains prediction data and / or a transform unit (TU) that contains transform residual data of the CU. The motion estimation component 221 generates the motion vectors, PUs, and TUs by using rate-distortion analysis as part of a rate-distortion optimization process. For example, the motion estimation component 221 may identify multiple reference blocks, multiple motion vectors, etc. for a current block / frame and select the reference block, motion vector, etc. with the best rate-distortion performance. The best rate-distortion performance balances both the quality of the video reconstruction (e.g., the amount of data lost due to compression) and the coding efficiency (e.g., the size of the final encoding).

[0108] In some examples, the codec system 200 may calculate values ​​of sub-integer pixel positions of the reference picture stored in the decoded picture buffer component 223. For example, the video codec system 200 may interpolate values ​​of quarter-pixel positions, eighth-pixel positions, or other fractional pixel positions of the reference picture. Thus, the motion estimation component 221 may perform motion searches for whole pixel positions and fractional pixel positions and output motion vectors with fractional pixel accuracy. The motion estimation component 221 calculates motion vectors for PUs of video blocks in inter-coded slices by comparing the positions of the PUs with the positions of the predictive blocks of the reference pictures. The motion estimation component 221 outputs the calculated motion vectors as motion data to the header format and CABAC component 231 for encoding, and outputs motion to the motion compensation component 219.

[0109] The motion compensation performed by the motion compensation component 219 may include fetching or generating a predictive block based on the motion vector determined by the motion estimation component 221. Again, in some examples, the motion estimation component 221 and the motion compensation component 219 may be functionally integrated. Upon receiving the motion vector for the PU of the current video block, the motion compensation component 219 may identify a predictive block to which the motion vector points. A residual video block is then formed by subtracting pixel values ​​of the predictive block from pixel values ​​of the current video block being coded to form pixel difference values. In general, the motion estimation component 221 performs motion estimation on the luma component, and the motion compensation component 219 uses the motion vector calculated based on the luma component for both the chroma component and the luma component. The predictive block and the residual block are forwarded to the transform scaling and quantization component 213.

[0110] The split video signal 201 is also sent to the intra picture estimation component 215 and the intra picture prediction component 217. As with the motion estimation component 221 and the motion compensation component 219, the intra picture estimation component 215 and the intra picture prediction component 217 may be highly integrated, but are illustrated separately for conceptual purposes. The intra picture estimation component 215 and the intra picture prediction component 217 intra predict a current block relative to blocks in a current frame, instead of the inter prediction between frames performed by the motion estimation component 221 and the motion compensation component 219 described above. In particular, the intra picture estimation component 215 determines an intra prediction mode to use for encoding the current block. In some examples, the intra picture estimation component 215 selects an appropriate intra prediction mode to encode the current block from a plurality of tested intra prediction modes. The selected intra prediction mode is then forwarded to the header format and CABAC component 231 for encoding.

[0111] For example, the intra picture estimation component 215 calculates rate-distortion values ​​for various tested intra picture prediction modes using a rate-distortion analysis and selects the intra prediction mode with the best rate-distortion characteristics among the tested modes. The rate-distortion analysis generally identifies the amount of distortion (or error) between an encoded block and the original unencoded block encoded to generate the encoded block and the bit rate (e.g., number of bits) used to generate the encoded block. The intra picture estimation component 215 calculates a ratio from the distortion and rate for the various encoded blocks to identify the intra prediction mode that exhibits the best rate-distortion value for the block. In addition, the intra picture estimation component 215 may be configured to code the depth blocks of the depth map using a rate-distortion optimization (RDO) based depth modeling mode (DMM).

[0112] The intra-picture prediction component 217 may generate a residual block from the prediction block based on a selected intra-picture prediction mode specified by the intra-picture prediction component 215 when implemented in an encoder, or may read the residual block from a bitstream when implemented in a decoder. The residual block includes value differences between the prediction block and the original block represented as a matrix. The residual block is then forwarded to the transform scaling and quantization component 213. The intra-picture estimation component 215 and the intra-picture prediction component 217 may operate on both the luma and chroma components.

[0113] The transform scaling and quantization component 213 is configured to further compress the residual block. The transform scaling and quantization component 213 applies a transform, such as a discrete cosine transform (DCT), a discrete sine transform (DST), or a conceptually similar transform, to the residual block to generate a video block including residual transform coefficient values. A wavelet transform, an integer transform, a subband transform, or other types of transforms may also be used. The transform may convert the residual information from a pixel value domain to a transform domain, such as a frequency domain. The transform scaling and quantization component 213 is also configured to scale the transformed residual information, for example based on frequency. Such scaling may include applying a scaling factor to the residual information such that different frequency information is quantized with different granularity, which may affect the final visual quality of the reconstructed video. The transform scaling and quantization component 213 is also configured to quantize the transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth for some or all of the coefficients. The degree of quantization may be modified by adjusting a quantization parameter. In some examples, the transform scaling and quantization component 213 may then perform a scan of a matrix containing the quantized transform coefficients, which are forwarded to the header formatting and CABAC component 231 for encoding into a bitstream.

[0114] The scaling and inverse transform component 229 applies the inverse operations of the transform scaling and quantization component 213 to support motion estimation. The scaling and inverse transform component 229 applies, for example, inverse scaling, transformation and / or quantization to reconstruct a residual block in the pixel domain for later use as a reference block that may later become a predictive block for another current block. The motion estimation component 221 and / or the motion compensation component 219 may calculate a reference block by adding the residual block to a corresponding predictive block for use in motion estimation of a later block / frame. A filter is applied to the reconstructed reference block to mitigate artifacts generated during the scaling, quantization and transformation. Such artifacts may otherwise result in inaccurate predictions (and additional artifacts) when subsequent blocks are predicted.

[0115] The filter control analysis component 227 and the in-loop filter component 225 apply filters to the residual block and / or the reconstructed image block. For example, the transformed residual block from the scaling and inverse transform component 229 may be combined with a corresponding prediction block from the intra-picture prediction component 217 and / or the motion compensation component 219 to reconstruct the original image block. The filter may then be applied to the reconstructed image block. In some examples, the filter may instead be applied to the residual block. As with the other components of FIG. 2, the filter control analysis component 227 and the in-loop filter component 225 may be highly integrated and implemented together, but are shown separately for conceptual purposes. The filter applied to the reconstructed reference block is applied to a specific spatial region and includes multiple parameters to adjust how such a filter is applied. The filter control analysis component 227 analyzes the reconstructed reference block to determine where such a filter should be applied and sets the corresponding parameters. Such data is forwarded to the header format and CABAC component 231 as filter control data for encoding. The in-loop filter component 225 applies such a filter based on the filter control data. The filters may include a deblocking filter, a noise suppression filter, a SAO filter, and an adaptive loop filter. Such filters may be applied in the spatial / pixel domain (e.g., to reconstructed pixel blocks) or in the frequency domain, depending on the example.

[0116] When operating as an encoder, the filtered and reconstructed image blocks, residual blocks and / or predictive blocks are stored in the decoded picture buffer component 223 for later use in motion estimation, as described above. When operating as a decoder, the decoded picture buffer component 223 stores the reconstructed and filtered blocks and forwards them to a display as part of an output video signal. The decoded picture buffer component 223 may be any memory device capable of storing predictive blocks, residual blocks and / or reconstructed image blocks.

[0117] The header format and CABAC component 231 receives data from various components of the codec system 200 and encodes such data into a coded bitstream for transmission towards a decoder. In particular, the header format and CABAC component 231 generates various headers to encode control data, such as general control data and filter control data. Also, all of the residual data in the form of quantized transform coefficient data, as well as prediction data, including intra prediction and motion data, are encoded into the bitstream. The final bitstream contains all of the information desired by the decoder to reconstruct the original segmented video signal 201. Such information may include an intra prediction mode index table (also called a codeword mapping table), a definition of the encoding context for various blocks, an indication of the most probable intra prediction mode, an indication of the segmentation information, etc. Such data may be encoded by using entropy coding. For example, the information may be encoded by using context adaptive variable length coding (CAVLC), CABAC, syntax-based context adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy coding technique. Following entropy coding, the coded bitstream may be transmitted to another device (eg, a video decoder) or archived for later transmission or retrieval.

[0118] 3 is a block diagram illustrating an example video encoder 300. The video encoder 300 may be used to perform the encoding functions of the codec system 200 and / or to perform steps 101, 103, 105, 107, and / or 109 of the method of operation 100. The encoder 300 splits an input video signal, resulting in a split video signal 301, which is substantially similar to the split video signal 201. The split video signal 301 is then compressed and encoded into a bitstream by components of the encoder 300.

[0119] Specifically, the split video signal 301 is forwarded to an intra picture prediction component 317 for intra prediction. The intra picture prediction component 317 may be substantially similar to the intra picture estimation component 215 and the intra picture prediction component 217. The split video signal 301 is forwarded to a motion compensation component 321 for inter prediction based on a reference block in a decoded picture buffer component 323. The motion compensation component 321 may be substantially similar to the motion estimation component 221 and the motion compensation component 219. The prediction block and the residual block from the intra picture prediction component 317 and the motion compensation component 321 are forwarded to a transform and quantization component 313 for transforming and quantizing the residual block. The transform and quantization component 313 may be substantially similar to the transform scaling and quantization component 213. The transformed and quantized residual block and the corresponding prediction block are forwarded to an entropy coding component 331 for coding into a bitstream. The entropy coding component 331 may have a header format substantially similar to the CABAC component 231 .

[0120] The transformed and quantized residual block and / or the corresponding prediction block are also forwarded from the transform and quantization component 313 to the inverse transform and quantization component 329 for reconstruction into a reference block for use by the motion compensation component 321. The inverse transform and quantization component 329 may be substantially similar to the scaling and inverse transform component 229. An in-loop filter in the in-loop filter component 325 is also applied to the residual block and / or the reconstructed reference block, depending on the example. The in-loop filter component 325 may be substantially similar to the filter control analysis component 227 and the in-loop filter component 225. The in-loop filter component 325 may include multiple filters as described with respect to the in-loop filter component 225. The filtered block is then stored in the decoded picture buffer component 323 for use as a reference block by the motion compensation component 321. The decoded picture buffer component 323 may be substantially similar to the decoded picture buffer component 223.

[0121] 4 is a block diagram illustrating an example video decoder 400, which may be used to perform the decoding functionality of codec system 200 and / or to perform steps 111, 113, 115 and / or 117 of method of operation 100. Decoder 400 receives a bitstream, for example from encoder 300, and generates a reconstructed output video signal based on the bitstream for display to an end user.

[0122] The bitstream is received by the entropy decoding component 433. The entropy decoding component 433 is configured to implement an entropy coding scheme, such as CAVLC, CABAC, SBAC, PIPE coding, or other entropy coding techniques. For example, the entropy coding component 433 may use header information to provide a context for interpreting additional data encoded as codewords in the bitstream. The decoded information includes any desired information for decoding the video signal, such as general control data, filter control data, partitioning information, motion data, prediction data, and quantized transform coefficients from the residual block. The quantized transform coefficients are forwarded to the inverse transform and quantization component 429 for reconstruction into the residual block. The inverse transform and quantization component 429 may be similar to the inverse transform and quantization component 329.

[0123] The reconstructed residual block and / or predictive block are forwarded to the intra picture prediction component 417 for reconstructing into an image block based on the intra prediction operation. The intra picture prediction component 417 may be similar to the intra picture estimation component 215 and the intra picture prediction component 217. Specifically, the intra picture prediction component 417 uses the prediction mode to locate a reference block in a frame and applies the residual block to the result to reconstruct an intra predicted image block. The reconstructed intra predicted image block and / or residual block and the corresponding inter prediction data are forwarded to the decoded picture buffer component 423 via the in-loop filter component 425, which may be substantially similar to the decoded picture buffer component 223 and the in-loop filter component 225, respectively. The in-loop filter component 425 filters the reconstructed image block, the residual block and / or the predictive block, and such information is stored in the decoded picture buffer component 423. The reconstructed image blocks from the decoded picture buffer component 423 are forwarded to the motion compensation component 421 for inter prediction. The motion compensation component 421 may be substantially similar to the motion estimation component 221 and / or the motion compensation component 219. Specifically, the motion compensation component 421 uses a motion vector from a reference block to generate a prediction block and applies a residual block to the result to reconstruct an image block. The resulting reconstructed block may be forwarded to the decoded picture buffer component 423 via the in-loop filter component 425. The decoded picture buffer component 423 continues to store additional reconstructed image blocks that can be reconstructed into frames via the partition information. Such frames may be arranged into a sequence. The sequence is output as a reconstructed output video signal toward a display.

[0124] With the above in mind, video compression techniques perform spatial (intra-picture) prediction and / or temporal (inter-picture) prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video slice (i.e., a video picture or a portion of a video picture) may be divided into video blocks, which may also be referred to as tree blocks, coding tree blocks (CTBs), coding tree units (CTUs), coding units (CUs), and / or coding nodes. Video blocks in an intra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures. A picture may also be referred to as a frame, and a reference picture may be referred to as a reference frame.

[0125] Spatial or temporal prediction results in a predictive block for the block to be coded. The residual data represents pixel differences between the original block to be coded and the predictive block. Inter-coded blocks are encoded according to a motion vector pointing to a block of reference samples forming the predictive block and the residual data indicating the differences between the coded block and the predictive block. Intra-coded blocks are encoded according to an intra-coding mode and the residual data. For further compression, the residual data may be transformed from the pixel domain to a transform domain, resulting in residual transform coefficients, which may then be quantized. The quantized transform coefficients are first arranged in a two-dimensional array and scanned to generate a one-dimensional vector of transform coefficients, and entropy coding may be applied to achieve even further compression.

[0126] Image and video compression has experienced rapid growth, resulting in a variety of coding standards, including Advanced Video Coding (AVC), also known as ITU-T H.261, International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) MPEG-1 Part 2, ITU-T H.262 or ISO / IEC MPEG-2 Part 2, ITU-T H.263, ISO / IEC MPEG-4 Part 2, ITU-T H.264 or ISO / IEC MPEG-4 Part 10, and High Efficiency Video Coding (HEVC), also known as ITU-T H.265 or MPEG-H Part 2. AVC includes extensions such as Scalable Video Coding (SVC), Multiview Video Coding (MVC) and Multiview Video Coding + Depth (MVC+D) and 3D AVC (3D-AVC). HEVC includes extensions such as Scalable HEVC (SHVC), Multi-view HEVC (MV-HEVC) and 3D HEVC (3D-HEVC).

[0127] There is also an emerging video coding standard named Versatile Video Coding (VVC) developed by the ITU-T and ISO / IEC Joint Video Experts Team (JVET). There are several working drafts of the VVC standard, but one working draft of VVC is referenced herein, specifically B. Bross, J. Chen, and S. Liu, "Versatile Video Coding (Draft 5)," JVET-N1001-v3, 13th JVET Meeting, March 27, 2019 (VVC Draft 5).

[0128] The description of the techniques disclosed herein is based on Versatile Video Coding (VVC), a video coding standard under development by the ITU-T and ISO / IEC Joint Video Experts Team (JVET), however the techniques also apply to other video codec specifications.

[0129] This paper describes reference picture management in video coding for AVC, HEVC and VVC.

[0130] Video codec specifications require pictures to be identified for multiple purposes, including use as reference pictures in inter prediction, output of pictures from the decoded picture buffer (DPB), motion vector scaling, weighted prediction, etc.

[0131] In AVC and HEVC, pictures can be identified by their Picture Order Count (POC).

[0132] In AVC and HEVC, pictures in the DPB can be marked as "short-term reference", "long-term reference", or "not used for reference". Once a picture is marked as "not used for reference", it can no longer be used for prediction and can be removed from the DPB if it is no longer needed for output.

[0133] In AVC, there are two types of reference pictures: short-term and long-term. A reference picture can be marked as "not used for reference" if it is no longer needed for prediction reference. The conversion between these three states (short-term, long-term, and not used for reference) is controlled by the decode reference picture marking process. There are two alternative decode reference picture marking mechanisms: the implicit sliding window process and the explicit memory management control operation (MMCO) process. The sliding window process marks a short-term reference picture as "not used for reference" if the number of reference frames is equal to a given maximum number (max_num_ref_frames in SPS). The short-term reference pictures are stored in a first-in-first-out manner so that the latest decoded short-term picture is maintained in the DPB.

[0134] An explicit MMCO process may include multiple MMCO commands that may mark one or more short-term or long-term reference pictures as "not used for reference", may mark all pictures as "not used for reference", or may mark the current reference picture or an existing short-term reference picture as long-term and assign a long-term picture index to the long-term reference picture.

[0135] In AVC, the process of outputting and removing pictures from the DPB, as well as the reference picture marking operation, is performed after the image is decoded.

[0136] HEVC introduces a different approach for reference picture management called Reference Picture Set (RPS). Compared to AVC's MMCO / sliding window, the most fundamental difference with the RPS concept is that for each particular slice, a complete set of reference pictures is provided that will be used by the current picture or subsequent pictures. Therefore, the complete set of all pictures to be kept in the DPB for use by the current or future pictures is signaled. This is different from the AVC scheme, where only relative changes to the DPB are signaled. With the RPS concept, no information from previous pictures in the decoding order is required to maintain the exact state of the reference pictures in the DPB.

[0137] To take advantage of the RPS and improve error resiliency, the order of picture decoding and DPB operations in HEVC is changed compared to AVC. AVC's picture marking and buffering operations (both outputting and removing decoded pictures from the DPB) are generally applied after the current picture is decoded. In HEVC, the RPS is first decoded from the slice header of the current picture, and then picture marking and buffering operations are generally applied before decoding the current picture.

[0138] The latest VVC WD includes an approach for reference picture management based on two reference picture lists: reference picture list 0 and reference picture list 1. In this approach, a reference picture list for a picture is directly constructed without using a reference picture list initialization process and a reference picture list modification process. Furthermore, reference picture marking is directly based on the two reference picture lists.

[0139] The syntax and semantics related to reference picture management in VVC are as follows:

[0140] The sequence parameter set RBSP is as follows:

[0141] [Table 1] The picture parameter set RBSP is as follows:

[0142] [Table 2]

[0143] The general slice header syntax is:

[0144] [Table 3] TIFF0007658922000004.tif60167

[0145] The syntax of the reference picture list is as follows:

[0146] [Table 4]

[0147] The meaning of the sequence parameter set RBSP is as follows:

[0148] log2_max_pic_order_cnt_lsb_minus4 specifies the value of the variable MaxPicOrderCntLsb used in the decoding process for picture order counting as follows:

[0149] MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 ) (7-7)(7-7) The value of Log2_max_pic_order_cnt_lsb_minus4 is in the range of 0 to 12. .

[0150] sps_max_dec_pic_buffering_minus1 plus 1 specifies the maximum required size of the decoded picture buffer for CVS, in units of picture storage buffers. sps_max_dec_pic_buffering_minus1 can range from 0 to MaxDpbSize - 1, and MaxDpbSize is specified elsewhere.

[0151] long_term_ref_pics_flag equal to 0 specifies that no long-term reference pictures (LTRPs) are used for inter prediction of coded pictures in the CVS. long_term_ref_pics_flag equal to 1 specifies that LTRPs may be used for inter prediction of one or more coded pictures in the CVS.

[0152] sps_idr_rpl_present_flag equal to 1 specifies that a reference picture list syntax element is present in the slice header of an IDR picture. sps_idr_rpl_present_flag equal to 0 specifies that a reference picture list syntax element is not present in the slice header of an IDR picture.

[0153] rpl1_same_as_rp10_flag equal to 1 specifies that the syntax structures num_ref_pic_lists_in_sps[1] and ref_pic_list_struct(1, rplsidx) are not present and is applied as follows:

[0154] - The value of num_ref_pic_lists_in_sps[1] is inferred to be equal to the value of num_ref_pic_lists_in_sps[0].

[0155] - ref_pic_list_struct(1, The value of each syntax element in ref_pic_list_struct(0, rplsIdx) is inferred to be equal to the value of the corresponding syntax element in ref_pic_list_struct(0, rplsIdx) for rplsIdx in the range 0 to num_ref_pic_lists_in_sps[0] - 1.

[0156] num_ref_pic_lists_in_sps[i] is 0 and specifies the number of ref_pic_list_struct(listIdx, rplsIdx) syntax structures contained in the SPS whose listIdx is equal to i. The value of num_ref_pic_lists_in_sps[i] shall be in the range of 0 to 64.

[0157] NOTE 3 – For each value of listIdx (equal to 0 or 1), the decoder shall The memory should be allocated for the total number of ref_pic_list_struct(listIdx, rplsIdx) syntax structures since there can be one ref_pic_list_struct(listIdx, rplsIdx) syntax structure that is directly conveyed in the slice header of the current picture.

[0158] The meaning of the picture parameter set RBSP is as follows:

[0159] num_ref_idx_default_active_minus1[i] plus 1 specifies an estimate of the variable NumRefIdxActive[0] for a P or B slice with num_ref_idx_active_override_flag equal to 0 when i is equal to 0, and specifies an estimate of the variable NumRefIdxActive[1] for a B slice with num_ref_idx_active_override_flag equal to 0 when i is equal to 1. The value of num_ref_idx_default_active_minus1[i] shall be in the range of 0 to 14.

[0160] rpl1_idx_present_flag equal to 0 specifies that ref_pic_list_sps_flag[1] and ref_pic_list_idx[1] are not present in the slice header. to 1 specifies that ref_pic_list_sps_flag[1] and ref_pic_list_idx[1] may be present in the slice header.

[0161] A typical slice header has the following semantics:

[0162] slice_pic_order_cnt_lsb specifies the picture order count modulo MaxPicOrderCntLsb for the current picture. The length of the slice_pic_order_cnt_lsb syntax element is log2_max_pic_order_cnt_lsb_minus4 + 4 bits. The value of slice_pic_order_cnt_lsb shall range from 0 to MaxPicOrderCntLsb - 1.

[0163] ref_pic_list_sps_flag[i] equal to 1 means that the reference picture list i of the current slice is a ref_pic_list_struct(listIdx, listIdx equal to i in the active SPS. rplsIdx) syntax structure. equal to 0 specifies that the reference picture list i of the current slice is obtained based on the ref_pic_list_struct(listIdx, rplsIdx) syntax structure with listIdx equal to i, which is directly contained in the slice header of the current picture. If num_ref_pic_lists_in_sps[i] is equal to 0, the value of ref_pic_list_sps_flag[i] is inferred to be equal to 0. If rpl1_idx_present_flag is equal to 0, the value of ref_pic_list_sps_flag[1] is inferred to be equal to ref_pic_list_sps_flag[0].

[0164] ref_pic_list_idx[i] is used to obtain the reference picture list i of the current picture. ref_pic_list_struct(listIdx, listIdx=i) Specifies an index into the list of ref_pic_list_struct(listIdx, rplsIdx) syntax structures with listIdx equal to i contained in the active SPS of the ref_pic_list_struct(listIdx, rplsIdx) syntax structure. The syntax element ref_pic_list_idx[i] is represented with Ceil(Log2(num_ref_pic_lists_in_sps[i])) bits. If not present, the value of ref_pic_list_idx[i] is inferred to be equal to 0. The value of ref_pic_list_idx[i] shall be in the range 0 to num_ref_pic_lists_in_sps[i] - 1. If ref_pic_list_sps_flag[i] is equal to 1 and num_ref_pic_lists_in_sps[i] is equal to 1, the value of ref_pic_list_idx[i] is inferred to be 0. If ref_pic_list_sps_flag[i] is equal to 1 and rpl1_idx_present_flag is equal to 0, the value of ref_pic_list_idx[1] is inferred to be equal to ref_pic_list_idx[0].

[0165] The variable RplsIdx[i] is obtained as follows:

[0166] RplsIdx[i] = ref_pic_list_sps_flag[i] ?ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i] (7-40) slice_poc_lsb_lt[i][j] specifies the value of the picture order count modulo MaxPicOrderCntLsb of the j-th LTRP entry of the i-th reference picture list. The length of the slice_poc_lsb_lt[i][j] syntax element is log2_max_pic_order_cnt_lsb_minus4+4 bits.

[0167] The variable PocLsbLt[i][j] is obtained as follows.

[0168] PocLsbLt[i][j] = ltrp_in_slice_header_flag[i][RplsIdx[i]] ? (7-41) slice_poc_lsb_lt[i][j] : rpls_poc_lsb_lt[listIdx][RplsIdx[i]][j] delta_poc_msb_present_flag[i][j] equal delta_poc_msb_cycle_lt[i][j] equal to 1 specifies that delta_poc_msb_cycle_lt[i][j] is present. delta_poc_msb_present_flag[i][j] equal to 0 specifies that delta_poc_msb_cycle_lt[i][j] is not present.

[0169] prevTid0Pic shall be the previous picture in decoding order with TemporalId equal to 0 and that is not a Random Access Skip Leading (RASL) or Random Access Decodable Leading (RADL) picture. setOfPrevPocVals shall be the set consisting of:

[0170] - PicOrderCntVal of prevTid0Pic, - the PicOrderCntVal of each picture referenced by the entries in RefPicList[0] and RefPicList[1] of prevTid0Pic, - PicOrderCntVal of each picture that follows prevTid0Pic in decoding order and precedes the current picture in decoding order. If there are two or more values ​​in setOfPrevPocVals whose value modulo MaxPicOrderCntLsb is equal to PocLsbLt[i][j], then the value of delta_poc_msb_present_flag[i][j] shall be equal to 1.

[0171] delta_poc_msb_cycle_lt[i][j] specifies the value of the variable FullPocLt[i][j] as follows:

[0172] if(j == 0) deltaMsbCycle[i][j] = delta_poc_msb_cycle_lt[i][j] else (7-42) deltaMsbCycle[i][j] = delta_poc_msb_cycle_lt[i][j] + deltaMsbCycle[i][j-1] FullPocLt[i][RplsIdx[i]][j] = PicOrderCntVal - deltaMsbCycle[i][j] * MaxPicOrderCntLsb - (PicOrderCntVal & (MaxPicOrderCntLsb-1)) + PocLsbLt[i][j] The value of delta_poc_msb_cycle_lt[i][j] is 0 to 2( 32 - log2_max_pic_order_cnt_lsb_minus4 - 4 ) range. If not present, the value of delta_poc_msb_cycle_lt[i][j] is inferred to be equal to 0.

[0173] num_ref_idx_active_override_flag equal to 1 specifies that the syntax element num_ref_idx_active_minus1[0] exists for P and B slices, and the syntax element num_ref_idx_active_minus1[1] exists for B slices. equal to 0 specifies that the syntax elements num_ref_idx_active_minus1[0] and num_ref_idx_active_minus1[1] are not present. If not present, the value of num_ref_idx_active_override_flag is inferred to be equal to 1.

[0174] num_ref_idx_active_minus1[i] is used to obtain the variable NumRefIdxActive[i] defined in Equation 7-43. The value of num_ref_idx_active_minus1[i] shall be in the range of 0 to 14.

[0175] For i equal to 0 or 1, if the current slice is a B slice, num_ref_idx_active_override_flag is equal to 1, and num_ref_idx_active_minus1[i] is not present, then num_ref_idx_active_minus1[i] is inferred to be equal to 0.

[0176] If the current slice is a P slice, num_ref_idx_active_override_flag is equal to 1, and num_ref_idx_active_minus1[0] is not present, then num_ref_idx_active_minus1[0] is inferred to be equal to 0.

[0177] The variable NumRefIdxActive[i] is obtained as follows:

[0178] for (i = 0; i < 2; i++) { if(slice_type = = B ||(slice_type = = P && i = = 0)) { if(num_ref_idx_active_override_flag) NumRefIdxActive[i] = num_ref_idx_active_minus1[i] + 1 (7-43) else {} if(num_ref_entries[i][RplsIdx[i]] >= num_ref_idx_default_active_minus1[i] + 1) NumRefIdxActive[i] = num_ref_idx_default_active_minus1[i] + 1 else NumRefIdxActive[i] = num_ref_entries[i][RplsIdx[i]] } } else / / slice_type = = I ||(slice_type = = P && i = = 1) NumRefIdxActive[i] = 0 }

[0179] NumRefIdxActive[i] A value of 1 specifies the maximum reference index for reference picture list i that can be used to decode the slice. If the value of NumRefIdxActive[i] is equal to 0, no reference index for reference picture list i is used to decode the slice.

[0180] The variable CurrPicIsOnlyRef, which specifies that the current decoded picture is the only reference picture of the current slice, is obtained as follows:

[0181] CurrPicIsOnlyRef = sps_cpr_enabled_flag && (slice_type = = P) && (7-44) (num_ref_idx_active_minus1[0] == 0) Reference picture list structure semantics are provided.

[0182] ref_pic_list_struct(listIdx, rplsIdx) syntactic structures may be present in the SPS or in the slice header. Depending on whether the syntactic structure is included in the slice header or in the sentence structure, the following applies:

[0183] - If present in a slice header, the ref_pic_list_struct(listIdx, rplsIdx) syntax structure specifies the reference picture list list listIdx of the current picture (the picture that contains the slice).

[0184] - Otherwise (if present in the SPS), the ref_pic_list_struct(listIdx, rplsIdx) syntax structure specifies candidates for reference picture list listIdx, and the term "current picture" in the sense specified in the remainder of this section means each picture that 1) has one or more slices with ref_pic_list_idx[listIdx] equal to its index in the list of ref_pic_list_struct(listIdx, rplsIdx) syntax structure contained in the SPS and 2) is in the CVS with the SPS as the active SPS.

[0185] num_ref_entries [listIdx] [rplsIdx] specifies the number of entries in the ref_pic_list_struct(listIdx, rplsIdx) syntax structure. The value of num_ref_entries[listIdx][rplsidx] shall be in the range of 0 to sps_max_dec_pic_buffering_minus1+14.

[0186] ltrp_in_slice_header_flag [listIdx] [rplsIdx] equal to 0 is ref_pic_list_struct(listIdx, The POC LSB of the LTRP entry in the ref_pic_list_struct(listIdx, rplsIdx) syntax structure is ltrp_in_slice_header_flag Specifies that the ltrp_in_slice_header_flag is present in the rplsIdx) syntax structure. [listIdx] [rplsIdx] equal to 1 is ref_pic_list_struct(listIdx, The POC LSB of the LTRP entry in the ref_pic_list_struct(listIdx, rplsIdx) syntax structure is rplsIdx) syntax structure.

[0187] st_ref_pic_flag[listIdx] [rplsIdx] [i] equal to 1 specifies that the i-th entry of the ref_pic_list_struct(listIdx, rplsIdx) syntax structure is a Secure Real-time Transport Protocol (STRP) entry. st_ref_pic_flag[listIdx][rplsIdx][i] equal to 0 specifies that the i-th entry of the ref_pic_list_struct(listIdx, rplsIdx) syntax structure is a LTRP entry. If not present, the value of st_ref_pic_flag[listIdx][rplsIdx][i] is inferred to be equal to 1.

[0188] The variables NumLtrpEntries[listIdx][rplsIdx] are obtained as follows:

[0189] for(i = 0, NumLtrpEntries[listIdx][rplsIdx] = 0; i < num_ref_entries[listIdx][rplsIdx]; i++) if(!st_ref_pic_flag[listIdx][rplsIdx][i]) (7-86) NumLtrpEntries[listIdx][rplsIdx]++

[0190] abs_delta_poc_st [listIdx] [rplsIdx] [i] is the i-th entry of ref_pic_list_struct(listIdx, Specifies the absolute difference between the picture order count values ​​of the current picture and the picture referenced by the i-th entry, if it is the first STRP entry of the ref_pic_list_struct(listIdx, rplsIdx) syntax structure, or specifies the absolute difference between the picture order count values ​​of the pictures referenced by the i-th entry and by the STRP entry preceding it in the ref_pic_list_struct(listIdx, rplsIdx) syntax structure, if the i-th entry is a STRP entry in the ref_pic_list_struct(listIdx, rplsIdx) syntax structure but is not the first STRP entry.

[0191] abs_delta_poc_st The value of [listIdx][rplsIdx][i] is 0 to 2. 15 It is assumed to be in the range of -1.

[0192] strp_entry_entry_sign_flag[listIdx][rplsIdx][i] equal to 1 specifies that the value of the i-th entry in the syntax structure ref_pic_list_struct(listIdx, rplsIdx) is greater than or equal to 0. strp_entry_sign_flag[listIdx] [rplsIdx] equal to 0 specifies that the i-th entry in the syntax structure ref_pic_list_struct(listIdx, rplsIdx) has a value less than 0. If not present, the value of strp_entry_sign_flag[i][j] is inferred to be equal to 1.

[0193] The list DeltaPocSt[listIdx][rplsIdx] is obtained as follows.

[0194] for(i = 0; i < num_ref_entries[listIdx][rplsIdx]; i++) { if(st_ref_pic_flag[listIdx][rplsIdx][i]) { (7-87) DeltaPocSt[listIdx][rplsIdx][i] = (strp_entry_sign_flag[listIdx][rplsIdx][i]) ? abs_delta_poc_st[listIdx][rplsIdx][i] : 0 - abs_delta_poc_st[listIdx][rplsIdx][i] } }

[0195] rpls_poc_lsb_lt [listIdx] [rplsIdx] [i] specifies the value of the picture order count modulo MaxPicOrderCntLsb of the picture referenced by the i-th entry of the ref_pic_list_struct(listIdx, rplsIdx) syntax structure. The length of the [listIdx][rplsIdx][i] syntax element is log2_max_pic_order_cnt_lsb_minus4+4 bits.

[0196] Describe the problems with existing solutions.

[0197] In order to ensure that a reference picture list contains only allowed reference pictures, it is necessary to specify bitstream conformance constraints. In HEVC, the following constraints were specified on the types of reference pictures that may be present in a reference picture set (RPS):

[0198] If the current picture is a CRA picture, the RPS shall not include any pictures that precede, in output order or decoding order, any IRAP picture that precedes it in decoding order (if any).

[0199] - If the current picture is a trailing picture, there shall be no pictures in RefPicSetStCurrBefore, RefPicSetStCurrAfter or RefPicSetLtCurr that were produced by the decoding process to generate an unavailable reference picture as specified in subclause 8.3.3. If the current picture is a trailing picture, there shall be no pictures in the RPS that precede the associated IRAP picture in output order or decoding order.

[0200] If the current picture is a RADL picture, RefPicSetStCurrBefore, RefPicSetStCurrAfter or RefPicSetLtCurr shall not contain any of the following pictures: -RASL Images - a picture generated by a decoding process for generating unavailable reference pictures as specified in subclause 8.3.3 - a picture preceding the associated IRAP picture in decoding order

[0201] For the Reference Picture List (RPL) approach, the following problems are identified:

[0202] 1. In general, no bitstream conformance constraints are specified regarding the types of reference pictures that may be present in a reference picture list.

[0203] 2. When interlaced coding is used, the two fields of an IRAP picture may not both be marked as IRAP pictures, instead only the first field is marked as an IRAP picture and the other field is marked as a trailing picture. This therefore means that the same constraint above that "if the current picture is a trailing picture, there shall be no pictures in the RPS preceding the associated IRAP picture in output order or decoding order" does not work in this situation. The constraint needs to be modified.

[0204] The techniques disclosed herein restrict a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this manner, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus, coders / decoders (also called "codecs") in video coding are improved compared to current codecs. In practical terms, the improved video coding process provides a better user experience for users when videos are transmitted, received and / or viewed.

[0205] FIG. 5 is a coded video sequence 500 illustrating the relationship of an Inner Random Access Point (IRAP) picture 502 to a leading picture 504 and a trailing picture 506 in a decoding order 508 and a presentation order 510 (also known as an output order). In one embodiment, the IRAP picture 502 is called an Instantaneous Decoder Refresh (IDR) picture with a Clean Random Access (CRA) picture or a Random Access Decodable (RADL) picture. In HEVC, IDR pictures, CRA pictures and Broken Link Access (BLA) pictures are all considered as IRAP pictures 502. For VVC, it was agreed during the 12th JVET meeting in October 2018 that both IDR and CRA pictures are IRAP pictures. In one embodiment, Broken Link Access (BLA) and Gradual Decoder Refresh (GDR) pictures may also be considered as IRAP pictures. The decoding process of a coded video sequence always starts with an IRAP picture.

[0206] A CRA picture is an IRAP picture with each video coding layer (VCL) network abstraction layer (NAL) unit's nal_unit_type equal to CRA_NUT. A CRA picture does not reference any other picture than itself for inter prediction in its decoding process, and may be the first picture of the bitstream in decoding order or may appear later in the bitstream. A CRA picture may have associated RADL or random access skip leading (RASL) pictures. If a CRA picture's NoOutputBeforeRecoveryFlag is equal to 1, the associated RASL pictures are not output by the decoder because they may contain references to pictures that do not exist in the bitstream and therefore may not be decodable.

[0207] 5, leading pictures 504 (e.g., pictures 2 and 3) follow the IRAP picture 502 in decoding order 508 but precede the IRAP picture 502 in presentation order 510. A trailing picture 506 follows the IRAP picture 502 in both decoding order 508 and presentation order 510. Although two leading pictures 504 and one trailing picture 506 are shown in FIG. 5, those skilled in the art will understand that in practical applications, there may be more or less leading pictures 504 and / or trailing pictures 506 in the decoding order 508 and presentation order 510.

[0208] The leading pictures 504 in FIG. 5 are divided into two types: random access skip leading and RADL. If the decoding starts from an IRAP picture 502 (e.g., picture 1), the RADL picture (e.g., picture 3) can be properly decoded, but the RASL picture (e.g., picture 2) cannot be properly decoded. Therefore, the RASL picture is discarded. In light of the distinction between RADL and RASL pictures, the type of the leading picture 504 associated with an IRAP picture 502 should be specified as either RADL or RASL for efficient and proper coding. In HEVC, if a RASL and a RADL picture exist, for the RASL and RADL pictures associated with the same IRAP picture 502, the RASL picture is constrained to precede the RADL picture in the presentation order 510.

[0209] The IRAP picture 502 provides two important features / advantages: First, the presence of the IRAP picture 502 indicates that the decoding process can start from that picture. This feature enables a random access feature, where the decoding process starts from that position in the bitstream, not necessarily at the beginning of the bitstream, as long as the IRAP picture 502 is present in that position. Second, the presence of the IRAP picture 502 updates the decoding process such that coded pictures starting with the IRAP picture 502, except for RASL pictures, are coded without reference to preceding pictures. As a result, having the IRAP picture 502 present in the bitstream may stop errors that may occur during the decoding of coded pictures preceding the IRAP picture 502 from propagating to the IRAP picture 502 and those pictures following the IRAP picture 502 in the decoding order 508.

[0210] Although the IRAP picture 502 provides important functionality, it does bring a penalty to compression efficiency. The presence of the IRAP picture 502 results in an increase in bit rate. This penalty to compression efficiency is due to two reasons. First, since the IRAP picture 502 is an intra-predicted picture, it may require relatively more bits to represent the picture compared to other pictures that are inter-predicted pictures (e.g., leading picture 504, trailing picture 506). Second, since the presence of the IRAP picture 502 interrupts the temporal prediction (this is because the decoder refreshes the decoding process, one of the operations of the decoding process for this is to remove previous reference pictures in the decoding picture buffer (DPB)), the IRAP picture 502 reduces the efficiency of coding (i.e., requires more bits to represent) pictures that follow the IRAP picture 502 in the decoding order 508 because they have fewer reference pictures for their inter-predictive coding.

[0211] Among the picture types considered to be IRAP pictures 502, IDR pictures in HEVC have different signaling and derivation when compared to other picture types. Some of the differences are as follows:

[0212] For the signaling and derivation of the Picture Order Count (POC) value for an IDR picture, the Most Significant Bit (MSB) portion of the POC is not derived from the previous key picture, but is simply set equal to 0.

[0213] Regarding the signaling information required for reference picture management, the slice header of an IDR picture does not include information that needs to be signaled to assist in reference picture management. For other picture types (i.e., CRA, trailing, temporal sublayer access (TSS), etc.), the reference picture marking process (i.e., the process of identifying the status of a reference picture in the decoded picture buffer (DPB) as used for reference or not used for reference) requires information such as the reference picture set (RPS) described below or other forms of similar information (e.g., reference picture list). However, for an IDR picture, there is no need to signal such information because the presence of the IDR indicates that the decoding process should mark all reference pictures in the DPB as not used for reference.

[0214] In HEVC and VVC, each of the slices of the IRAP picture 502 and the leading picture 504 may be contained within a single network abstraction layer (NAL) unit. A set of NAL units may be referred to as an access unit. The IRAP picture 502 and the leading picture 504 are given different NAL unit types so that they can be easily identified by system-level applications. For example, a video splicer needs to understand the type of coded picture without understanding too many details of syntax elements in the coded bitstream, and in particular needs to distinguish the IRAP picture 502 from a non-IRAP picture and distinguish the leading picture 504 from the trailing picture 506, including identifying RASL and RADL pictures. The trailing picture 506 is a picture that is related to the IRAP picture 502 and follows the IRAP picture 502 in the presentation order 510. A picture may follow a particular IRAP picture 502 in decoding order 508 and precede other IRAP pictures 502 in decoding order 508. To this end, giving the IRAP pictures 502 and leading pictures 504 their own NAL unit type aids such applications.

[0215] For HEVC, the NAL unit types for an IRAP picture include: BLA with Leading Pictures (BLA_W_LP): A NAL unit of a Broken Link Access (BLA) picture that may be followed in decoding order by one or more leading pictures. BLA with RADL (BLA_W_RADL): A NAL unit of a BLA picture that is not followed in decoding order by a RADL picture and may be followed by one or more RADL pictures. BLA without Leading Picture (BLA_N_LP): A NAL unit of a BLA picture that is not followed in decoding order by a leading picture. IDR with RADL (IDR_W_RADL): A NAL unit of an IDR picture that may be followed in decoding order by one or more RADL pictures without a RADL picture. IDR without Leading Picture (IDR_N_LP): A NAL unit of an IDR picture that is not followed in decoding order by a leading picture. CRA: A NAL unit of a clean random access (CRA) picture that may be followed by a leading picture (i.e., either a RASL picture or a RADL picture, or both). RADL: NAL unit of RADL picture RASL: NAL unit of RASL image

[0216] In the case of VVC, the types of NAL units of the IRAP picture 502 and the leading picture 504 are as follows: IDR with RADL (IDR_W_RADL): A NAL unit of an IDR picture that may be followed in decoding order by one or more RADL pictures without any RADL pictures. IDR without Leading Picture (IDR_N_LP): A NAL unit of an IDR picture that is not followed in decoding order by a leading picture. CRA: A NAL unit of a clean random access (CRA) picture that may be followed by a leading picture (i.e., either a RASL picture or a RADL picture, or both). RADL: NAL unit of RADL picture RASL: NAL unit of RASL image

[0217] 6 illustrates a video bitstream 650 configured to implement a gradual decoding refresh (GDR) technique 600. As used herein, the video bitstream 650 may also be referred to as a coded video bitstream, a bitstream, or variations thereof. As shown in FIG. 6, the bitstream 650 includes a sequence parameter set (SPS) 652, a picture parameter set (PPS) 654, a slice header 656, and image data 658.

[0218] The SPS 652 contains data common to all pictures in a sequence of pictures (SOP). In contrast, the PPS 654 contains data common to the entire picture. The slice header 656 contains information about the current slice, such as the type of slice, which reference pictures to use, etc. The SPS 652 and PPS 654 may be collectively referred to as parameter sets. The SPS 652, PPS 654, and slice header 656 are types of network abstraction layer (NAL) units. A NAL unit is a syntactic structure that contains an indication of the type of data to follow (e.g., coded video data). NAL units are classified into video coding layer (VCL) and non-VCL NAL units. VCL NAL units contain data that represent values ​​of samples in a video picture, and non-VCL NAL units contain parameter sets (important header data applicable to many VCL NAL units) and supplemental enhancement information (timing information and other supplemental data that may increase the usefulness of the decoded video signal but are not necessary to decode the values ​​of samples in a video picture). Those skilled in the art will appreciate that the bitstream 650 may include other parameters and information in practical applications.

[0219] The image data 658 of FIG. 6 includes data related to an encoded or decoded image or video. The image data 658 may simply be referred to as the payload or data carried within the bitstream 650. In one embodiment, the image data 658 includes a CVS 608 (or CLVS) that includes the GDR picture 602, one or more trailing pictures 604, and a recovery point picture 606. In one embodiment, the GDR picture 602 is referred to as a CVS start (CVSS) picture. The CVS 608 is a coded video sequence for each coded layer video sequence (CLVS) in the video bitstream 650. Of note, if the video bitstream 650 includes a single layer, the CVS and CLVS are the same. The CVS and CLVS are different only if the video bitstream 650 includes multiple layers. In one embodiment, the trailing pictures 604 may be considered a form of GDR picture because they precede the recovery point picture 606 in the GDR period.

[0220] In one embodiment, the GDR picture 602, the trailing picture 604, and the recovery point picture 606 may define a GDR period within the CVS 608. In one embodiment, the decoding order begins with the GDR picture 602, followed by the trailing picture 604, and then proceeds to the recovery picture 606.

[0221] A CVS 608 is a sequence of pictures (or a portion thereof) starting with a GDR picture 602 and including all pictures (or a portion thereof) up to (but not including) the next GDR picture or the end of the bitstream. A GDR period is a sequence of pictures starting with a GDR picture 602 and including all pictures up to and including a recovery point picture 606. The decoding process for a CVS 608 always starts with a GDR picture 602.

[0222] 6, the GDR technique 600 or principle operates on a sequence of pictures starting with a GDR picture 602 and ending with a recovery point picture 606. The GDR picture 602 includes a refreshed / clean region 610 that contains blocks all coded using intra prediction (i.e., intra-predicted blocks) and an unrefreshed / dirty region 612 that contains blocks all coded using inter prediction (i.e., inter-predicted blocks).

[0223] The trailing picture 604 immediately adjacent to the GDR picture 602 includes a refresh / clean region 610 having a first portion 610A coded using intra prediction and a second portion 610B coded using inter prediction. The second portion 610B is coded, for example, by referencing the refresh / clean region 610 of a previous picture in the GDR period of the CVS 608. As shown, the refresh / clean region 610 of the trailing picture 604 expands as the coding process moves or proceeds in a consistent direction (e.g., from left to right), causing the unrefreshed / dirty region 612 to correspondingly shrink. Eventually, a recovery point picture 606 is obtained from the coding process that includes only the refresh / clean region 610. Notably, and as will be further described below, the second portion 610B of the refresh / clean region 610 coded as an inter prediction block may only reference the refresh / clean region 610 in the reference picture.

[0224] 6, each of the GDR pictures 602, the trailing pictures 604, and the recovery point pictures 606 in the CVS 608 are contained within their own VCL NAL units 630. The set of VCL NAL units 630 in the CVS 608 may be referred to as an access unit.

[0225] In one embodiment, the VCL NAL unit 630 that includes the GDR picture 602 in the CVS 608 has a GDR NAL unit type (GDR_NUT). That is, in one embodiment, the VCL NAL unit 630 that includes the GDR picture 602 in the CVS 608 has a unique NAL unit type relative to the trailing picture 604 and the recovery point picture 606. In one embodiment, the GDR_NUT allows the bitstream 650 to start at the GDR picture 602 instead of starting at an IRAP picture. Designating the VCL NAL unit 630 of the GDR picture 602 as GDR_NUT may indicate to a decoder, for example, that the initial VCL NAL unit 630 in the CVS 608 includes the GDR picture 602. In one embodiment, the GDR picture 602 is the initial picture in the CVS 608. In one embodiment, the GDR picture 602 is the initial picture of the GDR period.

[0226] 7 is a schematic diagram showing an undesirable motion search 700 when using an encoder constraint to support GDR. As shown, the motion search 700 shows a current picture 702 and a reference picture 704. Each of the current picture 702 and the reference picture 704 includes a refreshed region 706 coded with intra prediction, a refreshed region 708 coded with inter prediction, and an unrefreshed region 710. The refreshed region 706, the refreshed region 708, and the unrefreshed region 710 are similar to the first portion 610A of the refresh / clean region 610, the second portion 610B of the refresh / clean region 610, and the unrefreshed / dirty region 612 of FIG. 6.

[0227] During the motion search process, the encoder is constrained or prevented from selecting a motion vector 712 that results in some of the samples of a reference block 714 being located outside the refresh region 706. This occurs even if the reference block 714 provides the best rate-distortion cost criterion in predicting a current block 716 in the current picture 702. Thus, FIG. 7 illustrates why motion search 700 is suboptimal when using encoder constraints to support GDR.

[0228] FIG. 8 illustrates a video bitstream 850 configured to implement a clean random access (CRA) technique 800. As used herein, the video bitstream 850 may also be referred to as a coded video bitstream, a bitstream, or variations thereof. As shown in FIG. 8, the bitstream 850 includes a sequence parameter set (SPS) 852, a picture parameter set (PPS) 854, a slice header 856, and image data 858. The bitstream 850, SPS 852, PPS 854, and slice header 856 of FIG. 8 are similar to the bitstream 650, SPS 652, PPS 654, and slice header 656 of FIG. 6. Therefore, for brevity, the description of these elements will not be repeated.

[0229] 8 includes data related to the image or video being encoded or decoded. Image data 858 may simply be referred to as the payload or data carried within bitstream 850. In one embodiment, image data 858 includes a CVS 808 (or CLVS) that includes a CRA picture 802, one or more trailing pictures 804, and an end of sequence picture 806. In one embodiment, the CRA picture 802 is referred to as a CVSS picture. The decoding process for a CVS 808 always begins with the CRA picture 802.

[0230] 8, each of the CRA pictures 802, the trailing pictures 804, and the end of the sequence pictures 806 in the CVS 808 are contained within their own VCL NAL units 830. The set of VCL NAL units 830 in the CVS 808 may be referred to as an access unit.

[0231] 9 is a schematic diagram illustrating an example of unidirectional inter prediction 900. The unidirectional inter prediction 900 can be used to determine motion vectors of encoded and / or decoded blocks generated when splitting a picture.

[0232] The unidirectional inter prediction 900 uses a reference frame 930 having a reference block 931 to predict a current block 911 in a current frame 910. The reference frame 930 may be located in time after the current frame 910 (e.g., as a subsequent reference frame) as shown, but in some examples may be located in time before the current frame 910 (e.g., as a preceding reference frame). The current frame 910 is an example frame / picture that is encoded / decoded at a particular time. The current frame 910 includes an object in a current block 911 that matches an object in a reference block 931 of the reference frame 930. The reference frame 930 is a frame used as a reference for encoding the current frame 910, and the reference block 931 is a block in the reference frame 930 that includes an object that is also included in the current block 911 of the current frame 910.

[0233] The current block 911 is any coding unit that is encoded / decoded at a particular point in the coding process. The current block 911 may be an entire partitioned block or a sub-block when using an affine inter-prediction mode. The current frame 910 is separated from the reference frame 930 by a certain temporal distance (TD) 933. The TD 933 indicates the time between the current frame 910 and the reference frame 930 in the video sequence and may be measured in frames. The prediction information for the current block 911 may reference the reference frame 930 and / or the reference block 931 by a reference index that indicates the direction and the temporal distance between the frames. Over the period represented by the TD 933, an object in the current block 911 moves from a position in the current frame 910 to another position in the reference frame 930 (e.g., the position of the reference block 931). For example, the object may move along a motion trajectory 913, which is the direction of the object's movement over time. The motion vector 935 describes the direction and magnitude of the object's movement along the motion trajectory 913 across the TD 933. Therefore, the encoded motion vector 935, the reference block 931, and the residual, which includes the difference between the current block 911 and the reference block 931, provide sufficient information to reconstruct the current block 911 and position the current block 911 within the current frame 910.

[0234] 10 is a schematic diagram illustrating an example of bidirectional inter prediction 1000. The bidirectional inter prediction 1000 can be used to determine motion vectors for encoded and / or decoded blocks generated when splitting a picture.

[0235] Bidirectional inter prediction 1000 is similar to unidirectional inter prediction 900, but uses a pair of reference frames to predict a current block 1011 in a current frame 1010. As such, the current frame 1010 and the current block 1011 are substantially similar to the current frame 710 and the current block 711, respectively. The current frame 1010 may be located in time between a previous reference frame 1020, which appears before the current frame 1010 of the video sequence, and a subsequent reference frame 1030, which appears after the current frame 1010 of the video sequence. The previous reference frame 1020 and the subsequent reference frame 1030 are otherwise substantially similar to reference frame 930.

[0236] A current block 1011 is matched with a previous reference block 1021 in a previous reference frame 1020 and with a subsequent reference block 1031 in a subsequent reference frame 1030. Such a match indicates that an object moves along a motion trajectory 1013 and through the current block 1011 across the video sequence from a position in the previous reference block 1021 to a position in the subsequent reference block 1031. The current frame 1010 is separated from the previous reference frame 1020 by a previous temporal distance (TD0) 1023 and from the subsequent reference frame 1030 by a subsequent temporal distance (TD1) 1033. TD0 1023 indicates the time in frames between the previous reference frame 1020 and the current frame 1010 in the video sequence. TD1 1033 indicates the time in frames between the current frame 1010 and the subsequent reference frame 1030 in the video sequence. Thus, the object moves along the motion trajectory 1013 from the previous reference block 1021 to the current block 1011 over the period indicated by TD0 1023. Also, the object moves along the motion trajectory 1013 from the current block 1011 to the subsequent reference block 1031 over the period indicated by TD1 1033. The prediction information for the current block 1011 may refer to the previous reference frame 1020 and / or previous reference block 1021, and the subsequent reference frame 1030 and / or subsequent reference block 1031, by a pair of reference indexes indicating the direction and the temporal distance between the frames.

[0237] A previous motion vector (MV0) 1025 describes the direction and magnitude of an object's movement along a motion trajectory 1013 across TD0 1023 (e.g., between a previous reference frame 1020 and a current frame 1010). A subsequent motion vector 1035 describes the direction and magnitude of an object's movement along a motion trajectory 1013 across TD1 1033 (e.g., between a current frame 1010 and a subsequent reference frame 1030). Thus, in bidirectional inter prediction 1000, a current block 1011 can be coded and reconstructed by using a previous reference block 1021 and / or a subsequent reference block 1031, MV0 1025, and MV1 1035.

[0238] In one embodiment, inter prediction and / or bidirectional inter prediction may be performed on a sample-by-sample (e.g., pixel-by-pixel) basis, rather than on a block-by-block basis. That is, a motion vector pointing to each sample in the previous reference block 1021 and / or the subsequent reference block 1031 may be determined for each sample in the current block 1011. In such an embodiment, the motion vector 1025 and the motion vector 1035 shown in FIG. 10 represent multiple motion vectors corresponding to multiple samples in the current block 1011, the previous reference block 1021, and the subsequent reference block 1031.

[0239] In both merge and advanced motion vector prediction (AMVP) modes, a candidate list is generated by adding candidate motion vectors to the candidate list in an order defined by a candidate list determination pattern. Such candidate motion vectors may include motion vectors according to unidirectional inter prediction 900, bidirectional inter prediction 1000, or a combination thereof. Specifically, motion vectors are generated for neighboring blocks when such blocks are encoded. Such motion vectors are added to a candidate list for a current block, and a motion vector for the current block is selected from the candidate list. The motion vector may then be signaled as an index of the selected motion vector in the candidate list. A decoder can build a candidate list using the same process as an encoder and determine the selected motion vector from the candidate list based on the signaled index. Thus, the candidate motion vectors include motion vectors generated according to unidirectional inter prediction 900 and / or bidirectional inter prediction 1000, depending on which approach is used when such neighboring blocks are encoded.

[0240] 11 is a schematic diagram illustrating an example reference picture list structure 1100. The reference picture list structure 1100 can be used to store representations of reference pictures and / or inter-layer reference pictures used in unidirectional inter prediction 900 and / or bidirectional inter prediction 1000. As such, the reference picture list structure 1100 can be used by the codec system 200, the encoder 300 and / or the decoder 400 when performing the method 100.

[0241] The reference picture list structure 1100, also known as the RPL structure, is an addressable syntax structure that includes multiple reference picture lists, such as RPL 0 1111 and RPL 1 112. The reference picture list structure 1100 may be stored in an SPS, a picture header, and / or a slice header of a bitstream, depending on the example. The reference picture lists, such as RPL 0 1111 and RPL 1 111, are lists of reference pictures used for inter prediction and / or inter-layer prediction. Specifically, reference pictures used by unidirectional inter prediction 900 are stored in RPL 0 1111, and reference pictures used by bidirectional inter prediction 1000 are stored in both RPL 0 1111 and RPL 1 1112. For example, bidirectional inter prediction 1000 may use one reference picture from RPL 0 1111 and one reference picture from RPL 1 1112. Each of RPL 0 1111 and RPL 1 1112 may include multiple entries 1115. A reference picture list structure entry 1115 is an addressable location within the reference picture list structure 1100 that indicates a reference picture associated with a reference picture list, such as RPL 0 1111 and / or RPL 1 1112.

[0242] In a particular example, the reference picture list structure 1100 may be denoted as ref_pic_list_struct(listIdx, rplsIdx), where listIdx 1121 identifies reference picture list RPL 0 1111 and / or RPL 1 1112, and rplsIdx 1125 identifies an entry 1115 in the reference picture list. Thus, ref_pic_list_struct is a syntax structure that returns an entry 1115 based on listIdx 1121 and rplsIdx 1125. An encoder may encode a portion of the reference picture list structure 1100 for each non-intra-coded slice in a video sequence. A decoder may then resolve a corresponding portion of the reference picture list structure 1100 before decoding each non-coded slice in a coded video sequence. In one embodiment, the reference picture lists described herein are coded, constructed, derived or otherwise obtained by an encoder or decoder using information stored in the encoder or decoder, and are obtained at least in part from the bitstream.

[0243] 12A-12C are schematic diagrams collectively illustrating an example of interlaced video coding. Interlaced video coding generates an interlaced video frame 1200 as shown in FIG. 12C from a first picture 1201 and a second picture 1202 shown in FIG. 12A and FIG. 12B. For example, interlaced video coding may be used by an encoder, such as codec system 200 and / or encoder 300, as part of method 100 when encoding a video including interlaced video frame 1200. Also, a decoder, such as codec system 200 and / or decoder 400, may decode the video including interlaced video frame 1200. In addition, interlaced video frame 1200 may be coded into a CVS, such as CVS 500 of FIG. 5, as described in more detail below with respect to FIG. 13.

[0244] When performing interlaced video coding, a first field 1210 is captured at a first time and encoded into a first picture 1201 as shown in FIG. 12A. The first field 1210 includes horizontal lines of video data. Specifically, the horizontal lines of video data in the first field 1210 extend from a left boundary of the first picture 1201 to a right boundary of the first picture 1201. However, the first field 1210 omits alternating rows of video data. In an exemplary implementation, the first field 1210 includes half of the video data captured by a video capture device at a first time.

[0245] As shown in FIG. 12B, the second field 1212 is captured at a second time and encoded into the second picture 1202. For example, the second time may immediately follow the first time by a set value based on the frame rate set for the video. For example, in a video set to be displayed at a frame rate of 15 frames per second (FPS), the second time may occur 1 / 15th of a second after the first time. As shown, the second field 1212 includes horizontal lines of video data that are complementary to the horizontal lines of the first field 1210 of the first picture 1201. Specifically, the horizontal lines of video data in the second field 1212 extend from the left boundary of the second picture 1202 to the right boundary of the second picture 1202. The second field 1212 includes horizontal lines that are omitted by the first field 1210. In addition, the second field 1212 omits horizontal lines included in the first field 1210.

[0246] The first field 1210 of the first picture 1201 and the second field 1212 of the second picture 1202 can be combined for display at a decoder as an interlaced video frame 1200, as shown in FIG. 12C. Specifically, the interlaced video frame 1200 includes the first field 1210 of the first picture 1201 captured at a first time and the second field 1212 of the second picture 1202 captured at a second time. Such a combination has a visual effect of enhanced and / or exaggerated motion. When displayed as part of a video, the series of interlaced video frames 1200 creates the impression that the video has been encoded at an increased frame rate without the need to actually encode additional frames. In this way, interlaced video coding using the interlaced video frames 1200 can increase the effective frame rate of the video without a concomitant increase in video data size. Thus, interlaced video coding can increase the coding efficiency of an encoded video sequence.

[0247] 13 is a schematic diagram illustrating an example CVS 1300 that uses both interlaced video coding and leading pictures to generate, for example, an interlaced video frame 1200. CVS 1300 is substantially similar to CVS 500, but modified to encode pictures having fields, such as first picture 1201 and second picture 1202, while retaining leading pictures. For example, CVS 1300 may be encoded by an encoder, such as codec system 200 and / or encoder 300, in accordance with method 100. CVS 1300 may also be decoded by a decoder, such as codec system 200 and / or decoder 400.

[0248] The CVS 1300 has a decoding order 1308 and a presentation order 1310 (also known as an output order) that operate in a manner substantially similar to the decoding order 508 and the presentation order 510, respectively. The CVS 1300 includes an IRAP picture 1302, a leading picture 1304, and a trailing picture 1306, which are similar to the IRAP picture 502, the leading picture 504, and the trailing picture 506. The difference is that the IRAP picture 1302, the leading picture 1304, and the trailing picture 1306 are all coded using fields in a manner substantially similar to the first field 1210 and the second field 1212 described with respect to Figures 12A-12C. Thus, each frame includes two pictures. Thus, the CVS 1300 includes twice as many pictures as the CVS 500. However, CVS1300 contains approximately the same amount of data as CVS500 because each of CVS1300's pictures omits half of the frame.

[0249] The problem with CVS 1300 is that IRAP picture 1302 is encoded by including a first field of intra-predictive coded data, and a second field of intra-predictive coded data is included in non-leading picture 1303. Non-leading picture 1303 is not an IRAP picture 1302 because a decoder cannot start decoding CVS 1300 at non-leading picture 1303, because doing so would result in half of the frame associated with IRAP picture 1302 being omitted. This creates a problem because a video coding system using VVC may be constrained to position leading picture 1304 immediately after IRAP picture 1302 in decoding order 1308.

[0250] In one embodiment, a flag may be communicated to indicate when a single non-leading picture 1303 is permitted to be placed between the IRAP picture 1302 and the leading picture 1304. The video system may still be constrained to prevent non-leading pictures 1303 and / or trailing pictures 1306 from being placed between the leading pictures 1304. Thus, the flag may indicate that the decoding order 1308 includes an IRAP picture 1302, a single non-leading picture 1303, an optional leading picture 1304 (e.g., the leading picture 1304 is optional and may be omitted in some examples), and one or more trailing pictures 1306. Thus, the flag may indicate to the decoder whether to expect CVS500 or CVS1300.

[0251] FIG. 14 illustrates a partitioning technique 1400 for a picture 1410. The picture 1410 may be similar to any picture described herein (e.g., pictures 502-506, 602-606, 702-704, and 802-806). As illustrated, the picture 1410 may be partitioned into a number of slices 1412. A slice is a spatially distinct region of a frame (e.g., a picture) that is encoded separately from any other region within the same frame. Although three slices 1412 are illustrated in FIG. 14, more or fewer slices may be used in actual applications. Each slice 1412 may be partitioned into a number of blocks 1414. The blocks 1414 in FIG. 14 may be similar to the current block 1011, the previous reference block 1021, and the subsequent reference block 1031 in FIG. 10. The blocks 1414 may represent CUs. Although four blocks 1414 are shown in FIG. 14, more or fewer blocks may be used in an actual application.

[0252] FIG. 15 is an embodiment of a method 1500 of decoding. The method 1500 can be used by a video decoder (e.g., decoder 400). The method 1500 may be performed after receiving a coded video bitstream directly or indirectly from a video encoder (e.g., video encoder 300). The method 1500 improves the decoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0253] At block 1502, a video decoder receives a coded video bitstream that includes a current picture. At block 1504, the video decoder obtains a first reference picture list and a second reference picture list for each slice of the current picture. In one embodiment, the reference picture lists are coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream.

[0254] In block 1506, the video decoder determines that the current picture is a clean random access (CRA) picture, which indicates that the picture shall not be referenced, in output order or decoding order, by an entry in the first or second reference picture list that precedes any Intra Random Access Point (IRAP) picture that precedes it in the decoding order.

[0255] In one embodiment, the preceding IRAP picture precedes the CRA picture in output order or decoding order. In one embodiment, the preceding IRAP picture starts a coded video sequence (CVS) that includes the CRA picture. In one embodiment, the first reference picture list is specified in RefPicList[0] and the second reference picture list is specified in RefPicList[1].

[0256] At block 1508, the video decoder decodes each slice of the CRA picture based on one or both of the first and second reference picture lists. In one embodiment, one or more pictures following the CRA picture in decoding order are decoded using inter prediction. In one embodiment, the method 1500 further includes displaying an image generated based on the CRA picture on a display of the video decoder.

[0257] FIG. 16 is an embodiment of a method 1600 of encoding. The method 1600 can be used by a video encoder (e.g., the video encoder 300). The method can be performed when a picture (e.g., from a video) is encoded into a video bitstream and then transmitted to a video decoder (e.g., the video decoder 400). The method 1600 can be performed after a coded video bitstream is received directly or indirectly from a video encoder (e.g., the video encoder 300). The method 1500 improves the encoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding can be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0258] In block 1602, the video encoder obtains a first reference picture list and a second reference picture list if the current picture includes a clean random access (CRA) picture. In one embodiment, no picture shall be referenced in output order or decoding order by an entry in the first reference picture list or the second reference picture list that precedes any Intra Random Access Point (IRAP) picture that precedes it in the decoding order. In one embodiment, the reference picture lists are coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, or the like.

[0259] In one embodiment, the preceding IRAP picture precedes the CRA picture in output order or decoding order. In one embodiment, the preceding IRAP picture starts a coded video sequence (CVS) that includes the CRA picture. In one embodiment, the first reference picture list is specified in RefPicList[0] and the second reference picture list is specified in RefPicList[1].

[0260] In block 1604, the video encoder encodes the CRA picture and one or both of the first and second reference picture lists into a video bitstream.

[0261] At block 1606, the video encoder stores the video bitstream pending transmission to the video decoder. In one embodiment, the video encoder transmits the video bitstream to the video decoder.

[0262] FIG. 17 is an embodiment of a method 1700 of decoding. The method 1700 may be used by a video decoder (e.g., decoder 400). The method 1700 may be performed after receiving a coded video bitstream directly or indirectly from a video encoder (e.g., video encoder 300). The method 1700 improves the decoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0263] At block 1702, a video decoder receives a coded video bitstream that includes a current picture. At block 1704, the video decoder obtains a first reference picture list and a second reference picture list for each slice of the current picture. In one embodiment, the reference picture lists are coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, etc.

[0264] In block 1706, the video decoder determines that the current picture is a trailing picture that follows one or more leading pictures associated with the same intra random access point (IRAP) picture in both decoding order and output order. A trailing picture represents a picture that shall not be referenced by an entry in a first reference picture list or a second reference picture list generated by a decoding process to generate an unavailable reference picture for an IRAP picture associated with the current picture. In one embodiment, the same IRAP picture starts a coded video sequence (CVS) that includes a trailing picture and one or more leading pictures.

[0265] In some cases, a picture may be used as a random access point without updating the DPB. For example, GDR and CRA pictures may be used as random access points and may not update the DPB. Thus, the GDR and / or CRA pictures associated with the GDR and / or CRA pictures may refer to reference pictures in the DPB preceding the GDR / CRA picture. When a GDR / CRA picture is used as a random access point, the GDR / CRA picture may be empty in the DPB at the decoder because it is used as a starting point for displaying the video sequence. Thus, the current picture may refer to a preceding picture in the video sequence that is available at the encoder during encoding but is not available at the decoder because the reference picture has not been transmitted. Such a reference picture is called an unavailable reference picture. In such a case, a process for generating an unavailable reference picture may be invoked at the decoder. The process for generating an unavailable reference picture uses bitstream parameters to generate a rough approximation of the unavailable reference picture. The generated unavailable reference picture may not be displayed because its quality is insufficient for display, but it provides enough data to support decoding of the current picture that references the unavailable reference picture.

[0266] In one embodiment, the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or for gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0267] If the decoding process is invoked to generate unavailable reference pictures, the following applies:

[0268] - For each RefPicList[i][j], where i ranges from 0 to 1 and j ranges from 0 to num_ref_entries[i][RplsIdx[i]]-1, that equals "no reference picture", a picture is generated as specified in Section 8.3.4.2 "Generation of a Single Unavailable Picture" of the VVC standard, where the following applies:

[0269] - The value of nuh_layer_id of the generated picture is set equal to the nuh_layer_id of the current picture.

[0270] - if st_ref_pic_flag[i][RplsIdx[i]][j] is equal to 1 and inter_layer_ref_pic_flag[i] If [RplsIdx[i]][j] is equal to 0, the value of PicOrderCntVal of the generated picture is set equal to RefPicPocList[i][j] and the generated picture is marked as "used for short-term reference".

[0271] - Otherwise, if st_ref_pic_flag[i][RplsIdx[i]][j] is equal to 0 and inter_layer_ref_pic_flag[i][RplsIdx[i]][j] is equal to 0, the value of PicOrderCntVal of the generated picture is set equal to RefPicLtPocList[i][j] and the value of ph_pic_order_cnt_lsb of the generated picture is set equal to (RefPicLtPocList[i][j] & (MaxPicOrderCntLsb -1)) and the generated picture is marked "used for long term reference".

[0272] - The value of PictureOutputFlag of the generated reference picture is set equal to 0.

[0273] - RefPicList[i][j] is set to the generated reference pictures.

[0274] The creation of one unavailable picture is as follows:

[0275] When this process is invoked, the unavailable picture is generated as follows:

[0276] The value of each element of the picture's sample array SL is set equal to 1<<(BitDepth-1).

[0277] If ChromaArrayType is not equal to 0, the value of each element of the picture's sample arrays SCb and SCr is set equal to 1<<(BitDepth-1).

[0278] The prediction mode CuPredMode[0][x][y] is set equal to MODE_INTRA, where x ranges from 0 to pps_pic_width_in_luma_samples-1 and y ranges from 0 to pps_pi_height_in_luma_samples-1.

[0279] NOTE - In output order and decoding order, the output of a recovery point picture following a GDR picture with NoOutputBeforeRecoveryFlag equal to 1 and pictures following that recovery point picture is independent of the values ​​set in the elements of SL, SCb, SCr, and CuPredMode[0][x][y].

[0280] nuh_layer_id specifies the identifier of the layer to which a VCL NAL unit belongs or to which a non-VCL NAL unit applies. RplsIdx is the reference picture list index. st_ref_pic_flag is a flag in the reference picture list syntax structure that indicates whether the reference picture list is a short-term reference picture entry. PicOrderCntVal represents the value of the picture order count (POC). MaxPicOrderCntLsb represents the least significant bit of the maximum picture order count. PictureOutputFlag is a flag that indicates whether the picture is output.

[0281] In block 1708, the video decoder decodes each slice of the trailing picture based on one or both of the first and second reference picture lists. In one embodiment, the same IRAP picture is decoded using intra prediction, and the trailing picture and one or more leading pictures are decoded using inter prediction. In one embodiment, the method 1700 further includes displaying an image generated based on the trailing picture on a display of the video decoder.

[0282] FIG. 18 is an embodiment of a method 1800 of encoding. The method 1800 can be used by a video encoder (e.g., video encoder 300). The method can be performed when a picture (e.g., from a video) is encoded into a video bitstream and then transmitted to a video decoder (e.g., video decoder 400). The method 1800 improves the encoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding can be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0283] In block 1802, the video encoder obtains a first reference picture list and a second reference picture list when the current picture is a trailing picture that follows one or more leading pictures associated with the same Intra Random Access Point (IRAP) picture in both decoding order and output order. In one embodiment, the picture shall not be referenced by an entry in the first reference picture list or the second reference picture list generated by the decoding process to generate an unavailable reference picture for the IRAP picture associated with the current picture. In one embodiment, the reference picture list is coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, etc.

[0284] In one embodiment, the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or for gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0285] In one embodiment, the video encoder may check every time NoOutPutBeforeRecoveryFlag is equal to 1 to ensure that the reference picture list does not reference a reference picture from a previous CVS, because such a picture may not be available at the video decoder when a CRA or GDR picture is selected as a random access point. In such a case, the video encoder performs this check because the video decoder also performs this check.

[0286] In one embodiment, the same IRAP picture starts a coded video sequence (CVS) that includes a trailing picture and one or more leading pictures, in one embodiment, the same IRAP picture is encoded into a video bitstream using intra prediction, and the trailing picture and one or more leading pictures are encoded using inter prediction.

[0287] In block 1804, the video encoder encodes the trailing picture and one or both of the first and second reference picture lists into a video bitstream.

[0288] At block 1806, the video encoder stores the video bitstream pending transmission to the video decoder. In one embodiment, the video encoder transmits the video bitstream to the video decoder.

[0289] FIG. 19 is an embodiment of a method 1900 of decoding. The method 1900 may be used by a video decoder (e.g., decoder 400). The method 1900 may be performed after receiving a coded video bitstream directly or indirectly from a video encoder (e.g., video encoder 300). The method 1900 improves the decoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding may be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0290] At block 1902, a video decoder receives a coded video bitstream that includes a current picture. At block 1904, the video decoder obtains a first reference picture list and a second reference picture list for each slice of the current picture. In one embodiment, the reference picture lists are coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, etc.

[0291] In block 1906, the video decoder determines that the current picture is a trailing picture that follows one or more leading pictures associated with the same Intra Random Access Point (IRAP) picture in both decoding order and output order. A trailing picture indicates that the picture shall not be referenced by an entry in the first or second reference picture list that precedes the same IRAP picture in output order or decoding order.

[0292] In one embodiment, the same IRAP picture begins a coded video sequence (CVS) that includes a trailing picture and one or more leading pictures.

[0293] In block 1908, the video decoder decodes each slice of the trailing picture based on one or both of the first and second reference picture lists. In one embodiment, the same IRAP picture is decoded using intra prediction, and the trailing picture and one or more leading pictures are decoded using inter prediction. In one embodiment, the method 1900 further includes displaying an image generated based on the trailing picture on a display of the video decoder.

[0294] FIG. 20 is an embodiment of a method 2000 of encoding. The method 2000 can be used by a video encoder (e.g., video encoder 300). The method can be performed when a picture (e.g., from a video) is encoded into a video bitstream and then transmitted to a video decoder (e.g., video decoder 400). The method 2000 improves the encoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding can be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0295] In block 2002, the video encoder obtains a first reference picture list and a second reference picture list when the current picture is a trailing picture that follows one or more leading pictures associated with the same Intra Random Access Point (IRAP) picture in both decoding order and output order. In one embodiment, no picture shall be referenced by an entry in the first reference picture list or the second reference picture list that precedes the same IRAP picture in output order or decoding order. In one embodiment, the reference picture list is coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, or the like.

[0296] In one embodiment, the same IRAP picture starts a coded video sequence (CVS) that includes a trailing picture and one or more leading pictures, in which the same IRAP picture is encoded into the video bitstream using intra prediction, and the trailing picture and one or more leading pictures are encoded using inter prediction.

[0297] In block 2004, the video encoder encodes the trailing picture and one or both of the first and second reference picture lists into a video bitstream.

[0298] At block 2006, the video encoder stores the video bitstream pending transmission to the video decoder. In one embodiment, the video encoder transmits the video bitstream to the video decoder.

[0299] FIG. 21 is an embodiment of a method 2100 of decoding. The method 2100 can be used by a video decoder (e.g., decoder 400). The method 2100 can be performed after receiving a coded video bitstream directly or indirectly from a video encoder (e.g., video encoder 300). The method 2100 improves the decoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding can be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0300] At block 2102, a video decoder receives a coded video bitstream that includes a current picture. At block 2104, the video decoder obtains a first reference picture list and a second reference picture list for each slice of the current picture. In one embodiment, the reference picture lists are coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, etc.

[0301] In block 2106, the video decoder determines that the current picture is a Random Access Decodable Leading (RADL) picture. A RADL picture represents that there is no active entry in the first reference picture list or the second reference picture list that is any of a Random Access Skip Leading (RASL) picture, a picture generated by a decoding process to generate an unavailable reference picture, and a picture preceding an associated Intra Random Access Point (IRAP) picture in decoding order. In one embodiment, any of the following may mean any one of the following:

[0302] In one embodiment, the decoding process for generating unavailable reference pictures is invoked once per coded picture for clean random access (CRA) pictures with NoOutPutBeforeRecoveryFlag equal to 1 or for gradual decoding refresh (GDR) pictures with NoOutPutBeforeRecoveryFlag equal to 1.

[0303] In block 2108, the video decoder decodes each slice of the RADL picture based on one or both of the first and second reference picture lists. In one embodiment, the method 2100 further includes displaying an image generated based on the RADL picture on a display of the video decoder.

[0304] FIG. 22 is an embodiment of a method 2200 of encoding. The method 2200 can be used by a video encoder (e.g., video encoder 300). The method can be performed when a picture (e.g., from a video) is encoded into a video bitstream and then transmitted to a video decoder (e.g., video decoder 400). The method 2200 improves the encoding process by restricting a reference picture list from including entries that refer to a particular picture if the current picture is a particular type of picture (e.g., a CRA picture, a trailing picture, a trailing picture and a RADL picture that follow one or more leading pictures associated with the same IRAP picture in both decoding order and output order). By restricting the reference picture list in this way, coding errors and the amount of bandwidth and / or network resources required for coding can be reduced compared to conventional coding techniques. Thus. In practice, the performance of the codec is improved, leading to a better user experience.

[0305] In block 2202, if the current picture is a random access decodable leading (RADL) picture, the video encoder obtains a first reference picture list and a second reference picture list. There shall be no active entries in the first reference picture list or the second reference picture list that are any of a random access skip leading (RASL) picture, a picture generated by the decoding process for generating the unavailable reference picture, and a picture preceding the associated intra random access point (IRAP) picture in decoding order. In one embodiment, the decoding process for generating the unavailable reference picture is invoked once per coded picture for a clean random access (CRA) picture with NoOutPutBeforeRecoveryFlag equal to 1 or a gradual decoding refresh (GDR) picture with NoOutPutBeforeRecoveryFlag equal to 1. In one embodiment, the reference picture list is coded, constructed, or otherwise obtained by the decoder using information stored in the decoder, information obtained at least in part from the bitstream, or the like.

[0306] In block 2204, the video encoder encodes the RADL picture and one or both of the first and second reference picture lists into a video bitstream.

[0307] At block 2206, the video encoder stores the video bitstream pending transmission to the video decoder. In one embodiment, the video encoder transmits the video bitstream to the video decoder.

[0308] FIG. 23 is a schematic diagram of an example video coding device 2300. The video coding device 2300 is suitable for implementing examples / embodiments of the disclosure described herein. The video coding device 2300 includes a downstream port 2310, an upstream port 2350, and / or transceiver units (Tx / Rx) 2320, 2340 including transmitters and / or receivers for communicating data upstream and / or downstream across a network. The video coding device 2300 includes a processor 2330 including a logic unit and / or central processing unit (CPU) for processing data, and a memory 2360 for storing data. The video coding device 2300 may also include optical / electrical (OE), electrical / optical (EO), and / or wireless communication components coupled to the upstream port 2350 and / or downstream port 2310 for communicating data over an electrical, optical, or wireless communication network. The video coding device 2300 may also include input and / or output (I / O) devices 2380 for communicating data to and from a user. The I / O devices 2380 may include output devices such as a display for displaying video data, speakers for outputting audio data, etc. The I / O devices 2380 may also include input devices such as a keyboard, mouse, trackball, etc. and / or corresponding interfaces for interacting with such output devices.

[0309] The processor 2330 is implemented by hardware and software. The processor 2330 may be implemented as one or more CPU chips, cores (e.g., multi-core processors), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor 2330 communicates with the downstream port 2310, the Tx / Rx 2320, 2340, the upstream port 2350, and the memory 2360. The processor 2330 includes a coding module 2314. The coding module 2370 may implement the disclosed embodiments described herein and may also implement any other method / mechanism described herein. The coding module 2370 may also implement the codec system 200, the encoder 300, and / or the decoder 400. For example, the coding module 2370 may be used to code an inter-layer residual prediction (ILRP) flag and / or an ILRP layer indicator in a reference picture structure to manage reference pictures to support inter-layer prediction, as described above. As such, coding module 2370 allows video coding device 2300 to provide additional functionality and / or coding efficiency when coding video data. As such, coding module 2314 improves the functionality of video coding device 2300 and addresses problems specific to video coding techniques. Coding module 2370 also effects transformation of video coding device 2300 into a different state. Alternatively, coding module 2370 may be implemented as instructions stored in memory 2360 and executed by processor 2330 (e.g., as a computer program product stored on a non-transitory medium).

[0310] Memory 2360 may include one or more memory types such as a disk, a tape drive, a solid state drive, read only memory (ROM), random access memory (RAM), flash memory, ternary content addressable memory (TCAM), static random access memory (SRAM), etc. Memory 2360 stores programs when such programs are selected for execution, and may be used as overflow data storage to store instructions and data retrieved during program execution.

[0311] 24 is a schematic diagram of an embodiment of a means for coding 2400. In one embodiment, the means for coding 2400 is implemented in a video coding device 2402 (e.g., video encoder 300 or video decoder 400). The video coding device 2402 includes a means for receiving 2401. The means for receiving 2401 is configured to receive an image for encoding or a bitstream for decoding. The video coding device 2402 includes a means for transmitting 2407 coupled to the means for receiving 2401. The means for transmitting 2407 is configured to transmit the bitstream to a decoder or transmit the decoded image to a display means (e.g., one of the I / O devices 2380).

[0312] The video coding device 2402 includes a storage means 2403. The storage means 2403 is coupled to at least one of the receiving means 2401 or the transmitting means 2407. The storage means 2403 is configured to store instructions. The video coding device 2402 also includes a processing means 2405. The processing means 2405 is coupled to the storage means 2403. The processing means 2405 is configured to execute the instructions stored in the storage means 2403 in order to perform the methods disclosed herein.

[0313] It should be understood that the steps of the example methods described herein do not necessarily have to be performed in the order described, and that the ordering of steps in such methods is merely exemplary. Similarly, additional steps may be included in such methods, and certain steps may be omitted or combined in methods consistent with various embodiments of the present disclosure.

[0314] Although several embodiments have been provided in this disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the disclosure. The examples herein are illustrative and should not be considered limiting, and the intention is not to be limited to the details provided herein. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.

[0315] Additionally, the techniques, systems, subsystems, and methods described and illustrated in various embodiments as separate or distinct may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items illustrated or described as coupled or directly coupled or in communication with each other may be indirectly coupled or in communication, electrically, mechanically, or otherwise, through some interface, device, or intermediate component. Other examples of changes, substitutions, and alterations will be ascertainable by one of ordinary skill in the art and may be made without departing from the spirit and scope of the disclosure herein.

Claims

1. 1. A method of decoding implemented by a video decoder, comprising: receiving, by the video decoder, a coded video bitstream including a current picture; obtaining, by the video decoder, a first reference picture list and a second reference picture list for each slice of the current picture, the first reference picture list and the second reference picture list being coded or constructed by the video decoder using information stored in the video decoder and information from the video bitstream, the information stored in the video decoder including unavailable reference pictures generated by the video decoder for previous pictures that are not available to the video decoder; determining, by the video decoder, that the current picture is a clean random access (CRA) picture, which indicates that there is no picture referenced by an entry in the first reference picture list or the second reference picture list that precedes in output order or decoding order any preceding intra random access point (IRAP) picture in decoding order, the preceding IRAP picture starting a coded video sequence (CVS) that includes the CRA picture; decoding, by the video decoder, each slice of the CRA picture; The method includes:

2. The method of claim 1 , wherein one or more pictures following the CRA picture in the decoding order are decoded using inter prediction.

3. The method of claim 1 or 2, wherein the first reference picture list is specified in RefPicList[0] and the second reference picture list is specified in RefPicList[1].

4. A decoding device, comprising: a receiver configured to receive a coded video bitstream including a current picture; a memory coupled to the receiver, the memory storing instructions; a processor coupled to the memory, the processor executing the instructions to cause the decoding device to: obtaining a first reference picture list and a second reference picture list for each slice of the current picture, the first reference picture list and the second reference picture list being coded or constructed by the decoding device using information stored in the decoding device and information from the video bitstream, the information stored in the decoding device including unavailable reference pictures generated by the decoding device for previous pictures that are not available to the decoding device; determining that the current picture is a clean random access (CRA) picture, which indicates that there is no picture referenced by an entry in the first reference picture list or the second reference picture list that precedes in output order or decoding order any preceding intra random access point (IRAP) picture in decoding order, the preceding IRAP picture starting a coded video sequence (CVS) that includes the CRA picture; Decoding each slice of the CRA picture; a processor configured to cause A decoding device comprising:

5. The decoding device of claim 4, wherein the CRA picture is decoded using intra prediction, and one or more pictures following the CRA picture in the decoding order are decoded using inter prediction.

6. A means for coding, comprising: receiving means configured to receive a bitstream for decoding; a transmitting means coupled to the receiving means, the transmitting means configured to transmit the bitstream to a decoding means; a storage means coupled to at least one of the receiving means or the transmitting means, the storage means configured to store instructions; - a processing means coupled to the memory, the processing means being configured to execute instructions stored in the memory means in order to perform the method of any one of claims 1 to 3; A means for coding, including

7. 4. A computer readable storage medium, the computer readable storage medium storing a computer program executable by a processor, the computer program, when executed by the processor, causing the processor to perform the method according to any one of claims 1 to 3.

8. A computer program comprising instructions which, when executed by a computer, cause the computer to perform a method according to any one of claims 1 to 3.

Citation Information

Patent Citations

  • Video encoding and decoding

    US20150103927A1

  • Image decoding device, image coding device, and coded data

    US20160241835A1

  • Methods and systems of improved video stream switching and random access

    US20170094302A1

  • Image decoding device, image coding device, and coded data

    WO2015053286A1