Decoding based on bidirectional image conditions

By decoding the specified codeword in the VVC encoding scheme to determine the fragment type of the encoded picture and derive the necessary parameter values, the problem of unnecessary bit cost and complexity judgment is solved, and a more efficient encoding and decoding process is achieved.

CN115380538BActive Publication Date: 2025-05-06TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180027473.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-02
Filing Date
2021-03-30
Publication Date
2025-05-06
Estimated Expiration
2041-03-30

AI Technical Summary

Technical Problem

The existing VVC encoding scheme still needs to transmit the chip type in the header when it is not needed, resulting in unnecessary bit costs; at the same time, there is the complexity of judging whether the encoded picture is a bidirectional inter-frame coded picture, and the problem of still transmitting related syntax elements when the bidirectional prediction tool is not supported.

Method used

Determine whether the encoded picture can contain bidirectional inter-encoded fragments by decoding the specified codeword from the bitstream and derive the necessary parameter values ​​based on the value so as to decode without transmitting unnecessary syntax elements.

Benefits of technology

Reduces unnecessary bit costs, simplifies the process of judging encoded image types, and avoids meaningless syntax element transfer when bidirectional prediction tools are not supported.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115380538B_ABST
    Figure CN115380538B_ABST
Patent Text Reader

Abstract

Methods and apparatus for encoding or decoding a segment in a coded picture. Decoding may include obtaining from a bitstream a value of a first codeword indicating whether a coded picture may contain a bidirectional inter-frame coded segment. Decoding may include deriving, based on the value of the first codeword, one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain one or more parameter values, or (b) inferring one or more parameter values. Decoding may include decoding a segment in a coded picture based on the one or more parameter values. Encoding may include encoding the first codeword into a bitstream, and determining whether to encode the one or more parameter values ​​into the bitstream based on a determination of whether the coded picture will contain a bidirectional inter-frame coded segment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to encoding and decoding pictures (eg, encoding / decoding video sequences). Some aspects of the present invention relate to indicating whether a coded picture may contain bidirectional inter-coded slices. Background Art

[0002] HEVC and VVC

[0003] High Efficiency Video Coding (HEVC) is a block-based video codec standardized by the International Telecommunication Union-Telecommunication (ITU-T) and the Moving Picture Experts Group (MPEG), which utilizes both temporal prediction and spatial prediction. Spatial prediction is achieved using intra-frame (I) prediction from within the current picture. Temporal prediction is achieved using unidirectional (P) or bidirectional (B) inter-frame prediction at the block level based on previously decoded reference pictures. In the encoder, the difference between the original pixel data and the predicted pixel data (called the residual) is transformed to the frequency domain and quantized before being sent together with the necessary prediction parameters (such as prediction mode and motion vectors, which are also entropy encoded), and then entropy encoded. The decoder performs entropy decoding, inverse quantization, and inverse transformation to obtain the residual, and then adds the residual to the intra-frame prediction or inter-frame prediction to reconstruct the picture.

[0004] MPEG and ITU-T are developing a successor to HEVC within the Joint Video Exploration Team (JVET). The name of this video codec under development is Versatile Video Coding (VVC). At the time of writing this article, the current version of the VVC specification is JVET-Q2001-vE.

[0005] Quantity

[0006] A video sequence comprises a series of images, where each image comprises one or more components. Each component can be described as a two-dimensional rectangular array of sample values. An image in a video sequence typically comprises three components; a luminance component Y, where the sample values ​​are luminance values; and two chrominance components Cb and Cr, where the sample values ​​are chrominance values. Moreover, the size of the chrominance components is typically 1 / 2 of the size of the luminance components in each dimension. For example, the size of the luminance component of an HD image will be 1920x1080, while the size of the chrominance components will each have a size of 960x540. Components are sometimes referred to as color components.

[0007] Blocks and cells

[0008] A block is a two-dimensional array of samples. In video coding, each component is partitioned into blocks, and the coded video bitstream includes a series of coded blocks. Typically, in video coding, an image is partitioned into units covering a specific area of ​​the image. Each unit includes all blocks from all components that make up that specific area, and each block belongs entirely to one unit. Macroblocks in H.264 and coding units (CUs) in HEVC and VVC are examples of units. In HEVC and VVC, a CU can be recursively partitioned into smaller CUs. The CU at the top level is called a coding tree unit (CTU).

[0009] Alternatively, a block may be defined as a two-dimensional array to which a transform used in encoding is applied. These blocks are referred to as "transform blocks". Alternatively, a block may be defined as a two-dimensional array to which a single prediction mode is applied. These blocks may be referred to as "prediction blocks". In this application, the word "block" is not limited to one of these definitions, but the description herein may apply to either definition.

[0010] NAL units

[0011] Both HEVC and VVC define a network abstraction layer (NAL). All data in HEVC and VVC (i.e., video coding layer (VCL) or non-VCL data) is encapsulated in NAL units. VCL NAL units contain data representing picture sample values. Non-VCL NAL units contain additional related data, such as parameter sets and supplementary enhancement information (SEI) messages. NAL units in HEVC and the current version of VVC start with a header called a NAL unit header. The syntax of the NAL unit header for HEVC is shown in Table 1 and starts with a forbidden_zero_bit, which should always be equal to 0 to prevent start code emulation. Without forbidden_zero_bit, some MPEG systems may confuse HEVC video bitstreams with other data. However, the 0 bit in the NAL unit header makes all possible HEVC bitstreams uniquely identifiable as HEVC bitstreams. The nal_unit_type, nuh_layer_id, and nuh_temporal_id_plus1 codewords specify the NAL unit type (identifying what type of data is carried in the NAL unit), the layer ID, and the temporal ID to which the NAL unit belongs, respectively. The NAL unit type indicates and specifies how the NAL unit should be parsed and decoded. The NAL unit header in the current version of VVC (as shown in Table 2) is very similar to the NAL unit header in HEVC, but uses one less bit for nal_unit_type, which is reserved for future use.

[0012] The remaining bytes of the NAL unit are a payload of the type indicated by the NAL unit type. A bitstream may consist of a sequence of concatenated NAL units.

[0013]

[0014] Table 1 HEVC NAL unit header syntax

[0015]

[0016] Table 2 NAL unit header syntax of the current version of VVC

[0017] After viewing the NAL unit header, a decoder or bitstream parser can determine how the NAL unit should be processed (e.g., parsed and decoded). The remaining bytes of the NAL unit are a payload of the type indicated by the NAL unit type. A bitstream may include a series of concatenated NAL units.

[0018] The NAL unit type indicates and defines how the NAL unit should be parsed and decoded. The VCL NAL unit provides information about the picture type of the current picture. The NAL unit type of the current version of the VVC draft is shown in Table 6.

[0019] The decoding order is the order in which the NAL units should be decoded, which is the same as the order of the NAL units within the bitstream. The decoding order may be different from the output order, which is the order in which the decoder is to output the decoded pictures, e.g., for display.

[0020] Time Layer

[0021] In HEVC and the current version of VVC, all pictures are associated with a TemporalId value that specifies the temporal layer to which the picture belongs. The TemporalId value is decoded from the nuh_temporal_id_plus1 syntax element in the NAL unit header. In HEVC, the encoder needs to set the TemporalId value so that pictures belonging to lower layers can be perfectly decoded when higher temporal layers are discarded. For example, suppose the encoder has output a bitstream using temporal layers 0, 1, and 2. The bitstream can be decoded without any problems even if all layer 2 NAL units or all layer 1 and layer 2 NAL units are removed. The ability of pictures belonging to lower layers to be decodable when higher temporal layers are discarded is ensured by restrictions in the HEVC / VVC specification that the encoder must comply with. For example, the HEVC / VVC specification does not allow pictures of a temporal layer to reference pictures of a higher temporal layer.

[0022] Picture unit, access unit, and access unit delimiter

[0023] A picture unit (PU) in the current version of VVC is defined as a set of NAL units whose VCL NAL units all belong to the same layer, are associated with each other according to the specified classification rules, are continuous in decoding order, and contain exactly one coded picture. In previous versions of VVC, PUs were called layer access units. In HEVC, PUs are called access units (AUs).

[0024] In VVC, an access unit is a set of PUs that belong to different layers and contain coded pictures associated with the same time for output from a decoded picture buffer (DPB) (ie, have the same POC value).

[0025] In the current version of VVC, an access unit may optionally start with an access unit delimiter (AUD) NAL unit, which indicates the start of the access unit and the type of slices allowed in the coded picture (i.e., I, IP, or IPB). In HEVC, it is optional for an AU to start with AUD. The syntax and semantics of the access unit delimiter NAL unit in the current version of the VVC draft are as follows.

[0026] Table 3 Access unit delimiter RBSP syntax in the current version of the VVC draft

[0027]

[0028] Access Unit Delimiter RBSP Semantics

[0029] The access unit delimiter is used to indicate the start of an access unit and the type of slices present in the coded pictures in the access unit containing the access unit delimiter NAL unit. There is no canonical decoding process associated with the access unit delimiter.

[0030] pic_type indicates that the slice_type values ​​of all slices of the coded picture in the access unit containing the access unit delimiter NAL unit are members of the set listed in Table 7-3 for a given value of pic_type. In bitstreams conforming to this version of this specification, the value of pic_type shall be equal to 0, 1, or 2. Other values ​​of pic_type are reserved for future use by ITU T | ISO / IEC. Decoders conforming to this version of this specification shall ignore reserved values ​​of pic_type.

[0031] pic_type The slice_type values ​​that can exist in the encoded picture 0 I 1 P,I 2 B, P, I

[0032] Table 7-3- Explanation of pic_type

[0033] Layers, dependent layers, and independent layers

[0034] A layer is defined in VVC as a set of VCL NAL units and associated non-VCL NAL units, each with a specific nuh_layer_id value.

[0035] A coded layer video sequence (CLVS) in the current version of VVC is defined as a sequence of PUs that, in decoding order, includes a CLVS start (CLVSS) PU, followed by zero or more PUs that are not CLVSS PUs, and includes all subsequent PUs up to but not including any subsequent PU that is a CLVSS PU.

[0036] The relationship between PU, AU and CLVS is as follows Figure 1 shown.

[0037] In the current version of VVC, layers can be coded independently of each other or dependent on each other. When layers are coded independently, a layer with one nuh_layer_id value (e.g., nuh_layer_idid0) may not be able to predict video data from another layer with a different nuh_layer_id value (e.g., nuh_layer_id1). In the current version of VVC, dependency coding between layers can be used, which can support scalable coding with SNR, spatial, and view scalability.

[0038] Picture Order Count (POC)

[0039] Pictures in HEVC are identified by their picture order count (POC) value (also known as the complete POC value). Each slice contains a codeword pic_order_cnt_lsb, which should be the same for all slices in a picture. Pic_order_cnt_lsb is also called the least significant bit (lsb) of the complete POC because it is a fixed-length codeword and only the least significant bit of the complete POC is signaled. Both the encoder and decoder track the POC and assign the POC value to each picture being encoded / decoded. The pic_order_cnt_lsb can be signaled by 4 to 16 bits. In HEVC, the variable MaxPicOrderCntLsb is used, which is set to the maximum pic_order_cnt_lsb value plus 1. This means: if pic_order_cnt_lsb is signaled using 8 bits, the maximum value is 255, and MaxPicOrderCntLsb is set to 2^8=256. The picture order count value of a picture is called PicOrderCntVal in HEVC. Typically, the PicOrderCntVal of the current picture is simply referred to as PicOrderCntVal. It is expected that POC will work in a similar way in the final version of VVC.

[0040] Intra-frame random access point (IRAP) pictures and coded video sequences (CVS)

[0041] An intra random access point (IRAP) picture in HEVC is a picture that is predicted during its decoding process without reference to any picture other than itself. The first picture in the bitstream in decoding order in HEVC must be an IRAP picture, but IRAP pictures may also appear later in the bitstream. HEVC specifies three types of IRAP pictures: broken link access (BLA) pictures, instantaneous decoder refresh (IDR) pictures, and completely random access (CRA) pictures.

[0042] A coded video sequence (CVS) in HEVC is a sequence of access units starting with an IRAP access unit followed by zero or more AUs, up to but not including the next IRAP access unit in decoding order.

[0043] An IDR picture always starts a new CVS. An IDR picture may have an associated Random Access Decodable Leading (RADL) picture. An IDR picture does not have an associated Random Access Skipped Leading (RASL) picture.

[0044] BLA pictures in HEVC also enable the new CVS and have the same impact on the decoding process as IDR pictures. However, BLA pictures in HEVC can contain syntax elements that specify a non-empty set of reference pictures. BLA pictures can have associated RASL pictures that are not output by the decoder and may be undecodable because they may contain references to pictures that may not be present in the bitstream. BLA pictures can also have associated RADL pictures that are decoded. BLA pictures are not defined in the current version of VVC.

[0045] A CRA picture may have associated RADL or RASL pictures. Like BLA pictures, a CRA picture may contain syntax elements that specify a non-empty set of reference pictures. For a CRA picture, a flag may be set to specify that the associated RASL pictures are not to be output by the decoder, since they may not be decodable since they may contain references to pictures that are not present in the bitstream. A CRA may start a CVS.

[0046] In the current version of the VVC draft, a CVS is a sequence of access units starting with a CVS start (CVSS) access unit followed by zero or more AUs until but not including the next CVSS access unit in decoding order. A CVSS access unit may contain an IRAP picture (ie, an IDR or CRA picture) or a progressive decoding refresh (GDR) picture. A CVS may contain one or more CLVSs.

[0047] GDR pictures are essentially used for random access in bitstreams encoded for low-delay coding, where full IRAP pictures would cause too much delay. GDR pictures can use progressive intra refresh that updates the video picture by picture, where each picture is only partially intra coded. In the case where the bitstream is decoded from a GDR picture, the video is signaled together with the GDR picture when it is fully refreshed and ready for output. GDR pictures in VVC can enable CVS or CLVS. GDR pictures are included in the current VVC draft, but are not a normative part of the HEVC standard, whereas in the normative part of the HEVC standard, GDR pictures can be indicated with SEI messages.

[0048] piece

[0049] The concept of slices in HEVC divides a picture into independently coded slices, where decoding of one slice in a picture is independent of other slices of the same picture. In previous versions of the VVC draft specification, slices were called tile groups.

[0050] One purpose of slices is to enable resynchronization in case of data loss. In HEVC, a slice is a collection of CTUs. The current version of VVC also supports slices, and VVC pictures can be divided into raster scan slices or rectangular slices. A raster scan slice includes multiple complete tiles in raster scan order. A rectangular slice includes a group of tiles that together occupy a rectangular area in the picture or a continuous number of CTU rows within a tile. Each slice has a slice header that includes syntax elements. When decoding a slice, the slice header values ​​decoded from these syntax elements are used. Each slice is carried in a VCL NAL unit.

[0051] Each slice has a slice type that defines the type of coding (i.e., the type of prediction) used by the slice, i.e., whether the slice is an I slice coded with intra prediction, a P slice coded with unidirectional prediction, or a B slice coded with bidirectional prediction. The slice type is signaled with the slice_type syntax element in the slice header, which can have one of the following values:

[0052] slice_type The name of slice_type 0 B(B film) 1 P(P film) 2 I (I piece)

[0053] Table 4 Name association with slice_type

[0054] A picture can be composed of slices of different slice types. However, a picture with a specific pic_type value or NAL unit type may be restricted to support only I slices or only I slices and P slices. For example, a picture with an IRAP NAL unit type in AUD or a picture with pic_type equal to 0 should contain only I slices, and a picture with pic_type equal to 1 in AUD can contain only I slices and P slices, while a picture with pic_type equal to 2 can contain slices of any slice type (i.e., I slices, P slices, or B slices).

[0055] In the current version of VVC, the portion of the slice header syntax related to the present invention is as follows.

[0056]

[0057] Table 5 Header syntax

[0058] Sub-image

[0059] The current version of VVC supports the concept of sub-pictures. A sub-picture is defined as a rectangular area of ​​one or more slices within a picture. This means that a sub-picture contains one or more slices that together cover a rectangular area of ​​the picture.

[0060] Sub-pictures can be used to more easily perform extraction and merging operations of picture partitions in a video bitstream, such as for viewpoint-dependent 360-degree video streams, without having to verify the independence of picture partitions in a complex manner.

[0061] In the current version of the VVC draft specification, the position and size of sub-pictures are signaled in the SPS. The boundaries of the sub-picture area can be treated as picture boundaries (excluding loop filtering operations) conditioned on the per-sub-picture flag subpic_treatment_as_pic_flag[i] in the SPS. Loop filtering on sub-picture boundaries is also conditioned on the per-sub-picture flag loop_filter_across_subpic_enabled_flag[i] in the SPS.

[0062] There is also a sub-picture ID mapping mechanism for sub-pictures in the SPS, which is gated by two flags, sps_subpic_id_present_flag and sps_subpic_id_signalling_present_flag.

[0063] Reference Image List

[0064] In VVC, a reference picture list (RPL) is signaled for the current picture to indicate which previously decoded pictures the decoder should retain for reference for decoding current and future pictures. There are two RPLs for each picture. For inter-frame prediction from only one picture (P-prediction), only the first RPL is used. For inter-frame prediction from two pictures (B-prediction), both the first RPL and the second RPL are used. An entry being active in the RPL means that the reference picture in the entry is used to decode the current picture. If the reference picture in the entry is not to be used to predict the current picture, but to predict the following picture, the entry should be retained in the RPL, but inactive in the RPL of the current picture.

[0065] Parameter Set

[0066] HEVC and VVC specify three types of parameter sets: picture parameter set (PPS), sequence parameter set (SPS), and video parameter set (VPS). PPS contains data common to the entire picture, SPS contains data common to the coded video sequence (CVS), and VPS contains data common to multiple CVSs (e.g., data for multiple layers in the bitstream).

[0067] The current version of VVC also specifies an additional parameter set, the Adaptive Parameter Set (APS). The APS carries the parameters required by the Adaptive Loop Filter (ALF) tool and the Luma Mapping and Chroma Scaling (LMCS) tool.

[0068] Decoding Capability Information (DCI)

[0069] Decoding Capability Information (DCI) specifies information that may not change during a decoding session and is best known to the decoder, such as the maximum number of allowed sublayers. The information in the DCI is not essential for the operation of the decoding process. In previous drafts of the VVC specification, the DCI was called a Decoding Parameter Set (DPS).

[0070] The decoding capability information also contains a set of general constraints for the bitstream. The set of general constraints gives the decoder information about what to expect from the content in the bitstream in terms of coding tools, NAL unit types, etc. In the current version of VVC, general constraint information can also be signaled in the VPS or SPS.

[0071] Image header structure

[0072] In the current version of VVC, a coded picture contains a picture header structure. The picture header structure contains syntax elements common to all slices of the associated picture. In the case where there is only one slice in the coded picture, the picture header structure can be signaled in its own NAL unit with the NAL unit type PH_NUT or included in the slice header. This is indicated by the slice header syntax element picture_header_in_slice_heder_flag, where a value equal to 1 specifies that the picture header structure is included in the slice header, and a value equal to 0 specifies that the picture header structure is carried in its own NAL unit. For CVS where not all pictures are single-slice pictures, each coded picture must be preceded by a picture header structure, which is signaled in its own NAL unit. HEVC does not support picture header structure.

[0073] In the current version of VVC, the part of the picture header structure syntax related to the present invention is as follows.

[0074]

[0075]

[0076] Table 6 Part of the picture header structure syntax Summary of the invention

[0077] One problem with existing solutions in VVC is that the slice type is signaled in the slice header even when it does not need to be signaled, which results in unnecessary bit cost.

[0078] Another problem with existing solutions in VVC is that although bidirectional coded slices are not allowed in coded pictures, tools only for bidirectional prediction (e.g., bidirectional optical flow (BDOF), decoder motion vector refinement (DMVR), and weighted prediction) can be turned on in the picture header structure. Sending syntax elements for these tools is unnecessary and also results in unnecessary bit costs. Signaling meaningless syntax elements is confusing and should generally be avoided.

[0079] Another problem with existing solutions in VVC is that it is not straightforward to determine whether a coded picture is a bidirectional inter-coded picture in VVC. Determining whether a coded picture is a bidirectional inter-coded picture requires checking whether at least one slice in the coded picture has a slice type equal to 0 (B slice). This may require buffering of NAL units, which would not be necessary if the picture type was always signaled at the beginning of the coded picture.

[0080] Aspects of the present invention overcome one or more of these problems by decoding a segment (e.g., a slice) of a coded picture from a bitstream by decoding a codeword and obtaining a value of the codeword that specifies whether a bidirectional inter-coded slice may be present in the coded picture. Based on the value of the codeword, one or more parameter values ​​are derived by inferring them or decoding one or more parameters from the bitstream to obtain the parameter values, wherein the one or more parameter values ​​are used to decode the segment.

[0081] In a first embodiment, a general solution for decoding a segment by decoding a first codeword (e.g., from a picture header structure) to obtain a value of the first codeword (which indicates whether a bidirectional inter-coded slice may be present in a coded picture). Optionally, a second codeword, a third codeword, and / or a fourth codeword are also decoded to obtain values ​​of the second codeword, the third codeword, and / or the fourth codeword, which may indicate (i) whether the coded picture may or may not include intra-coded slices and / or inter-coded slices, and / or (ii) whether a picture header structure is included in a slice header. Based on the value of the first codeword (and optionally, based on the value of one or more of the second codeword, the third codeword, and the fourth codeword), one or more parameter values ​​may be derived by inferring them or obtaining them from one or more decoding parameters, and the one or more parameter values ​​may be used to decode the segment.

[0082] In a second embodiment, the segment type (eg, slice type) of the segment may be inferred from the value of the first codeword (and optionally, also from the value of one or more of the second, third, and fourth codewords).

[0083] In a third embodiment, the parameter value may be derived from one or more decoding parameters (eg, from a picture header structure) based on the value of the first codeword.

[0084] Aspects of the invention may provide the advantage that current solutions may derive rather than explicitly signal the slice type when it is not necessary to explicitly signal it. This saves some bits.

[0085] Aspects of the present invention may additionally or alternatively provide the advantage that syntax elements in a picture header structure that may be used only by bidirectional inter-coded slices may be grouped and conditioned on the value of a first codeword. Conditioning syntax elements in a picture header structure for these tools on the first codeword may prevent signaling syntax elements when bidirectional inter-coded slices are not present in a coded picture associated with the picture header structure. This may save some bits and may effectively prevent enabling bidirectional prediction tools when they cannot be used for a coded picture. Thus, signaling of confusing syntax elements that do not make sense may be avoided.

[0086] In some aspects, the value of the first codeword may additionally or alternatively provide a simple way to check whether a coded picture is a bidirectional inter-coded picture. In some aspects, use of the value of the first codeword may enable checking whether a coded picture is a bidirectional inter-coded picture without buffering all NAL units of the picture.

[0087] One aspect of the present invention may provide a method for decoding a fragment in a coded picture from a bitstream. The method may include: decoding a first codeword from the bitstream to obtain a value of the first codeword. The value of the first codeword may indicate whether the coded picture may contain a bidirectional inter-frame coded fragment. The method may include: based on the value of the first codeword, deriving the one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain one or more parameter values, or (b) inferring one or more parameter values. The method may include: decoding the fragment in the coded picture based on the one or more parameter values.

[0088] In some aspects, the first codeword may be decoded from a picture header structure associated with the coded picture. In some aspects, the picture header structure may be included in a picture header network abstraction layer (NAL) unit or in a slice header of the slice. In some aspects, the first codeword may be decoded from a portion of a bitstream other than the slice. In some aspects, the first codeword may be decoded based on decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a coded picture parameter set). In some aspects, the first codeword may be decoded from a portion of a bitstream other than an access unit delimiter.

[0089] In some aspects, the segment may have a segment type, and one or more of the one or more parameter values ​​indicate the segment type of the segment. In some aspects, the segment type indicates whether the segment is an intra-frame (I) coded segment, a unidirectional (P) inter-frame coded segment, or a bidirectional (B) inter-frame coded segment.

[0090] In some aspects, the method may further include: decoding a second codeword from the bitstream to obtain a value of the second codeword, the value of the second codeword may indicate whether the coded picture may contain an intra-coded segment; and deriving the one or more parameter values ​​may be based on the values ​​of the first codeword and the second codeword. In some aspects, the method may further include: decoding a third codeword from the bitstream to obtain a value of the third codeword, the value of the third codeword may indicate whether the coded picture may contain an inter-coded segment; and deriving the one or more parameter values ​​may also be based on the value of the third codeword. In some alternative aspects, the method may further include: decoding a third codeword from the bitstream to obtain a value of the third codeword, the value of the third codeword may indicate whether the coded picture may contain a unidirectionally predicted inter-coded segment; and deriving the one or more parameter values ​​may also be based on the value of the third codeword. In some aspects, at least one of the second codeword and the third codeword may be decoded from a picture header structure, decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a picture parameter set) associated with the coded picture.

[0091] In some aspects, the slice may have a slice type, and deriving the one or more parameter values ​​may include: if (i) the value of the first codeword indicates that the coded picture may not contain a bidirectional inter-frame coded slice, (ii) the value of the second codeword indicates that the coded picture may not contain an intra-frame coded slice, and (iii) the third codeword indicates that the coded picture may contain an inter-frame coded slice, for one or more values ​​specifying that the slice is a unidirectional inter-frame coded slice, inferring one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a unidirectional (P) inter-frame coded slice.

[0092] In some aspects, the segment may have a segment type, and deriving the one or more parameter values ​​includes: (1) if the value of the third codeword indicates that the coded picture may not contain inter-frame coded slices, then for one or more values ​​specifying that the segment is an intra-frame coded segment, inferring one or more parameter values ​​(e.g., slice_type) indicating that the segment type is an intra-frame (I) coded segment; (2) if (i) the value of the third codeword indicates that the coded picture may contain inter-frame coded slices, and (ii) the value of the first codeword indicates that the coded picture may not contain bidirectional inter-frame coded slices, then for one or more values ​​specifying that the segment is an intra-frame coded segment, inferring one or more parameter values ​​(e.g., slice_type) indicating that the segment type is an intra-frame (I) coded slice; one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a unidirectional (P) inter-coded slice, for one or more values ​​specifying that the slice is a unidirectional inter-coded slice; and if (i) the value of the third codeword indicates that the coded picture may contain inter-coded slices, and (ii) the value of the first codeword indicates that the coded picture may contain bidirectional inter-coded slices, one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a bidirectional (B) inter-coded slice are inferred for the one or more values ​​specifying that the slice type is a bidirectional inter-coded slice.

[0093] In some aspects, the method may further include: decoding a fourth codeword from the bitstream to obtain a value of the fourth codeword, the value of the fourth codeword may indicate whether a picture header structure associated with the coded picture is decoded from the same network abstraction layer (NAL) unit as the segment or from a picture header NAL unit different from the segment NAL unit; and deriving the one or more parameter values ​​may also be based on the value of the fourth codeword. In some aspects, the fourth codeword may be decoded from a segment header, decoding capability information, an access unit delimiter, or a parameter set such as a sequence parameter set, a video parameter set, or a picture parameter set in the segment. In some aspects, the fourth codeword may be decoded from a picture parameter set. In some aspects, if the value of the fourth codeword indicates that the picture header structure associated with the coded picture is decoded from the same NAL unit as the segment, the one or more parameter values ​​may be derived by inferring the one or more parameter values. In some aspects, if the value of the fourth codeword indicates that the picture header structure associated with the coded picture is decoded from a picture header NAL unit that is different from the slice NAL unit, the one or more parameter values ​​can be derived by decoding one or more parameters from the bitstream to obtain the one or more parameter values.

[0094] In some aspects, if the value of the first codeword indicates that the coded picture should not contain bidirectional inter-frame coding, the one or more parameter values ​​may be derived by decoding one or more parameters from the bitstream to obtain the one or more parameter values, and if the value of the first codeword indicates that the coded picture may contain bidirectional inter-frame coded segments, the one or more parameter values ​​may be derived by inferring the one or more parameter values. In some aspects, decoding the one or more parameters from the bitstream to obtain the one or more parameter values ​​may include decoding the one or more parameters from a picture header structure associated with the coded picture, a slice header of the segment, decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a picture parameter set).

[0095] In some aspects, the one or more parameters may be one or more of: a flag from L0, a motion vector difference (MVD) L1 zero flag, a flag for enabling / disabling bidirectional optical flow (BDOF), a flag for enabling / disabling decoder motion vector refinement (DMVR), and a weighted prediction parameter. In some aspects, the first codeword may be a flag. In some aspects, one or more of the second codeword, the third codeword, and the fourth codeword may be a flag. In some aspects, two or more of the first codeword, the second codeword, the third codeword, and the fourth codeword may be the same codeword.

[0096] In some aspects, the fragment may be a slice.In some aspects, the slice may have a slice type, and one or more of the one or more parameter values ​​may indicate the slice type of the slice.

[0097] In some aspects, inferring the one or more parameter values ​​may include inferring one or more values ​​that are constant values ​​or values ​​derived without decoding any of the one or more parameters from the bitstream.

[0098] In some aspects, the coded picture may be (a) a coded picture that may contain a bidirectional inter-coded slice, the coded picture being a coded picture that may contain a slice of a type that specifies that the slice may contain a block predicted using bidirectional inter-frame prediction, or (b) a coded picture that may not contain a bidirectional inter-coded slice, the coded picture being a coded picture that does not contain any slice of a type that specifies that the slice may contain a block predicted using bidirectional inter-frame prediction. In some aspects, the coded picture may be (a) a coded picture that may contain an intra-coded slice, the coded picture being a coded picture that may contain a slice of a type that specifies that the slice only contains a block predicted using intra-frame prediction, or (b) a coded picture that may not contain an intra-coded slice, the coded picture being a coded picture that does not contain any slice of a type that specifies that the slice only contains a block predicted using intra-frame prediction.

[0099] In some aspects, a coded picture may be (a) a coded picture that may contain an inter-coded slice, the coded picture being a coded picture that may contain a slice of a type that specifies that the slice may contain blocks predicted using one or both of bidirectional inter prediction and unidirectional inter prediction, (b) a coded picture that may not contain an inter-coded slice, the coded picture being a coded picture of any type that does not contain any block that specifies that the slice may contain predicted using bidirectional inter prediction or unidirectional inter prediction. In some aspects, the coded picture may be (a) a coded picture that may contain a unidirectional inter-coded slice, the coded picture being a coded picture that may contain a slice of a type that specifies that the slice may contain blocks predicted using unidirectional inter prediction, or (b) a coded picture that may not contain a unidirectional inter-coded slice, the coded picture being a coded picture that does not contain any slice of a type that specifies that the slice may contain blocks predicted using unidirectional inter prediction.

[0100] Another aspect of the present invention may provide an apparatus configured to decode a first codeword from a bitstream to obtain a value of the first codeword. The value of the first codeword may indicate whether the coded picture may contain a bidirectional inter-frame coded segment. The apparatus may be configured to: based on the value of the first codeword, derive the one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain one or more parameter values, or (b) inferring one or more parameter values. The apparatus may be configured to: decode a segment of the coded picture based on the one or more parameter values.

[0101] Yet another aspect of the present invention may provide a method for decoding a segment in a coded picture from a bitstream. The method may include: determining whether the coded picture may contain an inter-coded segment by decoding a first syntax element from a syntax structure in the bitstream. The method may include: in response to determining that the coded picture may contain an inter-coded segment, (i) determining whether the coded picture may contain an intra-coded segment by decoding a second syntax element from a syntax structure in the bitstream, and (ii) determining whether the coded picture may contain a bidirectional inter-coded segment by decoding a third syntax element from a syntax structure in the bitstream. The method may include: in response to determining that the coded picture may not contain an inter-coded segment, determining that the coded picture may only contain an intra-coded segment without decoding the second syntax element and without decoding the third syntax element. The method may include: in response to determining that the coded picture may contain a bidirectional inter-coded segment, deriving the one or more parameter values ​​by decoding one or more parameters from the bitstream to obtain the one or more parameter values. The method may include: in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element, deriving the one or more parameter values ​​by inferring the one or more parameter values. The method may include decoding a segment of the encoded picture using the one or more parameter values.

[0102] In some aspects, the one or more parameters may include one or more of: a flag for co-location from L0, a motion vector difference (MVD) L1 zero flag, a flag for enabling / disabling bidirectional optical flow (BDOF), and a flag for enabling / disabling decoder motion vector refinement (DMVR). In some aspects, inferring the one or more parameter values ​​may include inferring one or more of the following: (i) inferring the value of the flag for co-location from L0 to be equal to 1, (ii) inferring the value of the motion vector difference (MVD) L1 zero flag to be equal to 0; (iii) inferring the value of the flag for enabling / disabling bidirectional optical flow (BDOF) to be equal to a value indicating that BDOF is disabled, and (iv) inferring the value of the flag for enabling / disabling decoder motion vector refinement (DMVR) to be equal to a value indicating that DMVR is disabled. In some aspects, the syntax structure may be present in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

[0103] In some aspects, the method may also include: if (ph_inter_slice_allowed_flag&&!picture_header_in_slice_header_flag&&(ph_intra_slice_allowed_flag||ph_inter_B_slice_allowed_flag)), decoding a fourth syntax element representing the slice type, wherein ph_inter_slice_allowed_flag may be a first syntax element, ph_intra_slice_allowed_flag may be a second syntax element, ph_inter_B_slice_allowed_flag may be a third syntax element, and picture_header_in_slice_header_flag may be a syntax element indicating whether the syntax structure exists in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

[0104] In some aspects, the method may also include inferring a slice type value without decoding a corresponding slice type syntax element if the following condition is not met: (ph_inter_slice_allowed_flag&&!picture_header_in_slice_header_flag&&(ph_intra_slice_allowed_flag||ph_inter_B_slice_allowed_flag)), wherein ph_inter_slice_allowed_flag is a first syntax element, ph_intra_slice_allowed_flag is a second syntax element, ph_inter_B_slice_allowed_flag is a third syntax element, and picture_header_in_slice_header_flag is a syntax element indicating whether the syntax structure exists in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

[0105] In some aspects, if ph_inter_slice_allowed_flag is equal to 0, the slice type can be inferred to be an intra-frame (I) coded slice; if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, the slice type can be inferred to be a unidirectional (P) inter-frame coded slice; and if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1, the slice type can be inferred to be a bidirectional (B) inter-frame coded slice.

[0106] In some aspects, the fragments can be sheets.

[0107] In some aspects, the one or more parameters include a prof_flag that specifies whether prediction refinement using optical flow in an affine motion compensation process may be used when decoding the coded picture.

