CN113170204B - Coding tool setting method and image decoding apparatus - Google Patents

Coding tool setting method and image decoding apparatus Download PDF

Info

Publication number
CN113170204B
CN113170204B CN201980081961.0A CN201980081961A CN113170204B CN 113170204 B CN113170204 B CN 113170204B CN 201980081961 A CN201980081961 A CN 201980081961A CN 113170204 B CN113170204 B CN 113170204B
Authority
CN
China
Prior art keywords
tool
encoding
syntax element
constraint
profile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980081961.0A
Other languages
Chinese (zh)
Other versions
CN113170204A (en
Inventor
金在一
李善英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Telecom Co Ltd
Original Assignee
SK Telecom Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Telecom Co Ltd filed Critical SK Telecom Co Ltd
Priority to CN202410375145.3A priority Critical patent/CN118250476A/en
Priority to CN202410375147.2A priority patent/CN118250477A/en
Priority to CN202410375148.7A priority patent/CN118250478A/en
Priority to CN202410375150.4A priority patent/CN118250479A/en
Priority claimed from PCT/KR2019/017444 external-priority patent/WO2020122574A1/en
Publication of CN113170204A publication Critical patent/CN113170204A/en
Application granted granted Critical
Publication of CN113170204B publication Critical patent/CN113170204B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An encoding tool setting method and an image decoding apparatus are disclosed. Embodiments of the present invention relate to a method of setting whether to use an encoding tool, and provide an encoding tool setting method including the steps of: decoding, from the bitstream, a profile syntax element indicating a target profile among the one or more assignable profiles and an encoding tool syntax element indicating whether to apply the one or more encoding tools capable of being set; and setting one or more target coding tools included in a target profile to on or off based on the coding tool syntax element.

Description

Coding tool setting method and image decoding apparatus
Technical Field
The present disclosure relates to encoding and decoding of video, and more particularly, to an encoding tool setting method and a video decoding apparatus for improving encoding and decoding efficiency.
Background
Since the amount of video data is larger than that of voice data or still image data, storing or transmitting video data without performing compression processing requires a large amount of hardware resources including a memory.
Therefore, when storing or transmitting video data, an encoder is generally used to compress the video data for storage or transmission. Then, the decoder receives the compressed video data, and decompresses and reproduces the video data. Compression techniques for such video include h.264/AVC and High Efficiency Video Coding (HEVC), which improves coding efficiency by about 40% over h.264/AVC.
However, the video size, resolution, and frame rate gradually increase, and thus, the amount of data to be encoded also increases. Therefore, new compression techniques having better coding efficiency and higher image quality than existing compression techniques are needed.
Disclosure of Invention
Technical problem
To meet these needs, the present disclosure is directed to an improved video encoding and decoding technique. In particular, an aspect of the present disclosure relates to techniques for improving coding and decoding efficiency by presenting information about coding tools that are actually used among coding tools supported by a configuration file.
Technical proposal
According to at least one aspect, the present disclosure provides a method of setting whether to enable an encoding tool. The method comprises the following steps: decoding, from a bitstream, a profile syntax element indicating a target profile among one or more available profiles and an encoding tool syntax element for one or more configurable encoding tools, the encoding tool syntax element indicating whether to apply the encoding tool; and setting whether to turn on/off one or more target coding tools included in the target profile based on the coding tool syntax element.
According to another aspect, the present disclosure provides a video decoding apparatus including: a decoder configured to decode, from the bitstream, a profile syntax element indicating a target profile among the one or more available profiles and an encoding tool syntax element for one or more configurable encoding tools, the encoding tool syntax element indicating whether to apply the encoding tool; and a control device configured to set whether to turn on/off one or more target coding tools included in the target profile based on the coding tool syntax element.
Advantageous effects
As described above, according to the embodiments of the present disclosure, only information about an encoding tool actually used among encoding tools supported by a profile is signaled. Accordingly, bit efficiency of setting the encoding tool can be improved.
According to another embodiment of the present disclosure, the actually used coding tool may be identified. Thus, encoding and decoding can be more adaptively implemented.
Drawings
Fig. 1 is an exemplary block diagram of a video encoding device capable of implementing the techniques of this disclosure.
Fig. 2 exemplarily shows a block division structure using the QTBTTT structure.
Fig. 3 illustrates various intra prediction modes.
Fig. 4 is an exemplary block diagram of a video decoding device capable of implementing the techniques of this disclosure.
Fig. 5-12 are flowcharts illustrating various embodiments of the present disclosure for setting up the use of coding tools.
Fig. 13 is a flowchart illustrating a conventional method of determining a coding mode.
Fig. 14 is a flowchart illustrating a method of determining an encoding mode to which the encoding tool setting method of the present disclosure is applied.
FIG. 15 is a flow chart illustrating an embodiment of the present disclosure for specifying a sub-profile.
Detailed Description
Hereinafter, some embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. It should be noted that when reference numerals are added to constituent elements in the respective drawings, like reference numerals designate like elements, although the elements are shown in different drawings. In addition, in the following description of the present disclosure, a detailed description of known functions and configurations incorporated herein will be omitted to avoid obscuring the subject matter of the present disclosure.
Fig. 1 is an exemplary block diagram of a video encoding device capable of implementing the techniques of this disclosure. Hereinafter, a video encoding apparatus and elements of the apparatus will be described with reference to fig. 1.
The video encoding apparatus includes a block divider 110, a predictor 120, a subtractor 130, a transformer 140, a quantizer 145, an encoder 150, an inverse quantizer 160, an inverse transformer 165, an adder 170, a filter unit 180, and a memory 190.
The elements of the video encoding device may be implemented in hardware or software or a combination of hardware and software. The functions of the respective elements may be implemented in software, and the microprocessor may be implemented to perform the software functions corresponding to the respective elements.
A video is made up of a plurality of pictures. Each picture is divided into a plurality of regions, and encoding is performed on each region. For example, a picture is partitioned into one or more tiles and/or slices. Here, the one or more tiles may be defined as a tile group. Each tile or slice is partitioned into one or more Coding Tree Units (CTUs). Each CTU is partitioned into one or more Coding Units (CUs) in a tree structure. Information applied to each CU is encoded as a syntax of the CU, and information commonly applied to the CUs included in one CTU is encoded as a syntax of the CTU. In addition, information commonly applied to all blocks in one tile is encoded as a syntax of the tile or as a syntax of a tile group that is a set of a plurality of tiles, and information applied to all blocks constituting one picture is encoded in a Picture Parameter Set (PPS) or a picture header. In addition, information for common reference of multiple pictures is encoded in a Sequence Parameter Set (SPS). In addition, information for common reference by one or more SPS is encoded in a Video Parameter Set (VPS).
The block divider 110 determines the size of a Coding Tree Unit (CTU). Information about the CTU size (CTU size) is encoded as a syntax of SPS or PPS and transmitted to a video decoding device.
The block divider 110 divides each picture constituting a video into a plurality of CTUs having a predetermined size, and then recursively divides the CTUs using a tree structure. In the tree structure, leaf nodes are used as Coding Units (CUs), which are the basic units of coding.
The tree structure may be a Quadtree (QT) in which a node (or a parent node) is divided into four child nodes (or child nodes) of the same size, a Binary Tree (BT) in which a node is divided into two child nodes, a Trigeminal Tree (TT) in which a node is divided into three child nodes at a ratio of 1:2:1, or a structure formed by combining two or more of the QT structure, the BT structure, and the TT structure. For example, QTBT (quadtree plus binary tree) structure or QTBTTT (quadtree plus binary tree trigeminal tree) structure may be used. The BTTT may be referred to herein collectively as a multi-type tree (MTT).
Fig. 2 shows a QTBTTT partition tree structure. As shown in fig. 2, CTUs may be initially partitioned by QT structure. QT segmentation may be repeated until the size of the segment blocks reaches the minimum block size MinQTSize of leaf nodes allowed in QT. A first flag (qt_split_flag) indicating whether each node of the QT structure is partitioned into four nodes of a lower layer is encoded by the encoder 150 and signaled to the video decoding apparatus. When the leaf node of QT is not greater than the maximum block size (MaxBTSize) of the root node allowed in BT, it may be further partitioned into one or more of BT structures or TT structures. In the BT structure and/or the TT structure, there may be a plurality of division directions. For example, there may be two directions, namely a horizontal split and a vertical split of a block of nodes. As shown in fig. 2, when the MTT segmentation starts, a second flag (MTT _split_flag) indicating whether a node is segmented, a flag indicating a segmentation direction (vertical or horizontal), and/or a flag indicating a segmentation type (binary or ternary) are encoded by the encoder 150 and signaled to the video decoding apparatus.
As another example of the tree structure, when the QTBTTT structure partition block is used, information about a CU partition flag (split_cu_flag) indicating that the block has been partitioned and a QT partition flag (split_qt_flag) indicating whether the partition type is QT partition is encoded by the encoder 150 and signaled to the video decoding apparatus. When the value of split_cu_flag indicates that a block has not been split, a block of a node becomes a leaf node in the split tree structure and is used as an encoding unit (CU) as an encoding base unit. When the value of split_cu_flag indicates that the block has not been split, whether the split type is QT or MTT is distinguished by the value of split_qt_flag. When the partition type is QT, there is no additional information. When the division type is MTT, a flag (MTT _split_cu_vertical_flag) indicating the MTT division direction (vertical or horizontal) and/or a flag (MTT _split_cu_binary_flag) indicating the MTT division type (binary or ternary) are encoded by the encoder 150 and signaled to the video decoding apparatus.
As another example of a tree structure, when QTBT is used, there may be two partition types, i.e., a block of nodes is horizontally partitioned (i.e., symmetric horizontal partition) and vertically partitioned (i.e., symmetric vertical partition) into two identically sized blocks. A split flag (split_flag) indicating whether each node of the BT structure is split into lower layer blocks and split type information indicating the split type are encoded by the encoder 150 and transmitted to the video decoding apparatus. There may be additional types of partitioning a block of nodes into two asymmetric blocks. The asymmetric partition type may include a type of dividing a block into two rectangular blocks at a size ratio of 1:3 and a type of a block of diagonal partition nodes.
According to QTBT or QTBTTT partitioning of CTUs, CUs may have various sizes. Hereinafter, a block corresponding to a CU to be encoded or decoded (i.e., a leaf node of QTBTTT) is referred to as a "current block".
The predictor 120 predicts the current block to generate a predicted block. Predictor 120 includes an intra predictor 122 and an inter predictor 124.
In general, each current block in a picture may be predictively encoded. The prediction of the current block may be performed using a technique of intra prediction (performed based on data from a picture including the current block) or inter prediction (performed based on data from a picture encoded before the picture including the current block). Inter prediction includes both unidirectional prediction and bi-directional prediction.
The intra predictor 122 predicts pixels in the current block using pixels (reference pixels) positioned around the current block in the current picture including the current block. Depending on the prediction direction, there are a variety of intra prediction modes. For example, as shown in fig. 3, the plurality of intra prediction modes may include a non-directional mode including a planar mode and a DC mode and 65 directional modes. The formulas and neighboring pixels to be used are defined differently for each prediction mode.
The intra predictor 122 may determine an intra prediction mode to be used for encoding the current block. In some examples, intra predictor 122 may encode the current block using a plurality of intra prediction modes and select an appropriate intra prediction mode to use from the tested modes. For example, the intra predictor 122 may calculate a rate distortion value using a rate-distortion analysis of a plurality of intra prediction modes tested, and may select an intra prediction mode having the best rate distortion characteristic from among the tested modes.
The intra predictor 122 selects one intra prediction mode from among a plurality of intra prediction modes, and predicts the current block using a formula determined according to the selected intra prediction mode and neighboring pixels (reference pixels). Information about the selected intra prediction mode is encoded by the encoder 150 and transmitted to the video decoding apparatus.
The inter predictor 124 generates a prediction block for the current block through a motion compensation process. The inter predictor searches for a block most similar to the current block among reference pictures encoded and decoded earlier than the current picture, and generates a prediction block of the current block based on the searched block. Then, the inter predictor generates a motion vector corresponding to a displacement between a current block in the current picture and a predicted block in the reference picture. In general, motion estimation is performed on a luminance component, and a motion vector calculated based on the luminance component is used for both the luminance component and the chrominance component. Motion information including information on a reference picture for predicting a current block and information on a motion vector is encoded by the encoder 150 and transmitted to a video decoding apparatus.
The subtractor 130 generates a residual block by subtracting the prediction block generated by the intra predictor 122 or the inter predictor 124 from the current block.
The transformer 140 transforms a residual signal in a residual block having pixel values in the spatial domain into transform coefficients in the frequency domain. The transformer 140 may transform a residual signal in the residual block using the total size of the current block as a transform unit. Alternatively, the transformer may divide the residual block into sub-blocks of the transform region and the non-transform region, and transform the residual signal using only the sub-blocks of the transform region as a transform unit. Here, the sub-block of the transform region may be one of two rectangular blocks having a size ratio of 1:1 based on a horizontal axis (or a vertical axis). In this case, a flag (cu_sbt_flag), direction (vertical/horizontal) information (cu_sbt_horizontal_flag), and/or position information (cu_sbt_pos_flag) indicating that only the sub-block has been transformed are encoded by the encoder 150 and signaled to the video decoding apparatus. In addition, the size of the transform region sub-block may have a size ratio of 1:3 based on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_quad_flag) for distinguishing the partitions is additionally encoded by the encoder 150 and signaled to the video decoding apparatus.
The quantizer 145 quantizes the transform coefficient output from the transformer 140 and outputs the quantized transform coefficient to the encoder 150.
The encoder 150 generates a bitstream by encoding the quantized transform coefficients using an encoding method such as context-based adaptive binary arithmetic coding (CABAC). The encoder 150 encodes information related to block division, such as CTU size, CU division flag, QT division flag, MTT division direction, and MTT division type, so that the video decoding apparatus divides blocks in the same manner as the video encoding apparatus.
In addition, the encoder 150 encodes information about a prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and encodes intra prediction information (i.e., information about an intra prediction mode) or inter prediction information (information about a reference picture and a motion vector) according to the prediction type.
The dequantizer 160 dequantizes the quantized transform coefficient output from the quantizer 145 to generate a transform coefficient. The inverse transformer 165 transforms the transform coefficients output from the inverse quantizer 160 from the frequency domain to the spatial domain and reconstructs a residual block.
The adder 170 adds the reconstructed residual block to the prediction block generated by the predictor 120 to reconstruct the current block. The pixels in the reconstructed current block are used as reference pixels for intra prediction of the next block.
The filter unit 180 filters the reconstructed pixels to reduce block artifacts, ringing artifacts, and blurring artifacts due to block-based prediction and transform/quantization. The filter unit 180 may include a deblocking filter 182 and a Sampling Adaptive Offset (SAO) filter 184.
The deblocking filter 180 filters boundaries between reconstructed blocks to remove block artifacts due to block-wise encoding/decoding, and the SAO filter 184 additionally filters the deblock filtered video. The SAO filter 184 is a filter for compensating for the difference between the reconstructed pixel and the original pixel due to lossy encoding.
The reconstructed block filtered by the deblocking filter 182 and the SAO filter 184 is stored in the memory 190. Once all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of blocks in the next picture to be encoded.
Although not shown in fig. 1, the video encoding apparatus may further include a control device to set whether an encoding tool is used or applied for each profile using one or more syntax elements. The control means may be implemented on the same physical element (processor, etc.) as that for the slave element illustrated in fig. 1, or may be implemented on a different physical element than that for the slave element illustrated in fig. 1. Subsequently, details of the control device will be described.
Fig. 4 is an exemplary functional block diagram of a video decoding device capable of implementing the techniques of this disclosure. Hereinafter, a video decoding apparatus and elements of the apparatus will be described with reference to fig. 4.
The video decoding apparatus may include a decoder 410, an inverse quantizer 420, an inverse transformer 430, a predictor 440, an adder 450, a filter unit 460, and a memory 470.
Similar to the video encoding device of fig. 1, the elements of the video decoding device may be implemented as hardware or software, or may be implemented as a combination of hardware and software. Further, the functions of the respective elements may be implemented as software, and the microprocessor may be implemented to execute the functions of the software corresponding to the respective elements.
The decoder 410 determines a current block to be decoded by decoding a bitstream received from a video encoding apparatus and extracting information related to block division, and extracts prediction information required to reconstruct the current block and information about a residual signal.
The decoder 410 extracts information about the size of CTUs from a Sequence Parameter Set (SPS) or a Picture Parameter Set (PPS), determines the size of CTUs, and partitions the picture into CTUs of the determined size. Then, the decoder determines that the CTU is the uppermost layer (i.e., root node) of the tree structure, and extracts partition information about the CTU to partition the CTU using the tree structure.
For example, when dividing CTUs using the QTBTTT structure, first a first flag (qt_split_flag) related to QT division is extracted, and each node is divided into four nodes of a lower layer. Then, for a node corresponding to a leaf node of QT, a second flag (mtt_split_flag) related to MTT split and information on a split direction (vertical/horizontal) and/or a split type (binary/ternary) are extracted, and the leaf node is split in the MTT structure. In this way, each node below the leaf node of QT is recursively partitioned in the BT or TT structure.
As another example, when dividing a CTU using the QTBTTT structure, a CU division flag (split_cu_flag) indicating whether to divide the CU is first extracted. If the corresponding block is partitioned, a QT partition flag (split_qt_flag) is extracted. When the division type is not QT but MTT, a flag (MTT _split_cu_vertical_flag) indicating the MTT division direction (vertical or horizontal) and/or a flag (MTT _split_cu_binary_flag) indicating the MTT division type (binary or ternary) are additionally extracted. In the segmentation process, each node may undergo recursive QT segmentation zero or more times and then recursive MTT segmentation zero or more times. For example, CTUs may be partitioned immediately by MTT, or may be partitioned only multiple times by QT.
As yet another example, when dividing CTUs using a QTBT structure, first a first flag (qt_split_flag) related to QT division is extracted, and each node is divided into four nodes of a lower layer. For a node corresponding to a leaf node of QT, split_flag indicating whether the node is further BT-partitioned and partition direction information are extracted.
After determining the current block to be decoded by tree structure partition, the decoder 410 extracts information about a prediction type indicating whether the current block is subjected to intra prediction or inter prediction. When the prediction type information indicates intra prediction, the decoder 410 extracts syntax elements for intra prediction information (intra prediction mode) of the current block. When the prediction type information indicates inter prediction, the decoder 410 extracts syntax elements for inter prediction information, i.e., information indicating a motion vector and a reference picture for reference to the motion vector.
The decoder 410 extracts information on quantized transform coefficients of the current block as information on a residual signal.
The dequantizer 420 dequantizes the quantized transform coefficients, and inverse-transforms the dequantized transform coefficients from the frequency domain to the spatial domain to reconstruct a residual signal, thereby generating a residual block of the current block.
In addition, when the inverse transformer 430 inversely transforms only a partial region (sub-block) of the transform block, a flag (cu_sbt_flag) indicating that only the sub-block of the transform block has been transformed, direction information (vertical/horizontal) about the sub-block (cu_sbt_horizontal_flag), and/or sub-block position information (cu_sbt_pos_flag) are extracted. Then, the residual signal is reconstructed by inverse transforming transform coefficients of the sub-blocks from the frequency domain to the spatial domain. For regions that are not inverse transformed, the residual signal is filled with "0". Thereby, a final residual block of the current block is created.
The predictor 440 may include an intra predictor 442 and an inter predictor 444. The intra predictor 442 is activated when the prediction type of the current block is intra prediction, and the inter predictor 444 is activated when the prediction type of the current block is inter prediction.
The intra predictor 442 determines an intra prediction mode of the current block among the plurality of intra prediction modes based on syntax elements of the intra prediction modes extracted from the decoder 410, and predicts the current block based on reference pixels around the current block according to the intra prediction mode.
The inter predictor 444 determines a motion vector of the current block and a reference picture for reference to the motion vector based on syntax elements of the intra prediction mode extracted from the decoder 410, and predicts the current block based on the motion vector and the reference picture.
The adder 450 reconstructs the current block by adding the residual block output from the inverse transformer to the prediction block output from the inter predictor or the intra predictor. The pixels in the reconstructed current block are used as reference pixels for intra prediction of the block to be decoded later.
The filter unit 460 may include a deblocking filter 462 and an SAO filter 464. Deblocking filter 462 performs deblocking filtering on boundaries between reconstructed blocks to remove block artifacts caused by block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed block after deblocking filtering in order to compensate for differences between reconstructed pixels and original pixels due to lossy encoding. The reconstructed block filtered by the deblocking filter 462 and the SAO filter 464 is stored in a memory 470. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of the block in the picture to be encoded thereafter.
Although not shown in fig. 4, the video decoding apparatus may further include a control device to set whether to use an encoding tool for each profile using one or more syntax elements. The control means may be implemented on the same physical element (processor, etc.) as that for the slave element illustrated in fig. 4, or may be implemented on a different physical element than that for the slave element illustrated in fig. 4. Subsequently, details of the control device will be described.
The control means included in the video decoding apparatus are elements functionally corresponding to the above-described control means included in the video encoding apparatus. Hereinafter, in order to easily distinguish the control means included in the video decoding apparatus from the control means included in the video encoding apparatus, the control means included in the video decoding apparatus will be referred to as decoding control means, and the control means included in the video encoding apparatus will be referred to as encoding control means.
Conventional standards such as HEVC have used concepts such as profiles, levels and hierarchies in view of the application of standard techniques and the performance of video decoding devices (decoders).
A profile refers to a set composed of a specific coding tool for a specific application (service) among a plurality of coding tools provided in a video standard. In HEVC, profiles such as "master profile", "master 10 profile", "master still image profile", "format range extension profile", "high throughput profile" and "screen content coding extension profile" are established. Here, the encoding tool may refer to various functions provided by video standards, such as a merging function, a cross-component prediction function, an adaptive motion vector resolution function, a transform skip function, a current picture reference function, and a palette function.
The level is a concept used in consideration of a processing performance difference generated according to characteristics of the video decoding apparatus even when the same profile is used. The maximum resolution and frame rate of video that can be processed can be determined from the level values.
The hierarchy related to the constraint on maximum bitrate is due to the concept used to compress or not compress video with high resolution and high quality depending on the application even at the same profile and same level. That is, the hierarchy is a specification related to the memory 470 of the video decoding apparatus.
The level and hierarchy of HEVC are summarized in table 1 below.
TABLE 1
In HEVC, syntax elements specifying configuration files, levels, and levels are in a Sequence Parameter Set (SPS). These syntax elements in SPS are shown in tables 2 and 3 below.
TABLE 2
seq_parameter_set_rbsp(){ Descriptor for a computer
sps_video_parameter_set_id u(4)
sps_max_sub_layers_minusl u(3)
sps_temporal_id_nesting_flag u(1)
profile_tier_level(1,sps_max_sub_layers_minus1)
TABLE 3
In HEVC, syntax elements specifying profiles, levels, and levels are also in a Video Parameter Set (VPS). Syntax elements in the VPS are shown in table 4 below.
TABLE 4
The VPS is header information for encoding a piece of content into a plurality of layers for scalable encoding. In this case, the configuration information of the base layer and the configuration information of the sub-layer may be configured separately.
In the HEVC standard, one profile value may be specified for one sequence. However, in order to provide compatibility for each profile, the sequence may be indicated as being compatible with the profiles other than the specified profile, and the general_profile_compatibility_flag [ j ] syntax element may be used to indicate compatibility.
For example, when a master profile is specified in one sequence, "1" is set in general_profile_idc, and "1" is also set in general_profile_compatibility_flag [1 ]. In this state, a value of "0" or "1" may be set in the general_profile_compatibility_ fag [ j ] syntax element corresponding to a j value other than index=1, depending on whether the sequence is compatible with other profiles. For example, when a sequence is compatible with the master 10 profile (index=2), a value of "1" may be set in the general_profile_compatibility_flag [2] to indicate that the sequence is compatible.
As described above, in conventional standards, one or more configuration files that may be specified for or applied to a particular sequence may be presented by indicating compatibility. However, in the conventional standard, information about an encoding tool actually used for a corresponding sequence among a plurality of encoding tools included in a designated profile cannot be indicated.
In the present specification, the following embodiments are presented: information about the encoding tools among the plurality of encoding tools that are actually used for the corresponding sequence may be presented separately for each profile.
The encoding control device may specify or present a profile to be applied to a specific sequence among one or more available profiles (hereinafter referred to as "all profiles") using a syntax element. The syntax element that specifies the profile may be referred to as a profile syntax element (hereinafter simply referred to as profile idc), and the profile (profile to be applied) indicated by the profile syntax element may be referred to as a target profile.
The encoding control device may specify or present an encoding tool applied to or for a corresponding sequence among one or more encoding tools included in a specified profile (target profile) using one or more syntax elements. The syntax element for specifying the encoding tool may be referred to as an encoding tool syntax element, and the encoding tool included in the target configuration file may be referred to as a target encoding tool.
The coding tool syntax element may be used to indicate whether to apply the coding tools (target coding tools) included in the target profile, or may be used to indicate whether to apply all the coding tools (hereinafter referred to as "all coding tools") including the target coding tools. Here, all the encoding tools may mean all the encoding tools that may be included in all the configuration files, and whether the encoding tools are applied may mean whether the encoding tools are restricted, used, disabled, or turned on/off.
The video encoding device may signal a bitstream containing the profile syntax element and the encoding tool syntax element to the video decoding device. The profile syntax element and the coding tool syntax element may be signaled in one or more of a picture level header, a sequence level header, or a higher level header (e.g., decoder level header, decoding Parameter Set (DPS)). In addition, the profile syntax element and the coding tool syntax element may be in and signaled in the VPS for scalable coding.
The decoder 410 may decode the profile syntax element from the bitstream (S510) and the encoding tool syntax element from the bitstream (S520).
The decoding control means may set whether to use a target coding tool included in a target profile among all coding tools based on the decoded coding tool syntax element (S530). Here, whether to use the encoding tool may mean an on/off state of the encoding tool, and setting whether to use the encoding tool may mean turning on/off the encoding tool.
By designating the profile indicated by the profile syntax element as the target profile, the target encoding tool can be designated among all the encoding tools. The on/off of the target coding tool may be set by setting the target coding tool indicated by the coding tool syntax element to which the target coding tool is not applied to off and setting the target coding tool indicated by the coding tool syntax element to which the target coding tool is applied to on.
Hereinafter, various embodiments set forth in the present disclosure will be described in detail.
For a particular embodiment, four profiles (Profile-A, profile-B, profile-C and Profile-D) are assumed in this specification. In addition, in the present specification, three coding tools (tool-a, tool-B, and tool-c) are included in Profile-a, and five coding tools (tool-a, tool-c, tool-d, tool-e, and tool-g) are included in Profile B. Three coding tools (tool-b, tool-D, and tool-f) are included in Profile-C, while four coding tools (tool-b, tool-C, tool-f, and tool-g) are included in Profile-D. These tools are summarized in table 5 below.
TABLE 5
Configuration file name First tool Second tool Third tool Fourth tool Fifth tool ... Mas-th tool
Profile-A tool-a tool-b tool-c - - - -
Profile-B tool-a tool-c tool-d tool-e tool-g - -
Profile-C tool-b tool-d tool-f - - - -
Profile-D tool-b tool-c tool-f tool-g - - -
In table 5, "-" may indicate that no corresponding information is present or that no information is signaled. "max" may represent the number of all configurable coding tools (the number of all coding tools). The meaning of "-" and the meaning of "max" are used throughout this specification. As shown in table 5, the encoding tools included in a particular profile may be arranged in order. Thus, the jth encoding tool syntax element may indicate whether the jth encoding tool is applied. Here, j may correspond to an integer greater than or equal to 0.
Embodiment 1
Embodiment 1 relates to a method of indicating whether to apply an encoding tool using two syntax elements. That is, in embodiment 1, two different syntax elements may be employed as the encoding tool syntax elements.
One of the two syntax elements is a constraint syntax element indicating whether a constraint is applied to the encoding tool, and the other is an enable syntax element indicating whether the encoding tool is enabled. The constraint syntax element and the enable syntax element may be defined in one or more of a picture-level header, a sequence-level header, a decoder-level header, or a higher-level header.
The constraint syntax element may indicate whether to apply constraints to one or more target coding tools or to all coding tools. The enable syntax element may be used to indicate whether to enable one or more target encoding tools or all encoding tools, or may be used to indicate whether only the constraint syntax element indicates an encoding tool to which no constraint is applied (an encoding tool indicated to be unconstrained by the constraint syntax element). Embodiment 1 may be divided into the following embodiments according to the scope of the encoding tool indicated by the constraint syntax element and the enable syntax element.
Embodiment 1-1
In embodiments 1-l, constraint syntax elements may be set for all encoding tools, and enable syntax elements may be set for encoding tools that are not constrained by the constraint syntax elements.
The video encoding device may specify or designate the target profile using a profile syntax element and use a constraint syntax element to indicate whether constraints are to be applied to each of all encoding tools. In addition, the video encoding device may use an enable syntax element to indicate whether an unconstrained encoding tool among all encoding tools is enabled.
The syntax structure of this embodiment is shown in table 6 below.
TABLE 6
As shown in table 6, the constraint syntax element and the enable syntax element may be signaled in the same location in one or more of a picture level header, a sequence level header, a decoder level header, or a higher level header. In an embodiment, two syntax elements may be signaled in different locations and their syntax structures are shown in tables 7 and 8 below.
TABLE 7
TABLE 8
In tables 6 to 8, profile_idc represents a profile syntax element, coding_tool_constraint_flag [ j ] represents a constraint syntax element of a j-th coding tool, and coding_tool_enabled_flag [ j ] represents an enable syntax element of the j-th coding tool. In an embodiment, the constraint syntax element and the enable syntax element may be defined as flag values for each of all encoding tools without using an array [ j ]. For example, a_constraint_flag and a_enabled_flag may be defined for the encoding tool a, and b_constraint_flag and b_enabled_flag may be defined for the encoding tool B.
As shown in tables 6 to 8, the video encoding apparatus may use profile_idc to indicate a target profile to be specified for a corresponding sequence, may use coding_tool_constraint_flag [ j ] to indicate whether to apply constraints to encoding tools according to max (for all encoding tools), and may use coding_tool_enabled_flag [ j ] to indicate whether to enable encoding tools to which no constraints are applied.
An example of the method of applying embodiment 1-1 under the assumption of table 5 is shown in table 9 below.
TABLE 9
profile_idc Profile-A Profile-B Profile-C Profile-D
coding_tool_constraint_flag[0] tool-a:0 tool-a:0 tool-b:0 tool-b:0
coding_tool_constraint_flag[1] tool-b:0 tool-c:0 tool-d:1 tool-c:0
coding_tool_constraint_flag[2] tool-c:0 tool-d:1 tool-f:0 tool-f:1
coding_tool_constraint_flag[3] 1 tool-e:1 1 tool-g:0
coding_tool_constraint__flag[4] 1 tool-g:0 1 1
coding_tool__constraint_flag[5] 1 1 1 1
...
coding_tool_constraint_flag[max-1] 1 1 1 1
...
coding_tool_enabled_flag[0] tool-a:1 tool-a:1 tool-b:1 tool-b:1
coding_tool_enabled_flag[1] tool-b:1 tool-c:1 - tool-c:0
coding_tool_enabled_flag[2] tool-c:0 - tool-f:0 -
coding_tool_enabled_flag[3] - - - tool-g:1
coding_tool_enabled_flag[4] - tool-g:1 - -
coding_tool_enabled_flag[5] - - - -
...
coding_tool_enabled_flag[max-1] - - - -
In table 9, coding_tool_constraint_flag [ j ] =0 indicates that no constraint is imposed on the corresponding j-th coding tool. coding_tool_constraint_flag [ j ] =1 indicates that constraints are applied to the corresponding coding tool. coding_tool_enabled_flag [ j ] =0 indicates that the corresponding coding tool is not enabled. coding_tool_enabled_flag [ j ] =1 indicates that the corresponding coding tool is enabled.
As shown in table 9, for the encoding tool to which the constraint is applied, the constraint syntax element is set to "1", which indicates that the constraint is applied, and for the encoding tool to which the constraint is not applied, the constraint syntax element is set to "0", which indicates that the constraint is not applied. In addition, for encoding tools not included in the target profile (array elements at positions exceeding the number of encoding tools included in the target profile), the constraint syntax element is set to "1", which indicates that constraints are applied.
For example, in the case of Profile-B, the constraint syntax element is set to "0" for the tool-a (index 0), the tool-c (index 1), and the tool-g (index 4) to which the constraint is not applied, the constraint syntax element is set to "1" for the tool-d (index 2) and the tool-e (index 3) to which the constraint is applied, and the constraint syntax element is set to "1" for the coding tools (from index 5 to index max-1 in the array) that do not correspond to the target coding tool.
For an enabled encoding tool among the encoding tools that are not constrained, the enable syntax element is set to "1", which indicates that the corresponding encoding tool is enabled, and for an encoding tool that is not enabled, the enable syntax element is set to "0", which indicates that the corresponding encoding tool is not enabled. For example, in the case of Profile-a, "1" is set for array elements corresponding to indexes 0 and 1 of the enabled encoding tool, and "0" is set for array elements corresponding to index 2 of the non-enabled encoding tool. Since the enable syntax element is not set for the encoding tool that applies the constraint (coding_tool_constraint_flag [ j ] =1), the corresponding array element may be marked as "-".
The video encoding device may signal a bitstream containing the profile syntax element and the encoding tool syntax element (constraint syntax element and enable syntax element) to the video decoding device. The bitstream may contain as many constraint syntax elements as there are max and enable syntax elements whose number is less than or equal to the max (as many as there are encoding tools to which no constraint is applied).
The video decoding apparatus may decode the profile syntax element (S610). In addition, the video decoding apparatus may decode the constraint syntax element for all encoding tools (corresponding to the max number) (S620). For example, the video decoding apparatus may decode as many constraint syntax elements as the number of max by decoding a specific (j-th) constraint syntax element and decoding a next (j++) constraint syntax element when a part of the constraint syntax elements are not decoded.
When the constraint syntax element does not indicate that the constraint is applied, the video decoding apparatus may decode the enable syntax element (S630). For example, when the j-th constraint syntax element does not indicate that a constraint is applied, the video decoding apparatus may decode the j-th enable syntax element, and when the j-th constraint syntax element indicates that a constraint is applied, the video decoding apparatus may determine the next (j++) constraint syntax element. Thus, the video decoding device may decode an element that enables syntax elements (the number of which is less than or equal to max).
The video decoding apparatus may set whether to turn on/off the target encoding tool based on the constraint/enable syntax element (S640). In particular, the video decoding device may set the encoding tool whose enable syntax element indicates enable to on, and set the encoding tool whose constraint syntax element indicates apply constraints or whose enable syntax element does not indicate enable (or indicates disable) to off. Thus, the video decoding apparatus can set whether to turn on/off the target encoding tool.
Embodiments 1 to 2
In embodiments 1-2, constraint syntax elements may be set for one or more encoding tools, and enable syntax elements may also be set for one or more encoding tools. In addition, in embodiment 1-2, after the constraint syntax element of the encoding tool is first defined, the enable syntax element of the encoding tool may be defined.
The video encoding device may specify the target profile using a profile syntax element and use a constraint syntax element to set whether to apply constraints to one or more encoding tools (up to max encoding tools). The video encoding device may use the enable syntax element to set whether one or more encoding tools (up to max encoding tools) are enabled. That is, the enable syntax element may be set for all encoding tools regardless of whether the constraint syntax element applies a constraint. When a constraint syntax element of an encoding tool places a constraint on the enablement of the encoding tool, the enablement syntax element of the encoding tool should be set to a value that does not indicate that the tool is enabled (a value that indicates that the tool is not enabled). On the other hand, when the constraint syntax element does not impose a constraint on the enablement of the encoding tool, the enablement syntax element of the encoding tool may be set to any value.
The syntax structure of this embodiment is shown in table 10 below.
TABLE 10
As shown in table 10, the constraint syntax element and the enable syntax element may be signaled in the same location in one or more of a picture level header, a sequence level header, a decoder level header, or a higher level header. In addition, two syntax elements may be signaled in different locations and their syntax structures are shown in tables 11 and 12 below.
TABLE 11
TABLE 12
In tables 10 to 12, the meanings of profile_idc, coding_tool_constraint_flag [ j ], coding_tool_enabled_flag [ j ] may be the same as those in tables 6 to 8 mentioned above.
An example of the method of applying embodiments 1-2 under the assumption of table 5 is shown in table 13 below.
TABLE 13
profile_idc Profile-A Profile-B Profile-C Profile-D
coding_tool_constraint_flag[0] tool-a:0 tool-a:0 tool-b:0 tool-b:0
coding_tool_constraint_flag[1] tool-b:0 tool-c:0 tool-d:1 tool-c:0
coding_tool_constraint_flag[2] tool-c:0 tool-d:1 tool-f:0 tool-f:1
coding_tool_constraint_flag[3] 1 tool-e:1 1 tool-g:0
coding_tool_constraint_flag[4] 1 tool-g:0 1 1
coding_tool_constraint_flag[5] 1 1 1 1
...
coding_tool_constraint_flag[max-1] 1 1 1 1
...
coding_tool_enabled_flag[0] tool-a:1 tool-a:1 tool-b:1 tool-b:1
coding_tool_enabled_flag[1] tool-b:1 tool-c:1 0 tool-c:0
coding_tool_enabled_flag[2] tool-c:0 0 tool-f:0 0
coding_tool_enabled_flag[3] 0 0 0 tool-g:1
coding_tool_enabled_flag[4] 0 tool-g:1 0 0
coding_tool_enabled_flag[5] 0 0 0 0
...
eoding_tool_enabled_flag[max-1] 0 0 0 0
As shown in table 13, for the encoding tool to which the constraint is applied, the constraint syntax element is set to "1", which indicates that the constraint is applied, and for the encoding tool to which the constraint is not applied, the constraint syntax element is set to "0", which indicates that the constraint is not applied. Here, for encoding tools not included in the target profile (array elements at positions exceeding the number of encoding tools included in the target profile), the constraint syntax element is set to "1", which indicates that constraints are applied.
For an enabled coding tool among all coding tools, the enable syntax element is set to "1", which indicates enable, and for an un-enabled coding tool, the enable syntax element is set to "0", which indicates disable. Here, for an encoding tool to which a constraint is applied by a constrained syntax element, the enable syntax element should be set to "0".
For example, in the case of Profile-B, the enable syntax element is set to "1" for the non-constrained tool-a (index 0), tool-c (index 1), and tool-g (index 4) among the target coding tools, and the enable syntax element is set to "0" for the constrained tool-d (index 2) and tool-e (index 3). Since constraints are imposed on coding tools (from index 5 to index max-1 in the array) that do not correspond to the target coding tool, the element is set to "0" for these tools.
The video encoding device may signal a bitstream containing the profile syntax element and the encoding tool syntax element (constraint syntax element and enable syntax element) to the video decoding device. The bitstream may contain as many constraint syntax elements as there are max and enable syntax elements whose number is less than or equal to the max (as many as there are encoding tools to which no constraint is applied).
The video decoding apparatus may decode the profile syntax element (S710). Further, the video decoding apparatus may decode as many constraint syntax elements as the number of encoding tools (up to max tools) (S720). Further, the video decoding apparatus may decode as many enable syntax elements as the number of encoding tools (up to max tools) regardless of whether the constraint syntax element indicates that a constraint is applied (S730).
The video decoding apparatus may set whether to turn on/off the target encoding tool based on the constraint/enable syntax element (S740). In particular, the video decoding device may set the encoding tool with the constraint syntax element indicating that no constraint is applied and the enable syntax element indicating that enablement is on, and set the encoding tool with the constraint syntax element indicating that no constraint is applied or the enable syntax element indicating that enablement (or indicating disablement) is off. Thus, the video decoding apparatus can set whether to turn on/off the target encoding tool.
Embodiments 1 to 3
Embodiments 1-3 relate to a method of setting constraint syntax elements and/or enable syntax elements only for target coding tools included in a target profile, rather than setting constraint syntax elements and/or enable syntax elements for all coding tools.
As described above, the coding tools are arranged in order in the configuration file to which they belong. Thus, when "max" is reset or reassigned to a number equal to the number of target encoding tools, whether to apply the constraint and/or enable the encoding tools may be set only for the target encoding tools. Redefinition of "max" may be accomplished by equation 1 below.
[ 1]
max=MaxofCodingTools[profile_idc]
Maxoffcodingtools [ profile_idc ] is an array indicating the number of encoding tools (target encoding tools) included in the i-th profile (profile_idc). Here, i may correspond to an integer greater than or equal to 0.
The syntax structure of this embodiment is shown in table 14 below.
TABLE 14
An example of the method of applying embodiments 1-3 under the assumption of table 5 is shown in table 15 below.
TABLE 15
profile_idc Profile-A Profile-B Profile-C Profile-D
coding_tool_constraint_fiaa[0] tool-a:0 tool-a:0 tool-b:0 tool-b:0
coding_tool_constraint_flag[1] tool-b:0 tool-c:0 tool-d:1 tool-c:0
coding_tool_constraint_fliag[2] tool-c:0 tool-d:1 tool-f:0 tool-f:1
coding_tool_constrant_flag[3] - tool-e:1 - tool-g:0
coding_tool_constraint_fliag[4] - tool-g:0 - -
...
coding_tool_enabled_flag[0] tool-a:1 tool-a:1 tool-b:1 tool-b:1
coding_tool_enabled_flag[1] tool-b:1 tool-c:1 - tool-c:0
coding_tool_enabled_flaga[2] tool-c:0 - tool-f:0 -
coding_tool_enabled_flag[3] - - - tool-g:1
coding-tool_enabled_flag[4] - tool-g:1 - -
As shown in table 15, when whether or not to apply a constraint to an encoding tool is indicated using the same number of constraint syntax elements as the number of reset max, whether or not to apply a constraint may be indicated only for a target encoding tool included in a target profile. In addition, by indicating whether to enable the encoding tool using the same number of enable syntax elements as the number of reset max, it is possible to indicate whether to enable only the target encoding tool included in the target profile. For example, in the case of Profile-B, whether to apply a constraint may be indicated for only five coding tools (tool-a, tool-c, tool-d, tool-e, and tool-g), and the enabled state may be indicated for only the coding tools (tool-a, tool-c, and tool-g) among the five coding tools to which no constraint is applied.
In the case of this embodiment, the video decoding apparatus may decode as many constraint syntax elements as there are reset max (as there are target encoding tools) and decode as many enable syntax elements as there are encoding tools to which no constraint is applied. In addition, the video decoding apparatus may set whether to turn on/off the target encoding tool included in the target profile based on the constraint syntax element and the enable syntax element.
The embodiment described based on table 15 is the following example: the enabling syntax element is set only for the coding tool that is not constrained by the constrained syntax element (in connection with embodiment 1-1). As described above, the enable syntax element may be set for all encoding tools regardless of whether or not constraints are imposed by the constraint syntax element (in connection with embodiments 1-2). Examples combined with embodiments 1-2 are shown in table 16 below.
TABLE 16
profile_idc Profile-A Profile-B Profile-C Profile-D
coding_tool_constraint_flag[0] tool-a:0 tool-a:0 tool-b:0 tool-b:0
coding_tool_constraint_flag[1] tool-b:0 tool-c:0 tool-d:1 tool-c:0
coding_tool_constraint_flag[2] tool-c:0 tool-d:1 tool-f:0 tool-f:1
coding_tool_constraint_flag[3] - tool-e:1 - tool-g:0
coding_tool_constraint_flag[4] - tool-a:0 - -
...
coding_tool_enabled_flag[0] tool-a:1 tool-a:1 tool-b:1 tool-b:1
coding_tool_enabled_flag[1] tool-b:1 tool-c:1 0 tool-c:0
coding_tool_enabled_flag[2] tool-c:0 0 tool-f:0 0
coding_tool_enabled_flag[3] - 0 - tool-g:1
coding_tool_enabled_flag[4] - tool-g:1 - -
As shown in table 16, the enable syntax element may be set as many as the value of the reset max and may indicate whether all target coding tools included in the target profile are enabled, regardless of whether constraints are applied. Here, for an encoding tool that imposes a constraint on a constrained syntax element among encoding tools included in the target profile, the enable syntax element may be set to "0". For example, in the case of Profile-B, whether to apply a constraint may be indicated only for five coding tools (tool-a, tool-c, tool-d, tool-e, and tool-g), and the enable syntax element may be set to "0" for coding tools (tool-d and tool-e) for which a constraint is applied to the constrained syntax element among the five coding tools.
In this embodiment, the video decoding apparatus may decode as many constraint syntax elements and enable syntax elements as there are reset max (the number of target encoding tools). In addition, the video decoding apparatus may set whether to turn on/off the target encoding tool included in the target profile based on the constraint syntax element and the enable syntax element.
Embodiment 2
Embodiment 2 relates to a method of indicating whether to apply a target coding tool using one syntax element. The syntax element is a disable syntax element indicating whether to disable the coding tool. Whether to disable the encoding tool may imply whether to impose constraints on the encoding tool or whether to enable the encoding tool. The disabling syntax element may be included in the encoding tool syntax element and may be defined in one or more of a sequence level header, a decoder level header, or a higher level header.
The disable syntax element may indicate a disable state for all encoding tools or only the target encoding tool. Embodiment 2 may be divided into the following embodiments according to the range of the encoding tool indicated by the disable syntax element.
Embodiment 2-1
Embodiment 2-1 relates to a method of indicating a disabled state of all encoding tools using a disabled syntax element. The video encoding device may specify the target profile using a profile syntax element and indicate a disabled state of all encoding tools (max encoding tools) using a disabled syntax element.
The syntax structure of this embodiment is shown in table 17 below.
TABLE 17
coding_tool_disabled_flag [ j ] represents a disabled syntax element. coding_tool_disabled_flag [ j ] =1 may indicate that the corresponding coding tool (jth coding tool) is disabled (constrained or not enabled), and coding_tool_disabled_flag [ j ] =0 indicates that the corresponding coding tool is enabled (used or not constrained).
An example of the method of applying embodiment 2-1 under the assumption of table 5 is shown in table 18 below.
TABLE 18
profile_idc Profile-A Profile-B Profile-C Profile-D
coding_tool_disabled_flag[0] tool-a:0 tool-a:0 tool-b:0 tool-b:0
coding_tool_disabled_flag[1] tool-b:0 tool-c:0 tool-d:1 tool-c:1
coding_tool_disabled_flag[2] tool-c:0 tool-d:1 tool-f:1 tool-f:1
coding_tool_disabled_flag[3] 1 tool-e:1 1 tool-g:0
coding_tool_disabled_flag[4] 1 tool-g:0 1 1
coding_tool_disabled_flag[5] 1 1 1 1
...
coding_tool_disabled_flag[max-1] 1 1 1 1
As shown in table 18, the video encoding device may set whether to disable each of all encoding tools by using the disable syntax element. That is, as many disabled syntax elements as the number of max may be set. For unused ones of the target coding tools, the disable syntax element may be set to "1", which indicates disable, and for the used coding tools, the disable syntax element may be set to "0", which indicates enable. Further, for encoding tools other than the target encoding tool (array elements at positions exceeding the number of encoding tools included in the target profile), the disable syntax element may be set to "1", which indicates disable.
For example, in the case of Profile-B, the disable syntax element may be set to "1" for two coding tools (tool-d and tool-e) among the five target coding tools that are not applied, and the disable syntax element may be set to "0" for the remaining coding tools (tool-a, tool-c, and tool-g) of the application. For coding tools other than the target coding tool (array elements from index 5 to index (max-1)), the disable syntax element may be set to "1".
The video encoding device may signal a bitstream containing the profile syntax element and the encoding tool syntax element (disable syntax element) to the video decoding device. The bitstream may contain as many disabled syntax elements as there are max.
The video decoding apparatus may decode the profile syntax element (S810). Further, the video decoding apparatus may decode as many disabled syntax elements as the number of all encoding tools (max number) (S820).
The video decoding apparatus may set whether to turn on/off the target encoding tool based on the decoded disable syntax element (S830). In particular, the video decoding apparatus may set whether to turn on/off the target encoding tool by setting an encoding tool whose disable syntax element does not indicate disable to on and setting an encoding tool whose disable syntax element indicates disable to off.
Embodiment 2-2
Embodiment 2-2 relates to a method of presenting a disabled syntax element for only a target coding tool included in a target profile, and not for all coding tools.
When max is reset or reassigned to a number equal to the number of target encoding tools, the disabled state may be set only for the target encoding tools. Redefinition of max may be accomplished by equation l.
The encoding control device may specify the target profile using the profile syntax element and reset max to be equal to the number of target encoding tools included in the target profile. The encoding control means may set the number of disabled syntax elements as much as the reset max.
The syntax structure of this embodiment is shown in table 19 below.
TABLE 19
/>
An example of the method of applying embodiment 2-2 under the assumption of table 5 is shown in table 20 below.
TABLE 20
profile_idc Profile-A Profile-B Profile-C Profile-D
coding_tool_disabled_flag[0] tool-a:0 tool-a:0 tool-b:0 tool-b:0
coding_tool_disabled_flag[1] tool-b:0 tool-c:0 tool-d:1 tool-c:1
coding_tool_disabled_flag[2] tool-c:0 tool-d:1 tool-f:1 tool-f:1
coding_tool_disabled_flag[3] - tool-e:1 - tool-g:0
coding_tool_disabled_flag[4] - tool-g:0 - -
As shown in table 20, when as many disable syntax elements as there are reset max are set, the disable state may be indicated only for the target encoding tool. For example, in the case of Profile-B, the disabled state may be indicated for only five coding tools (tool-a, tool-c, tool-d, tool-e, and tool-g). The disable syntax element may not be set for coding tools not included in the target coding tool.
In this embodiment, the video decoding apparatus may decode as many disabled syntax elements as the number equal to the reset max (the number of target encoding tools). In addition, the video decoding apparatus may set whether to turn on/off the target encoding tool included in the target profile based on the disable syntax element.
Embodiment 3
Embodiment 3 relates to a method of setting whether to turn on/off an encoding tool by dividing the encoding tool included in a configuration file into one or more subsets and respectively indicating whether to apply a constraint to the subsets.
Definition of subsets
A subset may be understood as a subset of coding tools or a group of coding tools. Coding tools with similar functionality may be included in the same subset. All available profiles (hereinafter referred to as "all profiles") may include one or more subsets, and each subset may include one or more encoding tools.
The subset may be defined or organized in various ways. For example, the subset may be 1) defined based on all coding tools irrespective of the configuration file, or 2) defined based on the coding tools included in the configuration file.
Regarding subset definition 1), an example of defining a subset based on all encoding tools is shown in table 21 below.
TABLE 21
Subset name First tool Second tool Third tool Fourth tool Fifth tool ... Maxc tool
Subset-α tool-a tool-b - - - -
Subset-β tool-c tool-d - - - -
Subset-γ tool-e tool-f tool-g - - -
...
Subset-maxS tool-l tool-m tool-n tool-o -
In table 2l, maxS represents the number of all subsets (hereinafter referred to as "all subsets") that can be determined or specified, and maxC represents the maximum number of all encoding tools that can be included (or set) in each subset.
An example of applying subset definition 1) under the assumption of table 5 is shown in table 22 below.
TABLE 22
As shown in Table 22, profile-A may include two subsets (Subset- α and Subset- β). Two coding tools (tool-a and tool-b) may be included in Subset-a and one coding tool (tool-c) may be included in Subset- β. Profile-B may include three subsets (Subset- α, subset- β, and Subset- γ). One encoding tool (tool-a) may be included in Subset- α, two encoding tools (tool-c and tool-d) may be included in Subset- β, and two encoding tools (tool-e and tool-g) may be included in Subset- γ.
Subset definition 2) is a method of defining a subset based on the coding tools included in the configuration file. An example of applying subset definition 2) under the assumption of table 5 is shown in table 23 below.
TABLE 23
As shown in table 23, profile a may include two subsets (Subset-A1 and Subset-A2). Two coding tools (tool-a and tool-b) may be included in Subset-A1 and one coding tool (tool-c) may be included in Subset-A2. In addition, profile-B may include two subsets (Subset-B1 and Subset-B2). Two coding tools (tool-a and tool-c) may be included in Subset-B1, and three coding tools (tool-d, tool-e and tool-g) may be included in Subset-B2. As such, the subset according to definition 2) may be defined as a subset of the coding tools included in the configuration file to which the subset belongs.
When defining the subset as shown in table 22 or table 23, the video encoding device may specify the target profile using the profile syntax element and use the subset syntax element to determine or set whether to impose constraints on the subset. Here, the subset syntax elements may be set for all subsets (as many as maxS). Hereinafter, the subset that is not constrained by the subset syntax element will be referred to as the target subset.
The video encoding device may use the encoding tool syntax element to set whether to apply the encoding tool. The encoding tool syntax element may indicate whether to apply the encoding tools included in the subset that is not constrained by the subset syntax element, and the encoding tools included in the subset that is not constrained may correspond to the target encoding tool.
The video encoding device may signal a bitstream containing the profile syntax element, the subset syntax element, and the encoding tool syntax element to the video decoding device.
The video decoding apparatus may decode the profile syntax element and the subset syntax element from the bitstream (S910 and S920). Up to maxS subset syntax elements may be decoded. In addition, when the subset syntax element does not indicate that the constraint is applied, the video decoding apparatus may decode the encoding tool syntax element (S930).
After the decoding of the encoding tool syntax element is completed, the video decoding apparatus may set whether to turn on/off the target encoding tool by setting whether to turn on/off the encoding tool based on the encoding tool syntax element (S940). Specifically, the video decoding apparatus may set a target encoding tool indicated as an application by the encoding tool syntax element to be on, and set a target encoding tool not indicated as an application by the encoding tool syntax element to be off, thereby setting whether to turn on/off the target encoding tool.
Embodiment 3 may be divided into the following embodiments according to the scope of the subset of whether the subset syntax element indicates the constraint is applied and the scope of the encoding tool syntax element indicates whether the encoding tool is applied.
Embodiment 3-1
Embodiment 3-1 relates to a method of setting subset syntax elements for all subsets, setting constraint syntax elements when no constraint is imposed on the subsets, and setting enable syntax elements when no constraint is imposed on the encoding tool.
An example of the syntax structure of this embodiment is shown in table 24 below.
TABLE 24
When the target profile is specified by a profile syntax element (profile_idc), the video encoding device may use a subset syntax element (e.g., subset_constraint_flag [ i ]) to set whether to apply constraints to all (maxS) subsets, thereby indicating whether to apply constraints to the target subset included in the target profile.
The video encoding device may use the constraint syntax element and the enable syntax element to set whether to apply a constraint to the target encoding tool and whether to enable it. Here, the constraint syntax element may be set when the subset syntax element does not impose a constraint on the subset, and the constraint syntax element may be set for all encoding tools. The enable syntax element may be set for an encoding tool that is not constrained by the constrained syntax element.
The method of embodiment 3-1 may be applied to both subset definitions 1) and 2). An example of applying the method of embodiment 3-1 to subset definition 2) is shown in table 25 below.
TABLE 25
profile_idc Profile-A Profile-B Profile-C Profile-D
subset_constraint_flag[0] subset-A1:0 subset-B1:1 subset-C1:0 suibset-D1:0
coding_tool_constraint_flag[0] tool-a:0 - tool-b:0 tool-b:0
coding_tool_enabled_flag[0] tool-a:1 - tool-b:1 tool-b:1
coding_tool_constraint_flag[1] tool-b:0 - tool-d:0 tool-c:0
coding_tool_enabled_flag[1] tool-b:0 - tool-d:1 tool-c:1
codina_tool_constraint_flag[2] 1 - tool-f:1 1
coding_tool_enabled_flag[2] - - - -
coding_tool_constraint_flag[3] 1 - 1 1
...
coding_tool_constraint_flag[maxC-1] 1 - 1 1
subset_constraint_flag[1] subset-A2:0 subset-B2:0 1 subset-D2:0
coding_tool_constraint_flag[0] tool-c:0 tool-d:0 - tool-f:0
coding_tool_enabled_flag[0] tool-c:1 tool-d:1 - tool-f:1
coding_tool_constraint_flag[1] 1 tool-e:1 - tool-g:0
coding_tool_enabled_flag[1] - - - tool-g:1
coding_tool_constraint_flag[2] 1 tool-g:0 - 1
coding_tool_enabled_flag[2] - tool-a:1 - -
coding_tool_constraint_flag[3] 1 1 - 1
...
coding_tool_constraint_flag[maxC-1] 1 1 - 1
subset_constraint_flag[2] 1 1 1 1
...
subset_constraint-flag[maxS-1] 1 1 1 1
As shown in table 25, the subset syntax element may be set to "1" (subset_constraint_flag [ i ] =1) for the subset to which the constraint is applied, and may be set to "0" (subset_constraint_flag [ i ] =0) for the subset to which the constraint is not applied. The constraint syntax element may be set to "1" (coding_tool_constraint_flag [ j ] =1) for the coding tool to which the constraint is applied, and may be set to "0" (coding_tool_constraint_flag [ j ] =0) for the coding tool to which the constraint is not applied. The enable syntax element is set to "0" (coding_tool_enabled_flag [ j ] =0) for the non-enabled coding tools, to "1" for the enabled coding tools, and not set for the constrained coding tools.
For example, in the case of Profile-B, the constraint is applied to the first Subset (Subset- β1) (subset_constraint_flag [0] =1), and therefore neither constraint nor enable syntax element is set. The constraint (subset_constraint_flag [1] =0) is not applied to the second Subset (Subset- β2), and thus the constraint syntax element and the enable syntax element can be set. The constraint syntax element may be set to indicate that no constraint (coding_tool_constraint_flag [ j ] =0) is applied to a tool-d and a tool-g among the encoding tools (tool-d, tool-e, and tool-g) included in the second Subset (Subset- β2), and may be set to indicate that a constraint (coding_tool_constraint_flag [ j ] =1) is applied to the tool-e. The enable syntax element may be set to enable (coding_tool_enabled_flag [ j ] =1) for the tool-d and tool-g to which the constraint is not applied, and not set for the tool-e to which the constraint is applied.
In the summary of the results in Table 25, in the case of Profile-A, only tool-a and tool-c are enabled among the three coding tools (tool-a, tool-b, and tool-c). In the case of Profile-B, only tool-d and tool-g are enabled among the five coding tools (tool-a, tool-c, tool-d, tool-e, and tool-g). In the case of Profile-C, only tool-b and tool-d are enabled among the three coding tools (tool-b, tool-d, and tool-f). In the case of Profile-D, all four coding tools (tool-b, tool-c, tool-f, and tool-g) are enabled.
The video encoding device may signal a bitstream containing the profile syntax element, the subset syntax element, and the encoding tool syntax element (constraint syntax element and enable syntax element) to the video decoding device. The bitstream may contain maxS subset syntax elements, maxC constraint syntax elements, and maxC enable syntax elements.
The video decoding apparatus may decode the profile syntax element (S1010) and decode a specific (i-th) subset syntax element among the maxS subset syntax elements (S1020). When the i-th subset syntax element does not indicate that the constraint is applied, the video decoding apparatus may decode a specific (j-th) constraint syntax element among the maxC constraint syntax elements (S1030). When the j-th constraint syntax element does not indicate that the constraint is applied, the video decoding apparatus may decode the j-th enable syntax element (S1040).
The video decoding apparatus may decode all constraint syntax elements and all enable syntax elements of the i-th subset by repeatedly performing operations S1030 and S1040 while sequentially increasing j. In addition, the video decoding apparatus may decode all constraint syntax elements and all enable syntax elements of all subsets by repeatedly performing operations S1030 and S1040 while sequentially increasing i.
The video decoding apparatus may set whether to turn on/off the target encoding tool based on the constraint/enable syntax element (S1050).
Embodiment 3-2
The above-described embodiment 3-1 corresponds to a method of sequentially setting a j-th constraint syntax element and a j-th enable syntax element for a specific (j-th) coding tool. In contrast, embodiment 3-2 corresponds to a method of setting an enable syntax element after maxC constraint syntax elements are set.
An example of the syntax structure of embodiment 3-2 is shown in table 26 below.
TABLE 26
Once the target profile is specified by the profile syntax element (profile_idc), the video encoding device may use a subset syntax element (e.g., subset_constraint_flag [ i ]) to set whether to apply constraints to the target subset. The subset syntax element may be set for all (maxS) subsets.
The video encoding device may use the constraint syntax element and the enable syntax element to set whether to apply a constraint to the target encoding tool and whether to enable it. Here, the constraint syntax element may be set when the subset syntax element does not impose a constraint on the subset, and the constraint syntax element may be set for all (maxC) encoding tools. The enable syntax element may be set after as many constraint syntax elements as maxC are set, and the enable syntax element may be set for an encoding tool to which a constraint is not applied by the constraint syntax element.
The method of embodiment 3-2 may be applied to both subset definitions 1) and 2). An example of applying the method of embodiment 3-2 to subset definition 2) is shown in table 27 below.
TABLE 27
profile_idc Profile-A Profile-B Profile-C Profile-D
subset_constraint_flag[0] subset-a:0 subset-a:1 subset-α:0 subset-α:0
coding_tool_constraint_flag[0] tool-a:0 - tool-b:0 tool-b:0
coding_tool_constraint_flag[1] tool-b:0 - 1 1
coding_tool_constraint_flag[2] 1 - 1 1
...
coding_tool_constraint_flag[maxC-1] 1 - 1 1
subset_constraint_flag[1] subset-β:0 subset-β:0 subset-β:0 subset-β:0
coding_tool-constraint_flag[0] tool-c:0 tool-c:0 tool-d:0 tool-c:0
coding_tool_constraint_flag[1] 1 tool-d:1 1 1
coding_tool_constraint_flag[2] 1 1 1 1
...
coding_tool_constraint_flag[maxC-1] 1 1 1 1
subset_constraint_flag[2] 1 subset-γ:0 subset-γ:0 1
coding_tool_constraint_flag[0] - tool-e:0 tool-f:0 -
coding_tool_constraint_flag[1] - tool-a:1 1 -
coding_tool_constraint_flag[2] - 1 1 -
...
coding_tool_constraint_flag[maxC-1] - 1 1 -
subset_constraint_flag[3] 1 1 1 1
...
subset_constraint_flag[maxS-1] 1 1 1 1
As shown in table 27, the subset syntax element may be set to "1" (subset_constraint_flag [ i ] =1) for the subset to which the constraint is applied, and may be set to "0" (subset_constraint_flag [ i ] =0) for the subset to which the constraint is not applied. The constraint syntax element may be set to "1" (coding_tool_constraint_flag [ j ] =1) for the coding tool to which the constraint is applied, and may be set to "0" (coding_tool_constraint_flag [ j ] =0) for the coding tool to which the constraint is not applied. Although not shown in table 27, the enable syntax element is set to "0" (coding_tool_enabled_flag [ j ] =0) for the non-enabled coding tools, is set to "1" for the enabled coding tools, and is not set for the constrained coding tools.
For example, in the case of Profile-B, the constraint is applied to the first Subset (Subset- α) (subset_constraint_flag [0] =1), and therefore neither constraint nor enable syntax element is set. No constraint (subset_constraint_flag [1] =0) is applied to the second Subset (Subset- β), and thus the constraint syntax element and the enable syntax element can be set. No constraint is imposed on the third Subset (Subset- γ), so the constraint syntax element and the enable syntax element can be set.
In this embodiment, the bitstream may contain maxS subset syntax elements, maxC constraint syntax elements, and maxC enable syntax elements.
The video decoding apparatus may decode the profile syntax element (S1110) and decode a specific (i-th) subset syntax element among the maxS subset syntax elements (S1120). When the i-th subset syntax element does not indicate that the constraint is applied, the video decoding apparatus may decode maxC enabled syntax elements (S1130). The video decoding device may decode all constraint syntax elements of all subsets while sequentially increasing i.
When the j-th constraint syntax element does not indicate that a constraint is applied, the video decoding apparatus may decode the j-th enable syntax element (S1140). The video decoding device may decode all enabled syntax elements of the i-th subset while sequentially increasing j. In addition, the video decoding apparatus may decode all the enable syntax elements of all the subsets while sequentially increasing i.
The video decoding apparatus may set whether to turn on/off the target encoding tool based on the constraint/enable syntax element (S1150).
Embodiment 3 to 3
In embodiment 3-3, the following method is corresponded: the subset syntax elements are set for all subsets, the constraint syntax elements are set for all encoding tools when no constraint is applied to the subsets, and the enable syntax elements are set for all encoding tools regardless of whether a constraint is applied to the encoding tools.
An example of the syntax structure of embodiment 3-3 is shown in table 28 below.
TABLE 28
As shown in table 28, the video encoding device may use a subset syntax element (e.g., subset_constraint_flag [ i ]) to apply a constraint on subset settings of all (maxS) subsets and use the constraint syntax element to apply a constraint on all (maxC) encoding tools, and in addition, the video encoding device may use an enable syntax element to set whether to use an encoding tool on all (maxC) encoding tools.
In this embodiment, the bitstream may contain maxS subset syntax elements, maxC constraint syntax elements, and maxC enable syntax elements.
The video decoding apparatus may decode the profile syntax element (S1210) and decode a specific (i-th) subset syntax element among the maxS subset syntax elements (S1220). When the i-th subset syntax element does not indicate that the constraint is applied, the video decoding apparatus may decode the maxC constraint syntax elements (S1230) and decode the maxC enable syntax elements (S1240). The video decoding device may decode all constraint syntax elements and all enabled syntax elements of all subsets while sequentially increasing i.
The video decoding apparatus may set whether to turn on/off the target encoding tool based on the constraint/enable syntax element (S1250).
Embodiments 3 to 4
Embodiments 3-4 correspond to a method of indicating whether to apply an encoding tool using one syntax element (a disabled syntax element).
The syntax structure of this embodiment is shown in the following tables 29 and 30.
TABLE 29
TABLE 30
As shown in tables 29 and 30, the video encoding device may specify a target profile using a profile syntax element (e.g., profile_idc), may set whether to apply a constraint to the subset using a subset syntax element (e.g., subset_constraint_flag [ i ]) for all (maxS) subsets, and may set whether to disable an encoding tool for all (maxC) encoding tools using a disable syntax element (e.g., coding_tool_disabled_flag [ j ]) when no constraint is applied to the subset.
In this embodiment, the video decoding device may decode as many subset syntax elements as maxS (equal to the number of all subsets). When no constraint is imposed on a particular subset, the device may decode as many disabled syntax elements as maxC (a number equal to the number of all encoding tools). In addition, the video decoding apparatus may set whether to turn on/off the target encoding tool included in the target profile based on the disable syntax element.
Embodiments 3 to 5
Embodiment 3-5 corresponds to the method of setting subset syntax elements only for the target subset or encoding tool syntax elements (constraint/enable syntax elements or disable syntax elements) only for the target encoding tool in embodiments 3-1 to 3-4 described above.
To set syntax elements for only the target subset or target coding tool, the maxS or maxC used in embodiments 3-1 through 3-4 must be reassigned or reset. The reset can be achieved by the following equations 2 and 3.
[ 2]
maxS=MaxofSubSets[profile_idc]
[ 3]
maxC=MaxofCodingTools[subset]
Maxoffsubsets [ i ] is an array indicating the number of subsets included in the i-th profile, and Maxoffcodingtools [ i ] is an array indicating the number of coding tools included in the i-th subset.
The encoding control device may specify the target profile using the profile syntax element and reset max equal to the number of subsets included in the target profile. The encoding control means may set as many encoding tool syntax elements as there are reset max. Thus, the subset syntax element may indicate whether or not to apply the constraint only for the target subset included in the target configuration file, and the encoding tool syntax element may indicate the application state only for the target encoding tool.
In this embodiment, the video decoding device may decode as many subset syntax elements as there are reset maxS (or target subset) and decode as many coding tool syntax elements as there are reset maxC (or target coding tools). In addition, the video decoding apparatus may set whether to turn on/off the target encoding tool based on the encoding tool syntax element.
Embodiment 4
Embodiment 4 corresponds to a method of defining one or more representative profiles (hereinafter referred to as "representative profiles") in advance from among all profiles, designating any one of the profiles included in the representative profile using a syntax element, and designating a child profile included in the designated profile. The sub-profiles may be defined and used by third party organizations (e.g., ITU-T).
The sub-profile may correspond to a subset of the coding tools included in the representative profile and may be a group including coding tools for a particular purpose. For example, only royalty-free coding tools may be included in the sub-profile. The representative profile may be used as a decoding profile of the corresponding sequence, and the sub-profile may be used as information about the coding tools actually used in the corresponding sequence.
Examples of sub-profiles given under the assumption that the profiles defined in Table 5 (Profile-A, profile-B, profile-C and Profile-D) are representative profiles are shown in Table 31 below.
TABLE 31
Configuration file name First tool Second tool Third tool Fourth tool Fifth tool ... Max th tool
Profile-A tool-a tool-b tool-c - - - -
Profile.A.1 tool-a - tool-c - - - -
Profile-B tool-a tool-c tool-d tool-e tool-g - -
Profile-B.1 tool-a tool-c tool-d - - - -
Profile-B.2 - - tool-d tool-e tool-g - -
Profile-C tool-b tool-d tool-f - - - -
Profile-C.1 - tool-d tool-f - - - -
Profile-D tool-b tool-c tool-f tool-g - - -
Profile-D.1 tool-b - tool-f - - - -
As shown in Table 31, profile-A.1 may be included as a sub-Profile in Profile-A, profile-B.1 and Profile-B.2 may be included as sub-profiles in Profile-B, profile-C.1 may be included as a sub-Profile in Profile-C, and Profile-D.1 may be included as a sub-Profile in Profile-D.
The syntax structure of this embodiment is shown in table 32 below.
TABLE 32
profile_tier_level(){ Descriptor for a computer
profile_idc
sub-profile_idc
...
As shown in table 32, the video encoding device may use a profile syntax element (e.g., profile_idc, representative profile syntax element) to specify or define any of the representative profiles. The video encoding device may also use a sub-profile syntax element (e.g., sub-profile_idc or general_sub_profile_idc) to specify or define one or more sub-profiles (including sub-profiles of the actually enabled encoding tools) among the sub-profiles included in the specified profile. The sub-profile specified by the sub-profile syntax element may correspond to a target profile.
There may be multiple sub-profile syntax elements. That is, the plurality of sub-profiles may be indicated by a sub-profile syntax element. In this case, information about the number of sub-profile syntax elements (e.g., num_sub_profiles) may be additionally signaled.
In this embodiment, the video decoding apparatus may decode the representative profile syntax element from the bitstream (S1510), and decode the sub-profile syntax element from the bitstream (S1530). The sub-profile indicated by the sub-profile syntax element among the sub-profiles included in the representative profile indicated by the profile syntax element may be designated as the target profile. In an embodiment in which a plurality of sub-profile syntax elements are signaled, the video decoding apparatus may first decode information regarding the number of sub-profile syntax elements (S1520) and then decode as many sub-profile syntax elements as the number indicated by the decoded number information (S1530).
Once it is determined whether to turn on/off the encoding tool by the above-described various embodiments, the process of setting the variables/flags as shown in the following tables 33 and 34 may be performed. Table 33 shows a process of setting variables/flags using a profile syntax element (profile_idc) and an enable syntax element (coding_tool_enabled_flag [ j ]), and table 34 shows a process of setting variables/flags using a profile syntax element (profile_idc) and a disable syntax element (coding_tool_disabled_flag [ j ]).
TABLE 33
TABLE 34
As described above, information about actually used encoding tools among a plurality of encoding tools can be presented. Accordingly, the video decoding apparatus of the present disclosure can selectively turn on/off a specific encoding tool.
As an example, the video decoding apparatus may turn on/off the merge function based on an encoding tool syntax element (merge_enabled_flag in tables 33 and 34) indicating whether to apply the merge mode in an operation of determining the encoding mode of the current block. Fig. 13 and 14 comparatively illustrate this example.
As shown in fig. 13, in the conventional method, whether the encoding mode of the current block is the merge mode may be determined through an operation S1310 of parsing and decoding a skip_flag, an operation S1320 of determining whether the encoding mode of the current block is the skip mode according to an indication of the skip_flag, an operation S1340 of parsing and decoding a pred_mode_flag when the encoding mode of the current block is not the skip mode, an operation S1350 of determining whether the encoding mode of the current block is the intra mode according to an indication of the pred_mode_flag, an operation S1360 of parsing and decoding a part_mode when the encoding mode of the current block is not the intra mode, an operation S1370 of parsing and decoding a merge_flag, and an operation S1380 of determining whether the encoding mode of the current block is the merge mode according to an indication of the merge_flag.
In contrast, in the present disclosure (fig. 14), the on/off of the merge function may be determined using an encoding tool syntax element indicating whether to apply the merge mode before operation S1480 of parsing and decoding the merge_flag. When the merge function is off, the operation of determining the coding mode of the current block may be performed with the merge mode excluded. Accordingly, the operation S1480 of parsing and decoding the merge_flag, the operation S1490 of determining the content indicated by the merge_flag, and the operation S1492 of parsing and decoding the merge_idx (S1492) may be excluded. Accordingly, the complexity of determining the coding mode of the current block may be reduced.
Although the exemplary embodiments have been described for illustrative purposes, those skilled in the art will appreciate that various modifications, adaptations, and changes can be made without departing from the spirit and scope of the embodiments. For simplicity and clarity, the exemplary embodiments have been described. Thus, it will be understood by those of ordinary skill that the scope of the embodiments is not limited by the embodiments explicitly described above, but is included in the claims and their equivalents.
Cross Reference to Related Applications
The present application claims priority from patent application No.10-2018-0161254, filed in korea at 13 of 12 in 2018, and patent application No.10-2019-0140653, filed in korea at 11 of 6 in 2019, the entire contents of which are incorporated herein by reference.

Claims (13)

1. A method performed by a video decoding apparatus, the method comprising:
decoding, from a bitstream containing encoded video data, a profile syntax element indicating a target profile from among available profiles that can be used to decode the encoded video data;
decoding, from the bitstream, syntax elements indicating a number of sub-profiles usable for decoding the encoded video data, each of the sub-profiles being different from the target profile in at least one of the available encoding tools;
decoding one or more sub-profile syntax elements from the bitstream based on the number of sub-profiles, each of the one or more sub-profile syntax elements indicating a respective sub-profile;
decoding constraint syntax elements for configurable coding tools included in any one of the available configuration files from the bitstream, at least one of the constraint syntax elements indicating whether constraints are commonly imposed on several configurable coding tools, other ones of the constraint syntax elements indicating whether constraints are imposed on respective configurable coding tools;
Decoding, from the bitstream, an enable syntax element for each of the configurable coding tools, the enable syntax element indicating whether the respective configurable coding tool is enabled; and
whether to turn on/off a target encoding tool for a given sequence of the encoded video data based on the enable syntax element,
wherein when the constraint syntax element for a given target coding tool indicates that the constraint is applied, the enabling syntax element for the given target coding tool is expected to indicate that the given target coding tool is not enabled.
2. The method according to claim 1,
wherein setting whether to turn on/off a target encoding tool for the given sequence of the encoded video data based on the enable syntax element comprises:
setting a target coding tool among the target coding tools that is not indicated as being subject to the constraint by the constraint syntax element and is indicated as being enabled by the enable syntax element to be on; and
a target encoding tool of the target encoding tools that is indicated as being either subject to the constraint by the constraint syntax element or not indicated as being enabled by the enable syntax element is set to off.
3. The method of claim 1, wherein decoding the enabling syntax element for a given target encoding tool is skipped when the constraint syntax element for the given target encoding tool indicates that the constraint is applied.
4. The method of claim 1, wherein when a block belonging to the given sequence is decoded, skipping decoding of a syntax element indicating whether the target coding tool set to off is enabled for the block.
5. The method of claim 1, wherein the target coding tool for the given sequence comprises the configurable coding tool included in the target profile.
6. The method of claim 1, wherein the target coding tool for the given sequence comprises the configurable coding tool included in any of the available configuration files.
7. A method performed by a video encoding apparatus, the method comprising:
encoding a profile syntax element indicating a target profile among available profiles that can be used to decode encoded video data into a bitstream containing the encoded video data;
Encoding syntax elements into the bitstream indicating a number of sub-profiles available for decoding the encoded video data, each of the sub-profiles being different from the target profile in at least one of the available encoding tools;
encoding one or more sub-profile syntax elements into the bitstream based on the number of sub-profiles, each of the one or more sub-profile syntax elements indicating a respective sub-profile;
encoding constraint syntax elements for configurable coding tools included in any one of the available configuration files into the bitstream, at least one of the constraint syntax elements indicating whether constraints are commonly imposed on several configurable coding tools, other ones of the constraint syntax elements indicating whether constraints are imposed on respective configurable coding tools;
encoding an enabling syntax element for each of the configurable coding tools into the bitstream, the enabling syntax element indicating whether the respective configurable coding tool is enabled; and
whether to turn on/off a target encoding tool for a given sequence of the encoded video data based on the enable syntax element,
Wherein when the constraint syntax element for a given target coding tool indicates that the constraint is applied, the enabling syntax element for the given target coding tool is expected to indicate that the given target coding tool is not enabled.
8. The method of claim 7, wherein setting whether to turn on/off a target encoding tool for the given sequence of the encoded video data based on the enable syntax element comprises:
setting a target coding tool among the target coding tools that is not indicated as being subject to the constraint by the constraint syntax element and is indicated as being enabled by the enable syntax element to be on; and
a target encoding tool of the target encoding tools that is indicated as being either subject to the constraint by the constraint syntax element or not indicated as being enabled by the enable syntax element is set to off.
9. The method of claim 7, wherein when the constraint syntax element for the given target coding tool indicates that the constraint is applied, skipping encoding of the enable syntax element for the given target coding tool.
10. The method of claim 7, wherein when a block belonging to the given sequence is encoded, skipping encoding of a syntax element indicating whether the target encoding tool set to off is enabled for the block.
11. The method of claim 7, wherein the target coding tool for the given sequence comprises the configurable coding tool included in the target profile.
12. The method of claim 7, wherein the target coding tool for the given sequence comprises the configurable coding tool included in any of the available configuration files.
13. A method for providing video data to a video decoding device, the method comprising:
encoding video data into a bitstream; and
transmitting the bitstream to the video decoding device,
wherein encoding the video data into the bitstream comprises:
encoding a profile syntax element into the bitstream indicating a target profile among available profiles that can be used to decode the video data;
encoding syntax elements into the bitstream indicating a number of sub-profiles available for decoding the video data, each of the sub-profiles being different from the target profile in at least one of the available encoding tools;
encoding one or more sub-profile syntax elements into the bitstream based on the number of sub-profiles, each of the one or more sub-profile syntax elements indicating a respective sub-profile;
Encoding constraint syntax elements for configurable coding tools included in any one of the available configuration files into the bitstream, at least one of the constraint syntax elements indicating whether constraints are commonly imposed on several configurable coding tools, other ones of the constraint syntax elements indicating whether constraints are imposed on respective configurable coding tools;
encoding an enabling syntax element for each of the configurable coding tools into the bitstream, the enabling syntax element indicating whether the respective configurable coding tool is enabled; and
setting whether to turn on/off a target encoding tool for a given sequence of encoded video data based on the enable syntax element,
wherein when the constraint syntax element for a given target coding tool indicates that the constraint is applied, the enabling syntax element for the given target coding tool is expected to indicate that the given target coding tool is not enabled.
CN201980081961.0A 2018-12-13 2019-12-11 Coding tool setting method and image decoding apparatus Active CN113170204B (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202410375145.3A CN118250476A (en) 2018-12-13 2019-12-11 Method performed by video encoding/decoding apparatus and method of providing video data
CN202410375147.2A CN118250477A (en) 2018-12-13 2019-12-11 Video encoding/decoding apparatus and apparatus for providing video data
CN202410375148.7A CN118250478A (en) 2018-12-13 2019-12-11 Method performed by video encoding/decoding apparatus and method of providing video data
CN202410375150.4A CN118250479A (en) 2018-12-13 2019-12-11 Video encoding/decoding apparatus and apparatus for providing video data

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR20180161254 2018-12-13
KR10-2018-0161254 2018-12-13
KR1020190140653A KR20200073117A (en) 2018-12-13 2019-11-06 Method and apparatus for setting coding tool
KR10-2019-0140653 2019-11-06
PCT/KR2019/017444 WO2020122574A1 (en) 2018-12-13 2019-12-11 Coding tool setting method and image decoding apparatus

Related Child Applications (4)

Application Number Title Priority Date Filing Date
CN202410375147.2A Division CN118250477A (en) 2018-12-13 2019-12-11 Video encoding/decoding apparatus and apparatus for providing video data
CN202410375150.4A Division CN118250479A (en) 2018-12-13 2019-12-11 Video encoding/decoding apparatus and apparatus for providing video data
CN202410375145.3A Division CN118250476A (en) 2018-12-13 2019-12-11 Method performed by video encoding/decoding apparatus and method of providing video data
CN202410375148.7A Division CN118250478A (en) 2018-12-13 2019-12-11 Method performed by video encoding/decoding apparatus and method of providing video data

Publications (2)

Publication Number Publication Date
CN113170204A CN113170204A (en) 2021-07-23
CN113170204B true CN113170204B (en) 2024-04-16

Family

ID=71138246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980081961.0A Active CN113170204B (en) 2018-12-13 2019-12-11 Coding tool setting method and image decoding apparatus

Country Status (2)

Country Link
KR (1) KR20200073117A (en)
CN (1) CN113170204B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230098691A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension with extended precision

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409929A (en) * 1999-11-12 2003-04-09 通用仪器公司 MPEG-4 rideo specific control packet for providing customized set of coding tools
CN104471943A (en) * 2012-07-20 2015-03-25 高通股份有限公司 Parameter sets in video coding
CN104704843A (en) * 2012-10-04 2015-06-10 高通股份有限公司 Indication of video properties
CN106664424A (en) * 2014-01-03 2017-05-10 诺基亚技术有限公司 Parameter set coding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10382752B2 (en) * 2013-10-15 2019-08-13 Sony Corporation Image processing device and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409929A (en) * 1999-11-12 2003-04-09 通用仪器公司 MPEG-4 rideo specific control packet for providing customized set of coding tools
CN104471943A (en) * 2012-07-20 2015-03-25 高通股份有限公司 Parameter sets in video coding
CN104704843A (en) * 2012-10-04 2015-06-10 高通股份有限公司 Indication of video properties
CN106664424A (en) * 2014-01-03 2017-05-10 诺基亚技术有限公司 Parameter set coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Interoperability point signaling for VVC;BOYCE, Jill 等;Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10–18 July 2018;摘要,第1-4节 *

Also Published As

Publication number Publication date
KR20200073117A (en) 2020-06-23
CN113170204A (en) 2021-07-23

Similar Documents

Publication Publication Date Title
US11368722B2 (en) Method and device for encoding or decoding video
US20160080753A1 (en) Method and apparatus for processing video signal
US11973966B2 (en) Method and apparatus for efficiently coding residual blocks
US11812061B2 (en) Method and device for encoding or decoding video
CN114731444B (en) Method and decoding apparatus for restoring residual block of chroma block
US11924453B2 (en) Coding tool setting method and video decoding apparatus
CN113170204B (en) Coding tool setting method and image decoding apparatus
CN114175635A (en) Method and apparatus for deriving intra prediction mode
CN113841403A (en) Inverse quantization apparatus and method used in image decoding apparatus
CN113424544A (en) Filtering method and image decoding device
CN114303372B (en) Method for adaptively setting resolution and image decoding apparatus
KR20210043436A (en) Method and apparatus for constructing reference picture list
CN114009031A (en) Method for restoring chrominance block and apparatus for decoding image
KR20210035025A (en) Lossless recontruction method and apparatus for using the same
KR20210038289A (en) Method and apparatus for constructing reference sample
KR20210037506A (en) Method and apparatus for reconstructing residual block of chroma block

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant