Processing of padding data units in video streams
By modifying the signaling design of sub-pictures, slices and stripes in VVC, the number of sub-pictures, unclear signaling notification of sub-picture IDs, and bitstream consistency are solved, and more flexible and efficient coding is achieved.
Patent Information
- Application Number
- CN202180008861.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-09
- Filing Date
- 2021-01-08
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2041-01-08
AI Technical Summary
There are some problems with the signaling design of VVC neutron pictures, slices and stripes, including the low limit on the number of sub-pictures per picture, unclear signaling notification of sub-picture ID, and insufficient bitstream consistency requirements.
By modifying the encoding method of relevant syntax elements, such as changing the encoding of sps_num_subpics_minus1 from u(8) to ue(v), allowing more than 256 sub-pictures per picture; explicit signaling notification of sub-picture ID in SPS or PPS; adding flags to ensure bitstream consistency.
The problems of limiting the number of sub-pictures, unclear signaling notification of sub-picture IDs, and bitstream consistency are solved, and the flexibility and efficiency of VVC encoding are improved.
Smart Images

Figure CN114982243B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is based on International Patent Application No. PCT / US2021 / 012840 filed on January 8, 2021, which claims priority and benefits to U.S. Provisional Patent Application No. US 62 / 959,108 filed on January 9, 2020. All of the above patent applications are hereby incorporated by reference in their entirety. Technical Field
[0003] This application document relates to image and video encoding and decoding. Background Art
[0004] Digital video accounts for the largest use of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth requirements for digital video usage are expected to continue to grow. Summary of the invention
[0005] This document discloses a video encoder and decoder for video encoding and decoding, respectively, and includes constraints, limitations and signaling for sub-pictures, slices and slices.
[0006] In one example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video, wherein the bitstream includes one or more access units according to a format rule, and wherein the format rule specifies an order in which a first message and a second message for an operation point OP appear in the access unit AU such that the first message precedes the second message in a decoding order.
[0007] In another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video, wherein the bitstream includes one or more access units according to a format rule, and wherein the format rule specifies an order in which a plurality of messages for an operation point OP appear in the access unit such that a first message of the plurality of messages precedes a second message of the plurality of messages in a decoding order.
[0008] In another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video including a picture and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether to signal an indication of a first flag at the beginning of a picture header associated with the picture, wherein the first flag indicates whether the picture is an intra random access point (IRAP) picture or a gradual decoding refresh (GDR) picture.
[0009] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video including one or more pictures and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule does not allow encoding and decoding of a picture of the one or more pictures to include a codec slice network abstraction layer NAL unit with a progressive decoding refresh type and to be associated with a flag indicating that the picture includes the NAL unit of a mixed type.
[0010] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video including one or more pictures and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule allows encoding and decoding of a picture of the one or more pictures to include a codec slice network abstraction layer NAL unit with a progressive decoding refresh type and to be associated with a flag indicating that the picture does not include the NAL unit of a hybrid type.
[0011] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a picture of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, the format rule specifying whether to signal a first syntax element in a picture parameter set (PPS) associated with the picture, wherein the picture includes one or more slices having a slice type, wherein since the first syntax element is equal to 0, the first syntax element indicates that the slice type is signaled in a picture header, otherwise the first syntax element indicates that the slice type is signaled in a slice header.
[0012] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a picture of a video and a bitstream of the video according to a rule, wherein the conversion includes a loop filtering process, and wherein the rule specifies that a total number of vertical virtual boundaries and a total number of horizontal virtual boundaries associated with the loop filtering operation are signaled at a picture level or a sequence level.
[0013] In yet another example aspect, a video processing method is disclosed. The method includes performing conversion between a video including one or more pictures and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule conditionally allows encoding and decoding of a picture in a layer by using a reference picture from another layer based on a first syntax element, the first syntax element indicating whether the reference picture from the other layer is present in the bitstream, and wherein the first syntax element is conditionally signaled in the bitstream based on a second syntax element indicating whether an identifier of a parameter set associated with the picture is not equal to 0.
[0014] In another example aspect, a video processing method is disclosed. The method includes: performing conversion between a picture of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies a first syntax element, wherein the first syntax element enables (a) synchronization of context variables before decoding a codec tree unit CTU in the picture and (b) storage of the context variables after decoding the CTU, wherein the first syntax element is signaled in a sequence parameter set SPS associated with the picture.
[0015] In yet another example aspect, a video processing method is disclosed. The method includes performing conversion between a picture of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies a syntax element, the syntax element indicating whether there is a signaling notification of an entry point offset for a slice or a slice-specified codec tree unit (CTU) row in a slice header of the picture, and wherein the syntax element is signaled in a sequence parameter set (SPS) associated with the picture.
[0016] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies a first syntax element, the first syntax element indicating that the number of parameters for an output layer set OLS hypothesized reference decoder HRD in a video parameter set VPS associated with the video is less than a first preset threshold.
[0017] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies a syntax element, and the syntax element indicates that the number of profile / tier / level (PTL) syntax structures in a video parameter set (VPS) associated with the video is less than a preset threshold.
[0018] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies a first syntax element, the first syntax element indicating that the number of decoded picture buffer parameter syntax structures in a video parameter set (VPS) must be less than or equal to a second syntax element, the second syntax element indicating the number of layers specified by the VPS.
[0019] In yet another example aspect, a video processing method is disclosed, the method comprising: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule allows a decoder to obtain a terminal network abstraction layer NAL unit by signaling in the bitstream or providing by external means.
[0020] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video, wherein the bitstream complies with a format rule, and wherein, due to a syntax element being equal to 0, the format rule restricts each layer in the bitstream to include only one sub-picture, indicating that each layer is configured to use inter-layer prediction.
[0021] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream with a target highest temporal identifier from the bitstream, and wherein the rule specifies that during the extraction process, when a video codec layer (VCL) network abstraction layer (NAL) unit is removed, a padding data unit and a padding supplemental enhancement information (SEI) message in a supplemental enhancement information (SEI) VCL unit associated with the VCL NAL unit are also deleted.
[0022] In yet another example aspect, a video processing method is disclosed. The method includes: performing conversion between a video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies that the bitstream includes a first syntax element, the first syntax element indicates whether the video unit is encoded or decoded in a lossy mode or a lossless mode, and wherein signaling a second syntax element indicates selectively including escaped samples in a palette mode applied to the video unit based on a value of the first syntax element.
[0023] In yet another example aspect, a video encoding device is disclosed, wherein the video encoding device comprises a processor, wherein the processor is configured to execute the above method.
[0024] In yet another example aspect, a video decoding device is disclosed, wherein the video decoding device comprises a processor, wherein the processor is configured to execute the above method.
[0025] In yet another example aspect, a computer readable medium having code stored thereon is disclosed. The codec implements the above method in the form of processor executable code.
[0026] These and other features are described in this document. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Figure 1 An example of partitioning a picture by luma codec tree units (CTUs) is shown.
[0028] Figure 2Another example of partitioning a picture with luma CTUs is shown.
[0029] Figure 3 An example of picture segmentation is shown.
[0030] Figure 4 Another example of picture segmentation is shown.
[0031] Figure 5 is a block diagram of an example video processing system in which the disclosed techniques may be implemented.
[0032] Figure 6 is a block diagram of an example hardware platform for video processing.
[0033] Figure 7 is a block diagram illustrating a video encoding and decoding system according to some embodiments of the present disclosure.
[0034] Figure 8 is a block diagram illustrating an encoder according to some embodiments of the present disclosure.
[0035] Fig. 9 is a block diagram illustrating a decoder according to some embodiments of the present disclosure.
[0036] Figure 10-26 A flow chart illustrating an example method of video processing is shown. DETAILED DESCRIPTION
[0037] In this article, the section titles are used for ease of understanding and do not limit the applicability of the techniques and embodiments disclosed in each section to only that section. In addition, the use of H.266 terminology in some descriptions is only for ease of understanding and is not intended to limit the scope of the disclosed technology. Therefore, the technology described here is also applicable to other video codec protocols and designs.
[0038] 1. Introduction
[0039] This article relates to video coding techniques. Specifically, the signaling of sub-pictures, slices and strips. These concepts can be applied alone or in various combinations to any video coding standard or non-standard video codec that supports multi-layer video coding, such as the Versatile Video Codec (VVC) under development.
[0040] 2. Abbreviations
[0041] APS Adaptive Parameter Set
[0042] AU Access Unit
[0043] AUD Access Unit Delimiter
[0044] AVC Advanced Video Codec
[0045] CLVS Codec Layer Video Sequence
[0046] CPB codec picture buffer
[0047] CRA Clear Random Access
[0048] CTU Codec Tree Unit
[0049] CVS codec video sequence
[0050] DPB decoded picture buffer
[0051] DPS Decoding Parameter Set
[0052] EOB End of bitstream
[0053] EOS sequence ends
[0054] GDR Progressive Decode Refresh
[0055] HEVC High Efficiency Video Codec
[0056] HRD Virtual Reference Decoder
[0057] IDR Instant Decode Refresh
[0058] JEM Joint Exploration Model
[0059] MCTS Motion Constraints Episode Set
[0060] NAL Network Abstraction Layer
[0061] OLS output layer set
[0062] PH Image Header
[0063] PPS Picture Parameter Set
[0064] PTL Profiles, Tiers, and Levels
[0065] PU Picture Unit
[0066] RBSP Raw Byte Sequence Payload
[0067] SEI Supplemental Enhancement Information
[0068] SPS Sequence Parameter Set
[0069] SVC Scalable Video Codec
[0070] VCL video codec layer
[0071] VPS Video Parameter Set
[0072] VTM VVC test model
[0073] VUI Video Availability Information
[0074] VVC Multi-functional Video Codec
[0075] 3. Preliminary Discussion
[0076] Video codec standards have evolved primarily through the development of the known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, ISO / IEC developed MPEG-1 and MPEG-4 video, and the two organizations jointly developed H.262 / MPEG-2 video and H.264 / MPEG-4 Advanced Video Codec (AVC) and H.265 / HEVC standards. Since H.262, video codec standards have been based on a hybrid video codec structure, which uses temporal prediction plus transform codec. In order to explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new methods and applied them to reference software called the Joint Exploration Model (JEM). JVET meetings are held simultaneously every quarter, and the goal of the new codec standard is to reduce the bit rate by 50% compared to HEVC. The new video codec standard was officially named Versatile Video Coding (VVC) at the JVET meeting in April 2018, when the first version of the VVC Test Model (VTM) was released. With the continuous efforts of VVC standardization, new codec technologies are adopted into the VVC standard at each JVET meeting. The VVC working draft and test model VTM are updated after each meeting. The VVC project now aims to achieve technical completion (FDIS) at the July 2020 meeting.
[0077] 3.1. Picture segmentation scheme in HEVC
[0078] HEVC includes four different picture segmentation schemes, namely normal slices, dependent slices, tiles, and wavefront parallel processing (WPP), which can be applied to maximum transmission unit (MTU) size matching, parallel processing, and reduction of end-to-end delay.
[0079] Regular slices are similar to those in H.264 / AVC. Each regular slice is encapsulated in its own NAL unit, and intra-picture prediction (intra-sample prediction, motion information prediction, codec mode prediction) and entropy codec dependencies across slice boundaries are disabled. Therefore, regular slices can be reconstructed independently of other regular slices in the same picture (although there may still be interdependencies due to loop filtering operations).
[0080] Regular slices are the only tool available for parallelization, which is also available in H.264 / AVC in almost the same form. Regular slice-based parallelization does not require much inter-processor or inter-core communication (except for inter-processor or inter-core data sharing for motion compensation when decoding predictive codec pictures, which is usually much heavier than inter-processor or inter-core data sharing due to intra-picture prediction). However, for the same reason, the use of regular slices may incur a large codec overhead due to the bit cost of the slice header and the lack of prediction across slice boundaries. In addition, regular slices (in contrast to the other tools mentioned below) also serve as a key mechanism for bitstream segmentation to match MTU size requirements due to their intra-picture independence and the fact that each regular slice is encapsulated in its own NAL. In many cases, the goals of parallelization and MTU size matching have conflicting requirements on the layout of slices in a picture. The realization of such situations led to the development of the parallelization tools mentioned below.
[0081] Dependent slices have short slice headers and allow the bitstream to be partitioned at treeblock boundaries without breaking any intra-picture prediction. Basically, dependent slices split a regular slice into multiple NAL units, reducing end-to-end latency by allowing part of a regular slice to be sent before encoding of the entire regular slice is complete.
[0082] In WPP, a picture is partitioned into a single row of codec tree blocks (CTBs). Entropy decoding and prediction are allowed to use data from CTBs in other partitions. Parallel processing is possible through parallel decoding of CTB rows, where the start of decoding of a CTB row is delayed by two CTBs to ensure that data associated with CTBs above and to the right of the subject CTB is available before the subject CTB being decoded. Using this staggered start (which looks like a wavefront when represented graphically), as many processors / cores as there are CTB rows in a picture can be parallelized. Because intra-picture prediction between adjacent treeblock rows within a picture is allowed, the inter-processor / inter-core communication required to implement intra-picture prediction can be substantial. WPP partitioning does not result in the generation of additional NAL units compared to when WPP partitioning is not applied, so WPP is not a tool for MTU size matching. However, if MTU size matching is required, regular slices can be used with WPP, but with some codec overhead.
[0083] Slices define the horizontal and vertical boundaries that divide the image into slice columns and slice rows. Slice columns extend from the top of the image to the bottom of the image. Similarly, slice rows extend from the left side of the image to the right side of the image. The number of slices in a picture can be simply calculated by multiplying the number of slice columns by the number of slice rows.
[0084] Before decoding the top left CTB of the next slice in the order of the slice raster scan of one picture, the scan order of the CTBs is changed to the local scan order within the slice (in the order of the CTB raster scan of the slice). Similar to regular slices, slices break intra-picture prediction dependencies and entropy decoding dependencies. However, they do not need to be contained in independent NAL units (same as WPP in this respect); therefore slices cannot be used for MTU size matching. Each slice can be processed by one processor / core, and in the case where a slice spans multiple slices, the inter-processor / inter-core communication required for intra-picture prediction between processing units decoding adjacent slices is limited to the transmission of shared slice headers and loop filtering related to reconstruction samples and metadata sharing. When more than one slice or WPP segment is contained in a slice, the entry point byte offset of each slice or WPP segment in the slice except the first is signaled in the slice header.
[0085] For simplicity, restrictions on the application of four different picture partitioning schemes are specified in HEVC. For most profiles specified in HEVC, a given codec video sequence cannot contain both slices and wavefronts. For each slice and slice, one or both of the following conditions must be met: 1) all codec tree blocks in a slice belong to the same slice; 2) all codec tree blocks in a slice belong to the same slice. Finally, a wavefront segment contains exactly one CTB row, and when WPP is used, if a slice starts within a CTB row, then the slice must end in the same CTB row.
[0086] The most recent revision of HEVC is specified in the JCT-VC output document JCTVC-AC1005, J. Boyce, A. Ramasubramonian, R. Skupin, G. J. Sullivan, A. Tourapis, Y.-K. Wang (eds.), "HEVC Additional Supplemental Enhancement Information (Draft 4)", published on October 24, 2017 at http: / / phenix.intevry.fr / jct / doc_end_user / documents- / 29_Macau / wg11 / JCTVC-AC1005-v2.zip. Within this revision, HEVC specifies three MCT-related SEI messages, namely the time-domain MCTS SEI message, the MCTS Extraction Information Set SEI message, and the MCTS Extraction Information Nesting SEI message.
[0087] The temporal MCTSs SEI message indicates the presence of MCTSs in the bitstream and signals the MCTSs. For each MCTS, the motion vector is restricted to point to the full sample position within the MCTS and the fractional sample position that only needs the full sample position within the MCTS for interpolation, and the motion vector candidate predicted by the temporal motion vector of the block outside the MCTS is not allowed to be used. In this way, each MCTS can be decoded independently in the absence of slices not included in the MCTS.
[0088] The MCTSs extraction information set SEI message provides supplementary information that can be used for MCTS sub-bitstream extraction (specified as part of the semantics of the SEI message) to generate a bitstream that conforms to the MCTS set. The information consists of multiple extraction information sets, each of which defines multiple MCTS sets and contains RBSP bytes for replacement VPSs, SPSs, and PPSs to be used in the MCTS sub-bitstream extraction process. When extracting a sub-bitstream according to the MCTS sub-bitstream extraction process, the parameter sets (VPSs, SPSs, and PPSs) need to be rewritten or replaced, and the slice header needs to be slightly updated because one or all of the slice address related syntax elements (including first_slice_segment_in_pic_flag and slice_segment_address) usually need to have different values.
[0089] 3.2. Image Segmentation in VVC
[0090] In VVC, a picture is divided into one or more slice rows and one or more slice columns. A slice is a sequence of CTUs covering a rectangular area of a picture. The CTUs in a slice are scanned in raster scan order within the slice.
[0091] A slice consists of an integer number of complete slices or an integer number of consecutive complete CTU rows within a picture.
[0092] Two stripe modes are supported, namely raster scan stripe mode and rectangular stripe mode. In raster scan stripe mode, a stripe contains a complete sequence of stripes in a stripe raster scan of a picture. In rectangular stripe mode, a stripe contains multiple complete slices that together form a rectangular area of a picture or multiple consecutive complete CTU rows that together form a slice of a rectangular area of a picture. Stripes within a rectangular stripe are scanned in a stripe raster scan order within the rectangular area corresponding to the stripe.
[0093] A sub-picture consists of one or more strips that together cover a rectangular area of the picture.
[0094] Figure 1 An example of raster scan stripe partitioning of a picture is shown, where the picture is partitioned into 12 slices and 3 raster scan stripes.
[0095] Figure 2 An example of rectangular strip partitioning of a picture is shown, where the picture is partitioned into 24 slices (6 slice columns and 4 slice rows) and 9 rectangular slices.
[0096] Figure 3 An example of a picture partitioned into slices and rectangular strips is shown, where the picture is partitioned into 4 slices (2 slice columns and 2 slice rows) and 4 rectangular strips.
[0097] Figure 4 An example of sub-picture partitioning of a picture is shown, where the picture is partitioned into 18 slices, 12 slices on the left, each covering a stripe with 4x4 CTUs, and 6 slices on the right, each covering 2 vertically stacked stripes with 2x2 CTUs, resulting in a total of 24 stripes and 24 sub-pictures of different dimensions (each stripe is a sub-picture).
[0098] 3.3. Signaling of sub-pictures, slices, and stripes in VVC
[0099] In the latest VVC draft text, sub-picture information is signaled in SPS, including sub-picture layout (i.e., the number of sub-pictures per picture and the position and size of each picture) and other sequence-level sub-picture information. The order of sub-pictures signaled in SPS defines the sub-picture index. The list of sub-picture IDs that each sub-picture has can be explicitly signaled in SPS or PPS, for example.
[0100] Slices in VVC are conceptually the same as in HEVC, ie, each picture is partitioned into slice columns and slice rows, but have a different syntax for signaling slices in the PPS.
[0101] In VVC, the slice mode is also signaled in the PPS. When the slice mode is the rectangular slice mode, the strip layout of each picture (i.e., the number of strips per picture and the position and size of each strip) is signaled in the PPS. The order of the rectangular strips within the picture signaled in the PPS defines the picture level strip index. The sub-picture level strip index is defined as the order of the strips within the sub-picture in ascending order of their picture level strip indexes. The position and size of the rectangular strips are sent / derived based on the sub-picture position and size signaled in the SPS (when each sub-picture contains only one stripe), or based on the slice position and size signaled in the PPS (when the sub-picture may contain multiple stripes). When the strip mode is the raster scan strip mode, similar to HEVC, the strip layout within the picture is signaled in different details in the strips themselves.
[0102] The SPS, PPS and slice headers and semantics in the latest VVC draft text most relevant to the present invention are as follows.
[0103] 7.3.2.3 Sequence parameter set RBSP syntax
[0104]
[0105]
[0106] 7.4.3.3 Sequence parameter set RBSP semantics ...
[0107] subpics_present_flag equal to 1 indicates that the sub-picture parameters are present in the SPS RBSP syntax. subpics_present_flag equal to 0 indicates that the sub-picture parameters are not present in the SPS RBSP syntax.
[0108] NOTE 2 – When the bitstream is the result of a sub-bitstream extraction process and contains only a subset of the sub-pictures of the input bitstream of the sub-bitstream extraction process, it may be necessary to set the value of subpics_present_flag in the RBSP of the SPS equal to 1.
[0109] sps_num_subpics_minus1 plus 1 refers to the number of sub-pictures. sps_num_subpics_minus1 shall be in the range of 0 to 254. When not present, the value of sps_num_subpics_minus1 is inferred to be equal to 0.
[0110] subpic_ctu_top_left_x[i] refers to the horizontal position of the top left CTU of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_width_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_ctu_top_left_x[i] is inferred to be equal to 0.
[0111] subpic_ctu_top_left_y[i] refers to the vertical position of the top left CTU of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_height_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_ctu_top_left_y[i] is inferred to be equal to 0.
[0112] subpic_width_minus1[i] plus 1 refers to the width of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_width_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_width_minus1[i] is inferred to be equal to Ceil(pic_width_max_in_luma_samples / CtbSizeY)-1.
[0113] subpic_height_minus1[i] plus 1 refers to the height of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_height_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_height_minus1[i] is inferred to be equal to Ceil(pic_height_max_in_luma_samples / CtbSizeY)-1.
[0114] subpic_treated_as_pic_flag[i] equal to 1 indicates that the i-th subpicture of each codec picture in the CLVS is treated as a picture in the decoding process except for loop filtering operations. subpic_treatment_as_pic_flag[i] equal to 0 indicates that the i-th subpicture of each codec picture in the CLVS is not treated as a picture in the decoding process except for loop filtering operations. When it is not present, the value of subpic_treatment_as_pic_flag[i] is inferred to be equal to 0.
[0115] loop_filter_across_subpic_enabled_flag[i] equal to 1 means that loop filtering operations can be performed across the boundary of the i-th sub-picture in each coded picture in the CLVS. loop_filter_across_subpic_enabled_flag[i] equal to 0 means that loop filtering operations are not performed across the boundary of the i-th sub-picture in each coded picture in the CLVS. When it is not present, the value of loop_filter_across_subpic_enabled_pic_flag[i] is inferred to be equal to 1.
[0116] The following constraints apply to the bitstream conformance requirements:
[0117] For any two sub-pictures subpicA and subpicB, when the sub-picture index of subpicA is less than the sub-picture index of subpicB, any codec slice NAL unit of subPicA shall precede any codec slice NAL unit of subPicB in decoding order.
[0118] The shape of the sub-pictures should be such that when each sub-picture is decoded, its entire left border and its entire top border consist of picture boundaries or of boundaries of previously decoded sub-pictures.
[0119] sps_subpic_id_present_flag equal to 1 indicates that sub-picture ID mapping is present in the SPS. sps_subpic_id_present_flag equal to 0 indicates that sub-picture ID mapping is not present in the SPS.
[0120] sps_subpic_id_signalling_present_flag equal to 1 means that the sub-picture ID mapping is signaled in the SPS. sps_subpic_id_signalling_present_flag equal to 0 means that the sub-picture ID mapping is not signaled in the SPS. When not present, the value of sps_subpic_id_signalling_present_flag is inferred to be equal to 0.
[0121] sps_subpic_id_len_minus1 plus 1 refers to the number of bits used to represent the syntax element sps_subpic_id[i]. The value of sps_subpic_id_len_minus1 shall be in the range of 0 to 15, inclusive.
[0122] sps_subpic_id[i] refers to the sub-picture ID of the i-th sub-picture. The length of the sps_subpic_id[i] syntax element is sps_subpic_id_len_minus1+1 bits. When not present, and when sps_subpic_id_present_flag is equal to 0, the value of sps_subpic_id[i] is inferred to be equal to i, with each i in the range from 0 to sps_num_subpics_minus1, inclusive. ...
[0123] 7.3.2.4 Picture parameter set RBSP syntax
[0124]
[0125]
[0126]
[0127] 7.4.3.4 Picture parameter set RBSP semantics ...
[0128] pps_subpic_id_signalling_present_flag equal to 1 means that the sub-picture ID mapping is signaled in the PPS. pps_subpic_id_signalling_present_flag equal to 0 means that the sub-picture ID mapping is not signaled in the PPS. When sps_subpic_id_present_flag is 0 or sps_subpic_id_signalling_present_flag is equal to 1, pps_subpic_id_signalling_present_flag shall be equal to 0.
[0129] pps_num_subpics_minus1 plus 1 refers to the number of sub-pictures in the coded picture that references the PPS.
[0130] The value of pps_num_subpic_minus1 shall be equal to sps_num_subpics_minus1 as a bitstream conformance requirement.
[0131] pps_subpic_id_len_minus1 plus 1 refers to the number of bits used to represent the syntax element pps_subpic_id[i]. The value of pps_subpic_id_len_minus1 shall be in the range of 0 to 15, inclusive.
[0132] The value of pps_subpic_id_len_minus1 for codec pictures referenced in CLVS shall be the same for all PPSs, as a requirement for bitstream conformance.
[0133] pps_subpic_id[i] refers to the sub-picture ID of the i-th sub-picture. The length of the pps_subpic_id[i] syntax element is pps_subpic_id_len_minus1+1 bits.
[0134] no_pic_partition_flag equal to 1 means that picture partitioning is not applied to each picture referencing a PPS. no_pic_partition_flag equal to 0 means that each picture referencing a PPS may be partitioned into multiple slices or slices.
[0135] The value of no_pic_partition_flag shall be the same for all PPSs referenced by a codec picture within a CLVS, as this is a requirement for bitstream conformance.
[0136] When the value of sps_num_subpics_minus1+1 is greater than 1, the value of no_pic_partition_flag cannot be equal to 1, which is a requirement for bitstream consistency.
[0137] pps_log2_ctu_size_minus5 plus 5 refers to the luma codec treeblock size for each CTU. pps_log2_ctu_size_minus5 shall be equal to sps_log2_ctu_size_minus5.
[0138] num_exp_tile_columns_minus1 plus 1 refers to the number of explicitly provided tile column widths. The value of num_exp_tile_columns_minus1 shall be in the range of 0 to PicWidthInCtbsY-1, inclusive. When no_pic_partition_flag is equal to 1, the value of num_exp_tile_columns_minus1 is inferred to be equal to 0.
[0139] num_exp_tile_rows_minus1 plus 1 refers to the number of explicitly provided tile row heights. The value of num_exp_tile_rows_minus1 shall be in the range of 0 to PicHeightInCtbsY-1, inclusive. When no_pic_partition_flag is equal to 1, the value of num_exp_tile_columns_minus1 is inferred to be equal to 0.
[0140] tile_column_width_minus1[i] plus 1 refers to the width of the i-th tile column in units of CTBs, i in the range of 0 to num_exp_tile_columns_minus1-1, inclusive. tile_column_width_minus1[num_exp_tile_columns_minus1] is used to derive the width of tile columns with indices greater than or equal to num_exp_tile_columns_minus1, as described in clause 6.5.1. When it is not present, the value of tile_column_width_minus1[0] is inferred to be equal to PicWidthInCtbsY-1.
[0141] tile_row_height_minus1[i] plus 1 refers to the height of the i-th tile row in units of CTBs, i in the range of 0 to num_exp_tile_rows_minus1-1, inclusive. tile_row_height_minus1[num_exp_tile_rows_minus1] is used to derive the height of tile rows with indices greater than or equal to num_exp_tile_rows_minus1, as described in clause 6.5.1. When it is not present, the value of tile_row_height_minus1[0] is inferred to be equal to PicHeightInCtbsY-1.
[0142] rect_slice_flag equal to 0 means that the slices within each slice are arranged in raster scan order and the slice information is not signaled in the PPS. rect_slice_flag equal to 1 means that the slices within each slice cover a rectangular area of the picture and the slice information is signaled in the PPS. When it is not present, rect_slice_flag is inferred to be equal to 1. When subpics_present_flag is equal to 1, the value of rect_slice_flag shall be equal to 1.
[0143] single_slice_per_subpic_flag equal to 1 means that each sub-picture consists of one and only one rectangular slice. single_slice_per_subpic_flag equal to 0 means that each sub-picture may contain one or more rectangular slices. When subpics_present_flag is equal to 0, single_slice_per_subpic_flag shall be equal to 0. When single_slice_per_subpic_flag is equal to 1, num_slices_in_pic_minus1 is inferred to be equal to sps_num_subpics_minus1.
[0144] num_slices_in_pic_minus1 plus 1 refers to the number of rectangular slices in each picture that reference the PPS. The value of num_slices_in_pic_minus1 shall be in the range of 0 to MaxSlicesPerPicture-1, inclusive, where MaxSlicesPerPicture is specified in Annex A. When no_pic_partition_flag is equal to 1, the value of num_slices_in_pic_minus1 is inferred to be equal to 0.
[0145] tile_idx_delta_present_flag equal to 0 means that tile_idx_delta values are not present in the PPS, and all rectangular slices in pictures referencing the PPS are specified in raster order according to the procedure defined in clause 6.5.1. tile_idx_delta_present_flag equal to 1 means that tile_idx_delta values may be present in the PPS, and all rectangular slices in pictures referencing the PPS are specified in the order indicated by the tile_idx_delta values.
[0146] slice_width_in_tiles_minus1[i] plus 1 refers to the width of the i-th rectangular strip of cells in tile columns. The value of slice_width_in_tiles_minus1[i] shall be in the range of 0 to NumTileColumns-1, inclusive. When it is not present, the value of slice_width_in_tiles_minus1[i] shall be inferred as specified in Section 6.5.1.
[0147] slice_height_in_tiles_minus1[i] plus 1 refers to the height of the i-th rectangular strip of cells in tile rows. The value of slice_height_in_tiles_minus1[i] shall be in the range of 0 to NumTileRows-1, inclusive. When it is not present, the value of slice_height_in_tiles_minus1[i] shall be inferred as specified in Section 6.5.1.
[0148] num_slices_in_tile_minus1[i] plus 1 refers to the number of slices in the current slice, applicable when the i-th slice contains a subset of CTU rows from a single slice. The value of num_slices_in_tile_minus1[i] shall be in the range of 0 to RowHeight[tileY]-1, inclusive, where tileY is the index of the slice row containing the i-th slice. When it is not present, the value of num_slices_in_tile_minus1[i] is inferred to be equal to 0.
[0149] slice_height_in_ctu_minus1[i] plus 1 refers to the height of the i-th rectangular slice in units of CTU rows, applicable to the case where the i-th slice contains a subset of CTU rows from a single slice. The value of slice_height_in_ctu_minus1[i] shall be in the range of 0 to RowHeight[tileY]-1, inclusive, where tileY is the index of the slice row containing the i-th slice.
[0150] tile_idx_delta[i] refers to the difference in tile index between the i-th rectangular strip and the (i+1)-th rectangular strip. The value of tile_idx_delta[i] shall be in the range of –NumTilesInPic+1 to NumTilesInPic-1, inclusive. When it is not present, the value of tile_idx_delta[i] is inferred to be equal to 0. In all other cases, the value of tile_idx_delta[i] shall not be equal to 0.
[0151] loop_filter_across_tiles_enabled_flag equal to 1 means that loop filtering operations can be performed across slice boundaries in pictures that reference the PPS. loop_filter_across_tiles_enabled_flag equal to 0 means that loop filtering operations are not performed across slice boundaries in pictures that reference the PPS. Loop filtering operations include deblocking filter, sample adaptive offset filter, and adaptive loop filter operations. When it is not present, the value of loop_filter_across_tiles_enabled_flag is inferred to be equal to 1.
[0152] loop_filter_across_slices_enabled_flag equal to 1 means that loop filtering operations can be performed across slice boundaries in pictures that reference the PPS. loop_filter_across_slice_enabled_flag equal to 0 means that loop filtering operations are not performed across slice boundaries in pictures that reference the PPS. Loop filtering operations include deblocking filter, sample adaptive offset filter, and adaptive loop filter operations. When it is not present, the value of loop_filter_across_slices_enabled_flag is inferred to be equal to 0.
[0153] 7.3.7.1 Generic Strip Header Syntax
[0154]
[0155] 7.4.8.1 Generic Strip Header Semantics ...
[0156] slice_subpic_id refers to the sub-picture identifier of the sub-picture containing the slice. If slice_subpic_id exists, the value of the variable SubPicIdx is derived so that SubpicIdList[SubPicIdx] is equal to slice_subpic_id. Otherwise (slice_subpic_id does not exist), the variable SubPicIdx is derived to be equal to 0. The length of slice_subpic_id, in bits, is derived as follows:
[0157] - If sps_subpic_id_signalling_present_flag is equal to 1, the length of slice_subpic_id is equal to sps_subpic_id_len_minus1+1.
[0158] Otherwise, if ph_subpic_id_signalling_present_flag is equal to 1, the length of slice_subpic_id is equal to ph_subpic_id_len_minus1+1.
[0159] Otherwise, if pps_subpic_id_signalling_present_flag is equal to 1, the length of slice_subpic_id is equal to pps_subpic_id_len_minus1+1.
[0160] Otherwise, the length of slice_subpic_id is equal to Ceil(Log2(sps_num_subpics_minus1+1)).
[0161] slice_address refers to the slice address of the slice. When not present, the value of slice_address is inferred to be equal to 0.
[0162] If rect_slice_flag is equal to 0, the following applies:
[0163] —The strip address is the raster scan slice index.
[0164] —The length of slice_address is Ceil(Log2(NumTilesInPic)) bits.
[0165] —slice_address values should be in the range of 0 to NumTilesInPic-1, inclusive.
[0166] Otherwise (rect_slice_flag is equal to 1), the following applies:
[0167] —The slice address is the slice index of the slice in the SubPicIdx-th sub-picture.
[0168] —The length of slice_address is Ceil(Log2(NumSlicesInSubpic[SubPicIdx])) bits.
[0169] —The value of slice_address shall be in the range of 0 to NumSlicesInSubpic[SubPicIdx]-1, inclusive.
[0170] The following constraints apply to the bitstream conformance requirements:
[0171] - If rect_slice_flag is equal to 0 or subpics_present_flag is equal to 0, the value of slice_address shall not be equal to the value of slice_address of any other codec slice NAL unit of the same codec picture.
[0172] — Otherwise, the pair of slice_subpic_id and slice_address values shall not be equal to the pair of slice_subpic_id and slice_address values of any other codec slice NAL unit of the same codec picture.
[0173] — When rect_slice_flag is equal to 0, the slices of the picture shall be arranged in ascending order of their slice_address values.
[0174] - The shape of a picture slice shall be such that the entire left and upper boundaries of each CTU, when decoded, shall consist of either a picture boundary or a boundary of a previously decoded CTU.
[0175] num_tiles_in_slice_minus1 plus 1 (if present) refers to the number of tiles in the slice. The value of num_tiles_in_slice_minus1 should be in the range of 0 to NumTilesInPic-1, inclusive.
[0176] The variable NumCtuInCurrSlice refers to the number of CTUs in the current slice, and the list CtbAddrInCurrSlice[i] refers to the picture raster scan address of the i-th CTB in the slice, where i ranges from 0 to NumCtuInCurrSlice-1, including the end value, and is derived as follows:
[0177]
[0178] The variables SubPicLeftBoundaryPos, SubPicTopBoundaryPos, SubPicRightBoundaryPos, and SubPicBotBoundaryPos are derived as follows:
[0179]
[0180] ...
[0181] 3.4 Example of JVET-Q0075
[0182] Escape samples are used to handle unusual situations in palette mode.
[0183] Binarization of escaped samples is EG3 in the current VTM. However, for uniformly distributed signaling, fixed-length binarization may outperform EG3 in both distortion and bit rate measurements.
[0184] JVET-Q0075 proposes to use fixed-length binarization for escaped samples and also modify the quantization and dequantization process accordingly.
[0185] In the proposed method, the maximum bit depth of escaped samples depends on the quantization parameter, which is derived as follows.
[0186] max(1,bitDepth–(max(QpPrimeTsMin,Qp)–4) / 6)
[0187] Here, bitDepth is the internal bit depth, Qp is the current quantization parameter (QP), QpPrimeTsMin is the minimum QP for transform skip blocks, and max is the operation that obtains the larger value between the two inputs.
[0188] In addition, only shift operations are required in the dequantization process of the escaped sample. Let escapeVal be the decoded escape value and recon be the reconstructed value of the escaped sample. The derivation of this value is as follows.
[0189] shift=min(bitDepth–1,(max(QpPrimeTsMin,Qp)–4) / 6)
[0190] recon=(escapeVal< <shift)
[0191] It is guaranteed that the distortion of the reconstructed value is always less than or equal to the distortion of the current design, for example, ((escapeVal*levelScale[qP%6])<<(qP / 6)+32)>>6.
[0192] At the encoder, quantization is implemented as follows:
[0193] escapeVal=(p+(1<<(shift–1)))>>shift
[0194] escapeVal=clip3(0,(1< <bd)–1,escapeVal)
[0195] Compared with the current design using EG3 and using an inverse quantization table, one addition, one multiplication, and two shift operations for quantization, the method proposed in this application is much simpler and only requires one shift operation.
[0196] 3.5 Example of JVET-Q0294
[0197] In order to achieve efficient compression in mixed lossy and lossless codecs, JVET-Q0294 recommends signaling a flag at each codec tree unit (CTU) to indicate whether the CTU is coded as lossless or lossy mode. If the CTU is lossless, an additional CTU level flag is signaled to specify the residual codec method for the CTU, either normal residual codec or transform skip residual codec.
[0198] 4. Examples of technical problems solved by this solution
[0199] The existing design of signaling for sub-pictures, slices, and strips in VVC has the following problems:
[0200] 1) The codec for sps_num_subpics_minus1 is u(8), which means that each picture is not allowed to have more than 256 sub-pictures. However, in some applications, the maximum number of sub-pictures per picture may need to be greater than 256.
[0201] 2) Allow subpics_present_flag to be equal to 0 and sps_subpic_id_present_flag to be equal to 1. However, this does not make sense, because subpics_present_flag equal to 0 means that CLVS has no information about sub-pictures at all.
[0202] 3) For each sub-picture, a list of sub-picture IDs can be signaled in the picture header (PH). However, when the list of sub-picture IDs is signaled in the PH, and when a subset of sub-pictures is extracted from the bitstream, all PHs will need to be changed. This is undesirable.
[0203] 4) Currently, when a sub-picture ID is indicated as explicitly signaled, the sub-picture ID may not be signaled anywhere, via sps_subpic_id_present_flag (or the name of the syntax element is changed to subpic_ids_explicitly_signalled_flag) equal to 1. This is problematic because when a sub-picture ID is indicated as explicitly signaled, the sub-picture ID needs to be explicitly signaled in the SPS or PPS.
[0204] 5) When the sub-picture ID is not explicitly signaled, the slice header syntax element slice_subpic_id still needs to be signaled whenever subpics_present_flag is equal to 1, including when sps_num_subpics_minus1 is equal to 0. However, the length of slice_subpic_id is currently specified as Ceil(Log2(sps_num_subpics_minus1+1)) bits, which is 0 bits when sps_num_subpics_minus1 is equal to 0. This is problematic because any existing syntax element cannot be 0 bits long.
[0205] 6) The sub-picture layout, including the number, size and position of sub-pictures, remains unchanged throughout the CLVS. Even if the sub-picture ID is not explicitly signaled in the SPS or PPS, the sub-picture ID length still needs to be signaled for the sub-picture ID syntax element in the slice header.
[0206] 7) Whenever rect_slice_flag is equal to 1, the syntax element slice_address is signaled in the slice header and specifies the slice index within the sub-picture that contains the slice, including when the number of slices within the sub-picture (i.e., NumSlicesInSubpic[SubPicIdx]) is equal to 1. However, currently, when rect_slice_flag is equal to 1, the length of slice_address is specified as Ceil(Log2(NumSlicesInSubpic[SubPicIdx])) bits, and when NumSlicesInSubpic[SubPicIdx] is equal to 1, the length of slice_address is 0 bits. This is problematic because the length of any existing syntax element cannot be 0 bits.
[0207] 8) There is redundancy between the syntax elements no_pic_partition_flag and pps_num_subpics_minus1, although the latest VVC text has the following constraint: when sps_num_subpics_minus1 is greater than 0, the value of no_pic_partition_flag shall be equal to 1.
[0208] 9) Within CLVS, the sub-picture ID value for a particular sub-picture position or index may vary from picture to picture. When this happens, in principle, the sub-picture cannot use inter-layer prediction by referencing reference pictures in the same layer. However, currently, there is a lack of constraints in the current VVC specification that prohibit this practice.
[0209] 10) In the current VVC design, reference pictures can be pictures in different layers to support multiple applications, such as scalable video codec and multi-view video codec. If sub-pictures exist in different layers, it is necessary to study whether to allow or not allow inter-layer prediction.
[0210] 5. Example Techniques and Implementations
[0211] To solve the above problems and other problems, the methods summarized below are disclosed. The present invention should be regarded as an example to explain the general concept and should not be interpreted narrowly. In addition, these inventions can be applied alone or in combination in any way.
[0212] The following abbreviations have the same meanings as in JVET-P1001-vE.
[0213] BP (buffer period), BP SEI (supplemental enhancement information),
[0214] PT(Picture Timing), PT SEI,
[0215] AU (Access Unit),
[0216] OP (operating point),
[0217] DUI (Decoding Unit Information), DUI SEI,
[0218] NAL (Network Layer),
[0219] NUT (NAL unit type),
[0220] GDR (Gradual Decode Refresh),
[0221] SLI (Sub-Picture Level Information), SLI SEI.
[0222] 1) To solve the first problem, change the codec of sps_num_subpics_minus1 from u(8) to ue(v) so that each picture can have more than 256 sub-pictures.
[0223] a. In addition, the value of sps_num_subpics_minus1 is limited to the range of 0 to Ceil(pic_width_max_in_luma_samples÷CtbSizeY)*Ceil(pic_height_max_in_-luma_samples÷CtbSizeY)-1.
[0224] b. In addition, the number of sub-pictures per picture is further restricted in the definition of the level.
[0225] 2) To solve the second problem, the condition for signaling the syntax element sps_subpic_id_present_flag is set to "if (subpics_present_flag)", that is, when subpics_present_flag is equal to 0, the sps_subpic_id_present_flag syntax element is not signaled, and when it does not exist, it is inferred that the value of sps_subpic_id_present_flag is equal to 0.
[0226] a. Alternatively, when subpics_present_flag is equal to 0, the syntax element sps_subpic_id_present_flag is still signaled, but when subpics_present_flag is equal to 0, this value needs to be equal to 0.
[0227] b. In addition, the names of the syntax elements subpics_present_flag and sps_subpic_id_present_flag are changed to subpic_info_present_flag and subpic_ids_explicitly_signalled_flag, respectively.
[0228] 3) To solve the third problem, the signaling of the sub-picture ID in the PH syntax is removed. Therefore, for i in the range of 0 to sps_num_subpics_minus1 (including the end value), the list SubpicIdList[i] is derived as follows:
[0229]
[0230] 4) To solve the fourth problem, when a sub-picture is indicated for explicit signaling, the sub-picture ID is signaled in the SPS or PPS.
[0231] a. This is achieved by adding the following constraint: If subpic_ids_explicitly_signalled_flag is 0 or subpic_ids_in_sps_flag is equal to 1, then subpic_ids_in_pps_flag shall be equal to 0. Otherwise (subpic_ids_explicitly_signalled_flag is 1 or subpic_ids_in_sps_flag is equal to 0), subpic_ids_in_pps_flag shall be equal to 1.
[0232] 5) To address the fifth and sixth issues, the length of the sub-picture ID is signaled in the SPS regardless of the value of the SPS flag sps_subpic_id_present_flag (or renamed subpic_ids_explicitly_signalled_flag), although when the sub-picture ID is also explicitly signaled in the PPS, the length can also be signaled in the PPS to avoid parsing the dependency of the PPS on the SPS. In this case, the length also specifies the length of the sub-picture ID in the slice header, even if the sub-picture ID is not explicitly signaled in the SPS or PPS. Therefore, when it is present, the length of slice_subpic_id is also specified by the sub-picture ID length signaled in the SPS.
[0233] 6) Alternatively, to address the fifth and sixth issues, a flag is added to the SPS syntax with a value of 1 to specify the presence of the sub-picture ID length in the SPS syntax. The presence of this flag is independent of the value of the flag indicating whether the sub-picture ID is explicitly signaled in the SPS or PPS. When subpic_ids_explicitly_signalled_flag is equal to 0, the value of this flag can be equal to 1 or 0, but when subpic_ids_explicitly_signalled_flag is equal to 1, the value of this flag must be equal to 1. When this flag is equal to 0, that is, the sub-picture length does not exist, the length of slice_subpic_id is specified as Max(Ceil(Log2(sps_num_subpics_minus1+1)),1) bits (instead of Ceil(Log2(sps_num_subpics_minus1+1)) bits in the latest VVC draft text).
[0234] a. Alternatively, this flag is present only when subpic_ids_explicitly_signalled_flag is equal to 0, and when subpic_ids_explicitly_signalled_flag is equal to 1, the value of this flag is inferred to be equal to 1.
[0235] 7) To solve the seventh problem, when rect_slice_flag is equal to 1, the length of slice_address is Max(Ceil(Log2(NumSlicesInSubpic[SubPicIdx])), 1) bits.
[0236] a. Alternatively, further, when rect_slice_flag is equal to 0, the length of slice_address is specified as Max(Ceil(Log2(NumTilesInPic)),1) bits instead of Ceil(Log2(NumTilesInPic)) bits.
[0237] 8) To solve the eighth problem, the condition for signaling no_pic_partition_flag is set to "if (subpic_ids_in_pps_flag&&pps_num_subpics-_minus1>0)", and the following inference is added: when it does not exist, the value of no_pic_partition_flag is inferred to be equal to 1.
[0238] a. Alternatively, move the sub-picture ID syntax (all four syntax elements) after the slice and slice syntax in the PPS, for example, immediately before the syntax element entropy_coding_sync_enabled_flag, and then set the condition for signaling pps_num_subpics_minus1 to "if (no_pic_partition_flag)".
[0239] 9) To address the ninth issue, the following constraint is specified: for each specific sub-picture index (or equivalently, sub-picture position), when the sub-picture ID value changes between a picture picA and the previous picture in the decoding order of the same layer, unless picA is the first picture of the CLVS, the sub-picture at picA shall only contain codec slice NAL units with nal_unit_type equal to IDR_W_RADL, IDR_N_LP or CRA_NUT.
[0240] a. Alternatively, the above constraint applies only to sub-picture indices where the value of subpic_treatment_as_pic_flag[i] is equal to 1.
[0241] b. Alternatively, for 9 and 9a above, change "IDR_W_RADL, IDR_N_LP, or CRA_NUT" to "IDR_W_RADL, IDR_N_LP, CRA_NUT, RSV_IRAP_11, or RSV_IRAP_12".
[0242] c. Alternatively, the sub-picture at picA may contain other types of codec slice NAL units, however, these codec slice NAL units only use one or more of inter-layer prediction, intra-layer block copy (IBC) prediction, and palette mode prediction.
[0243] d. Alternatively, a first video unit (e.g., slice, tile, etc.) in a sub-picture of picA may refer to a second video unit in a previous picture. Restriction The second video unit and the first video unit may be in sub-pictures with the same sub-picture index, although the sub-picture IDs of the two may be different. The sub-picture index is a unique number assigned to a sub-picture and cannot be changed in CLVS.
[0244] 10) For a specific sub-picture index (or equivalently, sub-picture position), it may be signaled in the bitstream which sub-pictures (identified by a layer ID value together with the sub-picture index or sub-picture ID value) are used as reference pictures.
[0245] 11) For the multi-layer case, inter-layer prediction (ILR) of sub-pictures from different layers is allowed when certain conditions are met (e.g., may depend on the number of sub-pictures, the location of sub-pictures), and is disabled when certain conditions are not met.
[0246] a. In one example, even when two sub-pictures in two layers have the same sub-picture index value but different sub-picture ID values, inter-layer prediction may still be allowed when certain conditions are met.
[0247] i. In one example, some of the conditions are "if two layers are associated with different view order index / view order ID values".
[0248] b. If two sub-pictures have the same sub-picture index, the first sub-picture in the first layer and the second sub-picture in the second layer may be constrained to be at collocated locations and / or have reasonable widths / heights.
[0249] c. If the first sub-picture can refer to the second reference sub-picture, the first sub-picture in the first layer and the second sub-picture in the second layer can be restricted to be in a collocated position and / or a reasonable width / height.
[0250] 12) An indication of whether the current sub-picture can use inter-layer prediction (ILP) from sample values and / or other values (e.g., motion information and / or coding mode information) associated with a region or sub-picture of a reference layer is signaled in the bitstream, for example, in the VPS / DPS / SPS / PPS / APS / sequence header / picture header.
[0251] a. In one example, the reference region or sub-picture of the reference layer is at least one collocated sample containing samples within the current sub-picture.
[0252] b. In one example, the reference area or sub-picture of the reference layer is outside the collocated area of the current sub-picture.
[0253] c. In one example, the indication is signaled in one or more SEI messages.
[0254] d. In one example, regardless of whether the reference layer has multiple sub-pictures, and when multiple sub-pictures exist in one or more reference layers, regardless of whether the picture is partitioned into sub-pictures so that each sub-picture in the current picture is a corresponding sub-picture in the reference picture covering the collocated area, and regardless of whether the corresponding / collocated sub-picture has the same sub-picture ID value as the current sub-picture, the indication is signaled.
[0255] 13) When a BP SEI message and a PT SEI message applicable to a specific OP appear in an AU, the BP SEI message shall precede the PT SEI message in the decoding order.
[0256] 14) When a BP SEI message and a DUI SEI message applicable to a specific OP appear in an AU, the BP SEI message shall precede the DUI SEI message in the decoding order.
[0257] 15) When a PT SEI message and a DUI SEI message applicable to a specific OP appear in an AU, the PT SEI message shall precede the DUI SEI message in the decoding order.
[0258] 16) An indication of whether a picture is an IRAP / GDR picture flag is signaled at the beginning of the picture header, and no_output_of_prior_pics_flag may be signaled based on the indication.
[0259] An example grammar design is as follows:
[0260]
[0261] irap_or_gdr_pic_flag equal to 1 specifies that the picture associated with the PH is an IRAP or GDR picture. irap_or_gdr_pic_flag equal to 0 specifies that the picture associated with the PH is neither an IRAP picture nor a GDR picture.
[0262] 17) It is not allowed for a picture with mixed_nalu_types_in_pic_flag value equal to 0 to not contain a codec slice NAL unit with nal_unit_type equal to GDR_NUT.
[0263] 18) The syntax element (i.e., mixed_slice_types_in_pic_flag) is signaled in the PPS. If mixed_slice_types_in_pic_flag is equal to 0, the slice type (B, P, or I) is coded in the PH. Otherwise, the slice type is coded in the SHs. Syntax values associated with unused slice types are further skipped in the picture header. The syntax element mixed_slice_types_in_pic_flag is conditionally signaled as follows:
[0264]
[0265] 19) In SPS or PPS, a maximum of N1 (e.g., 3) vertical virtual borders and a maximum of N2 (e.g., 3) horizontal virtual borders are signaled. In PH, a maximum of N3 (e.g., 1) additional vertical borders and a maximum of N4 (e.g., 1) additional horizontal virtual borders are signaled, with the restriction that the total number of vertical virtual borders should be less than or equal to N1, and the total number of horizontal virtual borders should be less than or equal to N2.
[0266] 20) The syntax element inter_layer_ref_pics_present_flag in the SPS may be conditionally signaled as follows:
[0267]
[0268] 21) The syntax elements entropy_coding_sync_enabled_flag and entry_point_offsets_present_flag are signaled in the SPS instead of in the PPS.
[0269] 22) The values of vps_num_ptls_minus1 and num_ols_hrd_params_minus1 are required to be less than the value T. For example, T can be equal to TotalNumOlss as specified in JVET-2001-vE.
[0270] a. The difference between T and vps_num_ptls_minus1 or (vps_num_ptls_minus1+1) may be signaled.
[0271] b. The difference between T and hrd_params_minus1 or (hrd_params_minus1+1) may be signaled.
[0272] c. The above difference may be signaled via unary codec or exponential-Golomb codec.
[0273] 23) The value of vps_num_dpb_params_minus1 must be less than or equal to vps_max_layers_minus1.
[0274] a. The difference between T and vps_num_ptls_minus1 or (vps_num_ptls_minus1+1) may be signaled.
[0275] b. The difference can be signaled via unary codec or exponential-Golomb codec.
[0276] 24) Allows the EOB NAL unit to be provided to the decoder either by inclusion in the bitstream or by external means.
[0277] 25) Allow EOS NAL units to be provided to the decoder either by inclusion in the bitstream or by external means.
[0278] 26) For each layer with layer index i, when vps_independent_layer_flag[i] is equal to 0, each picture in this layer shall contain only one sub-picture.
[0279] 27) During the sub-bitstream extraction process, specify that whenever a VCL NAL unit is removed, the padding data units associated with the VCL NAL unit are also removed, and all padding SEI messages in the SEI NAL units associated with the VCL NAL unit are removed.
[0280] 28) Restriction When an SEI NAL unit contains a padding SEI message, the SEI NAL unit shall not contain any other SEI messages that are not padding SEI messages.
[0281] a. Alternatively, restrict that when an SEI NAL unit contains a padding SEI message, the SEI NAL unit shall contain any other SEI message.
[0282] 29) Restriction A VCL NAL unit shall have at most one associated padding NAL unit.
[0283] 30) Restriction: A VCL NAL unit shall have at most one associated padding NAL unit.
[0284] 31) It is recommended to signal a flag to indicate whether a video unit is coded in lossless or lossy mode, where the video unit can be a CU or CTU, and the signaling of escape samples in palette mode can depend on the flag.
[0285] a. In one example, the binarization method of escaped samples in palette mode may depend on a flag.
[0286] b. In one example, the determination of the codec context in arithmetic coding of escape samples in palette mode may depend on a flag.
[0287] 6. Examples
[0288] The following are some example embodiments of all invention parts except the 8 items summarized in Section 5 above, which can be applied to the VVC specification. The changed text is based on the latest VVC text in JVET-P2001-v14. The most relevant parts that have been added or modified are The most relevant deleted parts are shown with bold double brackets to highlight, e.g. Indicates that "a" has been deleted. There are a few other changes that are editorial in nature and therefore not highlighted.
[0289] 6.1. First embodiment
[0290] 7.3.2.3 Sequence parameter set RBSP syntax
[0291]
[0292] 7.4.3.3 Sequence parameter set RBSP semantics ...
[0293]
[0294]
[0295] NOTE 2 – When the bitstream is the result of a sub-bitstream extraction process and contains only a subset of the sub-pictures of the input bitstream of the sub-bitstream extraction process, it may be necessary to include The value of is set to 1.
[0296] sps_num_subpics_minus1 plus 1 refers to the number of sub-pictures.
[0297] When it is not present, the value of sps_num_subpics_minus1 is inferred to be equal to 0.
[0298] subpic_ctu_top_left_x[i] refers to the horizontal position of the top left CTU of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_width_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_ctu_top_left_x[i] is inferred to be equal to 0.
[0299] subpic_ctu_top_left_y[i] refers to the vertical position of the top left CTU of the ith subpicture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_height_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_ctu_top_left_y[i] is inferred to be equal to 0.
[0300] subpic_width_minus1[i] plus 1 refers to the width of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_width_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_width_minus1[i] is inferred to be equal to Ceil(pic_width_max_in_luma_samples / CtbSizeY)-1.
[0301] subpic_height_minus1[i] plus 1 refers to the height of the i-th sub-picture in units of CtbSizeY. The length of the syntax element is Ceil(Log2(pic_height_max_in_luma_samples / CtbSizeY)) bits. When it is not present, the value of subpic_height_minus1[i] is inferred to be equal to Ceil(pic_height_max_in_luma_samples / CtbSizeY)-1.
[0302] subpic_treated_as_pic_flag[i] equal to 1 indicates that the i-th subpicture of each coded picture in the CLVS is treated as a picture in the decoding process that does not include loop filtering operations. subpic_treatment_as_pic_flag[i] equal to 0 means that the i-th subpicture of each coded picture in the CLVS is not treated as a picture in the decoding process that does not include loop filtering operations. When it is not present, the value of subpic_treatment_as_pic_flag[i] is inferred to be equal to 0.
[0303] loop_filter_across_subpic_enabled_flag[i] is equal to 1, which means that loop filtering operations can be performed across the boundary of the i-th sub-picture in each coded picture in the CLVS. loop_filter_across_subpic_enabled_flag[i] is equal to 0, which means that loop filtering operations are not performed across the boundary of the i-th sub-picture in each coded picture in the CLVS. When it is not present, the value of loop_filter_across_subpic_enabled_pic_flag[i] is inferred to be equal to 1.
[0304] The following constraints apply to the bitstream conformance requirements:
[0305] —For any two sub-pictures subpicA and subpicB, when the sub-picture index of subpicA is less than the sub-picture index of subpicB, any codec slice NAL unit of subPicA shall precede any codec slice NAL unit of subPicB in decoding order.
[0306] - The shape of sub-pictures shall be such that, when each sub-picture is decoded, its entire left and entire top borders consist of picture boundaries or of boundaries of previously decoded sub-pictures.
[0307]
[0308] sps_subpic_id[i] refers to the sub-picture ID of the i-th sub-picture. The length of the sps_subpic_id[i] syntax element is sps_subpic_id_len_minus1+1 bits. ...
[0309] 7.3.2.4 Picture parameter set RBSP syntax
[0310]
[0311]
[0312]
[0313] 7.4.3.4 Picture parameter set RBSP semantics ...
[0314]
[0315] pps_num_subpics_minus1 shall be equal to sps_num_subpics_minus1.
[0316] pps_subpic_id_len_minus1 shall be equal to sps_subpic_id_len_minus1.
[0317] pps_subpic_id[i] refers to the sub-picture ID of the i-th sub-picture. The length of the pps_subpic_id[i] syntax element is pps_subpic_id_len_minus1+1 bits.
[0318]
[0319]
[0320] A bitstream conformance requirement is that for any i and j in the range 0 to sps_num_subpics_minus1 (inclusive), when i is less than j, SubpicIdList[i] shall be less than SubpicIdList[j]. ...
[0321] rect_slice_flag equal to 0 means that the slices within each slice are arranged in raster scan order and the slice information is not signaled in the PPS. rect_slice_flag equal to 1 means that the slices within each slice cover a rectangular area of the picture and the slice information is signaled in the PPS. When it is not present, rect_slice_flag is inferred to be equal to 1. When equal to 1, the value of rect_slice_flag shall be equal to 1.
[0322] single_slice_per_subpic_flag is equal to 1, which means that each sub-picture consists of one and only one rectangular slice. single_slice_per_subpic_flag is equal to 0, which means that each sub-picture can contain one or more rectangular slices. When equal to 0, single_slice_per_subpic_flag shall be equal to 0. When single_slice_per_subpic_flag is equal to 1, num_slices_in_pic_minus1 is inferred to be equal to sps_num_subpics_minus1. ...
[0323] 7.3.7.1 General Strip Header Syntax
[0324]
[0325] }
[0326] 7.4.8.1 Generic Strip Header Semantics ...
[0327] slice_subpic_id refers to the sub-picture ID of the sub-picture containing the slice.
[0328] When it is not present, the value of slice_subpic_id is inferred to be equal to 0.
[0329] The variable SubPicIdx is derived such that SubpicIdList[SubPicIdx] is equal to the value of slice_subpic_id.
[0330] slice_address refers to the slice address of the slice. When it does not exist, the value of slice_address is inferred to be equal to 0.
[0331] If rect_slice_flag is equal to 0, the following applies:
[0332] —The strip address is the raster scan slice index.
[0333] —The length of slice_address is Ceil(Log2(NumTilesInPic)) bits.
[0334] —slice_address values should be in the range of 0 to NumTilesInPic-1, inclusive.
[0335] Otherwise (rect_slice_flag is equal to 1), the following applies:
[0336] —The slice address is the sub-picture level slice index of the slice.
[0337] —The length of slice_address is Bit.
[0338] —The value of slice_address shall be in the range of 0 to NumSlicesInSubpic[SubPicIdx]-1, inclusive.
[0339] The following constraints apply to the bitstream conformance requirements:
[0340] —If rect_slice_flag is equal to 0 or If equal to 0, the value of slice_address shall not be equal to the value of slice_address of any other codec slice NAL unit of the same codec picture.
[0341] — Otherwise, the pair of slice_subpic_id and slice_address values shall not be equal to the pair of slice_subpic_id and slice_address values of any other codec slice NAL unit of the same codec picture.
[0342] — When rect_slice_flag is equal to 0, the slices of the picture shall be arranged in ascending order of their slice_address values.
[0343] - The shape of the picture slice shall be such that the entire left and the entire top boundary of each CTU when decoded shall consist of a picture boundary or of the boundary of the previously decoded CTU(s). ...
[0344] Figure 5 A block diagram of an example video processing system 500 in which various techniques of the present disclosure may be implemented is shown. Various implementations may include some or all of the components of system 500. System 500 may include an input 502 for receiving video content. The video content may be received in a raw or uncompressed format (e.g., 8 or 10 bit multi-component pixel values), or may be received in a compressed or encoded format. Input 502 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, a passive optical network (PON), and wireless interfaces such as Wi-Fi or a cellular interface.
[0345] System 500 may include a codec component 504, which may implement various codecs or encoding methods described in the present disclosure. Codec component 504 may reduce the average bit rate of the video from input 502 to the output of codec component 504 to generate a codec representation of the video. Therefore, codec technology is sometimes referred to as video compression or video transcoding technology. The output of codec component 504 may be stored or transmitted via a communication connection as represented by component 506. The bitstream (or codec) representation of the storage or communication of the video received at input 502 may be used by component 508, which is used to generate pixel values or displayable video sent to display interface 510. The process of generating a user-viewable video from a bitstream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it should be understood that the encoding tool or operation is used at the encoder, and the corresponding decoding tool or operation of the inverse encoding result will be performed by the decoder.
[0346] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Display Port, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The techniques described in the present disclosure may be implemented in various electronic devices, such as mobile phones, laptop computers, smart phones, or other devices capable of performing digital data processing and / or video display.
[0347] Figure 6 6 is a block diagram of a video processing device 600. Device 600 may be used to implement one or more methods described in the present disclosure. Device 600 may be located in a smart phone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. Device 600 may include one or more processors 602, one or more memories 604, and video processing hardware 606. Processor 602 may be configured to implement one or more methods described in the present disclosure. Memory 604 may be used to store data and code for implementing the methods and techniques described in the present disclosure. Video processing hardware 606 may be used in hardware circuits to implement some of the techniques described in the present disclosure. In some embodiments, hardware 606 may be partially or entirely in processor 602, such as a graphics processor.
[0348] Figure 7 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure.
[0349] like Figure 7As shown, the video coding system 100 may include a source device 110 and a target device 120. The source device 110 may generate encoded video data, and the source device 110 may be referred to as a video encoding device. The target device 120 may decode the encoded video data generated by the source device 110, and the target device 120 may be referred to as a video decoding device.
[0350] Source device 110 may include a video source 112 , a video encoder 114 , and an input / output (I / O) interface 116 .
[0351] The video source 112 may include, for example, a source of a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of these sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bit stream. The bit stream may include a bit sequence that forms a codec representation of the video data. The bit stream may include a codec picture and associated data. The codec picture is a codec representation of the picture. The associated data may include a sequence parameter set, a picture parameter set, and other grammatical structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The encoded video data may be directly sent to the target device 120 via the network 130a via the I / O interface 116. The encoded video data may also be stored on a storage medium / server 130b for access by the target device 120.
[0352] Target device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0353] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to the user. The display device 122 may be integrated with the target device 120, or may be external to the target device 120, and the target device 120 may be configured to interface with an external display device.
[0354] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVM) standard, and other current and / or other standards.
[0355] Figure 8 is a block diagram illustrating an example of a video encoder 200, which may be Figure 7 The video encoder 114 in the system 100 illustrated in FIG.
[0356] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. Figure 8 In the example shown, the video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared among the various components of the video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0357] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202 which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205 and an intra-frame prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213 and an entropy coding unit 214.
[0358] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is a picture where the current video block is located.
[0359] Furthermore, some components such as the motion estimation unit 204 and the motion compensation unit 205 may be highly integrated but are not shown in the figure for the purpose of description. Figure 8 are represented separately in the example.
[0360] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.
[0361] The mode selection unit 203 may select one of the codec modes (intra or inter), for example, based on the error result, and provide the resulting intra or inter codec block to the residual generation unit 207 to generate residual block data and the reconstruction unit 212 to reconstruct the codec block for use as a reference picture. In some examples, the mode selection unit 203 may select a combination of intra and inter prediction (CIIP) modes, where the prediction is based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 203 may also select a resolution of motion vectors for the block (e.g., sub-pixel or integer pixel precision).
[0362] In order to perform inter-frame prediction on the current video block, the motion estimation unit 204 may generate motion information of the current video block by comparing the current video block with one or more reference frames from the buffer 213. The motion compensation unit 205 may determine a predicted video block of the current video block based on the motion information of pictures other than the picture associated with the current video block from the buffer 213 and decoded samples.
[0363] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block, eg, depending on whether the current video block is in an I slice, a P slice, or a B slice.
[0364] In some examples, the motion estimation unit 204 may perform unidirectional prediction on the current video block, and the motion estimation unit 204 may search the reference picture of list 0 or 1 for the reference video block of the current video block. The motion estimation unit 204 may then generate a reference index indicating the reference picture containing the reference video block in list 0 or list 1 and a motion vector indicating the spatial displacement between the current video block and the reference video block. The motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current block based on the reference video block indicated by the motion information of the current video block.
[0365] In other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block, the motion estimation unit 204 may search the reference picture in list 0 for the reference video block of the current video block, and may also search the reference picture in list 1 for the reference video block of the current video block. The motion estimation unit 204 may then generate reference indexes indicating the reference pictures in list 0 and list 1, which include reference video blocks and motion vectors indicating spatial displacements between the reference video blocks and the current video block. The motion estimation unit 204 may output the reference index and motion vector of the current video block as motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.
[0366] In some examples, motion estimation unit 204 may output a complete set of motion information for use in a decoding process by a decoder.
[0367] In some examples, motion estimation unit 204 may not output a complete set of motion information for the current video. Instead, motion estimation unit 204 may reference motion information of another video block to signal motion information for the current video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.
[0368] In one example, motion estimation unit 204 may indicate in a syntax structure associated with the current video block a value that indicates to video decoder 300 that the current video block has the same motion information as another video block.
[0369] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference represents the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0370] As described above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 200 include advanced motion vector prediction (AMVP) and merge mode signaling.
[0371] The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a prediction video block and various syntax elements.
[0372] The residual generation unit 207 may generate residual data for the current video block by subtracting (eg, indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of samples in the current video block.
[0373] In other examples, for the current video block, such as in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.
[0374] Transform processing unit 208 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0375] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.
[0376] The inverse quantization unit 210 and the inverse transform unit 211 may apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to corresponding samples of one or more predicted video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current block stored in the buffer 213.
[0377] After the reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video block artifacts in the video block.
[0378] The entropy coding unit 214 may receive data from other functional components of the video encoder 200. When the entropy coding unit 214 receives the data, the entropy coding unit 214 may perform one or more entropy coding operations to generate entropy-coded data and output a bitstream including the entropy-coded data.
[0379] Fig. 9 is a block diagram illustrating an example of a video decoder 300, which may be Figure 7 The video decoder 114 in the system 100 is shown.
[0380] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. Figure 8 In the example shown, video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0381] In such Fig. 9 In the example shown, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. In some examples, the video decoder 300 can perform operations generally related to the video encoder 200 ( Figure 8 ) is the decoding channel that is the opposite of the encoding channel described by .
[0382] The entropy decoding unit 301 may obtain a coded bitstream. The coded bitstream may include entropy coded video data (e.g., coded video data blocks). The entropy decoding unit 301 may decode the entropy coded video data, and based on the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. For example, the motion compensation unit 302 may determine such information by performing AMVP and merge modes.
[0383] The motion compensation unit 302 may generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier for the interpolation filter at sub-pixel precision may be included in the syntax element.
[0384] Motion compensation unit 302 may calculate interpolated values for sub-integer pixels of a reference block using interpolation filters used by video encoder 20 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and use the interpolation filters to produce a prediction block.
[0385] The motion compensation unit 302 may use some syntax information to determine the size of blocks used to encode frames and / or slices of the encoded video sequence, partition information describing how each macroblock of a picture of the encoded video sequence is partitioned, a mode indicating how to encode each partition, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence.
[0386] The intra prediction unit 303 may form a prediction block from spatially neighboring blocks using, for example, an intra prediction mode received in the bitstream. The inverse quantization unit 303 inversely quantizes, i.e., dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.
[0387] The reconstruction unit 306 may add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If necessary, a deblocking filter may also be applied to filter the decoded block to remove blocky artifacts. The decoded video block is then stored in a buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also produces decoded video for presentation on a display device.
[0388] Figure 10-26 An example method for implementing the above technical solution is shown, for example, Figure 5-9 The embodiment shown.
[0389] Fig.10 A flow chart of an example method 1000 of video processing is shown. The method 1000 includes, at operation 1010, performing conversion between a video and a bitstream of the video, the bitstream including one or more access units according to a format rule, and the format rule specifies an order in which a first message and a second message for an operation point OP appear in the access unit AU such that the first message precedes the second message in a decoding order.
[0390] Fig.11A flow chart of an example method 1100 of video processing is shown. The method 1000 includes, at operation 1110, performing conversion between a video and a bitstream of the video, the bitstream including one or more access units according to a format rule, and the format rule specifies an order in which a plurality of messages for an operation point OP appear in the access unit such that a first message of the plurality of messages precedes a second message of the plurality of messages in a decoding order.
[0391] Fig.12 A flow chart of an example method 1200 for video processing is shown. The method 1200 includes, at operation 1210, performing conversion between a video including a picture and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether to signal an indication of a first flag at the beginning of a picture header associated with the picture, the first flag indicating whether the picture is an intra random access point IRAP picture or a gradual decoding refresh GDR picture.
[0392] Fig.13 A flow chart of an example method 1300 for video processing is shown. The method 1300 includes, at operation 1310, performing conversion between a video including one or more pictures and a bitstream of the video, the bitstream conforming to a format rule, the format rule not allowing a picture in the one or more pictures to be encoded and decoded to include a codec slice network abstraction layer NAL unit with a progressive decoding refresh type, and associated with a flag indicating that the picture includes a NAL unit of a mixed type.
[0393] Fig.14 A flow chart of an example method 1400 for video processing is shown. The method 1400 includes, at operation 1410, performing conversion between a video including one or more pictures and a bitstream of the video, the bitstream conforming to a format rule, the format rule allowing a picture of the one or more pictures to be encoded and decoded to include a codec slice network abstraction layer NAL unit with a progressive decoding refresh type and to be associated with a flag indicating that the picture does not include a NAL unit of a hybrid type.
[0394] Fig.15 A flow chart of an example method 1500 for video processing is shown. The method 1500 includes, at operation 1510, performing conversion between a picture of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether a first syntax element is signaled in a picture parameter set PPS associated with the picture, the picture including one or more slices having a slice type, since the first syntax element is equal to 0, the first syntax element indicates that the slice type is signaled in the picture header, otherwise the first syntax element indicates that the slice type is signaled in the slice header.
[0395] Fig.16A flow chart of an example method 1600 for video processing is shown. The method 1600 includes, at operation 1610, performing conversion between a picture of a video and a bitstream of the video according to a rule, the conversion including a loop filtering process, and the rule dictates that a total number of vertical virtual boundaries and a total number of horizontal virtual boundaries associated with the loop filtering operation are signaled at a picture level or a sequence level.
[0396] Fig.17 A flow chart of an example method 1700 for video processing is shown. The method 1700 includes, at operation 1710, performing conversion between a video including one or more pictures and a bitstream of the video, the bitstream conforming to a format rule, the format rule conditionally allowing encoding and decoding of a picture in a layer by using a reference picture from another layer based on a first syntax element, the first syntax element indicating whether the reference picture from the other layer is present in the bitstream, and conditionally signaling the first syntax element in the bitstream based on a second syntax element, the second syntax element indicating whether an identifier of a parameter set associated with the picture is not equal to 0.
[0397] Fig.18 A flowchart of an example method 1800 for video processing is shown. The method 1800 includes, at operation 1810, performing conversion between a picture of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying a first syntax element, the first syntax element enabling (a) synchronization of context variables before decoding a codec tree unit CTU in a picture and (b) storage of context variables after decoding the CTU, the first syntax element being signaled in a sequence parameter set SPS associated with the picture.
[0398] Fig.19 A flow chart of an example method 1900 for video processing is shown. The method 1900 includes, at operation 1910, performing conversion between a picture of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying a syntax element, the syntax element indicating whether there is signaling of an entry point offset for a slice or a slice-specified codec tree unit CTU row in a slice header of the picture, and signaling the syntax element in a sequence parameter set SPS associated with the picture.
[0399] Fig. 20 A flow chart of an example method 2000 for video processing is shown. The method 2000 includes, at operation 2010, performing conversion between a video and a bitstream of the video according to a rule, the rule specifying a first syntax element, the first syntax element indicating that the number of parameters for an output layer set OLS hypothetical reference decoder HRD in a video parameter set VPS associated with the video is less than a first preset threshold.
[0400] Fig.21A flow chart of an example method 2100 of video processing is shown. The method 2100 includes, at operation 2110, performing conversion between a video and a bitstream of the video according to a rule, the rule specifying a syntax element, the syntax element indicating that the number of profile / tier / level PTL syntax structures in a video parameter set VPS associated with the video is less than a preset threshold.
[0401] Fig. 22 A flow chart of an example method 2200 of video processing is shown. The method 2200 includes, at operation 2210, performing conversion between a video and a bitstream of the video according to a rule, the rule specifying a first syntax element, the first syntax element indicating that the number of decoded picture buffer parameter syntax structures in a video parameter set VPS must be less than or equal to a second syntax element, the second syntax element indicating the number of layers specified by the VPS.
[0402] Fig.23 A flow chart of an example method 2300 of video processing is shown. The method 2300 includes, at operation 2310, performing conversion between a video and a bitstream of the video according to rules that allow a decoder to obtain a terminal network abstraction layer NAL unit by signaling in the bitstream or providing by external means.
[0403] Fig.24 A flow chart of an example method 2400 for video processing is shown. The method 2400 includes, at operation 2410, performing conversion between a video and a bitstream of the video, the bitstream conforming to a format rule, and the format rule restricting only one sub-picture per layer to be included in the bitstream due to a syntax element being equal to 0, indicating that each layer is configured to use inter-layer prediction.
[0404] Fig.25 A flowchart of an example method 2500 for video processing is shown. The method 2500 includes, at operation 2510, performing conversion between a video and a bitstream of the video according to a rule, the rule specifying that a sub-bitstream extraction process is implemented to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream having a target highest temporal identifier from the bitstream, and the rule specifying that during the extraction process, when removing a video codec layer VCL network abstraction layer NAL unit, a padding data unit and a padding supplemental enhancement information (SEI) SEI message in a supplemental enhancement information (SEI) VCL unit associated with the VCL NAL unit are also deleted.
[0405] Fig.26A flow chart of an example method 2600 for video processing is shown. The method 2600 includes, at operation 2610, performing conversion between a video unit of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying that the bitstream includes a first syntax element, the first syntax element indicating whether the video unit is encoded or decoded in a lossy mode or a lossless mode, and signaling a second syntax element indicating selective inclusion of escaped samples in a palette mode applied to the video unit based on a value of the first syntax element.
[0406] Next, a list of preferred solutions for some embodiments is provided.
[0407] A1. A video processing method, comprising: performing conversion between a video and a bit stream of the video, wherein the bit stream includes one or more access units according to a format rule, and wherein the format rule specifies the order in which a first message and a second message for an operation point OP appear in the access unit AU so that the first message precedes the second message in the decoding order.
[0408] A2. The method according to solution A1, wherein the first message comprises a Buffer Period BP Supplemental Enhancement Information SEI message, and the second message comprises a Picture Timing (PI) SEI message.
[0409] A3. The method according to solution A1, wherein the first message comprises a buffer period BP supplemental enhancement information SEI message, and the second message comprises a decoding unit (DUI) SEI message.
[0410] A4. The method according to solution A1, wherein the first message comprises a picture timing PT supplemental enhancement information SEI message, and the second message comprises a decoding unit (DUI) SEI message.
[0411] A5. A video processing method, comprising: performing conversion between a video and a bit stream of the video, wherein the bit stream includes one or more access units according to a format rule, and wherein the format rule specifies the order in which multiple messages for an operation point OP appear in the access unit so that a first message of the multiple messages precedes a second message of the multiple messages in a decoding order.
[0412] A6. A method according to solution A5, wherein the multiple messages include a buffer period (BP) SEI message, a decoding unit information (DUI) SEI message, a picture timing (PT) SEI message and a sub-picture level information (SLI) SEI message.
[0413] A7. The method according to solution A6, wherein the decoding order is SLI SEI message, BP SEI message, PT SEI message and DUI message.
[0414] Another list of preferred solutions for some embodiments is provided next.
[0415] B1. A video processing method, comprising: performing conversion between a video including a picture and a bitstream of the video, wherein the bitstream complies with a format rule, wherein the format rule specifies whether to signal an indication of a first flag at the beginning of a picture header associated with the picture, wherein the first flag indicates whether the picture is an intra random access point IRAP picture or a progressive decoding refresh GDR picture.
[0416] B2. The method according to solution B1, wherein an IRAP picture is a picture for which this picture and all subsequent pictures in output order can be correctly decoded when decoding of the bitstream starts from this picture.
[0417] B3. The method according to solution B1 or B2, wherein the IRAP picture comprises only I slices.
[0418] B4. The method according to solution B1, wherein a GDR picture is a picture for which the associated recovery point picture and all subsequent pictures in decoding order and output order can be correctly decoded when decoding of the bitstream starts from this picture.
[0419] B5. The method according to solution B1, wherein the format rule further specifies whether the second flag is signaled in the bitstream based on the indication.
[0420] B6. The method according to solution B5, wherein the first flag is irap_or_gdr_pic_flag.
[0421] B7. The method according to solution B6, wherein the second flag is no_output_of_prior_pics_flag.
[0422] B8. A method according to any of solutions B1-7, wherein a first flag equal to 1 specifies whether the picture is an IRAP picture or a GDR picture.
[0423] B9. A method according to any of solutions B1-7, wherein the first flag equal to 0 specifies that the picture is neither an IRAP picture nor a GDR picture.
[0424] B10. The method according to any of the solutions B1-9, wherein each network access layer NAL of a GDR picture has a nal_unit_type syntax element equal to GDR_NUT.
[0425] Another list of preferred solutions for some embodiments is provided next.
[0426] C1. A video processing method, comprising: performing conversion between a video including one or more pictures and a bitstream of the video, wherein the bitstream complies with a format rule, wherein the format rule does not allow encoding and decoding of a picture in the one or more pictures to include a codec slice network abstraction layer NAL unit with a progressive decoding refresh type, and is associated with a flag indicating that the picture includes a NAL unit of a mixed type.
[0427] C2. A video processing method, comprising: performing conversion between a video including one or more pictures and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule allows encoding and decoding of a picture in the one or more pictures to include a codec slice network abstraction layer NAL unit with a progressive decoding refresh type, and to be associated with a flag indicating that the picture does not include a NAL unit of a mixed type.
[0428] C3. The method according to solution C1 or C2, wherein the flag is mixed_nalu_types_in_pic_flag.
[0429] C4. A method according to solution C3, wherein the flag is in the picture parameter set PPS.
[0430] C5. The method according to any of the solutions C1-C4, wherein the picture is a Progressive Decoding Refresh (GDR) picture, and wherein each slice or NAL unit in the picture has nal_unit_type equal to GDR_NUT.
[0431] C6. A video processing method, comprising: performing conversion between a picture of a video and a bitstream of the video, wherein the bitstream complies with a format rule, the format rule specifying whether to signal a first syntax element in a picture parameter set PPS associated with the picture, wherein the picture includes one or more slices having a slice type, wherein since the first syntax element is equal to 0, the first syntax element indicates that the slice type is signaled in a picture header, otherwise the first syntax element indicates that the slice type is signaled in a slice header.
[0432] C7. The method according to solution C6, wherein the first syntax element is mixed_slice_types_in_pic_flag.
[0433] C8. A method according to solution C6 or C7, wherein the first syntax element is signaled due to the second syntax element being equal to 0 and / or the third syntax element being greater than 0.
[0434] C9. The method according to solution C8, wherein the second syntax element specifies at least one characteristic of one or more slices in one or more slices.
[0435] C10. The method according to solution C9, wherein the second syntax element equal to 0 specifies that the one or more slices are in raster scan order and slice information is not included in the PPS.
[0436] C11. A method according to solution C9, wherein the second syntax element equal to 0 specifies that one or more slices cover a rectangular area of the picture, and the slice information is signaled in the PPS.
[0437] C12. The method according to any of solutions C9-C11, wherein the second syntax element is rect_slice_flag.
[0438] C13. The method according to solution C8, wherein the third syntax element specifies the number of rectangular slices in the picture referring to the PPS.
[0439] C14. The method according to solution C13, wherein the third syntax element is num_slices_in_pic_minus1.
[0440] C15. A video processing method, comprising: performing conversion between a picture of a video and a bitstream of the video according to a rule, wherein the conversion includes a loop filtering process, and wherein the rule stipulates that the total number of vertical virtual boundaries and the total number of horizontal virtual boundaries associated with the loop filtering operation are signaled at a picture level or a sequence level.
[0441] C16. A method according to solution C15, wherein the total number of vertical virtual boundaries includes a first number N1 of vertical virtual boundaries signaled in a picture parameter set PPS or in a sequence parameter set SPS and a second number N3 of additional vertical virtual boundaries signaled in a picture header PH, and wherein the total number of horizontal virtual boundaries includes a third number N2 of horizontal virtual boundaries signaled in the PPS or SPS and a fourth number N4 of additional horizontal virtual boundaries signaled in the PH.
[0442] C17. A method according to solution C16, wherein N1+N3≤N1 and N2+N4≤N2.
[0443] C18. A method according to solution C16 or C17, wherein N1=3, N2=3, N3=1, and N4=1.
[0444] Another list of preferred solutions for some embodiments is provided next.
[0445] D1. A video processing method, comprising: performing conversion between a video comprising one or more pictures and a bitstream of the video, wherein the bitstream complies with a format rule, wherein the format rule conditionally allows encoding and decoding of a picture within a layer by using a reference picture from other layers based on a first syntax element, the first syntax element indicating whether the reference picture from the other layer is present in the bitstream, and wherein the first syntax element is conditionally signaled in the bitstream based on a second syntax element, the second syntax element indicating whether an identifier of a parameter set associated with the picture is not equal to 0.
[0446] D2. The method according to solution D1, wherein the first syntax element is inter_layer_ref_pics_present_flag.
[0447] D3. A method according to solution D1 or D2, wherein the first syntax element specifies whether inter-layer prediction is enabled and whether inter-layer reference pictures can be used.
[0448] D4. The method according to solution D1, wherein the first syntax element is sps_inter_layer_prediction_enabled_flag.
[0449] D5. A method according to any of solutions D1-D4, wherein the first syntax element is in a sequence parameter set SPS.
[0450] D6. A method according to any of the solutions D1-D4, wherein the parameter set is a video parameter set VPS.
[0451] D7. The method according to solution D6, wherein the second syntax element is sps_video_parameter_set_id.
[0452] D8. A method according to solution D6 or D7, wherein the parameter set provides an identifier for the VPS as a reference for other syntax elements.
[0453] D9. A method according to solution D7, wherein the second syntax element is in a sequence parameter set SPS.
[0454] Another list of preferred solutions for some embodiments is provided next.
[0455] E1. A video processing method, comprising: performing conversion between a picture of a video and a bitstream of the video, wherein the bitstream complies with a format rule, wherein the format rule specifies a first syntax element, the first syntax element enables (a) synchronization processing of context variables before decoding a codec tree unit CTU in a picture and (b) storage processing of context variables after decoding the CTU, wherein the first syntax element is signaled in a sequence parameter set SPS associated with the picture.
[0456] E2. The method according to solution E1, wherein the first syntax element is not included in the picture parameter set PPS associated with the picture.
[0457] E3. The method according to solution E1 or E2, wherein the CTU comprises a first codec tree block (CTB) in a row of codec tree blocks in each slice of the picture.
[0458] E4. The method according to any of solutions E1-E3, wherein the first syntax element is entropy_coding_sync_enabled_flag.
[0459] E5. The method according to any of solutions E1-E3, wherein the first syntax element is sps_entropy_coding_sync_enabled_flag.
[0460] E6. A method according to any one of solutions E1-E5, wherein the format rule specifies a second syntax element, the second syntax element indicating whether there is signaling of entry point offsets for a slice or a slice-specified CTU row in a slice header of the picture, and wherein the second syntax element is signaled in an SPS associated with the picture.
[0461] E7. A video processing method, comprising: performing conversion between a picture of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies a syntax element, the syntax element indicating whether there is a signaling notification of an entry point offset for a slice or a slice-specified codec tree unit CTU row in a slice header of the picture, and wherein the syntax element is signaled in a sequence parameter set SPS associated with the picture.
[0462] E8. A method according to solution E7, wherein the format rule allows signaling of the entry point offset based on a syntax element with value equal to 1.
[0463] E9. A method according to solution E7 or E8, wherein the picture parameter set PPS associated with the picture does not include syntax elements.
[0464] E10. The method according to any of solutions E7-E9, wherein the syntax element is entry_point_offsets_present_flag.
[0465] E11. The method according to any of solutions E7-E9, wherein the syntax element is sps_entry_point_offsets_present_flag.
[0466] Another list of preferred solutions for some embodiments is provided next.
[0467] F1. A video processing method, comprising: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies a first syntax element, and the first syntax element indicates that the number of parameters for an output layer set OLS assumed reference decoder HRD in a video parameter set VPS associated with the video is less than a first preset threshold.
[0468] F2. The method according to solution 1, wherein the first syntax element is vps_num_ols_timing_hrd_params_minus1.
[0469] F3. A method according to solution F1 or F2, wherein the first preset threshold is the number of multi-layer output layer sets (denoted as NumMultiLayerOlss) minus 1.
[0470] F4. A method according to any of solutions F1-F3, wherein the first syntax element is inferred to be 0 when it is not signaled in the bitstream.
[0471] F5. A method according to any of the solutions F1-F4, wherein the rule specifies a second syntax element, the second syntax element indicating that the number of profile / tier / level PTL syntax structures in the video parameter set VPS associated with the video is less than a second preset threshold.
[0472] F6. A video processing method, comprising: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies a syntax element, and the syntax element indicates that the number of profile / tier / level PTL syntax structures in a video parameter set VPS associated with the video is less than a preset threshold.
[0473] F7. The method according to solution F6, wherein the syntax element is vps_num_ptls_minus1.
[0474] F8. A method according to solution F6 or F7, wherein the preset threshold is the total number of output layer sets (denoted as TotalNumOlss).
[0475] F9. A method according to any one of solutions F1-F8, wherein the difference between the preset threshold and the syntax element is signaled in the bitstream.
[0476] F10. A method according to solution F9, wherein the difference is signaled using unary codec.
[0477] F11. A method according to solution F9, wherein the difference is signaled using Exponential-Golomb EG codec.
[0478] F12. A video processing method, comprising: performing conversion between video and video bitstream according to rules, wherein the rules specify a first syntax element, the first syntax element indicating that the number of decoded picture buffer parameter syntax structures in a video parameter set VPS must be less than or equal to a second syntax element, and the second syntax element indicating the number of layers specified by the VPS.
[0479] F13. A method according to solution F12, wherein the difference between the first syntax element and a preset threshold is signaled in the bitstream.
[0480] F14. A method according to solution F12, wherein the difference between the second syntax element and a preset threshold is signaled in the bitstream.
[0481] F15. A method according to solution F13 or F14, wherein the difference is signalled using a unary codec.
[0482] F16. A method according to solution F13 or F14, wherein the difference is signaled using Exponential-Golomb EG codec.
[0483] F17. A video processing method, comprising: performing conversion between a video and a bit stream of the video according to a rule, wherein the rule allows a decoder to obtain a terminal network abstraction layer NAL unit by signaling in the bit stream or providing it by external means.
[0484] F18. A method according to solution F17, wherein the terminating NAL unit is a terminating EOB of a bitstream NAL unit.
[0485] F19. A method according to solution F9, wherein the terminal NAL unit is a terminal EOS of a sequence NAL unit.
[0486] F20. A method according to any of solutions F17-F19, wherein the external means comprises a parameter set.
[0487] F21. A video processing method, comprising: performing conversion between a video and a bitstream of the video, wherein the bitstream complies with a format rule, and wherein, due to a syntax element being equal to 0, the format rule restricts each layer in the bitstream to include only one sub-picture, indicating that each layer is configured to use inter-layer prediction.
[0488] F22. The method according to solution F21, wherein the syntax element is vps_independent_layer_flag.
[0489] Another list of preferred solutions for some embodiments is provided next.
[0490] G1. A video processing method, comprising: performing conversion between a video and a bitstream of the video according to a rule, wherein the rule stipulates implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream with a target highest time domain identifier from the bitstream, and wherein the rule stipulates that during the extraction process, when removing a video codec layer VCL network abstraction layer NAL unit, a padding data unit and a padding supplemental enhancement information SEI message in a supplemental enhancement information (SEI) VCL unit associated with the VCL NAL unit are also deleted.
[0491] G2. Method according to solution G1, wherein the VCL NAL unit is removed based on an identifier of the layer to which the VCL NAL belongs.
[0492] G3. A method according to solution G2, wherein the identifier is nuh_layer_id.
[0493] G4. The method of solution G1, wherein the bitstream complies with a format rule that specifies that a SEI NAL unit including a SEI message with a padding payload does not include a SEI message with a payload different from the padding payload.
[0494] G5. The method according to solution G1, wherein the bitstream complies with a format rule that specifies that a SEI NAL unit including a SEI message with a padding payload is configured to not include another SEI message with any other payload.
[0495] G6. A method according to solution G1, wherein a VCL NAL unit has at most one associated padding NAL unit.
[0496] G7. A video processing method, comprising: performing conversion between a video unit of a video and a bitstream of the video, wherein the bitstream complies with a format rule, wherein the format rule stipulates that the bitstream includes a first syntax element, the first syntax element indicates whether the video unit is encoded or decoded in a lossy mode or a lossless mode, and wherein signaling notifies a second syntax element to selectively include escaped samples in a palette mode applied to the video unit based on the value of the first syntax element.
[0497] G8. A method according to solution G7, wherein the binarization method of the escaped samples is based on the first syntax element.
[0498] G9. A method according to solution G7, wherein the context coding in arithmetic coding of escape samples is determined based on a flag.
[0499] G10. A method according to any one of solutions G7-G9, wherein the video unit is a codec unit CU or a codec tree unit CTU.
[0500] Another list of preferred solutions for some embodiments is provided next.
[0501] P1. A video processing method, comprising performing conversion between a picture of a video and a codec representation of the video, wherein the number of sub-pictures in the picture is included as a field in the codec representation, and the bit width of the field depends on the value of the number of sub-pictures.
[0502] P2. The method according to solution P1, wherein the field indicates the number of sub-pictures using the codeword.
[0503] P3. A method according to solution P2, wherein the codewords comprise Golomb codewords.
[0504] P4. A method according to any of solutions P1 to P3, wherein the value of the number of sub-pictures is restricted to be less than or equal to the integer number of codec treeblocks that fit within the picture.
[0505] P5. The method according to any of solution solutions P1 to P4, wherein the field depends on a codec level associated with the codec representation.
[0506] P6. A video processing method, comprising performing a conversion between a video region of a video and a codec representation of the video, wherein the codec representation conforms to a format rule, wherein the format rule specifies that a syntax element indicating a sub-picture identifier is omitted because the video region does not contain any sub-pictures.
[0507] P7. A method according to solution P6, wherein the codec representation comprises a field with a value of 0, the field with a value of 0 indicating that the video region does not include any sub-picture.
[0508] P8. A video processing method, comprising performing conversion between a video region of a video and a codec representation of the video, wherein the codec representation conforms to a format rule, wherein the format rule specifies that an identifier of a sub-picture in the video region is omitted at a video region header level of the codec representation.
[0509] P9. A method according to solution P8, wherein the codec indicates that sub-pictures are identified numerically according to the order in which they are listed in the video region header.
[0510] P10. A video processing method, comprising performing conversion between a video region of a video and a codec representation of the video, wherein the codec representation complies with a format rule, wherein the format rule specifies an identifier of a sub-picture in the video region and / or the length of the identifier of the sub-picture at a sequence parameter set level or a picture parameter set level.
[0511] P11. A method according to solution P10, wherein the length is contained at the picture parameter set level.
[0512] P12. A video processing method, comprising performing conversion between a video region of a video and a codec representation of the video, wherein the codec representation conforms to a format rule, wherein the format rule specifies including a field in the codec representation at a video sequence level to indicate whether a sub-picture identifier length field is included in the codec representation at the video sequence level.
[0513] P13. A method according to solution P12, wherein the format rule specifies setting the field to 1 in case another field in the codec representation indicates that a length identifier of the video region is included in the codec representation.
[0514] P14. A video processing method, comprising performing a conversion between a video region of a video and a codec representation of the video, wherein the codec representation complies with a format rule, and wherein the format rule specifies that an indication indicating whether the video region can be used as a reference picture is included in the codec representation.
[0515] P15. A method according to solution P14, wherein the indication comprises a layer ID and an index or ID value associated with the video region.
[0516] P16. A video processing method, comprising performing a conversion between a video region of a video and a codec representation of the video, wherein the codec representation conforms to a format rule, and wherein the format rule provides for including an indication in the codec representation to indicate whether the video region can use inter-layer prediction (ILP) from multiple sample values associated with the video region of a reference layer.
[0517] P17. The method according to solution P16, wherein the indication is included at the sequence level, the picture level or the video level.
[0518] P18. Method according to solution P16, wherein the video region of the reference layer comprises at least one collocated sample of the samples within the video region.
[0519] P19. A method according to solution P16, wherein the indication is included in one or more supplemental enhancement information SEI messages.
[0520] P20. A video processing method, comprising, when a first message and a second message of an operation point in an access unit of an applied video are present in a codec representation of the video, configuring a codec representation in which the first message takes precedence over the second message in a decoding order, for example; and based on the configuration, performing conversion between a video area and a codec representation of the video.
[0521] P21. A method according to solution P20, wherein the first message comprises a Buffer Period BP Enhancement Supplemental Information SEI message, and the second message comprises a Picture Timing (PT) SEI message.
[0522] P22. A method according to solution P20, wherein the first message comprises a buffer period BP supplemental enhancement information SEI message, and the second message comprises a decoding unit (DUI) SEI message.
[0523] P23. A method according to solution P20, wherein the first message comprises a picture timing PT supplemental enhancement information SEI message, and the second message comprises a decoding unit (DUI) SEI message.
[0524] P24. A method according to any of the above schemes, wherein the video area includes a sub-picture of the video.
[0525] P25. A method according to any of the above schemes, wherein the conversion comprises parsing and decoding the codec representation to generate a video.
[0526] P26. A method according to any of the above schemes, wherein the conversion comprises encoding the video to generate a codec representation.
[0527] P27. A video decoding device, comprising a processor, the processor being configured to execute any one or more methods of schemes P1 to P26.
[0528] P28. A video encoding device, comprising a processor configured to execute any one or more methods of schemes P1 to P26.
[0529] P29. A computer program product having computer code stored thereon, which, when executed, causes a processor to perform the method of any one of schemes P1 to P26.
[0530] Another list of preferred solutions for some embodiments is provided next.
[0531] O1. A method according to any of the above schemes, wherein the conversion comprises decoding a video from a bitstream.
[0532] O2. A method according to any of the above schemes, wherein the conversion comprises encoding the video into a bitstream.
[0533] O3. A method according to any of the above schemes, wherein the conversion comprises generating a bitstream from the video, and wherein the method further comprises: storing the bitstream in a non-temporary computer-readable recording medium.
[0534] O4. A method for storing a bit stream representing a video in a computer-readable recording medium, comprising: generating a bit stream from a video according to the method of any of the above schemes; and writing the bit stream into a computer-readable recording medium.
[0535] O5. A video processing device, comprising a processor, wherein the processor is configured to execute the method of any of the above schemes.
[0536] O6. A computer-readable medium having instructions stored thereon, wherein the instructions, when executed, cause a processor to perform any of the methods of the above schemes.
[0537] O7. A computer-readable medium storing a bit stream generated by any of the methods of the above schemes.
[0538] O8. A video processing device for storing a bit stream, wherein the video processing device is configured to execute the method of any of the above schemes.
[0539] O9. A bit stream generated using the method in any of the above schemes, wherein the bit stream is stored on a computer-readable medium.
[0540] The disclosure and other solutions, examples, embodiments, modules and functional operations described in this application document can be implemented in digital electronic circuits, or computer software, firmware or hardware, including the structures disclosed in this specification and their structural equivalents, or a combination of one or more thereof. The contents and other embodiments disclosed in this specification can be implemented as one or more computer program products, that is, one or more modules of computer program instructions encoded on a tangible and non-volatile computer-readable medium for data processing devices to execute or control the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a material composition that affects a machine-readable propagation signal, or a combination of one or more thereof. The term "data processing unit" or "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or a multiprocessor or a computer group. In addition to hardware, the device may also include code that creates an execution environment for a computer program, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. The propagated signal is an artificially generated signal, for example, a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.
[0541] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language (including compiled or interpreted languages) and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program may be deployed for execution on one or more computers that are located at one site or distributed across multiple sites and interconnected by a communications network.
[0542] The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuits, and the apparatus may also be implemented as special purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application specific integrated circuits).
[0543] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic components of a computer are a processor that executes instructions and one or more storage devices that store instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to one or more mass storage devices to receive data from them or transfer data to one or more mass storage devices, or both. However, a computer does not necessarily have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable hard disks; magneto-optical disks; and CDROM and DVDROM disks. The processor and memory may be supplemented by, or incorporated into, dedicated logic circuits.
[0544] Although this patent document contains many details, they should not be construed as limitations on the scope of any invention or the claims, but rather as descriptions of features of particular embodiments of particular inventions. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various functions described in the context of a single embodiment may also be implemented separately in multiple embodiments, or in any suitable subcombination. In addition, although the above-mentioned features may be described as working in certain combinations, or even initially claimed to be so, in some cases, one or more features in the claim combination may be removed from the combination, and the claim combination may be directed to subcombinations or variations of subcombinations.
[0545] Likewise, although operations are described in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order or order shown, or that all illustrated operations be performed, in order to achieve the desired results. In addition, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.
[0546] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this patent document.
Claims
1. A video processing method, comprising: performing conversion between a video and a bitstream of said video according to a rule, wherein the rule provides for implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream having a target highest temporal identifier from the bitstream, The rule specifies that during the sub-bitstream extraction process, when removing the video codec layer VCL network abstraction layer NAL unit, the padding data unit associated with the VCL NAL unit and the SEI NAL unit associated with the VCL NAL unit including the padding supplemental enhancement information SEI message are also removed, and The bitstream complies with a format rule, wherein the format rule stipulates that a SEI NAL unit including a SEI message with a padding payload does not include a SEI message with a payload different from the padding payload.
2. The method according to claim 1, wherein: The VCL NAL unit is removed based on an identifier of the layer to which the VCL NAL unit belongs.
3. The method according to claim 2, wherein: The identifier is nuh_layer_id.
4. The method according to claim 1, wherein: The bitstream complies with format rules which specify that a SEI NAL unit including a SEI message with a padding payload is configured to exclude another SEI message with any other payload.
5. The method according to claim 1, wherein: The VCL NAL unit has at most one associated padding NAL unit.
6. The method according to any one of claims 1 to 5, wherein: The converting includes decoding the video from the bitstream.
7. The method according to any one of claims 1 to 5, wherein: The converting includes encoding the video into the bitstream.
8. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein: The instructions, when executed by the processor, cause the processor to: performing conversion between a video and a bitstream of said video according to a rule, wherein the rule provides for implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream having a target highest temporal identifier from the bitstream, The rule specifies that during the sub-bitstream extraction process, when removing the video codec layer VCL network abstraction layer NAL unit, the padding data unit associated with the VCL NAL unit and the SEI NAL unit associated with the VCL NAL unit including the padding supplemental enhancement information SEI message are also removed, and The bitstream complies with a format rule, wherein the format rule stipulates that a SEI NAL unit including a SEI message with a padding payload does not include a SEI message with a payload different from the padding payload.
9. The device according to claim 8, wherein: The VCL NAL unit is removed based on an identifier of the layer to which the VCL NAL unit belongs.
10. The device according to claim 9, wherein: The identifier is nuh_layer_id.
11. The device according to claim 8, wherein: The bitstream complies with format rules which specify that a SEI NAL unit including a SEI message with a padding payload is configured to exclude another SEI message with any other payload.
12. A non-transitory computer-readable storage medium storing instructions that cause a processor to: performing conversion between a video and a bitstream of said video according to a rule, in, The rule provides for implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream having a target highest temporal identifier from the bitstream, The rule specifies that during the sub-bitstream extraction process, when removing the video codec layer VCL network abstraction layer NAL unit, the padding data unit associated with the VCL NAL unit and the SEI NAL unit associated with the VCL NAL unit including the padding supplemental enhancement information SEI message are also removed, and The bitstream complies with a format rule, wherein the format rule stipulates that a SEI NAL unit including a SEI message with a padding payload does not include a SEI message with a payload different from the padding payload.
13. The non-transitory computer-readable storage medium of claim 12, wherein: The VCL NAL unit is removed based on an identifier of the layer to which the VCL NAL unit belongs.
14. The non-transitory computer-readable storage medium of claim 13, wherein: The identifier is nuh_layer_id.
15. A non-transitory computer-readable recording medium storing a bit stream of a video generated by a method performed by a video processing device, wherein: The method comprises: Generate the video bitstream according to the rules, wherein the rule provides for implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream having a target highest temporal identifier from the bitstream, The rule specifies that during the sub-bitstream extraction process, when removing the video codec layer VCL network abstraction layer NAL unit, the padding data unit associated with the VCL NAL unit and the SEI NAL unit associated with the VCL NAL unit including the padding supplemental enhancement information SEI message are also removed, and The bitstream complies with a format rule, wherein the format rule stipulates that a SEI NAL unit including a SEI message with a padding payload does not include a SEI message with a payload different from the padding payload.
16. The non-transitory computer-readable recording medium according to claim 15, wherein: The VCL NAL unit is removed based on an identifier of the layer to which the VCL NAL unit belongs.
17. The non-transitory computer-readable recording medium according to claim 16, wherein: The identifier is nuh_layer_id.
18. A method for storing a bitstream of a video, comprising: Generate the video bitstream according to the rules, storing the bitstream in a non-transitory computer-readable recording medium, wherein the rule provides for implementing a sub-bitstream extraction process to generate a sub-bitstream for decoding, wherein the sub-bitstream extraction process is configured to extract a sub-bitstream having a target highest temporal identifier from the bitstream, The rule specifies that during the sub-bitstream extraction process, when removing the video codec layer VCL network abstraction layer NAL unit, the padding data unit associated with the VCL NAL unit and the SEI NAL unit associated with the VCL NAL unit including the padding supplemental enhancement information SEI message are also removed, and The bitstream complies with a format rule, wherein the format rule stipulates that a SEI NAL unit including a SEI message with a padding payload does not include a SEI message with a payload different from the padding payload.
19. A method for storing a bit stream of a video in a computer-readable recording medium, comprising: Generating the bitstream from the video according to the method of any one of claims 2-7; as well as The bit stream is stored in the computer-readable recording medium.
20. A video processing device, comprising a processor, wherein: The processor is configured to execute the method according to any one of claims 5-7.
21. A computer readable medium having instructions stored thereon, wherein: The instructions, when executed, cause a processor to perform a method according to any one of claims 4-7.
22. A computer-readable medium storing a bit stream generated by the method according to any one of claims 2 to 7 executed by a video processing device.
23. A video processing device for storing a bit stream, wherein: The bit stream is generated by the method according to any one of claims 1 to 7 performed by the video processing device.
Citation Information
Patent Citations
Parameter set coding
CN106664424A
Video signal processing method and device
CN109417628A