[0108] Yet another aspect of the present invention may provide an apparatus configured to determine whether a coded picture in a bitstream may contain an inter-coded segment by decoding a first syntax element from a syntax structure in a bitstream. The apparatus may be configured to: in response to determining that the coded picture may contain an inter-coded segment, (i) determine whether the coded picture may contain an intra-coded segment by decoding a second syntax element from a syntax structure in the bitstream, and (ii) determine whether the coded picture may contain a bidirectional inter-coded segment by decoding a third syntax element from a syntax structure in the bitstream. The apparatus may be configured to: in response to determining that the coded picture may not contain an inter-coded segment, determine that the coded picture may only contain an intra-coded segment without decoding the second syntax element and without decoding the third syntax element. The apparatus may be configured to: in response to determining that the coded picture may contain a bidirectional inter-coded segment, derive the one or more parameter values ​​by decoding one or more parameters from the bitstream to obtain the one or more parameter values. The apparatus may be configured to: in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element, derive the one or more parameter values ​​by inferring the one or more parameter values. The apparatus may be configured to decode a segment of the encoded picture using the one or more parameter values.

[0109] Yet another aspect of the present invention may provide a method for encoding a fragment in a picture into a bitstream. The method may include: determining whether the encoded picture will contain a bidirectional inter-frame coded fragment. The method may include: encoding a first codeword into the bitstream. The encoded first codeword may have a value indicating whether the encoded picture will contain a bidirectional inter-frame coded fragment. The method may include: determining whether to encode one or more parameter values ​​into the bitstream based on the determination of whether the encoded picture will contain a bidirectional inter-frame coded fragment. The method may include: if it is determined that the one or more parameter values ​​are to be encoded into the bitstream, encoding the one or more parameter values ​​into the bitstream. The method may include: using the one or more parameter values, encoding the fragment in the picture into the bitstream.

[0110] Yet another aspect of the present invention may provide a device configured to determine whether a coded picture may contain a bidirectional inter-frame coded segment. The device may be configured to: encode a first codeword into a bitstream. The encoded first codeword may have a value indicating whether the coded picture may contain a bidirectional inter-frame coded segment. The device may be configured to: determine whether to encode one or more parameter values ​​into the bitstream based on the determination of whether the coded picture may contain a bidirectional inter-frame coded segment. The device may be configured to: if it is determined that the one or more parameter values ​​are to be encoded into the bitstream, encode the one or more parameter values ​​into the bitstream. The device may be configured to: use the one or more parameter values ​​to encode a segment in the picture into the bitstream.

[0111] Yet another aspect of the present invention may provide a method for encoding a segment of a current picture into a coded picture in a bitstream. The method may include: determining whether the coded picture may contain an inter-coded segment. The method may include: encoding a first syntax element into the bitstream using a syntax structure. The encoded first syntax element may have a value indicating whether the coded picture may contain an inter-coded segment. The method may include: in response to determining that the coded picture may contain an inter-coded segment, (i) determining whether the coded picture may contain an intra-coded segment, (ii) encoding a second syntax element into the bitstream using a syntax structure, the second syntax element having a value indicating whether the coded picture will contain an intra-coded segment, (iii) determining whether the coded picture may contain a bidirectional inter-coded segment, and (iv) encoding a third syntax element into the bitstream using a syntax structure, the third syntax element having a value indicating whether the coded picture may contain a bidirectional inter-coded segment. The method may include: in response to determining that the coded picture may not contain an inter-coded segment, (i) determining that the coded picture will only contain an intra-coded segment, and (ii) determining not to encode the second syntax element and the third syntax element into the bitstream. The method may include encoding one or more parameter values ​​into the bitstream in response to determining that the coded picture may contain a bidirectional inter-coded segment. The method may include determining not to encode the one or more parameter values ​​into the bitstream in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element. The method may include encoding the segment of the current picture into the bitstream using the one or more parameter values.

[0112] Yet another aspect of the present invention may provide an apparatus configured to determine whether a coded picture may contain an inter-coded segment. The apparatus may be configured to: encode a first syntax element into a bitstream using a syntax structure. The encoded first syntax element may have a value indicating whether the coded picture may contain an inter-coded segment. The apparatus may be configured to: in response to determining that the coded picture may contain an inter-coded segment, (i) determine whether the coded picture may contain an intra-coded segment, (ii) encode a second syntax element into the bitstream using a syntax structure, the second syntax element having a value indicating whether the coded picture will contain an intra-coded segment, (iii) determine whether the coded picture may contain a bidirectional inter-coded segment, and (iv) encode a third syntax element into the bitstream using a syntax structure, the third syntax element having a value indicating whether the coded picture may contain a bidirectional inter-coded segment. The apparatus may be configured to: in response to determining that the coded picture may not contain an inter-coded segment, (i) determine that the coded picture will only contain an intra-coded segment, and (ii) determine not to encode the second syntax element and the third syntax element into the bitstream. The apparatus may be configured to, in response to determining that the coded picture may contain a bidirectional inter-coded segment, encode one or more parameter values ​​into the bitstream. The apparatus may be configured to, in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element, determine not to encode the one or more parameter values ​​into the bitstream. The apparatus may be configured to, in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element, determine not to encode the one or more parameter values ​​into the bitstream. The apparatus may be configured to, in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element, encode a segment in the current picture into the bitstream using the one or more parameter values.

[0113] Yet another aspect of the present invention may provide a computer program, the computer program comprising instructions for adapting a device to execute the method of any aspect described above.

[0114] Yet another aspect of the present invention may provide a carrier containing the above-mentioned computer program, and the carrier may be one of an electric signal, an optical signal, a radio signal, or a computer-readable storage medium.

[0115] Yet another aspect of the present invention may provide a device. The device may include a processing circuit and a memory. The memory may contain instructions executable by the processing circuit, whereby the device is operable to perform any of the above methods.

[0116] Yet another aspect of the present invention may provide any combination of the above aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0117] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate various embodiments.

[0118] Figure 1The relationship between PU, AU and CLVS is shown.

[0119] Figure 2 A bitstream according to some embodiments is shown.

[0120] Figure 3 is a block diagram of a system according to some embodiments.

[0121] Figure 4 is a block diagram of an encoder according to some embodiments.

[0122] Figure 5 is a block diagram of a decoder according to some embodiments.

[0123] Figure 6 is a flow chart illustrating a decoding process according to some embodiments.

[0124] Figure 7 is a flow chart illustrating a decoding process according to some embodiments.

[0125] Figure 8 is a flow chart illustrating a decoding process according to some embodiments.

[0126] Fig. 9 is a flow chart illustrating an encoding process according to some embodiments.

[0127] Fig.10 is a flow chart illustrating an encoding process according to some embodiments.

[0128] Fig.11 is a block diagram of an apparatus for implementing an encoder or a decoder according to some embodiments. DETAILED DESCRIPTION

[0129] the term

[0130] In the present invention, the term "segment" may refer to a slice, a tile, a tile group, a block, a coding tree unit (CTU), a coding unit (CU), a sub-picture, a frame, a picture, a field, or similar concepts describing a partial picture or a complete picture in a video. In the present disclosure, the term "segment header" may therefore refer to, for example, but not limited to, a slice header, a tile header, a tile group header, a sub-picture header, a frame header, a picture header structure, or a field header. In one example, the term "segment" may refer to a slice, and the term "segment header" may refer to a slice header. Note that a picture may include a single slice.

[0131] In the present disclosure, the term intra-frame (I) coded segment is used interchangeably with intra-frame (I) segment, the term unidirectional (P) inter-frame coded segment is used interchangeably with predicted (P) segment, and the term bidirectional (B) inter-frame coded segment is used interchangeably with bidirectional predicted (B) segment. The term inter-frame coded segment may include both unidirectional (P) inter-frame coded segments and bidirectional (B) inter-frame coded segments. An intra-frame (I) coded segment shall only contain intra-frame coded coding units. A unidirectional (P) inter-frame coded segment may contain intra-frame coded coding units and unidirectional (P) inter-frame coded coding units. A bidirectional (B) inter-frame coded segment may contain intra-frame coded coding units, unidirectional (P) inter-frame coded coding units, and bidirectional (B) inter-frame coded coding units.

[0132] The terms codeword, syntax element, and parameter are used interchangeably in this disclosure and refer to a set of one or more consecutive bits in a bitstream that can be decoded to a specific value. A parameter value is defined as a syntax element value or a value derived or inferred based on the one or more syntax element values. A value can be inferred to be equal to a value derived from one or more syntax elements, or a value can be inferred to be equal to a constant value. The term "derived value" in this disclosure is used to mean "a value derived from a parameter" or "an inferred value."

[0133] BitTorrent

[0134] Figure 2 A bitstream 1 according to some aspects of the invention is shown. Figure 2 The dashed line in indicates that the element is optional in Versatile Video Coding (VVC). A bitstream 1 carries one or more coded pictures. The set of network abstraction layer (NAL) units associated with a coded picture is called a picture unit (PU) 2 in the current version of VVC. A VVC bitstream may start with decoding capability information (DCI) (12) at the beginning of each coded video sequence (CVS), followed by a video parameter set (VPS) 13, a sequence parameter set (SPS) 14, and a picture parameter set (PPS) 15. The PPS 15 may also be signaled before any coded picture. PU2 includes one or more coded segments 22. A coded segment 22 includes a segment header 31 and segment data 32. PU2 includes a picture header structure (PH) 21. Thus, the picture header structure is associated with a coded picture. In the current version of VVC where the segment is a slice, the PH 21 may be signaled in its own NAL unit or in the same NAL unit as the slice 22 (more specifically, in the slice header 31). An access unit delimiter (AUD) 11 may optionally be signaled as the first NAL unit in an access unit.

[0135] Although the present invention is mainly described by terminology used in VVC, those skilled in the art will appreciate that the present invention may also be applicable to other current and future video codecs.

[0136] system

[0137] Figure 3 A system 300 is shown according to an example embodiment. The system 300 includes an encoder 302 and a decoder 304. In the example shown, the decoder 304 may receive an encoded image produced by the encoder 302 via a network 306 (eg, the Internet or other network).

[0138] Figure 4 is a schematic block diagram of the encoder 302. Figure 4 As shown, the encoder 302 takes the original image and subtracts a prediction 41, which is selected 51 from previously decoded samples ("intra-frame prediction" 49) or from samples of previously decoded frames stored in a frame buffer 48 by a method called motion compensation 50. The task of finding the best motion compensated sample is generally called motion estimation 50, and involves comparison with the original sample. After subtracting the prediction 41, the resulting difference is transformed 42 and then quantized 43. The quantized result is entropy encoded 44, resulting in bits that can be stored, transmitted, or further processed. The output of the quantization 43 is also inverse quantized 45, followed by an inverse transform 46. The prediction from 51 is then added 47, and the result is forwarded to both the intra-frame prediction unit 49 and the loop filter unit 100. The loop filter unit 100 can perform deblocking, SAO, and / or ALF filtering (including CC-ALF filtering). The result is stored in the frame buffer 48 for future prediction. Figure 4 Not shown in FIG. 1 , the coding parameters of other blocks (eg, 42 , 43 , 49 , 50 , 51 , and 100 ) may also be entropy coded.

[0139] Figure 56 is a corresponding schematic block diagram of a decoder 304 according to some embodiments. The decoder 304 obtains the transform coefficients after entropy coding, which are then decoded by the decoder 61. The output of the decoder 61 then undergoes inverse quantization 62, followed by inverse transformation 63, to form a decoded residual. The decoded residual is added 64 with a prediction. A prediction is selected 68 from a motion compensation unit 67 or from an intra-frame prediction unit 66. After adding the prediction to the decoded residual 64, the sample can be forwarded for intra-frame prediction of a subsequent block. The sample is also forwarded to the loop filter unit 100, which can perform deblocking, SAO processing, and / or ALF processing (including CC-ALF filtering). The output of the loop filter unit 100 is forwarded to a frame buffer 65, which can be used for motion compensated prediction of a subsequently decoded image 67. The output of the loop filter unit 100 can also output a decoded image for viewing or subsequent processing outside the decoder. Figure 5 Not shown in FIG. 1 , parameters of other blocks (eg, 63, 67, 66, and 100) may also be entropy decoded. As an example, the coefficients of the ALF filter in block 100 may be entropy decoded.

[0140] Example 1 - General Solution

[0141] Figure 6 FIG. 6 shows a process 600 performed by the decoder 304 according to some embodiments. Figure 6, optional steps are shown with dashed lines. In some embodiments, process 600 may decode a segment 22 (e.g., a slice) of a coded picture from bitstream 1. In some embodiments, process 600 may include step 602: decoding a first codeword from bitstream 1. In some embodiments, process 600 may include step 604: obtaining a value of the first codeword. In some embodiments, the value of the first codeword may indicate whether the coded picture may contain a bidirectional inter-coded segment. In some embodiments, process 600 may include step 618: deriving one or more parameter values ​​based on the value of the first codeword. In some embodiments, the one or more parameter values ​​may be derived in step 618 by (a) inferring the one or more parameter values, or (b) decoding one or more parameters from bitstream 1 to obtain the one or more parameter values. For example, in some embodiments, deriving the one or more parameter values ​​in step 618 may be based on the value of the first codeword because (a) if the first codeword has one value, the one or more parameter values ​​may be derived by inferring the one or more parameter values, and (b) if the first codeword has a different value, the one or more parameter values ​​may be derived in step 618 by decoding one or more parameters from bitstream 1 to obtain the one or more parameter values. In some embodiments, process 600 may include step 620 of decoding segment 22 based on the value of the first codeword and one or more derived parameter values.

[0142] In some embodiments, process 600 may include an optional step s606 of decoding a second codeword from bitstream 1 and an optional step s608 of obtaining a value of the second codeword. In some embodiments, the value of the second codeword may indicate whether the encoded picture may contain an intra-coded segment. In some embodiments, deriving the one or more parameter values ​​in step s618 may also be based on the value of the second codeword. For example, in some embodiments, deriving the one or more parameter values ​​in step 618 may be based on the values ​​of the first codeword and the second codeword, because (a) if the first codeword and the second codeword have one or more combinations of values, the one or more parameter values ​​may be derived by inferring the one or more parameters, and (b) if the first codeword and the second codeword have one or more different combinations of values, the one or more parameter values ​​may be derived in step 618 by decoding one or more parameters from bitstream 1 to obtain the one or more parameter values.

[0143] In some embodiments, process 600 may include an optional step s610 of decoding a third codeword from bitstream 1 and an optional step s612 of obtaining a value of the third codeword. In some embodiments, the value of the third codeword may indicate whether the coded picture may contain an inter-coded segment. In some embodiments, the value of the third codeword may additionally or alternatively indicate whether the coded picture may contain a unidirectional inter-coded segment. In some embodiments, deriving one or more parameter values ​​in step s618 may also be based on the value of the third codeword. For example, in some embodiments, deriving the one or more parameter values ​​in step 618 may be based on the values ​​of the first codeword, the second codeword, and / or the third codeword, because (a) if the first codeword, the second codeword, and / or the third codeword have one or more combinations of values, the one or more parameter values ​​may be derived by inferring the one or more parameters, and (b) if the first codeword, the second codeword, and / or the third codeword have one or more different combinations of values, the one or more parameter values ​​may be derived in step 618 by decoding one or more parameters from bitstream 1 to obtain the one or more parameter values.

[0144] In some embodiments, one or more of the first codeword, the second codeword, and the third codeword may be decoded, for example, from a picture header structure, decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a picture parameter set) associated with the encoded picture.

[0145] In some embodiments, when the value of one of the first codeword, the second codeword, and the third codeword indicates that there may not be any slices of a particular type in the coded picture, the decoder may determine that no slices in the picture will contain any blocks, such as any CTUs whose prediction type corresponds to the particular type. In some embodiments, in this case, if the decoder detects that there are blocks or CTUs that are using the disallowed prediction type anyway, the decoder may conclude or determine that the bitstream is a non-compliant bitstream.

[0146] In some embodiments, process 600 may include an optional step 614 of decoding a fourth codeword from bitstream 1 and an optional step 616 of obtaining a value of the fourth codeword. In some embodiments, the value of the fourth codeword may indicate whether a picture header structure associated with the coded picture is decoded from the same NAL unit as the fragment or from a picture header NAL unit different from the fragment NAL unit. In an alternative version, the value of the fourth codeword may indicate that there is only one fragment in the coded picture. In some embodiments, the fourth codeword may be decoded, for example, from a fragment header, decoding capability information, an access unit delimiter, or a parameter set such as a sequence parameter set, a video parameter set, or a picture parameter set in the fragment. In some embodiments, the fourth codeword may be decoded from a picture parameter set.

[0147] In some embodiments, deriving the one or more parameter values ​​in step 618 may also be based on the value of the fourth codeword. For example, in some embodiments, deriving the one or more parameter values ​​in step 618 may be based on the values ​​of the first codeword, the second codeword, the third codeword, and / or the fourth codeword because (a) if the first codeword, the second codeword, the third codeword, and / or the fourth codeword have one or more combinations of values, the one or more parameter values ​​may be derived by inferring the one or more parameters, and (b) if the first codeword, the second codeword, the third codeword, and / or the fourth codeword have one or more different combinations of values, the one or more parameter values ​​may be derived in step 618 by decoding one or more parameters from bitstream 1 to obtain the one or more parameter values.

[0148] In some embodiments, any one of the first codeword, the second codeword, the third codeword, and the fourth codeword may be a syntax element (eg, a flag).

[0149] In some embodiments, two or more of the first codeword, the second codeword, the third codeword, and the fourth codeword may be the same codeword, such that two or more of the obtained values ​​of the first codeword, the second codeword, the third codeword, and the fourth codeword may be obtained by decoding the same codeword.

[0150] In some embodiments, the value of the first codeword may indicate that the coded picture must contain at least one bidirectional inter-coded segment. In some embodiments, the value of the second codeword may indicate that the coded picture must contain at least one intra-coded segment. In some embodiments, the value of the third codeword may indicate that the coded picture must contain at least one inter-coded segment. In some embodiments, the value of the third codeword may indicate that the coded picture must contain at least one unidirectional inter-coded segment.

[0151] In some embodiments, the encoder may perform a subset or all of the following steps to encode a segment of a picture into a bitstream:

[0152] 1. Determine whether the coded picture will contain bidirectional inter-coded blocks.

[0153] 2. In response to determining that the coded picture will not include any bidirectional inter-coded blocks, encoding a first value into the bitstream using a first codeword or syntax element. In response to determining that the coded picture may include a bidirectional inter-coded block, encoding a second value into the bitstream using a first codeword or syntax element, wherein the first value is different from the second value.

[0154] 3. Optionally, determine whether the coded picture will contain intra-coded blocks.

[0155] 3a. In response to determining that the coded picture will not contain any intra-coded blocks, encoding a first value into the bitstream using a second codeword or syntax element. In response to determining that the coded picture may contain an intra-coded block, encoding a second value into the bitstream using a second codeword or syntax element, wherein the first value is different from the second value.

[0156] 4. Optionally, determine whether the coded picture will contain inter-coded blocks.

[0157] 4a. In response to determining that the coded picture will not contain any inter-coded blocks, encoding a first value into the bitstream using a third codeword or syntax element. In response to determining that the coded picture may contain inter-coded blocks, encoding a second value into the bitstream using a third codeword or syntax element, wherein the first value is different from the second value. In an alternative version, the value of the third codeword or syntax element is used to determine whether the coded picture may contain unidirectional (P) inter-coded blocks.

[0158] 5. Optionally, determining whether a picture header structure associated with the coded picture is decoded from the same NAL unit as the slice or from a picture header NAL unit different from the slice NAL unit.

[0159] 5a. In response to determining that a picture header structure associated with the coded picture was decoded from the same NAL unit as the slice, encoding a first value into the bitstream using a fourth codeword or syntax element. In response to determining that a picture header structure associated with the coded picture was decoded from a picture header NAL unit different from the slice NAL unit, encoding a second value into the bitstream using a fourth codeword or syntax element, wherein the first value is different from the second value. In an alternative version, the value of the fourth codeword or syntax element is used to determine whether there is only one slice in the coded picture.

[0160] 6. Encoding the segment into the bitstream using the one or more parameter values.

[0161] In some embodiments, the decoder may perform a subset or all of the following steps to decode a segment in a coded picture from the bitstream:

[0162] 1. Obtain a bitstream, wherein the bitstream includes at least one coded picture, and the coded picture includes at least one slice

[0163] 2. Decode a first codeword from the bit stream and obtain the value of the first codeword. Determine whether the coded picture can contain a bidirectional inter-frame coded segment according to the value of the first codeword. For example, the first codeword can be a flag. For example, if the value of the obtained first codeword is a first value, such as 0, the coded picture should not contain any bidirectional inter-frame coded segment. The value of the codeword is a specific value or the value of the codeword has a specific value, which means that the value of the codeword is equal to a specific value. If the obtained value of the first codeword is a second value, such as 1, the coded picture can contain one or more bidirectional inter-frame coded segments.

[0164] 4. Optionally, a second codeword is decoded from the bitstream, and a value of the second codeword is obtained. Determine whether the coded picture may contain an intra-coded segment according to the value of the second codeword. For example, the second codeword may be a flag. For example, if the value of the obtained second codeword is a first value, such as 0, the coded picture should not contain any intra-coded segment. If the value of the second codeword is a second value, such as 1, the coded picture may contain one or more intra-coded segments.

[0165] 5. Optionally, a third codeword is decoded from the bitstream, and a value of the third codeword is obtained. Determine whether the coded picture can contain an inter-frame coded segment according to the value of the third codeword. For example, the third codeword can be a flag. For example, if the value of the third codeword is a first value, such as 0, the coded picture should not contain any inter-frame coded segments. If the value of the third codeword is a second value, such as 1, the coded picture can contain one or more inter-frame coded segments. In an alternative version, the value of the third codeword can be used to determine whether the coded picture can contain a unidirectional (P) inter-frame coded segment.

[0166] 6. Optionally, a fourth codeword is decoded from the bitstream, and a value of the fourth codeword is obtained. Determine, based on the value of the fourth codeword, whether the picture header structure associated with the coded picture is decoded from the same NAL unit as the fragment or from a picture header NAL unit different from the fragment NAL unit. For example, the fourth codeword may be a flag. For example, if the value of the fourth codeword is a first value, such as 0, the picture header structure is decoded from a NAL unit different from the fragment. If the value of the fourth codeword is a second value, such as 1, the picture header structure is decoded from the same NAL unit as the fragment. In an alternative version, the value of the fourth codeword may be used to determine whether there is only one fragment in the coded picture.

[0167] 7. Deriving the one or more parameter values ​​(e.g., a slice type or a tool enablement flag such as mvd_l1_zero_flag) based at least on a value of a first codeword and optionally based on a value (one or more) of one or more of a second codeword, a third codeword, and a fourth codeword by (a) inferring the one or more parameter values ​​or (b) decoding the one or more parameters from the bitstream to obtain the one or more parameter values. For example, in some embodiments, if the value of the first codeword indicates that the coded picture may contain a bidirectional inter-frame coded slice, the values ​​of the slice type and mvd_l1_zero_flag may be derived by decoding the slice type and mvd_l1_zero_flag to obtain their values. Otherwise, if the value of the first codeword indicates that the coded picture may not contain a bidirectional inter-frame coded slice, the values ​​of the slice type and mvd_l1_zero_flag may be inferred (e.g., based on the value (one or more) of one or more of the first codeword, the second codeword, the third codeword, and / or the fourth codeword).

[0168] 8. Based on the one or more parameter values, decode a segment of the encoded picture.

[0169] In some embodiments, one or more of the encoding step and the decoding step need not be performed in the order listed. For example, in some embodiments, the third codeword may be decoded before the first codeword and the second codeword.

[0170] An example of the syntax for signaling the first codeword in the picture header structure is as follows:

[0171]

[0172] Table 7 Picture header structure syntax

[0173] In some alternative embodiments, the presence of the first codeword (and / or the second codeword) in the picture header structure may be conditional on another codeword (e.g., the third codeword), as shown in the following example syntax:

[0174]

[0175] Table 8 Alternative picture header structure syntax

[0176] Example 2 - Deriving the film type from the B film information

[0177] 2.1 Define segment types (e.g., slice types)

[0178] In some embodiments, the one or more parameter values ​​derived based at least on the value of the first codeword may include a segment type of the segment to be decoded. In some embodiments, the segment may be a slice, and the segment type may be a slice type. In some embodiments, the segment type may indicate one of the following:

[0179] 1. The segment is an intra (I) coded segment, that is, the segment may not use other pictures different from the picture of the segment for prediction.

[0180] 2. The segment is a unidirectional (P) inter-frame coded segment, that is, the segment can be predicted using at most another picture different from the picture of the segment.

[0181] 3. The segment is a bidirectional (B) inter-frame coded segment, that is, the segment can be predicted using at most two other pictures different from the picture of the segment.

[0182] In some alternative embodiments, the segment type may indicate one of the following (taken from the definition of the VVC specification):

[0183] 1. The slice is an intra (I) slice, ie, a slice that is decoded using only intra prediction.

[0184] 2. Predicted (P) slice: A slice that is decoded using intra prediction or using inter prediction with at most one motion vector and reference index to predict the sample values ​​of each block.

[0185] 3. Bi-directionally predicted (B) slices: slices that are decoded using intra prediction or using inter prediction with up to two motion vectors and reference indices to predict the sample values ​​of each block.

[0186] 2.2 Export of fragment types

[0187] In some embodiments, two or more of the first codeword, the second codeword, and the third codeword may be the same codeword (e.g., such that the values ​​of the first codeword, the second codeword, and the third codeword are obtained from the same codeword). In some embodiments, the codeword may be referred to as a picture type, for example, and may be signaled in a picture header structure, a PPS, or an access unit delimiter (AUD).

[0188] In some embodiments, when the value of the fourth codeword indicates that the picture header structure is decoded from the same NAL unit as the slice, the slice type (e.g., slice_type) may be inferred. Otherwise, the slice type is signaled in and decoded from the slice header (e.g., slice header). This is illustrated in the following syntax, where the fourth codeword is a flag and is called picture_header_in_slice_header_flag:

[0189]

[0190] Table 9 Picture header structure syntax

[0191] In some embodiments, the fragment type may be inferred when:

[0192] 1. The value of the first codeword indicates that the coded picture may not contain a bidirectional inter-coded segment, and

[0193] 2. The value of the second codeword indicates that the coded picture may not contain intra-coded segments, and

[0194] 3. The value of the third codeword indicates that the coded picture may contain inter-coded segments.

[0195] This is illustrated in the following syntax, where changes relative to the current version of VVC are underlined, where the first codeword, the second codeword, the third codeword, and the fourth codeword are flags, and the first codeword is called ph_inter_B_slice_allowed_flag, the second codeword is called ph_intra_slice_allowed_flag, and the third codeword is called ph_inter_slice_allowed_flag:

[0196]

[0197]

[0198] Table 10 Modified header syntax

[0199] Another example syntax is shown below, where changes relative to the current version of VVC are underlined:

[0200]

[0201] Table 11 Modified header syntax

[0202] In some embodiments, based on this example syntax:

[0203] 1. If the value of the third codeword indicates that the coded picture may not contain an inter-coded slice, the slice type may be inferred to be an intra (I) coded slice,

[0204] 2. Otherwise, if the value of the third codeword indicates that the coded picture may contain inter-frame coded slices, and the value of the first codeword indicates that the coded picture may not contain bidirectional inter-frame coded slices, then the slice type may be inferred to be a unidirectional (P) inter-frame coded slice,

[0205] 3. Otherwise, if the value of the third codeword indicates that the coded picture may contain inter-coded slices, and the value of the first codeword indicates that the coded picture may contain bidirectional inter-coded slices, then the slice type may be inferred to be bidirectional (B) inter.

[0206] Encoded fragment.

[0207] This is illustrated in the following semantics, where changes relative to the current version of VVC are underlined:

[0208] slice_type specifies the coding type of the slice according to Table 9.

[0209] Table 9 - Name associations with slice_type

[0210] slice_type The name of slice_type 0 B(B film) 1 P(P film) 2 I (I piece)

[0211] When it does not exist, Apply the following:

[0212] a. If ph_inter_slice_allowed_flag is equal to 0, Then the value of slice_type is inferred to be equal to 2. When ph_inter_slice_B_allowed_flag is equal to 0, the value of slice_type shall be equal to 1 or 2.

[0213] b. Otherwise, if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_ If allowed_flag is equal to 0, the value of slice_type is inferred to be equal to 1.

[0214] c. Otherwise (ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_ flag is equal to 1), the value of slice_type is inferred to be equal to 0.

[0215] When ph_intra_slice_allowed_flag is equal to 0, the value of slice_type shall be equal to 0 or 1. When nal_unit_type is in the range of IDR_W_RADL to CRA_NUT (inclusive) and vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1, slice_type shall be equal to 2.

[0216] The following table shows how slice_type is inferred from the above in this version of the embodiment.

[0217]

[0218]

[0219] Table 13 How to infer Slice_Type

[0220] In some embodiments, if (i) the value of the second codeword indicates that the coded picture may not contain an intra-frame coded segment, (ii) the value of the third codeword indicates that the coded picture may contain an inter-frame coded segment, and (iii) the value of the first codeword indicates that the coded picture may not contain a bidirectional inter-frame coded segment, then the segment type can be inferred to be a unidirectional (P) inter-frame coded segment.

[0221] 2.3 Alternatives for defining the first codeword

[0222] In some embodiments, for example, the first codeword may be referred to as ph_inter_slice_allowed_flag. In some embodiments, when the decoded value of the first codeword is equal to 0, the obtained value of the first codeword is equal to 0.

[0223] In some embodiments, when the value of the fourth codeword indicates that the picture header structure associated with the picture is decoded from the same NAL unit as the slice, the first codeword may be referred to as ph_intra_slice_allowed_flag, for example. In some embodiments, when the decoded value of the first codeword is equal to 1, the obtained value of the first codeword may be equal to 0.

[0224] In some embodiments, the first codeword may be referred to as ph_inter_B_slice_allowed_flag, for example. In some embodiments, the obtained value of the first codeword may be equal to the decoded value of the first codeword.

[0225] 2.4 Alternative solution for deriving the segment type based on the value of the first codeword

[0226] The segment type derivation based on the value of the first codeword, and optionally, based on the value of the second codeword, the third codeword, and / or the fourth codeword is as follows. The "-" in the cell in the table means that the value of the nth codeword is optional for determining the derived value of the segment type.

[0227]

[0228] Table 14 Alternative solutions for deriving segment types based on the value of the first codeword

[0229] In some embodiments, the slice type may be derived by inferring the B slice value in the following scenario (scenario 1):

[0230] 1. The value of the first codeword determines that the picture may contain a bidirectional inter-frame coded segment, and

[0231] 2. The value of the fourth codeword determines that the picture header NAL unit is identical to the slice NAL unit.

[0232] In some embodiments, the slice type may be derived by inferring the P slice value in the following scenario (scenario 2):

[0233] 1. the value of the first codeword determines that the picture does not contain a bidirectional inter-frame coded segment, and

[0234] 2. the value of the second codeword determines that the picture does not contain an intra-coded segment, and

[0235] 3. The value of the third codeword determines that the picture may contain an inter-coded segment.

[0236] In some embodiments, the fragment type may be derived by inferring the I-fragment value in the following scenario (scenario 3):

[0237] 1. the value of the first codeword determines that the picture does not contain a bidirectional inter-frame coded segment, and

[0238] 2. The value of the second codeword determines that the picture may contain an intra-coded segment, and

[0239] 3. The value of the third codeword determines that the picture does not contain an inter-frame coded segment.

[0240] This is illustrated in the following syntax, where additions relative to the current version of VVC are underlined. In this example, the values ​​of the first, second, third, and fourth codewords are values ​​of flags, the first flag is called ph_inter_B_slice_allowed_flag, the second flag is called ph_intra_slice_allowed_flag, the third flag is called ph_inter_slice_allowed_flag, and the fourth flag is called picture_header_in_slice_header_flag:

[0241]

[0242] Table 15 Header syntax

[0243] This is illustrated in the following semantics, where additions relative to the current version of VVC are underlined and deleted text is italicized and shown in double brackets:

[0244] slice_type specifies the encoding type of the slice according to Table 9.

[0245] Table 9 - Name associations with slice_type

[0246] slice_type The name of slice_type 0 B(B film) 1 P(P film) 2 I (I piece)

[0247] When absent, [[the value of slice_type is inferred to be equal to 2. ]] Apply the following:

[0248] a. When ph_inter_B_slice_allowed_flag is equal to 1, the value of slice_type is inferred to be equal to 0.

[0249] b. Otherwise, when ph_inter_slice_allowed_flag is equal to 1, the value of slice_type is inferred to be equal to At 1.

[0250] c. Otherwise (when ph_intra_slice_allowed_flag is equal to 1), the value of slice_type is inferred to be equal to At 2.

[0251] When ph_intra_slice_allowed_flag is equal to 0, the value of slice_type shall be equal to 0 or 1. When ph_ When inter_slice_B_allowed_flag is equal to 0, the value of slice_type shall be equal to 1 or 2. When nal_unit_type is in the range of IDR_W_RADL to CRA_NUT (inclusive) and vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1, slice_type shall be equal to 2.

[0252] Embodiment 3 - Decoding parameters in the picture header structure based on the inter-frame B slice permission flag

[0253] In some embodiments, the value of the first codeword may be used to determine whether the one or more parameter values ​​should be (a) inferred or (b) derived from one or more parameters decoded from the bitstream.

[0254] In some embodiments, when the value of the first codeword determines that the coded picture does not contain a bidirectional inter-frame coded segment, the one or more parameter values ​​are inferred. When the value of the first codeword determines that the coded picture may contain a bidirectional inter-frame coded segment, the one or more parameter values ​​are derived from one or more parameters decoded from the bitstream. In some embodiments, the one or more parameters may be derived, for example, from a picture header structure associated with the coded picture, a slice header in the slice, decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a picture parameter set).

[0255] In some embodiments, the one or more parameters may include, for example: a flag for co-location from L0, an MVD L1 zero flag, a flag for enabling / disabling bidirectional optical flow (BDOF), a flag for enabling / disabling decoder motion vector refinement (DMVR), and / or weighted prediction parameters.

[0256] This is illustrated in the syntax and semantics below, which shows the changes relative to the current version of VVC. Added text is underlined, while deleted text is italicized and shown in double brackets:

[0257]

[0258]

[0259] ph_inter_slice_allowed_flag equal to 0 specifies that all coded slices of the picture have slice_type equal to 2. ph_inter_slice_allowed_flag equal to 1 specifies that one or more coded slices with slice_type equal to 0 or 1 may or may not be present in the picture.

[0260] ph_intra_slice_allowed_flag is equal to 0 to specify [[all]] of the picture none The code piece has a value equal to [[0 or 1]] 2 ph_intra_slice_allowed_flag equal to 1 specifies that one or more coded slices with slice_type equal to 2 may or may not be present in the picture. When not present, the value of ph_intra_slice_allowed_flag is inferred to be equal to 1.

