Method and apparatus for deriving a block vector of chroma block

KR103019888B1Active Publication Date: 2026-09-15SK TELECOM CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
KR1020190136655
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-25
Filing Date
2019-10-30
Publication Date
2026-09-15
Estimated Expiration
2039-10-30

Smart Images

  • Figure 112019111251342-PAT00028_ABST
    Figure 112019111251342-PAT00028_ABST
Patent Text Reader

Abstract

A method for deriving block vectors of a chroma block and an image decoding device are disclosed. According to one embodiment of the present invention, a method for deriving a block vector of a chroma block encoded in an ibc (intra block copy) mode is provided, comprising: a step of deriving one or more samples to be used for deriving the block vector of the chroma block from one or more samples within a luminance region corresponding to the chroma block; and a step of deriving the block vector of the chroma block using the block vector corresponding to the derivation sample.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present invention relates to the encoding and decoding of images, and more specifically, to a method for deriving a block vector of a chroma block and an image decoding device that improves the efficiency of encoding and decoding by deriving a block vector of a chroma block from various candidates. Background Technology

[0002] Since video data contains a large amount of data compared to audio or still image data, storing or transmitting it as is without compression processing requires significant hardware resources, including memory.

[0003] Therefore, typically, when storing or transmitting video data, an encoder is used to compress the video data for storage or transmission, and a decoder receives the compressed video data, decompresses it, and plays it. Such video compression technologies include H.264 / AVC, as well as HEVC (High Efficiency Video Coding), which improves coding efficiency by about 40% compared to H.264 / AVC.

[0004] However, as video size, resolution, and frame rates are gradually increasing, and the amount of data that needs to be encoded is also growing accordingly, a new compression technology is required that offers better encoding efficiency and higher image quality improvement effects than existing compression technologies. The problem to be solved

[0005] To meet these requirements, the present invention aims to provide improved image encoding and decoding technology. In particular, one aspect of the present invention relates to a technology that improves the efficiency of encoding and decoding through various methods capable of deriving block vectors of chroma blocks. means of solving the problem

[0006] One aspect of the present invention provides a method for deriving a block vector of a chroma block encoded in an ibc (intra block copy) mode, comprising: a step of deriving one or more samples to be used for deriving the block vector of the chroma block from one or more samples within a luminance region corresponding to the chroma block; and a step of deriving the block vector of the chroma block using the block vector corresponding to the derived samples.

[0007] Another aspect of the present invention provides an image decoding device comprising: a derivation unit for deriving one or more samples to be used to derive a block vector of the chroma block from one or more samples within a luminance region corresponding to a chroma block encoded in an ibc (intra block copy) mode; and a derivation unit for deriving a block vector of the chroma block using a block vector corresponding to the derived samples. Effects of the invention

[0008] As described above, according to one embodiment of the present invention, not only can the complexity of the process of encoding / decoding a chroma block in IBC mode be reduced, but performance improvement in terms of compression efficiency can also be expected. Brief explanation of the drawing

[0009] FIG. 1 is an exemplary block diagram of an image encoding device capable of implementing the technologies of the present disclosure. Figure 2 is a diagram illustrating a method for dividing blocks using a QTBTTT structure. Figure 3 is a diagram illustrating multiple intra-prediction modes. FIG. 4 is an exemplary block diagram of an image decoding device capable of implementing the technologies of the present disclosure. Figure 5 is a diagram illustrating the current picture reference technology. Figure 6 is a diagram illustrating a conventional method for distinguishing prediction modes. FIG. 7 is a flowchart illustrating an example of how the present invention is applied. Figure 8 is a diagram illustrating a dual tree partitioning structure. Figure 9 is a diagram illustrating candidate blocks for predicting a lumablock in ibc mode. FIG. 10 is an exemplary block diagram of a prediction unit capable of implementing the technologies of the present disclosure. Figure 11 is a flowchart illustrating an example of deriving the block vector of a chroma block. Figure 12 is a diagram illustrating an example in which the block vector of a luma block is stored in units of image areas within the luma area. Figure 13 is a diagram illustrating the locations within the luma region used to derive the block vector of the chroma block. FIGS. 14 to 19 are drawings for illustrating various embodiments of deriving block vectors of chroma blocks. Figure 20 is an example of reference regions indicated by candidate block vectors. Figure 21 is a flowchart illustrating a method for deriving the block vector of a chroma block. Figure 22 is an example diagram illustrating an example of deriving a target sample. Figure 23 is an example of surrounding blocks adjacent to a chroma block. Specific details for implementing the invention

[0010] Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that in assigning identification symbols to the components of each drawing, the same components are assigned the same symbol whenever possible, even if they are shown in different drawings. Furthermore, in describing the present invention, if it is determined that a detailed description of related known components or functions could obscure the essence of the invention, such detailed description is omitted.

[0012] FIG. 1 is an exemplary block diagram of an image encoding device capable of implementing the technologies of the present disclosure. Hereinafter, the image encoding device and its sub-components will be described with reference to FIG. 1.

[0013] The video encoding device may be configured to include a block division unit (110), a prediction unit (120), a subtractor (130), a conversion unit (140), a quantization unit (145), an encoding unit (150), an inverse quantization unit (160), an inverse conversion unit (165), an adder (170), a filter unit (180), and a memory (190).

[0014] Each component of the video encoding device may be implemented in hardware or software, or as a combination of hardware and software. Additionally, the function of each component may be implemented in software, and a microprocessor may be implemented to execute the software function corresponding to each component.

[0015] A single image (video) consists of multiple pictures. Each picture is divided into multiple regions, and encoding is performed for each region. For example, a single picture is divided into one or more tiles or / and slices. Here, one or more tiles can be defined as a tile group. Each tile or / slice is divided into one or more Coding Tree Units (CTUs). And each CTU is divided into one or more Coding Units (CUs) by a tree structure. Information applicable to each CU is encoded as the syntax of the CU, and information applicable to all CUs included in a single CTU is encoded as the syntax of the CTU. Additionally, information applicable to all blocks within a single tile is encoded as the syntax of the tile or as the syntax of the tile group, which is a collection of multiple tiles, and information applicable to all blocks constituting a single picture is encoded in the Picture Parameter Set (PPS) or the picture header. Furthermore, information that is commonly referenced by multiple pictures is encoded in a Sequence Parameter Set (SPS). And, information that is commonly referenced by one or more SPSs is encoded in a Video Parameter Set (VPS).

[0016] The block division unit (110) determines the size of the Coding Tree Unit (CTU). Information regarding the size of the CTU (CTU size) is encoded as a syntax of SPS or PPS and transmitted to an image decoder.

[0017] The block division unit (110) divides each picture constituting the image into multiple Coding Tree Units (CTUs) having a predetermined size, and then recursively divides the CTUs using a tree structure. The leaf nodes in the tree structure become the coding units (CUs) which are the basic units of coding.

[0018] The tree structure may be a QuadTree (QT) in which an upper node (or parent node) is divided into four lower nodes (or child nodes) of equal size, a BinaryTree (BT) in which an upper node is divided into two lower nodes, a TernaryTree (TT) in which an upper node is divided into three lower nodes in a 1:2:1 ratio, or a structure that combines two or more of these QT, BT, and TT structures. For example, a QTBT (QuadTree plus BinaryTree) structure may be used, or a QTBTTT (QuadTree plus BinaryTree TernaryTree) structure may be used. Here, BTTT combined can be referred to as an MTT (Multiple-Type Tree).

[0019] FIG. 2 shows a QTBTTT splitting tree structure. As seen in FIG. 2, the CTU can first be split into a QT structure. Quadtree splitting can be repeated until the size of the splitting block reaches the minimum block size of the leaf node allowed in QT (MinQTSize). A first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of the lower layer is encoded by the encoding unit (150) and signaled to the image decoder. If the leaf node of the QT is not larger than the maximum block size of the root node allowed in BT (MaxBTSize), it can be further split into one or more of the BT structure or TT structure. In the BT structure and / or TT structure, multiple splitting directions may exist. For example, there may be two directions in which the block of the corresponding node is split horizontally and vertically. As shown in FIG. 2, when MTT splitting begins, a second flag (mtt_split_flag) indicating whether the nodes have been split, and if splitting has occurred, a flag indicating the splitting direction (vertical or horizontal) and / or a flag indicating the splitting type (Binary or Ternary) are encoded by the encoding unit (150) and signaled to the image decoding device.

