Method, apparatus, and computer program for encoding video data
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TENCENT AMERICA LLC
- Filing Date
- 2025-06-19
- Publication Date
- 2026-05-29
AI Technical Summary
Existing video coding technologies, such as VVC Draft 7, face inefficiencies in signaling syntax elements for video slices, leading to overhead without considering slice-specific characteristics, particularly for intra- and inter-slices.
Implementing a method to signal pic_type_idc in the picture header to determine slice types, ensuring only relevant syntax elements are coded, reducing redundant signaling by inferring the presence or absence of specific elements based on slice types.
Reduces signaling overhead by dynamically adapting to slice types, optimizing video encoding and decoding efficiency.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Background technology]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 62 / 950,453, filed December 19, 2019, and U.S. Patent Application No. 17 / 026,748, filed September 21, 2020, both of which are incorporated herein by reference in their entireties.
[0002] Technical Field This disclosure relates generally to encoding / decoding and generally describes next-generation video coding techniques beyond High Efficiency Video Coding (HEVC), such as Versatile Video Coding (VVC). More specifically, this disclosure relates generally to methods and apparatus for picture header processing.
[0003] Background technology The proposed VVC Draft 7 includes a High Level Syntax (HLS) called the Picture Header, which contains syntax elements that apply to all slices of a coded picture, to avoid, for example, signaling syntax elements in the slice header that are constrained to have the same value for all slices of the picture.
[0004] Picture Parameter Set HLS specifies syntax elements that can be applied to lower-level coding tools. For example, the Coding Tree Unit (CTU) size may be specified at the sequence level or in a Sequence Parameter Set (SPS), which generally does not change from picture to picture. A typical HLS includes SPS, Picture Parameter Set (PPS), Picture Header (PH), Slice Header (SH), and Adaptive Parameter Set (APS).
[0005] The various HLSs involve levels of application, so commonly used syntax elements need not be coded repeatedly. For example, SPS specifies general syntax elements applicable to the sequence level. PH specifies general syntax elements applicable to the picture being coded, which can consist of one or more slices.
[0006] The syntax elements contained in the VVC Draft 7 PPS are described as follows: Table 1: Syntax elements included in the PPS of VVC Draft 7 [Table 1] JPEG2025134857000003.jpg254162 JPEG2025134857000004.jpg247165
[0007] As shown in Table 1 above, num_slices_in_pic_minus1 plus 1 specifies the number of rectangular slices in each picture that references the PPS. The value of num_slices_in_pic_minus1 is in the range from 0 to MaxSlicesPerPicture-1, inclusive. If no_pic_partition_flag is equal to 1, the value of num_slices_in_pic_minus1 can be inferred to be equal to 0.
[0008] As shown in Table 1 above, pps_mvd_l1_zero_idc equal to 0 specifies that the syntax element mvd_l1_zero_flag is present in the PH that references the PPS, and pps_mvd_l1_zero_idc equal to 1 or 2 specifies that mvd_l1_zero_flag is not present in the PH that references the PPS. Furthermore, pps_mvd_l1_zero_idc equal to 3 is reserved for future use by ITU-T / ISO / IEC.
[0009] As shown in Table 1 above, pps_collocated_from_l0 equal to 0 specifies that the syntax element collocated_from_10_flag is present in the slice header of the slice referencing the PPS, and pps_collocated_from_l0_idc equal to 1 or 2 specifies that the syntax element collocated_from_10_flag is not present in the slice header of the slice referencing the PPS. Furthermore, pps_collocated_from_l0_idc equal to 3 is reserved for future use by ITU-T / ISO / IEC.
[0010] As shown in Table 1 above, pps_six_minus_max_num_merge_cand_plus1 equal to 0 specifies that pic_six_minus_max_num_merge_cand is present in the PHS referencing the PPS, and pps_six_minus_max_num_merge_cand_plus1 greater than 0 specifies that pic_six_minus_max_num_merge_cand is not present in the PHS referencing the PPS. The value of pps_six_minus_max_num_merge_cand_plus1 is in the range 0 to 6, inclusive.
[0011] As shown in Table 1 above, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 equal to 0 specifies that pic_max_num_merge_cand_minus_max_num_triangle_cand is present in the PH of the slice that references the PPS, and pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 greater than 0 specifies that pic_max_num_merge_cand_minus_max_num_triangle_cand is not present in the PH that references the PPS. The value of pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is in the range from 0 to MaxNumMergeCand-1.
[0012] Slice Layer RBSP The slice layer RBSP may consist of a slice header and slice data. Table 2: Slice Layer RBSP [Table 2]
[0013] Picture and slice headers Syntax elements referenced by the current picture coded in the PPS may be overridden in the PH and SH, such that the pic_deblocking_filter_override_flag in the PH that references the PPS or the slice_deblocking_filter_override_flag in the SH that references the PPS is set. These syntax elements that are not present in the PH may instead be present in the SH. For example, if the value of pic_sao_enabled_present_flag, which specifies the presence of SAO-related syntax elements in the PH, is 0, the slice_sao_luma_flag and slice_sao_croma_flag may be coded in the SH to indicate the use of SAO for luma and chroma.
[0014] With the PH, syntax elements that are already constrained to be the same for all slices of a picture can be sent in the PH for each picture to avoid signaling overhead, especially when there are only a few slices in a picture. Nevertheless, syntax elements that often differ per slice can be conveyed in the SH to provide flexibility.
[0015] The syntax elements included in PH and SH of VVC Draft 7 are described in Tables 3 and 5 below. Table 3: General slice header syntax [Table 3] JPEG2025134857000007.jpg249162 JPEG2025134857000008.jpg251162 JPEG2025134857000009.jpg254162 JPEG2025134857000010.jpg241165 JPEG2025134857000011.jpg251165 JPEG2025134857000012.jpg241165 JPEG2025134857000013.jpg138168
[0016] As shown above and below, the slice type can specify the coding type of the slice according to Table 4 below: Table 4: slice_type [Table 4]
[0017] Access Unit Delimiter Access Unit The Network Abstraction Layer (NAL) Unit (AU) delimiter is used to indicate the start of an AU and the type of slice present in the coded picture within the AU that contains the AU. Currently, there is no normative decoding process associated with AU delimiters.
[0018] pic_type indicates that the values of slice_type for all slices of the coded picture within the AU containing the AU delimiter NAL unit are members of the set listed in Table 4 for the given value of pic_type. Values of pic_type may be equal to 0, 1, or 2 in the bitstream. Other values of pic_type are reserved for future use by ITU-T|ISO / IEC. Decoders conforming to this version may ignore reserved values of pic_type. Table 5: Interpretation of pic_type [Table 5]
[0019] Non-Patent Document [1] ("NPL 1") proposes a high-level control flag to indicate that a set of parameters is required for the covered low-level coding layer.
[0020] NPL 1 describes a method that requires all inter prediction related syntax elements or parameters to be signaled only if there is at least one inter coded slice or if there are sub-partitions in the picture, otherwise these syntax elements or parameters are not signaled.
[0021] In one embodiment described in NPL 1, a control flag in the picture header called pic_intra_only_flag is signaled to indicate whether all slices in a picture (or any kind of sub-partition of this picture) have only intra prediction (or non-inter related prediction). If this flag is true, only intra coding related syntax elements or parameters are signaled later in the picture header. Otherwise, if this flag is false, inter prediction related syntax elements or parameters are signaled. A syntax table reflecting this embodiment is given below: Table 6: First embodiment of NPL 1 [Table 6] JPEG2025134857000017.jpg119169
[0022] Another method of NPL 1 requires that all relevant syntax elements or parameters used only for intra slices or intra sub-partitions be signaled if no inter-coded slices or sub-partitions are present in the picture, otherwise these syntax elements or parameters are not signaled.
[0023] In another embodiment of NPL 1, a control flag in the picture header called pic_inter_only_flag is signaled to indicate whether all slices in a picture (or any kind of sub-partitions of this picture) have inter prediction (or non-intra related prediction). If this flag is true, no intra slice related syntax elements or parameters are signaled later in the picture header. Otherwise, if this flag is false, intra slices can be used in at least one of the slices or sub-partitions in the picture. The related syntax elements or parameters of the intra slices or sub-partitions will be signaled. A syntax table reflecting this embodiment is given below: Table 7: Second embodiment of NPL 1 [Table 7]
[0024] In the above method described in NPL 1, if a picture has its own type, such as being an intra picture or an inter picture, the above control flags pic_intra_only_flag and pic_inter_only_flag do not need to be signaled; their values can be derived from the picture type.
[0025] Also, if the current picture has a picture type such as an intra-only picture (if all slices in the picture are I-slices), pic_intra_only_flag can be inferred as true. In another example, if the current picture has a picture type such as an inter-only picture (if all slices in the picture are P or B-slices), pic_inter_only_flag can be inferred as true. In yet another example of NPL 1, if the current picture has a picture type that indicates both intra-slices and inter-slices are possible within the picture, both pic_intra_only_flag and pic_inter_only_flag can be inferred as false.
[0026] Problem PH may be signaled only once per picture to avoid signaling syntax elements that are common to slices within a picture, but this signaling may introduce overhead without taking into account syntax elements that are only used for intra-slices (I-slices) or inter-slices (B, P-slices). Summary of the Invention
[0027] Embodiments relate to methods, systems, and computer-readable media for video encoding / decoding, and more particularly to picture header processing. [Brief explanation of the drawings]
[0028] These and other objects, features and advantages will become apparent from the following detailed description of illustrative embodiments, which is to be read in connection with the accompanying drawings, in which various features of the drawings are not to scale, as the drawings are for clarity in facilitating the understanding of those skilled in the art in connection with the detailed description.
[0029] [Figure 1]FIG. 1 is a schematic diagram of a simplified block diagram of a communication system according to an embodiment.
[0030] [Figure 2] FIG. 1 is a schematic diagram of a simplified block diagram of a communication system according to an embodiment.
[0031] [Figure 3] 1 is a schematic diagram of a computer system according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0032] FIG. 1 shows a simplified block diagram of a communication system (100) according to an embodiment of the present disclosure. The system (100) may include at least two terminals (110-120) interconnected via a network (150). For unidirectional data transmission, a first terminal (110) can locally code video data for transmission to the other terminal (120) via the network (150). The second terminal (120) can receive the other terminal's coded video data from the network (150), decode the coded data, and display the recovered video data. Unidirectional data transmission is common in media serving applications, for example.
[0033] 1 illustrates a second pair of terminals (130, 140) provided to support bidirectional transmission of coded video, such as might occur during a video conference. For bidirectional transmission of data, each terminal (130, 140) can code video data captured at a local location for transmission to the other terminal over the network (150). Each terminal (130, 140) can also receive coded video data transmitted by the other terminal, decode the coded data, and display the recovered video data on a local display device.
[0034] In FIG. 1 , the terminals (110-140) may be depicted as servers, personal computers, and smartphones, although the principles of the present disclosure are not so limited. Embodiments of the present disclosure find application with laptop computers, tablet computers, media players, and / or dedicated video conferencing devices. The network (150) represents any number of networks that carry coded video data between the terminals (110-140), including, for example, wired and / or wireless communication networks. The communication network (150) may exchange data within circuit-switched and / or packet-switched channels. Exemplary networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For purposes of this description, the architecture and topology of the network (150) may not be important to the operation of the present disclosure, unless otherwise described below.
[0035] Figure 2 illustrates the placement of a video encoder and decoder in a streaming environment as an example application of the disclosed subject matter. The disclosed subject matter may be equally applicable to other video-enabled applications, including, for example, video conferencing, digital TV, storage of compressed video on digital media including CDs, DVDs, memory sticks, etc.
[0036] The streaming system may include a capture subsystem (213), which may include a video source (201), such as a digital camera, that generates an uncompressed video sample stream (202). This sample stream (202), shown as a thick line to emphasize its larger amount of data compared to an encoded video bitstream, may be processed by an encoder (203) coupled to the camera (201). The encoder (203) may include hardware, software, or a combination thereof, and may enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream (204), shown as a thin line to emphasize its smaller amount of data compared to the sample stream, may be stored on a streaming server (205) for future use. One or more streaming clients (206, 208) may access the streaming server (205) to retrieve copies (207, 209) of the encoded video bitstream (204). The client (206) may include a video decoder (210) that decodes an incoming copy of the encoded video bitstream (207) and generates an output video sample stream (211) that can be rendered on a display (212) or other rendering device (not shown). In some streaming systems, the video bitstreams (204, 207, 209) may be encoded according to a particular video coding / compression standard. Examples of these standards include ITU-T Recommendation H.265. Under development is a video coding standard informally known as Versatile Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.
[0037] In an embodiment, the syntax element pic_type_idc may be used to indicate the slice type for all slices of the coded picture.
[0038] In an embodiment, pic_type_idc may be coded using the unsigned integer zero-order Exp-Golomb coded syntax element (left bit first), where pic_type_idc may have three values 0, 1, and 2 and three statuses: I-slice only, B, P, I-slice, and B, P-slice. The values may be mapped to the statuses in any order. Table 8 below shows examples of possible pic_type_idc semantics. Table 8: Examples of possible pic_type_idc semantics [Table 8]
[0039] In an embodiment, pic_type_idc may be coded using an unsigned integer using 2 bits, where pic_type_idc can have, but is not necessarily limited to, three values: 0, 1, and 2, and three statuses: I-slice only, B, P, I-slice, and B, P-slice. Other values of pic_type_idc may be reserved for further definition. Table 9: Examples of possible pic_type_idc semantics [Table 9]
[0040] In an embodiment, the reserved pic_type_idc value 3 may indicate only P, I slices present in the coded picture.
[0041] In one example, pic_type_idc may be coded using an unsigned integer, e.g., using 2 bits, and pic_type_idc can have four values: 0, 1, 2, and 3, and four statuses: I-slice only, B, P, I-slice, B-slice, P-slice. Table 10: Examples of possible pic_type_idc semantics [Table 10]
[0042] It is proposed to signal pic_type_idc in HLS so that only relevant syntax elements are coded or present, reducing signaling overhead. For example, if pic_type_idc indicates that a picture is intra-only, inter-related syntax elements are not signaled.
[0043] In one example, pic_type_idc may be signaled in a PPS such that it specifies the slice type for all slices of each coded picture that references the PPS. Detailed syntax and semantics are given below. In the table below and other tables in this disclosure, changes compared to VVC Draft 7 are italicized. Table 11: Detailed syntax and semantics [Table 11] JPEG2025134857000023.jpg253162 JPEG2025134857000024.jpg253162 JPEG2025134857000025.jpg86166
[0044] Here, pic_type_idc specifies the slice type for all slices of each coded picture that references the PPS.
[0045] In one embodiment, pic_type_idc set equal to 1 indicates that each coded picture that references the PPS has only one or more I-slice. In such a case, the syntax elements pps_mvd_l1_zero_idc, pps_collocated_from_l0_idc, pps_six_minus_max_num_merge_cand_plus1 and The inter-slice (B, P slices) associated with pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is inferred to be equal to 0.
[0046] Here, pps_mvd_l1_zero_idc equal to 0 specifies that the syntax element mvd_l1_zero_flag is present in the PH referencing the PPS, and pps_mvd_l1_zero_idc equal to 1 or 2 specifies that mvd_l1_zero_flag is not present in the PH referencing the PPS. Furthermore, pps_mvd_l1_zero_idc equal to 3 is reserved for future use by ITU-T|ISO / IEC. If not present, pps_mvd_l1_zero_idc may be inferred to be 0.
[0047] Furthermore, pps_collocated_from_l0_idc equal to 0 specifies that the syntax element collocated_from_l0_flag is present in the slice header of the slice referencing the PPS. Furthermore, pps_collocated_from_l0_idc equal to 1 or 2 specifies that the syntax element pps_collocated_from_l0_flag is not present in the slice header of the slice referencing the PPS. pps_collocated_from_l0_idc equal to 3 is reserved for future use by ITU-T|ISO / IEC. If not present, pps_collocated_from_l0_idc may be inferred to be equal to 0.
[0048] Additionally, pps_six_minus_max_num_merge_cand_plus1 equal to 0 specifies that pic_six_minus_max_num_merge_cand is present in the PH that references the PPS. Furthermore, pps_six_minus_max_num_merge_cand_plus1 equal to 0 specifies that pic_six_minus_max_num_merge_cand is not present in the PH that references the PPS. The value of pps_six_minus_max_num_merge_cand_plus1 is in the range of 0 to 6. If not present, pps_six_minus_max_num_merge_cand_plus1 can be inferred to be equal to 0.
[0049] As shown, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 equal to 0 specifies that pic_max_num_merge_cand_minus_max_num_triangle_cand is present in the PH of the slice referencing the PPS. Also, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 greater than 0 specifies that pic_max_num_merge_cand_minus_max_num_triangle_cand is not present in the PH of the slice referencing the PPS. The value of pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is in the range from 0 to MaxNumMergeCand-1. If not present, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 can be inferred to be equal to 0. Table 12: Proposed Picture Header RBSP Syntax [Table 12] JPEG2025134857000027.jpg252162 JPEG2025134857000028.jpg251162 JPEG2025134857000029.jpg252162 JPEG2025134857000030.jpg253162 JPEG2025134857000031.jpg165166
[0050] For each coded picture that references a PPS, pic_type_idc is used to determine whether to parse syntax elements related to intra-slice (I slice) and inter-slice (B,P slice). For example, the intra-slice related syntax elements pic_log2_diff_min_qt_min_cb_intra_slice_luma, pic_max_mtt_hierarchy_depth_intra_slice_luma, pic_log2_diff_max_bt_min_qt_intra_slice_luma, pic_log2_diff_max_tt_min_qt_intra_slice_luma, pic_log2_diff_min_qt_min_cb_intra_slice_chroma, pic_max_mtt_hierarchy_depth_intra_slice_chroma, pic_log2_diff_max_bt_min_qt_intra_slice_chroma and pic_log2_diff_max_tt_min_qt_intra_slice_chroma are always decoded if and only if there are I slices associated with the PH. On the other hand, inter-slice related syntax elements are always decoded when inter-slice is present.
[0051] In one example, pic_type_idc is signaled in a PH such that it specifies the slice type for all slices of the coded picture associated with the PH. The detailed syntax and semantics are given below. Changes compared to VVC Draft 7 are in italics. Table 13: Proposed Picture Header RBSP Syntax [Table 13] JPEG2025134857000033.jpg250162 JPEG2025134857000034.jpg246162 JPEG2025134857000035.jpg251162 JPEG2025134857000036.jpg251162 JPEG2025134857000037.jpg213166
[0052] For each coded picture, pic_type_idc is used to determine whether to parse syntax elements related to intra-slice (I slice) and inter-slice (B, P slice) types. For example, the intra-slice related syntax elements pic_log2_diff_min_qt_min_cb_intra_slice_luma, pic_max_mtt_hierarchy_depth_intra_slice_luma,pic_log2_diff_max_bt_min_qt_intra_slice_luma,pic_log2_diff_max_tt_min_qt_intra_slice_luma,pic _log2_diff_min_qt_min_cb_intra_slice_chroma,pic_max_mtt_hierarchy_depth_intra_slice_chroma,pic_log2_diff_max_bt_min_qt_intra_slice_chroma and pic_log2_diff_max_tt_min_qt_intra_slice_chroma is always decoded if and only if there are I slices associated with the PH, whereas inter-slice related syntax elements are always decoded if there are inter-slices.
[0053] In one embodiment, the pic_type_idc may exist in both the PPS and PH that reference the PPS as pps_pic_type_idc and ph_pic_type_idc, respectively. Table 14: Proposed Picture Parameter Set RBSP Syntax [Table 14] JPEG2025134857000039.jpg252162 JPEG2025134857000040.jpg251162 JPEG2025134857000041.jpg213166
[0054] Here, pps_pic_type_idc specifies the slice type for all slices of each coded picture that references the PPS.
[0055] Furthermore, pps_mvd_l1_zero_idc equal to 0 specifies that the syntax element mvd_l1_zero_flag is present in the PH that references the PPS. Furthermore, pps_mvd_l1_zero_idc equal to 1 or 2 specifies that mvd_l1_zero_flag is not present in the PH that references the PPS. Furthermore, pps_mvd_l1_zero_idc equal to 3 is reserved for future use by ITU-T|ISO / IEC. If not present, pps_mvd_l1_zero_idc may be inferred to be equal to 0.
[0056] Furthermore, pps_collocated_from_l0_idc equal to 0 specifies that the syntax element collocated_from_l0_flag is present in the slice header of the slice referencing the PPS. Furthermore, pps_collocated_from_l0_idc equal to 1 or 2 specifies that the syntax element collocated_from_l0_flag is not present in the slice header of the slice referencing the PPS. Furthermore, pps_collocated_from_l0_idc equal to 3 is reserved for future use by ITU-T|ISO / IEC. If not present, pps_collocated_from_l0_idc may be inferred to be equal to 0.
[0057] Additionally, pps_six_minus_max_num_merge_cand_plus1 equal to 0 specifies that pic_six_minus_max_num_merge_cand is present in the PH that references the PPS. Furthermore, pps_six_minus_max_num_merge_cand_plus1 greater than 0 specifies that pic_six_minus_max_num_merge_cand is not present in the PH that references the PPS. The value of pps_six_minus_max_num_merge_cand_plus1 shall be in the range of 0 to 6. If not present, pps_six_minus_max_num_merge_cand_plus1 may be inferred to be equal to 0.
[0058] Additionally, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 equal to 0 specifies that pic_max_num_merge_cand_minus_max_num_triangle_cand is present in the PH of the slice that references the PPS. Furthermore, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 greater than 0 specifies that pic_max_num_merge_cand_minus_max_num_triangle_cand is not present in the PH of the slice that references the PPS. The value of pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 shall be in the range from 0 to MaxNumMergeCand-1. If not present, pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 can be inferred to be equal to 0.
[0059] If the value of pps_pic_type_idc indicates the presence of one type of slice (I or B or P slice, such as values 1, 2, 3 in Table 10), the value of pps_pic_type_idc may be inferred from the value of pps_pic_type_idc. Table 15: Proposed Picture Header RBSP Syntax [Table 15] JPEG2025134857000043.jpg252162 JPEG2025134857000044.jpg252162 JPEG2025134857000045.jpg251162 JPEG2025134857000046.jpg251162 JPEG2025134857000047.jpg97168
[0060] Here, ph_pic_type_idc specifies the slice type for all slices of each coded picture associated with the PH.
[0061] In one embodiment, ph_pic_type_idc equal to 1 indicates that each coded picture associated with the PH has only one or more I-slices. Table 16: Examples of possible pic_type_idc semantics [Table 16]
[0062] pps_pic_type_idc If ph_pic_type_idc is equal to 0 (B, P, I slices as in Table 10), the value of ph_pic_type_idc has the range from 0 to 2 inclusive. Otherwise, the value of ph_pic_type_idc can be inferred from (e.g., is identical to) pps_pic_type_idc. In this case, it is a bitstream conformance requirement that the value of ph_pic_type_idc be equal to that of pps_pic_type_idc.
[0063] In one example, the signaling of the syntax ph_pic_type_idc depends on (e.g., is constrained by) the value of pps_pic_type_idc. If the value of pps_pic_type_idc indicates the presence of both intra slices (I slices) and inter slices (B, P slices) in the coded picture, then ph_pic_type_idc may need to be signaled / parsed to indicate the slice type present in the picture associated with the picture header. Otherwise, if pps_pic_type_idc indicates the presence of only one slice type, then ph_pic_type_idc is not signaled / parsed, and it is inferred to be equal to (e.g., have the same as) the slice type of pps_pic_type_idc. In this case, it is a bitstream conformance requirement that the range of ph_pic_type_idc is not greater than the range of pps_pic_type_idc. Table 17: Proposed Picture Header RBSP Syntax [Table 17] JPEG2025134857000050.jpg252165 JPEG2025134857000051.jpg251165 JPEG2025134857000052.jpg251165 JPEG2025134857000053.jpg251165 JPEG2025134857000054.jpg15168
[0064] Here, ph_pic_type_idc specifies the slice type for all slices of each coded picture associated with the PH, and if pps_pic_type_idc is equal to 0, only ph_pic_type_idc may be present in the bitstream.
[0065] Furthermore, ph_pic_type_idc equal to 1 indicates that each coded picture associated with the PH has only one or more I slices. If pps_pic_type_idc is equal to 0 (B, P, I slices as in Table 8), the value of ph_pic_type_idc has a range from 0 to 2 inclusive. Otherwise, if ph_pic_type_idc is not present, it is inferred to be equal to pps_ph_type_idc as in Table 8.
[0066] In one embodiment, PH-related syntax elements are included in slice layer RBSP NAL units, and the ph_present_flag is used to indicate the presence of PH-related syntax in slice layer RBSP NAL units. Repetition of PH-related syntax signaling may have the advantage of error resilience and recovery. If a PH NAL unit is corrupted during transmission in some kind of network, the slice layer RBSP NAL unit can be recovered from the error due to the presence of PH in the slice layer RBSP NAL unit. Changes compared to VVC Draft 7 are in italics. Table 18: Proposed slice layer RBSP syntax [Table 18]
[0067] Here, ph_present_flag can be used to specify the presence of PH-related syntax in the slice layer RBSP. If ph_present_flag is equal to 1, PH-related syntax is present. If ph_present_flag is equal to 0, PH-related syntax is not present in the slice layer RBSP.
[0068] In one embodiment, if there is a pic_type decoded in the AU delimiter as described above, the signaling in the pic_type_idc HLS may be inferred from or constrained by the pic_type value.
[0069] In one embodiment, if pic_type is equal to 0 in Table 5 (which indicates an I-slice), it is a bitstream conformance requirement that the value of pic_type_idc specify that only intra slices are present in each picture. For example, if pic_type_idc is 1, then only intra slices are present.
[0070] In one example, if pic_type_idc is constrained to the value of pic_type, the range of values for pic_type_idc may depend on the value of pic_type. For example, if pic_type_idc has the values described in Table 10 and pic_type is equal to 1, the value of pic_type_idc may be 1 or 3. In another case, if pic_typie is equal to 2, the value of pic_type_idc is in the range from 0 to 3.
[0071] In one embodiment, if pic_type_idc is signaled in HLS, slice_type can be inferred by the method described above.
[0072] In one example, if pic_type_idc has a value indicating that only intra slices are present, slice_type can be inferred to be 2.
[0073] In one example, if pic_type_idc has a value indicating that only inter-slice is present, then the value of slice_type ranges from 0 to 1 inclusive. For example, if pic_type_idc has a value of 2 (B, P slice), then the possible values of slice_type are 0 and 1.
[0074] In one embodiment, the value of slice_type can be inferred from the values pic_type_idc and num_slices_in_pic_minus1.
[0075] If the value of pic_type_idc indicates that both intra-slice and inter-slice are present, it is a bitstream conformance requirement that the value of num_slices_in_pic_minus1 be greater than or equal to 1.
[0076] pic_type_idc A value of num_slices_in_pic_minus1 indicates that both intra-slices and inter-slices are present in the coded picture. It is possible for the value of to be 1 or greater.
[0077] If all previously coded slices are inter slices, the last slice may be an intra slice with slice_type equal to 2 (I slice).
[0078] If all previously coded slices are intra-slice, the last slice may be an inter-slice with a slice_type value in the range from 0 to 1 inclusive.
[0079] The proposed methods above can be implemented by processing circuitry (e.g., one or more processors, or one or more integrated circuits). In one example, the one or more processors execute a program stored on a non-transitory computer-readable medium to perform one or more of the proposed methods.
[0080] The techniques described above may be implemented as computer software using computer-readable instructions and may be physically stored on one or more computer-readable media. For example, Figure 3 illustrates a computer system 300 suitable for implementing certain embodiments of the disclosed subject matter.
[0081] Computer software may be coded using any suitable machine code or computer language that may be subject to assembly, compilation, linking, or similar mechanisms to create code that contains instructions that may be executed directly by a computer central processing unit (CPU), graphics processing unit (GPU), etc., or that may go through interpretation, microcode execution, etc.
[0082] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smart phones, gaming devices, Internet of Things devices, etc.
[0083] 3 for computer system 300 are exemplary in nature and are not intended to suggest any limitation on the scope of use or functionality of the computer software implementing embodiments of the present disclosure, nor should the arrangement of components be interpreted as having any dependency or requirement related to any one or combination of components illustrated in the exemplary embodiment of computer system 300.
[0084] The computer system 300 may include certain human interface input devices that may respond to input by one or more human users, for example, via tactile input (e.g., keystrokes, swipes, data glove movements), auditory input (e.g., voice, clapping), visual input (e.g., gestures), or olfactory input (not shown). Human interface devices may also be used to capture certain media that do not necessarily involve direct conscious human input, such as audio (e.g., speech, music, ambient sounds), images (e.g., scanned images, photographic images obtained from still-image cameras), and video (e.g., two-dimensional video, three-dimensional video, including stereoscopic video).
[0085] Input human interface devices may include one or more of (only one of each is depicted): a keyboard 301, a mouse 302, a trackpad 303, a touch screen 310, an associated graphics adapter 350, a data glove, a joystick 305, a microphone 306, a scanner 307, and a camera 308.
[0086] Computer system 300 may also include certain human interface output devices that may stimulate one or more of the human user's senses, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices can include haptic output devices (e.g., haptic feedback via a touch screen 310, data gloves, joystick 305, although there may be haptic feedback devices that do not serve as input devices), auditory output devices (e.g., speakers 309, headphones (not shown)), visual output devices (e.g., screens 310, including cathode ray tube (CRT) screens, liquid crystal display (LCD) screens, plasma screens, and organic light emitting diode (OLED) screens, each with or without touch screen input capability, each with or without haptic feedback capability, some of which may be capable of outputting two-dimensional visual output, three- or more-dimensional output by means such as stereoscopic output; virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).
[0087] The computer system 300 may also include human-accessible storage devices and their associated media, such as optical media 321, including CD / DVD ROM / RW 920 using media such as CD / DVDs 321, thumb drives 322, removable hard drives or solid state drives 323, legacy magnetic media such as tape and floppy disks (not shown), and specialized ROM / ASIC / PLD-based devices such as security dongles (not shown).
[0088] Those skilled in the art will also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other transitional signals.
[0089] The computer system 300 may also include interfaces to one or more communication networks. The networks may be, for example, wireless, wired, or optical. The networks may further be local, wide area, metropolitan, vehicular, and industrial, real-time, delay-tolerant, etc. Examples of networks include Ethernet, wireless LANs, cellular networks (including Global System for Mobile Communications (GSM), 3rd Generation (3G), 4th Generation (4G), 5th Generation (5G), Long Term Evolution (LTE), etc.), TV wired or wireless wide area digital networks (including cable TV, satellite TV, and terrestrial TV), vehicular, and industrial networks including CANBus, etc. Particular networks typically require an external network interface adapter (354) attached to a particular general-purpose data port or peripheral bus (349) (e.g., a universal serial bus (USB) port on the computer system 300); others are commonly integrated into the core of the computer system 300 by attaching to a system bus, as described below (e.g., an Ethernet interface is integrated in a PC computer system, and a cellular network interface is integrated in a smartphone computer system). As an example, a network 355 may be connected to the peripheral bus 349 using a network interface 354. Using any of these networks, the computer system 300 can communicate with other entities. Such communications can be one-way receive-only (e.g., broadcast television), one-way transmit-only (e.g., a CANbus to certain CANbus devices), or bidirectional, e.g., to other computer systems using local or wide-area digital networks. Specific protocols and protocol stacks, as described above, can be used with each of these networks and network interfaces.
[0090] The aforementioned human interface devices, human accessible storage devices, and network interfaces may be attached to core 340 of computer system 300 .
[0091] The core 340 may include one or more central processing units (CPUs) 341, graphics processing devices (GPUs) 342, specialized programmable processing devices in the form of field programmable gate arrays (FPGAs) 343, task-specific hardware accelerators 344, etc. These devices, along with read-only memory (ROM) 345, random access memory 346, and internal mass storage devices (e.g., internal non-user-accessible hard drives, solid-state drives (SSDs), etc.) 347, may be connected via a system bus 348. In some computer systems, the system bus 348 may be accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripheral devices may be attached directly to the core's system bus 348 or via a peripheral bus 349. Peripheral bus architectures include Peripheral Component Interconnect (PCI), USB, etc.
[0092] The CPU 341, GPU 342, FPGA 343, and accelerator 344 may combine to execute specific instructions that may constitute the aforementioned computer code. The computer code may be stored in ROM 345 or RAM 346. Temporary data may be stored in RAM 346, while persistent data may be stored in, for example, internal mass storage 347. Fast storage and retrieval from any memory device may be enabled through the use of cache memory, which may be closely associated with one or more of the CPU 341, GPU 342, mass storage 347, ROM 345, RAM 346, etc.
[0093] The computer-readable medium can have computer code thereon for performing various computer-implemented operations. The medium and computer code can be those specially designed and constructed for the purposes of the present disclosure, or they can be of the kind well known and available to those having skill in the computer software arts.
[0094] By way of example, and not limitation, architecture 300, and specifically a computer system having core 340, may provide functionality as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media may be media associated with user-accessible mass storage as described above, as well as specific storage of core 340 that is non-transitory in nature, such as core internal mass storage 347 or ROM 345. Software implementing various embodiments of the present disclosure may be stored in such devices and executed by core 340. Computer-readable media may include one or more memory devices or chips, depending on particular needs. The software may cause core 340, and particularly the processor therein (including a CPU, GPU, FPGA, etc.), to perform specific processes or portions of specific processes described herein, including defining data structures stored in RAM 346 and modifying such data structures according to processes defined by the software. Additionally or alternatively, a computer system may provide functionality as a result of logic hardwired or otherwise embodied in circuitry (e.g., accelerator 344), which may execute in place of or in conjunction with software to perform the particular processes or portions of particular processes described herein. References to software include logic, and vice versa, where appropriate. References to computer-readable media may include circuitry (such as an integrated circuit (IC)) that stores software for execution, circuitry embodying logic for execution, or both, as appropriate. The present disclosure encompasses any appropriate combination of hardware and software.
[0095] While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents that fall within the scope of this disclosure. It will thus be appreciated that those skilled in the art will be able to devise many systems and methods that, while not explicitly shown or described herein, embody the principles of the present disclosure and are therefore within its spirit and scope.
[0096] (Appendix 1) 1. A method of decoding video data, the method being performed by at least one processor: indicating slice types for all slices of a picture being coded using syntax elements, the syntax elements being coded using unsigned integers; decoding the video data based on the slice type indicated by the syntax element; A method comprising: (Appendix 2) 2. The method of claim 1, wherein only syntax elements relevant to the picture being coded are coded. (Appendix 3) The method of claim 2, wherein if all slices of the picture being coded are indicated to include intra prediction, no inter prediction syntax elements are coded. (Appendix 4) 4. A method according to any one of appendixes 1-3, wherein a picture header-related syntax element is included in a slice layer raw byte sequence payload network abstraction layer unit, and a flag is used to indicate the presence of the picture header-related syntax element in the slice layer raw byte sequence payload network abstraction layer unit. (Appendix 5) 5. The method of any one of claims 1 to 4, wherein the type of slice can be inferred from a decoded access unit delimiter value. (Appendix 6) 5. The method of any one of claims 1 to 4, wherein the type of slice can be inferred if signaled in a high level syntax. (Appendix 7) 5. The method of any one of Supplementary Notes 1-4, wherein the type of slice can be inferred based on the number of rectangular slices in the picture to be coded. (Appendix 8) 8. The method of any one of claims 1-7, wherein the syntax element is a zeroth-order Exp-Golomb coded syntax element. (Appendix 9) 8. The method of any one of claims 1-7, wherein the syntax element is a two-bit syntax element that can be set to three states. (Appendix 10) 8. The method of any one of appendixes 1-7, wherein the syntax element is a 2-bit syntax element that can be set to four states. (Appendix 11) 1. An apparatus for decoding video data, comprising: at least one memory configured to store computer program code; at least one processor configured to access said at least one memory and to operate according to said computer program code; the computer program code comprising: instruction code configured to cause the at least one processor to perform the step of indicating, with syntax elements, slice types for all slices of a picture to be coded, wherein the syntax elements are coded using unsigned integers; decoding code configured to decode the video data based on the slice type indicated by the syntax element; 1. An apparatus comprising: (Appendix 12) 12. The apparatus of claim 11, wherein the indication code is configured to indicate the type of the slice such that only relevant syntax elements are coded for the coded picture. (Appendix 13) The apparatus of Supplementary Note 12, wherein the indication code is configured to indicate the type of the slice such that if all slices of the picture being coded are indicated to include intra prediction, no inter prediction syntax elements are coded. (Appendix 14) 14. The apparatus of any one of appendixes 11-13, wherein a picture header-related syntax element is included in a slice layer raw byte sequence payload network abstraction layer unit, and the indication code is configured to indicate the type of the slice, such that a flag is used to indicate the presence of the picture header-related syntax element in the slice layer raw byte sequence payload network abstraction layer unit. (Appendix 15) 15. The apparatus of claim 11, wherein the indication code is configured to indicate the type of the slice, such that the type of the slice can be inferred from a decoded access unit delimiter value. (Appendix 16) 15. The apparatus of claim 11, wherein the indication code is configured to indicate the type of the slice, such that the type of the slice can be inferred if signaled in high-level syntax. (Appendix 17) The apparatus of any one of Supplementary Notes 11-14, wherein the indication code is configured to indicate the type of the slice, so that the type of the slice can be inferred based on the number of rectangular slices in the picture to be coded. (Appendix 18) 18. The apparatus of any one of appendixes 11-17, wherein the instruction code is configured such that the syntax element is a zeroth-order Exp-Golomb coded syntax element. (Appendix 19) 18. The apparatus of any one of appendixes 11-17, wherein the instruction code is configured such that the syntax element is a two-bit syntax element configurable with three statuses. (Appendix 20) At least one processor has indicating slice types for all slices of a picture being coded using syntax elements, the syntax elements being coded using unsigned integers; decoding the video data based on the slice type indicated by the syntax element; A computer program that runs. (Appendix 21) 1. A method for encoding video data, the method being performed by at least one processor: indicating slice types for all slices of a picture being coded using syntax elements, the syntax elements being coded using unsigned integers; encoding the video data based on the slice type indicated by the syntax element; A method comprising: [Prior art documents] [Non-patent literature]
[0097] [Non-Patent Document 1] IDF_10092019_high levelsyntax control for video coding_v2 [Explanation of symbols]
[0098] List of acronyms HLS: High level syntax HEVC: High Efficiency Video Coding VVC: Versatile Video Coding CTU: Coding Tree Unit SPS: Sequence Parameter Set PPS: Picture Parameter Set APS: Adaptive Parameter Set PH: Picture Header SH: Slice Header SAO: Sample Adaptive Offset2 AU: Access Unit NAL: Network Abstraction Layer RBSP: Raw Byte Sequence Payload
Claims
1. A method by which at least one processor of the encoder performs: The steps include determining the syntax element corresponding to the type of slice contained in the picture to be coded, The steps include: encoding video data using syntax elements corresponding to the slice type; A method comprising a slice layer raw byte sequence payload (RBSP) - network abstraction layer (NAL) unit including syntax elements related to the slice header of the slice, signaling by a flag whether syntax elements related to the picture header of a picture containing one or more of the slices exist, wherein the type of the slice is one of a first type, a second type, and a third type, the first type indicating an I slice, the second type indicating an I slice or a P slice, and the third type indicating an I slice, a P slice, or a B slice.
2. The method according to claim 1, wherein the type of slice is signaled with high-level syntax.
3. The method according to claim 1, wherein the syntax element corresponding to the type of slice is a zero-order Exp-Golomb coded syntax element.
4. The method according to claim 1, wherein the syntax element corresponding to the slice type is a 2-bit syntax element configurable with three statuses.
5. The method according to claim 1, wherein the syntax element corresponding to the slice type is a 2-bit syntax element configurable with four statuses.
6. A method by which at least one processor of the encoder performs: The steps include determining the syntax element corresponding to the type of slice contained in the picture to be coded, The steps include encoding video data using syntax elements corresponding to the slice type, The steps include transmitting the encoded bitstream of the video data from the encoder and A method comprising a slice layer raw byte sequence payload (RBSP) - network abstraction layer (NAL) unit including syntax elements related to the slice header of the slice, signaling by a flag whether syntax elements related to the picture header of a picture containing one or more of the slices exist, wherein the type of the slice is one of a first type, a second type, and a third type, the first type indicating an I slice, the second type indicating an I slice or a P slice, and the third type indicating an I slice, a P slice, or a B slice.
7. A computer program that causes a computer to perform the method described in any one of claims 1 to 6.
8. An encoding device configured to perform the method described in any one of claims 1 to 6.