[0261] NOTE 2 - For bitstreams assuming sub-picture based bitstream merging without the need to change PH NAL units, the encoder is expected to set the value of both ph_inter_slice_allowed_flag and ph_intra_slice_allowed_flag equal to 1.

[0262] ph_inter_B_slice_allowed_flag equal to 0 specifies that there are no slice_inter_B_slice_allowed_flags with ph_inter_B_slice_allowed_flag equal to 0 in the picture. ph_inter_B_slice_allowed_flag is equal to 1 to specify that the slice may or may not exist in the picture. In one or more coded slices with slice_type equal to 0. When not present, ph_inter_B_slice_ allowed_flag is inferred to be equal to 0.

[0263] ph_collocated_from_l0_flag equal to 1 specifies that the co-located picture used for temporal motion vector prediction is derived from reference picture list 0. ph_collocated_from_l0+flag equal to 0 specifies that the co-located picture used for temporal motion vector prediction is derived from reference picture list 1. When not present, ph_collocated_from_l0_flag is pushed It is considered equal to 1.

[0264] mvd_l1_zero_flag equal to 1 indicates that the mvd_coding(x0, y0, 1) syntax structure is not parsed and MvdL1[x0][y0][compIdx] and MvdCpL1[x0][y0][cpIdx][compIdx] are set equal to 0 for compIdx=0..1 and cpIdx=0..2. When ph_inter_B_slice_allowed_flag is equal to 1 mvd_l1_zero_flag equal to 0 indicates parsing the mvd_coding(x0, y0, 1) syntax structure. When not present, mvd_l1_zero_flag is inferred to be equal to 0.

[0265] Example 4

[0266] In some embodiments, the decoder may perform a subset or all of the following steps to decode a segment in a coded picture from the bitstream:

[0267] 1. Determine whether the coded picture may contain an inter-coded segment by decoding a first syntax element (eg, a flag) from a syntax structure in the bitstream. A segment may be, for example, a slice, and a syntax structure may be, for example, a picture header structure syntax structure.

[0268] 2. In response to determining that the coded picture may contain an inter-frame coded segment, (i) determining whether the coded picture may contain an intra-frame coded segment by decoding a second syntax element (e.g., a flag) from a syntax structure in the bitstream, and (ii) determining whether the coded picture may contain a bidirectional inter-frame coded segment by decoding a third syntax element (e.g., a flag) from a syntax structure in the bitstream.

[0269] 3. In response to determining that the coded picture may not include an inter-coded segment, determining that the coded picture can include only an intra-coded segment without decoding the second syntax element and without decoding the third syntax element.

[0270] 4. In response to determining that the coded picture may contain a bidirectional inter-coded slice, decoding at least one of collocated_from_l0_flag, mvd_l1_zero_flag, dmvr_flag, or prof_flag.

[0271] 5. In response to determining from decoding the third syntax element that the coded picture may not include a bidirectional inter-coded segment, inferring at least one of the following:

[0272] a.collocated_from_l0_flag is equal to 1,

[0273] b.mvd_l1_zero_flag is equal to 0,

[0274] c.dmvr_flag is equal to a value indicating that DMVR is disabled, and

[0275] d.prof_flag is equal to the value indicating that the prof is disabled.

[0276] 6. Decode the slices of the current picture using the value of at least one of collocated_from_l0_flag, mvd_l1_zero_flag, dmvr_flag, or prof_flag.

[0277] 7. Determine whether the syntax structure is present in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

[0278] 8. Decode a fourth syntax element indicating a slice type, wherein the presence of the fourth syntax element is conditional on:

[0279] if (ph_inter_slice_allowed_flag&&!picture_header_in_slice_header_flag&&(ph_intraslice_allowed_flag||ph_inter_B_slice_allowed_flag))

[0280] Among them, ph_inter_slice_allowed_flag is the first syntax element, ph_intra_slice_allowed_flag is the second syntax element, ph_inter_B_slice_allowed_flag is the third syntax element, and picture_header_in_slice_header_flag is a syntax element (e.g., a flag) indicating whether the syntax structure exists in the picture header NAL unit of the coded picture or in the slice header of the coded picture.

[0281] 9. Determining that the fourth syntax element does not exist due to the condition and further comprising inferring the slice type as follows:

[0282] a. If ph_inter_slice_allowed_flag is equal to 0, the value of slice_type is inferred to be equal to 2.

[0283] b. Otherwise, if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, the value of slice_type is inferred to be equal to 1.

[0284] c. Otherwise (ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1), the value of slice_type is inferred to be equal to 0.

[0285] Some embodiments may include some or all of the features disclosed in the contributions set forth below.

[0286] flow chart

[0287] Figure 7 A process 700 is shown performed by a decoder 304 according to some embodiments. In some embodiments, the process 700 may provide a method for decoding a slice 22 in a coded picture 2 from a bitstream 1 .

[0288] In some embodiments, the coded picture 2 may be (a) a coded picture that may include a bidirectional inter-coded slice, the coded picture being a coded picture that may include a slice 22 of a type that specifies that the slice may include a block predicted using bidirectional inter-frame prediction, or (b) a coded picture that may not include a bidirectional inter-coded slice, the coded picture being a coded picture that does not include any slice 22 of a type that specifies that the slice 22 may include a block predicted using bidirectional inter-frame prediction. In some embodiments, the coded picture 2 may be (a) a coded picture that may include an intra-coded slice, the coded picture being a coded picture that may include a slice 22 of a type that specifies that the slice only includes a block predicted using intra-frame prediction, or (b) a coded picture that may not include an intra-coded slice 22, the coded picture being a coded picture that does not include any slice 22 of a type that specifies that the slice only includes a block predicted using intra-frame prediction. In some embodiments, the coded picture 2 may be (a) a coded picture that may include an inter-coded slice, the coded picture being a coded picture that may include a slice 22 of a type that specifies that the slice 22 may include a block predicted using one or both of bidirectional inter prediction and unidirectional inter prediction, (b) a coded picture that may not include an inter-coded slice, the coded picture being a coded picture of any slice 22 of any type that does not include any block predicted using bidirectional inter prediction or unidirectional inter prediction. In some embodiments, the coded picture 2 may be (a) a coded picture that may include a unidirectional inter-coded slice, the coded picture being a coded picture that may include a slice 22 of a type that specifies that the slice 22 may include a block predicted using unidirectional inter prediction, or (b) a coded picture that may not include a unidirectional inter-coded slice, the coded picture being a coded picture of any slice 22 of a type that specifies that the slice may include a block predicted using unidirectional inter prediction.

[0289] In some embodiments, Figure 7 As shown, process 700 may include step 702: decoding a first codeword from bitstream 1 to obtain a value of the first codeword. In some embodiments, the value of the first codeword may indicate whether the coded picture 2 may contain a bidirectional inter-frame coded segment.

[0290] In some embodiments, Figure 7 As shown, process 700 may include step 704: decoding a second codeword from bitstream 1 to obtain a value of the second codeword. In some embodiments, the value of the second codeword may indicate whether the coded picture 2 may contain an intra-coded segment.

[0291] In some embodiments, Figure 7As shown, process 700 may include optional step 706: decoding a third codeword from bitstream 1 to obtain a value of the third codeword. In some embodiments, the value of the third codeword may indicate whether the coded picture may include an inter-coded segment. In some alternative embodiments, the value of the third codeword may indicate whether the coded picture may include an inter-coded segment of unidirectional prediction.

[0292] In some embodiments, Figure 7 As shown, process 700 may include optional step 708: decoding a fourth codeword from bitstream 1 to obtain a value of the fourth codeword. In some embodiments, the value of the fourth codeword may indicate whether a picture header structure associated with the coded picture is decoded from the same network abstraction layer (NAL) unit as the fragment or from a picture header NAL unit different from the fragment NAL unit.

[0293] In some embodiments, one or more of the first codeword, the second codeword, the third codeword, and the fourth codeword may be decoded from a picture header structure 21, decoding capability information 12, an access unit delimiter 11, or a parameter set (e.g., a sequence parameter set 14, a video parameter set 13, or a picture parameter set 15) associated with the coded picture 12. In some embodiments in which one or more of the first codeword, the second codeword, the third codeword, and the fourth codeword are decoded from a picture header structure associated with the coded picture, the picture header structure may be included in a picture header network abstraction layer (NAL) unit or in a slice header 31 of a slice 22. In some embodiments, one or more of the first codeword, the second codeword, the third codeword, and the fourth codeword may be decoded from a portion of the bitstream 1 other than the slice 22. In some embodiments, the first codeword may be decoded from a portion of the bitstream 1 other than the access unit delimiter 11.

[0294] In some embodiments, one or more of the first codeword, the second codeword, the third codeword, and the fourth codeword may be a flag. In some embodiments, two or more of the first codeword, the second codeword, the third codeword, and the fourth codeword may be the same codeword.

[0295] In some embodiments, Figure 7As shown, process 700 may include step 710: deriving the one or more parameter values ​​by (a) decoding one or more parameters from bitstream 1 to obtain the one or more parameter values, or (b) inferring the one or more parameter values, based at least on the value of the first codeword. In some embodiments, decoding the one or more parameters from bitstream 1 to obtain the one or more parameter values ​​may include: decoding the one or more parameters from a picture header structure associated with the coded picture, a slice header of the slice, decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a picture parameter set). In some embodiments, inferring the one or more parameter values ​​may include: inferring one or more values, the values ​​being constant values ​​or values ​​derived without decoding any of the one or more parameters from bitstream 1.

[0296] In some embodiments, the segment 22 may have a segment type, and one or more of the one or more parameter values ​​indicate the segment type of the segment 22. In some embodiments, the segment type indicates whether the segment 22 is an intra (I) coded segment, a unidirectional (P) inter-coded segment, or a bidirectional (B) inter-coded segment. In some embodiments, the segment 22 may be a slice. In some embodiments, the slice may have a slice type, and one or more of the one or more parameter values ​​may indicate the slice type of the slice. In some embodiments, the one or more parameters may additionally or alternatively include one or more of the following: a flag of co-location from L0, a motion vector difference (MVD) L1 zero flag, a flag for enabling / disabling bidirectional optical flow (BDOF), and a flag for enabling / disabling decoder motion vector refinement (DMVR). In some embodiments, the one or more parameters may additionally or alternatively include weighted prediction parameters.

[0297] In some embodiments, deriving the one or more parameter values ​​in step 710 may include: if (i) the value of the first codeword indicates that the encoded picture may not contain a bidirectional inter-frame coded segment, (ii) the value of the second codeword indicates that the encoded picture may not contain an intra-frame coded segment, and (iii) the third codeword indicates that the encoded picture may contain an inter-frame coded segment, for one or more values ​​specifying that the segment is a unidirectional inter-frame coded segment, inferring one or more parameter values ​​(e.g., slice_type) indicating that the segment type is a unidirectional (P) inter-frame coded segment.

[0298] In some embodiments, deriving the one or more parameter values ​​in step 710 may include: (1) if the value of the third codeword indicates that the coded picture may not contain an inter-coded slice, then, for one or more values ​​specifying that the slice is an intra-coded slice, inferring one or more parameter values ​​(e.g., slice_type) indicating that the slice type is an intra-coded (I) slice; (2) if (i) the value of the third codeword indicates that the coded picture may contain an inter-coded slice, and (ii) the value of the first codeword indicates that the coded picture may not contain a bidirectional inter-coded slice, then, for one or more values ​​specifying that the slice is an intra-coded slice, inferring one or more parameter values ​​(e.g., slice_type) indicating that the slice type is an intra-coded (I) slice; one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a unidirectional (P) inter-coded slice, and if (i) the value of the third codeword indicates that the coded picture may contain inter-coded slices, and (ii) the value of the first codeword indicates that the coded picture may contain bidirectional inter-coded slices, one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a bidirectional (B) inter-coded slice are inferred for one or more values ​​specifying that the slice type is a bidirectional inter-coded slice.

[0299] In some embodiments, if the value of the fourth codeword indicates that the picture header structure associated with the coded picture is decoded from the same NAL unit as the slice, the one or more parameter values ​​may be derived by inferring the one or more parameter values ​​in step 710. In some embodiments, if the value of the fourth codeword indicates that the picture header structure associated with the coded picture is decoded from a picture header NAL unit different from the slice NAL unit, the one or more parameter values ​​may be derived in step 710 by decoding one or more parameters from the bitstream to obtain the one or more parameter values.

[0300] In some embodiments, if the value of the first codeword indicates that the coded picture should not include bidirectional inter-frame coding, the one or more parameter values ​​can be derived in step 710 by decoding one or more parameters from the bitstream to obtain one or more parameter values, and if the value of the first codeword indicates that the coded picture can include bidirectional inter-frame coded segments, the one or more parameter values ​​can be derived in step 710 by inferring the one or more parameter values.

[0301] In some embodiments, Figure 7 As shown, process 700 may include step 712: decoding a segment in the encoded picture based on the one or more parameter values.

[0302] Figure 8A process 800 is shown that is performed by a decoder 304 according to some embodiments. In some embodiments, the process 800 may provide a method for decoding a segment 22 in a coded picture 2 from a bitstream 1. In some embodiments, the segment may be a slice.

[0303] In some embodiments, Figure 8 As shown, process 800 may include step 802: determining whether coded picture 2 may contain an inter-coded segment by decoding a first syntax element from a syntax structure in bitstream 1. In some embodiments, the syntax structure may be present in a picture header NAL unit of coded picture 2 or in a slice header 31 of coded picture 2.

[0304] In some embodiments, Figure 8 As shown, process 800 may include step 804: in response to determining that coded picture 2 may contain inter-frame coded segments, (i) determining whether coded picture 2 may contain intra-frame coded segments by decoding a second syntax element from a syntax structure in bitstream 1, and (ii) determining whether coded picture 2 may contain bidirectional inter-frame coded segments by decoding a third syntax element from a syntax structure in bitstream 1.

[0305] In some embodiments, Figure 8 As shown, process 800 may include step 806: in response to determining that coded picture 2 may not contain inter-coded segments, determining that coded picture 2 may only contain intra-coded segments without decoding the second syntax element and without decoding the third syntax element.

[0306] In some embodiments, Figure 8 As shown, process 800 may include step 808: in response to determining that coded picture 2 may contain a bidirectional inter-coded segment, deriving the one or more parameter values ​​by decoding one or more parameters from bitstream 1 to obtain the one or more parameter values.

[0307] In some embodiments, Figure 8 As shown, process 800 may include step 810: in response to determining, based on decoding of the third syntax element, that coded picture 2 may not contain a bidirectional inter-coded segment, deriving the one or more parameter values ​​by inferring the one or more parameter values.

[0308] In some embodiments, the one or more parameters may include one or more of: a flag for collocated from L0 (e.g., collocated_from_l0_flag), a MVD L1 zero flag (e.g., mvd_l1_zero_flag), a flag for enabling / disabling BDOF (e.g., ph_disable_bdof_flag), a flag for enabling / disabling DMVR (e.g., dmvr_flag). In some embodiments, the one or more parameters may additionally or alternatively include a prof_flag. In some embodiments, inferring the one or more parameter values ​​in step 810 may include inferring one or more of the following: (i) a value of a flag for collocated from L0 (e.g., collocated_from_10_flag) is equal to 1, (ii) a value of a MVDL1 zero flag (e.g., mvd_l1_zero_flag) is equal to 0, (iii) a value of a flag for enabling / disabling BDOF (e.g., ph_disable_bdof_flag) is equal to a value indicating that BDOF is disabled, (iv) a value of a flag for enabling / disabling DMVR (e.g., dmvr_flag) is equal to a value indicating that dmvr is disabled, and (iv) a value of prof_flag is equal to a value indicating that prof is disabled. In some embodiments, prof_flag specifies whether prediction refinement using optical flow in an affine motion compensation process when decoding the coded picture can be used.

[0309] In some embodiments, process 800 may include an optional step of decoding a fourth syntax element representing a slice type if (ph_inter_slice_allowed_flag &&! picture_header_in_slice_header_flag && (ph_intra_slice_allowed_flag || ph_inter_B_slice_allowed_flag)), wherein ph_inter_slice_allowed_flag may be a first syntax element, ph_intra_slice_allowed_flag may be a second syntax element, ph_inter_B_slice_allowed_flag may be a third syntax element, and picture_header_in_slice_header_flag may be a syntax element indicating whether the syntax structure is present in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

[0310] In some embodiments, process 800 may include the optional step of: If the following conditions are not met (ph_inter_slice_allowed_flag &&! picture_header_in_slice_header_flag &&

[0311] (ph_intra_slice_allowed_flag||ph_inter_B_slice_allowed_flag)), the slice type value is inferred without decoding the corresponding slice type syntax element, wherein ph_inter_slice_allowed_flag is the first syntax element, ph_intra_slice_allowed_flag is the second syntax element, ph_inter_B_slice_allowed_flag is the third syntax element, and picture_header_in_slice_headr_flag is a syntax element indicating whether the syntax structure is present in a picture header NAL unit of the coded picture or in a slice header of the coded picture. In some embodiments, if ph_inter_slice_allowed_flag is equal to 0, the slice type can be inferred to be an intra-frame (I) coded slice, if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, the slice type can be inferred to be a unidirectional (P) inter-frame coded slice, if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1, the slice type can be inferred to be a bidirectional (B) inter-frame coded slice.

[0312] In some embodiments, Figure 8 As shown, process 800 may include step 812: decoding the segment of the encoded picture. In some embodiments, the decoding may use the one or more parameter values.

[0313] Fig. 9 A process 900 is shown that is performed by encoder 302 according to some embodiments. In some embodiments, process 900 may provide a method for encoding a segment 22 in a picture into a bitstream 1 .

[0314] In some embodiments, process 900 may include step 902: determining whether the encoded picture 2 will contain a bidirectional inter-frame coded segment. In some embodiments, process 900 may include step 904: encoding a first codeword into bitstream 1. In some embodiments, the encoded first codeword may have a value indicating whether the encoded picture will contain a bidirectional inter-frame coded segment. In some embodiments, process 900 may include step 906: determining whether to encode one or more parameter values ​​into bitstream 1 based at least on the determination of whether the encoded picture will contain a bidirectional inter-frame coded segment. In some embodiments, process 900 may include step 908: if it is determined that the one or more parameter values ​​are to be encoded into bitstream 1, encoding the one or more parameter values ​​into bitstream 1. In some embodiments, process 900 may include step 910: encoding the segment in the picture into the bitstream using the one or more parameter values.

[0315] Fig.10 A process 1000 performed by encoder 302 according to some embodiments is shown. In some embodiments, process 1000 may provide a method for encoding a slice 22 of a current picture into a coded picture 2 in a bitstream 1 .

[0316] In some embodiments, process 1000 may include step 1002: determining whether coded picture 2 may contain inter-coded segments. In some embodiments, process 1000 may include step 1004: encoding a first syntax element into bitstream 1 using a syntax structure. The encoded first syntax element may have a value indicating whether coded picture 2 may contain inter-coded segments. In some embodiments, process 1000 may include step 1006: in response to determining that coded picture 2 may contain inter-coded segments, (i) determining whether coded picture 2 may contain intra-coded segments, (ii) encoding a second syntax element into the bitstream using a syntax structure, the second syntax element having a value indicating whether coded picture 2 will contain intra-coded segments, (iii) determining whether the coded picture may contain bidirectional inter-coded segments, and (iv) encoding a third syntax element into bitstream 1 using a syntax structure, the third syntax element having a value indicating whether coded picture 2 may contain bidirectional inter-coded segments.

[0317] In some embodiments, process 1000 may include step 1008: in response to determining that coded picture 2 may not contain inter-coded segments, (i) determining that the coded picture will contain only intra-coded segments, and (ii) determining not to encode the second syntax element and the third syntax element into bitstream 1. In some embodiments, process 1000 may include step 1010: in response to determining that coded picture 2 may contain bidirectional inter-coded segments, encoding one or more parameter values ​​into bitstream 1. In some embodiments, process 1000 may include step 1012: in response to determining that coded picture 2 may not contain bidirectional inter-coded segments based on decoding of the third syntax element, determining not to encode the one or more parameter values ​​into bitstream 1. In some embodiments, process 1000 may include step 1014: encoding the segments of the current picture into bitstream 1. In some embodiments, the encoding may use the one or more parameter values.

[0318] Fig.11 1 is a block diagram of an apparatus 1201 for implementing an encoder 302 or a decoder 304 according to some embodiments. That is, the apparatus 1201 may be configured to perform the methods disclosed herein. In embodiments where the apparatus 1201 implements the encoder 302, the apparatus 1201 may be referred to as an "encoding apparatus 1201", and in embodiments where the apparatus 1201 implements the decoder 304, the apparatus 1201 may be referred to as a "decoding apparatus 1201". Fig.11As shown, the device 1201 may include: a processing circuit (PC) 1202, which may include one or more processors (P) 1255 (e.g., one or more general-purpose microprocessors and / or one or more other processors, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.), which may be co-located in a single housing or a single data center, or may be geographically distributed; one or more network interfaces 1248 (which may be co-located or geographically distributed), wherein each network interface includes a transmitter (Tx) 1245 and a receiver (Rx) 1247, for enabling the device 1201 to send data to and receive data from other nodes connected to a network 306 (e.g., an Internet Protocol (IP) network) to which the network interface 1248 is connected; and one or more storage units (also referred to as "data storage systems") 1208, which may be co-located or geographically distributed, and may include one or more non-volatile storage devices and / or one or more volatile storage devices. In an embodiment where the PC 1202 includes a programmable processor, a computer program product (CPP) 1241 may be provided. The CPP 1241 includes a computer readable medium (CRM) 1242 storing a computer program (CP) 1243, which includes computer readable instructions (CRI) 1244. The CRM 1242 can be a non-transitory computer readable medium, such as a magnetic medium (e.g., a hard disk), an optical medium, a memory device (e.g., a random access memory, a flash memory), etc. In some embodiments, the CRI 1244 of the computer program 1243 is adapted so that when executed by the PC 1202, the CRI causes the device 1201 to perform the steps described herein (e.g., the steps described herein with reference to the flowcharts). In other embodiments, the device 1201 can be configured to perform the steps described herein without the need for code. That is, for example, the PC 1202 can be composed of only one or more ASICs. Therefore, the features of the embodiments described herein can be implemented in hardware and / or software.

[0319] Overview of Various Embodiments

[0320] A1. A method (700) for decoding a fragment in a coded picture from a bitstream, the method comprising: decoding a first codeword from the bitstream to obtain a value of the first codeword, wherein the value of the first codeword indicates whether the coded picture can contain a bidirectional inter-frame coded fragment; based on the value of the first codeword, deriving the one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain one or more parameter values, or (b) inferring one or more parameter values; and decoding the fragment in the coded picture based on the one or more parameter values.

[0321] A2A. The method of embodiment A1, wherein the first codeword is decoded from a picture header structure associated with the encoded picture.

[0322] A2B. The method of embodiment A2A, wherein the picture header structure is included in a picture header network abstraction layer (NAL) unit or in a slice header of the slice.

[0323] A2C. The method of any one of embodiments A1 to A2B, wherein the first codeword is decoded from a portion of the bitstream other than the segment.

[0324] A2D. A method according to any one of embodiments A1 and A2C, wherein the first codeword is decoded from decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a coded picture parameter set).

[0325] A3. The method of any one of embodiments A1 to A2C, wherein the first codeword is decoded from a portion of the bitstream other than an access unit delimiter.

[0326] A4. The method of any one of embodiments A1 to A3, wherein the fragment has a fragment type, and one or more of the one or more parameter values ​​indicates the fragment type of the fragment.

[0327] A5. The method of embodiment A4, wherein the segment type indicates whether the segment is an intra (I) coded segment, a unidirectional (P) inter-coded segment, or a bidirectional (B) inter-coded segment.

[0328] A6. The method according to any one of embodiments A1 to A5 further includes: decoding a second codeword from the bitstream to obtain a value of the second codeword, wherein the value of the second codeword indicates whether the encoded picture can contain an intra-frame coded segment; and deriving the one or more parameter values ​​is based on the values ​​of the first codeword and the second codeword.

[0329] A7. The method according to any one of embodiments A1 to A6 further includes: decoding a third codeword from the bitstream to obtain a value of the third codeword, wherein the value of the third codeword indicates whether the encoded picture can contain an inter-frame coded segment; and deriving the one or more parameter values ​​is also based on the value of the third codeword.

[0330] A8. The method according to any one of embodiments A1 to A6 further includes: decoding a third codeword from the bitstream to obtain a value of the third codeword, wherein the value of the third codeword indicates whether the encoded picture can contain a unidirectionally predicted inter-frame coded segment; and deriving the one or more parameter values ​​is also based on the value of the third codeword.

[0331] A9. A method according to any one of embodiments A6 to A8, wherein at least one of the second codeword and the third codeword can be decoded from a picture header structure, decoding capability information, an access unit delimiter, or a parameter set (e.g., a sequence parameter set, a video parameter set, or a picture parameter set) associated with the encoded picture.

[0332] A10. A method according to embodiments A7 or A9, wherein the segment has a segment type, and deriving the one or more parameter values ​​includes: if (i) the value of the first codeword indicates that the encoded picture may not contain a bidirectional inter-frame coded segment, (ii) the value of the second codeword indicates that the encoded picture may not contain an intra-frame coded segment, and (iii) the value of the third codeword indicates that the encoded picture may contain an inter-frame coded segment, for one or more values ​​specifying that the segment is a unidirectional inter-frame coded segment, inferring one or more parameter values ​​(e.g., slice_type) indicating that the segment type is a unidirectional (P) inter-frame coded segment.

[0333] A11. The method of embodiments A7 or A9, wherein the slice has a slice type, and deriving the one or more parameter values ​​comprises: if the value of the third codeword indicates that the coded picture may not contain an inter-coded slice, inferring one or more parameter values ​​(e.g., slice_type) indicating that the slice type is an intra (I) coded slice for one or more values ​​specifying that the slice is an intra-coded slice; if (i) the value of the third codeword indicates that the coded picture may contain an inter-coded slice, and (ii) the value of the first codeword indicates that the coded picture may not contain a bidirectional inter-coded slice, then, for one or more values ​​specifying that the slice is a unidirectional inter-frame coded slice, one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a unidirectional (P) inter-frame coded slice are inferred; and if (i) the value of the third codeword indicates that the coded picture can contain inter-frame coded slices, and (ii) the value of the first codeword indicates that the coded picture can contain bidirectional inter-frame coded slices, then for one or more values ​​specifying that the slice type is a bidirectional inter-frame coded slice, one or more parameter values ​​(e.g., slice_type) indicating that the slice type is a bidirectional (B) inter-frame coded slice are inferred.

[0334] A12. The method according to any one of embodiments A1 to A11 further includes: decoding a fourth codeword from the bitstream to obtain a value of the fourth codeword, wherein the value of the fourth codeword indicates whether a picture header structure associated with the encoded picture is decoded from a network abstraction layer (NAL) unit that is the same as the fragment or from a picture header NAL unit that is different from the fragment NAL unit; and deriving the one or more parameter values ​​is also based on the value of the fourth codeword.

[0335] A13. A method according to embodiment A12, wherein the fourth codeword is decoded from a segment header, decoding capability information, an access unit delimiter, or a parameter set such as a sequence parameter set, a video parameter set, or a picture parameter set in the segment.

[0336] A14. A method according to embodiments A12 or A13, wherein if the value of the fourth codeword indicates that the picture header structure associated with the encoded picture is decoded from the same NAL unit as the fragment, the one or more parameter values ​​are derived by inferring the one or more parameter values.

[0337] A15. A method according to any one of embodiments A12 to A14, wherein, if the value of the fourth codeword indicates that the picture header structure associated with the encoded picture is decoded from a picture header NAL unit different from the fragment NAL unit, then the one or more parameter values ​​can be derived by decoding one or more parameters from the bitstream to obtain the one or more parameter values.

[0338] A16. A method according to any one of embodiments A1 to A15, wherein: if the value of the first codeword indicates that the encoded picture should not contain bidirectional inter-frame coded segments, the one or more parameter values ​​are derived by decoding one or more parameters from the bitstream to obtain the one or more parameter values; and if the value of the first codeword indicates that the encoded picture may contain bidirectional inter-frame coded segments, the one or more parameter values ​​are derived by inferring the one or more parameter values.

[0339] A17. A method according to any one of embodiments A1 to A16, wherein decoding the one or more parameters from the bitstream to obtain the one or more parameter values ​​includes: decoding the one or more parameters from a picture header structure associated with the encoded picture, a slice header of the slice, decoding capability information, an access unit delimiter, or a parameter set (for example, a sequence parameter set, a video parameter set, or a picture parameter set).

[0340] A18. A method according to any one of embodiments A1 to A17, wherein the one or more parameters are one or more of the following: a flag of co-location from L0, a MVD L1 zero flag, a flag for enabling / disabling BDOF, a flag for enabling / disabling DMVR, and a weighted prediction parameter.

[0341] A19. A method according to any one of embodiments A1 to A18, wherein the first codeword is a flag.

[0342] A20. The method of any one of embodiments A6 to A19, wherein one or more of the second codeword, the third codeword, and the fourth codeword is a flag.

[0343] A21. A method according to any one of embodiments A6 to A20, wherein two or more of the first codeword, the second codeword, the third codeword, and the fourth codeword are the same codeword.

[0344] A22. The method of any one of embodiments A1 to A21, wherein the fragments are sheets.

[0345] A23. The method of embodiment A22, wherein the slice has a slice type, and one or more of the one or more parameter values ​​indicates the slice type of the slice.

[0346] A24. A method according to any one of embodiments A1 to A23, wherein inferring the one or more parameter values ​​includes: inferring one or more values, which are constant values ​​or values ​​derived without decoding any parameters of the one or more parameters from the bitstream.

[0347] A25. A method according to any one of embodiments A1 to A24, wherein the coded picture is (a) a coded picture that may contain a bidirectional inter-frame coded segment, and the coded picture is a coded picture that may contain a segment of a type that specifies that the segment can contain a block predicted using bidirectional inter-frame prediction, or (b) a coded picture that may not contain a bidirectional inter-frame coded segment, and the coded picture is a coded picture that does not contain any segment of a type that specifies that the segment can contain a block predicted using bidirectional inter-frame prediction.

[0348] A26. A method according to any one of embodiments A1 to A25, wherein the coded picture is (a) a coded picture that may contain intra-frame coded segments, and the coded picture is a coded picture that may contain segments of a type that specifies that the segments only contain blocks predicted using intra-frame prediction, or (b) a coded picture that may not contain intra-frame coded segments, and the coded picture is a coded picture that does not contain any segments of a type that specifies that the segments only contain blocks predicted using intra-frame prediction.

[0349] A27. A method according to any one of embodiments A1 to A26, wherein the coded picture is (a) a coded picture that may contain inter-frame coded segments, the coded picture is a coded picture that may contain segments of a type in which the specified segment may contain blocks predicted using one or both of bidirectional inter-frame prediction and unidirectional inter-frame prediction, or (b) a coded picture that may not contain inter-frame coded segments, the coded picture is a coded picture of any type that does not contain any blocks that the specified segment may contain predicted using bidirectional inter-frame prediction or unidirectional inter-frame prediction.

[0350] A28. A method according to any one of embodiments A7 to A26, wherein the coded picture is (a) a coded picture that may contain unidirectional inter-frame coded segments, and the coded picture is a coded picture that may contain segments of the type that specify segments may contain blocks predicted using unidirectional inter-frame prediction, or (b) a coded picture that may not contain unidirectional inter-frame coded segments, and the coded picture is a coded picture that does not contain any segments of the type that specify segments may contain blocks predicted using unidirectional inter-frame prediction.

[0351] B1. A device (304) configured to: decode a first codeword from a bitstream to obtain a value of the first codeword, wherein the value of the first codeword indicates whether a coded picture can contain a bidirectional inter-frame coded segment; based on the value of the first codeword, derive the one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain one or more parameter values, or (b) inferring one or more parameter values; and decode a segment of the coded picture based on the one or more parameter values.

[0352] C1. A method (800) for decoding a segment of a current picture from a coded picture in a bitstream, the method comprising: determining whether the coded picture can include an inter-frame coded segment by decoding a first syntax element from a syntax structure in the bitstream; in response to determining that the coded picture can include an inter-frame coded segment, (i) determining whether the coded picture can include an intra-frame coded segment by decoding a second syntax element from the syntax structure in the bitstream, and (ii) determining whether the coded picture can include a bidirectional inter-frame coded segment by decoding a third syntax element from the syntax structure in the bitstream; in response to determining that the coded picture can include an inter-frame coded segment does not include an inter-frame coded segment, and determines that the coded picture may only include intra-frame coded segments without decoding the second syntax element and without decoding the third syntax element; in response to determining that the coded picture may include a bidirectional inter-frame coded segment, deriving the one or more parameter values ​​by decoding one or more parameters from the bitstream to obtain one or more parameter values; in response to determining that the coded picture may not include a bidirectional inter-frame coded segment according to decoding of the third syntax element, deriving the one or more parameter values ​​by inferring the one or more parameter values; and decoding the segment of the current picture using the one or more parameter values.

[0353] C2. The method of embodiment C1, wherein the one or more parameters include one or more of collocated_from_l0_flag, mvd_l1_zero_flag, dmvr_flag, and prof_flag.

[0354] C3. A method according to embodiments C1 or C2, wherein inferring the one or more parameter values ​​includes inferring one or more of the following: (i) the value of collocated_from_l0_flag is equal to 1, (ii) the value of mvd_l1_zero_flag is equal to 0; (iii) the value of dmvr_flag is equal to a value indicating that dmvr is disabled, and (iv) the value of prof_flag is equal to a value indicating that prof is disabled.

[0355] C4. A method according to any one of embodiments C1 to C3, wherein the syntax structure exists in a picture header NAL unit of the encoded picture or in a slice header of the encoded picture.

[0356] C5. A method according to any one of embodiments C1 to C4: if (ph_inter_slice_allowed_flag&&!picture_header_in_slice_header_flag&&(ph_intra_slice_allowed_flag||ph_inter_B_slice_allowed_flag)), a fourth syntax element representing a slice type is decoded, wherein ph_inter_slice_allowed_flag is a first syntax element, ph_intra_slice_allowed_flag is a second syntax element, ph_inter_B_slice_allowed_flag is a third syntax element, and picture_header_in_slice_header_flag is a syntax element indicating whether the syntax structure exists in a picture header NAL unit of the encoded picture or in a slice header of the encoded picture.