[0020] As another example of a tree structure, when splitting a block using a QTBTTT structure, information such as a CU split flag (split_cu_flag) indicating that it has been split and a QT split flag (split_qt_flag) indicating whether the split type is QT split is encoded by the encoding unit (150) and signaled to the video decoder. If the CU split flag (split_cu_flag) value indicates that it has not been split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a CU (coding unit), which is the basic unit of coding. If the CU split flag (split_cu_flag) value indicates that it has been split, the split type is distinguished as QT or MTT through the QT split flag (split_qt_flag) value. When the split type is QT, there is no further additional information, and when the split type is MTT, a flag (mtt_split_cu_vertical_flag) indicating the MTT split direction (vertical or horizontal) and / or a flag (mtt_split_cu_binary_flag) indicating the MTT split type (binary or ternary) is additionally encoded by the encoding unit (150) and signaled to the image decoder.

[0021] When QTBT is used as another example of a tree structure, there may be two types: a type that divides the block of the corresponding node horizontally into two blocks of the same size (i.e., symmetric horizontal splitting) and a type that divides it vertically (i.e., symmetric vertical splitting). A splitting flag (split_flag) indicating whether each node of the BT structure is divided into a block of a lower layer and splitting type information indicating the type of splitting are encoded by the encoding unit (150) and transmitted to the image decoding device. Meanwhile, there may also be an additional type that divides the block of the corresponding node into two blocks of an asymmetric shape. The asymmetric shape may include a shape that divides the block of the corresponding node into two rectangular blocks with a size ratio of 1:3, or a shape that divides the block of the corresponding node diagonally.

[0022] A CU can have various sizes depending on the QTBT or QTBTTT partition from the CTU. Hereinafter, the block corresponding to the CU to be encoded or decoded (i.e., the leaf node of QTBTTT) is referred to as the 'current block'.

[0023] The prediction unit (120) predicts the current block and generates a prediction block. The prediction unit (120) includes an intra prediction unit (122) and an inter prediction unit (124).

[0024] Generally, current blocks within a picture can each be predictively coded. Typically, the prediction of a current block can be performed using an intra-prediction technique (using data from the picture containing the current block) or an inter-prediction technique (using data from a picture coded prior to the picture containing the current block). Inter-prediction includes both unidirectional and bidirectional prediction.

[0025] The intra prediction unit (122) predicts pixels within the current block using pixels (reference pixels) located around the current block within the current picture containing the current block. Multiple intra prediction modes exist depending on the prediction direction. For example, as shown in FIG. 3, multiple intra prediction modes may include non-directional modes including planar mode and DC mode, and 65 directional modes. The surrounding pixels to be used and the calculation formula are defined differently for each prediction mode.

[0026] The intra prediction unit (122) can determine the intra prediction mode to use for encoding the current block. In some examples, the intra prediction unit (122) may encode the current block using several intra prediction modes and select an appropriate intra prediction mode to use from the tested modes. For example, the intra prediction unit (122) may calculate rate-distortion values ​​using rate-distortion analysis of several tested intra prediction modes and select an intra prediction mode that has the best rate-distortion features among the tested modes.

[0027] The intra prediction unit (122) selects one intra prediction mode among a plurality of intra prediction modes and predicts the current block using a calculation formula and surrounding pixels (reference pixels) determined according to the selected intra prediction mode. Information regarding the selected intra prediction mode is encoded by the encoding unit (150) and transmitted to the image decoding device.

[0028] The inter-prediction unit (124) generates a prediction block for the current block through a motion compensation process. It searches for the block most similar to the current block within a reference picture that is encoded and decoded before the current picture, and uses the searched block to generate a prediction block for the current block. Then, it generates a motion vector corresponding to the displacement between the current block in the current picture and the prediction block in the reference picture. Generally, motion estimation is performed on the luminance component, and the motion vector calculated based on the luminance component is used for both the luminance component and the chroma component. Motion information, including information about the reference picture used to predict the current block and information about the motion vector, is encoded by the encoding unit (150) and transmitted to the image decoding device.

[0029] The subtractor (130) generates a residual block by subtracting the prediction block generated by the intra prediction unit (122) or the inter prediction unit (124) from the current block.

[0030] The conversion unit (140) converts residual signals within a residual block having pixel values ​​in a spatial domain into conversion coefficients in the frequency domain. The conversion unit (140) can convert residual signals within the residual block using the entire size of the residual block as the conversion unit, or it can divide the residual block into two sub-blocks, a conversion area and a non-conversion area, and convert residual signals using only the conversion area sub-block as the conversion unit. Here, the conversion area sub-block may be one of two rectangular blocks having a size ratio of 1:1 with respect to the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag) indicating that only the sub-block has been converted, directionality (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag) are encoded by the encoding unit (150) and signaled to an image decoder. In addition, the size of the conversion area subblock may have a size ratio of 1:3 based on the horizontal axis (or vertical axis), and in this case, a flag (cu_sbt_quad_flag) distinguishing the division is additionally encoded by the encoding unit (150) and signaled to the image decoding device.

[0031] The quantization unit (145) quantizes the conversion coefficients output from the conversion unit (140) and outputs the quantized conversion coefficients to the encoding unit (150).

