Method, apparatus, and computer program for encoding video data
The introduction of a high-level syntax element to determine slice types in VVC Draft 7 addresses inefficiencies in signaling across all slices, enhancing decoding efficiency and reducing overhead by ensuring only relevant syntax elements are transmitted.
Patent Information
- Application Number
- JP2024152129
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-21
- Filing Date
- 2024-09-04
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2040-12-18
AI Technical Summary
Existing video coding technologies, such as VVC Draft 7, face inefficiencies in signaling syntax elements that are common to all slices of a picture, leading to unnecessary overhead without considering the specific types of slices (I, B, P) within a picture.
Implementing a high-level syntax element (pic_type_idc) to determine the slice type for all slices of a coded picture, allowing only relevant syntax elements to be signaled, thereby reducing overhead and improving efficiency by ensuring intra-slice and inter-slice elements are decoded based on the slice type.
Reduces signaling overhead and enhances decoding efficiency by ensuring only necessary syntax elements are transmitted, improving error resilience and recovery in video encoding/decoding processes.
Smart Images

Figure 0007701537000055 
Figure 0007701537000056 
Figure 0007701537000057
Abstract
Description
Background Art
[0001] Cross - reference to Related Applications This application claims priority based on U.S. Provisional Patent Application No. 62 / 950,453 filed on December 19, 2019, and U.S. Patent Application No. 17 / 026,748 filed on September 21, 2020, the entireties of which are incorporated herein by reference.
[0002] Technical Field The present disclosure generally relates to encoding / decoding, and generally describes next - generation video coding technologies beyond HEVC (High Efficiency Video Coding), such as Versatile Video Coding (VVC). More specifically, the present disclosure generally relates to methods and apparatuses related to picture header processing.
[0003] Background Art The proposed VVC draft 7 includes a High - Level Syntax (HLS) called a picture header, which includes syntax elements that apply to all slices of the coded picture in order to avoid signaling the syntax elements in slice headers that are constrained to have the same value for all slices of a picture, for example.
[0004] Picture Parameter Set HLS specifies syntax elements applicable to lower-level coding tools. For example, the Coding Tree Unit (CTU) size may be specified at the sequence level or in the Sequence Parameter Set (SPS) and generally does not change for each picture. Typical HLS includes the SPS, Picture Parameter Set (PPS), Picture Header (PH), Slice Header (SH), and Adaptive Parameter Set (APS).
[0005] Various HLS includes the application level, and as a result, commonly used syntax elements do not need to be repeatedly coded. For example, the SPS specifies general syntax elements applicable at the sequence level. The PH specifies general syntax elements applicable to the coded picture, and the picture can be composed of one or more slices.
[0006] The syntax elements included in the PPS of VVC Draft 7 are described as follows: Table 1: Syntax Elements Included in the PPS of VVC Draft 7 [Table 1] JPEG0007701537000002.jpg254162 JPEG0007701537000003.jpg247165
[0007] As shown in Table 1 above, num_slices_in_pic_minus1 plus 1 specifies the number of rectangular slices of each picture that refers to the PPS. The value of num_slices_in_pic_minus1 is within the range of 0 to MaxSlicesPerPicture - 1, inclusive. When no_pic_partition_flag is equal to 1, it is possible to infer that the value of num_slices_in_pic_minus1 is 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 refers to the PPS. Also, pps_mvd_l1_zero_idc equal to 1 or 2 specifies that the mvd_l1_zero_flag is not present in the PH that refers to the PPS. Further, 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 that refers to the PPS. Also, 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 that refers to the PPS. Further, 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 exists in the PHS that references the PPS. Also, pps_six_minus_max_num_merge_cand_plus1 greater than 0 specifies that pic_six_minus_max_num_merge_cand does not exist in the PHS that references the PPS. The value of pps_six_minus_max_num_merge_cand_plus1 is within the range of 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 exists in the PH of the slice that references 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 does not exist in the PH that references the PPS. The value of pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is within the range of 0 to MaxNumMergeCand - 1.
[0012] Slice layer RBSP The slice layer RBSP can be composed of a slice header and slice data. Table 2: Slice layer RBSP [Table 2]
[0013] Picture header and slice header The syntax elements that the current picture refers to and are coded in the PPS may be overridden in the PH and SH such that the pic_deblocking_filter_override_flag in the PH referring to the PPS or the slice_deblocking_filter_override_flag in the SH referring to the PPS is set. These syntax elements that do not exist in the PH may instead exist in the SH. For example, in the PH, if the value of pic_sao_enabled_present_flag, which specifies the existence of SAO-related syntax elements, is 0, slice_sao_luma_flag and slice_sao_croma_flag may be coded in the SH to indicate the use of SAO in luma and chroma.
[0014] Using the PH, syntax elements that are already restricted to be the same for all slices of a picture to avoid signaling overhead, especially when there are only a few slices in the picture, can be sent in the PH for each picture. Nevertheless, often different syntax elements for each slice can be transmitted in the SH to provide flexibility.
[0015] The syntax elements included in the PH and SH of VVC Draft 7 are described in Tables 3 and 5 below. Table 3: General Slice Header Syntax [Table 3] JPEG0007701537000006.jpg249162 JPEG0007701537000007.jpg251162 JPEG0007701537000008.jpg254162 JPEG0007701537000009.jpg241165 JPEG0007701537000010.jpg251165 JPEG0007701537000011.jpg241165 JPEG0007701537000012.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 AU delimiter Network Abstraction Layer (NAL) unit is used to indicate the type of slices present in a coded picture and the start of an AU, including 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 in 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 are permitted to 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 group 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 within 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 the picture (or any type 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. The syntax table reflecting this embodiment is given as follows: Table 6: The First Embodiment of NPL 1
Table 6
[0022] In another method of NPL 1, all relevant syntax elements or parameters used only for intra slices or intra sub-partitions are required to be signaled if there are no inter-coded slices or if there are sub-partitions within the picture. Otherwise, these syntax elements or parameters are not signaled.
[0023] In another embodiment of NPL 1, for all slices in a picture (or any kind of sub - partition of this picture) to indicate whether they have inter - prediction (or non - intra - related prediction), a control flag in the picture header called pic_inter_only_flag is signaled. If this flag is true, intra - slice - related syntax elements or parameters are not signaled later in the picture header. Otherwise, if this flag is false, an intra - slice 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 - slice or sub - partition will be signaled. The syntax table reflecting this embodiment is given below: Table 7: Second Embodiment of NPL 1 [Table 7]
[0024] In the above - described method according to NPL 1, when a picture has its own type such as an intra - picture or an inter - picture, the above - mentioned control flags pic_intra_only_flag and pic_inter_only_flag do not need to be signaled, and their values can be derived from the picture type.
[0025] Also, when the current picture has a picture type such as an intra-only picture (when all slices in the picture are I slices), pic_intra_only_flag can be inferred as true. In another example, when the current picture has a picture type such as an inter-only picture (when 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, when the current picture has a picture type indicating that 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] Problems To avoid signaling syntax elements common to slices within a picture, PH may be signaled only once per picture. However, this signaling may introduce overhead without considering syntax elements used only for intra slices (I slices) or inter slices (B, P slices). Summary of the Invention
[0027] Embodiments relate to a method, system, and computer-readable medium for video encoding / decoding, and more particularly to picture header processing. Brief Description of the Drawings
[0028] These and other objects, features, and advantages will become apparent from the following detailed description of exemplary embodiments, read in conjunction with the accompanying drawings. The various features of the drawings are not to scale as the drawings are provided to clarify when read in conjunction with the detailed description to facilitate understanding by those skilled in the art.
[0029]
Figure 1
[0030]
Figure 2
[0031]
Figure 3
Best Mode for Carrying Out 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, the first terminal (110) can code video data at a local location for transmission to the other terminal (120) via the network (150). The second terminal (120) can receive the coded video data of the other terminal from the network (150), decode the coded data, and display the restored video data. Unidirectional data transmission is common in media serving applications and the like.
[0033] FIG. 1 shows, for example, a second pair of terminals (130, 140) provided to support the bidirectional transmission of coded video that may occur during a video conference. For bidirectional data transmission, each terminal (130, 140) can code video data captured at a local location for transmission to the other terminal via the network (150). Each terminal (130, 140) can also receive the coded video data transmitted by the other terminal, decode the coded data, and display the restored video data on a local display device.
[0034] In FIG. 1, the terminals (110-140) may be illustrated as servers, personal computers, and smart phones, but the principles of the present disclosure need not be limited thereto. Embodiments of the present disclosure have found applications 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) can exchange data within circuit-switched and / or packet-switched channels. Representative networks include communication networks, local area networks, wide area networks, and / or the Internet. For the 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] FIG. 2 shows the arrangement of video encoders and decoders in a streaming environment as an application example of the disclosed subject matter. It is possible to assume that the disclosed subject matter is equally applicable to other video-related applications, including, for example, storage of compressed video in digital media such as video conferencing, digital TV, CD, DVD, memory sticks, etc.
[0036] A streaming system may include a capture subsystem (213) that can include a video source (201), such as a digital camera, that generates, for example, an uncompressed video sample stream (202). This sample stream (202) is shown as a thick line to emphasize the large amount of data when compared to an encoded video bitstream, and it can be processed by an encoder (203) coupled to the camera (201). The encoder (203) includes hardware, software, or a combination thereof and can operate or implement aspects of the disclosed subject matter as will be described in more detail below. The encoded video bitstream (204), shown as a thin line to emphasize the smaller amount of data when compared to the sample stream, can be stored in a streaming server (205) for future use. One or more streaming clients (206, 208) can access the streaming server (205) to retrieve a copy (207, 209) of the encoded video bitstream (204). The client (206) can 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) can be encoded according to a particular video coding / compression standard. Examples of these standards include ITU-T Recommendation H.265. One under development is a video coding standard informally known as Versatile Video Coding (VVC). The disclosed subject matter can be used in the context of VVC.
[0037] In an embodiment, the syntax element pic_type_idc can be used to indicate the slice type for all slices of a coded picture.
[0038] In an embodiment, pic_type_idc can be coded using unsigned integer zero-order Exp-Golomb coding (left bit first) of the syntax element. Here, pic_type_idc can have three values 0, 1, and 2, and three statuses: only I slices, B, P, I slices, and B, P slices. The values can 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 with 2 bits. Here, pic_type_idc can have three values 0, 1, and 2 and three statuses: only I slices, B, P, I slices, and B, P slices, but is not necessarily limited to these. 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 can indicate only the P and I slices present in the coded picture.
[0041] In one example, pic_type_idc may be coded using, for example, an unsigned integer with 2 bits. Also, pic_type_idc can have four values 0, 1, 2, and 3 and four statuses: only I slices, B, P, I slices, B slices, P slices. 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 the relevant syntax elements are coded or present to reduce signaling overhead. For example, if pic_type_idc indicates that the picture is intra only, the inter-related syntax elements are not signaled.
[0043] In one example, pic_type_idc may be signaled in the PPS so as to specify the slice type for all slices of each picture that it references and is coded. The detailed syntax and semantics are given below. In the following table and other tables in this disclosure, the changes compared to VVC draft 7 are in italics. Table 11: Detailed syntax and semantics [Table 11] JPEG0007701537000022.jpg253162 JPEG0007701537000023.jpg253162 JPEG0007701537000024.jpg86166
[0044] Here, pic_type_idc specifies the slice type for all slices of each coded picture that refers to the PPS.
[0045] In one embodiment, pic_type_idc set equal to 1 indicates that each coded picture that refers to the PPS has only one or more I slices. In such a case, the inter-slice (B, P slices) related to the syntax elements pps_mvd_l1_zero_idc, pps_collocated_from_l0_idc, pps_six_minus_max_num_merge_cand_plus1 and pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is presumed to be equal to 0.
[0046] Here, pps_mvd_l1_zero_idc equal to 0 specifies that the syntax element mvd_l1_zero_flag exists in the PH that refers to the PPS. Also, pps_mvd_l1_zero_idc equal to 1 or 2 specifies that mvd_l1_zero_flag does not exist in the PH that refers to the PPS. Further, pps_mvd_l1_zero_idc equal to 3 is reserved for future use by ITU-T|ISO / IEC. If it does not exist, pps_mvd_l1_zero_idc may be presumed 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 that refers to the PPS. Also, 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 that refers to the PPS. pps_collocated_from_l0_idc equal to 3 is reserved for future use by ITU-T|ISO / IEC. If it does not exist, pps_collocated_from_l0_idc may be assumed to be equal to 0.
[0048] Also, 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 refers to 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 refers to the PPS. The value of pps_six_minus_max_num_merge_cand_plus1 is within the range of 0 to 6. If it does not exist, it is possible to assume that pps_six_minus_max_num_merge_cand_plus1 is 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 exists in the PH of the slice that refers to 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 does not exist in the PH of the slice that refers to the PPS. The value of pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is within the range from 0 to MaxNumMergeCand - 1. If it does not exist, it is possible to assume that pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is equal to 0. Table 12: Proposed Picture Header RBSP Syntax [Table 12] JPEG0007701537000026.jpg252162 JPEG0007701537000027.jpg251162 JPEG0007701537000028.jpg252162 JPEG0007701537000029.jpg253162 JPEG0007701537000030.jpg165166
[0050] For each coded picture that references PPS, pic_type_idc is used to determine whether to parse the syntax elements related to intra slices (I slices) and inter slices (B, P slices). 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 only when there is an I slice related to PH. On the other hand, the inter-slice related syntax elements are always decoded when there is an inter slice.
[0051] In one example, pic_type_idc is signaled in PH such that it specifies the slice type for all slices of the coded picture associated with PH. The detailed syntax and semantics are given below. The changes compared to VVC draft 7 are italicized. Table 13: Proposed picture header RBSP syntax
Table 13
[0052] For each coded picture, pic_type_idc is used to determine whether to parse the syntax elements related to intra slices (I slices) and inter slices (B, P slices). 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 only when there is an I slice related to PH. On the other hand, the inter slice related syntax elements are always decoded when there is an inter slice.
[0053] In one embodiment, pic_type_idc may exist as pps_pic_type_idc and ph_pic_type_idc respectively in both the PPS referring to the PPS and the PH. Table 14: Proposed Picture Parameter Set RBSP Syntax
Table 14
[0054] Here, pps_pic_type_idc specifies the slice type for all slices of each coded picture that refers to the PPS.
[0055] Also, pps_mvd_l1_zero_idc equal to 0 specifies that the syntax element mvd_l1_zero_flag is present in the PH that refers to the PPS. Further, pps_mvd_l1_zero_idc equal to 1 or 2 specifies that mvd_l1_zero_flag is not present in the PH that refers to the PPS. Further, 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 assumed to be equal to 0.
[0056] Also, 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 that refers to the PPS. Further, 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 that refers to the PPS. Further, 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 assumed to be equal to 0.
[0057] Also, pps_six_minus_max_num_merge_cand_plus1 equal to 0 specifies that pic_six_minus_max_num_merge_cand exists in the PH that refers to the PPS. Further, pps_six_minus_max_num_merge_cand_plus1 greater than 0 specifies that pic_six_minus_max_num_merge_cand does not exist in the PH that refers to the PPS. The value of pps_six_minus_max_num_merge_cand_plus1 shall be within the range from 0 to 6. If it does not exist, pps_six_minus_max_num_merge_cand_plus1 may be presumed to be equal to 0.
[0058] Also, 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 exists in the PH of the slice that refers to the PPS. Further, 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 does not exist in the PH of the slice that refers to the PPS. The value of pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 shall be within the range from 0 to MaxNumMergeCand - 1. If it does not exist, it is possible to presume that pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 is equal to 0.
[0059] When the value of pps_pic_type_idc indicates the existence of one type of slice (I or B or P slice such as the 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] JPEG0007701537000042.jpg252162 JPEG0007701537000043.jpg252162 JPEG0007701537000044.jpg251162 JPEG0007701537000045.jpg251162 JPEG0007701537000046.jpg97168
[0060] Here, ph_pic_type_idc specifies the slice type for all slices of each coded picture associated with PH.
[0061] In one embodiment, ph_pic_type_idc equal to 1 indicates that each coded picture associated with PH has only one or more I slices. Table 16: Examples of Possible pic_type_idc Semantics [Table 16]
[0062] pps_pic_type_idc When equal to 0 (B, P, I slices as in Table 10), the value of ph_pic_type_idc has a range from 0 to 2 inclusive. Otherwise, the value of ph_pic_type_idc can be inferred from pps_pic_type_idc (e.g., the same). In this case, it is a requirement for bitstream compliance that the value of ph_pic_type_idc be equal to that of pps_pic_type_idc.
[0063] In one case, the signaling of the syntax ph_pic_type_idc depends on (e.g., is constrained by) the value of pps_pic_type_idc. When the value of pps_pic_type_idc indicates the presence of both intra-slices (I-slices) and inter-slices (B, P-slices) within the coded picture, ph_pic_type_idc may need to be signaled / parsed to indicate the slice type present in that picture associated with the picture header. Otherwise, when pps_pic_type_idc indicates the presence of only one slice type, ph_pic_type_idc is not signaled / parsed and is assumed to be equal to (e.g., have the same as) the slice type of pps_pic_type_idc. In this case, it is a requirement for bitstream compliance that the range of ph_pic_type_idc is not larger than the range of pps_pic_type_idc. Table 17: Proposed Picture Header RBSP Syntax [Table 17] JPEG0007701537000049.jpg252165 JPEG0007701537000050.jpg251165 JPEG0007701537000051.jpg251165 JPEG0007701537000052.jpg251165 JPEG0007701537000053.jpg15168
[0064] Here, ph_pic_type_idc specifies the slice type for all slices of each coded picture associated with the PH. Also, when pps_pic_type_idc is equal to 0, only ph_pic_type_idc may be present in the bitstream.
[0065] Furthermore, a ph_pic_type_idc equal to 1 indicates that each coded picture associated with the PH has only one or more I slices. When 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 including both ends. Otherwise, if ph_pic_type_idc does not exist, it is presumed to be equal to pps_ph_type_idc as in Table 8.
[0066] In one embodiment, the PH-related syntax element is included in the slice layer RBSP NAL unit, and ph_present_flag is used to indicate the presence of the PH-related syntax in the slice layer RBSP NAL unit. Repeating the PH-related syntax signaling may have the advantages of error resilience and error recovery. When the PH NAL unit is destroyed during transmission in some kind of network, the slice layer RBSP NAL unit can recover from the error due to the presence of PH in the slice layer RBSP NAL unit. The changes in comparison with 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 the PH-related syntax in the slice layer RBSP. When ph_present_flag is equal to 1, the PH-related syntax exists. When ph_present_flag is equal to 0, the PH-related syntax does not exist in the slice layer RBSP.
[0068] In one embodiment, when there is a pic_type to be decoded in the AU delimiter as described above, the signaling in the pic_type_idc and HLS may be inferred from or constrained by the pic_type value.
[0069] In one embodiment, when pic_type is equal to 0 in Table 5 (which indicates an I slice), it is a requirement for bitstream compliance that the value of pic_type_idc specifies that only intra slices exist for each picture. For example, when pic_type_idc follows the value of 1, only intra slices exist.
[0070] In one example, when pic_type_idc is constrained by the value of pic_type, the range of the value of pic_type_idc may depend on the value of pic_type. For example, pic_type_idc has the values described in Table 10, and when pic_type is equal to 1, the value of pic_type_idc may be 1 or 3. In another case, when pic_typie is equal to 2, the value of pic_type_idc is within the range from 0 to 3.
[0071] In one embodiment, when pic_type_idc is signaled in HLS, the slice_type can be inferred by the above method.
[0072] In one example, when pic_type_idc has a value indicating that only intra slices exist, the slice_type can be inferred to be 2.
[0073] In one example, when pic_type_idc has a value indicating that only inter slices exist, the value of slice_type has a range from 0 to 1 including both ends. For example, when pic_type_idc has a value of 2 (B, P slice), 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 of pic_type_idc and num_slices_in_pic_minus1.
[0075] When the value of pic_type_idc indicates the presence of both intra-slices and inter-slices, it is a requirement for bitstream compliance that the value of num_slices_in_pic_minus1 be 1 or greater.
[0076] pic_type_idc whose value indicates the presence of both intra-slices and inter-slices in the coded picture, and num_slices_in_pic_minus1 may have a value of 1 or greater.
[0077] If all previously coded slices are inter-slices, the last slice may be an intra-slice with a slice_type equal to 2 (I slice).
[0078] If all previously coded slices are intra-slices, the last slice may be an inter-slice with a slice_type value within the range of 0 to 1 inclusive.
[0079] The proposed method described above can be implemented by a processing circuit (e.g., one or more processors, or one or more integrated circuits). In one example, 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 above-described technology can be implemented as computer software using computer-readable instructions and can be physically stored on one or more computer-readable media. For example, FIG. 3 shows a computer system 300 suitable for implementing a particular embodiment of the disclosed subject matter.
[0081] The computer software can be coded using any suitable machine code or computer language that can be the subject of an assembly, compilation, linking, or similar mechanism to create code that includes instructions that can be directly executed by a computer central processing unit (CPU), a graphics processing unit (GPU), etc., or instructions that go through interpretation or microcode execution.
[0082] The instructions can be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, etc.
[0083] The components shown in FIG. 3 for the computer system 300 are exemplary in nature and are not intended to suggest any limitation as to the scope or functionality of the computer software for implementing embodiments of the present disclosure. Also, the configuration of the components should not be construed as having any dependency or requirement with respect to any one or combination of the components shown in the exemplary embodiment of the computer system 300.
[0084] Computer system 300 can include a specific human interface input device. Such a human interface input device can respond to input by one or more human users via, for example, tactile input (e.g., keystrokes, swipes, movement of a data glove), auditory input (e.g., voice, clapping), visual input (e.g., gestures), and olfactory input (not shown). Also, the human interface device can be used to capture specific media such as audio (e.g., conversation, music, ambient sound), images (e.g., scanned images, photographic images obtained from a still image camera), and video (e.g., 2D video, 3D video including stereoscopic video) that are not necessarily directly related to conscious human input.
[0085] The input human interface device can include one or more of 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 (although each is shown as only one).
[0086] Computer system 300 can also include a specific human interface output device. Such a human interface output device can stimulate the senses of one or more human users, for example, through tactile output, sound, light, and smell / taste. Such a human interface output device can be a tactile output device (e.g., tactile feedback by a touch screen 310, a data glove, a joystick 305, although there may be a tactile feedback device that does not serve as an input device), an auditory output device (e.g., a speaker 309, headphones (not shown)), a visual output device (e.g., a screen 310 including a cathode ray tube (CRT) screen, a liquid crystal display (LCD) screen, a plasma screen, an organic light emitting diode (OLED) screen, each of which may or may not have a touch screen input function, each of which may or may not have a tactile feedback function, and some of them may be capable of outputting three-dimensional or more output by means such as two-dimensional visual output and stereoscopic output; virtual reality glasses (not shown), holographic display, and smoke tank (not shown)), and a printer (not shown).
[0087] Computer system 300 can also include human-accessible storage devices and associated media such as an optical medium 321 including a CD / DVD ROM / RW_920 using a medium 321 such as a CD / DVD, a thumb drive 322, a removable hard drive or solid state drive 323, legacy magnetic media such as tapes and floppy disks (not shown), and specialized ROM / ASIC / PLD-based devices such as security dongles (not shown).
[0088] One of ordinary skill in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not include a transmission medium, a carrier wave, or other transient signals.
[0089] Computer system 300 may also include an interface to one or more communication networks. The network can be, for example, wireless, wired, or optical. The network can further be related to local, wide area, metropolitan, vehicle and industrial, real-time, delay tolerant, etc. Examples of networks include Ethernet, wireless LAN, cellular networks (including Global System for Mobile Communications (GSM), 3rd generation (3G), 4th generation (4G), 5th generation (5G), Long Term Evolution (LTE), etc.), wired or wireless wide area digital networks for TV (including cable TV, satellite TV, and terrestrial broadcast TV), vehicle and industrial including CANBus, etc. A particular network generally requires an external network interface adapter (354) attached to a particular general-purpose data port or peripheral bus (349) (e.g., the Universal Serial Bus (USB) port of computer system 300); others are generally integrated commonly into the core of computer system 300 by attaching to a system bus as described below (e.g., an Ethernet interface is integrated within a PC computer system, and a cellular network interface is integrated within a smartphone computer system). As an example, network 355 may be connected to peripheral bus 349 using network interface 354. Using any of these networks, computer system 300 can communicate with other entities. Such communication can be unidirectional receive-only (e.g., broadcast TV), unidirectional transmit-only (e.g., CANbus for a particular CANbus device), or bidirectional, e.g., for other computer systems using local or wide area digital networks. Specific protocols and protocol stacks can be used for each of those networks and network interfaces as described above.
[0090] The foregoing human interface device, human accessible storage device, and network interface can be attached to the core 340 of the computer system 300.
[0091] The core 340 can include one or more central processing units (CPUs) 341, a graphics processing device (GPU) 342, a special programmable processing device in the form of a field programmable gate array (FPGA) 343, a hardware accelerator 344 for specific tasks, etc. These devices can be connected via a system bus 348 together with a read only memory (ROM) 345, a random access memory 346, an internal mass storage device (e.g., an internal non-user accessible hard drive, a solid state drive (SSD), etc.) 347. In some computer systems, the system bus 348 may be accessible in the form of one or more physical plugs to enable expansion by additional CPUs, GPUs, etc. Peripheral devices can be directly attached to the core system bus 348 or attached 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 can be combined to execute specific instructions capable of constituting the aforementioned computer code. The computer code can be stored in the ROM 345 or the RAM 346. While temporary data can be stored in the RAM 346, persistent data can be stored, for example, in the internal mass storage 347. Fast storage and retrieval for any memory device may be made possible by utilizing a cache memory, which can be closely associated with one or more of the CPU 341, GPU 342, mass storage 347, ROM 345, RAM 346, etc.
[0093] A computer-readable medium can have thereon computer code for performing various computer-implemented operations. The medium and the computer code can be considered to be specially designed and constructed for the purposes of this disclosure, or they can be considered to be of the kind well-known and available to those of ordinary skill in the field of computer software.
[0094] By way of example, and not limitation, a computer system having architecture 300, specifically core 340, can provide the function of executing software embodied on one or more tangible computer-readable media as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.). Such a computer-readable media can be media related to user-accessible mass storage as described above, as well as specific storage of core 340 of a non-transitory nature such as mass storage 347 or ROM 345 inside the core. The software implementing various embodiments of the present disclosure can be stored on such devices and executed by core 340. The computer-readable media can include one or more memory devices or chips according to specific needs. The software includes defining a data structure stored in RAM 346 and modifying such a data structure according to a process defined by the software, and causing core 340 and in particular the processor (including a CPU, GPU, FPGA, etc.) therein to execute a specific process or a specific part of a specific process described in the present application. Further or alternatively, the computer system can provide a function as a result of logic wired in a circuit (e.g., accelerator 344) or embodied in other ways, and the circuit can execute a specific process or a specific part of a specific process described in the present application instead of or together with software. References to software include logic and, if necessary, vice versa. References to computer-readable media can include a circuit (such as an integrated circuit (IC)) storing software for execution, a circuit embodying logic for execution, or both if appropriate. The present disclosure encompasses any suitable combination of hardware and software.
[0095] Although several exemplary embodiments of the present disclosure have been described, there are changes, substitutions, and various alternative equivalents that fall within the scope of the present disclosure. Therefore, those skilled in the art will understand that, although not explicitly illustrated or described in this application, it is possible to embody the principles of the present disclosure and thus come up with many systems and methods within its spirit and scope.
[0096] (Appendix 1) A method for decoding video data, the method being executed by at least one processor: Instructing the type of each slice of the picture to be coded using syntax elements, wherein the syntax elements are coded using unsigned integers; Decoding the video data based on the type of the slice indicated by the syntax element; The method comprising. (Appendix 2) The method according to Appendix 1, wherein only the syntax elements related to the picture to be coded are coded. (Appendix 3) The method according to Appendix 2, wherein when all slices of the picture to be coded are instructed to include intra prediction, the inter prediction syntax elements are not coded. (Appendix 4) The method according to any one of Appendices 1-3, wherein picture header related syntax elements are included in a slice layer unprocessed byte sequence payload network abstraction layer unit, and a flag is used to indicate the presence of the picture header related syntax elements in the slice layer unprocessed byte sequence payload network abstraction layer unit. (Appendix 5) The method according to any one of Appendices 1-4, wherein the type of the slice can be inferred from the decoded access unit delimiter value. (Appendix 6) The type of the slice is the method according to any one of Appendices 1-4, which can be inferred when signaled in high-level syntax. (Appendix 7) The type of the slice is the method according to any one of Appendices 1-4, which can be inferred based on the number of rectangular slices in the coded picture. (Appendix 8) The syntax element is the syntax element coded by zero-order Exp-Golomb coding, and is the method according to any one of Appendices 1-7. (Appendix 9) The syntax element is a 2-bit syntax element that can be set with three statuses, and is the method according to any one of Appendices 1-7. (Appendix 10) The syntax element is a 2-bit syntax element that can be set with four statuses, and is the method according to any one of Appendices 1-7. (Appendix 11) An apparatus for decoding video data, at least one memory configured to store computer program code, at least one processor configured to access the at least one memory and operate according to the computer program code and including, the computer program code includes an instruction code configured to cause the at least one processor to execute a step of indicating the type of each slice of the coded picture by a syntax element, where the syntax element is coded using an unsigned integer, a decoding code configured to decode the video data based on the type of the slice indicated by the syntax element and including, the apparatus. (Appendix 12) The apparatus according to Supplementary Note 11, wherein the indication code is configured to indicate the type of the slice such that only syntax elements related to the picture to be coded are coded. (Supplementary Note 13) The apparatus according to Supplementary Note 12, wherein the indication code is configured to indicate the type of the slice such that no inter-prediction syntax elements are coded when all slices of the picture to be coded are indicated to include intra-prediction. (Supplementary Note 14) The apparatus according to any one of Supplementary Notes 11 to 13, wherein picture-header-related syntax elements are included in a slice-layer unprocessed byte sequence payload network abstraction layer unit, and a flag is used to indicate the presence of the picture-header-related syntax elements in the slice-layer unprocessed byte sequence payload network abstraction layer unit, and the indication code is configured to indicate the type of the slice. (Supplementary Note 15) The apparatus according to any one of Supplementary Notes 11 to 14, wherein the indication code is configured to indicate the type of the slice such that the type of the slice can be inferred from the decoded access unit delimiter value. (Supplementary Note 16) The apparatus according to any one of Supplementary Notes 11 to 14, wherein the indication code is configured to indicate the type of the slice such that the type of the slice can be inferred when signaled in high-level syntax. (Supplementary Note 17) The apparatus according to any one of Supplementary Notes 11 to 14, wherein the indication code is configured to indicate the type of the slice such that the type of the slice can be inferred based on the number of rectangular slices in the picture to be coded. (Supplementary Note 18) The apparatus according to any one of Appendices 11 - 17, wherein the instruction code is configured such that the syntax element is a syntax element coded with zero - order Exp - Golomb coding. (Appendix 19) The apparatus according to any one of Appendices 11 - 17, wherein the instruction code is configured such that the syntax element is a 2 - bit syntax element that can be set with three statuses. (Appendix 20) To at least one processor Instructing, using a syntax element, the type of slice for all slices of a picture to be coded, wherein the syntax element is coded using an unsigned integer; Decoding video data based on the type of slice indicated by the syntax element; A computer program for causing the above to be executed. (Appendix 21) A method for coding video data, the method being executed by at least one processor: Instructing, using a syntax element, the type of slice for all slices of a picture to be coded, wherein the syntax element is coded using an unsigned integer; Coding the video data based on the type of slice indicated by the syntax element; A method comprising the above.
Prior Art Documents
Non - Patent Documents
[0097]
Non - Patent Document 1
Explanation of Signs
[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. 1. A method executed by at least one processor for decoding video data, comprising: determining 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 type of the slice determined by the syntax element; a slice layer raw byte sequence payload (RBSP) - a network abstraction layer (NAL) unit includes syntax elements associated with a slice header of the slice, and the presence or absence of syntax elements associated with a picture header of a picture that includes one or more of the slices is indicated by a flag, and 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 of claim 1 , wherein only syntax elements that are relevant for the picture being coded are coded.
3. The method of claim 2 , further comprising: if it is determined that all slices of the picture being coded include intra prediction, then no inter prediction syntax elements are coded.
4. A method according to any one of claims 1 to 3, wherein the presence or absence of a syntax element related to a picture header in the slice layer RBSP NAL unit is indicated by a flag included in the slice layer RBSP NAL unit.
5. 5. The method of claim 1, wherein the type of slice present in a coded picture within an access unit (AU) that includes an AU delimiter network abstraction layer (NAL) unit can be inferred from a decoded access unit delimiter value.
6. 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.
7. A method according to any one of claims 1 to 4, wherein the type of the slice can be inferred based on the number of rectangular slices in the coded picture (num_slices_in_pic_minus1) and a value indicating the type of slices present in the picture (pic_type_idc).
8. The method according to any one of claims 1 to 7, wherein the syntax elements are zero-order Exp-Golomb coded syntax elements.
9. The method according to any one of claims 1 to 7, wherein the syntax element is a two-bit syntax element configurable with three statuses.
10. The method according to any one of claims 1 to 7, wherein the syntax element is a two-bit syntax element configurable with four statuses.
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; said computer program code comprising: determining slice types for all slices of a picture to be coded using syntax elements, the syntax elements being coded using unsigned integers; and decoding code configured to decode the video data based on the type of the slice determined by the syntax element; a slice layer raw byte sequence payload (RBSP) - network abstraction layer (NAL) unit includes syntax elements associated with a slice header of the slice, and the presence or absence of syntax elements associated with a picture header of a picture that includes one or more of the slices is indicated by a flag, and 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.
12. At least one processor has determining slice types for all slices of a picture being coded using syntax elements, the syntax elements being coded using unsigned integers; decoding video data based on the type of the slice determined by the syntax element; a slice layer raw byte sequence payload (RBSP) - network abstraction layer (NAL) unit includes syntax elements associated with a slice header of the slice, the presence or absence of syntax elements associated with a picture header of a picture that includes one or more of the slices is indicated by a flag, and 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.
Citation Information
Patent Citations
Combined reference picture list construction for video coding
US20120189053A1
Frame prioritization based on prediction information
US20140036999A1
Disabling inter-view prediction for reference picture list in video coding
US20140198181A1