[0357] C6. The method according to any one of embodiments C1 to C5 also includes: if the following condition is not met, inferring the slice type value without decoding the corresponding slice type syntax element: (ph_inter_slice_allowed_flag&&!picture_header_in_slice_header_flag&&(ph_intra_slice_allowed_flag||ph_inter_B_slice_allowed_flag)), wherein ph_inter_slice_allowed_flag is the first syntax element, ph_intra_slice_allowed_flag is the second syntax element, ph_inter_B_slice_allowed_flag is the third syntax element, and picture_header_in_slice_header_flag is a syntax element indicating whether the syntax structure exists in the picture header NAL unit of the encoded picture or in the slice header of the encoded picture.

[0358] C7. The method of embodiment C6, wherein: if ph_inter_slice_allowed_flag is equal to 0, the slice type is inferred to be an intra (I) coded slice; if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, the slice type is inferred to be a unidirectional (P) inter-frame coded slice; and if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1, the slice type is inferred to be a bidirectional (B) inter-frame coded slice.

[0359] C8. The method of any one of embodiments C1 to C7, wherein the fragments are sheets.

[0360] C9. The method of any one of embodiments C2 to C8, wherein prof_flag specifies whether prediction refinement using optical flow in an affine motion compensation process when decoding the current picture can be used.

[0361] D1. A device (304) configured to: determine whether a coded picture in a bitstream may include an inter-coded segment by decoding a first syntax element from a syntax structure in a bitstream; in response to determining that the coded picture may include an inter-coded segment, (i) determine whether the coded picture may include an intra-coded segment by decoding a second syntax element from a syntax structure in the bitstream, and (ii) determine whether the coded picture may include a bidirectional inter-coded segment by decoding a third syntax element from a syntax structure in the bitstream; in response to determining that the coded picture may not include an inter-coded segment, determine that the coded picture may only include an intra-coded segment without decoding the second syntax element and without decoding the third syntax element; in response to determining that the coded picture may include a bidirectional inter-coded segment, derive the one or more parameter values ​​by decoding one or more parameters from the bitstream to obtain the one or more parameter values; in response to determining that the coded picture may not include a bidirectional inter-coded segment based on decoding of the third syntax element, derive the one or more parameter values ​​by inferring the one or more parameter values; and decode a segment of a current picture using the one or more parameter values.

[0362] E1. A method (900) for encoding a fragment in a picture into a bitstream, the method comprising: determining whether the encoded picture will contain a bidirectional inter-frame coded fragment; encoding a first codeword into the bitstream, wherein the encoded first codeword has a value indicating whether the encoded picture will contain a bidirectional inter-frame coded fragment; determining whether to encode one or more parameter values ​​into the bitstream based on the determination of whether the encoded picture will contain a bidirectional inter-frame coded fragment; if it is determined that the one or more parameter values ​​are to be encoded into the bitstream, encoding the one or more parameter values ​​into the bitstream; and encoding the fragment in the picture into the bitstream using the one or more parameter values.

[0363] F1. A device (302) configured to: determine whether a coded picture can contain a bidirectional inter-frame coded segment; encode a first codeword into a bitstream, wherein the encoded first codeword has a value indicating whether the coded picture can contain a bidirectional inter-frame coded segment; determine whether one or more parameter values ​​can be encoded into the bitstream based on the determination of whether the coded picture can contain a bidirectional inter-frame coded segment; if it is determined that the one or more parameter values ​​are to be encoded into the bitstream, encode the one or more parameter values ​​into the bitstream; and use the one or more parameter values ​​to encode a segment in the picture into the bitstream.

[0364] G1. A method (1000) for encoding a segment of a current picture into a coded picture in a bitstream, the method comprising: determining whether the coded picture can contain an inter-frame coded segment; encoding a first syntax element into the bitstream using a syntax structure, wherein the encoded first syntax element has a value indicating whether the coded picture can contain an inter-frame coded segment; in response to determining that the coded picture can contain an inter-frame coded segment, (i) determining whether the coded picture can contain an intra-frame coded segment, (ii) encoding a second syntax element into the bitstream using a syntax structure, wherein the second syntax element has a value indicating whether the coded picture will contain an intra-frame coded segment, (iii) determining whether the coded picture can contain a bidirectional inter-frame coded segment, and (iv) encoding the first syntax element into the bitstream using the syntax structure. The method comprises encoding three syntax elements into the bitstream, the third syntax element having a value indicating whether the coded picture may contain a bidirectional inter-coded segment; in response to determining that the coded picture may not contain an inter-coded segment, (i) determining that the coded picture will contain only intra-coded segments, and (ii) determining not to encode the second syntax element and the third syntax element into the bitstream; in response to determining that the coded picture may contain a bidirectional inter-coded segment, encoding one or more parameter values ​​into the bitstream; in response to determining that the coded picture may not contain a bidirectional inter-coded segment based on decoding of the third syntax element, determining not to encode the one or more parameter values ​​into the bitstream; and encoding the segment of the current picture into the bitstream using the one or more parameter values.

[0365] H1. An apparatus (302) configured to: determine whether a coded picture may contain an inter-coded segment; encode a first syntax element into a bitstream using a syntax structure, wherein the encoded first syntax element has a value indicating whether the coded picture may contain an inter-coded segment; in response to determining that the coded picture may contain an inter-coded segment, (i) determine whether the coded picture may contain an intra-coded segment, (ii) encode a second syntax element into the bitstream using a syntax structure, wherein the second syntax element has a value indicating whether the coded picture will contain an intra-coded segment, (iii) determine whether the coded picture may contain a bidirectional inter-coded segment, and (iv) encode a third syntax element into the bitstream using a syntax structure, The third syntax element has a value indicating whether the coded picture may contain a bidirectional inter-frame coded segment; in response to determining that the coded picture may not contain an inter-frame coded segment, (i) determine that the coded picture will only contain intra-frame coded segments, and (ii) determine not to encode the second syntax element and the third syntax element into the bitstream; in response to determining that the coded picture may contain a bidirectional inter-frame coded segment, encode one or more parameter values ​​into the bitstream; in response to determining that the coded picture may not contain a bidirectional inter-frame coded segment based on decoding of the third syntax element, determine not to encode the one or more parameter values ​​into the bitstream; and encode a segment of the current picture into the bitstream using the one or more parameter values.

[0366] I1. A computer program comprising instructions for adapting an apparatus to perform the method according to any one of embodiments A1 to A24, C1 to C7, E1 and G1.

[0367] J1. A carrier comprising the computer program according to embodiment E1, wherein the carrier is one of an electric signal, an optical signal, a radio signal or a computer-readable storage medium.

[0368] K1. A device (108 or 110), comprising: a processing circuit (602); and a memory (642), the memory containing instructions (644) executable by the processing circuit, whereby the device is operable to perform a method according to any one of embodiments A1 to A24, C1 to C7, E1 and G1.

[0369] L1. Any combination of the above embodiments.

[0370] Contribution Proposal

[0371] summary

[0372] This contribution proposes the following changes to the VVC specification:

[0373] 1. When ph_inter_slice_allowed_flag is equal to 1, the flag ph_inter_B_slice_allowed_flag is signaled in the PH and the presence of ph_collocated_from_l0_flag, mvd_l1_zero_flag, ph_disable_bdof_flag, and ph_disable_dmvr_flag are conditioned so that they are not present when ph_inter_B_slice_allowed_flag is equal to 0. In addition, the presence of pred_weight_table() in the PH is conditioned as follows, with underlined text added:

[0374] if((pps_weighted_pred_flag|| ( pps_weighted_bipred_flag &&ph_inter_B_ slice_allowed_flag) &&wp_info_in_ph_flag)

[0375] pred_weight_table()

[0376] 2. slice_type is signaled in the slice header only if ph_inter_slice_allowed_flag is equal to 1 and picture_header_in_slice_header_flag is equal to 0 and one of ph_intra_slice_allowed_flag or ph_inter_B_slice_allowed_flag is equal to 1, otherwise slice_type is inferred as:

[0377] a. If ph_inter_slice_allowed_flag is equal to 0, slice_type is inferred to be 2 (I slice).

[0378] b. If ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, slice_type is inferred to be 1 (P slice).

[0379] c. If ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1, slice_type is inferred to be 0 (B slice).

[0380] Claim: ph_inter_B_slice_allowed_flag groups syntax elements used only for bi-prediction in a PH in a similar way to how it is done in a slice header, and allows preventing syntax elements used only for bi-prediction from being signaled when no B slices are present in the picture associated with the PH. Claim: Signaling syntax elements that do not make sense should generally be avoided.

[0381] It is further claimed that: ph_inter_B_slice_allowed_flag provides a simple way to check if a picture is a B-picture. It is asserted that otherwise this would require checking if there are any slices in the picture with slice_type equal to B. It is also claimed that: ph_inter_B_slice_allowed_flag provides some bit saving.

[0382] The specification text on top of JVET-Q2001-vC is provided with this contribution.

[0383] 1. Introduction

[0384] This contribution proposes ph_inter_B_slice_allowed_flag and makes several syntax elements in PH conditional on this flag. It also proposes to derive slice_type based on the values ​​of ph_inter_B_slice_allowed_flag, ph_inter_slice_allowed_flag, ph_intra_slice_allowed_flag and picture_header_in_slice_header_flag in certain cases.

[0385] ph_inter_B_slice_allowed_flag groups the syntax elements used only for bidirectional prediction in the PH in a similar way to what is done in the slice header. This allows preventing the signaling of syntax elements used only for bidirectional prediction when no B slices are present in the picture associated with the PH. We believe that signaling syntax elements that do not make sense should generally be avoided.

[0386] ph_inter_B_slice_allowed_flag also provides a simple way to check if a picture is a B-picture. Otherwise, this would require checking that at least one slice in the picture has slice_type equal to B. This flag also effectively prevents enabling bidirectional prediction tools when they may not be used for the picture. Another benefit is that this flag provides some bit savings.

[0387] 2. Proposal

[0388] The following changes are proposed to the VVC specification:

[0389] 1. When ph_inter_slice_allowed_flag is equal to 1, the flag ph_inter_B_slice_allowed_flag is signaled in the PH and the presence of ph_collocated_from_l0_flag, mvd_l1_zero_flag, ph_disable_bdof_flag, and ph_disable_dmvr_flag are conditioned so that they are not present when ph_inter_B_slice_allowed_flag is equal to 0. In addition, the presence of pred_weight_table() in the PH is conditioned as follows, with underlined text added:

[0390] If((pps_weighted_pred_flag|| ( pps_weighted_bipred_flag &&ph_inter_B_ slice_allowed_flag) )&&wp_info_in_ph_flag)pred_weight_table()

[0391] 2. slice_type is signaled in the slice header only if ph_inter_slice_allowed_flag is equal to 1 and picture_header_in_slice_header_flag is equal to 0 and one of ph_intra_slice_allowed_flag or ph_inter_B_slice_allowed_flag is equal to 1, otherwise slice_type is inferred as:

[0392] a. If ph_inter_slice_allowed_flag is equal to 0, slice_type is inferred to be 2 (I slice).

[0393] b. If ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, slice_type is inferred to be 1 (P slice).

[0394] c. If ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1, slice_type is inferred to be 0 (B slice).

[0395] The proposed syntax and semantics based on JVET-Q2001-vC are shown below, with underlined text added and text in italics and double brackets removed.

[0396] 2.1 Signaling ph_inter_B_slice_allowed_flag in PH

[0397]

[0398]

[0399] ph_inter_slice_allowed_flag equal to 0 specifies that all coded slices of the picture have slice_type equal to 2. ph_inter_slice_allowed_flag equal to 1 specifies that one or more coded slices with slice_type equal to 0 or 1 may or may not be present in the picture.

[0400] ph_intra_slice_allowed_flag is equal to 0 to specify [[all]] of the picture none The code piece has a value equal to [[0 or 1]] 2 ph_intra_slice_allowed_flag equal to 1 specifies that one or more coded slices with slice_type equal to 2 may or may not be present in the picture. When not present, the value of ph_intra_slice_allowed_flag is inferred to be equal to 1.

[0401] ph_inter_B_slice_allowed_flag equal to 0 specifies that there are no slice_inter_B_slice_allowed_flags with the value 0 in the picture. ph_inter_B_slice_allowed_flag is equal to 1 to specify that the slice may or may not exist in the picture. In one or more coded slices with slice_type equal to 0. When not present, ph_inter_B_slice_ allowed_flag is inferred to be equal to 0.

[0402] ph_collocated_from_l0_flag equal to 1 specifies that the co-located picture used for temporal motion vector prediction is derived from reference picture list 0. ph_collocated_from_l0_flag equal to 0 specifies that the co-located picture used for temporal motion vector prediction is derived from reference picture list 1. When not present, ph_collocated_from_l0_flag is pushed It is considered equal to 1.

[0403] mvd_l1_zero_flag equal to 1 indicates that the mvd_coding(x0, y0, 1) syntax structure is not parsed and MvdL1[x0][y0][compIdx] and MvdCpL1[x0][y0][cpIdx][compIdx] are set equal to 0 for compIdx=0..1 and cpIdx=0..2. When ph_inter_B_slice_allowed_flag is equal to 1 mvd_l1_zero_flag equal to 0 indicates parsing the mvd_coding(x0, y0, 1) syntax structure. When not present, mvd_l1_zero_flag is inferred to be equal to 0.

[0404] 2.2 Export of slice_type

[0405]

[0406]

[0407] slice_type specifies the coding type of the slice according to Table 9.

[0408] Table 9 - Name associations with slice_type

[0409] slice_type The name of slice_type 0 B(B film) 1 P(P film) 2 I (I piece)

[0410] When it does not exist, Apply the following:

[0411] a. If ph_inter_slice_allowed_flag is equal to 0, then The value of slice_type is inferred to be equal to 2.

[0412] b. Otherwise, if ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_ If allowed_flag is equal to 0, the value of slice_type is inferred to be equal to 1.

[0413] c. Otherwise (ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_ flag is equal to 1), the value of slice_type is inferred to be equal to 0.

[0414] When ph_intra_slice_allowed_flag is equal to 0, the value of slice_type shall be equal to 0 or 1. When ph_ When inter_B_slice_allowed_flag is equal to 0, the value of slice_type shall be equal to 1 or 2. When nal_unit_type is in the range of IDR_W_RADL to CRA_NUT (inclusive) and vps_independent_layer_fag[GeneralLayerIdx[nuh_layer_id]] is equal to 1, slice_type shall be equal to 2.

[0415] 3. Inference table

[0416] The following table shows how slice_type is inferred in this proposal based on the text in Section 2.2 of the above contribution proposal.

[0417]

[0418] Although various embodiments are described herein, it should be understood that they are presented by way of example only and not limitation. Therefore, the breadth and scope of the present disclosure should not be limited by any of the above exemplary embodiments. In addition, any combination of the above elements with all possible variations thereof is included in the present disclosure, unless otherwise indicated or otherwise clearly conflicting with the context.

[0419] Additionally, although the processes described above and shown in the accompanying drawings are shown as a series of steps, this is for illustrative purposes only. Therefore, it is contemplated that some steps may be added, some steps may be omitted, the order of steps may be rearranged, and some steps may be performed in parallel.

Claims

1. A method (700) for decoding a slice in a coded picture from a bitstream, the method comprising: Decoding a first codeword from the bitstream to obtain a value of the first codeword, wherein the value of the first codeword indicates whether the coded picture can contain a bidirectional inter-frame coded segment; deriving the one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain the one or more parameter values, or (b) inferring the one or more parameter values, based on the value of the first codeword; and Based on the one or more parameter values, a segment in the encoded picture is decoded.

2. The method according to claim 1, wherein: The first codeword is decoded from a picture header structure associated with the coded picture.

3. The method according to claim 2, wherein: The picture header structure is included in a picture header network abstraction layer NAL unit or in a slice header of the slice.

4. The method according to any one of claims 1 to 3, wherein: The first codeword is decoded from a portion of the bitstream other than the segment.

5. The method according to any one of claims 1 to 3, wherein: The first codeword is decoded from decoding capability information, an access unit delimiter, or a parameter set.

6. The method according to any one of claims 1 to 3, wherein: The first codeword is decoded by decoding a sequence parameter set, a video parameter set, or a coded picture parameter set.

7. The method according to any one of claims 1 to 3, wherein: The first codeword is decoded from a portion of the bit stream other than an access unit delimiter.

8. The method according to any one of claims 1 to 3, wherein: The segment has a segment type, and one or more of the one or more parameter values ​​indicates the segment type of the segment.

9. The method according to claim 8, wherein: The segment type indicates whether the segment is an intra-coded segment, a unidirectional inter-coded segment, or a bidirectional inter-coded segment.

10. The method according to any one of claims 1 to 3, further comprising: Decoding a second codeword from the bitstream to obtain a value of the second codeword, wherein the value of the second codeword indicates whether the coded picture can contain an intra-coded segment; and deriving the one or more parameter values ​​based on the values ​​of the first codeword and the second codeword.

11. The method according to claim 10, further comprising: A third codeword is decoded from the bitstream to obtain a value of the third codeword, wherein the value of the third codeword indicates whether the coded picture can contain an inter-coded segment; and deriving the one or more parameter values ​​is also based on the value of the third codeword.

12. The method according to claim 10, further comprising: A third codeword is decoded from the bitstream to obtain a value of the third codeword, wherein the value of the third codeword indicates whether the coded picture can contain a unidirectionally predicted inter-frame coded segment; and deriving the one or more parameter values ​​is also based on the value of the third codeword.

13. The method according to claim 11 or 12, wherein: At least one of the second codeword and the third codeword is decoded from a picture header structure, decoding capability information, an access unit delimiter, or a parameter set associated with the coded picture.

14. The method according to claim 11 or 12, wherein: At least one of the second codeword and the third codeword is decoded from a sequence parameter set, a video parameter set, or a picture parameter set.

15. The method according to claim 11, wherein: The segment has a segment type, and deriving the one or more parameter values ​​includes: if (i) the value of the first codeword indicates that the coded picture does not contain a bidirectional inter-frame coded segment, (ii) the value of the second codeword indicates that the coded picture does not contain an intra-frame coded segment, and (iii) the third codeword indicates that the coded picture can contain an inter-frame coded segment, then inferring one or more parameter values ​​indicating that the segment type is a unidirectional inter-frame coded segment for one or more values ​​specifying that the segment is a unidirectional inter-frame coded segment.

16. The method according to claim 11, wherein: The segment has a segment type, and deriving the one or more parameter values ​​comprises: If the value of the third codeword indicates that the coded picture does not include an inter-coded slice, inferring one or more parameter values ​​indicating that the slice type is an intra-coded slice for one or more values ​​specifying that the slice is an intra-coded slice; If (i) the value of the third codeword indicates that the coded picture can contain inter-coded slices, and (ii) the value of the first codeword indicates that the coded picture does not contain bidirectional inter-coded slices, inferring one or more parameter values ​​indicating that the slice type is a unidirectional inter-coded slice for one or more values ​​specifying that the slice is a unidirectional inter-coded slice; and If (i) the value of the third codeword indicates that the coded picture can contain inter-frame coded slices, and (ii) the value of the first codeword indicates that the coded picture can contain bidirectional inter-frame coded slices, then for one or more values ​​specifying that the segment type is a bidirectional inter-frame coded segment, one or more parameter values ​​indicating that the segment type is a bidirectional inter-frame coded segment are inferred.

17. The method according to claim 15 or 16, wherein: The one or more parameter values ​​include slice_type.

18. The method according to any one of claims 11 to 12 and 15 to 16, further comprising: decoding a fourth codeword from the bitstream to obtain a value of the fourth codeword, wherein the value of the fourth codeword indicates whether a picture header structure associated with the coded picture is decoded from the same network abstraction layer NAL unit as the fragment or from a picture header NAL unit different from the fragment NAL unit; and deriving the one or more parameter values ​​is also based on the value of the fourth codeword.

19. The method according to claim 18, wherein: The fourth codeword is decoded from a slice header, decoding capability information, an access unit delimiter, or a parameter set such as a sequence parameter set, a video parameter set, or a picture parameter set in the slice.

20. The method according to claim 18, wherein: The fourth codeword is decoded from a picture parameter set.

21. The method according to claim 18, wherein: If the value of the fourth codeword indicates that a picture header structure associated with the coded picture was decoded from the same NAL unit as the slice, the one or more parameter values ​​are derived by inferring the one or more parameter values.

22. The method according to claim 18, wherein: If the value of the fourth codeword indicates that a picture header structure associated with the coded picture is decoded from a picture header NAL unit different from the slice NAL unit, the one or more parameter values ​​can be derived by decoding one or more parameters from the bitstream to obtain the one or more parameter values.

23. The method of any one of claims 1 to 3, 9, 11 to 12, 15 to 16, and 19 to 22, wherein: If the value of the first codeword indicates that the coded picture should not contain a bidirectional inter-coded segment, the one or more parameter values ​​are derived by decoding one or more parameters from the bitstream to obtain the one or more parameter values; and If the value of the first codeword indicates that the coded picture can contain bidirectional inter-coded segments, the one or more parameter values ​​are derived by inferring the one or more parameter values.

24. The method according to any one of claims 1 to 3, 9, 11 to 12, 15 to 16, and 19 to 22, wherein: Decoding the one or more parameters from the bitstream to obtain the one or more parameter values ​​includes decoding the one or more parameters from a picture header structure associated with the coded picture, a slice header of the slice, decoding capability information, an access unit delimiter, or a parameter set.

25. The method according to any one of claims 1 to 3, 9, 11 to 12, 15 to 16, and 19 to 22, wherein Decoding the one or more parameters from the bitstream to obtain the one or more parameter values ​​includes decoding the one or more parameters from a sequence parameter set, a video parameter set, or a picture parameter set.

26. The method according to any one of claims 1 to 3, 9, 11 to 12, 15 to 16, and 19 to 22, wherein The one or more parameters are one or more of: a flag for co-location from L0, a motion vector difference MVD L1 zero flag, a flag for enabling / disabling bidirectional optical flow BDOF, and a flag for enabling / disabling decoder motion vector refinement DMVR.

27. The method according to any one of claims 1 to 3, 9, 11 to 12, 15 to 16, and 19 to 22, wherein: The first codeword is a flag.

28. The method of claim 18, wherein: One or more of the second codeword, the third codeword, and the fourth codeword is a flag.

29. The method of claim 18, wherein: Two or more of the first codeword, the second codeword, the third codeword, and the fourth codeword are the same codeword.

30. The method of any one of claims 1 to 3, 9, 11 to 12, 15 to 16, 19 to 22, and 28 to 29, wherein The fragments are pieces.

31. The method according to claim 30, wherein: The slice has a slice type, and one or more of the one or more parameter values ​​indicates the slice type of the slice.

32. The method according to any one of claims 1 to 3, 9, 11 to 12, 15 to 16, 19 to 22, 28 to 29, and 31, wherein Inferring the one or more parameter values ​​includes inferring one or more values ​​that are constant values ​​or values ​​that are derived without decoding any of the one or more parameters from the bitstream.

33. The method according to any one of claims 1 to 3, 9, 11 to 12, 15 to 16, 19 to 22, 28 to 29, and 31, wherein The coded picture is (a) a coded picture that can contain a bidirectional inter-frame coded slice, the coded picture is a coded picture that can contain a slice of a type that specifies that the slice can contain a block predicted using bidirectional inter-frame prediction, or (b) a coded picture that does not contain a bidirectional inter-frame coded slice, the coded picture is a coded picture that does not contain any slice of a type that specifies that the slice can contain a block predicted using bidirectional inter-frame prediction.

34. The method of any one of claims 1 to 3, 9, 11 to 12, 15 to 16, 19 to 22, 28 to 29, and 31, wherein The coded picture is (a) a coded picture that can contain intra-frame coded slices, the coded picture is a coded picture that can contain slices of a type that specifies that the slices only contain blocks predicted using intra-frame prediction, or (b) a coded picture that does not contain intra-frame coded slices, the coded picture is a coded picture that does not contain any slices of a type that specifies that the slices only contain blocks predicted using intra-frame prediction.

35. The method of any one of claims 1 to 3, 9, 11 to 12, 15 to 16, 19 to 22, 28 to 29, and 31, wherein The coded picture is (a) a coded picture that can contain an inter-frame coded slice, the coded picture is a coded picture that can contain a slice of a type that specifies a slice that can contain blocks predicted using one or both of bidirectional inter-frame prediction and unidirectional inter-frame prediction, or (b) a coded picture that does not contain an inter-frame coded slice, the coded picture is a coded picture of any type that does not contain any block that the specified slice can contain predicted using bidirectional inter-frame prediction or unidirectional inter-frame prediction.

36. The method of any one of claims 1 to 3, 9, 11 to 12, 15 to 16, 19 to 22, 28 to 29, and 31, wherein The coded picture is (a) a coded picture that can contain a unidirectional inter-frame coded slice, the coded picture is a coded picture that can contain a slice of a type that specifies that a slice can contain a block predicted using unidirectional inter-frame prediction, or (b) a coded picture that does not contain a unidirectional inter-frame coded slice, the coded picture is a coded picture that does not contain any slice of a type that specifies that a slice can contain a block predicted using unidirectional inter-frame prediction.

37. An apparatus (304) for decoding a fragment in a coded picture from a bitstream, comprising: processing circuitry, and a memory storing a computer program which, when executed by the processing circuit, causes the apparatus to: Decoding a first codeword from a bitstream to obtain a value of the first codeword, wherein the value of the first codeword indicates whether a coded picture can contain a bidirectional inter-frame coded segment; deriving the one or more parameter values ​​by (a) decoding one or more parameters from the bitstream to obtain the one or more parameter values, or (b) inferring the one or more parameter values, based on the value of the first codeword; and Based on the one or more parameter values, a segment of the encoded picture is decoded.

38. A method (800) for decoding a slice in a coded picture from a bitstream, the method comprising: determining whether the coded picture can contain an inter-coded slice by decoding a first syntax element from a syntax structure in the bitstream; In response to determining that the coded picture can contain inter-coded segments, (i) determining whether the coded picture can contain intra-coded segments by decoding a second syntax element from a syntax structure in the bitstream, and (ii) determining whether the coded picture can contain bidirectional inter-coded segments by decoding a third syntax element from a syntax structure in the bitstream; In response to determining that the coded picture does not include an inter-coded segment, determining that the coded picture can include only intra-coded segments without decoding the second syntax element and without decoding the third syntax element; In response to determining that the coded picture can include a bidirectional inter-coded segment, deriving the one or more parameter values ​​by decoding one or more parameters from the bitstream to obtain the one or more parameter values; deriving the one or more parameter values ​​by inferring the one or more parameter values ​​in response to determining from decoding the third syntax element that the coded picture does not include a bidirectional inter coded segment; as well as The segment of the encoded picture is decoded using the one or more parameter values.

39. The method of claim 38, wherein: The one or more parameters include one or more of: a flag for co-location from L0, a motion vector difference MVD L1 zero flag, a flag for enabling / disabling bidirectional optical flow BDOF, and a flag for enabling / disabling decoder motion vector refinement DMVR.

40. The method according to claim 38 or 39, wherein: Inferring the one or more parameter values ​​includes inferring one or more of the following: (i) inferring the value of a flag from L0 to be equal to 1, (ii) inferring the value of a motion vector difference MVD L1 zero flag to be equal to 0; (iii) inferring the value of a flag for enabling / disabling bidirectional optical flow BDOF to be equal to a value indicating that BDOF is disabled, and (iv) inferring the value of a flag for enabling / disabling decoder motion vector refinement DMVR to be equal to a value indicating that DMVR is disabled.

41. The method according to claim 38 or 39, wherein: The syntax structure exists in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

42. The method of claim 38 or 39, further comprising: If (ph_inter_slice_allowed_flag && !picture_header_in_slice_header_flag && (ph_intra_slice_allowed_flag || ph_inter_B_slice_allowed_flag)) is true, the fourth syntax element indicating the slice type is decoded, Among them, ph_inter_slice_allowed_flag is the first syntax element, ph_intra_slice_allowed_flag is the second syntax element, ph_inter_B_slice_allowed_flag is the third syntax element, and picture_header_in_slice_header_flag is a syntax element indicating whether the syntax structure exists in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

43. The method according to claim 38 or 39, further comprising: The slice type value is inferred without decoding the corresponding slice type syntax element if the following conditions are not met: (ph_inter_slice_allowed_flag && !picture_header_in_slice_header_flag && (ph_intra_slice_allowed_flag || ph_inter_B_slice_allowed_flag)) is true, Among them, ph_inter_slice_allowed_flag is the first syntax element, ph_intra_slice_allowed_flag is the second syntax element, ph_inter_B_slice_allowed_flag is the third syntax element, and picture_header_in_slice_header_flag is a syntax element indicating whether the syntax structure exists in a picture header NAL unit of the coded picture or in a slice header of the coded picture.

44. The method of claim 43, wherein: If ph_inter_slice_allowed_flag is equal to 0, the slice type is inferred to be an intra-coded slice; If ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 0, the slice type is inferred to be a uni-directional inter-coded slice; and If ph_inter_slice_allowed_flag is equal to 1 and ph_inter_B_slice_allowed_flag is equal to 1, the slice type is inferred to be a bidirectional inter-coded slice.

45. The method of claim 38 or 39, wherein: The fragments are pieces.

46. ​​The method of claim 38 or 39, wherein: The one or more parameters include a prof_flag specifying whether prediction refinement using optical flow in an affine motion compensation process can be used when decoding the coded picture.

47. An apparatus (304) for decoding a fragment in a coded picture from a bitstream, comprising: processing circuitry, and a memory storing a computer program which, when executed by the processing circuit, causes the apparatus to: Determining whether a coded picture in the bitstream can contain an inter-coded slice by decoding a first syntax element from a syntax structure in the bitstream; In response to determining that the coded picture can contain inter-coded segments, (i) determining whether the coded picture can contain intra-coded segments by decoding a second syntax element from a syntax structure in the bitstream, and (ii) determining whether the coded picture can contain bidirectional inter-coded segments by decoding a third syntax element from a syntax structure in the bitstream; In response to determining that the coded picture does not include an inter-coded segment, determining that the coded picture can include only intra-coded segments without decoding the second syntax element and without decoding the third syntax element; In response to determining that the coded picture can include a bidirectional inter-coded segment, deriving the one or more parameter values ​​by decoding one or more parameters from the bitstream to obtain the one or more parameter values; deriving the one or more parameter values ​​by inferring the one or more parameter values ​​in response to determining from decoding the third syntax element that the coded picture does not include a bidirectional inter coded segment; as well as The slice of the encoded picture is decoded using the one or more parameter values.

48. A method (900) for encoding a segment in a picture into a bitstream, the method comprising: determining whether a coded picture will contain a bidirectional inter-coded segment; encoding a first codeword into the bitstream, wherein the encoded first codeword has a value indicating whether the coded picture will contain a bidirectional inter-coded segment; determining whether to encode one or more parameter values ​​into the bitstream based on a determination of whether the coded picture will contain a bidirectional inter-coded segment; If it is determined that the one or more parameter values ​​are to be encoded into the bitstream, encoding the one or more parameter values ​​into the bitstream; and The slice in the picture is encoded into the bitstream using the one or more parameter values.

49. An apparatus (302) for encoding a segment of a picture into a bitstream, comprising: processing circuitry, and a memory storing a computer program which, when executed by the processing circuit, causes the apparatus to: determining whether a coded picture can contain bidirectional inter-coded segments; encoding a first codeword into a bitstream, wherein the encoded first codeword has a value indicating whether the coded picture can contain a bidirectional inter-coded segment; determining whether to encode one or more parameter values ​​into the bitstream based on a determination of whether the coded picture can contain a bidirectional inter-coded segment; If it is determined that the one or more parameter values ​​are to be encoded into the bitstream, encoding the one or more parameter values ​​into the bitstream; and Using the one or more parameter values, a segment in the picture is encoded into the bitstream.

50. A method (1000) for encoding a slice of a current picture into a coded picture in a bitstream, the method comprising: Determining whether the coded picture can contain an inter-coded segment; encoding a first syntax element into the bitstream using a syntax structure, wherein the encoded first syntax element has a value indicating whether the coded picture can contain inter-coded segments; In response to determining that the coded picture can contain inter-coded segments, (i) determining whether the coded picture can contain intra-coded segments, (ii) encoding a second syntax element into the bitstream using a syntax structure, the second syntax element having a value indicating whether the coded picture will contain intra-coded segments, (iii) determining whether the coded picture can contain bidirectional inter-coded segments, and (iv) encoding a third syntax element into the bitstream using a syntax structure, the third syntax element having a value indicating whether the coded picture can contain bidirectional inter-coded segments; In response to determining that the coded picture does not include an inter-coded segment, (i) determining that the coded picture will include only intra-coded segments, and (ii) determining not to encode the second syntax element and the third syntax element into the bitstream; In response to determining that the coded picture can contain a bidirectional inter-coded segment, encoding one or more parameter values ​​into the bitstream; In response to determining from encoding the third syntax element that the coded picture does not include a bidirectional inter-coded segment, determining not to encode the one or more parameter values ​​into the bitstream; and The segment of the current picture is encoded into the bitstream using the one or more parameter values.

51. An apparatus (302) for encoding a segment of a current picture into a coded picture in a bitstream, comprising: processing circuitry, and a memory storing a computer program which, when executed by the processing circuit, causes the apparatus to: Determining whether a coded picture can contain inter-coded segments; encoding a first syntax element into a bitstream using a syntax structure, wherein the encoded first syntax element has a value indicating whether the coded picture can contain inter-coded segments; In response to determining that the coded picture can contain inter-coded segments, (i) determining whether the coded picture can contain intra-coded segments, (ii) encoding a second syntax element into the bitstream using a syntax structure, the second syntax element having a value indicating whether the coded picture will contain intra-coded segments, (iii) determining whether the coded picture can contain bidirectional inter-coded segments, and (iv) encoding a third syntax element into the bitstream using a syntax structure, the third syntax element having a value indicating whether the coded picture can contain bidirectional inter-coded segments; In response to determining that the coded picture does not include an inter-coded segment, (i) determining that the coded picture will include only intra-coded segments, and (ii) determining not to encode the second syntax element and the third syntax element into the bitstream; In response to determining that the coded picture can contain a bidirectional inter-coded segment, encoding one or more parameter values ​​into the bitstream; In response to determining from encoding the third syntax element that the coded picture does not include a bidirectional inter-coded segment, determining not to encode the one or more parameter values ​​into the bitstream; and A segment of the current picture is encoded into the bitstream using the one or more parameter values.

52. A computer program product comprising a computer program, which, when executed by a processor, implements the method of any one of claims 1 to 36, 38 to 46, 48, and 50.

53. A computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the method of any one of claims 1 to 36, 38 to 46, 48, and 50.

Citation Information

Patent Citations

  • Disabling inter-view prediction for reference picture list in video coding

    CN105075267A