[0032] The encoding unit (150) generates a bitstream by encoding quantized transform coefficients using an encoding method such as CABAC (Context-based Adaptive Binary Arithmetic Code). The encoding unit (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 decoder can divide blocks in the same way as the video encoding device.

[0033] Additionally, the encoding unit (150) encodes information about a prediction type indicating whether the current block is encoded by intra prediction or by inter prediction, and encodes intra prediction information (i.e., information about the intra prediction mode) or inter prediction information (information about the reference picture and motion vector) according to the prediction type.

[0034] The inverse quantization unit (160) inversely quantizes the quantized transformation coefficients output from the quantization unit (145) to generate transformation coefficients. The inverse transformation unit (165) converts the transformation coefficients output from the inverse quantization unit (160) from the frequency domain to the spatial domain to restore the residual block.

[0035] The adder (170) restores the current block by adding the restored residual block and the prediction block generated by the prediction unit (120). The pixels within the restored current block are used as reference pixels when intra-predicting the next block in sequence.

[0036] The filter unit (180) performs filtering on the restored pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. caused by block-based prediction and transformation / quantization. The filter unit (180) may include a deblocking filter (182) and a SAO (Sample Adaptive Offset) filter (184).

[0037] The deblocking filter (180) filters the boundaries between restored blocks to remove blocking artifacts caused by block-unit encoding / decoding, and the SAO filter (184) performs additional filtering on the deblocking filtered image. The SAO filter (184) is a filter used to compensate for the difference between the restored pixel and the original pixel caused by lossy coding.

[0038] The restored blocks filtered through the deblocking filter (182) and the SAO filter (184) are stored in memory (190). When all blocks within a picture are restored, the restored picture is used as a reference picture for inter-predicting blocks within a picture to be encoded later.

[0040] FIG. 4 is an exemplary block diagram of an image decoding device capable of implementing the technologies of the present disclosure. Hereinafter, the image decoding device and its sub-components will be described with reference to FIG. 4.

[0041] The image decoding device may be configured to include a decoding unit (410), an inverse quantization unit (420), an inverse transformation unit (430), a prediction unit (440), an adder (450), a filter unit (460), and a memory (470).

[0042] Similar to the image encoding device of FIG. 1, each component of the image decoding device may be implemented in hardware or software, or in combination of hardware and software. Additionally, the function of each component may be implemented in software, and a microprocessor may be implemented to execute the function of the software corresponding to each component.

[0043] The decoding unit (410) decodes the bitstream received from the video encoding device to extract information related to block division, thereby determining the current block to be decoded, and extracts prediction information and information regarding residual signals necessary to restore the current block.

[0044] The decoding unit (410) extracts information about the CTU size from the SPS (Sequence Parameter Set) or PPS (Picture Parameter Set) to determine the size of the CTU and divides the picture into CTUs of the determined size. Then, the CTU is determined as the top layer of the tree structure, i.e., the root node, and divides the CTU using the tree structure by extracting division information for the CTU.

[0045] For example, when splitting a CTU using a QTBTTT structure, first, a first flag (QT_split_flag) related to QT splitting is extracted to split each node into four nodes of the lower layer. Then, for the nodes corresponding to the leaf nodes of QT, a second flag (MTT_split_flag) related to MTT splitting and splitting direction (vertical / horizontal) and / or splitting type (binary / ternary) information are extracted to split the corresponding leaf nodes into an MTT structure. Through this, each node below the leaf nodes of QT is recursively split into a BT or TT structure.

[0046] As another example, when splitting a CTU using the QTBTTT structure, a CU split flag (split_cu_flag) indicating whether the CU is split is first extracted, and if the block is split, a QT split flag (split_qt_flag) is extracted. If the split type is not QT but MTT, a flag (mtt_split_cu_vertical_flag) indicating the MTT split direction (vertical or horizontal) and / or a flag (mtt_split_cu_binary_flag) indicating the MTT split type (Binary or Ternary) are additionally extracted. During the splitting process, each node may undergo zero or more iterative MTT splits following zero or more iterative QT splits. For example, a CTU may undergo MTT splitting immediately, or conversely, only multiple QT splits.

[0047] As another example, when splitting a CTU using a QTBT structure, a first flag (QT_split_flag) related to the splitting of QT is extracted to split each node into four nodes of the lower layer. Then, for the nodes corresponding to the leaf nodes of QT, a split flag (split_flag) indicating whether to further split into BTs and split direction information are extracted.

[0048] Meanwhile, when the decoding unit (410) determines the current block to be decoded through the division of the tree structure, it extracts information regarding the prediction type indicating whether the current block is intra-predicted or inter-predicted. If the prediction type information indicates intra-predicted, the decoding unit (410) extracts syntax elements for the intra-predicted information (intra-predicted mode) of the current block. If the prediction type information indicates inter-predicted, the decoding unit (410) extracts syntax elements for the inter-predicted information, namely information indicating the motion vector and the reference picture that the motion vector refers to.

[0049] Meanwhile, the decoding unit (410) extracts information about the quantized transformation coefficients of the current block as information about the residual signal.

[0050] The inverse quantization unit (420) inversely quantizes the quantized transformation coefficients, and the inverse transformation unit (430) inversely transforms the inversely quantized transformation coefficients from the frequency domain to the spatial domain to restore the residual signals, thereby generating a residual block for the current block.

[0051] Additionally, when the inverse transformation unit (430) inversely transforms only a part of the transformation block (sub-block), it extracts a flag (cu_sbt_flag) indicating that only the sub-block of the transformation block has been transformed, information on the directionality (vertical / horizontal) of the sub-block (cu_sbt_horizontal_flag) and / or information on the position of the sub-block (cu_sbt_pos_flag), restores residual signals by inversely transforming the transformation coefficients of the corresponding sub-block from the frequency domain to the spatial domain, and creates a final residual block for the current block by filling the area that has not been inversely transformed with a "0" value as the residual signal.

[0052] The prediction unit (440) may include an intra prediction unit (442) and an inter prediction unit (444). The intra prediction unit (442) is activated when the prediction type of the current block is an intra prediction, and the inter prediction unit (444) is activated when the prediction type of the current block is an inter prediction.

[0053] The intra prediction unit (442) determines the intra prediction mode of the current block among a plurality of intra prediction modes from the syntax elements for the intra prediction mode extracted from the decoding unit (410), and predicts the current block using reference pixels around the current block according to the intra prediction mode.

[0054] The inter prediction unit (444) determines the motion vector of the current block and the reference picture that the motion vector refers to using the syntax elements for the intra prediction mode extracted from the decoding unit (410), and predicts the current block using the motion vector and the reference picture.

[0055] The adder (450) restores the current block by adding the residual block output from the inverse transformation unit and the prediction block output from the inter prediction unit or the intra prediction unit. The pixels within the restored current block are used as reference pixels when intra-predicting the block to be decoded later.

[0056] The filter unit (460) may include a deblocking filter (462) and an SAO filter (464). The deblocking filter (462) deblocks the boundaries between restored blocks to remove blocking artifacts caused by block-unit decoding. The SAO filter (464) performs additional filtering on the restored blocks after deblocking filtering to compensate for the difference between the restored pixels and the original pixels caused by lossy coding. The restored blocks filtered through the deblocking filter (462) and the SAO filter (464) are stored in memory (470). When all blocks within a picture are restored, the restored picture is used as a reference picture to inter-predict blocks within the picture to be encoded later.

[0058] The prediction modes of the current block can be broadly classified into inter mode, intra mode, and current picture referencing (CPR) mode. CPR mode can be referred to as ibc (intra block copy) mode, and ibc mode is an encoding / decoding method used in SCC (screen content coding). Inter mode may include skip mode, merge mode, and AMVP mode, while ibc mode may include ibc_skip mode, ibc_merge mode, and ibc_BVP mode. ibc_skip mode is the application of ibc mode to skip mode, ibc_merge mode is the application of ibc mode to merge mode, and ibc_BVP mode is the application of ibc mode to AMVP mode. In other words, ibc mode is applicable to all inter modes (skip mode, merge mode, and AMVP mode).

[0059] An example of the ibc mode is illustrated in Fig. 5. Among the blocks included in the current picture of Fig. 5, the blocks marked with a pattern correspond to blocks or regions that have already been decoded (Coded region), and the blocks not marked with a pattern correspond to blocks or regions that have not been decoded (Not coded yet).

[0060] When ibc mode is applied, the prediction information of the current block is obtained from another block (reference block) located within the same picture (current picture). The reference block from which the prediction information of the current block is obtained corresponds to a block that has already been decoded. The reference block is indicated by a motion vector (MV), and in ibc mode, this motion vector can be referred to as a block vector (BV).

[0061] As such, in IBC mode, prediction information for the current block is obtained from the reference block indicated by the block vector, whereas in Intra mode, prediction information is obtained from pixels adjacent to the current block. Additionally, in IBC mode, prediction information is obtained from reference blocks located in the same picture, whereas in Inter mode, prediction information is obtained from reference blocks located in different pictures.

[0062] A conventional method for distinguishing prediction modes, including the ibc mode, is shown in Fig. 6.

[0063] In a conventional method for distinguishing or determining a prediction mode, first, a process (S610) of determining the type of slice (slice_type!=I) containing the current block is performed.

[0064] Slice types may include I-slices (intra slices), P-slices (predictive slices), and B-slices (bi-predictive slices). I-slices allow only intra prediction. Therefore, if the current block is included in an I-slice, a process (S692) of parsing and decoding the information required for intra prediction is performed. In contrast, P-slices and B-slices allow both inter prediction and intra prediction. Therefore, if the current block is not included in an I-slice, additional judgment processes for the current block are performed.

[0065] A process of parsing and decoding a flag (skip_flag) indicating whether the current block is predicted in skip mode (S620) and a process of determining the skip_flag (S630) are performed. If skip_flag is on (skip_flag=1), the prediction mode of the current block corresponds to skip mode. Therefore, in order to obtain movement information used for skip mode prediction, a process of parsing and decoding the merge index (merge_index) (S680) is additionally performed. Conversely, if skip_flag is off (skip_flag=0), the prediction mode of the current block may correspond to any one of the modes other than skip mode (merge mode, AMVP mode, and intra mode). To determine this more accurately, a process of parsing and decoding a flag indicating whether the current block is predicted to be in inter mode or intra mode (a flag indicating whether the current block is predicted to be in intra mode, pred_mode_flag) (S640) and a process of determining pred_mode_flag (S650) are performed.

[0066] If pred_mode_flag indicates an inter mode, the prediction mode of the current block may correspond to either merge mode or AMVP mode. To determine this more accurately, a process of parsing and decoding a flag (merge_flag) indicating whether the current block is predicted to be in merge mode (S660) and a process of determining the merge_flag (S670) are performed. If merge_flag is on (merge_flag=1), the prediction mode of the current block corresponds to merge mode. Therefore, a process of parsing and decoding the merge index (merge_index) (S680) is performed. Conversely, if merge_flag is off (merge_flag=0), the prediction mode of the current block corresponds to AMVP mode. Therefore, a process of parsing and decoding the motion information required for AMVP prediction (S690) is performed.

[0067] Returning to process S650, if pred_mode_flag indicates intra mode, a process (S692) for parsing and decoding the information required for intra prediction is performed.

[0068] In the conventional method described through FIG. 6, the ibc mode may be applied based on whether the reference block for the current block is located within the same picture as the current picture. For example, if the prediction mode of the current block is determined to be skip mode or merge mode, and the reference picture of the merge candidate indicated by merge_idx is the same as the current picture, the current block may be determined and predicted to be ibc_skip mode or ibc_merge mode. As another example, if the prediction mode of the current block is determined to be AMVP mode, and the reference picture index (ref_idx) signaled from the video encoding device indicates the same picture as the current picture, the current block may be determined and predicted to be ibc_BVP mode.

[0069] The on / off status of ibc mode can be defined through separate flags (sps_curr_pic_ref_enabled_flag and pps_curr_pic_ref_enabled_flag), and Tables 1 and 2 below show examples of defining the on / off status of ibc mode through each of the above flags.

[0070] [Table 1]

[0071]

[0072] [Table 2]

[0073]

[0074] In addition, the current picture must be added to the reference picture list to determine whether the reference picture of a merge candidate is the same as the current picture and whether the reference picture index points to the same picture as the current picture. Mathematical Equation 1 below shows an example of how the current picture is added to the reference picture list.

[0075] [Mathematical Formula 1]

[0076] if( pps_curr_pic_ref_enabled_flag )

[0077] RefPicListTemp0[ rIdx++ ] = currPic

[0078] The present invention aims to derive block vectors of chroma blocks encoded or decoded in IBC mode through various embodiments. Before describing the various embodiments proposed in the present invention, an example to which the present invention is applied is explained through FIG. 7.

[0079] The video encoding device can signal by including information (pred_mode_ibc_flag) in the bitstream that indicates whether the current block (luma block) is predicted (encoded) in ibc mode, along with information distinguishing skip mode, merge mode, and / or AMVP mode. The video decoding device can decode pred_mode_ibc_flag (S710) and determine whether the current block is predicted in ibc mode (predMode==IBC?) based on what is indicated by pred_mode_ibc_flag (S720). Through this, it can be determined whether the prediction mode of the current block corresponds to skip mode (ibc_skip), merge mode (ibc_merge), and / or AMVP mode (ibc_BVP).

[0080] If the luma block and the chroma block have the same partition tree structure (single tree), pred_mode_ibc_flag can be signaled and decoded only for the luma block. If the luma block and the chroma block have different partition tree structures (dual tree), pred_mode_ibc_flag can be signaled and decoded for the luma block and the chroma block, respectively.

[0081] Whether the luma block and chroma block are dual trees can be signaled from the video encoder to the video decoder by defining at one or more locations among the sequence-level header, picture-level header, slice header, or tile group header. Whether they are dual trees can be indicated using a separate flag (qtbtt_dual_tree_intra_flag). For example, if qtbtt_dual_tree_intra_flag=1, it may mean that the luma block and chroma block are dual trees, and if qtbtt_dual_tree_intra_flag=0, it may mean that the luma block and chroma block are not dual trees (same block partitioning structure, single tree).

[0082] An example of a dual tree is shown in Fig. 8. Fig. 8 (a) shows the split tree structure of a lumablock for a CTU, and Fig. 8 (b) shows the split tree structure of a chromablock for the same CTU. The example shown in Fig. 8 sets the CTU size of the lumablock for the YUV 4:2:0 format to 32x32 and the CTU size of the chromablock (cb, cr) to 16x16.

[0083] The left luminance area of ​​FIG. 8 (a) (the area indicated by the upward-sloping pattern) corresponds positionally to the left chroma block of FIG. 8 (b) (the area indicated by the upward-sloping pattern), and the right luminance area of ​​FIG. 8 (a) (the area indicated by the downward-sloping pattern) corresponds positionally to the right chroma block of FIG. 8 (b) (the area indicated by the downward-sloping pattern). In this specification, chroma blocks and luminance areas that correspond to each other in position are defined as corresponding to each other.

[0084] The image decoder can perform inter prediction or intra prediction for the current block when the current block is not predicted in ibc mode. Here, intra prediction may refer to a regular intra mode distinct from the ibc mode. That is, the intra prediction method for a chroma block can be divided into 1) regular intra mode and 2) ibc mode. A chroma block within an I-slice (or I-tile group) can be predicted using one of the two prediction methods above. When the current block is predicted in ibc mode, the image decoder can determine whether the lumina block and the chroma block are dual trees (S730).

[0085] In the case of a single tree, the image decoder can determine the current restoration target among the luma block and the chroma block (S740). If the current restoration target is the luma block, the block vector of the luma block can be derived (S760). If the current restoration target is the chroma block, the block vector of the chroma block can be derived by setting the block vector of the luma block corresponding to the chroma block as the block vector of the chroma block (S750).

[0086] In the case of a dual tree, the image decoding device can derive the block vector of the lumina block and the block vector of the chroma block using any one of the methods proposed in the present invention (S770).

[0087] First, the block vector derivation process of the Lumablock performed in the S760 and S770 processes is explained.

[0088] In the case of ibc_skip mode or ibc_merge mode, the image decoder can derive the block vector of the luma block using motion information (block vector) of a candidate indicated by the merge index (merge_idx) signaled by the image encoder, among the candidates included in the candidate list. In the case of ibc_BVP mode, the image decoder can derive the block vector using the predicted block vector (block vector predictor, bvp) indicated by the bv_idx signaled by the image encoder and the difference block vector (block vector difference, bvd) signaled by the image encoder, among the candidates included in the candidate list. In this case, separate reference picture index information for ibc_BVP mode is not signaled.

[0089] The candidate list may include one or more candidates that can be used to derive the block vector of the lumablock. Candidates that can constitute the candidate list may include 1) one or more spatial candidates, 2) one or more history-based block vector predictors (HBVP), 3) zero block vectors, etc.

[0090] Spatial candidates may refer to neighboring blocks that are spatially adjacent to the luma block. Spatial candidates may include a neighboring block (B1) located above the current block (CU) and a neighboring block (A1) located to the left of the current block (Fig. 9). The video encoding / decoding device may search for spatial candidates in the order A1 → B1 and include the spatial candidate (or block vector of the spatial candidate) predicted in ibc mode in the candidate list. Up to two spatial candidates may be included in the candidate list. If the block vectors of the spatial candidates are identical, the duplicate spatial candidate (block vector of the duplicate spatial candidate) is not included in the candidate list. In other words, duplication of spatial candidates is not allowed.

[0091] HBVP may refer to blocks predicted in ibc mode among blocks that have already been decrypted (predicted) before the current block is decrypted. In order to use the BVs of blocks predicted in ibc mode for the prediction of the current block, a configuration for storing the BVs of blocks predicted in ibc mode is required. In the present invention, this 'storing configuration' is referred to as an HBV (history-based BV) for ibc mode. The HBV may have a FIFO (first in first out) structure capable of storing one or more BVs.

[0092] The video encoding / decoding device can store the BVs of blocks that have been predicted in ibc mode sequentially (FIFO) in the HBV according to the prediction order (decoding order). When the video encoding / decoding device intends to predict a specific block (current block) in ibc mode, it can search sequentially (in reverse order of storage or in reverse order of decoding) starting from the last BV stored in the HBV to select one or more BVs, and then include the selected BVs in the BVP candidate list. The video encoding / decoding device can include the HBVP in the candidate list when the number of spatial candidates included in the candidate list is less than the maximum number of candidates that can be included in the candidate list.

[0093] If the number of spatial candidates and HBVPs included in the candidate list is less than the maximum number of candidates that can be included in the candidate list, then zero block vectors may be further included in the candidate list.

[0094] The process of deriving the block vector of a chroma block can be performed without signaling additional motion information (block vector). That is, in the present invention, merge_flag and merge_idx, which are signaled in the ibc_skip and ibc_merge modes of the conventional method, may not be signaled. Additionally, in the present invention, bvp and bvd, which are signaled in the ibc_BVP mode of the conventional method, may not be signaled. Therefore, the block vector of a chroma block can be derived from the lumens region or surrounding blocks corresponding to the chroma block.

[0096] An image decoding device capable of implementing the invention of the present disclosure may be configured to include an extraction unit (1010), an induction unit (1020), a prediction execution unit (1030), and a list configuration unit (1040).

[0097] The derivation unit (1010) can determine one or more candidates (target candidates) that satisfy a preset condition among available candidates (S1110).

[0098] Available candidates correspond to candidates available for deriving the block vector of the chroma block. Available candidates may include 1) one or more locations within the luminance region corresponding to the chroma block (or samples located at those locations), and 2) unit regions within the luminance region corresponding to the chroma block. Unit regions will be described later. Additionally, available candidates may include 3) one or more neighboring blocks located adjacent to the chroma block, 4) one or more candidates (HBVP) stored in the HBV for ibc mode, and 5) default candidates such as zero vectors.

[0099] Pre-set conditions may include whether available candidates have been encoded / decoded (predicted) in ibc mode, whether they are indicated by instruction information, etc.

[0100] Among the available candidates, candidates satisfying pre-set conditions may be referred to as 'target candidates'. For example, in relation to Example 1), among the samples located at a specific position within the luminance region corresponding to the chroma block, a sample predicted by ibc mode or indicated by instruction information may be referred to as a target sample.

[0101] In relation to embodiment 1), in order to derive the block vector of the chroma block from the block vector corresponding to the target sample, the block vector of the luminance region must be stored in memory (190, 470) in advance. Also, in relation to embodiment 2), in order to derive the block vector of the chroma block from the block vector of the target region (a region among the unit regions that satisfies a pre-set condition), the block vector of the luminance region must be stored in memory (190, 470) in advance.

[0102] In the present invention, block vectors can be stored corresponding to an NxN unit area (unit of an image area within the luminance area) within the luminance area, where N is a specific constant.

[0103] An example of block vectors stored corresponding to unit regions within a luminance region is shown in FIG. 12. FIG. 12 (a) shows the intra prediction mode of each luminance block within the luminance region, and FIG. 12 (b) shows an example of block vectors of luminance blocks being stored. In FIG. 12 (a), luminance blocks (unit regions) marked with a pattern indicate that they were encoded / decoded in ibc mode, and luminance blocks (unit regions) not marked with a pattern indicate that they were encoded / decoded in regular intra mode. In FIG. 12 (b), the regions separated by dotted and solid lines represent unit regions of size 4x4 (N=4). In this case, block vectors of luminance blocks encoded / decoded in ibc mode can be pre-stored in memory (190, 470) corresponding to each unit region (a total of 64).

[0104] As shown in FIG. 12 (b), samples located within the luminance region are included in the luminance block and are included in the unit region. Therefore, the 'block vector corresponding to a sample within the luminance region' can have the same meaning as the 'block vector stored corresponding to the luminance block containing the sample' or the 'block vector stored corresponding to the unit region containing the sample'.

[0105] The induction unit (1020) can induce a block vector of a chroma block using a block vector corresponding to a target candidate (S1120).

[0106] The block vector of a chroma block can be derived from the block vectors of available candidates. For example, the block vector of a chroma block can be derived from 1) the block vector of a sample within the luminance region corresponding to the chroma block, 2) the block vector stored in the unit region, 3) the block vector of neighboring blocks adjacent to the chroma block, 4) one or more candidates stored in the HBV for ibc mode, or 5) the default candidate.

[0107] The process of deriving the block vector of the chroma block can be implemented by scaling the block vector of the target candidate, or by calculating the difference in sample values ​​(pixel values) between each of the reference regions indicated by the target candidate's block vector and the reference region of the chroma block. Additionally, this process may be implemented by calculating the median or middle value of the target candidate's block vectors.

[0108] Block vector scaling of target candidates can be implemented through the following mathematical equations 2 and 3.

[0109] [Mathematical Formula 2]

[0110]

[0111] [Mathematical Formula 3]

[0112]

[0113] In mathematical formulas 2 and 3, SubWidthC and SubHeightC represent scaling values ​​according to the chroma format and separate color plane, and these values ​​are defined in Table 3 below.

[0114] [Table 3]

[0115]

[0116] Meanwhile, the present invention presupposes that the ibc mode is activated and that the Lumablock and Chromablock are divided into a dual tree.

[0117] Whether ibc mode is enabled can be determined via a flag (ibc_enabled_flag) that controls the activation or deactivation of ibc mode. ibc_enabled_flag can be defined at one or more locations among the sequence-level header, picture-level header, slice header, or tile group header and signaled from the video encoder to the video decoder. "ibc_enabled_flag=1" indicates that ibc mode is enabled, and "ibc_enabled_flag=0" indicates that ibc mode is disabled. pred_mode_ibc_flag can be signaled from the video encoder to the video decoder when ibc_enabled_flag=1. Whether the lumablock and chromablock are dual trees can be indicated using a separate flag (qtbtt_dual_tree_intra_flag) as previously described.

[0118] The prediction execution unit (1030) can predict the chroma block in ibc mode based on the derived block vector (S1130). Specifically, the prediction execution unit (1030) can generate predicted samples of the chroma block from samples of the block (reference block) indicated by the derived block vector within the current picture.

[0120] Example 1

[0121] Example 1 is a method for deriving a block vector of a chroma block by using a sample or unit region located within a luminance region corresponding to the chroma block as a available candidate and utilizing whether it was predicted in ibc mode as a condition. Below, Example 1 will be described focusing on an example in which a sample located within a luminance region is used as a available candidate.

[0122] Sample

[0123] Samples can be located at various positions within the luma region, and their number (n) can be one or more (n≥1). Information regarding the number of samples may be defined in one or more of the sequence-level header, picture-level header, slice header, or tile group header, set via separate flag transmission, or defined and used commonly by the video encoding / decoding device without signaling.

[0124] Samples can be positioned in various locations and in various numbers within the luminance region. For example, the samples may consist of a total of 5 samples, such as the TL (top-left) sample located at the top-left of the luminance region, the TR (top-right) sample located at the top-right, the CR (center) sample located in the center, the BL (bottom-left) sample located at the bottom-left, and the BR (bottom-right) sample located at the bottom-right. As another example, the samples may consist of a total of 6 samples, such as the CR sample, the L (left) sample located on the left side of the luminance region, the A (above) sample located at the top, the AR (above-right) sample located at the top-right, the BL sample, and the TL sample.

[0125] An example of the number of samples (n=5) and their positions within the luminance region is shown in Fig. 13. Fig. 13 (b) shows a CTU divided into 2 chroma blocks, and Fig. 13 (a) shows a CTU divided into 20 luminance blocks. The left luminance region (composed of a total of 6 luminance blocks) indicated by the pattern in Fig. 13 (a) can correspond to the left chroma block indicated by the pattern in Fig. 13 (b).

[0126] The TL sample is a sample that includes the top-left position of the luma region, and the position of the TL sample can be expressed by Equation 4.

[0127] [Mathematical Formula 4]

[0128]

[0129] The TR sample is a sample that includes a position moved by the width of the luma area in the horizontal axis direction from the top-left position of the luma area, and the position of the TR sample can be expressed by Equation 5.

[0130] [Mathematical Formula 5]

[0131]

[0132] The CR sample is a sample that includes a position moved by half the width of the luminance area in the horizontal direction and half the height of the luminance area in the vertical direction from the top-left position of the luminance area. The position of the CR sample can be expressed by Equation 6.

[0133] [Mathematical Formula 6]

[0134]

[0135] The BL sample is a sample that includes a position moved by the height of the lumens region in the vertical axis direction from the top-left position of the lumens region, and the position of the BL sample can be expressed by Equation 7.

[0136] [Mathematical Formula 7]

[0137]

[0138] The BR sample is a sample that includes a position moved by the width of the luma area in the horizontal direction and the height of the luma area in the vertical direction from the top-left position of the luma area. The position of the BR sample can be expressed by Equation 8.

[0139] [Mathematical Formula 8]

[0140]

[0141] In mathematical formulas 4 to 8, (xPb, yPb) represents the top-left position of the luminance region, nPbW represents the width of the luminance region, and nPbH represents the height of the luminance region.

[0142] The image decoding device can derive one or more target samples among the samples located within the luminance area (S1110). The target samples may be samples predicted in ibc mode (samples included in the unit area predicted in ibc mode or samples included in the luminance block predicted in ibc mode) or samples indicated by instruction information.

[0143] In the example of Fig. 13, the block vector of the CR sample (target sample) predicted in ibc mode can be derived through the following mathematical equations 9 to 12.

[0144] [Mathematical Formula 9]

[0145]

[0146] [Mathematical Formula 10]

[0147]

[0148] [Mathematical Formula 11]

[0149]

[0150] [Mathematical Formula 12]

[0151]

[0152] In mathematical formulas 9 through 12, bvC[x][y][z] represents the block vector of the target sample located at (x, y), and the constant z represents the reference direction of L0 or L1. bvL[x][y][z] represents the block vector of the sample (CR sample) located at (x, y) within the luminance region. predFlagX[x][y] represents the reference index of the target sample (the unit region containing the target sample or the luminance block containing the target sample). In ibc mode, since the current picture in the L0 reference list is used as the reference picture, the value of predFlagL0[x][y] is set to 1, and the value of predFlagL1[x][y] can be set to 0.

[0153] The image decoder can derive a block vector of a chroma block using the block vector of a target sample (S1120). If the target sample is not derived (if the sample predicted in IBC mode is not found or if the instruction information indicates a zero vector), the block vector of the chroma block can be set to a preset value (default, e.g., zero vector).

[0154] The video decoder can predict a chroma block based on the derived block vector. If no target sample is derived and the block vector of the chroma block is set to a preset value (default candidate), the predicted value (predSamples[x][y]) obtained through Equation 13 below can be used as the predicted sample value of the chroma block.

[0155] [Mathematical Formula 13]

[0156]

[0157] For example, in the case of a 10-bit image, a predicted value of 511 is obtained through Equation 13, and this value can be used as a predicted sample value for the chroma block.

[0158] Example 1 can be divided into the sub-examples described below depending on the type of preset conditions and the number of target samples derived.

[0159] Example 1-1

[0160] Example 1-1 is a method that conditions whether it is predicted in ibc mode and derives the first sample predicted in ibc mode as the target sample.

[0161] The image decoding device searches for samples within the luma region in a preset order, and can derive the first sample predicted in ibc mode in the search order as the target sample (S1410 to S1440). The order of searching for samples may vary. For example, in the example shown in FIG. 13, samples may be searched in the order of CR sample → TL sample → TR sample → BL sample → BR sample.

[0162] A constant i representing the search order of samples (total of n) is set to an initial value (0) (S1410), and it can be determined whether the 0th sample is predicted in ibc mode (S1420). If the 0th sample is not predicted in ibc mode, the search order is set to the next (1st) sample (i++, S1430), and it can be determined whether the search is completed for all samples (S1440). If the search is not yet completed, it can be determined whether the next sample is predicted in ibc mode. These processes can be repeated until a sample predicted in ibc mode is searched.

[0163] If the i-th sample (first sample) is predicted in ibc mode, that sample can be derived as the target sample. An example of deriving the first sample predicted in ibc mode as the target sample in the search order is shown in Fig. 15. The total number of samples to be searched is set to 5, and the prediction mode (intra or ibc) of each unit area is indicated in the unit areas.

[0164] Five samples (CR sample, TL sample, TR sample, BL sample, and BR sample) within the luminance region, indicated by the pattern in Fig. 15 (a), can be searched according to a preset order (e.g., CR sample → TL sample → TR sample → BL sample → BR sample). Since CR sample and TL sample were predicted in regular intra mode, they are not derived as target samples. Since TR sample was predicted in ibc mode, it corresponds to the first sample predicted in ibc mode in the search order. Therefore, TR sample can be derived as a target sample (Fig. 15 (b)).

[0165] The image decoder can derive a block vector of a chroma block using a block vector corresponding to a target sample (S1450). In this process, the block vector of the chroma block can be derived by scaling the block vector corresponding to the target sample. If not all samples are predicted in ibc mode, the image decoder can set the block vector of the chroma block to a default vector (S1460).

[0166] The image decoder can predict the chroma block using the derived block vector or default vector (S1470).

[0167] Examples 1-2

[0168] Example 1-2 is a method for deriving the block vector of a chroma block using the mean or median value among the block vectors of a target sample predicted in ibc mode, with the condition that it is predicted in ibc mode.

[0169] The image decoding device can search for samples within the luma region according to a preset order to derive a target sample predicted in ibc mode (S1610 to S1660). The order of searching for samples may vary, as in Example 1-1.

[0170] A constant i representing the search order of samples (total n) and a constant j representing the number of derived target samples are set to an initial value (0) (S1610), and it can be determined whether the 0th sample is predicted in ibc mode (S1620). If the 0th sample is not predicted in ibc mode, the search order is set to the next (1st) sample (i++, S1630), and it can be determined whether the search is completed for all samples (S1640). If the search is not yet completed, it can be determined whether the next (1st) sample is predicted in ibc mode. These processes can be performed repeatedly until the search for all samples is completed.

[0171] In the process of iteratively performing the search for all samples, if the i-th sample is predicted to be in ibc mode, that sample is derived as a target sample, and the block vector of the derived target sample can be added to BV_temp (S1650). BV_temp represents the total sum among the block vectors of the target samples. A constant j is incremented by one each time a target sample is derived (S1660).

[0172] An example of a method for deriving target samples is shown in Fig. 17. Fig. 17 (a) shows samples located within the luminance region (CR samples, TL samples, TR samples, BL samples, and BR samples), and Fig. 17 (b) shows target samples predicted in ibc mode (TL samples, CR samples). In the unit regions of Fig. 17, the prediction mode (intra or ibc) of each unit region is indicated.

[0173] Five samples can be explored according to a pre-set order (e.g., CR sample → TL sample → TR sample → BL sample → BR sample). Since TR sample, BL sample, and BR sample were predicted in regular intra mode, they are not derived as target samples. Since TL sample and CR sample were predicted in ibc mode, they correspond to target samples.

[0174] When the derivation of target samples is completed, the image decoder determines the number of derived target samples and, based on this, can derive or set the block vector of the chroma block (S1670 to S1690).

[0175] It can be determined whether one or more target samples have been derived (number of target samples) (S1670). If there is one or more target samples, the block vector of the chroma block can be derived using the average value (BV_temp / j) or the median value among the block vectors of the target samples (S1680). In this process, the block vector of the chroma block can be derived by scaling the average value or the median value. The process of S1680 can be understood as 1) deriving the block vector of the chroma block using the average value or the median value among the block vectors of the target samples when there are multiple target samples, and 2) deriving the block vector of the chroma block using the block vector of the target sample when there is one target sample.

[0176] If no target sample is derived, the block vector of the chroma block can be set as the default vector (S1690).

[0177] The image decoder can predict the chroma block using the derived block vector or default vector (S1692).

[0178] Examples 1-3

[0179] Examples 1-3 are methods for deriving the block vectors of a chroma block based on the difference in sample values ​​between each reference region indicated by the block vectors of the target sample and the reference region of the chroma block, conditioned on whether they were predicted in ibc mode. The reference region may be referred to as a template.

[0180] The image decoding device can search for samples within the luma region in a preset order to derive a target sample predicted in ibc mode (S1810 to S1860). The order of searching for samples may vary, as in Examples 1-1 and 1-2.

[0181] A constant i representing the search order of samples (total n) and a constant j representing the number of derived target samples are set to an initial value (0) (S1810), and it can be determined whether the 0th sample is predicted in ibc mode (S1820). If the 0th sample is not predicted in ibc mode, the search order is set to the next (1st) sample (i++, S1830), and it can be determined whether the search is completed for all samples (S1840). If the search is not yet completed, it can be determined whether the next (1st) sample is predicted in ibc mode. These processes can be performed repeatedly until the search for all samples is completed.

[0182] In the process of iteratively performing the search for all samples, if the i-th sample is predicted to be in ibc mode, that sample is derived as a target sample, and the block vector of the derived target sample can be set as a candidate (BV_cand[j]) (S1850). BV_cand[j] represents a candidate block vector to be used for deriving the block vector of the chroma block. A constant j is incremented by one each time a target sample is derived (S1860).

[0183] An example of a method for deriving target samples is shown in FIG. 19. FIG. 19 (a) shows samples located within the luminance region (CR samples, TL samples, TR samples, BL samples, and BR samples), and FIG. 19 (b) shows target samples predicted in ibc mode (TR samples, BL samples). The prediction mode (intra or ibc) of each unit region is indicated in the unit regions of FIG. 19.

[0184] Five samples can be explored according to a pre-set order (e.g., CR sample → TL sample → TR sample → BL sample → BR sample). Since CR sample, TL sample, and BR sample were predicted in regular intra mode, they are not derived as target samples. Since TR sample and BL sample were predicted in ibc mode, they correspond to target samples.

[0185] The image decoding device determines the number of derived target samples and, based on this, can derive or set the block vector of the chroma block (S1870 to S1892). It can be determined whether one or more target samples have been derived (S1870). If there is one or more target samples, the difference in sample values ​​between each reference region (template) indicated by each of the candidate block vectors (BV_cand[j], block vectors of the target samples) and the reference region (template) of the chroma block can be calculated (S1880). Here, the reference region indicated by the candidate block vectors may consist of an upper reference region located above the reference block indicated by the candidate block vectors and a left reference region located to the left.

[0186] The video decoder can derive a block vector of a chroma block based on the calculated sample value difference (S1890). For example, a block vector of a chroma block can be derived using a candidate block vector in which a relatively small sample value difference is calculated. In this process, a block vector of a chroma block can be derived by scaling the candidate block vector.

[0187] An example of reference regions indicated by a candidate block vector is shown in FIG. 20. In FIG. 20, the region marked with a pattern represents a chroma block, the region located above the chroma block represents the upper reference region (2012) of the chroma block, and the region located to the left of the chroma block represents the left reference region (2014) of the chroma block. A first upper reference region (2022) located above the reference block (2020) indicated by the first candidate block vector (BV_TR) and a first left reference region (2024) located to the left of this reference block (2020) are shown. Additionally, a second upper reference region (2032) located above the reference block (2030) indicated by the second candidate block vector (BV_BL) and a second left reference region (2034) located to the left of this reference block (2030) are shown.

[0188] The reference region (2012, 2014, 2022, 2024, 2032, 2034) may have a size of Nx(nPbH>>1) or (nPbW>>1)xN. Here, (nPbW>>1) represents the width of the chroma block, and (nPbH>>1) may represent the height of the chroma block. N may represent the width or height of the reference region (2012, 2014, 2022, 2024, 2032, 2034) and may be a power of 2.

[0189] The S1890 process can be understood as 1) deriving the block vector of the chroma block based on the difference in sample values ​​between each reference region indicated by the candidate block vectors and the reference region of the chroma block when there are multiple target samples, and 2) deriving the block vector of the chroma block using the candidate block vector when there is only one target sample.

[0190] If no target sample is derived, the block vector of the chroma block may be set to the default vector (S1892).

[0191] The image decoder can predict the chroma block using the derived block vector or default vector (S1692).

[0192] Meanwhile, when unit regions within the luma region are utilized as available candidates, the order of searching for whether the unit regions were predicted in ibc mode may follow a raster-scan order. Additionally, the first unit region predicted in ibc mode in the raster-scan order can be derived as the target region.

[0194] Example 2

[0195] Example 2 is a method for deriving a block vector of a chroma block by using a sample and / or HBVP and / or default candidate located within a luminance region corresponding to the chroma block as available candidates, and utilizing whether it is indicated by instruction information as a condition. This will be described in detail below with reference to FIG. 21.

[0196] The indicator information (e.g., chroma_ibc_BV_idx) may indicate any one of the samples located within the luminar region. The sample indicated by chroma_ibc_BV_idx may be a sample predicted in ibc mode.

[0197] The video encoding device can signal to the video decoder a chroma_ibc_BV_idx indicating a sample used to derive the block vector of a chroma block among samples located within the luminance region. The video decoder decodes chroma_ibc_BV_idx from the bitstream (S2130) and can derive a sample indicated by chroma_ibc_BV_idx as a target sample among samples located within the luminance region (S2150).

[0198] According to an embodiment, the signaling status of chroma_ibc_BV_idx may be determined based on information indicating whether the present embodiment is applied (e.g., chroma_ibc_BV_flag). An image encoding device may signal chroma_ibc_BV_idx when chroma_ibc_BV_flag is on. chroma_ibc_BV_flag may be defined and signaled at one or more locations in high-level syntax (sequence-level header, picture-level header, slice header, or tile group header), in which case chroma_ibc_BV_idx may be signaled in units of chroma blocks. An image decoding device may decode chroma_ibc_BV_idx from a bitstream when chroma_ibc_BV_flag is on (S2110) (S2130). When chroma_ibc_BV_flag is off, the block vector of the chroma block can be derived through another embodiment proposed in the present invention.

[0199] The syntax structure for Example 2 is shown in Table 4.

[0200] [Table 4]

[0201]

[0202] In Table 4, chroma_ibc_MV_flag refers to the previously described chroma_ibc_BV_flag, and chroma_ibc_MV_idx refers to the previously described chroma_ibc_BV_idx.

[0203] Based on the five samples shown in Fig. 19, chroma_ibc_BV_idx is binarized using the Truncated Unary (TU) method, as shown in Table 5.

[0204] [Table 5]

[0205]

[0206] The image decoding device can derive a sample indicated by the decoded chroma_ibc_BV_idx as a target sample (S2150). An example of deriving a target sample is shown in FIG. 22.

[0207] The prediction mode (intra or ibc) of each unit region is indicated in the unit regions of Fig. 22. Fig. 22 (a) shows samples (CR samples, TL samples, TR samples, BL samples, and BR samples) located within the chroma region, and Fig. 22 (b) shows the BL samples indicated by chroma_ibc_BV_idx. As shown in Table 5, an index of 0 can be assigned to the CR samples, an index of 1 can be assigned to the TL samples, an index of 2 can be assigned to the TR samples, an index of 3 can be assigned to the BL samples, and an index of 4 can be assigned to the BR samples.

[0208] Among the five samples, any one of the TR sample, BL sample, and BR sample predicted in ibc mode can be indicated by chroma_ibc_BV_idx. If chroma_ibc_BV_idx=3, the BL sample assigned index 3 can be derived as the target sample (Fig. 22 (b)).

[0209] The image decoder can derive a block vector of a chroma block using a block vector corresponding to a derived target sample (S2160). Additionally, the image decoder can predict a chroma block based on the block vector of the chroma block (S2170).

[0210] According to an embodiment, the present invention may be configured to reduce the number of bits required for index signaling by configuring a candidate list (S2140) and deriving one of the candidates included in the candidate list as a target candidate (S2150). In this case, chroma_ibc_BV_idx may indicate one of the candidates included in the candidate list.

[0211] The candidate list may include samples predicted in ibc mode. The image encoding / decoding device (list constructor) may include samples predicted in ibc mode in the candidate list by searching for samples located within the luma region according to a preset order. If the number of samples included in the candidate list is less than the maximum number of candidates that can be included in the candidate list, HBVP may be further included in the candidate list. If the sum of the number of samples included in the candidate list and the number of HBVPs is less than the maximum number of candidates that can be included in the candidate list, default candidates (e.g., zero vector candidates) may be further included in the candidate list.

[0212] An example of a candidate list consisting of a total of 5 candidates is shown in Table 6.

[0213] [Table 6]

[0214]

[0215] In Table 6, the indices of each candidate were binarized using the Truncated Unary (TU) method.

[0217] Example 3

[0218] Example 3 is a method for deriving a block vector of a chroma block by using surrounding blocks and / or HBVP and / or default candidates as available candidates and utilizing whether they are indicated by instruction information as a condition.

[0219] A peripheral block is a block located adjacent to the chroma block, and examples of peripheral blocks are shown in FIG. 23. A peripheral block may consist of an upper peripheral block (A) located on the upper side of the chroma block and a left peripheral block (L) located on the left side of the chroma block. Additionally, a peripheral block may consist of an upper peripheral block (A), a left peripheral block (L), an upper right peripheral block (AR) located on the upper right side of the chroma block, a lower left peripheral block (BL) located on the lower left side of the chroma block, and an upper left peripheral block (TL) located on the upper left side of the chroma block.

[0220] chroma_ibc_BV_idx may indicate any one of the surrounding blocks. The surrounding block indicated by chroma_ibc_BV_idx may be a sample predicted in ibc mode. The video encoding device may signal chroma_ibc_BV_idx, which indicates the surrounding block used to derive the block vector of the chroma block among the surrounding blocks, to the video decoder. The video decoder decodes chroma_ibc_BV_idx from the bitstream (S2130) and may derive the surrounding block indicated by chroma_ibc_BV_idx among the surrounding blocks as a target candidate (S2150).

[0221] According to an embodiment, the signaling status of chroma_ibc_BV_idx may be determined based on information indicating whether the present embodiment is applied (e.g., chroma_ibc_BV_flag). An image encoding device may signal chroma_ibc_BV_idx when chroma_ibc_BV_flag is on. chroma_ibc_BV_flag may be defined and signaled at one or more locations in high-level syntax (sequence-level header, picture-level header, slice header, or tile group header), in which case chroma_ibc_BV_idx may be signaled in units of chroma blocks. An image decoding device may decode chroma_ibc_BV_idx from a bitstream when chroma_ibc_BV_flag is on (S2120) (S2130). When chroma_ibc_BV_flag is off, the block vector of the chroma block can be derived through another embodiment proposed in the present invention.

[0222] The syntax structure for Example 2 is shown in Table 4, and when chroma_ibc_BV_idx is binarized using the Truncated Unary (TU) method based on the five surrounding blocks shown in FIG. 23 (b), it is shown in Table 5. Here, 'TR' in Table 5 can be changed to 'AR'.

[0223] The image decoder derives a target candidate for a surrounding block indicated by the decoded chroma_ibc_BV_idx (S2150), and can derive a block vector of a chroma block using a block vector corresponding to the target candidate (the block vector of the derived surrounding block) (S2160). Additionally, the image decoder can predict a chroma block based on the block vector of the chroma block (S2170).

[0224] According to an embodiment, the present invention may be configured to reduce the number of bits required for index signaling by configuring a candidate list (S2140) and deriving one of the candidates included in the candidate list as a target candidate (S2150). In this case, chroma_ibc_BV_idx may indicate one of the candidates included in the candidate list.

[0225] The candidate list may include neighboring blocks (spatial candidates) predicted in ibc mode. An image encoding / decoding device (list constructor) may include neighboring blocks predicted in ibc mode in the candidate list by searching neighboring blocks according to a preset order (e.g., L→A→AR→BL→TL). If the number of neighboring blocks included in the candidate list is less than the maximum number of candidates that can be included in the candidate list, HBVP may be further included in the candidate list. If the sum of the number of neighboring blocks included in the candidate list and the number of HBVPs is less than the maximum number of candidates that can be included in the candidate list, default candidates (e.g., zero vector candidates) may be further included in the candidate list.

[0226] In this embodiment, the candidate list consisting of a total of 5 candidates may be the same as Table 6.

[0228] The above description is merely an illustrative explanation of the technical concept of the present embodiment, and a person skilled in the art to which the present embodiment belongs would be able to make various modifications and variations within the scope of the essential characteristics of the present embodiment. Accordingly, the present embodiments are intended to explain, not limit, the technical concept of the present embodiment, and the scope of the technical concept of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment shall be interpreted by the claims below, and all technical concepts within an equivalent scope shall be interpreted as being included within the scope of rights of the present embodiment. Explanation of the symbols

[0229] 120, 440: Prediction unit 130: Subtractor 170, 450: Adder 180, 460: Filter section 2020, 2030: Reference Block 2022, 2024: First Reference Area 2032, 2034: Second reference area 2012, 2014: Chroma block reference area

Claims

Claim 1 A method for deriving a block vector to predict a chroma block using an ibc (intra block copy) mode, comprising: a step of searching for a plurality of luminance samples located at predetermined positions within a luminance region corresponding to the chroma block to derive one or more luminance samples predicted by the ibc mode; and a step of deriving a block vector of the chroma block using one or more luminance block vectors corresponding to the one or more luminance samples predicted by the ibc mode. Claim 2 delete Claim 3 ◈Claim 3 was abandoned upon payment of the registration fee.◈ In Claim 1, the deriving step comprises searching the plurality of luminance samples according to a predetermined order and deriving the first luminance sample predicted in the ibc mode in the search order, a method for deriving a block vector of a chroma block. Claim 4 ◈Claim 4 was abandoned upon payment of the registration fee.◈ In Claim 1, the deriving step is a method for deriving a block vector of a chroma block, wherein, when there are multiple luminance samples predicted by the ibc mode, the block vector of the chroma block is derived by using the mean value or the median value between the block vectors corresponding to the luminance samples predicted by the ibc mode. Claim 5 ◈Claim 5 was abandoned upon payment of the registration fee.◈ In Claim 1, the deriving step is a method for deriving a block vector of a chroma block, wherein, when there are multiple luminance samples predicted by the ibc mode, the block vector of the chroma block is derived based on the difference in sample values ​​between each reference region indicated by the block vectors corresponding to the luminance samples predicted by the ibc mode and the reference region of the chroma block. Claim 6 ◈Claim 6 was abandoned upon payment of the registration fee.◈ A method for deriving a block vector of a chroma block according to Claim 1, comprising the step of encoding instruction information indicating a luminance sample predicted by the ibc mode into a bitstream. Claim 7 An image decoding device comprising: a derivation unit that searches for a plurality of luminance samples located at predetermined positions within a luminance region corresponding to a chroma block encoded in an intra block copy (ibc) mode and derives one or more luminance samples predicted in an ibc mode; and a derivation unit that derives a block vector of the chroma block using one or more luminance block vectors corresponding to the one or more luminance samples predicted in the ibc mode. Claim 8 delete Claim 9 ◈Claim 9 was abandoned upon payment of the registration fee.◈ In claim 7, the derivation unit searches the plurality of luminance samples according to a preset order and derives the first luminance sample predicted in the ibc mode in the search order, an image decoding device. Claim 10 ◈Claim 10 was abandoned upon payment of the registration fee.◈ In claim 7, the induction unit derives the block vector of the chroma block using the mean value or median value between the block vectors corresponding to the luminance samples predicted by the ibc mode when there are multiple luminance samples predicted by the ibc mode, an image decoding device. Claim 11 ◈Claim 11 was abandoned upon payment of the registration fee.◈ In claim 7, the induction unit derives the block vector of the chroma block based on the difference in sample values ​​between each reference region indicated by the block vectors corresponding to the luminance samples predicted in the ibc mode and the reference region of the chroma block, when there are multiple luminance samples predicted in the ibc mode. Claim 12 ◈Claim 12 was abandoned upon payment of the registration fee.◈ In claim 7, the extraction unit derives a sample indicated by instruction information included in a bitstream among the plurality of luma samples, an image decoding device. Claim 13 A recording medium readable by a decoder, storing a bitstream generated by an encoding method that encodes a chroma block in an ibc (intra block copy) mode, wherein the encoding method comprises: a step of deriving a block vector of the chroma block; and a step of predicting the chroma block using the block vector, wherein the step of deriving the block vector comprises: a step of searching for a plurality of luminance samples at predetermined locations within a luminance region corresponding to the chroma block to derive one or more luminance samples predicted in ibc mode; and a step of deriving the block vector of the chroma block using one or more luminance block vectors corresponding to the one or more luminance samples predicted in ibc mode.

Citation Information

Patent Citations

  • Intra prediction from a predictive block

    KR1020160106616A

  • Intra bc and inter unification

    KR1020170068466A

  • Intra-block copy for video coding

    KR1020200116462A